From 07ce8cc21a1fb85abcfd44673c89cd4564d8be93 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 22 Oct 2026 13:54:49 +0000 Subject: [PATCH 1/2] Render every status and message role badge through the shared Badge The agent cards carried a light-only Tailwind status pill and an ad-hoc provider chip; Agent Interactions and the sandbox runner each kept a status color map of their own; the conversation stream's role pills had their colors inline per theme. Each is now the dashboard's Badge (soft tint, strong mono text, radius 4, theme tokens), with one status tone map (statusTone) and one role map (roleBadge) in primitives, so the same word reads the same on every surface and in both themes. roleBubble keeps its shape for the callers that read its colors, over the shared tones. Two tones join the tokens for the system and developer roles. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01FVSMckjfmJy2QWSb4wRrGh --- CHANGELOG.md | 14 ++ .../app/assets/builds/action_agent.css | 2 +- actionagent/app/assets/builds/action_agent.js | 120 +++++++++--------- .../dashboard/AgentInteractions.jsx | 20 +-- .../components/dashboard/AgentList.jsx | 26 +--- .../dashboard/InteractionStream.jsx | 43 ++----- .../components/dashboard/SandboxRunner.jsx | 28 +--- .../components/dashboard/primitives.jsx | 25 ++++ actionagent/frontend/test/badgeTones.test.mjs | 118 +++++++++++++++++ actionagent/frontend/tokens.css | 11 ++ 10 files changed, 250 insertions(+), 157 deletions(-) create mode 100644 actionagent/frontend/test/badgeTones.test.mjs diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ab2a5bbf..8ccb8b28f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,20 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Changed + +- **One badge for every status and message role in the dashboard** + (`actionagent`). The agent cards' status pill and provider chip, the run + and sandbox session status pills (Agent Interactions, the sandbox runner) + and the message role pills in conversation streams all render through the + shared `Badge` (soft tint, strong mono text, radius 4) with one status + tone map (`statusTone`) and one role map (`roleBadge`), so an `active` + agent, a `complete` run and an `Assistant` turn look the same wherever + they appear and follow the dark theme, which the cards' Tailwind pills + did not. Two tones join the tokens for the system and developer roles. + ## [1.9.3] - 2026-10-21 Releases `activeagent` and `actionagent` 1.9.3, with the matching browser diff --git a/actionagent/app/assets/builds/action_agent.css b/actionagent/app/assets/builds/action_agent.css index 4adeb2d9e..b00c8eabf 100644 --- a/actionagent/app/assets/builds/action_agent.css +++ b/actionagent/app/assets/builds/action_agent.css @@ -1,2 +1,2 @@ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-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-300:oklch(87.9% .169 91.605);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-50:oklch(98.2% .018 155.826);--color-green-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-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-700:oklch(45.7% .24 277.023);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-700:oklch(51.4% .222 16.935);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-4xl:56rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-4{inset-inline:calc(var(--spacing) * 4)}.-top-2{top:calc(var(--spacing) * -2)}.-top-3{top:calc(var(--spacing) * -3)}.-top-8{top:calc(var(--spacing) * -8)}.top-2\.5{top:calc(var(--spacing) * 2.5)}.top-4{top:calc(var(--spacing) * 4)}.top-14{top:calc(var(--spacing) * 14)}.-right-2{right:calc(var(--spacing) * -2)}.right-0{right:0}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[60\]{z-index:60}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-1{margin-inline:var(--spacing)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-36{height:calc(var(--spacing) * 36)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-full{height:100%}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0}.min-h-screen{min-height:100vh}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/3{width:33.3333%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-48{width:calc(var(--spacing) * 48)}.w-64{width:calc(var(--spacing) * 64)}.w-80{width:calc(var(--spacing) * 80)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[12rem\]{max-width:12rem}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-\[4\.5rem\]{min-width:4.5rem}.min-w-\[10rem\]{min-width:10rem}.min-w-\[16rem\]{min-width:16rem}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.origin-left{transform-origin:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-1{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-6{--tw-translate-x:calc(var(--spacing) * 6);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-45{rotate:-45deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(var(--spacing) * var(--tw-space-x-reverse));margin-inline-end:calc(var(--spacing) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-8>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 8) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:var(--spacing)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.self-end{align-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-800{border-color:var(--color-amber-800)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-800{border-color:var(--color-blue-800)}.border-emerald-500{border-color:var(--color-emerald-500)}.border-gray-50{border-color:var(--color-gray-50)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-600{border-color:var(--color-gray-600)}.border-gray-700{border-color:var(--color-gray-700)}.border-green-200{border-color:var(--color-green-200)}.border-green-800{border-color:var(--color-green-800)}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-red-500{border-color:var(--color-red-500)}.border-red-800{border-color:var(--color-red-800)}.border-rose-200{border-color:var(--color-rose-200)}.border-rose-300{border-color:var(--color-rose-300)}.border-rose-500{border-color:var(--color-rose-500)}.border-transparent{border-color:#0000}.border-yellow-200{border-color:var(--color-yellow-200)}.border-yellow-800{border-color:var(--color-yellow-800)}.border-l-amber-500{border-left-color:var(--color-amber-500)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.border-l-green-500{border-left-color:var(--color-green-500)}.border-l-purple-500{border-left-color:var(--color-purple-500)}.border-l-red-500{border-left-color:var(--color-red-500)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-900\/20{background-color:#7b330633}@supports (color:color-mix(in lab, red, red)){.bg-amber-900\/20{background-color:color-mix(in oklab, var(--color-amber-900) 20%, transparent)}}.bg-amber-900\/30{background-color:#7b33064d}@supports (color:color-mix(in lab, red, red)){.bg-amber-900\/30{background-color:color-mix(in oklab, var(--color-amber-900) 30%, transparent)}}.bg-black{background-color:var(--color-black)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-blue-900\/20{background-color:#1c398e33}@supports (color:color-mix(in lab, red, red)){.bg-blue-900\/20{background-color:color-mix(in oklab, var(--color-blue-900) 20%, transparent)}}.bg-current{background-color:currentColor}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-600{background-color:var(--color-gray-600)}.bg-gray-700{background-color:var(--color-gray-700)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-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-green-900\/30{background-color:#0d542b4d}@supports (color:color-mix(in lab, red, red)){.bg-green-900\/30{background-color:color-mix(in oklab, var(--color-green-900) 30%, transparent)}}.bg-indigo-50{background-color:var(--color-indigo-50)}.bg-orange-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-600{background-color:var(--color-red-600)}.bg-red-900\/20{background-color:#82181a33}@supports (color:color-mix(in lab, red, red)){.bg-red-900\/20{background-color:color-mix(in oklab, var(--color-red-900) 20%, transparent)}}.bg-red-900\/30{background-color:#82181a4d}@supports (color:color-mix(in lab, red, red)){.bg-red-900\/30{background-color:color-mix(in oklab, var(--color-red-900) 30%, transparent)}}.bg-red-900\/40{background-color:#82181a66}@supports (color:color-mix(in lab, red, red)){.bg-red-900\/40{background-color:color-mix(in oklab, var(--color-red-900) 40%, transparent)}}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-500{background-color:var(--color-rose-500)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-900\/20{background-color:#733e0a33}@supports (color:color-mix(in lab, red, red)){.bg-yellow-900\/20{background-color:color-mix(in oklab, var(--color-yellow-900) 20%, transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-gray-50{--tw-gradient-from:var(--color-gray-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-rose-50{--tw-gradient-from:var(--color-rose-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-rose-500{--tw-gradient-from:var(--color-rose-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-gray-100{--tw-gradient-to:var(--color-gray-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple-50{--tw-gradient-to:var(--color-purple-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple-600{--tw-gradient-to:var(--color-purple-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-10{padding-left:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.9em\]{font-size:.9em}.text-\[0\.85em\]{font-size:.85em}.text-\[0\.95em\]{font-size:.95em}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-300{color:var(--color-amber-300)}.text-amber-500{color:var(--color-amber-500)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-blue-200{color:var(--color-blue-200)}.text-blue-300{color:var(--color-blue-300)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-gray-100{color:var(--color-gray-100)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-300{color:var(--color-green-300)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-indigo-700{color:var(--color-indigo-700)}.text-orange-600{color:var(--color-orange-600)}.text-purple-700{color:var(--color-purple-700)}.text-red-100{color:var(--color-red-100)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-rose-100{color:var(--color-rose-100)}.text-rose-500{color:var(--color-rose-500)}.text-rose-600{color:var(--color-rose-600)}.text-white{color:var(--color-white)}.text-yellow-300{color:var(--color-yellow-300)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.placeholder-gray-500::placeholder{color:var(--color-gray-500)}.accent-red-500{accent-color:var(--color-red-500)}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-emerald-200{--tw-ring-color:var(--color-emerald-200)}.ring-red-100{--tw-ring-color:var(--color-red-100)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:bg-gray-400:is(:where(.group):hover *){background-color:var(--color-gray-400)}.group-hover\:bg-gray-500:is(:where(.group):hover *){background-color:var(--color-gray-500)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-focus-visible\:bg-red-500:is(:where(.group):focus-visible *){background-color:var(--color-red-500)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.focus-within\:opacity-100:focus-within{opacity:1}@media (hover:hover){.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:bg-\[var\(--color-hover\)\]:hover{background-color:var(--color-hover)}.hover\:bg-amber-600:hover{background-color:var(--color-amber-600)}.hover\:bg-black\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/5:hover{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}.hover\:bg-purple-600:hover{background-color:var(--color-purple-600)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-red-900\/40:hover{background-color:#82181a66}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-900\/40:hover{background-color:color-mix(in oklab, var(--color-red-900) 40%, transparent)}}.hover\:bg-red-900\/60:hover{background-color:#82181a99}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-900\/60:hover{background-color:color-mix(in oklab, var(--color-red-900) 60%, transparent)}}.hover\:bg-rose-600:hover{background-color:var(--color-rose-600)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.hover\:text-amber-900:hover{color:var(--color-amber-900)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-gray-300:hover{color:var(--color-gray-300)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:text-rose-700:hover{color:var(--color-rose-700)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:border-transparent:focus{border-color:#0000}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-rose-500:focus{--tw-ring-color:var(--color-rose-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-100:disabled{background-color:var(--color-gray-100)}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media (min-width:40rem){.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}}@media (min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:flex{display:flex}.lg\:h-full{height:100%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:gap-0{gap:0}}@media (min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}.aa-dashboard{--color-accent:#fa343b;--color-accent-hover:#e02d33;--color-accent-b:#fa343b29;--color-accent-b-hover:#fa343b33;--color-on-accent:#fff;--color-accent-ui:#ef4444;--color-accent-ui-hover:#dc2626;--color-accent-ui-muted:#ef444426;--color-accent-ui-tint:#fef2f2;--color-background:#f9fafb;--color-background-page:#fff;--color-surface:#fff;--color-card:#fff;--color-muted:#f3f4f6;--color-hover:#f3f4f6;--color-background-blur:#ffffffe6;--color-border:#e5e7eb;--color-border-light:#f3f4f6;--color-border-strong:#d1d5db;--color-text-primary:#111827;--color-text-secondary:#6b7280;--color-text-muted:#9ca3af;--color-text-cell:#4b5563;--color-success:#16a34a;--color-success-soft:#dcfce7;--color-success-text:#166534;--color-warning:#eab308;--color-warning-soft:#fef9c3;--color-warning-text:#854d0e;--color-error:#dc2626;--color-error-soft:#fee2e2;--color-error-text:#991b1b;--color-info:#3b82f6;--color-info-soft:#dbeafe;--color-info-text:#1e40af;--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)}.aa-fix-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000080}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}} \ No newline at end of file +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-50:oklch(98.2% .018 155.826);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-700:oklch(45.7% .24 277.023);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-700:oklch(51.4% .222 16.935);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-4xl:56rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-4{inset-inline:calc(var(--spacing) * 4)}.-top-2{top:calc(var(--spacing) * -2)}.-top-3{top:calc(var(--spacing) * -3)}.-top-8{top:calc(var(--spacing) * -8)}.top-2\.5{top:calc(var(--spacing) * 2.5)}.top-4{top:calc(var(--spacing) * 4)}.top-14{top:calc(var(--spacing) * 14)}.-right-2{right:calc(var(--spacing) * -2)}.right-0{right:0}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[60\]{z-index:60}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-1{margin-inline:var(--spacing)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-36{height:calc(var(--spacing) * 36)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-full{height:100%}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0}.min-h-screen{min-height:100vh}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/3{width:33.3333%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-48{width:calc(var(--spacing) * 48)}.w-64{width:calc(var(--spacing) * 64)}.w-80{width:calc(var(--spacing) * 80)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[12rem\]{max-width:12rem}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-\[4\.5rem\]{min-width:4.5rem}.min-w-\[10rem\]{min-width:10rem}.min-w-\[16rem\]{min-width:16rem}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.origin-left{transform-origin:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-1{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-6{--tw-translate-x:calc(var(--spacing) * 6);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-45{rotate:-45deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(var(--spacing) * var(--tw-space-x-reverse));margin-inline-end:calc(var(--spacing) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-8>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 8) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:var(--spacing)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.self-end{align-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-800{border-color:var(--color-amber-800)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-800{border-color:var(--color-blue-800)}.border-emerald-500{border-color:var(--color-emerald-500)}.border-gray-50{border-color:var(--color-gray-50)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-600{border-color:var(--color-gray-600)}.border-gray-700{border-color:var(--color-gray-700)}.border-green-200{border-color:var(--color-green-200)}.border-green-800{border-color:var(--color-green-800)}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-red-500{border-color:var(--color-red-500)}.border-red-800{border-color:var(--color-red-800)}.border-rose-200{border-color:var(--color-rose-200)}.border-rose-300{border-color:var(--color-rose-300)}.border-rose-500{border-color:var(--color-rose-500)}.border-transparent{border-color:#0000}.border-yellow-200{border-color:var(--color-yellow-200)}.border-yellow-800{border-color:var(--color-yellow-800)}.border-l-amber-500{border-left-color:var(--color-amber-500)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.border-l-green-500{border-left-color:var(--color-green-500)}.border-l-purple-500{border-left-color:var(--color-purple-500)}.border-l-red-500{border-left-color:var(--color-red-500)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-900\/20{background-color:#7b330633}@supports (color:color-mix(in lab, red, red)){.bg-amber-900\/20{background-color:color-mix(in oklab, var(--color-amber-900) 20%, transparent)}}.bg-amber-900\/30{background-color:#7b33064d}@supports (color:color-mix(in lab, red, red)){.bg-amber-900\/30{background-color:color-mix(in oklab, var(--color-amber-900) 30%, transparent)}}.bg-black{background-color:var(--color-black)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-blue-900\/20{background-color:#1c398e33}@supports (color:color-mix(in lab, red, red)){.bg-blue-900\/20{background-color:color-mix(in oklab, var(--color-blue-900) 20%, transparent)}}.bg-current{background-color:currentColor}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-600{background-color:var(--color-gray-600)}.bg-gray-700{background-color:var(--color-gray-700)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-900\/20{background-color:#0d542b33}@supports (color:color-mix(in lab, red, red)){.bg-green-900\/20{background-color:color-mix(in oklab, var(--color-green-900) 20%, transparent)}}.bg-green-900\/30{background-color:#0d542b4d}@supports (color:color-mix(in lab, red, red)){.bg-green-900\/30{background-color:color-mix(in oklab, var(--color-green-900) 30%, transparent)}}.bg-indigo-50{background-color:var(--color-indigo-50)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-600{background-color:var(--color-red-600)}.bg-red-900\/20{background-color:#82181a33}@supports (color:color-mix(in lab, red, red)){.bg-red-900\/20{background-color:color-mix(in oklab, var(--color-red-900) 20%, transparent)}}.bg-red-900\/30{background-color:#82181a4d}@supports (color:color-mix(in lab, red, red)){.bg-red-900\/30{background-color:color-mix(in oklab, var(--color-red-900) 30%, transparent)}}.bg-red-900\/40{background-color:#82181a66}@supports (color:color-mix(in lab, red, red)){.bg-red-900\/40{background-color:color-mix(in oklab, var(--color-red-900) 40%, transparent)}}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-500{background-color:var(--color-rose-500)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-900\/20{background-color:#733e0a33}@supports (color:color-mix(in lab, red, red)){.bg-yellow-900\/20{background-color:color-mix(in oklab, var(--color-yellow-900) 20%, transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-gray-50{--tw-gradient-from:var(--color-gray-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-rose-50{--tw-gradient-from:var(--color-rose-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-rose-500{--tw-gradient-from:var(--color-rose-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-gray-100{--tw-gradient-to:var(--color-gray-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple-50{--tw-gradient-to:var(--color-purple-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple-600{--tw-gradient-to:var(--color-purple-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-10{padding-left:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.9em\]{font-size:.9em}.text-\[0\.85em\]{font-size:.85em}.text-\[0\.95em\]{font-size:.95em}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-300{color:var(--color-amber-300)}.text-amber-500{color:var(--color-amber-500)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-blue-200{color:var(--color-blue-200)}.text-blue-300{color:var(--color-blue-300)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-gray-100{color:var(--color-gray-100)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-300{color:var(--color-green-300)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-indigo-700{color:var(--color-indigo-700)}.text-purple-700{color:var(--color-purple-700)}.text-red-100{color:var(--color-red-100)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-rose-100{color:var(--color-rose-100)}.text-rose-500{color:var(--color-rose-500)}.text-rose-600{color:var(--color-rose-600)}.text-white{color:var(--color-white)}.text-yellow-300{color:var(--color-yellow-300)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.placeholder-gray-500::placeholder{color:var(--color-gray-500)}.accent-red-500{accent-color:var(--color-red-500)}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-emerald-200{--tw-ring-color:var(--color-emerald-200)}.ring-red-100{--tw-ring-color:var(--color-red-100)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:bg-gray-400:is(:where(.group):hover *){background-color:var(--color-gray-400)}.group-hover\:bg-gray-500:is(:where(.group):hover *){background-color:var(--color-gray-500)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-focus-visible\:bg-red-500:is(:where(.group):focus-visible *){background-color:var(--color-red-500)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.focus-within\:opacity-100:focus-within{opacity:1}@media (hover:hover){.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:bg-\[var\(--color-hover\)\]:hover{background-color:var(--color-hover)}.hover\:bg-amber-600:hover{background-color:var(--color-amber-600)}.hover\:bg-black\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/5:hover{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}.hover\:bg-purple-600:hover{background-color:var(--color-purple-600)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-red-900\/40:hover{background-color:#82181a66}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-900\/40:hover{background-color:color-mix(in oklab, var(--color-red-900) 40%, transparent)}}.hover\:bg-red-900\/60:hover{background-color:#82181a99}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-900\/60:hover{background-color:color-mix(in oklab, var(--color-red-900) 60%, transparent)}}.hover\:bg-rose-600:hover{background-color:var(--color-rose-600)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.hover\:text-amber-900:hover{color:var(--color-amber-900)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-gray-300:hover{color:var(--color-gray-300)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:text-rose-700:hover{color:var(--color-rose-700)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:border-transparent:focus{border-color:#0000}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-rose-500:focus{--tw-ring-color:var(--color-rose-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-100:disabled{background-color:var(--color-gray-100)}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media (min-width:40rem){.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}}@media (min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:flex{display:flex}.lg\:h-full{height:100%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:gap-0{gap:0}}@media (min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}.aa-dashboard{--color-accent:#fa343b;--color-accent-hover:#e02d33;--color-accent-b:#fa343b29;--color-accent-b-hover:#fa343b33;--color-on-accent:#fff;--color-accent-ui:#ef4444;--color-accent-ui-hover:#dc2626;--color-accent-ui-muted:#ef444426;--color-accent-ui-tint:#fef2f2;--color-background:#f9fafb;--color-background-page:#fff;--color-surface:#fff;--color-card:#fff;--color-muted:#f3f4f6;--color-hover:#f3f4f6;--color-background-blur:#ffffffe6;--color-border:#e5e7eb;--color-border-light:#f3f4f6;--color-border-strong:#d1d5db;--color-text-primary:#111827;--color-text-secondary:#6b7280;--color-text-muted:#9ca3af;--color-text-cell:#4b5563;--color-success:#16a34a;--color-success-soft:#dcfce7;--color-success-text:#166534;--color-warning:#eab308;--color-warning-soft:#fef9c3;--color-warning-text:#854d0e;--color-error:#dc2626;--color-error-soft:#fee2e2;--color-error-text:#991b1b;--color-info:#3b82f6;--color-info-soft:#dbeafe;--color-info-text:#1e40af;--color-system:#8b5cf6;--color-system-soft:#ede9fe;--color-system-text:#6d28d9;--color-dev:#14b8a6;--color-dev-soft:#ccfbf1;--color-dev-text:#0f766e;--span-root:#9ca3af;--span-prompt:#60a5fa;--span-generate:#a855f7;--span-llm:#ef4444;--span-thinking:#fbbf24;--span-tool:#22c55e;--span-response:#2dd4bf;--color-token-in:#2563eb;--color-token-out:#7c3aed;--chart-1:#6366f1;--chart-2:#10b981;--chart-3:#f59e0b;--chart-4:#ec4899;--chart-5:#3b82f6;--font-text:"Inter Variable", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", "Fira Code", Menlo, Consolas, "Courier New", monospace}.aa-dashboard.theme-dark{color-scheme:dark;--color-accent-ui-tint:#ef444426;--color-background:#0f0f0f;--color-background-page:#0f0f0f;--color-surface:#1a1a1a;--color-card:#ffffff0d;--color-muted:#ffffff0d;--color-hover:#252525;--color-background-blur:#0f0f0fe6;--color-border:#ffffff1a;--color-border-light:#ffffff0d;--color-border-strong:#fff3;--color-text-primary:#fff;--color-text-secondary:#fff9;--color-text-muted:#fff6;--color-text-cell:#ffffffb3;--color-success-soft:#16a34a26;--color-success-text:#4ade80;--color-warning-soft:#eab30826;--color-warning-text:#facc15;--color-error-soft:#dc262626;--color-error-text:#f87171;--color-info-soft:#3b82f626;--color-info-text:#93c5fd;--color-system-soft:#8b5cf626;--color-system-text:#c4b5fd;--color-dev-soft:#14b8a626;--color-dev-text:#5eead4}.aa-dashboard .aa-chevron{transition:transform .15s;display:inline-block}.aa-dashboard .aa-chevron[data-open=true]{transform:rotate(90deg)}.aa-dashboard .aa-roster-row{background:0 0}.aa-dashboard .aa-roster-row[data-on=true]{background:var(--color-accent-ui-tint)}.aa-dashboard .aa-roster-row:hover{background:var(--color-hover)}.aa-fix-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000080}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}} \ No newline at end of file diff --git a/actionagent/app/assets/builds/action_agent.js b/actionagent/app/assets/builds/action_agent.js index 891907b7f..3894f4b55 100644 --- a/actionagent/app/assets/builds/action_agent.js +++ b/actionagent/app/assets/builds/action_agent.js @@ -1,97 +1,97 @@ -var yte=Object.create;var EA=Object.defineProperty;var vte=Object.getOwnPropertyDescriptor;var xte=Object.getOwnPropertyNames;var bte=Object.getPrototypeOf,wte=Object.prototype.hasOwnProperty;var $o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ste=(e,t)=>{for(var r in t)EA(e,r,{get:t[r],enumerable:!0})},kte=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of xte(t))!wte.call(e,o)&&o!==r&&EA(e,o,{get:()=>t[o],enumerable:!(n=vte(t,o))||n.enumerable});return e};var Z=(e,t,r)=>(r=e!=null?yte(bte(e)):{},kte(t||!e||!e.__esModule?EA(r,"default",{value:e,enumerable:!0}):r,e));var Uj=$o(Vt=>{"use strict";var OA=Symbol.for("react.transitional.element"),_te=Symbol.for("react.portal"),Cte=Symbol.for("react.fragment"),Ate=Symbol.for("react.strict_mode"),Ete=Symbol.for("react.profiler"),Nte=Symbol.for("react.consumer"),Tte=Symbol.for("react.context"),Ote=Symbol.for("react.forward_ref"),Pte=Symbol.for("react.suspense"),Mte=Symbol.for("react.memo"),jj=Symbol.for("react.lazy"),Ite=Symbol.for("react.activity"),Pj=Symbol.iterator;function Dte(e){return e===null||typeof e!="object"?null:(e=Pj&&e[Pj]||e["@@iterator"],typeof e=="function"?e:null)}var $j={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Lj=Object.assign,zj={};function Mf(e,t,r){this.props=e,this.context=t,this.refs=zj,this.updater=r||$j}Mf.prototype.isReactComponent={};Mf.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")};Mf.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Bj(){}Bj.prototype=Mf.prototype;function PA(e,t,r){this.props=e,this.context=t,this.refs=zj,this.updater=r||$j}var MA=PA.prototype=new Bj;MA.constructor=PA;Lj(MA,Mf.prototype);MA.isPureReactComponent=!0;var Mj=Array.isArray;function TA(){}var pn={H:null,A:null,T:null,S:null},Fj=Object.prototype.hasOwnProperty;function IA(e,t,r){var n=r.ref;return{$$typeof:OA,type:e,key:t,ref:n!==void 0?n:null,props:r}}function jte(e,t){return IA(e.type,t,e.props)}function DA(e){return typeof e=="object"&&e!==null&&e.$$typeof===OA}function $te(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return t[r]})}var Ij=/\/+/g;function NA(e,t){return typeof e=="object"&&e!==null&&e.key!=null?$te(""+e.key):t.toString(36)}function Lte(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(TA,TA):(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 Pf(e,t,r,n,o){var a=typeof e;(a==="undefined"||a==="boolean")&&(e=null);var i=!1;if(e===null)i=!0;else switch(a){case"bigint":case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case OA:case _te:i=!0;break;case jj:return i=e._init,Pf(i(e._payload),t,r,n,o)}}if(i)return o=o(e),i=n===""?"."+NA(e,0):n,Mj(o)?(r="",i!=null&&(r=i.replace(Ij,"$&/")+"/"),Pf(o,t,r,"",function(u){return u})):o!=null&&(DA(o)&&(o=jte(o,r+(o.key==null||e&&e.key===o.key?"":(""+o.key).replace(Ij,"$&/")+"/")+i)),t.push(o)),1;i=0;var s=n===""?".":n+":";if(Mj(e))for(var l=0;l{"use strict";Wj.exports=Uj()});var Qj=$o(_n=>{"use strict";function zA(e,t){var r=e.length;e.push(t);e:for(;0>>1,o=e[n];if(0>>1;nbb(s,r))lbb(u,s)?(e[n]=u,e[l]=r,n=l):(e[n]=s,e[i]=r,n=i);else if(lbb(u,r))e[n]=u,e[l]=r,n=l;else break e}}return t}function bb(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}_n.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(Hj=performance,_n.unstable_now=function(){return Hj.now()}):(jA=Date,qj=jA.now(),_n.unstable_now=function(){return jA.now()-qj});var Hj,jA,qj,Il=[],Ku=[],Fte=1,Ii=null,oa=3,BA=!1,Rh=!1,ey=!1,FA=!1,Gj=typeof setTimeout=="function"?setTimeout:null,Yj=typeof clearTimeout=="function"?clearTimeout:null,Kj=typeof setImmediate<"u"?setImmediate:null;function wb(e){for(var t=Qs(Ku);t!==null;){if(t.callback===null)Sb(Ku);else if(t.startTime<=e)Sb(Ku),t.sortIndex=t.expirationTime,zA(Il,t);else break;t=Qs(Ku)}}function UA(e){if(ey=!1,wb(e),!Rh)if(Qs(Il)!==null)Rh=!0,Df||(Df=!0,If());else{var t=Qs(Ku);t!==null&&WA(UA,t.startTime-e)}}var Df=!1,ty=-1,Xj=5,Zj=-1;function Jj(){return FA?!0:!(_n.unstable_now()-Zje&&Jj());){var n=Ii.callback;if(typeof n=="function"){Ii.callback=null,oa=Ii.priorityLevel;var o=n(Ii.expirationTime<=e);if(e=_n.unstable_now(),typeof o=="function"){Ii.callback=o,wb(e),t=!0;break t}Ii===Qs(Il)&&Sb(Il),wb(e)}else Sb(Il);Ii=Qs(Il)}if(Ii!==null)t=!0;else{var a=Qs(Ku);a!==null&&WA(UA,a.startTime-e),t=!1}}break e}finally{Ii=null,oa=r,BA=!1}t=void 0}}finally{t?If():Df=!1}}}var If;typeof Kj=="function"?If=function(){Kj($A)}:typeof MessageChannel<"u"?(LA=new MessageChannel,Vj=LA.port2,LA.port1.onmessage=$A,If=function(){Vj.postMessage(null)}):If=function(){Gj($A,0)};var LA,Vj;function WA(e,t){ty=Gj(function(){e(_n.unstable_now())},t)}_n.unstable_IdlePriority=5;_n.unstable_ImmediatePriority=1;_n.unstable_LowPriority=4;_n.unstable_NormalPriority=3;_n.unstable_Profiling=null;_n.unstable_UserBlockingPriority=2;_n.unstable_cancelCallback=function(e){e.callback=null};_n.unstable_forceFrameRate=function(e){0>e||125n?(e.sortIndex=r,zA(Ku,e),Qs(Il)===null&&e===Qs(Ku)&&(ey?(Yj(ty),ty=-1):ey=!0,WA(UA,r-n))):(e.sortIndex=o,zA(Il,e),Rh||BA||(Rh=!0,Df||(Df=!0,If()))),e};_n.unstable_shouldYield=Jj;_n.unstable_wrapCallback=function(e){var t=oa;return function(){var r=oa;oa=t;try{return e.apply(this,arguments)}finally{oa=r}}}});var e4=$o((NAe,Rj)=>{"use strict";Rj.exports=Qj()});var r4=$o(xa=>{"use strict";var Ute=J();function t4(e){var t="https://react.dev/errors/"+e;if(1{"use strict";function n4(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n4)}catch(e){console.error(e)}}n4(),o4.exports=r4()});var h6=$o(Y1=>{"use strict";var _o=e4(),O$=J(),qte=ny();function Ae(e){var t="https://react.dev/errors/"+e;if(1Uf||(e.current=EE[Uf],EE[Uf]=null,Uf--)}function on(e,t){Uf++,EE[Uf]=e.current,e.current=t}var rl=nl(null),Ty=nl(null),oc=nl(null),n1=nl(null);function o1(e,t){switch(on(oc,t),on(Ty,e),on(rl,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?f$(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=f$(t),e=r6(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}Bo(rl),on(rl,e)}function am(){Bo(rl),Bo(Ty),Bo(oc)}function NE(e){e.memoizedState!==null&&on(n1,e);var t=rl.current,r=r6(t,e.type);t!==r&&(on(Ty,e),on(rl,r))}function a1(e){Ty.current===e&&(Bo(rl),Bo(Ty)),n1.current===e&&(Bo(n1),Fy._currentValue=Id)}var HA,s4;function Td(e){if(HA===void 0)try{throw Error()}catch(r){var t=r.stack.trim().match(/\n( *(at )?)/);HA=t&&t[1]||"",s4=-1()=>(t||e((t={exports:{}}).exports,t),t.exports),_te=(e,t)=>{for(var r in t)NA(e,r,{get:t[r],enumerable:!0})},Cte=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of wte(t))!kte.call(e,o)&&o!==r&&NA(e,o,{get:()=>t[o],enumerable:!(n=bte(t,o))||n.enumerable});return e};var Z=(e,t,r)=>(r=e!=null?xte(Ste(e)):{},Cte(t||!e||!e.__esModule?NA(r,"default",{value:e,enumerable:!0}):r,e));var Wj=$o(Vt=>{"use strict";var PA=Symbol.for("react.transitional.element"),Ate=Symbol.for("react.portal"),Ete=Symbol.for("react.fragment"),Nte=Symbol.for("react.strict_mode"),Tte=Symbol.for("react.profiler"),Ote=Symbol.for("react.consumer"),Pte=Symbol.for("react.context"),Mte=Symbol.for("react.forward_ref"),Ite=Symbol.for("react.suspense"),Dte=Symbol.for("react.memo"),$j=Symbol.for("react.lazy"),jte=Symbol.for("react.activity"),Mj=Symbol.iterator;function $te(e){return e===null||typeof e!="object"?null:(e=Mj&&e[Mj]||e["@@iterator"],typeof e=="function"?e:null)}var Lj={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},zj=Object.assign,Bj={};function If(e,t,r){this.props=e,this.context=t,this.refs=Bj,this.updater=r||Lj}If.prototype.isReactComponent={};If.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};If.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Fj(){}Fj.prototype=If.prototype;function MA(e,t,r){this.props=e,this.context=t,this.refs=Bj,this.updater=r||Lj}var IA=MA.prototype=new Fj;IA.constructor=MA;zj(IA,If.prototype);IA.isPureReactComponent=!0;var Ij=Array.isArray;function OA(){}var pn={H:null,A:null,T:null,S:null},Uj=Object.prototype.hasOwnProperty;function DA(e,t,r){var n=r.ref;return{$$typeof:PA,type:e,key:t,ref:n!==void 0?n:null,props:r}}function Lte(e,t){return DA(e.type,t,e.props)}function jA(e){return typeof e=="object"&&e!==null&&e.$$typeof===PA}function zte(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return t[r]})}var Dj=/\/+/g;function TA(e,t){return typeof e=="object"&&e!==null&&e.key!=null?zte(""+e.key):t.toString(36)}function Bte(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(OA,OA):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function Mf(e,t,r,n,o){var a=typeof e;(a==="undefined"||a==="boolean")&&(e=null);var i=!1;if(e===null)i=!0;else switch(a){case"bigint":case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case PA:case Ate:i=!0;break;case $j:return i=e._init,Mf(i(e._payload),t,r,n,o)}}if(i)return o=o(e),i=n===""?"."+TA(e,0):n,Ij(o)?(r="",i!=null&&(r=i.replace(Dj,"$&/")+"/"),Mf(o,t,r,"",function(u){return u})):o!=null&&(jA(o)&&(o=Lte(o,r+(o.key==null||e&&e.key===o.key?"":(""+o.key).replace(Dj,"$&/")+"/")+i)),t.push(o)),1;i=0;var s=n===""?".":n+":";if(Ij(e))for(var l=0;l{"use strict";Hj.exports=Wj()});var Rj=$o(_n=>{"use strict";function BA(e,t){var r=e.length;e.push(t);e:for(;0>>1,o=e[n];if(0>>1;nwb(s,r))lwb(u,s)?(e[n]=u,e[l]=r,n=l):(e[n]=s,e[i]=r,n=i);else if(lwb(u,r))e[n]=u,e[l]=r,n=l;else break e}}return t}function wb(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}_n.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(qj=performance,_n.unstable_now=function(){return qj.now()}):($A=Date,Kj=$A.now(),_n.unstable_now=function(){return $A.now()-Kj});var qj,$A,Kj,Dl=[],Vu=[],Wte=1,Ii=null,oa=3,FA=!1,ey=!1,ty=!1,UA=!1,Yj=typeof setTimeout=="function"?setTimeout:null,Xj=typeof clearTimeout=="function"?clearTimeout:null,Vj=typeof setImmediate<"u"?setImmediate:null;function Sb(e){for(var t=Qs(Vu);t!==null;){if(t.callback===null)kb(Vu);else if(t.startTime<=e)kb(Vu),t.sortIndex=t.expirationTime,BA(Dl,t);else break;t=Qs(Vu)}}function WA(e){if(ty=!1,Sb(e),!ey)if(Qs(Dl)!==null)ey=!0,jf||(jf=!0,Df());else{var t=Qs(Vu);t!==null&&HA(WA,t.startTime-e)}}var jf=!1,ry=-1,Zj=5,Jj=-1;function Qj(){return UA?!0:!(_n.unstable_now()-Jje&&Qj());){var n=Ii.callback;if(typeof n=="function"){Ii.callback=null,oa=Ii.priorityLevel;var o=n(Ii.expirationTime<=e);if(e=_n.unstable_now(),typeof o=="function"){Ii.callback=o,Sb(e),t=!0;break t}Ii===Qs(Dl)&&kb(Dl),Sb(e)}else kb(Dl);Ii=Qs(Dl)}if(Ii!==null)t=!0;else{var a=Qs(Vu);a!==null&&HA(WA,a.startTime-e),t=!1}}break e}finally{Ii=null,oa=r,FA=!1}t=void 0}}finally{t?Df():jf=!1}}}var Df;typeof Vj=="function"?Df=function(){Vj(LA)}:typeof MessageChannel<"u"?(zA=new MessageChannel,Gj=zA.port2,zA.port1.onmessage=LA,Df=function(){Gj.postMessage(null)}):Df=function(){Yj(LA,0)};var zA,Gj;function HA(e,t){ry=Yj(function(){e(_n.unstable_now())},t)}_n.unstable_IdlePriority=5;_n.unstable_ImmediatePriority=1;_n.unstable_LowPriority=4;_n.unstable_NormalPriority=3;_n.unstable_Profiling=null;_n.unstable_UserBlockingPriority=2;_n.unstable_cancelCallback=function(e){e.callback=null};_n.unstable_forceFrameRate=function(e){0>e||125n?(e.sortIndex=r,BA(Vu,e),Qs(Dl)===null&&e===Qs(Vu)&&(ty?(Xj(ry),ry=-1):ty=!0,HA(WA,r-n))):(e.sortIndex=o,BA(Dl,e),ey||FA||(ey=!0,jf||(jf=!0,Df()))),e};_n.unstable_shouldYield=Qj;_n.unstable_wrapCallback=function(e){var t=oa;return function(){var r=oa;oa=t;try{return e.apply(this,arguments)}finally{oa=r}}}});var t4=$o((MAe,e4)=>{"use strict";e4.exports=Rj()});var n4=$o(xa=>{"use strict";var Hte=J();function r4(e){var t="https://react.dev/errors/"+e;if(1{"use strict";function o4(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o4)}catch(e){console.error(e)}}o4(),a4.exports=n4()});var y6=$o(X1=>{"use strict";var _o=t4(),P$=J(),Vte=oy();function Ae(e){var t="https://react.dev/errors/"+e;if(1Wf||(e.current=NE[Wf],NE[Wf]=null,Wf--)}function on(e,t){Wf++,NE[Wf]=e.current,e.current=t}var rl=nl(null),Oy=nl(null),ac=nl(null),o1=nl(null);function a1(e,t){switch(on(ac,t),on(Oy,e),on(rl,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?m$(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=m$(t),e=n6(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}Bo(rl),on(rl,e)}function im(){Bo(rl),Bo(Oy),Bo(ac)}function TE(e){e.memoizedState!==null&&on(o1,e);var t=rl.current,r=n6(t,e.type);t!==r&&(on(Oy,e),on(rl,r))}function i1(e){Oy.current===e&&(Bo(rl),Bo(Oy)),o1.current===e&&(Bo(o1),Uy._currentValue=Dd)}var qA,l4;function Od(e){if(qA===void 0)try{throw Error()}catch(r){var t=r.stack.trim().match(/\n( *(at )?)/);qA=t&&t[1]||"",l4=-1)":-1o||l[n]!==u[o]){var c=` -`+l[n].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=n&&0<=o);break}}}finally{qA=!1,Error.prepareStackTrace=r}return(r=e?e.displayName||e.name:"")?Td(r):""}function Xte(e,t){switch(e.tag){case 26:case 27:case 5:return Td(e.type);case 16:return Td("Lazy");case 13:return e.child!==t&&t!==null?Td("Suspense Fallback"):Td("Suspense");case 19:return Td("SuspenseList");case 0:case 15:return KA(e.type,!1);case 11:return KA(e.type.render,!1);case 1:return KA(e.type,!0);case 31:return Td("Activity");default:return""}}function l4(e){try{var t="",r=null;do t+=Xte(e,r),r=e,e=e.return;while(e);return t}catch(n){return` +`+l[n].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=n&&0<=o);break}}}finally{KA=!1,Error.prepareStackTrace=r}return(r=e?e.displayName||e.name:"")?Od(r):""}function Jte(e,t){switch(e.tag){case 26:case 27:case 5:return Od(e.type);case 16:return Od("Lazy");case 13:return e.child!==t&&t!==null?Od("Suspense Fallback"):Od("Suspense");case 19:return Od("SuspenseList");case 0:case 15:return VA(e.type,!1);case 11:return VA(e.type.render,!1);case 1:return VA(e.type,!0);case 31:return Od("Activity");default:return""}}function u4(e){try{var t="",r=null;do t+=Jte(e,r),r=e,e=e.return;while(e);return t}catch(n){return` Error generating stack: `+n.message+` -`+n.stack}}var TE=Object.prototype.hasOwnProperty,xN=_o.unstable_scheduleCallback,VA=_o.unstable_cancelCallback,Zte=_o.unstable_shouldYield,Jte=_o.unstable_requestPaint,li=_o.unstable_now,Qte=_o.unstable_getCurrentPriorityLevel,L$=_o.unstable_ImmediatePriority,z$=_o.unstable_UserBlockingPriority,i1=_o.unstable_NormalPriority,Rte=_o.unstable_LowPriority,B$=_o.unstable_IdlePriority,ere=_o.log,tre=_o.unstable_setDisableYieldValue,qy=null,ui=null;function Ru(e){if(typeof ere=="function"&&tre(e),ui&&typeof ui.setStrictMode=="function")try{ui.setStrictMode(qy,e)}catch{}}var ci=Math.clz32?Math.clz32:ore,rre=Math.log,nre=Math.LN2;function ore(e){return e>>>=0,e===0?32:31-(rre(e)/nre|0)|0}var Cb=256,Ab=262144,Eb=4194304;function Od(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 M1(e,t,r){var n=e.pendingLanes;if(n===0)return 0;var o=0,a=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var s=n&134217727;return s!==0?(n=s&~a,n!==0?o=Od(n):(i&=s,i!==0?o=Od(i):r||(r=s&~e,r!==0&&(o=Od(r))))):(s=n&~a,s!==0?o=Od(s):i!==0?o=Od(i):r||(r=n&~e,r!==0&&(o=Od(r)))),o===0?0:t!==0&&t!==o&&(t&a)===0&&(a=o&-o,r=t&-t,a>=r||a===32&&(r&4194048)!==0)?t:o}function Ky(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function are(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 F$(){var e=Eb;return Eb<<=1,(Eb&62914560)===0&&(Eb=4194304),e}function GA(e){for(var t=[],r=0;31>r;r++)t.push(e);return t}function Vy(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ire(e,t,r,n,o,a){var i=e.pendingLanes;e.pendingLanes=r,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=r,e.entangledLanes&=r,e.errorRecoveryDisabledLanes&=r,e.shellSuspendCounter=0;var s=e.entanglements,l=e.expirationTimes,u=e.hiddenUpdates;for(r=i&~r;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var pre=/[\n"\\]/g;function zi(e){return e.replace(pre,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function ME(e,t,r,n,o,a,i,s){e.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?e.type=i:e.removeAttribute("type"),t!=null?i==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+ji(t)):e.value!==""+ji(t)&&(e.value=""+ji(t)):i!=="submit"&&i!=="reset"||e.removeAttribute("value"),t!=null?IE(e,i,ji(t)):r!=null?IE(e,i,ji(r)):n!=null&&e.removeAttribute("value"),o==null&&a!=null&&(e.defaultChecked=!!a),o!=null&&(e.checked=o&&typeof o!="function"&&typeof o!="symbol"),s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"?e.name=""+ji(s):e.removeAttribute("name")}function X$(e,t,r,n,o,a,i,s){if(a!=null&&typeof a!="function"&&typeof a!="symbol"&&typeof a!="boolean"&&(e.type=a),t!=null||r!=null){if(!(a!=="submit"&&a!=="reset"||t!=null)){PE(e);return}r=r!=null?""+ji(r):"",t=t!=null?""+ji(t):r,s||t===e.value||(e.value=t),e.defaultValue=t}n=n??o,n=typeof n!="function"&&typeof n!="symbol"&&!!n,e.checked=s?e.checked:!!n,e.defaultChecked=!!n,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.name=i),PE(e)}function IE(e,t,r){t==="number"&&s1(e.ownerDocument)===e||e.defaultValue===""+r||(e.defaultValue=""+r)}function Rf(e,t,r,n){if(e=e.options,t){t={};for(var o=0;o"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),jE=!1;if(Gl)try{jf={},Object.defineProperty(jf,"passive",{get:function(){jE=!0}}),window.addEventListener("test",jf,jf),window.removeEventListener("test",jf,jf)}catch{jE=!1}var jf,ec=null,CN=null,qb=null;function eL(){if(qb)return qb;var e,t=CN,r=t.length,n,o="value"in ec?ec.value:ec.textContent,a=o.length;for(e=0;e=hy),x4=" ",b4=!1;function rL(e,t){switch(e){case"keyup":return Fre.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function nL(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var qf=!1;function Wre(e,t){switch(e){case"compositionend":return nL(t);case"keypress":return t.which!==32?null:(b4=!0,x4);case"textInput":return e=t.data,e===x4&&b4?null:e;default:return null}}function Hre(e,t){if(qf)return e==="compositionend"||!EN&&rL(e,t)?(e=eL(),qb=CN=ec=null,qf=!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=_4(r)}}function sL(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?sL(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function lL(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=s1(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=s1(e.document)}return t}function NN(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 Jre=Gl&&"documentMode"in document&&11>=document.documentMode,Kf=null,$E=null,vy=null,LE=!1;function A4(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;LE||Kf==null||Kf!==s1(n)||(n=Kf,"selectionStart"in n&&NN(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}),vy&&My(vy,n)||(vy=n,n=C1($E,"onSelect"),0>=i,o-=i,Rs=1<<32-ci(t)+o|r<k?(A=w,w=null):A=w.sibling;var C=p(g,w,v[k],x);if(C===null){w===null&&(w=A);break}e&&w&&C.alternate===null&&t(g,w),h=a(C,h,k),_===null?S=C:_.sibling=C,_=C,w=A}if(k===v.length)return r(g,w),gr&&Bl(g,k),S;if(w===null){for(;kk?(A=w,w=null):A=w.sibling;var T=p(g,w,C.value,x);if(T===null){w===null&&(w=A);break}e&&w&&T.alternate===null&&t(g,w),h=a(T,h,k),_===null?S=T:_.sibling=T,_=T,w=A}if(C.done)return r(g,w),gr&&Bl(g,k),S;if(w===null){for(;!C.done;k++,C=v.next())C=d(g,C.value,x),C!==null&&(h=a(C,h,k),_===null?S=C:_.sibling=C,_=C);return gr&&Bl(g,k),S}for(w=n(w);!C.done;k++,C=v.next())C=f(w,g,k,C.value,x),C!==null&&(e&&C.alternate!==null&&w.delete(C.key===null?k:C.key),h=a(C,h,k),_===null?S=C:_.sibling=C,_=C);return e&&w.forEach(function($){return t(g,$)}),gr&&Bl(g,k),S}function b(g,h,v,x){if(typeof v=="object"&&v!==null&&v.type===Ff&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case _b:e:{for(var S=v.key;h!==null;){if(h.key===S){if(S=v.type,S===Ff){if(h.tag===7){r(g,h.sibling),x=o(h,v.props.children),x.return=g,g=x;break e}}else if(h.elementType===S||typeof S=="object"&&S!==null&&S.$$typeof===Gu&&Pd(S)===h.type){r(g,h.sibling),x=o(h,v.props),iy(x,v),x.return=g,g=x;break e}r(g,h);break}else t(g,h);h=h.sibling}v.type===Ff?(x=Dd(v.props.children,g.mode,x,v.key),x.return=g,g=x):(x=Vb(v.type,v.key,v.props,null,g.mode,x),iy(x,v),x.return=g,g=x)}return i(g);case dy:e:{for(S=v.key;h!==null;){if(h.key===S)if(h.tag===4&&h.stateNode.containerInfo===v.containerInfo&&h.stateNode.implementation===v.implementation){r(g,h.sibling),x=o(h,v.children||[]),x.return=g,g=x;break e}else{r(g,h);break}else t(g,h);h=h.sibling}x=tE(v,g.mode,x),x.return=g,g=x}return i(g);case Gu:return v=Pd(v),b(g,h,v,x)}if(py(v))return m(g,h,v,x);if(oy(v)){if(S=oy(v),typeof S!="function")throw Error(Ae(150));return v=S.call(v),y(g,h,v,x)}if(typeof v.then=="function")return b(g,h,Ib(v),x);if(v.$$typeof===Ul)return b(g,h,Mb(g,v),x);Db(g,v)}return typeof v=="string"&&v!==""||typeof v=="number"||typeof v=="bigint"?(v=""+v,h!==null&&h.tag===6?(r(g,h.sibling),x=o(h,v),x.return=g,g=x):(r(g,h),x=eE(v,g.mode,x),x.return=g,g=x),i(g)):r(g,h)}return function(g,h,v,x){try{jy=0;var S=b(g,h,v,x);return rm=null,S}catch(w){if(w===xm||w===z1)throw w;var _=ii(29,w,null,g.mode);return _.lanes=x,_.return=g,_}}}var Fd=kL(!0),_L=kL(!1),Yu=!1;function LN(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function qE(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 ic(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function sc(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,(Tr&2)!==0){var o=n.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),n.pending=t,t=u1(e),gL(e,null,r),t}return L1(e,n,t,r),u1(e)}function by(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,W$(e,r)}}function nE(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var o=null,a=null;if(r=r.firstBaseUpdate,r!==null){do{var i={lane:r.lane,tag:r.tag,payload:r.payload,callback:null,next:null};a===null?o=a=i:a=a.next=i,r=r.next}while(r!==null);a===null?o=a=t:a=a.next=t}else o=a=t;r={baseState:n.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:n.shared,callbacks:n.callbacks},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}var KE=!1;function wy(){if(KE){var e=tm;if(e!==null)throw e}}function Sy(e,t,r,n){KE=!1;var o=e.updateQueue;Yu=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var l=s,u=l.next;l.next=null,i===null?a=u:i.next=u,i=l;var c=e.alternate;c!==null&&(c=c.updateQueue,s=c.lastBaseUpdate,s!==i&&(s===null?c.firstBaseUpdate=u:s.next=u,c.lastBaseUpdate=l))}if(a!==null){var d=o.baseState;i=0,c=u=l=null,s=a;do{var p=s.lane&-536870913,f=p!==s.lane;if(f?(pr&p)===p:(n&p)===p){p!==0&&p===lm&&(KE=!0),c!==null&&(c=c.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});e:{var m=e,y=s;p=t;var b=r;switch(y.tag){case 1:if(m=y.payload,typeof m=="function"){d=m.call(b,d,p);break e}d=m;break e;case 3:m.flags=m.flags&-65537|128;case 0:if(m=y.payload,p=typeof m=="function"?m.call(b,d,p):m,p==null)break e;d=gn({},d,p);break e;case 2:Yu=!0}}p=s.callback,p!==null&&(e.flags|=64,f&&(e.flags|=8192),f=o.callbacks,f===null?o.callbacks=[p]:f.push(p))}else f={lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},c===null?(u=c=f,l=d):c=c.next=f,i|=p;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;f=s,s=f.next,f.next=null,o.lastBaseUpdate=f,o.shared.pending=null}}while(!0);c===null&&(l=d),o.baseState=l,o.firstBaseUpdate=u,o.lastBaseUpdate=c,a===null&&(o.shared.lanes=0),hc|=i,e.lanes=i,e.memoizedState=d}}function CL(e,t){if(typeof e!="function")throw Error(Ae(191,e));e.call(t)}function AL(e,t){var r=e.callbacks;if(r!==null)for(e.callbacks=null,e=0;ea?a:8;var i=$t.T,s={};$t.T=s,ZN(e,!1,t,r);try{var l=o(),u=$t.S;if(u!==null&&u(s,l),l!==null&&typeof l=="object"&&typeof l.then=="function"){var c=ine(l,n);ky(e,t,c,di(e))}else ky(e,t,n,di(e))}catch(d){ky(e,t,{then:function(){},status:"rejected",reason:d},di())}finally{Or.p=a,i!==null&&s.types!==null&&(i.types=s.types),$t.T=i}}function pne(){}function ZE(e,t,r,n){if(e.tag!==5)throw Error(Ae(476));var o=JL(e).queue;ZL(e,o,t,Id,r===null?pne:function(){return QL(e),r(n)})}function JL(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Id,baseState:Id,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xl,lastRenderedState:Id},next:null};var r={};return t.next={memoizedState:r,baseState:r,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xl,lastRenderedState:r},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function QL(e){var t=JL(e);t.next===null&&(t=e.alternate.memoizedState),ky(e,t.next.queue,{},di())}function XN(){return Zo(Fy)}function RL(){return no().memoizedState}function e8(){return no().memoizedState}function fne(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var r=di();e=ic(r);var n=sc(t,e,r);n!==null&&(Fa(n,t,r),by(n,t,r)),t={cache:DN()},e.payload=t;return}t=t.return}}function mne(e,t,r){var n=di();r={lane:n,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},W1(e)?r8(t,r):(r=ON(e,t,r,n),r!==null&&(Fa(r,e,n),n8(r,t,n)))}function t8(e,t,r){var n=di();ky(e,t,r,n)}function ky(e,t,r,n){var o={lane:n,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null};if(W1(e))r8(t,o);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var i=t.lastRenderedState,s=a(i,r);if(o.hasEagerState=!0,o.eagerState=s,pi(s,i))return L1(e,t,o,0),Xr===null&&$1(),!1}catch{}if(r=ON(e,t,o,n),r!==null)return Fa(r,e,n),n8(r,t,n),!0}return!1}function ZN(e,t,r,n){if(n={lane:2,revertLane:aT(),gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},W1(e)){if(t)throw Error(Ae(479))}else t=ON(e,r,n,2),t!==null&&Fa(t,e,2)}function W1(e){var t=e.alternate;return e===Xt||t!==null&&t===Xt}function r8(e,t){nm=g1=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function n8(e,t,r){if((r&4194048)!==0){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,W$(e,r)}}var Ly={readContext:Zo,use:F1,useCallback:Hn,useContext:Hn,useEffect:Hn,useImperativeHandle:Hn,useLayoutEffect:Hn,useInsertionEffect:Hn,useMemo:Hn,useReducer:Hn,useRef:Hn,useState:Hn,useDebugValue:Hn,useDeferredValue:Hn,useTransition:Hn,useSyncExternalStore:Hn,useId:Hn,useHostTransitionStatus:Hn,useFormState:Hn,useActionState:Hn,useOptimistic:Hn,useMemoCache:Hn,useCacheRefresh:Hn};Ly.useEffectEvent=Hn;var o8={readContext:Zo,use:F1,useCallback:function(e,t){return ba().memoizedState=[e,t===void 0?null:t],e},useContext:Zo,useEffect:U4,useImperativeHandle:function(e,t,r){r=r!=null?r.concat([e]):null,Xb(4194308,4,KL.bind(null,t,e),r)},useLayoutEffect:function(e,t){return Xb(4194308,4,e,t)},useInsertionEffect:function(e,t){Xb(4,2,e,t)},useMemo:function(e,t){var r=ba();t=t===void 0?null:t;var n=e();if(Ud){Ru(!0);try{e()}finally{Ru(!1)}}return r.memoizedState=[n,t],n},useReducer:function(e,t,r){var n=ba();if(r!==void 0){var o=r(t);if(Ud){Ru(!0);try{r(t)}finally{Ru(!1)}}}else o=t;return n.memoizedState=n.baseState=o,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:o},n.queue=e,e=e.dispatch=mne.bind(null,Xt,e),[n.memoizedState,e]},useRef:function(e){var t=ba();return e={current:e},t.memoizedState=e},useState:function(e){e=YE(e);var t=e.queue,r=t8.bind(null,Xt,t);return t.dispatch=r,[e.memoizedState,r]},useDebugValue:GN,useDeferredValue:function(e,t){var r=ba();return YN(r,e,t)},useTransition:function(){var e=YE(!1);return e=ZL.bind(null,Xt,e.queue,!0,!1),ba().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,r){var n=Xt,o=ba();if(gr){if(r===void 0)throw Error(Ae(407));r=r()}else{if(r=t(),Xr===null)throw Error(Ae(349));(pr&127)!==0||PL(n,t,r)}o.memoizedState=r;var a={value:r,getSnapshot:t};return o.queue=a,U4(IL.bind(null,n,a,e),[e]),n.flags|=2048,cm(9,{destroy:void 0},ML.bind(null,n,a,r,t),null),r},useId:function(){var e=ba(),t=Xr.identifierPrefix;if(gr){var r=el,n=Rs;r=(n&~(1<<32-ci(n)-1)).toString(32)+r,t="_"+t+"R_"+r,r=h1++,0<\/script>",a=a.removeChild(a.firstChild);break;case"select":a=typeof n.is=="string"?i.createElement("select",{is:n.is}):i.createElement("select"),n.multiple?a.multiple=!0:n.size&&(a.size=n.size);break;default:a=typeof n.is=="string"?i.createElement(o,{is:n.is}):i.createElement(o)}}a[Yo]=t,a[Ua]=n;e:for(i=t.child;i!==null;){if(i.tag===5||i.tag===6)a.appendChild(i.stateNode);else if(i.tag!==4&&i.tag!==27&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===t)break e;for(;i.sibling===null;){if(i.return===null||i.return===t)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}t.stateNode=a;e:switch(Jo(a,o,n),o){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}n&&jl(t)}}return fn(t),dE(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,r),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==n&&jl(t);else{if(typeof n!="string"&&t.stateNode===null)throw Error(Ae(166));if(e=oc.current,$f(t)){if(e=t.stateNode,r=t.memoizedProps,n=null,o=Xo,o!==null)switch(o.tag){case 27:case 5:n=o.memoizedProps}e[Yo]=t,e=!!(e.nodeValue===r||n!==null&&n.suppressHydrationWarning===!0||t6(e.nodeValue,r)),e||mc(t,!0)}else e=A1(e).createTextNode(n),e[Yo]=t,t.stateNode=e}return fn(t),null;case 31:if(r=t.memoizedState,e===null||e.memoizedState!==null){if(n=$f(t),r!==null){if(e===null){if(!n)throw Error(Ae(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(Ae(557));e[Yo]=t}else zd(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;fn(t),e=!1}else r=rE(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=r),e=!0;if(!e)return t.flags&256?(ai(t),t):(ai(t),null);if((t.flags&128)!==0)throw Error(Ae(558))}return fn(t),null;case 13:if(n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(o=$f(t),n!==null&&n.dehydrated!==null){if(e===null){if(!o)throw Error(Ae(318));if(o=t.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(Ae(317));o[Yo]=t}else zd(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;fn(t),o=!1}else o=rE(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=o),o=!0;if(!o)return t.flags&256?(ai(t),t):(ai(t),null)}return ai(t),(t.flags&128)!==0?(t.lanes=r,t):(r=n!==null,e=e!==null&&e.memoizedState!==null,r&&(n=t.child,o=null,n.alternate!==null&&n.alternate.memoizedState!==null&&n.alternate.memoizedState.cachePool!==null&&(o=n.alternate.memoizedState.cachePool.pool),a=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(a=n.memoizedState.cachePool.pool),a!==o&&(n.flags|=2048)),r!==e&&r&&(t.child.flags|=8192),jb(t,t.updateQueue),fn(t),null);case 4:return am(),e===null&&iT(t.stateNode.containerInfo),fn(t),null;case 10:return Kl(t.type),fn(t),null;case 19:if(Bo(ro),n=t.memoizedState,n===null)return fn(t),null;if(o=(t.flags&128)!==0,a=n.rendering,a===null)if(o)sy(n,!1);else{if(qn!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(a=m1(e),a!==null){for(t.flags|=128,sy(n,!1),e=a.updateQueue,t.updateQueue=e,jb(t,e),t.subtreeFlags=0,e=r,r=t.child;r!==null;)hL(r,e),r=r.sibling;return on(ro,ro.current&1|2),gr&&Bl(t,n.treeForkCount),t.child}e=e.sibling}n.tail!==null&&li()>b1&&(t.flags|=128,o=!0,sy(n,!1),t.lanes=4194304)}else{if(!o)if(e=m1(a),e!==null){if(t.flags|=128,o=!0,e=e.updateQueue,t.updateQueue=e,jb(t,e),sy(n,!0),n.tail===null&&n.tailMode==="hidden"&&!a.alternate&&!gr)return fn(t),null}else 2*li()-n.renderingStartTime>b1&&r!==536870912&&(t.flags|=128,o=!0,sy(n,!1),t.lanes=4194304);n.isBackwards?(a.sibling=t.child,t.child=a):(e=n.last,e!==null?e.sibling=a:t.child=a,n.last=a)}return n.tail!==null?(e=n.tail,n.rendering=e,n.tail=e.sibling,n.renderingStartTime=li(),e.sibling=null,r=ro.current,on(ro,o?r&1|2:r&1),gr&&Bl(t,n.treeForkCount),e):(fn(t),null);case 22:case 23:return ai(t),zN(),n=t.memoizedState!==null,e!==null?e.memoizedState!==null!==n&&(t.flags|=8192):n&&(t.flags|=8192),n?(r&536870912)!==0&&(t.flags&128)===0&&(fn(t),t.subtreeFlags&6&&(t.flags|=8192)):fn(t),r=t.updateQueue,r!==null&&jb(t,r.retryQueue),r=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(r=e.memoizedState.cachePool.pool),n=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),n!==r&&(t.flags|=2048),e!==null&&Bo(jd),null;case 24:return r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),Kl(ho),fn(t),null;case 25:return null;case 30:return null}throw Error(Ae(156,t.tag))}function xne(e,t){switch(IN(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Kl(ho),am(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return a1(t),null;case 31:if(t.memoizedState!==null){if(ai(t),t.alternate===null)throw Error(Ae(340));zd()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(ai(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Ae(340));zd()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Bo(ro),null;case 4:return am(),null;case 10:return Kl(t.type),null;case 22:case 23:return ai(t),zN(),e!==null&&Bo(jd),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Kl(ho),null;case 25:return null;default:return null}}function h8(e,t){switch(IN(t),t.tag){case 3:Kl(ho),am();break;case 26:case 27:case 5:a1(t);break;case 4:am();break;case 31:t.memoizedState!==null&&ai(t);break;case 13:ai(t);break;case 19:Bo(ro);break;case 10:Kl(t.type);break;case 22:case 23:ai(t),zN(),e!==null&&Bo(jd);break;case 24:Kl(ho)}}function Jy(e,t){try{var r=t.updateQueue,n=r!==null?r.lastEffect:null;if(n!==null){var o=n.next;r=o;do{if((r.tag&e)===e){n=void 0;var a=r.create,i=r.inst;n=a(),i.destroy=n}r=r.next}while(r!==o)}}catch(s){Br(t,t.return,s)}}function gc(e,t,r){try{var n=t.updateQueue,o=n!==null?n.lastEffect:null;if(o!==null){var a=o.next;n=a;do{if((n.tag&e)===e){var i=n.inst,s=i.destroy;if(s!==void 0){i.destroy=void 0,o=t;var l=r,u=s;try{u()}catch(c){Br(o,l,c)}}}n=n.next}while(n!==a)}}catch(c){Br(t,t.return,c)}}function y8(e){var t=e.updateQueue;if(t!==null){var r=e.stateNode;try{AL(t,r)}catch(n){Br(e,e.return,n)}}}function v8(e,t,r){r.props=Wd(e.type,e.memoizedProps),r.state=e.memoizedState;try{r.componentWillUnmount()}catch(n){Br(e,t,n)}}function _y(e,t){try{var r=e.ref;if(r!==null){switch(e.tag){case 26:case 27:case 5:var n=e.stateNode;break;case 30:n=e.stateNode;break;default:n=e.stateNode}typeof r=="function"?e.refCleanup=r(n):r.current=n}}catch(o){Br(e,t,o)}}function tl(e,t){var r=e.ref,n=e.refCleanup;if(r!==null)if(typeof n=="function")try{n()}catch(o){Br(e,t,o)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof r=="function")try{r(null)}catch(o){Br(e,t,o)}else r.current=null}function x8(e){var t=e.type,r=e.memoizedProps,n=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":r.autoFocus&&n.focus();break e;case"img":r.src?n.src=r.src:r.srcSet&&(n.srcset=r.srcSet)}}catch(o){Br(e,e.return,o)}}function pE(e,t,r){try{var n=e.stateNode;Bne(n,e.type,r,t),n[Ua]=t}catch(o){Br(e,e.return,o)}}function b8(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&vc(e.type)||e.tag===4}function fE(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||b8(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&&vc(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 tN(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=Wl));else if(n!==4&&(n===27&&vc(e.type)&&(r=e.stateNode,t=null),e=e.child,e!==null))for(tN(e,t,r),e=e.sibling;e!==null;)tN(e,t,r),e=e.sibling}function x1(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&&vc(e.type)&&(r=e.stateNode),e=e.child,e!==null))for(x1(e,t,r),e=e.sibling;e!==null;)x1(e,t,r),e=e.sibling}function w8(e){var t=e.stateNode,r=e.memoizedProps;try{for(var n=e.type,o=t.attributes;o.length;)t.removeAttributeNode(o[0]);Jo(t,n,r),t[Yo]=e,t[Ua]=r}catch(a){Br(e,e.return,a)}}var Fl=!1,go=!1,mE=!1,e$=typeof WeakSet=="function"?WeakSet:Set,Lo=null;function bne(e,t){if(e=e.containerInfo,lN=O1,e=lL(e),NN(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var o=n.anchorOffset,a=n.focusNode;n=n.focusOffset;try{r.nodeType,a.nodeType}catch{r=null;break e}var i=0,s=-1,l=-1,u=0,c=0,d=e,p=null;t:for(;;){for(var f;d!==r||o!==0&&d.nodeType!==3||(s=i+o),d!==a||n!==0&&d.nodeType!==3||(l=i+n),d.nodeType===3&&(i+=d.nodeValue.length),(f=d.firstChild)!==null;)p=d,d=f;for(;;){if(d===e)break t;if(p===r&&++u===o&&(s=i),p===a&&++c===n&&(l=i),(f=d.nextSibling)!==null)break;d=p,p=d.parentNode}d=f}r=s===-1||l===-1?null:{start:s,end:l}}else r=null}r=r||{start:0,end:0}}else r=null;for(uN={focusedElem:e,selectionRange:r},O1=!1,Lo=t;Lo!==null;)if(t=Lo,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Lo=e;else for(;Lo!==null;){switch(t=Lo,a=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(r=0;r title"))),Jo(a,n,r),a[Yo]=e,zo(a),n=a;break e;case"link":var i=S$("link","href",o).get(n+(r.href||""));if(i){for(var s=0;sb&&(i=b,b=y,y=i);var g=C4(s,y),h=C4(s,b);if(g&&h&&(f.rangeCount!==1||f.anchorNode!==g.node||f.anchorOffset!==g.offset||f.focusNode!==h.node||f.focusOffset!==h.offset)){var v=d.createRange();v.setStart(g.node,g.offset),f.removeAllRanges(),y>b?(f.addRange(v),f.extend(h.node,h.offset)):(v.setEnd(h.node,h.offset),f.addRange(v))}}}}for(d=[],f=s;f=f.parentNode;)f.nodeType===1&&d.push({element:f,left:f.scrollLeft,top:f.scrollTop});for(typeof s.focus=="function"&&s.focus(),s=0;sr?32:r,$t.T=null,r=oN,oN=null;var a=uc,i=Vl;if(ko=0,pm=uc=null,Vl=0,(Tr&6)!==0)throw Error(Ae(331));var s=Tr;if(Tr|=4,M8(a.current),T8(a,a.current,i,r),Tr=s,Qy(0,!1),ui&&typeof ui.onPostCommitFiberRoot=="function")try{ui.onPostCommitFiberRoot(qy,a)}catch{}return!0}finally{Or.p=o,$t.T=n,G8(e,t)}}function o$(e,t,r){t=Bi(r,t),t=QE(e.stateNode,t,2),e=sc(e,t,2),e!==null&&(Vy(e,2),ol(e))}function Br(e,t,r){if(e.tag===3)o$(e,e,r);else for(;t!==null;){if(t.tag===3){o$(t,e,r);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(lc===null||!lc.has(n))){e=Bi(r,e),r=u8(2),n=sc(t,r,2),n!==null&&(c8(r,n,t,e),Vy(n,2),ol(n));break}}t=t.return}}function hE(e,t,r){var n=e.pingCache;if(n===null){n=e.pingCache=new kne;var o=new Set;n.set(t,o)}else o=n.get(t),o===void 0&&(o=new Set,n.set(t,o));o.has(r)||(rT=!0,o.add(r),e=Nne.bind(null,e,t,r),t.then(e,e))}function Nne(e,t,r){var n=e.pingCache;n!==null&&n.delete(t),e.pingedLanes|=e.suspendedLanes&r,e.warmLanes&=~r,Xr===e&&(pr&r)===r&&(qn===4||qn===3&&(pr&62914560)===pr&&300>li()-H1?(Tr&2)===0&&fm(e,0):nT|=r,dm===pr&&(dm=0)),ol(e)}function X8(e,t){t===0&&(t=F$()),e=Vd(e,t),e!==null&&(Vy(e,t),ol(e))}function Tne(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),X8(e,r)}function One(e,t){var r=0;switch(e.tag){case 31:case 13:var n=e.stateNode,o=e.memoizedState;o!==null&&(r=o.retryLane);break;case 19:n=e.stateNode;break;case 22:n=e.stateNode._retryCache;break;default:throw Error(Ae(314))}n!==null&&n.delete(t),X8(e,r)}function Pne(e,t){return xN(e,t)}var k1=null,Bf=null,iN=!1,_1=!1,yE=!1,nc=0;function ol(e){e!==Bf&&e.next===null&&(Bf===null?k1=Bf=e:Bf=Bf.next=e),_1=!0,iN||(iN=!0,Ine())}function Qy(e,t){if(!yE&&_1){yE=!0;do for(var r=!1,n=k1;n!==null;){if(!t)if(e!==0){var o=n.pendingLanes;if(o===0)var a=0;else{var i=n.suspendedLanes,s=n.pingedLanes;a=(1<<31-ci(42|e)+1)-1,a&=o&~(i&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(r=!0,a$(n,a))}else a=pr,a=M1(n,n===Xr?a:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),(a&3)===0||Ky(n,a)||(r=!0,a$(n,a));n=n.next}while(r);yE=!1}}function Mne(){Z8()}function Z8(){_1=iN=!1;var e=0;nc!==0&&Une()&&(e=nc);for(var t=li(),r=null,n=k1;n!==null;){var o=n.next,a=J8(n,t);a===0?(n.next=null,r===null?k1=o:r.next=o,o===null&&(Bf=r)):(r=n,(e!==0||(a&3)!==0)&&(_1=!0)),n=o}ko!==0&&ko!==5||Qy(e,!1),nc!==0&&(nc=0)}function J8(e,t){for(var r=e.suspendedLanes,n=e.pingedLanes,o=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var c=l.transferSize,d=l.initiatorType;c&&p$(d)&&(l=l.responseEnd,i+=c*(l"u"?null:document;function i6(e,t,r){var n=wm;if(n&&typeof t=="string"&&t){var o=zi(t);o='link[rel="'+e+'"][href="'+o+'"]',typeof r=="string"&&(o+='[crossorigin="'+r+'"]'),x$.has(o)||(x$.add(o),e={rel:e,crossOrigin:r,href:t},n.querySelector(o)===null&&(t=n.createElement("link"),Jo(t,"link",e),zo(t),n.head.appendChild(t)))}}function Zne(e){Ql.D(e),i6("dns-prefetch",e,null)}function Jne(e,t){Ql.C(e,t),i6("preconnect",e,t)}function Qne(e,t,r){Ql.L(e,t,r);var n=wm;if(n&&e&&t){var o='link[rel="preload"][as="'+zi(t)+'"]';t==="image"&&r&&r.imageSrcSet?(o+='[imagesrcset="'+zi(r.imageSrcSet)+'"]',typeof r.imageSizes=="string"&&(o+='[imagesizes="'+zi(r.imageSizes)+'"]')):o+='[href="'+zi(e)+'"]';var a=o;switch(t){case"style":a=mm(e);break;case"script":a=Sm(e)}Hi.has(a)||(e=gn({rel:"preload",href:t==="image"&&r&&r.imageSrcSet?void 0:e,as:t},r),Hi.set(a,e),n.querySelector(o)!==null||t==="style"&&n.querySelector(Ry(a))||t==="script"&&n.querySelector(ev(a))||(t=n.createElement("link"),Jo(t,"link",e),zo(t),n.head.appendChild(t)))}}function Rne(e,t){Ql.m(e,t);var r=wm;if(r&&e){var n=t&&typeof t.as=="string"?t.as:"script",o='link[rel="modulepreload"][as="'+zi(n)+'"][href="'+zi(e)+'"]',a=o;switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":a=Sm(e)}if(!Hi.has(a)&&(e=gn({rel:"modulepreload",href:e},t),Hi.set(a,e),r.querySelector(o)===null)){switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(r.querySelector(ev(a)))return}n=r.createElement("link"),Jo(n,"link",e),zo(n),r.head.appendChild(n)}}}function eoe(e,t,r){Ql.S(e,t,r);var n=wm;if(n&&e){var o=Qf(n).hoistableStyles,a=mm(e);t=t||"default";var i=o.get(a);if(!i){var s={loading:0,preload:null};if(i=n.querySelector(Ry(a)))s.loading=5;else{e=gn({rel:"stylesheet",href:e,"data-precedence":t},r),(r=Hi.get(a))&&sT(e,r);var l=i=n.createElement("link");zo(l),Jo(l,"link",e),l._p=new Promise(function(u,c){l.onload=u,l.onerror=c}),l.addEventListener("load",function(){s.loading|=1}),l.addEventListener("error",function(){s.loading|=2}),s.loading|=4,Rb(i,t,n)}i={type:"stylesheet",instance:i,count:1,state:s},o.set(a,i)}}}function toe(e,t){Ql.X(e,t);var r=wm;if(r&&e){var n=Qf(r).hoistableScripts,o=Sm(e),a=n.get(o);a||(a=r.querySelector(ev(o)),a||(e=gn({src:e,async:!0},t),(t=Hi.get(o))&&lT(e,t),a=r.createElement("script"),zo(a),Jo(a,"link",e),r.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},n.set(o,a))}}function roe(e,t){Ql.M(e,t);var r=wm;if(r&&e){var n=Qf(r).hoistableScripts,o=Sm(e),a=n.get(o);a||(a=r.querySelector(ev(o)),a||(e=gn({src:e,async:!0,type:"module"},t),(t=Hi.get(o))&&lT(e,t),a=r.createElement("script"),zo(a),Jo(a,"link",e),r.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},n.set(o,a))}}function b$(e,t,r,n){var o=(o=oc.current)?E1(o):null;if(!o)throw Error(Ae(446));switch(e){case"meta":case"title":return null;case"style":return typeof r.precedence=="string"&&typeof r.href=="string"?(t=mm(r.href),r=Qf(o).hoistableStyles,n=r.get(t),n||(n={type:"style",instance:null,count:0,state:null},r.set(t,n)),n):{type:"void",instance:null,count:0,state:null};case"link":if(r.rel==="stylesheet"&&typeof r.href=="string"&&typeof r.precedence=="string"){e=mm(r.href);var a=Qf(o).hoistableStyles,i=a.get(e);if(i||(o=o.ownerDocument||o,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},a.set(e,i),(a=o.querySelector(Ry(e)))&&!a._p&&(i.instance=a,i.state.loading=5),Hi.has(e)||(r={rel:"preload",as:"style",href:r.href,crossOrigin:r.crossOrigin,integrity:r.integrity,media:r.media,hrefLang:r.hrefLang,referrerPolicy:r.referrerPolicy},Hi.set(e,r),a||noe(o,e,r,i.state))),t&&n===null)throw Error(Ae(528,""));return i}if(t&&n!==null)throw Error(Ae(529,""));return null;case"script":return t=r.async,r=r.src,typeof r=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Sm(r),r=Qf(o).hoistableScripts,n=r.get(t),n||(n={type:"script",instance:null,count:0,state:null},r.set(t,n)),n):{type:"void",instance:null,count:0,state:null};default:throw Error(Ae(444,e))}}function mm(e){return'href="'+zi(e)+'"'}function Ry(e){return'link[rel="stylesheet"]['+e+"]"}function s6(e){return gn({},e,{"data-precedence":e.precedence,precedence:null})}function noe(e,t,r,n){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?n.loading=1:(t=e.createElement("link"),n.preload=t,t.addEventListener("load",function(){return n.loading|=1}),t.addEventListener("error",function(){return n.loading|=2}),Jo(t,"link",r),zo(t),e.head.appendChild(t))}function Sm(e){return'[src="'+zi(e)+'"]'}function ev(e){return"script[async]"+e}function w$(e,t,r){if(t.count++,t.instance===null)switch(t.type){case"style":var n=e.querySelector('style[data-href~="'+zi(r.href)+'"]');if(n)return t.instance=n,zo(n),n;var o=gn({},r,{"data-href":r.href,"data-precedence":r.precedence,href:null,precedence:null});return n=(e.ownerDocument||e).createElement("style"),zo(n),Jo(n,"style",o),Rb(n,r.precedence,e),t.instance=n;case"stylesheet":o=mm(r.href);var a=e.querySelector(Ry(o));if(a)return t.state.loading|=4,t.instance=a,zo(a),a;n=s6(r),(o=Hi.get(o))&&sT(n,o),a=(e.ownerDocument||e).createElement("link"),zo(a);var i=a;return i._p=new Promise(function(s,l){i.onload=s,i.onerror=l}),Jo(a,"link",n),t.state.loading|=4,Rb(a,r.precedence,e),t.instance=a;case"script":return a=Sm(r.src),(o=e.querySelector(ev(a)))?(t.instance=o,zo(o),o):(n=r,(o=Hi.get(a))&&(n=gn({},r),lT(n,o)),e=e.ownerDocument||e,o=e.createElement("script"),zo(o),Jo(o,"link",n),e.head.appendChild(o),t.instance=o);case"void":return null;default:throw Error(Ae(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(n=t.instance,t.state.loading|=4,Rb(n,r.precedence,e));return t.instance}function Rb(e,t,r){for(var n=r.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),o=n.length?n[n.length-1]:null,a=o,i=0;i title"):null)}function ooe(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 l6(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function aoe(e,t,r,n){if(r.type==="stylesheet"&&(typeof n.media!="string"||matchMedia(n.media).matches!==!1)&&(r.state.loading&4)===0){if(r.instance===null){var o=mm(n.href),a=t.querySelector(Ry(o));if(a){t=a._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=N1.bind(e),t.then(e,e)),r.state.loading|=4,r.instance=a,zo(a);return}a=t.ownerDocument||t,n=s6(n),(o=Hi.get(o))&&sT(n,o),a=a.createElement("link"),zo(a);var i=a;i._p=new Promise(function(s,l){i.onload=s,i.onerror=l}),Jo(a,"link",n),r.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(r,t),(t=r.state.preload)&&(r.state.loading&3)===0&&(e.count++,r=N1.bind(e),t.addEventListener("load",r),t.addEventListener("error",r))}}var wE=0;function ioe(e,t){return e.stylesheets&&e.count===0&&t1(e,e.stylesheets),0wE?50:800)+t);return e.unsuspend=r,function(){e.unsuspend=null,clearTimeout(n),clearTimeout(o)}}:null}function N1(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)t1(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var T1=null;function t1(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,T1=new Map,t.forEach(soe,e),T1=null,N1.call(e))}function soe(e,t){if(!(t.state.loading&4)){var r=T1.get(e);if(r)var n=r.get(null);else{r=new Map,T1.set(e,r);for(var o=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a{"use strict";function y6(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(y6)}catch(e){console.error(e)}}y6(),v6.exports=h6()});var Hz=$o(Wz=>{"use strict";var qm=J();function Oae(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Pae=typeof Object.is=="function"?Object.is:Oae,Mae=qm.useState,Iae=qm.useEffect,Dae=qm.useLayoutEffect,jae=qm.useDebugValue;function $ae(e,t){var r=t(),n=Mae({inst:{value:r,getSnapshot:t}}),o=n[0].inst,a=n[1];return Dae(function(){o.value=r,o.getSnapshot=t,cO(o)&&a({inst:o})},[e,r,t]),Iae(function(){return cO(o)&&a({inst:o}),e(function(){cO(o)&&a({inst:o})})},[e]),jae(r),r}function cO(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!Pae(e,r)}catch{return!0}}function Lae(e,t){return t()}var zae=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Lae:$ae;Wz.useSyncExternalStore=qm.useSyncExternalStore!==void 0?qm.useSyncExternalStore:zae});var Kz=$o((gPe,qz)=>{"use strict";qz.exports=Hz()});var Gz=$o(Vz=>{"use strict";var Kw=J(),Bae=Kz();function Fae(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Uae=typeof Object.is=="function"?Object.is:Fae,Wae=Bae.useSyncExternalStore,Hae=Kw.useRef,qae=Kw.useEffect,Kae=Kw.useMemo,Vae=Kw.useDebugValue;Vz.useSyncExternalStoreWithSelector=function(e,t,r,n,o){var a=Hae(null);if(a.current===null){var i={hasValue:!1,value:null};a.current=i}else i=a.current;a=Kae(function(){function l(f){if(!u){if(u=!0,c=f,f=n(f),o!==void 0&&i.hasValue){var m=i.value;if(o(m,f))return d=m}return d=f}if(m=d,Uae(c,f))return m;var y=n(f);return o!==void 0&&o(m,y)?(c=f,m):(c=f,d=y)}var u=!1,c,d,p=r===void 0?null:r;return[function(){return l(t())},p===null?void 0:function(){return l(p())}]},[t,r,n,o]);var s=Wae(e,a[0],a[1]);return qae(function(){i.hasValue=!0,i.value=s},[s]),Vae(s),s}});var Xz=$o((yPe,Yz)=>{"use strict";Yz.exports=Gz()});var $7=$o(j7=>{"use strict";var Av=J();function Zse(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Jse=typeof Object.is=="function"?Object.is:Zse,Qse=Av.useSyncExternalStore,Rse=Av.useRef,ele=Av.useEffect,tle=Av.useMemo,rle=Av.useDebugValue;j7.useSyncExternalStoreWithSelector=function(e,t,r,n,o){var a=Rse(null);if(a.current===null){var i={hasValue:!1,value:null};a.current=i}else i=a.current;a=tle(function(){function l(f){if(!u){if(u=!0,c=f,f=n(f),o!==void 0&&i.hasValue){var m=i.value;if(o(m,f))return d=m}return d=f}if(m=d,Jse(c,f))return m;var y=n(f);return o!==void 0&&o(m,y)?(c=f,m):(c=f,d=y)}var u=!1,c,d,p=r===void 0?null:r;return[function(){return l(t())},p===null?void 0:function(){return l(p())}]},[t,r,n,o]);var s=Qse(e,a[0],a[1]);return ele(function(){i.hasValue=!0,i.value=s},[s]),rle(s),s}});var z7=$o((h5e,L7)=>{"use strict";L7.exports=$7()});var aP=$o((uF,tk)=>{(function(e){"use strict";var t=1e9,r={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},n=!0,o="[DecimalError] ",a=o+"Invalid argument: ",i=o+"Exponent out of range: ",s=Math.floor,l=Math.pow,u=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,c,d=1e7,p=7,f=9007199254740991,m=s(f/p),y={};y.absoluteValue=y.abs=function(){var N=new this.constructor(this);return N.s&&(N.s=1),N},y.comparedTo=y.cmp=function(N){var O,D,P,j,M=this;if(N=new M.constructor(N),M.s!==N.s)return M.s||-N.s;if(M.e!==N.e)return M.e>N.e^M.s<0?1:-1;for(P=M.d.length,j=N.d.length,O=0,D=PN.d[O]^M.s<0?1:-1;return P===j?0:P>j^M.s<0?1:-1},y.decimalPlaces=y.dp=function(){var N=this,O=N.d.length-1,D=(O-N.e)*p;if(O=N.d[O],O)for(;O%10==0;O/=10)D--;return D<0?0:D},y.dividedBy=y.div=function(N){return v(this,new this.constructor(N))},y.dividedToIntegerBy=y.idiv=function(N){var O=this,D=O.constructor;return C(v(O,new D(N),0,1),D.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,D=this,P=D.constructor,j=P.precision,M=j+5;if(N===void 0)N=new P(10);else if(N=new P(N),N.s<1||N.eq(c))throw Error(o+"NaN");if(D.s<1)throw Error(o+(D.s?"NaN":"-Infinity"));return D.eq(c)?new P(0):(n=!1,O=v(k(D,M),k(N,M),M),n=!0,C(O,j))},y.minus=y.sub=function(N){var O=this;return N=new O.constructor(N),O.s==N.s?T(O,N):b(O,(N.s=-N.s,N))},y.modulo=y.mod=function(N){var O,D=this,P=D.constructor,j=P.precision;if(N=new P(N),!N.s)throw Error(o+"NaN");return D.s?(n=!1,O=v(D,N,0,1).times(N),n=!0,D.minus(O)):C(new P(D),j)},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?b(O,N):T(O,(N.s=-N.s,N))},y.precision=y.sd=function(N){var O,D,P,j=this;if(N!==void 0&&N!==!!N&&N!==1&&N!==0)throw Error(a+N);if(O=S(j)+1,P=j.d.length-1,D=P*p+1,P=j.d[P],P){for(;P%10==0;P/=10)D--;for(P=j.d[0];P>=10;P/=10)D++}return N&&O>D?O:D},y.squareRoot=y.sqrt=function(){var N,O,D,P,j,M,W,Y=this,L=Y.constructor;if(Y.s<1){if(!Y.s)return new L(0);throw Error(o+"NaN")}for(N=S(Y),n=!1,j=Math.sqrt(+Y),j==0||j==1/0?(O=h(Y.d),(O.length+N)%2==0&&(O+="0"),j=Math.sqrt(O),N=s((N+1)/2)-(N<0||N%2),j==1/0?O="5e"+N:(O=j.toExponential(),O=O.slice(0,O.indexOf("e")+1)+N),P=new L(O)):P=new L(j.toString()),D=L.precision,j=W=D+3;;)if(M=P,P=M.plus(v(Y,M,W+2)).times(.5),h(M.d).slice(0,W)===(O=h(P.d)).slice(0,W)){if(O=O.slice(W-3,W+1),j==W&&O=="4999"){if(C(M,D+1,0),M.times(M).eq(Y)){P=M;break}}else if(O!="9999")break;W+=4}return n=!0,C(P,D)},y.times=y.mul=function(N){var O,D,P,j,M,W,Y,L,G,q=this,oe=q.constructor,Me=q.d,ge=(N=new oe(N)).d;if(!q.s||!N.s)return new oe(0);for(N.s*=q.s,D=q.e+N.e,L=Me.length,G=ge.length,L=0;){for(O=0,j=L+P;j>P;)Y=M[j]+ge[P]*Me[j-P-1]+O,M[j--]=Y%d|0,O=Y/d|0;M[j]=(M[j]+O)%d|0}for(;!M[--W];)M.pop();return O?++D:M.shift(),N.d=M,N.e=D,n?C(N,oe.precision):N},y.toDecimalPlaces=y.todp=function(N,O){var D=this,P=D.constructor;return D=new P(D),N===void 0?D:(g(N,0,t),O===void 0?O=P.rounding:g(O,0,8),C(D,N+S(D)+1,O))},y.toExponential=function(N,O){var D,P=this,j=P.constructor;return N===void 0?D=$(P,!0):(g(N,0,t),O===void 0?O=j.rounding:g(O,0,8),P=C(new j(P),N+1,O),D=$(P,!0,N+1)),D},y.toFixed=function(N,O){var D,P,j=this,M=j.constructor;return N===void 0?$(j):(g(N,0,t),O===void 0?O=M.rounding:g(O,0,8),P=C(new M(j),N+S(j)+1,O),D=$(P.abs(),!1,N+S(P)+1),j.isneg()&&!j.isZero()?"-"+D:D)},y.toInteger=y.toint=function(){var N=this,O=N.constructor;return C(new O(N),S(N)+1,O.rounding)},y.toNumber=function(){return+this},y.toPower=y.pow=function(N){var O,D,P,j,M,W,Y=this,L=Y.constructor,G=12,q=+(N=new L(N));if(!N.s)return new L(c);if(Y=new L(Y),!Y.s){if(N.s<1)throw Error(o+"Infinity");return Y}if(Y.eq(c))return Y;if(P=L.precision,N.eq(c))return C(Y,P);if(O=N.e,D=N.d.length-1,W=O>=D,M=Y.s,W){if((D=q<0?-q:q)<=f){for(j=new L(c),O=Math.ceil(P/p+4),n=!1;D%2&&(j=j.times(Y),Q(j.d,O)),D=s(D/2),D!==0;)Y=Y.times(Y),Q(Y.d,O);return n=!0,N.s<0?new L(c).div(j):C(j,P)}}else if(M<0)throw Error(o+"NaN");return M=M<0&&N.d[Math.max(O,D)]&1?-1:1,Y.s=1,n=!1,j=N.times(k(Y,P+G)),n=!0,j=x(j),j.s=M,j},y.toPrecision=function(N,O){var D,P,j=this,M=j.constructor;return N===void 0?(D=S(j),P=$(j,D<=M.toExpNeg||D>=M.toExpPos)):(g(N,1,t),O===void 0?O=M.rounding:g(O,0,8),j=C(new M(j),N,O),D=S(j),P=$(j,N<=D||D<=M.toExpNeg,N)),P},y.toSignificantDigits=y.tosd=function(N,O){var D=this,P=D.constructor;return N===void 0?(N=P.precision,O=P.rounding):(g(N,1,t),O===void 0?O=P.rounding:g(O,0,8)),C(new P(D),N,O)},y.toString=y.valueOf=y.val=y.toJSON=function(){var N=this,O=S(N),D=N.constructor;return $(N,O<=D.toExpNeg||O>=D.toExpPos)};function b(N,O){var D,P,j,M,W,Y,L,G,q=N.constructor,oe=q.precision;if(!N.s||!O.s)return O.s||(O=new q(N)),n?C(O,oe):O;if(L=N.d,G=O.d,W=N.e,j=O.e,L=L.slice(),M=W-j,M){for(M<0?(P=L,M=-M,Y=G.length):(P=G,j=W,Y=L.length),W=Math.ceil(oe/p),Y=W>Y?W+1:Y+1,M>Y&&(M=Y,P.length=1),P.reverse();M--;)P.push(0);P.reverse()}for(Y=L.length,M=G.length,Y-M<0&&(M=Y,P=G,G=L,L=P),D=0;M;)D=(L[--M]=L[M]+G[M]+D)/d|0,L[M]%=d;for(D&&(L.unshift(D),++j),Y=L.length;L[--Y]==0;)L.pop();return O.d=L,O.e=j,n?C(O,oe):O}function g(N,O,D){if(N!==~~N||ND)throw Error(a+N)}function h(N){var O,D,P,j=N.length-1,M="",W=N[0];if(j>0){for(M+=W,O=1;OW?1:-1;else for(Y=L=0;Yj[Y]?1:-1;break}return L}function D(P,j,M){for(var W=0;M--;)P[M]-=W,W=P[M]1;)P.shift()}return function(P,j,M,W){var Y,L,G,q,oe,Me,ge,ue,R,te,Be,ke,ee,z,E,I,V,F,ce=P.constructor,Qe=P.s==j.s?1:-1,it=P.d,me=j.d;if(!P.s)return new ce(P);if(!j.s)throw Error(o+"Division by zero");for(L=P.e-j.e,V=me.length,E=it.length,ge=new ce(Qe),ue=ge.d=[],G=0;me[G]==(it[G]||0);)++G;if(me[G]>(it[G]||0)&&--L,M==null?ke=M=ce.precision:W?ke=M+(S(P)-S(j))+1:ke=M,ke<0)return new ce(0);if(ke=ke/p+2|0,G=0,V==1)for(q=0,me=me[0],ke++;(G1&&(me=N(me,q),it=N(it,q),V=me.length,E=it.length),z=V,R=it.slice(0,V),te=R.length;te=d/2&&++I;do q=0,Y=O(me,R,V,te),Y<0?(Be=R[0],V!=te&&(Be=Be*d+(R[1]||0)),q=Be/I|0,q>1?(q>=d&&(q=d-1),oe=N(me,q),Me=oe.length,te=R.length,Y=O(oe,R,Me,te),Y==1&&(q--,D(oe,V16)throw Error(i+S(N));if(!N.s)return new q(c);for(O==null?(n=!1,Y=oe):Y=O,W=new q(.03125);N.abs().gte(.1);)N=N.times(W),G+=5;for(P=Math.log(l(2,G))/Math.LN10*2+5|0,Y+=P,D=j=M=new q(c),q.precision=Y;;){if(j=C(j.times(N),Y),D=D.times(++L),W=M.plus(v(j,D,Y)),h(W.d).slice(0,Y)===h(M.d).slice(0,Y)){for(;G--;)M=C(M.times(M),Y);return q.precision=oe,O==null?(n=!0,C(M,oe)):M}M=W}}function S(N){for(var O=N.e*p,D=N.d[0];D>=10;D/=10)O++;return O}function _(N,O,D){if(O>N.LN10.sd())throw n=!0,D&&(N.precision=D),Error(o+"LN10 precision limit exceeded");return C(new N(N.LN10),O)}function w(N){for(var O="";N--;)O+="0";return O}function k(N,O){var D,P,j,M,W,Y,L,G,q,oe=1,Me=10,ge=N,ue=ge.d,R=ge.constructor,te=R.precision;if(ge.s<1)throw Error(o+(ge.s?"NaN":"-Infinity"));if(ge.eq(c))return new R(0);if(O==null?(n=!1,G=te):G=O,ge.eq(10))return O==null&&(n=!0),_(R,G);if(G+=Me,R.precision=G,D=h(ue),P=D.charAt(0),M=S(ge),Math.abs(M)<15e14){for(;P<7&&P!=1||P==1&&D.charAt(1)>3;)ge=ge.times(N),D=h(ge.d),P=D.charAt(0),oe++;M=S(ge),P>1?(ge=new R("0."+D),M++):ge=new R(P+"."+D.slice(1))}else return L=_(R,G+2,te).times(M+""),ge=k(new R(P+"."+D.slice(1)),G-Me).plus(L),R.precision=te,O==null?(n=!0,C(ge,te)):ge;for(Y=W=ge=v(ge.minus(c),ge.plus(c),G),q=C(ge.times(ge),G),j=3;;){if(W=C(W.times(q),G),L=Y.plus(v(W,new R(j),G)),h(L.d).slice(0,G)===h(Y.d).slice(0,G))return Y=Y.times(2),M!==0&&(Y=Y.plus(_(R,G+2,te).times(M+""))),Y=v(Y,new R(oe),G),R.precision=te,O==null?(n=!0,C(Y,te)):Y;Y=L,j+=2}}function A(N,O){var D,P,j;for((D=O.indexOf("."))>-1&&(O=O.replace(".","")),(P=O.search(/e/i))>0?(D<0&&(D=P),D+=+O.slice(P+1),O=O.substring(0,P)):D<0&&(D=O.length),P=0;O.charCodeAt(P)===48;)++P;for(j=O.length;O.charCodeAt(j-1)===48;)--j;if(O=O.slice(P,j),O){if(j-=P,D=D-P-1,N.e=s(D/p),N.d=[],P=(D+1)%p,D<0&&(P+=p),Pm||N.e<-m))throw Error(i+D)}else N.s=0,N.e=0,N.d=[0];return N}function C(N,O,D){var P,j,M,W,Y,L,G,q,oe=N.d;for(W=1,M=oe[0];M>=10;M/=10)W++;if(P=O-W,P<0)P+=p,j=O,G=oe[q=0];else{if(q=Math.ceil((P+1)/p),M=oe.length,q>=M)return N;for(G=M=oe[q],W=1;M>=10;M/=10)W++;P%=p,j=P-p+W}if(D!==void 0&&(M=l(10,W-j-1),Y=G/M%10|0,L=O<0||oe[q+1]!==void 0||G%M,L=D<4?(Y||L)&&(D==0||D==(N.s<0?3:2)):Y>5||Y==5&&(D==4||L||D==6&&(P>0?j>0?G/l(10,W-j):0:oe[q-1])%10&1||D==(N.s<0?8:7))),O<1||!oe[0])return L?(M=S(N),oe.length=1,O=O-M-1,oe[0]=l(10,(p-O%p)%p),N.e=s(-O/p)||0):(oe.length=1,oe[0]=N.e=N.s=0),N;if(P==0?(oe.length=q,M=1,q--):(oe.length=q+1,M=l(10,p-P),oe[q]=j>0?(G/l(10,W-j)%l(10,j)|0)*M:0),L)for(;;)if(q==0){(oe[0]+=M)==d&&(oe[0]=1,++N.e);break}else{if(oe[q]+=M,oe[q]!=d)break;oe[q--]=0,M=1}for(P=oe.length;oe[--P]===0;)oe.pop();if(n&&(N.e>m||N.e<-m))throw Error(i+S(N));return N}function T(N,O){var D,P,j,M,W,Y,L,G,q,oe,Me=N.constructor,ge=Me.precision;if(!N.s||!O.s)return O.s?O.s=-O.s:O=new Me(N),n?C(O,ge):O;if(L=N.d,oe=O.d,P=O.e,G=N.e,L=L.slice(),W=G-P,W){for(q=W<0,q?(D=L,W=-W,Y=oe.length):(D=oe,P=G,Y=L.length),j=Math.max(Math.ceil(ge/p),Y)+2,W>j&&(W=j,D.length=1),D.reverse(),j=W;j--;)D.push(0);D.reverse()}else{for(j=L.length,Y=oe.length,q=j0;--j)L[Y++]=0;for(j=oe.length;j>W;){if(L[--j]0?M=M.charAt(0)+"."+M.slice(1)+w(P):W>1&&(M=M.charAt(0)+"."+M.slice(1)),M=M+(j<0?"e":"e+")+j):j<0?(M="0."+w(-j-1)+M,D&&(P=D-W)>0&&(M+=w(P))):j>=W?(M+=w(j+1-W),D&&(P=D-j-1)>0&&(M=M+"."+w(P))):((P=j+1)0&&(j+1===W&&(M+="."),M+=w(P))),N.s<0?"-"+M:M}function Q(N,O){if(N.length>O)return N.length=O,!0}function B(N){var O,D,P;function j(M){var W=this;if(!(W instanceof j))return new j(M);if(W.constructor=j,M instanceof j){W.s=M.s,W.e=M.e,W.d=(M=M.d)?M.slice():M;return}if(typeof M=="number"){if(M*0!==0)throw Error(a+M);if(M>0)W.s=1;else if(M<0)M=-M,W.s=-1;else{W.s=0,W.e=0,W.d=[0];return}if(M===~~M&&M<1e7){W.e=0,W.d=[M];return}return A(W,M.toString())}else if(typeof M!="string")throw Error(a+M);if(M.charCodeAt(0)===45?(M=M.slice(1),W.s=-1):W.s=1,u.test(M))A(W,M);else throw Error(a+M)}if(j.prototype=y,j.ROUND_UP=0,j.ROUND_DOWN=1,j.ROUND_CEIL=2,j.ROUND_FLOOR=3,j.ROUND_HALF_UP=4,j.ROUND_HALF_DOWN=5,j.ROUND_HALF_EVEN=6,j.ROUND_HALF_CEIL=7,j.ROUND_HALF_FLOOR=8,j.clone=B,j.config=j.set=K,N===void 0&&(N={}),N)for(P=["precision","rounding","toExpNeg","toExpPos","LN10"],O=0;O=j[O+1]&&P<=j[O+2])this[D]=P;else throw Error(a+D+": "+P);if((P=N[D="LN10"])!==void 0)if(P==Math.LN10)this[D]=new this(P);else throw Error(a+D+": "+P);return this}r=B(r),r.default=r.Decimal=r,c=new r(1),typeof define=="function"&&define.amd?define(function(){return r}):typeof tk<"u"&&tk.exports?tk.exports=r:(e||(e=typeof self<"u"&&self&&self.self==self?self:Function("return this")()),e.Decimal=r)})(uF)});var oH=$o((oBe,qM)=>{"use strict";var age=Object.prototype.hasOwnProperty,Aa="~";function yx(){}Object.create&&(yx.prototype=Object.create(null),new yx().__proto__||(Aa=!1));function ige(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function nH(e,t,r,n,o){if(typeof r!="function")throw new TypeError("The listener must be a function");var a=new ige(r,n||e,o),i=Aa?Aa+t:t;return e._events[i]?e._events[i].fn?e._events[i]=[e._events[i],a]:e._events[i].push(a):(e._events[i]=a,e._eventsCount++),e}function C_(e,t){--e._eventsCount===0?e._events=new yx:delete e._events[t]}function la(){this._events=new yx,this._eventsCount=0}la.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)age.call(r,n)&&t.push(Aa?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};la.prototype.listeners=function(t){var r=Aa?Aa+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var o=0,a=n.length,i=new Array(a);o{"use strict";var e5=Symbol.for("react.transitional.element"),t5=Symbol.for("react.portal"),B_=Symbol.for("react.fragment"),F_=Symbol.for("react.strict_mode"),U_=Symbol.for("react.profiler"),W_=Symbol.for("react.consumer"),H_=Symbol.for("react.context"),q_=Symbol.for("react.forward_ref"),K_=Symbol.for("react.suspense"),V_=Symbol.for("react.suspense_list"),G_=Symbol.for("react.memo"),Y_=Symbol.for("react.lazy"),Khe=Symbol.for("react.view_transition"),Vhe=Symbol.for("react.client.reference");function os(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case e5:switch(e=e.type,e){case B_:case U_:case F_:case K_:case V_:case Khe:return e;default:switch(e=e&&e.$$typeof,e){case H_:case q_:case Y_:case G_:return e;case W_:return e;default:return t}}case t5:return t}}}Qr.ContextConsumer=W_;Qr.ContextProvider=H_;Qr.Element=e5;Qr.ForwardRef=q_;Qr.Fragment=B_;Qr.Lazy=Y_;Qr.Memo=G_;Qr.Portal=t5;Qr.Profiler=U_;Qr.StrictMode=F_;Qr.Suspense=K_;Qr.SuspenseList=V_;Qr.isContextConsumer=function(e){return os(e)===W_};Qr.isContextProvider=function(e){return os(e)===H_};Qr.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===e5};Qr.isForwardRef=function(e){return os(e)===q_};Qr.isFragment=function(e){return os(e)===B_};Qr.isLazy=function(e){return os(e)===Y_};Qr.isMemo=function(e){return os(e)===G_};Qr.isPortal=function(e){return os(e)===t5};Qr.isProfiler=function(e){return os(e)===U_};Qr.isStrictMode=function(e){return os(e)===F_};Qr.isSuspense=function(e){return os(e)===K_};Qr.isSuspenseList=function(e){return os(e)===V_};Qr.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===B_||e===U_||e===F_||e===K_||e===V_||typeof e=="object"&&e!==null&&(e.$$typeof===Y_||e.$$typeof===G_||e.$$typeof===H_||e.$$typeof===W_||e.$$typeof===q_||e.$$typeof===Vhe||e.getModuleId!==void 0)};Qr.typeOf=os});var hq=$o((i9e,gq)=>{"use strict";gq.exports=mq()});var rte=Z(J()),nte=Z(x6());var Nt=Z(J());var ft=Z(J());var kr=Z(J()),Yd={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"}},tv={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"}},km={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 goe=({id:e="mascot"})=>kr.default.createElement("g",{stroke:"none",fill:"none",fillRule:"evenodd",strokeWidth:"1"},kr.default.createElement("g",{transform:"translate(25, 475) scale(-1, 1) rotate(-180) translate(-25, -475) translate(0, 450)"},kr.default.createElement("g",{fillRule:"nonzero"},kr.default.createElement("path",{d:"M421,271.3 C422.733,265.1 423.667,244.633 423.8,209.9 C423.9,173.4 423.8,142.1 423.5,140.4 C423.1,137.9 412.5,126.8 373.1,87.2 C345.6,59.7 321.7,36.3 319.8,35.3 C316.7,33.6 312.5,33.5 250,33.5 C186.5,33.5 183.3,33.6 178.2,35.4 C173.5,37.2 168.3,42.1 125.2,85.3 C69.3,141.4 75.6,134.9 73.7,138.7 C72.3,141.3 72,147.2 71.8,178.6 C71.3,243.6 71.8,276 73.4,276 C74.067,276 99.6,304.854 150,362.563 L350.015,362.563 L421,271.3 Z",fill:"#EB5555",stroke:"#000000",strokeWidth:"12"})),kr.default.createElement("path",{d:"M216.5,202.5 C213.4,199.5 213.4,198.7 216.5,193.4 C223.2,182 248.2,176 264.5,181.9 C273,185 280.3,190.1 282.4,194.5 C284,197.9 284,198.3 282.5,200.6 C281.6,202 279.8,203.6 278.5,204.2 C276.4,205.1 275.4,204.7 270.1,200.8 C263,195.4 254.7,193.3 244.4,194.4 C236.1,195.3 234.3,196 228.6,200.9 C223.1,205.6 220,206.1 216.5,202.5 Z",fill:"#000000",fillRule:"nonzero"}),kr.default.createElement("path",{d:"M177.8,484.5 C169.1,482.1 162,475.2 157.7,465 C156.2,461.4 151.9,446.6 148.1,432 C144.3,417.4 140.7,404.3 140.1,402.8 L139,400 L94.8,400 C70.4,400 49.5,399.7 48.2,399.4 C45.1,398.5 42.7,393.8 43.9,390.8 C45.1,387.9 49.4,383.3 54,379.9 C68.7,369.2 86.3,364.8 120,363.4 C126.067,363.2 134.065,362.921 143.995,362.563 L350.015,362.563 C367.433,363.767 377.5,364.1 377.5,364.1 C411,365.2 433.1,371.5 446.2,383.8 C453.8,390.9 455.1,394.7 451.3,399 C451,399.3 429.6,399.7 403.7,400 L356.6,400.5 L353.3,412.5 C351.5,419.1 348.2,431.3 346.1,439.5 C339.9,463 336.7,470.5 329.4,477.5 C322.9,483.8 315.7,486.3 305.5,485.8 C298.1,485.4 296.1,484.7 280.5,477.8 C271.2,473.7 261.7,469.7 259.5,468.9 C250.9,466.1 238.1,467.9 224.9,473.8 C197.3,486.1 189.8,487.8 177.8,484.5 Z",stroke:"#000000",strokeWidth:"11",fill:"#000000",fillRule:"nonzero"}),kr.default.createElement("g",{transform:"translate(75.105, 196.182)"},kr.default.createElement("ellipse",{fill:"#F5E6D3",cx:"87",cy:"55",rx:"35",ry:"29"}),kr.default.createElement("ellipse",{fill:"#5D4037",cx:"87",cy:"57",rx:"20",ry:"20"}),kr.default.createElement("ellipse",{fill:"#2D1F1F",cx:"87",cy:"57",rx:"12",ry:"12"}),kr.default.createElement("ellipse",{fill:"#FFFFFF",cx:"80",cy:"51",rx:"5",ry:"5"}),kr.default.createElement("ellipse",{fill:"#F5E6D3",cx:"259",cy:"55",rx:"35",ry:"29"}),kr.default.createElement("ellipse",{fill:"#5D4037",cx:"259",cy:"57",rx:"20",ry:"20"}),kr.default.createElement("ellipse",{fill:"#2D1F1F",cx:"259",cy:"57",rx:"12",ry:"12"}),kr.default.createElement("ellipse",{fill:"#FFFFFF",cx:"252",cy:"51",rx:"5",ry:"5"})),kr.default.createElement("g",{transform:"translate(75.105, 196.182)",fillRule:"nonzero"},kr.default.createElement("g",{transform:"translate(267.395, 54.835) scale(-1, 1) translate(-267.395, -54.835)"},kr.default.createElement("path",{d:"M346.895,99.881 L335.287,108.67 L292.495,108.67 L211.805,108.67 C194.861,92.394 186.922,84.257 187.99,84.257 C188.99,84.257 187.689,77.518 187.99,71.118 C188.99,54.518 196.996,38.618 211.805,23.818 C219.711,15.918 222.813,13.518 230.118,10.018 C242.025,4.118 250.431,1.818 262.839,1.118 C274.147,0.518 285.354,2.218 295.561,6.018 C308.67,10.918 327.482,26.818 335.287,39.618 C342.092,50.918 346.895,65.818 346.895,76.018 C346.895,82.818 346.895,90.772 346.895,99.881 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000",fillOpacity:"0.92"})),kr.default.createElement("path",{d:"M158.895,99.881 L147.295,108.67 L104.531,108.67 L23.895,108.67 C6.961,92.394 -0.972,84.257 0.095,84.257 C1.095,84.257 -0.205,77.518 0.095,71.118 C1.095,54.518 9.095,38.618 23.895,23.818 C31.795,15.918 34.895,13.518 42.195,10.018 C54.095,4.118 62.495,1.818 74.895,1.118 C86.195,0.518 97.395,2.218 107.595,6.018 C120.695,10.918 139.495,26.818 147.295,39.618 C154.095,50.918 158.895,65.818 158.895,76.018 C158.895,82.818 158.895,90.772 158.895,99.881 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000",fillOpacity:"0.92"})),kr.default.createElement("g",{transform:"translate(75.105, 196.182)",fillRule:"nonzero"},kr.default.createElement("path",{d:"M187.895,73.418 C187.895,60.818 195.095,43.418 205.495,30.818 C213.379,21.259 220.29,15.351 230.066,10.615 C233.275,8.66 236.386,7.08 239.229,6.018 C246.892,3.165 255.119,1.496 263.529,1.095 C267.063,0.859 270.58,0.912 274.131,1.261 C285.374,2.105 293.475,4.47 304.672,10.018 C311.734,13.402 314.868,15.757 322.213,23.049 L322.795,23.618 C326.306,27.085 329.397,30.586 332.082,34.15 L332.148,34.235 C341.116,45.994 346.03,58.349 346.8,71.118 C346.957,74.467 346.676,77.909 346.515,80.429 C346.693,80.646 346.917,80.701 347.195,80.618 C347.366,80.542 348.039,80.501 349.213,80.495 L349.775,80.495 C352.888,80.507 358.769,80.715 367.418,81.118 C374.646,86.469 378.26,91.703 378.26,96.818 C378.26,101.933 374.646,107.042 367.418,112.146 L15.403,112.146 L-20.38,113.348 C-27.807,110.322 -31.52,105.629 -31.52,99.27 C-31.52,92.911 -27.807,88.087 -20.38,84.798 C-13.63,84.605 -8.537,84.463 -5.101,84.373 C-5.115,84.296 -5.084,84.257 -5.01,84.257 C-4.01,84.257 -5.311,77.518 -5.01,71.118 C-4.01,54.518 3.996,38.618 18.805,23.818 C26.711,15.918 29.813,13.518 37.118,10.018 C49.025,4.118 57.431,1.818 69.839,1.118 C72.166,0.994 74.489,0.968 76.8,1.038 C76.165,1.058 75.53,1.084 74.895,1.118 C62.495,1.818 54.095,4.118 42.195,10.018 C34.895,13.518 31.795,15.918 23.895,23.818 C9.095,38.618 1.095,54.518 0.095,71.118 C-0.205,77.518 1.095,84.257 0.095,84.257 C-0.4,84.257 -2.131,84.296 -5.101,84.373 C-4.938,85.42 3.031,93.518 18.805,108.67 L142.287,108.67 L153.895,99.881 L153.895,76.018 C153.895,65.818 149.092,50.918 142.287,39.618 C134.482,26.818 115.67,10.918 102.561,6.018 C94.455,3 85.717,1.307 76.8,1.038 C87.451,0.716 97.968,2.432 107.595,6.018 C120.695,10.918 139.495,26.818 147.295,39.618 C154.095,50.918 158.895,65.818 158.895,76.018 L158.895,80.418 L164.995,80.418 C168.395,80.118 174.995,79.818 179.495,79.818 L187.895,79.818 L187.895,99.881 L199.502,108.67 L322.984,108.67 C339.929,92.394 347.867,84.257 346.8,84.257 C346.323,84.257 346.369,82.725 346.515,80.429 C346.051,79.868 345.895,78.223 345.895,75.118 C345.895,59.873 341.479,46.625 332.082,34.15 L331.696,33.647 C329.117,30.321 326.212,27.043 322.984,23.818 C322.722,23.556 322.465,23.299 322.213,23.049 C316.441,17.437 312.579,14.708 306.095,11.418 C294.424,5.583 284.144,2.245 274.131,1.261 C273.417,1.207 272.691,1.16 271.95,1.118 C269.132,0.968 266.321,0.962 263.529,1.095 C257.389,1.506 251.198,2.792 244.695,4.918 C239.073,6.731 234.301,8.563 230.066,10.615 C218.478,17.668 205.615,29.594 199.502,39.618 C192.698,50.917 187.895,65.817 187.895,76.017 L187.895,73.418 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000"})),kr.default.createElement("g",{transform:"translate(83.563, 252.212)",fill:"#FFFFFF",fillRule:"nonzero"},kr.default.createElement("path",{d:"M12.837,35.288 C13.137,33.988 14.437,31.888 15.637,30.788 L17.837,28.788 L15.637,26.788 C14.437,25.688 13.137,23.588 12.837,22.288 C12.037,19.088 10.637,19.088 9.437,22.188 C8.937,23.488 7.537,25.588 6.237,26.788 C4.037,28.788 4.037,28.988 5.737,29.988 C6.837,30.488 8.237,32.488 9.037,34.388 C10.737,38.388 11.937,38.688 12.837,35.288 Z M29.237,33.088 C30.137,29.688 31.837,27.088 34.937,24.088 L39.337,19.888 L36.337,17.788 C33.437,15.588 28.437,7.288 28.437,4.288 C28.437,2.188 26.537,2.388 25.837,4.588 C23.937,10.388 21.637,14.388 18.337,17.188 L14.537,20.388 L17.337,22.088 C19.837,23.588 24.337,30.988 25.837,36.088 C26.737,39.088 27.937,37.988 29.237,33.088 Z M10.937,12.488 L13.037,9.288 L10.937,6.088 C8.837,2.788 7.437,1.888 7.437,3.988 C7.437,4.588 6.537,6.088 5.437,7.288 L3.437,9.488 L5.437,11.288 C6.537,12.288 7.437,13.688 7.437,14.488 C7.437,16.688 8.837,15.888 10.937,12.488 Z"}),kr.default.createElement("path",{d:"M203.437,36.388 C203.437,35.588 204.637,33.588 206.037,31.888 L208.637,28.788 L206.037,25.688 C204.637,23.988 203.437,21.988 203.437,21.188 C203.437,18.588 201.437,19.788 200.037,23.188 C199.237,25.088 197.837,27.088 196.737,27.688 C195.037,28.688 195.037,28.788 197.037,30.188 C198.237,30.988 199.737,33.088 200.437,34.788 C201.737,37.888 203.437,38.788 203.437,36.388 Z M220.837,32.588 C221.937,29.288 224.237,25.788 226.737,23.388 C229.737,20.488 230.537,19.288 229.437,18.988 C226.637,17.988 222.437,12.588 220.737,7.688 C219.737,4.988 218.737,2.788 218.337,2.788 C218.037,2.788 216.737,5.288 215.537,8.288 C214.337,11.288 211.737,15.088 209.837,16.688 C205.937,20.188 205.637,21.388 208.437,22.288 C210.937,23.088 214.737,28.788 216.437,34.088 C217.037,36.088 217.937,37.788 218.237,37.788 C218.637,37.788 219.837,35.388 220.837,32.588 Z M201.137,14.088 C201.437,13.088 202.437,11.488 203.337,10.488 C204.337,9.288 204.537,8.388 203.837,7.988 C203.237,7.588 202.237,6.288 201.537,5.088 C200.137,2.388 198.837,2.188 198.037,4.588 C197.737,5.488 196.937,6.988 196.337,7.888 C195.337,9.288 195.437,9.888 196.737,11.288 C197.637,12.188 198.437,13.588 198.437,14.388 C198.437,16.388 200.337,16.188 201.137,14.088 Z"}))));function In({size:e=200,instructions:t=[],tools:r=[],showDecorations:n=!1,className:o="",hat:a,hatAccessory:i,heldItem:s,theme:l,customColors:u}){return kr.default.createElement("div",{className:`inline-flex flex-col items-center ${o}`},n&&t.length>0&&kr.default.createElement("div",{className:"flex gap-1 mb-1"},t.map(c=>{let d=Yd[c];return d?kr.default.createElement("span",{key:c,className:"text-sm",title:d.label},d.emoji):null})),kr.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 500 500",width:e,height:e,role:"img","aria-label":"Active Agent mascot"},kr.default.createElement("title",null,"ActiveAgent"),kr.default.createElement(goe,null)),n&&r.length>0&&kr.default.createElement("div",{className:"flex gap-1 mt-1"},r.map(c=>{let d=tv[c];return d?kr.default.createElement("span",{key:c,className:"text-sm",title:d.label},d.emoji):null})))}var Ha=Z(J());var Ns=Z(J()),b6=(0,Ns.createContext)();function w6({children:e}){let[t,r]=(0,Ns.useState)(()=>{let o=localStorage.getItem("dashboard-theme");return o?o==="dark":window.matchMedia("(prefers-color-scheme: dark)").matches});(0,Ns.useEffect)(()=>{localStorage.setItem("dashboard-theme",t?"dark":"light")},[t]),(0,Ns.useEffect)(()=>{let o=window.matchMedia("(prefers-color-scheme: dark)"),a=i=>{localStorage.getItem("dashboard-theme")||r(i.matches)};return o.addEventListener("change",a),()=>o.removeEventListener("change",a)},[]);let n=()=>r(!t);return Ns.default.createElement(b6.Provider,{value:{darkMode:t,toggleDarkMode:n}},e)}function ut(){let e=(0,Ns.useContext)(b6);if(!e)throw new Error("useTheme must be used within a ThemeProvider");return e}function _m({name:e,subtitle:t,badge:r,accentColor:n,stats:o=[],footer:a,onClick:i,actions:s}){let{darkMode:l}=ut(),[u,c]=Ha.default.useState(!1),d={cardBg:l?"rgba(255,255,255,0.05)":"#ffffff",border:l?"rgba(255,255,255,0.1)":"#e5e7eb",borderHover:l?"rgba(255,255,255,0.2)":"#d1d5db",tileBg:l?"rgba(255,255,255,0.05)":"#f9fafb",textPrimary:l?"#f9fafb":"#111827",textSecondary:l?"#9ca3af":"#6b7280",textMuted:l?"#6b7280":"#9ca3af"},p=f=>f==="good"?l?"#4ade80":"#16a34a":f==="warn"?l?"#facc15":"#ca8a04":f==="bad"?l?"#f87171":"#dc2626":f==="muted"?d.textMuted:d.textPrimary;return Ha.default.createElement("div",{"data-testid":"agent-card","data-agent-name":typeof e=="string"?e:void 0,onClick:i,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),role:i?"button":void 0,tabIndex:i?0:void 0,onKeyDown:f=>{i&&(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),i(f))},style:{background:d.cardBg,borderTop:`1px solid ${u?d.borderHover:d.border}`,borderRight:`1px solid ${u?d.borderHover:d.border}`,borderBottom:`1px solid ${u?d.borderHover:d.border}`,borderLeft:n?`4px solid ${n}`:`1px solid ${u?d.borderHover:d.border}`,borderRadius:"12px",padding:"16px",cursor:i?"pointer":"default",transition:"border-color 0.15s ease, box-shadow 0.15s ease",boxShadow:u&&i?"0 4px 16px rgba(0,0,0,0.08)":"none",display:"flex",flexDirection:"column",gap:"12px"}},Ha.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"8px"}},Ha.default.createElement("div",{style:{minWidth:0}},Ha.default.createElement("div",{style:{fontWeight:600,fontSize:"15px",color:u&&i?"#ef4444":d.textPrimary,transition:"color 0.15s ease",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e},e),t&&Ha.default.createElement("div",{style:{fontSize:"13px",color:d.textSecondary,marginTop:"2px",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"}},t)),r&&Ha.default.createElement("div",{style:{flexShrink:0}},r)),o.length>0&&Ha.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:"6px"}},o.map(f=>Ha.default.createElement("div",{key:f.label,title:f.title,style:{background:d.tileBg,borderRadius:"8px",padding:"6px 8px",textAlign:"center"}},Ha.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,lineHeight:1.2,color:p(f.tone)}},f.value),Ha.default.createElement("div",{style:{fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.04em",color:d.textMuted,whiteSpace:"nowrap"}},f.label)))),a&&Ha.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px",fontSize:"12px",color:d.textMuted}},a),s&&Ha.default.createElement("div",{style:{opacity:u?1:0,transition:"opacity 0.15s ease"}},s))}function fT(e){return e==null?"muted":e>=.85?"good":e>=.7?"warn":"bad"}var al="~ estimated from tokens \xD7 model rates",X1=e=>e!=null&&e!==""&&Number.isFinite(Number(e)),_6=e=>Math.sign(e)*Math.round(Number(Math.abs(e).toFixed(9))),Ts=e=>X1(e)?`${_6(Number(e)*100)}%`:"\u2014",Kn=(e,t)=>{let r=Number(t)||0;if(r<=0)return"\u2014";let n=Number(e)||0;return`${n}/${r} \xB7 ${_6(n*100/r)}%`},aa=e=>Ts(e),Z1=e=>`pass \u2265 ${Ts(e)}`,Pr=(e,{estimated:t=!1}={})=>{if(!X1(e))return"\u2014";let r=Number(e),n=r===0?2:Math.abs(r)<.001?6:4;return`${t?"~":""}$${r.toFixed(n)}`},S6=e=>Math.round(Number(e)||0).toLocaleString("en-US"),k6=e=>{let[t,r=""]=String(Number(Number(e).toFixed(4))).split(".");return`$${t}.${r.padEnd(2,"0")}/M`},hoe=["pattern","default"],Cm=({inputTokens:e,outputTokens:t,rate:r}={})=>{if(!r||!X1(r.input)||!X1(r.output))return"estimated from tokens \xD7 model rates";let n=r.source||"catalog";return`estimated: ${S6(e)} in \xD7 ${k6(r.input)} + ${S6(t)} out \xD7 ${k6(r.output)} \xB7 ${n} rate${hoe.includes(n)?" (fallback rate)":""}`};var yoe=[{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 mT({agents:e,meta:t,onSelect:r,onNew:n,onBrowseTemplates:o,onDuplicate:a,onDelete:i,onRefresh:s,sort:l="recent",onSortChange:u,isLoading:c}){let[d,p]=(0,ft.useState)(""),[f,m]=(0,ft.useState)(""),[y,b]=(0,ft.useState)(""),g=e.filter(k=>{let A=!d||k.name.toLowerCase().includes(d.toLowerCase())||k.description?.toLowerCase().includes(d.toLowerCase()),C=!f||k.provider===f,T=!y||k.status===y;return A&&C&&T}),h=k=>{let A=new Date(k),T=new Date-A,$=Math.floor(T/(1e3*60*60*24));return $===0?"Today":$===1?"Yesterday":$<7?`${$} days ago`:A.toLocaleDateString()},v=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}`,_=k=>k==null?"\u2014":k>0&&k<.01?"<$0.01":`$${k.toFixed(2)}`,w=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 ft.default.createElement("div",{className:"space-y-6"},ft.default.createElement("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4"},ft.default.createElement("div",{className:"flex-1 flex items-center space-x-4"},ft.default.createElement("div",{className:"relative flex-1 max-w-md"},ft.default.createElement("input",{type:"text",placeholder:"Search agents...",value:d,onChange:k=>p(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"}),ft.default.createElement("svg",{className:"absolute left-3 top-2.5 h-5 w-5 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"}))),ft.default.createElement("select",{value:f,onChange:k=>m(k.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},ft.default.createElement("option",{value:""},"All Providers"),t.providers?.map(k=>ft.default.createElement("option",{key:k,value:k},k.charAt(0).toUpperCase()+k.slice(1)))),ft.default.createElement("select",{value:y,onChange:k=>b(k.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},ft.default.createElement("option",{value:""},"All Status"),ft.default.createElement("option",{value:"active"},"Active"),ft.default.createElement("option",{value:"draft"},"Draft"),ft.default.createElement("option",{value:"archived"},"Archived")),ft.default.createElement("select",{value:l,onChange: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"},yoe.map(k=>ft.default.createElement("option",{key:k.value,value:k.value},k.label)))),ft.default.createElement("div",{className:"flex items-center space-x-3"},ft.default.createElement("button",{onClick:s,disabled:c,className:"p-2 text-gray-500 hover:text-gray-700 hover:bg-gray-100 rounded-lg transition-colors"},ft.default.createElement("svg",{className:`h-5 w-5 ${c?"animate-spin":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"}))),ft.default.createElement("button",{onClick:o,className:"flex items-center space-x-2 px-4 py-2 border border-gray-300 text-gray-700 rounded-lg hover:bg-gray-50 transition-colors"},ft.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"})),ft.default.createElement("span",null,"Browse Templates")),ft.default.createElement("button",{onClick:n,className:"flex items-center space-x-2 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors"},ft.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})),ft.default.createElement("span",null,"New Agent")))),g.length>0?ft.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6"},g.map(k=>{let A=k.stats||{},C=A.run_sources||[],T=C.length?`Counted from ${C.map($=>$==="platform"?"dashboard runs":"reported telemetry").join(" + ")}`:void 0;return ft.default.createElement(_m,{key:k.id,name:k.name,subtitle:k.description||"No description",badge:ft.default.createElement("span",{className:`px-2 py-0.5 text-xs font-medium rounded-full ${v(k.status)}`},k.status),onClick:()=>r(k),stats:[{label:`Runs ${A.window_days||30}d`,value:A.runs??0,title:T},{label:"Success",value:A.success_rate!=null?`${Math.round(A.success_rate)}%`:"\u2014",tone:fT(A.success_rate!=null?A.success_rate/100:null)},{label:"Avg time",value:x(A.avg_duration_ms)},{label:"Eval",title:A.eval_samples_evaluated?`${Kn(A.eval_samples_passed,A.eval_samples_evaluated)} passed over ${A.eval_runs??"the"} current evaluation${A.eval_runs===1?"":"s"}${A.eval_not_counted?` \xB7 ${A.eval_not_counted} stale or archived not counted`:""}`:A.eval_not_counted?`${A.eval_not_counted} evaluation${A.eval_not_counted===1?"":"s"} stale or archived, none counted`:"No evaluation counted yet",value:Ts(A.eval_score),tone:fT(A.eval_score)},{label:"Tokens",value:S(A.tokens)},{label:"Cost",value:_(A.cost),title:"Estimated from token counts at each model's published rates",tone:A.cost==null?"muted":void 0}],footer:ft.default.createElement(ft.default.Fragment,null,ft.default.createElement("span",{style:{display:"flex",alignItems:"center",gap:"6px",minWidth:0}},ft.default.createElement("span",{style:{padding:"2px 6px",borderRadius:"4px",background:"rgba(128,128,128,0.15)",whiteSpace:"nowrap",flexShrink:0}},k.provider),ft.default.createElement("span",{title:k.model,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},k.model)),ft.default.createElement("span",{style:{whiteSpace:"nowrap"},title:`Updated ${h(k.updatedAt||k.updated_at)}`},A.last_run_at?`Last run ${w(A.last_run_at)}`:`Updated ${h(k.updatedAt||k.updated_at)}`)),actions:ft.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"13px"}},ft.default.createElement("button",{onClick:$=>{$.stopPropagation(),a(k.id)},className:"text-gray-500 hover:text-red-600 transition-colors"},"Duplicate"),ft.default.createElement("button",{onClick:$=>{$.stopPropagation(),i(k.id)},className:"text-red-500 hover:text-red-700 transition-colors"},"Delete"))})})):ft.default.createElement("div",{className:"text-center py-16"},ft.default.createElement("div",{className:"inline-block mb-4"},ft.default.createElement(In,{size:100})),ft.default.createElement("h3",{className:"text-lg font-medium text-gray-900 mb-2"},e.length===0?"No agents yet":"No matching agents"),ft.default.createElement("p",{className:"text-gray-500 mb-6"},e.length===0?"Create your first AI agent to get started":"Try adjusting your search or filters"),e.length===0&&ft.default.createElement("div",{className:"flex items-center justify-center space-x-4"},ft.default.createElement("button",{onClick:o,className:"inline-flex items-center space-x-2 px-6 py-3 border-2 border-red-500 text-red-600 rounded-lg hover:bg-red-50 transition-colors"},ft.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"})),ft.default.createElement("span",null,"Browse Templates")),ft.default.createElement("span",{className:"text-gray-400"},"or"),ft.default.createElement("button",{onClick:n,className:"inline-flex items-center space-x-2 px-6 py-3 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors"},ft.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})),ft.default.createElement("span",null,"Create From Scratch")))))}var ye=Z(J());var Fo={chevronRight:">",chevronDown:"v",chevronUp:"^",arrow:"->",arrowLeft:"<-",pipe:"|",corner:"+",branch:"|-",success:"[+]",error:"[!]",warning:"[?]",info:"[i]",pending:"[ ]",active:"[*]",add:"+",remove:"-",edit:"*",view:"@",run:">",stop:"x",refresh:"~",trace:"->",span:"|",metric:"#",log:">",agent:"@",action:"#",time:":",cost:"$",tokens:"T",memory:"M",nav:{agents:"@",newAgent:"+",demo:">",traces:"->",metrics:"#",evaluations:"=",interactions:"<>",benchmarks:"%%",replay:"[>]",tools:"[]",mcp:"{}",docs:"?",github:"*"},spans:{root:">",prompt:"*",generate:"|>",llm:">>",thinking:"..",tool:"[]",response:"<|"}};var Pt={mono:"'SF Mono', 'Fira Code', 'Consolas', monospace",sizes:{xs:"10px",sm:"11px",base:"13px",md:"14px",lg:"16px",xl:"20px",xxl:"24px"},weights:{normal:400,medium:500,semibold:600,bold:700}};function C6(e,{ttlMs:t,keep:r=()=>!0,now:n=Date.now}){let o=new Map,a=i=>{let s=o.get(i);if(s&&(s.expiresAt===null||n()(o.get(i)===l&&(r(u)?l.expiresAt=n()+t:o.delete(i)),u),u=>{throw o.get(i)===l&&o.delete(i),u}),o.set(i,l),l.promise};return a.clear=()=>o.clear(),a}var Am={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"]},J1=Object.keys(Am),voe=300*1e3,A6=C6(xoe,{ttlMs:voe,keep:e=>e!==null});async function E6(e){return await A6(e)??(Am[e]||[])}function gT(){A6.clear()}async function xoe(e){try{let t=await fetch(`/api/provider_models?provider=${encodeURIComponent(e)}`);if(t.ok){let r=await t.json();if(Array.isArray(r.models)&&r.models.length>0)return r.models}}catch{}return null}var Q1=Z(J());function xc(e){let[t,r]=(0,Q1.useState)(Am),n=e.join(",");return(0,Q1.useEffect)(()=>{let o=!1;return e.forEach(a=>{E6(a).then(i=>{o||i.length===0||r(s=>({...s,[a]:i}))})}),()=>{o=!0}},[n]),t}var bc=Z(J());function Rl({value:e,models:t=[],onChange:r,className:n,style:o,placeholder:a="Type to search models",inputRef:i,...s}){let l=(0,bc.useId)();return bc.default.createElement(bc.default.Fragment,null,bc.default.createElement("input",{...s,ref:i,type:"text",list:l,value:e||"",onChange:u=>r(u.target.value,u),placeholder:a,autoComplete:"off",spellCheck:!1,className:n,style:o}),bc.default.createElement("datalist",{id:l},t.filter(Boolean).map(u=>bc.default.createElement("option",{key:u,value:u}))))}var boe=["agent_defined","dashboard","mcp"],hT={agent_defined:"Agent-defined",dashboard:"Dashboard",mcp:"MCP"},woe={agent_defined:"the host's schema tools, and what the agent class declares",dashboard:"built into the dashboard",mcp:"offered by the services above"},ew=[{value:"24h",label:"24h",hours:24},{value:"7d",label:"7d",hours:168},{value:"30d",label:"30d",hours:720}],yT=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`},rv=(e,t=Date.now())=>{if(!e)return"never";let r=new Date(e).getTime();if(Number.isNaN(r))return"never";let n=Math.floor((t-r)/6e4);if(n<1)return"just now";if(n<60)return`${n}m ago`;let o=Math.floor(n/60);return o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`},Soe="sandbox:",Xd=e=>!!(e&&(e.runtime===!0||String(e.key||"").startsWith(Soe))),nv=e=>Xd(e)&&!e.known,tw=e=>!!e&&!e.known&&!Xd(e);function N6(e){return nv(e)?"this sandbox is no longer running, so it offers no tools \u2014 switch it off, and start a new sandbox from Settings \u2192 Integrations to enable its runtime":Xd(e)?"tools are listed by the running app each time the agent runs":"no tools recorded for this service yet"}var Em=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 R1(e,t=[]){let r=new Map;(t||[]).forEach(o=>{let a=Em(o);a&&r.set(a,o)});let n={};return(e.services||[]).forEach(o=>{let a=r.get(o.key),i=a&&typeof a=="object"&&Array.isArray(a.tools)?a.tools.map(s=>String(s&&s.name?s.name:s)):null;n[o.key]={on:r.has(o.key),tools:Object.fromEntries((o.tools||[]).map(s=>[s.name,i===null||i.includes(s.name)]))}}),n}var T6=e=>{let t=String(e||"").trim().toLowerCase();return(...r)=>!t||r.some(n=>String(n||"").toLowerCase().includes(t))};function O6(e,t,{query:r="",filter:n=null}={}){let o=T6(r);return(e.services||[]).filter(a=>n?n==="enabled"?t[a.key]?.on:a.status===n:!0).filter(a=>o(a.name,a.description)||(a.tools||[]).some(i=>o(i.name))).map(a=>{let i=t[a.key]||{on:!1,tools:{}},s=a.tools||[],l=s.map(c=>({...c,on:!!i.tools[c.name]})),u=l.filter(c=>c.on);return{...a,on:i.on,tools:l,offeredCount:s.length,enabledCount:u.length,toolsLabel:`${u.length}/${s.length}`,partial:i.on&&u.length{let o=t[n.key];!o||!o.on||(n.tools||[]).forEach(a=>{o.tools[a.name]&&r.push({...a,key:`${n.key}:${a.name}`,source:"mcp",editable:!1,enabled:!0,server:n.name,serverKey:n.key})})}),r}function P6(e,t,r=[]){let n=new Set((r||[]).map(String));return(e.tools||[]).map(o=>({...o,on:o.editable?n.has(o.key):o.enabled!==!1})).concat(koe(e,t).map(o=>({...o,on:!0})))}function M6(e,t,r,{query:n="",source:o=null,enabledOnly:a=!1}={}){let i=T6(n),s=P6(e,t,r),l=s.filter(u=>!o||u.source===o).filter(u=>!a||u.on).filter(u=>i(u.name,u.description));return boe.map(u=>{let c=s.filter(f=>f.source===u),d=c.some(f=>f.editable),p=c.filter(f=>f.on).length;return{source:u,name:hT[u],meta:`${woe[u]} \xB7 ${c.length} ${c.length===1?"tool":"tools"}`,countLabel:d?`${p}/${c.length} on`:`${c.length} offered`,editable:d,total:c.length,enabledCount:p,keys:c.map(f=>f.key),rows:l.filter(f=>f.source===u)}}).filter(u=>u.total>0)}function I6(e,t,r,{range:n="7d"}={}){let o=P6(e,t,r),a=e.usage_available!==!1,i=e.services||[],s=i.filter(f=>t[f.key]?.on),l=o.filter(f=>f.source!=="mcp"&&f.on),u=o.filter(f=>f.source==="mcp"),c=o.reduce((f,m)=>f+(m.calls||0),0),d=o.reduce((f,m)=>f+(m.errors||0),0),p=o.filter(f=>f.on&&!f.calls).length;return[{key:"tools",label:"Tools enabled",value:String(l.length+u.length),sub:`${l.length} direct \xB7 ${u.length} offered through MCP`},{key:"services",label:"MCP services",value:`${s.length}/${i.length}`,sub:s.length?`on for this agent: ${s.map(f=>f.name).join(", ")}`:"none enabled for this agent"},{key:"calls",label:"Tool calls",value:a?String(c):"\u2014",sub:a?`${d} error${d===1?"":"s"} in the last ${n} \xB7 traced`:"no calls recorded in this window yet"},{key:"unused",label:"Never called",value:a?String(p):"\u2014",sub:"enabled but unused in this window",tone:a&&p>6?"warning":null}]}function D6(e){return e?.on&&Array.isArray(e.approval_names)?e.approval_names.map(String):[]}function vT(e,t=[]){let r=D6(e);if(r.length===0)return null;let n=new Set((t||[]).map(String)),o=r.filter(a=>n.has(a)).length;return o===0?"off":o===r.length?"on":"partial"}function xT(e=[],t=[],r=!0){let n=(e||[]).map(String);return r?n.concat(t.filter(o=>!n.includes(o))):n.filter(o=>!t.includes(o))}function j6(e=[],t,r=[]){let n=(e||[]).map(String),o=vT(t,n);if(!o)return n;let a=new Set(xT(n,D6(t),o==="off")),i=(r||[]).map(String),s=new Set(i);return a.size===s.size&&[...a].every(u=>s.has(u))?i:[...a]}function $6(e,t,r){let n=R1(e,t.mcpServers),o=R1(e,r.mcpServers),a=0;Object.keys(n).forEach(d=>{n[d].on!==o[d].on&&(a+=1),Object.keys(n[d].tools).forEach(p=>{n[d].tools[p]!==o[d].tools[p]&&(a+=1)})});let i=new Set((t.tools||[]).map(String)),s=new Set((r.tools||[]).map(String));(e.tools||[]).forEach(d=>{d.editable&&i.has(d.key)!==s.has(d.key)&&(a+=1)});let l=new Set((t.approvalRequiredTools||[]).map(String)),u=new Set((r.approvalRequiredTools||[]).map(String));return(e.tools||[]).concat((e.services||[]).flatMap(d=>d.tools||[])).forEach(d=>{(d.approval_names||[]).some(p=>l.has(p)!==u.has(p))&&(a+=1)}),a}function L6(e,t,r=[]){let n=new Map;(r||[]).forEach(i=>{let s=Em(i);s&&n.set(s,i)});let o=[];(e.services||[]).forEach(i=>{let s=t[i.key];if(!s||!s.on)return;let l=(i.tools||[]).map(f=>f.name),u=l.filter(f=>s.tools[f]),c=n.get(i.key),d=l.length>0&&u.lengthi.key));return(r||[]).forEach(i=>{let s=Em(i);s&&!a.has(s)&&o.push(i)}),o}function z6(e,t=[]){let r=new Set((e.tools||[]).filter(a=>a.editable).map(a=>a.key)),n=(t||[]).map(String).filter(a=>!r.has(a)),o=(e.tools||[]).filter(a=>a.editable&&t.includes(a.key)).map(a=>a.key);return n.concat(o)}function bT(e){return(e?.tools||[]).filter(t=>t.editable&&t.implemented!==!1)}var _oe=["terminal","filesystem","edit","database"],rw=(e=[])=>e.some(t=>_oe.includes(t)),Coe={terminal:["run_command"],filesystem:["write_file"],edit:["edit_file"],slack:["slack_post_message"]},Nm=(e=[])=>[...new Set(e.flatMap(t=>Coe[t]||[]))];function B6(e){let t=e?.services||[],r=(n,o)=>(o.workspace_agents||0)-(n.workspace_agents||0)||String(n.name).localeCompare(String(o.name));return{callable:t.filter(n=>n.callable).sort(r),unavailable:t.filter(n=>!n.callable)}}function wT(e,t=[]){if(!e)return[...t];let r=new Set(bT(e).map(n=>n.key));return t.filter(n=>r.has(n))}var ST=(e=[],t)=>e.some(r=>Em(r)===t);function F6(e=[],t){return ST(e,t.key)?e.filter(r=>Em(r)!==t.key):[...e,{key:t.key,name:t.name}]}function U6(e){let t=e.workspace_agents||0;return t?`${t} agent${t===1?"":"s"}`:null}var nw=[{id:"basics",label:"Basics",icon:"1"},{id:"configure",label:"Configure",icon:"2"},{id:"review",label:"Review",icon:"3"}],ov={...tv,agents:{emoji:"\u{1F91D}",label:"Delegate to agents"},ask:{emoji:"\u{1F64B}",label:"Ask the user"}},Aoe=["name","slug","description","provider","model"];function kT({meta:e,onSave:t,onCancel:r,isLoading:n,initialDraft:o=null}){let[a,i]=(0,ye.useState)(0),[s,l]=(0,ye.useState)({name:"",description:"",provider:"openai",model:Am.openai[0],instructions:"",preset_type:"terminal",instruction_sets:["github"],tools:["terminal","code"],mcp_servers:[],model_config:{temperature:.7},...o?{name:o.name,description:o.description||"",instructions:o.instructions,provider:o.provider,model:o.model,tools:o.tools||[],instruction_sets:[],mcp_servers:o.mcp_servers||[]}:{}}),u=xc([s.provider]),c=(0,ye.useMemo)(()=>{let w=o?.model&&o.provider;return!w||!u[w]?u:{...u,[w]:[...new Set([o.model,...u[w]])]}},[u]),d=c[s.provider];(0,ye.useEffect)(()=>{d?.length&&l(w=>d.includes(w.model)?w:{...w,model:d[0]})},[d]);let[p,f]=(0,ye.useState)(null),[m,y]=(0,ye.useState)(null);(0,ye.useEffect)(()=>{fetch("/api/agents/tool_roster").then(w=>{if(!w.ok)throw new Error(`HTTP ${w.status}`);return w.json()}).then(w=>{f(w),l(k=>({...k,tools:wT(w,k.tools)}))}).catch(w=>y(w.message))},[]);let[b,g]=(0,ye.useState)(null),h=(w,k)=>{l(A=>({...A,[w]:k}))},v=(w,k)=>{l(A=>{let C=A[w]||[],T=C.includes(k)?C.filter($=>$!==k):[...C,k];return{...A,[w]:T}})},x=w=>{if(h("preset_type",w),km[w]){let k=km[w];h("instruction_sets",[...k.instructions]),h("tools",wT(p,k.tools))}},S=()=>{switch(a){case 0:return s.name.trim().length>=2;case 1:return!0;case 2:return!0;default:return!1}},_=async()=>{g(null);let w=await t({...s,approval_required_tools:Nm(s.tools)});w&&(g(w),Object.keys(w.fieldErrors||{}).some(k=>Aoe.includes(k))&&i(0))};return ye.default.createElement("div",{className:"max-w-4xl mx-auto"},o&&ye.default.createElement("div",{className:"mb-4 p-4 rounded-lg border border-red-200 bg-red-50 text-sm text-gray-700"},"Prepared by your workspace assistant. Review the instructions, model, and tools before creating this agent."),ye.default.createElement("div",{className:"mb-8"},ye.default.createElement("div",{className:"flex items-center justify-between"},nw.map((w,k)=>ye.default.createElement("div",{key:w.id,className:"flex items-center"},ye.default.createElement("div",{className:`flex items-center justify-center w-10 h-10 rounded-full border-2 transition-colors ${kye.default.createElement("li",{key:w},w)))),ye.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-8"},a===0&&ye.default.createElement(Eoe,{formData:s,updateField:h,providerModels:c,fieldErrors:b?.fieldErrors||{}}),a===1&&ye.default.createElement(Noe,{formData:s,meta:e,roster:p,rosterError:m,toggleArrayItem:v,updateField:h,selectPreset:x}),a===2&&ye.default.createElement(Toe,{formData:s,roster:p})),ye.default.createElement("div",{className:"flex justify-between mt-6"},ye.default.createElement("button",{onClick:a===0?r:()=>i(a-1),className:"px-6 py-2 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50 transition-colors"},a===0?"Cancel":"Back"),ye.default.createElement("button",{onClick:a===nw.length-1?_:()=>i(a+1),disabled:!S()||n,className:`px-6 py-2 rounded-lg transition-colors ${S()&&!n?"bg-red-500 text-white hover:bg-red-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},a===nw.length-1?"Create Agent":"Continue")))}function ow({messages:e}){return e.length?ye.default.createElement("p",{className:"mt-1 text-sm text-red-600"},e.join(". ")):null}function Eoe({formData:e,updateField:t,providerModels:r,fieldErrors:n}){let o=(...a)=>a.flatMap(i=>n[i]||[]);return ye.default.createElement("div",{className:"space-y-6"},ye.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Basic Information"),ye.default.createElement("p",{className:"text-gray-500"},"Give your agent a name and configure its AI provider."),ye.default.createElement("div",{className:"space-y-4"},ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Agent Name *"),ye.default.createElement("input",{type:"text",value:e.name,onChange:a=>t("name",a.target.value),placeholder:"My Awesome Agent",className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"}),ye.default.createElement(ow,{messages:o("name","slug")})),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Description"),ye.default.createElement("textarea",{value:e.description,onChange:a=>t("description",a.target.value),placeholder:"What does this agent do?",rows:3,className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"}),ye.default.createElement(ow,{messages:o("description")})),ye.default.createElement("div",{className:"grid grid-cols-2 gap-4"},ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Provider"),ye.default.createElement("select",{value:e.provider,onChange:a=>{t("provider",a.target.value),t("model",r[a.target.value][0])},className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},Object.keys(r).map(a=>ye.default.createElement("option",{key:a,value:a},a.charAt(0).toUpperCase()+a.slice(1)))),ye.default.createElement(ow,{messages:o("provider")})),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Model"),ye.default.createElement(Rl,{value:e.model,models:r[e.provider],onChange:a=>t("model",a),className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"}),ye.default.createElement(ow,{messages:o("model")}))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Temperature: ",e.model_config.temperature),ye.default.createElement("input",{type:"range",min:"0",max:"1",step:"0.1",value:e.model_config.temperature,onChange:a=>t("model_config",{...e.model_config,temperature:parseFloat(a.target.value)}),className:"w-full accent-red-500"}),ye.default.createElement("div",{className:"flex justify-between text-xs text-gray-400"},ye.default.createElement("span",null,"Precise"),ye.default.createElement("span",null,"Creative")))))}function Noe({formData:e,meta:t,roster:r,rosterError:n,toggleArrayItem:o,updateField:a,selectPreset:i}){let s=Object.keys(km),l=Object.keys(Yd),u=bT(r),{callable:c,unavailable:d}=B6(r);return ye.default.createElement("div",{className:"space-y-6"},ye.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Configure Agent"),ye.default.createElement("p",{className:"text-gray-500"},"Choose a preset or customize instructions and tools."),ye.default.createElement("div",{className:"flex justify-center py-6 bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl"},ye.default.createElement("div",{className:"flex flex-col items-center"},ye.default.createElement("div",{className:"flex gap-2 mb-2"},e.instruction_sets.map(p=>{let f=Yd[p];return f?ye.default.createElement("span",{key:p,className:"text-lg",title:f.label},f.emoji):null})),ye.default.createElement(In,{size:120}),ye.default.createElement("div",{className:"flex gap-2 mt-2"},e.tools.map(p=>{let f=tv[p];return f?ye.default.createElement("span",{key:p,className:"text-lg",title:f.label},f.emoji):null})))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},"Quick Presets"),ye.default.createElement("div",{className:"flex flex-wrap gap-2"},s.map(p=>ye.default.createElement("button",{key:p,onClick:()=>i(p),className:`px-4 py-2 rounded-lg border-2 text-sm transition-all ${e.preset_type===p?"border-red-500 bg-red-50 text-red-700":"border-gray-200 hover:border-gray-300 text-gray-600"}`},ye.default.createElement("span",{className:"capitalize"},p.replace(/([A-Z])/g," $1").trim()))))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},ye.default.createElement("strong",null,"Instructions"),ye.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"System/developer messages")),ye.default.createElement("div",{className:"flex flex-wrap gap-2"},l.map(p=>{let f=Yd[p];return ye.default.createElement("button",{key:p,onClick:()=>o("instruction_sets",p),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-sm transition-colors ${e.instruction_sets.includes(p)?"bg-red-500 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`},ye.default.createElement("span",null,f.emoji),ye.default.createElement("span",null,f.label))}))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},ye.default.createElement("strong",null,"Tools"),ye.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"Functions the model can call")),n&&ye.default.createElement("p",{className:"text-sm text-red-600"},"Could not load the tools this workspace offers: ",n),!r&&!n&&ye.default.createElement("p",{className:"text-sm text-gray-400"},"Loading tools\u2026"),ye.default.createElement("div",{className:"flex flex-wrap gap-2","data-testid":"builder-tools"},u.map(p=>ye.default.createElement(W6,{key:p.key,testId:`builder-tool-${p.key}`,on:e.tools.includes(p.key),onClick:()=>o("tools",p.key),emoji:ov[p.key]?.emoji||"\u{1F9F1}",label:ov[p.key]?.label||p.name,title:p.description||p.name}))),rw(e.tools)&&ye.default.createElement("p",{className:"mt-2 text-xs text-gray-500","data-testid":"builder-checkout-hint"},"Terminal, Filesystem, Edit and Database act in a repository checkout: choose one under Checkout when you run the agent.")),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},ye.default.createElement("strong",null,"MCP servers"),ye.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"Every tool the server serves is offered")),r&&c.length===0&&ye.default.createElement("p",{className:"text-sm text-gray-500"},"No MCP server this workspace can call yet. Register one with its URL in ",ye.default.createElement("code",null,"ActionAgent.mcp_catalog"),", or boot a project's checkout to offer its app runtime."),ye.default.createElement("div",{className:"flex flex-wrap gap-2","data-testid":"builder-mcp-servers"},c.map(p=>ye.default.createElement(W6,{key:p.key,testId:`builder-mcp-${p.key}`,on:ST(e.mcp_servers,p.key),onClick:()=>a("mcp_servers",F6(e.mcp_servers,p)),emoji:p.runtime?"\u{1F4E6}":"\u{1F50C}",label:p.name,hint:U6(p),title:[p.description,p.transport].filter(Boolean).join(" \xB7 ")}))),d.length>0&&ye.default.createElement("details",{className:"mt-3 text-sm","data-testid":"builder-mcp-unavailable"},ye.default.createElement("summary",{className:"cursor-pointer text-gray-500"},d.length," catalog server",d.length===1?"":"s"," a run can't call"),ye.default.createElement("ul",{className:"mt-2 space-y-1"},d.map(p=>ye.default.createElement("li",{key:p.key,className:"text-xs text-gray-500"},ye.default.createElement("span",{className:"font-medium text-gray-700"},p.name)," \u2014 ",p.unavailable_reason))))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-2"},"System Instructions"),ye.default.createElement("textarea",{value:e.instructions,onChange:p=>a("instructions",p.target.value),placeholder:"You are a helpful AI assistant that...",rows:4,className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent font-mono text-sm"})))}function Toe({formData:e,roster:t}){let r=n=>{let o=typeof n=="string"?n:n?.key;return t?.services?.find(a=>a.key===o)?.name||n?.name||o};return ye.default.createElement("div",{className:"space-y-6"},ye.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Review Your Agent"),ye.default.createElement("p",{className:"text-gray-500"},"Confirm the configuration before creating your agent."),ye.default.createElement("div",{className:"grid grid-cols-2 gap-8"},ye.default.createElement("div",{className:"flex flex-col items-center py-6 bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl"},ye.default.createElement("div",{className:"flex gap-2 mb-2"},e.instruction_sets.map(n=>{let o=Yd[n];return o?ye.default.createElement("span",{key:n,className:"text-lg",title:o.label},o.emoji):null})),ye.default.createElement(In,{size:100}),ye.default.createElement("div",{className:"flex gap-2 mt-2"},e.tools.map(n=>{let o=tv[n];return o?ye.default.createElement("span",{key:n,className:"text-lg",title:o.label},o.emoji):null})),ye.default.createElement("h3",{className:"mt-4 text-lg font-semibold text-gray-900"},e.name),ye.default.createElement("p",{className:"text-sm text-gray-500"},e.description||"No description")),ye.default.createElement("div",{className:"space-y-4"},ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Provider / Model"),ye.default.createElement("p",{className:"text-gray-900"},e.provider," / ",e.model)),ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Temperature"),ye.default.createElement("p",{className:"text-gray-900"},e.model_config.temperature)),ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Instructions"),ye.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.instruction_sets.length>0?e.instruction_sets.map(n=>{let o=Yd[n];return o?ye.default.createElement("span",{key:n,className:"px-2 py-0.5 bg-gray-100 rounded text-xs"},o.emoji," ",o.label):null}):ye.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))),ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Tools"),ye.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.tools.length>0?e.tools.map(n=>ye.default.createElement("span",{key:n,className:"px-2 py-0.5 bg-red-100 text-red-700 rounded text-xs"},ov[n]?`${ov[n].emoji} ${ov[n].label}`:n)):ye.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))),Nm(e.tools).length>0&&ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Waits for your approval"),ye.default.createElement("p",{className:"text-gray-900 text-sm font-mono"},Nm(e.tools).join(", "))),ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"MCP servers"),ye.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.mcp_servers.length>0?e.mcp_servers.map(n=>ye.default.createElement("span",{key:r(n),className:"px-2 py-0.5 bg-red-100 text-red-700 rounded text-xs"},r(n))):ye.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))))),e.instructions&&ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"System Instructions"),ye.default.createElement("pre",{className:"mt-2 p-4 bg-gray-50 rounded-lg text-sm text-gray-700 whitespace-pre-wrap font-mono"},e.instructions)))}function W6({on:e,onClick:t,emoji:r,label:n,hint:o,title:a,testId:i}){return ye.default.createElement("button",{type:"button","data-testid":i,"aria-pressed":e,onClick:t,title:a,className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-sm transition-colors ${e?"bg-red-500 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`},ye.default.createElement("span",null,r),ye.default.createElement("span",null,n),o&&ye.default.createElement("span",{className:`text-xs ${e?"text-red-100":"text-gray-400"}`},"\xB7 ",o))}var Se=Z(J());var qi=e=>({cardBg:e?"#1f1f1f":"#ffffff",cardBorder:e?"#2a2a2a":"#e5e7eb",borderStrong:e?"rgba(255,255,255,0.2)":"#d1d5db",mutedBg:e?"rgba(255,255,255,0.06)":"#f3f4f6",innerBg:e?"rgba(255,255,255,0.04)":"#f9fafb",textPrimary:e?"#ffffff":"#111827",textCell:e?"rgba(255,255,255,0.75)":"#4b5563",textSecondary:e?"rgba(255,255,255,0.6)":"#6b7280",textMuted:e?"rgba(255,255,255,0.4)":"#9ca3af",inputBg:e?"rgba(255,255,255,0.06)":"#ffffff",inputBorder:e?"rgba(255,255,255,0.2)":"#d1d5db",trackBg:e?"rgba(255,255,255,0.1)":"#f3f4f6"}),Qo="#ef4444";var H=Z(J());var aw=Z(J()),G6=Z(J());function H6(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t{var r=e.children,n=e.width,o=e.height,a=e.viewBox,i=e.className,s=e.style,l=e.title,u=e.desc,c=Doe(e,Ioe),d=a||{width:n,height:o,x:0,y:0},p=bt("recharts-surface",i);return aw.createElement("svg",AT({},yn(c),{className:p,width:n,height:o,style:s,viewBox:"".concat(d.x," ").concat(d.y," ").concat(d.width," ").concat(d.height),ref:t}),aw.createElement("title",null,l),aw.createElement("desc",null,u),r)});var iw=Z(J());var $oe=["children","className"];function ET(){return ET=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=e.children,n=e.className,o=Loe(e,$oe),a=bt("recharts-layer",n);return iw.createElement("g",ET({className:a},yn(o),{ref:t}),r)});var bi=Z(J()),IS=Z(J()),G7=Z(ny());function sw(e){return e==="__proto__"}var Boe=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function lw(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e===""||e.startsWith(".")||e.endsWith(".")?!1:Boe.test(e);default:return!1}}function Tm(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function NT(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(NT).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function Om(e){if(Array.isArray(e))return e.map(Tm);if(typeof e=="symbol")return[e];e=NT(e);let t=[],r=e.length;if(r===0)return t;let n=0,o="",a="",i=!1;for(e.charCodeAt(0)===46&&t.push("");n1&&arguments[1]!==void 0?arguments[1]:Uoe,r=10**t,n=Math.round(e*r)/r;return Object.is(n,-0)?0:n}function Co(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n{var s=r[i-1];return typeof s=="string"?o+s+a:s!==void 0?o+Ki(s)+a:o+a},"")}var Zr=e=>e===0?0:e>0?1:-1,Wo=e=>typeof e=="number"&&e!=+e,eu=e=>typeof e=="string"&&e.length>1&&e.indexOf("%")===e.length-1,De=e=>(typeof e=="number"||e instanceof Number)&&!Wo(e),wa=e=>De(e)||typeof e=="string",Woe=0,tu=e=>{var t=++Woe;return"".concat(e||"").concat(t)},Dn=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!De(t)&&typeof t!="string")return n;var a;if(eu(t)){if(r==null)return n;var i=t.indexOf("%");a=r*parseFloat(t.slice(0,i))/100}else a=+t;return Wo(a)&&(a=n),o&&r!=null&&a>r&&(a=r),a},TT=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},n=0;nn&&(typeof t=="function"?t(n):Uo(n,t))===r)}var ar=e=>e===null||typeof e>"u",ru=e=>ar(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function Ao(e){return e!=null}function Sa(){}function sv(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 Y6(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function il(e){for(var t=1;t{var t=e.viewBox,r=e.position,n=e.offset,o=n===void 0?0:n,a=e.parentViewBox,i=e.clamp,s=sv(t),l=s.x,u=s.y,c=s.height,d=s.upperWidth,p=s.lowerWidth,f=l,m=l+(d-p)/2,y=(f+m)/2,b=(d+p)/2,g=f+d/2,h=c>=0?1:-1,v=h*o,x=h>0?"end":"start",S=h>0?"start":"end",_=d>=0?1:-1,w=_*o,k=_>0?"end":"start",A=_>0?"start":"end",C=a;if(r==="top"){var T={x:f+d/2,y:u-v,horizontalAnchor:"middle",verticalAnchor:x};return i&&C&&(T.height=Math.max(u-C.y,0),T.width=d),T}if(r==="bottom"){var $={x:m+p/2,y:u+c+v,horizontalAnchor:"middle",verticalAnchor:S};return i&&C&&($.height=Math.max(C.y+C.height-(u+c),0),$.width=p),$}if(r==="left"){var Q={x:y-w,y:u+c/2,horizontalAnchor:k,verticalAnchor:"middle"};return i&&C&&(Q.width=Math.max(Q.x-C.x,0),Q.height=c),Q}if(r==="right"){var B={x:y+b+w,y:u+c/2,horizontalAnchor:A,verticalAnchor:"middle"};return i&&C&&(B.width=Math.max(C.x+C.width-B.x,0),B.height=c),B}var K=i&&C?{width:b,height:c}:{};return r==="insideLeft"?il({x:y+w,y:u+c/2,horizontalAnchor:A,verticalAnchor:"middle"},K):r==="insideRight"?il({x:y+b-w,y:u+c/2,horizontalAnchor:k,verticalAnchor:"middle"},K):r==="insideTop"?il({x:f+d/2,y:u+v,horizontalAnchor:"middle",verticalAnchor:S},K):r==="insideBottom"?il({x:m+p/2,y:u+c-v,horizontalAnchor:"middle",verticalAnchor:x},K):r==="insideTopLeft"?il({x:f+w,y:u+v,horizontalAnchor:A,verticalAnchor:S},K):r==="insideTopRight"?il({x:f+d-w,y:u+v,horizontalAnchor:k,verticalAnchor:S},K):r==="insideBottomLeft"?il({x:m+w,y:u+c-v,horizontalAnchor:A,verticalAnchor:x},K):r==="insideBottomRight"?il({x:m+p-w,y:u+c-v,horizontalAnchor:k,verticalAnchor:x},K):r&&typeof r=="object"&&(De(r.x)||eu(r.x))&&(De(r.y)||eu(r.y))?il({x:l+Dn(r.x,b),y:u+Dn(r.y,c),horizontalAnchor:"end",verticalAnchor:"end"},K):il({x:g,y:u+c/2,horizontalAnchor:"middle",verticalAnchor:"middle"},K)},Voe=["top","left","right","bottom"];function lv(e){return e==null?!1:typeof e=="object"?!0:Voe.includes(e)}var dw=Z(J()),OT=(0,dw.createContext)(null),X6=()=>(0,dw.useContext)(OT);var ka=Z(J());var mz=Z(J());function Mr(e){return function(){return e}}var PT=Math.cos;var uv=Math.sin,Ho=Math.sqrt;var Zd=Math.PI,HEe=Zd/2,Pm=2*Zd;var MT=Math.PI,IT=2*MT,Jd=1e-6,Goe=IT-Jd;function Z6(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Z6;let r=10**t;return function(n){this._+=n[0];for(let o=1,a=n.length;oJd)if(!(Math.abs(d*l-u*c)>Jd)||!a)this._append`L${this._x1=t},${this._y1=r}`;else{let f=n-i,m=o-s,y=l*l+u*u,b=f*f+m*m,g=Math.sqrt(y),h=Math.sqrt(p),v=a*Math.tan((MT-Math.acos((y+p-b)/(2*g*h)))/2),x=v/h,S=v/g;Math.abs(x-1)>Jd&&this._append`L${t+x*c},${r+x*d}`,this._append`A${a},${a},0,0,${+(d*f>c*m)},${this._x1=t+S*l},${this._y1=r+S*u}`}}arc(t,r,n,o,a,i){if(t=+t,r=+r,n=+n,i=!!i,n<0)throw new Error(`negative radius: ${n}`);let s=n*Math.cos(o),l=n*Math.sin(o),u=t+s,c=r+l,d=1^i,p=i?o-a:a-o;this._x1===null?this._append`M${u},${c}`:(Math.abs(this._x1-u)>Jd||Math.abs(this._y1-c)>Jd)&&this._append`L${u},${c}`,n&&(p<0&&(p=p%IT+IT),p>Goe?this._append`A${n},${n},0,1,${d},${t-s},${r-l}A${n},${n},0,1,${d},${this._x1=u},${this._y1=c}`:p>Jd&&this._append`A${n},${n},0,${+(p>=MT)},${d},${this._x1=t+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(t,r,n,o){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+o}h${-n}Z`}toString(){return this._}};function J6(){return new Qd}J6.prototype=Qd.prototype;function Mm(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 Qd(t)}var JEe=Array.prototype.slice;function Im(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Q6(e){this._context=e}Q6.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 wc(e){return new Q6(e)}function pw(e){return e[0]}function fw(e){return e[1]}function cv(e,t){var r=Mr(!0),n=null,o=wc,a=null,i=Mm(s);e=typeof e=="function"?e:e===void 0?pw:Mr(e),t=typeof t=="function"?t:t===void 0?fw:Mr(t);function s(l){var u,c=(l=Im(l)).length,d,p=!1,f;for(n==null&&(a=o(f=i())),u=0;u<=c;++u)!(u=f;--m)s.point(v[m],x[m]);s.lineEnd(),s.areaEnd()}g&&(v[p]=+e(b,p,d),x[p]=+t(b,p,d),s.point(n?+n(b,p,d):v[p],r?+r(b,p,d):x[p]))}if(h)return s=null,h+""||null}function c(){return cv().defined(o).curve(i).context(a)}return u.x=function(d){return arguments.length?(e=typeof d=="function"?d:Mr(+d),n=null,u):e},u.x0=function(d){return arguments.length?(e=typeof d=="function"?d:Mr(+d),u):e},u.x1=function(d){return arguments.length?(n=d==null?null:typeof d=="function"?d:Mr(+d),u):n},u.y=function(d){return arguments.length?(t=typeof d=="function"?d:Mr(+d),r=null,u):t},u.y0=function(d){return arguments.length?(t=typeof d=="function"?d:Mr(+d),u):t},u.y1=function(d){return arguments.length?(r=d==null?null:typeof d=="function"?d:Mr(+d),u):r},u.lineX0=u.lineY0=function(){return c().x(e).y(t)},u.lineY1=function(){return c().x(e).y(r)},u.lineX1=function(){return c().x(n).y(t)},u.defined=function(d){return arguments.length?(o=typeof d=="function"?d:Mr(!!d),u):o},u.curve=function(d){return arguments.length?(i=d,a!=null&&(s=i(a)),u):i},u.context=function(d){return arguments.length?(d==null?a=s=null:s=i(a=d),u):a},u}var mw=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 DT(e){return new mw(e,!0)}function jT(e){return new mw(e,!1)}var jm={draw(e,t){let r=Ho(t/Zd);e.moveTo(r,0),e.arc(0,0,r,0,Pm)}};var $T={draw(e,t){let r=Ho(t/5)/2;e.moveTo(-3*r,-r),e.lineTo(-r,-r),e.lineTo(-r,-3*r),e.lineTo(r,-3*r),e.lineTo(r,-r),e.lineTo(3*r,-r),e.lineTo(3*r,r),e.lineTo(r,r),e.lineTo(r,3*r),e.lineTo(-r,3*r),e.lineTo(-r,r),e.lineTo(-3*r,r),e.closePath()}};var R6=Ho(1/3),Xoe=R6*2,LT={draw(e,t){let r=Ho(t/Xoe),n=r*R6;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}};var zT={draw(e,t){let r=Ho(t),n=-r/2;e.rect(n,n,r,r)}};var Zoe=.8908130915292852,ez=uv(Zd/10)/uv(7*Zd/10),Joe=uv(Pm/10)*ez,Qoe=-PT(Pm/10)*ez,BT={draw(e,t){let r=Ho(t*Zoe),n=Joe*r,o=Qoe*r;e.moveTo(0,-r),e.lineTo(n,o);for(let a=1;a<5;++a){let i=Pm*a/5,s=PT(i),l=uv(i);e.lineTo(l*r,-s*r),e.lineTo(s*n-l*o,l*n+s*o)}e.closePath()}};var FT=Ho(3),UT={draw(e,t){let r=-Ho(t/(FT*3));e.moveTo(0,r*2),e.lineTo(-FT*r,-r),e.lineTo(FT*r,-r),e.closePath()}};var Vi=-.5,Gi=Ho(3)/2,WT=1/Ho(12),Roe=(WT/2+1)*3,HT={draw(e,t){let r=Ho(t/Roe),n=r/2,o=r*WT,a=n,i=r*WT+r,s=-a,l=i;e.moveTo(n,o),e.lineTo(a,i),e.lineTo(s,l),e.lineTo(Vi*n-Gi*o,Gi*n+Vi*o),e.lineTo(Vi*a-Gi*i,Gi*a+Vi*i),e.lineTo(Vi*s-Gi*l,Gi*s+Vi*l),e.lineTo(Vi*n+Gi*o,Vi*o-Gi*n),e.lineTo(Vi*a+Gi*i,Vi*i-Gi*a),e.lineTo(Vi*s+Gi*l,Vi*l-Gi*s),e.closePath()}};function gw(e,t){let r=null,n=Mm(o);e=typeof e=="function"?e:Mr(e||jm),t=typeof t=="function"?t:Mr(t===void 0?64:+t);function o(){let a;if(r||(r=a=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),a)return r=null,a+""||null}return o.type=function(a){return arguments.length?(e=typeof a=="function"?a:Mr(a),o):e},o.size=function(a){return arguments.length?(t=typeof a=="function"?a:Mr(+a),o):t},o.context=function(a){return arguments.length?(r=a??null,o):r},o}function $m(){}function Lm(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 tz(e){this._context=e}tz.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:Lm(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:Lm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function qT(e){return new tz(e)}function rz(e){this._context=e}rz.prototype={areaStart:$m,areaEnd:$m,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:Lm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function KT(e){return new rz(e)}function nz(e){this._context=e}nz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(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:Lm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function VT(e){return new nz(e)}function oz(e){this._context=e}oz.prototype={areaStart:$m,areaEnd:$m,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 GT(e){return new oz(e)}function az(e){return e<0?-1:1}function iz(e,t,r){var n=e._x1-e._x0,o=t-e._x1,a=(e._y1-e._y0)/(n||o<0&&-0),i=(r-e._y1)/(o||n<0&&-0),s=(a*o+i*n)/(n+o);return(az(a)+az(i))*Math.min(Math.abs(a),Math.abs(i),.5*Math.abs(s))||0}function sz(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function YT(e,t,r){var n=e._x0,o=e._y0,a=e._x1,i=e._y1,s=(a-n)/3;e._context.bezierCurveTo(n+s,o+s*t,a-s,i-s*r,a,i)}function hw(e){this._context=e}hw.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:YT(this,this._t0,sz(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,YT(this,sz(this,r=iz(this,e,t)),r);break;default:YT(this,this._t0,r=iz(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function lz(e){this._context=new uz(e)}(lz.prototype=Object.create(hw.prototype)).point=function(e,t){hw.prototype.point.call(this,t,e)};function uz(e){this._context=e}uz.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,o,a){this._context.bezierCurveTo(t,e,n,r,a,o)}};function XT(e){return new hw(e)}function ZT(e){return new lz(e)}function dz(e){this._context=e}dz.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=cz(e),o=cz(t),a=0,i=1;i=0;--t)o[t]=(i[t]-o[t+1])/a[t];for(a[r-1]=(e[r]+o[r-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function QT(e){return new yw(e,.5)}function RT(e){return new yw(e,0)}function eO(e){return new yw(e,1)}function gi(e,t){if((i=e.length)>1)for(var r=1,n,o,a=e[t[0]],i,s=a.length;r=0;)r[t]=t;return r}function eae(e,t){return e[t]}function tae(e){let t=[];return t.key=e,t}function tO(){var e=Mr([]),t=zm,r=gi,n=eae;function o(a){var i=Array.from(e.apply(this,arguments),tae),s,l=i.length,u=-1,c;for(let d of a)for(s=0,++u;s0){for(var r,n,o=0,a=e[0].length,i;o0){for(var r=0,n=e[t[0]],o,a=n.length;r0)||!((a=(o=e[t[0]]).length)>0))){for(var r=0,n=1,o,a,i;n{var t="symbol".concat(ru(e));return gz[t]||jm},dae=(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*uae;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}},pae=(e,t)=>{gz["symbol".concat(ru(e))]=t},iO=e=>{var t=e.type,r=t===void 0?"circle":t,n=e.size,o=n===void 0?64:n,a=e.sizeType,i=a===void 0?"area":a,s=sae(e,nae),l=fz(fz({},s),{},{type:r,size:o,sizeType:i}),u="circle";typeof r=="string"&&(u=r);var c=()=>{var y=cae(u),b=gw().type(y).size(dae(o,i,u)),g=b();if(g!==null)return g},d=l.className,p=l.cx,f=l.cy,m=yn(l);return De(p)&&De(f)&&De(o)?mz.createElement("path",aO({},m,{className:bt("recharts-symbols",d),transform:"translate(".concat(p,", ").concat(f,")"),d:c()})):null};iO.registerSymbol=pae;var hz=Z(J());var vw=e=>"radius"in e&&"startAngle"in e&&"endAngle"in e,Bm=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var r=e;if((0,hz.isValidElement)(e)&&(r=e.props),typeof r!="object"&&typeof r!="function")return null;var n={};return Object.keys(r).forEach(o=>{av(o)&&typeof r[o]=="function"&&(n[o]=t||(a=>r[o](r,a)))}),n},fae=(e,t,r)=>n=>(e(t,r,n),null),nu=(e,t,r)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var n=null;return Object.keys(e).forEach(o=>{var a=e[o];av(o)&&typeof a=="function"&&(n||(n={}),n[o]=fae(a,t,r))}),n};function yz(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function mae(e){for(var t=1;t(i[s]===void 0&&n[s]!==void 0&&(i[s]=n[s]),i),r);return a}function xw(){return xw=Object.assign?Object.assign.bind():function(e){for(var t=1;t>>=0,e===0?32:31-(ore(e)/are|0)|0}var Ab=256,Eb=262144,Nb=4194304;function Pd(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function I1(e,t,r){var n=e.pendingLanes;if(n===0)return 0;var o=0,a=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var s=n&134217727;return s!==0?(n=s&~a,n!==0?o=Pd(n):(i&=s,i!==0?o=Pd(i):r||(r=s&~e,r!==0&&(o=Pd(r))))):(s=n&~a,s!==0?o=Pd(s):i!==0?o=Pd(i):r||(r=n&~e,r!==0&&(o=Pd(r)))),o===0?0:t!==0&&t!==o&&(t&a)===0&&(a=o&-o,r=t&-t,a>=r||a===32&&(r&4194048)!==0)?t:o}function Vy(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function sre(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function U$(){var e=Nb;return Nb<<=1,(Nb&62914560)===0&&(Nb=4194304),e}function YA(e){for(var t=[],r=0;31>r;r++)t.push(e);return t}function Gy(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function lre(e,t,r,n,o,a){var i=e.pendingLanes;e.pendingLanes=r,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=r,e.entangledLanes&=r,e.errorRecoveryDisabledLanes&=r,e.shellSuspendCounter=0;var s=e.entanglements,l=e.expirationTimes,u=e.hiddenUpdates;for(r=i&~r;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var mre=/[\n"\\]/g;function zi(e){return e.replace(mre,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function IE(e,t,r,n,o,a,i,s){e.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?e.type=i:e.removeAttribute("type"),t!=null?i==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+ji(t)):e.value!==""+ji(t)&&(e.value=""+ji(t)):i!=="submit"&&i!=="reset"||e.removeAttribute("value"),t!=null?DE(e,i,ji(t)):r!=null?DE(e,i,ji(r)):n!=null&&e.removeAttribute("value"),o==null&&a!=null&&(e.defaultChecked=!!a),o!=null&&(e.checked=o&&typeof o!="function"&&typeof o!="symbol"),s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"?e.name=""+ji(s):e.removeAttribute("name")}function Z$(e,t,r,n,o,a,i,s){if(a!=null&&typeof a!="function"&&typeof a!="symbol"&&typeof a!="boolean"&&(e.type=a),t!=null||r!=null){if(!(a!=="submit"&&a!=="reset"||t!=null)){ME(e);return}r=r!=null?""+ji(r):"",t=t!=null?""+ji(t):r,s||t===e.value||(e.value=t),e.defaultValue=t}n=n??o,n=typeof n!="function"&&typeof n!="symbol"&&!!n,e.checked=s?e.checked:!!n,e.defaultChecked=!!n,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.name=i),ME(e)}function DE(e,t,r){t==="number"&&l1(e.ownerDocument)===e||e.defaultValue===""+r||(e.defaultValue=""+r)}function em(e,t,r,n){if(e=e.options,t){t={};for(var o=0;o"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),$E=!1;if(Yl)try{$f={},Object.defineProperty($f,"passive",{get:function(){$E=!0}}),window.addEventListener("test",$f,$f),window.removeEventListener("test",$f,$f)}catch{$E=!1}var $f,tc=null,AN=null,Kb=null;function tL(){if(Kb)return Kb;var e,t=AN,r=t.length,n,o="value"in tc?tc.value:tc.textContent,a=o.length;for(e=0;e=yy),b4=" ",w4=!1;function nL(e,t){switch(e){case"keyup":return Wre.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function oL(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Kf=!1;function qre(e,t){switch(e){case"compositionend":return oL(t);case"keypress":return t.which!==32?null:(w4=!0,b4);case"textInput":return e=t.data,e===b4&&w4?null:e;default:return null}}function Kre(e,t){if(Kf)return e==="compositionend"||!NN&&nL(e,t)?(e=tL(),Kb=AN=tc=null,Kf=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=C4(r)}}function lL(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?lL(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function uL(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=l1(e.document);t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=l1(e.document)}return t}function TN(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var Rre=Yl&&"documentMode"in document&&11>=document.documentMode,Vf=null,LE=null,xy=null,zE=!1;function E4(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;zE||Vf==null||Vf!==l1(n)||(n=Vf,"selectionStart"in n&&TN(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),xy&&Iy(xy,n)||(xy=n,n=A1(LE,"onSelect"),0>=i,o-=i,Rs=1<<32-ci(t)+o|r<_?(A=w,w=null):A=w.sibling;var C=p(g,w,v[_],x);if(C===null){w===null&&(w=A);break}e&&w&&C.alternate===null&&t(g,w),h=a(C,h,_),k===null?S=C:k.sibling=C,k=C,w=A}if(_===v.length)return r(g,w),gr&&Fl(g,_),S;if(w===null){for(;__?(A=w,w=null):A=w.sibling;var N=p(g,w,C.value,x);if(N===null){w===null&&(w=A);break}e&&w&&N.alternate===null&&t(g,w),h=a(N,h,_),k===null?S=N:k.sibling=N,k=N,w=A}if(C.done)return r(g,w),gr&&Fl(g,_),S;if(w===null){for(;!C.done;_++,C=v.next())C=d(g,C.value,x),C!==null&&(h=a(C,h,_),k===null?S=C:k.sibling=C,k=C);return gr&&Fl(g,_),S}for(w=n(w);!C.done;_++,C=v.next())C=f(w,g,_,C.value,x),C!==null&&(e&&C.alternate!==null&&w.delete(C.key===null?_:C.key),h=a(C,h,_),k===null?S=C:k.sibling=C,k=C);return e&&w.forEach(function(L){return t(g,L)}),gr&&Fl(g,_),S}function b(g,h,v,x){if(typeof v=="object"&&v!==null&&v.type===Uf&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case Cb:e:{for(var S=v.key;h!==null;){if(h.key===S){if(S=v.type,S===Uf){if(h.tag===7){r(g,h.sibling),x=o(h,v.props.children),x.return=g,g=x;break e}}else if(h.elementType===S||typeof S=="object"&&S!==null&&S.$$typeof===Yu&&Md(S)===h.type){r(g,h.sibling),x=o(h,v.props),sy(x,v),x.return=g,g=x;break e}r(g,h);break}else t(g,h);h=h.sibling}v.type===Uf?(x=jd(v.props.children,g.mode,x,v.key),x.return=g,g=x):(x=Gb(v.type,v.key,v.props,null,g.mode,x),sy(x,v),x.return=g,g=x)}return i(g);case py:e:{for(S=v.key;h!==null;){if(h.key===S)if(h.tag===4&&h.stateNode.containerInfo===v.containerInfo&&h.stateNode.implementation===v.implementation){r(g,h.sibling),x=o(h,v.children||[]),x.return=g,g=x;break e}else{r(g,h);break}else t(g,h);h=h.sibling}x=rE(v,g.mode,x),x.return=g,g=x}return i(g);case Yu:return v=Md(v),b(g,h,v,x)}if(fy(v))return m(g,h,v,x);if(ay(v)){if(S=ay(v),typeof S!="function")throw Error(Ae(150));return v=S.call(v),y(g,h,v,x)}if(typeof v.then=="function")return b(g,h,Db(v),x);if(v.$$typeof===Wl)return b(g,h,Ib(g,v),x);jb(g,v)}return typeof v=="string"&&v!==""||typeof v=="number"||typeof v=="bigint"?(v=""+v,h!==null&&h.tag===6?(r(g,h.sibling),x=o(h,v),x.return=g,g=x):(r(g,h),x=tE(v,g.mode,x),x.return=g,g=x),i(g)):r(g,h)}return function(g,h,v,x){try{$y=0;var S=b(g,h,v,x);return nm=null,S}catch(w){if(w===bm||w===B1)throw w;var k=ii(29,w,null,g.mode);return k.lanes=x,k.return=g,k}}}var Ud=_L(!0),CL=_L(!1),Xu=!1;function zN(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function KE(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function sc(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function lc(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,(Tr&2)!==0){var o=n.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),n.pending=t,t=c1(e),hL(e,null,r),t}return z1(e,n,t,r),c1(e)}function wy(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194048)!==0)){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,H$(e,r)}}function oE(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var o=null,a=null;if(r=r.firstBaseUpdate,r!==null){do{var i={lane:r.lane,tag:r.tag,payload:r.payload,callback:null,next:null};a===null?o=a=i:a=a.next=i,r=r.next}while(r!==null);a===null?o=a=t:a=a.next=t}else o=a=t;r={baseState:n.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:n.shared,callbacks:n.callbacks},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}var VE=!1;function Sy(){if(VE){var e=rm;if(e!==null)throw e}}function ky(e,t,r,n){VE=!1;var o=e.updateQueue;Xu=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var l=s,u=l.next;l.next=null,i===null?a=u:i.next=u,i=l;var c=e.alternate;c!==null&&(c=c.updateQueue,s=c.lastBaseUpdate,s!==i&&(s===null?c.firstBaseUpdate=u:s.next=u,c.lastBaseUpdate=l))}if(a!==null){var d=o.baseState;i=0,c=u=l=null,s=a;do{var p=s.lane&-536870913,f=p!==s.lane;if(f?(pr&p)===p:(n&p)===p){p!==0&&p===um&&(VE=!0),c!==null&&(c=c.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});e:{var m=e,y=s;p=t;var b=r;switch(y.tag){case 1:if(m=y.payload,typeof m=="function"){d=m.call(b,d,p);break e}d=m;break e;case 3:m.flags=m.flags&-65537|128;case 0:if(m=y.payload,p=typeof m=="function"?m.call(b,d,p):m,p==null)break e;d=gn({},d,p);break e;case 2:Xu=!0}}p=s.callback,p!==null&&(e.flags|=64,f&&(e.flags|=8192),f=o.callbacks,f===null?o.callbacks=[p]:f.push(p))}else f={lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},c===null?(u=c=f,l=d):c=c.next=f,i|=p;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;f=s,s=f.next,f.next=null,o.lastBaseUpdate=f,o.shared.pending=null}}while(!0);c===null&&(l=d),o.baseState=l,o.firstBaseUpdate=u,o.lastBaseUpdate=c,a===null&&(o.shared.lanes=0),yc|=i,e.lanes=i,e.memoizedState=d}}function AL(e,t){if(typeof e!="function")throw Error(Ae(191,e));e.call(t)}function EL(e,t){var r=e.callbacks;if(r!==null)for(e.callbacks=null,e=0;ea?a:8;var i=$t.T,s={};$t.T=s,JN(e,!1,t,r);try{var l=o(),u=$t.S;if(u!==null&&u(s,l),l!==null&&typeof l=="object"&&typeof l.then=="function"){var c=lne(l,n);_y(e,t,c,di(e))}else _y(e,t,n,di(e))}catch(d){_y(e,t,{then:function(){},status:"rejected",reason:d},di())}finally{Or.p=a,i!==null&&s.types!==null&&(i.types=s.types),$t.T=i}}function mne(){}function JE(e,t,r,n){if(e.tag!==5)throw Error(Ae(476));var o=QL(e).queue;JL(e,o,t,Dd,r===null?mne:function(){return RL(e),r(n)})}function QL(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Dd,baseState:Dd,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Zl,lastRenderedState:Dd},next:null};var r={};return t.next={memoizedState:r,baseState:r,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Zl,lastRenderedState:r},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function RL(e){var t=QL(e);t.next===null&&(t=e.alternate.memoizedState),_y(e,t.next.queue,{},di())}function ZN(){return Zo(Uy)}function e8(){return oo().memoizedState}function t8(){return oo().memoizedState}function gne(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var r=di();e=sc(r);var n=lc(t,e,r);n!==null&&(Fa(n,t,r),wy(n,t,r)),t={cache:jN()},e.payload=t;return}t=t.return}}function hne(e,t,r){var n=di();r={lane:n,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},H1(e)?n8(t,r):(r=PN(e,t,r,n),r!==null&&(Fa(r,e,n),o8(r,t,n)))}function r8(e,t,r){var n=di();_y(e,t,r,n)}function _y(e,t,r,n){var o={lane:n,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null};if(H1(e))n8(t,o);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var i=t.lastRenderedState,s=a(i,r);if(o.hasEagerState=!0,o.eagerState=s,pi(s,i))return z1(e,t,o,0),Xr===null&&L1(),!1}catch{}if(r=PN(e,t,o,n),r!==null)return Fa(r,e,n),o8(r,t,n),!0}return!1}function JN(e,t,r,n){if(n={lane:2,revertLane:iT(),gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},H1(e)){if(t)throw Error(Ae(479))}else t=PN(e,r,n,2),t!==null&&Fa(t,e,2)}function H1(e){var t=e.alternate;return e===Xt||t!==null&&t===Xt}function n8(e,t){om=h1=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function o8(e,t,r){if((r&4194048)!==0){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,H$(e,r)}}var zy={readContext:Zo,use:U1,useCallback:qn,useContext:qn,useEffect:qn,useImperativeHandle:qn,useLayoutEffect:qn,useInsertionEffect:qn,useMemo:qn,useReducer:qn,useRef:qn,useState:qn,useDebugValue:qn,useDeferredValue:qn,useTransition:qn,useSyncExternalStore:qn,useId:qn,useHostTransitionStatus:qn,useFormState:qn,useActionState:qn,useOptimistic:qn,useMemoCache:qn,useCacheRefresh:qn};zy.useEffectEvent=qn;var a8={readContext:Zo,use:U1,useCallback:function(e,t){return ba().memoizedState=[e,t===void 0?null:t],e},useContext:Zo,useEffect:W4,useImperativeHandle:function(e,t,r){r=r!=null?r.concat([e]):null,Zb(4194308,4,VL.bind(null,t,e),r)},useLayoutEffect:function(e,t){return Zb(4194308,4,e,t)},useInsertionEffect:function(e,t){Zb(4,2,e,t)},useMemo:function(e,t){var r=ba();t=t===void 0?null:t;var n=e();if(Wd){ec(!0);try{e()}finally{ec(!1)}}return r.memoizedState=[n,t],n},useReducer:function(e,t,r){var n=ba();if(r!==void 0){var o=r(t);if(Wd){ec(!0);try{r(t)}finally{ec(!1)}}}else o=t;return n.memoizedState=n.baseState=o,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:o},n.queue=e,e=e.dispatch=hne.bind(null,Xt,e),[n.memoizedState,e]},useRef:function(e){var t=ba();return e={current:e},t.memoizedState=e},useState:function(e){e=XE(e);var t=e.queue,r=r8.bind(null,Xt,t);return t.dispatch=r,[e.memoizedState,r]},useDebugValue:YN,useDeferredValue:function(e,t){var r=ba();return XN(r,e,t)},useTransition:function(){var e=XE(!1);return e=JL.bind(null,Xt,e.queue,!0,!1),ba().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,r){var n=Xt,o=ba();if(gr){if(r===void 0)throw Error(Ae(407));r=r()}else{if(r=t(),Xr===null)throw Error(Ae(349));(pr&127)!==0||ML(n,t,r)}o.memoizedState=r;var a={value:r,getSnapshot:t};return o.queue=a,W4(DL.bind(null,n,a,e),[e]),n.flags|=2048,dm(9,{destroy:void 0},IL.bind(null,n,a,r,t),null),r},useId:function(){var e=ba(),t=Xr.identifierPrefix;if(gr){var r=el,n=Rs;r=(n&~(1<<32-ci(n)-1)).toString(32)+r,t="_"+t+"R_"+r,r=y1++,0<\/script>",a=a.removeChild(a.firstChild);break;case"select":a=typeof n.is=="string"?i.createElement("select",{is:n.is}):i.createElement("select"),n.multiple?a.multiple=!0:n.size&&(a.size=n.size);break;default:a=typeof n.is=="string"?i.createElement(o,{is:n.is}):i.createElement(o)}}a[Yo]=t,a[Ua]=n;e:for(i=t.child;i!==null;){if(i.tag===5||i.tag===6)a.appendChild(i.stateNode);else if(i.tag!==4&&i.tag!==27&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===t)break e;for(;i.sibling===null;){if(i.return===null||i.return===t)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}t.stateNode=a;e:switch(Jo(a,o,n),o){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}n&&$l(t)}}return fn(t),pE(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,r),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==n&&$l(t);else{if(typeof n!="string"&&t.stateNode===null)throw Error(Ae(166));if(e=ac.current,Lf(t)){if(e=t.stateNode,r=t.memoizedProps,n=null,o=Xo,o!==null)switch(o.tag){case 27:case 5:n=o.memoizedProps}e[Yo]=t,e=!!(e.nodeValue===r||n!==null&&n.suppressHydrationWarning===!0||r6(e.nodeValue,r)),e||gc(t,!0)}else e=E1(e).createTextNode(n),e[Yo]=t,t.stateNode=e}return fn(t),null;case 31:if(r=t.memoizedState,e===null||e.memoizedState!==null){if(n=Lf(t),r!==null){if(e===null){if(!n)throw Error(Ae(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(Ae(557));e[Yo]=t}else Bd(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;fn(t),e=!1}else r=nE(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=r),e=!0;if(!e)return t.flags&256?(ai(t),t):(ai(t),null);if((t.flags&128)!==0)throw Error(Ae(558))}return fn(t),null;case 13:if(n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(o=Lf(t),n!==null&&n.dehydrated!==null){if(e===null){if(!o)throw Error(Ae(318));if(o=t.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(Ae(317));o[Yo]=t}else Bd(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;fn(t),o=!1}else o=nE(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=o),o=!0;if(!o)return t.flags&256?(ai(t),t):(ai(t),null)}return ai(t),(t.flags&128)!==0?(t.lanes=r,t):(r=n!==null,e=e!==null&&e.memoizedState!==null,r&&(n=t.child,o=null,n.alternate!==null&&n.alternate.memoizedState!==null&&n.alternate.memoizedState.cachePool!==null&&(o=n.alternate.memoizedState.cachePool.pool),a=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(a=n.memoizedState.cachePool.pool),a!==o&&(n.flags|=2048)),r!==e&&r&&(t.child.flags|=8192),$b(t,t.updateQueue),fn(t),null);case 4:return im(),e===null&&sT(t.stateNode.containerInfo),fn(t),null;case 10:return Vl(t.type),fn(t),null;case 19:if(Bo(no),n=t.memoizedState,n===null)return fn(t),null;if(o=(t.flags&128)!==0,a=n.rendering,a===null)if(o)ly(n,!1);else{if(Kn!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(a=g1(e),a!==null){for(t.flags|=128,ly(n,!1),e=a.updateQueue,t.updateQueue=e,$b(t,e),t.subtreeFlags=0,e=r,r=t.child;r!==null;)yL(r,e),r=r.sibling;return on(no,no.current&1|2),gr&&Fl(t,n.treeForkCount),t.child}e=e.sibling}n.tail!==null&&li()>w1&&(t.flags|=128,o=!0,ly(n,!1),t.lanes=4194304)}else{if(!o)if(e=g1(a),e!==null){if(t.flags|=128,o=!0,e=e.updateQueue,t.updateQueue=e,$b(t,e),ly(n,!0),n.tail===null&&n.tailMode==="hidden"&&!a.alternate&&!gr)return fn(t),null}else 2*li()-n.renderingStartTime>w1&&r!==536870912&&(t.flags|=128,o=!0,ly(n,!1),t.lanes=4194304);n.isBackwards?(a.sibling=t.child,t.child=a):(e=n.last,e!==null?e.sibling=a:t.child=a,n.last=a)}return n.tail!==null?(e=n.tail,n.rendering=e,n.tail=e.sibling,n.renderingStartTime=li(),e.sibling=null,r=no.current,on(no,o?r&1|2:r&1),gr&&Fl(t,n.treeForkCount),e):(fn(t),null);case 22:case 23:return ai(t),BN(),n=t.memoizedState!==null,e!==null?e.memoizedState!==null!==n&&(t.flags|=8192):n&&(t.flags|=8192),n?(r&536870912)!==0&&(t.flags&128)===0&&(fn(t),t.subtreeFlags&6&&(t.flags|=8192)):fn(t),r=t.updateQueue,r!==null&&$b(t,r.retryQueue),r=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(r=e.memoizedState.cachePool.pool),n=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),n!==r&&(t.flags|=2048),e!==null&&Bo($d),null;case 24:return r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),Vl(yo),fn(t),null;case 25:return null;case 30:return null}throw Error(Ae(156,t.tag))}function wne(e,t){switch(DN(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Vl(yo),im(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return i1(t),null;case 31:if(t.memoizedState!==null){if(ai(t),t.alternate===null)throw Error(Ae(340));Bd()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(ai(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Ae(340));Bd()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Bo(no),null;case 4:return im(),null;case 10:return Vl(t.type),null;case 22:case 23:return ai(t),BN(),e!==null&&Bo($d),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Vl(yo),null;case 25:return null;default:return null}}function y8(e,t){switch(DN(t),t.tag){case 3:Vl(yo),im();break;case 26:case 27:case 5:i1(t);break;case 4:im();break;case 31:t.memoizedState!==null&&ai(t);break;case 13:ai(t);break;case 19:Bo(no);break;case 10:Vl(t.type);break;case 22:case 23:ai(t),BN(),e!==null&&Bo($d);break;case 24:Vl(yo)}}function Qy(e,t){try{var r=t.updateQueue,n=r!==null?r.lastEffect:null;if(n!==null){var o=n.next;r=o;do{if((r.tag&e)===e){n=void 0;var a=r.create,i=r.inst;n=a(),i.destroy=n}r=r.next}while(r!==o)}}catch(s){Br(t,t.return,s)}}function hc(e,t,r){try{var n=t.updateQueue,o=n!==null?n.lastEffect:null;if(o!==null){var a=o.next;n=a;do{if((n.tag&e)===e){var i=n.inst,s=i.destroy;if(s!==void 0){i.destroy=void 0,o=t;var l=r,u=s;try{u()}catch(c){Br(o,l,c)}}}n=n.next}while(n!==a)}}catch(c){Br(t,t.return,c)}}function v8(e){var t=e.updateQueue;if(t!==null){var r=e.stateNode;try{EL(t,r)}catch(n){Br(e,e.return,n)}}}function x8(e,t,r){r.props=Hd(e.type,e.memoizedProps),r.state=e.memoizedState;try{r.componentWillUnmount()}catch(n){Br(e,t,n)}}function Cy(e,t){try{var r=e.ref;if(r!==null){switch(e.tag){case 26:case 27:case 5:var n=e.stateNode;break;case 30:n=e.stateNode;break;default:n=e.stateNode}typeof r=="function"?e.refCleanup=r(n):r.current=n}}catch(o){Br(e,t,o)}}function tl(e,t){var r=e.ref,n=e.refCleanup;if(r!==null)if(typeof n=="function")try{n()}catch(o){Br(e,t,o)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof r=="function")try{r(null)}catch(o){Br(e,t,o)}else r.current=null}function b8(e){var t=e.type,r=e.memoizedProps,n=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":r.autoFocus&&n.focus();break e;case"img":r.src?n.src=r.src:r.srcSet&&(n.srcset=r.srcSet)}}catch(o){Br(e,e.return,o)}}function fE(e,t,r){try{var n=e.stateNode;Une(n,e.type,r,t),n[Ua]=t}catch(o){Br(e,e.return,o)}}function w8(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&xc(e.type)||e.tag===4}function mE(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||w8(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&xc(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function rN(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?(r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r).insertBefore(e,t):(t=r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r,t.appendChild(e),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=Hl));else if(n!==4&&(n===27&&xc(e.type)&&(r=e.stateNode,t=null),e=e.child,e!==null))for(rN(e,t,r),e=e.sibling;e!==null;)rN(e,t,r),e=e.sibling}function b1(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(n===27&&xc(e.type)&&(r=e.stateNode),e=e.child,e!==null))for(b1(e,t,r),e=e.sibling;e!==null;)b1(e,t,r),e=e.sibling}function S8(e){var t=e.stateNode,r=e.memoizedProps;try{for(var n=e.type,o=t.attributes;o.length;)t.removeAttributeNode(o[0]);Jo(t,n,r),t[Yo]=e,t[Ua]=r}catch(a){Br(e,e.return,a)}}var Ul=!1,ho=!1,gE=!1,t$=typeof WeakSet=="function"?WeakSet:Set,Lo=null;function Sne(e,t){if(e=e.containerInfo,uN=P1,e=uL(e),TN(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var o=n.anchorOffset,a=n.focusNode;n=n.focusOffset;try{r.nodeType,a.nodeType}catch{r=null;break e}var i=0,s=-1,l=-1,u=0,c=0,d=e,p=null;t:for(;;){for(var f;d!==r||o!==0&&d.nodeType!==3||(s=i+o),d!==a||n!==0&&d.nodeType!==3||(l=i+n),d.nodeType===3&&(i+=d.nodeValue.length),(f=d.firstChild)!==null;)p=d,d=f;for(;;){if(d===e)break t;if(p===r&&++u===o&&(s=i),p===a&&++c===n&&(l=i),(f=d.nextSibling)!==null)break;d=p,p=d.parentNode}d=f}r=s===-1||l===-1?null:{start:s,end:l}}else r=null}r=r||{start:0,end:0}}else r=null;for(cN={focusedElem:e,selectionRange:r},P1=!1,Lo=t;Lo!==null;)if(t=Lo,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Lo=e;else for(;Lo!==null;){switch(t=Lo,a=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(r=0;r title"))),Jo(a,n,r),a[Yo]=e,zo(a),n=a;break e;case"link":var i=k$("link","href",o).get(n+(r.href||""));if(i){for(var s=0;sb&&(i=b,b=y,y=i);var g=A4(s,y),h=A4(s,b);if(g&&h&&(f.rangeCount!==1||f.anchorNode!==g.node||f.anchorOffset!==g.offset||f.focusNode!==h.node||f.focusOffset!==h.offset)){var v=d.createRange();v.setStart(g.node,g.offset),f.removeAllRanges(),y>b?(f.addRange(v),f.extend(h.node,h.offset)):(v.setEnd(h.node,h.offset),f.addRange(v))}}}}for(d=[],f=s;f=f.parentNode;)f.nodeType===1&&d.push({element:f,left:f.scrollLeft,top:f.scrollTop});for(typeof s.focus=="function"&&s.focus(),s=0;sr?32:r,$t.T=null,r=aN,aN=null;var a=cc,i=Gl;if(ko=0,fm=cc=null,Gl=0,(Tr&6)!==0)throw Error(Ae(331));var s=Tr;if(Tr|=4,I8(a.current),O8(a,a.current,i,r),Tr=s,Ry(0,!1),ui&&typeof ui.onPostCommitFiberRoot=="function")try{ui.onPostCommitFiberRoot(Ky,a)}catch{}return!0}finally{Or.p=o,$t.T=n,Y8(e,t)}}function a$(e,t,r){t=Bi(r,t),t=RE(e.stateNode,t,2),e=lc(e,t,2),e!==null&&(Gy(e,2),ol(e))}function Br(e,t,r){if(e.tag===3)a$(e,e,r);else for(;t!==null;){if(t.tag===3){a$(t,e,r);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(uc===null||!uc.has(n))){e=Bi(r,e),r=c8(2),n=lc(t,r,2),n!==null&&(d8(r,n,t,e),Gy(n,2),ol(n));break}}t=t.return}}function yE(e,t,r){var n=e.pingCache;if(n===null){n=e.pingCache=new Cne;var o=new Set;n.set(t,o)}else o=n.get(t),o===void 0&&(o=new Set,n.set(t,o));o.has(r)||(nT=!0,o.add(r),e=One.bind(null,e,t,r),t.then(e,e))}function One(e,t,r){var n=e.pingCache;n!==null&&n.delete(t),e.pingedLanes|=e.suspendedLanes&r,e.warmLanes&=~r,Xr===e&&(pr&r)===r&&(Kn===4||Kn===3&&(pr&62914560)===pr&&300>li()-q1?(Tr&2)===0&&mm(e,0):oT|=r,pm===pr&&(pm=0)),ol(e)}function Z8(e,t){t===0&&(t=U$()),e=Gd(e,t),e!==null&&(Gy(e,t),ol(e))}function Pne(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),Z8(e,r)}function Mne(e,t){var r=0;switch(e.tag){case 31:case 13:var n=e.stateNode,o=e.memoizedState;o!==null&&(r=o.retryLane);break;case 19:n=e.stateNode;break;case 22:n=e.stateNode._retryCache;break;default:throw Error(Ae(314))}n!==null&&n.delete(t),Z8(e,r)}function Ine(e,t){return bN(e,t)}var _1=null,Ff=null,sN=!1,C1=!1,vE=!1,oc=0;function ol(e){e!==Ff&&e.next===null&&(Ff===null?_1=Ff=e:Ff=Ff.next=e),C1=!0,sN||(sN=!0,jne())}function Ry(e,t){if(!vE&&C1){vE=!0;do for(var r=!1,n=_1;n!==null;){if(!t)if(e!==0){var o=n.pendingLanes;if(o===0)var a=0;else{var i=n.suspendedLanes,s=n.pingedLanes;a=(1<<31-ci(42|e)+1)-1,a&=o&~(i&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(r=!0,i$(n,a))}else a=pr,a=I1(n,n===Xr?a:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),(a&3)===0||Vy(n,a)||(r=!0,i$(n,a));n=n.next}while(r);vE=!1}}function Dne(){J8()}function J8(){C1=sN=!1;var e=0;oc!==0&&Hne()&&(e=oc);for(var t=li(),r=null,n=_1;n!==null;){var o=n.next,a=Q8(n,t);a===0?(n.next=null,r===null?_1=o:r.next=o,o===null&&(Ff=r)):(r=n,(e!==0||(a&3)!==0)&&(C1=!0)),n=o}ko!==0&&ko!==5||Ry(e,!1),oc!==0&&(oc=0)}function Q8(e,t){for(var r=e.suspendedLanes,n=e.pingedLanes,o=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var c=l.transferSize,d=l.initiatorType;c&&f$(d)&&(l=l.responseEnd,i+=c*(l"u"?null:document;function s6(e,t,r){var n=Sm;if(n&&typeof t=="string"&&t){var o=zi(t);o='link[rel="'+e+'"][href="'+o+'"]',typeof r=="string"&&(o+='[crossorigin="'+r+'"]'),b$.has(o)||(b$.add(o),e={rel:e,crossOrigin:r,href:t},n.querySelector(o)===null&&(t=n.createElement("link"),Jo(t,"link",e),zo(t),n.head.appendChild(t)))}}function Qne(e){Rl.D(e),s6("dns-prefetch",e,null)}function Rne(e,t){Rl.C(e,t),s6("preconnect",e,t)}function eoe(e,t,r){Rl.L(e,t,r);var n=Sm;if(n&&e&&t){var o='link[rel="preload"][as="'+zi(t)+'"]';t==="image"&&r&&r.imageSrcSet?(o+='[imagesrcset="'+zi(r.imageSrcSet)+'"]',typeof r.imageSizes=="string"&&(o+='[imagesizes="'+zi(r.imageSizes)+'"]')):o+='[href="'+zi(e)+'"]';var a=o;switch(t){case"style":a=gm(e);break;case"script":a=km(e)}Hi.has(a)||(e=gn({rel:"preload",href:t==="image"&&r&&r.imageSrcSet?void 0:e,as:t},r),Hi.set(a,e),n.querySelector(o)!==null||t==="style"&&n.querySelector(ev(a))||t==="script"&&n.querySelector(tv(a))||(t=n.createElement("link"),Jo(t,"link",e),zo(t),n.head.appendChild(t)))}}function toe(e,t){Rl.m(e,t);var r=Sm;if(r&&e){var n=t&&typeof t.as=="string"?t.as:"script",o='link[rel="modulepreload"][as="'+zi(n)+'"][href="'+zi(e)+'"]',a=o;switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":a=km(e)}if(!Hi.has(a)&&(e=gn({rel:"modulepreload",href:e},t),Hi.set(a,e),r.querySelector(o)===null)){switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(r.querySelector(tv(a)))return}n=r.createElement("link"),Jo(n,"link",e),zo(n),r.head.appendChild(n)}}}function roe(e,t,r){Rl.S(e,t,r);var n=Sm;if(n&&e){var o=Rf(n).hoistableStyles,a=gm(e);t=t||"default";var i=o.get(a);if(!i){var s={loading:0,preload:null};if(i=n.querySelector(ev(a)))s.loading=5;else{e=gn({rel:"stylesheet",href:e,"data-precedence":t},r),(r=Hi.get(a))&&lT(e,r);var l=i=n.createElement("link");zo(l),Jo(l,"link",e),l._p=new Promise(function(u,c){l.onload=u,l.onerror=c}),l.addEventListener("load",function(){s.loading|=1}),l.addEventListener("error",function(){s.loading|=2}),s.loading|=4,e1(i,t,n)}i={type:"stylesheet",instance:i,count:1,state:s},o.set(a,i)}}}function noe(e,t){Rl.X(e,t);var r=Sm;if(r&&e){var n=Rf(r).hoistableScripts,o=km(e),a=n.get(o);a||(a=r.querySelector(tv(o)),a||(e=gn({src:e,async:!0},t),(t=Hi.get(o))&&uT(e,t),a=r.createElement("script"),zo(a),Jo(a,"link",e),r.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},n.set(o,a))}}function ooe(e,t){Rl.M(e,t);var r=Sm;if(r&&e){var n=Rf(r).hoistableScripts,o=km(e),a=n.get(o);a||(a=r.querySelector(tv(o)),a||(e=gn({src:e,async:!0,type:"module"},t),(t=Hi.get(o))&&uT(e,t),a=r.createElement("script"),zo(a),Jo(a,"link",e),r.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},n.set(o,a))}}function w$(e,t,r,n){var o=(o=ac.current)?N1(o):null;if(!o)throw Error(Ae(446));switch(e){case"meta":case"title":return null;case"style":return typeof r.precedence=="string"&&typeof r.href=="string"?(t=gm(r.href),r=Rf(o).hoistableStyles,n=r.get(t),n||(n={type:"style",instance:null,count:0,state:null},r.set(t,n)),n):{type:"void",instance:null,count:0,state:null};case"link":if(r.rel==="stylesheet"&&typeof r.href=="string"&&typeof r.precedence=="string"){e=gm(r.href);var a=Rf(o).hoistableStyles,i=a.get(e);if(i||(o=o.ownerDocument||o,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},a.set(e,i),(a=o.querySelector(ev(e)))&&!a._p&&(i.instance=a,i.state.loading=5),Hi.has(e)||(r={rel:"preload",as:"style",href:r.href,crossOrigin:r.crossOrigin,integrity:r.integrity,media:r.media,hrefLang:r.hrefLang,referrerPolicy:r.referrerPolicy},Hi.set(e,r),a||aoe(o,e,r,i.state))),t&&n===null)throw Error(Ae(528,""));return i}if(t&&n!==null)throw Error(Ae(529,""));return null;case"script":return t=r.async,r=r.src,typeof r=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=km(r),r=Rf(o).hoistableScripts,n=r.get(t),n||(n={type:"script",instance:null,count:0,state:null},r.set(t,n)),n):{type:"void",instance:null,count:0,state:null};default:throw Error(Ae(444,e))}}function gm(e){return'href="'+zi(e)+'"'}function ev(e){return'link[rel="stylesheet"]['+e+"]"}function l6(e){return gn({},e,{"data-precedence":e.precedence,precedence:null})}function aoe(e,t,r,n){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?n.loading=1:(t=e.createElement("link"),n.preload=t,t.addEventListener("load",function(){return n.loading|=1}),t.addEventListener("error",function(){return n.loading|=2}),Jo(t,"link",r),zo(t),e.head.appendChild(t))}function km(e){return'[src="'+zi(e)+'"]'}function tv(e){return"script[async]"+e}function S$(e,t,r){if(t.count++,t.instance===null)switch(t.type){case"style":var n=e.querySelector('style[data-href~="'+zi(r.href)+'"]');if(n)return t.instance=n,zo(n),n;var o=gn({},r,{"data-href":r.href,"data-precedence":r.precedence,href:null,precedence:null});return n=(e.ownerDocument||e).createElement("style"),zo(n),Jo(n,"style",o),e1(n,r.precedence,e),t.instance=n;case"stylesheet":o=gm(r.href);var a=e.querySelector(ev(o));if(a)return t.state.loading|=4,t.instance=a,zo(a),a;n=l6(r),(o=Hi.get(o))&&lT(n,o),a=(e.ownerDocument||e).createElement("link"),zo(a);var i=a;return i._p=new Promise(function(s,l){i.onload=s,i.onerror=l}),Jo(a,"link",n),t.state.loading|=4,e1(a,r.precedence,e),t.instance=a;case"script":return a=km(r.src),(o=e.querySelector(tv(a)))?(t.instance=o,zo(o),o):(n=r,(o=Hi.get(a))&&(n=gn({},r),uT(n,o)),e=e.ownerDocument||e,o=e.createElement("script"),zo(o),Jo(o,"link",n),e.head.appendChild(o),t.instance=o);case"void":return null;default:throw Error(Ae(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(n=t.instance,t.state.loading|=4,e1(n,r.precedence,e));return t.instance}function e1(e,t,r){for(var n=r.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),o=n.length?n[n.length-1]:null,a=o,i=0;i title"):null)}function ioe(e,t,r){if(r===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;return t.rel==="stylesheet"?(e=t.disabled,typeof t.precedence=="string"&&e==null):!0;case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function u6(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function soe(e,t,r,n){if(r.type==="stylesheet"&&(typeof n.media!="string"||matchMedia(n.media).matches!==!1)&&(r.state.loading&4)===0){if(r.instance===null){var o=gm(n.href),a=t.querySelector(ev(o));if(a){t=a._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=T1.bind(e),t.then(e,e)),r.state.loading|=4,r.instance=a,zo(a);return}a=t.ownerDocument||t,n=l6(n),(o=Hi.get(o))&&lT(n,o),a=a.createElement("link"),zo(a);var i=a;i._p=new Promise(function(s,l){i.onload=s,i.onerror=l}),Jo(a,"link",n),r.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(r,t),(t=r.state.preload)&&(r.state.loading&3)===0&&(e.count++,r=T1.bind(e),t.addEventListener("load",r),t.addEventListener("error",r))}}var SE=0;function loe(e,t){return e.stylesheets&&e.count===0&&r1(e,e.stylesheets),0SE?50:800)+t);return e.unsuspend=r,function(){e.unsuspend=null,clearTimeout(n),clearTimeout(o)}}:null}function T1(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)r1(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var O1=null;function r1(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,O1=new Map,t.forEach(uoe,e),O1=null,T1.call(e))}function uoe(e,t){if(!(t.state.loading&4)){var r=O1.get(e);if(r)var n=r.get(null);else{r=new Map,O1.set(e,r);for(var o=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a{"use strict";function v6(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(v6)}catch(e){console.error(e)}}v6(),x6.exports=y6()});var Kz=$o(qz=>{"use strict";var Vm=J();function Dae(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var jae=typeof Object.is=="function"?Object.is:Dae,$ae=Vm.useState,Lae=Vm.useEffect,zae=Vm.useLayoutEffect,Bae=Vm.useDebugValue;function Fae(e,t){var r=t(),n=$ae({inst:{value:r,getSnapshot:t}}),o=n[0].inst,a=n[1];return zae(function(){o.value=r,o.getSnapshot=t,dO(o)&&a({inst:o})},[e,r,t]),Lae(function(){return dO(o)&&a({inst:o}),e(function(){dO(o)&&a({inst:o})})},[e]),Bae(r),r}function dO(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!jae(e,r)}catch{return!0}}function Uae(e,t){return t()}var Wae=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Uae:Fae;qz.useSyncExternalStore=Vm.useSyncExternalStore!==void 0?Vm.useSyncExternalStore:Wae});var Gz=$o((SPe,Vz)=>{"use strict";Vz.exports=Kz()});var Xz=$o(Yz=>{"use strict";var Gw=J(),Hae=Gz();function qae(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Kae=typeof Object.is=="function"?Object.is:qae,Vae=Hae.useSyncExternalStore,Gae=Gw.useRef,Yae=Gw.useEffect,Xae=Gw.useMemo,Zae=Gw.useDebugValue;Yz.useSyncExternalStoreWithSelector=function(e,t,r,n,o){var a=Gae(null);if(a.current===null){var i={hasValue:!1,value:null};a.current=i}else i=a.current;a=Xae(function(){function l(f){if(!u){if(u=!0,c=f,f=n(f),o!==void 0&&i.hasValue){var m=i.value;if(o(m,f))return d=m}return d=f}if(m=d,Kae(c,f))return m;var y=n(f);return o!==void 0&&o(m,y)?(c=f,m):(c=f,d=y)}var u=!1,c,d,p=r===void 0?null:r;return[function(){return l(t())},p===null?void 0:function(){return l(p())}]},[t,r,n,o]);var s=Vae(e,a[0],a[1]);return Yae(function(){i.hasValue=!0,i.value=s},[s]),Zae(s),s}});var Jz=$o((_Pe,Zz)=>{"use strict";Zz.exports=Xz()});var z7=$o(L7=>{"use strict";var Nv=J();function ele(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var tle=typeof Object.is=="function"?Object.is:ele,rle=Nv.useSyncExternalStore,nle=Nv.useRef,ole=Nv.useEffect,ale=Nv.useMemo,ile=Nv.useDebugValue;L7.useSyncExternalStoreWithSelector=function(e,t,r,n,o){var a=nle(null);if(a.current===null){var i={hasValue:!1,value:null};a.current=i}else i=a.current;a=ale(function(){function l(f){if(!u){if(u=!0,c=f,f=n(f),o!==void 0&&i.hasValue){var m=i.value;if(o(m,f))return d=m}return d=f}if(m=d,tle(c,f))return m;var y=n(f);return o!==void 0&&o(m,y)?(c=f,m):(c=f,d=y)}var u=!1,c,d,p=r===void 0?null:r;return[function(){return l(t())},p===null?void 0:function(){return l(p())}]},[t,r,n,o]);var s=rle(e,a[0],a[1]);return ole(function(){i.hasValue=!0,i.value=s},[s]),ile(s),s}});var F7=$o((k5e,B7)=>{"use strict";B7.exports=z7()});var iP=$o((dF,nk)=>{(function(e){"use strict";var t=1e9,r={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},n=!0,o="[DecimalError] ",a=o+"Invalid argument: ",i=o+"Exponent out of range: ",s=Math.floor,l=Math.pow,u=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,c,d=1e7,p=7,f=9007199254740991,m=s(f/p),y={};y.absoluteValue=y.abs=function(){var T=new this.constructor(this);return T.s&&(T.s=1),T},y.comparedTo=y.cmp=function(T){var O,I,P,j,M=this;if(T=new M.constructor(T),M.s!==T.s)return M.s||-T.s;if(M.e!==T.e)return M.e>T.e^M.s<0?1:-1;for(P=M.d.length,j=T.d.length,O=0,I=PT.d[O]^M.s<0?1:-1;return P===j?0:P>j^M.s<0?1:-1},y.decimalPlaces=y.dp=function(){var T=this,O=T.d.length-1,I=(O-T.e)*p;if(O=T.d[O],O)for(;O%10==0;O/=10)I--;return I<0?0:I},y.dividedBy=y.div=function(T){return v(this,new this.constructor(T))},y.dividedToIntegerBy=y.idiv=function(T){var O=this,I=O.constructor;return C(v(O,new I(T),0,1),I.precision)},y.equals=y.eq=function(T){return!this.cmp(T)},y.exponent=function(){return S(this)},y.greaterThan=y.gt=function(T){return this.cmp(T)>0},y.greaterThanOrEqualTo=y.gte=function(T){return this.cmp(T)>=0},y.isInteger=y.isint=function(){return this.e>this.d.length-2},y.isNegative=y.isneg=function(){return this.s<0},y.isPositive=y.ispos=function(){return this.s>0},y.isZero=function(){return this.s===0},y.lessThan=y.lt=function(T){return this.cmp(T)<0},y.lessThanOrEqualTo=y.lte=function(T){return this.cmp(T)<1},y.logarithm=y.log=function(T){var O,I=this,P=I.constructor,j=P.precision,M=j+5;if(T===void 0)T=new P(10);else if(T=new P(T),T.s<1||T.eq(c))throw Error(o+"NaN");if(I.s<1)throw Error(o+(I.s?"NaN":"-Infinity"));return I.eq(c)?new P(0):(n=!1,O=v(_(I,M),_(T,M),M),n=!0,C(O,j))},y.minus=y.sub=function(T){var O=this;return T=new O.constructor(T),O.s==T.s?N(O,T):b(O,(T.s=-T.s,T))},y.modulo=y.mod=function(T){var O,I=this,P=I.constructor,j=P.precision;if(T=new P(T),!T.s)throw Error(o+"NaN");return I.s?(n=!1,O=v(I,T,0,1).times(T),n=!0,I.minus(O)):C(new P(I),j)},y.naturalExponential=y.exp=function(){return x(this)},y.naturalLogarithm=y.ln=function(){return _(this)},y.negated=y.neg=function(){var T=new this.constructor(this);return T.s=-T.s||0,T},y.plus=y.add=function(T){var O=this;return T=new O.constructor(T),O.s==T.s?b(O,T):N(O,(T.s=-T.s,T))},y.precision=y.sd=function(T){var O,I,P,j=this;if(T!==void 0&&T!==!!T&&T!==1&&T!==0)throw Error(a+T);if(O=S(j)+1,P=j.d.length-1,I=P*p+1,P=j.d[P],P){for(;P%10==0;P/=10)I--;for(P=j.d[0];P>=10;P/=10)I++}return T&&O>I?O:I},y.squareRoot=y.sqrt=function(){var T,O,I,P,j,M,W,Y=this,z=Y.constructor;if(Y.s<1){if(!Y.s)return new z(0);throw Error(o+"NaN")}for(T=S(Y),n=!1,j=Math.sqrt(+Y),j==0||j==1/0?(O=h(Y.d),(O.length+T)%2==0&&(O+="0"),j=Math.sqrt(O),T=s((T+1)/2)-(T<0||T%2),j==1/0?O="5e"+T:(O=j.toExponential(),O=O.slice(0,O.indexOf("e")+1)+T),P=new z(O)):P=new z(j.toString()),I=z.precision,j=W=I+3;;)if(M=P,P=M.plus(v(Y,M,W+2)).times(.5),h(M.d).slice(0,W)===(O=h(P.d)).slice(0,W)){if(O=O.slice(W-3,W+1),j==W&&O=="4999"){if(C(M,I+1,0),M.times(M).eq(Y)){P=M;break}}else if(O!="9999")break;W+=4}return n=!0,C(P,I)},y.times=y.mul=function(T){var O,I,P,j,M,W,Y,z,V,q=this,oe=q.constructor,Me=q.d,fe=(T=new oe(T)).d;if(!q.s||!T.s)return new oe(0);for(T.s*=q.s,I=q.e+T.e,z=Me.length,V=fe.length,z=0;){for(O=0,j=z+P;j>P;)Y=M[j]+fe[P]*Me[j-P-1]+O,M[j--]=Y%d|0,O=Y/d|0;M[j]=(M[j]+O)%d|0}for(;!M[--W];)M.pop();return O?++I:M.shift(),T.d=M,T.e=I,n?C(T,oe.precision):T},y.toDecimalPlaces=y.todp=function(T,O){var I=this,P=I.constructor;return I=new P(I),T===void 0?I:(g(T,0,t),O===void 0?O=P.rounding:g(O,0,8),C(I,T+S(I)+1,O))},y.toExponential=function(T,O){var I,P=this,j=P.constructor;return T===void 0?I=L(P,!0):(g(T,0,t),O===void 0?O=j.rounding:g(O,0,8),P=C(new j(P),T+1,O),I=L(P,!0,T+1)),I},y.toFixed=function(T,O){var I,P,j=this,M=j.constructor;return T===void 0?L(j):(g(T,0,t),O===void 0?O=M.rounding:g(O,0,8),P=C(new M(j),T+S(j)+1,O),I=L(P.abs(),!1,T+S(P)+1),j.isneg()&&!j.isZero()?"-"+I:I)},y.toInteger=y.toint=function(){var T=this,O=T.constructor;return C(new O(T),S(T)+1,O.rounding)},y.toNumber=function(){return+this},y.toPower=y.pow=function(T){var O,I,P,j,M,W,Y=this,z=Y.constructor,V=12,q=+(T=new z(T));if(!T.s)return new z(c);if(Y=new z(Y),!Y.s){if(T.s<1)throw Error(o+"Infinity");return Y}if(Y.eq(c))return Y;if(P=z.precision,T.eq(c))return C(Y,P);if(O=T.e,I=T.d.length-1,W=O>=I,M=Y.s,W){if((I=q<0?-q:q)<=f){for(j=new z(c),O=Math.ceil(P/p+4),n=!1;I%2&&(j=j.times(Y),Q(j.d,O)),I=s(I/2),I!==0;)Y=Y.times(Y),Q(Y.d,O);return n=!0,T.s<0?new z(c).div(j):C(j,P)}}else if(M<0)throw Error(o+"NaN");return M=M<0&&T.d[Math.max(O,I)]&1?-1:1,Y.s=1,n=!1,j=T.times(_(Y,P+V)),n=!0,j=x(j),j.s=M,j},y.toPrecision=function(T,O){var I,P,j=this,M=j.constructor;return T===void 0?(I=S(j),P=L(j,I<=M.toExpNeg||I>=M.toExpPos)):(g(T,1,t),O===void 0?O=M.rounding:g(O,0,8),j=C(new M(j),T,O),I=S(j),P=L(j,T<=I||I<=M.toExpNeg,T)),P},y.toSignificantDigits=y.tosd=function(T,O){var I=this,P=I.constructor;return T===void 0?(T=P.precision,O=P.rounding):(g(T,1,t),O===void 0?O=P.rounding:g(O,0,8)),C(new P(I),T,O)},y.toString=y.valueOf=y.val=y.toJSON=function(){var T=this,O=S(T),I=T.constructor;return L(T,O<=I.toExpNeg||O>=I.toExpPos)};function b(T,O){var I,P,j,M,W,Y,z,V,q=T.constructor,oe=q.precision;if(!T.s||!O.s)return O.s||(O=new q(T)),n?C(O,oe):O;if(z=T.d,V=O.d,W=T.e,j=O.e,z=z.slice(),M=W-j,M){for(M<0?(P=z,M=-M,Y=V.length):(P=V,j=W,Y=z.length),W=Math.ceil(oe/p),Y=W>Y?W+1:Y+1,M>Y&&(M=Y,P.length=1),P.reverse();M--;)P.push(0);P.reverse()}for(Y=z.length,M=V.length,Y-M<0&&(M=Y,P=V,V=z,z=P),I=0;M;)I=(z[--M]=z[M]+V[M]+I)/d|0,z[M]%=d;for(I&&(z.unshift(I),++j),Y=z.length;z[--Y]==0;)z.pop();return O.d=z,O.e=j,n?C(O,oe):O}function g(T,O,I){if(T!==~~T||TI)throw Error(a+T)}function h(T){var O,I,P,j=T.length-1,M="",W=T[0];if(j>0){for(M+=W,O=1;OW?1:-1;else for(Y=z=0;Yj[Y]?1:-1;break}return z}function I(P,j,M){for(var W=0;M--;)P[M]-=W,W=P[M]1;)P.shift()}return function(P,j,M,W){var Y,z,V,q,oe,Me,fe,le,R,te,He,_e,D,G,E,$,ee,F,me=P.constructor,et=P.s==j.s?1:-1,rt=P.d,ge=j.d;if(!P.s)return new me(P);if(!j.s)throw Error(o+"Division by zero");for(z=P.e-j.e,ee=ge.length,E=rt.length,fe=new me(et),le=fe.d=[],V=0;ge[V]==(rt[V]||0);)++V;if(ge[V]>(rt[V]||0)&&--z,M==null?_e=M=me.precision:W?_e=M+(S(P)-S(j))+1:_e=M,_e<0)return new me(0);if(_e=_e/p+2|0,V=0,ee==1)for(q=0,ge=ge[0],_e++;(V1&&(ge=T(ge,q),rt=T(rt,q),ee=ge.length,E=rt.length),G=ee,R=rt.slice(0,ee),te=R.length;te=d/2&&++$;do q=0,Y=O(ge,R,ee,te),Y<0?(He=R[0],ee!=te&&(He=He*d+(R[1]||0)),q=He/$|0,q>1?(q>=d&&(q=d-1),oe=T(ge,q),Me=oe.length,te=R.length,Y=O(oe,R,Me,te),Y==1&&(q--,I(oe,ee16)throw Error(i+S(T));if(!T.s)return new q(c);for(O==null?(n=!1,Y=oe):Y=O,W=new q(.03125);T.abs().gte(.1);)T=T.times(W),V+=5;for(P=Math.log(l(2,V))/Math.LN10*2+5|0,Y+=P,I=j=M=new q(c),q.precision=Y;;){if(j=C(j.times(T),Y),I=I.times(++z),W=M.plus(v(j,I,Y)),h(W.d).slice(0,Y)===h(M.d).slice(0,Y)){for(;V--;)M=C(M.times(M),Y);return q.precision=oe,O==null?(n=!0,C(M,oe)):M}M=W}}function S(T){for(var O=T.e*p,I=T.d[0];I>=10;I/=10)O++;return O}function k(T,O,I){if(O>T.LN10.sd())throw n=!0,I&&(T.precision=I),Error(o+"LN10 precision limit exceeded");return C(new T(T.LN10),O)}function w(T){for(var O="";T--;)O+="0";return O}function _(T,O){var I,P,j,M,W,Y,z,V,q,oe=1,Me=10,fe=T,le=fe.d,R=fe.constructor,te=R.precision;if(fe.s<1)throw Error(o+(fe.s?"NaN":"-Infinity"));if(fe.eq(c))return new R(0);if(O==null?(n=!1,V=te):V=O,fe.eq(10))return O==null&&(n=!0),k(R,V);if(V+=Me,R.precision=V,I=h(le),P=I.charAt(0),M=S(fe),Math.abs(M)<15e14){for(;P<7&&P!=1||P==1&&I.charAt(1)>3;)fe=fe.times(T),I=h(fe.d),P=I.charAt(0),oe++;M=S(fe),P>1?(fe=new R("0."+I),M++):fe=new R(P+"."+I.slice(1))}else return z=k(R,V+2,te).times(M+""),fe=_(new R(P+"."+I.slice(1)),V-Me).plus(z),R.precision=te,O==null?(n=!0,C(fe,te)):fe;for(Y=W=fe=v(fe.minus(c),fe.plus(c),V),q=C(fe.times(fe),V),j=3;;){if(W=C(W.times(q),V),z=Y.plus(v(W,new R(j),V)),h(z.d).slice(0,V)===h(Y.d).slice(0,V))return Y=Y.times(2),M!==0&&(Y=Y.plus(k(R,V+2,te).times(M+""))),Y=v(Y,new R(oe),V),R.precision=te,O==null?(n=!0,C(Y,te)):Y;Y=z,j+=2}}function A(T,O){var I,P,j;for((I=O.indexOf("."))>-1&&(O=O.replace(".","")),(P=O.search(/e/i))>0?(I<0&&(I=P),I+=+O.slice(P+1),O=O.substring(0,P)):I<0&&(I=O.length),P=0;O.charCodeAt(P)===48;)++P;for(j=O.length;O.charCodeAt(j-1)===48;)--j;if(O=O.slice(P,j),O){if(j-=P,I=I-P-1,T.e=s(I/p),T.d=[],P=(I+1)%p,I<0&&(P+=p),Pm||T.e<-m))throw Error(i+I)}else T.s=0,T.e=0,T.d=[0];return T}function C(T,O,I){var P,j,M,W,Y,z,V,q,oe=T.d;for(W=1,M=oe[0];M>=10;M/=10)W++;if(P=O-W,P<0)P+=p,j=O,V=oe[q=0];else{if(q=Math.ceil((P+1)/p),M=oe.length,q>=M)return T;for(V=M=oe[q],W=1;M>=10;M/=10)W++;P%=p,j=P-p+W}if(I!==void 0&&(M=l(10,W-j-1),Y=V/M%10|0,z=O<0||oe[q+1]!==void 0||V%M,z=I<4?(Y||z)&&(I==0||I==(T.s<0?3:2)):Y>5||Y==5&&(I==4||z||I==6&&(P>0?j>0?V/l(10,W-j):0:oe[q-1])%10&1||I==(T.s<0?8:7))),O<1||!oe[0])return z?(M=S(T),oe.length=1,O=O-M-1,oe[0]=l(10,(p-O%p)%p),T.e=s(-O/p)||0):(oe.length=1,oe[0]=T.e=T.s=0),T;if(P==0?(oe.length=q,M=1,q--):(oe.length=q+1,M=l(10,p-P),oe[q]=j>0?(V/l(10,W-j)%l(10,j)|0)*M:0),z)for(;;)if(q==0){(oe[0]+=M)==d&&(oe[0]=1,++T.e);break}else{if(oe[q]+=M,oe[q]!=d)break;oe[q--]=0,M=1}for(P=oe.length;oe[--P]===0;)oe.pop();if(n&&(T.e>m||T.e<-m))throw Error(i+S(T));return T}function N(T,O){var I,P,j,M,W,Y,z,V,q,oe,Me=T.constructor,fe=Me.precision;if(!T.s||!O.s)return O.s?O.s=-O.s:O=new Me(T),n?C(O,fe):O;if(z=T.d,oe=O.d,P=O.e,V=T.e,z=z.slice(),W=V-P,W){for(q=W<0,q?(I=z,W=-W,Y=oe.length):(I=oe,P=V,Y=z.length),j=Math.max(Math.ceil(fe/p),Y)+2,W>j&&(W=j,I.length=1),I.reverse(),j=W;j--;)I.push(0);I.reverse()}else{for(j=z.length,Y=oe.length,q=j0;--j)z[Y++]=0;for(j=oe.length;j>W;){if(z[--j]0?M=M.charAt(0)+"."+M.slice(1)+w(P):W>1&&(M=M.charAt(0)+"."+M.slice(1)),M=M+(j<0?"e":"e+")+j):j<0?(M="0."+w(-j-1)+M,I&&(P=I-W)>0&&(M+=w(P))):j>=W?(M+=w(j+1-W),I&&(P=I-j-1)>0&&(M=M+"."+w(P))):((P=j+1)0&&(j+1===W&&(M+="."),M+=w(P))),T.s<0?"-"+M:M}function Q(T,O){if(T.length>O)return T.length=O,!0}function B(T){var O,I,P;function j(M){var W=this;if(!(W instanceof j))return new j(M);if(W.constructor=j,M instanceof j){W.s=M.s,W.e=M.e,W.d=(M=M.d)?M.slice():M;return}if(typeof M=="number"){if(M*0!==0)throw Error(a+M);if(M>0)W.s=1;else if(M<0)M=-M,W.s=-1;else{W.s=0,W.e=0,W.d=[0];return}if(M===~~M&&M<1e7){W.e=0,W.d=[M];return}return A(W,M.toString())}else if(typeof M!="string")throw Error(a+M);if(M.charCodeAt(0)===45?(M=M.slice(1),W.s=-1):W.s=1,u.test(M))A(W,M);else throw Error(a+M)}if(j.prototype=y,j.ROUND_UP=0,j.ROUND_DOWN=1,j.ROUND_CEIL=2,j.ROUND_FLOOR=3,j.ROUND_HALF_UP=4,j.ROUND_HALF_DOWN=5,j.ROUND_HALF_EVEN=6,j.ROUND_HALF_CEIL=7,j.ROUND_HALF_FLOOR=8,j.clone=B,j.config=j.set=K,T===void 0&&(T={}),T)for(P=["precision","rounding","toExpNeg","toExpPos","LN10"],O=0;O=j[O+1]&&P<=j[O+2])this[I]=P;else throw Error(a+I+": "+P);if((P=T[I="LN10"])!==void 0)if(P==Math.LN10)this[I]=new this(P);else throw Error(a+I+": "+P);return this}r=B(r),r.default=r.Decimal=r,c=new r(1),typeof define=="function"&&define.amd?define(function(){return r}):typeof nk<"u"&&nk.exports?nk.exports=r:(e||(e=typeof self<"u"&&self&&self.self==self?self:Function("return this")()),e.Decimal=r)})(dF)});var iH=$o((dBe,KM)=>{"use strict";var uge=Object.prototype.hasOwnProperty,Ea="~";function xx(){}Object.create&&(xx.prototype=Object.create(null),new xx().__proto__||(Ea=!1));function cge(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function aH(e,t,r,n,o){if(typeof r!="function")throw new TypeError("The listener must be a function");var a=new cge(r,n||e,o),i=Ea?Ea+t:t;return e._events[i]?e._events[i].fn?e._events[i]=[e._events[i],a]:e._events[i].push(a):(e._events[i]=a,e._eventsCount++),e}function E_(e,t){--e._eventsCount===0?e._events=new xx:delete e._events[t]}function la(){this._events=new xx,this._eventsCount=0}la.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)uge.call(r,n)&&t.push(Ea?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};la.prototype.listeners=function(t){var r=Ea?Ea+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var o=0,a=n.length,i=new Array(a);o{"use strict";var t5=Symbol.for("react.transitional.element"),r5=Symbol.for("react.portal"),U_=Symbol.for("react.fragment"),W_=Symbol.for("react.strict_mode"),H_=Symbol.for("react.profiler"),q_=Symbol.for("react.consumer"),K_=Symbol.for("react.context"),V_=Symbol.for("react.forward_ref"),G_=Symbol.for("react.suspense"),Y_=Symbol.for("react.suspense_list"),X_=Symbol.for("react.memo"),Z_=Symbol.for("react.lazy"),Xhe=Symbol.for("react.view_transition"),Zhe=Symbol.for("react.client.reference");function as(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case t5:switch(e=e.type,e){case U_:case H_:case W_:case G_:case Y_:case Xhe:return e;default:switch(e=e&&e.$$typeof,e){case K_:case V_:case Z_:case X_:return e;case q_:return e;default:return t}}case r5:return t}}}en.ContextConsumer=q_;en.ContextProvider=K_;en.Element=t5;en.ForwardRef=V_;en.Fragment=U_;en.Lazy=Z_;en.Memo=X_;en.Portal=r5;en.Profiler=H_;en.StrictMode=W_;en.Suspense=G_;en.SuspenseList=Y_;en.isContextConsumer=function(e){return as(e)===q_};en.isContextProvider=function(e){return as(e)===K_};en.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===t5};en.isForwardRef=function(e){return as(e)===V_};en.isFragment=function(e){return as(e)===U_};en.isLazy=function(e){return as(e)===Z_};en.isMemo=function(e){return as(e)===X_};en.isPortal=function(e){return as(e)===r5};en.isProfiler=function(e){return as(e)===H_};en.isStrictMode=function(e){return as(e)===W_};en.isSuspense=function(e){return as(e)===G_};en.isSuspenseList=function(e){return as(e)===Y_};en.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===U_||e===H_||e===W_||e===G_||e===Y_||typeof e=="object"&&e!==null&&(e.$$typeof===Z_||e.$$typeof===X_||e.$$typeof===K_||e.$$typeof===q_||e.$$typeof===V_||e.$$typeof===Zhe||e.getModuleId!==void 0)};en.typeOf=as});var vq=$o((f9e,yq)=>{"use strict";yq.exports=hq()});var ote=Z(J()),ate=Z(b6());var Nt=Z(J());var ft=Z(J());var kr=Z(J()),Xd={github:{emoji:"\u{1F419}",label:"GitHub"},ruby:{emoji:"\u{1F48E}",label:"Ruby"},rails:{emoji:"\u{1F6E4}\uFE0F",label:"Rails"},aws:{emoji:"\u2601\uFE0F",label:"AWS"},gcp:{emoji:"\u{1F310}",label:"GCP"},python:{emoji:"\u{1F40D}",label:"Python"},typescript:{emoji:"\u{1F4D8}",label:"TypeScript"},docker:{emoji:"\u{1F433}",label:"Docker"},kubernetes:{emoji:"\u2638\uFE0F",label:"Kubernetes"}},rv={terminal:{emoji:"\u{1F4BB}",label:"Terminal"},playwright:{emoji:"\u{1F3AD}",label:"Playwright"},filesystem:{emoji:"\u{1F4C1}",label:"Filesystem"},code:{emoji:"\u{1F468}\u200D\u{1F4BB}",label:"Code"},database:{emoji:"\u{1F5C4}\uFE0F",label:"Database"},slack:{emoji:"\u{1F4AC}",label:"Slack"},fetch:{emoji:"\u{1F310}",label:"Fetch"},search:{emoji:"\u{1F50D}",label:"Search"},edit:{emoji:"\u270F\uFE0F",label:"Edit"},translate:{emoji:"\u{1F30D}",label:"Translate"},memory:{emoji:"\u{1F9E0}",label:"Memory"},ui:{emoji:"\u{1F9E9}",label:"Generative UI"}},_m={terminal:{instructions:["github"],tools:["terminal","code"]},webDeveloper:{instructions:["typescript"],tools:["playwright","fetch"]},documentAnalysis:{instructions:["python"],tools:["database","search","code"]},writing:{instructions:["ruby"],tools:["edit","memory"]},translation:{instructions:["ruby","python","typescript"],tools:["translate","code"]},playwright:{instructions:["typescript"],tools:["playwright","fetch"]},research:{instructions:["github"],tools:["fetch","search","memory"]},imageAnalysis:{instructions:["python"],tools:["filesystem","code"]},computerUse:{instructions:["github"],tools:["terminal","playwright"]},productDesign:{instructions:["typescript"],tools:["playwright","code"]}};var yoe=({id:e="mascot"})=>kr.default.createElement("g",{stroke:"none",fill:"none",fillRule:"evenodd",strokeWidth:"1"},kr.default.createElement("g",{transform:"translate(25, 475) scale(-1, 1) rotate(-180) translate(-25, -475) translate(0, 450)"},kr.default.createElement("g",{fillRule:"nonzero"},kr.default.createElement("path",{d:"M421,271.3 C422.733,265.1 423.667,244.633 423.8,209.9 C423.9,173.4 423.8,142.1 423.5,140.4 C423.1,137.9 412.5,126.8 373.1,87.2 C345.6,59.7 321.7,36.3 319.8,35.3 C316.7,33.6 312.5,33.5 250,33.5 C186.5,33.5 183.3,33.6 178.2,35.4 C173.5,37.2 168.3,42.1 125.2,85.3 C69.3,141.4 75.6,134.9 73.7,138.7 C72.3,141.3 72,147.2 71.8,178.6 C71.3,243.6 71.8,276 73.4,276 C74.067,276 99.6,304.854 150,362.563 L350.015,362.563 L421,271.3 Z",fill:"#EB5555",stroke:"#000000",strokeWidth:"12"})),kr.default.createElement("path",{d:"M216.5,202.5 C213.4,199.5 213.4,198.7 216.5,193.4 C223.2,182 248.2,176 264.5,181.9 C273,185 280.3,190.1 282.4,194.5 C284,197.9 284,198.3 282.5,200.6 C281.6,202 279.8,203.6 278.5,204.2 C276.4,205.1 275.4,204.7 270.1,200.8 C263,195.4 254.7,193.3 244.4,194.4 C236.1,195.3 234.3,196 228.6,200.9 C223.1,205.6 220,206.1 216.5,202.5 Z",fill:"#000000",fillRule:"nonzero"}),kr.default.createElement("path",{d:"M177.8,484.5 C169.1,482.1 162,475.2 157.7,465 C156.2,461.4 151.9,446.6 148.1,432 C144.3,417.4 140.7,404.3 140.1,402.8 L139,400 L94.8,400 C70.4,400 49.5,399.7 48.2,399.4 C45.1,398.5 42.7,393.8 43.9,390.8 C45.1,387.9 49.4,383.3 54,379.9 C68.7,369.2 86.3,364.8 120,363.4 C126.067,363.2 134.065,362.921 143.995,362.563 L350.015,362.563 C367.433,363.767 377.5,364.1 377.5,364.1 C411,365.2 433.1,371.5 446.2,383.8 C453.8,390.9 455.1,394.7 451.3,399 C451,399.3 429.6,399.7 403.7,400 L356.6,400.5 L353.3,412.5 C351.5,419.1 348.2,431.3 346.1,439.5 C339.9,463 336.7,470.5 329.4,477.5 C322.9,483.8 315.7,486.3 305.5,485.8 C298.1,485.4 296.1,484.7 280.5,477.8 C271.2,473.7 261.7,469.7 259.5,468.9 C250.9,466.1 238.1,467.9 224.9,473.8 C197.3,486.1 189.8,487.8 177.8,484.5 Z",stroke:"#000000",strokeWidth:"11",fill:"#000000",fillRule:"nonzero"}),kr.default.createElement("g",{transform:"translate(75.105, 196.182)"},kr.default.createElement("ellipse",{fill:"#F5E6D3",cx:"87",cy:"55",rx:"35",ry:"29"}),kr.default.createElement("ellipse",{fill:"#5D4037",cx:"87",cy:"57",rx:"20",ry:"20"}),kr.default.createElement("ellipse",{fill:"#2D1F1F",cx:"87",cy:"57",rx:"12",ry:"12"}),kr.default.createElement("ellipse",{fill:"#FFFFFF",cx:"80",cy:"51",rx:"5",ry:"5"}),kr.default.createElement("ellipse",{fill:"#F5E6D3",cx:"259",cy:"55",rx:"35",ry:"29"}),kr.default.createElement("ellipse",{fill:"#5D4037",cx:"259",cy:"57",rx:"20",ry:"20"}),kr.default.createElement("ellipse",{fill:"#2D1F1F",cx:"259",cy:"57",rx:"12",ry:"12"}),kr.default.createElement("ellipse",{fill:"#FFFFFF",cx:"252",cy:"51",rx:"5",ry:"5"})),kr.default.createElement("g",{transform:"translate(75.105, 196.182)",fillRule:"nonzero"},kr.default.createElement("g",{transform:"translate(267.395, 54.835) scale(-1, 1) translate(-267.395, -54.835)"},kr.default.createElement("path",{d:"M346.895,99.881 L335.287,108.67 L292.495,108.67 L211.805,108.67 C194.861,92.394 186.922,84.257 187.99,84.257 C188.99,84.257 187.689,77.518 187.99,71.118 C188.99,54.518 196.996,38.618 211.805,23.818 C219.711,15.918 222.813,13.518 230.118,10.018 C242.025,4.118 250.431,1.818 262.839,1.118 C274.147,0.518 285.354,2.218 295.561,6.018 C308.67,10.918 327.482,26.818 335.287,39.618 C342.092,50.918 346.895,65.818 346.895,76.018 C346.895,82.818 346.895,90.772 346.895,99.881 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000",fillOpacity:"0.92"})),kr.default.createElement("path",{d:"M158.895,99.881 L147.295,108.67 L104.531,108.67 L23.895,108.67 C6.961,92.394 -0.972,84.257 0.095,84.257 C1.095,84.257 -0.205,77.518 0.095,71.118 C1.095,54.518 9.095,38.618 23.895,23.818 C31.795,15.918 34.895,13.518 42.195,10.018 C54.095,4.118 62.495,1.818 74.895,1.118 C86.195,0.518 97.395,2.218 107.595,6.018 C120.695,10.918 139.495,26.818 147.295,39.618 C154.095,50.918 158.895,65.818 158.895,76.018 C158.895,82.818 158.895,90.772 158.895,99.881 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000",fillOpacity:"0.92"})),kr.default.createElement("g",{transform:"translate(75.105, 196.182)",fillRule:"nonzero"},kr.default.createElement("path",{d:"M187.895,73.418 C187.895,60.818 195.095,43.418 205.495,30.818 C213.379,21.259 220.29,15.351 230.066,10.615 C233.275,8.66 236.386,7.08 239.229,6.018 C246.892,3.165 255.119,1.496 263.529,1.095 C267.063,0.859 270.58,0.912 274.131,1.261 C285.374,2.105 293.475,4.47 304.672,10.018 C311.734,13.402 314.868,15.757 322.213,23.049 L322.795,23.618 C326.306,27.085 329.397,30.586 332.082,34.15 L332.148,34.235 C341.116,45.994 346.03,58.349 346.8,71.118 C346.957,74.467 346.676,77.909 346.515,80.429 C346.693,80.646 346.917,80.701 347.195,80.618 C347.366,80.542 348.039,80.501 349.213,80.495 L349.775,80.495 C352.888,80.507 358.769,80.715 367.418,81.118 C374.646,86.469 378.26,91.703 378.26,96.818 C378.26,101.933 374.646,107.042 367.418,112.146 L15.403,112.146 L-20.38,113.348 C-27.807,110.322 -31.52,105.629 -31.52,99.27 C-31.52,92.911 -27.807,88.087 -20.38,84.798 C-13.63,84.605 -8.537,84.463 -5.101,84.373 C-5.115,84.296 -5.084,84.257 -5.01,84.257 C-4.01,84.257 -5.311,77.518 -5.01,71.118 C-4.01,54.518 3.996,38.618 18.805,23.818 C26.711,15.918 29.813,13.518 37.118,10.018 C49.025,4.118 57.431,1.818 69.839,1.118 C72.166,0.994 74.489,0.968 76.8,1.038 C76.165,1.058 75.53,1.084 74.895,1.118 C62.495,1.818 54.095,4.118 42.195,10.018 C34.895,13.518 31.795,15.918 23.895,23.818 C9.095,38.618 1.095,54.518 0.095,71.118 C-0.205,77.518 1.095,84.257 0.095,84.257 C-0.4,84.257 -2.131,84.296 -5.101,84.373 C-4.938,85.42 3.031,93.518 18.805,108.67 L142.287,108.67 L153.895,99.881 L153.895,76.018 C153.895,65.818 149.092,50.918 142.287,39.618 C134.482,26.818 115.67,10.918 102.561,6.018 C94.455,3 85.717,1.307 76.8,1.038 C87.451,0.716 97.968,2.432 107.595,6.018 C120.695,10.918 139.495,26.818 147.295,39.618 C154.095,50.918 158.895,65.818 158.895,76.018 L158.895,80.418 L164.995,80.418 C168.395,80.118 174.995,79.818 179.495,79.818 L187.895,79.818 L187.895,99.881 L199.502,108.67 L322.984,108.67 C339.929,92.394 347.867,84.257 346.8,84.257 C346.323,84.257 346.369,82.725 346.515,80.429 C346.051,79.868 345.895,78.223 345.895,75.118 C345.895,59.873 341.479,46.625 332.082,34.15 L331.696,33.647 C329.117,30.321 326.212,27.043 322.984,23.818 C322.722,23.556 322.465,23.299 322.213,23.049 C316.441,17.437 312.579,14.708 306.095,11.418 C294.424,5.583 284.144,2.245 274.131,1.261 C273.417,1.207 272.691,1.16 271.95,1.118 C269.132,0.968 266.321,0.962 263.529,1.095 C257.389,1.506 251.198,2.792 244.695,4.918 C239.073,6.731 234.301,8.563 230.066,10.615 C218.478,17.668 205.615,29.594 199.502,39.618 C192.698,50.917 187.895,65.817 187.895,76.017 L187.895,73.418 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000"})),kr.default.createElement("g",{transform:"translate(83.563, 252.212)",fill:"#FFFFFF",fillRule:"nonzero"},kr.default.createElement("path",{d:"M12.837,35.288 C13.137,33.988 14.437,31.888 15.637,30.788 L17.837,28.788 L15.637,26.788 C14.437,25.688 13.137,23.588 12.837,22.288 C12.037,19.088 10.637,19.088 9.437,22.188 C8.937,23.488 7.537,25.588 6.237,26.788 C4.037,28.788 4.037,28.988 5.737,29.988 C6.837,30.488 8.237,32.488 9.037,34.388 C10.737,38.388 11.937,38.688 12.837,35.288 Z M29.237,33.088 C30.137,29.688 31.837,27.088 34.937,24.088 L39.337,19.888 L36.337,17.788 C33.437,15.588 28.437,7.288 28.437,4.288 C28.437,2.188 26.537,2.388 25.837,4.588 C23.937,10.388 21.637,14.388 18.337,17.188 L14.537,20.388 L17.337,22.088 C19.837,23.588 24.337,30.988 25.837,36.088 C26.737,39.088 27.937,37.988 29.237,33.088 Z M10.937,12.488 L13.037,9.288 L10.937,6.088 C8.837,2.788 7.437,1.888 7.437,3.988 C7.437,4.588 6.537,6.088 5.437,7.288 L3.437,9.488 L5.437,11.288 C6.537,12.288 7.437,13.688 7.437,14.488 C7.437,16.688 8.837,15.888 10.937,12.488 Z"}),kr.default.createElement("path",{d:"M203.437,36.388 C203.437,35.588 204.637,33.588 206.037,31.888 L208.637,28.788 L206.037,25.688 C204.637,23.988 203.437,21.988 203.437,21.188 C203.437,18.588 201.437,19.788 200.037,23.188 C199.237,25.088 197.837,27.088 196.737,27.688 C195.037,28.688 195.037,28.788 197.037,30.188 C198.237,30.988 199.737,33.088 200.437,34.788 C201.737,37.888 203.437,38.788 203.437,36.388 Z M220.837,32.588 C221.937,29.288 224.237,25.788 226.737,23.388 C229.737,20.488 230.537,19.288 229.437,18.988 C226.637,17.988 222.437,12.588 220.737,7.688 C219.737,4.988 218.737,2.788 218.337,2.788 C218.037,2.788 216.737,5.288 215.537,8.288 C214.337,11.288 211.737,15.088 209.837,16.688 C205.937,20.188 205.637,21.388 208.437,22.288 C210.937,23.088 214.737,28.788 216.437,34.088 C217.037,36.088 217.937,37.788 218.237,37.788 C218.637,37.788 219.837,35.388 220.837,32.588 Z M201.137,14.088 C201.437,13.088 202.437,11.488 203.337,10.488 C204.337,9.288 204.537,8.388 203.837,7.988 C203.237,7.588 202.237,6.288 201.537,5.088 C200.137,2.388 198.837,2.188 198.037,4.588 C197.737,5.488 196.937,6.988 196.337,7.888 C195.337,9.288 195.437,9.888 196.737,11.288 C197.637,12.188 198.437,13.588 198.437,14.388 C198.437,16.388 200.337,16.188 201.137,14.088 Z"}))));function In({size:e=200,instructions:t=[],tools:r=[],showDecorations:n=!1,className:o="",hat:a,hatAccessory:i,heldItem:s,theme:l,customColors:u}){return kr.default.createElement("div",{className:`inline-flex flex-col items-center ${o}`},n&&t.length>0&&kr.default.createElement("div",{className:"flex gap-1 mb-1"},t.map(c=>{let d=Xd[c];return d?kr.default.createElement("span",{key:c,className:"text-sm",title:d.label},d.emoji):null})),kr.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 500 500",width:e,height:e,role:"img","aria-label":"Active Agent mascot"},kr.default.createElement("title",null,"ActiveAgent"),kr.default.createElement(yoe,null)),n&&r.length>0&&kr.default.createElement("div",{className:"flex gap-1 mt-1"},r.map(c=>{let d=rv[c];return d?kr.default.createElement("span",{key:c,className:"text-sm",title:d.label},d.emoji):null})))}var Ha=Z(J());var Ns=Z(J()),w6=(0,Ns.createContext)();function S6({children:e}){let[t,r]=(0,Ns.useState)(()=>{let o=localStorage.getItem("dashboard-theme");return o?o==="dark":window.matchMedia("(prefers-color-scheme: dark)").matches});(0,Ns.useEffect)(()=>{localStorage.setItem("dashboard-theme",t?"dark":"light")},[t]),(0,Ns.useEffect)(()=>{let o=window.matchMedia("(prefers-color-scheme: dark)"),a=i=>{localStorage.getItem("dashboard-theme")||r(i.matches)};return o.addEventListener("change",a),()=>o.removeEventListener("change",a)},[]);let n=()=>r(!t);return Ns.default.createElement(w6.Provider,{value:{darkMode:t,toggleDarkMode:n}},e)}function ut(){let e=(0,Ns.useContext)(w6);if(!e)throw new Error("useTheme must be used within a ThemeProvider");return e}function Cm({name:e,subtitle:t,badge:r,accentColor:n,stats:o=[],footer:a,onClick:i,actions:s}){let{darkMode:l}=ut(),[u,c]=Ha.default.useState(!1),d={cardBg:l?"rgba(255,255,255,0.05)":"#ffffff",border:l?"rgba(255,255,255,0.1)":"#e5e7eb",borderHover:l?"rgba(255,255,255,0.2)":"#d1d5db",tileBg:l?"rgba(255,255,255,0.05)":"#f9fafb",textPrimary:l?"#f9fafb":"#111827",textSecondary:l?"#9ca3af":"#6b7280",textMuted:l?"#6b7280":"#9ca3af"},p=f=>f==="good"?l?"#4ade80":"#16a34a":f==="warn"?l?"#facc15":"#ca8a04":f==="bad"?l?"#f87171":"#dc2626":f==="muted"?d.textMuted:d.textPrimary;return Ha.default.createElement("div",{"data-testid":"agent-card","data-agent-name":typeof e=="string"?e:void 0,onClick:i,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),role:i?"button":void 0,tabIndex:i?0:void 0,onKeyDown:f=>{i&&(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),i(f))},style:{background:d.cardBg,borderTop:`1px solid ${u?d.borderHover:d.border}`,borderRight:`1px solid ${u?d.borderHover:d.border}`,borderBottom:`1px solid ${u?d.borderHover:d.border}`,borderLeft:n?`4px solid ${n}`:`1px solid ${u?d.borderHover:d.border}`,borderRadius:"12px",padding:"16px",cursor:i?"pointer":"default",transition:"border-color 0.15s ease, box-shadow 0.15s ease",boxShadow:u&&i?"0 4px 16px rgba(0,0,0,0.08)":"none",display:"flex",flexDirection:"column",gap:"12px"}},Ha.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"8px"}},Ha.default.createElement("div",{style:{minWidth:0}},Ha.default.createElement("div",{style:{fontWeight:600,fontSize:"15px",color:u&&i?"#ef4444":d.textPrimary,transition:"color 0.15s ease",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e},e),t&&Ha.default.createElement("div",{style:{fontSize:"13px",color:d.textSecondary,marginTop:"2px",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"}},t)),r&&Ha.default.createElement("div",{style:{flexShrink:0}},r)),o.length>0&&Ha.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:"6px"}},o.map(f=>Ha.default.createElement("div",{key:f.label,title:f.title,style:{background:d.tileBg,borderRadius:"8px",padding:"6px 8px",textAlign:"center"}},Ha.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,lineHeight:1.2,color:p(f.tone)}},f.value),Ha.default.createElement("div",{style:{fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.04em",color:d.textMuted,whiteSpace:"nowrap"}},f.label)))),a&&Ha.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px",fontSize:"12px",color:d.textMuted}},a),s&&Ha.default.createElement("div",{style:{opacity:u?1:0,transition:"opacity 0.15s ease"}},s))}function mT(e){return e==null?"muted":e>=.85?"good":e>=.7?"warn":"bad"}var Vr=Z(J());var Fo={chevronRight:">",chevronDown:"v",chevronUp:"^",arrow:"->",arrowLeft:"<-",pipe:"|",corner:"+",branch:"|-",success:"[+]",error:"[!]",warning:"[?]",info:"[i]",pending:"[ ]",active:"[*]",add:"+",remove:"-",edit:"*",view:"@",run:">",stop:"x",refresh:"~",trace:"->",span:"|",metric:"#",log:">",agent:"@",action:"#",time:":",cost:"$",tokens:"T",memory:"M",nav:{agents:"@",newAgent:"+",demo:">",traces:"->",metrics:"#",evaluations:"=",interactions:"<>",benchmarks:"%%",replay:"[>]",tools:"[]",mcp:"{}",docs:"?",github:"*"},spans:{root:">",prompt:"*",generate:"|>",llm:">>",thinking:"..",tool:"[]",response:"<|"}};var Pt={mono:"'SF Mono', 'Fira Code', 'Consolas', monospace",sizes:{xs:"10px",sm:"11px",base:"13px",md:"14px",lg:"16px",xl:"20px",xxl:"24px"},weights:{normal:400,medium:500,semibold:600,bold:700}};var U="var(--font-mono)",eu=e=>e>=1?"success":e>=.7?"warning":"error",Dn={success:{strong:"var(--color-success)",soft:"var(--color-success-soft)",text:"var(--color-success-text)"},warning:{strong:"var(--color-warning)",soft:"var(--color-warning-soft)",text:"var(--color-warning-text)"},error:{strong:"var(--color-error)",soft:"var(--color-error-soft)",text:"var(--color-error-text)"},info:{strong:"var(--color-info)",soft:"var(--color-info-soft)",text:"var(--color-info-text)"},muted:{strong:"var(--color-text-muted)",soft:"var(--color-muted)",text:"var(--color-text-secondary)"},accent:{strong:"var(--color-accent-ui)",soft:"var(--color-accent-ui-tint)",text:"var(--color-accent-ui)"},system:{strong:"var(--color-system)",soft:"var(--color-system-soft)",text:"var(--color-system-text)"},dev:{strong:"var(--color-dev)",soft:"var(--color-dev-soft)",text:"var(--color-dev-text)"}},voe={active:"success",complete:"success",completed:"success",ready:"success",passed:"success",draft:"warning",pending:"warning",queued:"warning",waiting:"warning",running:"info",in_progress:"info",failed:"error",error:"error",expired:"error",archived:"muted",cancelled:"muted",canceled:"muted",skipped:"muted"},al=e=>voe[String(e||"").toLowerCase()]||"muted",xoe={user:{tone:"info",label:"User"},assistant:{tone:"accent",label:"Assistant"},tool:{tone:"warning",label:"Tool"},system:{tone:"system",label:"System"},developer:{tone:"dev",label:"Dev"}},k6=e=>xoe[e]||{tone:"muted",label:e},nv={object:"=",sample:"~",pass:Fo.success,fault:Fo.error,info:Fo.info,on:"[x]",off:"[ ]",link:Fo.arrow,chevron:Fo.chevronRight};function wa({kind:e="pass",open:t=!1,color:r,size:n=12,weight:o=700,style:a,title:i}){return e==="chevron"?Vr.default.createElement("span",{className:"aa-chevron","data-open":t?"true":"false",title:i,style:{fontFamily:U,fontSize:n,color:r||"var(--color-text-muted)",flexShrink:0,...a}},nv.chevron):Vr.default.createElement("span",{title:i,style:{fontFamily:U,fontSize:n,fontWeight:o,color:r||(e==="fault"?"var(--color-error)":e==="info"?"var(--color-info)":e==="pass"?"var(--color-success)":"var(--color-text-muted)"),flexShrink:0,...a}},nv[e]||e)}function ke({tone:e="muted",size:t=11,children:r,title:n,style:o,testId:a}){let i=Dn[e]||Dn.muted;return Vr.default.createElement("span",{"data-testid":a,title:n,style:{display:"inline-flex",alignItems:"center",padding:"2px 7px",borderRadius:4,fontFamily:U,fontSize:t,fontWeight:600,whiteSpace:"nowrap",background:i.soft,color:i.text,...o}},r)}function Ue({children:e,size:t=11,color:r="var(--color-text-secondary)",spacing:n="0.06em",style:o,as:a="span",htmlFor:i}){return Vr.default.createElement(a,{htmlFor:i,style:{fontFamily:U,fontSize:t,fontWeight:600,letterSpacing:n,textTransform:"uppercase",color:r,...o}},e)}function jn({selected:e=!1,onClick:t,children:r,square:n=!1,mono:o=!1,disabled:a=!1,title:i,style:s,testId:l}){return Vr.default.createElement("button",{type:"button","data-testid":l,onClick:a?void 0:t,disabled:a,"aria-disabled":a||void 0,title:i,style:{padding:"4px 10px",borderRadius:n?6:999,cursor:t&&!a?"pointer":"default",fontFamily:o?U:"inherit",fontSize:o?11:12,fontWeight:o?400:500,background:e?"var(--color-accent-ui-tint)":"var(--color-card)",border:`1px solid ${e?"var(--color-accent-ui)":"var(--color-border)"}`,color:e?"var(--color-accent-ui)":o?"var(--color-text-muted)":"var(--color-text-cell)",opacity:a?.5:void 0,...s}},r)}function qi({options:e,value:t,onChange:r,style:n}){return Vr.default.createElement("div",{style:{display:"flex",gap:4,...n},role:"group"},e.map(o=>{let a=o.value===t;return Vr.default.createElement("button",{key:o.value,type:"button",onClick:()=>r(o.value),"aria-pressed":a,style:{padding:"6px 12px",borderRadius:8,cursor:"pointer",fontSize:13,fontWeight:500,background:"var(--color-card)",border:`1px solid ${a?"var(--color-accent-ui)":"var(--color-border)"}`,color:a?"var(--color-accent-ui)":"var(--color-text-cell)"}},o.label)}))}function ce({variant:e="secondary",size:t="md",children:r,onClick:n,disabled:o=!1,title:a,type:i="button",style:s,testId:l}){let c={padding:t==="sm"?"6px 12px":"8px 14px",borderRadius:8,cursor:o?"not-allowed":"pointer",fontSize:13,fontWeight:500,opacity:o?.5:1,whiteSpace:"nowrap",fontFamily:"inherit"},d={primary:{background:"var(--color-accent-ui)",color:"var(--color-on-accent)",border:"1px solid transparent"},secondary:{background:"transparent",color:"var(--color-text-cell)",border:"1px solid var(--color-border-strong)"},danger:{background:"transparent",color:"var(--color-error)",border:"1px solid transparent"},ghost:{background:"transparent",color:"var(--color-text-secondary)",border:"1px solid transparent"}};return Vr.default.createElement("button",{type:i,"data-testid":l,onClick:n,disabled:o,title:a,style:{...c,...d[e]||d.secondary,...s}},r)}function je({children:e,padding:t=20,style:r,className:n,testId:o,...a}){return Vr.default.createElement("div",{"data-testid":o,className:n,style:{background:"var(--color-card)",border:"1px solid var(--color-border)",borderRadius:12,padding:t,...r},...a},e)}function Am({label:e,value:t,sub:r,valueColor:n,valueSize:o=32,testId:a}){return Vr.default.createElement(je,{testId:a},Vr.default.createElement(Ue,{size:11,spacing:"0.05em"},e),Vr.default.createElement("div",{style:{marginTop:8,fontFamily:U,fontSize:o,fontWeight:700,lineHeight:1.1,color:n||"var(--color-text-primary)"}},t),r!=null&&Vr.default.createElement("div",{style:{marginTop:8,fontSize:13,color:"var(--color-text-secondary)"}},r))}function Zr({title:e,meta:t,children:r,style:n,testId:o,bodyStyle:a}){return Vr.default.createElement("div",{"data-testid":o,style:{border:"1px solid var(--color-border-light)",borderRadius:10,overflow:"hidden",minWidth:0,...n}},(e||t)&&Vr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",background:"var(--color-muted)"}},e&&Vr.default.createElement(Ue,null,e),t&&Vr.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},t)),Vr.default.createElement("div",{style:a},r))}function tu({passed:e,total:t,label:r,labelWidth:n=128,width:o,height:a=6,color:i,valueWidth:s=38,style:l}){let u=t?e/t:0,c=i||Dn[eu(u)].strong;return Vr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,...l}},r!=null&&Vr.default.createElement("span",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)",width:n,flexShrink:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:r},r),Vr.default.createElement("span",{style:{flex:o?void 0:1,width:o,height:a,borderRadius:999,background:"var(--color-muted)",overflow:"hidden",flexShrink:0}},Vr.default.createElement("span",{style:{display:"block",width:`${Math.round(u*100)}%`,height:"100%",borderRadius:999,background:c}})),Vr.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:600,width:s,textAlign:"right",color:c}},e,"/",t))}function Z1({parts:e=[],total:t=0,height:r=4,radius:n=2,style:o,testId:a,title:i,...s}){return Vr.default.createElement("div",{"data-testid":a,title:i,style:{display:"flex",height:r,borderRadius:n,overflow:"hidden",background:"var(--color-border-light)",...o},...s},e.map((l,u)=>Vr.default.createElement("span",{key:u,style:{width:`${t>0?100*(Number(l.value)||0)/t:0}%`,background:(Dn[l.tone]||Dn.muted).strong,transition:"width 300ms"}})))}function Gr({children:e,onClick:t,href:r="#",color:n="var(--color-info)",size:o=11,style:a,title:i,testId:s}){return Vr.default.createElement("a",{href:r,"data-testid":s,title:i,onClick:l=>{t&&(l.preventDefault(),t(l))},style:{fontFamily:U,fontSize:o,color:n,textDecoration:"none",...a}},e," ",nv.link)}function Jr({children:e,style:t}){return Vr.default.createElement("div",{style:{padding:"20px 12px",fontFamily:U,fontSize:11,color:"var(--color-text-muted)",textAlign:"center",...t}},e)}var il="~ estimated from tokens \xD7 model rates",J1=e=>e!=null&&e!==""&&Number.isFinite(Number(e)),A6=e=>Math.sign(e)*Math.round(Number(Math.abs(e).toFixed(9))),Ts=e=>J1(e)?`${A6(Number(e)*100)}%`:"\u2014",Vn=(e,t)=>{let r=Number(t)||0;if(r<=0)return"\u2014";let n=Number(e)||0;return`${n}/${r} \xB7 ${A6(n*100/r)}%`},aa=e=>Ts(e),Q1=e=>`pass \u2265 ${Ts(e)}`,Pr=(e,{estimated:t=!1}={})=>{if(!J1(e))return"\u2014";let r=Number(e),n=r===0?2:Math.abs(r)<.001?6:4;return`${t?"~":""}$${r.toFixed(n)}`},_6=e=>Math.round(Number(e)||0).toLocaleString("en-US"),C6=e=>{let[t,r=""]=String(Number(Number(e).toFixed(4))).split(".");return`$${t}.${r.padEnd(2,"0")}/M`},boe=["pattern","default"],Em=({inputTokens:e,outputTokens:t,rate:r}={})=>{if(!r||!J1(r.input)||!J1(r.output))return"estimated from tokens \xD7 model rates";let n=r.source||"catalog";return`estimated: ${_6(e)} in \xD7 ${C6(r.input)} + ${_6(t)} out \xD7 ${C6(r.output)} \xB7 ${n} rate${boe.includes(n)?" (fallback rate)":""}`};var woe=[{value:"recent",label:"Recently updated"},{value:"popular",label:"Most runs"},{value:"longest",label:"Longest average"},{value:"cost",label:"Highest cost"},{value:"tokens",label:"Most tokens"}];function gT({agents:e,meta:t,onSelect:r,onNew:n,onBrowseTemplates:o,onDuplicate:a,onDelete:i,onRefresh:s,sort:l="recent",onSortChange:u,isLoading:c}){let[d,p]=(0,ft.useState)(""),[f,m]=(0,ft.useState)(""),[y,b]=(0,ft.useState)(""),g=e.filter(w=>{let _=!d||w.name.toLowerCase().includes(d.toLowerCase())||w.description?.toLowerCase().includes(d.toLowerCase()),A=!f||w.provider===f,C=!y||w.status===y;return _&&A&&C}),h=w=>{let _=new Date(w),C=new Date-_,N=Math.floor(C/(1e3*60*60*24));return N===0?"Today":N===1?"Yesterday":N<7?`${N} days ago`:_.toLocaleDateString()},v=w=>w==null?"\u2014":w<1e3?`${Math.round(w)}ms`:`${(w/1e3).toFixed(1)}s`,x=w=>w==null?"\u2014":w>=1e6?`${(w/1e6).toFixed(1)}M`:w>=1e3?`${(w/1e3).toFixed(1)}k`:`${w}`,S=w=>w==null?"\u2014":w>0&&w<.01?"<$0.01":`$${w.toFixed(2)}`,k=w=>{if(!w)return"\u2014";let _=Math.floor((new Date-new Date(w))/(1e3*60*60*24));return _<=0?"Today":_<30?`${_}d ago`:new Date(w).toLocaleDateString()};return ft.default.createElement("div",{className:"space-y-6"},ft.default.createElement("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4"},ft.default.createElement("div",{className:"flex-1 flex items-center space-x-4"},ft.default.createElement("div",{className:"relative flex-1 max-w-md"},ft.default.createElement("input",{type:"text",placeholder:"Search agents...",value:d,onChange:w=>p(w.target.value),className:"w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"}),ft.default.createElement("svg",{className:"absolute left-3 top-2.5 h-5 w-5 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"}))),ft.default.createElement("select",{value:f,onChange:w=>m(w.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},ft.default.createElement("option",{value:""},"All Providers"),t.providers?.map(w=>ft.default.createElement("option",{key:w,value:w},w.charAt(0).toUpperCase()+w.slice(1)))),ft.default.createElement("select",{value:y,onChange:w=>b(w.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},ft.default.createElement("option",{value:""},"All Status"),ft.default.createElement("option",{value:"active"},"Active"),ft.default.createElement("option",{value:"draft"},"Draft"),ft.default.createElement("option",{value:"archived"},"Archived")),ft.default.createElement("select",{value:l,onChange:w=>u?.(w.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500",title:"Rank agents by their scorecard"},woe.map(w=>ft.default.createElement("option",{key:w.value,value:w.value},w.label)))),ft.default.createElement("div",{className:"flex items-center space-x-3"},ft.default.createElement("button",{onClick:s,disabled:c,className:"p-2 text-gray-500 hover:text-gray-700 hover:bg-gray-100 rounded-lg transition-colors"},ft.default.createElement("svg",{className:`h-5 w-5 ${c?"animate-spin":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"}))),ft.default.createElement("button",{onClick:o,className:"flex items-center space-x-2 px-4 py-2 border border-gray-300 text-gray-700 rounded-lg hover:bg-gray-50 transition-colors"},ft.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"})),ft.default.createElement("span",null,"Browse Templates")),ft.default.createElement("button",{onClick:n,className:"flex items-center space-x-2 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors"},ft.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})),ft.default.createElement("span",null,"New Agent")))),g.length>0?ft.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6"},g.map(w=>{let _=w.stats||{},A=_.run_sources||[],C=A.length?`Counted from ${A.map(N=>N==="platform"?"dashboard runs":"reported telemetry").join(" + ")}`:void 0;return ft.default.createElement(Cm,{key:w.id,name:w.name,subtitle:w.description||"No description",badge:ft.default.createElement(ke,{tone:al(w.status)},w.status),onClick:()=>r(w),stats:[{label:`Runs ${_.window_days||30}d`,value:_.runs??0,title:C},{label:"Success",value:_.success_rate!=null?`${Math.round(_.success_rate)}%`:"\u2014",tone:mT(_.success_rate!=null?_.success_rate/100:null)},{label:"Avg time",value:v(_.avg_duration_ms)},{label:"Eval",title:_.eval_samples_evaluated?`${Vn(_.eval_samples_passed,_.eval_samples_evaluated)} passed over ${_.eval_runs??"the"} current evaluation${_.eval_runs===1?"":"s"}${_.eval_not_counted?` \xB7 ${_.eval_not_counted} stale or archived not counted`:""}`:_.eval_not_counted?`${_.eval_not_counted} evaluation${_.eval_not_counted===1?"":"s"} stale or archived, none counted`:"No evaluation counted yet",value:Ts(_.eval_score),tone:mT(_.eval_score)},{label:"Tokens",value:x(_.tokens)},{label:"Cost",value:S(_.cost),title:"Estimated from token counts at each model's published rates",tone:_.cost==null?"muted":void 0}],footer:ft.default.createElement(ft.default.Fragment,null,ft.default.createElement("span",{style:{display:"flex",alignItems:"center",gap:"6px",minWidth:0}},ft.default.createElement(ke,{tone:"muted",style:{flexShrink:0}},w.provider),ft.default.createElement("span",{title:w.model,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},w.model)),ft.default.createElement("span",{style:{whiteSpace:"nowrap"},title:`Updated ${h(w.updatedAt||w.updated_at)}`},_.last_run_at?`Last run ${k(_.last_run_at)}`:`Updated ${h(w.updatedAt||w.updated_at)}`)),actions:ft.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"13px"}},ft.default.createElement("button",{onClick:N=>{N.stopPropagation(),a(w.id)},className:"text-gray-500 hover:text-red-600 transition-colors"},"Duplicate"),ft.default.createElement("button",{onClick:N=>{N.stopPropagation(),i(w.id)},className:"text-red-500 hover:text-red-700 transition-colors"},"Delete"))})})):ft.default.createElement("div",{className:"text-center py-16"},ft.default.createElement("div",{className:"inline-block mb-4"},ft.default.createElement(In,{size:100})),ft.default.createElement("h3",{className:"text-lg font-medium text-gray-900 mb-2"},e.length===0?"No agents yet":"No matching agents"),ft.default.createElement("p",{className:"text-gray-500 mb-6"},e.length===0?"Create your first AI agent to get started":"Try adjusting your search or filters"),e.length===0&&ft.default.createElement("div",{className:"flex items-center justify-center space-x-4"},ft.default.createElement("button",{onClick:o,className:"inline-flex items-center space-x-2 px-6 py-3 border-2 border-red-500 text-red-600 rounded-lg hover:bg-red-50 transition-colors"},ft.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"})),ft.default.createElement("span",null,"Browse Templates")),ft.default.createElement("span",{className:"text-gray-400"},"or"),ft.default.createElement("button",{onClick:n,className:"inline-flex items-center space-x-2 px-6 py-3 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors"},ft.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})),ft.default.createElement("span",null,"Create From Scratch")))))}var ye=Z(J());function E6(e,{ttlMs:t,keep:r=()=>!0,now:n=Date.now}){let o=new Map,a=i=>{let s=o.get(i);if(s&&(s.expiresAt===null||n()(o.get(i)===l&&(r(u)?l.expiresAt=n()+t:o.delete(i)),u),u=>{throw o.get(i)===l&&o.delete(i),u}),o.set(i,l),l.promise};return a.clear=()=>o.clear(),a}var Nm={openai:["gpt-5.1","gpt-5","gpt-5-mini","gpt-5-nano"],anthropic:["claude-opus-5","claude-fable-5","claude-sonnet-5","claude-opus-4-8","claude-haiku-4-5"],ollama:["qwen3:8b","llama3.2","mistral","gemma3"],openrouter:["anthropic/claude-sonnet-4.5","openai/gpt-5.1","meta-llama/llama-3.3-70b-instruct"]},R1=Object.keys(Nm),Soe=300*1e3,N6=E6(koe,{ttlMs:Soe,keep:e=>e!==null});async function T6(e){return await N6(e)??(Nm[e]||[])}function hT(){N6.clear()}async function koe(e){try{let t=await fetch(`/api/provider_models?provider=${encodeURIComponent(e)}`);if(t.ok){let r=await t.json();if(Array.isArray(r.models)&&r.models.length>0)return r.models}}catch{}return null}var ew=Z(J());function bc(e){let[t,r]=(0,ew.useState)(Nm),n=e.join(",");return(0,ew.useEffect)(()=>{let o=!1;return e.forEach(a=>{T6(a).then(i=>{o||i.length===0||r(s=>({...s,[a]:i}))})}),()=>{o=!0}},[n]),t}var wc=Z(J());function ru({value:e,models:t=[],onChange:r,className:n,style:o,placeholder:a="Type to search models",inputRef:i,...s}){let l=(0,wc.useId)();return wc.default.createElement(wc.default.Fragment,null,wc.default.createElement("input",{...s,ref:i,type:"text",list:l,value:e||"",onChange:u=>r(u.target.value,u),placeholder:a,autoComplete:"off",spellCheck:!1,className:n,style:o}),wc.default.createElement("datalist",{id:l},t.filter(Boolean).map(u=>wc.default.createElement("option",{key:u,value:u}))))}var _oe=["agent_defined","dashboard","mcp"],yT={agent_defined:"Agent-defined",dashboard:"Dashboard",mcp:"MCP"},Coe={agent_defined:"the host's schema tools, and what the agent class declares",dashboard:"built into the dashboard",mcp:"offered by the services above"},rw=[{value:"24h",label:"24h",hours:24},{value:"7d",label:"7d",hours:168},{value:"30d",label:"30d",hours:720}],vT=e=>{if(e==null||Number.isNaN(Number(e)))return"\u2014";let t=Number(e);return t>=1e3?`${(t/1e3).toFixed(1)}s`:`${Math.round(t)}ms`},ov=(e,t=Date.now())=>{if(!e)return"never";let r=new Date(e).getTime();if(Number.isNaN(r))return"never";let n=Math.floor((t-r)/6e4);if(n<1)return"just now";if(n<60)return`${n}m ago`;let o=Math.floor(n/60);return o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`},Aoe="sandbox:",Zd=e=>!!(e&&(e.runtime===!0||String(e.key||"").startsWith(Aoe))),av=e=>Zd(e)&&!e.known,nw=e=>!!e&&!e.known&&!Zd(e);function O6(e){return av(e)?"this sandbox is no longer running, so it offers no tools \u2014 switch it off, and start a new sandbox from Settings \u2192 Integrations to enable its runtime":Zd(e)?"tools are listed by the running app each time the agent runs":"no tools recorded for this service yet"}var Tm=e=>{if(typeof e=="string")return e.trim()||null;if(!e||typeof e!="object")return null;let t=e.key||e.name;return t&&String(t).trim()||null};function tw(e,t=[]){let r=new Map;(t||[]).forEach(o=>{let a=Tm(o);a&&r.set(a,o)});let n={};return(e.services||[]).forEach(o=>{let a=r.get(o.key),i=a&&typeof a=="object"&&Array.isArray(a.tools)?a.tools.map(s=>String(s&&s.name?s.name:s)):null;n[o.key]={on:r.has(o.key),tools:Object.fromEntries((o.tools||[]).map(s=>[s.name,i===null||i.includes(s.name)]))}}),n}var P6=e=>{let t=String(e||"").trim().toLowerCase();return(...r)=>!t||r.some(n=>String(n||"").toLowerCase().includes(t))};function M6(e,t,{query:r="",filter:n=null}={}){let o=P6(r);return(e.services||[]).filter(a=>n?n==="enabled"?t[a.key]?.on:a.status===n:!0).filter(a=>o(a.name,a.description)||(a.tools||[]).some(i=>o(i.name))).map(a=>{let i=t[a.key]||{on:!1,tools:{}},s=a.tools||[],l=s.map(c=>({...c,on:!!i.tools[c.name]})),u=l.filter(c=>c.on);return{...a,on:i.on,tools:l,offeredCount:s.length,enabledCount:u.length,toolsLabel:`${u.length}/${s.length}`,partial:i.on&&u.length{let o=t[n.key];!o||!o.on||(n.tools||[]).forEach(a=>{o.tools[a.name]&&r.push({...a,key:`${n.key}:${a.name}`,source:"mcp",editable:!1,enabled:!0,server:n.name,serverKey:n.key})})}),r}function I6(e,t,r=[]){let n=new Set((r||[]).map(String));return(e.tools||[]).map(o=>({...o,on:o.editable?n.has(o.key):o.enabled!==!1})).concat(Eoe(e,t).map(o=>({...o,on:!0})))}function D6(e,t,r,{query:n="",source:o=null,enabledOnly:a=!1}={}){let i=P6(n),s=I6(e,t,r),l=s.filter(u=>!o||u.source===o).filter(u=>!a||u.on).filter(u=>i(u.name,u.description));return _oe.map(u=>{let c=s.filter(f=>f.source===u),d=c.some(f=>f.editable),p=c.filter(f=>f.on).length;return{source:u,name:yT[u],meta:`${Coe[u]} \xB7 ${c.length} ${c.length===1?"tool":"tools"}`,countLabel:d?`${p}/${c.length} on`:`${c.length} offered`,editable:d,total:c.length,enabledCount:p,keys:c.map(f=>f.key),rows:l.filter(f=>f.source===u)}}).filter(u=>u.total>0)}function j6(e,t,r,{range:n="7d"}={}){let o=I6(e,t,r),a=e.usage_available!==!1,i=e.services||[],s=i.filter(f=>t[f.key]?.on),l=o.filter(f=>f.source!=="mcp"&&f.on),u=o.filter(f=>f.source==="mcp"),c=o.reduce((f,m)=>f+(m.calls||0),0),d=o.reduce((f,m)=>f+(m.errors||0),0),p=o.filter(f=>f.on&&!f.calls).length;return[{key:"tools",label:"Tools enabled",value:String(l.length+u.length),sub:`${l.length} direct \xB7 ${u.length} offered through MCP`},{key:"services",label:"MCP services",value:`${s.length}/${i.length}`,sub:s.length?`on for this agent: ${s.map(f=>f.name).join(", ")}`:"none enabled for this agent"},{key:"calls",label:"Tool calls",value:a?String(c):"\u2014",sub:a?`${d} error${d===1?"":"s"} in the last ${n} \xB7 traced`:"no calls recorded in this window yet"},{key:"unused",label:"Never called",value:a?String(p):"\u2014",sub:"enabled but unused in this window",tone:a&&p>6?"warning":null}]}function $6(e){return e?.on&&Array.isArray(e.approval_names)?e.approval_names.map(String):[]}function xT(e,t=[]){let r=$6(e);if(r.length===0)return null;let n=new Set((t||[]).map(String)),o=r.filter(a=>n.has(a)).length;return o===0?"off":o===r.length?"on":"partial"}function bT(e=[],t=[],r=!0){let n=(e||[]).map(String);return r?n.concat(t.filter(o=>!n.includes(o))):n.filter(o=>!t.includes(o))}function L6(e=[],t,r=[]){let n=(e||[]).map(String),o=xT(t,n);if(!o)return n;let a=new Set(bT(n,$6(t),o==="off")),i=(r||[]).map(String),s=new Set(i);return a.size===s.size&&[...a].every(u=>s.has(u))?i:[...a]}function z6(e,t,r){let n=tw(e,t.mcpServers),o=tw(e,r.mcpServers),a=0;Object.keys(n).forEach(d=>{n[d].on!==o[d].on&&(a+=1),Object.keys(n[d].tools).forEach(p=>{n[d].tools[p]!==o[d].tools[p]&&(a+=1)})});let i=new Set((t.tools||[]).map(String)),s=new Set((r.tools||[]).map(String));(e.tools||[]).forEach(d=>{d.editable&&i.has(d.key)!==s.has(d.key)&&(a+=1)});let l=new Set((t.approvalRequiredTools||[]).map(String)),u=new Set((r.approvalRequiredTools||[]).map(String));return(e.tools||[]).concat((e.services||[]).flatMap(d=>d.tools||[])).forEach(d=>{(d.approval_names||[]).some(p=>l.has(p)!==u.has(p))&&(a+=1)}),a}function B6(e,t,r=[]){let n=new Map;(r||[]).forEach(i=>{let s=Tm(i);s&&n.set(s,i)});let o=[];(e.services||[]).forEach(i=>{let s=t[i.key];if(!s||!s.on)return;let l=(i.tools||[]).map(f=>f.name),u=l.filter(f=>s.tools[f]),c=n.get(i.key),d=l.length>0&&u.lengthi.key));return(r||[]).forEach(i=>{let s=Tm(i);s&&!a.has(s)&&o.push(i)}),o}function F6(e,t=[]){let r=new Set((e.tools||[]).filter(a=>a.editable).map(a=>a.key)),n=(t||[]).map(String).filter(a=>!r.has(a)),o=(e.tools||[]).filter(a=>a.editable&&t.includes(a.key)).map(a=>a.key);return n.concat(o)}function wT(e){return(e?.tools||[]).filter(t=>t.editable&&t.implemented!==!1)}var Noe=["terminal","filesystem","edit","database"],ow=(e=[])=>e.some(t=>Noe.includes(t)),Toe={terminal:["run_command"],filesystem:["write_file"],edit:["edit_file"],slack:["slack_post_message"]},Om=(e=[])=>[...new Set(e.flatMap(t=>Toe[t]||[]))];function U6(e){let t=e?.services||[],r=(n,o)=>(o.workspace_agents||0)-(n.workspace_agents||0)||String(n.name).localeCompare(String(o.name));return{callable:t.filter(n=>n.callable).sort(r),unavailable:t.filter(n=>!n.callable)}}function ST(e,t=[]){if(!e)return[...t];let r=new Set(wT(e).map(n=>n.key));return t.filter(n=>r.has(n))}var kT=(e=[],t)=>e.some(r=>Tm(r)===t);function W6(e=[],t){return kT(e,t.key)?e.filter(r=>Tm(r)!==t.key):[...e,{key:t.key,name:t.name}]}function H6(e){let t=e.workspace_agents||0;return t?`${t} agent${t===1?"":"s"}`:null}var aw=[{id:"basics",label:"Basics",icon:"1"},{id:"configure",label:"Configure",icon:"2"},{id:"review",label:"Review",icon:"3"}],iv={...rv,agents:{emoji:"\u{1F91D}",label:"Delegate to agents"},ask:{emoji:"\u{1F64B}",label:"Ask the user"}},Ooe=["name","slug","description","provider","model"];function _T({meta:e,onSave:t,onCancel:r,isLoading:n,initialDraft:o=null}){let[a,i]=(0,ye.useState)(0),[s,l]=(0,ye.useState)({name:"",description:"",provider:"openai",model:Nm.openai[0],instructions:"",preset_type:"terminal",instruction_sets:["github"],tools:["terminal","code"],mcp_servers:[],model_config:{temperature:.7},...o?{name:o.name,description:o.description||"",instructions:o.instructions,provider:o.provider,model:o.model,tools:o.tools||[],instruction_sets:[],mcp_servers:o.mcp_servers||[]}:{}}),u=bc([s.provider]),c=(0,ye.useMemo)(()=>{let w=o?.model&&o.provider;return!w||!u[w]?u:{...u,[w]:[...new Set([o.model,...u[w]])]}},[u]),d=c[s.provider];(0,ye.useEffect)(()=>{d?.length&&l(w=>d.includes(w.model)?w:{...w,model:d[0]})},[d]);let[p,f]=(0,ye.useState)(null),[m,y]=(0,ye.useState)(null);(0,ye.useEffect)(()=>{fetch("/api/agents/tool_roster").then(w=>{if(!w.ok)throw new Error(`HTTP ${w.status}`);return w.json()}).then(w=>{f(w),l(_=>({..._,tools:ST(w,_.tools)}))}).catch(w=>y(w.message))},[]);let[b,g]=(0,ye.useState)(null),h=(w,_)=>{l(A=>({...A,[w]:_}))},v=(w,_)=>{l(A=>{let C=A[w]||[],N=C.includes(_)?C.filter(L=>L!==_):[...C,_];return{...A,[w]:N}})},x=w=>{if(h("preset_type",w),_m[w]){let _=_m[w];h("instruction_sets",[..._.instructions]),h("tools",ST(p,_.tools))}},S=()=>{switch(a){case 0:return s.name.trim().length>=2;case 1:return!0;case 2:return!0;default:return!1}},k=async()=>{g(null);let w=await t({...s,approval_required_tools:Om(s.tools)});w&&(g(w),Object.keys(w.fieldErrors||{}).some(_=>Ooe.includes(_))&&i(0))};return ye.default.createElement("div",{className:"max-w-4xl mx-auto"},o&&ye.default.createElement("div",{className:"mb-4 p-4 rounded-lg border border-red-200 bg-red-50 text-sm text-gray-700"},"Prepared by your workspace assistant. Review the instructions, model, and tools before creating this agent."),ye.default.createElement("div",{className:"mb-8"},ye.default.createElement("div",{className:"flex items-center justify-between"},aw.map((w,_)=>ye.default.createElement("div",{key:w.id,className:"flex items-center"},ye.default.createElement("div",{className:`flex items-center justify-center w-10 h-10 rounded-full border-2 transition-colors ${_ye.default.createElement("li",{key:w},w)))),ye.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-8"},a===0&&ye.default.createElement(Poe,{formData:s,updateField:h,providerModels:c,fieldErrors:b?.fieldErrors||{}}),a===1&&ye.default.createElement(Moe,{formData:s,meta:e,roster:p,rosterError:m,toggleArrayItem:v,updateField:h,selectPreset:x}),a===2&&ye.default.createElement(Ioe,{formData:s,roster:p})),ye.default.createElement("div",{className:"flex justify-between mt-6"},ye.default.createElement("button",{onClick:a===0?r:()=>i(a-1),className:"px-6 py-2 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50 transition-colors"},a===0?"Cancel":"Back"),ye.default.createElement("button",{onClick:a===aw.length-1?k:()=>i(a+1),disabled:!S()||n,className:`px-6 py-2 rounded-lg transition-colors ${S()&&!n?"bg-red-500 text-white hover:bg-red-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},a===aw.length-1?"Create Agent":"Continue")))}function iw({messages:e}){return e.length?ye.default.createElement("p",{className:"mt-1 text-sm text-red-600"},e.join(". ")):null}function Poe({formData:e,updateField:t,providerModels:r,fieldErrors:n}){let o=(...a)=>a.flatMap(i=>n[i]||[]);return ye.default.createElement("div",{className:"space-y-6"},ye.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Basic Information"),ye.default.createElement("p",{className:"text-gray-500"},"Give your agent a name and configure its AI provider."),ye.default.createElement("div",{className:"space-y-4"},ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Agent Name *"),ye.default.createElement("input",{type:"text",value:e.name,onChange:a=>t("name",a.target.value),placeholder:"My Awesome Agent",className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"}),ye.default.createElement(iw,{messages:o("name","slug")})),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Description"),ye.default.createElement("textarea",{value:e.description,onChange:a=>t("description",a.target.value),placeholder:"What does this agent do?",rows:3,className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"}),ye.default.createElement(iw,{messages:o("description")})),ye.default.createElement("div",{className:"grid grid-cols-2 gap-4"},ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Provider"),ye.default.createElement("select",{value:e.provider,onChange:a=>{t("provider",a.target.value),t("model",r[a.target.value][0])},className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},Object.keys(r).map(a=>ye.default.createElement("option",{key:a,value:a},a.charAt(0).toUpperCase()+a.slice(1)))),ye.default.createElement(iw,{messages:o("provider")})),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Model"),ye.default.createElement(ru,{value:e.model,models:r[e.provider],onChange:a=>t("model",a),className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"}),ye.default.createElement(iw,{messages:o("model")}))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Temperature: ",e.model_config.temperature),ye.default.createElement("input",{type:"range",min:"0",max:"1",step:"0.1",value:e.model_config.temperature,onChange:a=>t("model_config",{...e.model_config,temperature:parseFloat(a.target.value)}),className:"w-full accent-red-500"}),ye.default.createElement("div",{className:"flex justify-between text-xs text-gray-400"},ye.default.createElement("span",null,"Precise"),ye.default.createElement("span",null,"Creative")))))}function Moe({formData:e,meta:t,roster:r,rosterError:n,toggleArrayItem:o,updateField:a,selectPreset:i}){let s=Object.keys(_m),l=Object.keys(Xd),u=wT(r),{callable:c,unavailable:d}=U6(r);return ye.default.createElement("div",{className:"space-y-6"},ye.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Configure Agent"),ye.default.createElement("p",{className:"text-gray-500"},"Choose a preset or customize instructions and tools."),ye.default.createElement("div",{className:"flex justify-center py-6 bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl"},ye.default.createElement("div",{className:"flex flex-col items-center"},ye.default.createElement("div",{className:"flex gap-2 mb-2"},e.instruction_sets.map(p=>{let f=Xd[p];return f?ye.default.createElement("span",{key:p,className:"text-lg",title:f.label},f.emoji):null})),ye.default.createElement(In,{size:120}),ye.default.createElement("div",{className:"flex gap-2 mt-2"},e.tools.map(p=>{let f=rv[p];return f?ye.default.createElement("span",{key:p,className:"text-lg",title:f.label},f.emoji):null})))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},"Quick Presets"),ye.default.createElement("div",{className:"flex flex-wrap gap-2"},s.map(p=>ye.default.createElement("button",{key:p,onClick:()=>i(p),className:`px-4 py-2 rounded-lg border-2 text-sm transition-all ${e.preset_type===p?"border-red-500 bg-red-50 text-red-700":"border-gray-200 hover:border-gray-300 text-gray-600"}`},ye.default.createElement("span",{className:"capitalize"},p.replace(/([A-Z])/g," $1").trim()))))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},ye.default.createElement("strong",null,"Instructions"),ye.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"System/developer messages")),ye.default.createElement("div",{className:"flex flex-wrap gap-2"},l.map(p=>{let f=Xd[p];return ye.default.createElement("button",{key:p,onClick:()=>o("instruction_sets",p),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-sm transition-colors ${e.instruction_sets.includes(p)?"bg-red-500 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`},ye.default.createElement("span",null,f.emoji),ye.default.createElement("span",null,f.label))}))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},ye.default.createElement("strong",null,"Tools"),ye.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"Functions the model can call")),n&&ye.default.createElement("p",{className:"text-sm text-red-600"},"Could not load the tools this workspace offers: ",n),!r&&!n&&ye.default.createElement("p",{className:"text-sm text-gray-400"},"Loading tools\u2026"),ye.default.createElement("div",{className:"flex flex-wrap gap-2","data-testid":"builder-tools"},u.map(p=>ye.default.createElement(q6,{key:p.key,testId:`builder-tool-${p.key}`,on:e.tools.includes(p.key),onClick:()=>o("tools",p.key),emoji:iv[p.key]?.emoji||"\u{1F9F1}",label:iv[p.key]?.label||p.name,title:p.description||p.name}))),ow(e.tools)&&ye.default.createElement("p",{className:"mt-2 text-xs text-gray-500","data-testid":"builder-checkout-hint"},"Terminal, Filesystem, Edit and Database act in a repository checkout: choose one under Checkout when you run the agent.")),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},ye.default.createElement("strong",null,"MCP servers"),ye.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"Every tool the server serves is offered")),r&&c.length===0&&ye.default.createElement("p",{className:"text-sm text-gray-500"},"No MCP server this workspace can call yet. Register one with its URL in ",ye.default.createElement("code",null,"ActionAgent.mcp_catalog"),", or boot a project's checkout to offer its app runtime."),ye.default.createElement("div",{className:"flex flex-wrap gap-2","data-testid":"builder-mcp-servers"},c.map(p=>ye.default.createElement(q6,{key:p.key,testId:`builder-mcp-${p.key}`,on:kT(e.mcp_servers,p.key),onClick:()=>a("mcp_servers",W6(e.mcp_servers,p)),emoji:p.runtime?"\u{1F4E6}":"\u{1F50C}",label:p.name,hint:H6(p),title:[p.description,p.transport].filter(Boolean).join(" \xB7 ")}))),d.length>0&&ye.default.createElement("details",{className:"mt-3 text-sm","data-testid":"builder-mcp-unavailable"},ye.default.createElement("summary",{className:"cursor-pointer text-gray-500"},d.length," catalog server",d.length===1?"":"s"," a run can't call"),ye.default.createElement("ul",{className:"mt-2 space-y-1"},d.map(p=>ye.default.createElement("li",{key:p.key,className:"text-xs text-gray-500"},ye.default.createElement("span",{className:"font-medium text-gray-700"},p.name)," \u2014 ",p.unavailable_reason))))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-2"},"System Instructions"),ye.default.createElement("textarea",{value:e.instructions,onChange:p=>a("instructions",p.target.value),placeholder:"You are a helpful AI assistant that...",rows:4,className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent font-mono text-sm"})))}function Ioe({formData:e,roster:t}){let r=n=>{let o=typeof n=="string"?n:n?.key;return t?.services?.find(a=>a.key===o)?.name||n?.name||o};return ye.default.createElement("div",{className:"space-y-6"},ye.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Review Your Agent"),ye.default.createElement("p",{className:"text-gray-500"},"Confirm the configuration before creating your agent."),ye.default.createElement("div",{className:"grid grid-cols-2 gap-8"},ye.default.createElement("div",{className:"flex flex-col items-center py-6 bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl"},ye.default.createElement("div",{className:"flex gap-2 mb-2"},e.instruction_sets.map(n=>{let o=Xd[n];return o?ye.default.createElement("span",{key:n,className:"text-lg",title:o.label},o.emoji):null})),ye.default.createElement(In,{size:100}),ye.default.createElement("div",{className:"flex gap-2 mt-2"},e.tools.map(n=>{let o=rv[n];return o?ye.default.createElement("span",{key:n,className:"text-lg",title:o.label},o.emoji):null})),ye.default.createElement("h3",{className:"mt-4 text-lg font-semibold text-gray-900"},e.name),ye.default.createElement("p",{className:"text-sm text-gray-500"},e.description||"No description")),ye.default.createElement("div",{className:"space-y-4"},ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Provider / Model"),ye.default.createElement("p",{className:"text-gray-900"},e.provider," / ",e.model)),ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Temperature"),ye.default.createElement("p",{className:"text-gray-900"},e.model_config.temperature)),ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Instructions"),ye.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.instruction_sets.length>0?e.instruction_sets.map(n=>{let o=Xd[n];return o?ye.default.createElement("span",{key:n,className:"px-2 py-0.5 bg-gray-100 rounded text-xs"},o.emoji," ",o.label):null}):ye.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))),ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Tools"),ye.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.tools.length>0?e.tools.map(n=>ye.default.createElement("span",{key:n,className:"px-2 py-0.5 bg-red-100 text-red-700 rounded text-xs"},iv[n]?`${iv[n].emoji} ${iv[n].label}`:n)):ye.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))),Om(e.tools).length>0&&ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Waits for your approval"),ye.default.createElement("p",{className:"text-gray-900 text-sm font-mono"},Om(e.tools).join(", "))),ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"MCP servers"),ye.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.mcp_servers.length>0?e.mcp_servers.map(n=>ye.default.createElement("span",{key:r(n),className:"px-2 py-0.5 bg-red-100 text-red-700 rounded text-xs"},r(n))):ye.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))))),e.instructions&&ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"System Instructions"),ye.default.createElement("pre",{className:"mt-2 p-4 bg-gray-50 rounded-lg text-sm text-gray-700 whitespace-pre-wrap font-mono"},e.instructions)))}function q6({on:e,onClick:t,emoji:r,label:n,hint:o,title:a,testId:i}){return ye.default.createElement("button",{type:"button","data-testid":i,"aria-pressed":e,onClick:t,title:a,className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-sm transition-colors ${e?"bg-red-500 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`},ye.default.createElement("span",null,r),ye.default.createElement("span",null,n),o&&ye.default.createElement("span",{className:`text-xs ${e?"text-red-100":"text-gray-400"}`},"\xB7 ",o))}var Se=Z(J());var Ki=e=>({cardBg:e?"#1f1f1f":"#ffffff",cardBorder:e?"#2a2a2a":"#e5e7eb",borderStrong:e?"rgba(255,255,255,0.2)":"#d1d5db",mutedBg:e?"rgba(255,255,255,0.06)":"#f3f4f6",innerBg:e?"rgba(255,255,255,0.04)":"#f9fafb",textPrimary:e?"#ffffff":"#111827",textCell:e?"rgba(255,255,255,0.75)":"#4b5563",textSecondary:e?"rgba(255,255,255,0.6)":"#6b7280",textMuted:e?"rgba(255,255,255,0.4)":"#9ca3af",inputBg:e?"rgba(255,255,255,0.06)":"#ffffff",inputBorder:e?"rgba(255,255,255,0.2)":"#d1d5db",trackBg:e?"rgba(255,255,255,0.1)":"#f3f4f6"}),Qo="#ef4444";var H=Z(J());var sw=Z(J()),X6=Z(J());function K6(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t{var r=e.children,n=e.width,o=e.height,a=e.viewBox,i=e.className,s=e.style,l=e.title,u=e.desc,c=zoe(e,Loe),d=a||{width:n,height:o,x:0,y:0},p=bt("recharts-surface",i);return sw.createElement("svg",ET({},yn(c),{className:p,width:n,height:o,style:s,viewBox:"".concat(d.x," ").concat(d.y," ").concat(d.width," ").concat(d.height),ref:t}),sw.createElement("title",null,l),sw.createElement("desc",null,u),r)});var lw=Z(J());var Foe=["children","className"];function NT(){return NT=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=e.children,n=e.className,o=Uoe(e,Foe),a=bt("recharts-layer",n);return lw.createElement("g",NT({className:a},yn(o),{ref:t}),r)});var bi=Z(J()),jS=Z(J()),X7=Z(oy());function uw(e){return e==="__proto__"}var Hoe=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function cw(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e===""||e.startsWith(".")||e.endsWith(".")?!1:Hoe.test(e);default:return!1}}function Pm(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function TT(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(TT).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function Mm(e){if(Array.isArray(e))return e.map(Pm);if(typeof e=="symbol")return[e];e=TT(e);let t=[],r=e.length;if(r===0)return t;let n=0,o="",a="",i=!1;for(e.charCodeAt(0)===46&&t.push("");n1&&arguments[1]!==void 0?arguments[1]:Koe,r=10**t,n=Math.round(e*r)/r;return Object.is(n,-0)?0:n}function Co(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n{var s=r[i-1];return typeof s=="string"?o+s+a:s!==void 0?o+Vi(s)+a:o+a},"")}var Qr=e=>e===0?0:e>0?1:-1,Wo=e=>typeof e=="number"&&e!=+e,nu=e=>typeof e=="string"&&e.length>1&&e.indexOf("%")===e.length-1,De=e=>(typeof e=="number"||e instanceof Number)&&!Wo(e),Sa=e=>De(e)||typeof e=="string",Voe=0,ou=e=>{var t=++Voe;return"".concat(e||"").concat(t)},$n=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!De(t)&&typeof t!="string")return n;var a;if(nu(t)){if(r==null)return n;var i=t.indexOf("%");a=r*parseFloat(t.slice(0,i))/100}else a=+t;return Wo(a)&&(a=n),o&&r!=null&&a>r&&(a=r),a},OT=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},n=0;nn&&(typeof t=="function"?t(n):Uo(n,t))===r)}var ar=e=>e===null||typeof e>"u",au=e=>ar(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function Ao(e){return e!=null}function ka(){}function uv(e){if(e)return{x:e.x,y:e.y,upperWidth:"upperWidth"in e?e.upperWidth:e.width,lowerWidth:"lowerWidth"in e?e.lowerWidth:e.width,width:e.width,height:e.height}}function Z6(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function sl(e){for(var t=1;t{var t=e.viewBox,r=e.position,n=e.offset,o=n===void 0?0:n,a=e.parentViewBox,i=e.clamp,s=uv(t),l=s.x,u=s.y,c=s.height,d=s.upperWidth,p=s.lowerWidth,f=l,m=l+(d-p)/2,y=(f+m)/2,b=(d+p)/2,g=f+d/2,h=c>=0?1:-1,v=h*o,x=h>0?"end":"start",S=h>0?"start":"end",k=d>=0?1:-1,w=k*o,_=k>0?"end":"start",A=k>0?"start":"end",C=a;if(r==="top"){var N={x:f+d/2,y:u-v,horizontalAnchor:"middle",verticalAnchor:x};return i&&C&&(N.height=Math.max(u-C.y,0),N.width=d),N}if(r==="bottom"){var L={x:m+p/2,y:u+c+v,horizontalAnchor:"middle",verticalAnchor:S};return i&&C&&(L.height=Math.max(C.y+C.height-(u+c),0),L.width=p),L}if(r==="left"){var Q={x:y-w,y:u+c/2,horizontalAnchor:_,verticalAnchor:"middle"};return i&&C&&(Q.width=Math.max(Q.x-C.x,0),Q.height=c),Q}if(r==="right"){var B={x:y+b+w,y:u+c/2,horizontalAnchor:A,verticalAnchor:"middle"};return i&&C&&(B.width=Math.max(C.x+C.width-B.x,0),B.height=c),B}var K=i&&C?{width:b,height:c}:{};return r==="insideLeft"?sl({x:y+w,y:u+c/2,horizontalAnchor:A,verticalAnchor:"middle"},K):r==="insideRight"?sl({x:y+b-w,y:u+c/2,horizontalAnchor:_,verticalAnchor:"middle"},K):r==="insideTop"?sl({x:f+d/2,y:u+v,horizontalAnchor:"middle",verticalAnchor:S},K):r==="insideBottom"?sl({x:m+p/2,y:u+c-v,horizontalAnchor:"middle",verticalAnchor:x},K):r==="insideTopLeft"?sl({x:f+w,y:u+v,horizontalAnchor:A,verticalAnchor:S},K):r==="insideTopRight"?sl({x:f+d-w,y:u+v,horizontalAnchor:_,verticalAnchor:S},K):r==="insideBottomLeft"?sl({x:m+w,y:u+c-v,horizontalAnchor:A,verticalAnchor:x},K):r==="insideBottomRight"?sl({x:m+p-w,y:u+c-v,horizontalAnchor:_,verticalAnchor:x},K):r&&typeof r=="object"&&(De(r.x)||nu(r.x))&&(De(r.y)||nu(r.y))?sl({x:l+$n(r.x,b),y:u+$n(r.y,c),horizontalAnchor:"end",verticalAnchor:"end"},K):sl({x:g,y:u+c/2,horizontalAnchor:"middle",verticalAnchor:"middle"},K)},Zoe=["top","left","right","bottom"];function cv(e){return e==null?!1:typeof e=="object"?!0:Zoe.includes(e)}var fw=Z(J()),PT=(0,fw.createContext)(null),J6=()=>(0,fw.useContext)(PT);var _a=Z(J());var hz=Z(J());function Mr(e){return function(){return e}}var MT=Math.cos;var dv=Math.sin,Ho=Math.sqrt;var Jd=Math.PI,ZEe=Jd/2,Im=2*Jd;var IT=Math.PI,DT=2*IT,Qd=1e-6,Joe=DT-Qd;function Q6(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Q6;let r=10**t;return function(n){this._+=n[0];for(let o=1,a=n.length;oQd)if(!(Math.abs(d*l-u*c)>Qd)||!a)this._append`L${this._x1=t},${this._y1=r}`;else{let f=n-i,m=o-s,y=l*l+u*u,b=f*f+m*m,g=Math.sqrt(y),h=Math.sqrt(p),v=a*Math.tan((IT-Math.acos((y+p-b)/(2*g*h)))/2),x=v/h,S=v/g;Math.abs(x-1)>Qd&&this._append`L${t+x*c},${r+x*d}`,this._append`A${a},${a},0,0,${+(d*f>c*m)},${this._x1=t+S*l},${this._y1=r+S*u}`}}arc(t,r,n,o,a,i){if(t=+t,r=+r,n=+n,i=!!i,n<0)throw new Error(`negative radius: ${n}`);let s=n*Math.cos(o),l=n*Math.sin(o),u=t+s,c=r+l,d=1^i,p=i?o-a:a-o;this._x1===null?this._append`M${u},${c}`:(Math.abs(this._x1-u)>Qd||Math.abs(this._y1-c)>Qd)&&this._append`L${u},${c}`,n&&(p<0&&(p=p%DT+DT),p>Joe?this._append`A${n},${n},0,1,${d},${t-s},${r-l}A${n},${n},0,1,${d},${this._x1=u},${this._y1=c}`:p>Qd&&this._append`A${n},${n},0,${+(p>=IT)},${d},${this._x1=t+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(t,r,n,o){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+o}h${-n}Z`}toString(){return this._}};function R6(){return new Rd}R6.prototype=Rd.prototype;function Dm(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new Rd(t)}var oNe=Array.prototype.slice;function jm(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function ez(e){this._context=e}ez.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Sc(e){return new ez(e)}function mw(e){return e[0]}function gw(e){return e[1]}function pv(e,t){var r=Mr(!0),n=null,o=Sc,a=null,i=Dm(s);e=typeof e=="function"?e:e===void 0?mw:Mr(e),t=typeof t=="function"?t:t===void 0?gw:Mr(t);function s(l){var u,c=(l=jm(l)).length,d,p=!1,f;for(n==null&&(a=o(f=i())),u=0;u<=c;++u)!(u=f;--m)s.point(v[m],x[m]);s.lineEnd(),s.areaEnd()}g&&(v[p]=+e(b,p,d),x[p]=+t(b,p,d),s.point(n?+n(b,p,d):v[p],r?+r(b,p,d):x[p]))}if(h)return s=null,h+""||null}function c(){return pv().defined(o).curve(i).context(a)}return u.x=function(d){return arguments.length?(e=typeof d=="function"?d:Mr(+d),n=null,u):e},u.x0=function(d){return arguments.length?(e=typeof d=="function"?d:Mr(+d),u):e},u.x1=function(d){return arguments.length?(n=d==null?null:typeof d=="function"?d:Mr(+d),u):n},u.y=function(d){return arguments.length?(t=typeof d=="function"?d:Mr(+d),r=null,u):t},u.y0=function(d){return arguments.length?(t=typeof d=="function"?d:Mr(+d),u):t},u.y1=function(d){return arguments.length?(r=d==null?null:typeof d=="function"?d:Mr(+d),u):r},u.lineX0=u.lineY0=function(){return c().x(e).y(t)},u.lineY1=function(){return c().x(e).y(r)},u.lineX1=function(){return c().x(n).y(t)},u.defined=function(d){return arguments.length?(o=typeof d=="function"?d:Mr(!!d),u):o},u.curve=function(d){return arguments.length?(i=d,a!=null&&(s=i(a)),u):i},u.context=function(d){return arguments.length?(d==null?a=s=null:s=i(a=d),u):a},u}var hw=class{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}};function jT(e){return new hw(e,!0)}function $T(e){return new hw(e,!1)}var Lm={draw(e,t){let r=Ho(t/Jd);e.moveTo(r,0),e.arc(0,0,r,0,Im)}};var LT={draw(e,t){let r=Ho(t/5)/2;e.moveTo(-3*r,-r),e.lineTo(-r,-r),e.lineTo(-r,-3*r),e.lineTo(r,-3*r),e.lineTo(r,-r),e.lineTo(3*r,-r),e.lineTo(3*r,r),e.lineTo(r,r),e.lineTo(r,3*r),e.lineTo(-r,3*r),e.lineTo(-r,r),e.lineTo(-3*r,r),e.closePath()}};var tz=Ho(1/3),Roe=tz*2,zT={draw(e,t){let r=Ho(t/Roe),n=r*tz;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}};var BT={draw(e,t){let r=Ho(t),n=-r/2;e.rect(n,n,r,r)}};var eae=.8908130915292852,rz=dv(Jd/10)/dv(7*Jd/10),tae=dv(Im/10)*rz,rae=-MT(Im/10)*rz,FT={draw(e,t){let r=Ho(t*eae),n=tae*r,o=rae*r;e.moveTo(0,-r),e.lineTo(n,o);for(let a=1;a<5;++a){let i=Im*a/5,s=MT(i),l=dv(i);e.lineTo(l*r,-s*r),e.lineTo(s*n-l*o,l*n+s*o)}e.closePath()}};var UT=Ho(3),WT={draw(e,t){let r=-Ho(t/(UT*3));e.moveTo(0,r*2),e.lineTo(-UT*r,-r),e.lineTo(UT*r,-r),e.closePath()}};var Gi=-.5,Yi=Ho(3)/2,HT=1/Ho(12),nae=(HT/2+1)*3,qT={draw(e,t){let r=Ho(t/nae),n=r/2,o=r*HT,a=n,i=r*HT+r,s=-a,l=i;e.moveTo(n,o),e.lineTo(a,i),e.lineTo(s,l),e.lineTo(Gi*n-Yi*o,Yi*n+Gi*o),e.lineTo(Gi*a-Yi*i,Yi*a+Gi*i),e.lineTo(Gi*s-Yi*l,Yi*s+Gi*l),e.lineTo(Gi*n+Yi*o,Gi*o-Yi*n),e.lineTo(Gi*a+Yi*i,Gi*i-Yi*a),e.lineTo(Gi*s+Yi*l,Gi*l-Yi*s),e.closePath()}};function yw(e,t){let r=null,n=Dm(o);e=typeof e=="function"?e:Mr(e||Lm),t=typeof t=="function"?t:Mr(t===void 0?64:+t);function o(){let a;if(r||(r=a=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),a)return r=null,a+""||null}return o.type=function(a){return arguments.length?(e=typeof a=="function"?a:Mr(a),o):e},o.size=function(a){return arguments.length?(t=typeof a=="function"?a:Mr(+a),o):t},o.context=function(a){return arguments.length?(r=a??null,o):r},o}function zm(){}function Bm(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function nz(e){this._context=e}nz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Bm(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Bm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function KT(e){return new nz(e)}function oz(e){this._context=e}oz.prototype={areaStart:zm,areaEnd:zm,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Bm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function VT(e){return new oz(e)}function az(e){this._context=e}az.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:Bm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function GT(e){return new az(e)}function iz(e){this._context=e}iz.prototype={areaStart:zm,areaEnd:zm,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function YT(e){return new iz(e)}function sz(e){return e<0?-1:1}function lz(e,t,r){var n=e._x1-e._x0,o=t-e._x1,a=(e._y1-e._y0)/(n||o<0&&-0),i=(r-e._y1)/(o||n<0&&-0),s=(a*o+i*n)/(n+o);return(sz(a)+sz(i))*Math.min(Math.abs(a),Math.abs(i),.5*Math.abs(s))||0}function uz(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function XT(e,t,r){var n=e._x0,o=e._y0,a=e._x1,i=e._y1,s=(a-n)/3;e._context.bezierCurveTo(n+s,o+s*t,a-s,i-s*r,a,i)}function vw(e){this._context=e}vw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:XT(this,this._t0,uz(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,XT(this,uz(this,r=lz(this,e,t)),r);break;default:XT(this,this._t0,r=lz(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function cz(e){this._context=new dz(e)}(cz.prototype=Object.create(vw.prototype)).point=function(e,t){vw.prototype.point.call(this,t,e)};function dz(e){this._context=e}dz.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,o,a){this._context.bezierCurveTo(t,e,n,r,a,o)}};function ZT(e){return new vw(e)}function JT(e){return new cz(e)}function fz(e){this._context=e}fz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=pz(e),o=pz(t),a=0,i=1;i=0;--t)o[t]=(i[t]-o[t+1])/a[t];for(a[r-1]=(e[r]+o[r-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function RT(e){return new xw(e,.5)}function eO(e){return new xw(e,0)}function tO(e){return new xw(e,1)}function gi(e,t){if((i=e.length)>1)for(var r=1,n,o,a=e[t[0]],i,s=a.length;r=0;)r[t]=t;return r}function oae(e,t){return e[t]}function aae(e){let t=[];return t.key=e,t}function rO(){var e=Mr([]),t=Fm,r=gi,n=oae;function o(a){var i=Array.from(e.apply(this,arguments),aae),s,l=i.length,u=-1,c;for(let d of a)for(s=0,++u;s0){for(var r,n,o=0,a=e[0].length,i;o0){for(var r=0,n=e[t[0]],o,a=n.length;r0)||!((a=(o=e[t[0]]).length)>0))){for(var r=0,n=1,o,a,i;n{var t="symbol".concat(au(e));return yz[t]||Lm},gae=(e,t,r)=>{if(t==="area")return e;switch(r){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var n=18*fae;return 1.25*e*e*(Math.tan(n)-Math.tan(n*2)*Math.tan(n)**2)}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},hae=(e,t)=>{yz["symbol".concat(au(e))]=t},sO=e=>{var t=e.type,r=t===void 0?"circle":t,n=e.size,o=n===void 0?64:n,a=e.sizeType,i=a===void 0?"area":a,s=dae(e,sae),l=gz(gz({},s),{},{type:r,size:o,sizeType:i}),u="circle";typeof r=="string"&&(u=r);var c=()=>{var y=mae(u),b=yw().type(y).size(gae(o,i,u)),g=b();if(g!==null)return g},d=l.className,p=l.cx,f=l.cy,m=yn(l);return De(p)&&De(f)&&De(o)?hz.createElement("path",iO({},m,{className:bt("recharts-symbols",d),transform:"translate(".concat(p,", ").concat(f,")"),d:c()})):null};sO.registerSymbol=hae;var vz=Z(J());var bw=e=>"radius"in e&&"startAngle"in e&&"endAngle"in e,Um=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var r=e;if((0,vz.isValidElement)(e)&&(r=e.props),typeof r!="object"&&typeof r!="function")return null;var n={};return Object.keys(r).forEach(o=>{sv(o)&&typeof r[o]=="function"&&(n[o]=t||(a=>r[o](r,a)))}),n},yae=(e,t,r)=>n=>(e(t,r,n),null),iu=(e,t,r)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var n=null;return Object.keys(e).forEach(o=>{var a=e[o];sv(o)&&typeof a=="function"&&(n||(n={}),n[o]=yae(a,t,r))}),n};function xz(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function vae(e){for(var t=1;t(i[s]===void 0&&n[s]!==void 0&&(i[s]=n[s]),i),r);return a}function ww(){return ww=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var f,m,y=d.formatter||o,b=bt({"recharts-legend-item":!0,["legend-item-".concat(p)]:!0,inactive:d.inactive});if(d.type==="none")return null;var g=typeof s=="object"?xz({},s):{};g.color=d.inactive?a:g.color||d.color,(f=g.whiteSpace)!==null&&f!==void 0||(g.whiteSpace="normal"),(m=g.overflowWrap)!==null&&m!==void 0||(g.overflowWrap="break-word");var h=y?y(d.value,d,p):d.value;return ka.createElement("li",xw({className:b,style:u,key:"legend-item-".concat(p)},nu(e,d,p)),ka.createElement(iv,{width:r,height:r,viewBox:l,style:c,"aria-label":d.value==null?"legend icon":"".concat(d.value," legend icon")},ka.createElement(kae,{data:d,iconType:i,inactiveColor:a})),ka.createElement("span",{className:"recharts-legend-item-text",style:g},h))})}var bz=e=>{var t=nr(e,wae),r=t.payload,n=t.layout,o=t.align;if(!r||!r.length)return null;var a={padding:0,margin:0,textAlign:n==="horizontal"?o:"left"};return ka.createElement("ul",{className:"recharts-default-legend",style:a},ka.createElement(_ae,xw({},t,{payload:r})))};function wz(e,t){let r=new Map;for(let n=0;nObject.prototype.propertyIsEnumerable.call(e,t))}function ou(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var ww="[object RegExp]",Fm="[object String]",Um="[object Number]",Wm="[object Boolean]",Sw="[object Arguments]",kw="[object Symbol]",_w="[object Date]",Cw="[object Map]",Aw="[object Set]",Ew="[object Array]",Cz="[object Function]",Nw="[object ArrayBuffer]",Hm="[object Object]",Az="[object Error]",Tw="[object DataView]",Ow="[object Uint8Array]",Pw="[object Uint8ClampedArray]",Mw="[object Uint16Array]",Iw="[object Uint32Array]",Ez="[object BigUint64Array]",Dw="[object Int8Array]",jw="[object Int16Array]",$w="[object Int32Array]",Nz="[object BigInt64Array]",Lw="[object Float32Array]",zw="[object Float64Array]";var sO=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||(function(){return this})();function fv(e){return typeof sO.Buffer<"u"&&sO.Buffer.isBuffer(e)}function Tz(e,t){return Sc(e,void 0,e,new Map,t)}function Sc(e,t,r,n=new Map,o=void 0){let a=o?.(e,t,r,n);if(a!==void 0)return a;if(dv(e))return e;if(n.has(e))return n.get(e);if(Array.isArray(e)){let i=new Array(e.length);n.set(e,i);for(let s=0;s{}):lO(e,t,function n(o,a,i,s,l,u){let c=r(o,a,i,s,l,u);return c!==void 0?!!c:lO(o,a,n,u,!1)},new Map,!0)}function lO(e,t,r,n,o=!1){if(t===e)return!0;switch(typeof t){case"object":return Aae(e,t,r,n);case"function":return Object.keys(t).length>0?lO(e,{...t},r,n,o):kc(e,t);default:return Bw(e)?o?typeof t=="string"?t==="":!0:kc(e,t):kc(e,t)}}function Aae(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return Pz(e,t,r,n);if(t instanceof Map)return Eae(e,t,r,n);if(t instanceof Set)return Nae(e,t,r,n);let o=Object.keys(t);if(e==null||dv(e))return o.length===0;if(o.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let a=0;a{})}function Mz(e){return e=Oz(e),t=>Fw(t,e)}function Iz(e,t){return Tz(e,(r,n,o,a)=>{let i=t?.(r,n,o,a);if(i!==void 0)return i;if(typeof e=="object"){if(ou(e)==="[object Object]"&&typeof e.constructor!="function"){let s={};return a.set(e,s),Xi(s,e,o,a),s}switch(Object.prototype.toString.call(e)){case Um:case Fm:case Wm:{let s=new e.constructor(e?.valueOf());return Xi(s,e),s}case Sw:{let s={};return Xi(s,e),s.length=e.length,s[Symbol.iterator]=e[Symbol.iterator],s}default:return}}})}function Dz(e){return Iz(e)}var Tae=/^(?:0|[1-9]\d*)$/;function Uw(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e=0}function Ww(e){return e!=null&&typeof e!="function"&&Bz(e.length)}function Fz(e){return typeof e=="object"&&e!==null}function Uz(e){return Fz(e)&&Ww(e)}function Hw(e,t=bw){return Uz(e)?wz(Array.from(e),Sz(zz(t),1)):[]}function qw(e,t,r){return t===!0?Hw(e,r):typeof t=="function"?Hw(e,t):e}var Jz=Z(Xz()),gv=Z(J());var Zz=Z(J()),mv=(0,Zz.createContext)(null);var Gae=e=>e,jt=()=>{var e=(0,gv.useContext)(mv);return e?e.store.dispatch:Gae},Vw=()=>{},Yae=()=>Vw,Xae=(e,t)=>e===t;function je(e){var t=(0,gv.useContext)(mv),r=(0,gv.useMemo)(()=>t?n=>{if(n!=null)return e(n)}:Vw,[t,e]);return(0,Jz.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:Yae,t?t.store.getState:Vw,t?t.store.getState:Vw,r,Xae)}function Zae(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function Jae(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 Qz=e=>Array.isArray(e)?e:[e];function Qae(e){let t=Array.isArray(e[0])?e[0]:e;return Jae(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function Rae(e,t){let r=[],{length:n}=e;for(let o=0;otypeof WeakRef>"u"?eie:WeakRef,eB=tie(),rie=0,Rz=1;function Gw(){return{s:rie,v:void 0,o:null,p:null}}function nie(e){return e instanceof eB?e.deref():e}function tB(e,t={}){let r=Gw(),{resultEqualityCheck:n}=t,o,a=0;function i(){let s=r,{length:l}=arguments;for(let d=0,p=l;d{r=Gw(),i.resetResultsCount()},i.resultsCount=()=>a,i.resetResultsCount=()=>{a=0},i}function oie(e,...t){let r=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,n=(...o)=>{let a=0,i=0,s,l={},u=o.pop();typeof u=="object"&&(l=u,u=o.pop()),Zae(u,`createSelector expects an output function after the inputs, but received: [${typeof u}]`);let c={...r,...l},{memoize:d,memoizeOptions:p=[],argsMemoize:f=tB,argsMemoizeOptions:m=[]}=c,y=Qz(p),b=Qz(m),g=Qae(o),h=d(function(){return a++,u.apply(null,arguments)},...y),v=!0,x=f(function(){i++;let _=Rae(g,arguments);return s=h.apply(null,_),s},...b);return Object.assign(x,{resultFunc:u,memoizedResultFunc:h,dependencies:g,dependencyRecomputations:()=>i,resetDependencyRecomputations:()=>{i=0},lastResult:()=>s,recomputations:()=>a,resetRecomputations:()=>{a=0},memoize:d,argsMemoize:f})};return Object.assign(n,{withTypes:()=>n}),n}var ae=oie(tB);function rB(e,t=1){let r=[],n=Math.floor(t),o=(a,i)=>{for(let s=0;s{if(e!==t){let n=nB(e),o=nB(t);if(n===o&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?o-n:n-o}return 0};function Yw(e){return typeof e=="symbol"||e instanceof Symbol}var aie=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,iie=/^\w*$/;function aB(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||Yw(e)?!0:typeof e=="string"&&(iie.test(e)||!aie.test(e))||t!=null&&Object.hasOwn(t,e)}function iB(e,t,r,n){if(e==null)return[];r=n?void 0:r,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(r)||(r=r==null?[]:[r]),r=r.map(s=>String(s));let o=(s,l)=>{let u=s;for(let c=0;cl==null||s==null?l:typeof s=="object"&&"key"in s?Object.hasOwn(l,s.key)?l[s.key]:o(l,s.path):typeof s=="function"?s(l):Array.isArray(s)?o(l,s):typeof l=="object"?l[s]:l,i=t.map(s=>(Array.isArray(s)&&s.length===1&&(s=s[0]),s==null||typeof s=="function"||Array.isArray(s)||aB(s)?s:{key:s,path:Om(s)}));return e.map(s=>({original:s,criteria:i.map(l=>a(l,s))})).slice().sort((s,l)=>{for(let u=0;us.original)}function au(e,...t){let r=t.length;return r>1&&hv(e,t[0],t[1])?t=[]:r>2&&hv(t[0],t[1],t[2])&&(t=[t[0]]),iB(e,rB(t),["asc"])}var dO=e=>e.legend.settings,sB=e=>e.legend.size,sie=e=>e.legend.payload,lB=ae([sie,dO],(e,t)=>{var r=t.itemSorter,n=e.flat(1);return r?au(n,r):n});function uB(){return je(lB)}var iu=Z(J());function lie(e,t){return pie(e)||die(e,t)||cie(e,t)||uie()}function uie(){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 cie(e,t){if(e){if(typeof e=="string")return cB(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)?cB(e,t):void 0}}function cB(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rXw||Math.abs(e.left-t.left)>Xw||Math.abs(e.top-t.top)>Xw||Math.abs(e.width-t.width)>Xw}function pB(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function Zw(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=(0,iu.useState)({height:0,left:0,top:0,width:0}),r=lie(t,2),n=r[0],o=r[1],a=(0,iu.useRef)(null),i=(0,iu.useRef)(n);i.current=n;var s=(0,iu.useCallback)(l=>{if(a.current!=null&&(a.current.disconnect(),a.current=null),l!=null){var u=pB(l);if(dB(u,i.current)&&o(u),typeof ResizeObserver<"u"){var c=new ResizeObserver(()=>{var d=pB(l);dB(d,i.current)&&o(d)});c.observe(l),a.current=c}}},[...e]);return(0,iu.useEffect)(()=>()=>{var l;(l=a.current)===null||l===void 0||l.disconnect()},[]),[n,s]}var N7=Z(J());function Ro(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var fie=typeof Symbol=="function"&&Symbol.observable||"@@observable",fB=fie,pO=()=>Math.random().toString(36).substring(7).split("").join("."),mie={INIT:`@@redux/INIT${pO()}`,REPLACE:`@@redux/REPLACE${pO()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${pO()}`},Jw=mie;function Qw(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 fO(e,t,r){if(typeof e!="function")throw new Error(Ro(2));if(typeof t=="function"&&typeof r=="function"||typeof r=="function"&&typeof arguments[3]=="function")throw new Error(Ro(0));if(typeof t=="function"&&typeof r>"u"&&(r=t,t=void 0),typeof r<"u"){if(typeof r!="function")throw new Error(Ro(1));return r(fO)(e,t)}let n=e,o=t,a=new Map,i=a,s=0,l=!1;function u(){i===a&&(i=new Map,a.forEach((b,g)=>{i.set(g,b)}))}function c(){if(l)throw new Error(Ro(3));return o}function d(b){if(typeof b!="function")throw new Error(Ro(4));if(l)throw new Error(Ro(5));let g=!0;u();let h=s++;return i.set(h,b),function(){if(g){if(l)throw new Error(Ro(6));g=!1,u(),i.delete(h),a=null}}}function p(b){if(!Qw(b))throw new Error(Ro(7));if(typeof b.type>"u")throw new Error(Ro(8));if(typeof b.type!="string")throw new Error(Ro(17));if(l)throw new Error(Ro(9));try{l=!0,o=n(o,b)}finally{l=!1}return(a=i).forEach(h=>{h()}),b}function f(b){if(typeof b!="function")throw new Error(Ro(10));n=b,p({type:Jw.REPLACE})}function m(){let b=d;return{subscribe(g){if(typeof g!="object"||g===null)throw new Error(Ro(11));function h(){let x=g;x.next&&x.next(c())}return h(),{unsubscribe:b(h)}},[fB](){return this}}}return p({type:Jw.INIT}),{dispatch:p,subscribe:d,getState:c,replaceReducer:f,[fB]:m}}function gie(e){Object.keys(e).forEach(t=>{let r=e[t];if(typeof r(void 0,{type:Jw.INIT})>"u")throw new Error(Ro(12));if(typeof r(void 0,{type:Jw.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(Ro(13))})}function Rw(e){let t=Object.keys(e),r={};for(let i=0;i"u"){let b=l&&l.type;throw new Error(Ro(14))}c[p]=y,u=u||y!==m}return u=u||n.length!==Object.keys(s).length,u?c:s}}function yv(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function mB(...e){return t=>(r,n)=>{let o=t(r,n),a=()=>{throw new Error(Ro(15))},i={getState:o.getState,dispatch:(l,...u)=>a(l,...u)},s=e.map(l=>l(i));return a=yv(...s)(o.dispatch),{...o,dispatch:a}}}function mO(e){return Qw(e)&&"type"in e&&typeof e.type=="string"}var kB=Symbol.for("immer-nothing"),gB=Symbol.for("immer-draftable"),ia=Symbol.for("immer-state");function Os(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var hi=Object,Vm=hi.getPrototypeOf,nS="constructor",uS="prototype",vO="configurable",oS="enumerable",tS="writable",vv="value",sl=e=>!!e&&!!e[ia];function yi(e){return e?_B(e)||dS(e)||!!e[gB]||!!e[nS]?.[gB]||pS(e)||fS(e):!1}var hie=hi[uS][nS].toString(),hB=new WeakMap;function _B(e){if(!e||!AO(e))return!1;let t=Vm(e);if(t===null||t===hi[uS])return!0;let r=hi.hasOwnProperty.call(t,nS)&&t[nS];if(r===Object)return!0;if(!Km(r))return!1;let n=hB.get(r);return n===void 0&&(n=Function.toString.call(r),hB.set(r,n)),n===hie}function cS(e,t,r=!0){wv(e)===0?(r?Reflect.ownKeys(e):hi.keys(e)).forEach(o=>{t(o,e[o],e)}):e.forEach((n,o)=>t(o,n,e))}function wv(e){let t=e[ia];return t?t.type_:dS(e)?1:pS(e)?2:fS(e)?3:0}var gO=(e,t,r=wv(e))=>r===2?e.has(t):hi[uS].hasOwnProperty.call(e,t),xO=(e,t,r=wv(e))=>r===2?e.get(t):e[t],aS=(e,t,r,n=wv(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function yie(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var dS=Array.isArray,pS=e=>e instanceof Map,fS=e=>e instanceof Set,AO=e=>typeof e=="object",Km=e=>typeof e=="function",hO=e=>typeof e=="boolean";function vie(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var su=e=>e.copy_||e.base_;var EO=e=>e.modified_?e.copy_:e.base_;function bO(e,t){if(pS(e))return new Map(e);if(fS(e))return new Set(e);if(dS(e))return Array[uS].slice.call(e);let r=_B(e);if(t===!0||t==="class_only"&&!r){let n=hi.getOwnPropertyDescriptors(e);delete n[ia];let o=Reflect.ownKeys(n);for(let a=0;a1&&hi.defineProperties(e,{set:eS,add:eS,clear:eS,delete:eS}),hi.freeze(e),t&&cS(e,(r,n)=>{NO(n,!0)},!1)),e}function xie(){Os(2)}var eS={[vv]:xie};function mS(e){return e===null||!AO(e)?!0:hi.isFrozen(e)}var iS="MapSet",wO="Patches",yB="ArrayMethods",CB={};function Rd(e){let t=CB[e];return t||Os(0,e),t}var vB=e=>!!CB[e];var xv,AB=()=>xv,bie=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:vB(iS)?Rd(iS):void 0,arrayMethodsPlugin_:vB(yB)?Rd(yB):void 0});function xB(e,t){t&&(e.patchPlugin_=Rd(wO),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function SO(e){kO(e),e.drafts_.forEach(wie),e.drafts_=null}function kO(e){e===xv&&(xv=e.parent_)}var bB=e=>xv=bie(xv,e);function wie(e){let t=e[ia];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function wB(e,t){t.unfinalizedDrafts_=t.drafts_.length;let r=t.drafts_[0];if(e!==void 0&&e!==r){r[ia].modified_&&(SO(t),Os(4)),yi(e)&&(e=SB(t,e));let{patchPlugin_:o}=t;o&&o.generateReplacementPatches_(r[ia].base_,e,t)}else e=SB(t,r);return Sie(t,e,!0),SO(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==kB?e:void 0}function SB(e,t){if(mS(t))return t;let r=t[ia];if(!r)return sS(t,e.handledSet_,e);if(!gS(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);TB(r,e)}return r.copy_}function Sie(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&NO(t,r)}function EB(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var gS=(e,t)=>e.scope_===t,kie=[];function NB(e,t,r,n){let o=su(e),a=e.type_;if(n!==void 0&&xO(o,n,a)===t){aS(o,n,r,a);return}if(!e.draftLocations_){let s=e.draftLocations_=new Map;cS(o,(l,u)=>{if(sl(u)){let c=s.get(u)||[];c.push(l),s.set(u,c)}})}let i=e.draftLocations_.get(t)??kie;for(let s of i)aS(o,s,r,a)}function _ie(e,t,r){e.callbacks_.push(function(o){let a=t;if(!a||!gS(a,o))return;o.mapSetPlugin_?.fixSetContents(a);let i=EO(a);NB(e,a.draft_??a,i,r),TB(a,o)})}function TB(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let o=n.getPath(e);o&&n.generatePatches_(e,o,t)}EB(e)}}function Cie(e,t,r){let{scope_:n}=e;if(sl(r)){let o=r[ia];gS(o,n)&&o.callbacks_.push(function(){rS(e);let i=EO(o);NB(e,r,i,t)})}else yi(r)&&e.callbacks_.push(function(){let a=su(e);e.type_===3?a.has(r)&&sS(r,n.handledSet_,n):xO(a,t,e.type_)===r&&n.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&sS(xO(e.copy_,t,e.type_),n.handledSet_,n)})}function sS(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||sl(e)||t.has(e)||!yi(e)||mS(e)||(t.add(e),cS(e,(n,o)=>{if(sl(o)){let a=o[ia];if(gS(a,r)){let i=EO(a);aS(e,n,i,e.type_),EB(a)}}else yi(o)&&sS(o,t,r)})),e}function Aie(e,t){let r=dS(e),n={type_:r?1:0,scope_:t?t.scope_:AB(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},o=n,a=lS;r&&(o=[n],a=bv);let{revoke:i,proxy:s}=Proxy.revocable(o,a);return n.draft_=s,n.revoke_=i,[s,n]}var lS={get(e,t){if(t===ia)return e;let r=e.scope_.arrayMethodsPlugin_,n=e.type_===1&&typeof t=="string";if(n&&r?.isArrayOperationMethod(t))return r.createMethodInterceptor(e,t);let o=su(e);if(!gO(o,t,e.type_))return Nie(e,o,t);let a=o[t];if(e.finalized_||!yi(a)||n&&e.operationMethod&&r?.isMutatingArrayMethod(e.operationMethod)&&vie(t))return a;if(a===yO(e.base_,t)||Eie(e,t,a)){rS(e);let i=e.type_===1?+t:t,s=CO(e.scope_,a,e,i);return e.copy_[i]=s}return a},has(e,t){return t in su(e)},ownKeys(e){return Reflect.ownKeys(su(e))},set(e,t,r){let n=OB(su(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){let o=yO(su(e),t),a=o?.[ia];if(a&&a.base_===r)return e.copy_[t]=r,e.assigned_.set(t,!1),!0;if(yie(r,o)&&(r!==void 0||gO(e.base_,t,e.type_)))return!0;rS(e),_O(e)}return e.copy_[t]===r&&(r!==void 0||gO(e.copy_,t,e.type_))||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_.set(t,!0),Cie(e,t,r)),!0},deleteProperty(e,t){return rS(e),yO(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),_O(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let r=su(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[tS]:!0,[vO]:e.type_!==1||t!=="length",[oS]:n[oS],[vv]:r[t]}},defineProperty(){Os(11)},getPrototypeOf(e){return Vm(e.base_)},setPrototypeOf(){Os(12)}},bv={};for(let e in lS){let t=lS[e];bv[e]=function(){let r=arguments;return r[0]=r[0][0],t.apply(this,r)}}bv.deleteProperty=function(e,t){return bv.set.call(this,e,t,void 0)};bv.set=function(e,t,r){return lS.set.call(this,e[0],t,r,e[0])};function yO(e,t){let r=e[ia];return(r?su(r):e)[t]}function Eie(e,t,r){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!yi(r)||r[ia]?!1:e.baseRefs_.has(r)}function Nie(e,t,r){let n=OB(t,r);return n?vv in n?n[vv]:n.get?.call(e.draft_):void 0}function OB(e,t){if(!(t in e))return;let r=Vm(e);for(;r;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Vm(r)}}function _O(e){e.modified_||(e.modified_=!0,e.parent_&&_O(e.parent_))}function rS(e){e.copy_||(e.assigned_=new Map,e.copy_=bO(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var Tie=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(t,r,n)=>{if(Km(t)&&!Km(r)){let a=r;r=t;let i=this;return function(l=a,...u){return i.produce(l,c=>r.call(this,c,...u))}}Km(r)||Os(6),n!==void 0&&!Km(n)&&Os(7);let o;if(yi(t)){let a=bB(this),i=CO(a,t,void 0),s=!0;try{o=r(i),s=!1}finally{s?SO(a):kO(a)}return xB(a,n),wB(o,a)}else if(!t||!AO(t)){if(o=r(t),o===void 0&&(o=t),o===kB&&(o=void 0),this.autoFreeze_&&NO(o,!0),n){let a=[],i=[];Rd(wO).generateReplacementPatches_(t,o,{patches_:a,inversePatches_:i}),n(a,i)}return o}else Os(1,t)},this.produceWithPatches=(t,r)=>{if(Km(t))return(i,...s)=>this.produceWithPatches(i,l=>t(l,...s));let n,o;return[this.produce(t,r,(i,s)=>{n=i,o=s}),n,o]},hO(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),hO(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),hO(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){yi(e)||Os(8),sl(e)&&(e=ea(e));let t=bB(this),r=CO(t,e,void 0);return r[ia].isManual_=!0,kO(t),r}finishDraft(e,t){let r=e&&e[ia];(!r||!r.isManual_)&&Os(9);let{scope_:n}=r;return xB(n,t),wB(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){let o=t[r];if(o.path.length===0&&o.op==="replace"){e=o.value;break}}r>-1&&(t=t.slice(r+1));let n=Rd(wO).applyPatches_;return sl(e)?n(e,t):this.produce(e,o=>n(o,t))}};function CO(e,t,r,n){let[o,a]=pS(t)?Rd(iS).proxyMap_(t,r):fS(t)?Rd(iS).proxySet_(t,r):Aie(t,r);return(r?.scope_??AB()).drafts_.push(o),a.callbacks_=r?.callbacks_??[],a.key_=n,r&&n!==void 0?_ie(r,a,n):a.callbacks_.push(function(l){l.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:u}=l;a.modified_&&u&&u.generatePatches_(a,[],l)}),o}function ea(e){return sl(e)||Os(10,e),PB(e)}function PB(e){if(!yi(e)||mS(e))return e;let t=e[ia],r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=bO(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=bO(e,!0);return cS(r,(o,a)=>{aS(r,o,PB(a))},n),t&&(t.finalized_=!1),r}var Oie=new Tie,TO=Oie.produce;var Zt=e=>e;function MB(e){return({dispatch:r,getState:n})=>o=>a=>typeof a=="function"?a(r,n,e):o(a)}var IB=MB(),DB=MB;var Pie=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?yv:yv.apply(null,arguments)},nMe=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION__?window.__REDUX_DEVTOOLS_EXTENSION__:function(){return function(e){return e}},Mie=e=>e&&typeof e.match=="function";function vo(e,t){function r(...n){if(t){let o=t(...n);if(!o)throw new Error(vi(0));return{type:e,payload:o.payload,..."meta"in o&&{meta:o.meta},..."error"in o&&{error:o.error}}}return{type:e,payload:n[0]}}return r.toString=()=>`${e}`,r.type=e,r.match=n=>mO(n)&&n.type===e,r}var WB=class Sv extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,Sv.prototype)}static get[Symbol.species](){return Sv}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new Sv(...t[0].concat(this)):new Sv(...t.concat(this))}};function jB(e){return yi(e)?TO(e,()=>{}):e}function hS(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function Iie(e){return typeof e=="boolean"}var Die=()=>function(t){let{thunk:r=!0,immutableCheck:n=!0,serializableCheck:o=!0,actionCreatorCheck:a=!0}=t??{},i=new WB;return r&&(Iie(r)?i.push(IB):i.push(DB(r.extraArgument))),i},HB="RTK_autoBatch",Ir=()=>e=>({payload:e,meta:{[HB]:!0}}),$B=e=>t=>{setTimeout(t,e)},jie=(e,t)=>r=>{let n=!1,o=()=>{n||(n=!0,cancelAnimationFrame(a),clearTimeout(i),r())},a=e(o),i=setTimeout(o,t)},IO=(e={type:"raf"})=>t=>(...r)=>{let n=t(...r),o=!0,a=!1,i=!1,s=new Set,l=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?jie(window.requestAnimationFrame,100):$B(10):e.type==="callback"?e.queueNotification:$B(e.timeout),u=()=>{i=!1,a&&(a=!1,s.forEach(c=>c()))};return Object.assign({},n,{subscribe(c){let d=()=>o&&c(),p=n.subscribe(d);return s.add(c),()=>{p(),s.delete(c)}},dispatch(c){try{return o=!c?.meta?.[HB],a=!o,a&&(i||(i=!0,l(u))),n.dispatch(c)}finally{o=!0}}})},$ie=e=>function(r){let{autoBatch:n=!0}=r??{},o=new WB(e);return n&&o.push(IO(typeof n=="object"?n:void 0)),o};function qB(e){let t=Die(),{reducer:r=void 0,middleware:n,devTools:o=!0,duplicateMiddlewareCheck:a=!0,preloadedState:i=void 0,enhancers:s=void 0}=e||{},l;if(typeof r=="function")l=r;else if(Qw(r))l=Rw(r);else throw new Error(vi(1));let u;typeof n=="function"?u=n(t):u=t();let c=yv;o&&(c=Pie({trace:!1,...typeof o=="object"&&o}));let d=mB(...u),p=$ie(d),f=typeof s=="function"?s(p):p(),m=c(...f);return fO(l,i,m)}function KB(e){let t={},r=[],n,o={addCase(a,i){let s=typeof a=="string"?a:a.type;if(!s)throw new Error(vi(28));if(s in t)throw new Error(vi(29));return t[s]=i,o},addAsyncThunk(a,i){return i.pending&&(t[a.pending.type]=i.pending),i.rejected&&(t[a.rejected.type]=i.rejected),i.fulfilled&&(t[a.fulfilled.type]=i.fulfilled),i.settled&&r.push({matcher:a.settled,reducer:i.settled}),o},addMatcher(a,i){return r.push({matcher:a,reducer:i}),o},addDefaultCase(a){return n=a,o}};return e(o),[t,r,n]}function Lie(e){return typeof e=="function"}function zie(e,t){let[r,n,o]=KB(t),a;if(Lie(e))a=()=>jB(e());else{let s=jB(e);a=()=>s}function i(s=a(),l){let u=[r[l.type],...n.filter(({matcher:c})=>c(l)).map(({reducer:c})=>c)];return u.filter(c=>!!c).length===0&&(u=[o]),u.reduce((c,d)=>{if(d)if(sl(c)){let f=d(c,l);return f===void 0?c:f}else{if(yi(c))return TO(c,p=>d(p,l));{let p=d(c,l);if(p===void 0){if(c===null)return c;throw Error("A case reducer on a non-draftable value must not return undefined")}return p}}return c},s)}return i.getInitialState=a,i}var Bie=(e,t)=>Mie(e)?e.match(t):e(t);function Fie(...e){return t=>e.some(r=>Bie(r,t))}var Uie="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",VB=(e=21)=>{let t="",r=e;for(;r--;)t+=Uie[Math.random()*64|0];return t},Wie=["name","message","stack","code"],OO=class{constructor(e,t){this.payload=e,this.meta=t}payload;meta;_type},LB=class{constructor(e,t){this.payload=e,this.meta=t}payload;meta;_type},Hie=e=>{if(typeof e=="object"&&e!==null){let t={};for(let r of Wie)typeof e[r]=="string"&&(t[r]=e[r]);return t}return{message:String(e)}},zB="External signal was aborted",qie=(()=>{function e(t,r,n){let o=vo(t+"/fulfilled",(l,u,c,d)=>({payload:l,meta:{...d||{},arg:c,requestId:u,requestStatus:"fulfilled"}})),a=vo(t+"/pending",(l,u,c)=>({payload:void 0,meta:{...c||{},arg:u,requestId:l,requestStatus:"pending"}})),i=vo(t+"/rejected",(l,u,c,d,p)=>({payload:d,error:(n&&n.serializeError||Hie)(l||"Rejected"),meta:{...p||{},arg:c,requestId:u,rejectedWithValue:!!d,requestStatus:"rejected",aborted:l?.name==="AbortError",condition:l?.name==="ConditionError"}}));function s(l,{signal:u}={}){return(c,d,p)=>{let f=n?.idGenerator?n.idGenerator(l):VB(),m=new AbortController,y,b;function g(v){b=v,m.abort()}u&&(u.aborted?g(zB):u.addEventListener("abort",()=>g(zB),{once:!0}));let h=(async function(){let v;try{let S=n?.condition?.(l,{getState:d,extra:p});if(Vie(S)&&(S=await S),S===!1||m.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};let _=new Promise((w,k)=>{y=()=>{k({name:"AbortError",message:b||"Aborted"})},m.signal.addEventListener("abort",y,{once:!0})});c(a(f,l,n?.getPendingMeta?.({requestId:f,arg:l},{getState:d,extra:p}))),v=await Promise.race([_,Promise.resolve(r(l,{dispatch:c,getState:d,extra:p,requestId:f,signal:m.signal,abort:g,rejectWithValue:((w,k)=>new OO(w,k)),fulfillWithValue:((w,k)=>new LB(w,k))})).then(w=>{if(w instanceof OO)throw w;return w instanceof LB?o(w.payload,f,l,w.meta):o(w,f,l)})])}catch(S){v=S instanceof OO?i(null,f,l,S.payload,S.meta):i(S,f,l)}finally{y&&m.signal.removeEventListener("abort",y)}return n&&!n.dispatchConditionRejection&&i.match(v)&&v.meta.condition||c(v),v})();return Object.assign(h,{abort:g,requestId:f,arg:l,unwrap(){return h.then(Kie)}})}}return Object.assign(s,{pending:a,rejected:i,fulfilled:o,settled:Fie(i,o),typePrefix:t})}return e.withTypes=()=>e,e})();function Kie(e){if(e.meta&&e.meta.rejectedWithValue)throw e.payload;if(e.error)throw e.error;return e.payload}function Vie(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}var GB=Symbol.for("rtk-slice-createasyncthunk"),aMe={[GB]:qie};function Gie(e,t){return`${e}/${t}`}function Yie({creators:e}={}){let t=e?.asyncThunk?.[GB];return function(n){let{name:o,reducerPath:a=o}=n;if(!o)throw new Error(vi(11));typeof process<"u";let i=(typeof n.reducers=="function"?n.reducers(Zie()):n.reducers)||{},s=Object.keys(i),l={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},u={addCase(v,x){let S=typeof v=="string"?v:v.type;if(!S)throw new Error(vi(12));if(S in l.sliceCaseReducersByType)throw new Error(vi(13));return l.sliceCaseReducersByType[S]=x,u},addMatcher(v,x){return l.sliceMatchers.push({matcher:v,reducer:x}),u},exposeAction(v,x){return l.actionCreators[v]=x,u},exposeCaseReducer(v,x){return l.sliceCaseReducersByName[v]=x,u}};s.forEach(v=>{let x=i[v],S={reducerName:v,type:Gie(o,v),createNotation:typeof n.reducers=="function"};Qie(x)?ese(S,x,u,t):Jie(S,x,u)});function c(){let[v={},x=[],S=void 0]=typeof n.extraReducers=="function"?KB(n.extraReducers):[n.extraReducers],_={...v,...l.sliceCaseReducersByType};return zie(n.initialState,w=>{for(let k in _)w.addCase(k,_[k]);for(let k of l.sliceMatchers)w.addMatcher(k.matcher,k.reducer);for(let k of x)w.addMatcher(k.matcher,k.reducer);S&&w.addDefaultCase(S)})}let d=v=>v,p=new Map,f=new WeakMap,m;function y(v,x){return m||(m=c()),m(v,x)}function b(){return m||(m=c()),m.getInitialState()}function g(v,x=!1){function S(w){let k=w[v];return typeof k>"u"&&x&&(k=hS(f,S,b)),k}function _(w=d){let k=hS(p,x,()=>new WeakMap);return hS(k,w,()=>{let A={};for(let[C,T]of Object.entries(n.selectors??{}))A[C]=Xie(T,w,()=>hS(f,w,b),x);return A})}return{reducerPath:v,getSelectors:_,get selectors(){return _(S)},selectSlice:S}}let h={name:o,reducer:y,actions:l.actionCreators,caseReducers:l.sliceCaseReducersByName,getInitialState:b,...g(a),injectInto(v,{reducerPath:x,...S}={}){let _=x??a;return v.inject({reducerPath:_,reducer:y},S),{...h,...g(_,!0)}}};return h}}function Xie(e,t,r,n){function o(a,...i){let s=t(a);return typeof s>"u"&&n&&(s=r()),e(s,...i)}return o.unwrapped=e,o}var Cr=Yie();function Zie(){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 Jie({type:e,reducerName:t,createNotation:r},n,o){let a,i;if("reducer"in n){if(r&&!Rie(n))throw new Error(vi(17));a=n.reducer,i=n.prepare}else a=n;o.addCase(e,a).exposeCaseReducer(t,a).exposeAction(t,i?vo(e,i):vo(e))}function Qie(e){return e._reducerDefinitionType==="asyncThunk"}function Rie(e){return e._reducerDefinitionType==="reducerWithPrepare"}function ese({type:e,reducerName:t},r,n,o){if(!o)throw new Error(vi(18));let{payloadCreator:a,fulfilled:i,pending:s,rejected:l,settled:u,options:c}=r,d=o(e,a,c);n.exposeAction(t,d),i&&n.addCase(d.fulfilled,i),s&&n.addCase(d.pending,s),l&&n.addCase(d.rejected,l),u&&n.addMatcher(d.settled,u),n.exposeCaseReducer(t,{fulfilled:i||yS,pending:s||yS,rejected:l||yS,settled:u||yS})}function yS(){}var tse="task",YB="listener",XB="completed",DO="cancelled",rse=`task-${DO}`,nse=`task-${XB}`,PO=`${YB}-${DO}`,ose=`${YB}-${XB}`,bS=class{constructor(e){this.code=e,this.message=`${tse} ${DO} (reason: ${e})`}code;name="TaskAbortError";message},jO=(e,t)=>{if(typeof e!="function")throw new TypeError(vi(32))},vS=()=>{},ZB=(e,t=vS)=>(e.catch(t),e),JB=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),ep=e=>{if(e.aborted)throw new bS(e.reason)};function QB(e,t){let r=vS;return new Promise((n,o)=>{let a=()=>o(new bS(e.reason));if(e.aborted){a();return}r=JB(e,a),t.finally(()=>r()).then(n,o)}).finally(()=>{r=vS})}var ase=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof bS?"cancelled":"rejected",error:r}}finally{t?.()}},xS=e=>t=>ZB(QB(e,t).then(r=>(ep(e),r))),RB=e=>{let t=xS(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:Gm}=Object,BB={},wS="listenerMiddleware",ise=(e,t)=>{let r=n=>JB(e,()=>n.abort(e.reason));return(n,o)=>{jO(n,"taskExecutor");let a=new AbortController;r(a);let i=ase(async()=>{ep(e),ep(a.signal);let s=await n({pause:xS(a.signal),delay:RB(a.signal),signal:a.signal});return ep(a.signal),s},()=>a.abort(nse));return o?.autoJoin&&t.push(i.catch(vS)),{result:xS(e)(i),cancel(){a.abort(rse)}}}},sse=(e,t)=>{let r=async(n,o)=>{ep(t);let a=()=>{},s=[new Promise((l,u)=>{let c=e({predicate:n,effect:(d,p)=>{p.unsubscribe(),l([d,p.getState(),p.getOriginalState()])}});a=()=>{c(),u()}})];o!=null&&s.push(new Promise(l=>setTimeout(l,o,null)));try{let l=await QB(t,Promise.race(s));return ep(t),l}finally{a()}};return((n,o)=>ZB(r(n,o)))},e7=e=>{let{type:t,actionCreator:r,matcher:n,predicate:o,effect:a}=e;if(t)o=vo(t).match;else if(r)t=r.type,o=r.match;else if(n)o=n;else if(!o)throw new Error(vi(21));return jO(a,"options.listener"),{predicate:o,type:t,effect:a}},t7=Gm(e=>{let{type:t,predicate:r,effect:n}=e7(e);return{id:VB(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(vi(22))}}},{withTypes:()=>t7}),FB=(e,t)=>{let{type:r,effect:n,predicate:o}=e7(t);return Array.from(e.values()).find(a=>(typeof r=="string"?a.type===r:a.predicate===o)&&a.effect===n)},MO=e=>{e.pending.forEach(t=>{t.abort(PO)})},lse=(e,t)=>()=>{for(let r of t.keys())MO(r);e.clear()},UB=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},r7=Gm(vo(`${wS}/add`),{withTypes:()=>r7}),use=vo(`${wS}/removeAll`),n7=Gm(vo(`${wS}/remove`),{withTypes:()=>n7}),cse=(...e)=>{console.error(`${wS}/error`,...e)},lu=(e={})=>{let t=new Map,r=new Map,n=f=>{let m=r.get(f)??0;r.set(f,m+1)},o=f=>{let m=r.get(f)??1;m===1?r.delete(f):r.set(f,m-1)},{extra:a,onError:i=cse}=e;jO(i,"onError");let s=f=>(f.unsubscribe=()=>t.delete(f.id),t.set(f.id,f),m=>{f.unsubscribe(),m?.cancelActive&&MO(f)}),l=(f=>{let m=FB(t,f)??t7(f);return s(m)});Gm(l,{withTypes:()=>l});let u=f=>{let m=FB(t,f);return m&&(m.unsubscribe(),f.cancelActive&&MO(m)),!!m};Gm(u,{withTypes:()=>u});let c=async(f,m,y,b)=>{let g=new AbortController,h=sse(l,g.signal),v=[];try{f.pending.add(g),n(f),await Promise.resolve(f.effect(m,Gm({},y,{getOriginalState:b,condition:(x,S)=>h(x,S).then(Boolean),take:h,delay:RB(g.signal),pause:xS(g.signal),extra:a,signal:g.signal,fork:ise(g.signal,v),unsubscribe:f.unsubscribe,subscribe:()=>{t.set(f.id,f)},cancelActiveListeners:()=>{f.pending.forEach((x,S,_)=>{x!==g&&(x.abort(PO),_.delete(x))})},cancel:()=>{g.abort(PO),f.pending.delete(g)},throwIfCancelled:()=>{ep(g.signal)}})))}catch(x){x instanceof bS||UB(i,x,{raisedBy:"effect"})}finally{await Promise.all(v),g.abort(ose),o(f),f.pending.delete(g)}},d=lse(t,r);return{middleware:f=>m=>y=>{if(!mO(y))return m(y);if(r7.match(y))return l(y.payload);if(use.match(y)){d();return}if(n7.match(y))return u(y.payload);let b=f.getState(),g=()=>{if(b===BB)throw new Error(vi(23));return b},h;try{if(h=m(y),t.size>0){let v=f.getState(),x=Array.from(t.values());for(let S of x){let _=!1;try{_=S.predicate(y,v,b)}catch(w){_=!1,UB(i,w,{raisedBy:"predicate"})}_&&c(S,y,f,g)}}}finally{b=BB}return h},startListening:l,stopListening:u,clearListeners:d}};function vi(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var dse={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},o7=Cr({name:"chartLayout",initialState:dse,reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){var r,n,o,a;e.margin.top=(r=t.payload.top)!==null&&r!==void 0?r:0,e.margin.right=(n=t.payload.right)!==null&&n!==void 0?n:0,e.margin.bottom=(o=t.payload.bottom)!==null&&o!==void 0?o:0,e.margin.left=(a=t.payload.left)!==null&&a!==void 0?a:0},setScale(e,t){e.scale=t.payload}}}),SS=o7.actions,$O=SS.setMargin,a7=SS.setLayout,i7=SS.setChartSize,s7=SS.setScale;var l7=o7.reducer;function kS(e,t,r){return Array.isArray(e)&&e&&t+r!==0?e.slice(t,r+1):e}function Ot(e){return Number.isFinite(e)}function qa(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function u7(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Ka(e){for(var t=1;t{if(t&&r){var n=r.width,o=r.height,a=t.align,i=t.verticalAlign,s=t.layout,l=t.position,u=t.offset,c=u===void 0?0:u;if(l!=null){if(lv(l)){if(l==="top"&&De(e.top))return Ka(Ka({},e),{},{top:e.top+(o||0)+c});if(l==="bottom"&&De(e.bottom))return Ka(Ka({},e),{},{bottom:e.bottom+(o||0)+c});if(l==="left"&&De(e.left))return Ka(Ka({},e),{},{left:e.left+(n||0)+c});if(l==="right"&&De(e.right))return Ka(Ka({},e),{},{right:e.right+(n||0)+c})}return e}if((s==="vertical"||s==="horizontal"&&i==="middle")&&a!=="center"&&De(e[a]))return Ka(Ka({},e),{},{[a]:e[a]+(n||0)});if((s==="horizontal"||s==="vertical"&&a==="center")&&i!=="middle"&&De(e[i]))return Ka(Ka({},e),{},{[i]:e[i]+(o||0)})}return e},sa=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",LO=(e,t,r,n)=>{if(n)return e.map(s=>s.coordinate);var o,a,i=e.map(s=>(s.coordinate===t&&(o=!0),s.coordinate===r&&(a=!0),s.coordinate));return o||i.push(t),a||i.push(r),i},zO=(e,t,r)=>{if(!e)return null;var n=e.duplicateDomain,o=e.type,a=e.range,i=e.scale,s=e.realScaleType,l=e.isCategorical,u=e.categoricalDomain,c=e.tickCount,d=e.ticks,p=e.niceTicks,f=e.axisType;if(!i)return null;var m=s==="scaleBand"&&i.bandwidth?i.bandwidth()/2:2,y=(t||r)&&o==="category"&&i.bandwidth?i.bandwidth()/m:0;if(y=f==="angleAxis"&&a&&a.length>=2?Zr(a[0]-a[1])*2*y:y,t&&(d||p)){var b=(d||p||[]).map((g,h)=>{var v=n?n.indexOf(g):g,x=i.map(v);return Ot(x)?{coordinate:x+y,value:g,offset:y,index:h}:null}).filter(Ao);return b}return l&&u?u.map((g,h)=>{var v=i.map(g);return Ot(v)?{coordinate:v+y,value:g,index:h,offset:y}:null}).filter(Ao):i.ticks&&!r&&c!=null?i.ticks(c).map((g,h)=>{var v=i.map(g);return Ot(v)?{coordinate:v+y,value:g,index:h,offset:y}:null}).filter(Ao):i.domain().map((g,h)=>{var v=i.map(g);return Ot(v)?{coordinate:v+y,value:n?n[g]:g,index:h,offset:y}:null}).filter(Ao)},d7=(e,t)=>{if(!t||t.length!==2||!De(t[0])||!De(t[1]))return e;var r=Math.min(t[0],t[1]),n=Math.max(t[0],t[1]),o=[e[0],e[1]];return(!De(e[0])||e[0]n)&&(o[1]=n),o[0]>n&&(o[0]=n),o[1]{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var o=0;o=0?(u[0]=a,a+=p,u[1]=a):(u[0]=i,i+=p,u[1]=i)}}}},hse=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var o=0;o=0?(l[0]=a,a+=u,l[1]=a):(l[0]=0,l[1]=0)}}}},yse={sign:gse,expand:rO,none:gi,silhouette:nO,wiggle:oO,positive:hse},p7=(e,t,r)=>{var n,o=(n=yse[r])!==null&&n!==void 0?n:gi,a=tO().keys(t).value((s,l)=>Number(Ht(s,l,0))).order(zm).offset(o),i=a(e);return i.forEach((s,l)=>{s.forEach((u,c)=>{var d=Ht(e[c],t[l],0);Array.isArray(d)&&d.length===2&&De(d[0])&&De(d[1])&&(u[0]=d[0],u[1]=d[1])})}),i};function _S(e){return e==null?void 0:String(e)}function Ym(e){var t=e.axis,r=e.ticks,n=e.bandSize,o=e.entry,a=e.index,i=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!ar(o[t.dataKey])){var s=uw(r,"value",o[t.dataKey]);if(s)return s.coordinate+n/2}return r!=null&&r[a]?r[a].coordinate+n/2:null}var l=Ht(o,ar(i)?t.dataKey:i),u=t.scale.map(l);return De(u)?u:null}var BO=e=>{var t=e.axis,r=e.ticks,n=e.offset,o=e.bandSize,a=e.entry,i=e.index;if(t.type==="category")return r[i]?r[i].coordinate+n:null;var s=Ht(a,t.dataKey,t.scale.domain()[i]);if(ar(s))return null;var l=t.scale.map(s);return De(l)?l-o/2+n:null},f7=e=>{var t=e.numericAxis,r=t.scale.domain();if(t.type==="number"){var n=Math.min(r[0],r[1]),o=Math.max(r[0],r[1]);return n<=0&&o>=0?0:o<0?o:n}return r[0]},vse=e=>{var t=e.flat(2).filter(De);return[Math.min(...t),Math.max(...t)]},xse=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],m7=(e,t,r)=>{if(!(e==null||Object.keys(e).length===0))return xse(Object.keys(e).reduce((n,o)=>{var a=e[o];if(!a)return n;var i=a.stackedData,s=i.reduce((l,u)=>{var c=kS(u,t,r),d=vse(c);return!Ot(d[0])||!Ot(d[1])?l:[Math.min(l[0],d[0]),Math.max(l[1],d[1])]},[1/0,-1/0]);return[Math.min(s[0],n[0]),Math.max(s[1],n[1])]},[1/0,-1/0]))},FO=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,UO=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Zi=(e,t,r)=>{if(e&&e.scale&&e.scale.bandwidth){var n=e.scale.bandwidth();if(!r||n>0)return n}if(e&&t&&t.length>=2){for(var o=au(t,y=>y.coordinate),a=[],i=0,s=1,l=o.length;sp&&(f=Math.min(m,f));return f===1/0?0:f}return r?void 0:0};function WO(e){var t=e.tooltipEntrySettings,r=e.dataKey,n=e.payload,o=e.value,a=e.name;return Ka(Ka({},t),{},{dataKey:r,payload:n,value:o,name:a})}function xi(e,t){if(e!=null)return String(e);if(typeof t=="string")return t}var g7=(e,t)=>{if(t==="horizontal")return e.relativeX;if(t==="vertical")return e.relativeY},h7=(e,t)=>t==="centric"?e.angle:e.radius;var qo=e=>e.layout.width,Ko=e=>e.layout.height,y7=e=>e.layout.scale,Xm=e=>e.layout.margin;var Zm=ae(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),Jm=ae(e=>e.cartesianAxis.yAxis,e=>Object.values(e));var CS="data-recharts-item-index",AS="data-recharts-item-id",tp=60,kv=30;function v7(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function ES(e){for(var t=1;te.brush.height;function _se(e){var t=Jm(e);return t.reduce((r,n)=>{if(n.orientation==="left"&&!n.mirror&&!n.hide){var o=typeof n.width=="number"?n.width:tp;return r+o}return r},0)}function Cse(e){var t=Jm(e);return t.reduce((r,n)=>{if(n.orientation==="right"&&!n.mirror&&!n.hide){var o=typeof n.width=="number"?n.width:tp;return r+o}return r},0)}function Ase(e){var t=Zm(e);return t.reduce((r,n)=>{if(n.orientation==="top"&&!n.mirror&&!n.hide){var o=typeof n.height=="number"?n.height:kv;return r+o}return r},0)}function Ese(e){var t=Zm(e);return t.reduce((r,n)=>{if(n.orientation==="bottom"&&!n.mirror&&!n.hide){var o=typeof n.height=="number"?n.height:kv;return r+o}return r},0)}var Fr=ae([qo,Ko,Xm,kse,_se,Cse,Ase,Ese,dO,sB],(e,t,r,n,o,a,i,s,l,u)=>{var c={left:(r.left||0)+o,right:(r.right||0)+a},d={top:(r.top||0)+i,bottom:(r.bottom||0)+s},p=ES(ES({},d),c),f=p.bottom;p.bottom+=n,p=c7(p,l,u);var m=e-p.left-p.right,y=t-p.top-p.bottom;return ES(ES({brushBottom:f},p),{},{width:Math.max(m,0),height:Math.max(y,0)})}),NS=ae(Fr,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),Qm=ae(qo,Ko,(e,t)=>({x:0,y:0,width:e,height:t}));var Nse=Z(J()),TS=Z(J()),Tse=(0,TS.createContext)(null),Ar=()=>(0,TS.useContext)(Tse)!=null;var Rm=e=>e.brush,rp=ae([Rm,Fr,Xm],(e,t,r)=>({height:e.height,x:De(e.x)?e.x:t.left,y:De(e.y)?e.y:t.top+t.height+t.brushBottom-(r?.bottom||0),width:De(e.width)?e.width:t.width}));var np=Z(J()),xo=Z(J());function x7(e,t,{signal:r,edges:n}={}){let o,a=null,i=n!=null&&n.includes("leading"),s=n==null||n.includes("trailing"),l=()=>{a!==null&&(e.apply(o,a),o=void 0,a=null)},u=()=>{s&&l(),f()},c=null,d=()=>{c!=null&&clearTimeout(c),c=setTimeout(()=>{c=null,u()},t)},p=()=>{c!==null&&(clearTimeout(c),c=null)},f=()=>{p(),o=void 0,a=null},m=()=>{l()},y=function(...b){if(r?.aborted)return;o=this,a=b;let g=c==null;d(),i&&g&&l()};return y.schedule=d,y.cancel=f,y.flush=m,r?.addEventListener("abort",f,{once:!0}),y}function b7(e,t=0,r={}){typeof r!="object"&&(r={});let{leading:n=!1,trailing:o=!0,maxWait:a}=r,i=Array(2);n&&(i[0]="leading"),o&&(i[1]="trailing");let s,l=null,u=x7(function(...p){s=e.apply(this,p),l=null},t,{edges:i}),c=function(...p){return a!=null&&(l===null&&(l=Date.now()),Date.now()-l>=a)?(s=e.apply(this,p),l=Date.now(),u.cancel(),u.schedule(),s):(u.apply(this,p),s)},d=()=>(u.flush(),s);return c.cancel=u.cancel,c.flush=d,c}function HO(e,t=0,r={}){let{leading:n=!0,trailing:o=!0}=r;return b7(e,t,{leading:n,maxWait:t,trailing:o})}var Ose=!0,eg=function(t,r){for(var n=arguments.length,o=new Array(n>2?n-2:0),a=2;ao[i++]))}};var Ps={width:"100%",height:"100%",debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},qO=(e,t,r)=>{var n=r.width,o=n===void 0?Ps.width:n,a=r.height,i=a===void 0?Ps.height:a,s=r.aspect,l=r.maxHeight,u=eu(o)?e:Number(o),c=eu(i)?t:Number(i);return s&&s>0&&(u?c=u/s:c&&(u=c*s),l&&c!=null&&c>l&&(c=l)),{calculatedWidth:u,calculatedHeight:c}},Pse={width:0,height:0,overflow:"visible"},Mse={width:0,overflowX:"visible"},Ise={height:0,overflowY:"visible"},Dse={},w7=e=>{var t=e.width,r=e.height,n=eu(t),o=eu(r);return n&&o?Pse:n?Mse:o?Ise:Dse};function S7(e){var t=e.width,r=e.height,n=e.aspect,o=t,a=r;return o===void 0&&a===void 0?(o=Ps.width,a=Ps.height):o===void 0?o=n&&n>0?void 0:Ps.width:a===void 0&&(a=n&&n>0?void 0:Ps.height),{width:o,height:a}}var jse=["aspect","initialDimension","width","height","minWidth","minHeight","maxHeight","children","debounce","id","className","onResize","style"];function OS(){return OS=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 Vse(o)?np.createElement(A7.Provider,{value:o},t):null}var _v=()=>(0,xo.useContext)(A7),Gse=(0,xo.forwardRef)((e,t)=>{var r=e.aspect,n=e.initialDimension,o=n===void 0?Ps.initialDimension:n,a=e.width,i=e.height,s=e.minWidth,l=s===void 0?Ps.minWidth:s,u=e.minHeight,c=e.maxHeight,d=e.children,p=e.debounce,f=p===void 0?Ps.debounce:p,m=e.id,y=e.className,b=e.onResize,g=e.style,h=g===void 0?{}:g,v=qse(e,jse),x=(0,xo.useRef)(null),S=(0,xo.useRef)();S.current=b,(0,xo.useImperativeHandle)(t,()=>x.current);var _=(0,xo.useState)({containerWidth:o.width,containerHeight:o.height}),w=Bse(_,2),k=w[0],A=w[1],C=(0,xo.useCallback)((N,O)=>{A(D=>{var P=Math.round(N),j=Math.round(O);return D.containerWidth===P&&D.containerHeight===j?D:{containerWidth:P,containerHeight:j}})},[]);(0,xo.useEffect)(()=>{if(x.current==null||typeof ResizeObserver>"u")return Sa;var N=M=>{var W,Y=M[0];if(Y!=null){var L=Y.contentRect,G=L.width,q=L.height;C(G,q),(W=S.current)===null||W===void 0||W.call(S,G,q)}};f>0&&(N=HO(N,f,{trailing:!0,leading:!1}));var O=new ResizeObserver(N),D=x.current.getBoundingClientRect(),P=D.width,j=D.height;return C(P,j),O.observe(x.current),()=>{O.disconnect()}},[C,f]);var T=k.containerWidth,$=k.containerHeight;eg(!r||r>0,"The aspect(%s) must be greater than zero.",r);var Q=qO(T,$,{width:a,height:i,aspect:r,maxHeight:c}),B=Q.calculatedWidth,K=Q.calculatedHeight;return eg(T<0||$<0||B!=null&&B>0||K!=null&&K>0,`The width(%s) and height(%s) of chart should be greater than 0, + H`).concat(Xi,"M").concat(2*i,",").concat(o,` + A`).concat(a,",").concat(a,",0,1,1,").concat(i,",").concat(o),className:"recharts-legend-icon"});if(l==="rect")return _a.createElement("path",{stroke:"none",fill:s,d:"M0,".concat(Xi/8,"h").concat(Xi,"v").concat(Xi*3/4,"h").concat(-Xi,"z"),className:"recharts-legend-icon"});if(_a.isValidElement(t.legendIcon)){var u=wz({},t);return delete u.legendIcon,_a.cloneElement(t.legendIcon,u)}return _a.createElement(sO,{fill:s,cx:o,cy:o,size:Xi,sizeType:"diameter",type:l})}function Nae(e){var t=e.payload,r=e.iconSize,n=e.layout,o=e.formatter,a=e.inactiveColor,i=e.iconType,s=e.labelStyle,l={x:0,y:0,width:Xi,height:Xi},u={display:n==="horizontal"?"inline-block":"block",marginRight:10,whiteSpace:"nowrap"},c={display:"inline-block",verticalAlign:"middle",marginRight:4};return t.map((d,p)=>{var f,m,y=d.formatter||o,b=bt({"recharts-legend-item":!0,["legend-item-".concat(p)]:!0,inactive:d.inactive});if(d.type==="none")return null;var g=typeof s=="object"?wz({},s):{};g.color=d.inactive?a:g.color||d.color,(f=g.whiteSpace)!==null&&f!==void 0||(g.whiteSpace="normal"),(m=g.overflowWrap)!==null&&m!==void 0||(g.overflowWrap="break-word");var h=y?y(d.value,d,p):d.value;return _a.createElement("li",ww({className:b,style:u,key:"legend-item-".concat(p)},iu(e,d,p)),_a.createElement(lv,{width:r,height:r,viewBox:l,style:c,"aria-label":d.value==null?"legend icon":"".concat(d.value," legend icon")},_a.createElement(Eae,{data:d,iconType:i,inactiveColor:a})),_a.createElement("span",{className:"recharts-legend-item-text",style:g},h))})}var Sz=e=>{var t=nr(e,Cae),r=t.payload,n=t.layout,o=t.align;if(!r||!r.length)return null;var a={padding:0,margin:0,textAlign:n==="horizontal"?o:"left"};return _a.createElement("ul",{className:"recharts-default-legend",style:a},_a.createElement(Nae,ww({},t,{payload:r})))};function kz(e,t){let r=new Map;for(let n=0;nObject.prototype.propertyIsEnumerable.call(e,t))}function su(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var kw="[object RegExp]",Wm="[object String]",Hm="[object Number]",qm="[object Boolean]",_w="[object Arguments]",Cw="[object Symbol]",Aw="[object Date]",Ew="[object Map]",Nw="[object Set]",Tw="[object Array]",Ez="[object Function]",Ow="[object ArrayBuffer]",Km="[object Object]",Nz="[object Error]",Pw="[object DataView]",Mw="[object Uint8Array]",Iw="[object Uint8ClampedArray]",Dw="[object Uint16Array]",jw="[object Uint32Array]",Tz="[object BigUint64Array]",$w="[object Int8Array]",Lw="[object Int16Array]",zw="[object Int32Array]",Oz="[object BigInt64Array]",Bw="[object Float32Array]",Fw="[object Float64Array]";var lO=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||(function(){return this})();function gv(e){return typeof lO.Buffer<"u"&&lO.Buffer.isBuffer(e)}function Pz(e,t){return kc(e,void 0,e,new Map,t)}function kc(e,t,r,n=new Map,o=void 0){let a=o?.(e,t,r,n);if(a!==void 0)return a;if(fv(e))return e;if(n.has(e))return n.get(e);if(Array.isArray(e)){let i=new Array(e.length);n.set(e,i);for(let s=0;s{}):uO(e,t,function n(o,a,i,s,l,u){let c=r(o,a,i,s,l,u);return c!==void 0?!!c:uO(o,a,n,u,!1)},new Map,!0)}function uO(e,t,r,n,o=!1){if(t===e)return!0;switch(typeof t){case"object":return Oae(e,t,r,n);case"function":return Object.keys(t).length>0?uO(e,{...t},r,n,o):_c(e,t);default:return Uw(e)?o?typeof t=="string"?t==="":!0:_c(e,t):_c(e,t)}}function Oae(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return Iz(e,t,r,n);if(t instanceof Map)return Pae(e,t,r,n);if(t instanceof Set)return Mae(e,t,r,n);let o=Object.keys(t);if(e==null||fv(e))return o.length===0;if(o.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let a=0;a{})}function Dz(e){return e=Mz(e),t=>Ww(t,e)}function jz(e,t){return Pz(e,(r,n,o,a)=>{let i=t?.(r,n,o,a);if(i!==void 0)return i;if(typeof e=="object"){if(su(e)==="[object Object]"&&typeof e.constructor!="function"){let s={};return a.set(e,s),Zi(s,e,o,a),s}switch(Object.prototype.toString.call(e)){case Hm:case Wm:case qm:{let s=new e.constructor(e?.valueOf());return Zi(s,e),s}case _w:{let s={};return Zi(s,e),s.length=e.length,s[Symbol.iterator]=e[Symbol.iterator],s}default:return}}})}function $z(e){return jz(e)}var Iae=/^(?:0|[1-9]\d*)$/;function Hw(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e=0}function qw(e){return e!=null&&typeof e!="function"&&Uz(e.length)}function Wz(e){return typeof e=="object"&&e!==null}function Hz(e){return Wz(e)&&qw(e)}function Kw(e,t=Sw){return Hz(e)?kz(Array.from(e),_z(Fz(t),1)):[]}function Vw(e,t,r){return t===!0?Kw(e,r):typeof t=="function"?Kw(e,t):e}var Rz=Z(Jz()),yv=Z(J());var Qz=Z(J()),hv=(0,Qz.createContext)(null);var Jae=e=>e,jt=()=>{var e=(0,yv.useContext)(hv);return e?e.store.dispatch:Jae},Yw=()=>{},Qae=()=>Yw,Rae=(e,t)=>e===t;function $e(e){var t=(0,yv.useContext)(hv),r=(0,yv.useMemo)(()=>t?n=>{if(n!=null)return e(n)}:Yw,[t,e]);return(0,Rz.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:Qae,t?t.store.getState:Yw,t?t.store.getState:Yw,r,Rae)}function eie(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function tie(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(r=>typeof r=="function")){let r=e.map(n=>typeof n=="function"?`function ${n.name||"unnamed"}()`:typeof n).join(", ");throw new TypeError(`${t}[${r}]`)}}var eB=e=>Array.isArray(e)?e:[e];function rie(e){let t=Array.isArray(e[0])?e[0]:e;return tie(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function nie(e,t){let r=[],{length:n}=e;for(let o=0;otypeof WeakRef>"u"?oie:WeakRef,rB=aie(),iie=0,tB=1;function Xw(){return{s:iie,v:void 0,o:null,p:null}}function sie(e){return e instanceof rB?e.deref():e}function nB(e,t={}){let r=Xw(),{resultEqualityCheck:n}=t,o,a=0;function i(){let s=r,{length:l}=arguments;for(let d=0,p=l;d{r=Xw(),i.resetResultsCount()},i.resultsCount=()=>a,i.resetResultsCount=()=>{a=0},i}function lie(e,...t){let r=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,n=(...o)=>{let a=0,i=0,s,l={},u=o.pop();typeof u=="object"&&(l=u,u=o.pop()),eie(u,`createSelector expects an output function after the inputs, but received: [${typeof u}]`);let c={...r,...l},{memoize:d,memoizeOptions:p=[],argsMemoize:f=nB,argsMemoizeOptions:m=[]}=c,y=eB(p),b=eB(m),g=rie(o),h=d(function(){return a++,u.apply(null,arguments)},...y),v=!0,x=f(function(){i++;let k=nie(g,arguments);return s=h.apply(null,k),s},...b);return Object.assign(x,{resultFunc:u,memoizedResultFunc:h,dependencies:g,dependencyRecomputations:()=>i,resetDependencyRecomputations:()=>{i=0},lastResult:()=>s,recomputations:()=>a,resetRecomputations:()=>{a=0},memoize:d,argsMemoize:f})};return Object.assign(n,{withTypes:()=>n}),n}var ae=lie(nB);function oB(e,t=1){let r=[],n=Math.floor(t),o=(a,i)=>{for(let s=0;s{if(e!==t){let n=aB(e),o=aB(t);if(n===o&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?o-n:n-o}return 0};function Zw(e){return typeof e=="symbol"||e instanceof Symbol}var uie=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,cie=/^\w*$/;function sB(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||Zw(e)?!0:typeof e=="string"&&(cie.test(e)||!uie.test(e))||t!=null&&Object.hasOwn(t,e)}function lB(e,t,r,n){if(e==null)return[];r=n?void 0:r,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(r)||(r=r==null?[]:[r]),r=r.map(s=>String(s));let o=(s,l)=>{let u=s;for(let c=0;cl==null||s==null?l:typeof s=="object"&&"key"in s?Object.hasOwn(l,s.key)?l[s.key]:o(l,s.path):typeof s=="function"?s(l):Array.isArray(s)?o(l,s):typeof l=="object"?l[s]:l,i=t.map(s=>(Array.isArray(s)&&s.length===1&&(s=s[0]),s==null||typeof s=="function"||Array.isArray(s)||sB(s)?s:{key:s,path:Mm(s)}));return e.map(s=>({original:s,criteria:i.map(l=>a(l,s))})).slice().sort((s,l)=>{for(let u=0;us.original)}function lu(e,...t){let r=t.length;return r>1&&vv(e,t[0],t[1])?t=[]:r>2&&vv(t[0],t[1],t[2])&&(t=[t[0]]),lB(e,oB(t),["asc"])}var pO=e=>e.legend.settings,uB=e=>e.legend.size,die=e=>e.legend.payload,cB=ae([die,pO],(e,t)=>{var r=t.itemSorter,n=e.flat(1);return r?lu(n,r):n});function dB(){return $e(cB)}var uu=Z(J());function pie(e,t){return hie(e)||gie(e,t)||mie(e,t)||fie()}function fie(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mie(e,t){if(e){if(typeof e=="string")return pB(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?pB(e,t):void 0}}function pB(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rJw||Math.abs(e.left-t.left)>Jw||Math.abs(e.top-t.top)>Jw||Math.abs(e.width-t.width)>Jw}function mB(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function Qw(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=(0,uu.useState)({height:0,left:0,top:0,width:0}),r=pie(t,2),n=r[0],o=r[1],a=(0,uu.useRef)(null),i=(0,uu.useRef)(n);i.current=n;var s=(0,uu.useCallback)(l=>{if(a.current!=null&&(a.current.disconnect(),a.current=null),l!=null){var u=mB(l);if(fB(u,i.current)&&o(u),typeof ResizeObserver<"u"){var c=new ResizeObserver(()=>{var d=mB(l);fB(d,i.current)&&o(d)});c.observe(l),a.current=c}}},[...e]);return(0,uu.useEffect)(()=>()=>{var l;(l=a.current)===null||l===void 0||l.disconnect()},[]),[n,s]}var O7=Z(J());function Ro(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var yie=typeof Symbol=="function"&&Symbol.observable||"@@observable",gB=yie,fO=()=>Math.random().toString(36).substring(7).split("").join("."),vie={INIT:`@@redux/INIT${fO()}`,REPLACE:`@@redux/REPLACE${fO()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${fO()}`},Rw=vie;function eS(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function mO(e,t,r){if(typeof e!="function")throw new Error(Ro(2));if(typeof t=="function"&&typeof r=="function"||typeof r=="function"&&typeof arguments[3]=="function")throw new Error(Ro(0));if(typeof t=="function"&&typeof r>"u"&&(r=t,t=void 0),typeof r<"u"){if(typeof r!="function")throw new Error(Ro(1));return r(mO)(e,t)}let n=e,o=t,a=new Map,i=a,s=0,l=!1;function u(){i===a&&(i=new Map,a.forEach((b,g)=>{i.set(g,b)}))}function c(){if(l)throw new Error(Ro(3));return o}function d(b){if(typeof b!="function")throw new Error(Ro(4));if(l)throw new Error(Ro(5));let g=!0;u();let h=s++;return i.set(h,b),function(){if(g){if(l)throw new Error(Ro(6));g=!1,u(),i.delete(h),a=null}}}function p(b){if(!eS(b))throw new Error(Ro(7));if(typeof b.type>"u")throw new Error(Ro(8));if(typeof b.type!="string")throw new Error(Ro(17));if(l)throw new Error(Ro(9));try{l=!0,o=n(o,b)}finally{l=!1}return(a=i).forEach(h=>{h()}),b}function f(b){if(typeof b!="function")throw new Error(Ro(10));n=b,p({type:Rw.REPLACE})}function m(){let b=d;return{subscribe(g){if(typeof g!="object"||g===null)throw new Error(Ro(11));function h(){let x=g;x.next&&x.next(c())}return h(),{unsubscribe:b(h)}},[gB](){return this}}}return p({type:Rw.INIT}),{dispatch:p,subscribe:d,getState:c,replaceReducer:f,[gB]:m}}function xie(e){Object.keys(e).forEach(t=>{let r=e[t];if(typeof r(void 0,{type:Rw.INIT})>"u")throw new Error(Ro(12));if(typeof r(void 0,{type:Rw.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(Ro(13))})}function tS(e){let t=Object.keys(e),r={};for(let i=0;i"u"){let b=l&&l.type;throw new Error(Ro(14))}c[p]=y,u=u||y!==m}return u=u||n.length!==Object.keys(s).length,u?c:s}}function xv(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function hB(...e){return t=>(r,n)=>{let o=t(r,n),a=()=>{throw new Error(Ro(15))},i={getState:o.getState,dispatch:(l,...u)=>a(l,...u)},s=e.map(l=>l(i));return a=xv(...s)(o.dispatch),{...o,dispatch:a}}}function gO(e){return eS(e)&&"type"in e&&typeof e.type=="string"}var CB=Symbol.for("immer-nothing"),yB=Symbol.for("immer-draftable"),ia=Symbol.for("immer-state");function Os(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var hi=Object,Ym=hi.getPrototypeOf,aS="constructor",dS="prototype",xO="configurable",iS="enumerable",nS="writable",bv="value",ll=e=>!!e&&!!e[ia];function yi(e){return e?AB(e)||fS(e)||!!e[yB]||!!e[aS]?.[yB]||mS(e)||gS(e):!1}var bie=hi[dS][aS].toString(),vB=new WeakMap;function AB(e){if(!e||!EO(e))return!1;let t=Ym(e);if(t===null||t===hi[dS])return!0;let r=hi.hasOwnProperty.call(t,aS)&&t[aS];if(r===Object)return!0;if(!Gm(r))return!1;let n=vB.get(r);return n===void 0&&(n=Function.toString.call(r),vB.set(r,n)),n===bie}function pS(e,t,r=!0){kv(e)===0?(r?Reflect.ownKeys(e):hi.keys(e)).forEach(o=>{t(o,e[o],e)}):e.forEach((n,o)=>t(o,n,e))}function kv(e){let t=e[ia];return t?t.type_:fS(e)?1:mS(e)?2:gS(e)?3:0}var hO=(e,t,r=kv(e))=>r===2?e.has(t):hi[dS].hasOwnProperty.call(e,t),bO=(e,t,r=kv(e))=>r===2?e.get(t):e[t],sS=(e,t,r,n=kv(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function wie(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var fS=Array.isArray,mS=e=>e instanceof Map,gS=e=>e instanceof Set,EO=e=>typeof e=="object",Gm=e=>typeof e=="function",yO=e=>typeof e=="boolean";function Sie(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var cu=e=>e.copy_||e.base_;var NO=e=>e.modified_?e.copy_:e.base_;function wO(e,t){if(mS(e))return new Map(e);if(gS(e))return new Set(e);if(fS(e))return Array[dS].slice.call(e);let r=AB(e);if(t===!0||t==="class_only"&&!r){let n=hi.getOwnPropertyDescriptors(e);delete n[ia];let o=Reflect.ownKeys(n);for(let a=0;a1&&hi.defineProperties(e,{set:rS,add:rS,clear:rS,delete:rS}),hi.freeze(e),t&&pS(e,(r,n)=>{TO(n,!0)},!1)),e}function kie(){Os(2)}var rS={[bv]:kie};function hS(e){return e===null||!EO(e)?!0:hi.isFrozen(e)}var lS="MapSet",SO="Patches",xB="ArrayMethods",EB={};function ep(e){let t=EB[e];return t||Os(0,e),t}var bB=e=>!!EB[e];var wv,NB=()=>wv,_ie=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:bB(lS)?ep(lS):void 0,arrayMethodsPlugin_:bB(xB)?ep(xB):void 0});function wB(e,t){t&&(e.patchPlugin_=ep(SO),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function kO(e){_O(e),e.drafts_.forEach(Cie),e.drafts_=null}function _O(e){e===wv&&(wv=e.parent_)}var SB=e=>wv=_ie(wv,e);function Cie(e){let t=e[ia];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function kB(e,t){t.unfinalizedDrafts_=t.drafts_.length;let r=t.drafts_[0];if(e!==void 0&&e!==r){r[ia].modified_&&(kO(t),Os(4)),yi(e)&&(e=_B(t,e));let{patchPlugin_:o}=t;o&&o.generateReplacementPatches_(r[ia].base_,e,t)}else e=_B(t,r);return Aie(t,e,!0),kO(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==CB?e:void 0}function _B(e,t){if(hS(t))return t;let r=t[ia];if(!r)return uS(t,e.handledSet_,e);if(!yS(r,e))return t;if(!r.modified_)return r.base_;if(!r.finalized_){let{callbacks_:n}=r;if(n)for(;n.length>0;)n.pop()(e);PB(r,e)}return r.copy_}function Aie(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&TO(t,r)}function TB(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var yS=(e,t)=>e.scope_===t,Eie=[];function OB(e,t,r,n){let o=cu(e),a=e.type_;if(n!==void 0&&bO(o,n,a)===t){sS(o,n,r,a);return}if(!e.draftLocations_){let s=e.draftLocations_=new Map;pS(o,(l,u)=>{if(ll(u)){let c=s.get(u)||[];c.push(l),s.set(u,c)}})}let i=e.draftLocations_.get(t)??Eie;for(let s of i)sS(o,s,r,a)}function Nie(e,t,r){e.callbacks_.push(function(o){let a=t;if(!a||!yS(a,o))return;o.mapSetPlugin_?.fixSetContents(a);let i=NO(a);OB(e,a.draft_??a,i,r),PB(a,o)})}function PB(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let o=n.getPath(e);o&&n.generatePatches_(e,o,t)}TB(e)}}function Tie(e,t,r){let{scope_:n}=e;if(ll(r)){let o=r[ia];yS(o,n)&&o.callbacks_.push(function(){oS(e);let i=NO(o);OB(e,r,i,t)})}else yi(r)&&e.callbacks_.push(function(){let a=cu(e);e.type_===3?a.has(r)&&uS(r,n.handledSet_,n):bO(a,t,e.type_)===r&&n.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&uS(bO(e.copy_,t,e.type_),n.handledSet_,n)})}function uS(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||ll(e)||t.has(e)||!yi(e)||hS(e)||(t.add(e),pS(e,(n,o)=>{if(ll(o)){let a=o[ia];if(yS(a,r)){let i=NO(a);sS(e,n,i,e.type_),TB(a)}}else yi(o)&&uS(o,t,r)})),e}function Oie(e,t){let r=fS(e),n={type_:r?1:0,scope_:t?t.scope_:NB(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},o=n,a=cS;r&&(o=[n],a=Sv);let{revoke:i,proxy:s}=Proxy.revocable(o,a);return n.draft_=s,n.revoke_=i,[s,n]}var cS={get(e,t){if(t===ia)return e;let r=e.scope_.arrayMethodsPlugin_,n=e.type_===1&&typeof t=="string";if(n&&r?.isArrayOperationMethod(t))return r.createMethodInterceptor(e,t);let o=cu(e);if(!hO(o,t,e.type_))return Mie(e,o,t);let a=o[t];if(e.finalized_||!yi(a)||n&&e.operationMethod&&r?.isMutatingArrayMethod(e.operationMethod)&&Sie(t))return a;if(a===vO(e.base_,t)||Pie(e,t,a)){oS(e);let i=e.type_===1?+t:t,s=AO(e.scope_,a,e,i);return e.copy_[i]=s}return a},has(e,t){return t in cu(e)},ownKeys(e){return Reflect.ownKeys(cu(e))},set(e,t,r){let n=MB(cu(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){let o=vO(cu(e),t),a=o?.[ia];if(a&&a.base_===r)return e.copy_[t]=r,e.assigned_.set(t,!1),!0;if(wie(r,o)&&(r!==void 0||hO(e.base_,t,e.type_)))return!0;oS(e),CO(e)}return e.copy_[t]===r&&(r!==void 0||hO(e.copy_,t,e.type_))||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_.set(t,!0),Tie(e,t,r)),!0},deleteProperty(e,t){return oS(e),vO(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),CO(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let r=cu(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[nS]:!0,[xO]:e.type_!==1||t!=="length",[iS]:n[iS],[bv]:r[t]}},defineProperty(){Os(11)},getPrototypeOf(e){return Ym(e.base_)},setPrototypeOf(){Os(12)}},Sv={};for(let e in cS){let t=cS[e];Sv[e]=function(){let r=arguments;return r[0]=r[0][0],t.apply(this,r)}}Sv.deleteProperty=function(e,t){return Sv.set.call(this,e,t,void 0)};Sv.set=function(e,t,r){return cS.set.call(this,e[0],t,r,e[0])};function vO(e,t){let r=e[ia];return(r?cu(r):e)[t]}function Pie(e,t,r){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!yi(r)||r[ia]?!1:e.baseRefs_.has(r)}function Mie(e,t,r){let n=MB(t,r);return n?bv in n?n[bv]:n.get?.call(e.draft_):void 0}function MB(e,t){if(!(t in e))return;let r=Ym(e);for(;r;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Ym(r)}}function CO(e){e.modified_||(e.modified_=!0,e.parent_&&CO(e.parent_))}function oS(e){e.copy_||(e.assigned_=new Map,e.copy_=wO(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var Iie=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(t,r,n)=>{if(Gm(t)&&!Gm(r)){let a=r;r=t;let i=this;return function(l=a,...u){return i.produce(l,c=>r.call(this,c,...u))}}Gm(r)||Os(6),n!==void 0&&!Gm(n)&&Os(7);let o;if(yi(t)){let a=SB(this),i=AO(a,t,void 0),s=!0;try{o=r(i),s=!1}finally{s?kO(a):_O(a)}return wB(a,n),kB(o,a)}else if(!t||!EO(t)){if(o=r(t),o===void 0&&(o=t),o===CB&&(o=void 0),this.autoFreeze_&&TO(o,!0),n){let a=[],i=[];ep(SO).generateReplacementPatches_(t,o,{patches_:a,inversePatches_:i}),n(a,i)}return o}else Os(1,t)},this.produceWithPatches=(t,r)=>{if(Gm(t))return(i,...s)=>this.produceWithPatches(i,l=>t(l,...s));let n,o;return[this.produce(t,r,(i,s)=>{n=i,o=s}),n,o]},yO(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),yO(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),yO(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){yi(e)||Os(8),ll(e)&&(e=ea(e));let t=SB(this),r=AO(t,e,void 0);return r[ia].isManual_=!0,_O(t),r}finishDraft(e,t){let r=e&&e[ia];(!r||!r.isManual_)&&Os(9);let{scope_:n}=r;return wB(n,t),kB(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){let o=t[r];if(o.path.length===0&&o.op==="replace"){e=o.value;break}}r>-1&&(t=t.slice(r+1));let n=ep(SO).applyPatches_;return ll(e)?n(e,t):this.produce(e,o=>n(o,t))}};function AO(e,t,r,n){let[o,a]=mS(t)?ep(lS).proxyMap_(t,r):gS(t)?ep(lS).proxySet_(t,r):Oie(t,r);return(r?.scope_??NB()).drafts_.push(o),a.callbacks_=r?.callbacks_??[],a.key_=n,r&&n!==void 0?Nie(r,a,n):a.callbacks_.push(function(l){l.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:u}=l;a.modified_&&u&&u.generatePatches_(a,[],l)}),o}function ea(e){return ll(e)||Os(10,e),IB(e)}function IB(e){if(!yi(e)||hS(e))return e;let t=e[ia],r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=wO(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=wO(e,!0);return pS(r,(o,a)=>{sS(r,o,IB(a))},n),t&&(t.finalized_=!1),r}var Die=new Iie,OO=Die.produce;var Zt=e=>e;function DB(e){return({dispatch:r,getState:n})=>o=>a=>typeof a=="function"?a(r,n,e):o(a)}var jB=DB(),$B=DB;var jie=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?xv:xv.apply(null,arguments)},cMe=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION__?window.__REDUX_DEVTOOLS_EXTENSION__:function(){return function(e){return e}},$ie=e=>e&&typeof e.match=="function";function xo(e,t){function r(...n){if(t){let o=t(...n);if(!o)throw new Error(vi(0));return{type:e,payload:o.payload,..."meta"in o&&{meta:o.meta},..."error"in o&&{error:o.error}}}return{type:e,payload:n[0]}}return r.toString=()=>`${e}`,r.type=e,r.match=n=>gO(n)&&n.type===e,r}var qB=class _v extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,_v.prototype)}static get[Symbol.species](){return _v}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new _v(...t[0].concat(this)):new _v(...t.concat(this))}};function LB(e){return yi(e)?OO(e,()=>{}):e}function vS(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function Lie(e){return typeof e=="boolean"}var zie=()=>function(t){let{thunk:r=!0,immutableCheck:n=!0,serializableCheck:o=!0,actionCreatorCheck:a=!0}=t??{},i=new qB;return r&&(Lie(r)?i.push(jB):i.push($B(r.extraArgument))),i},KB="RTK_autoBatch",Ir=()=>e=>({payload:e,meta:{[KB]:!0}}),zB=e=>t=>{setTimeout(t,e)},Bie=(e,t)=>r=>{let n=!1,o=()=>{n||(n=!0,cancelAnimationFrame(a),clearTimeout(i),r())},a=e(o),i=setTimeout(o,t)},DO=(e={type:"raf"})=>t=>(...r)=>{let n=t(...r),o=!0,a=!1,i=!1,s=new Set,l=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?Bie(window.requestAnimationFrame,100):zB(10):e.type==="callback"?e.queueNotification:zB(e.timeout),u=()=>{i=!1,a&&(a=!1,s.forEach(c=>c()))};return Object.assign({},n,{subscribe(c){let d=()=>o&&c(),p=n.subscribe(d);return s.add(c),()=>{p(),s.delete(c)}},dispatch(c){try{return o=!c?.meta?.[KB],a=!o,a&&(i||(i=!0,l(u))),n.dispatch(c)}finally{o=!0}}})},Fie=e=>function(r){let{autoBatch:n=!0}=r??{},o=new qB(e);return n&&o.push(DO(typeof n=="object"?n:void 0)),o};function VB(e){let t=zie(),{reducer:r=void 0,middleware:n,devTools:o=!0,duplicateMiddlewareCheck:a=!0,preloadedState:i=void 0,enhancers:s=void 0}=e||{},l;if(typeof r=="function")l=r;else if(eS(r))l=tS(r);else throw new Error(vi(1));let u;typeof n=="function"?u=n(t):u=t();let c=xv;o&&(c=jie({trace:!1,...typeof o=="object"&&o}));let d=hB(...u),p=Fie(d),f=typeof s=="function"?s(p):p(),m=c(...f);return mO(l,i,m)}function GB(e){let t={},r=[],n,o={addCase(a,i){let s=typeof a=="string"?a:a.type;if(!s)throw new Error(vi(28));if(s in t)throw new Error(vi(29));return t[s]=i,o},addAsyncThunk(a,i){return i.pending&&(t[a.pending.type]=i.pending),i.rejected&&(t[a.rejected.type]=i.rejected),i.fulfilled&&(t[a.fulfilled.type]=i.fulfilled),i.settled&&r.push({matcher:a.settled,reducer:i.settled}),o},addMatcher(a,i){return r.push({matcher:a,reducer:i}),o},addDefaultCase(a){return n=a,o}};return e(o),[t,r,n]}function Uie(e){return typeof e=="function"}function Wie(e,t){let[r,n,o]=GB(t),a;if(Uie(e))a=()=>LB(e());else{let s=LB(e);a=()=>s}function i(s=a(),l){let u=[r[l.type],...n.filter(({matcher:c})=>c(l)).map(({reducer:c})=>c)];return u.filter(c=>!!c).length===0&&(u=[o]),u.reduce((c,d)=>{if(d)if(ll(c)){let f=d(c,l);return f===void 0?c:f}else{if(yi(c))return OO(c,p=>d(p,l));{let p=d(c,l);if(p===void 0){if(c===null)return c;throw Error("A case reducer on a non-draftable value must not return undefined")}return p}}return c},s)}return i.getInitialState=a,i}var Hie=(e,t)=>$ie(e)?e.match(t):e(t);function qie(...e){return t=>e.some(r=>Hie(r,t))}var Kie="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",YB=(e=21)=>{let t="",r=e;for(;r--;)t+=Kie[Math.random()*64|0];return t},Vie=["name","message","stack","code"],PO=class{constructor(e,t){this.payload=e,this.meta=t}payload;meta;_type},BB=class{constructor(e,t){this.payload=e,this.meta=t}payload;meta;_type},Gie=e=>{if(typeof e=="object"&&e!==null){let t={};for(let r of Vie)typeof e[r]=="string"&&(t[r]=e[r]);return t}return{message:String(e)}},FB="External signal was aborted",Yie=(()=>{function e(t,r,n){let o=xo(t+"/fulfilled",(l,u,c,d)=>({payload:l,meta:{...d||{},arg:c,requestId:u,requestStatus:"fulfilled"}})),a=xo(t+"/pending",(l,u,c)=>({payload:void 0,meta:{...c||{},arg:u,requestId:l,requestStatus:"pending"}})),i=xo(t+"/rejected",(l,u,c,d,p)=>({payload:d,error:(n&&n.serializeError||Gie)(l||"Rejected"),meta:{...p||{},arg:c,requestId:u,rejectedWithValue:!!d,requestStatus:"rejected",aborted:l?.name==="AbortError",condition:l?.name==="ConditionError"}}));function s(l,{signal:u}={}){return(c,d,p)=>{let f=n?.idGenerator?n.idGenerator(l):YB(),m=new AbortController,y,b;function g(v){b=v,m.abort()}u&&(u.aborted?g(FB):u.addEventListener("abort",()=>g(FB),{once:!0}));let h=(async function(){let v;try{let S=n?.condition?.(l,{getState:d,extra:p});if(Zie(S)&&(S=await S),S===!1||m.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};let k=new Promise((w,_)=>{y=()=>{_({name:"AbortError",message:b||"Aborted"})},m.signal.addEventListener("abort",y,{once:!0})});c(a(f,l,n?.getPendingMeta?.({requestId:f,arg:l},{getState:d,extra:p}))),v=await Promise.race([k,Promise.resolve(r(l,{dispatch:c,getState:d,extra:p,requestId:f,signal:m.signal,abort:g,rejectWithValue:((w,_)=>new PO(w,_)),fulfillWithValue:((w,_)=>new BB(w,_))})).then(w=>{if(w instanceof PO)throw w;return w instanceof BB?o(w.payload,f,l,w.meta):o(w,f,l)})])}catch(S){v=S instanceof PO?i(null,f,l,S.payload,S.meta):i(S,f,l)}finally{y&&m.signal.removeEventListener("abort",y)}return n&&!n.dispatchConditionRejection&&i.match(v)&&v.meta.condition||c(v),v})();return Object.assign(h,{abort:g,requestId:f,arg:l,unwrap(){return h.then(Xie)}})}}return Object.assign(s,{pending:a,rejected:i,fulfilled:o,settled:qie(i,o),typePrefix:t})}return e.withTypes=()=>e,e})();function Xie(e){if(e.meta&&e.meta.rejectedWithValue)throw e.payload;if(e.error)throw e.error;return e.payload}function Zie(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}var XB=Symbol.for("rtk-slice-createasyncthunk"),pMe={[XB]:Yie};function Jie(e,t){return`${e}/${t}`}function Qie({creators:e}={}){let t=e?.asyncThunk?.[XB];return function(n){let{name:o,reducerPath:a=o}=n;if(!o)throw new Error(vi(11));typeof process<"u";let i=(typeof n.reducers=="function"?n.reducers(ese()):n.reducers)||{},s=Object.keys(i),l={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},u={addCase(v,x){let S=typeof v=="string"?v:v.type;if(!S)throw new Error(vi(12));if(S in l.sliceCaseReducersByType)throw new Error(vi(13));return l.sliceCaseReducersByType[S]=x,u},addMatcher(v,x){return l.sliceMatchers.push({matcher:v,reducer:x}),u},exposeAction(v,x){return l.actionCreators[v]=x,u},exposeCaseReducer(v,x){return l.sliceCaseReducersByName[v]=x,u}};s.forEach(v=>{let x=i[v],S={reducerName:v,type:Jie(o,v),createNotation:typeof n.reducers=="function"};rse(x)?ose(S,x,u,t):tse(S,x,u)});function c(){let[v={},x=[],S=void 0]=typeof n.extraReducers=="function"?GB(n.extraReducers):[n.extraReducers],k={...v,...l.sliceCaseReducersByType};return Wie(n.initialState,w=>{for(let _ in k)w.addCase(_,k[_]);for(let _ of l.sliceMatchers)w.addMatcher(_.matcher,_.reducer);for(let _ of x)w.addMatcher(_.matcher,_.reducer);S&&w.addDefaultCase(S)})}let d=v=>v,p=new Map,f=new WeakMap,m;function y(v,x){return m||(m=c()),m(v,x)}function b(){return m||(m=c()),m.getInitialState()}function g(v,x=!1){function S(w){let _=w[v];return typeof _>"u"&&x&&(_=vS(f,S,b)),_}function k(w=d){let _=vS(p,x,()=>new WeakMap);return vS(_,w,()=>{let A={};for(let[C,N]of Object.entries(n.selectors??{}))A[C]=Rie(N,w,()=>vS(f,w,b),x);return A})}return{reducerPath:v,getSelectors:k,get selectors(){return k(S)},selectSlice:S}}let h={name:o,reducer:y,actions:l.actionCreators,caseReducers:l.sliceCaseReducersByName,getInitialState:b,...g(a),injectInto(v,{reducerPath:x,...S}={}){let k=x??a;return v.inject({reducerPath:k,reducer:y},S),{...h,...g(k,!0)}}};return h}}function Rie(e,t,r,n){function o(a,...i){let s=t(a);return typeof s>"u"&&n&&(s=r()),e(s,...i)}return o.unwrapped=e,o}var Cr=Qie();function ese(){function e(t,r){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...r}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...r){return t(...r)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,r){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:r}},asyncThunk:e}}function tse({type:e,reducerName:t,createNotation:r},n,o){let a,i;if("reducer"in n){if(r&&!nse(n))throw new Error(vi(17));a=n.reducer,i=n.prepare}else a=n;o.addCase(e,a).exposeCaseReducer(t,a).exposeAction(t,i?xo(e,i):xo(e))}function rse(e){return e._reducerDefinitionType==="asyncThunk"}function nse(e){return e._reducerDefinitionType==="reducerWithPrepare"}function ose({type:e,reducerName:t},r,n,o){if(!o)throw new Error(vi(18));let{payloadCreator:a,fulfilled:i,pending:s,rejected:l,settled:u,options:c}=r,d=o(e,a,c);n.exposeAction(t,d),i&&n.addCase(d.fulfilled,i),s&&n.addCase(d.pending,s),l&&n.addCase(d.rejected,l),u&&n.addMatcher(d.settled,u),n.exposeCaseReducer(t,{fulfilled:i||xS,pending:s||xS,rejected:l||xS,settled:u||xS})}function xS(){}var ase="task",ZB="listener",JB="completed",jO="cancelled",ise=`task-${jO}`,sse=`task-${JB}`,MO=`${ZB}-${jO}`,lse=`${ZB}-${JB}`,SS=class{constructor(e){this.code=e,this.message=`${ase} ${jO} (reason: ${e})`}code;name="TaskAbortError";message},$O=(e,t)=>{if(typeof e!="function")throw new TypeError(vi(32))},bS=()=>{},QB=(e,t=bS)=>(e.catch(t),e),RB=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),tp=e=>{if(e.aborted)throw new SS(e.reason)};function e7(e,t){let r=bS;return new Promise((n,o)=>{let a=()=>o(new SS(e.reason));if(e.aborted){a();return}r=RB(e,a),t.finally(()=>r()).then(n,o)}).finally(()=>{r=bS})}var use=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof SS?"cancelled":"rejected",error:r}}finally{t?.()}},wS=e=>t=>QB(e7(e,t).then(r=>(tp(e),r))),t7=e=>{let t=wS(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:Xm}=Object,UB={},kS="listenerMiddleware",cse=(e,t)=>{let r=n=>RB(e,()=>n.abort(e.reason));return(n,o)=>{$O(n,"taskExecutor");let a=new AbortController;r(a);let i=use(async()=>{tp(e),tp(a.signal);let s=await n({pause:wS(a.signal),delay:t7(a.signal),signal:a.signal});return tp(a.signal),s},()=>a.abort(sse));return o?.autoJoin&&t.push(i.catch(bS)),{result:wS(e)(i),cancel(){a.abort(ise)}}}},dse=(e,t)=>{let r=async(n,o)=>{tp(t);let a=()=>{},s=[new Promise((l,u)=>{let c=e({predicate:n,effect:(d,p)=>{p.unsubscribe(),l([d,p.getState(),p.getOriginalState()])}});a=()=>{c(),u()}})];o!=null&&s.push(new Promise(l=>setTimeout(l,o,null)));try{let l=await e7(t,Promise.race(s));return tp(t),l}finally{a()}};return((n,o)=>QB(r(n,o)))},r7=e=>{let{type:t,actionCreator:r,matcher:n,predicate:o,effect:a}=e;if(t)o=xo(t).match;else if(r)t=r.type,o=r.match;else if(n)o=n;else if(!o)throw new Error(vi(21));return $O(a,"options.listener"),{predicate:o,type:t,effect:a}},n7=Xm(e=>{let{type:t,predicate:r,effect:n}=r7(e);return{id:YB(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(vi(22))}}},{withTypes:()=>n7}),WB=(e,t)=>{let{type:r,effect:n,predicate:o}=r7(t);return Array.from(e.values()).find(a=>(typeof r=="string"?a.type===r:a.predicate===o)&&a.effect===n)},IO=e=>{e.pending.forEach(t=>{t.abort(MO)})},pse=(e,t)=>()=>{for(let r of t.keys())IO(r);e.clear()},HB=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},o7=Xm(xo(`${kS}/add`),{withTypes:()=>o7}),fse=xo(`${kS}/removeAll`),a7=Xm(xo(`${kS}/remove`),{withTypes:()=>a7}),mse=(...e)=>{console.error(`${kS}/error`,...e)},du=(e={})=>{let t=new Map,r=new Map,n=f=>{let m=r.get(f)??0;r.set(f,m+1)},o=f=>{let m=r.get(f)??1;m===1?r.delete(f):r.set(f,m-1)},{extra:a,onError:i=mse}=e;$O(i,"onError");let s=f=>(f.unsubscribe=()=>t.delete(f.id),t.set(f.id,f),m=>{f.unsubscribe(),m?.cancelActive&&IO(f)}),l=(f=>{let m=WB(t,f)??n7(f);return s(m)});Xm(l,{withTypes:()=>l});let u=f=>{let m=WB(t,f);return m&&(m.unsubscribe(),f.cancelActive&&IO(m)),!!m};Xm(u,{withTypes:()=>u});let c=async(f,m,y,b)=>{let g=new AbortController,h=dse(l,g.signal),v=[];try{f.pending.add(g),n(f),await Promise.resolve(f.effect(m,Xm({},y,{getOriginalState:b,condition:(x,S)=>h(x,S).then(Boolean),take:h,delay:t7(g.signal),pause:wS(g.signal),extra:a,signal:g.signal,fork:cse(g.signal,v),unsubscribe:f.unsubscribe,subscribe:()=>{t.set(f.id,f)},cancelActiveListeners:()=>{f.pending.forEach((x,S,k)=>{x!==g&&(x.abort(MO),k.delete(x))})},cancel:()=>{g.abort(MO),f.pending.delete(g)},throwIfCancelled:()=>{tp(g.signal)}})))}catch(x){x instanceof SS||HB(i,x,{raisedBy:"effect"})}finally{await Promise.all(v),g.abort(lse),o(f),f.pending.delete(g)}},d=pse(t,r);return{middleware:f=>m=>y=>{if(!gO(y))return m(y);if(o7.match(y))return l(y.payload);if(fse.match(y)){d();return}if(a7.match(y))return u(y.payload);let b=f.getState(),g=()=>{if(b===UB)throw new Error(vi(23));return b},h;try{if(h=m(y),t.size>0){let v=f.getState(),x=Array.from(t.values());for(let S of x){let k=!1;try{k=S.predicate(y,v,b)}catch(w){k=!1,HB(i,w,{raisedBy:"predicate"})}k&&c(S,y,f,g)}}}finally{b=UB}return h},startListening:l,stopListening:u,clearListeners:d}};function vi(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var gse={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},i7=Cr({name:"chartLayout",initialState:gse,reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){var r,n,o,a;e.margin.top=(r=t.payload.top)!==null&&r!==void 0?r:0,e.margin.right=(n=t.payload.right)!==null&&n!==void 0?n:0,e.margin.bottom=(o=t.payload.bottom)!==null&&o!==void 0?o:0,e.margin.left=(a=t.payload.left)!==null&&a!==void 0?a:0},setScale(e,t){e.scale=t.payload}}}),_S=i7.actions,LO=_S.setMargin,s7=_S.setLayout,l7=_S.setChartSize,u7=_S.setScale;var c7=i7.reducer;function CS(e,t,r){return Array.isArray(e)&&e&&t+r!==0?e.slice(t,r+1):e}function Ot(e){return Number.isFinite(e)}function qa(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function d7(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Ka(e){for(var t=1;t{if(t&&r){var n=r.width,o=r.height,a=t.align,i=t.verticalAlign,s=t.layout,l=t.position,u=t.offset,c=u===void 0?0:u;if(l!=null){if(cv(l)){if(l==="top"&&De(e.top))return Ka(Ka({},e),{},{top:e.top+(o||0)+c});if(l==="bottom"&&De(e.bottom))return Ka(Ka({},e),{},{bottom:e.bottom+(o||0)+c});if(l==="left"&&De(e.left))return Ka(Ka({},e),{},{left:e.left+(n||0)+c});if(l==="right"&&De(e.right))return Ka(Ka({},e),{},{right:e.right+(n||0)+c})}return e}if((s==="vertical"||s==="horizontal"&&i==="middle")&&a!=="center"&&De(e[a]))return Ka(Ka({},e),{},{[a]:e[a]+(n||0)});if((s==="horizontal"||s==="vertical"&&a==="center")&&i!=="middle"&&De(e[i]))return Ka(Ka({},e),{},{[i]:e[i]+(o||0)})}return e},sa=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",zO=(e,t,r,n)=>{if(n)return e.map(s=>s.coordinate);var o,a,i=e.map(s=>(s.coordinate===t&&(o=!0),s.coordinate===r&&(a=!0),s.coordinate));return o||i.push(t),a||i.push(r),i},BO=(e,t,r)=>{if(!e)return null;var n=e.duplicateDomain,o=e.type,a=e.range,i=e.scale,s=e.realScaleType,l=e.isCategorical,u=e.categoricalDomain,c=e.tickCount,d=e.ticks,p=e.niceTicks,f=e.axisType;if(!i)return null;var m=s==="scaleBand"&&i.bandwidth?i.bandwidth()/2:2,y=(t||r)&&o==="category"&&i.bandwidth?i.bandwidth()/m:0;if(y=f==="angleAxis"&&a&&a.length>=2?Qr(a[0]-a[1])*2*y:y,t&&(d||p)){var b=(d||p||[]).map((g,h)=>{var v=n?n.indexOf(g):g,x=i.map(v);return Ot(x)?{coordinate:x+y,value:g,offset:y,index:h}:null}).filter(Ao);return b}return l&&u?u.map((g,h)=>{var v=i.map(g);return Ot(v)?{coordinate:v+y,value:g,index:h,offset:y}:null}).filter(Ao):i.ticks&&!r&&c!=null?i.ticks(c).map((g,h)=>{var v=i.map(g);return Ot(v)?{coordinate:v+y,value:g,index:h,offset:y}:null}).filter(Ao):i.domain().map((g,h)=>{var v=i.map(g);return Ot(v)?{coordinate:v+y,value:n?n[g]:g,index:h,offset:y}:null}).filter(Ao)},f7=(e,t)=>{if(!t||t.length!==2||!De(t[0])||!De(t[1]))return e;var r=Math.min(t[0],t[1]),n=Math.max(t[0],t[1]),o=[e[0],e[1]];return(!De(e[0])||e[0]n)&&(o[1]=n),o[0]>n&&(o[0]=n),o[1]{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var o=0;o=0?(u[0]=a,a+=p,u[1]=a):(u[0]=i,i+=p,u[1]=i)}}}},bse=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var o=0;o=0?(l[0]=a,a+=u,l[1]=a):(l[0]=0,l[1]=0)}}}},wse={sign:xse,expand:nO,none:gi,silhouette:oO,wiggle:aO,positive:bse},m7=(e,t,r)=>{var n,o=(n=wse[r])!==null&&n!==void 0?n:gi,a=rO().keys(t).value((s,l)=>Number(Ht(s,l,0))).order(Fm).offset(o),i=a(e);return i.forEach((s,l)=>{s.forEach((u,c)=>{var d=Ht(e[c],t[l],0);Array.isArray(d)&&d.length===2&&De(d[0])&&De(d[1])&&(u[0]=d[0],u[1]=d[1])})}),i};function AS(e){return e==null?void 0:String(e)}function Zm(e){var t=e.axis,r=e.ticks,n=e.bandSize,o=e.entry,a=e.index,i=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!ar(o[t.dataKey])){var s=dw(r,"value",o[t.dataKey]);if(s)return s.coordinate+n/2}return r!=null&&r[a]?r[a].coordinate+n/2:null}var l=Ht(o,ar(i)?t.dataKey:i),u=t.scale.map(l);return De(u)?u:null}var FO=e=>{var t=e.axis,r=e.ticks,n=e.offset,o=e.bandSize,a=e.entry,i=e.index;if(t.type==="category")return r[i]?r[i].coordinate+n:null;var s=Ht(a,t.dataKey,t.scale.domain()[i]);if(ar(s))return null;var l=t.scale.map(s);return De(l)?l-o/2+n:null},g7=e=>{var t=e.numericAxis,r=t.scale.domain();if(t.type==="number"){var n=Math.min(r[0],r[1]),o=Math.max(r[0],r[1]);return n<=0&&o>=0?0:o<0?o:n}return r[0]},Sse=e=>{var t=e.flat(2).filter(De);return[Math.min(...t),Math.max(...t)]},kse=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],h7=(e,t,r)=>{if(!(e==null||Object.keys(e).length===0))return kse(Object.keys(e).reduce((n,o)=>{var a=e[o];if(!a)return n;var i=a.stackedData,s=i.reduce((l,u)=>{var c=CS(u,t,r),d=Sse(c);return!Ot(d[0])||!Ot(d[1])?l:[Math.min(l[0],d[0]),Math.max(l[1],d[1])]},[1/0,-1/0]);return[Math.min(s[0],n[0]),Math.max(s[1],n[1])]},[1/0,-1/0]))},UO=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,WO=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Ji=(e,t,r)=>{if(e&&e.scale&&e.scale.bandwidth){var n=e.scale.bandwidth();if(!r||n>0)return n}if(e&&t&&t.length>=2){for(var o=lu(t,y=>y.coordinate),a=[],i=0,s=1,l=o.length;sp&&(f=Math.min(m,f));return f===1/0?0:f}return r?void 0:0};function HO(e){var t=e.tooltipEntrySettings,r=e.dataKey,n=e.payload,o=e.value,a=e.name;return Ka(Ka({},t),{},{dataKey:r,payload:n,value:o,name:a})}function xi(e,t){if(e!=null)return String(e);if(typeof t=="string")return t}var y7=(e,t)=>{if(t==="horizontal")return e.relativeX;if(t==="vertical")return e.relativeY},v7=(e,t)=>t==="centric"?e.angle:e.radius;var qo=e=>e.layout.width,Ko=e=>e.layout.height,x7=e=>e.layout.scale,Jm=e=>e.layout.margin;var Qm=ae(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),Rm=ae(e=>e.cartesianAxis.yAxis,e=>Object.values(e));var ES="data-recharts-item-index",NS="data-recharts-item-id",rp=60,Cv=30;function b7(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function TS(e){for(var t=1;te.brush.height;function Nse(e){var t=Rm(e);return t.reduce((r,n)=>{if(n.orientation==="left"&&!n.mirror&&!n.hide){var o=typeof n.width=="number"?n.width:rp;return r+o}return r},0)}function Tse(e){var t=Rm(e);return t.reduce((r,n)=>{if(n.orientation==="right"&&!n.mirror&&!n.hide){var o=typeof n.width=="number"?n.width:rp;return r+o}return r},0)}function Ose(e){var t=Qm(e);return t.reduce((r,n)=>{if(n.orientation==="top"&&!n.mirror&&!n.hide){var o=typeof n.height=="number"?n.height:Cv;return r+o}return r},0)}function Pse(e){var t=Qm(e);return t.reduce((r,n)=>{if(n.orientation==="bottom"&&!n.mirror&&!n.hide){var o=typeof n.height=="number"?n.height:Cv;return r+o}return r},0)}var Fr=ae([qo,Ko,Jm,Ese,Nse,Tse,Ose,Pse,pO,uB],(e,t,r,n,o,a,i,s,l,u)=>{var c={left:(r.left||0)+o,right:(r.right||0)+a},d={top:(r.top||0)+i,bottom:(r.bottom||0)+s},p=TS(TS({},d),c),f=p.bottom;p.bottom+=n,p=p7(p,l,u);var m=e-p.left-p.right,y=t-p.top-p.bottom;return TS(TS({brushBottom:f},p),{},{width:Math.max(m,0),height:Math.max(y,0)})}),OS=ae(Fr,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),eg=ae(qo,Ko,(e,t)=>({x:0,y:0,width:e,height:t}));var Mse=Z(J()),PS=Z(J()),Ise=(0,PS.createContext)(null),Ar=()=>(0,PS.useContext)(Ise)!=null;var tg=e=>e.brush,np=ae([tg,Fr,Jm],(e,t,r)=>({height:e.height,x:De(e.x)?e.x:t.left,y:De(e.y)?e.y:t.top+t.height+t.brushBottom-(r?.bottom||0),width:De(e.width)?e.width:t.width}));var op=Z(J()),bo=Z(J());function w7(e,t,{signal:r,edges:n}={}){let o,a=null,i=n!=null&&n.includes("leading"),s=n==null||n.includes("trailing"),l=()=>{a!==null&&(e.apply(o,a),o=void 0,a=null)},u=()=>{s&&l(),f()},c=null,d=()=>{c!=null&&clearTimeout(c),c=setTimeout(()=>{c=null,u()},t)},p=()=>{c!==null&&(clearTimeout(c),c=null)},f=()=>{p(),o=void 0,a=null},m=()=>{l()},y=function(...b){if(r?.aborted)return;o=this,a=b;let g=c==null;d(),i&&g&&l()};return y.schedule=d,y.cancel=f,y.flush=m,r?.addEventListener("abort",f,{once:!0}),y}function S7(e,t=0,r={}){typeof r!="object"&&(r={});let{leading:n=!1,trailing:o=!0,maxWait:a}=r,i=Array(2);n&&(i[0]="leading"),o&&(i[1]="trailing");let s,l=null,u=w7(function(...p){s=e.apply(this,p),l=null},t,{edges:i}),c=function(...p){return a!=null&&(l===null&&(l=Date.now()),Date.now()-l>=a)?(s=e.apply(this,p),l=Date.now(),u.cancel(),u.schedule(),s):(u.apply(this,p),s)},d=()=>(u.flush(),s);return c.cancel=u.cancel,c.flush=d,c}function qO(e,t=0,r={}){let{leading:n=!0,trailing:o=!0}=r;return S7(e,t,{leading:n,maxWait:t,trailing:o})}var Dse=!0,rg=function(t,r){for(var n=arguments.length,o=new Array(n>2?n-2:0),a=2;ao[i++]))}};var Ps={width:"100%",height:"100%",debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},KO=(e,t,r)=>{var n=r.width,o=n===void 0?Ps.width:n,a=r.height,i=a===void 0?Ps.height:a,s=r.aspect,l=r.maxHeight,u=nu(o)?e:Number(o),c=nu(i)?t:Number(i);return s&&s>0&&(u?c=u/s:c&&(u=c*s),l&&c!=null&&c>l&&(c=l)),{calculatedWidth:u,calculatedHeight:c}},jse={width:0,height:0,overflow:"visible"},$se={width:0,overflowX:"visible"},Lse={height:0,overflowY:"visible"},zse={},k7=e=>{var t=e.width,r=e.height,n=nu(t),o=nu(r);return n&&o?jse:n?$se:o?Lse:zse};function _7(e){var t=e.width,r=e.height,n=e.aspect,o=t,a=r;return o===void 0&&a===void 0?(o=Ps.width,a=Ps.height):o===void 0?o=n&&n>0?void 0:Ps.width:a===void 0&&(a=n&&n>0?void 0:Ps.height),{width:o,height:a}}var Bse=["aspect","initialDimension","width","height","minWidth","minHeight","maxHeight","children","debounce","id","className","onResize","style"];function MS(){return MS=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({width:r,height:n}),[r,n]);return Zse(o)?op.createElement(N7.Provider,{value:o},t):null}var Av=()=>(0,bo.useContext)(N7),Jse=(0,bo.forwardRef)((e,t)=>{var r=e.aspect,n=e.initialDimension,o=n===void 0?Ps.initialDimension:n,a=e.width,i=e.height,s=e.minWidth,l=s===void 0?Ps.minWidth:s,u=e.minHeight,c=e.maxHeight,d=e.children,p=e.debounce,f=p===void 0?Ps.debounce:p,m=e.id,y=e.className,b=e.onResize,g=e.style,h=g===void 0?{}:g,v=Yse(e,Bse),x=(0,bo.useRef)(null),S=(0,bo.useRef)();S.current=b,(0,bo.useImperativeHandle)(t,()=>x.current);var k=(0,bo.useState)({containerWidth:o.width,containerHeight:o.height}),w=Hse(k,2),_=w[0],A=w[1],C=(0,bo.useCallback)((T,O)=>{A(I=>{var P=Math.round(T),j=Math.round(O);return I.containerWidth===P&&I.containerHeight===j?I:{containerWidth:P,containerHeight:j}})},[]);(0,bo.useEffect)(()=>{if(x.current==null||typeof ResizeObserver>"u")return ka;var T=M=>{var W,Y=M[0];if(Y!=null){var z=Y.contentRect,V=z.width,q=z.height;C(V,q),(W=S.current)===null||W===void 0||W.call(S,V,q)}};f>0&&(T=qO(T,f,{trailing:!0,leading:!1}));var O=new ResizeObserver(T),I=x.current.getBoundingClientRect(),P=I.width,j=I.height;return C(P,j),O.observe(x.current),()=>{O.disconnect()}},[C,f]);var N=_.containerWidth,L=_.containerHeight;rg(!r||r>0,"The aspect(%s) must be greater than zero.",r);var Q=KO(N,L,{width:a,height:i,aspect:r,maxHeight:c}),B=Q.calculatedWidth,K=Q.calculatedHeight;return rg(N<0||L<0||B!=null&&B>0||K!=null&&K>0,`The width(%s) and height(%s) of chart should be greater than 0, please check the style of container, or the props width(%s) and height(%s), or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,B,K,a,i,l,u,r),np.createElement("div",OS({id:m?"".concat(m):void 0,className:bt("recharts-responsive-container",y),style:_7(_7({},h),{},{width:a,height:i,minWidth:l,minHeight:u,maxHeight:c}),ref:x},v),np.createElement("div",{style:w7({width:a,height:i})},np.createElement(E7,{width:B,height:K},d)))}),_c=(0,xo.forwardRef)((e,t)=>{var r=_v();if(qa(r.width)&&qa(r.height))return e.children;var n=S7({width:e.width,height:e.height,aspect:e.aspect}),o=n.width,a=n.height,i=qO(void 0,void 0,{width:o,height:a,aspect:e.aspect,maxHeight:e.maxHeight}),s=i.calculatedWidth,l=i.calculatedHeight;return De(s)&&De(l)?np.createElement(E7,{width:s,height:l},e.children):np.createElement(Gse,OS({},e,{width:o,height:a,ref:t}))});var op=()=>{var e,t=Ar(),r=je(NS),n=je(rp),o=(e=je(Rm))===null||e===void 0?void 0:e.padding;return!t||!n||!o?r:{width:n.width-o.left-o.right,height:n.height-o.top-o.bottom,x:o.left,y:o.top}},Yse={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},PS=()=>{var e;return(e=je(Fr))!==null&&e!==void 0?e:Yse},tg=()=>je(qo),rg=()=>je(Ko),T7=()=>je(e=>e.layout.margin),Bt=e=>e.layout.layoutType,Va=()=>je(Bt),ng=()=>{var e=Va();if(e==="horizontal"||e==="vertical")return e},MS=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t},O7=()=>je(MS),P7=()=>{var e=Va();return e!==void 0},ap=e=>{var t=jt(),r=Ar(),n=e.width,o=e.height,a=_v(),i=n,s=o;return a&&(i=a.width>0?a.width:n,s=a.height>0?a.height:o),(0,N7.useEffect)(()=>{!r&&qa(i)&&qa(s)&&t(i7({width:i,height:s}))},[t,r,i,s]),null};var Xse={settings:{layout:"horizontal",align:"center",verticalAlign:"bottom",itemSorter:"value",position:void 0,offset:0},size:{width:0,height:0},payload:[]},M7=Cr({name:"legend",initialState:Xse,reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter,e.settings.position=t.payload.position,e.settings.offset=t.payload.offset},addLegendPayload:{reducer(e,t){e.payload.push(Zt(t.payload))},prepare:Ir()},replaceLegendPayload:{reducer(e,t){var r=t.payload,n=r.prev,o=r.next,a=ea(e).payload.indexOf(Zt(n));a>-1&&(e.payload[a]=Zt(o))},prepare:Ir()},removeLegendPayload:{reducer(e,t){var r=ea(e).payload.indexOf(Zt(t.payload));r>-1&&e.payload.splice(r,1)},prepare:Ir()}}}),Cv=M7.actions,KO=Cv.setLegendSize,I7=Cv.setLegendSettings,VO=Cv.addLegendPayload,GO=Cv.replaceLegendPayload,YO=Cv.removeLegendPayload;var D7=M7.reducer;var Vn=Z(J(),1),kle=Z(z7(),1);var nle=Symbol.for("react.forward_ref");var ole=Symbol.for("react.memo");var ale=nle,ile=ole;function sle(e){e()}function lle(){let e=null,t=null;return{clear(){e=null,t=null},notify(){sle(()=>{let r=e;for(;r;)r.callback(),r=r.next})},get(){let r=[],n=e;for(;n;)r.push(n),n=n.next;return r},subscribe(r){let n=!0,o=t={callback:r,next:null,prev:t};return o.prev?o.prev.next=o:e=o,function(){!n||e===null||(n=!1,o.next?o.next.prev=o.prev:t=o.prev,o.prev?o.prev.next=o.next:e=o.next)}}}}var B7={notify(){},get:()=>[]};function ule(e,t){let r,n=B7,o=0,a=!1;function i(y){c();let b=n.subscribe(y),g=!1;return()=>{g||(g=!0,b(),d())}}function s(){n.notify()}function l(){m.onStateChange&&m.onStateChange()}function u(){return a}function c(){o++,r||(r=t?t.addNestedSub(l):e.subscribe(l),n=lle())}function d(){o--,r&&o===0&&(r(),r=void 0,n.clear(),n=B7)}function p(){a||(a=!0,c())}function f(){a&&(a=!1,d())}let m={addNestedSub:i,notifyNestedSubs:s,handleChangeWrapper:l,isSubscribed:u,trySubscribe:p,tryUnsubscribe:f,getListeners:()=>n};return m}var cle=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",dle=cle(),ple=()=>typeof navigator<"u"&&navigator.product==="ReactNative",fle=ple(),mle=()=>dle||fle?Vn.useLayoutEffect:Vn.useEffect,gle=mle();function F7(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function U7(e,t){if(F7(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let o=0;o{let l=ule(o);return{store:o,subscription:l,getServerState:n?()=>n:void 0}},[o,n]),i=Vn.useMemo(()=>o.getState(),[o]);return gle(()=>{let{subscription:l}=a;return l.onStateChange=l.notifyNestedSubs,l.trySubscribe(),i!==o.getState()&&l.notifyNestedSubs(),()=>{l.tryUnsubscribe(),l.onStateChange=void 0}},[a,i]),Vn.createElement((r||wle).Provider,{value:a},t)}var W7=Sle;var _le=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function Cle(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function Ga(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(_le.has(n)){if(e[n]==null&&t[n]==null)continue;if(!U7(e[n],t[n]))return!1}else if(!Cle(e[n],t[n]))return!1;return!0}var H7=ae([qo,Ko,Xm],(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 q7(e,t){var r;if(e==="start"&&t==="start")return"";var n={start:"0",middle:"-50%",end:"-100%"},o={start:"0",middle:"-50%",end:"-100%"},a=e==="inherit"?"0":n[e],i=(r=o[t])!==null&&r!==void 0?r:"0";return"translate(".concat(a,", ").concat(i,")")}var Ale=["contextPayload"];function XO(){return XO=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{s(I7({align:t,layout:r,verticalAlign:n,itemSorter:o,position:a,offset:i}))},[s,t,r,n,o,a,i]),null}function qle(e){var t=e.width,r=e.height,n=jt();return(0,IS.useLayoutEffect)(()=>{n(KO({width:t,height:r}))},[n,t,r]),(0,IS.useLayoutEffect)(()=>()=>{n(KO({width:0,height:0}))},[n]),null}function Kle(e,t,r,n){return e==="vertical"&&t!=null?{height:t}:e==="horizontal"?{width:r||n}:null}var Vle={align:"center",iconSize:14,inactiveColor:"#ccc",itemSorter:"value",labelStyle:{},layout:"auto",verticalAlign:"bottom",offset:0};function Gle(e){var t,r,n,o,a,i,s,l,u=nr(e,Vle),c=e.layout&&e.layout!=="auto"?e.layout:Ble(u.position),d=uB(),p=X6(),f=T7(),m=je(j=>Fle(j,u.position)),y=u.width,b=u.height,g=u.wrapperStyle,h=u.portal,v=h==null&&(u.position==null||lv(u.position)),x=Zw([d]),S=Ele(x,2),_=S[0],w=S[1],k=tg(),A=rg();if(k==null||A==null||u.position!=null&&m==null)return null;var C=k-(f?.left||0)-(f?.right||0),T=Kle(c,b,y,C),$=u.position==null?null:cw({viewBox:m??{x:0,y:0,width:k,height:A},position:u.position,offset:(t=u.offset)!==null&&t!==void 0?t:0}),Q=Ule(u.position,(r=u.offset)!==null&&r!==void 0?r:0,_),B=c==="vertical"?((n=m?.width)!==null&&n!==void 0?n:0)/2:(o=m?.width)!==null&&o!==void 0?o:0,K=c==="horizontal"?((a=m?.height)!==null&&a!==void 0?a:0)/2:(i=m?.height)!==null&&i!==void 0?i:0,N=$?{width:"max-content",height:"max-content",maxWidth:B,maxHeight:K,overflowY:"auto",top:$.y+((s=Q.top)!==null&&s!==void 0?s:0),left:$.x+((l=Q.left)!==null&&l!==void 0?l:0),transform:q7($.horizontalAnchor,$.verticalAnchor)}:Wle(g,u,f,k,A,_),O=h?g:og(og({position:"absolute",width:T?.width||y||"auto",height:T?.height||b||"auto"},N),g),D=h??p;if(D==null||d==null)return null;var P=bi.createElement("div",{className:"recharts-legend-wrapper",style:O,ref:w},bi.createElement(Hle,{layout:c,align:u.align,verticalAlign:u.verticalAlign,itemSorter:u.itemSorter,position:u.position,offset:u.offset}),v&&bi.createElement(qle,_),bi.createElement(zle,XO({},u,{layout:c},T,{margin:f,chartWidth:k,chartHeight:A,contextPayload:d})));return(0,G7.createPortal)(P,D)}var DS=bi.memo(Gle,Ga);DS.displayName="Legend";var ns=Z(J()),wH=Z(J()),SH=Z(ny());var Ms=Z(J());function ZO(){return ZO=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.separator,r=t===void 0?ag.separator:t,n=e.contentStyle,o=e.itemStyle,a=e.labelStyle,i=a===void 0?ag.labelStyle:a,s=e.payload,l=e.formatter,u=e.itemSorter,c=e.wrapperClassName,d=e.labelClassName,p=e.label,f=e.labelFormatter,m=e.accessibilityLayer,y=m===void 0?ag.accessibilityLayer:m,b=()=>{if(s&&s.length){var k={padding:0,margin:0},A=nue(s,u),C=A.map((T,$)=>{if(!T||T.type==="none")return null;var Q=T.formatter||l||rue,B=T.value,K=T.name,N=B,O=K;if(Q){var D=Q(B,K,T,$,s);if(Array.isArray(D)){var P=Jle(D,2);N=P[0],O=P[1]}else if(D!=null)N=D;else return null}var j=Ev(Ev({},ag.itemStyle),{},{color:T.color||ag.itemStyle.color},o);return Ms.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat($),style:j},wa(O)?Ms.createElement("span",{className:"recharts-tooltip-item-name"},O):null,wa(O)?Ms.createElement("span",{className:"recharts-tooltip-item-separator"},r):null,Ms.createElement("span",{className:"recharts-tooltip-item-value"},N),Ms.createElement("span",{className:"recharts-tooltip-item-unit"},T.unit||""))});return Ms.createElement("ul",{className:"recharts-tooltip-item-list",style:k},C)}return null},g=Ev(Ev({},ag.contentStyle),n),h=Ev({margin:0},i),v=!ar(p),x=v?p:"",S=bt("recharts-default-tooltip",c),_=bt("recharts-tooltip-label",d);v&&f&&s!==void 0&&s!==null&&(x=f(p,s));var w=y?{role:"status","aria-live":"assertive"}:{};return Ms.createElement("div",ZO({className:S,style:g},w),Ms.createElement("p",{className:_,style:h},Ms.isValidElement(x)?x:"".concat(x)),b())};var Cc=Z(J());var Nv="recharts-tooltip-wrapper",oue={visibility:"hidden"};function aue(e){var t=e.coordinate,r=e.translateX,n=e.translateY;return bt(Nv,{["".concat(Nv,"-right")]:De(r)&&t&&De(t.x)&&r>=t.x,["".concat(Nv,"-left")]:De(r)&&t&&De(t.x)&&r=t.y,["".concat(Nv,"-top")]:De(n)&&t&&De(t.y)&&n0?o:0),d=r[n]+o;if(t[n])return i[n]?c:d;var p=l[n];if(p==null)return 0;if(i[n]){var f=c,m=p;return fb?Math.max(c,p):Math.max(d,p)}function iue(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 Q7(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTop,o=e.offsetLeft,a=e.position,i=e.reverseDirection,s=e.tooltipBox,l=e.useTranslate3d,u=e.viewBox,c,d,p;return s&&s.height>0&&s.width>0&&r?(d=J7({allowEscapeViewBox:t,coordinate:r,key:"x",offset:o,position:a,reverseDirection:i,tooltipDimension:s.width,viewBox:u,viewBoxDimension:u.width}),p=J7({allowEscapeViewBox:t,coordinate:r,key:"y",offset:n,position:a,reverseDirection:i,tooltipDimension:s.height,viewBox:u,viewBoxDimension:u.height}),c=iue({translateX:d,translateY:p,useTranslate3d:l})):c=oue,{cssProperties:c,cssClasses:aue({translateX:d,translateY:p,coordinate:r})}}var jS=Z(J());var sue=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),Ji={devToolsEnabled:!0,isSsr:sue()};function lue(e,t){return pue(e)||due(e,t)||cue(e,t)||uue()}function uue(){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 cue(e,t){if(e){if(typeof e=="string")return R7(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)?R7(e,t):void 0}}function R7(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rJi.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches),t=lue(e,2),r=t[0],n=t[1];return(0,jS.useEffect)(()=>{if(window.matchMedia){var o=window.matchMedia("(prefers-reduced-motion: reduce)"),a=()=>{n(o.matches)};return o.addEventListener("change",a),()=>{o.removeEventListener("change",a)}}},[]),r}function e9(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function ig(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=hue(l,2),c=u[0],d=u[1];Cc.useEffect(()=>{var g=h=>{if(h.key==="Escape"){var v,x,S,_;d({dismissed:!0,dismissedAtCoordinate:{x:(v=(x=e.coordinate)===null||x===void 0?void 0:x.x)!==null&&v!==void 0?v:0,y:(S=(_=e.coordinate)===null||_===void 0?void 0:_.y)!==null&&S!==void 0?S:0}})}};return document.addEventListener("keydown",g),()=>{document.removeEventListener("keydown",g)}},[(t=e.coordinate)===null||t===void 0?void 0:t.x,(r=e.coordinate)===null||r===void 0?void 0:r.y]),c.dismissed&&(((n=(o=e.coordinate)===null||o===void 0?void 0:o.x)!==null&&n!==void 0?n:0)!==c.dismissedAtCoordinate.x||((a=(i=e.coordinate)===null||i===void 0?void 0:i.y)!==null&&a!==void 0?a:0)!==c.dismissedAtCoordinate.y)&&d(ig(ig({},c),{},{dismissed:!1}));var p=Q7({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset=="number"?e.offset:e.offset.x,offsetTop:typeof e.offset=="number"?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:e.lastBoundingBox,useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),f=p.cssClasses,m=p.cssProperties,y=e.hasPortalFromProps?{}:ig(ig({transition:wue({prefersReducedMotion:s,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},m),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),b=ig(ig({},y),{},{visibility:!c.dismissed&&e.active&&e.hasPayload?"visible":"hidden"},e.wrapperStyle);return Cc.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:f,style:b,ref:e.innerRef},e.children)}var r9=Cc.memo(Sue);var LS=()=>{var e;return(e=je(t=>t.rootProps.accessibilityLayer))!==null&&e!==void 0?e:!0};var k_=Z(J()),Dg=Z(J());var l9=Z(J());function JO(){return JO=Object.assign?Object.assign.bind():function(e){for(var t=1;tOt(e.x)&&Ot(e.y),i9=e=>e.base!=null&&zS(e.base)&&zS(e),Tv=e=>e.x,Ov=e=>e.y,Aue=(e,t)=>{if(typeof e=="function")return e;var r="curve".concat(ru(e));if((r==="curveMonotone"||r==="curveBump")&&t){var n=a9["".concat(r).concat(t==="vertical"?"Y":"X")];if(n)return n}return a9[r]||wc},s9={connectNulls:!1,type:"linear"},Eue=e=>{var t=e.type,r=t===void 0?s9.type:t,n=e.points,o=n===void 0?[]:n,a=e.baseLine,i=e.layout,s=e.connectNulls,l=s===void 0?s9.connectNulls:s,u=Aue(r,i),c=l?o.filter(zS):o;if(Array.isArray(a)){var d,p=o.map((g,h)=>o9(o9({},g),{},{base:a[h]}));i==="vertical"?d=Dm().y(Ov).x1(Tv).x0(g=>g.base.x):d=Dm().x(Tv).y1(Ov).y0(g=>g.base.y);var f=d.defined(i9).curve(u),m=l?p.filter(i9):p;return f(m)}var y;i==="vertical"&&De(a)?y=Dm().y(Ov).x1(Tv).x0(a):De(a)?y=Dm().x(Tv).y1(Ov).y0(a):y=cv().x(Tv).y(Ov);var b=y.defined(zS).curve(u);return b(c)},ll=e=>{var t=e.className,r=e.points,n=e.path,o=e.pathRef,a=Va();if((!r||!r.length)&&!n)return null;var i={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||a,connectNulls:e.connectNulls},s=r&&r.length?Eue(i):n;return l9.createElement("path",JO({},hn(e),Bm(e),{className:bt("recharts-curve",t),d:s===null?void 0:s,ref:o}))};var c9=Z(J());var Nue=["x","y","top","left","width","height","className"];function QO(){return QO=Object.assign?Object.assign.bind():function(e){for(var t=1;t"M".concat(e,",").concat(o,"v").concat(n,"M").concat(a,",").concat(t,"h").concat(r),d9=e=>{var t=e.x,r=t===void 0?0:t,n=e.y,o=n===void 0?0:n,a=e.top,i=a===void 0?0:a,s=e.left,l=s===void 0?0:s,u=e.width,c=u===void 0?0:u,d=e.height,p=d===void 0?0:d,f=e.className,m=Iue(e,Nue),y=Tue({x:r,y:o,top:i,left:l,width:c,height:p},m);return!De(r)||!De(o)||!De(c)||!De(p)||!De(i)||!De(l)?null:c9.createElement("path",QO({},yn(y),{className:bt("recharts-cross",f),d:jue(r,o,c,p,i,l)}))};function p9(e,t,r,n){var o=n/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-o:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-o,width:e==="horizontal"?n:r.width-1,height:e==="horizontal"?r.height-1:n}}var qS=Z(J()),Qi=Z(J());var Pv=Z(J());var BS=1e-4,g9=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],h9=(e,t)=>e.map((r,n)=>r*t**n).reduce((r,n)=>r+n),f9=(e,t)=>r=>{var n=g9(e,t);return h9(n,r)},$ue=(e,t)=>r=>{var n=g9(e,t),o=[...n.map((a,i)=>a*i).slice(1),0];return h9(o,r)},Lue=e=>{var t,r=e.split("(");if(r.length!==2||r[0]!=="cubic-bezier")return null;var n=(t=r[1])===null||t===void 0||(t=t.split(")")[0])===null||t===void 0?void 0:t.split(",");if(n==null||n.length!==4)return null;var o=n.map(a=>parseFloat(a));return[o[0],o[1],o[2],o[3]]},zue=function(){for(var t=arguments.length,r=new Array(t),n=0;n{var o=f9(e,r),a=f9(t,n),i=$ue(e,r),s=u=>u>1?1:u<0?0:u,l=u=>{for(var c=u>1?1:u,d=c,p=0;p<8;++p){var f=o(d)-c,m=i(d);if(Math.abs(f-c)0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,o=t.damping,a=o===void 0?8:o,i=t.dt,s=i===void 0?16.67:i,l=1,u=[0],c=0,d=0,p=1e4,f=0;f{var h,v,x;if(g<=0)return 0;if(g>=1)return l;var S=g*b,_=Math.floor(S),w=S-_;return((h=u[_])!==null&&h!==void 0?h:0)+(((v=u[_+1])!==null&&v!==void 0?v:0)-((x=u[_])!==null&&x!==void 0?x:0))*w}},y9=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return m9(e);case"spring":return Fue();default:if(e.split("(")[0]==="cubic-bezier")return m9(e)}return typeof e=="function"?e:null};var sg=Z(J());var v9=(e,t,r)=>{var n,o=a=>{var i=t.tick(a);if(t.getState()==="active"){if(r(t.getInterpolated()),t.getProgress()===1){t.complete(),n=void 0;return}n=e.setTimeout(o,i);return}n=e.setTimeout(o,i)};return n=e.setTimeout(o,0),()=>{var a;return(a=n)===null||a===void 0?void 0:a()}};var x9=(0,sg.createContext)(v9),vIe=x9.Provider;function b9(e){var t=(0,sg.useContext)(x9);return(0,sg.useMemo)(()=>e??t,[e,t])}function Uue(e,t,r){return(t=Wue(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Wue(e){var t=Hue(e,"string");return typeof t=="symbol"?t:t+""}function Hue(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 w9="init",S9="pending",k9="active",que="completed";function RO(e){return Math.max(0,e)}var eP=class{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(t){var r;Uue(this,"state",w9),this.animationId=t.animationId,this.onAnimationEnd=t.onAnimationEnd,this.animationDuration=RO(t.animationDuration),this.animationBegin=RO(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()===w9)return this.state=S9,this.beginStartedTime=t,this.animationBegin;if(this.getState()===S9){if(this.beginStartedTime==null)throw new Error;var r=t-this.beginStartedTime;return r>=this.animationBegin?(this.state=k9,this.animationStartedTime=t,this.nextAnimationUpdate(0)):RO(this.animationBegin-r)}if(this.getState()===k9){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=que}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}},FS=class extends eP{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(_r(this.getFrom(),this.getTo(),this.getProgress()))}};var US=class{setTimeout(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),o=null,a=i=>{i-n>=r?t(i):o=requestAnimationFrame(a)};return o=requestAnimationFrame(a),()=>{o!=null&&cancelAnimationFrame(o)}}};function Kue(e,t){return Xue(e)||Yue(e,t)||Gue(e,t)||Vue()}function Vue(){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 Gue(e,t){if(e){if(typeof e=="string")return _9(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)?_9(e,t):void 0}}function _9(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{},onAnimationStart:()=>{}},C9=0,tP=1;function WS(e){var t=nr(e,Zue),r=t.animationId,n=t.isActive,o=t.canBegin,a=t.duration,i=t.easing,s=t.begin,l=t.onAnimationEnd,u=t.onAnimationStart,c=t.children,d=$S(),p=n==="auto"?!Ji.isSsr&&!d:n,f=b9(t.animationController),m=(0,Pv.useState)(p?C9:tP),y=Kue(m,2),b=y[0],g=y[1];return(0,Pv.useEffect)(()=>{p||g(tP)},[p]),(0,Pv.useEffect)(()=>{var h=y9(i);if(!p||!o||h==null)return Sa;var v=new US,x=new FS({animationId:r,easing:h,animationDuration:a,animationBegin:s,onAnimationStart:u,onAnimationEnd:l,from:C9,to:tP});return f(v,x,g)},[f,r,p,o,a,i,s,u,l]),c(Number(b))}var rP=Z(J());function HS(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",r=(0,rP.useRef)(tu(t)),n=(0,rP.useRef)(e);return n.current!==e&&(r.current=tu(t),n.current=e),r.current}var Jue=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),A9=(e,t,r)=>e.map(n=>"".concat(Jue(n)," ").concat(t,"ms ").concat(r)).join(",");var Que=["radius"],Rue=["radius"],E9,N9,T9,O9,P9,M9,I9,D9,j9,$9;function L9(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function z9(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var a=Ki(r),i=Ki(n),s=Math.min(Math.abs(a)/2,Math.abs(i)/2),l=i>=0?1:-1,u=a>=0?1:-1,c=i>=0&&a>=0||i<0&&a<0?1:0,d;if(s>0&&Array.isArray(o)){for(var p=[0,0,0,0],f=0,m=4;fs?s:b}d=Co(E9||(E9=ul(["M",",",""])),e,t+l*p[0]),p[0]>0&&(d+=Co(N9||(N9=ul(["A ",",",",0,0,",",",",",""])),p[0],p[0],c,e+u*p[0],t)),d+=Co(T9||(T9=ul(["L ",",",""])),e+r-u*p[1],t),p[1]>0&&(d+=Co(O9||(O9=ul(["A ",",",",0,0,",`, - `,",",""])),p[1],p[1],c,e+r,t+l*p[1])),d+=Co(P9||(P9=ul(["L ",",",""])),e+r,t+n-l*p[2]),p[2]>0&&(d+=Co(M9||(M9=ul(["A ",",",",0,0,",`, - `,",",""])),p[2],p[2],c,e+r-u*p[2],t+n)),d+=Co(I9||(I9=ul(["L ",",",""])),e+u*p[3],t+n),p[3]>0&&(d+=Co(D9||(D9=ul(["A ",",",",0,0,",`, - `,",",""])),p[3],p[3],c,e,t+n-l*p[3])),d+="Z"}else if(s>0&&o===+o&&o>0){var g=Math.min(s,o);d=Co(j9||(j9=ul(["M ",",",` + height and width.`,B,K,a,i,l,u,r),op.createElement("div",MS({id:m?"".concat(m):void 0,className:bt("recharts-responsive-container",y),style:A7(A7({},h),{},{width:a,height:i,minWidth:l,minHeight:u,maxHeight:c}),ref:x},v),op.createElement("div",{style:k7({width:a,height:i})},op.createElement(T7,{width:B,height:K},d)))}),Cc=(0,bo.forwardRef)((e,t)=>{var r=Av();if(qa(r.width)&&qa(r.height))return e.children;var n=_7({width:e.width,height:e.height,aspect:e.aspect}),o=n.width,a=n.height,i=KO(void 0,void 0,{width:o,height:a,aspect:e.aspect,maxHeight:e.maxHeight}),s=i.calculatedWidth,l=i.calculatedHeight;return De(s)&&De(l)?op.createElement(T7,{width:s,height:l},e.children):op.createElement(Jse,MS({},e,{width:o,height:a,ref:t}))});var ap=()=>{var e,t=Ar(),r=$e(OS),n=$e(np),o=(e=$e(tg))===null||e===void 0?void 0:e.padding;return!t||!n||!o?r:{width:n.width-o.left-o.right,height:n.height-o.top-o.bottom,x:o.left,y:o.top}},Qse={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},IS=()=>{var e;return(e=$e(Fr))!==null&&e!==void 0?e:Qse},ng=()=>$e(qo),og=()=>$e(Ko),P7=()=>$e(e=>e.layout.margin),Bt=e=>e.layout.layoutType,Va=()=>$e(Bt),ag=()=>{var e=Va();if(e==="horizontal"||e==="vertical")return e},DS=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t},M7=()=>$e(DS),I7=()=>{var e=Va();return e!==void 0},ip=e=>{var t=jt(),r=Ar(),n=e.width,o=e.height,a=Av(),i=n,s=o;return a&&(i=a.width>0?a.width:n,s=a.height>0?a.height:o),(0,O7.useEffect)(()=>{!r&&qa(i)&&qa(s)&&t(l7({width:i,height:s}))},[t,r,i,s]),null};var Rse={settings:{layout:"horizontal",align:"center",verticalAlign:"bottom",itemSorter:"value",position:void 0,offset:0},size:{width:0,height:0},payload:[]},D7=Cr({name:"legend",initialState:Rse,reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter,e.settings.position=t.payload.position,e.settings.offset=t.payload.offset},addLegendPayload:{reducer(e,t){e.payload.push(Zt(t.payload))},prepare:Ir()},replaceLegendPayload:{reducer(e,t){var r=t.payload,n=r.prev,o=r.next,a=ea(e).payload.indexOf(Zt(n));a>-1&&(e.payload[a]=Zt(o))},prepare:Ir()},removeLegendPayload:{reducer(e,t){var r=ea(e).payload.indexOf(Zt(t.payload));r>-1&&e.payload.splice(r,1)},prepare:Ir()}}}),Ev=D7.actions,VO=Ev.setLegendSize,j7=Ev.setLegendSettings,GO=Ev.addLegendPayload,YO=Ev.replaceLegendPayload,XO=Ev.removeLegendPayload;var $7=D7.reducer;var Gn=Z(J(),1),Ele=Z(F7(),1);var sle=Symbol.for("react.forward_ref");var lle=Symbol.for("react.memo");var ule=sle,cle=lle;function dle(e){e()}function ple(){let e=null,t=null;return{clear(){e=null,t=null},notify(){dle(()=>{let r=e;for(;r;)r.callback(),r=r.next})},get(){let r=[],n=e;for(;n;)r.push(n),n=n.next;return r},subscribe(r){let n=!0,o=t={callback:r,next:null,prev:t};return o.prev?o.prev.next=o:e=o,function(){!n||e===null||(n=!1,o.next?o.next.prev=o.prev:t=o.prev,o.prev?o.prev.next=o.next:e=o.next)}}}}var U7={notify(){},get:()=>[]};function fle(e,t){let r,n=U7,o=0,a=!1;function i(y){c();let b=n.subscribe(y),g=!1;return()=>{g||(g=!0,b(),d())}}function s(){n.notify()}function l(){m.onStateChange&&m.onStateChange()}function u(){return a}function c(){o++,r||(r=t?t.addNestedSub(l):e.subscribe(l),n=ple())}function d(){o--,r&&o===0&&(r(),r=void 0,n.clear(),n=U7)}function p(){a||(a=!0,c())}function f(){a&&(a=!1,d())}let m={addNestedSub:i,notifyNestedSubs:s,handleChangeWrapper:l,isSubscribed:u,trySubscribe:p,tryUnsubscribe:f,getListeners:()=>n};return m}var mle=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",gle=mle(),hle=()=>typeof navigator<"u"&&navigator.product==="ReactNative",yle=hle(),vle=()=>gle||yle?Gn.useLayoutEffect:Gn.useEffect,xle=vle();function W7(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function H7(e,t){if(W7(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let o=0;o{let l=fle(o);return{store:o,subscription:l,getServerState:n?()=>n:void 0}},[o,n]),i=Gn.useMemo(()=>o.getState(),[o]);return xle(()=>{let{subscription:l}=a;return l.onStateChange=l.notifyNestedSubs,l.trySubscribe(),i!==o.getState()&&l.notifyNestedSubs(),()=>{l.tryUnsubscribe(),l.onStateChange=void 0}},[a,i]),Gn.createElement((r||Cle).Provider,{value:a},t)}var q7=Ale;var Nle=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function Tle(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function Ga(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(Nle.has(n)){if(e[n]==null&&t[n]==null)continue;if(!H7(e[n],t[n]))return!1}else if(!Tle(e[n],t[n]))return!1;return!0}var K7=ae([qo,Ko,Jm],(e,t,r)=>({x:r.left||0,y:r.top||0,width:Math.max(e-(r.left||0)-(r.right||0),0),height:Math.max(t-(r.top||0)-(r.bottom||0),0)}));function V7(e,t){var r;if(e==="start"&&t==="start")return"";var n={start:"0",middle:"-50%",end:"-100%"},o={start:"0",middle:"-50%",end:"-100%"},a=e==="inherit"?"0":n[e],i=(r=o[t])!==null&&r!==void 0?r:"0";return"translate(".concat(a,", ").concat(i,")")}var Ole=["contextPayload"];function ZO(){return ZO=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{s(j7({align:t,layout:r,verticalAlign:n,itemSorter:o,position:a,offset:i}))},[s,t,r,n,o,a,i]),null}function Yle(e){var t=e.width,r=e.height,n=jt();return(0,jS.useLayoutEffect)(()=>{n(VO({width:t,height:r}))},[n,t,r]),(0,jS.useLayoutEffect)(()=>()=>{n(VO({width:0,height:0}))},[n]),null}function Xle(e,t,r,n){return e==="vertical"&&t!=null?{height:t}:e==="horizontal"?{width:r||n}:null}var Zle={align:"center",iconSize:14,inactiveColor:"#ccc",itemSorter:"value",labelStyle:{},layout:"auto",verticalAlign:"bottom",offset:0};function Jle(e){var t,r,n,o,a,i,s,l,u=nr(e,Zle),c=e.layout&&e.layout!=="auto"?e.layout:Hle(u.position),d=dB(),p=J6(),f=P7(),m=$e(j=>qle(j,u.position)),y=u.width,b=u.height,g=u.wrapperStyle,h=u.portal,v=h==null&&(u.position==null||cv(u.position)),x=Qw([d]),S=Ple(x,2),k=S[0],w=S[1],_=ng(),A=og();if(_==null||A==null||u.position!=null&&m==null)return null;var C=_-(f?.left||0)-(f?.right||0),N=Xle(c,b,y,C),L=u.position==null?null:pw({viewBox:m??{x:0,y:0,width:_,height:A},position:u.position,offset:(t=u.offset)!==null&&t!==void 0?t:0}),Q=Kle(u.position,(r=u.offset)!==null&&r!==void 0?r:0,k),B=c==="vertical"?((n=m?.width)!==null&&n!==void 0?n:0)/2:(o=m?.width)!==null&&o!==void 0?o:0,K=c==="horizontal"?((a=m?.height)!==null&&a!==void 0?a:0)/2:(i=m?.height)!==null&&i!==void 0?i:0,T=L?{width:"max-content",height:"max-content",maxWidth:B,maxHeight:K,overflowY:"auto",top:L.y+((s=Q.top)!==null&&s!==void 0?s:0),left:L.x+((l=Q.left)!==null&&l!==void 0?l:0),transform:V7(L.horizontalAnchor,L.verticalAnchor)}:Vle(g,u,f,_,A,k),O=h?g:ig(ig({position:"absolute",width:N?.width||y||"auto",height:N?.height||b||"auto"},T),g),I=h??p;if(I==null||d==null)return null;var P=bi.createElement("div",{className:"recharts-legend-wrapper",style:O,ref:w},bi.createElement(Gle,{layout:c,align:u.align,verticalAlign:u.verticalAlign,itemSorter:u.itemSorter,position:u.position,offset:u.offset}),v&&bi.createElement(Yle,k),bi.createElement(Wle,ZO({},u,{layout:c},N,{margin:f,chartWidth:_,chartHeight:A,contextPayload:d})));return(0,X7.createPortal)(P,I)}var $S=bi.memo(Jle,Ga);$S.displayName="Legend";var os=Z(J()),kH=Z(J()),_H=Z(oy());var Ms=Z(J());function JO(){return JO=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.separator,r=t===void 0?sg.separator:t,n=e.contentStyle,o=e.itemStyle,a=e.labelStyle,i=a===void 0?sg.labelStyle:a,s=e.payload,l=e.formatter,u=e.itemSorter,c=e.wrapperClassName,d=e.labelClassName,p=e.label,f=e.labelFormatter,m=e.accessibilityLayer,y=m===void 0?sg.accessibilityLayer:m,b=()=>{if(s&&s.length){var _={padding:0,margin:0},A=sue(s,u),C=A.map((N,L)=>{if(!N||N.type==="none")return null;var Q=N.formatter||l||iue,B=N.value,K=N.name,T=B,O=K;if(Q){var I=Q(B,K,N,L,s);if(Array.isArray(I)){var P=tue(I,2);T=P[0],O=P[1]}else if(I!=null)T=I;else return null}var j=Tv(Tv({},sg.itemStyle),{},{color:N.color||sg.itemStyle.color},o);return Ms.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(L),style:j},Sa(O)?Ms.createElement("span",{className:"recharts-tooltip-item-name"},O):null,Sa(O)?Ms.createElement("span",{className:"recharts-tooltip-item-separator"},r):null,Ms.createElement("span",{className:"recharts-tooltip-item-value"},T),Ms.createElement("span",{className:"recharts-tooltip-item-unit"},N.unit||""))});return Ms.createElement("ul",{className:"recharts-tooltip-item-list",style:_},C)}return null},g=Tv(Tv({},sg.contentStyle),n),h=Tv({margin:0},i),v=!ar(p),x=v?p:"",S=bt("recharts-default-tooltip",c),k=bt("recharts-tooltip-label",d);v&&f&&s!==void 0&&s!==null&&(x=f(p,s));var w=y?{role:"status","aria-live":"assertive"}:{};return Ms.createElement("div",JO({className:S,style:g},w),Ms.createElement("p",{className:k,style:h},Ms.isValidElement(x)?x:"".concat(x)),b())};var Ac=Z(J());var Ov="recharts-tooltip-wrapper",lue={visibility:"hidden"};function uue(e){var t=e.coordinate,r=e.translateX,n=e.translateY;return bt(Ov,{["".concat(Ov,"-right")]:De(r)&&t&&De(t.x)&&r>=t.x,["".concat(Ov,"-left")]:De(r)&&t&&De(t.x)&&r=t.y,["".concat(Ov,"-top")]:De(n)&&t&&De(t.y)&&n0?o:0),d=r[n]+o;if(t[n])return i[n]?c:d;var p=l[n];if(p==null)return 0;if(i[n]){var f=c,m=p;return fb?Math.max(c,p):Math.max(d,p)}function cue(e){var t=e.translateX,r=e.translateY,n=e.useTranslate3d;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function e9(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTop,o=e.offsetLeft,a=e.position,i=e.reverseDirection,s=e.tooltipBox,l=e.useTranslate3d,u=e.viewBox,c,d,p;return s&&s.height>0&&s.width>0&&r?(d=R7({allowEscapeViewBox:t,coordinate:r,key:"x",offset:o,position:a,reverseDirection:i,tooltipDimension:s.width,viewBox:u,viewBoxDimension:u.width}),p=R7({allowEscapeViewBox:t,coordinate:r,key:"y",offset:n,position:a,reverseDirection:i,tooltipDimension:s.height,viewBox:u,viewBoxDimension:u.height}),c=cue({translateX:d,translateY:p,useTranslate3d:l})):c=lue,{cssProperties:c,cssClasses:uue({translateX:d,translateY:p,coordinate:r})}}var LS=Z(J());var due=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),Qi={devToolsEnabled:!0,isSsr:due()};function pue(e,t){return hue(e)||gue(e,t)||mue(e,t)||fue()}function fue(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mue(e,t){if(e){if(typeof e=="string")return t9(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t9(e,t):void 0}}function t9(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rQi.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches),t=pue(e,2),r=t[0],n=t[1];return(0,LS.useEffect)(()=>{if(window.matchMedia){var o=window.matchMedia("(prefers-reduced-motion: reduce)"),a=()=>{n(o.matches)};return o.addEventListener("change",a),()=>{o.removeEventListener("change",a)}}},[]),r}function r9(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function lg(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}})),u=bue(l,2),c=u[0],d=u[1];Ac.useEffect(()=>{var g=h=>{if(h.key==="Escape"){var v,x,S,k;d({dismissed:!0,dismissedAtCoordinate:{x:(v=(x=e.coordinate)===null||x===void 0?void 0:x.x)!==null&&v!==void 0?v:0,y:(S=(k=e.coordinate)===null||k===void 0?void 0:k.y)!==null&&S!==void 0?S:0}})}};return document.addEventListener("keydown",g),()=>{document.removeEventListener("keydown",g)}},[(t=e.coordinate)===null||t===void 0?void 0:t.x,(r=e.coordinate)===null||r===void 0?void 0:r.y]),c.dismissed&&(((n=(o=e.coordinate)===null||o===void 0?void 0:o.x)!==null&&n!==void 0?n:0)!==c.dismissedAtCoordinate.x||((a=(i=e.coordinate)===null||i===void 0?void 0:i.y)!==null&&a!==void 0?a:0)!==c.dismissedAtCoordinate.y)&&d(lg(lg({},c),{},{dismissed:!1}));var p=e9({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset=="number"?e.offset:e.offset.x,offsetTop:typeof e.offset=="number"?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:e.lastBoundingBox,useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),f=p.cssClasses,m=p.cssProperties,y=e.hasPortalFromProps?{}:lg(lg({transition:Cue({prefersReducedMotion:s,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},m),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),b=lg(lg({},y),{},{visibility:!c.dismissed&&e.active&&e.hasPayload?"visible":"hidden"},e.wrapperStyle);return Ac.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:f,style:b,ref:e.innerRef},e.children)}var o9=Ac.memo(Aue);var BS=()=>{var e;return(e=$e(t=>t.rootProps.accessibilityLayer))!==null&&e!==void 0?e:!0};var C_=Z(J()),$g=Z(J());var c9=Z(J());function QO(){return QO=Object.assign?Object.assign.bind():function(e){for(var t=1;tOt(e.x)&&Ot(e.y),l9=e=>e.base!=null&&FS(e.base)&&FS(e),Pv=e=>e.x,Mv=e=>e.y,Oue=(e,t)=>{if(typeof e=="function")return e;var r="curve".concat(au(e));if((r==="curveMonotone"||r==="curveBump")&&t){var n=s9["".concat(r).concat(t==="vertical"?"Y":"X")];if(n)return n}return s9[r]||Sc},u9={connectNulls:!1,type:"linear"},Pue=e=>{var t=e.type,r=t===void 0?u9.type:t,n=e.points,o=n===void 0?[]:n,a=e.baseLine,i=e.layout,s=e.connectNulls,l=s===void 0?u9.connectNulls:s,u=Oue(r,i),c=l?o.filter(FS):o;if(Array.isArray(a)){var d,p=o.map((g,h)=>i9(i9({},g),{},{base:a[h]}));i==="vertical"?d=$m().y(Mv).x1(Pv).x0(g=>g.base.x):d=$m().x(Pv).y1(Mv).y0(g=>g.base.y);var f=d.defined(l9).curve(u),m=l?p.filter(l9):p;return f(m)}var y;i==="vertical"&&De(a)?y=$m().y(Mv).x1(Pv).x0(a):De(a)?y=$m().x(Pv).y1(Mv).y0(a):y=pv().x(Pv).y(Mv);var b=y.defined(FS).curve(u);return b(c)},ul=e=>{var t=e.className,r=e.points,n=e.path,o=e.pathRef,a=Va();if((!r||!r.length)&&!n)return null;var i={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||a,connectNulls:e.connectNulls},s=r&&r.length?Pue(i):n;return c9.createElement("path",QO({},hn(e),Um(e),{className:bt("recharts-curve",t),d:s===null?void 0:s,ref:o}))};var p9=Z(J());var Mue=["x","y","top","left","width","height","className"];function RO(){return RO=Object.assign?Object.assign.bind():function(e){for(var t=1;t"M".concat(e,",").concat(o,"v").concat(n,"M").concat(a,",").concat(t,"h").concat(r),f9=e=>{var t=e.x,r=t===void 0?0:t,n=e.y,o=n===void 0?0:n,a=e.top,i=a===void 0?0:a,s=e.left,l=s===void 0?0:s,u=e.width,c=u===void 0?0:u,d=e.height,p=d===void 0?0:d,f=e.className,m=Lue(e,Mue),y=Iue({x:r,y:o,top:i,left:l,width:c,height:p},m);return!De(r)||!De(o)||!De(c)||!De(p)||!De(i)||!De(l)?null:p9.createElement("path",RO({},yn(y),{className:bt("recharts-cross",f),d:Bue(r,o,c,p,i,l)}))};function m9(e,t,r,n){var o=n/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-o:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-o,width:e==="horizontal"?n:r.width-1,height:e==="horizontal"?r.height-1:n}}var VS=Z(J()),Ri=Z(J());var Iv=Z(J());var US=1e-4,y9=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],v9=(e,t)=>e.map((r,n)=>r*t**n).reduce((r,n)=>r+n),g9=(e,t)=>r=>{var n=y9(e,t);return v9(n,r)},Fue=(e,t)=>r=>{var n=y9(e,t),o=[...n.map((a,i)=>a*i).slice(1),0];return v9(o,r)},Uue=e=>{var t,r=e.split("(");if(r.length!==2||r[0]!=="cubic-bezier")return null;var n=(t=r[1])===null||t===void 0||(t=t.split(")")[0])===null||t===void 0?void 0:t.split(",");if(n==null||n.length!==4)return null;var o=n.map(a=>parseFloat(a));return[o[0],o[1],o[2],o[3]]},Wue=function(){for(var t=arguments.length,r=new Array(t),n=0;n{var o=g9(e,r),a=g9(t,n),i=Fue(e,r),s=u=>u>1?1:u<0?0:u,l=u=>{for(var c=u>1?1:u,d=c,p=0;p<8;++p){var f=o(d)-c,m=i(d);if(Math.abs(f-c)0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,o=t.damping,a=o===void 0?8:o,i=t.dt,s=i===void 0?16.67:i,l=1,u=[0],c=0,d=0,p=1e4,f=0;f{var h,v,x;if(g<=0)return 0;if(g>=1)return l;var S=g*b,k=Math.floor(S),w=S-k;return((h=u[k])!==null&&h!==void 0?h:0)+(((v=u[k+1])!==null&&v!==void 0?v:0)-((x=u[k])!==null&&x!==void 0?x:0))*w}},x9=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return h9(e);case"spring":return que();default:if(e.split("(")[0]==="cubic-bezier")return h9(e)}return typeof e=="function"?e:null};var ug=Z(J());var b9=(e,t,r)=>{var n,o=a=>{var i=t.tick(a);if(t.getState()==="active"){if(r(t.getInterpolated()),t.getProgress()===1){t.complete(),n=void 0;return}n=e.setTimeout(o,i);return}n=e.setTimeout(o,i)};return n=e.setTimeout(o,0),()=>{var a;return(a=n)===null||a===void 0?void 0:a()}};var w9=(0,ug.createContext)(b9),CIe=w9.Provider;function S9(e){var t=(0,ug.useContext)(w9);return(0,ug.useMemo)(()=>e??t,[e,t])}function Kue(e,t,r){return(t=Vue(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Vue(e){var t=Gue(e,"string");return typeof t=="symbol"?t:t+""}function Gue(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var k9="init",_9="pending",C9="active",Yue="completed";function eP(e){return Math.max(0,e)}var tP=class{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(t){var r;Kue(this,"state",k9),this.animationId=t.animationId,this.onAnimationEnd=t.onAnimationEnd,this.animationDuration=eP(t.animationDuration),this.animationBegin=eP(t.animationBegin),this.progress=0,this.from=t.from,this.to=t.to,this.easing=t.easing,(r=t.onAnimationStart)===null||r===void 0||r.call(t)}getState(){return this.state}getEasing(){return this.easing}getAnimationDuration(){return this.animationDuration}tick(t){if(this.getState()===k9)return this.state=_9,this.beginStartedTime=t,this.animationBegin;if(this.getState()===_9){if(this.beginStartedTime==null)throw new Error;var r=t-this.beginStartedTime;return r>=this.animationBegin?(this.state=C9,this.animationStartedTime=t,this.nextAnimationUpdate(0)):eP(this.animationBegin-r)}if(this.getState()===C9){if(this.animationStartedTime==null)throw new Error;var n=t-this.animationStartedTime;return this.setProgress(n/this.animationDuration),this.nextAnimationUpdate(n)}return 0}setProgress(t){this.progress=Math.min(1,Math.max(0,t))}getProgress(){return this.progress}complete(){if(this.progress=1,this.state==="active"){var t;(t=this.onAnimationEnd)===null||t===void 0||t.call(this)}this.state=Yue}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}},WS=class extends tP{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(_r(this.getFrom(),this.getTo(),this.getProgress()))}};var HS=class{setTimeout(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),o=null,a=i=>{i-n>=r?t(i):o=requestAnimationFrame(a)};return o=requestAnimationFrame(a),()=>{o!=null&&cancelAnimationFrame(o)}}};function Xue(e,t){return Rue(e)||Que(e,t)||Jue(e,t)||Zue()}function Zue(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Jue(e,t){if(e){if(typeof e=="string")return A9(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?A9(e,t):void 0}}function A9(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{},onAnimationStart:()=>{}},E9=0,rP=1;function qS(e){var t=nr(e,ece),r=t.animationId,n=t.isActive,o=t.canBegin,a=t.duration,i=t.easing,s=t.begin,l=t.onAnimationEnd,u=t.onAnimationStart,c=t.children,d=zS(),p=n==="auto"?!Qi.isSsr&&!d:n,f=S9(t.animationController),m=(0,Iv.useState)(p?E9:rP),y=Xue(m,2),b=y[0],g=y[1];return(0,Iv.useEffect)(()=>{p||g(rP)},[p]),(0,Iv.useEffect)(()=>{var h=x9(i);if(!p||!o||h==null)return ka;var v=new HS,x=new WS({animationId:r,easing:h,animationDuration:a,animationBegin:s,onAnimationStart:u,onAnimationEnd:l,from:E9,to:rP});return f(v,x,g)},[f,r,p,o,a,i,s,u,l]),c(Number(b))}var nP=Z(J());function KS(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",r=(0,nP.useRef)(ou(t)),n=(0,nP.useRef)(e);return n.current!==e&&(r.current=ou(t),n.current=e),r.current}var tce=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),N9=(e,t,r)=>e.map(n=>"".concat(tce(n)," ").concat(t,"ms ").concat(r)).join(",");var rce=["radius"],nce=["radius"],T9,O9,P9,M9,I9,D9,j9,$9,L9,z9;function B9(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function F9(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var a=Vi(r),i=Vi(n),s=Math.min(Math.abs(a)/2,Math.abs(i)/2),l=i>=0?1:-1,u=a>=0?1:-1,c=i>=0&&a>=0||i<0&&a<0?1:0,d;if(s>0&&Array.isArray(o)){for(var p=[0,0,0,0],f=0,m=4;fs?s:b}d=Co(T9||(T9=cl(["M",",",""])),e,t+l*p[0]),p[0]>0&&(d+=Co(O9||(O9=cl(["A ",",",",0,0,",",",",",""])),p[0],p[0],c,e+u*p[0],t)),d+=Co(P9||(P9=cl(["L ",",",""])),e+r-u*p[1],t),p[1]>0&&(d+=Co(M9||(M9=cl(["A ",",",",0,0,",`, + `,",",""])),p[1],p[1],c,e+r,t+l*p[1])),d+=Co(I9||(I9=cl(["L ",",",""])),e+r,t+n-l*p[2]),p[2]>0&&(d+=Co(D9||(D9=cl(["A ",",",",0,0,",`, + `,",",""])),p[2],p[2],c,e+r-u*p[2],t+n)),d+=Co(j9||(j9=cl(["L ",",",""])),e+u*p[3],t+n),p[3]>0&&(d+=Co($9||($9=cl(["A ",",",",0,0,",`, + `,",",""])),p[3],p[3],c,e,t+n-l*p[3])),d+="Z"}else if(s>0&&o===+o&&o>0){var g=Math.min(s,o);d=Co(L9||(L9=cl(["M ",",",` A `,",",",0,0,",",",",",` L `,",",` A `,",",",0,0,",",",",",` L `,",",` A `,",",",0,0,",",",",",` L `,",",` - A `,",",",0,0,",",",","," Z"])),e,t+l*g,g,g,c,e+u*g,t,e+r-u*g,t,g,g,c,e+r,t+l*g,e+r,t+n-l*g,g,g,c,e+r-u*g,t+n,e+u*g,t+n,g,g,c,e,t+n-l*g)}else d=Co($9||($9=ul(["M ",","," h "," v "," h "," Z"])),e,t,r,n,-r);return d},W9={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},VS=e=>{var t=nr(e,W9),r=(0,Qi.useRef)(null),n=(0,Qi.useState)(-1),o=oce(n,2),a=o[0],i=o[1];(0,Qi.useEffect)(()=>{if(r.current&&r.current.getTotalLength)try{var P=r.current.getTotalLength();P&&i(P)}catch{}},[]);var s=t.x,l=t.y,u=t.width,c=t.height,d=t.radius,p=t.className,f=t.animationEasing,m=t.animationDuration,y=t.animationBegin,b=t.isAnimationActive,g=t.isUpdateAnimationActive,h=(0,Qi.useRef)(u),v=(0,Qi.useRef)(c),x=(0,Qi.useRef)(s),S=(0,Qi.useRef)(l),_=(0,Qi.useMemo)(()=>({x:s,y:l,width:u,height:c,radius:d}),[s,l,u,c,d]),w=HS(_,"rectangle-");if(s!==+s||l!==+l||u!==+u||c!==+c||u===0||c===0)return null;var k=bt("recharts-rectangle",p);if(!g){var A=yn(t),C=A.radius,T=B9(A,Que);return qS.createElement("path",KS({},T,{x:Ki(s),y:Ki(l),width:Ki(u),height:Ki(c),radius:typeof d=="number"?d:void 0,className:k,d:U9(s,l,u,c,d)}))}var $=h.current,Q=v.current,B=x.current,K=S.current,N="0px ".concat(a===-1?1:a,"px"),O="".concat(a,"px ").concat(a,"px"),D=A9(["strokeDasharray"],m,typeof f=="string"?f:W9.animationEasing);return qS.createElement(WS,{animationId:w,key:w,canBegin:a>0,duration:m,easing:f,isActive:g,begin:y},P=>{var j=_r($,u,P),M=_r(Q,c,P),W=_r(B,s,P),Y=_r(K,l,P);r.current&&(h.current=j,v.current=M,x.current=W,S.current=Y);var L;b?P>0?L={transition:D,strokeDasharray:O}:L={strokeDasharray:N}:L={strokeDasharray:O};var G=yn(t),q=G.radius,oe=B9(G,Rue);return qS.createElement("path",KS({},oe,{radius:typeof d=="number"?d:void 0,className:k,d:U9(W,Y,j,M,d),ref:r,style:z9(z9({},L),t.style)}))})};function H9(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function q9(e){for(var t=1;te*180/Math.PI,an=(e,t,r,n)=>({x:e+Math.cos(-Mv*n)*r,y:t+Math.sin(-Mv*n)*r}),GS=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},fce=(e,t)=>{var r=e.x,n=e.y,o=t.x,a=t.y;return Math.sqrt((r-o)**2+(n-a)**2)},mce=(e,t)=>{var r=e.x,n=e.y,o=t.cx,a=t.cy,i=fce({x:r,y:n},{x:o,y:a});if(i<=0)return{radius:i,angle:0};var s=(r-o)/i,l=Math.acos(s);return n>a&&(l=2*Math.PI-l),{radius:i,angle:pce(l),angleInRadian:l}},gce=e=>{var t=e.startAngle,r=e.endAngle,n=Math.floor(t/360),o=Math.floor(r/360),a=Math.min(n,o);return{startAngle:t-a*360,endAngle:r-a*360}},hce=(e,t)=>{var r=t.startAngle,n=t.endAngle,o=Math.floor(r/360),a=Math.floor(n/360),i=Math.min(o,a);return e+i*360},K9=(e,t)=>{var r=e.relativeX,n=e.relativeY,o=mce({x:r,y:n},t),a=o.radius,i=o.angle,s=t.innerRadius,l=t.outerRadius;if(al||a===0)return null;var u=gce(t),c=u.startAngle,d=u.endAngle,p=i,f;if(c<=d){for(;p>d;)p-=360;for(;p=c&&p<=d}else{for(;p>c;)p-=360;for(;p=d&&p<=c}return f?q9(q9({},t),{},{radius:a,angle:hce(p,t)}):null};function YS(e){var t=e.cx,r=e.cy,n=e.radius,o=e.startAngle,a=e.endAngle,i=an(t,r,n,o),s=an(t,r,n,a);return{points:[i,s],cx:t,cy:r,radius:n,startAngle:o,endAngle:a}}var R9=Z(J());var V9,G9,Y9,X9,Z9,J9,Q9;function nP(){return nP=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=Zr(t-e),n=Math.min(Math.abs(t-e),359.999);return r*n},XS=e=>{var t=e.cx,r=e.cy,n=e.radius,o=e.angle,a=e.sign,i=e.isExternal,s=e.cornerRadius,l=e.cornerIsExternal,u=s*(i?1:-1)+n,c=Math.asin(s/u)/Mv,d=l?o:o+a*c,p=an(t,r,u,d),f=an(t,r,n,d),m=l?o-a*c:o,y=an(t,r,u*Math.cos(c*Mv),m);return{center:p,circleTangency:f,lineTangency:y,theta:c}},eF=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,o=e.outerRadius,a=e.startAngle,i=e.endAngle,s=yce(a,i),l=a+s,u=an(t,r,o,a),c=an(t,r,o,l),d=Co(V9||(V9=ip(["M ",",",` + A `,",",",0,0,",",",","," Z"])),e,t+l*g,g,g,c,e+u*g,t,e+r-u*g,t,g,g,c,e+r,t+l*g,e+r,t+n-l*g,g,g,c,e+r-u*g,t+n,e+u*g,t+n,g,g,c,e,t+n-l*g)}else d=Co(z9||(z9=cl(["M ",","," h "," v "," h "," Z"])),e,t,r,n,-r);return d},q9={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},YS=e=>{var t=nr(e,q9),r=(0,Ri.useRef)(null),n=(0,Ri.useState)(-1),o=lce(n,2),a=o[0],i=o[1];(0,Ri.useEffect)(()=>{if(r.current&&r.current.getTotalLength)try{var P=r.current.getTotalLength();P&&i(P)}catch{}},[]);var s=t.x,l=t.y,u=t.width,c=t.height,d=t.radius,p=t.className,f=t.animationEasing,m=t.animationDuration,y=t.animationBegin,b=t.isAnimationActive,g=t.isUpdateAnimationActive,h=(0,Ri.useRef)(u),v=(0,Ri.useRef)(c),x=(0,Ri.useRef)(s),S=(0,Ri.useRef)(l),k=(0,Ri.useMemo)(()=>({x:s,y:l,width:u,height:c,radius:d}),[s,l,u,c,d]),w=KS(k,"rectangle-");if(s!==+s||l!==+l||u!==+u||c!==+c||u===0||c===0)return null;var _=bt("recharts-rectangle",p);if(!g){var A=yn(t),C=A.radius,N=U9(A,rce);return VS.createElement("path",GS({},N,{x:Vi(s),y:Vi(l),width:Vi(u),height:Vi(c),radius:typeof d=="number"?d:void 0,className:_,d:H9(s,l,u,c,d)}))}var L=h.current,Q=v.current,B=x.current,K=S.current,T="0px ".concat(a===-1?1:a,"px"),O="".concat(a,"px ").concat(a,"px"),I=N9(["strokeDasharray"],m,typeof f=="string"?f:q9.animationEasing);return VS.createElement(qS,{animationId:w,key:w,canBegin:a>0,duration:m,easing:f,isActive:g,begin:y},P=>{var j=_r(L,u,P),M=_r(Q,c,P),W=_r(B,s,P),Y=_r(K,l,P);r.current&&(h.current=j,v.current=M,x.current=W,S.current=Y);var z;b?P>0?z={transition:I,strokeDasharray:O}:z={strokeDasharray:T}:z={strokeDasharray:O};var V=yn(t),q=V.radius,oe=U9(V,nce);return VS.createElement("path",GS({},oe,{radius:typeof d=="number"?d:void 0,className:_,d:H9(W,Y,j,M,d),ref:r,style:F9(F9({},z),t.style)}))})};function K9(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function V9(e){for(var t=1;te*180/Math.PI,an=(e,t,r,n)=>({x:e+Math.cos(-Dv*n)*r,y:t+Math.sin(-Dv*n)*r}),XS=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0,width:0,height:0,brushBottom:0};return Math.min(Math.abs(t-(n.left||0)-(n.right||0)),Math.abs(r-(n.top||0)-(n.bottom||0)))/2},yce=(e,t)=>{var r=e.x,n=e.y,o=t.x,a=t.y;return Math.sqrt((r-o)**2+(n-a)**2)},vce=(e,t)=>{var r=e.x,n=e.y,o=t.cx,a=t.cy,i=yce({x:r,y:n},{x:o,y:a});if(i<=0)return{radius:i,angle:0};var s=(r-o)/i,l=Math.acos(s);return n>a&&(l=2*Math.PI-l),{radius:i,angle:hce(l),angleInRadian:l}},xce=e=>{var t=e.startAngle,r=e.endAngle,n=Math.floor(t/360),o=Math.floor(r/360),a=Math.min(n,o);return{startAngle:t-a*360,endAngle:r-a*360}},bce=(e,t)=>{var r=t.startAngle,n=t.endAngle,o=Math.floor(r/360),a=Math.floor(n/360),i=Math.min(o,a);return e+i*360},G9=(e,t)=>{var r=e.relativeX,n=e.relativeY,o=vce({x:r,y:n},t),a=o.radius,i=o.angle,s=t.innerRadius,l=t.outerRadius;if(al||a===0)return null;var u=xce(t),c=u.startAngle,d=u.endAngle,p=i,f;if(c<=d){for(;p>d;)p-=360;for(;p=c&&p<=d}else{for(;p>c;)p-=360;for(;p=d&&p<=c}return f?V9(V9({},t),{},{radius:a,angle:bce(p,t)}):null};function ZS(e){var t=e.cx,r=e.cy,n=e.radius,o=e.startAngle,a=e.endAngle,i=an(t,r,n,o),s=an(t,r,n,a);return{points:[i,s],cx:t,cy:r,radius:n,startAngle:o,endAngle:a}}var tF=Z(J());var Y9,X9,Z9,J9,Q9,R9,eF;function oP(){return oP=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=Qr(t-e),n=Math.min(Math.abs(t-e),359.999);return r*n},JS=e=>{var t=e.cx,r=e.cy,n=e.radius,o=e.angle,a=e.sign,i=e.isExternal,s=e.cornerRadius,l=e.cornerIsExternal,u=s*(i?1:-1)+n,c=Math.asin(s/u)/Dv,d=l?o:o+a*c,p=an(t,r,u,d),f=an(t,r,n,d),m=l?o-a*c:o,y=an(t,r,u*Math.cos(c*Dv),m);return{center:p,circleTangency:f,lineTangency:y,theta:c}},rF=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,o=e.outerRadius,a=e.startAngle,i=e.endAngle,s=wce(a,i),l=a+s,u=an(t,r,o,a),c=an(t,r,o,l),d=Co(Y9||(Y9=sp(["M ",",",` A `,",",`,0, `,",",`, `,",",` - `])),u.x,u.y,o,o,+(Math.abs(s)>180),+(a>l),c.x,c.y);if(n>0){var p=an(t,r,n,a),f=an(t,r,n,l);d+=Co(G9||(G9=ip(["L ",",",` + `])),u.x,u.y,o,o,+(Math.abs(s)>180),+(a>l),c.x,c.y);if(n>0){var p=an(t,r,n,a),f=an(t,r,n,l);d+=Co(X9||(X9=sp(["L ",",",` A `,",",`,0, `,",",`, - `,","," Z"])),f.x,f.y,n,n,+(Math.abs(s)>180),+(a<=l),p.x,p.y)}else d+=Co(Y9||(Y9=ip(["L ",","," Z"])),t,r);return d},vce=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,o=e.outerRadius,a=e.cornerRadius,i=e.forceCornerRadius,s=e.cornerIsExternal,l=e.startAngle,u=e.endAngle,c=Zr(u-l),d=XS({cx:t,cy:r,radius:o,angle:l,sign:c,cornerRadius:a,cornerIsExternal:s}),p=d.circleTangency,f=d.lineTangency,m=d.theta,y=XS({cx:t,cy:r,radius:o,angle:u,sign:-c,cornerRadius:a,cornerIsExternal:s}),b=y.circleTangency,g=y.lineTangency,h=y.theta,v=s?Math.abs(l-u):Math.abs(l-u)-m-h;if(v<0)return i?Co(X9||(X9=ip(["M ",",",` + `,","," Z"])),f.x,f.y,n,n,+(Math.abs(s)>180),+(a<=l),p.x,p.y)}else d+=Co(Z9||(Z9=sp(["L ",","," Z"])),t,r);return d},Sce=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,o=e.outerRadius,a=e.cornerRadius,i=e.forceCornerRadius,s=e.cornerIsExternal,l=e.startAngle,u=e.endAngle,c=Qr(u-l),d=JS({cx:t,cy:r,radius:o,angle:l,sign:c,cornerRadius:a,cornerIsExternal:s}),p=d.circleTangency,f=d.lineTangency,m=d.theta,y=JS({cx:t,cy:r,radius:o,angle:u,sign:-c,cornerRadius:a,cornerIsExternal:s}),b=y.circleTangency,g=y.lineTangency,h=y.theta,v=s?Math.abs(l-u):Math.abs(l-u)-m-h;if(v<0)return i?Co(J9||(J9=sp(["M ",",",` a`,",",",0,0,1,",`,0 a`,",",",0,0,1,",`,0 - `])),f.x,f.y,a,a,a*2,a,a,-a*2):eF({cx:t,cy:r,innerRadius:n,outerRadius:o,startAngle:l,endAngle:u});var x=Co(Z9||(Z9=ip(["M ",",",` + `])),f.x,f.y,a,a,a*2,a,a,-a*2):rF({cx:t,cy:r,innerRadius:n,outerRadius:o,startAngle:l,endAngle:u});var x=Co(Q9||(Q9=sp(["M ",",",` A`,",",",0,0,",",",",",` A`,",",",0,",",",",",",",` A`,",",",0,0,",",",",",` - `])),f.x,f.y,a,a,+(c<0),p.x,p.y,o,o,+(v>180),+(c<0),b.x,b.y,a,a,+(c<0),g.x,g.y);if(n>0){var S=XS({cx:t,cy:r,radius:n,angle:l,sign:c,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),_=S.circleTangency,w=S.lineTangency,k=S.theta,A=XS({cx:t,cy:r,radius:n,angle:u,sign:-c,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),C=A.circleTangency,T=A.lineTangency,$=A.theta,Q=s?Math.abs(l-u):Math.abs(l-u)-k-$;if(Q<0&&a===0)return"".concat(x,"L").concat(t,",").concat(r,"Z");x+=Co(J9||(J9=ip(["L",",",` + `])),f.x,f.y,a,a,+(c<0),p.x,p.y,o,o,+(v>180),+(c<0),b.x,b.y,a,a,+(c<0),g.x,g.y);if(n>0){var S=JS({cx:t,cy:r,radius:n,angle:l,sign:c,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),k=S.circleTangency,w=S.lineTangency,_=S.theta,A=JS({cx:t,cy:r,radius:n,angle:u,sign:-c,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),C=A.circleTangency,N=A.lineTangency,L=A.theta,Q=s?Math.abs(l-u):Math.abs(l-u)-_-L;if(Q<0&&a===0)return"".concat(x,"L").concat(t,",").concat(r,"Z");x+=Co(R9||(R9=sp(["L",",",` A`,",",",0,0,",",",",",` A`,",",",0,",",",",",",",` - A`,",",",0,0,",",",",","Z"])),T.x,T.y,a,a,+(c<0),C.x,C.y,n,n,+(Q>180),+(c>0),_.x,_.y,a,a,+(c<0),w.x,w.y)}else x+=Co(Q9||(Q9=ip(["L",",","Z"])),t,r);return x},xce={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},ZS=e=>{var t=nr(e,xce),r=t.cx,n=t.cy,o=t.innerRadius,a=t.outerRadius,i=t.cornerRadius,s=t.forceCornerRadius,l=t.cornerIsExternal,u=t.startAngle,c=t.endAngle,d=t.className;if(a0&&Math.abs(u-c)<360?y=vce({cx:r,cy:n,innerRadius:o,outerRadius:a,cornerRadius:Math.min(m,f/2),forceCornerRadius:s,cornerIsExternal:l,startAngle:u,endAngle:c}):y=eF({cx:r,cy:n,innerRadius:o,outerRadius:a,startAngle:u,endAngle:c}),R9.createElement("path",nP({},yn(t),{className:p,d:y}))};function tF(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(vw(t)){if(e==="centric"){var n=t.cx,o=t.cy,a=t.innerRadius,i=t.outerRadius,s=t.angle,l=an(n,o,a,s),u=an(n,o,i,s);return[{x:l.x,y:l.y},{x:u.x,y:u.y}]}return YS(t)}}function rF(e){return Yw(e)?NaN:Number(e)}function JS(e){return e?(e=rF(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function QS(e,t,r){r&&typeof r!="number"&&hv(e,t,r)&&(t=r=void 0),e=JS(e),t===void 0?(t=e,e=0):t=JS(t),r=r===void 0?ee.chartData,sp=ae([Ya],e=>{var t=e.chartData!=null?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),lp=(e,t,r,n)=>n?sp(e):Ya(e),RS=(e,t,r)=>r?sp(e):Ya(e),nF=ae([lp],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]}),oF=ae([sp],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]}),aF=ae([Ya],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});function oP(e,t){return kce(e)||Sce(e,t)||wce(e,t)||bce()}function bce(){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 wce(e,t){if(e){if(typeof e=="string")return iF(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)?iF(e,t):void 0}}function iF(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=Iv(e,2),r=t[0],n=t[1],o=r,a=n;return r>n&&(o=n,a=r),[o,a]},uP=(e,t,r)=>{if(e.lte(0))return new wr.default(0);var n=sP(e.toNumber()),o=new wr.default(10).pow(n),a=e.div(o),i=n!==1?.05:.1,s=new wr.default(Math.ceil(a.div(i).toNumber())).add(r).mul(i),l=s.mul(o);return t?new wr.default(l.toNumber()):new wr.default(Math.ceil(l.toNumber()))},pF=(e,t,r)=>{var n;if(e.lte(0))return new wr.default(0);var o=[1,2,2.5,5],a=e.toNumber(),i=Math.floor(new wr.default(a).abs().log(10).toNumber()),s=new wr.default(10).pow(i),l=e.div(s).toNumber(),u=o.findIndex(f=>f>=l-1e-10);if(u===-1&&(s=s.mul(10),u=0),u+=r,u>=o.length){var c=Math.floor(u/o.length);u%=o.length,s=s.mul(new wr.default(10).pow(c))}var d=(n=o[u])!==null&&n!==void 0?n:1,p=new wr.default(d).mul(s);return t?p:new wr.default(Math.ceil(p.toNumber()))},Nce=(e,t,r)=>{var n=new wr.default(1),o=new wr.default(e);if(!o.isint()&&r){var a=Math.abs(e);a<1?(n=new wr.default(10).pow(sP(e)-1),o=new wr.default(Math.floor(o.div(n).toNumber())).mul(n)):a>1&&(o=new wr.default(Math.floor(e)))}else e===0?o=new wr.default(Math.floor((t-1)/2)):r||(o=new wr.default(Math.floor(e)));for(var i=Math.floor((t-1)/2),s=[],l=0;l4&&arguments[4]!==void 0?arguments[4]:0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:uP;if(!Number.isFinite((r-t)/(n-1)))return{step:new wr.default(0),tickMin:new wr.default(0),tickMax:new wr.default(0)};var s=i(new wr.default(r).sub(t).div(n-1),o,a),l;t<=0&&r>=0?l=new wr.default(0):(l=new wr.default(t).add(r).div(2),l=l.sub(new wr.default(l).mod(s)));var u=Math.ceil(l.sub(t).div(s).toNumber()),c=Math.ceil(new wr.default(r).sub(l).div(s).toNumber()),d=u+c+1;return d>n?fF(t,r,n,o,a+1,i):(d0?c+(n-d):c,u=r>0?u:u+(n-d)),{step:s,tickMin:l.sub(new wr.default(u).mul(s)),tickMax:l.add(new wr.default(c).mul(s))})};var rk=function(t){var r=Iv(t,2),n=r[0],o=r[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",l=Math.max(a,2),u=dF([n,o]),c=Iv(u,2),d=c[0],p=c[1];if(d===-1/0||p===1/0){var f=p===1/0?[d,...Array(a-1).fill(1/0)]:[...Array(a-1).fill(-1/0),p];return n>o?f.reverse():f}if(d===p)return Nce(d,a,i);var m=s==="snap125"?pF:uP,y=fF(d,p,l,i,0,m),b=y.step,g=y.tickMin,h=y.tickMax,v=lP(g,h.add(new wr.default(.1).mul(b)),b);return n>o?v.reverse():v},nk=function(t,r){var n=Iv(t,2),o=n[0],a=n[1],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",l=dF([o,a]),u=Iv(l,2),c=u[0],d=u[1];if(c===-1/0||d===1/0)return[o,a];if(c===d)return[c];var p=s==="snap125"?pF:uP,f=Math.max(r,2),m=p(new wr.default(d).sub(c).div(f-1),i,0),y=[...lP(new wr.default(c),new wr.default(d),m),d];if(i===!1){y=y.map(g=>Math.round(g));var b=y.length-1;b>0&&y[b]===y[b-1]&&(y=y.slice(0,b))}return o>a?y.reverse():y};var cP=e=>e.rootProps.maxBarSize,mF=e=>e.rootProps.barGap,ok=e=>e.rootProps.barCategoryGap,gF=e=>e.rootProps.barSize,Ac=e=>e.rootProps.stackOffset,ak=e=>e.rootProps.reverseStackOrder,lg=e=>e.options.chartName,ik=e=>e.rootProps.syncId,dP=e=>e.rootProps.syncMethod,sk=e=>e.options.eventEmitter,hF=e=>e.rootProps.baseValue;var ir={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3};var Ec={allowDecimals:!1,allowDuplicatedCategory:!0,allowDataOverflow:!1,angle:0,angleAxisId:0,axisLine:!0,axisLineType:"polygon",cx:0,cy:0,hide:!1,includeHidden:!1,label:!1,niceTicks:"auto",orientation:"outer",reversed:!1,scale:"auto",tick:!0,tickLine:!0,tickSize:8,type:"auto",zIndex:ir.axis};var Is={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,angle:0,axisLine:!0,includeHidden:!1,hide:!1,niceTicks:"auto",label:!1,orientation:"right",radiusAxisId:0,reversed:!1,scale:"auto",stroke:"#ccc",tick:!0,tickCount:5,tickLine:!0,type:"auto",zIndex:ir.axis};var up=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function cp(e,t,r){if(r!=="auto")return r;if(e!=null)return sa(e,t)?"category":"number"}function yF(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function lk(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},uk=ae([Mce,MS],(e,t)=>{var r;if(e!=null)return e;var n=(r=cp(t,"angleAxis",vF.type))!==null&&r!==void 0?r:"category";return lk(lk({},vF),{},{type:n})}),Ice=(e,t)=>e.polarAxis.radiusAxis[t],ck=ae([Ice,MS],(e,t)=>{var r;if(e!=null)return e;var n=(r=cp(t,"radiusAxis",xF.type))!==null&&r!==void 0?r:"category";return lk(lk({},xF),{},{type:n})}),dk=e=>e.polarOptions,pP=ae([qo,Ko,Fr],GS),bF=ae([dk,pP],(e,t)=>{if(e!=null)return Dn(e.innerRadius,t,0)}),wF=ae([dk,pP],(e,t)=>{if(e!=null)return Dn(e.outerRadius,t,t*.8)}),Dce=e=>{if(e==null)return[0,0];var t=e.startAngle,r=e.endAngle;return[t,r]},fP=ae([dk],Dce),HDe=ae([uk,fP],up),mP=ae([pP,bF,wF],(e,t,r)=>{if(!(e==null||t==null||r==null))return[t,r]}),qDe=ae([ck,mP],up),pk=ae([Bt,dk,bF,wF,qo,Ko],(e,t,r,n,o,a)=>{if(!(e!=="centric"&&e!=="radial"||t==null||r==null||n==null)){var i=t.cx,s=t.cy,l=t.startAngle,u=t.endAngle;return{cx:Dn(i,o,o/2),cy:Dn(s,a,a/2),innerRadius:r,outerRadius:n,startAngle:l,endAngle:u,clockWise:!1}}});var vn=(e,t)=>t;var dp=(e,t,r)=>r;function Nc(e){return e?.id}function fk(e,t,r){var n=t.chartData,o=n===void 0?[]:n,a=r.allowDuplicatedCategory,i=r.dataKey,s=new Map;return e.forEach(l=>{var u,c=(u=l.data)!==null&&u!==void 0?u:o;if(!(c==null||c.length===0)){var d=Nc(l);c.forEach((p,f)=>{var m=i==null||a?f:String(Ht(p,i,null)),y=Ht(p,l.dataKey,0),b;s.has(m)?b=s.get(m):b={},Object.assign(b,{[d]:y}),s.set(m,b)})}}),Array.from(s.values())}function pp(e){return"stackId"in e&&e.stackId!=null&&e.dataKey!=null}var fp=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function ug(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function SF(e,t){if(e.length===t.length){for(var r=0;r{var t=Bt(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"};var Tc=e=>e.tooltip.settings.axisId;function Dv(e){if(e!=null){var t=e.ticks,r=e.bandwidth,n=e.range(),o=[Math.min(...n),Math.max(...n)];return{domain:()=>e.domain(),range:(function(a){function i(){return a.apply(this,arguments)}return i.toString=function(){return a.toString()},i})(()=>o),rangeMin:()=>o[0],rangeMax:()=>o[1],isInRange(a){var i=o[0],s=o[1];return i<=s?a>=i&&a<=s:a>=s&&a<=i},bandwidth:r?()=>r.call(e):void 0,ticks:t?a=>t.call(e,a):void 0,map:(a,i)=>{var s=e(a);if(s!=null){if(e.bandwidth&&i!==null&&i!==void 0&&i.position){var l=e.bandwidth();switch(i.position){case"middle":s+=l/2;break;case"end":s+=l;break;default:break}}return s}}}}}var mk=(e,t)=>{if(t!=null)switch(e){case"linear":{if(!wi(t)){for(var r,n,o=0;on)&&(n=a))}return r!==void 0&&n!==void 0?[r,n]:void 0}return t}default:return t}};var tx={};Ste(tx,{scaleBand:()=>zv,scaleDiverging:()=>Xk,scaleDivergingLog:()=>GP,scaleDivergingPow:()=>Zk,scaleDivergingSqrt:()=>qU,scaleDivergingSymlog:()=>YP,scaleIdentity:()=>Ik,scaleImplicit:()=>wk,scaleLinear:()=>Mk,scaleLog:()=>Dk,scaleOrdinal:()=>pg,scalePoint:()=>TF,scalePow:()=>Xv,scaleQuantile:()=>Lk,scaleQuantize:()=>zk,scaleRadial:()=>$k,scaleSequential:()=>Kk,scaleSequentialLog:()=>KP,scaleSequentialPow:()=>Vk,scaleSequentialQuantile:()=>Gk,scaleSequentialSqrt:()=>HU,scaleSequentialSymlog:()=>VP,scaleSqrt:()=>dU,scaleSymlog:()=>jk,scaleThreshold:()=>Bk,scaleTime:()=>HP,scaleUtc:()=>qP,tickFormat:()=>qv});function _a(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function gP(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function mp(e){let t,r,n;e.length!==2?(t=_a,r=(s,l)=>_a(e(s),l),n=(s,l)=>e(s)-l):(t=e===_a||e===gP?e:jce,r=e,n=e);function o(s,l,u=0,c=s.length){if(u>>1;r(s[d],l)<0?u=d+1:c=d}while(u>>1;r(s[d],l)<=0?u=d+1:c=d}while(uu&&n(s[d-1],l)>-n(s[d],l)?d-1:d}return{left:o,center:i,right:a}}function jce(){return 0}function jv(e){return e===null?NaN:+e}function*kF(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 _F=mp(_a),CF=_F.right,$ce=_F.left,Lce=mp(jv).center,Ds=CF;var cg=class extends Map{constructor(t,r=Fce){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(let[n,o]of t)this.set(n,o)}get(t){return super.get(AF(this,t))}has(t){return super.has(AF(this,t))}set(t,r){return super.set(zce(this,t),r)}delete(t){return super.delete(Bce(this,t))}};function AF({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):r}function zce({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function Bce({_intern:e,_key:t},r){let n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function Fce(e){return e!==null&&typeof e=="object"?e.valueOf():e}function EF(e=_a){if(e===_a)return hP;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 hP(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}var Uce=Math.sqrt(50),Wce=Math.sqrt(10),Hce=Math.sqrt(2);function gk(e,t,r){let n=(t-e)/Math.max(0,r),o=Math.floor(Math.log10(n)),a=n/Math.pow(10,o),i=a>=Uce?10:a>=Wce?5:a>=Hce?2:1,s,l,u;return o<0?(u=Math.pow(10,-o)/i,s=Math.round(e*u),l=Math.round(t*u),s/ut&&--l,u=-u):(u=Math.pow(10,o)*i,s=Math.round(e/u),l=Math.round(t/u),s*ut&&--l),l0))return[];if(e===t)return[e];let n=t=o))return[];let s=a-o+1,l=new Array(s);if(n)if(i<0)for(let u=0;u=n)&&(r=n);else{let n=-1;for(let o of e)(o=t(o,++n,e))!=null&&(r=o)&&(r=o)}return r}function yk(e,t){let r;if(t===void 0)for(let n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let o of e)(o=t(o,++n,e))!=null&&(r>o||r===void 0&&o>=o)&&(r=o)}return r}function vk(e,t,r=0,n=1/0,o){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(o=o===void 0?hP:EF(o);n>r;){if(n-r>600){let l=n-r+1,u=t-r+1,c=Math.log(l),d=.5*Math.exp(2*c/3),p=.5*Math.sqrt(c*d*(l-d)/l)*(u-l/2<0?-1:1),f=Math.max(r,Math.floor(t-u*d/l+p)),m=Math.min(n,Math.floor(t+(l-u)*d/l+p));vk(e,t,f,m,o)}let a=e[t],i=r,s=n;for(Lv(e,r,t),o(e[n],a)>0&&Lv(e,r,n);i0;)--s}o(e[r],a)===0?Lv(e,r,s):(++s,Lv(e,s,n)),s<=t&&(r=s+1),t<=s&&(n=s-1)}return e}function Lv(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}function xk(e,t,r){if(e=Float64Array.from(kF(e,r)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return yk(e);if(t>=1)return hk(e);var n,o=(n-1)*t,a=Math.floor(o),i=hk(vk(e,a).subarray(0,a+1)),s=yk(e.subarray(a+1));return i+(s-i)*(o-a)}}function yP(e,t,r=jv){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,o=(n-1)*t,a=Math.floor(o),i=+r(e[a],a,e),s=+r(e[a+1],a+1,e);return i+(s-i)*(o-a)}}function bk(e,t,r){e=+e,t=+t,r=(o=arguments.length)<2?(t=e,e=0,1):o<3?1:+r;for(var n=-1,o=Math.max(0,Math.ceil((t-e)/r))|0,a=new Array(o);++n>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?kk(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?kk(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=Kce.exec(e))?new Xa(t[1],t[2],t[3],1):(t=Vce.exec(e))?new Xa(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Gce.exec(e))?kk(t[1],t[2],t[3],t[4]):(t=Yce.exec(e))?kk(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Xce.exec(e))?$F(t[1],t[2]/100,t[3]/100,1):(t=Zce.exec(e))?$F(t[1],t[2]/100,t[3]/100,t[4]):OF.hasOwnProperty(e)?IF(OF[e]):e==="transparent"?new Xa(NaN,NaN,NaN,0):null}function IF(e){return new Xa(e>>16&255,e>>8&255,e&255,1)}function kk(e,t,r,n){return n<=0&&(e=t=r=NaN),new Xa(e,t,r,n)}function Rce(e){return e instanceof Uv||(e=Oc(e)),e?(e=e.rgb(),new Xa(e.r,e.g,e.b,e.opacity)):new Xa}function mg(e,t,r,n){return arguments.length===1?Rce(e):new Xa(e,t,r,n??1)}function Xa(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}Sk(Xa,mg,vP(Uv,{brighter(e){return e=e==null?Ck:Math.pow(Ck,e),new Xa(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Bv:Math.pow(Bv,e),new Xa(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Xa(yp(this.r),yp(this.g),yp(this.b),Ak(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:DF,formatHex:DF,formatHex8:ede,formatRgb:jF,toString:jF}));function DF(){return`#${hp(this.r)}${hp(this.g)}${hp(this.b)}`}function ede(){return`#${hp(this.r)}${hp(this.g)}${hp(this.b)}${hp((isNaN(this.opacity)?1:this.opacity)*255)}`}function jF(){let e=Ak(this.opacity);return`${e===1?"rgb(":"rgba("}${yp(this.r)}, ${yp(this.g)}, ${yp(this.b)}${e===1?")":`, ${e})`}`}function Ak(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function yp(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function hp(e){return e=yp(e),(e<16?"0":"")+e.toString(16)}function $F(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new js(e,t,r,n)}function zF(e){if(e instanceof js)return new js(e.h,e.s,e.l,e.opacity);if(e instanceof Uv||(e=Oc(e)),!e)return new js;if(e instanceof js)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,o=Math.min(t,r,n),a=Math.max(t,r,n),i=NaN,s=a-o,l=(a+o)/2;return s?(t===a?i=(r-n)/s+(r0&&l<1?0:i,new js(i,s,l,e.opacity)}function BF(e,t,r,n){return arguments.length===1?zF(e):new js(e,t,r,n??1)}function js(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}Sk(js,BF,vP(Uv,{brighter(e){return e=e==null?Ck:Math.pow(Ck,e),new js(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Bv:Math.pow(Bv,e),new js(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,o=2*r-n;return new Xa(xP(e>=240?e-240:e+120,o,n),xP(e,o,n),xP(e<120?e+240:e-120,o,n),this.opacity)},clamp(){return new js(LF(this.h),_k(this.s),_k(this.l),Ak(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=Ak(this.opacity);return`${e===1?"hsl(":"hsla("}${LF(this.h)}, ${_k(this.s)*100}%, ${_k(this.l)*100}%${e===1?")":`, ${e})`}`}}));function LF(e){return e=(e||0)%360,e<0?e+360:e}function _k(e){return Math.max(0,Math.min(1,e||0))}function xP(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 bP(e,t,r,n,o){var a=e*e,i=a*e;return((1-3*e+3*a-i)*t+(4-6*a+3*i)*r+(1+3*e+3*a-3*i)*n+i*o)/6}function FF(e){var t=e.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,t-1):Math.floor(r*t),o=e[n],a=e[n+1],i=n>0?e[n-1]:2*o-a,s=n()=>e;function tde(e,t){return function(r){return e+r*t}}function rde(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 WF(e){return(e=+e)==1?Ek:function(t,r){return r-t?rde(t,r,e):Wv(isNaN(t)?r:t)}}function Ek(e,t){var r=t-e;return r?tde(e,r):Wv(isNaN(e)?t:e)}var wP=(function e(t){var r=WF(t);function n(o,a){var i=r((o=mg(o)).r,(a=mg(a)).r),s=r(o.g,a.g),l=r(o.b,a.b),u=Ek(o.opacity,a.opacity);return function(c){return o.r=i(c),o.g=s(c),o.b=l(c),o.opacity=u(c),o+""}}return n.gamma=e,n})(1);function HF(e){return function(t){var r=t.length,n=new Array(r),o=new Array(r),a=new Array(r),i,s;for(i=0;ir&&(a=t.slice(r,a),s[i]?s[i]+=a:s[++i]=a),(n=n[0])===(o=o[0])?s[i]?s[i]+=o:s[++i]=o:(s[++i]=null,l.push({i,x:Pc(n,o)})),r=SP.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function ide(e,t,r){var n=e[0],o=e[1],a=t[0],i=t[1];return o2?sde:ide,l=u=null,d}function d(p){return p==null||isNaN(p=+p)?a:(l||(l=s(e.map(n),t,r)))(n(i(p)))}return d.invert=function(p){return i(o((u||(u=s(t,e.map(n),Pc)))(p)))},d.domain=function(p){return arguments.length?(e=Array.from(p,Mc),c()):e.slice()},d.range=function(p){return arguments.length?(t=Array.from(p),c()):t.slice()},d.rangeRound=function(p){return t=Array.from(p),r=vp,c()},d.clamp=function(p){return arguments.length?(i=p?!0:Eo,c()):i!==Eo},d.interpolate=function(p){return arguments.length?(r=p,c()):r},d.unknown=function(p){return arguments.length?(a=p,d):a},function(p,f){return n=p,o=f,c()}}function bp(){return xp()(Eo,Eo)}function JF(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function wp(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 pl(e){return e=wp(Math.abs(e)),e?e[1]:NaN}function QF(e,t){return function(r,n){for(var o=r.length,a=[],i=0,s=e[0],l=0;o>0&&s>0&&(l+s+1>n&&(s=Math.max(1,n-l)),a.push(r.substring(o-=s,o+s)),!((l+=s+1)>n));)s=e[i=(i+1)%e.length];return a.reverse().join(t)}}function RF(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var lde=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function fl(e){if(!(t=lde.exec(e)))throw new Error("invalid format: "+e);var t;return new Tk({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]})}fl.prototype=Tk.prototype;function Tk(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+""}Tk.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 eU(e){e:for(var t=e.length,r=1,n=-1,o;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(o+1):e}var Hv;function tU(e,t){var r=wp(e,t);if(!r)return Hv=void 0,e.toPrecision(t);var n=r[0],o=r[1],a=o-(Hv=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,i=n.length;return a===i?n:a>i?n+new Array(a-i+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+wp(e,Math.max(0,t+a-1))[0]}function AP(e,t){var r=wp(e,t);if(!r)return e+"";var n=r[0],o=r[1];return o<0?"0."+new Array(-o).join("0")+n:n.length>o+1?n.slice(0,o+1)+"."+n.slice(o+1):n+new Array(o-n.length+2).join("0")}var EP={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:JF,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)=>AP(e*100,t),r:AP,s:tU,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function NP(e){return e}var rU=Array.prototype.map,nU=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function oU(e){var t=e.grouping===void 0||e.thousands===void 0?NP:QF(rU.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",o=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?NP:RF(rU.call(e.numerals,String)),i=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"\u2212":e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function u(d,p){d=fl(d);var f=d.fill,m=d.align,y=d.sign,b=d.symbol,g=d.zero,h=d.width,v=d.comma,x=d.precision,S=d.trim,_=d.type;_==="n"?(v=!0,_="g"):EP[_]||(x===void 0&&(x=12),S=!0,_="g"),(g||f==="0"&&m==="=")&&(g=!0,f="0",m="=");var w=(p&&p.prefix!==void 0?p.prefix:"")+(b==="$"?r:b==="#"&&/[boxX]/.test(_)?"0"+_.toLowerCase():""),k=(b==="$"?n:/[%p]/.test(_)?i:"")+(p&&p.suffix!==void 0?p.suffix:""),A=EP[_],C=/[defgprs%]/.test(_);x=x===void 0?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,x)):Math.max(0,Math.min(20,x));function T($){var Q=w,B=k,K,N,O;if(_==="c")B=A($)+B,$="";else{$=+$;var D=$<0||1/$<0;if($=isNaN($)?l:A(Math.abs($),x),S&&($=eU($)),D&&+$==0&&y!=="+"&&(D=!1),Q=(D?y==="("?y:s:y==="-"||y==="("?"":y)+Q,B=(_==="s"&&!isNaN($)&&Hv!==void 0?nU[8+Hv/3]:"")+B+(D&&y==="("?")":""),C){for(K=-1,N=$.length;++KO||O>57){B=(O===46?o+$.slice(K+1):$.slice(K))+B,$=$.slice(0,K);break}}}v&&!g&&($=t($,1/0));var P=Q.length+$.length+B.length,j=P>1)+Q+$+B+j.slice(P);break;default:$=j+Q+$+B;break}return a($)}return T.toString=function(){return d+""},T}function c(d,p){var f=Math.max(-8,Math.min(8,Math.floor(pl(p)/3)))*3,m=Math.pow(10,-f),y=u((d=fl(d),d.type="f",d),{suffix:nU[8+f/3]});return function(b){return y(m*b)}}return{format:u,formatPrefix:c}}var Ok,gg,Pk;TP({thousands:",",grouping:[3],currency:["$",""]});function TP(e){return Ok=oU(e),gg=Ok.format,Pk=Ok.formatPrefix,Ok}function OP(e){return Math.max(0,-pl(Math.abs(e)))}function PP(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(pl(t)/3)))*3-pl(Math.abs(e)))}function MP(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,pl(t)-pl(e))+1}function qv(e,t,r,n){var o=dg(e,t,r),a;switch(n=fl(n??",f"),n.type){case"s":{var i=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(a=PP(o,i))&&(n.precision=a),Pk(n,i)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=MP(o,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=OP(o))&&(n.precision=a-(n.type==="%")*2);break}}return gg(n)}function Ca(e){var t=e.domain;return e.ticks=function(r){var n=t();return gp(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var o=t();return qv(o[0],o[o.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),o=0,a=n.length-1,i=n[o],s=n[a],l,u,c=10;for(s0;){if(u=$v(i,s,r),u===l)return n[o]=i,n[a]=s,t(n);if(u>0)i=Math.floor(i/u)*u,s=Math.ceil(s/u)*u;else if(u<0)i=Math.ceil(i*u)/u,s=Math.floor(s*u)/u;else break;l=u}return e},e}function Mk(){var e=bp();return e.copy=function(){return dl(e,Mk())},An.apply(e,arguments),Ca(e)}function Ik(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,Mc),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return Ik(e).unknown(t)},e=arguments.length?Array.from(e,Mc):[0,1],Ca(r)}function Kv(e,t){e=e.slice();var r=0,n=e.length-1,o=e[r],a=e[n],i;return aMath.pow(e,t)}function fde(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 sU(e){return(t,r)=>-e(-t,r)}function Vv(e){let t=e(aU,iU),r=t.domain,n=10,o,a;function i(){return o=fde(n),a=pde(n),r()[0]<0?(o=sU(o),a=sU(a),e(ude,cde)):e(aU,iU),t}return t.base=function(s){return arguments.length?(n=+s,i()):n},t.domain=function(s){return arguments.length?(r(s),i()):r()},t.ticks=s=>{let l=r(),u=l[0],c=l[l.length-1],d=c0){for(;p<=f;++p)for(m=1;mc)break;g.push(y)}}else for(;p<=f;++p)for(m=n-1;m>=1;--m)if(y=p>0?m/a(-p):m*a(p),!(yc)break;g.push(y)}g.length*2{if(s==null&&(s=10),l==null&&(l=n===10?"s":","),typeof l!="function"&&(!(n%1)&&(l=fl(l)).precision==null&&(l.trim=!0),l=gg(l)),s===1/0)return l;let u=Math.max(1,n*s/t.ticks().length);return c=>{let d=c/a(Math.round(o(c)));return d*nr(Kv(r(),{floor:s=>a(Math.floor(o(s))),ceil:s=>a(Math.ceil(o(s)))})),t}function Dk(){let e=Vv(xp()).domain([1,10]);return e.copy=()=>dl(e,Dk()).base(e.base()),An.apply(e,arguments),e}function lU(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function uU(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Gv(e){var t=1,r=e(lU(t),uU(t));return r.constant=function(n){return arguments.length?e(lU(t=+n),uU(t)):t},Ca(r)}function jk(){var e=Gv(xp());return e.copy=function(){return dl(e,jk()).constant(e.constant())},An.apply(e,arguments)}function cU(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function mde(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function gde(e){return e<0?-e*e:e*e}function Yv(e){var t=e(Eo,Eo),r=1;function n(){return r===1?e(Eo,Eo):r===.5?e(mde,gde):e(cU(r),cU(1/r))}return t.exponent=function(o){return arguments.length?(r=+o,n()):r},Ca(t)}function Xv(){var e=Yv(xp());return e.copy=function(){return dl(e,Xv()).exponent(e.exponent())},An.apply(e,arguments),e}function dU(){return Xv.apply(null,arguments).exponent(.5)}function pU(e){return Math.sign(e)*e*e}function hde(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function $k(){var e=bp(),t=[0,1],r=!1,n;function o(a){var i=hde(e(a));return isNaN(i)?n:r?Math.round(i):i}return o.invert=function(a){return e.invert(pU(a))},o.domain=function(a){return arguments.length?(e.domain(a),o):e.domain()},o.range=function(a){return arguments.length?(e.range((t=Array.from(a,Mc)).map(pU)),o):t.slice()},o.rangeRound=function(a){return o.range(a).round(!0)},o.round=function(a){return arguments.length?(r=!!a,o):r},o.clamp=function(a){return arguments.length?(e.clamp(a),o):e.clamp()},o.unknown=function(a){return arguments.length?(n=a,o):n},o.copy=function(){return $k(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},An.apply(o,arguments),Ca(o)}function Lk(){var e=[],t=[],r=[],n;function o(){var i=0,s=Math.max(1,t.length);for(r=new Array(s-1);++i0?r[s-1]:e[0],s=r?[n[r-1],t]:[n[u-1],n[u]]},i.unknown=function(l){return arguments.length&&(a=l),i},i.thresholds=function(){return n.slice()},i.copy=function(){return zk().domain([e,t]).range(o).unknown(a)},An.apply(Ca(i),arguments)}function Bk(){var e=[.5],t=[0,1],r,n=1;function o(a){return a!=null&&a<=a?t[Ds(e,a,0,n)]:r}return o.domain=function(a){return arguments.length?(e=Array.from(a),n=Math.min(e.length,t.length-1),o):e.slice()},o.range=function(a){return arguments.length?(t=Array.from(a),n=Math.min(e.length,t.length-1),o):t.slice()},o.invertExtent=function(a){var i=t.indexOf(a);return[e[i-1],e[i]]},o.unknown=function(a){return arguments.length?(r=a,o):r},o.copy=function(){return Bk().domain(e).range(t).unknown(r)},An.apply(o,arguments)}var IP=new Date,DP=new Date;function Jr(e,t,r,n){function o(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return o.floor=a=>(e(a=new Date(+a)),a),o.ceil=a=>(e(a=new Date(a-1)),t(a,1),e(a),a),o.round=a=>{let i=o(a),s=o.ceil(a);return a-i(t(a=new Date(+a),i==null?1:Math.floor(i)),a),o.range=(a,i,s)=>{let l=[];if(a=o.ceil(a),s=s==null?1:Math.floor(s),!(a0))return l;let u;do l.push(u=new Date(+a)),t(a,s),e(a);while(uJr(i=>{if(i>=i)for(;e(i),!a(i);)i.setTime(i-1)},(i,s)=>{if(i>=i)if(s<0)for(;++s<=0;)for(;t(i,-1),!a(i););else for(;--s>=0;)for(;t(i,1),!a(i););}),r&&(o.count=(a,i)=>(IP.setTime(+a),DP.setTime(+i),e(IP),e(DP),Math.floor(r(IP,DP))),o.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?o.filter(n?i=>n(i)%a===0:i=>o.count(0,i)%a===0):o)),o}var Zv=Jr(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Zv.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Jr(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):Zv);var S$e=Zv.range;var es=Jr(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*1e3)},(e,t)=>(t-e)/1e3,e=>e.getUTCSeconds()),fU=es.range;var hg=Jr(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getMinutes()),yde=hg.range,yg=Jr(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getUTCMinutes()),vde=yg.range;var vg=Jr(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()),xde=vg.range,xg=Jr(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getUTCHours()),bde=xg.range;var uu=Jr(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),wde=uu.range,_p=Jr(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>e.getUTCDate()-1),Sde=_p.range,Fk=Jr(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>Math.floor(e/864e5)),kde=Fk.range;function Cp(e){return Jr(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 cu=Cp(0),bg=Cp(1),gU=Cp(2),hU=Cp(3),Ic=Cp(4),yU=Cp(5),vU=Cp(6),xU=cu.range,_de=bg.range,Cde=gU.range,Ade=hU.range,Ede=Ic.range,Nde=yU.range,Tde=vU.range;function Ap(e){return Jr(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 du=Ap(0),wg=Ap(1),bU=Ap(2),wU=Ap(3),Dc=Ap(4),SU=Ap(5),kU=Ap(6),_U=du.range,Ode=wg.range,Pde=bU.range,Mde=wU.range,Ide=Dc.range,Dde=SU.range,jde=kU.range;var Sg=Jr(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()),$de=Sg.range,kg=Jr(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()),Lde=kg.range;var ki=Jr(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());ki.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Jr(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 zde=ki.range,_i=Jr(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());_i.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Jr(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 Bde=_i.range;function AU(e,t,r,n,o,a){let i=[[es,1,1e3],[es,5,5*1e3],[es,15,15*1e3],[es,30,30*1e3],[a,1,6e4],[a,5,5*6e4],[a,15,15*6e4],[a,30,30*6e4],[o,1,36e5],[o,3,3*36e5],[o,6,6*36e5],[o,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[t,1,2592e6],[t,3,3*2592e6],[e,1,31536e6]];function s(u,c,d){let p=cb).right(i,p);if(f===i.length)return e.every(dg(u/31536e6,c/31536e6,d));if(f===0)return Zv.every(Math.max(dg(u,c,d),1));let[m,y]=i[p/i[f-1][2]53)return null;"w"in te||(te.w=1),"Z"in te?(ke=FP(Qv(te.y,0,1)),ee=ke.getUTCDay(),ke=ee>4||ee===0?wg.ceil(ke):wg(ke),ke=_p.offset(ke,(te.V-1)*7),te.y=ke.getUTCFullYear(),te.m=ke.getUTCMonth(),te.d=ke.getUTCDate()+(te.w+6)%7):(ke=BP(Qv(te.y,0,1)),ee=ke.getDay(),ke=ee>4||ee===0?bg.ceil(ke):bg(ke),ke=uu.offset(ke,(te.V-1)*7),te.y=ke.getFullYear(),te.m=ke.getMonth(),te.d=ke.getDate()+(te.w+6)%7)}else("W"in te||"U"in te)&&("w"in te||(te.w="u"in te?te.u%7:"W"in te?1:0),ee="Z"in te?FP(Qv(te.y,0,1)).getUTCDay():BP(Qv(te.y,0,1)).getDay(),te.m=0,te.d="W"in te?(te.w+6)%7+te.W*7-(ee+5)%7:te.w+te.U*7-(ee+6)%7);return"Z"in te?(te.H+=te.Z/100|0,te.M+=te.Z%100,FP(te)):BP(te)}}function k(ge,ue,R,te){for(var Be=0,ke=ue.length,ee=R.length,z,E;Be=ee)return-1;if(z=ue.charCodeAt(Be++),z===37){if(z=ue.charAt(Be++),E=S[z in EU?ue.charAt(Be++):z],!E||(te=E(ge,R,te))<0)return-1}else if(z!=R.charCodeAt(te++))return-1}return te}function A(ge,ue,R){var te=u.exec(ue.slice(R));return te?(ge.p=c.get(te[0].toLowerCase()),R+te[0].length):-1}function C(ge,ue,R){var te=f.exec(ue.slice(R));return te?(ge.w=m.get(te[0].toLowerCase()),R+te[0].length):-1}function T(ge,ue,R){var te=d.exec(ue.slice(R));return te?(ge.w=p.get(te[0].toLowerCase()),R+te[0].length):-1}function $(ge,ue,R){var te=g.exec(ue.slice(R));return te?(ge.m=h.get(te[0].toLowerCase()),R+te[0].length):-1}function Q(ge,ue,R){var te=y.exec(ue.slice(R));return te?(ge.m=b.get(te[0].toLowerCase()),R+te[0].length):-1}function B(ge,ue,R){return k(ge,t,ue,R)}function K(ge,ue,R){return k(ge,r,ue,R)}function N(ge,ue,R){return k(ge,n,ue,R)}function O(ge){return i[ge.getDay()]}function D(ge){return a[ge.getDay()]}function P(ge){return l[ge.getMonth()]}function j(ge){return s[ge.getMonth()]}function M(ge){return o[+(ge.getHours()>=12)]}function W(ge){return 1+~~(ge.getMonth()/3)}function Y(ge){return i[ge.getUTCDay()]}function L(ge){return a[ge.getUTCDay()]}function G(ge){return l[ge.getUTCMonth()]}function q(ge){return s[ge.getUTCMonth()]}function oe(ge){return o[+(ge.getUTCHours()>=12)]}function Me(ge){return 1+~~(ge.getUTCMonth()/3)}return{format:function(ge){var ue=_(ge+="",v);return ue.toString=function(){return ge},ue},parse:function(ge){var ue=w(ge+="",!1);return ue.toString=function(){return ge},ue},utcFormat:function(ge){var ue=_(ge+="",x);return ue.toString=function(){return ge},ue},utcParse:function(ge){var ue=w(ge+="",!0);return ue.toString=function(){return ge},ue}}}var EU={"-":"",_:" ",0:"0"},Vo=/^\s*\d+/,Ude=/^%/,Wde=/[\\^$*+?|[\]().{}]/g;function Er(e,t,r){var n=e<0?"-":"",o=(n?-e:e)+"",a=o.length;return n+(a[t.toLowerCase(),r]))}function qde(e,t,r){var n=Vo.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function Kde(e,t,r){var n=Vo.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function Vde(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function Gde(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function Yde(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function NU(e,t,r){var n=Vo.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function TU(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function Xde(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 Zde(e,t,r){var n=Vo.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function Jde(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function OU(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function Qde(e,t,r){var n=Vo.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function PU(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function Rde(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function epe(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function tpe(e,t,r){var n=Vo.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function rpe(e,t,r){var n=Vo.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function npe(e,t,r){var n=Ude.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function ope(e,t,r){var n=Vo.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function ape(e,t,r){var n=Vo.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function MU(e,t){return Er(e.getDate(),t,2)}function ipe(e,t){return Er(e.getHours(),t,2)}function spe(e,t){return Er(e.getHours()%12||12,t,2)}function lpe(e,t){return Er(1+uu.count(ki(e),e),t,3)}function LU(e,t){return Er(e.getMilliseconds(),t,3)}function upe(e,t){return LU(e,t)+"000"}function cpe(e,t){return Er(e.getMonth()+1,t,2)}function dpe(e,t){return Er(e.getMinutes(),t,2)}function ppe(e,t){return Er(e.getSeconds(),t,2)}function fpe(e){var t=e.getDay();return t===0?7:t}function mpe(e,t){return Er(cu.count(ki(e)-1,e),t,2)}function zU(e){var t=e.getDay();return t>=4||t===0?Ic(e):Ic.ceil(e)}function gpe(e,t){return e=zU(e),Er(Ic.count(ki(e),e)+(ki(e).getDay()===4),t,2)}function hpe(e){return e.getDay()}function ype(e,t){return Er(bg.count(ki(e)-1,e),t,2)}function vpe(e,t){return Er(e.getFullYear()%100,t,2)}function xpe(e,t){return e=zU(e),Er(e.getFullYear()%100,t,2)}function bpe(e,t){return Er(e.getFullYear()%1e4,t,4)}function wpe(e,t){var r=e.getDay();return e=r>=4||r===0?Ic(e):Ic.ceil(e),Er(e.getFullYear()%1e4,t,4)}function Spe(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Er(t/60|0,"0",2)+Er(t%60,"0",2)}function IU(e,t){return Er(e.getUTCDate(),t,2)}function kpe(e,t){return Er(e.getUTCHours(),t,2)}function _pe(e,t){return Er(e.getUTCHours()%12||12,t,2)}function Cpe(e,t){return Er(1+_p.count(_i(e),e),t,3)}function BU(e,t){return Er(e.getUTCMilliseconds(),t,3)}function Ape(e,t){return BU(e,t)+"000"}function Epe(e,t){return Er(e.getUTCMonth()+1,t,2)}function Npe(e,t){return Er(e.getUTCMinutes(),t,2)}function Tpe(e,t){return Er(e.getUTCSeconds(),t,2)}function Ope(e){var t=e.getUTCDay();return t===0?7:t}function Ppe(e,t){return Er(du.count(_i(e)-1,e),t,2)}function FU(e){var t=e.getUTCDay();return t>=4||t===0?Dc(e):Dc.ceil(e)}function Mpe(e,t){return e=FU(e),Er(Dc.count(_i(e),e)+(_i(e).getUTCDay()===4),t,2)}function Ipe(e){return e.getUTCDay()}function Dpe(e,t){return Er(wg.count(_i(e)-1,e),t,2)}function jpe(e,t){return Er(e.getUTCFullYear()%100,t,2)}function $pe(e,t){return e=FU(e),Er(e.getUTCFullYear()%100,t,2)}function Lpe(e,t){return Er(e.getUTCFullYear()%1e4,t,4)}function zpe(e,t){var r=e.getUTCDay();return e=r>=4||r===0?Dc(e):Dc.ceil(e),Er(e.getUTCFullYear()%1e4,t,4)}function Bpe(){return"+0000"}function DU(){return"%"}function jU(e){return+e}function $U(e){return Math.floor(+e/1e3)}var _g,Uk,UU,Wk,WU;WP({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 WP(e){return _g=UP(e),Uk=_g.format,UU=_g.parse,Wk=_g.utcFormat,WU=_g.utcParse,_g}function Fpe(e){return new Date(e)}function Upe(e){return e instanceof Date?+e:+new Date(+e)}function Hk(e,t,r,n,o,a,i,s,l,u){var c=bp(),d=c.invert,p=c.domain,f=u(".%L"),m=u(":%S"),y=u("%I:%M"),b=u("%I %p"),g=u("%a %d"),h=u("%b %d"),v=u("%B"),x=u("%Y");function S(_){return(l(_)<_?f:s(_)<_?m:i(_)<_?y:a(_)<_?b:n(_)<_?o(_)<_?g:h:r(_)<_?v:x)(_)}return c.invert=function(_){return new Date(d(_))},c.domain=function(_){return arguments.length?p(Array.from(_,Upe)):p().map(Fpe)},c.ticks=function(_){var w=p();return e(w[0],w[w.length-1],_??10)},c.tickFormat=function(_,w){return w==null?S:u(w)},c.nice=function(_){var w=p();return(!_||typeof _.range!="function")&&(_=t(w[0],w[w.length-1],_??10)),_?p(Kv(w,_)):c},c.copy=function(){return dl(c,Hk(e,t,r,n,o,a,i,s,l,u))},c}function HP(){return An.apply(Hk(LP,zP,ki,Sg,cu,uu,vg,hg,es,Uk).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function qP(){return An.apply(Hk(jP,$P,_i,kg,du,_p,xg,yg,es,Wk).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function qk(){var e=0,t=1,r,n,o,a,i=Eo,s=!1,l;function u(d){return d==null||isNaN(d=+d)?l:i(o===0?.5:(d=(a(d)-r)*o,s?Math.max(0,Math.min(1,d)):d))}u.domain=function(d){return arguments.length?([e,t]=d,r=a(e=+e),n=a(t=+t),o=r===n?0:1/(n-r),u):[e,t]},u.clamp=function(d){return arguments.length?(s=!!d,u):s},u.interpolator=function(d){return arguments.length?(i=d,u):i};function c(d){return function(p){var f,m;return arguments.length?([f,m]=p,i=d(f,m),u):[i(0),i(1)]}}return u.range=c(Si),u.rangeRound=c(vp),u.unknown=function(d){return arguments.length?(l=d,u):l},function(d){return a=d,r=d(e),n=d(t),o=r===n?0:1/(n-r),u}}function pu(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function Kk(){var e=Ca(qk()(Eo));return e.copy=function(){return pu(e,Kk())},Ri.apply(e,arguments)}function KP(){var e=Vv(qk()).domain([1,10]);return e.copy=function(){return pu(e,KP()).base(e.base())},Ri.apply(e,arguments)}function VP(){var e=Gv(qk());return e.copy=function(){return pu(e,VP()).constant(e.constant())},Ri.apply(e,arguments)}function Vk(){var e=Yv(qk());return e.copy=function(){return pu(e,Vk()).exponent(e.exponent())},Ri.apply(e,arguments)}function HU(){return Vk.apply(null,arguments).exponent(.5)}function Gk(){var e=[],t=Eo;function r(n){if(n!=null&&!isNaN(n=+n))return t((Ds(e,n,1)-1)/(e.length-1))}return r.domain=function(n){if(!arguments.length)return e.slice();e=[];for(let o of n)o!=null&&!isNaN(o=+o)&&e.push(o);return e.sort(_a),r},r.interpolator=function(n){return arguments.length?(t=n,r):t},r.range=function(){return e.map((n,o)=>t(o/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(o,a)=>xk(e,a/n))},r.copy=function(){return Gk(t).domain(e)},Ri.apply(r,arguments)}function Yk(){var e=0,t=.5,r=1,n=1,o,a,i,s,l,u=Eo,c,d=!1,p;function f(y){return isNaN(y=+y)?p:(y=.5+((y=+c(y))-a)*(n*y{if(e!=null){var n=e.scale,o=e.type;if(n==="auto")return o==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!t)?"point":o==="category"?"band":"linear";if(typeof n=="string")return qpe(n)?n:"point"}};function Kpe(e,t){for(var r=0,n=e.length,o=e[0]t)?r=a+1:n=a}return r}function Qk(e,t){if(e){var r=t??e.domain(),n=r.map(a=>{var i;return(i=e(a))!==null&&i!==void 0?i:0}),o=e.range();if(!(r.length===0||o.length<2))return a=>{var i,s,l=Kpe(n,a);if(l<=0)return r[0];if(l>=r.length)return r[r.length-1];var u=(i=n[l-1])!==null&&i!==void 0?i:0,c=(s=n[l])!==null&&s!==void 0?s:0;return Math.abs(a-u)<=Math.abs(a-c)?r[l-1]:r[l]}}}function VU(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):Qk(e,void 0)}function GU(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Rk(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);re.cartesianAxis.xAxis[t],gl=(e,t)=>{var r=ZP(e,t);return r??ao},io={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:XP,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:tp},JP=(e,t)=>e.cartesianAxis.yAxis[t],hl=(e,t)=>{var r=JP(e,t);return r??io},Rpe={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:""},QP=(e,t)=>{var r=e.cartesianAxis.zAxis[t];return r??Rpe},En=(e,t,r)=>{switch(t){case"xAxis":return gl(e,r);case"yAxis":return hl(e,r);case"zAxis":return QP(e,r);case"angleAxis":return uk(e,r);case"radiusAxis":return ck(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},efe=(e,t,r)=>{switch(t){case"xAxis":return gl(e,r);case"yAxis":return hl(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},Ep=(e,t,r)=>{switch(t){case"xAxis":return gl(e,r);case"yAxis":return hl(e,r);case"angleAxis":return uk(e,r);case"radiusAxis":return ck(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},RP=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function ox(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 jc=e=>e.graphicalItems.cartesianItems,tfe=ae([vn,dp],ox),ax=(e,t,r)=>e.filter(r).filter(n=>t?.includeHidden===!0?!0:!n.hide),Ag=ae([jc,En,tfe],ax,{memoizeOptions:{resultEqualityCheck:ug}}),JU=ae([Ag],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(pp)),eM=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),rfe=ae([Ag],eM),ix=e=>e.map(t=>t.data).filter(Boolean).flat(1),nfe=ae([Ag],e=>e.some(t=>!t.data)),QU=ae([Ag],ix,{memoizeOptions:{resultEqualityCheck:ug}}),sx=(e,t)=>{var r=t.chartData,n=r===void 0?[]:r,o=t.dataStartIndex,a=t.dataEndIndex;return e.length>0?e:n.slice(o,a+1)},tM=ae([QU,lp],sx),rM=(e,t,r)=>t?.dataKey!=null?e.map(n=>({value:Ht(n,t.dataKey)})):r.length>0?r.map(n=>n.dataKey).flatMap(n=>e.map(o=>({value:Ht(o,n)}))):e.map(n=>({value:n})),nM=(e,t,r,n,o,a)=>{var i=n.chartData,s=i===void 0?[]:i,l=n.dataStartIndex,u=n.dataEndIndex,c=rM(e,t,r);if(o&&t?.dataKey!=null&&a.length>0){var d=s.slice(l,u+1),p=d.map(f=>({value:Ht(f,t.dataKey)})).filter(f=>f.value!=null);return[...p,...c]}return c},lx=ae([tM,En,Ag,lp,nfe,QU],nM);function Cg(e){if(wa(e)||e instanceof Date){var t=Number(e);if(Ot(t))return t}}function XU(e){if(Array.isArray(e)){var t=[Cg(e[0]),Cg(e[1])];return wi(t)?t:void 0}var r=Cg(e);if(r!=null)return[r,r]}function $s(e){return e.map(Cg).filter(Ao)}function ofe(e,t){var r=Cg(e),n=Cg(t);return r==null&&n==null?0:r==null?-1:n==null?1:r-n}var afe=ae([lx],e=>e?.map(t=>t.value).sort(ofe));function RU(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function ife(e,t,r){if(!r)return[];if(!r.length)return[];var n;if(typeof t=="number"&&!Wo(t))n=t;else if(Array.isArray(t)){var o=$s(t);o.length>0&&(n=Math.max(...o))}return n==null?[]:$s(r.flatMap(a=>{var i=Ht(e,a.dataKey),s,l;if(Array.isArray(i)){var u=ZU(i,2);s=u[0],l=u[1]}else s=l=i;if(!(!Ot(s)||!Ot(l)))return[n-s,n+l]}))}var so=e=>{var t=oo(e),r=Tc(e);return Ep(e,t,r)},fu=ae([so],e=>e?.dataKey),sfe=ae([JU,lp,so],fk),oM=(e,t,r,n)=>{var o={},a=t.reduce((i,s)=>{if(s.stackId==null)return i;var l=i[s.stackId];return l==null&&(l=[]),l.push(s),i[s.stackId]=l,i},o);return Object.fromEntries(Object.entries(a).map(i=>{var s=ZU(i,2),l=s[0],u=s[1],c=n?[...u].reverse():u,d=c.map(Nc);return[l,{stackedData:p7(e,d,r),graphicalItems:c}]}))},Eg=ae([sfe,JU,Ac,ak],oM),aM=(e,t,r,n)=>{var o=t.dataStartIndex,a=t.dataEndIndex;if(n==null&&r!=="zAxis")return m7(e,o,a)},lfe=ae([En],e=>e.allowDataOverflow),e_=e=>{var t;if(e==null||!("domain"in e))return XP;if(e.domain!=null)return e.domain;if("ticks"in e&&e.ticks!=null){if(e.type==="number"){var r=$s(e.ticks);return[Math.min(...r),Math.max(...r)]}if(e.type==="category")return e.ticks.map(String)}return(t=e?.domain)!==null&&t!==void 0?t:XP},t_=ae([En],e_),r_=ae([t_,lfe],ek),ufe=ae([Eg,Ya,vn,r_],aM,{memoizeOptions:{resultEqualityCheck:fp}}),Ng=e=>e.errorBars,cfe=(e,t,r)=>e.flatMap(n=>t[n.id]).filter(Boolean).filter(n=>RU(r,n)),nx=function(){for(var t=arguments.length,r=new Array(t),n=0;n5&&arguments[5]!==void 0?arguments[5]:[],s,l;if(n.length>0&&n.forEach(u=>{var c,d=u.data!=null?[...u.data]:i,p=(c=o[u.id])===null||c===void 0?void 0:c.filter(f=>RU(a,f));d.forEach(f=>{var m,y=Ht(f,(m=r.dataKey)!==null&&m!==void 0?m:u.dataKey),b=ife(f,y,p);if(b.length>=2){var g=Math.min(...b),h=Math.max(...b);(s==null||gl)&&(l=h)}var v=XU(y);v!=null&&(s=s==null?v[0]:Math.min(s,v[0]),l=l==null?v[1]:Math.max(l,v[1]))})}),r?.dataKey!=null&&n.length===0&&t.forEach(u=>{var c=XU(Ht(u,r.dataKey));c!=null&&(s=s==null?c[0]:Math.min(s,c[0]),l=l==null?c[1]:Math.max(l,c[1]))}),Ot(s)&&Ot(l))return[s,l]},dfe=ae([tM,En,rfe,Ng,vn,nF],ux,{memoizeOptions:{resultEqualityCheck:fp}});function pfe(e){var t=e.value;if(wa(t)||t instanceof Date)return t}var ffe=(e,t,r)=>{var n=e.map(pfe).filter(o=>o!=null);return r&&(t.dataKey==null||t.allowDuplicatedCategory&&TT(n))?QS(0,e.length):t.allowDuplicatedCategory?n:Array.from(new Set(n))},iM=e=>e.referenceElements.dots,Np=(e,t,r)=>e.filter(n=>n.ifOverflow==="extendDomain").filter(n=>t==="xAxis"?n.xAxisId===r:n.yAxisId===r),mfe=ae([iM,vn,dp],Np),sM=e=>e.referenceElements.areas,gfe=ae([sM,vn,dp],Np),lM=e=>e.referenceElements.lines,hfe=ae([lM,vn,dp],Np),uM=(e,t)=>{if(e!=null){var r=$s(e.map(n=>t==="xAxis"?n.x:n.y));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},yfe=ae(mfe,vn,uM),cM=(e,t)=>{if(e!=null){var r=$s(e.flatMap(n=>[t==="xAxis"?n.x1:n.y1,t==="xAxis"?n.x2:n.y2]));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},vfe=ae([gfe,vn],cM);function xfe(e){var t;if(e.x!=null)return $s([e.x]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.x);return r==null||r.length===0?[]:$s(r)}function bfe(e){var t;if(e.y!=null)return $s([e.y]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.y);return r==null||r.length===0?[]:$s(r)}var dM=(e,t)=>{if(e!=null){var r=e.flatMap(n=>t==="xAxis"?xfe(n):bfe(n));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},wfe=ae([hfe,vn],dM),Sfe=ae(yfe,wfe,vfe,(e,t,r)=>nx(e,r,t)),cx=(e,t,r,n,o,a,i,s,l)=>{if(r!=null)return r;var u=i==="vertical"&&s==="xAxis"||i==="horizontal"&&s==="yAxis",c=u?nx(n,a,o):nx(a,o),d=lF(t,c,e.allowDataOverflow);return d??(e.allowDataOverflow&&c==null&&l!=null?l:d)},kfe=e=>{if(!(e==null||e.type!=="number"||!("ticks"in e)||e.ticks==null)){var t=$s(e.ticks);if(t.length!==0)return[Math.min(...t),Math.max(...t)]}},_fe=ae([En],kfe,{memoizeOptions:{resultEqualityCheck:fp}}),Cfe=ae([En,t_,r_,ufe,dfe,Sfe,Bt,vn,_fe],cx,{memoizeOptions:{resultEqualityCheck:fp}}),Afe=[0,1],dx=(e,t,r,n,o,a,i)=>{if(!((e==null||r==null||r.length===0)&&i===void 0)){var s=e.dataKey,l=e.type,u=sa(t,a);if(u&&s==null){var c;return QS(0,(c=r?.length)!==null&&c!==void 0?c:0)}return l==="category"?ffe(n,e,u):o==="expand"&&!u?Afe:i}},pM=ae([En,Bt,tM,lx,Ac,vn,Cfe],dx),mu=ae([En,RP,lg],Jk),px=(e,t,r)=>{var n=t.niceTicks;if(n!=="none"){var o=e_(t),a=Array.isArray(o)&&(o[0]==="auto"||o[1]==="auto");if((n==="snap125"||n==="adaptive")&&t!=null&&t.tickCount&&wi(e)){if(a)return rk(e,t.tickCount,t.allowDecimals,n);if(t.type==="number")return nk(e,t.tickCount,t.allowDecimals,n)}if(n==="auto"&&r==="linear"&&t!=null&&t.tickCount){if(a&&wi(e))return rk(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&wi(e))return nk(e,t.tickCount,t.allowDecimals,"adaptive")}}},fM=ae([pM,Ep,mu],px),fx=(e,t,r,n)=>{if(n!=="angleAxis"&&e?.type==="number"&&wi(t)&&Array.isArray(r)&&r.length>0){var o,a,i=t[0],s=(o=r[0])!==null&&o!==void 0?o:0,l=t[1],u=(a=r[r.length-1])!==null&&a!==void 0?a:0;return[Math.min(i,s),Math.max(l,u)]}return t},Efe=ae([En,pM,fM,vn],fx),Nfe=ae(lx,En,(e,t)=>{if(!(!t||t.type!=="number")){var r=1/0,n=Array.from($s(e.map(d=>d.value))).sort((d,p)=>d-p),o=n[0],a=n[n.length-1];if(o==null||a==null)return 1/0;var i=a-o;if(i===0)return 1/0;for(var s=0;so,(e,t,r,n,o)=>{if(!Ot(e))return 0;var a=t==="vertical"?n.height:n.width;if(o==="gap")return e*a/2;if(o==="no-gap"){var i=Dn(r,e*a),s=e*a/2;return s-i-(s-i)/a*i}return 0}),Tfe=(e,t,r)=>{var n=gl(e,t);return n==null||typeof n.padding!="string"?0:eW(e,"xAxis",t,r,n.padding)},Ofe=(e,t,r)=>{var n=hl(e,t);return n==null||typeof n.padding!="string"?0:eW(e,"yAxis",t,r,n.padding)},Pfe=ae(gl,Tfe,(e,t)=>{var r,n;if(e==null)return{left:0,right:0};var o=e.padding;return typeof o=="string"?{left:t,right:t}:{left:((r=o.left)!==null&&r!==void 0?r:0)+t,right:((n=o.right)!==null&&n!==void 0?n:0)+t}}),Mfe=ae(hl,Ofe,(e,t)=>{var r,n;if(e==null)return{top:0,bottom:0};var o=e.padding;return typeof o=="string"?{top:t,bottom:t}:{top:((r=o.top)!==null&&r!==void 0?r:0)+t,bottom:((n=o.bottom)!==null&&n!==void 0?n:0)+t}}),mM=ae([Fr,Pfe,rp,Rm,(e,t,r)=>r],(e,t,r,n,o)=>{var a=n.padding;return o?[a.left,r.width-a.right]:[e.left+t.left,e.left+e.width-t.right]}),gM=ae([Fr,Bt,Mfe,rp,Rm,(e,t,r)=>r],(e,t,r,n,o,a)=>{var i=o.padding;return a?[n.height-i.bottom,i.top]:t==="horizontal"?[e.top+e.height-r.bottom,e.top+r.top]:[e.top+r.top,e.top+e.height-r.bottom]}),Tg=(e,t,r,n)=>{var o;switch(t){case"xAxis":return mM(e,r,n);case"yAxis":return gM(e,r,n);case"zAxis":return(o=QP(e,r))===null||o===void 0?void 0:o.range;case"angleAxis":return fP(e);case"radiusAxis":return mP(e,r);default:return}},tW=ae([En,Tg],up),Ife=ae([mu,Efe],mk),hM=ae([En,mu,Ife,tW],rx),yM=(e,t,r,n)=>{if(!(r==null||r.dataKey==null)){var o=r.type,a=r.scale,i=sa(e,n);if(i&&(o==="number"||a!=="auto"))return t.map(s=>s.value)}},vM=ae([Bt,lx,Ep,vn],yM),n_=ae([hM],Dv),K8e=ae([hM],VU),V8e=ae([hM,afe],Qk),G8e=ae([Ag,Ng,vn],cfe);function rW(e,t){return e.idt.id?1:0}var o_=(e,t)=>t,a_=(e,t,r)=>r,Dfe=ae(Zm,o_,a_,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(rW)),jfe=ae(Jm,o_,a_,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(rW)),nW=(e,t)=>{var r=typeof t.height=="number"?t.height:kv;return{width:e.width,height:r}},$fe=(e,t)=>{var r=typeof t.width=="number"?t.width:tp;return{width:r,height:e.height}},xM=ae(Fr,gl,nW),Lfe=(e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}},zfe=(e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}},Bfe=ae(Ko,Fr,Dfe,o_,a_,(e,t,r,n,o)=>{var a={},i;return r.forEach(s=>{var l=nW(t,s);i==null&&(i=Lfe(t,n,e));var u=n==="top"&&!o||n==="bottom"&&o;a[s.id]=i-Number(u)*l.height,i+=(u?-1:1)*l.height}),a}),Ffe=ae(qo,Fr,jfe,o_,a_,(e,t,r,n,o)=>{var a={},i;return r.forEach(s=>{var l=$fe(t,s);i==null&&(i=zfe(t,n,e));var u=n==="left"&&!o||n==="right"&&o;a[s.id]=i-Number(u)*l.width,i+=(u?-1:1)*l.width}),a}),Ufe=(e,t)=>{var r=gl(e,t);if(r!=null)return Bfe(e,r.orientation,r.mirror)},oW=ae([Fr,gl,Ufe,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var o=r?.[n];return o==null?{x:e.left,y:0}:{x:e.left,y:o}}}),Wfe=(e,t)=>{var r=hl(e,t);if(r!=null)return Ffe(e,r.orientation,r.mirror)},aW=ae([Fr,hl,Wfe,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var o=r?.[n];return o==null?{x:0,y:e.top}:{x:o,y:e.top}}}),bM=ae(Fr,hl,(e,t)=>{var r=typeof t.width=="number"?t.width:tp;return{width:r,height:e.height}}),wM=(e,t,r)=>{switch(t){case"xAxis":return xM(e,r).width;case"yAxis":return bM(e,r).height;default:return}},SM=(e,t,r,n)=>{if(r!=null){var o=r.allowDuplicatedCategory,a=r.type,i=r.dataKey,s=sa(e,n),l=t.map(c=>c.value),u=l.filter(c=>c!=null);if(i&&s&&a==="category"&&o&&TT(u))return l}},kM=ae([Bt,lx,En,vn],SM),_M=ae([Bt,efe,mu,n_,kM,vM,Tg,fM,vn],(e,t,r,n,o,a,i,s,l)=>{if(t!=null){var u=sa(e,l);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:l,categoricalDomain:a,duplicateDomain:o,isCategorical:u,niceTicks:s,range:i,realScaleType:r,scale:n}}}),Hfe=(e,t,r,n,o,a,i,s,l)=>{if(!(t==null||n==null)){var u=sa(e,l),c=t.type,d=t.ticks,p=t.tickCount,f=r==="scaleBand"&&typeof n.bandwidth=="function"?n.bandwidth()/2:2,m=c==="category"&&n.bandwidth?n.bandwidth()/f:0;m=l==="angleAxis"&&a!=null&&a.length>=2?Zr(a[0]-a[1])*2*m:m;var y=d||o;return y?y.map((b,g)=>{var h=i?i.indexOf(b):b,v=n.map(h);return Ot(v)?{index:g,coordinate:v+m,value:b,offset:m}:null}).filter(Ao):u&&s?s.map((b,g)=>{var h=n.map(b);return Ot(h)?{coordinate:h+m,value:b,index:g,offset:m}:null}).filter(Ao):n.ticks?n.ticks(p).map((b,g)=>{var h=n.map(b);return Ot(h)?{coordinate:h+m,value:b,index:g,offset:m}:null}).filter(Ao):n.domain().map((b,g)=>{var h=n.map(b);return Ot(h)?{coordinate:h+m,value:i?i[b]:b,index:g,offset:m}:null}).filter(Ao)}},i_=ae([Bt,Ep,mu,n_,fM,Tg,kM,vM,vn],Hfe),qfe=(e,t,r,n,o,a,i)=>{if(!(t==null||r==null||n==null||n[0]===n[1])){var s=sa(e,i),l=t.tickCount,u=0;return u=i==="angleAxis"&&n?.length>=2?Zr(n[0]-n[1])*2*u:u,s&&a?a.map((c,d)=>{var p=r.map(c);return Ot(p)?{coordinate:p+u,value:c,index:d,offset:u}:null}).filter(Ao):r.ticks?r.ticks(l).map((c,d)=>{var p=r.map(c);return Ot(p)?{coordinate:p+u,value:c,index:d,offset:u}:null}).filter(Ao):r.domain().map((c,d)=>{var p=r.map(c);return Ot(p)?{coordinate:p+u,value:o?o[c]:c,index:d,offset:u}:null}).filter(Ao)}},Ci=ae([Bt,Ep,n_,Tg,kM,vM,vn],qfe),Ai=ae(En,n_,(e,t)=>{if(!(e==null||t==null))return Rk(Rk({},e),{},{scale:t})}),Kfe=ae([En,mu,pM,tW],rx),Vfe=ae([Kfe],Dv),Y8e=ae((e,t,r)=>QP(e,r),Vfe,(e,t)=>{if(!(e==null||t==null))return Rk(Rk({},e),{},{scale:t})}),iW=ae([Bt,Zm,Jm],(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}}),Gfe=(e,t,r)=>{var n;return(n=e.renderedTicks[t])===null||n===void 0?void 0:n[r]},X8e=ae([Gfe],e=>{if(!(!e||e.length===0))return t=>{var r,n=1/0,o=e[0];for(var a of e){var i=Math.abs(a.coordinate-t);ie.options.defaultTooltipEventType,AM=e=>e.options.validateTooltipEventTypes;function EM(e,t,r){if(e==null)return t;var n=e?"axis":"item";return r==null?t:r.includes(n)?n:t}function $c(e,t){var r=CM(e),n=AM(e);return EM(t,r,n)}function sW(e){return je(t=>$c(t,e))}var s_=(e,t)=>{var r,n=Number(t);if(!(Wo(n)||t==null))return n>=0?e==null||(r=e[n])===null||r===void 0?void 0:r.value:void 0};var lW=e=>e.tooltip.settings;var gu={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},Yfe={itemInteraction:{click:gu,hover:gu},axisInteraction:{click:gu,hover:gu},keyboardInteraction:gu,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}},uW=Cr({name:"tooltip",initialState:Yfe,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(Zt(t.payload))},prepare:Ir()},replaceTooltipEntrySettings:{reducer(e,t){var r=t.payload,n=r.prev,o=r.next,a=ea(e).tooltipItemPayloads.indexOf(Zt(n));a>-1&&(e.tooltipItemPayloads[a]=Zt(o))},prepare:Ir()},removeTooltipEntrySettings:{reducer(e,t){var r=ea(e).tooltipItemPayloads.indexOf(Zt(t.payload));r>-1&&e.tooltipItemPayloads.splice(r,1)},prepare:Ir()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),ts=uW.actions,cW=ts.addTooltipEntrySettings,dW=ts.replaceTooltipEntrySettings,pW=ts.removeTooltipEntrySettings,fW=ts.setTooltipSettingsState,l_=ts.setActiveMouseOverItemIndex,mW=ts.mouseLeaveItem,u_=ts.mouseLeaveChart,gW=ts.setActiveClickItemIndex,c_=ts.setMouseOverAxisIndex,hW=ts.setMouseClickAxisIndex,Og=ts.setSyncInteraction,mx=ts.setKeyboardInteraction;var yW=uW.reducer;function vW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function d_(e){for(var t=1;t{if(t==null)return gu;var o=Qfe(e,t,r);if(o==null)return gu;if(o.active)return o;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var a=e.settings.active===!0;if(Rfe(o)){if(a)return d_(d_({},o),{},{active:!0})}else if(n!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:n,graphicalItemId:void 0};return d_(d_({},gu),{},{coordinate:o.coordinate})};function eme(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 tme(e,t){var r=eme(e),n=t[0],o=t[1];if(r===void 0)return!1;var a=Math.min(n,o),i=Math.max(n,o);return r>=a&&r<=i}function rme(e,t,r){if(r==null||t==null)return!0;var n=Ht(e,t);return n==null||!wi(r)?!0:tme(n,r)}var Lc=(e,t,r,n)=>{var o=e?.index;if(o==null)return null;var a=Number(o);if(!Ot(a))return o;var i=0,s=1/0;t.length>0&&(s=t.length-1);var l=Math.max(i,Math.min(a,s)),u=t[l];return u==null||rme(u,r,n)?String(l):null};var f_=(e,t,r,n,o,a,i)=>{if(a!=null){var s=i[0],l=s?.getPosition(a);if(l!=null)return l;var u=o?.[Number(a)];if(u)return r==="horizontal"?{x:u.coordinate,y:(n.top+t)/2}:{x:(n.left+e)/2,y:u.coordinate}}};var m_=(e,t,r,n)=>{if(t==="axis")return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var o;if(r==="hover"?o=e.itemInteraction.hover.graphicalItemId:o=e.itemInteraction.click.graphicalItemId,e.syncInteraction.active&&o==null)return e.tooltipItemPayloads;if(o==null&&(n!=null||e.keyboardInteraction.active)){var a=e.tooltipItemPayloads[0];return a!=null?[a]:[]}return e.tooltipItemPayloads.filter(i=>{var s;return((s=i.settings)===null||s===void 0?void 0:s.graphicalItemId)===o})};var g_=e=>e.options.tooltipPayloadSearcher;var hu=e=>e.tooltip;function xW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function bW(e){for(var t=1;te(t)}function wW(e){if(typeof e=="string")return e}function ume(e){if(!(e==null||typeof e!="object")){var t="name"in e?ime(e.name):void 0,r="unit"in e?sme(e.unit):void 0,n="dataKey"in e?lme(e.dataKey):void 0,o="payload"in e?e.payload:void 0,a="color"in e?wW(e.color):void 0,i="fill"in e?wW(e.fill):void 0;return{name:t,unit:r,dataKey:n,payload:o,color:a,fill:i}}}function cme(e,t){return e??t}var h_=(e,t,r,n,o,a,i)=>{if(!(t==null||a==null)){var s=r.chartData,l=r.computedData,u=r.dataStartIndex,c=r.dataEndIndex,d=[];return e.reduce((p,f)=>{var m,y=f.dataDefinedOnItem,b=f.settings,g=cme(y,s),h=Array.isArray(g)?kS(g,u,c):g,v=(m=b?.dataKey)!==null&&m!==void 0?m:n,x=b?.nameKey,S;if(n&&Array.isArray(h)&&!Array.isArray(h[0])&&i==="axis"?(S=uw(h,n,o),S==null&&(S=a(h,t,l,x))):S=a(h,t,l,x),Array.isArray(S))S.forEach(w=>{var k,A,C=ume(w),T=C?.name,$=C?.dataKey,Q=C?.payload,B=bW(bW({},b),{},{name:T,unit:C?.unit,color:(k=C?.color)!==null&&k!==void 0?k:b?.color,fill:(A=C?.fill)!==null&&A!==void 0?A:b?.fill});p.push(WO({tooltipEntrySettings:B,dataKey:$,payload:Q,value:Ht(Q,$),name:T==null?void 0:String(T)}))});else{var _;p.push(WO({tooltipEntrySettings:b,dataKey:v,payload:S,value:Ht(S,v),name:(_=Ht(S,x))!==null&&_!==void 0?_:b?.name}))}return p},d)}};var NM=ae([so,RP,lg],Jk),dme=ae([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),pme=ae([oo,Tc],ox),zc=ae([dme,so,pme],ax,{memoizeOptions:{resultEqualityCheck:ug}}),fme=ae([zc],e=>e.filter(pp)),SW=ae([zc],ix,{memoizeOptions:{resultEqualityCheck:ug}}),mme=ae([zc],e=>e.some(t=>!t.data)),yu=ae([SW,Ya],sx),gme=ae([fme,Ya,so],fk),TM=ae([yu,so,zc,Ya,mme,SW],nM),kW=ae([so],e_),hme=ae([so],e=>e.allowDataOverflow),_W=ae([kW,hme],ek),yme=ae([zc],e=>e.filter(pp)),vme=ae([gme,yme,Ac,ak],oM),xme=ae([vme,Ya,oo,_W],aM),bme=ae([zc],eM),wme=ae([yu,so,bme,Ng,oo,aF],ux,{memoizeOptions:{resultEqualityCheck:fp}}),Sme=ae([iM,oo,Tc],Np),kme=ae([Sme,oo],uM),_me=ae([sM,oo,Tc],Np),Cme=ae([_me,oo],cM),Ame=ae([lM,oo,Tc],Np),Eme=ae([Ame,oo],dM),Nme=ae([kme,Eme,Cme],nx),Tme=ae([so,kW,_W,xme,wme,Nme,Bt,oo],cx),Bc=ae([so,Bt,yu,TM,Ac,oo,Tme],dx),Ome=ae([Bc,so,NM],px),Pme=ae([so,Bc,Ome,oo],fx),CW=e=>{var t=oo(e),r=Tc(e),n=!1;return Tg(e,t,r,n)},OM=ae([so,CW],up),Mme=ae([so,NM,Pme,OM],rx),PM=ae([Mme],Dv),Ime=ae([Bt,TM,so,oo],SM),Dme=ae([Bt,TM,so,oo],yM),jme=(e,t,r,n,o,a,i,s)=>{if(t){var l=t.type,u=sa(e,s);if(n){var c=r==="scaleBand"&&n.bandwidth?n.bandwidth()/2:2,d=l==="category"&&n.bandwidth?n.bandwidth()/c:0;return d=s==="angleAxis"&&o!=null&&o?.length>=2?Zr(o[0]-o[1])*2*d:d,u&&i?i.map((p,f)=>{var m=n.map(p);return Ot(m)?{coordinate:m+d,value:p,index:f,offset:d}:null}).filter(Ao):n.domain().map((p,f)=>{var m=n.map(p);return Ot(m)?{coordinate:m+d,value:a?a[p]:p,index:f,offset:d}:null}).filter(Ao)}}},Za=ae([Bt,so,NM,PM,CW,Ime,Dme,oo],jme),MM=ae([CM,AM,lW],(e,t,r)=>EM(r.shared,e,t)),AW=e=>e.tooltip.settings.trigger,IM=e=>e.tooltip.settings.defaultIndex,gx=ae([hu,MM,AW,IM],p_),rs=ae([gx,yu,fu,Bc],Lc),y_=ae([Za,rs],s_),Pg=ae([gx],e=>{if(e)return e.dataKey}),v_=ae([gx],e=>{if(e)return e.graphicalItemId}),EW=ae([hu,MM,AW,IM],m_),$me=ae([qo,Ko,Bt,Fr,Za,IM,EW],f_),DM=ae([gx,$me],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),jM=ae([gx],e=>{var t;return(t=e?.active)!==null&&t!==void 0?t:!1}),Lme=ae([EW,rs,Ya,fu,y_,g_,MM],h_),NW=ae([Lme],e=>{if(e!=null){var t=e.map(r=>r.payload).filter(r=>r!=null);return Array.from(new Set(t))}});function TW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function OW(e){for(var t=1;tje(so),PW=()=>{var e=Ume(),t=je(Za),r=je(PM);return!e||!r?Zi(void 0,t):Zi(OW(OW({},e),{},{scale:r}),t)};function MW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Mg(e){for(var t=1;t{var o=t.find(a=>a&&a.index===r);if(o){if(e==="horizontal")return{x:o.coordinate,y:n.relativeY};if(e==="vertical")return{x:n.relativeX,y:o.coordinate}}return{x:0,y:0}},DW=(e,t,r,n)=>{var o=t.find(u=>u&&u.index===r);if(o){if(e==="centric"){var a=o.coordinate,i=n.radius;return Mg(Mg(Mg({},n),an(n.cx,n.cy,i,a)),{},{angle:a,radius:i})}var s=o.coordinate,l=n.angle;return Mg(Mg(Mg({},n),an(n.cx,n.cy,s,l)),{},{angle:l,radius:s})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function jW(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 $M=(e,t,r,n,o)=>{var a,i=(a=t?.length)!==null&&a!==void 0?a:0;if(i<=1||e==null)return 0;if(n==="angleAxis"&&o!=null&&Math.abs(Math.abs(o[1]-o[0])-360)<=1e-6)for(var s=o[1]-o[0],l=(K,N,O)=>[e,e+s,e-s].some(D=>(O?D>=K:D>K)&&D<=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,b=(p=r[u])===null||p===void 0?void 0:p.coordinate,g=u>=i-1?(f=r[0])===null||f===void 0?void 0:f.coordinate:(m=r[u+1])===null||m===void 0?void 0:m.coordinate,h=void 0;if(!(y==null||b==null||g==null))if(Zr(b-y)!==Zr(g-b)){var v=[];if(Zr(g-b)===Zr(o[1]-o[0])){h=g;var x=b+o[1]-o[0];v[0]=Math.min(x,(x+y)/2),v[1]=Math.max(x,(x+y)/2)}else{h=y;var S=g+o[1]-o[0];v[0]=Math.min(b,(S+b)/2),v[1]=Math.max(b,(S+b)/2)}var _=[Math.min(b,(h+b)/2),Math.max(b,(h+b)/2)];if(l(_[0],_[1],!1)||l(v[0],v[1],!0)){var w;return(w=r[u])===null||w===void 0?void 0:w.index}}else{var k=Math.min(y,g),A=Math.max(y,g);if(l((k+b)/2,(A+b)/2,!1)){var C;return(C=r[u])===null||C===void 0?void 0:C.index}}}else if(t)for(var T=0;T($.coordinate+B.coordinate)/2||T>0&&T($.coordinate+B.coordinate)/2&&e<=($.coordinate+Q.coordinate)/2)return $.index}}return-1};var x_=()=>je(lg),LM=(e,t)=>t,$W=(e,t,r)=>r,zM=(e,t,r,n)=>n,LW=ae(Za,e=>au(e,t=>t.coordinate)),BM=ae([hu,LM,$W,zM],p_),FM=ae([BM,yu,fu,Bc],Lc),zW=(e,t,r)=>{if(t!=null){var n=hu(e);return t==="axis"?r==="hover"?n.axisInteraction.hover.dataKey:n.axisInteraction.click.dataKey:r==="hover"?n.itemInteraction.hover.dataKey:n.itemInteraction.click.dataKey}},BW=ae([hu,LM,$W,zM],m_),hx=ae([qo,Ko,Bt,Fr,Za,zM,BW],f_),FW=ae([BM,hx],(e,t)=>{var r;return(r=e.coordinate)!==null&&r!==void 0?r:t}),UM=ae([Za,FM],s_),UW=ae([BW,FM,Ya,fu,UM,g_,LM],h_),WW=ae([BM,FM],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),Kme=(e,t,r,n,o,a,i)=>{if(!(!e||!r||!n||!o)&&jW(e,i)){var s=g7(e,t),l=$M(s,a,o,r,n),u=IW(t,o,l,e);return{activeIndex:String(l),activeCoordinate:u}}},Vme=(e,t,r,n,o,a,i)=>{if(!(!e||!n||!o||!a||!r)){var s=K9(e,r);if(s){var l=h7(s,t),u=$M(l,i,a,n,o),c=DW(t,a,u,s);return{activeIndex:String(u),activeCoordinate:c}}}},HW=(e,t,r,n,o,a,i,s)=>{if(!(!e||!t||!n||!o||!a))return t==="horizontal"||t==="vertical"?Kme(e,t,n,o,a,i,s):Vme(e,t,r,n,o,a,i)};var Ig=Z(J()),RW=Z(ny());var qW=ae(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,r)=>r,(e,t,r)=>{if(t!=null){var n=e[t];if(n!=null)return r?n.panoramaElement:n.element}}),KW=ae(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(n=>parseInt(n,10)).concat(Object.values(ir)),r=Array.from(new Set(t));return r.sort((n,o)=>n-o)},{memoizeOptions:{resultEqualityCheck:SF}});function VW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function GW(e){for(var t=1;tGW(GW({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),Zme)},Qme=new Set(Object.values(ir));function Rme(e){return Qme.has(e)}var YW=Cr({name:"zIndex",initialState:Jme,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]?e.zIndexMap[r].consumers+=1:e.zIndexMap[r]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:Ir()},unregisterZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(e.zIndexMap[r].consumers-=1,e.zIndexMap[r].consumers<=0&&!Rme(r)&&delete e.zIndexMap[r])},prepare:Ir()},registerZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload,n=r.zIndex,o=r.element,a=r.isPanorama;e.zIndexMap[n]?a?e.zIndexMap[n].panoramaElement=Zt(o):e.zIndexMap[n].element=Zt(o):e.zIndexMap[n]={consumers:0,element:a?void 0:Zt(o),panoramaElement:a?Zt(o):void 0}},prepare:Ir()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(t.payload.isPanorama?e.zIndexMap[r].panoramaElement=void 0:e.zIndexMap[r].element=void 0)},prepare:Ir()}}}),b_=YW.actions,XW=b_.registerZIndexPortal,w_=b_.unregisterZIndexPortal,ZW=b_.registerZIndexPortalElement,JW=b_.unregisterZIndexPortalElement;var QW=YW.reducer;function sn(e){var t=e.zIndex,r=e.children,n=P7(),o=n&&t!==void 0&&t!==0,a=Ar(),i=(0,Ig.useRef)(void 0),s=(0,Ig.useRef)(new Set),l=jt(),u=je(d=>qW(d,t,a));if((0,Ig.useLayoutEffect)(()=>{if(!o){var d=s.current;d.forEach(f=>{l(w_({zIndex:f}))}),d.clear(),i.current=void 0;return}if(s.current.has(t)||(l(XW({zIndex:t})),s.current.add(t)),u){i.current=u;var p=s.current;p.forEach(f=>{f!==t&&(l(w_({zIndex:f})),p.delete(f))})}},[l,t,o,u]),(0,Ig.useLayoutEffect)(()=>{var d=s.current;return()=>{d.forEach(p=>{l(w_({zIndex:p}))}),d.clear()}},[l]),!o)return r;var c=u??i.current;return c?(0,RW.createPortal)(r,c):null}function WM(){return WM=Object.assign?Object.assign.bind():function(e){for(var t=1;t(0,__.useContext)(HM);var vx=Z(J());var aH=Z(oH(),1);var iH=aH.default;var jg=new iH;var A_="recharts.syncEvent.tooltip",KM="recharts.syncEvent.brush";var Fc=(e,t)=>{if(t&&Array.isArray(e)){var r=Number.parseInt(t,10);if(!Wo(r))return e[r]}},sge={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},sH=Cr({name:"options",initialState:sge,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),lH=sH.reducer,uH=sH.actions.createEventEmitter;function cH(e){return e.tooltip.syncInteraction}var lge={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},dH=Cr({name:"chartData",initialState:lge,reducers:{setChartData(e,t){if(e.chartData=Zt(t.payload),t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var r=t.payload,n=r.startIndex,o=r.endIndex;n!=null&&(e.dataStartIndex=n),o!=null&&(e.dataEndIndex=o)}}}),VM=dH.actions,GM=VM.setChartData,pH=VM.setDataStartEndIndexes,uge=VM.setComputedData;var fH=dH.reducer;var cge=["x","y"];function mH(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function $g(e){for(var t=1;tl.rootProps.className);(0,vx.useEffect)(()=>{if(e==null)return Sa;var l=(u,c,d)=>{if(t!==d&&e===u){if(c.payload.active===!1){r(Og({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(n==="index"){var p;if(i&&c!==null&&c!==void 0&&(p=c.payload)!==null&&p!==void 0&&p.coordinate&&c.payload.sourceViewBox){var f=c.payload.coordinate,m=f.x,y=f.y,b=mge(f,cge),g=c.payload.sourceViewBox,h=g.x,v=g.y,x=g.width,S=g.height,_=$g($g({},b),{},{x:i.x+(x?(m-h)/x:0)*i.width,y:i.y+(S?(y-v)/S:0)*i.height});r($g($g({},c),{},{payload:$g($g({},c.payload),{},{coordinate:_})}))}else r(c);return}if(o!=null){var w;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(o,k);w=o[A]}else n==="value"&&(w=o.find(O=>String(O.value)===c.payload.label));var C=c.payload.coordinate;if(C==null||i==null){r(Og({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(w==null){r(Og({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:void 0}));return}var T=C.x,$=C.y,Q=Math.min(T,i.x+i.width),B=Math.min($,i.y+i.height),K={x:a==="horizontal"?w.coordinate:Q,y:a==="horizontal"?B:w.coordinate},N=Og({active:c.payload.active,coordinate:K,dataKey:c.payload.dataKey,index:String(w.index),label:c.payload.label,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:c.payload.graphicalItemId});r(N)}}};return jg.on(A_,l),()=>{jg.off(A_,l)}},[s,r,t,e,n,o,a,i])}function yge(){var e=je(ik),t=je(sk),r=jt();(0,vx.useEffect)(()=>{if(e==null)return Sa;var n=(o,a,i)=>{t!==i&&e===o&&r(pH(a))};return jg.on(KM,n),()=>{jg.off(KM,n)}},[r,t,e])}function gH(){var e=jt();(0,vx.useEffect)(()=>{e(uH())},[e]),hge(),yge()}function hH(e,t,r,n,o,a){var i=je(m=>zW(m,e,t)),s=je(v_),l=je(sk),u=je(ik),c=je(dP),d=je(cH),p=d?.sourceViewBox!=null,f=op();(0,vx.useEffect)(()=>{if(!p&&u!=null&&l!=null){var m=Og({active:a,coordinate:r,dataKey:i,index:o,label:typeof n=="number"?String(n):n,sourceViewBox:f,graphicalItemId:s});jg.emit(A_,u,m,l)}},[p,r,i,s,o,n,l,u,c,a,f])}function yH(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function vH(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{w(fW({shared:h,trigger:v,axisId:_,active:o,defaultIndex:k}))},[w,h,v,_,o,k]);var A=op(),C=LS(),T=sW(h),$=(t=je(R=>WW(R,T,v,k)))!==null&&t!==void 0?t:{},Q=$.activeIndex,B=$.isActive,K=je(R=>UW(R,T,v,k)),N=je(R=>UM(R,T,v,k)),O=je(R=>FW(R,T,v,k)),D=K,P=rH(),j=(r=o??B)!==null&&r!==void 0?r:!1,M=Zw([D,j]),W=wge(M,2),Y=W[0],L=W[1],G=T==="axis"?N:void 0;hH(T,v,O,G,Q,j);var q=S??P;if(q==null||A==null||T==null)return null;var oe=D??bH;j||(oe=bH),u&&oe.length&&(oe=qw(oe.filter(R=>R.value!=null&&(R.hide!==!0||n.includeHidden)),p,Age));var Me=oe.length>0,ge=vH(vH({},n),{},{payload:oe,label:G,active:j,activeIndex:Q,coordinate:O,accessibilityLayer:C}),ue=ns.createElement(r9,{allowEscapeViewBox:a,animationDuration:i,animationEasing:s,isAnimationActive:c,active:j,coordinate:O,hasPayload:Me,offset:d,position:f,reverseDirection:m,useTranslate3d:y,viewBox:A,wrapperStyle:b,lastBoundingBox:Y,innerRef:L,hasPortalFromProps:!!S},Ege(l,ge));return ns.createElement(ns.Fragment,null,(0,SH.createPortal)(ue,q),j&&ns.createElement(tH,{cursor:g,tooltipEventType:T,coordinate:O,payload:oe,index:Q}))}var vu=e=>null;vu.displayName="Cell";var XM=Z(J()),O_=Z(J());function Tge(e,t,r){return(t=Oge(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Oge(e){var t=Pge(e,"string");return typeof t=="symbol"?t:t+""}function Pge(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 E_=class{constructor(t){Tge(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 kH(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Mge(e){for(var t=1;t{try{var r=document.getElementById(CH);r||(r=document.createElement("span"),r.setAttribute("id",CH),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,Lge,t),r.textContent="".concat(e);var n=r.getBoundingClientRect();return{width:n.width,height:n.height}}catch{return{width:0,height:0}}},Tp=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Ji.isSsr)return{width:0,height:0};if(!EH.enableCache)return AH(t,r);var n=zge(t,r),o=_H.get(n);if(o)return o;var a=AH(t,r);return _H.set(n,a),a};var MH;function N_(e,t){return Wge(e)||Uge(e,t)||Fge(e,t)||Bge()}function Bge(){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 Fge(e,t){if(e){if(typeof e=="string")return NH(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)?NH(e,t):void 0}}function NH(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=e.breakAll,n=e.style;try{var o=[];ar(t)||(r?o=t.toString().split(""):o=t.toString().split(BH));var a=o.map(s=>({word:s,width:Tp(s,n).width})),i=r?0:Tp("\xA0",n).width;return{wordsWithComputedWidth:a,spaceWidth:i}}catch{return null}};function P_(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function UH(e){return ar(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var WH=(e,t,r,n)=>e.reduce((o,a)=>{var i=a.word,s=a.width,l=o[o.length-1];if(l&&s!=null&&(t==null||n||l.width+s+re.reduce((t,r)=>t.width>r.width?t:r),lhe="\u2026",LH=(e,t,r,n,o,a,i,s)=>{var l=e.slice(0,t),u=FH({breakAll:r,style:n,children:l+lhe});if(!u)return[!1,[]];var c=WH(u.wordsWithComputedWidth,a,i,s),d=c.length>o||HH(c).width>Number(a);return[d,c]},uhe=(e,t,r,n,o)=>{var a=e.maxLines,i=e.children,s=e.style,l=e.breakAll,u=De(a),c=String(i),d=WH(t,n,r,o);if(!u||o)return d;var p=d.length>a||HH(d).width>Number(n);if(!p)return d;for(var f=0,m=c.length-1,y=0,b;f<=m&&y<=c.length-1;){var g=Math.floor((f+m)/2),h=g-1,v=LH(c,h,l,s,a,n,r,o),x=jH(v,2),S=x[0],_=x[1],w=LH(c,g,l,s,a,n,r,o),k=jH(w,1),A=k[0];if(!S&&!A&&(f=g+1),S&&A&&(m=g-1),!S&&A){b=_;break}y++}return b||d},zH=e=>{var t=ar(e)?[]:e.toString().split(BH);return[{words:t,width:void 0}]},che=e=>{var t=e.width,r=e.scaleToFit,n=e.children,o=e.style,a=e.breakAll,i=e.maxLines;if((t||r)&&!Ji.isSsr){var s,l,u=FH({breakAll:a,children:n,style:o});if(u){var c=u.wordsWithComputedWidth,d=u.spaceWidth;s=c,l=d}else return zH(n);return uhe({breakAll:a,children:n,maxLines:i,style:o},s,l,t,!!r)}return zH(n)},qH="#808080",dhe={angle:0,breakAll:!1,capHeight:"0.71em",fill:qH,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},Op=(0,O_.forwardRef)((e,t)=>{var r=nr(e,dhe),n=r.x,o=r.y,a=r.lineHeight,i=r.capHeight,s=r.fill,l=r.scaleToFit,u=r.textAnchor,c=r.verticalAnchor,d=DH(r,the),p=(0,O_.useMemo)(()=>che({breakAll:d.breakAll,children:d.children,maxLines:d.maxLines,scaleToFit:l,style:d.style,width:d.width}),[d.breakAll,d.children,d.maxLines,l,d.style,d.width]),f=d.dx,m=d.dy,y=d.angle,b=d.className,g=d.breakAll,h=DH(d,rhe);if(!wa(n)||!wa(o)||p.length===0)return null;var v=Number(n)+(De(f)?f:0),x=Number(o)+(De(m)?m:0);if(!Ot(v)||!Ot(x))return null;var S;switch(c){case"start":S=T_("calc(".concat(i,")"));break;case"middle":S=T_("calc(".concat((p.length-1)/2," * -").concat(a," + (").concat(i," / 2))"));break;default:S=T_("calc(".concat(p.length-1," * -").concat(a,")"));break}var _=[],w=p[0];if(l&&w!=null){var k=w.width,A=d.width;_.push("scale(".concat(De(A)&&De(k)?A/k:1,")"))}return y&&_.push("rotate(".concat(y,", ").concat(v,", ").concat(x,")")),_.length&&(h.transform=_.join(" ")),XM.createElement("text",YM({},yn(h),{ref:t,x:v,y:x,className:bt("recharts-text",b),textAnchor:u,fill:s.includes("url")?qH:s}),p.map((C,T)=>{var $=C.words.join(g?"":" ");return XM.createElement("tspan",{x:v,dy:T===0?S:a,key:"".concat($,"-").concat(T)},$)}))});Op.displayName="Text";var Ja=Z(J()),No=Z(J());var phe=["labelRef"],fhe=["content"];function KH(e,t){if(e==null)return{};var r,n,o=mhe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{var t=e.x,r=e.y,n=e.upperWidth,o=e.lowerWidth,a=e.width,i=e.height,s=e.children,l=(0,No.useMemo)(()=>({x:t,y:r,upperWidth:n,lowerWidth:o,width:a,height:i}),[t,r,n,o,a,i]);return Ja.createElement(GH.Provider,{value:l},s)},XH=()=>{var e=(0,No.useContext)(GH),t=op();return e||(t?sv(t):void 0)},ZH=(0,No.createContext)(null),JH=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,o=e.outerRadius,a=e.startAngle,i=e.endAngle,s=e.clockWise,l=e.children,u=(0,No.useMemo)(()=>({cx:t,cy:r,innerRadius:n,outerRadius:o,startAngle:a,endAngle:i,clockWise:s}),[t,r,n,o,a,i,s]);return Ja.createElement(ZH.Provider,{value:u},l)},vhe=()=>{var e=(0,No.useContext)(ZH),t=je(pk);return e||t},xhe=e=>{var t=e.value,r=e.formatter,n=ar(e.children)?t:e.children;return typeof r=="function"?r(n):n},Mp=e=>e!=null&&typeof e=="function",bhe=(e,t)=>{var r=Zr(t-e),n=Math.min(Math.abs(t-e),360);return r*n},whe=(e,t,r,n,o)=>{var a=e.offset,i=e.className,s=o.cx,l=o.cy,u=o.innerRadius,c=o.outerRadius,d=o.startAngle,p=o.endAngle,f=o.clockWise,m=(u+c)/2,y=bhe(d,p),b=y>=0?1:-1,g,h;switch(t){case"insideStart":g=d+b*a,h=f;break;case"insideEnd":g=p-b*a,h=!f;break;case"end":g=p+b*a,h=f;break;default:throw new Error("Unsupported position ".concat(t))}h=y<=0?h:!h;var v=an(s,l,m,g),x=an(s,l,m,g+(h?1:-1)*359),S="M".concat(v.x,",").concat(v.y,` + A`,",",",0,0,",",",",","Z"])),N.x,N.y,a,a,+(c<0),C.x,C.y,n,n,+(Q>180),+(c>0),k.x,k.y,a,a,+(c<0),w.x,w.y)}else x+=Co(eF||(eF=sp(["L",",","Z"])),t,r);return x},kce={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},QS=e=>{var t=nr(e,kce),r=t.cx,n=t.cy,o=t.innerRadius,a=t.outerRadius,i=t.cornerRadius,s=t.forceCornerRadius,l=t.cornerIsExternal,u=t.startAngle,c=t.endAngle,d=t.className;if(a0&&Math.abs(u-c)<360?y=Sce({cx:r,cy:n,innerRadius:o,outerRadius:a,cornerRadius:Math.min(m,f/2),forceCornerRadius:s,cornerIsExternal:l,startAngle:u,endAngle:c}):y=rF({cx:r,cy:n,innerRadius:o,outerRadius:a,startAngle:u,endAngle:c}),tF.createElement("path",oP({},yn(t),{className:p,d:y}))};function nF(e,t,r){if(e==="horizontal")return[{x:t.x,y:r.top},{x:t.x,y:r.top+r.height}];if(e==="vertical")return[{x:r.left,y:t.y},{x:r.left+r.width,y:t.y}];if(bw(t)){if(e==="centric"){var n=t.cx,o=t.cy,a=t.innerRadius,i=t.outerRadius,s=t.angle,l=an(n,o,a,s),u=an(n,o,i,s);return[{x:l.x,y:l.y},{x:u.x,y:u.y}]}return ZS(t)}}function oF(e){return Zw(e)?NaN:Number(e)}function RS(e){return e?(e=oF(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function ek(e,t,r){r&&typeof r!="number"&&vv(e,t,r)&&(t=r=void 0),e=RS(e),t===void 0?(t=e,e=0):t=RS(t),r=r===void 0?ee.chartData,lp=ae([Ya],e=>{var t=e.chartData!=null?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),up=(e,t,r,n)=>n?lp(e):Ya(e),tk=(e,t,r)=>r?lp(e):Ya(e),aF=ae([up],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]}),iF=ae([lp],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]}),sF=ae([Ya],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});function aP(e,t){return Ece(e)||Ace(e,t)||Cce(e,t)||_ce()}function _ce(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Cce(e,t){if(e){if(typeof e=="string")return lF(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?lF(e,t):void 0}}function lF(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=jv(e,2),r=t[0],n=t[1],o=r,a=n;return r>n&&(o=n,a=r),[o,a]},cP=(e,t,r)=>{if(e.lte(0))return new wr.default(0);var n=lP(e.toNumber()),o=new wr.default(10).pow(n),a=e.div(o),i=n!==1?.05:.1,s=new wr.default(Math.ceil(a.div(i).toNumber())).add(r).mul(i),l=s.mul(o);return t?new wr.default(l.toNumber()):new wr.default(Math.ceil(l.toNumber()))},mF=(e,t,r)=>{var n;if(e.lte(0))return new wr.default(0);var o=[1,2,2.5,5],a=e.toNumber(),i=Math.floor(new wr.default(a).abs().log(10).toNumber()),s=new wr.default(10).pow(i),l=e.div(s).toNumber(),u=o.findIndex(f=>f>=l-1e-10);if(u===-1&&(s=s.mul(10),u=0),u+=r,u>=o.length){var c=Math.floor(u/o.length);u%=o.length,s=s.mul(new wr.default(10).pow(c))}var d=(n=o[u])!==null&&n!==void 0?n:1,p=new wr.default(d).mul(s);return t?p:new wr.default(Math.ceil(p.toNumber()))},Mce=(e,t,r)=>{var n=new wr.default(1),o=new wr.default(e);if(!o.isint()&&r){var a=Math.abs(e);a<1?(n=new wr.default(10).pow(lP(e)-1),o=new wr.default(Math.floor(o.div(n).toNumber())).mul(n)):a>1&&(o=new wr.default(Math.floor(e)))}else e===0?o=new wr.default(Math.floor((t-1)/2)):r||(o=new wr.default(Math.floor(e)));for(var i=Math.floor((t-1)/2),s=[],l=0;l4&&arguments[4]!==void 0?arguments[4]:0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:cP;if(!Number.isFinite((r-t)/(n-1)))return{step:new wr.default(0),tickMin:new wr.default(0),tickMax:new wr.default(0)};var s=i(new wr.default(r).sub(t).div(n-1),o,a),l;t<=0&&r>=0?l=new wr.default(0):(l=new wr.default(t).add(r).div(2),l=l.sub(new wr.default(l).mod(s)));var u=Math.ceil(l.sub(t).div(s).toNumber()),c=Math.ceil(new wr.default(r).sub(l).div(s).toNumber()),d=u+c+1;return d>n?gF(t,r,n,o,a+1,i):(d0?c+(n-d):c,u=r>0?u:u+(n-d)),{step:s,tickMin:l.sub(new wr.default(u).mul(s)),tickMax:l.add(new wr.default(c).mul(s))})};var ok=function(t){var r=jv(t,2),n=r[0],o=r[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",l=Math.max(a,2),u=fF([n,o]),c=jv(u,2),d=c[0],p=c[1];if(d===-1/0||p===1/0){var f=p===1/0?[d,...Array(a-1).fill(1/0)]:[...Array(a-1).fill(-1/0),p];return n>o?f.reverse():f}if(d===p)return Mce(d,a,i);var m=s==="snap125"?mF:cP,y=gF(d,p,l,i,0,m),b=y.step,g=y.tickMin,h=y.tickMax,v=uP(g,h.add(new wr.default(.1).mul(b)),b);return n>o?v.reverse():v},ak=function(t,r){var n=jv(t,2),o=n[0],a=n[1],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",l=fF([o,a]),u=jv(l,2),c=u[0],d=u[1];if(c===-1/0||d===1/0)return[o,a];if(c===d)return[c];var p=s==="snap125"?mF:cP,f=Math.max(r,2),m=p(new wr.default(d).sub(c).div(f-1),i,0),y=[...uP(new wr.default(c),new wr.default(d),m),d];if(i===!1){y=y.map(g=>Math.round(g));var b=y.length-1;b>0&&y[b]===y[b-1]&&(y=y.slice(0,b))}return o>a?y.reverse():y};var dP=e=>e.rootProps.maxBarSize,hF=e=>e.rootProps.barGap,ik=e=>e.rootProps.barCategoryGap,yF=e=>e.rootProps.barSize,Ec=e=>e.rootProps.stackOffset,sk=e=>e.rootProps.reverseStackOrder,cg=e=>e.options.chartName,lk=e=>e.rootProps.syncId,pP=e=>e.rootProps.syncMethod,uk=e=>e.options.eventEmitter,vF=e=>e.rootProps.baseValue;var ir={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3};var Nc={allowDecimals:!1,allowDuplicatedCategory:!0,allowDataOverflow:!1,angle:0,angleAxisId:0,axisLine:!0,axisLineType:"polygon",cx:0,cy:0,hide:!1,includeHidden:!1,label:!1,niceTicks:"auto",orientation:"outer",reversed:!1,scale:"auto",tick:!0,tickLine:!0,tickSize:8,type:"auto",zIndex:ir.axis};var Is={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,angle:0,axisLine:!0,includeHidden:!1,hide:!1,niceTicks:"auto",label:!1,orientation:"right",radiusAxisId:0,reversed:!1,scale:"auto",stroke:"#ccc",tick:!0,tickCount:5,tickLine:!0,type:"auto",zIndex:ir.axis};var cp=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function dp(e,t,r){if(r!=="auto")return r;if(e!=null)return sa(e,t)?"category":"number"}function xF(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function ck(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},dk=ae([$ce,DS],(e,t)=>{var r;if(e!=null)return e;var n=(r=dp(t,"angleAxis",bF.type))!==null&&r!==void 0?r:"category";return ck(ck({},bF),{},{type:n})}),Lce=(e,t)=>e.polarAxis.radiusAxis[t],pk=ae([Lce,DS],(e,t)=>{var r;if(e!=null)return e;var n=(r=dp(t,"radiusAxis",wF.type))!==null&&r!==void 0?r:"category";return ck(ck({},wF),{},{type:n})}),fk=e=>e.polarOptions,fP=ae([qo,Ko,Fr],XS),SF=ae([fk,fP],(e,t)=>{if(e!=null)return $n(e.innerRadius,t,0)}),kF=ae([fk,fP],(e,t)=>{if(e!=null)return $n(e.outerRadius,t,t*.8)}),zce=e=>{if(e==null)return[0,0];var t=e.startAngle,r=e.endAngle;return[t,r]},mP=ae([fk],zce),ZDe=ae([dk,mP],cp),gP=ae([fP,SF,kF],(e,t,r)=>{if(!(e==null||t==null||r==null))return[t,r]}),JDe=ae([pk,gP],cp),mk=ae([Bt,fk,SF,kF,qo,Ko],(e,t,r,n,o,a)=>{if(!(e!=="centric"&&e!=="radial"||t==null||r==null||n==null)){var i=t.cx,s=t.cy,l=t.startAngle,u=t.endAngle;return{cx:$n(i,o,o/2),cy:$n(s,a,a/2),innerRadius:r,outerRadius:n,startAngle:l,endAngle:u,clockWise:!1}}});var vn=(e,t)=>t;var pp=(e,t,r)=>r;function Tc(e){return e?.id}function gk(e,t,r){var n=t.chartData,o=n===void 0?[]:n,a=r.allowDuplicatedCategory,i=r.dataKey,s=new Map;return e.forEach(l=>{var u,c=(u=l.data)!==null&&u!==void 0?u:o;if(!(c==null||c.length===0)){var d=Tc(l);c.forEach((p,f)=>{var m=i==null||a?f:String(Ht(p,i,null)),y=Ht(p,l.dataKey,0),b;s.has(m)?b=s.get(m):b={},Object.assign(b,{[d]:y}),s.set(m,b)})}}),Array.from(s.values())}function fp(e){return"stackId"in e&&e.stackId!=null&&e.dataKey!=null}var mp=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function dg(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function _F(e,t){if(e.length===t.length){for(var r=0;r{var t=Bt(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"};var Oc=e=>e.tooltip.settings.axisId;function $v(e){if(e!=null){var t=e.ticks,r=e.bandwidth,n=e.range(),o=[Math.min(...n),Math.max(...n)];return{domain:()=>e.domain(),range:(function(a){function i(){return a.apply(this,arguments)}return i.toString=function(){return a.toString()},i})(()=>o),rangeMin:()=>o[0],rangeMax:()=>o[1],isInRange(a){var i=o[0],s=o[1];return i<=s?a>=i&&a<=s:a>=s&&a<=i},bandwidth:r?()=>r.call(e):void 0,ticks:t?a=>t.call(e,a):void 0,map:(a,i)=>{var s=e(a);if(s!=null){if(e.bandwidth&&i!==null&&i!==void 0&&i.position){var l=e.bandwidth();switch(i.position){case"middle":s+=l/2;break;case"end":s+=l;break;default:break}}return s}}}}}var hk=(e,t)=>{if(t!=null)switch(e){case"linear":{if(!wi(t)){for(var r,n,o=0;on)&&(n=a))}return r!==void 0&&n!==void 0?[r,n]:void 0}return t}default:return t}};var nx={};_te(nx,{scaleBand:()=>Fv,scaleDiverging:()=>Jk,scaleDivergingLog:()=>YP,scaleDivergingPow:()=>Qk,scaleDivergingSqrt:()=>VU,scaleDivergingSymlog:()=>XP,scaleIdentity:()=>jk,scaleImplicit:()=>kk,scaleLinear:()=>Dk,scaleLog:()=>$k,scaleOrdinal:()=>mg,scalePoint:()=>PF,scalePow:()=>Jv,scaleQuantile:()=>Bk,scaleQuantize:()=>Fk,scaleRadial:()=>zk,scaleSequential:()=>Gk,scaleSequentialLog:()=>VP,scaleSequentialPow:()=>Yk,scaleSequentialQuantile:()=>Xk,scaleSequentialSqrt:()=>KU,scaleSequentialSymlog:()=>GP,scaleSqrt:()=>fU,scaleSymlog:()=>Lk,scaleThreshold:()=>Uk,scaleTime:()=>qP,scaleUtc:()=>KP,tickFormat:()=>Vv});function Ca(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function hP(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function gp(e){let t,r,n;e.length!==2?(t=Ca,r=(s,l)=>Ca(e(s),l),n=(s,l)=>e(s)-l):(t=e===Ca||e===hP?e:Bce,r=e,n=e);function o(s,l,u=0,c=s.length){if(u>>1;r(s[d],l)<0?u=d+1:c=d}while(u>>1;r(s[d],l)<=0?u=d+1:c=d}while(uu&&n(s[d-1],l)>-n(s[d],l)?d-1:d}return{left:o,center:i,right:a}}function Bce(){return 0}function Lv(e){return e===null?NaN:+e}function*CF(e,t){if(t===void 0)for(let r of e)r!=null&&(r=+r)>=r&&(yield r);else{let r=-1;for(let n of e)(n=t(n,++r,e))!=null&&(n=+n)>=n&&(yield n)}}var AF=gp(Ca),EF=AF.right,Fce=AF.left,Uce=gp(Lv).center,Ds=EF;var pg=class extends Map{constructor(t,r=qce){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(let[n,o]of t)this.set(n,o)}get(t){return super.get(NF(this,t))}has(t){return super.has(NF(this,t))}set(t,r){return super.set(Wce(this,t),r)}delete(t){return super.delete(Hce(this,t))}};function NF({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):r}function Wce({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function Hce({_intern:e,_key:t},r){let n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function qce(e){return e!==null&&typeof e=="object"?e.valueOf():e}function TF(e=Ca){if(e===Ca)return yP;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{let n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function yP(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}var Kce=Math.sqrt(50),Vce=Math.sqrt(10),Gce=Math.sqrt(2);function yk(e,t,r){let n=(t-e)/Math.max(0,r),o=Math.floor(Math.log10(n)),a=n/Math.pow(10,o),i=a>=Kce?10:a>=Vce?5:a>=Gce?2:1,s,l,u;return o<0?(u=Math.pow(10,-o)/i,s=Math.round(e*u),l=Math.round(t*u),s/ut&&--l,u=-u):(u=Math.pow(10,o)*i,s=Math.round(e/u),l=Math.round(t/u),s*ut&&--l),l0))return[];if(e===t)return[e];let n=t=o))return[];let s=a-o+1,l=new Array(s);if(n)if(i<0)for(let u=0;u=n)&&(r=n);else{let n=-1;for(let o of e)(o=t(o,++n,e))!=null&&(r=o)&&(r=o)}return r}function xk(e,t){let r;if(t===void 0)for(let n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let o of e)(o=t(o,++n,e))!=null&&(r>o||r===void 0&&o>=o)&&(r=o)}return r}function bk(e,t,r=0,n=1/0,o){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(o=o===void 0?yP:TF(o);n>r;){if(n-r>600){let l=n-r+1,u=t-r+1,c=Math.log(l),d=.5*Math.exp(2*c/3),p=.5*Math.sqrt(c*d*(l-d)/l)*(u-l/2<0?-1:1),f=Math.max(r,Math.floor(t-u*d/l+p)),m=Math.min(n,Math.floor(t+(l-u)*d/l+p));bk(e,t,f,m,o)}let a=e[t],i=r,s=n;for(Bv(e,r,t),o(e[n],a)>0&&Bv(e,r,n);i0;)--s}o(e[r],a)===0?Bv(e,r,s):(++s,Bv(e,s,n)),s<=t&&(r=s+1),t<=s&&(n=s-1)}return e}function Bv(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}function wk(e,t,r){if(e=Float64Array.from(CF(e,r)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return xk(e);if(t>=1)return vk(e);var n,o=(n-1)*t,a=Math.floor(o),i=vk(bk(e,a).subarray(0,a+1)),s=xk(e.subarray(a+1));return i+(s-i)*(o-a)}}function vP(e,t,r=Lv){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,o=(n-1)*t,a=Math.floor(o),i=+r(e[a],a,e),s=+r(e[a+1],a+1,e);return i+(s-i)*(o-a)}}function Sk(e,t,r){e=+e,t=+t,r=(o=arguments.length)<2?(t=e,e=0,1):o<3?1:+r;for(var n=-1,o=Math.max(0,Math.ceil((t-e)/r))|0,a=new Array(o);++n>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?Ck(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?Ck(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Xce.exec(e))?new Xa(t[1],t[2],t[3],1):(t=Zce.exec(e))?new Xa(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Jce.exec(e))?Ck(t[1],t[2],t[3],t[4]):(t=Qce.exec(e))?Ck(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Rce.exec(e))?zF(t[1],t[2]/100,t[3]/100,1):(t=ede.exec(e))?zF(t[1],t[2]/100,t[3]/100,t[4]):MF.hasOwnProperty(e)?jF(MF[e]):e==="transparent"?new Xa(NaN,NaN,NaN,0):null}function jF(e){return new Xa(e>>16&255,e>>8&255,e&255,1)}function Ck(e,t,r,n){return n<=0&&(e=t=r=NaN),new Xa(e,t,r,n)}function nde(e){return e instanceof Hv||(e=Pc(e)),e?(e=e.rgb(),new Xa(e.r,e.g,e.b,e.opacity)):new Xa}function hg(e,t,r,n){return arguments.length===1?nde(e):new Xa(e,t,r,n??1)}function Xa(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}_k(Xa,hg,xP(Hv,{brighter(e){return e=e==null?Ek:Math.pow(Ek,e),new Xa(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Uv:Math.pow(Uv,e),new Xa(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Xa(vp(this.r),vp(this.g),vp(this.b),Nk(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:$F,formatHex:$F,formatHex8:ode,formatRgb:LF,toString:LF}));function $F(){return`#${yp(this.r)}${yp(this.g)}${yp(this.b)}`}function ode(){return`#${yp(this.r)}${yp(this.g)}${yp(this.b)}${yp((isNaN(this.opacity)?1:this.opacity)*255)}`}function LF(){let e=Nk(this.opacity);return`${e===1?"rgb(":"rgba("}${vp(this.r)}, ${vp(this.g)}, ${vp(this.b)}${e===1?")":`, ${e})`}`}function Nk(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function vp(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function yp(e){return e=vp(e),(e<16?"0":"")+e.toString(16)}function zF(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new js(e,t,r,n)}function FF(e){if(e instanceof js)return new js(e.h,e.s,e.l,e.opacity);if(e instanceof Hv||(e=Pc(e)),!e)return new js;if(e instanceof js)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,o=Math.min(t,r,n),a=Math.max(t,r,n),i=NaN,s=a-o,l=(a+o)/2;return s?(t===a?i=(r-n)/s+(r0&&l<1?0:i,new js(i,s,l,e.opacity)}function UF(e,t,r,n){return arguments.length===1?FF(e):new js(e,t,r,n??1)}function js(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}_k(js,UF,xP(Hv,{brighter(e){return e=e==null?Ek:Math.pow(Ek,e),new js(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Uv:Math.pow(Uv,e),new js(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,o=2*r-n;return new Xa(bP(e>=240?e-240:e+120,o,n),bP(e,o,n),bP(e<120?e+240:e-120,o,n),this.opacity)},clamp(){return new js(BF(this.h),Ak(this.s),Ak(this.l),Nk(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=Nk(this.opacity);return`${e===1?"hsl(":"hsla("}${BF(this.h)}, ${Ak(this.s)*100}%, ${Ak(this.l)*100}%${e===1?")":`, ${e})`}`}}));function BF(e){return e=(e||0)%360,e<0?e+360:e}function Ak(e){return Math.max(0,Math.min(1,e||0))}function bP(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}function wP(e,t,r,n,o){var a=e*e,i=a*e;return((1-3*e+3*a-i)*t+(4-6*a+3*i)*r+(1+3*e+3*a-3*i)*n+i*o)/6}function WF(e){var t=e.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,t-1):Math.floor(r*t),o=e[n],a=e[n+1],i=n>0?e[n-1]:2*o-a,s=n()=>e;function ade(e,t){return function(r){return e+r*t}}function ide(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function qF(e){return(e=+e)==1?Tk:function(t,r){return r-t?ide(t,r,e):qv(isNaN(t)?r:t)}}function Tk(e,t){var r=t-e;return r?ade(e,r):qv(isNaN(e)?t:e)}var SP=(function e(t){var r=qF(t);function n(o,a){var i=r((o=hg(o)).r,(a=hg(a)).r),s=r(o.g,a.g),l=r(o.b,a.b),u=Tk(o.opacity,a.opacity);return function(c){return o.r=i(c),o.g=s(c),o.b=l(c),o.opacity=u(c),o+""}}return n.gamma=e,n})(1);function KF(e){return function(t){var r=t.length,n=new Array(r),o=new Array(r),a=new Array(r),i,s;for(i=0;ir&&(a=t.slice(r,a),s[i]?s[i]+=a:s[++i]=a),(n=n[0])===(o=o[0])?s[i]?s[i]+=o:s[++i]=o:(s[++i]=null,l.push({i,x:Mc(n,o)})),r=kP.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function cde(e,t,r){var n=e[0],o=e[1],a=t[0],i=t[1];return o2?dde:cde,l=u=null,d}function d(p){return p==null||isNaN(p=+p)?a:(l||(l=s(e.map(n),t,r)))(n(i(p)))}return d.invert=function(p){return i(o((u||(u=s(t,e.map(n),Mc)))(p)))},d.domain=function(p){return arguments.length?(e=Array.from(p,Ic),c()):e.slice()},d.range=function(p){return arguments.length?(t=Array.from(p),c()):t.slice()},d.rangeRound=function(p){return t=Array.from(p),r=xp,c()},d.clamp=function(p){return arguments.length?(i=p?!0:Eo,c()):i!==Eo},d.interpolate=function(p){return arguments.length?(r=p,c()):r},d.unknown=function(p){return arguments.length?(a=p,d):a},function(p,f){return n=p,o=f,c()}}function wp(){return bp()(Eo,Eo)}function RF(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Sp(e,t){if(!isFinite(e)||e===0)return null;var r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function fl(e){return e=Sp(Math.abs(e)),e?e[1]:NaN}function eU(e,t){return function(r,n){for(var o=r.length,a=[],i=0,s=e[0],l=0;o>0&&s>0&&(l+s+1>n&&(s=Math.max(1,n-l)),a.push(r.substring(o-=s,o+s)),!((l+=s+1)>n));)s=e[i=(i+1)%e.length];return a.reverse().join(t)}}function tU(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var pde=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ml(e){if(!(t=pde.exec(e)))throw new Error("invalid format: "+e);var t;return new Pk({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}ml.prototype=Pk.prototype;function Pk(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Pk.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function rU(e){e:for(var t=e.length,r=1,n=-1,o;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(o+1):e}var Kv;function nU(e,t){var r=Sp(e,t);if(!r)return Kv=void 0,e.toPrecision(t);var n=r[0],o=r[1],a=o-(Kv=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,i=n.length;return a===i?n:a>i?n+new Array(a-i+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+Sp(e,Math.max(0,t+a-1))[0]}function EP(e,t){var r=Sp(e,t);if(!r)return e+"";var n=r[0],o=r[1];return o<0?"0."+new Array(-o).join("0")+n:n.length>o+1?n.slice(0,o+1)+"."+n.slice(o+1):n+new Array(o-n.length+2).join("0")}var NP={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:RF,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>EP(e*100,t),r:EP,s:nU,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function TP(e){return e}var oU=Array.prototype.map,aU=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function iU(e){var t=e.grouping===void 0||e.thousands===void 0?TP:eU(oU.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",o=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?TP:tU(oU.call(e.numerals,String)),i=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"\u2212":e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function u(d,p){d=ml(d);var f=d.fill,m=d.align,y=d.sign,b=d.symbol,g=d.zero,h=d.width,v=d.comma,x=d.precision,S=d.trim,k=d.type;k==="n"?(v=!0,k="g"):NP[k]||(x===void 0&&(x=12),S=!0,k="g"),(g||f==="0"&&m==="=")&&(g=!0,f="0",m="=");var w=(p&&p.prefix!==void 0?p.prefix:"")+(b==="$"?r:b==="#"&&/[boxX]/.test(k)?"0"+k.toLowerCase():""),_=(b==="$"?n:/[%p]/.test(k)?i:"")+(p&&p.suffix!==void 0?p.suffix:""),A=NP[k],C=/[defgprs%]/.test(k);x=x===void 0?6:/[gprs]/.test(k)?Math.max(1,Math.min(21,x)):Math.max(0,Math.min(20,x));function N(L){var Q=w,B=_,K,T,O;if(k==="c")B=A(L)+B,L="";else{L=+L;var I=L<0||1/L<0;if(L=isNaN(L)?l:A(Math.abs(L),x),S&&(L=rU(L)),I&&+L==0&&y!=="+"&&(I=!1),Q=(I?y==="("?y:s:y==="-"||y==="("?"":y)+Q,B=(k==="s"&&!isNaN(L)&&Kv!==void 0?aU[8+Kv/3]:"")+B+(I&&y==="("?")":""),C){for(K=-1,T=L.length;++KO||O>57){B=(O===46?o+L.slice(K+1):L.slice(K))+B,L=L.slice(0,K);break}}}v&&!g&&(L=t(L,1/0));var P=Q.length+L.length+B.length,j=P>1)+Q+L+B+j.slice(P);break;default:L=j+Q+L+B;break}return a(L)}return N.toString=function(){return d+""},N}function c(d,p){var f=Math.max(-8,Math.min(8,Math.floor(fl(p)/3)))*3,m=Math.pow(10,-f),y=u((d=ml(d),d.type="f",d),{suffix:aU[8+f/3]});return function(b){return y(m*b)}}return{format:u,formatPrefix:c}}var Mk,yg,Ik;OP({thousands:",",grouping:[3],currency:["$",""]});function OP(e){return Mk=iU(e),yg=Mk.format,Ik=Mk.formatPrefix,Mk}function PP(e){return Math.max(0,-fl(Math.abs(e)))}function MP(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(fl(t)/3)))*3-fl(Math.abs(e)))}function IP(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,fl(t)-fl(e))+1}function Vv(e,t,r,n){var o=fg(e,t,r),a;switch(n=ml(n??",f"),n.type){case"s":{var i=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(a=MP(o,i))&&(n.precision=a),Ik(n,i)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=IP(o,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=PP(o))&&(n.precision=a-(n.type==="%")*2);break}}return yg(n)}function Aa(e){var t=e.domain;return e.ticks=function(r){var n=t();return hp(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var o=t();return Vv(o[0],o[o.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),o=0,a=n.length-1,i=n[o],s=n[a],l,u,c=10;for(s0;){if(u=zv(i,s,r),u===l)return n[o]=i,n[a]=s,t(n);if(u>0)i=Math.floor(i/u)*u,s=Math.ceil(s/u)*u;else if(u<0)i=Math.ceil(i*u)/u,s=Math.floor(s*u)/u;else break;l=u}return e},e}function Dk(){var e=wp();return e.copy=function(){return pl(e,Dk())},An.apply(e,arguments),Aa(e)}function jk(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,Ic),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return jk(e).unknown(t)},e=arguments.length?Array.from(e,Ic):[0,1],Aa(r)}function Gv(e,t){e=e.slice();var r=0,n=e.length-1,o=e[r],a=e[n],i;return aMath.pow(e,t)}function yde(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function uU(e){return(t,r)=>-e(-t,r)}function Yv(e){let t=e(sU,lU),r=t.domain,n=10,o,a;function i(){return o=yde(n),a=hde(n),r()[0]<0?(o=uU(o),a=uU(a),e(fde,mde)):e(sU,lU),t}return t.base=function(s){return arguments.length?(n=+s,i()):n},t.domain=function(s){return arguments.length?(r(s),i()):r()},t.ticks=s=>{let l=r(),u=l[0],c=l[l.length-1],d=c0){for(;p<=f;++p)for(m=1;mc)break;g.push(y)}}else for(;p<=f;++p)for(m=n-1;m>=1;--m)if(y=p>0?m/a(-p):m*a(p),!(yc)break;g.push(y)}g.length*2{if(s==null&&(s=10),l==null&&(l=n===10?"s":","),typeof l!="function"&&(!(n%1)&&(l=ml(l)).precision==null&&(l.trim=!0),l=yg(l)),s===1/0)return l;let u=Math.max(1,n*s/t.ticks().length);return c=>{let d=c/a(Math.round(o(c)));return d*nr(Gv(r(),{floor:s=>a(Math.floor(o(s))),ceil:s=>a(Math.ceil(o(s)))})),t}function $k(){let e=Yv(bp()).domain([1,10]);return e.copy=()=>pl(e,$k()).base(e.base()),An.apply(e,arguments),e}function cU(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function dU(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Xv(e){var t=1,r=e(cU(t),dU(t));return r.constant=function(n){return arguments.length?e(cU(t=+n),dU(t)):t},Aa(r)}function Lk(){var e=Xv(bp());return e.copy=function(){return pl(e,Lk()).constant(e.constant())},An.apply(e,arguments)}function pU(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function vde(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function xde(e){return e<0?-e*e:e*e}function Zv(e){var t=e(Eo,Eo),r=1;function n(){return r===1?e(Eo,Eo):r===.5?e(vde,xde):e(pU(r),pU(1/r))}return t.exponent=function(o){return arguments.length?(r=+o,n()):r},Aa(t)}function Jv(){var e=Zv(bp());return e.copy=function(){return pl(e,Jv()).exponent(e.exponent())},An.apply(e,arguments),e}function fU(){return Jv.apply(null,arguments).exponent(.5)}function mU(e){return Math.sign(e)*e*e}function bde(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function zk(){var e=wp(),t=[0,1],r=!1,n;function o(a){var i=bde(e(a));return isNaN(i)?n:r?Math.round(i):i}return o.invert=function(a){return e.invert(mU(a))},o.domain=function(a){return arguments.length?(e.domain(a),o):e.domain()},o.range=function(a){return arguments.length?(e.range((t=Array.from(a,Ic)).map(mU)),o):t.slice()},o.rangeRound=function(a){return o.range(a).round(!0)},o.round=function(a){return arguments.length?(r=!!a,o):r},o.clamp=function(a){return arguments.length?(e.clamp(a),o):e.clamp()},o.unknown=function(a){return arguments.length?(n=a,o):n},o.copy=function(){return zk(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},An.apply(o,arguments),Aa(o)}function Bk(){var e=[],t=[],r=[],n;function o(){var i=0,s=Math.max(1,t.length);for(r=new Array(s-1);++i0?r[s-1]:e[0],s=r?[n[r-1],t]:[n[u-1],n[u]]},i.unknown=function(l){return arguments.length&&(a=l),i},i.thresholds=function(){return n.slice()},i.copy=function(){return Fk().domain([e,t]).range(o).unknown(a)},An.apply(Aa(i),arguments)}function Uk(){var e=[.5],t=[0,1],r,n=1;function o(a){return a!=null&&a<=a?t[Ds(e,a,0,n)]:r}return o.domain=function(a){return arguments.length?(e=Array.from(a),n=Math.min(e.length,t.length-1),o):e.slice()},o.range=function(a){return arguments.length?(t=Array.from(a),n=Math.min(e.length,t.length-1),o):t.slice()},o.invertExtent=function(a){var i=t.indexOf(a);return[e[i-1],e[i]]},o.unknown=function(a){return arguments.length?(r=a,o):r},o.copy=function(){return Uk().domain(e).range(t).unknown(r)},An.apply(o,arguments)}var DP=new Date,jP=new Date;function Rr(e,t,r,n){function o(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return o.floor=a=>(e(a=new Date(+a)),a),o.ceil=a=>(e(a=new Date(a-1)),t(a,1),e(a),a),o.round=a=>{let i=o(a),s=o.ceil(a);return a-i(t(a=new Date(+a),i==null?1:Math.floor(i)),a),o.range=(a,i,s)=>{let l=[];if(a=o.ceil(a),s=s==null?1:Math.floor(s),!(a0))return l;let u;do l.push(u=new Date(+a)),t(a,s),e(a);while(uRr(i=>{if(i>=i)for(;e(i),!a(i);)i.setTime(i-1)},(i,s)=>{if(i>=i)if(s<0)for(;++s<=0;)for(;t(i,-1),!a(i););else for(;--s>=0;)for(;t(i,1),!a(i););}),r&&(o.count=(a,i)=>(DP.setTime(+a),jP.setTime(+i),e(DP),e(jP),Math.floor(r(DP,jP))),o.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?o.filter(n?i=>n(i)%a===0:i=>o.count(0,i)%a===0):o)),o}var Qv=Rr(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Qv.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Rr(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):Qv);var T$e=Qv.range;var ts=Rr(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*1e3)},(e,t)=>(t-e)/1e3,e=>e.getUTCSeconds()),gU=ts.range;var vg=Rr(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getMinutes()),wde=vg.range,xg=Rr(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getUTCMinutes()),Sde=xg.range;var bg=Rr(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3-e.getMinutes()*6e4)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getHours()),kde=bg.range,wg=Rr(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getUTCHours()),_de=wg.range;var pu=Rr(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/864e5,e=>e.getDate()-1),Cde=pu.range,Cp=Rr(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>e.getUTCDate()-1),Ade=Cp.range,Wk=Rr(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>Math.floor(e/864e5)),Ede=Wk.range;function Ap(e){return Rr(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5)}var fu=Ap(0),Sg=Ap(1),yU=Ap(2),vU=Ap(3),Dc=Ap(4),xU=Ap(5),bU=Ap(6),wU=fu.range,Nde=Sg.range,Tde=yU.range,Ode=vU.range,Pde=Dc.range,Mde=xU.range,Ide=bU.range;function Ep(e){return Rr(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/6048e5)}var mu=Ep(0),kg=Ep(1),SU=Ep(2),kU=Ep(3),jc=Ep(4),_U=Ep(5),CU=Ep(6),AU=mu.range,Dde=kg.range,jde=SU.range,$de=kU.range,Lde=jc.range,zde=_U.range,Bde=CU.range;var _g=Rr(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth()),Fde=_g.range,Cg=Rr(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth()),Ude=Cg.range;var ki=Rr(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());ki.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Rr(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});var Wde=ki.range,_i=Rr(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());_i.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Rr(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});var Hde=_i.range;function NU(e,t,r,n,o,a){let i=[[ts,1,1e3],[ts,5,5*1e3],[ts,15,15*1e3],[ts,30,30*1e3],[a,1,6e4],[a,5,5*6e4],[a,15,15*6e4],[a,30,30*6e4],[o,1,36e5],[o,3,3*36e5],[o,6,6*36e5],[o,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[t,1,2592e6],[t,3,3*2592e6],[e,1,31536e6]];function s(u,c,d){let p=cb).right(i,p);if(f===i.length)return e.every(fg(u/31536e6,c/31536e6,d));if(f===0)return Qv.every(Math.max(fg(u,c,d),1));let[m,y]=i[p/i[f-1][2]53)return null;"w"in te||(te.w=1),"Z"in te?(_e=UP(ex(te.y,0,1)),D=_e.getUTCDay(),_e=D>4||D===0?kg.ceil(_e):kg(_e),_e=Cp.offset(_e,(te.V-1)*7),te.y=_e.getUTCFullYear(),te.m=_e.getUTCMonth(),te.d=_e.getUTCDate()+(te.w+6)%7):(_e=FP(ex(te.y,0,1)),D=_e.getDay(),_e=D>4||D===0?Sg.ceil(_e):Sg(_e),_e=pu.offset(_e,(te.V-1)*7),te.y=_e.getFullYear(),te.m=_e.getMonth(),te.d=_e.getDate()+(te.w+6)%7)}else("W"in te||"U"in te)&&("w"in te||(te.w="u"in te?te.u%7:"W"in te?1:0),D="Z"in te?UP(ex(te.y,0,1)).getUTCDay():FP(ex(te.y,0,1)).getDay(),te.m=0,te.d="W"in te?(te.w+6)%7+te.W*7-(D+5)%7:te.w+te.U*7-(D+6)%7);return"Z"in te?(te.H+=te.Z/100|0,te.M+=te.Z%100,UP(te)):FP(te)}}function _(fe,le,R,te){for(var He=0,_e=le.length,D=R.length,G,E;He<_e;){if(te>=D)return-1;if(G=le.charCodeAt(He++),G===37){if(G=le.charAt(He++),E=S[G in TU?le.charAt(He++):G],!E||(te=E(fe,R,te))<0)return-1}else if(G!=R.charCodeAt(te++))return-1}return te}function A(fe,le,R){var te=u.exec(le.slice(R));return te?(fe.p=c.get(te[0].toLowerCase()),R+te[0].length):-1}function C(fe,le,R){var te=f.exec(le.slice(R));return te?(fe.w=m.get(te[0].toLowerCase()),R+te[0].length):-1}function N(fe,le,R){var te=d.exec(le.slice(R));return te?(fe.w=p.get(te[0].toLowerCase()),R+te[0].length):-1}function L(fe,le,R){var te=g.exec(le.slice(R));return te?(fe.m=h.get(te[0].toLowerCase()),R+te[0].length):-1}function Q(fe,le,R){var te=y.exec(le.slice(R));return te?(fe.m=b.get(te[0].toLowerCase()),R+te[0].length):-1}function B(fe,le,R){return _(fe,t,le,R)}function K(fe,le,R){return _(fe,r,le,R)}function T(fe,le,R){return _(fe,n,le,R)}function O(fe){return i[fe.getDay()]}function I(fe){return a[fe.getDay()]}function P(fe){return l[fe.getMonth()]}function j(fe){return s[fe.getMonth()]}function M(fe){return o[+(fe.getHours()>=12)]}function W(fe){return 1+~~(fe.getMonth()/3)}function Y(fe){return i[fe.getUTCDay()]}function z(fe){return a[fe.getUTCDay()]}function V(fe){return l[fe.getUTCMonth()]}function q(fe){return s[fe.getUTCMonth()]}function oe(fe){return o[+(fe.getUTCHours()>=12)]}function Me(fe){return 1+~~(fe.getUTCMonth()/3)}return{format:function(fe){var le=k(fe+="",v);return le.toString=function(){return fe},le},parse:function(fe){var le=w(fe+="",!1);return le.toString=function(){return fe},le},utcFormat:function(fe){var le=k(fe+="",x);return le.toString=function(){return fe},le},utcParse:function(fe){var le=w(fe+="",!0);return le.toString=function(){return fe},le}}}var TU={"-":"",_:" ",0:"0"},Vo=/^\s*\d+/,Kde=/^%/,Vde=/[\\^$*+?|[\]().{}]/g;function Er(e,t,r){var n=e<0?"-":"",o=(n?-e:e)+"",a=o.length;return n+(a[t.toLowerCase(),r]))}function Yde(e,t,r){var n=Vo.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function Xde(e,t,r){var n=Vo.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function Zde(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function Jde(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function Qde(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function OU(e,t,r){var n=Vo.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function PU(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function Rde(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function epe(e,t,r){var n=Vo.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function tpe(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function MU(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function rpe(e,t,r){var n=Vo.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function IU(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function npe(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function ope(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function ape(e,t,r){var n=Vo.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function ipe(e,t,r){var n=Vo.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function spe(e,t,r){var n=Kde.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function lpe(e,t,r){var n=Vo.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function upe(e,t,r){var n=Vo.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function DU(e,t){return Er(e.getDate(),t,2)}function cpe(e,t){return Er(e.getHours(),t,2)}function dpe(e,t){return Er(e.getHours()%12||12,t,2)}function ppe(e,t){return Er(1+pu.count(ki(e),e),t,3)}function BU(e,t){return Er(e.getMilliseconds(),t,3)}function fpe(e,t){return BU(e,t)+"000"}function mpe(e,t){return Er(e.getMonth()+1,t,2)}function gpe(e,t){return Er(e.getMinutes(),t,2)}function hpe(e,t){return Er(e.getSeconds(),t,2)}function ype(e){var t=e.getDay();return t===0?7:t}function vpe(e,t){return Er(fu.count(ki(e)-1,e),t,2)}function FU(e){var t=e.getDay();return t>=4||t===0?Dc(e):Dc.ceil(e)}function xpe(e,t){return e=FU(e),Er(Dc.count(ki(e),e)+(ki(e).getDay()===4),t,2)}function bpe(e){return e.getDay()}function wpe(e,t){return Er(Sg.count(ki(e)-1,e),t,2)}function Spe(e,t){return Er(e.getFullYear()%100,t,2)}function kpe(e,t){return e=FU(e),Er(e.getFullYear()%100,t,2)}function _pe(e,t){return Er(e.getFullYear()%1e4,t,4)}function Cpe(e,t){var r=e.getDay();return e=r>=4||r===0?Dc(e):Dc.ceil(e),Er(e.getFullYear()%1e4,t,4)}function Ape(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Er(t/60|0,"0",2)+Er(t%60,"0",2)}function jU(e,t){return Er(e.getUTCDate(),t,2)}function Epe(e,t){return Er(e.getUTCHours(),t,2)}function Npe(e,t){return Er(e.getUTCHours()%12||12,t,2)}function Tpe(e,t){return Er(1+Cp.count(_i(e),e),t,3)}function UU(e,t){return Er(e.getUTCMilliseconds(),t,3)}function Ope(e,t){return UU(e,t)+"000"}function Ppe(e,t){return Er(e.getUTCMonth()+1,t,2)}function Mpe(e,t){return Er(e.getUTCMinutes(),t,2)}function Ipe(e,t){return Er(e.getUTCSeconds(),t,2)}function Dpe(e){var t=e.getUTCDay();return t===0?7:t}function jpe(e,t){return Er(mu.count(_i(e)-1,e),t,2)}function WU(e){var t=e.getUTCDay();return t>=4||t===0?jc(e):jc.ceil(e)}function $pe(e,t){return e=WU(e),Er(jc.count(_i(e),e)+(_i(e).getUTCDay()===4),t,2)}function Lpe(e){return e.getUTCDay()}function zpe(e,t){return Er(kg.count(_i(e)-1,e),t,2)}function Bpe(e,t){return Er(e.getUTCFullYear()%100,t,2)}function Fpe(e,t){return e=WU(e),Er(e.getUTCFullYear()%100,t,2)}function Upe(e,t){return Er(e.getUTCFullYear()%1e4,t,4)}function Wpe(e,t){var r=e.getUTCDay();return e=r>=4||r===0?jc(e):jc.ceil(e),Er(e.getUTCFullYear()%1e4,t,4)}function Hpe(){return"+0000"}function $U(){return"%"}function LU(e){return+e}function zU(e){return Math.floor(+e/1e3)}var Ag,Hk,HU,qk,qU;HP({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function HP(e){return Ag=WP(e),Hk=Ag.format,HU=Ag.parse,qk=Ag.utcFormat,qU=Ag.utcParse,Ag}function qpe(e){return new Date(e)}function Kpe(e){return e instanceof Date?+e:+new Date(+e)}function Kk(e,t,r,n,o,a,i,s,l,u){var c=wp(),d=c.invert,p=c.domain,f=u(".%L"),m=u(":%S"),y=u("%I:%M"),b=u("%I %p"),g=u("%a %d"),h=u("%b %d"),v=u("%B"),x=u("%Y");function S(k){return(l(k)t(o/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(o,a)=>wk(e,a/n))},r.copy=function(){return Xk(t).domain(e)},es.apply(r,arguments)}function Zk(){var e=0,t=.5,r=1,n=1,o,a,i,s,l,u=Eo,c,d=!1,p;function f(y){return isNaN(y=+y)?p:(y=.5+((y=+c(y))-a)*(n*y{if(e!=null){var n=e.scale,o=e.type;if(n==="auto")return o==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!t)?"point":o==="category"?"band":"linear";if(typeof n=="string")return Ype(n)?n:"point"}};function Xpe(e,t){for(var r=0,n=e.length,o=e[0]t)?r=a+1:n=a}return r}function e_(e,t){if(e){var r=t??e.domain(),n=r.map(a=>{var i;return(i=e(a))!==null&&i!==void 0?i:0}),o=e.range();if(!(r.length===0||o.length<2))return a=>{var i,s,l=Xpe(n,a);if(l<=0)return r[0];if(l>=r.length)return r[r.length-1];var u=(i=n[l-1])!==null&&i!==void 0?i:0,c=(s=n[l])!==null&&s!==void 0?s:0;return Math.abs(a-u)<=Math.abs(a-c)?r[l-1]:r[l]}}}function YU(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):e_(e,void 0)}function XU(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function t_(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);re.cartesianAxis.xAxis[t],hl=(e,t)=>{var r=JP(e,t);return r??io},so={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:ZP,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"left",padding:{top:0,bottom:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"number",unit:void 0,niceTicks:"auto",width:rp},QP=(e,t)=>e.cartesianAxis.yAxis[t],yl=(e,t)=>{var r=QP(e,t);return r??so},nfe={domain:[0,"auto"],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:"",range:[64,64],scale:"auto",type:"number",unit:""},RP=(e,t)=>{var r=e.cartesianAxis.zAxis[t];return r??nfe},En=(e,t,r)=>{switch(t){case"xAxis":return hl(e,r);case"yAxis":return yl(e,r);case"zAxis":return RP(e,r);case"angleAxis":return dk(e,r);case"radiusAxis":return pk(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},ofe=(e,t,r)=>{switch(t){case"xAxis":return hl(e,r);case"yAxis":return yl(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},Np=(e,t,r)=>{switch(t){case"xAxis":return hl(e,r);case"yAxis":return yl(e,r);case"angleAxis":return dk(e,r);case"radiusAxis":return pk(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},eM=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function ix(e,t){return r=>{switch(e){case"xAxis":return"xAxisId"in r&&r.xAxisId===t;case"yAxis":return"yAxisId"in r&&r.yAxisId===t;case"zAxis":return"zAxisId"in r&&r.zAxisId===t;case"angleAxis":return"angleAxisId"in r&&r.angleAxisId===t;case"radiusAxis":return"radiusAxisId"in r&&r.radiusAxisId===t;default:return!1}}}var $c=e=>e.graphicalItems.cartesianItems,afe=ae([vn,pp],ix),sx=(e,t,r)=>e.filter(r).filter(n=>t?.includeHidden===!0?!0:!n.hide),Ng=ae([$c,En,afe],sx,{memoizeOptions:{resultEqualityCheck:dg}}),RU=ae([Ng],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(fp)),tM=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),ife=ae([Ng],tM),lx=e=>e.map(t=>t.data).filter(Boolean).flat(1),sfe=ae([Ng],e=>e.some(t=>!t.data)),eW=ae([Ng],lx,{memoizeOptions:{resultEqualityCheck:dg}}),ux=(e,t)=>{var r=t.chartData,n=r===void 0?[]:r,o=t.dataStartIndex,a=t.dataEndIndex;return e.length>0?e:n.slice(o,a+1)},rM=ae([eW,up],ux),nM=(e,t,r)=>t?.dataKey!=null?e.map(n=>({value:Ht(n,t.dataKey)})):r.length>0?r.map(n=>n.dataKey).flatMap(n=>e.map(o=>({value:Ht(o,n)}))):e.map(n=>({value:n})),oM=(e,t,r,n,o,a)=>{var i=n.chartData,s=i===void 0?[]:i,l=n.dataStartIndex,u=n.dataEndIndex,c=nM(e,t,r);if(o&&t?.dataKey!=null&&a.length>0){var d=s.slice(l,u+1),p=d.map(f=>({value:Ht(f,t.dataKey)})).filter(f=>f.value!=null);return[...p,...c]}return c},cx=ae([rM,En,Ng,up,sfe,eW],oM);function Eg(e){if(Sa(e)||e instanceof Date){var t=Number(e);if(Ot(t))return t}}function JU(e){if(Array.isArray(e)){var t=[Eg(e[0]),Eg(e[1])];return wi(t)?t:void 0}var r=Eg(e);if(r!=null)return[r,r]}function $s(e){return e.map(Eg).filter(Ao)}function lfe(e,t){var r=Eg(e),n=Eg(t);return r==null&&n==null?0:r==null?-1:n==null?1:r-n}var ufe=ae([cx],e=>e?.map(t=>t.value).sort(lfe));function tW(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function cfe(e,t,r){if(!r)return[];if(!r.length)return[];var n;if(typeof t=="number"&&!Wo(t))n=t;else if(Array.isArray(t)){var o=$s(t);o.length>0&&(n=Math.max(...o))}return n==null?[]:$s(r.flatMap(a=>{var i=Ht(e,a.dataKey),s,l;if(Array.isArray(i)){var u=QU(i,2);s=u[0],l=u[1]}else s=l=i;if(!(!Ot(s)||!Ot(l)))return[n-s,n+l]}))}var lo=e=>{var t=ao(e),r=Oc(e);return Np(e,t,r)},hu=ae([lo],e=>e?.dataKey),dfe=ae([RU,up,lo],gk),aM=(e,t,r,n)=>{var o={},a=t.reduce((i,s)=>{if(s.stackId==null)return i;var l=i[s.stackId];return l==null&&(l=[]),l.push(s),i[s.stackId]=l,i},o);return Object.fromEntries(Object.entries(a).map(i=>{var s=QU(i,2),l=s[0],u=s[1],c=n?[...u].reverse():u,d=c.map(Tc);return[l,{stackedData:m7(e,d,r),graphicalItems:c}]}))},Tg=ae([dfe,RU,Ec,sk],aM),iM=(e,t,r,n)=>{var o=t.dataStartIndex,a=t.dataEndIndex;if(n==null&&r!=="zAxis")return h7(e,o,a)},pfe=ae([En],e=>e.allowDataOverflow),r_=e=>{var t;if(e==null||!("domain"in e))return ZP;if(e.domain!=null)return e.domain;if("ticks"in e&&e.ticks!=null){if(e.type==="number"){var r=$s(e.ticks);return[Math.min(...r),Math.max(...r)]}if(e.type==="category")return e.ticks.map(String)}return(t=e?.domain)!==null&&t!==void 0?t:ZP},n_=ae([En],r_),o_=ae([n_,pfe],rk),ffe=ae([Tg,Ya,vn,o_],iM,{memoizeOptions:{resultEqualityCheck:mp}}),Og=e=>e.errorBars,mfe=(e,t,r)=>e.flatMap(n=>t[n.id]).filter(Boolean).filter(n=>tW(r,n)),ax=function(){for(var t=arguments.length,r=new Array(t),n=0;n5&&arguments[5]!==void 0?arguments[5]:[],s,l;if(n.length>0&&n.forEach(u=>{var c,d=u.data!=null?[...u.data]:i,p=(c=o[u.id])===null||c===void 0?void 0:c.filter(f=>tW(a,f));d.forEach(f=>{var m,y=Ht(f,(m=r.dataKey)!==null&&m!==void 0?m:u.dataKey),b=cfe(f,y,p);if(b.length>=2){var g=Math.min(...b),h=Math.max(...b);(s==null||gl)&&(l=h)}var v=JU(y);v!=null&&(s=s==null?v[0]:Math.min(s,v[0]),l=l==null?v[1]:Math.max(l,v[1]))})}),r?.dataKey!=null&&n.length===0&&t.forEach(u=>{var c=JU(Ht(u,r.dataKey));c!=null&&(s=s==null?c[0]:Math.min(s,c[0]),l=l==null?c[1]:Math.max(l,c[1]))}),Ot(s)&&Ot(l))return[s,l]},gfe=ae([rM,En,ife,Og,vn,aF],dx,{memoizeOptions:{resultEqualityCheck:mp}});function hfe(e){var t=e.value;if(Sa(t)||t instanceof Date)return t}var yfe=(e,t,r)=>{var n=e.map(hfe).filter(o=>o!=null);return r&&(t.dataKey==null||t.allowDuplicatedCategory&&OT(n))?ek(0,e.length):t.allowDuplicatedCategory?n:Array.from(new Set(n))},sM=e=>e.referenceElements.dots,Tp=(e,t,r)=>e.filter(n=>n.ifOverflow==="extendDomain").filter(n=>t==="xAxis"?n.xAxisId===r:n.yAxisId===r),vfe=ae([sM,vn,pp],Tp),lM=e=>e.referenceElements.areas,xfe=ae([lM,vn,pp],Tp),uM=e=>e.referenceElements.lines,bfe=ae([uM,vn,pp],Tp),cM=(e,t)=>{if(e!=null){var r=$s(e.map(n=>t==="xAxis"?n.x:n.y));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},wfe=ae(vfe,vn,cM),dM=(e,t)=>{if(e!=null){var r=$s(e.flatMap(n=>[t==="xAxis"?n.x1:n.y1,t==="xAxis"?n.x2:n.y2]));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},Sfe=ae([xfe,vn],dM);function kfe(e){var t;if(e.x!=null)return $s([e.x]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.x);return r==null||r.length===0?[]:$s(r)}function _fe(e){var t;if(e.y!=null)return $s([e.y]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.y);return r==null||r.length===0?[]:$s(r)}var pM=(e,t)=>{if(e!=null){var r=e.flatMap(n=>t==="xAxis"?kfe(n):_fe(n));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},Cfe=ae([bfe,vn],pM),Afe=ae(wfe,Cfe,Sfe,(e,t,r)=>ax(e,r,t)),px=(e,t,r,n,o,a,i,s,l)=>{if(r!=null)return r;var u=i==="vertical"&&s==="xAxis"||i==="horizontal"&&s==="yAxis",c=u?ax(n,a,o):ax(a,o),d=cF(t,c,e.allowDataOverflow);return d??(e.allowDataOverflow&&c==null&&l!=null?l:d)},Efe=e=>{if(!(e==null||e.type!=="number"||!("ticks"in e)||e.ticks==null)){var t=$s(e.ticks);if(t.length!==0)return[Math.min(...t),Math.max(...t)]}},Nfe=ae([En],Efe,{memoizeOptions:{resultEqualityCheck:mp}}),Tfe=ae([En,n_,o_,ffe,gfe,Afe,Bt,vn,Nfe],px,{memoizeOptions:{resultEqualityCheck:mp}}),Ofe=[0,1],fx=(e,t,r,n,o,a,i)=>{if(!((e==null||r==null||r.length===0)&&i===void 0)){var s=e.dataKey,l=e.type,u=sa(t,a);if(u&&s==null){var c;return ek(0,(c=r?.length)!==null&&c!==void 0?c:0)}return l==="category"?yfe(n,e,u):o==="expand"&&!u?Ofe:i}},fM=ae([En,Bt,rM,cx,Ec,vn,Tfe],fx),yu=ae([En,eM,cg],Rk),mx=(e,t,r)=>{var n=t.niceTicks;if(n!=="none"){var o=r_(t),a=Array.isArray(o)&&(o[0]==="auto"||o[1]==="auto");if((n==="snap125"||n==="adaptive")&&t!=null&&t.tickCount&&wi(e)){if(a)return ok(e,t.tickCount,t.allowDecimals,n);if(t.type==="number")return ak(e,t.tickCount,t.allowDecimals,n)}if(n==="auto"&&r==="linear"&&t!=null&&t.tickCount){if(a&&wi(e))return ok(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&wi(e))return ak(e,t.tickCount,t.allowDecimals,"adaptive")}}},mM=ae([fM,Np,yu],mx),gx=(e,t,r,n)=>{if(n!=="angleAxis"&&e?.type==="number"&&wi(t)&&Array.isArray(r)&&r.length>0){var o,a,i=t[0],s=(o=r[0])!==null&&o!==void 0?o:0,l=t[1],u=(a=r[r.length-1])!==null&&a!==void 0?a:0;return[Math.min(i,s),Math.max(l,u)]}return t},Pfe=ae([En,fM,mM,vn],gx),Mfe=ae(cx,En,(e,t)=>{if(!(!t||t.type!=="number")){var r=1/0,n=Array.from($s(e.map(d=>d.value))).sort((d,p)=>d-p),o=n[0],a=n[n.length-1];if(o==null||a==null)return 1/0;var i=a-o;if(i===0)return 1/0;for(var s=0;so,(e,t,r,n,o)=>{if(!Ot(e))return 0;var a=t==="vertical"?n.height:n.width;if(o==="gap")return e*a/2;if(o==="no-gap"){var i=$n(r,e*a),s=e*a/2;return s-i-(s-i)/a*i}return 0}),Ife=(e,t,r)=>{var n=hl(e,t);return n==null||typeof n.padding!="string"?0:rW(e,"xAxis",t,r,n.padding)},Dfe=(e,t,r)=>{var n=yl(e,t);return n==null||typeof n.padding!="string"?0:rW(e,"yAxis",t,r,n.padding)},jfe=ae(hl,Ife,(e,t)=>{var r,n;if(e==null)return{left:0,right:0};var o=e.padding;return typeof o=="string"?{left:t,right:t}:{left:((r=o.left)!==null&&r!==void 0?r:0)+t,right:((n=o.right)!==null&&n!==void 0?n:0)+t}}),$fe=ae(yl,Dfe,(e,t)=>{var r,n;if(e==null)return{top:0,bottom:0};var o=e.padding;return typeof o=="string"?{top:t,bottom:t}:{top:((r=o.top)!==null&&r!==void 0?r:0)+t,bottom:((n=o.bottom)!==null&&n!==void 0?n:0)+t}}),gM=ae([Fr,jfe,np,tg,(e,t,r)=>r],(e,t,r,n,o)=>{var a=n.padding;return o?[a.left,r.width-a.right]:[e.left+t.left,e.left+e.width-t.right]}),hM=ae([Fr,Bt,$fe,np,tg,(e,t,r)=>r],(e,t,r,n,o,a)=>{var i=o.padding;return a?[n.height-i.bottom,i.top]:t==="horizontal"?[e.top+e.height-r.bottom,e.top+r.top]:[e.top+r.top,e.top+e.height-r.bottom]}),Pg=(e,t,r,n)=>{var o;switch(t){case"xAxis":return gM(e,r,n);case"yAxis":return hM(e,r,n);case"zAxis":return(o=RP(e,r))===null||o===void 0?void 0:o.range;case"angleAxis":return mP(e);case"radiusAxis":return gP(e,r);default:return}},nW=ae([En,Pg],cp),Lfe=ae([yu,Pfe],hk),yM=ae([En,yu,Lfe,nW],ox),vM=(e,t,r,n)=>{if(!(r==null||r.dataKey==null)){var o=r.type,a=r.scale,i=sa(e,n);if(i&&(o==="number"||a!=="auto"))return t.map(s=>s.value)}},xM=ae([Bt,cx,Np,vn],vM),a_=ae([yM],$v),Q8e=ae([yM],YU),R8e=ae([yM,ufe],e_),e6e=ae([Ng,Og,vn],mfe);function oW(e,t){return e.idt.id?1:0}var i_=(e,t)=>t,s_=(e,t,r)=>r,zfe=ae(Qm,i_,s_,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(oW)),Bfe=ae(Rm,i_,s_,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(oW)),aW=(e,t)=>{var r=typeof t.height=="number"?t.height:Cv;return{width:e.width,height:r}},Ffe=(e,t)=>{var r=typeof t.width=="number"?t.width:rp;return{width:r,height:e.height}},bM=ae(Fr,hl,aW),Ufe=(e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}},Wfe=(e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}},Hfe=ae(Ko,Fr,zfe,i_,s_,(e,t,r,n,o)=>{var a={},i;return r.forEach(s=>{var l=aW(t,s);i==null&&(i=Ufe(t,n,e));var u=n==="top"&&!o||n==="bottom"&&o;a[s.id]=i-Number(u)*l.height,i+=(u?-1:1)*l.height}),a}),qfe=ae(qo,Fr,Bfe,i_,s_,(e,t,r,n,o)=>{var a={},i;return r.forEach(s=>{var l=Ffe(t,s);i==null&&(i=Wfe(t,n,e));var u=n==="left"&&!o||n==="right"&&o;a[s.id]=i-Number(u)*l.width,i+=(u?-1:1)*l.width}),a}),Kfe=(e,t)=>{var r=hl(e,t);if(r!=null)return Hfe(e,r.orientation,r.mirror)},iW=ae([Fr,hl,Kfe,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var o=r?.[n];return o==null?{x:e.left,y:0}:{x:e.left,y:o}}}),Vfe=(e,t)=>{var r=yl(e,t);if(r!=null)return qfe(e,r.orientation,r.mirror)},sW=ae([Fr,yl,Vfe,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var o=r?.[n];return o==null?{x:0,y:e.top}:{x:o,y:e.top}}}),wM=ae(Fr,yl,(e,t)=>{var r=typeof t.width=="number"?t.width:rp;return{width:r,height:e.height}}),SM=(e,t,r)=>{switch(t){case"xAxis":return bM(e,r).width;case"yAxis":return wM(e,r).height;default:return}},kM=(e,t,r,n)=>{if(r!=null){var o=r.allowDuplicatedCategory,a=r.type,i=r.dataKey,s=sa(e,n),l=t.map(c=>c.value),u=l.filter(c=>c!=null);if(i&&s&&a==="category"&&o&&OT(u))return l}},_M=ae([Bt,cx,En,vn],kM),CM=ae([Bt,ofe,yu,a_,_M,xM,Pg,mM,vn],(e,t,r,n,o,a,i,s,l)=>{if(t!=null){var u=sa(e,l);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:l,categoricalDomain:a,duplicateDomain:o,isCategorical:u,niceTicks:s,range:i,realScaleType:r,scale:n}}}),Gfe=(e,t,r,n,o,a,i,s,l)=>{if(!(t==null||n==null)){var u=sa(e,l),c=t.type,d=t.ticks,p=t.tickCount,f=r==="scaleBand"&&typeof n.bandwidth=="function"?n.bandwidth()/2:2,m=c==="category"&&n.bandwidth?n.bandwidth()/f:0;m=l==="angleAxis"&&a!=null&&a.length>=2?Qr(a[0]-a[1])*2*m:m;var y=d||o;return y?y.map((b,g)=>{var h=i?i.indexOf(b):b,v=n.map(h);return Ot(v)?{index:g,coordinate:v+m,value:b,offset:m}:null}).filter(Ao):u&&s?s.map((b,g)=>{var h=n.map(b);return Ot(h)?{coordinate:h+m,value:b,index:g,offset:m}:null}).filter(Ao):n.ticks?n.ticks(p).map((b,g)=>{var h=n.map(b);return Ot(h)?{coordinate:h+m,value:b,index:g,offset:m}:null}).filter(Ao):n.domain().map((b,g)=>{var h=n.map(b);return Ot(h)?{coordinate:h+m,value:i?i[b]:b,index:g,offset:m}:null}).filter(Ao)}},l_=ae([Bt,Np,yu,a_,mM,Pg,_M,xM,vn],Gfe),Yfe=(e,t,r,n,o,a,i)=>{if(!(t==null||r==null||n==null||n[0]===n[1])){var s=sa(e,i),l=t.tickCount,u=0;return u=i==="angleAxis"&&n?.length>=2?Qr(n[0]-n[1])*2*u:u,s&&a?a.map((c,d)=>{var p=r.map(c);return Ot(p)?{coordinate:p+u,value:c,index:d,offset:u}:null}).filter(Ao):r.ticks?r.ticks(l).map((c,d)=>{var p=r.map(c);return Ot(p)?{coordinate:p+u,value:c,index:d,offset:u}:null}).filter(Ao):r.domain().map((c,d)=>{var p=r.map(c);return Ot(p)?{coordinate:p+u,value:o?o[c]:c,index:d,offset:u}:null}).filter(Ao)}},Ci=ae([Bt,Np,a_,Pg,_M,xM,vn],Yfe),Ai=ae(En,a_,(e,t)=>{if(!(e==null||t==null))return t_(t_({},e),{},{scale:t})}),Xfe=ae([En,yu,fM,nW],ox),Zfe=ae([Xfe],$v),t6e=ae((e,t,r)=>RP(e,r),Zfe,(e,t)=>{if(!(e==null||t==null))return t_(t_({},e),{},{scale:t})}),lW=ae([Bt,Qm,Rm],(e,t,r)=>{switch(e){case"horizontal":return t.some(n=>n.reversed)?"right-to-left":"left-to-right";case"vertical":return r.some(n=>n.reversed)?"bottom-to-top":"top-to-bottom";case"centric":case"radial":return"left-to-right";default:return}}),Jfe=(e,t,r)=>{var n;return(n=e.renderedTicks[t])===null||n===void 0?void 0:n[r]},r6e=ae([Jfe],e=>{if(!(!e||e.length===0))return t=>{var r,n=1/0,o=e[0];for(var a of e){var i=Math.abs(a.coordinate-t);ie.options.defaultTooltipEventType,EM=e=>e.options.validateTooltipEventTypes;function NM(e,t,r){if(e==null)return t;var n=e?"axis":"item";return r==null?t:r.includes(n)?n:t}function Lc(e,t){var r=AM(e),n=EM(e);return NM(t,r,n)}function uW(e){return $e(t=>Lc(t,e))}var u_=(e,t)=>{var r,n=Number(t);if(!(Wo(n)||t==null))return n>=0?e==null||(r=e[n])===null||r===void 0?void 0:r.value:void 0};var cW=e=>e.tooltip.settings;var vu={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},Qfe={itemInteraction:{click:vu,hover:vu},axisInteraction:{click:vu,hover:vu},keyboardInteraction:vu,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:"hover",axisId:0,active:!1,defaultIndex:void 0}},dW=Cr({name:"tooltip",initialState:Qfe,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(Zt(t.payload))},prepare:Ir()},replaceTooltipEntrySettings:{reducer(e,t){var r=t.payload,n=r.prev,o=r.next,a=ea(e).tooltipItemPayloads.indexOf(Zt(n));a>-1&&(e.tooltipItemPayloads[a]=Zt(o))},prepare:Ir()},removeTooltipEntrySettings:{reducer(e,t){var r=ea(e).tooltipItemPayloads.indexOf(Zt(t.payload));r>-1&&e.tooltipItemPayloads.splice(r,1)},prepare:Ir()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),rs=dW.actions,pW=rs.addTooltipEntrySettings,fW=rs.replaceTooltipEntrySettings,mW=rs.removeTooltipEntrySettings,gW=rs.setTooltipSettingsState,c_=rs.setActiveMouseOverItemIndex,hW=rs.mouseLeaveItem,d_=rs.mouseLeaveChart,yW=rs.setActiveClickItemIndex,p_=rs.setMouseOverAxisIndex,vW=rs.setMouseClickAxisIndex,Mg=rs.setSyncInteraction,hx=rs.setKeyboardInteraction;var xW=dW.reducer;function bW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function f_(e){for(var t=1;t{if(t==null)return vu;var o=rme(e,t,r);if(o==null)return vu;if(o.active)return o;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var a=e.settings.active===!0;if(nme(o)){if(a)return f_(f_({},o),{},{active:!0})}else if(n!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:n,graphicalItemId:void 0};return f_(f_({},vu),{},{coordinate:o.coordinate})};function ome(e){if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var r=Number(e);return Number.isFinite(r)?r:void 0}function ame(e,t){var r=ome(e),n=t[0],o=t[1];if(r===void 0)return!1;var a=Math.min(n,o),i=Math.max(n,o);return r>=a&&r<=i}function ime(e,t,r){if(r==null||t==null)return!0;var n=Ht(e,t);return n==null||!wi(r)?!0:ame(n,r)}var zc=(e,t,r,n)=>{var o=e?.index;if(o==null)return null;var a=Number(o);if(!Ot(a))return o;var i=0,s=1/0;t.length>0&&(s=t.length-1);var l=Math.max(i,Math.min(a,s)),u=t[l];return u==null||ime(u,r,n)?String(l):null};var g_=(e,t,r,n,o,a,i)=>{if(a!=null){var s=i[0],l=s?.getPosition(a);if(l!=null)return l;var u=o?.[Number(a)];if(u)return r==="horizontal"?{x:u.coordinate,y:(n.top+t)/2}:{x:(n.left+e)/2,y:u.coordinate}}};var h_=(e,t,r,n)=>{if(t==="axis")return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var o;if(r==="hover"?o=e.itemInteraction.hover.graphicalItemId:o=e.itemInteraction.click.graphicalItemId,e.syncInteraction.active&&o==null)return e.tooltipItemPayloads;if(o==null&&(n!=null||e.keyboardInteraction.active)){var a=e.tooltipItemPayloads[0];return a!=null?[a]:[]}return e.tooltipItemPayloads.filter(i=>{var s;return((s=i.settings)===null||s===void 0?void 0:s.graphicalItemId)===o})};var y_=e=>e.options.tooltipPayloadSearcher;var xu=e=>e.tooltip;function wW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function SW(e){for(var t=1;te(t)}function kW(e){if(typeof e=="string")return e}function fme(e){if(!(e==null||typeof e!="object")){var t="name"in e?cme(e.name):void 0,r="unit"in e?dme(e.unit):void 0,n="dataKey"in e?pme(e.dataKey):void 0,o="payload"in e?e.payload:void 0,a="color"in e?kW(e.color):void 0,i="fill"in e?kW(e.fill):void 0;return{name:t,unit:r,dataKey:n,payload:o,color:a,fill:i}}}function mme(e,t){return e??t}var v_=(e,t,r,n,o,a,i)=>{if(!(t==null||a==null)){var s=r.chartData,l=r.computedData,u=r.dataStartIndex,c=r.dataEndIndex,d=[];return e.reduce((p,f)=>{var m,y=f.dataDefinedOnItem,b=f.settings,g=mme(y,s),h=Array.isArray(g)?CS(g,u,c):g,v=(m=b?.dataKey)!==null&&m!==void 0?m:n,x=b?.nameKey,S;if(n&&Array.isArray(h)&&!Array.isArray(h[0])&&i==="axis"?(S=dw(h,n,o),S==null&&(S=a(h,t,l,x))):S=a(h,t,l,x),Array.isArray(S))S.forEach(w=>{var _,A,C=fme(w),N=C?.name,L=C?.dataKey,Q=C?.payload,B=SW(SW({},b),{},{name:N,unit:C?.unit,color:(_=C?.color)!==null&&_!==void 0?_:b?.color,fill:(A=C?.fill)!==null&&A!==void 0?A:b?.fill});p.push(HO({tooltipEntrySettings:B,dataKey:L,payload:Q,value:Ht(Q,L),name:N==null?void 0:String(N)}))});else{var k;p.push(HO({tooltipEntrySettings:b,dataKey:v,payload:S,value:Ht(S,v),name:(k=Ht(S,x))!==null&&k!==void 0?k:b?.name}))}return p},d)}};var TM=ae([lo,eM,cg],Rk),gme=ae([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),hme=ae([ao,Oc],ix),Bc=ae([gme,lo,hme],sx,{memoizeOptions:{resultEqualityCheck:dg}}),yme=ae([Bc],e=>e.filter(fp)),_W=ae([Bc],lx,{memoizeOptions:{resultEqualityCheck:dg}}),vme=ae([Bc],e=>e.some(t=>!t.data)),bu=ae([_W,Ya],ux),xme=ae([yme,Ya,lo],gk),OM=ae([bu,lo,Bc,Ya,vme,_W],oM),CW=ae([lo],r_),bme=ae([lo],e=>e.allowDataOverflow),AW=ae([CW,bme],rk),wme=ae([Bc],e=>e.filter(fp)),Sme=ae([xme,wme,Ec,sk],aM),kme=ae([Sme,Ya,ao,AW],iM),_me=ae([Bc],tM),Cme=ae([bu,lo,_me,Og,ao,sF],dx,{memoizeOptions:{resultEqualityCheck:mp}}),Ame=ae([sM,ao,Oc],Tp),Eme=ae([Ame,ao],cM),Nme=ae([lM,ao,Oc],Tp),Tme=ae([Nme,ao],dM),Ome=ae([uM,ao,Oc],Tp),Pme=ae([Ome,ao],pM),Mme=ae([Eme,Pme,Tme],ax),Ime=ae([lo,CW,AW,kme,Cme,Mme,Bt,ao],px),Fc=ae([lo,Bt,bu,OM,Ec,ao,Ime],fx),Dme=ae([Fc,lo,TM],mx),jme=ae([lo,Fc,Dme,ao],gx),EW=e=>{var t=ao(e),r=Oc(e),n=!1;return Pg(e,t,r,n)},PM=ae([lo,EW],cp),$me=ae([lo,TM,jme,PM],ox),MM=ae([$me],$v),Lme=ae([Bt,OM,lo,ao],kM),zme=ae([Bt,OM,lo,ao],vM),Bme=(e,t,r,n,o,a,i,s)=>{if(t){var l=t.type,u=sa(e,s);if(n){var c=r==="scaleBand"&&n.bandwidth?n.bandwidth()/2:2,d=l==="category"&&n.bandwidth?n.bandwidth()/c:0;return d=s==="angleAxis"&&o!=null&&o?.length>=2?Qr(o[0]-o[1])*2*d:d,u&&i?i.map((p,f)=>{var m=n.map(p);return Ot(m)?{coordinate:m+d,value:p,index:f,offset:d}:null}).filter(Ao):n.domain().map((p,f)=>{var m=n.map(p);return Ot(m)?{coordinate:m+d,value:a?a[p]:p,index:f,offset:d}:null}).filter(Ao)}}},Za=ae([Bt,lo,TM,MM,EW,Lme,zme,ao],Bme),IM=ae([AM,EM,cW],(e,t,r)=>NM(r.shared,e,t)),NW=e=>e.tooltip.settings.trigger,DM=e=>e.tooltip.settings.defaultIndex,yx=ae([xu,IM,NW,DM],m_),ns=ae([yx,bu,hu,Fc],zc),x_=ae([Za,ns],u_),Ig=ae([yx],e=>{if(e)return e.dataKey}),b_=ae([yx],e=>{if(e)return e.graphicalItemId}),TW=ae([xu,IM,NW,DM],h_),Fme=ae([qo,Ko,Bt,Fr,Za,DM,TW],g_),jM=ae([yx,Fme],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),$M=ae([yx],e=>{var t;return(t=e?.active)!==null&&t!==void 0?t:!1}),Ume=ae([TW,ns,Ya,hu,x_,y_,IM],v_),OW=ae([Ume],e=>{if(e!=null){var t=e.map(r=>r.payload).filter(r=>r!=null);return Array.from(new Set(t))}});function PW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function MW(e){for(var t=1;t$e(lo),IW=()=>{var e=Kme(),t=$e(Za),r=$e(MM);return!e||!r?Ji(void 0,t):Ji(MW(MW({},e),{},{scale:r}),t)};function DW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Dg(e){for(var t=1;t{var o=t.find(a=>a&&a.index===r);if(o){if(e==="horizontal")return{x:o.coordinate,y:n.relativeY};if(e==="vertical")return{x:n.relativeX,y:o.coordinate}}return{x:0,y:0}},$W=(e,t,r,n)=>{var o=t.find(u=>u&&u.index===r);if(o){if(e==="centric"){var a=o.coordinate,i=n.radius;return Dg(Dg(Dg({},n),an(n.cx,n.cy,i,a)),{},{angle:a,radius:i})}var s=o.coordinate,l=n.angle;return Dg(Dg(Dg({},n),an(n.cx,n.cy,s,l)),{},{angle:l,radius:s})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function LW(e,t){var r=e.relativeX,n=e.relativeY;return r>=t.left&&r<=t.left+t.width&&n>=t.top&&n<=t.top+t.height}var LM=(e,t,r,n,o)=>{var a,i=(a=t?.length)!==null&&a!==void 0?a:0;if(i<=1||e==null)return 0;if(n==="angleAxis"&&o!=null&&Math.abs(Math.abs(o[1]-o[0])-360)<=1e-6)for(var s=o[1]-o[0],l=(K,T,O)=>[e,e+s,e-s].some(I=>(O?I>=K:I>K)&&I<=T),u=0;u0?(c=r[u-1])===null||c===void 0?void 0:c.coordinate:(d=r[i-1])===null||d===void 0?void 0:d.coordinate,b=(p=r[u])===null||p===void 0?void 0:p.coordinate,g=u>=i-1?(f=r[0])===null||f===void 0?void 0:f.coordinate:(m=r[u+1])===null||m===void 0?void 0:m.coordinate,h=void 0;if(!(y==null||b==null||g==null))if(Qr(b-y)!==Qr(g-b)){var v=[];if(Qr(g-b)===Qr(o[1]-o[0])){h=g;var x=b+o[1]-o[0];v[0]=Math.min(x,(x+y)/2),v[1]=Math.max(x,(x+y)/2)}else{h=y;var S=g+o[1]-o[0];v[0]=Math.min(b,(S+b)/2),v[1]=Math.max(b,(S+b)/2)}var k=[Math.min(b,(h+b)/2),Math.max(b,(h+b)/2)];if(l(k[0],k[1],!1)||l(v[0],v[1],!0)){var w;return(w=r[u])===null||w===void 0?void 0:w.index}}else{var _=Math.min(y,g),A=Math.max(y,g);if(l((_+b)/2,(A+b)/2,!1)){var C;return(C=r[u])===null||C===void 0?void 0:C.index}}}else if(t)for(var N=0;N(L.coordinate+B.coordinate)/2||N>0&&N(L.coordinate+B.coordinate)/2&&e<=(L.coordinate+Q.coordinate)/2)return L.index}}return-1};var w_=()=>$e(cg),zM=(e,t)=>t,zW=(e,t,r)=>r,BM=(e,t,r,n)=>n,BW=ae(Za,e=>lu(e,t=>t.coordinate)),FM=ae([xu,zM,zW,BM],m_),UM=ae([FM,bu,hu,Fc],zc),FW=(e,t,r)=>{if(t!=null){var n=xu(e);return t==="axis"?r==="hover"?n.axisInteraction.hover.dataKey:n.axisInteraction.click.dataKey:r==="hover"?n.itemInteraction.hover.dataKey:n.itemInteraction.click.dataKey}},UW=ae([xu,zM,zW,BM],h_),vx=ae([qo,Ko,Bt,Fr,Za,BM,UW],g_),WW=ae([FM,vx],(e,t)=>{var r;return(r=e.coordinate)!==null&&r!==void 0?r:t}),WM=ae([Za,UM],u_),HW=ae([UW,UM,Ya,hu,WM,y_,zM],v_),qW=ae([FM,UM],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),Xme=(e,t,r,n,o,a,i)=>{if(!(!e||!r||!n||!o)&&LW(e,i)){var s=y7(e,t),l=LM(s,a,o,r,n),u=jW(t,o,l,e);return{activeIndex:String(l),activeCoordinate:u}}},Zme=(e,t,r,n,o,a,i)=>{if(!(!e||!n||!o||!a||!r)){var s=G9(e,r);if(s){var l=v7(s,t),u=LM(l,i,a,n,o),c=$W(t,a,u,s);return{activeIndex:String(u),activeCoordinate:c}}}},KW=(e,t,r,n,o,a,i,s)=>{if(!(!e||!t||!n||!o||!a))return t==="horizontal"||t==="vertical"?Xme(e,t,n,o,a,i,s):Zme(e,t,r,n,o,a,i)};var jg=Z(J()),tH=Z(oy());var VW=ae(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,r)=>r,(e,t,r)=>{if(t!=null){var n=e[t];if(n!=null)return r?n.panoramaElement:n.element}}),GW=ae(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(n=>parseInt(n,10)).concat(Object.values(ir)),r=Array.from(new Set(t));return r.sort((n,o)=>n-o)},{memoizeOptions:{resultEqualityCheck:_F}});function YW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function XW(e){for(var t=1;tXW(XW({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),ege)},rge=new Set(Object.values(ir));function nge(e){return rge.has(e)}var ZW=Cr({name:"zIndex",initialState:tge,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]?e.zIndexMap[r].consumers+=1:e.zIndexMap[r]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:Ir()},unregisterZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(e.zIndexMap[r].consumers-=1,e.zIndexMap[r].consumers<=0&&!nge(r)&&delete e.zIndexMap[r])},prepare:Ir()},registerZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload,n=r.zIndex,o=r.element,a=r.isPanorama;e.zIndexMap[n]?a?e.zIndexMap[n].panoramaElement=Zt(o):e.zIndexMap[n].element=Zt(o):e.zIndexMap[n]={consumers:0,element:a?void 0:Zt(o),panoramaElement:a?Zt(o):void 0}},prepare:Ir()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(t.payload.isPanorama?e.zIndexMap[r].panoramaElement=void 0:e.zIndexMap[r].element=void 0)},prepare:Ir()}}}),S_=ZW.actions,JW=S_.registerZIndexPortal,k_=S_.unregisterZIndexPortal,QW=S_.registerZIndexPortalElement,RW=S_.unregisterZIndexPortalElement;var eH=ZW.reducer;function sn(e){var t=e.zIndex,r=e.children,n=I7(),o=n&&t!==void 0&&t!==0,a=Ar(),i=(0,jg.useRef)(void 0),s=(0,jg.useRef)(new Set),l=jt(),u=$e(d=>VW(d,t,a));if((0,jg.useLayoutEffect)(()=>{if(!o){var d=s.current;d.forEach(f=>{l(k_({zIndex:f}))}),d.clear(),i.current=void 0;return}if(s.current.has(t)||(l(JW({zIndex:t})),s.current.add(t)),u){i.current=u;var p=s.current;p.forEach(f=>{f!==t&&(l(k_({zIndex:f})),p.delete(f))})}},[l,t,o,u]),(0,jg.useLayoutEffect)(()=>{var d=s.current;return()=>{d.forEach(p=>{l(k_({zIndex:p}))}),d.clear()}},[l]),!o)return r;var c=u??i.current;return c?(0,tH.createPortal)(r,c):null}function HM(){return HM=Object.assign?Object.assign.bind():function(e){for(var t=1;t(0,A_.useContext)(qM);var bx=Z(J());var sH=Z(iH(),1);var lH=sH.default;var Lg=new lH;var N_="recharts.syncEvent.tooltip",VM="recharts.syncEvent.brush";var Uc=(e,t)=>{if(t&&Array.isArray(e)){var r=Number.parseInt(t,10);if(!Wo(r))return e[r]}},dge={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},uH=Cr({name:"options",initialState:dge,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),cH=uH.reducer,dH=uH.actions.createEventEmitter;function pH(e){return e.tooltip.syncInteraction}var pge={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},fH=Cr({name:"chartData",initialState:pge,reducers:{setChartData(e,t){if(e.chartData=Zt(t.payload),t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var r=t.payload,n=r.startIndex,o=r.endIndex;n!=null&&(e.dataStartIndex=n),o!=null&&(e.dataEndIndex=o)}}}),GM=fH.actions,YM=GM.setChartData,mH=GM.setDataStartEndIndexes,fge=GM.setComputedData;var gH=fH.reducer;var mge=["x","y"];function hH(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function zg(e){for(var t=1;tl.rootProps.className);(0,bx.useEffect)(()=>{if(e==null)return ka;var l=(u,c,d)=>{if(t!==d&&e===u){if(c.payload.active===!1){r(Mg({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(n==="index"){var p;if(i&&c!==null&&c!==void 0&&(p=c.payload)!==null&&p!==void 0&&p.coordinate&&c.payload.sourceViewBox){var f=c.payload.coordinate,m=f.x,y=f.y,b=vge(f,mge),g=c.payload.sourceViewBox,h=g.x,v=g.y,x=g.width,S=g.height,k=zg(zg({},b),{},{x:i.x+(x?(m-h)/x:0)*i.width,y:i.y+(S?(y-v)/S:0)*i.height});r(zg(zg({},c),{},{payload:zg(zg({},c.payload),{},{coordinate:k})}))}else r(c);return}if(o!=null){var w;if(typeof n=="function"){var _={activeTooltipIndex:c.payload.index==null?void 0:Number(c.payload.index),isTooltipActive:c.payload.active,activeIndex:c.payload.index==null?void 0:Number(c.payload.index),activeLabel:c.payload.label,activeDataKey:c.payload.dataKey,activeCoordinate:c.payload.coordinate},A=n(o,_);w=o[A]}else n==="value"&&(w=o.find(O=>String(O.value)===c.payload.label));var C=c.payload.coordinate;if(C==null||i==null){r(Mg({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(w==null){r(Mg({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:void 0}));return}var N=C.x,L=C.y,Q=Math.min(N,i.x+i.width),B=Math.min(L,i.y+i.height),K={x:a==="horizontal"?w.coordinate:Q,y:a==="horizontal"?B:w.coordinate},T=Mg({active:c.payload.active,coordinate:K,dataKey:c.payload.dataKey,index:String(w.index),label:c.payload.label,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:c.payload.graphicalItemId});r(T)}}};return Lg.on(N_,l),()=>{Lg.off(N_,l)}},[s,r,t,e,n,o,a,i])}function wge(){var e=$e(lk),t=$e(uk),r=jt();(0,bx.useEffect)(()=>{if(e==null)return ka;var n=(o,a,i)=>{t!==i&&e===o&&r(mH(a))};return Lg.on(VM,n),()=>{Lg.off(VM,n)}},[r,t,e])}function yH(){var e=jt();(0,bx.useEffect)(()=>{e(dH())},[e]),bge(),wge()}function vH(e,t,r,n,o,a){var i=$e(m=>FW(m,e,t)),s=$e(b_),l=$e(uk),u=$e(lk),c=$e(pP),d=$e(pH),p=d?.sourceViewBox!=null,f=ap();(0,bx.useEffect)(()=>{if(!p&&u!=null&&l!=null){var m=Mg({active:a,coordinate:r,dataKey:i,index:o,label:typeof n=="number"?String(n):n,sourceViewBox:f,graphicalItemId:s});Lg.emit(N_,u,m,l)}},[p,r,i,s,o,n,l,u,c,a,f])}function xH(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function bH(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{w(gW({shared:h,trigger:v,axisId:k,active:o,defaultIndex:_}))},[w,h,v,k,o,_]);var A=ap(),C=BS(),N=uW(h),L=(t=$e(R=>qW(R,N,v,_)))!==null&&t!==void 0?t:{},Q=L.activeIndex,B=L.isActive,K=$e(R=>HW(R,N,v,_)),T=$e(R=>WM(R,N,v,_)),O=$e(R=>WW(R,N,v,_)),I=K,P=oH(),j=(r=o??B)!==null&&r!==void 0?r:!1,M=Qw([I,j]),W=Cge(M,2),Y=W[0],z=W[1],V=N==="axis"?T:void 0;vH(N,v,O,V,Q,j);var q=S??P;if(q==null||A==null||N==null)return null;var oe=I??SH;j||(oe=SH),u&&oe.length&&(oe=Vw(oe.filter(R=>R.value!=null&&(R.hide!==!0||n.includeHidden)),p,Oge));var Me=oe.length>0,fe=bH(bH({},n),{},{payload:oe,label:V,active:j,activeIndex:Q,coordinate:O,accessibilityLayer:C}),le=os.createElement(o9,{allowEscapeViewBox:a,animationDuration:i,animationEasing:s,isAnimationActive:c,active:j,coordinate:O,hasPayload:Me,offset:d,position:f,reverseDirection:m,useTranslate3d:y,viewBox:A,wrapperStyle:b,lastBoundingBox:Y,innerRef:z,hasPortalFromProps:!!S},Pge(l,fe));return os.createElement(os.Fragment,null,(0,_H.createPortal)(le,q),j&&os.createElement(nH,{cursor:g,tooltipEventType:N,coordinate:O,payload:oe,index:Q}))}var wu=e=>null;wu.displayName="Cell";var ZM=Z(J()),M_=Z(J());function Ige(e,t,r){return(t=Dge(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Dge(e){var t=jge(e,"string");return typeof t=="symbol"?t:t+""}function jge(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var T_=class{constructor(t){Ige(this,"cache",new Map),this.maxSize=t}get(t){var r=this.cache.get(t);return r!==void 0&&(this.cache.delete(t),this.cache.set(t,r)),r}set(t,r){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(t,r)}clear(){this.cache.clear()}size(){return this.cache.size}};function CH(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function $ge(e){for(var t=1;t{try{var r=document.getElementById(EH);r||(r=document.createElement("span"),r.setAttribute("id",EH),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,Uge,t),r.textContent="".concat(e);var n=r.getBoundingClientRect();return{width:n.width,height:n.height}}catch{return{width:0,height:0}}},Op=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Qi.isSsr)return{width:0,height:0};if(!TH.enableCache)return NH(t,r);var n=Wge(t,r),o=AH.get(n);if(o)return o;var a=NH(t,r);return AH.set(n,a),a};var DH;function O_(e,t){return Vge(e)||Kge(e,t)||qge(e,t)||Hge()}function Hge(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function qge(e,t){if(e){if(typeof e=="string")return OH(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?OH(e,t):void 0}}function OH(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=e.breakAll,n=e.style;try{var o=[];ar(t)||(r?o=t.toString().split(""):o=t.toString().split(UH));var a=o.map(s=>({word:s,width:Op(s,n).width})),i=r?0:Op("\xA0",n).width;return{wordsWithComputedWidth:a,spaceWidth:i}}catch{return null}};function I_(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function HH(e){return ar(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var qH=(e,t,r,n)=>e.reduce((o,a)=>{var i=a.word,s=a.width,l=o[o.length-1];if(l&&s!=null&&(t==null||n||l.width+s+re.reduce((t,r)=>t.width>r.width?t:r),phe="\u2026",BH=(e,t,r,n,o,a,i,s)=>{var l=e.slice(0,t),u=WH({breakAll:r,style:n,children:l+phe});if(!u)return[!1,[]];var c=qH(u.wordsWithComputedWidth,a,i,s),d=c.length>o||KH(c).width>Number(a);return[d,c]},fhe=(e,t,r,n,o)=>{var a=e.maxLines,i=e.children,s=e.style,l=e.breakAll,u=De(a),c=String(i),d=qH(t,n,r,o);if(!u||o)return d;var p=d.length>a||KH(d).width>Number(n);if(!p)return d;for(var f=0,m=c.length-1,y=0,b;f<=m&&y<=c.length-1;){var g=Math.floor((f+m)/2),h=g-1,v=BH(c,h,l,s,a,n,r,o),x=LH(v,2),S=x[0],k=x[1],w=BH(c,g,l,s,a,n,r,o),_=LH(w,1),A=_[0];if(!S&&!A&&(f=g+1),S&&A&&(m=g-1),!S&&A){b=k;break}y++}return b||d},FH=e=>{var t=ar(e)?[]:e.toString().split(UH);return[{words:t,width:void 0}]},mhe=e=>{var t=e.width,r=e.scaleToFit,n=e.children,o=e.style,a=e.breakAll,i=e.maxLines;if((t||r)&&!Qi.isSsr){var s,l,u=WH({breakAll:a,children:n,style:o});if(u){var c=u.wordsWithComputedWidth,d=u.spaceWidth;s=c,l=d}else return FH(n);return fhe({breakAll:a,children:n,maxLines:i,style:o},s,l,t,!!r)}return FH(n)},VH="#808080",ghe={angle:0,breakAll:!1,capHeight:"0.71em",fill:VH,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},Pp=(0,M_.forwardRef)((e,t)=>{var r=nr(e,ghe),n=r.x,o=r.y,a=r.lineHeight,i=r.capHeight,s=r.fill,l=r.scaleToFit,u=r.textAnchor,c=r.verticalAnchor,d=$H(r,ahe),p=(0,M_.useMemo)(()=>mhe({breakAll:d.breakAll,children:d.children,maxLines:d.maxLines,scaleToFit:l,style:d.style,width:d.width}),[d.breakAll,d.children,d.maxLines,l,d.style,d.width]),f=d.dx,m=d.dy,y=d.angle,b=d.className,g=d.breakAll,h=$H(d,ihe);if(!Sa(n)||!Sa(o)||p.length===0)return null;var v=Number(n)+(De(f)?f:0),x=Number(o)+(De(m)?m:0);if(!Ot(v)||!Ot(x))return null;var S;switch(c){case"start":S=P_("calc(".concat(i,")"));break;case"middle":S=P_("calc(".concat((p.length-1)/2," * -").concat(a," + (").concat(i," / 2))"));break;default:S=P_("calc(".concat(p.length-1," * -").concat(a,")"));break}var k=[],w=p[0];if(l&&w!=null){var _=w.width,A=d.width;k.push("scale(".concat(De(A)&&De(_)?A/_:1,")"))}return y&&k.push("rotate(".concat(y,", ").concat(v,", ").concat(x,")")),k.length&&(h.transform=k.join(" ")),ZM.createElement("text",XM({},yn(h),{ref:t,x:v,y:x,className:bt("recharts-text",b),textAnchor:u,fill:s.includes("url")?VH:s}),p.map((C,N)=>{var L=C.words.join(g?"":" ");return ZM.createElement("tspan",{x:v,dy:N===0?S:a,key:"".concat(L,"-").concat(N)},L)}))});Pp.displayName="Text";var Ja=Z(J()),No=Z(J());var hhe=["labelRef"],yhe=["content"];function GH(e,t){if(e==null)return{};var r,n,o=vhe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{var t=e.x,r=e.y,n=e.upperWidth,o=e.lowerWidth,a=e.width,i=e.height,s=e.children,l=(0,No.useMemo)(()=>({x:t,y:r,upperWidth:n,lowerWidth:o,width:a,height:i}),[t,r,n,o,a,i]);return Ja.createElement(XH.Provider,{value:l},s)},JH=()=>{var e=(0,No.useContext)(XH),t=ap();return e||(t?uv(t):void 0)},QH=(0,No.createContext)(null),RH=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,o=e.outerRadius,a=e.startAngle,i=e.endAngle,s=e.clockWise,l=e.children,u=(0,No.useMemo)(()=>({cx:t,cy:r,innerRadius:n,outerRadius:o,startAngle:a,endAngle:i,clockWise:s}),[t,r,n,o,a,i,s]);return Ja.createElement(QH.Provider,{value:u},l)},She=()=>{var e=(0,No.useContext)(QH),t=$e(mk);return e||t},khe=e=>{var t=e.value,r=e.formatter,n=ar(e.children)?t:e.children;return typeof r=="function"?r(n):n},Ip=e=>e!=null&&typeof e=="function",_he=(e,t)=>{var r=Qr(t-e),n=Math.min(Math.abs(t-e),360);return r*n},Che=(e,t,r,n,o)=>{var a=e.offset,i=e.className,s=o.cx,l=o.cy,u=o.innerRadius,c=o.outerRadius,d=o.startAngle,p=o.endAngle,f=o.clockWise,m=(u+c)/2,y=_he(d,p),b=y>=0?1:-1,g,h;switch(t){case"insideStart":g=d+b*a,h=f;break;case"insideEnd":g=p-b*a,h=!f;break;case"end":g=p+b*a,h=f;break;default:throw new Error("Unsupported position ".concat(t))}h=y<=0?h:!h;var v=an(s,l,m,g),x=an(s,l,m,g+(h?1:-1)*359),S="M".concat(v.x,",").concat(v.y,` A`).concat(m,",").concat(m,",0,1,").concat(h?0:1,`, - `).concat(x.x,",").concat(x.y),_=ar(e.id)?tu("recharts-radial-line-"):e.id;return Ja.createElement("text",bu({},n,{dominantBaseline:"central",className:bt("recharts-radial-bar-label",i)}),Ja.createElement("defs",null,Ja.createElement("path",{id:_,d:S})),Ja.createElement("textPath",{xlinkHref:"#".concat(_)},r))},She=(e,t,r)=>{var n=e.cx,o=e.cy,a=e.innerRadius,i=e.outerRadius,s=e.startAngle,l=e.endAngle,u=(s+l)/2;if(r==="outside"){var c=an(n,o,i+t,u),d=c.x,p=c.y;return{x:d,y:p,textAnchor:d>=n?"start":"end",verticalAnchor:"middle"}}if(r==="center")return{x:n,y:o,textAnchor:"middle",verticalAnchor:"middle"};if(r==="centerTop")return{x:n,y:o,textAnchor:"middle",verticalAnchor:"start"};if(r==="centerBottom")return{x:n,y:o,textAnchor:"middle",verticalAnchor:"end"};var f=(a+i)/2,m=an(n,o,f,u),y=m.x,b=m.y;return{x:y,y:b,textAnchor:"middle",verticalAnchor:"middle"}},zg=e=>e!=null&&"cx"in e&&De(e.cx),khe={angle:0,offset:5,zIndex:ir.label,position:"middle",textBreakAll:!1};function _he(e){if(!zg(e))return e;var t=e.cx,r=e.cy,n=e.outerRadius,o=n*2;return{x:t-n,y:r-n,width:o,upperWidth:o,lowerWidth:o,height:o}}function xu(e){var t,r,n=nr(e,khe),o=n.viewBox,a=n.parentViewBox,i=n.position,s=n.value,l=n.children,u=n.content,c=n.className,d=c===void 0?"":c,p=n.textBreakAll,f=n.labelRef,m=vhe(),y=XH(),b=i==="center"?y:m??y,g,h,v;o==null?g=b:zg(o)?g=o:g=sv(o);var x=_he(g);if(!g||ar(s)&&ar(l)&&!(0,No.isValidElement)(u)&&typeof u!="function")return null;var S=zg(g)&&(i==="insideStart"||i==="insideEnd"||i==="end");if(zg(g))S||(v=She(g,n.offset,n.position));else if(x){var _=cw({viewBox:x,position:i,offset:n.offset,parentViewBox:zg(a)?void 0:a,clamp:!0});v=Pp(Pp({x:_.x,y:_.y,textAnchor:_.horizontalAnchor,verticalAnchor:_.verticalAnchor},_.width!==void 0?{width:_.width}:{}),_.height!==void 0?{height:_.height}:{})}var w=Pp(Pp(Pp(Pp({},((t=v)===null||t===void 0?void 0:t.x)!==void 0?{x:v.x}:{}),((r=v)===null||r===void 0?void 0:r.y)!==void 0?{y:v.y}:{}),n),{},{viewBox:g});if((0,No.isValidElement)(u)){var k=w.labelRef,A=KH(w,phe);return(0,No.cloneElement)(u,A)}if(typeof u=="function"){var C=w.content,T=KH(w,fhe);if(h=(0,No.createElement)(u,T),(0,No.isValidElement)(h))return h}else h=xhe(n);var $=yn(n);return S&&zg(g)?whe(n,i,h,$,g):v==null?null:Ja.createElement(sn,{zIndex:n.zIndex},Ja.createElement(Op,bu({ref:f,className:bt("recharts-label",d)},$,v,{textAnchor:P_($.textAnchor)?$.textAnchor:v.textAnchor,breakAll:p}),h))}xu.displayName="Label";var Che=(e,t,r)=>{if(!e)return null;var n={viewBox:t,labelRef:r};return e===!0?Ja.createElement(xu,bu({key:"label-implicit"},n)):wa(e)?Ja.createElement(xu,bu({key:"label-implicit",value:e},n)):(0,No.isValidElement)(e)?e.type===xu?(0,No.cloneElement)(e,Pp({key:"label-implicit"},n)):Ja.createElement(xu,bu({key:"label-implicit",content:e},n)):Mp(e)?Ja.createElement(xu,bu({key:"label-implicit",content:e},n)):e&&typeof e=="object"?Ja.createElement(xu,bu({},e,{key:"label-implicit"},n)):null};function QH(e){var t=e.label,r=e.labelRef,n=XH();return Che(t,n,r)||null}var wu=Z(J()),Bg=Z(J());var Ahe=["valueAccessor"],Ehe=["dataKey","clockWise","id","textBreakAll","zIndex"];function I_(){return I_=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(UH(t))return t},eq=(0,Bg.createContext)(void 0),Fg=eq.Provider,tq=(0,Bg.createContext)(void 0),rq=tq.Provider;function Ohe(){return(0,Bg.useContext)(eq)}function Phe(){return(0,Bg.useContext)(tq)}function M_(e){var t=e.valueAccessor,r=t===void 0?The:t,n=RH(e,Ahe),o=n.dataKey,a=n.clockWise,i=n.id,s=n.textBreakAll,l=n.zIndex,u=RH(n,Ehe),c=Ohe(),d=Phe(),p=c||d;return!p||!p.length?null:wu.createElement(sn,{zIndex:l??ir.label},wu.createElement(br,{className:"recharts-label-list"},p.map((f,m)=>{var y,b=ar(o)?r(f,m):Ht(f.payload,o),g=ar(i)?{}:{id:"".concat(i,"-").concat(m)};return wu.createElement(xu,I_({key:"label-".concat(m)},yn(f),u,g,{fill:(y=n.fill)!==null&&y!==void 0?y:f.fill,parentViewBox:f.parentViewBox,value:b,textBreakAll:s,viewBox:f.viewBox,index:m,zIndex:0}))})))}M_.displayName="LabelList";function Hc(e){var t=e.label;return t?t===!0?wu.createElement(M_,{key:"labelList-implicit"}):wu.isValidElement(t)||Mp(t)?wu.createElement(M_,{key:"labelList-implicit",content:t}):typeof t=="object"?wu.createElement(M_,I_({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}var nq=Z(J());function ZM(){return ZM=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=e.cx,r=e.cy,n=e.r,o=e.className,a=bt("recharts-dot",o);return De(t)&&De(r)&&De(n)?nq.createElement("circle",ZM({},hn(e),Bm(e),{className:a,cx:t,cy:r,r:n})):null};var JM=e=>e.graphicalItems.polarItems,Mhe=ae([vn,dp],ox),j_=ae([JM,En,Mhe],ax),Ihe=ae([j_],ix),$_=ae([Ihe,sp],sx),Dhe=ae([$_,En,j_],rM),U7e=ae([$_,En,j_],(e,t,r)=>r.length>0?e.flatMap(n=>r.flatMap(o=>{var a,i=Ht(n,(a=t.dataKey)!==null&&a!==void 0?a:o.dataKey);return{value:i,errorDomain:[]}})).filter(Boolean):t?.dataKey!=null?e.map(n=>({value:Ht(n,t.dataKey),errorDomain:[]})):e.map(n=>({value:n,errorDomain:[]}))),oq=()=>{},jhe=ae([$_,En,j_,Ng,vn,oF],ux),$he=ae([En,t_,r_,oq,jhe,oq,Bt,vn],cx),aq=ae([En,Bt,$_,Dhe,Ac,vn,$he],dx),Lhe=ae([aq,Ep,mu],px),zhe=ae([En,aq,Lhe,vn],fx),W7e=ae([mu,zhe],mk);var Bhe={radiusAxis:{},angleAxis:{}},iq=Cr({name:"polarAxis",initialState:Bhe,reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=Zt(t.payload)},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=Zt(t.payload)},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),L_=iq.actions,V7e=L_.addRadiusAxis,G7e=L_.removeRadiusAxis,Y7e=L_.addAngleAxis,X7e=L_.removeAngleAxis;var sq=iq.reducer;function z_(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}var Gt=Z(J()),Gg=Z(J());function lq(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function uq(e){for(var t=1;tt,QM=ae([JM,Hhe],(e,t)=>e.filter(r=>r.type==="pie").find(r=>r.id===t)),qhe=[],RM=(e,t,r)=>r?.length===0?qhe:r,cq=ae([sp,QM,RM],(e,t,r)=>{var n=e.chartData;if(t!=null){var o;if(t?.data!=null&&t.data.length>0?o=t.data:o=n,(!o||!o.length)&&r!=null&&(o=r.map(a=>uq(uq({},t.presentationProps),a.props))),o!=null)return o}}),dq=ae([cq,QM,RM],(e,t,r)=>{if(!(e==null||t==null))return e.map((n,o)=>{var a,i=Ht(n,t.nameKey,t.name),s;return r!=null&&(a=r[o])!==null&&a!==void 0&&(a=a.props)!==null&&a!==void 0&&a.fill?s=r[o].props.fill:typeof n=="object"&&n!=null&&"fill"in n?s=n.fill:s=t.fill,{value:xi(i,t.dataKey),dataKey:t.dataKey,color:s,payload:n,type:t.legendType}})}),pq=ae([cq,QM,RM,Fr],(e,t,r,n)=>{if(!(t==null||e==null))return fq({offset:n,pieSettings:t,displayedData:e,cells:r})});var xq=Z(J()),bq=Z(hq());var yq=e=>typeof e=="string"?e:e?e.displayName||e.name||"Component":"",vq=null,r5=null,wq=e=>{if(e===vq&&Array.isArray(r5))return r5;var t=[];return xq.Children.forEach(e,r=>{ar(r)||((0,bq.isFragment)(r)?t=t.concat(wq(r.props.children)):t.push(r))}),r5=t,vq=e,t};function xx(e,t){var r=[],n=[];return Array.isArray(t)?n=t.map(o=>yq(o)):n=[yq(t)],wq(e).forEach(o=>{var a=Uo(o,"type.displayName")||Uo(o,"type.name");a&&n.indexOf(a)!==-1&&r.push(o)}),r}var Ug=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0;var Wg=Z(J()),bx=Z(J());function Sq(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function kq(e){for(var t=1;t{var n=jt();return(o,a)=>i=>{e?.(o,a,i),n(l_({activeIndex:String(a),activeDataKey:t,activeCoordinate:o.tooltipPosition,activeGraphicalItemId:r}))}},Sx=e=>{var t=jt();return(r,n)=>o=>{e?.(r,n,o),t(mW())}},kx=(e,t,r)=>{var n=jt();return(o,a)=>i=>{e?.(o,a,i),n(gW({activeIndex:String(a),activeDataKey:t,activeCoordinate:o.tooltipPosition,activeGraphicalItemId:r}))}};var _x=Z(J());function Kc(e){var t=e.tooltipEntrySettings,r=jt(),n=Ar(),o=(0,_x.useRef)(null);return(0,_x.useLayoutEffect)(()=>{n||(o.current===null?r(cW(t)):o.current!==t&&r(dW({prev:o.current,next:t})),o.current=t)},[t,r,n]),(0,_x.useLayoutEffect)(()=>()=>{o.current&&(r(pW(o.current)),o.current=null)},[r]),null}var Vc=Z(J());function Hg(e){var t=e.legendPayload,r=jt(),n=Ar(),o=(0,Vc.useRef)(null);return(0,Vc.useLayoutEffect)(()=>{n||(o.current===null?r(VO(t)):o.current!==t&&r(GO({prev:o.current,next:t})),o.current=t)},[r,n,t]),(0,Vc.useLayoutEffect)(()=>()=>{o.current&&(r(YO(o.current)),o.current=null)},[r]),null}function Cq(e){var t=e.legendPayload,r=jt(),n=je(Bt),o=(0,Vc.useRef)(null);return(0,Vc.useLayoutEffect)(()=>{n!=="centric"&&n!=="radial"||(o.current===null?r(VO(t)):o.current!==t&&r(GO({prev:o.current,next:t})),o.current=t)},[r,n,t]),(0,Vc.useLayoutEffect)(()=>()=>{o.current&&(r(YO(o.current)),o.current=null)},[r]),null}var Nq=Z(J()),Ex=Z(J());function eye(e,t){return oye(e)||nye(e,t)||rye(e,t)||tye()}function tye(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function rye(e,t){if(e){if(typeof e=="string")return Aq(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)?Aq(e,t):void 0}}function Aq(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r2&&arguments[2]!==void 0?arguments[2]:[],n=[];for(var o of r)n.push({status:"removed",prev:o});for(var a=0;ae[Math.floor(a*r)]);return n5(n,t)}function iye(e,t){var r=t.map((n,o)=>e[o]);return n5(r,t)}function sye(e,t){for(var r=new Map,n=0;n{var f=r(d,p);if(f!=null){var m=n.get(f);if(m!==void 0)return o.add(f),m}}),i=[];for(var s of n){var l=eye(s,2),u=l[0],c=l[1];o.has(u)||i.push(c)}return n5(a,t,i)}function Ax(e,t,r){return t==null?null:e==null?t.map(n=>({status:"added",next:n})):r===Ip?aye(e,t):r===Cx?iye(e,t):lye(e,t,r)}var qg=Z(J());function X_(e,t){var r=(0,qg.useRef)(e),n=(0,qg.useRef)(t.current),o=(0,qg.useRef)(!0);r.current!==e&&(r.current=e,n.current=t.current,o.current=!1);var a=(0,qg.useCallback)(function(i,s){var l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(s===0){o.current=!0;return}s===1&&(n.current=i),s>0&&o.current&&l&&(t.current=i)},[t]);return{startValue:n.current,syncStepValue:a}}function uye(e,t){return fye(e)||pye(e,t)||dye(e,t)||cye()}function cye(){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 dye(e,t){if(e){if(typeof e=="string")return Eq(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)?Eq(e,t):void 0}}function Eq(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{typeof e=="function"&&e(),a(!0)},[e]),s=(0,Ex.useCallback)(()=>{typeof t=="function"&&t(),a(!1)},[t]);return{isAnimating:o,handleAnimationStart:i,handleAnimationEnd:s}}function Yc(e){var t,r=e.animationInput,n=e.animationIdPrefix,o=e.items,a=e.previousItemsRef,i=e.isAnimationActive,s=e.animationBegin,l=e.animationDuration,u=e.animationEasing,c=e.onAnimationStart,d=e.onAnimationEnd,p=e.animationInterpolateFn,f=e.animationMatchBy,m=e.shouldUpdatePreviousRef,y=e.children,b=e.layout,g=HS(r,n),h=X_(g,a),v=(t=h.startValue)!==null&&t!==void 0?t:null,x=Ax(v,o,f??Ip);return Nq.createElement(WS,{animationId:g,begin:s,duration:l,isActive:i,easing:u,onAnimationEnd:d,onAnimationStart:c,key:g},S=>{var _=v==null,w=o==null?o:p(x,S,b),k=m?m(S):S>0;return h.syncStepValue(w,S,k),w==null?null:y(w,S,_)})}var Pq=Z(J()),a5=Z(J());var Z_=Z(J());var o5;function mye(e,t){return vye(e)||yye(e,t)||hye(e,t)||gye()}function gye(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function hye(e,t){if(e){if(typeof e=="string")return Tq(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Tq(e,t):void 0}}function Tq(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var e=Z_.useState(()=>tu("uid-")),t=mye(e,1),r=t[0];return r},J_=(o5=Z_.useId)!==null&&o5!==void 0?o5:xye;function Oq(e,t){var r=J_();return t||(e?"".concat(e,"-").concat(r):r)}var bye=(0,a5.createContext)(void 0),Xc=e=>{var t=e.id,r=e.type,n=e.children,o=Oq("recharts-".concat(r),t);return Pq.createElement(bye.Provider,{value:o},n(o))};var Ls=Z(J());var wye={cartesianItems:[],polarItems:[]},Mq=Cr({name:"graphicalItems",initialState:wye,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(Zt(t.payload))},prepare:Ir()},replaceCartesianGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,o=r.next,a=ea(e).cartesianItems.indexOf(Zt(n));a>-1&&(e.cartesianItems[a]=Zt(o))},prepare:Ir()},removeCartesianGraphicalItem:{reducer(e,t){var r=ea(e).cartesianItems.indexOf(Zt(t.payload));r>-1&&e.cartesianItems.splice(r,1)},prepare:Ir()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(Zt(t.payload))},prepare:Ir()},removePolarGraphicalItem:{reducer(e,t){var r=ea(e).polarItems.indexOf(Zt(t.payload));r>-1&&e.polarItems.splice(r,1)},prepare:Ir()},replacePolarGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,o=r.next,a=ea(e).polarItems.indexOf(Zt(n));a>-1&&(e.polarItems[a]=Zt(o))},prepare:Ir()}}}),Kg=Mq.actions,Iq=Kg.addCartesianGraphicalItem,Dq=Kg.replaceCartesianGraphicalItem,jq=Kg.removeCartesianGraphicalItem,$q=Kg.addPolarGraphicalItem,Lq=Kg.removePolarGraphicalItem,zq=Kg.replacePolarGraphicalItem;var Bq=Mq.reducer;var Sye=e=>{var t=jt(),r=(0,Ls.useRef)(null);return(0,Ls.useLayoutEffect)(()=>{r.current===null?t(Iq(e)):r.current!==e&&t(Dq({prev:r.current,next:e})),r.current=e},[t,e]),(0,Ls.useLayoutEffect)(()=>()=>{r.current&&(t(jq(r.current)),r.current=null)},[t]),null},Vg=(0,Ls.memo)(Sye),kye=e=>{var t=jt(),r=(0,Ls.useRef)(null);return(0,Ls.useLayoutEffect)(()=>{r.current===null?t($q(e)):r.current!==e&&t(zq({prev:r.current,next:e})),r.current=e},[t,e]),(0,Ls.useLayoutEffect)(()=>()=>{r.current&&(t(Lq(r.current)),r.current=null)},[t]),null},Fq=(0,Ls.memo)(kye);var _ye=["key"],Cye=["onMouseEnter","onClick","onMouseLeave"],Aye=["id"],Eye=["id"];function Dp(){return Dp=Object.assign?Object.assign.bind():function(e){for(var t=1;txx(e.children,vu),[e.children]),r=je(n=>dq(n,e.id,t));return r==null?null:Gt.createElement(Cq,{legendPayload:r})}function Iye(e){if(!(e==null||typeof e=="boolean"||typeof e=="function")){if(Gt.isValidElement(e)){var t,r=(t=e.props)===null||t===void 0?void 0:t.fill;return typeof r=="string"?r:void 0}var n=e.fill;return typeof n=="string"?n:void 0}}var Dye=Gt.memo(e=>{var t=e.dataKey,r=e.nameKey,n=e.sectors,o=e.stroke,a=e.strokeWidth,i=e.fill,s=e.name,l=e.hide,u=e.tooltipType,c=e.formatter,d=e.id,p=e.activeShape,f=Iye(p),m=n.map(b=>{var g=b.tooltipPayload;return f==null||g==null?g:g.map(h=>Nn(Nn({},h),{},{color:f,fill:f}))}),y={dataDefinedOnItem:m,getPosition:b=>{var g;return(g=n[Number(b)])===null||g===void 0?void 0:g.tooltipPosition},settings:{stroke:o,strokeWidth:a,fill:i,dataKey:t,nameKey:r,name:xi(s,t),hide:l,type:u,color:i,unit:"",formatter:c,graphicalItemId:d}};return Gt.createElement(Kc,{tooltipEntrySettings:y})}),jye=(e,t)=>e>t?"start":etypeof t=="function"?Dn(t(e),r,r*.8):Dn(t,r,r*.8),Lye=(e,t,r)=>{var n=t.top,o=t.left,a=t.width,i=t.height,s=GS(a,i),l=o+Dn(e.cx,a,a/2),u=n+Dn(e.cy,i,i/2),c=Dn(e.innerRadius,s,0),d=$ye(r,e.outerRadius,s),p=e.maxRadius||Math.sqrt(a*a+i*i)/2;return{cx:l,cy:u,innerRadius:c,outerRadius:d,maxRadius:p}},zye=(e,t)=>{var r=Zr(t-e),n=Math.min(Math.abs(t-e),360);return r*n},Bye=(e,t)=>{if(Gt.isValidElement(e))return Gt.cloneElement(e,t);if(typeof e=="function")return e(t);var r=bt("recharts-pie-label-line",typeof e!="boolean"?e.className:""),n=t.key,o=Q_(t,_ye);return Gt.createElement(ll,Dp({},o,{type:"linear",className:r}))},Fye=(e,t,r)=>{if(Gt.isValidElement(e))return Gt.cloneElement(e,t);var n=r;if(typeof e=="function"&&(n=e(t),Gt.isValidElement(n)))return n;var o=bt("recharts-pie-label-text",z_(e));return Gt.createElement(Op,Dp({},t,{alignmentBaseline:"middle",className:o}),n)};function Uye(e){var t=e.sectors,r=e.props,n=e.showLabels,o=r.label,a=r.labelLine,i=r.dataKey;if(!n||!o||!t)return null;var s=hn(r),l=mi(o),u=mi(a),c=typeof o=="object"&&"offsetRadius"in o&&typeof o.offsetRadius=="number"&&o.offsetRadius||20,d=t.map((p,f)=>{var m=(p.startAngle+p.endAngle)/2,y=an(p.cx,p.cy,p.outerRadius+c,m),b=Nn(Nn(Nn(Nn({},s),p),{},{stroke:"none"},l),{},{index:f,textAnchor:jye(y.x,p.cx)},y),g=Nn(Nn(Nn(Nn({},s),p),{},{fill:"none",stroke:p.fill},u),{},{index:f,points:[an(p.cx,p.cy,p.outerRadius,m),y],key:"line"});return Gt.createElement(sn,{zIndex:ir.label,key:"label-".concat(p.startAngle,"-").concat(p.endAngle,"-").concat(p.midAngle,"-").concat(f)},Gt.createElement(br,null,a&&Bye(a,g),Fye(o,b,Ht(p,i))))});return Gt.createElement(br,{className:"recharts-pie-labels"},d)}function Wye(e){var t=e.sectors,r=e.props,n=e.showLabels,o=r.label;return typeof o=="object"&&o!=null&&"position"in o?Gt.createElement(Hc,{label:o}):Gt.createElement(Uye,{sectors:t,props:r,showLabels:n})}function Hye(e){var t=e.sectors,r=e.activeShape,n=e.inactiveShape,o=e.allOtherPieProps,a=e.shape,i=e.id,s=e.animationElapsedTime,l=e.isAnimating,u=e.isEntrance,c=je(rs),d=je(Pg),p=je(v_),f=o.onMouseEnter,m=o.onClick,y=o.onMouseLeave,b=Q_(o,Cye),g=wx(f,o.dataKey,i),h=Sx(y),v=kx(m,o.dataKey,i);return t==null||t.length===0?null:Gt.createElement(Gt.Fragment,null,t.map((x,S)=>{if(x?.startAngle===0&&x?.endAngle===0&&t.length!==1)return null;var _=p==null||p===i,w=String(S)===c&&(d==null||o.dataKey===d)&&_,k=c?n:null,A=r&&w?r:k,C=Nn(Nn({},x),{},{stroke:x.stroke,tabIndex:-1,index:S,isActive:w,animationElapsedTime:s,isAnimating:l,isEntrance:u,[CS]:S,[AS]:i});return Gt.createElement(br,Dp({key:"sector-".concat(x?.startAngle,"-").concat(x?.endAngle,"-").concat(x.midAngle,"-").concat(S),tabIndex:-1,className:"recharts-pie-sector"},nu(b,x,S),{onMouseEnter:g(x,S),onMouseLeave:h(x,S),onClick:v(x,S)}),Gt.createElement(qc,{option:A??a,DefaultShape:Wq,shapeProps:C}))}))}function fq(e){var t,r=e.pieSettings,n=e.displayedData,o=e.cells,a=e.offset,i=r.cornerRadius,s=r.startAngle,l=r.endAngle,u=r.dataKey,c=r.nameKey,d=r.tooltipType,p=Math.abs(r.minAngle),f=zye(s,l),m=Math.abs(f),y=n.length<=1?0:(t=r.paddingAngle)!==null&&t!==void 0?t:0,b=n.filter(k=>Ht(k,u,0)!==0).length,g=(m>=360?b:b-1)*y,h=n.reduce((k,A)=>{var C=Ht(A,u,0);return k+(De(C)?C:0)},0),v=p>0&&h>0&&n.some(k=>{var A=Ht(k,u,0),C=(De(A)?A:0)/h;return A!==0&&C*m0){var w;_=n.map((k,A)=>{var C=Ht(k,u,0),T=Ht(k,c,A),$=Lye(r,a,k),Q=(De(C)?C:0)/h,B,K=Nn(Nn({},k),o&&o[A]&&o[A].props),N=K!=null&&"fill"in K&&typeof K.fill=="string"?K.fill:r.fill;A?B=w.endAngle+Zr(f)*y*(C!==0?1:0):B=s;var O=B+Zr(f)*((C!==0?x:0)+Q*S),D=(B+O)/2,P=($.innerRadius+$.outerRadius)/2,j=[{name:T,value:C,payload:K,dataKey:u,type:d,color:N,fill:N,graphicalItemId:r.id}],M=an($.cx,$.cy,P,D);return w=Nn(Nn(Nn(Nn({},r.presentationProps),{},{percent:Q,cornerRadius:typeof i=="string"?parseFloat(i):i,name:T,tooltipPayload:j,midAngle:D,middleRadius:P,tooltipPosition:M},K),$),{},{value:C,dataKey:u,startAngle:B,endAngle:O,payload:K,paddingAngle:C!==0?Zr(f)*y:0}),w})}return _}function qye(e){var t=e.showLabels,r=e.sectors,n=e.children,o=(0,Gg.useMemo)(()=>!t||!r?[]:r.map(a=>({value:a.value,payload:a.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:a.cx,cy:a.cy,innerRadius:a.innerRadius,outerRadius:a.outerRadius,startAngle:a.startAngle,endAngle:a.endAngle,clockWise:!1},fill:a.fill})),[r,t]);return Gt.createElement(rq,{value:t?o:void 0},n)}var Kye=(e,t)=>{if(e==null)return[];var r=[],n=e.find(a=>a.status!=="removed"),o=n?n.next.startAngle:0;return e.forEach((a,i)=>{if(a.status!=="removed"){var s=i>0?Uo(a.next,"paddingAngle",0):0;if(a.status==="matched"){var l=_r(a.prev.endAngle-a.prev.startAngle,a.next.endAngle-a.next.startAngle,t),u=Nn(Nn({},a.next),{},{startAngle:o+s,endAngle:o+l+s});r.push(u),o=u.endAngle}else{var c=_r(0,a.next.endAngle-a.next.startAngle,t),d=Nn(Nn({},a.next),{},{startAngle:o+s,endAngle:o+c+s});r.push(d),o=d.endAngle}}}),r};function Vye(e){var t,r,n,o,a=e.props,i=e.previousSectorsRef,s=e.id,l=a.sectors,u=a.activeShape,c=a.inactiveShape,d=a.animationInterpolateFn,p=Gc(a.onAnimationStart,a.onAnimationEnd),f=p.isAnimating,m=p.handleAnimationStart,y=p.handleAnimationEnd,b=O7();if(b==null)return null;var g=l[0];return Gt.createElement(qye,{showLabels:!f,sectors:l},Gt.createElement(Yc,{animationInput:a,animationIdPrefix:"recharts-pie-",items:l,previousItemsRef:i,isAnimationActive:a.isAnimationActive,animationBegin:a.animationBegin,animationDuration:a.animationDuration,animationEasing:a.animationEasing,onAnimationStart:m,onAnimationEnd:y,animationInterpolateFn:d,animationMatchBy:a.animationMatchBy,layout:b},(h,v,x)=>Gt.createElement(br,null,Gt.createElement(Hye,{sectors:h,activeShape:u,inactiveShape:c,allOtherPieProps:a,shape:a.shape,id:s,animationElapsedTime:v,isAnimating:f||v<1,isEntrance:x}))),Gt.createElement(Wye,{showLabels:!f,sectors:l,props:a}),Gt.createElement(JH,{cx:(t=g?.cx)!==null&&t!==void 0?t:0,cy:(r=g?.cy)!==null&&r!==void 0?r:0,innerRadius:(n=g?.innerRadius)!==null&&n!==void 0?n:0,outerRadius:(o=g?.outerRadius)!==null&&o!==void 0?o:0,startAngle:a.startAngle,endAngle:a.endAngle,clockWise:!1},a.children))}var Gye={animationBegin:400,animationDuration:1500,animationEasing:"ease",animationInterpolateFn:Kye,animationMatchBy:Cx,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:Wq,startAngle:0,stroke:"#fff",zIndex:ir.area};function Yye(e){var t=e.id,r=Q_(e,Aye),n=e.hide,o=e.className,a=e.rootTabIndex,i=(0,Gg.useMemo)(()=>xx(e.children,vu),[e.children]),s=je(c=>pq(c,t,i)),l=(0,Gg.useRef)(null),u=bt("recharts-pie",o);return n||s==null?(l.current=null,Gt.createElement(br,{tabIndex:a,className:u})):Gt.createElement(sn,{zIndex:e.zIndex},Gt.createElement(Dye,{dataKey:e.dataKey,nameKey:e.nameKey,sectors:s,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,tooltipType:e.tooltipType,formatter:e.formatter,id:t,activeShape:e.activeShape}),Gt.createElement(br,{tabIndex:a,className:u},Gt.createElement(Vye,{props:Nn(Nn({},r),{},{sectors:s}),previousSectorsRef:l,id:t})))}function Xye(e){var t=nr(e,Gye),r=t.id,n=Q_(t,Eye),o=hn(n);return Gt.createElement(Xc,{id:r,type:"pie"},a=>Gt.createElement(Gt.Fragment,null,Gt.createElement(Fq,{type:"pie",id:a,data:n.data,dataKey:n.dataKey,hide:n.hide,angleAxisId:0,radiusAxisId:0,name:n.name,nameKey:n.nameKey,tooltipType:n.tooltipType,legendType:n.legendType,fill:n.fill,cx:n.cx,cy:n.cy,startAngle:n.startAngle,endAngle:n.endAngle,paddingAngle:n.paddingAngle,minAngle:n.minAngle,innerRadius:n.innerRadius,outerRadius:n.outerRadius,cornerRadius:n.cornerRadius,presentationProps:o,maxRadius:t.maxRadius}),Gt.createElement(Mye,Dp({},n,{id:a})),Gt.createElement(Yye,Dp({},n,{id:a}))))}var R_=Xye;R_.displayName="Pie";var Nx=Z(J()),tC=Z(J());var Zye=["points"];function Hq(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function i5(e){for(var t=1;t{var g,h,v=i5(i5(i5({r:3},i),p),{},{index:b,cx:(g=y.x)!==null&&g!==void 0?g:void 0,cy:(h=y.y)!==null&&h!==void 0?h:void 0,dataKey:a,value:y.value,payload:y.payload,points:t});return Nx.createElement(rve,{key:"dot-".concat(b),option:r,dotProps:v,className:o})}),m={};return s&&l!=null&&(m.clipPath="url(#clipPath-".concat(d?"":"dots-").concat(l,")")),Nx.createElement(sn,{zIndex:c},Nx.createElement(br,eC({className:n},m),f))}var Tx=Z(J()),oC=Z(J());function qq(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function nC(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right}));var rK=ae([tK,qo,Ko],(e,t,r)=>{if(!(!e||t==null||r==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,r-e.top-e.bottom)}});var Zc=()=>je(rK),nK=()=>je(NW);function oK(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function l5(e){for(var t=1;t{var t=e.point,r=e.childIndex,n=e.mainColor,o=e.activeDot,a=e.dataKey,i=e.clipPath;if(o===!1||t.x==null||t.y==null)return null;var s={index:r,dataKey:a,cx:t.x,cy:t.y,r:4,fill:n??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},l=l5(l5(l5({},s),mi(o)),Bm(o)),u;return(0,oC.isValidElement)(o)?u=(0,oC.cloneElement)(o,l):typeof o=="function"?u=o(l):u=Tx.createElement(D_,l),Tx.createElement(br,{className:"recharts-active-dot",clipPath:i},u)};function Ox(e){var t=e.points,r=e.mainColor,n=e.activeDot,o=e.itemDataKey,a=e.clipPath,i=e.zIndex,s=i===void 0?ir.activeDot:i,l=je(rs),u=nK();if(t==null||u==null)return null;var c=t.find(d=>u.includes(d.payload));return ar(c)?null:Tx.createElement(sn,{zIndex:s},Tx.createElement(dve,{point:c,childIndex:Number(l),mainColor:r,dataKey:o,activeDot:n,clipPath:a}))}function pve(e,t){return hve(e)||gve(e,t)||mve(e,t)||fve()}function fve(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mve(e,t){if(e){if(typeof e=="string")return aK(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)?aK(e,t):void 0}}function aK(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var n=r??e;if(!ar(n))return Dn(n,t,0)},sK=(e,t,r)=>{var n={},o=e.filter(pp),a=e.filter(u=>u.stackId==null),i=o.reduce((u,c)=>{var d=u[c.stackId];return d==null&&(d=[]),d.push(c),u[c.stackId]=d,u},n),s=Object.entries(i).map(u=>{var c,d=pve(u,2),p=d[0],f=d[1],m=f.map(b=>b.dataKey),y=iK(t,r,(c=f[0])===null||c===void 0?void 0:c.barSize);return{stackId:p,dataKeys:m,barSize:y}}),l=a.map(u=>{var c=[u.dataKey].filter(p=>p!=null),d=iK(t,r,u.barSize);return{stackId:void 0,dataKeys:c,barSize:d}});return[...s,...l]};function lK(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function aC(e){for(var t=1;th+(v.barSize||0),0);p+=(i-1)*s,p>=r&&(p-=(i-1)*s,s=0),p>=r&&d>0&&(c=!0,d*=.9,p=i*d);var f=Math.round((r-p)/2),m={offset:f-s,size:0};l=n.reduce((h,v)=>{var x,S={stackId:v.stackId,dataKeys:v.dataKeys,position:{offset:m.offset+m.size+s,size:c?d:(x=v.barSize)!==null&&x!==void 0?x:0}},_=[...h,S];return m=S.position,_},u)}else{var y=Dn(t,r,0,!0);r-2*y-(i-1)*s<=0&&(s=0);var b=(r-2*y-(i-1)*s)/i;b>1&&(b=Math.round(b));var g=Ot(o)?Math.min(b,o):b;l=n.reduce((h,v,x)=>[...h,{stackId:v.stackId,dataKeys:v.dataKeys,position:{offset:y+i*(b-g)/2+(g+s)*x,size:g}}],u)}return l}}var uK=(e,t,r,n,o,a,i)=>{var s=ar(i)?t:i,l=bve(r,n,o!==a?o:a,e,s);return o!==a&&l!=null&&(l=l.map(u=>aC(aC({},u),{},{position:aC(aC({},u.position),{},{offset:u.position.offset-o/2})}))),l};var cK=(e,t)=>{var r=Nc(t);if(!(!e||r==null||t==null)){var n=t.stackId;if(n!=null){var o=e[n];if(o){var a=o.stackedData;if(a)return a.find(i=>i.key===r)}}}};var dK=(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 pK(e,t){return e&&typeof e=="object"&&"zIndex"in e&&typeof e.zIndex=="number"&&Ot(e.zIndex)?e.zIndex:t}var fK=Z(J());var iC=e=>{var t=e.chartData,r=jt(),n=Ar();return(0,fK.useEffect)(()=>n?()=>{}:(r(GM(t)),()=>{r(GM(void 0))}),[t,r,n]),null};var mK={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},gK=Cr({name:"brush",initialState:mK,reducers:{setBrushSettings(e,t){return t.payload==null?mK:t.payload}}}),bUe=gK.actions.setBrushSettings;var hK=gK.reducer;function wve(e){return(e%180+180)%180}var yK=function(t){var r=t.width,n=t.height,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=wve(o),i=a*Math.PI/180,s=Math.atan(n/r),l=i>s&&i{e.dots.push(t.payload)},removeDot:(e,t)=>{var r=ea(e).dots.findIndex(n=>n===t.payload);r!==-1&&e.dots.splice(r,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var r=ea(e).areas.findIndex(n=>n===t.payload);r!==-1&&e.areas.splice(r,1)},addLine:(e,t)=>{e.lines.push(Zt(t.payload))},removeLine:(e,t)=>{var r=ea(e).lines.findIndex(n=>n===t.payload);r!==-1&&e.lines.splice(r,1)}}}),Yg=vK.actions,CUe=Yg.addDot,AUe=Yg.removeDot,EUe=Yg.addArea,NUe=Yg.removeArea,TUe=Yg.addLine,OUe=Yg.removeLine;var xK=vK.reducer;var Px=Z(J()),Mx=Z(J());function kve(e,t){return Eve(e)||Ave(e,t)||Cve(e,t)||_ve()}function _ve(){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 Cve(e,t){if(e){if(typeof e=="string")return bK(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)?bK(e,t):void 0}}function bK(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=(0,Mx.useState)("".concat(tu("recharts"),"-clip")),n=kve(r,1),o=n[0],a=Zc();if(a==null)return null;var i=a.x,s=a.y,l=a.width,u=a.height;return Px.createElement(Nve.Provider,{value:o},Px.createElement("defs",null,Px.createElement("clipPath",{id:o},Px.createElement("rect",{x:i,y:s,height:u,width:l}))),t)};var xn=Z(J()),ca=Z(J());function SK(){}function u5(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 kK(e,t,r){return Ix(e,t,void 0,void 0,void 0,void 0,r)}function Ix(e,t,r,n,o,a,i){let s=i(e,t,r,n,o,a);if(s!==void 0)return s;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return e===t;case"number":return e===t||Object.is(e,t);case"function":return e===t;case"object":return Dx(e,t,a,i)}return Dx(e,t,a,i)}function Dx(e,t,r,n){if(Object.is(e,t))return!0;let o=ou(e),a=ou(t);if(o==="[object Arguments]"&&(o=Hm),a==="[object Arguments]"&&(a=Hm),o!==a)return!1;switch(o){case Fm:return e.toString()===t.toString();case Um:return kc(e.valueOf(),t.valueOf());case Wm:case _w:case kw:return Object.is(e.valueOf(),t.valueOf());case ww:return e.source===t.source&&e.flags===t.flags;case Cz:return e===t}r=r??new Map;let i=r.get(e),s=r.get(t);if(i!=null&&s!=null)return i===t;r.set(e,t),r.set(t,e);try{switch(o){case Cw:if(e.size!==t.size)return!1;for(let[l,u]of e.entries())if(!t.has(l)||!Ix(u,t.get(l),l,e,t,r,n))return!1;return!0;case Aw:{if(e.size!==t.size)return!1;let l=Array.from(e.values()),u=Array.from(t.values());for(let c=0;cIx(d,f,void 0,e,t,r,n));if(p===-1)return!1;u.splice(p,1)}return!0}case Ew:case Ow:case Pw:case Mw:case Iw:case Ez:case Dw:case jw:case $w:case Nz:case Lw:case zw:if(fv(e)!==fv(t)||e.length!==t.length)return!1;for(let l=0;le*o)return!1;var a=r();return e*(t-e*a/2-n)>=0&&e*(t+e*a/2-o)<=0}function AK(e,t){return sC(e,t+1)}function EK(e,t,r,n,o){for(var a=(n||[]).slice(),i=t.start,s=t.end,l=0,u=1,c=i,d=function(){var m=n?.[l];if(m===void 0)return{v:sC(n,u)};var y=l,b,g=()=>(b===void 0&&(b=r(m,y)),b),h=m.coordinate,v=l===0||jp(e,h,g,c,s);v||(l=0,c=i,u+=1),v&&(c=h+e*(g()/2+o),l+=u)},p;u<=a.length;)if(p=d(),p)return p.v;return[]}function NK(e,t,r,n,o){var a=(n||[]).slice(),i=a.length;if(i===0)return[];for(var s=t.start,l=t.end,u=1;u<=i;u++){for(var c=(i-1)%u,d=s,p=!0,f=function(){var x=n[y];if(x==null)return 0;var S=y,_,w=()=>(_===void 0&&(_=r(x,S)),_),k=x.coordinate,A=y===c||jp(e,k,w,d,l);if(!A)return p=!1,1;A&&(d=k+e*(w()/2+o))},m,y=c;y(y===void 0&&(y=r(f,p)),y);if(p===i-1){var g=e*(m.coordinate+e*b()/2-l);a[p]=m=ua(ua({},m),{},{tickCoord:g>0?m.coordinate-g*e:m.coordinate})}else a[p]=m=ua(ua({},m),{},{tickCoord:m.coordinate});if(m.tickCoord!=null){var h=jp(e,m.tickCoord,b,s,l);h&&(l=m.tickCoord-e*(b()/2+o),a[p]=ua(ua({},m),{},{isShow:!0}))}},c=i-1;c>=0;c--)u(c);return a}function Ive(e,t,r,n,o,a){var i=(n||[]).slice(),s=i.length,l=t.start,u=t.end;if(a){var c=n[s-1];if(c!=null){var d=r(c,s-1),p=e*(c.coordinate+e*d/2-u);if(i[s-1]=c=ua(ua({},c),{},{tickCoord:p>0?c.coordinate-p*e:c.coordinate}),c.tickCoord!=null){var f=jp(e,c.tickCoord,()=>d,l,u);f&&(u=c.tickCoord-e*(d/2+o),i[s-1]=ua(ua({},c),{},{isShow:!0}))}}}for(var m=a?s-1:s,y=function(h){var v=i[h];if(v==null)return 1;var x=v,S,_=()=>(S===void 0&&(S=r(v,h)),S);if(h===0){var w=e*(x.coordinate-e*_()/2-l);i[h]=x=ua(ua({},x),{},{tickCoord:w<0?x.coordinate-w*e:x.coordinate})}else i[h]=x=ua(ua({},x),{},{tickCoord:x.coordinate});if(x.tickCoord!=null){var k=jp(e,x.tickCoord,_,l,u);k&&(l=x.tickCoord+e*(_()/2+o),i[h]=ua(ua({},x),{},{isShow:!0}))}},b=0;b{var w=typeof u=="function"?u(S.value,_):S.value;return m==="width"?_K(Tp(w,{fontSize:t,letterSpacing:r}),y,d):Tp(w,{fontSize:t,letterSpacing:r})[m]},g=o[0],h=o[1],v=o.length>=2&&g!=null&&h!=null?Zr(h.coordinate-g.coordinate):1,x=CK(a,v,m);return l==="equidistantPreserveStart"?EK(v,x,b,o,i):l==="equidistantPreserveEnd"?NK(v,x,b,o,i):(l==="preserveStart"||l==="preserveStartEnd"?f=Ive(v,x,b,o,i,l==="preserveStartEnd"):f=Mve(v,x,b,o,i),f.filter(S=>S.isShow))}var OK=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,o=n===void 0?5:n,a=e.tickSize,i=a===void 0?0:a,s=e.tickMargin,l=s===void 0?0:s,u=0;if(t){Array.from(t).forEach(f=>{if(f){var m=f.getBoundingClientRect();m.width>u&&(u=m.width)}});var c=r?r.getBoundingClientRect().width:0,d=i+l,p=u+d+c+(r?o:0);return Math.round(p)}return 0};var PK=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,o=n===void 0?5:n,a=e.tickSize,i=a===void 0?0:a,s=e.tickMargin,l=s===void 0?0:s,u=0;if(t){Array.from(t).forEach(f=>{if(f){var m=f.getBoundingClientRect();m.height>u&&(u=m.height)}});var c=r?r.getBoundingClientRect().height:0,d=i+l,p=u+d+c+(r?o:0);return Math.round(p)}return 0};var Dve={xAxis:{},yAxis:{}},MK=Cr({name:"renderedTicks",initialState:Dve,reducers:{setRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,o=r.axisId,a=r.ticks;e[n][o]=Zt(a)},removeRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,o=r.axisId;delete e[n][o]}}}),IK=MK.actions,DK=IK.setRenderedTicks,jK=IK.removeRenderedTicks;var $K=MK.reducer;var jve=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function LK(e,t){return Bve(e)||zve(e,t)||Lve(e,t)||$ve()}function $ve(){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 Lve(e,t){if(e){if(typeof e=="string")return zK(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)?zK(e,t):void 0}}function zK(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(!(n==null||r==null)){var i=t.map(l=>({value:l.value,coordinate:l.coordinate,offset:l.offset,index:l.index})),s=a.current;s!=null&&s.axisId===n&&s.axisType===r&&c5(s.ticks,i)||(a.current={ticks:i,axisId:n,axisType:r},o(DK({ticks:i,axisId:n,axisType:r})))}},[o,t,n,r]),(0,ca.useEffect)(()=>n==null||r==null?Sa:()=>{o(jK({axisId:n,axisType:r}))},[o,n,r]),null}var Jve=(0,ca.forwardRef)((e,t)=>{var r=e.ticks,n=r===void 0?[]:r,o=e.tick,a=e.tickLine,i=e.stroke,s=e.tickFormatter,l=e.unit,u=e.padding,c=e.tickTextProps,d=e.orientation,p=e.mirror,f=e.x,m=e.y,y=e.width,b=e.height,g=e.tickSize,h=e.tickMargin,v=e.fontSize,x=e.letterSpacing,S=e.getTicksConfig,_=e.events,w=e.axisType,k=e.axisId,A=jx(Gn(Gn({},S),{},{ticks:n}),v,x),C=hn(S),T=mi(o),$=P_(C.textAnchor)?C.textAnchor:Gve(d,p),Q=Yve(d,p),B={};typeof a=="object"&&(B=a);var K=Gn(Gn({},C),{},{fill:"none"},B),N=A.map(P=>Gn({entry:P},Vve(P,f,m,y,b,d,g,p,h))),O=N.map(P=>{var j=P.entry,M=P.line;return xn.createElement(br,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(j.value,"-").concat(j.coordinate,"-").concat(j.tickCoord)},a&&xn.createElement("line",$p({},K,M,{className:bt("recharts-cartesian-axis-tick-line",Uo(a,"className"))})))}),D=N.map((P,j)=>{var M,W,Y=P.entry,L=P.tick,G=Gn(Gn(Gn(Gn({verticalAnchor:Q},C),{},{textAnchor:$,stroke:"none",fill:i},L),{},{index:j,payload:Y,visibleTicksCount:A.length,tickFormatter:s,padding:u},c),{},{angle:(M=(W=c?.angle)!==null&&W!==void 0?W:C.angle)!==null&&M!==void 0?M:0}),q=Gn(Gn({},G),T);return xn.createElement(br,$p({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(Y.value,"-").concat(Y.coordinate,"-").concat(Y.tickCoord)},nu(_,Y,j)),o&&xn.createElement(Xve,{option:o,tickProps:q,value:"".concat(typeof s=="function"?s(Y.value,j):Y.value).concat(l||"")}))});return xn.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(w,"-ticks")},xn.createElement(Zve,{ticks:A,axisId:k,axisType:w}),D.length>0&&xn.createElement(sn,{zIndex:ir.label},xn.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(w,"-tick-labels"),ref:t},D)),O.length>0&&xn.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(w,"-tick-lines")},O))}),Qve=(0,ca.forwardRef)((e,t)=>{var r=e.axisLine,n=e.width,o=e.height,a=e.className,i=e.hide,s=e.ticks,l=e.axisType,u=e.axisId,c=Fve(e,jve),d=(0,ca.useState)(""),p=LK(d,2),f=p[0],m=p[1],y=(0,ca.useState)(""),b=LK(y,2),g=b[0],h=b[1],v=(0,ca.useRef)(null);(0,ca.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>{var S;return OK({ticks:v.current,label:(S=e.labelRef)===null||S===void 0?void 0:S.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})},getCalculatedHeight:()=>{var S;return PK({ticks:v.current,label:(S=e.labelRef)===null||S===void 0?void 0:S.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var x=(0,ca.useCallback)(S=>{if(S){var _=S.getElementsByClassName("recharts-cartesian-axis-tick-value");v.current=_;var w=_[0];if(w){var k=window.getComputedStyle(w),A=k.fontSize,C=k.letterSpacing;(A!==f||C!==g)&&(m(A),h(C))}}},[f,g]);return i||n!=null&&n<=0||o!=null&&o<=0?null:xn.createElement(sn,{zIndex:e.zIndex},xn.createElement(br,{className:bt("recharts-cartesian-axis",a)},xn.createElement(Kve,{x:e.x,y:e.y,width:n,height:o,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:hn(e)}),xn.createElement(Jve,{ref:x,axisType:l,events:c,fontSize:f,getTicksConfig:e,height:e.height,letterSpacing:g,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:s,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:u}),xn.createElement(YH,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},xn.createElement(QH,{label:e.label,labelRef:e.labelRef}),e.children)))}),$x=xn.forwardRef((e,t)=>{var r=nr(e,as);return xn.createElement(Qve,$p({},r,{ref:t}))});$x.displayName="CartesianAxis";var Yn=Z(J());var lC=Z(J());var FK={grid:{stroke:"#ccc",fill:"none"}};var UK=(0,lC.createContext)(FK),DWe=UK.Provider,WK=()=>(0,lC.useContext)(UK);var Rve=["x1","y1","x2","y2","key"],exe=["offset"],txe=["xAxisId","yAxisId"],rxe=["xAxisId","yAxisId"];function HK(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function da(e){for(var t=1;t{var t=e.fill;if(!t||t==="none")return null;var r=e.fillOpacity,n=e.x,o=e.y,a=e.width,i=e.height,s=e.ry;return Yn.createElement("rect",{x:n,y:o,ry:s,width:a,height:i,stroke:"none",fill:t,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function qK(e){var t=e.option,r=e.lineItemProps,n;if(Yn.isValidElement(t))n=Yn.cloneElement(t,r);else if(typeof t=="function")n=t(r);else{var o,a=r.x1,i=r.y1,s=r.x2,l=r.y2,u=r.key,c=uC(r,Rve),d=(o=hn(c))!==null&&o!==void 0?o:{},p=d.offset,f=uC(d,exe),m=Array.isArray(f.strokeDasharray)?f.strokeDasharray.join(","):f.strokeDasharray;n=Yn.createElement("line",Lp({},f,{strokeDasharray:m,x1:a,y1:i,x2:s,y2:l,fill:"none",key:u}))}return n}function lxe(e){var t=e.x,r=e.width,n=e.horizontal,o=n===void 0?!0:n,a=e.horizontalPoints;if(!o||!a||!a.length)return null;var i=e.xAxisId,s=e.yAxisId,l=uC(e,txe),u=a.map((c,d)=>{var p=da(da({},l),{},{x1:t,y1:c,x2:t+r,y2:c,key:"line-".concat(d),index:d});return Yn.createElement(qK,{key:"line-".concat(d),option:o,lineItemProps:p})});return Yn.createElement("g",{className:"recharts-cartesian-grid-horizontal"},u)}function uxe(e){var t=e.y,r=e.height,n=e.vertical,o=n===void 0?!0:n,a=e.verticalPoints;if(!o||!a||!a.length)return null;var i=e.xAxisId,s=e.yAxisId,l=uC(e,rxe),u=a.map((c,d)=>{var p=da(da({},l),{},{x1:c,y1:t,x2:c,y2:t+r,key:"line-".concat(d),index:d});return Yn.createElement(qK,{option:o,lineItemProps:p,key:"line-".concat(d)})});return Yn.createElement("g",{className:"recharts-cartesian-grid-vertical"},u)}function cxe(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,o=e.y,a=e.width,i=e.height,s=e.horizontalPoints,l=e.horizontal,u=l===void 0?!0:l;if(!u||!t||!t.length||s==null)return null;var c=s.map(p=>Math.round(p+o-o)).sort((p,f)=>p-f);o!==c[0]&&c.unshift(0);var d=c.map((p,f)=>{var m=c[f+1],y=m==null,b=y?o+i-p:m-p;if(b<=0)return null;var g=f%t.length;return Yn.createElement("rect",{key:"react-".concat(f),y:p,x:n,height:b,width:a,stroke:"none",fill:t[g],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return Yn.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},d)}function dxe(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,o=e.fillOpacity,a=e.x,i=e.y,s=e.width,l=e.height,u=e.verticalPoints;if(!r||!n||!n.length)return null;var c=u.map(p=>Math.round(p+a-a)).sort((p,f)=>p-f);a!==c[0]&&c.unshift(0);var d=c.map((p,f)=>{var m=c[f+1],y=m==null,b=y?a+s-p:m-p;if(b<=0)return null;var g=f%n.length;return Yn.createElement("rect",{key:"react-".concat(f),x:p,y:i,width:b,height:l,stroke:"none",fill:n[g],fillOpacity:o,className:"recharts-cartesian-grid-bg"})});return Yn.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},d)}var pxe=(e,t)=>{var r=e.xAxis,n=e.width,o=e.height,a=e.offset;return LO(jx(da(da(da({},as),r),{},{ticks:zO(r,!0),viewBox:{x:0,y:0,width:n,height:o}})),a.left,a.left+a.width,t)},fxe=(e,t)=>{var r=e.yAxis,n=e.width,o=e.height,a=e.offset;return LO(jx(da(da(da({},as),r),{},{ticks:zO(r,!0),viewBox:{x:0,y:0,width:n,height:o}})),a.top,a.top+a.height,t)},mxe={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:ir.grid};function Su(e){var t,r,n,o,a,i,s=tg(),l=rg(),u=PS(),c=da(da({},nr(e,mxe)),{},{x:De(e.x)?e.x:u.left,y:De(e.y)?e.y:u.top,width:De(e.width)?e.width:u.width,height:De(e.height)?e.height:u.height}),d=c.xAxisId,p=c.yAxisId,f=c.x,m=c.y,y=c.width,b=c.height,g=c.syncWithTicks,h=c.horizontalValues,v=c.verticalValues,x=Ar(),S=je(O=>_M(O,"xAxis",d,x)),_=je(O=>_M(O,"yAxis",p,x)),w=WK(),k={stroke:(t=c.stroke)!==null&&t!==void 0?t:w.grid.stroke,strokeWidth:(r=c.strokeWidth)!==null&&r!==void 0?r:w.grid.strokeWidth,strokeOpacity:(n=c.strokeOpacity)!==null&&n!==void 0?n:w.grid.strokeOpacity,strokeDasharray:(o=c.strokeDasharray)!==null&&o!==void 0?o:w.grid.strokeDasharray};if(!qa(y)||!qa(b)||!De(f)||!De(m))return null;var A=c.verticalCoordinatesGenerator||pxe,C=c.horizontalCoordinatesGenerator||fxe,T=c.horizontalPoints,$=c.verticalPoints;if((!T||!T.length)&&typeof C=="function"){var Q=h&&h.length,B=C({yAxis:_?da(da({},_),{},{ticks:Q?h:_.ticks}):void 0,width:s??y,height:l??b,offset:u},Q?!0:g);eg(Array.isArray(B),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof B,"]")),Array.isArray(B)&&(T=B)}if((!$||!$.length)&&typeof A=="function"){var K=v&&v.length,N=A({xAxis:S?da(da({},S),{},{ticks:K?v:S.ticks}):void 0,width:s??y,height:l??b,offset:u},K?!0:g);eg(Array.isArray(N),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof N,"]")),Array.isArray(N)&&($=N)}return Yn.createElement(sn,{zIndex:c.zIndex},Yn.createElement("g",{className:"recharts-cartesian-grid"},Yn.createElement(sxe,{fill:(a=c.fill)!==null&&a!==void 0?a:w.grid.fill,fillOpacity:(i=c.fillOpacity)!==null&&i!==void 0?i:w.grid.fillOpacity,x:c.x,y:c.y,width:c.width,height:c.height,ry:c.ry}),Yn.createElement(cxe,Lp({},c,{horizontalPoints:T})),Yn.createElement(dxe,Lp({},c,{verticalPoints:$})),Yn.createElement(lxe,Lp({},c,k,{offset:u,horizontalPoints:T,xAxis:S,yAxis:_})),Yn.createElement(uxe,Lp({},c,k,{offset:u,verticalPoints:$,xAxis:S,yAxis:_}))))}Su.displayName="CartesianGrid";var Sr=Z(J()),ku=Z(J());var KK=Z(J());var gxe=["animationElapsedTime","isAnimating","isEntrance","visibleLength","strokeDasharray","connectNulls"];function d5(){return d5=Object.assign?Object.assign.bind():function(e){for(var t=1;tf+m,0);if(!o)return VK(t,e);for(var a=Math.floor(e/o),i=e%o,s=[],l=0,u=0;li){s=[...n.slice(0,l),i-u];break}}var p=s.length%2===0?[0,t]:[t];return[...bxe(n,a),...s,...p].map(f=>"".concat(f,"px")).join(", ")}function Sxe(e,t,r){if(e){var n="".concat(e).split(/[,\s]+/gim).map(o=>parseFloat(o));return wxe(r,t,n)}return VK(t,r)}function GK(e){var t=e.animationElapsedTime,r=e.isAnimating,n=e.isEntrance,o=e.visibleLength,a=e.strokeDasharray,i=e.connectNulls,s=hxe(e,gxe),l=i??!1,u;if(o!=null){var c,d=s.pathRef,p=vxe((c=d?.current)!==null&&c!==void 0?c:null);u=Sxe(a,p,o)}else a!=null&&(u=String(a));return KK.createElement(ll,d5({},s,{connectNulls:l,strokeDasharray:u}))}var zp=Z(J());function YK(e){var t=(0,zp.useRef)(0),r=(0,zp.useRef)(0),n=(0,zp.useRef)(!1),o=(0,zp.useRef)(e);return o.current!==e&&(t.current=r.current,o.current=e),(0,zp.useCallback)((a,i)=>{if(n.current)return null;var s=Math.min(Ki(t.current+a*i),i);return a>0&&i>0&&(r.current=Math.max(r.current,s),s>=i)?(n.current=!0,null):s},[])}var JK=Z(J()),Lx=Z(J());var kxe={},XK=Cr({name:"errorBars",initialState:kxe,reducers:{addErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,o=r.errorBar;e[n]||(e[n]=[]),e[n].push(o)},replaceErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,o=r.prev,a=r.next;e[n]&&(e[n]=e[n].map(i=>i.dataKey===o.dataKey&&i.direction===o.direction?a:i))},removeErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,o=r.errorBar;e[n]&&(e[n]=e[n].filter(a=>a.dataKey!==o.dataKey||a.direction!==o.direction))}}}),p5=XK.actions,nHe=p5.addErrorBar,oHe=p5.replaceErrorBar,aHe=p5.removeErrorBar;var ZK=XK.reducer;var _xe=["children"];function Cxe(e,t){if(e==null)return{};var r,n,o=Axe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n({x:0,y:0,value:0}),errorBarOffset:0},Nxe=(0,Lx.createContext)(Exe);function cC(e){var t=e.children,r=Cxe(e,_xe);return JK.createElement(Nxe.Provider,{value:r},t)}var f5=Z(J());function Bp(e,t){var r,n,o=je(u=>gl(u,e)),a=je(u=>hl(u,t)),i=(r=o?.allowDataOverflow)!==null&&r!==void 0?r:ao.allowDataOverflow,s=(n=a?.allowDataOverflow)!==null&&n!==void 0?n:io.allowDataOverflow,l=i||s;return{needClip:l,needClipX:i,needClipY:s}}function Xg(e){var t=e.xAxisId,r=e.yAxisId,n=e.clipPathId,o=Zc(),a=Bp(t,r),i=a.needClipX,s=a.needClipY,l=a.needClip,u=je(v=>mM(v,t,!1)),c=je(v=>gM(v,r,!1));if(!l||!o)return null;var d=o.x,p=o.y,f=o.width,m=o.height,y=i&&u?Math.min(u[0],u[1]):d-f/2,b=s&&c?Math.min(c[0],c[1]):p-m/2,g=i&&u?Math.abs(u[1]-u[0]):f*2,h=s&&c?Math.abs(c[1]-c[0]):m*2;return f5.createElement("clipPath",{id:"clipPath-".concat(n)},f5.createElement("rect",{x:y,y:b,width:g,height:h}))}var QK=(e,t,r,n)=>Ai(e,"xAxis",t,n),RK=(e,t,r,n)=>Ci(e,"xAxis",t,n),eV=(e,t,r,n)=>Ai(e,"yAxis",r,n),tV=(e,t,r,n)=>Ci(e,"yAxis",r,n),Txe=ae([Bt,QK,eV,RK,tV],(e,t,r,n,o)=>sa(e,"xAxis")?Zi(t,n,!1):Zi(r,o,!1)),Oxe=(e,t,r,n,o)=>o;function Pxe(e){return e.type==="line"}var Mxe=ae([jc,Oxe],(e,t)=>e.filter(Pxe).find(r=>r.id===t)),rV=ae([Bt,QK,eV,RK,tV,Mxe,Txe,lp],(e,t,r,n,o,a,i,s)=>{var l=s.chartData,u=s.dataStartIndex,c=s.dataEndIndex;if(!(a==null||t==null||r==null||n==null||o==null||n.length===0||o.length===0||i==null||e!=="horizontal"&&e!=="vertical")){var d=a.dataKey,p=a.data,f;if(p!=null&&p.length>0?f=p:f=l?.slice(u,c+1),f!=null)return nV({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:o,dataKey:d,bandSize:i,displayedData:f})}});function dC(e){var t=mi(e),r=3,n=2;if(t!=null){var o=t.r,a=t.strokeWidth,i=Number(o),s=Number(a);return(Number.isNaN(i)||i<0)&&(i=r),(Number.isNaN(s)||s<0)&&(s=n),{r:i,strokeWidth:s}}return{r,strokeWidth:n}}var Ixe=["id"],Dxe=["type","layout","connectNulls","needClip","shape","strokeDasharray"],jxe=["activeDot","animateNewValues","animationBegin","animationDuration","animationEasing","connectNulls","dot","hide","isAnimationActive","label","legendType","xAxisId","yAxisId","id"];function pC(){return pC=Object.assign?Object.assign.bind():function(e){for(var t=1;t0?t/r:0}var Wxe=(e,t)=>{if(e==null)return[];if(t===1)return e.flatMap(s=>s.status==="removed"?[]:[s.next]);var r=Uxe(e),n=[];for(var o of e)if(o.status==="matched")n.push(yl(yl({},o.next),{},{x:_r(o.prev.x,o.next.x,t),y:_r(o.prev.y,o.next.y,t)}));else if(o.status==="added")if(o.next.x!=null){var a=o.next.x-r;n.push(yl(yl({},o.next),{},{x:_r(a,o.next.x,t),y:o.next.y}))}else n.push(o.next);else if(o.status==="removed"&&o.prev.x!=null){var i=o.prev.x+r;n.push(yl(yl({},o.prev),{},{x:_r(o.prev.x,i,t),y:o.prev.y}))}return n},h5={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationInterpolateFn:Wxe,animationMatchBy:Ip,connectNulls:!1,dot:!0,fill:"#fff",hide:!1,isAnimationActive:"auto",label:!1,legendType:"line",shape:GK,stroke:"#3182bd",strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:ir.line,type:"linear"},Hxe=e=>{var t=e.dataKey,r=e.name,n=e.stroke,o=e.legendType,a=e.hide;return[{inactive:a,dataKey:t,type:o,color:n,value:xi(r,t),payload:e}]},qxe=Sr.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,o=e.strokeWidth,a=e.fill,i=e.name,s=e.hide,l=e.unit,u=e.formatter,c=e.tooltipType,d=e.id,p={dataDefinedOnItem:r,getPosition:Sa,settings:{stroke:n,strokeWidth:o,fill:a,dataKey:t,nameKey:void 0,name:xi(i,t),hide:s,type:c,color:n,unit:l,formatter:u,graphicalItemId:d}};return Sr.createElement(Kc,{tooltipEntrySettings:p})});function Kxe(e){var t=e.clipPathId,r=e.points,n=e.props,o=n.dot,a=n.dataKey,i=n.needClip,s=n.id,l=g5(n,Ixe),u=hn(l);return Sr.createElement(rC,{points:r,dot:o,className:"recharts-line-dots",dotClassName:"recharts-line-dot",dataKey:a,baseProps:u,needClip:i,clipPathId:t})}function Vxe(e){var t=e.showLabels,r=e.children,n=e.points,o=(0,ku.useMemo)(()=>n?.map(a=>{var i,s,l={x:(i=a.x)!==null&&i!==void 0?i:0,y:(s=a.y)!==null&&s!==void 0?s:0,width:0,lowerWidth:0,upperWidth:0,height:0};return yl(yl({},l),{},{value:a.value,payload:a.payload,viewBox:l,parentViewBox:void 0,fill:void 0})}),[n]);return Sr.createElement(Fg,{value:t?o:void 0},r)}function Gxe(e){var t=e.clipPathId,r=e.pathRef,n=e.points,o=e.props,a=e.animationElapsedTime,i=e.isAnimating,s=e.isEntrance,l=e.visibleLength,u=o.type,c=o.layout,d=o.connectNulls,p=o.needClip,f=o.shape,m=o.strokeDasharray,y=g5(o,Dxe),b=yl(yl({},yn(y)),{},{fill:"none",className:"recharts-line-curve",clipPath:p?"url(#clipPath-".concat(t,")"):void 0,points:n,type:u,layout:c,connectNulls:d,strokeDasharray:m??o.strokeDasharray,pathRef:r,animationElapsedTime:a,isAnimating:i,isEntrance:o.animateNewValues?s:!1,visibleLength:l});return Sr.createElement(Sr.Fragment,null,n?.length>1&&Sr.createElement(qc,{option:f,DefaultShape:h5.shape,shapeProps:b}),Sr.createElement(Kxe,{points:n,clipPathId:t,props:o}))}function Yxe(e){var t=e.clipPathId,r=e.props,n=e.pathRef,o=e.previousPointsRef,a=r.points,i=r.isAnimationActive,s=r.animationBegin,l=r.animationDuration,u=r.animationEasing,c=r.animationMatchBy,d=r.animationInterpolateFn,p=r.layout,f=Fxe(n.current),m=Gc(r.onAnimationStart,r.onAnimationEnd),y=m.isAnimating,b=m.handleAnimationStart,g=m.handleAnimationEnd,h=!y,v=YK(a),x=(0,ku.useCallback)(S=>S>0&&f>0,[f]);return Sr.createElement(Vxe,{points:a,showLabels:h},r.children,Sr.createElement(Yc,{animationInput:a,animationIdPrefix:"recharts-line-",items:a,previousItemsRef:o,isAnimationActive:i,animationBegin:s,animationDuration:l,animationEasing:u,onAnimationStart:b,onAnimationEnd:g,animationInterpolateFn:d,animationMatchBy:c,shouldUpdatePreviousRef:x,layout:p},(S,_,w)=>{var k=y||_<1,A=k?v(_,f):null;return Sr.createElement(Gxe,{props:r,points:S,clipPathId:t,pathRef:n,animationElapsedTime:_,isAnimating:k,isEntrance:w,visibleLength:A})}),Sr.createElement(Hc,{label:r.label}))}function Xxe(e){var t=e.clipPathId,r=e.props,n=(0,ku.useRef)(null),o=(0,ku.useRef)(null);return Sr.createElement(Yxe,{props:r,clipPathId:t,previousPointsRef:n,pathRef:o})}var Zxe=(e,t)=>{var r,n;return{x:(r=e.x)!==null&&r!==void 0?r:void 0,y:(n=e.y)!==null&&n!==void 0?n:void 0,value:e.value,errorVal:Ht(e.payload,t)}},m5=class extends ku.Component{render(){var t=this.props,r=t.hide,n=t.dot,o=t.points,a=t.className,i=t.xAxisId,s=t.yAxisId,l=t.top,u=t.left,c=t.width,d=t.height,p=t.id,f=t.needClip,m=t.zIndex;if(r)return null;var y=bt("recharts-line",a),b=p,g=dC(n),h=g.r,v=g.strokeWidth,x=Ug(n),S=h*2+v,_=f?"url(#clipPath-".concat(x?"":"dots-").concat(b,")"):void 0;return Sr.createElement(sn,{zIndex:m},Sr.createElement(br,{className:y},f&&Sr.createElement("defs",null,Sr.createElement(Xg,{clipPathId:b,xAxisId:i,yAxisId:s}),!x&&Sr.createElement("clipPath",{id:"clipPath-dots-".concat(b)},Sr.createElement("rect",{x:u-S/2,y:l-S/2,width:c+S,height:d+S}))),Sr.createElement(cC,{xAxisId:i,yAxisId:s,data:o,dataPointFormatter:Zxe,errorBarOffset:0},Sr.createElement(Xxe,{props:this.props,clipPathId:b}))),Sr.createElement(Ox,{activeDot:this.props.activeDot,points:o,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:_}))}};function Jxe(e){var t=nr(e,h5),r=t.activeDot,n=t.animateNewValues,o=t.animationBegin,a=t.animationDuration,i=t.animationEasing,s=t.connectNulls,l=t.dot,u=t.hide,c=t.isAnimationActive,d=t.label,p=t.legendType,f=t.xAxisId,m=t.yAxisId,y=t.id,b=g5(t,jxe),g=Bp(f,m),h=g.needClip,v=Zc(),x=Va(),S=Ar(),_=je(T=>rV(T,f,m,S,y));if(x!=="horizontal"&&x!=="vertical"||_==null||v==null)return null;var w=v.height,k=v.width,A=v.x,C=v.y;return Sr.createElement(m5,pC({},b,{id:y,connectNulls:s,dot:l,activeDot:r,animateNewValues:n,animationBegin:o,animationDuration:a,animationEasing:i,isAnimationActive:c,hide:u,label:d,legendType:p,xAxisId:f,yAxisId:m,points:_,layout:x,height:w,width:k,left:A,top:C,needClip:h}))}function nV(e){var t=e.layout,r=e.xAxis,n=e.yAxis,o=e.xAxisTicks,a=e.yAxisTicks,i=e.dataKey,s=e.bandSize,l=e.displayedData;return l.map((u,c)=>{var d=Ht(u,i);if(t==="horizontal"){var p=Ym({axis:r,ticks:o,bandSize:s,entry:u,index:c}),f=ar(d)?null:n.scale.map(d);return{x:p,y:f??null,value:d,payload:u}}var m=ar(d)?null:r.scale.map(d),y=Ym({axis:n,ticks:a,bandSize:s,entry:u,index:c});return m==null||y==null?null:{x:m,y,value:d,payload:u}}).filter(Boolean)}function Qxe(e){var t=nr(e,h5),r=Ar();return Sr.createElement(Xc,{id:t.id,type:"line"},n=>Sr.createElement(Sr.Fragment,null,Sr.createElement(Hg,{legendPayload:Hxe(t)}),Sr.createElement(qxe,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:n}),Sr.createElement(Vg,{type:"line",id:n,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:r}),Sr.createElement(Jxe,pC({},t,{id:n}))))}var fC=Sr.memo(Qxe,Ga);fC.displayName="Line";var hr=Z(J()),Fp=Z(J());function is(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(o=>o.id===t))===null||n===void 0?void 0:n.xAxisId)!==null&&r!==void 0?r:s5}function ss(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(o=>o.id===t))===null||n===void 0?void 0:n.yAxisId)!==null&&r!==void 0?r:s5}var aV=(e,t,r)=>Ai(e,"xAxis",is(e,t),r),iV=(e,t,r)=>Ci(e,"xAxis",is(e,t),r),sV=(e,t,r)=>Ai(e,"yAxis",ss(e,t),r),lV=(e,t,r)=>Ci(e,"yAxis",ss(e,t),r),Rxe=ae([Bt,aV,sV,iV,lV],(e,t,r,n,o)=>sa(e,"xAxis")?Zi(t,n,!1):Zi(r,o,!1)),e0e=(e,t)=>t,y5=ae([jc,e0e],(e,t)=>e.filter(r=>r.type==="area").find(r=>r.id===t)),uV=e=>{var t=Bt(e),r=sa(t,"xAxis");return r?"yAxis":"xAxis"},t0e=(e,t)=>{var r=uV(e);return r==="yAxis"?ss(e,t):is(e,t)},cV=(e,t,r)=>Eg(e,uV(e),t0e(e,t),r),r0e=ae([y5,cV],(e,t)=>{var r;if(!(e==null||t==null)){var n=e.stackId,o=Nc(e);if(!(n==null||o==null)){var a=(r=t[n])===null||r===void 0?void 0:r.stackedData,i=a?.find(s=>s.key===o);if(i!=null)return i.map(s=>[s[0],s[1]])}}}),n0e=ae([y5,cV],(e,t)=>{if(!(e==null||e.stackId==null||t==null)){var r=t[e.stackId];if(r!=null)return r.graphicalItems.map(n=>n.dataKey).filter(Ao)}}),dV=ae([Bt,aV,sV,iV,lV,r0e,RS,Rxe,y5,hF,n0e],(e,t,r,n,o,a,i,s,l,u,c)=>{var d=i.chartData,p=i.dataStartIndex,f=i.dataEndIndex;if(!(l==null||e!=="horizontal"&&e!=="vertical"||t==null||r==null||n==null||o==null||n.length===0||o.length===0||s==null)){var m=l.data,y;if(m&&m.length>0?y=m:y=d?.slice(p,f+1),y!=null)return pV({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:o,dataStartIndex:p,areaSettings:l,stackedData:a,displayedData:y,chartBaseValue:u,bandSize:s,stackDataKeys:c})}});var pa=Z(J());var o0e=["animationElapsedTime","isAnimating","isEntrance","layout","isRange","stroke","connectNulls"],a0e=["id","baseLine"];function zx(){return zx=Object.assign?Object.assign.bind():function(e){for(var t=1;td.y||0));return De(o)?c=Math.max(o,c):o&&Array.isArray(o)&&o.length&&(c=Math.max(...o.map(d=>d.y||0),c)),De(c)?pa.createElement("rect",{x:sd.x||0));return De(o)?c=Math.max(o,c):o&&Array.isArray(o)&&o.length&&(c=Math.max(...o.map(d=>d.x||0),c)),De(c)?pa.createElement("rect",{x:0,y:se==null?[]:t===1?e.flatMap(r=>r.status==="removed"?[]:[r.next]):e.flatMap(r=>r.status==="matched"?[Zg(Zg({},r.next),{},{x:_r(r.prev.x,r.next.x,t),y:_r(r.prev.y,r.next.y,t)})]:r.status==="added"?[r.next]:[]),yV={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationMatchBy:Ip,animationInterpolateFn:h0e,connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,shape:mV,xAxisId:0,yAxisId:0,zIndex:ir.area};function gC(e,t){return e&&e!=="none"?e:t}var y0e=e=>{var t=e.dataKey,r=e.name,n=e.stroke,o=e.fill,a=e.legendType,i=e.hide;return[{inactive:i,dataKey:t,type:a,color:gC(n,o),value:xi(r,t),payload:e}]},v0e=hr.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,o=e.strokeWidth,a=e.fill,i=e.name,s=e.hide,l=e.unit,u=e.formatter,c=e.tooltipType,d=e.id,p={dataDefinedOnItem:r,getPosition:Sa,settings:{stroke:n,strokeWidth:o,fill:a,dataKey:t,nameKey:void 0,name:xi(i,t),hide:s,type:c,color:gC(n,a),unit:l,formatter:u,graphicalItemId:d}};return hr.createElement(Kc,{tooltipEntrySettings:p})});function x0e(e){var t=e.clipPathId,r=e.points,n=e.props,o=n.needClip,a=n.dot,i=n.dataKey,s=hn(n);return hr.createElement(rC,{points:r,dot:a,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:i,baseProps:s,needClip:o,clipPathId:t})}function b0e(e){var t=e.showLabels,r=e.children,n=e.points,o=n.map(a=>{var i,s,l={x:(i=a.x)!==null&&i!==void 0?i:0,y:(s=a.y)!==null&&s!==void 0?s:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Zg(Zg({},l),{},{value:a.value,payload:a.payload,parentViewBox:void 0,viewBox:l,fill:void 0})});return hr.createElement(Fg,{value:t?o:void 0},r)}function w0e(e){var t=e.points,r=e.baseLine,n=e.needClip,o=e.clipPathId,a=e.props,i=e.animationElapsedTime,s=e.isAnimating,l=e.isEntrance,u=a.layout,c=a.type,d=a.stroke,p=a.connectNulls,f=a.isRange,m=a.shape,y=a.id,b=hV(a,c0e),g=yn(b),h=Zg(Zg({},g),{},{id:y,points:t,connectNulls:p,type:c,baseLine:r,layout:u,stroke:d,isRange:f,animationElapsedTime:i,isAnimating:s,isEntrance:l});return hr.createElement(hr.Fragment,null,t?.length>1&&hr.createElement(br,{clipPath:n?"url(#clipPath-".concat(o,")"):void 0},hr.createElement(qc,{option:m,DefaultShape:yV.shape,shapeProps:h})),hr.createElement(x0e,{points:t,props:b,clipPathId:o}))}function S0e(e,t,r){if(De(e)){var n=De(t)?t:void 0;return _r(n,e,r)}if(ar(e)||Wo(e)){var o=De(t)?t:void 0;return _r(o,0,r)}return e}function k0e(e){var t=e.needClip,r=e.clipPathId,n=e.props,o=e.previousPointsRef,a=e.previousBaselineRef,i=n.points,s=n.baseLine,l=n.isAnimationActive,u=n.animationBegin,c=n.animationDuration,d=n.animationEasing,p=n.animationMatchBy,f=n.animationInterpolateFn,m=(0,Fp.useMemo)(()=>({points:i,baseLine:s}),[i,s]),y=X_(m,a),b=ng(),g=Gc(n.onAnimationStart,n.onAnimationEnd),h=g.isAnimating,v=g.handleAnimationStart,x=g.handleAnimationEnd,S=y.startValue;if(b==null)return null;var _;return Array.isArray(s)&&Array.isArray(S)?_=Ax(S,s,p):Array.isArray(s)?_=Ax(null,s,p):_=null,hr.createElement(Yc,{animationInput:m,animationIdPrefix:"recharts-area-",items:i,previousItemsRef:o,isAnimationActive:l,animationBegin:u,animationDuration:c,animationEasing:d,onAnimationStart:v,onAnimationEnd:x,animationInterpolateFn:f,animationMatchBy:p,layout:b},(w,k,A)=>{var C;return k===1?C=s:Array.isArray(s)?C=f(_,k,b):C=A?s:S0e(s,S,k),y.syncStepValue(C,k),hr.createElement(b0e,{showLabels:!h,points:i},n.children,hr.createElement(w0e,{points:w,baseLine:C,needClip:t,clipPathId:r,props:n,animationElapsedTime:k,isAnimating:h||k<1,isEntrance:A}),hr.createElement(Hc,{label:n.label}))})}function _0e(e){var t=e.needClip,r=e.clipPathId,n=e.props,o=(0,Fp.useRef)(null),a=(0,Fp.useRef)();return hr.createElement(k0e,{needClip:t,clipPathId:r,props:n,previousPointsRef:o,previousBaselineRef:a})}var v5=class extends Fp.PureComponent{render(){var t=this.props,r=t.hide,n=t.dot,o=t.points,a=t.className,i=t.top,s=t.left,l=t.needClip,u=t.xAxisId,c=t.yAxisId,d=t.width,p=t.height,f=t.id,m=t.baseLine,y=t.zIndex;if(r)return null;var b=bt("recharts-area",a),g=f,h=dC(n),v=h.r,x=h.strokeWidth,S=Ug(n),_=v*2+x,w=l?"url(#clipPath-".concat(S?"":"dots-").concat(g,")"):void 0;return hr.createElement(sn,{zIndex:y},hr.createElement(br,{className:b},l&&hr.createElement("defs",null,hr.createElement(Xg,{clipPathId:g,xAxisId:u,yAxisId:c}),!S&&hr.createElement("clipPath",{id:"clipPath-dots-".concat(g)},hr.createElement("rect",{x:s-_/2,y:i-_/2,width:d+_,height:p+_}))),hr.createElement(_0e,{needClip:l,clipPathId:g,props:this.props})),hr.createElement(Ox,{points:o,mainColor:gC(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:w}),this.props.isRange&&Array.isArray(m)&&hr.createElement(Ox,{points:m,mainColor:gC(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:w}))}};function C0e(e){var t,r=e.activeDot,n=e.animationBegin,o=e.animationDuration,a=e.animationEasing,i=e.connectNulls,s=e.dot,l=e.fill,u=e.fillOpacity,c=e.hide,d=e.isAnimationActive,p=e.legendType,f=e.stroke,m=e.xAxisId,y=e.yAxisId,b=hV(e,d0e),g=Va(),h=x_(),v=Bp(m,y),x=v.needClip,S=Ar(),_=(t=je(K=>dV(K,e.id,S)))!==null&&t!==void 0?t:{},w=_.points,k=_.isRange,A=_.baseLine,C=Zc();if(g!=="horizontal"&&g!=="vertical"||C==null||h!=="AreaChart"&&h!=="ComposedChart")return null;var T=C.height,$=C.width,Q=C.x,B=C.y;return!w||!w.length?null:hr.createElement(v5,mC({},b,{activeDot:r,animationBegin:n,animationDuration:o,animationEasing:a,baseLine:A,connectNulls:i,dot:s,fill:l,fillOpacity:u,height:T,hide:c,layout:g,isAnimationActive:d,isRange:k,legendType:p,needClip:x,points:w,stroke:f,width:$,left:Q,top:B,xAxisId:m,yAxisId:y}))}var A0e=(e,t,r,n,o)=>{var a=r??t;if(De(a))return a;var i=e==="horizontal"?o:n,s=i.scale.domain();if(i.type==="number"){var l=Math.max(s[0],s[1]),u=Math.min(s[0],s[1]);return a==="dataMin"?u:a==="dataMax"||l<0?l:Math.max(Math.min(s[0],s[1]),0)}return a==="dataMin"?s[0]:a==="dataMax"?s[1]:s[0]};function pV(e){var t=e.areaSettings,r=t.connectNulls,n=t.baseValue,o=t.dataKey,a=e.stackedData,i=e.layout,s=e.chartBaseValue,l=e.xAxis,u=e.yAxis,c=e.displayedData,d=e.dataStartIndex,p=e.xAxisTicks,f=e.yAxisTicks,m=e.bandSize,y=e.stackDataKeys,b=a&&a.length,g=A0e(i,s,n,l,u),h=i==="horizontal",v=!1,x=c.map((_,w)=>{var k,A,C,T;if(b)T=a[d+w];else{var $=Ht(_,o);Array.isArray($)?(T=$,v=!0):T=[g,$]}var Q=(k=(A=T)===null||A===void 0?void 0:A[1])!==null&&k!==void 0?k:null,B=Ht(_,o),K=b&&B==null&&y!=null&&y.length>0&&y.every(D=>Ht(_,D)==null),N=Q==null||b&&!r&&B==null||K;if(h){var O;return{x:Ym({axis:l,ticks:p,bandSize:m,entry:_,index:w}),y:N?null:(O=u.scale.map(Q))!==null&&O!==void 0?O:null,value:T,payload:_}}return{x:N?null:(C=l.scale.map(Q))!==null&&C!==void 0?C:null,y:Ym({axis:u,ticks:f,bandSize:m,entry:_,index:w}),value:T,payload:_}}),S;return b||v?S=x.map(_=>{var w,k=Array.isArray(_.value)?_.value[0]:null;if(h){var A;return{x:_.x,y:k!=null&&_.y!=null&&(A=u.scale.map(k))!==null&&A!==void 0?A:null,payload:_.payload}}return{x:k!=null&&(w=l.scale.map(k))!==null&&w!==void 0?w:null,y:_.y,payload:_.payload}}):S=h?u.scale.map(g):l.scale.map(g),{points:x,baseLine:S??0,isRange:v}}function E0e(e){var t=nr(e,yV),r=Ar();return hr.createElement(Xc,{id:t.id,type:"area"},n=>hr.createElement(hr.Fragment,null,hr.createElement(Hg,{legendPayload:y0e(t)}),hr.createElement(v0e,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:n}),hr.createElement(Vg,{type:"area",id:n,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:_S(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:r,connectNulls:t.connectNulls}),hr.createElement(C0e,mC({},t,{id:n}))))}var _u=hr.memo(E0e,Ga);_u.displayName="Area";var Rt=Z(J()),Bs=Z(J());var xV=Z(J());var N0e=!0,x5="Invariant failed";function vV(e,t){if(!e){if(N0e)throw new Error(x5);var r=typeof t=="function"?t():t,n=r?"".concat(x5,": ").concat(r):x5;throw new Error(n)}}var T0e=["option"];function O0e(e,t){if(e==null)return{};var r,n,o=P0e(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n1&&arguments[1]!==void 0?arguments[1]:0;return(n,o)=>{if(De(t))return t;var a=De(n)||ar(n);return a?t(n,o):(a||vV(!1,"minPointSize callback function received a value with type of ".concat(typeof n,". Currently only numbers or null/undefined are supported.")),r)}};var M0e=(e,t,r)=>r,I0e=(e,t)=>t,Bx=ae([jc,I0e],(e,t)=>e.filter(r=>r.type==="bar").find(r=>r.id===t)),D0e=ae([Bx],e=>e?.maxBarSize),j0e=(e,t,r,n)=>n,$0e=ae([Bt,jc,is,ss,M0e],(e,t,r,n,o)=>t.filter(a=>e==="horizontal"?a.xAxisId===r:a.yAxisId===n).filter(a=>a.isPanorama===o).filter(a=>a.hide===!1).filter(a=>a.type==="bar")),L0e=(e,t,r)=>{var n=Bt(e),o=is(e,t),a=ss(e,t);if(!(o==null||a==null))return n==="horizontal"?Eg(e,"yAxis",a,r):Eg(e,"xAxis",o,r)},z0e=(e,t)=>{var r=Bt(e),n=is(e,t),o=ss(e,t);if(!(n==null||o==null))return r==="horizontal"?wM(e,"xAxis",n):wM(e,"yAxis",o)},B0e=ae([$0e,gF,z0e],sK),F0e=(e,t,r)=>{var n,o,a=Bx(e,t);if(a==null)return 0;var i=is(e,t),s=ss(e,t);if(i==null||s==null)return 0;var l=Bt(e),u=cP(e),c=a.maxBarSize,d=ar(c)?u:c,p,f;return l==="horizontal"?(p=Ai(e,"xAxis",i,r),f=Ci(e,"xAxis",i,r)):(p=Ai(e,"yAxis",s,r),f=Ci(e,"yAxis",s,r)),(n=(o=Zi(p,f,!0))!==null&&o!==void 0?o:d)!==null&&n!==void 0?n:0},wV=(e,t,r)=>{var n=Bt(e),o=is(e,t),a=ss(e,t);if(!(o==null||a==null)){var i,s;return n==="horizontal"?(i=Ai(e,"xAxis",o,r),s=Ci(e,"xAxis",o,r)):(i=Ai(e,"yAxis",a,r),s=Ci(e,"yAxis",a,r)),Zi(i,s)}},U0e=ae([B0e,cP,mF,ok,F0e,wV,D0e],uK),W0e=(e,t,r)=>{var n=is(e,t);if(n!=null)return Ai(e,"xAxis",n,r)},H0e=(e,t,r)=>{var n=ss(e,t);if(n!=null)return Ai(e,"yAxis",n,r)},q0e=(e,t,r)=>{var n=is(e,t);if(n!=null)return Ci(e,"xAxis",n,r)},K0e=(e,t,r)=>{var n=ss(e,t);if(n!=null)return Ci(e,"yAxis",n,r)},V0e=ae([U0e,Bx],dK),G0e=ae([L0e,Bx],cK),SV=ae([Fr,Qm,W0e,H0e,q0e,K0e,V0e,Bt,RS,wV,G0e,Bx,j0e],(e,t,r,n,o,a,i,s,l,u,c,d,p)=>{var f=l.chartData,m=l.dataStartIndex,y=l.dataEndIndex;if(!(d==null||i==null||t==null||s!=="horizontal"&&s!=="vertical"||r==null||n==null||o==null||a==null||u==null)){var b=d.data,g;if(b!=null&&b.length>0?g=b:g=f?.slice(m,y+1),g!=null)return kV({layout:s,barSettings:d,pos:i,parentViewBox:t,bandSize:u,xAxis:r,yAxis:n,xAxisTicks:o,yAxisTicks:a,stackedData:c,displayedData:g,offset:e,cells:p,dataStartIndex:m})}});var w5=Z(J()),Jg=Z(J());var Y0e=["index"];function b5(){return b5=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=(0,Jg.useContext)(_V);if(t!=null)return t.stackId;if(e!=null)return _S(e)};var J0e=(e,t)=>"recharts-bar-stack-clip-path-".concat(e,"-").concat(t),Q0e=e=>{var t=(0,Jg.useContext)(_V);if(t!=null){var r=t.stackId;return"url(#".concat(J0e(r,e),")")}},S5=e=>{var t=e.index,r=X0e(e,Y0e),n=Q0e(t);return w5.createElement(br,b5({className:"recharts-bar-stack-layer",clipPath:n},r))};var R0e=["onMouseEnter","onMouseLeave","onClick"],ebe=["value","background","tooltipPosition"],tbe=["id"],rbe=["onMouseEnter","onClick","onMouseLeave"];function AV(e,t){return ibe(e)||abe(e,t)||obe(e,t)||nbe()}function nbe(){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 obe(e,t){if(e){if(typeof e=="string")return EV(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)?EV(e,t):void 0}}function EV(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.dataKey,r=e.name,n=e.fill,o=e.legendType,a=e.hide;return[{inactive:a,dataKey:t,type:o,color:n,value:xi(r,t),payload:e}]},pbe=Rt.memo(e=>{var t=e.dataKey,r=e.stroke,n=e.strokeWidth,o=e.fill,a=e.name,i=e.hide,s=e.unit,l=e.formatter,u=e.tooltipType,c=e.id,d={dataDefinedOnItem:void 0,getPosition:Sa,settings:{stroke:r,strokeWidth:n,fill:o,dataKey:t,nameKey:void 0,name:xi(a,t),hide:i,type:u,color:o,unit:s,formatter:l,graphicalItemId:c}};return Rt.createElement(Kc,{tooltipEntrySettings:d})});function fbe(e){var t=je(rs),r=e.data,n=e.dataKey,o=e.background,a=e.allOtherBarProps,i=a.onMouseEnter,s=a.onMouseLeave,l=a.onClick,u=vC(a,R0e),c=wx(i,n,a.id),d=Sx(s),p=kx(l,n,a.id);if(!o||r==null)return null;var f=mi(o);return Rt.createElement(sn,{zIndex:pK(o,ir.barBackground)},r.map((m,y)=>{var b=m.value,g=m.background,h=m.tooltipPosition,v=vC(m,ebe);if(!g)return null;var x=c(m,m.originalDataIndex),S=d(m,m.originalDataIndex),_=p(m,m.originalDataIndex),w=To(To(To(To(To({option:o,isActive:String(m.originalDataIndex)===t},v),{},{fill:"#eee"},g),f),nu(u,m,y)),{},{onMouseEnter:x,onMouseLeave:S,onClick:_,dataKey:n,index:y,className:"recharts-bar-background-rectangle"});return Rt.createElement(yC,Jc({key:"background-bar-".concat(y)},w))}))}function mbe(e){var t=e.showLabels,r=e.children,n=e.rects,o=n?.map(a=>{var i={x:a.x,y:a.y,width:a.width,lowerWidth:a.width,upperWidth:a.width,height:a.height};return To(To({},i),{},{value:a.value,payload:a.payload,parentViewBox:a.parentViewBox,viewBox:i,fill:a.fill})});return Rt.createElement(Fg,{value:t?o:void 0},r)}function gbe(e){var t=e.shape,r=e.activeBar,n=e.baseProps,o=e.entry,a=e.index,i=e.dataKey,s=je(rs),l=je(Pg),u=r&&String(o.originalDataIndex)===s&&(l==null||i===l),c=s!=null&&(String(o.originalDataIndex)!==s||l!=null&&i!==l),d=(0,Bs.useState)(!1),p=AV(d,2),f=p[0],m=p[1],y=(0,Bs.useState)(!1),b=AV(y,2),g=b[0],h=b[1];(0,Bs.useEffect)(()=>{var k;return u?(m(!0),k=requestAnimationFrame(()=>{h(!0)})):(h(!1),c&&m(!1)),()=>{cancelAnimationFrame(k)}},[u,c]);var v=(0,Bs.useCallback)(()=>{u||m(!1)},[u]),x=u&&g,S=u||f,_;u?r===!0?_=t:_=r:_=t;var w=Rt.createElement(yC,Jc({},n,{name:String(n.name)},o,{isActive:x,option:_,index:a,dataKey:i,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance,onTransitionEnd:v}));return S?Rt.createElement(sn,{zIndex:ir.activeBar},Rt.createElement(S5,{index:o.originalDataIndex},w)):w}function hbe(e){var t=e.shape,r=e.baseProps,n=e.entry,o=e.index,a=e.dataKey;return Rt.createElement(yC,Jc({},r,{name:String(r.name)},n,{isActive:!1,option:t,index:o,dataKey:a,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance}))}function ybe(e){var t,r=e.data,n=e.props,o=e.animationElapsedTime,a=e.isAnimating,i=e.isEntrance,s=(t=hn(n))!==null&&t!==void 0?t:{},l=s.id,u=vC(s,tbe),c=n.shape,d=n.dataKey,p=n.activeBar,f=n.onMouseEnter,m=n.onClick,y=n.onMouseLeave,b=vC(n,rbe),g=wx(f,d,l),h=Sx(y),v=kx(m,d,l);return r?Rt.createElement(Rt.Fragment,null,r.map((x,S)=>Rt.createElement(S5,Jc({index:x.originalDataIndex,key:"rectangle-".concat(x?.x,"-").concat(x?.y,"-").concat(x?.value,"-").concat(S),className:"recharts-bar-rectangle"},nu(b,x,S),{onMouseEnter:g(x,x.originalDataIndex),onMouseLeave:h(x,x.originalDataIndex),onClick:v(x,x.originalDataIndex)}),p?Rt.createElement(gbe,{shape:c,activeBar:p,baseProps:u,entry:x,index:S,dataKey:d,animationElapsedTime:o,isAnimating:a,isEntrance:i}):Rt.createElement(hbe,{shape:c,baseProps:u,entry:x,index:S,dataKey:d,animationElapsedTime:o,isAnimating:a,isEntrance:i})))):null}var vbe=(e,t,r)=>e==null?[]:t===1?e.flatMap(n=>n.status==="removed"?[]:[n.next]):e.flatMap(n=>{if(n.status==="removed")return r==="horizontal"?[To(To({},n.prev),{},{height:_r(n.prev.height,0,t),y:_r(n.prev.y,n.prev.y+n.prev.height,t)})]:[To(To({},n.prev),{},{width:_r(n.prev.width,0,t)})];if(n.status==="matched")return[To(To({},n.next),{},{x:_r(n.prev.x,n.next.x,t),y:_r(n.prev.y,n.next.y,t),width:_r(n.prev.width,n.next.width,t),height:_r(n.prev.height,n.next.height,t)})];var o=n.next;return r==="horizontal"?[To(To({},o),{},{height:_r(0,o.height,t),y:_r(o.stackedBarStart,o.y,t)})]:[To(To({},o),{},{width:_r(0,o.width,t),x:_r(o.stackedBarStart,o.x,t)})]});function xbe(e){var t=e.props,r=e.previousRectanglesRef,n=t.data,o=t.isAnimationActive,a=t.animationBegin,i=t.animationDuration,s=t.animationEasing,l=t.animationInterpolateFn,u=t.layout,c=Gc(t.onAnimationStart,t.onAnimationEnd),d=c.isAnimating,p=c.handleAnimationStart,f=c.handleAnimationEnd;return Rt.createElement(mbe,{showLabels:!d,rects:n},Rt.createElement(Yc,{animationInput:n,animationIdPrefix:"recharts-bar-",items:n,previousItemsRef:r,isAnimationActive:o,animationBegin:a,animationDuration:i,animationEasing:s,onAnimationStart:p,onAnimationEnd:f,animationInterpolateFn:l,animationMatchBy:t.animationMatchBy,layout:u},(m,y,b)=>Rt.createElement(br,null,Rt.createElement(ybe,{props:t,data:m,animationElapsedTime:y,isAnimating:d||y<1,isEntrance:b}))),Rt.createElement(Hc,{label:t.label}),t.children)}function bbe(e){var t=(0,Bs.useRef)(null);return Rt.createElement(xbe,{previousRectanglesRef:t,props:e})}var TV=0,wbe=(e,t)=>{var r=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:r,errorVal:Ht(e,t)}},k5=class extends Bs.PureComponent{render(){var t=this.props,r=t.hide,n=t.data,o=t.dataKey,a=t.className,i=t.xAxisId,s=t.yAxisId,l=t.needClip,u=t.background,c=t.id;if(r||n==null)return null;var d=bt("recharts-bar",a),p=c;return Rt.createElement(br,{className:d,id:c},l&&Rt.createElement("defs",null,Rt.createElement(Xg,{clipPathId:p,xAxisId:i,yAxisId:s})),Rt.createElement(br,{className:"recharts-bar-rectangles",clipPath:l?"url(#clipPath-".concat(p,")"):void 0},Rt.createElement(fbe,{data:n,dataKey:o,background:u,allOtherBarProps:this.props}),Rt.createElement(bbe,this.props)))}},Sbe={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",animationInterpolateFn:vbe,animationMatchBy:Cx,background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:TV,shape:hC,xAxisId:0,yAxisId:0,zIndex:ir.bar};function kbe(e){var t=e.xAxisId,r=e.yAxisId,n=e.hide,o=e.legendType,a=e.minPointSize,i=e.activeBar,s=e.animationBegin,l=e.animationDuration,u=e.animationEasing,c=e.isAnimationActive,d=Bp(t,r),p=d.needClip,f=Va(),m=Ar(),y=xx(e.children,vu),b=je(v=>SV(v,e.id,m,y));if(f!=="vertical"&&f!=="horizontal")return null;var g,h=b?.[0];return h==null||h.height==null||h.width==null?g=0:g=f==="vertical"?h.height/2:h.width/2,Rt.createElement(cC,{xAxisId:t,yAxisId:r,data:b,dataPointFormatter:wbe,errorBarOffset:g},Rt.createElement(k5,Jc({},e,{layout:f,needClip:p,data:b,xAxisId:t,yAxisId:r,hide:n,legendType:o,minPointSize:a,activeBar:i,animationBegin:s,animationDuration:l,animationEasing:u,isAnimationActive:c})))}function kV(e){var t=e.layout,r=e.barSettings,n=r.dataKey,o=r.minPointSize,a=r.hasCustomShape,i=e.pos,s=e.bandSize,l=e.xAxis,u=e.yAxis,c=e.xAxisTicks,d=e.yAxisTicks,p=e.stackedData,f=e.displayedData,m=e.offset,y=e.cells,b=e.parentViewBox,g=e.dataStartIndex,h=t==="horizontal"?u:l,v=p?h.scale.domain():null,x=f7({numericAxis:h}),S=h.scale.map(x);return f.map((_,w)=>{var k,A,C,T,$,Q;if(p){var B=p[w+g];if(B==null)return null;k=d7(B,v)}else k=Ht(_,n),Array.isArray(k)||(k=[x,k]);var K=bV(o,TV)(k[1],w);if(t==="horizontal"){var N,O=u.scale.map(k[0]),D=u.scale.map(k[1]);if(O==null||D==null)return null;A=BO({axis:l,ticks:c,bandSize:s,offset:i.offset,entry:_,index:w}),C=(N=D??O)!==null&&N!==void 0?N:void 0,T=i.size;var P=O-D;if($=Wo(P)?0:P,Q={x:A,y:m.top,width:T,height:m.height},Math.abs(K)>0&&Math.abs($)0&&Math.abs(T)Rt.createElement(Rt.Fragment,null,Rt.createElement(Hg,{legendPayload:dbe(t)}),Rt.createElement(pbe,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:o}),Rt.createElement(Vg,{type:"bar",id:o,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:r,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:n,hasCustomShape:t.shape!=null&&t.shape!==hC}),Rt.createElement(sn,{zIndex:t.zIndex},Rt.createElement(kbe,Jc({},t,{id:o})))))}var xC=Rt.memo(_be,Ga);xC.displayName="Bar";var Cu=Z(J()),ls=Z(J());var Cbe=["domain","range"],Abe=["domain","range"];function OV(e,t){if(e==null)return{};var r,n,o=Ebe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{if(i!=null)return IV(IV({},a),{},{type:i})},[a,i]);return(0,ls.useLayoutEffect)(()=>{s!=null&&(r.current===null?t(Vq(s)):r.current!==s&&t(Gq({prev:r.current,next:s})),r.current=s)},[s,t]),(0,ls.useLayoutEffect)(()=>()=>{r.current&&(t(Yq(r.current)),r.current=null)},[t]),null}var $be=e=>{var t=e.xAxisId,r=e.className,n=e.height,o=e.label,a=(0,ls.useRef)(null),i=(0,ls.useRef)(null),s=je(Qm),l=Ar(),u=jt(),c="xAxis",d=je(_=>i_(_,c,t,l)),p=je(_=>xM(_,t)),f=je(_=>oW(_,t)),m=je(_=>ZP(_,t));if((0,ls.useLayoutEffect)(()=>{if(!(n!=="auto"||!p||Mp(o)||(0,ls.isValidElement)(o)||m==null)){var _=a.current;if(_){var w=_.getCalculatedHeight();Math.round(p.height)!==Math.round(w)&&u(Rq({id:t,height:w}))}}},[d,p,u,o,t,n,m]),p==null||f==null||m==null)return null;var y=e.dangerouslySetInnerHTML,b=e.ticks,g=e.scale,h=C5(e,Tbe),v=m.id,x=m.scale,S=C5(m,Obe);return Cu.createElement($x,_5({},h,S,{ref:a,labelRef:i,x:f.x,y:f.y,width:p.width,height:p.height,className:bt("recharts-".concat(c," ").concat(c),r),viewBox:s,ticks:d,axisType:c,axisId:t}))},Lbe={allowDataOverflow:ao.allowDataOverflow,allowDecimals:ao.allowDecimals,allowDuplicatedCategory:ao.allowDuplicatedCategory,angle:ao.angle,axisLine:as.axisLine,height:ao.height,hide:!1,includeHidden:ao.includeHidden,interval:ao.interval,label:!1,minTickGap:ao.minTickGap,mirror:ao.mirror,orientation:ao.orientation,padding:ao.padding,reversed:ao.reversed,scale:ao.scale,tick:ao.tick,tickCount:ao.tickCount,tickLine:as.tickLine,tickSize:as.tickSize,type:ao.type,niceTicks:ao.niceTicks,xAxisId:0},zbe=e=>{var t=nr(e,Lbe);return Cu.createElement(Cu.Fragment,null,Cu.createElement(jbe,{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}),Cu.createElement($be,t))},Au=Cu.memo(zbe,bC);Au.displayName="XAxis";var Eu=Z(J()),us=Z(J());var Bbe=["type"],Fbe=["dangerouslySetInnerHTML","ticks","scale"],Ube=["id","scale"];function A5(){return A5=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(i!=null)return jV(jV({},a),{},{type:i})},[i,a]);return(0,us.useLayoutEffect)(()=>{s!=null&&(r.current===null?t(Xq(s)):r.current!==s&&t(Zq({prev:r.current,next:s})),r.current=s)},[s,t]),(0,us.useLayoutEffect)(()=>()=>{r.current&&(t(Jq(r.current)),r.current=null)},[t]),null}function Gbe(e){var t=e.yAxisId,r=e.className,n=e.width,o=e.label,a=(0,us.useRef)(null),i=(0,us.useRef)(null),s=je(Qm),l=Ar(),u=jt(),c="yAxis",d=je(_=>bM(_,t)),p=je(_=>aW(_,t)),f=je(_=>i_(_,c,t,l)),m=je(_=>JP(_,t));if((0,us.useLayoutEffect)(()=>{if(!(n!=="auto"||!d||Mp(o)||(0,us.isValidElement)(o)||m==null)){var _=a.current;if(_){var w=_.getCalculatedWidth();Math.round(d.width)!==Math.round(w)&&u(Qq({id:t,width:w}))}}},[f,d,u,o,t,n,m]),d==null||p==null||m==null)return null;var y=e.dangerouslySetInnerHTML,b=e.ticks,g=e.scale,h=E5(e,Fbe),v=m.id,x=m.scale,S=E5(m,Ube);return Eu.createElement($x,A5({},h,S,{ref:a,labelRef:i,x:p.x,y:p.y,tickTextProps:n==="auto"?{width:void 0}:{width:n},width:d.width,height:d.height,className:bt("recharts-".concat(c," ").concat(c),r),viewBox:s,ticks:f,axisType:c,axisId:t}))}var Ybe={allowDataOverflow:io.allowDataOverflow,allowDecimals:io.allowDecimals,allowDuplicatedCategory:io.allowDuplicatedCategory,angle:io.angle,axisLine:as.axisLine,hide:!1,includeHidden:io.includeHidden,interval:io.interval,label:!1,minTickGap:io.minTickGap,mirror:io.mirror,orientation:io.orientation,padding:io.padding,reversed:io.reversed,scale:io.scale,tick:io.tick,tickCount:io.tickCount,tickLine:as.tickLine,tickSize:as.tickSize,type:io.type,niceTicks:io.niceTicks,width:io.width,yAxisId:0},Xbe=e=>{var t=nr(e,Ybe);return Eu.createElement(Eu.Fragment,null,Eu.createElement(Vbe,{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}),Eu.createElement(Gbe,t))},Nu=Eu.memo(Xbe,bC);Nu.displayName="YAxis";var lG=Z(J()),uG=Z(J());var Vp=Z(J()),sG=Z(J());var ZV=Z(J()),JV=Z(J());var Zbe=(e,t)=>t,Fx=ae([Zbe,Bt,pk,oo,OM,Za,LW,Fr],HW);function Jbe(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function Ux(e){var t=e.currentTarget.getBoundingClientRect(),r,n;if(Jbe(e)){var o=e.currentTarget.getBBox();r=o.width>0?t.width/o.width:1,n=o.height>0?t.height/o.height:1}else{var a=e.currentTarget;r=a.offsetWidth>0?t.width/a.offsetWidth:1,n=a.offsetHeight>0?t.height/a.offsetHeight:1}var i=(s,l)=>({relativeX:Math.round((s-t.left)/r),relativeY:Math.round((l-t.top)/n)});return"touches"in e?Array.from(e.touches).map(s=>i(s.clientX,s.clientY)):i(e.clientX,e.clientY)}var T5=vo("mouseClick"),O5=lu();O5.startListening({actionCreator:T5,effect:(e,t)=>{var r=e.payload,n=Fx(t.getState(),Ux(r));n?.activeIndex!=null&&t.dispatch(hW({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var wC=vo("mouseMove"),P5=lu(),Qg=null,Up=null,N5=null;P5.startListening({actionCreator:wC,effect:(e,t)=>{var r=e.payload,n=t.getState(),o=n.eventSettings,a=o.throttleDelay,i=o.throttledEvents,s=i==="all"||i?.includes("mousemove");Qg!==null&&(cancelAnimationFrame(Qg),Qg=null),Up!==null&&(typeof a!="number"||!s)&&(clearTimeout(Up),Up=null),N5=Ux(r);var l=()=>{var u=t.getState(),c=$c(u,u.tooltip.settings.shared);if(!N5){Qg=null,Up=null;return}if(c==="axis"){var d=Fx(u,N5);d?.activeIndex!=null?t.dispatch(c_({activeIndex:d.activeIndex,activeDataKey:void 0,activeCoordinate:d.activeCoordinate})):t.dispatch(u_())}Qg=null,Up=null};if(!s){l();return}a==="raf"?Qg=requestAnimationFrame(l):typeof a=="number"&&Up===null&&(Up=setTimeout(l,a))}});function $V(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 LV={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},zV=Cr({name:"rootProps",initialState:LV,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:LV.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}}}),BV=zV.reducer,FV=zV.actions.updateOptions;var Qbe=null,Rbe={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)},UV=Cr({name:"polarOptions",initialState:Qbe,reducers:Rbe}),WV=UV.actions.updatePolarOptions;var HV=UV.reducer;var M5=vo("keyDown"),I5=vo("focus"),D5=vo("blur"),Wx=lu(),Rg=null,Wp=null,SC=null;Wx.startListening({actionCreator:M5,effect:(e,t)=>{SC=e.payload,Rg!==null&&(cancelAnimationFrame(Rg),Rg=null);var r=t.getState(),n=r.eventSettings,o=n.throttleDelay,a=n.throttledEvents,i=a==="all"||a.includes("keydown");Wp!==null&&(typeof o!="number"||!i)&&(clearTimeout(Wp),Wp=null);var s=()=>{try{var l=t.getState(),u=l.rootProps.accessibilityLayer!==!1;if(!u)return;var c=l.tooltip.keyboardInteraction,d=SC;if(d!=="ArrowRight"&&d!=="ArrowLeft"&&d!=="Enter")return;var p=Lc(c,yu(l),fu(l),Bc(l)),f=p==null?-1:Number(p),m=!Number.isFinite(f)||f<0,y=Za(l),b=yu(l),g=$c(l,l.tooltip.settings.shared);if(d==="Enter"){if(m)return;var h=hx(l,g,"hover",String(c.index));t.dispatch(mx({active:!c.active,activeIndex:c.index,activeCoordinate:h}));return}var v=iW(l),x=v==="left-to-right"?1:-1,S=d==="ArrowRight"?1:-1,_;if(m){var w=fu(l),k=Bc(l),A=S*x,C=K=>({active:!1,index:String(K),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(_=-1,A>0){for(var T=0;T=0;$--)if(Lc(C($),b,w,k)!=null){_=$;break}if(_<0)return}else{_=f+S*x;var Q=y?.length||b.length;if(Q===0||_>=Q||_<0)return}var B=hx(l,g,"hover",String(_));t.dispatch(mx({active:!0,activeIndex:_.toString(),activeCoordinate:B}))}finally{Rg=null,Wp=null}};if(!i){s();return}o==="raf"?Rg=requestAnimationFrame(s):typeof o=="number"&&Wp===null&&(s(),SC=null,Wp=setTimeout(()=>{SC?s():(Wp=null,Rg=null)},o))}});Wx.startListening({actionCreator:I5,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var o=r.tooltip.keyboardInteraction;if(!o.active&&o.index==null){var a="0",i=$c(r,r.tooltip.settings.shared),s=hx(r,i,"hover",String(a));t.dispatch(mx({active:!0,activeIndex:a,activeCoordinate:s}))}}}});Wx.startListening({actionCreator:D5,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var o=r.tooltip.keyboardInteraction;o.active&&t.dispatch(mx({active:!1,activeIndex:o.index,activeCoordinate:o.coordinate}))}}});function kC(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(r,n)=>{if(n==="currentTarget")return t;var o=Reflect.get(r,n);return typeof o=="function"?o.bind(r):o}})}var Ei=vo("externalEvent"),$5=lu(),_C=new Map,Hx=new Map,j5=new Map;$5.startListening({actionCreator:Ei,effect:(e,t)=>{var r=e.payload,n=r.handler,o=r.reactEvent;if(n!=null){var a=o.type,i=kC(o);j5.set(a,{handler:n,reactEvent:i});var s=_C.get(a);s!==void 0&&(cancelAnimationFrame(s),_C.delete(a));var l=t.getState(),u=l.eventSettings,c=u.throttleDelay,d=u.throttledEvents,p=d,f=p==="all"||p?.includes(a),m=Hx.get(a);m!==void 0&&(typeof c!="number"||!f)&&(clearTimeout(m),Hx.delete(a));var y=()=>{var h=j5.get(a);try{if(!h)return;var v=h.handler,x=h.reactEvent,S=t.getState(),_={activeCoordinate:DM(S),activeDataKey:Pg(S),activeIndex:rs(S),activeLabel:y_(S),activeTooltipIndex:rs(S),isTooltipActive:jM(S)};v&&v(_,x)}finally{_C.delete(a),Hx.delete(a),j5.delete(a)}};if(!f){y();return}if(c==="raf"){var b=requestAnimationFrame(y);_C.set(a,b)}else if(typeof c=="number"){if(!Hx.has(a)){y();var g=setTimeout(y,c);Hx.set(a,g)}}else y()}}});var e1e=ae([hu],e=>e.tooltipItemPayloads),qV=ae([e1e,(e,t)=>t,(e,t,r)=>r],(e,t,r)=>{if(t!=null){var n=e.find(a=>a.settings.graphicalItemId===r);if(n!=null){var o=n.getPosition;if(o!=null)return o(t)}}});var L5=vo("touchMove"),z5=lu(),Hp=null,Qc=null,KV=null,qx=null;z5.startListening({actionCreator:L5,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){qx=kC(r);var n=t.getState(),o=n.eventSettings,a=o.throttleDelay,i=o.throttledEvents,s=i==="all"||i.includes("touchmove");Hp!==null&&(cancelAnimationFrame(Hp),Hp=null),Qc!==null&&(typeof a!="number"||!s)&&(clearTimeout(Qc),Qc=null),KV=Array.from(r.touches).map(u=>Ux({clientX:u.clientX,clientY:u.clientY,currentTarget:r.currentTarget}));var l=()=>{if(qx!=null){var u=t.getState(),c=$c(u,u.tooltip.settings.shared);if(c==="axis"){var d,p=(d=KV)===null||d===void 0?void 0:d[0];if(p==null){Hp=null,Qc=null;return}var f=Fx(u,p);f?.activeIndex!=null&&t.dispatch(c_({activeIndex:f.activeIndex,activeDataKey:void 0,activeCoordinate:f.activeCoordinate}))}else if(c==="item"){var m,y=qx.touches[0];if(document.elementFromPoint==null||y==null)return;var b=document.elementFromPoint(y.clientX,y.clientY);if(!b||!b.getAttribute)return;var g=b.getAttribute(CS),h=(m=b.getAttribute(AS))!==null&&m!==void 0?m:void 0,v=zc(u).find(_=>_.id===h);if(g==null||v==null||h==null)return;var x=v.dataKey,S=qV(u,g,h);t.dispatch(l_({activeDataKey:x,activeIndex:g,activeCoordinate:S,activeGraphicalItemId:h}))}Hp=null,Qc=null}};if(!s){l();return}a==="raf"?Hp=requestAnimationFrame(l):typeof a=="number"&&Qc===null&&(l(),qx=null,Qc=setTimeout(()=>{qx?l():(Qc=null,Hp=null)},a))}}});var Kx={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},VV=Cr({name:"eventSettings",initialState:Kx,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=Zt(t.payload.throttledEvents))}}}),GV=VV.actions.setEventSettings;var YV=VV.reducer;var t1e=Rw({brush:hK,cartesianAxis:eK,chartData:fH,errorBars:ZK,eventSettings:YV,graphicalItems:Bq,layout:l7,legend:D7,options:lH,polarAxis:sq,polarOptions:HV,referenceElements:xK,renderedTicks:$K,rootProps:BV,tooltip:yW,zIndex:QW}),XV=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return qB({reducer:t1e,preloadedState:t,middleware:n=>{var o;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((o="es6")!==null&&o!==void 0?o:"")}).concat([O5.middleware,P5.middleware,Wx.middleware,$5.middleware,z5.middleware])},enhancers:n=>{var o=n;return typeof n=="function"&&(o=n()),o.concat(IO({type:"raf"}))},devTools:Ji.devToolsEnabled&&{serialize:{replacer:$V},name:"recharts-".concat(r)}})};function CC(e){var t=e.preloadedState,r=e.children,n=e.reduxStoreName,o=Ar(),a=(0,JV.useRef)(null);if(o)return r;a.current==null&&(a.current=XV(t,n));var i=mv;return ZV.createElement(W7,{context:i,store:a.current},r)}var AC=Z(J());function r1e(e){var t=e.layout,r=e.margin,n=jt(),o=Ar();return(0,AC.useEffect)(()=>{o||(n(a7(t)),n($O(r)))},[n,o,t,r]),null}var EC=(0,AC.memo)(r1e,Ga);var QV=Z(J());function NC(e){var t=jt();return(0,QV.useEffect)(()=>{t(FV(e))},[t,e]),null}var TC=Z(J());var n1e=e=>{var t=jt();return(0,TC.useEffect)(()=>{t(GV(e))},[t,e]),null},OC=(0,TC.memo)(n1e,Ga);var Tu=Z(J()),aG=Z(J());var Kp=Z(J()),F5=Z(J());var qp=Z(J()),PC=Z(J());function RV(e){var t=e.zIndex,r=e.isPanorama,n=(0,PC.useRef)(null),o=jt();return(0,PC.useLayoutEffect)(()=>(n.current&&o(ZW({zIndex:t,element:n.current,isPanorama:r})),()=>{o(JW({zIndex:t,isPanorama:r}))}),[o,t,r]),qp.createElement("g",{tabIndex:-1,ref:n,className:"recharts-zIndex-layer_".concat(t)})}function B5(e){var t=e.children,r=e.isPanorama,n=je(KW);if(!n||n.length===0)return t;var o=n.filter(i=>i<0),a=n.filter(i=>i>0);return qp.createElement(qp.Fragment,null,o.map(i=>qp.createElement(RV,{key:i,zIndex:i,isPanorama:r})),t,a.map(i=>qp.createElement(RV,{key:i,zIndex:i,isPanorama:r})))}var o1e=["children"];function a1e(e,t){if(e==null)return{};var r,n,o=i1e(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{var r=tg(),n=rg(),o=LS();if(!qa(r)||!qa(n))return null;var a=e.children,i=e.otherAttributes,s=e.title,l=e.desc,u,c;return i!=null&&(typeof i.tabIndex=="number"?u=i.tabIndex:u=o?0:void 0,typeof i.role=="string"?c=i.role:c=o?"application":void 0),Kp.createElement(iv,MC({},i,{title:s,desc:l,role:c,tabIndex:u,width:r,height:n,style:s1e,ref:t}),a)}),u1e=e=>{var t=e.children,r=je(rp);if(!r)return null;var n=r.width,o=r.height,a=r.y,i=r.x;return Kp.createElement(iv,{width:n,height:o,x:i,y:a},t)},U5=(0,F5.forwardRef)((e,t)=>{var r=e.children,n=a1e(e,o1e),o=Ar();return o?Kp.createElement(u1e,null,Kp.createElement(B5,{isPanorama:!0},r)):Kp.createElement(l1e,MC({ref:t},n),Kp.createElement(B5,{isPanorama:!1},r))});var Tn=Z(J()),fr=Z(J());var IC=Z(J());function c1e(e,t){return m1e(e)||f1e(e,t)||p1e(e,t)||d1e()}function d1e(){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 p1e(e,t){if(e){if(typeof e=="string")return eG(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)?eG(e,t):void 0}}function eG(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(n!=null){var i=n.getBoundingClientRect(),s=i.width/n.offsetWidth;Ot(s)&&s!==a&&e(s7(s))}},[n,e,a]),o}function rG(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function g1e(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r(gH(),null);function jC(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var _1e=(0,fr.forwardRef)((e,t)=>{var r,n,o=(0,fr.useRef)(null),a=(0,fr.useState)({containerWidth:jC((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:jC((n=e.style)===null||n===void 0?void 0:n.height)}),i=DC(a,2),s=i[0],l=i[1],u=(0,fr.useCallback)((d,p)=>{l(f=>{var m=Math.round(d),y=Math.round(p);return f.containerWidth===m&&f.containerHeight===y?f:{containerWidth:m,containerHeight:y}})},[]),c=(0,fr.useCallback)(d=>{if(typeof t=="function"&&t(d),o.current!=null&&(o.current.disconnect(),o.current=null),d!=null&&typeof ResizeObserver<"u"){var p=d.getBoundingClientRect(),f=p.width,m=p.height;u(f,m);var y=g=>{var h=g[0];if(h!=null){var v=h.contentRect,x=v.width,S=v.height;u(x,S)}},b=new ResizeObserver(y);b.observe(d),o.current=b}},[t,u]);return(0,fr.useEffect)(()=>()=>{var d=o.current;d?.disconnect()},[u]),Tn.createElement(Tn.Fragment,null,Tn.createElement(ap,{width:s.containerWidth,height:s.containerHeight}),Tn.createElement("div",Rc({ref:c},e)))}),C1e=(0,fr.forwardRef)((e,t)=>{var r=e.width,n=e.height,o=(0,fr.useState)({containerWidth:jC(r),containerHeight:jC(n)}),a=DC(o,2),i=a[0],s=a[1],l=(0,fr.useCallback)((c,d)=>{s(p=>{var f=Math.round(c),m=Math.round(d);return p.containerWidth===f&&p.containerHeight===m?p:{containerWidth:f,containerHeight:m}})},[]),u=(0,fr.useCallback)(c=>{if(typeof t=="function"&&t(c),c!=null){var d=c.getBoundingClientRect(),p=d.width,f=d.height;l(p,f)}},[t,l]);return Tn.createElement(Tn.Fragment,null,Tn.createElement(ap,{width:i.containerWidth,height:i.containerHeight}),Tn.createElement("div",Rc({ref:u},e)))}),A1e=(0,fr.forwardRef)((e,t)=>{var r=e.width,n=e.height;return Tn.createElement(Tn.Fragment,null,Tn.createElement(ap,{width:r,height:n}),Tn.createElement("div",Rc({ref:t},e)))}),E1e=(0,fr.forwardRef)((e,t)=>{var r=e.width,n=e.height;return typeof r=="string"||typeof n=="string"?Tn.createElement(C1e,Rc({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?Tn.createElement(A1e,Rc({},e,{width:r,height:n,ref:t})):Tn.createElement(Tn.Fragment,null,Tn.createElement(ap,{width:r,height:n}),Tn.createElement("div",Rc({ref:t},e)))});function N1e(e){return e?_1e:E1e}var oG=(0,fr.forwardRef)((e,t)=>{var r=e.children,n=e.className,o=e.height,a=e.onClick,i=e.onContextMenu,s=e.onDoubleClick,l=e.onMouseDown,u=e.onMouseEnter,c=e.onMouseLeave,d=e.onMouseMove,p=e.onMouseUp,f=e.onTouchEnd,m=e.onTouchMove,y=e.onTouchStart,b=e.style,g=e.width,h=e.responsive,v=e.dispatchTouchEvents,x=v===void 0?!0:v,S=(0,fr.useRef)(null),_=jt(),w=(0,fr.useState)(null),k=DC(w,2),A=k[0],C=k[1],T=(0,fr.useState)(null),$=DC(T,2),Q=$[0],B=$[1],K=tG(),N=_v(),O=N?.width>0?N.width:g,D=N?.height>0?N.height:o,P=(0,fr.useCallback)(ee=>{K(ee),typeof t=="function"&&t(ee),C(ee),B(ee),ee!=null&&(S.current=ee)},[K,t,C,B]),j=(0,fr.useCallback)(ee=>{_(T5(ee)),_(Ei({handler:a,reactEvent:ee}))},[_,a]),M=(0,fr.useCallback)(ee=>{_(wC(ee)),_(Ei({handler:u,reactEvent:ee}))},[_,u]),W=(0,fr.useCallback)(ee=>{_(u_()),_(Ei({handler:c,reactEvent:ee}))},[_,c]),Y=(0,fr.useCallback)(ee=>{_(wC(ee)),_(Ei({handler:d,reactEvent:ee}))},[_,d]),L=(0,fr.useCallback)(()=>{_(I5())},[_]),G=(0,fr.useCallback)(()=>{_(D5())},[_]),q=(0,fr.useCallback)(ee=>{_(M5(ee.key))},[_]),oe=(0,fr.useCallback)(ee=>{_(Ei({handler:i,reactEvent:ee}))},[_,i]),Me=(0,fr.useCallback)(ee=>{_(Ei({handler:s,reactEvent:ee}))},[_,s]),ge=(0,fr.useCallback)(ee=>{_(Ei({handler:l,reactEvent:ee}))},[_,l]),ue=(0,fr.useCallback)(ee=>{_(Ei({handler:p,reactEvent:ee}))},[_,p]),R=(0,fr.useCallback)(ee=>{_(Ei({handler:y,reactEvent:ee}))},[_,y]),te=(0,fr.useCallback)(ee=>{x&&_(L5(ee)),_(Ei({handler:m,reactEvent:ee}))},[_,x,m]),Be=(0,fr.useCallback)(ee=>{_(Ei({handler:f,reactEvent:ee}))},[_,f]),ke=N1e(h);return Tn.createElement(HM.Provider,{value:A},Tn.createElement(OT.Provider,{value:Q},Tn.createElement(ke,{width:O??b?.width,height:D??b?.height,className:bt("recharts-wrapper",n),style:g1e({position:"relative",cursor:"default",width:O,height:D},b),onClick:j,onContextMenu:oe,onDoubleClick:Me,onFocus:L,onBlur:G,onKeyDown:q,onMouseDown:ge,onMouseEnter:M,onMouseLeave:W,onMouseMove:Y,onMouseUp:ue,onTouchEnd:Be,onTouchMove:te,onTouchStart:R,ref:P},Tn.createElement(k1e,null),r)))});var T1e=["width","height","responsive","children","className","style","compact","title","desc"];function O1e(e,t){if(e==null)return{};var r,n,o=P1e(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{var r=e.width,n=e.height,o=e.responsive,a=e.children,i=e.className,s=e.style,l=e.compact,u=e.title,c=e.desc,d=O1e(e,T1e),p=hn(d);return l?Tu.createElement(Tu.Fragment,null,Tu.createElement(ap,{width:r,height:n}),Tu.createElement(U5,{otherAttributes:p,title:u,desc:c},a)):Tu.createElement(oG,{className:i,style:s,width:r,height:n,responsive:o??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},Tu.createElement(U5,{otherAttributes:p,title:u,desc:c,ref:t},Tu.createElement(wK,null,a)))});function W5(){return W5=Object.assign?Object.assign.bind():function(e){for(var t=1;tlG.createElement(eh,{chartName:"LineChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:z1e,tooltipPayloadSearcher:Fc,categoricalChartProps:e,ref:t}));var cG=Z(J()),dG=Z(J());var B1e=["axis","item"],q5=(0,dG.forwardRef)((e,t)=>cG.createElement(eh,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:B1e,tooltipPayloadSearcher:Fc,categoricalChartProps:e,ref:t}));var xG=Z(J()),bG=Z(J());var gG=Z(J()),ed=Z(J());var pG=Z(J());function fG(e){var t=jt();return(0,pG.useEffect)(()=>{t(WV(e))},[t,e]),null}var F1e=["layout"];function K5(){return K5=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=nr(e,Q1e);return xG.createElement(hG,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:J1e,tooltipPayloadSearcher:Fc,categoricalChartProps:r,ref:t})});var wG=Z(J()),SG=Z(J());var R1e=["axis"],td=(0,SG.forwardRef)((e,t)=>wG.createElement(eh,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:R1e,tooltipPayloadSearcher:Fc,categoricalChartProps:e,ref:t}));var cs=Z(J()),th=[{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}],kG="30m",_G="activeagents.timeWindow",CG=(0,cs.createContext)(null),Y5=e=>th.find(t=>t.id===e);function AG({children:e}){let[t,r]=(0,cs.useState)(()=>{try{let a=localStorage.getItem(_G);if(a&&Y5(a))return a}catch{}return kG}),n=(0,cs.useCallback)(a=>{if(Y5(a)){r(a);try{localStorage.setItem(_G,a)}catch{}}},[]),o=(0,cs.useMemo)(()=>{let a=th.findIndex(s=>s.id===t),i=th[a]||Y5(kG);return{timeWindow:i,windowIndex:a,windows:th,setWindow:n,zoomTo:s=>{let l=th[Math.min(Math.max(s,0),th.length-1)];l&&n(l.id)},days:Math.max(1,Math.ceil(i.minutes/1440))}},[t,n]);return cs.default.createElement(CG.Provider,{value:o},e)}function vl(){let e=(0,cs.useContext)(CG);if(!e)throw new Error("useTimeWindow must be used within a TimeWindowProvider");return e}var rh=Z(J());function xl({compact:e=!1}){let{windows:t,windowIndex:r,timeWindow:n,setWindow:o,zoomTo:a}=vl(),{darkMode:i}=ut(),s=qi(i),l={color:s.textSecondary};return rh.default.createElement("div",{className:"flex items-center rounded-lg p-1",style:{background:s.mutedBg}},rh.default.createElement("button",{onClick:()=>a(r-1),disabled:r<=0,title:"Zoom in (shorter window)","aria-label":"Zoom in",className:"aa-zoom px-2 py-1 text-sm rounded-md disabled:opacity-30 disabled:cursor-not-allowed",style:l},"\u2212"),rh.default.createElement("select",{value:n.id,onChange:u=>o(u.target.value),"aria-label":"Time window",className:`aa-field px-2 py-1 mx-1 text-sm rounded-md shadow ${e?"":"min-w-[4.5rem]"}`,style:{background:s.cardBg,color:s.textPrimary,border:`1px solid ${s.cardBorder}`}},t.map(u=>rh.default.createElement("option",{key:u.id,value:u.id},u.label))),rh.default.createElement("button",{onClick:()=>a(r+1),disabled:r>=t.length-1,title:"Zoom out (longer window)","aria-label":"Zoom out",className:"aa-zoom px-2 py-1 text-sm rounded-md disabled:opacity-30 disabled:cursor-not-allowed",style:l},"+"))}var $n=Z(J());var Rr=Z(J());var Vx=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},rd=e=>{if(e==null)return 0;let t=typeof e=="string"?e:JSON.stringify(e);return Math.round(t.length/4)},LC=e=>{let t=e?.spans||[],r=null;for(let m of t){let y=m.tokens||{},b=(y.input||0)+(y.output||0);b>0&&(!r||b>r.total)&&(r={input:y.input||0,output:y.output||0,thinking:y.thinking||0,cached:y.cached||0,total:b})}if(!r)return null;let n=m=>{for(let y of t){let b=(y.attributes||{})[m];if(b)return b}return null},o=(m,...y)=>{let b=Number(n(m));if(Number.isFinite(b)&&b>0)return b;for(let g of y){let h=n(g);if(h)return rd(h)}return 0},a=o("prompt.input.instructions.tokens","prompt.input.instructions","llm.instructions"),i=o("prompt.input.tools.tokens","prompt.input.tools","llm.tools"),s=o("prompt.input.mcp_tools.tokens","prompt.input.mcp_tools"),l=o("prompt.input.messages.tokens","prompt.input.messages","llm.messages"),u=0;for(let m of t){let y=m.attributes||{},b=y["tool.output.result"]||y["tool.result"],g=y["tool.input.args"]||y["tool.arguments"];b&&(u+=rd(b)),g&&(u+=rd(g))}u=Math.min(u,r.input);let c=["messages","toolResults","instructions","toolSchemas","mcpSchemas"],d={messages:l,toolResults:u,instructions:a,toolSchemas:i,mcpSchemas:s},p=c.reduce((m,y)=>m+d[y],0),f;if(p>0&&r.input>0){let m=r.input/p;f={};for(let b of c)f[b]=Math.round(d[b]*m);let y=r.input-c.reduce((b,g)=>b+f[g],0);if(y!==0){let b=c.reduce((g,h)=>f[h]>f[g]?h:g);f[b]=Math.max(f[b]+y,0)}}else f={messages:r.input,toolResults:0,instructions:0,toolSchemas:0,mcpSchemas:0};return{used:r.total,limit:Vx(e.model),cached:r.cached,thinking:r.thinking,estimated:p>0,segments:[{key:"messages",label:"Messages",tokens:f.messages},{key:"tool_results",label:"Tool results",tokens:f.toolResults},{key:"instructions",label:"Instructions",tokens:f.instructions},{key:"tool_schemas",label:"Tool schemas",tokens:f.toolSchemas},{key:"mcp_schemas",label:"MCP tool schemas",tokens:f.mcpSchemas},{key:"output",label:"Generated output",tokens:r.output}]}};var ewe={messages:"#2563eb",tool_results:"#5b84ec",instructions:"#85a3f0",tool_schemas:"#a6bcf4",mcp_schemas:"#c3d2f8",memory:"#dce4fb",output:"#7c3aed"},nh=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 nd({used:e,limit:t=2e5,segments:r=[],cached:n=0,thinking:o=0,compact:a=!1,defaultOpen:i=!1,label:s="Context window",estimated:l=!1,darkMode:u=!1}){let[c,d]=(0,Rr.useState)(i),p=r.filter(w=>w.tokens>0),f=e??p.reduce((w,k)=>w+k.tokens,0),m=t>0?f/t:0,y=m>=.9?"#dc2626":m>=.75?"#eab308":null,b=u?"rgba(255,255,255,0.4)":"#9ca3af",g=u?"rgba(255,255,255,0.6)":"#6b7280",h=u?"rgba(255,255,255,0.75)":"#4b5563",v=u?"rgba(255,255,255,0.1)":"#f3f4f6",x=`${nh(f)} / ${nh(t)} (${Math.round(m*100)}%)`,S=w=>w.key==="messages"&&y?y:w.color||ewe[w.key]||"#2563eb",_=w=>Rr.default.createElement("div",{style:{display:"flex",height:w,borderRadius:"999px",overflow:"hidden",background:v,flex:1}},p.map(k=>Rr.default.createElement("div",{key:k.key,title:`${k.label} \xB7 ${nh(k.tokens)}`,style:{width:`${Math.min(k.tokens/t*100,100)}%`,background:S(k)}})));return a?Rr.default.createElement("span",{title:`${s}: ${x}`,style:{display:"inline-flex",alignItems:"center",gap:"6px",width:"132px",verticalAlign:"middle"}},_("6px"),Rr.default.createElement("span",{style:{fontSize:"11px",fontFamily:"'SF Mono', 'Fira Code', monospace",color:y||b,whiteSpace:"nowrap"}},Math.round(m*100),"%")):Rr.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"}},Rr.default.createElement("div",{onClick:w=>{w.stopPropagation(),d(!c)},style:{display:"flex",alignItems:"center",justifyContent:"space-between",cursor:"pointer"}},Rr.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:g}},s,l&&Rr.default.createElement("span",{style:{color:b,fontWeight:400}}," \xB7 estimated")),Rr.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:"8px"}},Rr.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",fontWeight:600,color:y||h}},x),Rr.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:b,display:"inline-block",transform:c?"rotate(90deg)":"none",transition:"transform 0.15s ease"}},">"))),Rr.default.createElement("div",{style:{display:"flex",marginTop:"8px"}},_("9px")),m>=.9&&Rr.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&&Rr.default.createElement("div",{style:{marginTop:"10px",display:"grid",gap:"5px"}},[...p,{key:"__free",label:"Free space",tokens:Math.max(t-f,0)}].map(w=>Rr.default.createElement("div",{key:w.key,style:{display:"flex",alignItems:"center",gap:"8px"}},Rr.default.createElement("span",{style:{width:"9px",height:"9px",borderRadius:"2px",flexShrink:0,background:w.key==="__free"?v:S(w),border:w.key==="__free"?`1px solid ${u?"rgba(255,255,255,0.25)":"#d1d5db"}`:"none"}}),Rr.default.createElement("span",{style:{fontSize:"13px",color:h,flex:1}},w.label),Rr.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",color:g,width:"56px",textAlign:"right"}},nh(w.tokens)),Rr.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",color:b,width:"46px",textAlign:"right"}},t>0?`${(w.tokens/t*100).toFixed(1)}%`:"\u2014"))),(n>0||o>0)&&Rr.default.createElement("div",{style:{marginTop:"4px",paddingTop:"6px",borderTop:`1px solid ${u?"rgba(255,255,255,0.08)":"#f3f4f6"}`,display:"flex",gap:"16px",fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:b}},n>0&&Rr.default.createElement("span",null,Rr.default.createElement("span",{style:{color:"#2563eb"}},"[=]")," cached prefix ",nh(n)),o>0&&Rr.default.createElement("span",null,Rr.default.createElement("span",{style:{color:"#7c3aed"}},"[~]")," thinking ",nh(o)))))}var wt=Z(J());var $e=Z(J());var Xn=Z(J());var we=Z(J());var EG=["ui","json-ui","genui"],Gp="render_ui",Fs=e=>e!=null&&typeof e=="object"&&!Array.isArray(e),X5=e=>{if(typeof e=="string")try{return JSON.parse(e)}catch{return}};function Yp(e){let t=typeof e=="string"?X5(e):e;if(Array.isArray(t))return t.every(Fs)?t:null;if(Fs(t)){if(Array.isArray(t.blocks))return t.blocks.every(Fs)?t.blocks:null;if(Array.isArray(t.ui))return t.ui.every(Fs)?t.ui:null}return null}function Z5(e,t){let r=String(e||"").trim().toLowerCase();if(EG.includes(r))return Yp(t);if(r==="json"){let n=X5(t);return Fs(n)&&Array.isArray(n.ui)?Yp(n):null}return null}function J5(e){if(typeof e!="string")return null;let t=e.trim(),r=t.startsWith("{")&&t.endsWith("}"),n=t.startsWith("[")&&t.endsWith("]");if(!r&&!n)return null;let o=X5(t);if(o==null||typeof o!="object")return null;if(Array.isArray(o))return o.length>0&&o.every(s=>Fs(s)&&typeof s.type=="string")?{blocks:o}:{object:o};let a=Yp(o);return a?{blocks:a}:{object:o}}var twe=e=>Fs(e)?e.function?.name||e.name:void 0,rwe=e=>Fs(e)?e.function?.arguments??e.arguments??e.input:void 0;function oh(e,{callId:t}={}){if(!Fs(e))return null;if(e.tool_name===Gp&&e.tool_arguments!=null){let o=Yp(e.tool_arguments);if(o)return o}let r=e.tool_calls,n=[];if(Array.isArray(r)){let o=r.some(a=>Fs(a)&&a.id!=null);r.forEach(a=>{if(twe(a)!==Gp||t!=null&&o&&a.id!==t)return;let i=Yp(rwe(a));i&&n.push(...i)})}else if(Fs(r)&&e.tool_name===Gp){let o=Yp(r);o&&n.push(...o)}return n.length>0?n:null}function zC(e){return typeof e=="string"&&/^(https?:\/\/|data:image\/)/i.test(e.trim())}function BC(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 NG(e){try{return new URL(String(e).trim()).host}catch{return""}}var DG=["#2a78d6","#eb6834","#1baf7a","#eda100","#e87ba4","#008300","#4a3aa7","#e34948"],nwe=["#3987e5","#d95926","#199e70","#c98500","#d55181","#008300","#9085e9","#e66767"],Gx=DG.length,TG=220,ah=e=>e!=null&&typeof e=="object"&&!Array.isArray(e),er=e=>e==null?"":typeof e=="object"?JSON.stringify(e):String(e),jG=e=>{if(typeof e!="number"||!Number.isFinite(e))return er(e);let t=Math.abs(e);return t>=1e9?`${(e/1e9).toFixed(1).replace(/\.0$/,"")}B`:t>=1e6?`${(e/1e6).toFixed(1).replace(/\.0$/,"")}M`:t>=1e4?`${(e/1e3).toFixed(1).replace(/\.0$/,"")}K`:e.toLocaleString()},tI=(e,t)=>typeof t=="string"&&Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0,OG={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"]}},owe={positive:{light:"#15803d",dark:"#4ade80"},negative:{light:"#b91c1c",dark:"#f87171"}},Q5=e=>({width:"100%",padding:"6px 10px",borderRadius:"8px",border:`1px solid ${e.inputBorder}`,background:e.inputBg,color:e.textPrimary,fontFamily:"inherit",fontSize:"13px"}),rI=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"}),ih=e=>({fontSize:"13px",fontWeight:600,color:e.textPrimary,margin:0});function Ou({block:e,reason:t,colors:r,darkMode:n}){return we.default.createElement("div",{className:"text-xs",style:{color:r.textMuted}},we.default.createElement("div",{className:"mb-1"},"Unsupported block",e&&e.type?` \u201C${er(e.type)}\u201D`:"",t?` \u2014 ${t}`:""),we.default.createElement("pre",{style:{...rI(n),maxHeight:"160px",overflowY:"auto"}},JSON.stringify(e,null,2)))}function awe({block:e,colors:t,darkMode:r,onAction:n}){let o=zC(e.image_url)&&BC(e.image_url)?e.image_url.trim():null;return we.default.createElement("div",{className:"overflow-hidden",style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",background:t.innerBg}},o&&we.default.createElement("img",{src:o,alt:er(e.title),style:{width:"100%",maxHeight:"220px",objectFit:"cover",display:"block"}}),we.default.createElement("div",{className:"p-3 space-y-1.5"},e.title!=null&&we.default.createElement("div",{style:ih(t)},er(e.title)),e.body!=null&&we.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},we.default.createElement(Us,{text:er(e.body),darkMode:r,onUiAction:n})),e.footer!=null&&we.default.createElement("div",{className:"text-xs pt-1",style:{color:t.textMuted,borderTop:`1px solid ${t.cardBorder}`}},er(e.footer))))}function $G({block:e,colors:t,darkMode:r}){let n=e.delta!=null?er(e.delta):null,o=e.tone||(n&&n.trim().startsWith("-")?"negative":n?"positive":"neutral"),a=tI(owe,o),i=a?a[r?"dark":"light"]:t.textMuted,s=typeof e.value=="number"?jG(e.value):er(e.value);return we.default.createElement("div",{style:{background:t.innerBg,border:`1px solid ${t.cardBorder}`,borderRadius:"10px",padding:"10px 12px"}},we.default.createElement("div",{className:"text-xs",style:{color:t.textMuted}},er(e.label)),we.default.createElement("div",{className:"text-lg font-semibold leading-tight mt-0.5",style:{color:t.textPrimary}},s),n&&we.default.createElement("div",{className:"text-xs mt-0.5 font-medium",style:{color:i}},n))}function iwe({block:e,colors:t,darkMode:r}){let n=Array.isArray(e.items)?e.items.filter(ah):[];return n.length===0?we.default.createElement(Ou,{block:e,reason:"stats needs an items array",colors:t,darkMode:r}):we.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(140px, 1fr))",gap:"8px"}},n.map((o,a)=>we.default.createElement($G,{key:a,block:o,colors:t,darkMode:r})))}var eI=(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"}),swe=e=>({padding:"6px 10px",borderBottom:`1px solid ${e.borderStrong}`,color:e.textSecondary,fontSize:"11px",fontWeight:600,textAlign:"left",fontFamily:Pt.mono,textTransform:"uppercase",letterSpacing:"0.04em",whiteSpace:"nowrap"});function LG({columns:e,rows:t,colors:r,renderCell:n}){return we.default.createElement("div",{style:{overflowX:"auto"}},we.default.createElement("table",{className:"text-sm",style:{width:"100%",borderCollapse:"collapse"}},we.default.createElement("thead",null,we.default.createElement("tr",null,e.map((o,a)=>we.default.createElement("th",{key:a,style:swe(r)},er(o))))),we.default.createElement("tbody",null,t.map((o,a)=>we.default.createElement("tr",{key:a},e.map((i,s)=>{let l=o[s];return we.default.createElement("td",{key:s,style:eI(r,typeof l=="number")},n?n(l):typeof l=="number"?l.toLocaleString():er(l))}))))))}function lwe({block:e,colors:t,darkMode:r}){let n=Array.isArray(e.columns)?e.columns:null,o=Array.isArray(e.rows)?e.rows:null;if(!n||!o)return we.default.createElement(Ou,{block:e,reason:"table needs columns and rows arrays",colors:t,darkMode:r});let a=o.map(i=>Array.isArray(i)?i:ah(i)?n.map(s=>i[s]):[i]);return we.default.createElement("div",null,e.title!=null&&we.default.createElement("div",{className:"mb-1.5",style:ih(t)},er(e.title)),we.default.createElement(LG,{columns:n,rows:a,colors:t}))}var uwe=e=>{let t=e[0];return Object.keys(t).find(r=>typeof t[r]=="string")||Object.keys(t)[0]},cwe=(e,t)=>Object.keys(e[0]).filter(r=>r!==t&&typeof e[0][r]=="number");function dwe({block:e,colors:t,darkMode:r}){let n=String(e.chart||e.kind||"bar").toLowerCase(),o=Array.isArray(e.data)?e.data.filter(ah):[];if(o.length===0)return we.default.createElement(Ou,{block:e,reason:"chart needs a data array of objects",colors:t,darkMode:r});let a=typeof e.x=="string"?e.x:uwe(o),i=Array.isArray(e.series)?e.series.filter(b=>typeof b=="string"):[],s=(i.length>0?i:cwe(o,a)).slice(0,Gx);if(!a||s.length===0)return we.default.createElement(Ou,{block:e,reason:"chart needs an x key and at least one series",colors:t,darkMode:r});let l=r?nwe:DG,u=t.cardBg,c={fontSize:10,fill:t.textMuted},d=we.default.createElement(Uc,{contentStyle:{background:u,border:`1px solid ${t.cardBorder}`,borderRadius:"8px",fontSize:"12px"},labelStyle:{color:t.textPrimary,fontWeight:600,marginBottom:"4px"},itemStyle:{color:t.textCell},formatter:b=>typeof b=="number"?b.toLocaleString():er(b)}),p=s.length>1||n==="pie"?we.default.createElement(DS,{wrapperStyle:{fontSize:"11px",color:t.textSecondary},iconSize:10}):null,f=we.default.createElement(we.default.Fragment,null,we.default.createElement(Su,{stroke:t.cardBorder,vertical:!1}),we.default.createElement(Au,{dataKey:a,stroke:t.borderStrong,tick:c,tickLine:!1}),we.default.createElement(Nu,{stroke:t.borderStrong,tick:c,tickLine:!1,axisLine:!1,tickFormatter:jG,width:44})),m={top:8,right:12,bottom:0,left:0},y;if(n==="line")y=we.default.createElement(H5,{data:o,margin:m},f,d,p,s.map((b,g)=>we.default.createElement(fC,{key:b,type:"monotone",dataKey:b,stroke:l[g],strokeWidth:2,dot:{r:4,strokeWidth:2,stroke:u,fill:l[g]},activeDot:{r:5,strokeWidth:2,stroke:u},isAnimationActive:!1})));else if(n==="area")y=we.default.createElement(td,{data:o,margin:m},f,d,p,s.map((b,g)=>we.default.createElement(_u,{key:b,type:"monotone",dataKey:b,stroke:l[g],strokeWidth:2,fill:l[g],fillOpacity:.12,dot:{r:3,strokeWidth:2,stroke:u,fill:l[g]},isAnimationActive:!1})));else if(n==="pie"){let b=s[0],g=[...o].sort((x,S)=>(Number(S[b])||0)-(Number(x[b])||0)),h=g.slice(0,Gx),v=g.slice(Gx);v.length>0&&(h[Gx-1]={[a]:"Other",[b]:v.reduce((x,S)=>x+(Number(S[b])||0),Number(h[Gx-1][b])||0)}),y=we.default.createElement(G5,{margin:m},d,p,we.default.createElement(R_,{data:h,dataKey:b,nameKey:a,innerRadius:44,outerRadius:80,paddingAngle:2,stroke:u,strokeWidth:2,isAnimationActive:!1},h.map((x,S)=>we.default.createElement(vu,{key:S,fill:l[S]}))))}else y=we.default.createElement(q5,{data:o,margin:m,barCategoryGap:"25%",barGap:2},f,d,p,s.map((b,g)=>we.default.createElement(xC,{key:b,dataKey:b,fill:l[g],radius:[4,4,0,0],maxBarSize:24,isAnimationActive:!1})));return we.default.createElement("div",null,e.title!=null&&we.default.createElement("div",{className:"mb-1",style:ih(t)},er(e.title)),we.default.createElement("div",{style:{width:"100%",height:TG,minWidth:0}},we.default.createElement(_c,{width:"100%",height:TG},y)))}function pwe({block:e,colors:t,darkMode:r,onAction:n}){let o=Array.isArray(e.items)?e.items:null;if(!o)return we.default.createElement(Ou,{block:e,reason:"list needs an items array",colors:t,darkMode:r});let a=e.ordered?"ol":"ul";return we.default.createElement("div",null,e.title!=null&&we.default.createElement("div",{className:"mb-1",style:ih(t)},er(e.title)),we.default.createElement(a,{className:`${e.ordered?"list-decimal":"list-disc"} pl-5 text-sm space-y-0.5`,style:{color:t.textCell}},o.map((i,s)=>we.default.createElement("li",{key:s},typeof i=="string"?we.default.createElement(Us,{text:i,darkMode:r,onUiAction:n}):er(i)))))}function fwe({block:e,colors:t}){let r=Number(e.value),n=Number.isFinite(r)?Math.max(0,Math.min(100,r)):0;return we.default.createElement("div",null,we.default.createElement("div",{className:"flex items-center justify-between text-xs mb-1"},we.default.createElement("span",{style:{color:t.textCell}},er(e.label)),we.default.createElement("span",{className:"font-mono",style:{color:t.textMuted}},Math.round(n),"%")),we.default.createElement("div",{style:{height:"8px",borderRadius:"999px",background:t.trackBg,overflow:"hidden"}},we.default.createElement("div",{style:{width:`${n}%`,height:"100%",background:Qo,borderRadius:"999px",transition:"width 0.3s ease"}})))}var mwe=["text","textarea","number","select","checkbox"],R5=e=>er(e.name||e.label),PG=e=>er(e.label||e.name),MG=e=>mwe.includes(e.type)?e.type:"text";function gwe({block:e,colors:t,darkMode:r,onAction:n}){let o=(Array.isArray(e.fields)?e.fields:[]).filter(p=>ah(p)&&(p.name||p.label)),[a,i]=(0,we.useState)(()=>Object.fromEntries(o.map(p=>[R5(p),MG(p)==="checkbox"?!1:""]))),[s,l]=(0,we.useState)(!1);if(o.length===0)return we.default.createElement(Ou,{block:e,reason:"form needs fields",colors:t,darkMode:r});let u=e.submit!=null?er(e.submit):"Submit",c=(p,f)=>i(m=>({...m,[p]:f}));return we.default.createElement("form",{onSubmit:p=>{p.preventDefault();let f=o.map(m=>{let y=a[R5(m)];return`${PG(m)}: ${typeof y=="boolean"?y?"yes":"no":er(y)}`}).join("; ");l(!0),n&&n({kind:"form",text:`${e.submit!=null?er(e.submit):"Submitted"}: ${f}`,values:{...a}})},className:"space-y-2.5",style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",background:t.innerBg,padding:"12px"}},e.title!=null&&we.default.createElement("div",{style:ih(t)},er(e.title)),o.map(p=>{let f=R5(p),m=MG(p),y=PG(p),b=`genui-field-${f.replace(/\W+/g,"-")}`;return m==="checkbox"?we.default.createElement("label",{key:f,className:"flex items-center gap-2 text-sm",style:{color:t.textCell}},we.default.createElement("input",{type:"checkbox",checked:!!a[f],onChange:g=>c(f,g.target.checked),style:{accentColor:Qo}}),y):we.default.createElement("div",{key:f},we.default.createElement("label",{htmlFor:b,className:"block text-xs mb-1",style:{color:t.textSecondary}},y,p.required?" *":""),m==="textarea"?we.default.createElement("textarea",{id:b,name:f,value:a[f],onChange:g=>c(f,g.target.value),placeholder:p.placeholder!=null?er(p.placeholder):void 0,required:!!p.required,rows:3,className:"aa-field",style:{...Q5(t),resize:"vertical"}}):m==="select"?we.default.createElement("select",{id:b,name:f,value:a[f],onChange:g=>c(f,g.target.value),required:!!p.required,className:"aa-field",style:Q5(t)},we.default.createElement("option",{value:""},p.placeholder!=null?er(p.placeholder):"Select\u2026"),(Array.isArray(p.options)?p.options:[]).map((g,h)=>we.default.createElement("option",{key:h,value:er(g)},er(g)))):we.default.createElement("input",{id:b,name:f,type:m==="number"?"number":"text",value:a[f],onChange:g=>c(f,m==="number"&&g.target.value!==""?Number(g.target.value):g.target.value),placeholder:p.placeholder!=null?er(p.placeholder):void 0,required:!!p.required,className:"aa-field",style:Q5(t)}))}),we.default.createElement("div",{className:"flex items-center gap-3 pt-1"},we.default.createElement("button",{type:"submit","data-testid":"genui-form-submit",style:{padding:"6px 14px",borderRadius:"8px",fontSize:"13px",fontWeight:500,background:Qo,color:"#ffffff",border:"1px solid transparent",cursor:"pointer"}},u),s&&we.default.createElement("span",{className:"text-xs",style:{color:t.textMuted}},"Sent to the agent")))}function hwe({block:e,colors:t,darkMode:r,onAction:n}){let o=Array.isArray(e.options)?e.options:null,[a,i]=(0,we.useState)(null);return!o||o.length===0?we.default.createElement(Ou,{block:e,reason:"choices needs options",colors:t,darkMode:r}):we.default.createElement("div",null,e.prompt!=null&&we.default.createElement("div",{className:"text-sm mb-1.5",style:{color:t.textCell}},er(e.prompt)),we.default.createElement("div",{className:"flex flex-wrap gap-2"},o.map((s,l)=>{let u=er(s),c=a===l;return we.default.createElement("button",{key:l,type:"button","data-testid":"genui-choice",onClick:()=>{i(l),n&&n({kind:"choice",text:u})},style:{padding:"5px 12px",borderRadius:"999px",fontSize:"13px",cursor:"pointer",border:`1px solid ${c?Qo:t.inputBorder}`,background:c?Qo:"transparent",color:c?"#ffffff":t.textCell}},u)})))}function ywe({url:e,alt:t,colors:r,darkMode:n}){let[o,a]=(0,we.useState)(!1);if(o)return we.default.createElement("img",{src:e,alt:t,style:{maxWidth:"100%",borderRadius:"8px",display:"block"}});let i=NG(e);return we.default.createElement("button",{type:"button",onClick:()=>a(!0),"data-testid":"genui-image-load",className:"text-xs w-full",style:{border:`1px dashed ${r.cardBorder}`,borderRadius:"8px",padding:"14px 12px",color:r.textMuted,background:n?"rgba(255,255,255,0.03)":"#f9fafb"}},"Load image from ",i||"another site")}function vwe({block:e,colors:t,darkMode:r}){if(!zC(e.url))return we.default.createElement(Ou,{block:e,reason:"image URL must be http(s) or data:",colors:t,darkMode:r});let n=e.url.trim(),o=e.alt!=null?er(e.alt):"";return we.default.createElement("figure",{style:{margin:0}},BC(n)?we.default.createElement("img",{src:n,alt:o,style:{maxWidth:"100%",borderRadius:"8px",display:"block"}}):we.default.createElement(ywe,{url:n,alt:o,colors:t,darkMode:r}),e.caption!=null&&we.default.createElement("figcaption",{className:"text-xs mt-1",style:{color:t.textMuted}},er(e.caption)))}function xwe({block:e,colors:t,darkMode:r,onAction:n}){let[o,a]=(tI(OG,e.tone)||OG.info)[r?"dark":"light"];return we.default.createElement("div",{style:{background:o,borderLeft:`3px solid ${a}`,borderRadius:"8px",padding:"10px 12px"}},e.title!=null&&we.default.createElement("div",{className:"text-sm font-semibold mb-0.5",style:{color:a}},er(e.title)),we.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},we.default.createElement(Us,{text:er(e.body),darkMode:r,onUiAction:n})))}function bwe({block:e,colors:t,darkMode:r}){return we.default.createElement("div",null,e.language!=null&&we.default.createElement("div",{className:"text-xs font-mono mb-1",style:{color:t.textMuted}},er(e.language)),we.default.createElement("pre",{style:rI(r)},er(e.code)))}function IG({block:e,colors:t,darkMode:r,onAction:n}){let o=e.text??e.body??e.content??e.markdown;return we.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},we.default.createElement(Us,{text:er(o),darkMode:r,onUiAction:n}))}var wwe=3;function FC({value:e,colors:t,darkMode:r,depth:n}){if(e==null||typeof e!="object")return typeof e=="boolean"?we.default.createElement("span",{className:"font-mono"},String(e)):typeof e=="number"?we.default.createElement("span",{style:{fontVariantNumeric:"tabular-nums"}},e.toLocaleString()):we.default.createElement("span",null,er(e));if(n>=wwe)return we.default.createElement("pre",{style:{...rI(r),maxHeight:"160px",overflowY:"auto"}},JSON.stringify(e,null,2));if(Array.isArray(e)){if(e.length===0)return we.default.createElement("span",{style:{color:t.textMuted}},"\u2014");if(e.every(ah)){let a=[...new Set(e.flatMap(i=>Object.keys(i)))];return we.default.createElement(LG,{columns:a,rows:e.map(i=>a.map(s=>i[s])),colors:t,renderCell:i=>we.default.createElement(FC,{value:i,colors:t,darkMode:r,depth:n+1})})}return e.every(a=>a==null||typeof a!="object")?we.default.createElement("span",null,e.map(er).join(", ")):we.default.createElement("ul",{className:"list-disc pl-5 space-y-0.5"},e.map((a,i)=>we.default.createElement("li",{key:i},we.default.createElement(FC,{value:a,colors:t,darkMode:r,depth:n+1}))))}let o=Object.entries(e);return o.length===0?we.default.createElement("span",{style:{color:t.textMuted}},"{}"):we.default.createElement("table",{className:"text-sm",style:{borderCollapse:"collapse",width:n===0?"100%":"auto"}},we.default.createElement("tbody",null,o.map(([a,i])=>we.default.createElement("tr",{key:a},we.default.createElement("th",{scope:"row",className:"font-mono text-xs",style:{...eI(t,!1),color:t.textSecondary,fontWeight:500,whiteSpace:"nowrap",width:"1%"}},a),we.default.createElement("td",{style:eI(t,!1)},we.default.createElement(FC,{value:i,colors:t,darkMode:r,depth:n+1}))))))}function Swe({block:e,colors:t,darkMode:r}){let n="value"in e?e.value:e.data;return we.default.createElement("div",{style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",overflow:"hidden"}},e.title!=null&&we.default.createElement("div",{className:"px-3 pt-2",style:ih(t)},er(e.title)),we.default.createElement("div",{className:"px-1 pb-1",style:{overflowX:"auto"}},we.default.createElement(FC,{value:n,colors:t,darkMode:r,depth:0})))}var kwe={card:awe,stat:$G,stats:iwe,table:lwe,chart:dwe,list:pwe,progress:fwe,form:gwe,choices:hwe,image:vwe,callout:xwe,code:bwe,object:Swe,text:IG,markdown:IG};function bl({blocks:e,onAction:t,darkMode:r=!1}){let n=Array.isArray(e)?e.filter(ah):[];if(n.length===0)return null;let o=qi(r);return we.default.createElement("div",{className:"space-y-3",onClick:a=>a.stopPropagation()},n.map((a,i)=>{let s=typeof a.type=="string"?a.type.toLowerCase():"unknown",l=tI(kwe,s);return we.default.createElement("div",{key:i,"data-testid":"genui-block","data-block-type":s},l?we.default.createElement(l,{block:a,colors:o,darkMode:r,onAction:t}):we.default.createElement(Ou,{block:a,colors:o,darkMode:r}))}))}var _we=/(\*\*[^*]+\*\*|\*[^*\n]+\*|`[^`]+`|\[[^\]]+\]\((?:https?:\/\/|\/)[^)\s]+\))/g,Yx=(e,t)=>e.split(_we).filter(Boolean).map((r,n)=>{let o=`${t}-${n}`;if(r.startsWith("**")&&r.endsWith("**"))return Xn.default.createElement("strong",{key:o},r.slice(2,-2));if(r.startsWith("*")&&r.endsWith("*")&&r.length>2)return Xn.default.createElement("em",{key:o},r.slice(1,-1));if(r.startsWith("`")&&r.endsWith("`"))return Xn.default.createElement("code",{key:o,className:"px-1 py-0.5 rounded text-[0.9em]",style:{background:"rgba(127,127,127,0.15)"}},r.slice(1,-1));let a=r.match(/^\[([^\]]+)\]\(((?:https?:\/\/|\/)[^)\s]+)\)$/);return a?Xn.default.createElement("a",{key:o,href:a[2],target:"_blank",rel:"noopener noreferrer",className:"underline text-blue-500"},a[1]):r}),zG=e=>/^\s*\|.*\|\s*$/.test(e),Cwe=e=>/^\s*\|(\s*:?-+:?\s*\|)+\s*$/.test(e),BG=e=>e.trim().replace(/^\|/,"").replace(/\|$/,"").split(/(?t.replace(/\\\|/g,"|").trim());function Us({text:e,onUiAction:t,darkMode:r}){if(!e)return null;let n=[],o=String(e).split(` -`),a=0,i=0;for(;aXn.default.createElement("th",{key:f,className:"text-left font-semibold px-2 py-1",style:{borderBottom:"1px solid rgba(127,127,127,0.35)"}},Yx(p,`th${d}-${f}`))))),Xn.default.createElement("tbody",null,c.map((p,f)=>Xn.default.createElement("tr",{key:f},u.map((m,y)=>Xn.default.createElement("td",{key:y,className:"px-2 py-1 align-top",style:{borderBottom:"1px solid rgba(127,127,127,0.15)"}},Yx(p[y]??"",`td${d}-${f}-${y}`)))))))));continue}if(/^\s*([-*]|\d+\.)\s+/.test(s)){let u=[];for(;aXn.default.createElement("li",{key:d},Yx(c,`li${i}-${d}`)))));continue}if(s.trim()===""){n.push(Xn.default.createElement("div",{key:i++,className:"h-2"})),a+=1;continue}n.push(Xn.default.createElement("div",{key:i++},Yx(s,`p${i}`))),a+=1}return Xn.default.createElement("div",{className:"break-words"},n)}var Qa=Z(J()),Awe=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"},Ewe=e=>Array.isArray(e.parameters)?e.parameters:e.parameters&&typeof e.parameters=="object"?Object.keys(e.parameters.properties||e.parameters):[];function nI({tool:e,darkMode:t}){let r=Ewe(e);return Qa.default.createElement("div",{style:{display:"grid",gap:"4px"}},e.description&&Qa.default.createElement("div",{className:"text-sm",style:{color:t?"rgba(255,255,255,0.75)":"#4b5563"}},e.description),Qa.default.createElement("div",{className:"text-xs font-mono",style:{color:t?"rgba(255,255,255,0.45)":"#9ca3af",display:"flex",flexWrap:"wrap",columnGap:"16px",rowGap:"4px"}},Qa.default.createElement("span",null,"params: ",r.length>0?r.join(", "):"none"),Qa.default.createElement("span",null,"source: ",Awe(e))))}function oI({tools:e,darkMode:t}){let[r,n]=(0,Qa.useState)(null),o=(e||[]).filter(s=>s&&s.name);if(o.length===0)return null;let a=o.find(s=>s.name===r),i=s=>({background:t?"rgba(34,197,94,0.12)":"#f0fdf4",color:t?"#86efac":"#15803d",border:`1px solid ${s?t?"#4ade80":"#22c55e":"transparent"}`,borderRadius:"6px",padding:"2px 8px",fontSize:"11px",cursor:"pointer"});return Qa.default.createElement("div",{style:{marginTop:"8px"}},Qa.default.createElement("div",{className:"flex items-center gap-1.5 flex-wrap font-mono"},Qa.default.createElement("span",{className:"text-xs uppercase",style:{letterSpacing:"0.05em",color:t?"rgba(255,255,255,0.45)":"#9ca3af"}},"tools"),o.map(s=>Qa.default.createElement("button",{key:s.name,onClick:l=>{l.stopPropagation(),n(r===s.name?null:s.name)},title:r===s.name?"Hide definition":"Show definition",style:i(r===s.name)},"\u2699 ",s.name))),a&&Qa.default.createElement("div",{onClick:s=>s.stopPropagation(),style:{marginTop:"6px",padding:"8px 10px",borderRadius:"8px",background:t?"rgba(34,197,94,0.06)":"#f7fef9",border:`1px solid ${t?"rgba(34,197,94,0.25)":"#bbf7d0"}`}},Qa.default.createElement(nI,{tool:a,darkMode:t})))}var Nwe=["application/json","application/xml","application/x-yaml","application/csv"],Twe=/\.(csv|md|txt|json|ya?ml)$/i;function FG(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/")||Nwe.includes(t)||Twe.test(r)?"text":"file"}function UG(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 WG(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 HG=e=>e==null?null:e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,Xx=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}},Owe=["text","output","body","content"],qG=e=>{if(e==null)return null;if(typeof e=="object")return e;try{return JSON.parse(e)}catch{return null}},Pwe=e=>{let t=qG(e.tool_result)??qG(e.content);if(!t||typeof t!="object"||Array.isArray(t))return null;let r=Owe.find(a=>typeof t[a]=="string"&&t[a].trim().length>0);if(!r)return null;let n=[t.error&&"error",t.status!=null&&`status ${t.status}`,typeof t.url=="string"&&t.url.replace(/^https?:\/\//,""),typeof t.agent=="string"&&`\u2192 ${t.agent}`,t.truncated&&"truncated"].filter(Boolean).join(" \xB7 "),o=Object.fromEntries(Object.entries(t).filter(([a])=>a!==r));return{field:r,meta:n,body:t[r],rest:o}},Mwe=e=>!!(e.tool_name||e.tool_call_id||e.tool_arguments||e.tool_result||(e.tool_calls||[]).length>0||e.duration_ms!=null||Xx(e.content)),GG=280,Iwe=["tool","system","developer"],Zx=(e,t=GG)=>e.replace(/\s+/g," ").trim().slice(0,t),aI=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)}},YG=e=>{let t=e.tool_calls;return t?Array.isArray(t)?t.map(r=>({name:r.function?.name||r.name||e.tool_name,args:aI(r.function?.arguments??r.arguments??r.input)})):[{name:e.tool_name,args:aI(t)}]:[]},XG=e=>!!(e&&String(e).trim()&&String(e).trim()!=="\u2014"),Dwe=e=>{let t=(e||[]).filter(Boolean),r=new Map,n=new Set;return t.forEach((o,a)=>{if(o.role!=="assistant"||XG(o.content))return;let i=YG(o);if(i.length===0)return;let s=new Set;Array.isArray(o.tool_calls)?o.tool_calls.forEach(u=>u.id&&s.add(u.id)):o.tool_call_id&&s.add(o.tool_call_id);let l=[];for(let u=a+1;u0&&c.tool_call_id&&!s.has(c.tool_call_id))break;l.push(u)}l.length!==0&&(l.forEach((u,c)=>{let d=t[u],p=i.find(f=>f.name&&f.name===d.tool_name)||i[Math.min(c,i.length-1)];p&&p.args&&!d.tool_arguments&&r.set(u,{tool_arguments:p.args,created_at:o.created_at||d.created_at})}),n.add(a))}),t.map((o,a)=>r.has(a)?{...o,...r.get(a)}:o).filter((o,a)=>!n.has(a))},KG=e=>Iwe.includes(e.role)&&typeof e.content=="string"&&Zx(e.content).length>=GG,jwe=({message:e,darkMode:t})=>{let r=e.trace_duration_ms||0;if(!r||e.span_duration_ms==null)return null;let n=Math.min((e.span_start_ms||0)/r*100,98),o=Math.max(e.span_duration_ms/r*100,2),a=e.role==="tool"?"#22c55e":e.role==="assistant"?"#ef4444":"#60a5fa";return $e.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"}},$e.default.createElement("span",{style:{position:"absolute",top:0,bottom:0,left:`${n}%`,width:`${Math.min(o,100-n)}%`,borderRadius:"999px",background:a}}))},UC=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}),jn=(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}}},VG={image:"IMG",document:"PDF",text:"TXT",file:"FILE"};function WC({attachments:e,darkMode:t,testId:r,onRemove:n,removeTestId:o}){let a=(e||[]).filter(Boolean);if(a.length===0)return null;let i=qi(t);return $e.default.createElement("div",{className:"flex flex-wrap gap-2 mt-1.5"},a.map((s,l)=>{let u=String(s.content_type||""),c=(s.kind==="image"||u.startsWith("image/"))&&WG(s.url),d=UG(s.byte_size);return $e.default.createElement("span",{key:s.id??`${s.filename}-${l}`,"data-testid":r,title:[s.filename,u,d].filter(Boolean).join(" \xB7 "),className:"inline-flex items-center gap-2 rounded-lg px-2 py-1 text-xs",style:{background:i.mutedBg,border:`1px solid ${i.cardBorder}`,color:i.textCell,maxWidth:"260px"}},c?$e.default.createElement("img",{src:s.url,alt:s.filename||"",style:{width:"36px",height:"36px",objectFit:"cover",borderRadius:"4px",flexShrink:0}}):$e.default.createElement("span",{className:"font-mono",style:{color:i.textMuted,flexShrink:0}},VG[s.kind]||VG.file),$e.default.createElement("span",{className:"min-w-0"},$e.default.createElement("span",{className:"block truncate"},s.filename||"attachment"),d&&$e.default.createElement("span",{className:"block font-mono",style:{color:i.textMuted}},d)),n&&$e.default.createElement("button",{type:"button","data-testid":o,onClick:p=>{p.stopPropagation(),n(s,l)},title:"Remove","aria-label":`Remove ${s.filename||"attachment"}`,className:"font-mono",style:{color:i.textMuted,background:"none",border:"none",cursor:"pointer",padding:"0 2px"}},"\u2715"))}))}var ZG=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},$we=(e,t)=>{let r=oh(e);if(r)return r;let n=t.find(o=>o&&o.role==="assistant"&&(e.tool_call_id?ZG(o).has(e.tool_call_id):oh(o)));return n?oh(n,{callId:e.tool_call_id}):null},Lwe=(e,t)=>{let r=ZG(e);return t.some(n=>n&&n.role==="tool"&&n.tool_name===Gp&&(!n.tool_call_id||r.size===0||r.has(n.tool_call_id)))};function ds({messages:e,darkMode:t,tools:r,onUiAction:n,onEditMessage:o,onDeleteMessage:a,testIdPrefix:i}){let[s,l]=(0,$e.useState)({}),[u,c]=(0,$e.useState)(null),[d,p]=(0,$e.useState)(""),[f,m]=(0,$e.useState)(!1),[y,b]=(0,$e.useState)(null),g=A=>l(C=>({...C,[A]:!C[A]})),h={textPrimary:t?"#ffffff":"#111827",textSecondary:t?"rgba(255,255,255,0.6)":"#6b7280",textMuted:t?"rgba(255,255,255,0.4)":"#9ca3af"},v=A=>i?`${i}-${A}`:void 0,x=A=>A.stopPropagation(),S=A=>{c(A.id),p(A.content||""),b(null)},_=()=>{c(null),b(null)},w=async A=>{if(!f){m(!0),b(null);try{await o(A,d),c(null)}catch(C){b(C.message||"Could not save the message")}finally{m(!1)}}},k=Dwe(e);return $e.default.createElement("div",{className:"space-y-3"},k.map(A=>{let C=jn(A.role,t),T=!!s[A.id],$=u===A.id,Q=!!((o||a)&&["user","assistant"].includes(A.role)),B=A.role==="tool"&&A.tool_name===Gp?$we(A,k):null,K=A.role==="assistant"&&!$?J5(A.content):null,N=A.role==="assistant"&&!Lwe(A,k)?oh(A):null,O=KG(A)&&!T,D=Mwe(A)||KG(A),P=Xx(A.tool_arguments),j=Xx(A.tool_result)||Xx(A.content),M=A.tool_calls&&(!Array.isArray(A.tool_calls)||A.tool_calls.length>0)?Xx(A.tool_calls):null,W=A.role==="tool"?Pwe(A):null,Y=A.tool_name?(r||[]).find(R=>R&&R.name===A.tool_name):null,L=A.role==="tool"?aI(A.tool_arguments):null,G=A.role==="tool"&&!!L,q=jn("assistant",t),oe=jn("tool",t),Me=A.role==="tool"&&!A.tool_arguments&&k.some(R=>R&&R.role==="assistant"&&(A.tool_call_id&&R.tool_call_id===A.tool_call_id||Array.isArray(R.tool_calls)&&R.tool_calls.some(te=>te.id&&te.id===A.tool_call_id))),ge=A.role==="assistant"&&!XG(A.content)?YG(A):[],ue=UC(t);return $e.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},$e.default.createElement("div",{className:`flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 ${D?"cursor-pointer":""}`,onClick:D?()=>g(A.id):void 0,style:T?{background:t?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.03)"}:{}},$e.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},(G?[q,oe]:[C]).map(R=>$e.default.createElement("span",{key:R.label,className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:R.background,color:R.color,textAlign:"center"}},R.label))),$e.default.createElement("div",{className:"min-w-0 flex-1"},$e.default.createElement("div",{className:"text-sm break-words",style:{color:h.textPrimary}},$?$e.default.createElement("div",{className:"space-y-2",onClick:x},$e.default.createElement("textarea",{"data-testid":v("editor"),value:d,onChange:R=>p(R.target.value),onKeyDown:R=>{R.key==="Escape"&&_(),R.key==="Enter"&&(R.metaKey||R.ctrlKey)&&w(A)},rows:Math.min(12,Math.max(3,d.split(` -`).length)),autoFocus:!0,className:"aa-field w-full",style:{padding:"8px 10px",borderRadius:"8px",border:`1px solid ${t?"rgba(255,255,255,0.2)":"#d1d5db"}`,background:t?"rgba(255,255,255,0.06)":"#ffffff",color:h.textPrimary,fontFamily:"inherit",fontSize:"13px",resize:"vertical"}}),$e.default.createElement("div",{className:"flex items-center gap-2 text-xs"},$e.default.createElement("button",{type:"button","data-testid":v("save"),onClick:()=>w(A),disabled:f,style:{padding:"4px 10px",borderRadius:"6px",background:"#ef4444",color:"#ffffff",border:"none",cursor:f?"wait":"pointer",fontWeight:500}},f?"Saving\u2026":"Save"),$e.default.createElement("button",{type:"button","data-testid":v("cancel"),onClick:_,disabled:f,style:{padding:"4px 10px",borderRadius:"6px",background:"transparent",color:h.textSecondary,border:`1px solid ${t?"rgba(255,255,255,0.2)":"#d1d5db"}`,cursor:"pointer"}},"Cancel"),y&&$e.default.createElement("span",{style:{color:"#dc2626"}},y))):B?$e.default.createElement("div",null,$e.default.createElement("div",{className:"font-mono text-xs mb-1",style:{color:oe.color}},"\u2699 ",A.tool_name," \xB7 ",B.length," block",B.length===1?"":"s"),$e.default.createElement(bl,{blocks:B,onAction:n,darkMode:t})):A.role==="tool"?$e.default.createElement("span",{style:{display:"grid",gap:"2px"}},L&&!Me&&$e.default.createElement("span",{className:"font-mono text-xs break-words"},A.tool_name&&$e.default.createElement("span",{style:{color:oe.color}},"\u2699 ",A.tool_name," "),$e.default.createElement("span",{style:{color:G?q.color:h.textMuted}},"in:")," ",Zx(L,180),L.length>180?"\u2026":""),W?$e.default.createElement("span",null,A.tool_name&&!(L&&!Me)&&$e.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:oe.color}},"\u2699 ",A.tool_name),(L||Me)&&$e.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:G?oe.color:h.textMuted}},"out:"),W.meta&&$e.default.createElement("span",{className:"font-mono text-xs mr-2",style:{color:h.textMuted}},W.meta),"\u201C",W.body.replace(/\s+/g," ").trim().slice(0,180),W.body.length>180?"\u2026":"","\u201D"):A.content?$e.default.createElement("span",null,A.tool_name&&!(L&&!Me)&&$e.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:oe.color}},"\u2699 ",A.tool_name),(L||Me)&&$e.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:G?oe.color:h.textMuted}},"out:"),"\u201C",Zx(A.content,180),A.content.replace(/\s+/g," ").trim().length>180?"\u2026":"","\u201D"):$e.default.createElement("span",{className:"whitespace-pre-wrap"},A.tool_name?`\u2192 ${A.tool_name}(...)`:"\u2014")):O?$e.default.createElement("span",{style:{color:h.textSecondary}},Zx(A.content),"\u2026"):ge.length>0?$e.default.createElement("span",{style:{display:"grid",gap:"2px"}},ge.map((R,te)=>$e.default.createElement("span",{key:te,className:"font-mono text-xs break-words"},R.name&&$e.default.createElement("span",{style:{color:h.textMuted}},R.name," "),$e.default.createElement("span",{style:{color:h.textMuted}},"in:")," ",R.args?$e.default.createElement($e.default.Fragment,null,Zx(R.args,180),R.args.length>180?"\u2026":""):"\u2014"))):K&&K.blocks?$e.default.createElement(bl,{blocks:K.blocks,onAction:n,darkMode:t}):K&&K.object?$e.default.createElement(bl,{blocks:[{type:"object",value:K.object}],darkMode:t}):$e.default.createElement(Us,{text:A.content||"\u2014",darkMode:t,onUiAction:n}),N&&!$&&$e.default.createElement("div",{className:"mt-2"},$e.default.createElement(bl,{blocks:N,onAction:n,darkMode:t})),A.role==="user"&&$e.default.createElement(WC,{attachments:A.attachments,darkMode:t,testId:v("attachment")})),$e.default.createElement("div",{className:"text-xs mt-0.5 font-mono flex items-center gap-2 flex-wrap",style:{color:h.textMuted}},Q&&!$&&$e.default.createElement("span",{className:"flex items-center gap-2 opacity-0 group-hover:opacity-100 focus-within:opacity-100 transition-opacity",onClick:x},o&&$e.default.createElement("button",{type:"button","data-testid":v("edit"),onClick:()=>S(A),className:"hover:underline",style:{color:h.textSecondary,background:"none",border:"none",padding:0,cursor:"pointer",font:"inherit"}},"Edit"),a&&$e.default.createElement("button",{type:"button","data-testid":v("delete"),onClick:()=>a(A),className:"hover:underline",style:{color:"#dc2626",background:"none",border:"none",padding:0,cursor:"pointer",font:"inherit"}},"Delete")),A.created_at&&$e.default.createElement("span",null,new Date(A.created_at).toLocaleTimeString()),A.tool_name&&A.role!=="tool"&&$e.default.createElement("span",{className:"px-1.5 py-0.5 rounded",style:{background:C.background,color:C.color}},"\u2699 ",A.tool_name),A.duration_ms!=null&&$e.default.createElement("span",null,HG(A.duration_ms)),(A.tool_calls||[]).length>0&&$e.default.createElement("span",null,A.tool_calls.length," tool call",A.tool_calls.length>1?"s":""),A.content_checksum&&$e.default.createElement("span",{title:"Content fingerprint"},"\u{1F512} ",A.content_checksum.slice(0,8)))),$e.default.createElement(jwe,{message:A,darkMode:t}),D&&$e.default.createElement("svg",{className:`w-3.5 h-3.5 mt-1 flex-shrink-0 transition-transform ${T?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:h.textMuted}},$e.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),T&&$e.default.createElement("div",{className:"ml-3 mt-1 mb-2 pl-4 space-y-2 border-l-2",style:{borderColor:C.color+"55"}},$e.default.createElement("div",{className:"flex flex-wrap gap-x-5 gap-y-1 text-xs font-mono",style:{color:h.textSecondary}},A.created_at&&$e.default.createElement("span",null,new Date(A.created_at).toLocaleString()),A.tool_call_id&&$e.default.createElement("span",null,"call: ",A.tool_call_id),A.duration_ms!=null&&$e.default.createElement("span",null,"took ",HG(A.duration_ms)),A.content_checksum&&$e.default.createElement("span",null,"\u{1F512} ",A.content_checksum)),P&&$e.default.createElement("div",null,$e.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:G?q.color:h.textMuted}},"Arguments",G?" \xB7 from the agent":""),$e.default.createElement("pre",{style:ue},P)),W?$e.default.createElement("div",null,$e.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:G?oe.color:h.textMuted}},"Result",G?" \xB7 from the tool":""),Object.keys(W.rest).length>0&&$e.default.createElement("pre",{style:ue},JSON.stringify(W.rest,null,2)),$e.default.createElement("div",{className:"text-xs uppercase tracking-wide mt-2 mb-1",style:{color:h.textMuted}},W.field," \xB7 ",W.body.length.toLocaleString()," chars"),$e.default.createElement("pre",{style:{...ue,whiteSpace:"pre-wrap",maxHeight:"320px",overflowY:"auto"}},W.body.slice(0,8e3),W.body.length>8e3?` -\u2026`:"")):j?$e.default.createElement("div",null,$e.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:h.textMuted}},A.role==="tool"?"Result":"Content (parsed)"),$e.default.createElement("pre",{style:ue},j)):A.role==="tool"&&A.content?$e.default.createElement("div",null,$e.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:G?oe.color:h.textMuted}},"Result",G?" \xB7 from the tool":""," \xB7 ",A.content.length.toLocaleString()," chars"),$e.default.createElement("pre",{style:{...ue,whiteSpace:"pre-wrap",maxHeight:"320px",overflowY:"auto"}},A.content.slice(0,8e3),A.content.length>8e3?` -\u2026`:"")):null,M&&$e.default.createElement("div",null,$e.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:h.textMuted}},"Requested tool calls"),$e.default.createElement("pre",{style:ue},M)),Y&&$e.default.createElement("div",null,$e.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:h.textMuted}},"Tool definition"),$e.default.createElement(nI,{tool:Y,darkMode:t}))))}))}var or=Z(J());var ln=Z(J());var Zn=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"}),JG=(e,t=200)=>{let r=String(e??"").replace(/\s+/g," ").trim();return r.length>t?`${r.slice(0,t)}\u2026`:r};function Xp({open:e,darkMode:t,size:r=14,style:n}){return ln.default.createElement("svg",{className:`flex-shrink-0 transition-transform ${e?"rotate-180":""}`,width:r,height:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:Zn(t).textMuted,...n},"aria-hidden":"true"},ln.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))}function HC({darkMode:e,id:t,children:r,style:n,className:o=""}){let a=Zn(e);return ln.default.createElement("div",{id:t,className:`rounded-xl border overflow-hidden transition-colors ${o}`,style:{backgroundColor:a.cardBg,borderColor:a.cardBorder,...n}},r)}var Ea={context:132,duration:76,tokens:104,cost:88,status:68,count:96,age:76};function od({cells:e,darkMode:t,gap:r=16,className:n="",style:o}){let a=Zn(t),i=(e||[]).filter(Boolean);return i.length===0?null:ln.default.createElement("div",{className:`flex-shrink-0 text-sm ${n}`,style:{display:"grid",gridTemplateColumns:i.map(s=>s.width?`${s.width}px`:"minmax(0, auto)").join(" "),alignItems:"center",columnGap:`${r}px`,color:a.textSecondary,...o}},i.map(s=>{let l=s.content!=null&&s.content!==!1&&s.content!=="";return ln.default.createElement("div",{key:s.key,title:(l?s.title:s.empty)||void 0,className:"min-w-0 truncate",style:{textAlign:s.align||"right"}},l?s.content:ln.default.createElement("span",{style:{color:a.textMuted}},"\u2014"))}))}var QG=(e,{wrap:t=!0,maxHeight:r=320}={})=>({background:Zn(e).preBg,borderRadius:"6px",padding:"6px 8px",margin:"2px 0 4px 0",overflowX:"auto",overflowY:"auto",maxHeight:`${r}px`,whiteSpace:t?"pre-wrap":"pre"}),zwe=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 sh({lines:e,darkMode:t,onClick:r,indent:n=0,size:o="12px",style:a,max:i=200,hold:s=!1}){let[l,u]=lh(),c=Zn(t),d=(e||[]).filter(p=>p&&(p.text||s));return d.some(p=>p.text)?ln.default.createElement("div",{onClick:r,className:"min-w-0",style:{display:"grid",gap:"2px",paddingLeft:n?`${n}px`:0,fontFamily:Pt.mono,fontSize:o,color:c.textSecondary,cursor:r?"pointer":"default",...a}},d.map((p,f)=>{let m=`${p.label}-${f}`,y=l(m),b=p.max||i,g=!p.text,h=String(p.text??"").replace(/\s+/g," ").trim(),v=zwe(p.text),x=!g&&(v.json||h.length>60||h!==String(p.text).trim());return ln.default.createElement("div",{key:m},ln.default.createElement("div",{onClick:x?S=>{S.stopPropagation(),u(m)}:void 0,title:x?y?"Collapse":"Expand":void 0,style:{cursor:x?"pointer":"default",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0}},ln.default.createElement("span",{style:{color:p.color||c.textMuted}},x?y?"\u25BE":"\u25B8":"\xA0"," ",p.label,":")," ",!y&&(g?ln.default.createElement("span",{style:{color:c.textMuted}},"\u2014"):JG(h,b))),y&&ln.default.createElement("pre",{onClick:S=>S.stopPropagation(),style:QG(t,{wrap:!v.json})},v.text))})):null}function Jx({options:e,value:t,onChange:r,darkMode:n,label:o,style:a}){let i=Zn(n);return ln.default.createElement("div",{className:"flex items-center gap-1 flex-shrink-0",style:a},o&&ln.default.createElement("span",{className:"text-xs mr-1",style:{color:i.textMuted}},o),e.map(s=>ln.default.createElement("button",{key:s.id,type:"button",onClick:l=>{l.stopPropagation(),r(s.id)},title:s.hint,className:"px-2 py-0.5 text-xs rounded transition-colors",style:t===s.id?{background:i.controlActiveBg,color:i.textPrimary,boxShadow:n?"none":"0 1px 2px rgba(0,0,0,0.08)"}:{color:i.textSecondary}},s.label)))}function RG({label:e,body:t,open:r,onToggle:n,darkMode:o,prose:a=!1,max:i=140}){let s=Zn(o);return ln.default.createElement("div",null,ln.default.createElement("div",{onClick:l=>{l.stopPropagation(),n()},title:r?"Collapse":"Expand",style:{cursor:"pointer",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},ln.default.createElement("span",{style:{color:s.textMuted}},r?"\u25BE":"\u25B8"," ",e,":")," ",!r&&ln.default.createElement("span",{style:{color:s.textMuted}},JG(t,i))),r&&ln.default.createElement("pre",{onClick:l=>l.stopPropagation(),style:QG(o,{wrap:a})},t))}function lh(e={}){let[t,r]=(0,ln.useState)(e),n=(0,ln.useCallback)(a=>{r(i=>({...i,[a]:!i[a]}))},[]);return[(0,ln.useCallback)(a=>!!t[a],[t]),n,r]}var iI={root:"#9ca3af",prompt:"#60a5fa",generate:"#a855f7",llm:"#ef4444",thinking:"#fbbf24",tool:"#22c55e",response:"#2dd4bf",embedding:"#818cf8"},tY=[{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"}],Jn=e=>e==null?"\u2014":e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,sI=e=>{switch(e){case"root":return Fo.spans.root;case"prompt":return Fo.spans.prompt;case"generate":return Fo.spans.generate;case"llm":return Fo.spans.llm;case"thinking":return Fo.spans.thinking;case"tool":return Fo.spans.tool;case"response":return Fo.spans.response;default:return"-"}},Bwe=(e,t)=>{let r=Math.max(e||0,1),n=Math.max(t||1,1);if(n<=1)return 100;let o=Math.log(r)/Math.log(n);return Math.min(100,Math.max(4,o*100))},Fwe=(e,t)=>{let r=[...e||[]];switch(t){case"duration":return r.sort((n,o)=>(o.duration||0)-(n.duration||0));case"name":return r.sort((n,o)=>(n.name||"").localeCompare(o.name||""));default:return r.sort((n,o)=>(n.start||0)-(o.start||0))}},Uwe=e=>{let t=e.tokens||{};return(t.input||0)+(t.output||0)+(t.thinking||0)},Wwe=(e,t)=>{if(!t.duration_ms)return Jn(e.duration);let r=(e.duration||0)/t.duration_ms*100;return`${Jn(e.duration)} \xB7 ${r<1?r.toFixed(2):r.toFixed(1)}%`},Hwe=e=>{if(typeof e!="string")return null;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return null}},eY=e=>e.endsWith(".instructions")?0:e.endsWith(".tools")?1:e.endsWith(".messages")?3:2,lI=e=>{let t=e.spans||[],r=a=>{for(let i of t){let s=(i.attributes||{})[a];if(s)return s}return null},n=r("llm.prompt");if(!n){let a=r("prompt.input.messages");if(a)try{n=[...JSON.parse(a)].reverse().find(l=>l&&l.role==="user"&&l.content)?.content}catch{}}let o=r("llm.completion")||r("llm.output.message");return{input:n,output:o}},qwe=e=>{let t=e.attributes||{},r=null,n="input",o="user";if(t["prompt.input.messages"])try{let u=[...JSON.parse(t["prompt.input.messages"])].reverse().find(c=>c&&c.role==="user"&&c.content);typeof u?.content=="string"&&(r=u.content)}catch{}if(!r&&t["llm.prompt"]&&(r=String(t["llm.prompt"])),!r&&(t["tool.input.args"]||t["tool.arguments"])){let l=t["tool.input.args"]||t["tool.arguments"];r=typeof l=="string"?l:JSON.stringify(l),n="in",o="assistant"}let a=null,i="output",s="assistant";return t["llm.output.message"]||t["llm.completion"]?a=t["llm.output.message"]||t["llm.completion"]:(t["tool.output.result"]||t["tool.result"])&&(a=t["tool.output.result"]||t["tool.result"],i="out",s="tool"),a!=null&&typeof a!="string"&&(a=JSON.stringify(a)),{input:r,output:a,inputLabel:n,inputTone:o,outputLabel:i,outputTone:s}},Kwe=(e,t)=>{let r=qwe(e),n=lI(t);return r.input&&r.input===n.input&&(r.input=null),r.output&&r.output===n.output&&(r.output=null),r},Vwe=e=>{let t={...e.attributes||{}},r=p=>{let f=t[p];return delete t[p],f},n=[],o=p=>n.push({id:`${e.span_id}-m${n.length}`,...p}),a=r("prompt.input.instructions")||r("llm.instructions");a&&o({role:"system",content:String(a)});let i=r("prompt.input.messages");if(i)try{JSON.parse(i).forEach(p=>{p&&o({role:p.role||"user",content:typeof p.content=="string"?p.content:JSON.stringify(p.content),tool_call_id:p.tool_call_id,tool_calls:p.tool_calls})})}catch{t["prompt.input.messages"]=i}let s=r("llm.prompt");s&&o({role:"user",content:String(s)});let l=r("tool.input.args")||r("tool.arguments"),u=r("tool.output.result")||r("tool.result");if(l||u){let p=r("tool.name");o({role:"tool",tool_name:p||(e.name||"").replace(/^tool\./,""),tool_arguments:l,content:u?String(u):null})}let c=r("llm.completion"),d=r("llm.output.message");return(c||d)&&o({role:"assistant",content:String(c||d)}),{messages:n,rest:t}},uI=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 Gwe({span:e,darkMode:t,tools:r=[]}){let[n,o]=lh(),a=Zn(t),{messages:i,rest:s}=Vwe(e),l=null,u=s["prompt.input.tools"];if(u)try{let f=typeof u=="string"?JSON.parse(u):u;Array.isArray(f)&&f.length>0&&(l=f,delete s["prompt.input.tools"])}catch{}let c=Object.entries(s).sort((f,m)=>eY(f[0])-eY(m[0])),d=i.length===1&&i[0].role==="tool"?i[0]:null,p=d?.tool_arguments==null?null:typeof d.tool_arguments=="string"?d.tool_arguments:JSON.stringify(d.tool_arguments);return or.default.createElement("div",{onClick:f=>f.stopPropagation(),style:{margin:"4px 0 8px 0",padding:"10px 12px",borderRadius:"8px",background:a.panelBg,border:`1px solid ${a.cardBorder}`,fontFamily:Pt.mono,fontSize:"12px",color:a.textBody,cursor:"default"}},or.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 20px"}},or.default.createElement("span",null,"duration: ",Jn(e.duration)),or.default.createElement("span",null,"status: ",e.status||"OK"),Uwe(e)>0&&or.default.createElement("span",null,"tokens in:",e.tokens.input||0," out:",e.tokens.output||0,e.tokens.thinking>0?` thinking:${e.tokens.thinking}`:""),or.default.createElement("span",{style:{color:a.textMuted}},"span: ",e.span_id)),d&&or.default.createElement("div",{style:{marginTop:"8px",display:"grid",gap:"4px"}},or.default.createElement("div",{style:{fontSize:"12px",wordBreak:"break-all"}},or.default.createElement("span",{style:{color:jn("tool",t).color}},"\u2699 ",d.tool_name),p&&or.default.createElement(or.default.Fragment,null," ",or.default.createElement("span",{style:{color:jn("assistant",t).color}},"in:")," ",or.default.createElement("span",{style:{color:a.textBody}},p))),d.content&&or.default.createElement("div",{style:{fontSize:"12px"}},or.default.createElement("span",{style:{color:jn("tool",t).color}},"out:")," ",or.default.createElement("span",{style:{color:a.textBody,whiteSpace:"pre-wrap",display:"inline-block",maxHeight:"240px",overflowY:"auto",verticalAlign:"top",maxWidth:"100%"}},d.content))),i.length>0&&!d&&or.default.createElement("div",{style:{marginTop:"10px",fontFamily:"ui-sans-serif, system-ui, sans-serif"}},or.default.createElement(ds,{messages:i,darkMode:t,tools:l||r})),l&&or.default.createElement(oI,{tools:l,darkMode:t}),c.length>0&&or.default.createElement("div",{style:{marginTop:"6px",display:"grid",gap:"2px"}},c.map(([f,m])=>{let y=f.match(/args|result|input|output/)?Hwe(m):null,b=!y&&(f.endsWith(".instructions")||f.match(/input|output|result/))&&typeof m=="string"?m:null,g=y||b;if(!g)return or.default.createElement("div",{key:f,style:{wordBreak:"break-all"}},or.default.createElement("span",{style:{color:a.textMuted}},f,":")," ",typeof m=="string"?m:JSON.stringify(m));let h=`${e.span_id}:${f}`;return or.default.createElement(RG,{key:f,label:f,body:g,prose:!y,darkMode:t,open:n(h),onToggle:()=>o(h)})})))}function Ywe({span:e,trace:t,darkMode:r,sort:n,longest:o,expanded:a,onToggle:i,tools:s}){let l=Zn(r),u=Object.keys(e.attributes||{}).length>0,c=a?null:Kwe(e,t);return or.default.createElement(or.default.Fragment,null,or.default.createElement("div",{className:`py-0.5 px-1 -mx-1 rounded transition-colors ${u?`cursor-pointer ${r?"hover:bg-white/5":"hover:bg-gray-100"}`:""}`,style:{paddingLeft:n==="time"?`${(e.nested||0)*16}px`:0,background:a?l.hoverBg:void 0},onClick:u?()=>i():void 0,title:u?`${e.name} \u2014 click for span details`:e.name},or.default.createElement("div",{className:"flex items-baseline gap-2 min-w-0"},or.default.createElement("span",{className:"flex-shrink-0",style:{color:e.type==="thinking"?void 0:l.textMuted}},sI(e.type)),or.default.createElement("span",{className:"text-sm font-medium truncate",style:{color:e.error?l.bad:l.textPrimary}},e.name),or.default.createElement("span",{className:"text-xs ml-auto flex-shrink-0",style:{fontFamily:Pt.mono,color:l.textMuted}},Wwe(e,t)),u&&or.default.createElement(Xp,{open:a,darkMode:r,size:13,style:{marginLeft:"2px"}})),or.default.createElement("div",{className:"h-3 relative rounded mt-0.5",style:{background:l.trackBg}},or.default.createElement("div",{className:"absolute h-3 rounded",style:{background:e.error?"#f87171":iI[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}%`:`${Bwe(e.duration,o)}%`}})),c&&or.default.createElement(sh,{darkMode:r,size:"11px",style:{marginTop:"2px"},lines:[{label:c.inputLabel,text:c.input,color:jn(c.inputTone,r).color,max:160},{label:c.outputLabel,text:c.output,color:jn(c.outputTone,r).color,max:160}]})),a&&or.default.createElement(Gwe,{span:e,darkMode:r,tools:s}))}function cI({trace:e,darkMode:t,sort:r="time",tools:n,keyPrefix:o=""}){let[a,i]=lh(),s=Zn(t),l=Fwe(e?.spans,r),u=n||uI(e);if(l.length===0)return or.default.createElement("div",{className:"text-sm py-2",style:{color:s.textMuted}},"No spans recorded for this trace.");let c=Math.max(...l.map(d=>d.duration||0),1);return or.default.createElement("div",{className:"space-y-2"},l.map((d,p)=>{let f=`${o}${d.span_id||p}`;return or.default.createElement(Ywe,{key:f,span:d,trace:e,darkMode:t,sort:r,longest:c,tools:u,expanded:a(f),onToggle:()=>i(f)})}))}var Xwe=[{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"}],Zwe=e=>{let t=0,r=[];(e?.spans||[]).forEach(a=>{(a.nested||0)!==0&&(a.type==="tool"?r.push(a):(a.type==="llm"||a.type==="generate")&&(t=Math.max(t,a.duration||0)))});let n=r.reduce((a,i)=>a+(i.duration||0),0);t=Math.max(t-n,0);let o=e?.duration_ms||t+n||1;return{generation:t,tools:r,toolTotal:n,total:o,overhead:Math.max(o-t-n,0)}};function Jwe({trace:e,darkMode:t}){let r=Zn(t),{generation:n,tools:o,toolTotal:a,total:i,overhead:s}=Zwe(e);if(n===0&&a===0||n/i>=.99&&a/i<.01)return null;let l=c=>`${(c/i*100).toFixed(c/i<.01?2:1)}%`,u=(c,d)=>wt.default.createElement("div",{style:{width:`${Math.max(c/i*100,.4)}%`,background:d,height:"100%"}});return wt.default.createElement("div",{style:{marginTop:"14px",paddingTop:"12px",borderTop:`1px solid ${r.cardBorder}`}},wt.default.createElement("div",{style:{fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em",color:r.textSecondary,marginBottom:"6px"}},"Time breakdown \u2014 generation vs tools"),wt.default.createElement("div",{style:{display:"flex",height:"10px",borderRadius:"5px",overflow:"hidden",background:r.trackBg}},u(n,"#ef4444"),u(a,"#10b981"),s>0&&u(s,t?"rgba(255,255,255,0.2)":"#d1d5db")),wt.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 18px",marginTop:"8px",fontSize:"12px",fontFamily:Pt.mono,color:r.textBody}},wt.default.createElement("span",null,wt.default.createElement("span",{style:{color:"#ef4444"}},"\u25A0")," generation ",Jn(n)," (",l(n),")"),wt.default.createElement("span",null,wt.default.createElement("span",{style:{color:"#10b981"}},"\u25A0")," tools ",Jn(a)," (",l(a),")"),s>0&&wt.default.createElement("span",null,wt.default.createElement("span",{style:{color:r.textSecondary}},"\u25A0")," overhead ",Jn(s)," (",l(s),")")),o.length>0&&wt.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 18px",marginTop:"4px",fontSize:"12px",fontFamily:Pt.mono,color:r.textSecondary}},o.map((c,d)=>wt.default.createElement("span",{key:d},c.name," ",Jn(c.duration)," (",l(c.duration||0),")"))))}function Qwe({trace:e,darkMode:t}){let[r,n]=(0,wt.useState)(null),[o,a]=(0,wt.useState)(!1),i=Zn(t);if((0,wt.useEffect)(()=>{if(e?.id==null)return;let l=!0;return n(null),a(!1),fetch(`/api/interactions/trace-${e.id}`).then(u=>u.ok?u.json():Promise.reject(new Error("request failed"))).then(u=>l&&n(u.interaction)).catch(()=>l&&a(!0)),()=>{l=!1}},[e?.id]),o)return wt.default.createElement("div",{className:"text-sm py-4",style:{color:i.bad}},"Couldn't load the conversation for this trace.");if(!r)return wt.default.createElement("div",{className:"text-sm py-4",style:{color:i.textMuted}},"Loading conversation\u2026");let s=r.instructions?[{id:`trace-${e.id}-system`,role:"system",content:r.instructions,created_at:r.created_at},...r.messages||[]]:r.messages||[];return s.length===0?wt.default.createElement("div",{className:"text-sm py-4",style:{color:i.textMuted}},"This trace predates content capture \u2014 no conversation to show."):wt.default.createElement(ds,{messages:s,darkMode:t,tools:uI(e)})}function Qx({trace:e,darkMode:t,compact:r=!1,showConversation:n=!0}){let[o,a]=(0,wt.useState)("spans"),[i,s]=(0,wt.useState)("time"),l=Zn(t),u=(e?.spans||[]).length,c=LC(e),d=e?.tokens||{},p=(0,wt.useCallback)(f=>a(n?f:"spans"),[n]);return e?wt.default.createElement("div",null,wt.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2 mb-2"},wt.default.createElement("div",{className:"flex items-center gap-1"},n&&wt.default.createElement(Jx,{options:Xwe,value:o,onChange:p,darkMode:t}),wt.default.createElement("span",{className:"text-xs ml-2",style:{color:l.textSecondary}},u," ",u===1?"span":"spans")),o==="spans"&&u>0&&wt.default.createElement(Jx,{options:tY,value:i,onChange:s,darkMode:t,label:"Sort"})),o==="conversation"?wt.default.createElement("div",{className:"rounded-lg border p-4",style:{background:l.cardBg,borderColor:l.cardBorder}},wt.default.createElement(Qwe,{trace:e,darkMode:t})):wt.default.createElement(wt.default.Fragment,null,i==="time"?wt.default.createElement("div",{className:"flex justify-between text-xs mb-2",style:{color:l.textMuted}},wt.default.createElement("span",null,"0ms"),wt.default.createElement("span",null,Math.round((e.duration_ms||0)*.33),"ms"),wt.default.createElement("span",null,Math.round((e.duration_ms||0)*.66),"ms"),wt.default.createElement("span",null,Jn(e.duration_ms))):wt.default.createElement("div",{className:"text-xs mb-2",style:{color:l.textMuted}},"Bar length compares duration on a log scale"),wt.default.createElement(cI,{trace:e,darkMode:t,sort:i,keyPrefix:`${e.id||e.trace_id}:`})),c&&wt.default.createElement("div",{className:"mt-3"},wt.default.createElement(nd,{...c,label:"Context pressure",darkMode:t})),wt.default.createElement(Jwe,{trace:e,darkMode:t}),!r&&wt.default.createElement("div",{className:"mt-4 pt-4 border-t flex items-center flex-wrap gap-x-6 gap-y-1 text-sm",style:{borderColor:l.cardBorder,color:l.textSecondary}},wt.default.createElement("span",null,"Tokens:"),d.thinking>0&&wt.default.createElement("span",{className:"text-amber-500",style:{fontFamily:Pt.mono}},"T:",d.thinking.toLocaleString()),wt.default.createElement("span",{className:"text-blue-500",style:{fontFamily:Pt.mono}},"in:",(d.input||0).toLocaleString()),wt.default.createElement("span",{className:"text-green-500",style:{fontFamily:Pt.mono}},"out:",(d.output||0).toLocaleString()),e.provider&&wt.default.createElement("span",{style:{fontFamily:Pt.mono}},e.provider,e.model?` \xB7 ${e.model}`:"")),e.error&&wt.default.createElement("div",{className:"mt-4 p-3 rounded-lg border",style:{background:t?"rgba(239,68,68,0.1)":"#fef2f2",borderColor:t?"rgba(239,68,68,0.3)":"#fecaca"}},wt.default.createElement("span",{className:"text-sm",style:{color:t?"#fca5a5":"#b91c1c"}},e.error))):null}var Rwe=e=>{let t=(e?.input||0)+(e?.output||0)+(e?.thinking||0);return t?t>=1e3?`${(t/1e3).toFixed(1)}K`:`${t}`:null},eSe=e=>e==null?null:`$${e.toFixed(4)}`;function qC({trace:e,darkMode:t,expanded:r,onToggle:n}){let o=Zn(t),a=lI(e),i=LC(e),s=e.status!=="ERROR",l=Rwe(e.tokens);return $n.default.createElement(HC,{darkMode:t,id:`trace-row-${e.id}`},$n.default.createElement("div",{className:`p-4 flex items-center justify-between flex-wrap gap-y-2 cursor-pointer transition-colors ${t?"hover:bg-white/5":"hover:bg-gray-50"}`,onClick:n,style:r?{background:o.hoverBg}:void 0},$n.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},$n.default.createElement("span",{className:"px-2 py-1 text-xs rounded flex-shrink-0",style:{fontFamily:Pt.mono,background:o.controlBg,color:o.textSecondary}},"TRACE"),$n.default.createElement("span",{className:"text-sm flex-shrink-0",style:{fontFamily:Pt.mono,color:o.textMuted}},e.short_id),$n.default.createElement("span",{className:"text-sm font-medium truncate",style:{color:o.textPrimary}},e.display_name)),$n.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0"},$n.default.createElement(od,{darkMode:t,cells:[{key:"model",title:"Model that generated this trace",empty:"No model recorded for this trace",content:e.model&&$n.default.createElement("span",{className:"text-xs px-2 py-0.5 rounded",style:{fontFamily:Pt.mono,background:t?"rgba(99,102,241,0.2)":"#eef2ff",color:t?"#a5b4fc":"#4338ca"}},e.model)},{key:"context",width:Ea.context,empty:"Context: no generation in this trace reported its token counts",content:i&&$n.default.createElement(nd,{compact:!0,...i,label:"Context",darkMode:t})},{key:"duration",width:Ea.duration,title:"Wall-clock duration",empty:"No duration recorded for this trace",content:e.duration_ms!=null&&$n.default.createElement($n.default.Fragment,null,$n.default.createElement("i",{className:"fa-solid fa-clock mr-1"}),Jn(e.duration_ms))},{key:"tokens",width:Ea.tokens,title:"Tokens in, out and thinking",empty:"No token counts recorded for this trace",content:l&&`${l} tokens`},{key:"cost",width:Ea.cost,title:"Estimated cost of this trace",empty:"Nothing to price \u2014 this trace recorded no tokens",content:e.estimated_cost!=null&&$n.default.createElement($n.default.Fragment,null,$n.default.createElement("i",{className:"fa-solid fa-coins mr-1"}),eSe(e.estimated_cost))},{key:"status",width:Ea.status,title:s?"Trace completed":e.error||"Trace ended in an error",content:$n.default.createElement("span",{style:{color:s?o.good:o.bad}},$n.default.createElement("i",{className:`fa-solid ${s?"fa-check":"fa-xmark"} mr-1`}),s?"OK":"ERROR")}]}),$n.default.createElement(Xp,{open:r,darkMode:t}))),!r&&$n.default.createElement(sh,{darkMode:t,onClick:n,hold:!0,style:{padding:"0 16px 12px"},lines:[{label:"input",text:a.input,color:jn("user",t).color},{label:"output",text:a.output,color:jn("assistant",t).color}]}),r&&$n.default.createElement("div",{className:"border-t p-4",style:{borderColor:o.cardBorder,background:o.innerBg}},$n.default.createElement(Qx,{trace:e,darkMode:t})))}function rY(e,t=""){return`${(e||"").replace(/\/$/,"")}${t}`||"/"}function nY(e,t){let r=(e||"").replace(/\/$/,"");return r&&(t===r||t.startsWith(`${r}/`))?t.slice(r.length)||"/":t}function et(e=""){return rY(window.ACTIVE_AGENT_DASHBOARD?.mountPath,e)}function ad(e="",t={}){window.history.pushState(t,"",et(e))}function Qn(e=window.location.pathname){return nY(window.ACTIVE_AGENT_DASHBOARD?.mountPath,e)}function lt(e,t={}){if(!e)return;let r=Qn(e);ad(r,t),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:et(r)}}))}var oY=({minutes:e,agentId:t=null,bucketSeconds:r=null})=>{let n=new URLSearchParams({minutes:String(e)});return r!=null&&n.set("bucket_seconds",String(r)),t!=null&&t!==""&&n.set("agent_id",String(t)),`/api/traces?${n.toString()}`};var tSe=(e,t,r,n=60)=>{let o=Date.now(),a=[],i=n*1e3,s=Math.max(1,Math.round(r*60/n));for(let l=s-1;l>=0;l--){let u=o-(l+1)*i,c=o-l*i,d=e.filter(m=>m.timestamp_ms>=u&&m.timestamp_msm.duration_ms).filter(m=>typeof m=="number"&&Number.isFinite(m)),f={};t.forEach(m=>{f[m]=d.filter(y=>y.agent===m).length}),a.push({time:r>1440?new Date(c).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(c).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),timestamp:c,requests:d.length,errors:d.filter(m=>m.status==="ERROR").length,avgLatency:p.length>0?Math.round(p.reduce((m,y)=>m+y,0)/p.length):0,traces:d,...f})}return a},aY=(e,t,r,n)=>{let o=Array.isArray(e?.buckets)?e.buckets.map(s=>({time:n.minutes>1440?new Date(s.end_ms).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(s.end_ms).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),timestamp:s.end_ms,requests:s.requests,errors:s.errors,avgLatency:s.avg_latency_ms,traces:t.filter(l=>l.timestamp_ms>=s.start_ms&&l.timestamp_ms[l,s.agents?.[l]||0]))})):tSe(t,r,n.minutes,n.bucketSeconds),a=t.map(s=>s.duration_ms).filter(s=>typeof s=="number"&&Number.isFinite(s)),i=e?.summary?{requests:e.summary.requests,errors:e.summary.errors,avgLatency:e.summary.avg_latency_ms,throughput:Number(e.summary.throughput_per_minute).toFixed(1)}:{requests:t.length,errors:t.filter(s=>s.status==="ERROR").length,avgLatency:a.length?Math.round(a.reduce((s,l)=>s+l,0)/a.length):0,throughput:(t.length/n.minutes).toFixed(1)};return{buckets:o,summary:i,truncated:e?.truncated===!0,total:e?.total_count??t.length}};var iY=["#6366f1","#10b981","#f59e0b","#ec4899","#3b82f6","#8b5cf6","#14b8a6","#f97316"],rSe=3e4,nSe=e=>{let t={};return e.forEach((r,n)=>{t[r]=iY[n%iY.length]}),t},oSe=e=>{let t={};return e.forEach(r=>{(r.spans||[]).forEach(n=>{if((n.nested||0)===0)return;let o=n.name||n.type||"unknown";t[o]||(t[o]={name:o,type:n.type,count:0,total:0,max:0,errors:0});let a=t[o];a.count+=1,a.total+=n.duration||0,a.max=Math.max(a.max,n.duration||0),n.error&&(a.errors+=1)})}),Object.values(t).map(r=>({...r,avg:r.total/r.count})).sort((r,n)=>n.total-r.total)};function Zp({agentId:e=null,embedded:t=!1}){let{darkMode:r}=ut(),[n,o]=(0,H.useState)([]),[a,i]=(0,H.useState)(null),[s,l]=(0,H.useState)([]),[u,c]=(0,H.useState)({}),[d,p]=(0,H.useState)(!0),[f,m]=(0,H.useState)(null),[y,b]=(0,H.useState)(null),g=(0,H.useRef)(new URLSearchParams(window.location.search).get("trace")),[h,v]=(0,H.useState)(null),[x,S]=(0,H.useState)({status:"all",agent:"all",action:"all"}),[_,w]=(0,H.useState)("time"),[k,A]=(0,H.useState)(null),[C,T]=(0,H.useState)("timeline"),[$,Q]=(0,H.useState)("popular"),{timeWindow:B}=vl(),K=(0,H.useCallback)(async()=>{try{let E=await fetch(oY({minutes:B.minutes,bucketSeconds:B.bucketSeconds,agentId:e}));if(!E.ok)throw new Error(`Request failed (${E.status})`);let I=await E.json();o(I.traces||[]),i(I),l(I.agents||[]),c(I.agent_ids||{}),m(null)}catch(E){m(E.message)}finally{p(!1)}},[B.minutes,B.bucketSeconds,e]);(0,H.useEffect)(()=>{K();let E=setInterval(K,rSe);return()=>clearInterval(E)},[K]);let N=(0,H.useMemo)(()=>nSe(s),[s]);(0,H.useEffect)(()=>{A(null)},[B.id]);let O=(0,H.useMemo)(()=>aY(a,n,s,B),[a,n,s,B]),D=O.buckets,P=Math.max(0,Math.ceil(D.length/6)-1),j=(0,H.useMemo)(()=>{let E=n;if(k!==null){let I=D[k];I&&(E=I.traces||[])}if(x.status!=="all"&&(E=E.filter(I=>x.status==="success"?I.status!=="ERROR":I.status==="ERROR")),x.agent!=="all"&&(E=E.filter(I=>I.agent===x.agent)),x.action!=="all")if(x.action.includes("#")){let[I,V]=x.action.split("#");E=E.filter(F=>F.agent===I&&F.action===V)}else E=E.filter(I=>I.action===x.action);return _==="latency"&&(E=[...E].sort((I,V)=>(V.duration_ms||0)-(I.duration_ms||0))),h&&!E.some(I=>I.id===h.id)&&(E=[h,...E]),E},[n,k,D,x,_,h]);(0,H.useEffect)(()=>{let E=g.current;if(!E)return;let I=F=>{g.current=null,b(F.id),setTimeout(()=>{document.getElementById(`trace-row-${F.id}`)?.scrollIntoView({behavior:"smooth",block:"start"})},150)},V=n.find(F=>F.id===E||F.trace_id===E||F.short_id&&String(E).startsWith(F.short_id));if(V){I(V);return}n.length!==0&&fetch(`/api/traces/${encodeURIComponent(E)}`).then(F=>F.ok?F.json():Promise.reject(new Error("not found"))).then(({trace:F})=>{v(F),I(F)}).catch(()=>{g.current=null})},[n]);let M=(0,H.useMemo)(()=>{let E=k!==null?D[k]?.traces||[]:n,I={};E.forEach(F=>{F.agent&&(I[F.agent]||(I[F.agent]={agent:F.agent,count:0,totalDuration:0,cost:0,errors:0,actions:{},tokens:{thinking:0,input:0,output:0}}),I[F.agent].count++,I[F.agent].totalDuration+=F.duration_ms||0,I[F.agent].cost+=F.estimated_cost||0,F.status==="ERROR"&&I[F.agent].errors++,F.tokens&&(I[F.agent].tokens.thinking+=F.tokens.thinking||0,I[F.agent].tokens.input+=F.tokens.input||0,I[F.agent].tokens.output+=F.tokens.output||0),F.action&&(I[F.agent].actions[F.action]=(I[F.agent].actions[F.action]||0)+1))});let V={popular:F=>F.count,longest:F=>F.totalDuration/(F.count||1),cost:F=>F.cost,tokens:F=>(F.tokens.input||0)+(F.tokens.output||0)+(F.tokens.thinking||0),errors:F=>F.errors}[$]||(F=>F.count);return Object.values(I).sort((F,ce)=>V(ce)-V(F)||ce.count-F.count)},[n,D,k,$]),W=(0,H.useMemo)(()=>{let E=k!==null?D[k]?.traces||[]:n,I={};return E.forEach(V=>{if(!V.agent)return;let F=`${V.agent}#${V.action||"unknown"}`;I[F]||(I[F]={key:F,agent:V.agent,action:V.action||"unknown",count:0,totalDuration:0,errors:0,minDuration:1/0,maxDuration:0,tokens:{thinking:0,input:0,output:0}}),I[F].count++,I[F].totalDuration+=V.duration_ms||0,I[F].minDuration=Math.min(I[F].minDuration,V.duration_ms||0),I[F].maxDuration=Math.max(I[F].maxDuration,V.duration_ms||0),V.status==="ERROR"&&I[F].errors++,V.tokens&&(I[F].tokens.thinking+=V.tokens.thinking||0,I[F].tokens.input+=V.tokens.input||0,I[F].tokens.output+=V.tokens.output||0)}),Object.values(I).forEach(V=>{V.minDuration===1/0&&(V.minDuration=0)}),Object.values(I).sort((V,F)=>F.count-V.count)},[n,D,k]),Y=(0,H.useMemo)(()=>{let E=k!==null?D[k]?.traces||[]:n,I={};return E.forEach(V=>{(V.spans||[]).forEach(F=>{if(F.type!=="tool")return;let ce=F.attributes?.["tool.name"]||F.name?.replace(/^tool\./,"")||"unknown";I[ce]||(I[ce]={name:ce,count:0,totalDuration:0,maxDuration:0,errors:0,agents:new Set}),I[ce].count++,I[ce].totalDuration+=F.duration||0,I[ce].maxDuration=Math.max(I[ce].maxDuration,F.duration||0),F.error&&I[ce].errors++,V.agent&&I[ce].agents.add(`${V.agent}#${V.action||"unknown"}`)})}),Object.values(I).map(V=>({...V,agents:[...V.agents],avgDuration:V.count?V.totalDuration/V.count:0})).sort((V,F)=>F.totalDuration-V.totalDuration)},[n,D,k]),L=(0,H.useMemo)(()=>x.agent==="all"?W.map(E=>E.key):W.filter(E=>E.agent===x.agent).map(E=>E.key),[x.agent,W]),G=(0,H.useMemo)(()=>oSe(j),[j]),q=E=>{if(E&&E.activeTooltipIndex!==void 0){let I=E.activeTooltipIndex;A(k===I?null:I),b(null)}},oe=E=>(E?.input||0)+(E?.output||0)+(E?.thinking||0),Me=E=>{let I=E.count?E.errors/E.count:0;return[{label:`Calls ${B.label||""}`.trim(),value:E.count.toLocaleString()},{label:"Errors",value:`${(I*100).toFixed(1)}%`,tone:E.errors>0?"bad":"good"},{label:"Avg time",value:`${Math.round(E.totalDuration/(E.count||1))}ms`},{label:"Tokens",value:oe(E.tokens).toLocaleString()},{label:"Cost",value:ge(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()}]},ge=E=>E?E<.01?"<$0.01":`$${E.toFixed(2)}`:"\u2014",ue=H.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:"8px",marginBottom:"12px"}},H.default.createElement("span",{style:{fontSize:"12px",color:r?"rgba(255,255,255,0.5)":"#6b7280"}},"Rank by"),H.default.createElement("select",{value:$,onChange:E=>Q(E.target.value),style:{fontSize:"12px",padding:"4px 8px",borderRadius:"6px",border:`1px solid ${r?"rgba(255,255,255,0.15)":"#e5e7eb"}`,background:r?"rgba(255,255,255,0.05)":"#ffffff",color:r?"#f9fafb":"#111827"}},H.default.createElement("option",{value:"popular"},"Most calls"),H.default.createElement("option",{value:"longest"},"Longest average"),H.default.createElement("option",{value:"cost"},"Highest cost"),H.default.createElement("option",{value:"tokens"},"Most tokens"),H.default.createElement("option",{value:"errors"},"Most errors"))),R=E=>S(I=>({...I,agent:I.agent===E?"all":E})),te=E=>{let I=u[E];if(!I)return R(E);let V=et(`/agents/${I}`);window.history.pushState(window.history.state,"",V),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:V}}))},Be=E=>{let I=G[0]?.total||1,V=E?"rgba(0,0,0,0.3)":"white",F=E?"1px solid rgba(255,255,255,0.1)":"1px solid #e5e7eb",ce=E?"white":"#111827",Qe=E?"rgba(255,255,255,0.5)":"#6b7280",it={llm:"#ef4444",tool:"#10b981",generate:"#8b5cf6",prompt:"#3b82f6"};return H.default.createElement("div",{style:{padding:E?"0 24px 24px 24px":0}},H.default.createElement("div",{style:{background:V,border:F,borderRadius:"12px",padding:"16px"}},H.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,color:ce,marginBottom:"4px"}},"Slowest operations"),H.default.createElement("div",{style:{fontSize:"12px",color:Qe,marginBottom:"14px"}},"Span durations aggregated across ",j.length," trace",j.length===1?"":"s"," \u2014 ranked by total time"),G.length===0?H.default.createElement("div",{style:{fontSize:"13px",color:Qe,padding:"12px 0"}},"No spans in the current selection"):H.default.createElement("div",{style:{display:"grid",gap:"10px"}},G.map(me=>H.default.createElement("div",{key:me.name,style:{display:"flex",alignItems:"center",gap:"12px"}},H.default.createElement("div",{style:{width:"220px",flexShrink:0,display:"flex",alignItems:"center",gap:"8px"}},H.default.createElement("span",{style:{color:Qe}},sI(me.type)),H.default.createElement("span",{style:{fontSize:"13px",color:me.errors>0?"#ef4444":ce,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},me.name)),H.default.createElement("div",{style:{flex:1,height:"18px",background:E?"rgba(255,255,255,0.06)":"#f3f4f6",borderRadius:"4px",position:"relative"}},H.default.createElement("div",{style:{position:"absolute",top:"3px",left:0,height:"12px",borderRadius:"3px",width:`${Math.max(me.total/I*100,.5)}%`,background:it[me.type]||"#6366f1"}})),H.default.createElement("div",{style:{width:"260px",flexShrink:0,fontSize:"12px",color:Qe,fontFamily:Pt.mono,textAlign:"right"}},me.count,"\xD7 \xB7 avg ",Jn(me.avg)," \xB7 max ",Jn(me.max)," \xB7 \u03A3 ",Jn(me.total)))))))};if(d)return H.default.createElement("div",{className:"flex items-center justify-center h-64"},H.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let ke=O.summary,ee=O.truncated&&H.default.createElement("div",{role:"status","data-testid":"trace-window-notice",style:{padding:"12px 24px",fontSize:13,color:r?"#fbbf24":"#92400e"}},"Showing newest ",n.length," of ",O.total," traces. Chart and totals cover the full window; lists and breakdowns use these loaded traces."),z=ke.requests===0;return r?H.default.createElement("div",{className:"preview-content",style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)"}},ee,H.default.createElement("div",{style:{padding:"24px 24px 0 24px",borderBottom:"1px solid rgba(255,255,255,0.1)",marginBottom:"16px",paddingBottom:"16px"}},H.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},H.default.createElement("div",null,!t&&H.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:"white",margin:0}},"Traces"),H.default.createElement("p",{style:{fontSize:"14px",color:"rgba(255,255,255,0.6)",marginTop:"4px"}},k!==null?`Viewing ${D[k]?.time} \u2022 ${j.length} requests`:`Last ${B.label} \u2022 Click timeline to drill down`)),H.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"12px"}},H.default.createElement("div",{style:{display:"flex",background:"rgba(255,255,255,0.1)",borderRadius:"8px",padding:"2px"}},["timeline","agents","actions","tools","spans"].map(E=>H.default.createElement("button",{key:E,onClick:()=>T(E),style:{padding:"6px 12px",background:C===E?"#ef4444":"transparent",color:"white",borderRadius:"6px",border:"none",fontSize:"13px",cursor:"pointer",textTransform:"capitalize"}},E))),!e&&H.default.createElement("select",{value:x.agent,onChange:E=>S({...x,agent:E.target.value,action:"all"}),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px",maxWidth:"180px",textOverflow:"ellipsis"}},H.default.createElement("option",{value:"all"},"All Agents"),s.map(E=>H.default.createElement("option",{key:E,value:E},E))),H.default.createElement("select",{value:x.action,onChange:E=>S({...x,action:E.target.value}),style:{padding:"8px 12px",background:x.action!=="all"?"rgba(239, 68, 68, 0.3)":"rgba(255,255,255,0.1)",border:x.action!=="all"?"1px solid #ef4444":"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px",maxWidth:"220px",textOverflow:"ellipsis"}},H.default.createElement("option",{value:"all"},"All Actions"),L.map(E=>H.default.createElement("option",{key:E,value:E},E))),H.default.createElement("select",{value:x.status,onChange:E=>S({...x,status:E.target.value}),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px"}},H.default.createElement("option",{value:"all"},"All Status"),H.default.createElement("option",{value:"success"},"Success"),H.default.createElement("option",{value:"error"},"Error")),H.default.createElement("select",{value:_,onChange:E=>w(E.target.value),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px"}},H.default.createElement("option",{value:"time"},"Newest first"),H.default.createElement("option",{value:"latency"},"Slowest first")),k!==null&&H.default.createElement("button",{onClick:()=>A(null),style:{padding:"8px 16px",background:"rgba(255,255,255,0.2)",color:"white",borderRadius:"8px",border:"none",fontSize:"14px",fontWeight:"500",cursor:"pointer"}},"Clear Selection")))),f&&H.default.createElement("div",{style:{margin:"0 24px 16px 24px",padding:"12px 16px",background:"rgba(239, 68, 68, 0.1)",borderRadius:"8px",color:"#ef4444",fontSize:"13px"}},"Failed to load traces: ",f),H.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},H.default.createElement("div",{style:{background:"rgba(0,0,0,0.3)",borderRadius:"12px",padding:"16px",border:"1px solid rgba(255,255,255,0.1)"}},H.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px"}},H.default.createElement("div",{style:{fontSize:"14px",fontWeight:"600",color:"white"}},"Agent Requests / Minute"),H.default.createElement("div",{style:{display:"flex",gap:"16px",flexWrap:"wrap"}},Object.entries(N).map(([E,I])=>H.default.createElement("div",{key:E,style:{display:"flex",alignItems:"center",gap:"6px"}},H.default.createElement("div",{style:{width:"10px",height:"10px",borderRadius:"2px",background:I}}),H.default.createElement("span",{style:{fontSize:"11px",color:"rgba(255,255,255,0.7)"}},E.replace("Agent","")))))),H.default.createElement("div",{style:{height:"150px"}},H.default.createElement(_c,{width:"100%",height:"100%"},H.default.createElement(td,{data:D,onClick:q,style:{cursor:"pointer"}},H.default.createElement("defs",null,Object.entries(N).map(([E,I])=>H.default.createElement("linearGradient",{key:E,id:`gradient-${E}`,x1:"0",y1:"0",x2:"0",y2:"1"},H.default.createElement("stop",{offset:"5%",stopColor:I,stopOpacity:.8}),H.default.createElement("stop",{offset:"95%",stopColor:I,stopOpacity:.1})))),H.default.createElement(Su,{strokeDasharray:"3 3",stroke:"rgba(255,255,255,0.1)"}),H.default.createElement(Au,{dataKey:"time",stroke:"rgba(255,255,255,0.5)",tick:{fontSize:10,fill:"rgba(255,255,255,0.5)"},tickLine:!1,interval:P}),H.default.createElement(Nu,{stroke:"rgba(255,255,255,0.5)",tick:{fontSize:10,fill:"rgba(255,255,255,0.5)"},tickLine:!1,axisLine:!1,allowDecimals:!1}),H.default.createElement(Uc,{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,I)=>[E,I.replace("Agent","")]}),Object.keys(N).map(E=>H.default.createElement(_u,{key:E,type:"monotone",dataKey:E,stackId:"1",stroke:N[E],fill:`url(#gradient-${E})`}))))),H.default.createElement("div",{style:{display:"flex",gap:"24px",marginTop:"12px",paddingTop:"12px",borderTop:"1px solid rgba(255,255,255,0.1)"}},H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"white"}},ke.requests),H.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Total Requests")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#ef4444"}},ke.errors),H.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Errors")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#10b981"}},ke.avgLatency,"ms"),H.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Avg Latency")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#f59e0b"}},ke.throughput,"/min"),H.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Throughput"))))),C==="agents"&&H.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},ue,H.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(280px, 1fr))",gap:"16px"}},M.map(E=>H.default.createElement(_m,{key:E.agent,name:E.agent,accentColor:N[E.agent],subtitle:E.agents?.length?E.agents.join(", "):void 0,badge:H.default.createElement("span",{style:{fontSize:"12px",padding:"2px 8px",background:N[E.agent]+"30",color:N[E.agent],borderRadius:"4px",whiteSpace:"nowrap"}},E.count," calls"),onClick:()=>te(E.agent),stats:Me(E),footer:H.default.createElement(H.default.Fragment,null,H.default.createElement("span",null,u[E.agent]?"Open agent \u2192":"Not linked to an agent record"),H.default.createElement("button",{onClick:I=>{I.stopPropagation(),R(E.agent)},style:{background:"none",border:"none",padding:0,cursor:"pointer",color:x.agent===E.agent?"#ef4444":"inherit",font:"inherit"}},x.agent===E.agent?"Clear filter":"Filter traces"))})))),C==="actions"&&H.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},H.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:"12px"}},W.map(E=>{let I=x.action===E.key;return H.default.createElement("div",{key:E.key,onClick:()=>{S({...x,action:I?"all":E.key}),T("timeline")},style:{background:I?"rgba(239, 68, 68, 0.15)":"rgba(0,0,0,0.3)",borderRadius:"10px",padding:"14px",border:I?"1px solid #ef4444":`1px solid ${N[E.agent]}30`,cursor:"pointer",transition:"all 0.15s"}},H.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"10px"}},H.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},H.default.createElement("div",{style:{width:"6px",height:"6px",borderRadius:"50%",background:N[E.agent]}}),H.default.createElement("span",{style:{fontSize:"14px",fontWeight:"600",color:"white"}},E.agent),H.default.createElement("span",{style:{fontSize:"13px",color:"rgba(255,255,255,0.7)"}},"#",E.action)),H.default.createElement("span",{style:{fontSize:"12px",padding:"2px 8px",background:N[E.agent]+"30",color:N[E.agent],borderRadius:"4px"}},E.count," calls")),H.default.createElement("div",{style:{display:"flex",gap:"16px",flexWrap:"wrap"}},H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Avg"),H.default.createElement("div",{style:{fontSize:"13px",color:"white",fontWeight:"500"}},Math.round(E.totalDuration/E.count),"ms")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Min/Max"),H.default.createElement("div",{style:{fontSize:"13px",color:"rgba(255,255,255,0.8)"}},Math.round(E.minDuration),"ms / ",Math.round(E.maxDuration),"ms")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Errors"),H.default.createElement("div",{style:{fontSize:"13px",color:E.errors>0?"#ef4444":"#10b981"}},E.errors," (",(E.errors/E.count*100).toFixed(0),"%)")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Tokens"),H.default.createElement("div",{style:{fontSize:"13px",color:"rgba(255,255,255,0.8)"}},oe(E.tokens).toLocaleString()))))}))),C==="spans"&&Be(!0),C==="timeline"&&!z&&H.default.createElement("div",{className:"space-y-4"},j.length===0?H.default.createElement("div",{style:{textAlign:"center",padding:"32px",color:"rgba(255,255,255,0.5)",fontSize:"14px"}},"No traces match filters"):j.map(E=>H.default.createElement(qC,{key:E.id,trace:E,darkMode:!0,expanded:y===E.id,onToggle:()=>b(y===E.id?null:E.id)}))),z&&C==="timeline"&&H.default.createElement("div",{style:{textAlign:"center",padding:"48px 0"}},H.default.createElement("div",{style:{color:"rgba(255,255,255,0.5)",fontSize:"18px"}},"No traces yet"),H.default.createElement("p",{style:{color:"rgba(255,255,255,0.4)",fontSize:"14px",marginTop:"8px"}},"Run an agent, or point your app's ActiveAgent telemetry at this workspace to see traces appear here"))):H.default.createElement("div",{className:"space-y-6"},ee,H.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2"},H.default.createElement("div",null,H.default.createElement("h1",{className:"text-2xl font-bold text-gray-900"},"Traces"),H.default.createElement("p",{className:"text-sm text-gray-500"},k!==null?`Viewing ${D[k]?.time} \u2022 ${j.length} requests`:`Last ${B.label} \u2022 Click timeline to drill down`)),H.default.createElement("div",{className:"flex items-center space-x-3 flex-wrap gap-y-2 min-w-0"},H.default.createElement(xl,null),H.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1"},["timeline","agents","actions","tools","spans"].map(E=>H.default.createElement("button",{key:E,onClick:()=>T(E),className:`px-3 py-1 text-sm rounded-md transition-colors capitalize ${C===E?"bg-white shadow text-gray-900":"text-gray-600"}`},E))),H.default.createElement("select",{value:x.agent,onChange:E=>S({...x,agent:E.target.value,action:"all"}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500",style:{maxWidth:"180px",textOverflow:"ellipsis"}},H.default.createElement("option",{value:"all"},"All Agents"),s.map(E=>H.default.createElement("option",{key:E,value:E},E))),H.default.createElement("select",{value:x.action,onChange:E=>S({...x,action:E.target.value}),className:`px-3 py-2 border rounded-lg text-sm focus:ring-2 focus:ring-red-500 ${x.action!=="all"?"border-red-500 bg-red-50":"border-gray-300"}`,style:{maxWidth:"220px",textOverflow:"ellipsis"}},H.default.createElement("option",{value:"all"},"All Actions"),L.map(E=>H.default.createElement("option",{key:E,value:E},E))),H.default.createElement("select",{value:x.status,onChange:E=>S({...x,status:E.target.value}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},H.default.createElement("option",{value:"all"},"All Status"),H.default.createElement("option",{value:"success"},"Success"),H.default.createElement("option",{value:"error"},"Error")),H.default.createElement("select",{value:_,onChange:E=>w(E.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},H.default.createElement("option",{value:"time"},"Newest first"),H.default.createElement("option",{value:"latency"},"Slowest first")),k!==null&&H.default.createElement("button",{onClick:()=>A(null),className:"px-4 py-2 bg-gray-200 text-gray-700 rounded-lg hover:bg-gray-300 transition-colors text-sm font-medium"},"Clear Selection"))),f&&H.default.createElement("div",{className:"p-3 bg-red-50 border border-red-200 rounded-lg text-sm text-red-700"},"Failed to load traces: ",f),H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},H.default.createElement("div",{className:"flex justify-between items-center mb-3"},H.default.createElement("h3",{className:"text-sm font-semibold text-gray-700"},"Agent Requests / Minute"),H.default.createElement("div",{className:"flex gap-4 flex-wrap"},Object.entries(N).map(([E,I])=>H.default.createElement("div",{key:E,className:"flex items-center gap-1.5"},H.default.createElement("div",{className:"w-2.5 h-2.5 rounded-sm",style:{background:I}}),H.default.createElement("span",{className:"text-xs text-gray-500"},E.replace("Agent","")))))),H.default.createElement("div",{className:"h-36"},H.default.createElement(_c,{width:"100%",height:"100%"},H.default.createElement(td,{data:D,onClick:q,style:{cursor:"pointer"}},H.default.createElement("defs",null,Object.entries(N).map(([E,I])=>H.default.createElement("linearGradient",{key:E,id:`gradient-light-${E}`,x1:"0",y1:"0",x2:"0",y2:"1"},H.default.createElement("stop",{offset:"5%",stopColor:I,stopOpacity:.6}),H.default.createElement("stop",{offset:"95%",stopColor:I,stopOpacity:.05})))),H.default.createElement(Su,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),H.default.createElement(Au,{dataKey:"time",stroke:"#9ca3af",tick:{fontSize:10,fill:"#6b7280"},tickLine:!1,interval:P}),H.default.createElement(Nu,{stroke:"#9ca3af",tick:{fontSize:10,fill:"#6b7280"},tickLine:!1,axisLine:!1,allowDecimals:!1}),H.default.createElement(Uc,{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,I)=>[E,I.replace("Agent","")]}),Object.keys(N).map(E=>H.default.createElement(_u,{key:E,type:"monotone",dataKey:E,stackId:"1",stroke:N[E],fill:`url(#gradient-light-${E})`}))))),H.default.createElement("div",{className:"flex gap-6 mt-3 pt-3 border-t border-gray-100"},H.default.createElement("div",null,H.default.createElement("div",{className:"text-lg font-bold text-gray-900"},ke.requests),H.default.createElement("div",{className:"text-xs text-gray-500"},"Total Requests")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-lg font-bold text-red-500"},ke.errors),H.default.createElement("div",{className:"text-xs text-gray-500"},"Errors")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-lg font-bold text-green-600"},ke.avgLatency,"ms"),H.default.createElement("div",{className:"text-xs text-gray-500"},"Avg Latency")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-lg font-bold text-amber-500"},ke.throughput,"/min"),H.default.createElement("div",{className:"text-xs text-gray-500"},"Throughput")))),C==="agents"&&H.default.createElement("div",null,ue,H.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"},M.map(E=>H.default.createElement(_m,{key:E.agent,name:E.agent,accentColor:N[E.agent],subtitle:E.agents?.length?E.agents.join(", "):void 0,badge:H.default.createElement("span",{className:"text-sm px-2 py-0.5 rounded",style:{background:N[E.agent]+"20",color:N[E.agent]}},E.count," calls"),onClick:()=>te(E.agent),stats:Me(E),footer:H.default.createElement(H.default.Fragment,null,H.default.createElement("span",null,u[E.agent]?"Open agent \u2192":"Not linked to an agent record"),H.default.createElement("button",{onClick:I=>{I.stopPropagation(),R(E.agent)},className:x.agent===E.agent?"text-red-600":"hover:text-gray-700"},x.agent===E.agent?"Clear filter":"Filter traces"))})))),C==="actions"&&H.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3"},W.map(E=>{let I=x.action===E.key;return H.default.createElement("div",{key:E.key,onClick:()=>{S({...x,action:I?"all":E.key}),T("timeline")},className:`rounded-xl p-4 cursor-pointer transition-all ${I?"bg-red-50 border-2 border-red-500":"bg-white border border-gray-200 hover:border-gray-300"}`,style:{borderLeftColor:N[E.agent],borderLeftWidth:I?"2px":"4px"}},H.default.createElement("div",{className:"flex items-center justify-between mb-3"},H.default.createElement("div",{className:"flex items-center gap-2"},H.default.createElement("div",{className:"w-2 h-2 rounded-full",style:{background:N[E.agent]}}),H.default.createElement("span",{className:"font-semibold text-gray-900"},E.agent),H.default.createElement("span",{className:"text-gray-500"},"#",E.action)),H.default.createElement("span",{className:"text-xs px-2 py-0.5 rounded",style:{background:N[E.agent]+"20",color:N[E.agent]}},E.count," calls")),H.default.createElement("div",{className:"flex flex-wrap gap-4 text-sm"},H.default.createElement("div",null,H.default.createElement("div",{className:"text-xs text-gray-500"},"Avg"),H.default.createElement("div",{className:"font-medium"},Math.round(E.totalDuration/E.count),"ms")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-xs text-gray-500"},"Min/Max"),H.default.createElement("div",{className:"text-gray-600"},Math.round(E.minDuration),"ms / ",Math.round(E.maxDuration),"ms")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-xs text-gray-500"},"Errors"),H.default.createElement("div",{className:E.errors>0?"text-red-600":"text-green-600"},E.errors," (",(E.errors/E.count*100).toFixed(0),"%)")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-xs text-gray-500"},"Tokens"),H.default.createElement("div",{className:"text-gray-600"},oe(E.tokens).toLocaleString()))))})),C==="tools"&&(Y.length===0?H.default.createElement("div",{className:"text-center py-8 text-gray-500 text-sm"},"No tool calls in this window"):H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},H.default.createElement("div",{className:"flex items-center gap-4 px-4 py-2 text-xs font-medium text-gray-500 border-b border-gray-100"},H.default.createElement("div",{className:"flex-1"},"Tool"),H.default.createElement("div",{className:"w-20 text-right"},"Calls"),H.default.createElement("div",{className:"w-24 text-right"},"Total time"),H.default.createElement("div",{className:"w-20 text-right"},"Avg"),H.default.createElement("div",{className:"w-20 text-right"},"Slowest")),Y.map(E=>{let I=Y[0].totalDuration?E.totalDuration/Y[0].totalDuration*100:0;return H.default.createElement("div",{key:E.name,className:"px-4 py-2 border-b border-gray-50 last:border-0"},H.default.createElement("div",{className:"flex items-center gap-4 text-sm"},H.default.createElement("div",{className:"flex-1 min-w-0"},H.default.createElement("div",{className:"font-medium text-gray-900 truncate",title:E.name},E.name),E.agents.length>0&&H.default.createElement("div",{className:"text-xs text-gray-400 truncate",title:E.agents.join(", ")},E.agents.join(", "))),H.default.createElement("div",{className:"w-20 text-right text-gray-700",style:{fontFamily:Pt.mono}},E.count.toLocaleString(),E.errors>0&&H.default.createElement("span",{className:"text-red-600 ml-1",title:`${E.errors} failed`},"(",E.errors,")")),H.default.createElement("div",{className:"w-24 text-right text-gray-900 font-medium",style:{fontFamily:Pt.mono}},Jn(E.totalDuration)),H.default.createElement("div",{className:"w-20 text-right text-gray-500",style:{fontFamily:Pt.mono}},Jn(E.avgDuration)),H.default.createElement("div",{className:"w-20 text-right text-gray-500",style:{fontFamily:Pt.mono}},Jn(E.maxDuration))),H.default.createElement("div",{className:"h-1 bg-gray-100 rounded mt-1.5"},H.default.createElement("div",{className:"h-1 bg-green-500 rounded",style:{width:`${Math.max(I,1)}%`}})))}))),C==="spans"&&Be(!1),C==="timeline"&&!z&&H.default.createElement("div",{className:"space-y-4"},j.length===0?H.default.createElement("div",{className:"text-center py-8 text-gray-500"},"No traces match filters"):j.map(E=>H.default.createElement(qC,{key:E.id,trace:E,darkMode:!1,expanded:y===E.id,onToggle:()=>b(y===E.id?null:E.id)}))),z&&C==="timeline"&&H.default.createElement("div",{className:"text-center py-12"},H.default.createElement("div",{className:"text-gray-400 text-lg"},"No traces yet"),H.default.createElement("p",{className:"text-gray-500 text-sm mt-2"},"Run an agent, or point your app's ActiveAgent telemetry at this workspace to see traces appear here")))}var xe=Z(J());var KC=Z(J());function dI({trace:e,darkMode:t,height:r=8}){let n=Zn(t);if(!e)return KC.default.createElement("div",{className:"rounded",style:{height:`${r}px`,background:n.trackBg}});let o=e.spans||[],a=e.duration_ms||1,i=[...o].sort((s,l)=>(s.nested||0)-(l.nested||0));return KC.default.createElement("div",{style:{position:"relative",height:`${r}px`,borderRadius:"999px",background:n.trackBg,overflow:"hidden",flex:1}},i.map((s,l)=>KC.default.createElement("div",{key:s.span_id||l,title:`${s.name} \xB7 ${Jn(s.duration)}`,style:{position:"absolute",top:0,bottom:0,left:`${Math.min(s.start/a*100,99)}%`,width:`${Math.max(s.duration/a*100,.8)}%`,background:s.error?"#ef4444":iI[s.type]||"#9ca3af"}})))}var Ws=Z(J());var yr=Z(J());var Vr=Z(J());var U="var(--font-mono)",Pu=e=>e>=1?"success":e>=.7?"warning":"error",bo={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)"}},Rx={object:"=",sample:"~",pass:Fo.success,fault:Fo.error,info:Fo.info,on:"[x]",off:"[ ]",link:Fo.arrow,chevron:Fo.chevronRight};function Na({kind:e="pass",open:t=!1,color:r,size:n=12,weight:o=700,style:a,title:i}){return e==="chevron"?Vr.default.createElement("span",{className:"aa-chevron","data-open":t?"true":"false",title:i,style:{fontFamily:U,fontSize:n,color:r||"var(--color-text-muted)",flexShrink:0,...a}},Rx.chevron):Vr.default.createElement("span",{title:i,style:{fontFamily:U,fontSize:n,fontWeight:o,color:r||(e==="fault"?"var(--color-error)":e==="info"?"var(--color-info)":e==="pass"?"var(--color-success)":"var(--color-text-muted)"),flexShrink:0,...a}},Rx[e]||e)}function _e({tone:e="muted",size:t=11,children:r,title:n,style:o,testId:a}){let i=bo[e]||bo.muted;return Vr.default.createElement("span",{"data-testid":a,title:n,style:{display:"inline-flex",alignItems:"center",padding:"2px 7px",borderRadius:4,fontFamily:U,fontSize:t,fontWeight:600,whiteSpace:"nowrap",background:i.soft,color:i.text,...o}},r)}function We({children:e,size:t=11,color:r="var(--color-text-secondary)",spacing:n="0.06em",style:o,as:a="span",htmlFor:i}){return Vr.default.createElement(a,{htmlFor:i,style:{fontFamily:U,fontSize:t,fontWeight:600,letterSpacing:n,textTransform:"uppercase",color:r,...o}},e)}function Ln({selected:e=!1,onClick:t,children:r,square:n=!1,mono:o=!1,disabled:a=!1,title:i,style:s,testId:l}){return Vr.default.createElement("button",{type:"button","data-testid":l,onClick:a?void 0:t,disabled:a,"aria-disabled":a||void 0,title:i,style:{padding:"4px 10px",borderRadius:n?6:999,cursor:t&&!a?"pointer":"default",fontFamily:o?U:"inherit",fontSize:o?11:12,fontWeight:o?400:500,background:e?"var(--color-accent-ui-tint)":"var(--color-card)",border:`1px solid ${e?"var(--color-accent-ui)":"var(--color-border)"}`,color:e?"var(--color-accent-ui)":o?"var(--color-text-muted)":"var(--color-text-cell)",opacity:a?.5:void 0,...s}},r)}function ps({options:e,value:t,onChange:r,style:n}){return Vr.default.createElement("div",{style:{display:"flex",gap:4,...n},role:"group"},e.map(o=>{let a=o.value===t;return Vr.default.createElement("button",{key:o.value,type:"button",onClick:()=>r(o.value),"aria-pressed":a,style:{padding:"6px 12px",borderRadius:8,cursor:"pointer",fontSize:13,fontWeight:500,background:"var(--color-card)",border:`1px solid ${a?"var(--color-accent-ui)":"var(--color-border)"}`,color:a?"var(--color-accent-ui)":"var(--color-text-cell)"}},o.label)}))}function de({variant:e="secondary",size:t="md",children:r,onClick:n,disabled:o=!1,title:a,type:i="button",style:s,testId:l}){let c={padding:t==="sm"?"6px 12px":"8px 14px",borderRadius:8,cursor:o?"not-allowed":"pointer",fontSize:13,fontWeight:500,opacity:o?.5:1,whiteSpace:"nowrap",fontFamily:"inherit"},d={primary:{background:"var(--color-accent-ui)",color:"var(--color-on-accent)",border:"1px solid transparent"},secondary:{background:"transparent",color:"var(--color-text-cell)",border:"1px solid var(--color-border-strong)"},danger:{background:"transparent",color:"var(--color-error)",border:"1px solid transparent"},ghost:{background:"transparent",color:"var(--color-text-secondary)",border:"1px solid transparent"}};return Vr.default.createElement("button",{type:i,"data-testid":l,onClick:n,disabled:o,title:a,style:{...c,...d[e]||d.secondary,...s}},r)}function Le({children:e,padding:t=20,style:r,className:n,testId:o,...a}){return Vr.default.createElement("div",{"data-testid":o,className:n,style:{background:"var(--color-card)",border:"1px solid var(--color-border)",borderRadius:12,padding:t,...r},...a},e)}function uh({label:e,value:t,sub:r,valueColor:n,valueSize:o=32,testId:a}){return Vr.default.createElement(Le,{testId:a},Vr.default.createElement(We,{size:11,spacing:"0.05em"},e),Vr.default.createElement("div",{style:{marginTop:8,fontFamily:U,fontSize:o,fontWeight:700,lineHeight:1.1,color:n||"var(--color-text-primary)"}},t),r!=null&&Vr.default.createElement("div",{style:{marginTop:8,fontSize:13,color:"var(--color-text-secondary)"}},r))}function en({title:e,meta:t,children:r,style:n,testId:o,bodyStyle:a}){return Vr.default.createElement("div",{"data-testid":o,style:{border:"1px solid var(--color-border-light)",borderRadius:10,overflow:"hidden",minWidth:0,...n}},(e||t)&&Vr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",background:"var(--color-muted)"}},e&&Vr.default.createElement(We,null,e),t&&Vr.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},t)),Vr.default.createElement("div",{style:a},r))}function Mu({passed:e,total:t,label:r,labelWidth:n=128,width:o,height:a=6,color:i,valueWidth:s=38,style:l}){let u=t?e/t:0,c=i||bo[Pu(u)].strong;return Vr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,...l}},r!=null&&Vr.default.createElement("span",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)",width:n,flexShrink:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:r},r),Vr.default.createElement("span",{style:{flex:o?void 0:1,width:o,height:a,borderRadius:999,background:"var(--color-muted)",overflow:"hidden",flexShrink:0}},Vr.default.createElement("span",{style:{display:"block",width:`${Math.round(u*100)}%`,height:"100%",borderRadius:999,background:c}})),Vr.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:600,width:s,textAlign:"right",color:c}},e,"/",t))}function VC({parts:e=[],total:t=0,height:r=4,radius:n=2,style:o,testId:a,title:i,...s}){return Vr.default.createElement("div",{"data-testid":a,title:i,style:{display:"flex",height:r,borderRadius:n,overflow:"hidden",background:"var(--color-border-light)",...o},...s},e.map((l,u)=>Vr.default.createElement("span",{key:u,style:{width:`${t>0?100*(Number(l.value)||0)/t:0}%`,background:(bo[l.tone]||bo.muted).strong,transition:"width 300ms"}})))}function Gr({children:e,onClick:t,href:r="#",color:n="var(--color-info)",size:o=11,style:a,title:i,testId:s}){return Vr.default.createElement("a",{href:r,"data-testid":s,title:i,onClick:l=>{t&&(l.preventDefault(),t(l))},style:{fontFamily:U,fontSize:o,color:n,textDecoration:"none",...a}},e," ",Rx.link)}function tn({children:e,style:t}){return Vr.default.createElement("div",{style:{padding:"20px 12px",fontFamily:U,fontSize:11,color:"var(--color-text-muted)",textAlign:"center",...t}},e)}var Iu=Z(J());var aSe=/\/agents\/(\d+)/;function Ra(...e){return t=>e.some(r=>t.startsWith(r))?{}:null}function iSe(e){return t=>t===e?{}:null}function e0(e){return t=>e.test(t)?{agentId:t.match(aSe)?.[1]}:null}function GC(e){return({agent:t})=>t?`/agents/${t.id}${e}`:""}var sSe=e=>e.assistantEnabled!==!1,lSe=e0(/\/agents\/\d+\/(interactions|history)/),uSe=["recording","context","run","scenario_result"],cSe=/^\/replay\/(?:(context|run|scenario_result)\/)?(\d+)\/?$/;function dSe(e){let t=e.match(cSe);return t?{sessionKind:t[1]||"recording",sessionId:t[2]}:null}var pI=[{view:"assistant",match:iSe("/assistant"),path:"/assistant",enabled:sSe},{view:"traces",match:Ra("/traces"),path:"/traces"},{view:"metrics",match:Ra("/metrics"),path:"/metrics"},{view:"scenarios",match:Ra("/scenarios"),path:"/scenarios"},{view:"scenarios",match:e=>e.startsWith("/catalogs")?{replacePath:e.replace("/catalogs","/scenarios")}:null},{view:"interactions",match:Ra("/interactions"),path:"/interactions"},{view:"tools",match:Ra("/tools"),path:"/tools"},{view:"mcp",match:e=>{if(!e.startsWith("/mcp"))return null;let t=e.match(/^\/mcp\/([^/?#]+)/)?.[1];return t?{focusServer:decodeURIComponent(t)}:{}},path:"/mcp"},{view:"evaluations",match:Ra("/evaluations"),path:"/evaluations"},{view:"analytics",match:Ra("/analytics"),path:"/analytics"},{view:"projects",match:Ra("/projects"),path:"/projects"},{view:"exploration",match:Ra("/explorations"),path:"/explorations"},{view:"builder",match:Ra("/agents/new"),path:"/agents/new"},{view:"history",match:e=>{let t=lSe(e);return t&&e.includes("/history")&&(t.replacePath=e.replace("/history","/interactions")),t},path:GC("/interactions")},{view:"agent-analytics",match:e0(/\/agents\/\d+\/analytics/),path:GC("/analytics")},{view:"editor",match:e0(/\/agents\/\d+\/edit/),path:GC("/edit")},{view:"runner",match:e0(/\/agents\/\d+\/run/),path:GC("/run")},{view:"history",match:e0(/\/agents\/\d+\/?$/)},{view:"replay",match:dSe},{view:"sessions",match:Ra("/sessions","/replay"),path:"/sessions"},{view:"sandbox",match:Ra("/sandbox","/demo"),path:"/sandbox"},{view:"organization",match:Ra("/organization"),path:"/organization"},{view:"settings",match:Ra("/settings"),path:"/settings"}],pSe="list",sY=[{id:"agents",label:null,items:[{view:"assistant",label:"Ask ActiveAgents",glyph:">"},{view:"list",label:"Agents",icon:"agents",badge:"agentCount"},{view:"builder",label:"New Agent",icon:"newAgent"},{view:"sandbox",label:"Run Agents",icon:"demo"},{view:"projects",label:"Projects",glyph:""}]},{id:"observability",label:"Observability",items:[{view:"traces",label:"Traces",icon:"traces"},{view:"interactions",label:"Interactions",icon:"interactions",badge:"pendingInputCount",badgeTone:"attention",badgeTitle:"requests waiting for an answer"},{view:"tools",label:"Tools",icon:"tools"},{view:"mcp",label:"MCP Services",icon:"mcp"},{view:"metrics",label:"Metrics",icon:"metrics"},{view:"evaluations",label:"Evaluations",icon:"evaluations"},{view:"scenarios",label:"Scenarios",icon:"evaluations"},{view:"sessions",label:"Sessions",icon:"replay",also:["replay"]}]},{id:"workspace",label:"Workspace",items:[{view:"organization",label:"Organization",glyph:"\u{1F3E2}"},{view:"settings",label:"Settings",glyph:"\u2699\uFE0F"}]}];function lY(e={}){return{assistantEnabled:e.assistantEnabled!==!1}}function t0(e,t={}){return pI.every(r=>r.view!==e||!r.enabled||r.enabled(t))}function uY(e,t={}){for(let r of pI){if(r.enabled&&!r.enabled(t))continue;let n=r.match(e);if(n)return{view:r.view,...n}}return{view:pSe}}function YC(e,{agent:t=null,features:r={}}={}){if(!t0(e,r))return null;let n=pI.find(o=>o.view===e&&o.path!==void 0);return n&&(typeof n.path=="function"?n.path({agent:t}):n.path)||""}function cY(e){for(let t of sY){let r=t.items.find(n=>n.also?.includes(e));if(r)return r.view}return e}function ch(e,t){return!uSe.includes(e)||!/^[1-9]\d*$/.test(String(t))?null:e==="recording"?`/replay/${t}`:`/replay/${e}/${t}`}function dY(e={}){return sY.map(t=>({...t,items:t.items.filter(r=>t0(r.view,e))}))}var fI="/api/input_requests",XC="action-agent:input-requests-changed",fY=3e4,pY=100,fSe=["text","choice","confirm","secret"];function mY({agentId:e=null,runId:t=null}={}){let r=new URLSearchParams;e!=null&&r.set("agent_id",String(e)),t!=null&&r.set("run_id",String(t));let n=r.toString();return n?`${fI}?${n}`:fI}function dh(e){return(Array.isArray(e)?e:[]).filter(t=>t&&t.status==="pending")}function gY(e){let t=dh(e).length;if(t!==0)return t>=pY?`${pY-1}+`:t}function mI(e){let t=e?.status;return t==="pending"||t==="running"?"poll":t==="awaiting_input"?dh(e.input_requests).length>0?"awaiting":"poll":"finished"}function gI(e){return fSe.includes(e?.kind)?e.kind:null}function hY(e){return(Array.isArray(e?.options)?e.options:[]).map(t=>{if(t&&typeof t=="object"){let r=String(t.value??t.label??"");return{value:r,label:String(t.label??r)}}return t==null?null:{value:String(t),label:String(t)}}).filter(t=>t&&t.value!=="")}function yY(e){return e?.id==null?"answer":`answer-${e.id}`}function vY(e){switch(gI(e)){case"text":return[{type:"form",submit:"Answer",fields:[{name:yY(e),label:"Your answer",type:"textarea",required:!0}]}];case"choice":return[{type:"choices",options:hY(e).map(t=>t.label)}];default:return[]}}function xY(e,t){if(t?.kind==="form"){let r=t.values?.[yY(e)];return r==null?void 0:String(r)}if(t?.kind==="choice")return hY(e).find(r=>r.label===t.text)?.value}var mSe={answered:"Already answered",declined:"Already declined",expired:"Expired before it was answered",cancelled:"Cancelled: the run ended"};function gSe(e,t={}){if(e>=200&&e<300)return{state:t?.input_request?.status==="declined"?"declined":"answered"};if(e===409){let r=t?.status||null;return{state:"closed",status:r,message:mSe[r]||"No longer waiting for an answer"}}return e===422?{state:"invalid",message:t?.error||"That answer does not fit this request"}:e===404?{state:"error",message:"This request is no longer available"}:{state:"error",message:t?.error||`Request failed (${e})`}}function hI(e){return["answered","declined","closed"].includes(e?.state)}async function bY(e,{answer:t,decline:r=!1}={},n=globalThis.fetch){let o=`${fI}/${encodeURIComponent(e.id)}/${r?"decline":"answer"}`,a;try{a=await n(o,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(r?{}:{answer:t})})}catch{return{state:"error",message:"Could not reach the server. Try again."}}let i=await a.json().catch(()=>({}));return gSe(a.status,i)}function wY(e,t){return t?.state==="closed"?t.message:t?.state==="declined"?e?.kind==="confirm"?"Declined: the tool does not run":"Declined":t?.state==="answered"?e?.kind==="confirm"?"Approved: the tool runs":"Answered: the run continues":null}function SY(e){return e?e.name?String(e.name):e.id!=null?`${e.type||"user"} #${e.id}`:null:null}function kY(e,t=Date.now()){if(!e)return null;let r=new Date(e).getTime();if(Number.isNaN(r))return null;let n=Math.floor((r-t)/6e4);if(n<0)return"expired";if(n<60)return`expires in ${Math.max(n,1)}m`;let o=Math.floor(n/60);return o<48?`expires in ${o}h`:`expires in ${Math.floor(o/24)}d`}function _Y(e,t=Date.now()){return e?`asked ${rv(e,t)}`:null}function CY(e){let t=e?.arguments;return t==null||typeof t=="object"&&Object.keys(t).length===0?null:typeof t=="string"?t:JSON.stringify(t,null,2)}function AY(e){let t=e?.agent?.id,r=e?.run_id;if(t==null||r==null)return null;let n=YC("runner",{agent:{id:t}});return n?`${n}?run=${encodeURIComponent(r)}`:null}function EY(e=""){let t=new URLSearchParams(e).get("run");return t&&/^\d+$/.test(t)?Number(t):null}function ZC(){window.dispatchEvent(new CustomEvent(XC))}function JC({agentId:e=null,refreshKey:t,enabled:r=!0,intervalMs:n=fY}={}){let[o,a]=(0,Iu.useState)(null),[i,s]=(0,Iu.useState)(null),l=(0,Iu.useRef)(0),u=(0,Iu.useCallback)(async()=>{let c=++l.current;try{let d=await fetch(mY({agentId:e}));if(!d.ok)throw new Error(`Request failed (${d.status})`);let p=await d.json();if(c!==l.current)return;a(Array.isArray(p.input_requests)?p.input_requests:[]),s(null)}catch(d){if(c!==l.current)return;s(d.message)}},[e]);return(0,Iu.useEffect)(()=>{if(!r)return;u();let c=setInterval(u,n);return window.addEventListener(XC,u),()=>{clearInterval(c),window.removeEventListener(XC,u),l.current+=1}},[r,u,n,t]),{requests:o,error:i,refresh:u}}var hSe={text:"question",choice:"choice",confirm:"approval",secret:"secret"},ySe={answered:"success",declined:"muted",closed:"warning"},yI={fontFamily:U,fontSize:11,color:"var(--color-text-muted)"},vSe={flex:1,minWidth:0,padding:"7px 10px",borderRadius:8,border:"1px solid var(--color-border-strong)",background:"var(--color-surface)",color:"var(--color-text-primary)",fontFamily:U,fontSize:13};function xSe({request:e,busy:t,onSubmit:r}){let[n,o]=(0,yr.useState)("");return yr.default.createElement("form",{onSubmit:i=>{if(i.preventDefault(),!n||t)return;let s=n;o(""),r(s)},style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},yr.default.createElement("input",{type:"password",autoComplete:"off",spellCheck:!1,"data-aa-secret":"","data-testid":"input-request-secret","aria-label":e.prompt,value:n,onChange:i=>o(i.target.value),disabled:t,style:vSe}),yr.default.createElement(de,{type:"submit",variant:"primary",size:"sm",disabled:t||!n,testId:"input-request-secret-submit"},t?"Sending\u2026":"Send"))}function bSe({request:e,busy:t,onApprove:r,onDecline:n}){let o=CY(e);return yr.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8}},o&&yr.default.createElement("pre",{"data-testid":"input-request-arguments",style:{margin:0,padding:"8px 10px",borderRadius:8,maxHeight:200,overflow:"auto",whiteSpace:"pre-wrap",background:"var(--color-muted)",color:"var(--color-text-cell)",fontFamily:U,fontSize:12}},o),yr.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},yr.default.createElement(de,{variant:"primary",size:"sm",onClick:r,disabled:t,testId:"input-request-approve"},"Approve"),yr.default.createElement(de,{variant:"secondary",size:"sm",onClick:n,disabled:t,testId:"input-request-decline"},"Decline")))}function Jp({request:e,onSettled:t,initialOutcome:r=null,showRunLink:n=!0}){let{darkMode:o}=ut(),[a,i]=(0,yr.useState)(!1),[s,l]=(0,yr.useState)(r),u=gI(e),c=hI(s),d=async h=>{if(a||c)return;i(!0);let v=await bY(e,h);i(!1),l(v),hI(v)&&(ZC(),t&&t(e,v))},p=h=>{h!==void 0&&d({answer:h})},f=()=>d({decline:!0}),m=n?AY(e):null,y=SY(e.actor),b=kY(e.expires_at),g=_Y(e.created_at);return yr.default.createElement("div",{"data-testid":"input-request-card","data-kind":e.kind,"data-state":s?.state||"pending",style:{border:"1px solid var(--color-border)",borderRadius:10,background:"var(--color-card)",padding:"12px 14px",display:"flex",flexDirection:"column",gap:8}},yr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},yr.default.createElement(_e,{tone:e.kind==="confirm"?"warning":"info",size:10},hSe[e.kind]||e.kind),yr.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},e.agent?.name||"An agent"," is asking"),m&&yr.default.createElement(Gr,{href:et(m),onClick:()=>lt(m),title:"Open the run this request paused"},yr.default.createElement("span",{"data-testid":"input-request-run-link"},"run #",e.run_id)),b&&yr.default.createElement("span",{style:{...yI,marginLeft:"auto",color:b==="expired"?"var(--color-error-text)":yI.color}},b)),yr.default.createElement("div",{style:{fontSize:14,color:"var(--color-text-primary)",whiteSpace:"pre-wrap",overflowWrap:"anywhere"}},e.prompt),yr.default.createElement("div",{style:{...yI,display:"flex",gap:10,flexWrap:"wrap"}},y&&yr.default.createElement("span",{"data-testid":"input-request-actor"},"for ",y),e.tool_name&&yr.default.createElement("span",{"data-testid":"input-request-tool"},"via ",e.tool_name),g&&yr.default.createElement("span",null,g)),c?yr.default.createElement("div",{"data-testid":"input-request-outcome"},yr.default.createElement(_e,{tone:ySe[s.state]||"muted"},wY(e,s))):yr.default.createElement(yr.default.Fragment,null,(u==="text"||u==="choice")&&yr.default.createElement(bl,{blocks:vY(e),darkMode:o,onAction:h=>p(xY(e,h))}),u==="confirm"&&yr.default.createElement(bSe,{request:e,busy:a,onApprove:()=>p(!0),onDecline:f}),u==="secret"&&yr.default.createElement(xSe,{request:e,busy:a,onSubmit:p}),u!=="confirm"&&yr.default.createElement("div",null,yr.default.createElement(de,{variant:"ghost",size:"sm",onClick:f,disabled:a,testId:"input-request-decline",style:{padding:"2px 0"}},"Decline")),s?.message&&yr.default.createElement("div",{"data-testid":"input-request-error",role:"alert",style:{fontSize:12,color:"var(--color-error-text)"}},s.message)))}function wSe({pending:e,settled:t=[],onSettled:r}){return e.length===0&&t.length===0?null:Ws.default.createElement("section",{"data-testid":"needs-input-lane","aria-label":"Needs input",style:{border:"1px solid var(--color-warning)",borderRadius:12,background:"var(--color-warning-soft)",padding:14,display:"flex",flexDirection:"column",gap:10}},Ws.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10,flexWrap:"wrap"}},Ws.default.createElement(We,{color:"var(--color-warning-text)"},"Needs input"),Ws.default.createElement("span",{"data-testid":"needs-input-count",style:{fontFamily:U,fontSize:11,color:"var(--color-warning-text)"}},e.length," waiting"),Ws.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"Each run is paused until its request is answered. Answering continues the same run.")),e.map(n=>Ws.default.createElement(Jp,{key:n.id,request:n,onSettled:r})),t.map(({request:n,outcome:o})=>Ws.default.createElement(Jp,{key:n.id,request:n,initialOutcome:o})))}function vI({agentId:e=null}){let{requests:t}=JC({agentId:e}),[r,n]=(0,Ws.useState)([]),o=new Set(r.map(({request:s})=>s.id)),a=dh(t).filter(s=>!o.has(s.id));return Ws.default.createElement(wSe,{pending:a,settled:r,onSettled:(s,l)=>{n(u=>[...u.filter(c=>c.request.id!==s.id),{request:s,outcome:l}])}})}var mr=Z(J());function NY(e=[],t=""){let r=t.trim().toLowerCase();return e.filter(n=>n.status!=="archived"&&n.status!=="observed").filter(n=>!r||`${n.name||""} ${n.description||""}`.toLowerCase().includes(r)).sort((n,o)=>{let a=i=>i.status==="active"?0:1;return a(n)-a(o)||String(n.name||"").localeCompare(String(o.name||""))})}var TY=e=>`/agents/${e.id}/run?new=1`;function r0({inline:e=!1,label:t="New interaction"}){let[r,n]=(0,mr.useState)(e),[o,a]=(0,mr.useState)(null),[i,s]=(0,mr.useState)(null),[l,u]=(0,mr.useState)(""),c=(0,mr.useRef)(null);(0,mr.useEffect)(()=>{!r||o||fetch("/api/agents").then(f=>{if(!f.ok)throw new Error(`HTTP ${f.status}`);return f.json()}).then(f=>a(f.agents||[])).catch(f=>s(f.message))},[r,o]),(0,mr.useEffect)(()=>{if(e||!r)return;let f=m=>{c.current&&!c.current.contains(m.target)&&n(!1)};return document.addEventListener("mousedown",f),()=>document.removeEventListener("mousedown",f)},[e,r]);let d=(0,mr.useMemo)(()=>NY(o||[],l),[o,l]),p=mr.default.createElement("div",{"data-testid":"new-interaction-agents"},(o?.length||0)>6&&mr.default.createElement("input",{type:"search",value:l,onChange:f=>u(f.target.value),placeholder:"Find an agent","aria-label":"Find an agent",autoFocus:!e,className:"w-full mb-2 px-3 py-1.5 text-sm rounded-lg",style:{background:"var(--color-muted)",border:"1px solid var(--color-border)",color:"var(--color-text-primary)"}}),i&&mr.default.createElement("p",{className:"text-sm",style:{color:"var(--color-error)"}},"Could not load agents: ",i),!o&&!i&&mr.default.createElement("p",{className:"text-sm",style:{color:"var(--color-text-muted)"}},"Loading agents\u2026"),o&&d.length===0&&mr.default.createElement(tn,null,o.length===0?"No agents in this workspace yet.":"No agent matches."," ",mr.default.createElement("a",{href:"#",onClick:f=>{f.preventDefault(),lt("/agents/new")},style:{color:"var(--color-info)"}},"Create an agent")),mr.default.createElement("ul",{className:"space-y-1 max-h-80 overflow-y-auto"},d.map(f=>mr.default.createElement("li",{key:f.id},mr.default.createElement("button",{type:"button","data-testid":`new-interaction-agent-${f.id}`,onClick:()=>lt(TY(f)),className:"w-full text-left px-3 py-2 rounded-lg block",style:{border:"1px solid var(--color-border)",background:"var(--color-card)",cursor:"pointer"}},mr.default.createElement("span",{className:"flex items-center justify-between gap-2"},mr.default.createElement("span",{className:"text-sm font-medium truncate min-w-0",style:{color:"var(--color-text-primary)"}},f.name),f.status&&f.status!=="active"&&mr.default.createElement(_e,{tone:"muted"},f.status)),mr.default.createElement("span",{className:"block truncate",style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},f.provider,"/",f.model),f.description&&mr.default.createElement("span",{className:"block text-xs truncate",style:{color:"var(--color-text-secondary)"}},f.description))))));return e?mr.default.createElement(Le,{testId:"new-interaction-card"},mr.default.createElement("div",{className:"flex items-baseline justify-between mb-3 gap-3"},mr.default.createElement("div",null,mr.default.createElement(We,null,"Your agents"),mr.default.createElement("p",{className:"text-sm mt-1",style:{color:"var(--color-text-secondary)"}},"Start a new interaction. It runs with the instructions, tools and MCP servers saved on the agent."))),p):mr.default.createElement("div",{ref:c,className:"relative"},mr.default.createElement(de,{variant:"primary",size:"sm",testId:"new-interaction",onClick:()=>n(f=>!f)},t),r&&mr.default.createElement("div",{className:"absolute right-0 mt-2 z-20 p-3 rounded-xl",style:{width:360,background:"var(--color-card)",border:"1px solid var(--color-border)",boxShadow:"0 8px 24px rgba(0,0,0,0.12)"}},mr.default.createElement(We,{style:{display:"block",marginBottom:8}},"Start a conversation with"),p))}var Ye=Z(J());var RC=(e,t)=>e!=null&&e>=400&&e<500||t>=5;var Hs=(e,t)=>`${e} ${t}${e===1?"":"s"}`,n0=(e,t)=>{let r=String(e??"");return r.length>t?`${r.slice(0,t-1)}\u2026`:r},e2=e=>String(e||"").replace(/_/g," ").replace(/^\w/,t=>t.toUpperCase()),OY=e=>String(e??"").replace(/\s+/g," ").trim(),Qp=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),ph=e=>{try{return JSON.stringify(e)??String(e)}catch{return String(e)}},t2=e=>{if(e==null||e===""||Number.isNaN(Number(e)))return null;let t=Number(e);return t===0?"$0.00":Math.abs(t)<.01?`$${t.toFixed(4)}`:`$${t.toFixed(2)}`},xI=e=>{if(e==null||e===""||Number.isNaN(Number(e)))return null;let t=Math.max(0,Number(e));if(t<1e3)return`${Math.round(t)}ms`;if(t<6e4)return`${(t/1e3).toFixed(1).replace(/\.0$/,"")}s`;let r=Math.round(t/1e3);return r<3600?`${Math.floor(r/60)}m ${r%60}s`:`${Math.floor(r/3600)}h ${Math.floor(r%3600/60)}m`},IY=(e,{num_turns:t,total_cost_usd:r,duration_ms:n}={})=>[e,t==null||t===""?null:Hs(Number(t),"turn"),t2(r),xI(n)].filter(Boolean).join(" \xB7 "),DY=(e,t=Date.now())=>{if(!e)return null;let r=new Date(e).getTime();if(Number.isNaN(r))return null;let n=Math.ceil((r-t)/6e4);return n<=0?"past its expiry":n<60?`expires in ${n}m`:`expires in ${Math.floor(n/60)}h${n%60?` ${n%60}m`:""}`},ot=(e,t)=>{let r=i=>Array.isArray(i)?i.filter(Boolean).join(", "):typeof i=="string"?i:"",n=Qp(e)?e:{},o=r(n.error)||r(n.errors),a=typeof n.message=="string"?n.message:"";return o&&a?`${o}: ${a}`:o||a||t},SSe={pending:{label:"Queued",tone:"progress"},provisioning:{label:"Booting",tone:"progress"},ready:{label:"Ready",tone:"success"},running:{label:"Running",tone:"success"},completed:{label:"Completed",tone:"neutral"},expired:{label:"Stopped",tone:"neutral"},failed:{label:"Failed",tone:"error"}},jY=e=>SSe[e]||{label:e2(e)||"Unknown",tone:"neutral"},r2=e=>["pending","provisioning"].includes(e?.status),$Y=e=>e?.status==="ready",kSe={queued:{label:"Queued",tone:"progress"},running:{label:"Running",tone:"progress"},succeeded:{label:"Succeeded",tone:"success"},failed:{label:"Failed",tone:"error"},cancelled:{label:"Cancelled",tone:"neutral"}},fs=e=>kSe[e]||{label:e2(e)||"Unknown",tone:"neutral"},qs=e=>["queued","running"].includes(e?.status),s0=e=>["succeeded","failed","cancelled"].includes(e?.status),bI=e=>s0(e)&&e?.diff_pending===!0,wI=e=>s0(e)&&!bI(e),LY=e=>e?.status==="cancelled"&&wI(e)&&e?.diff==null&&!(Number(e?.event_count)>0),SI=e=>{if(!s0(e)){let t=Number(e?.event_count)||0;return t>0?Hs(t,"event"):""}return IY(null,e)},zY=e=>[fs(e?.status).label,SI(e)].filter(Boolean).join(" \xB7 "),BY=(e,t=80)=>{let r=String(e||"").split(` -`).map(n=>n.trim()).find(Boolean)||"";return n0(r,t)||"(empty prompt)"},id=(e,t,r)=>{if(!t||t[r]==null)return e;let n=e.findIndex(a=>a[r]===t[r]);if(n===-1)return[t,...e];let o=e.slice();return o[n]={...e[n],...t},o},FY=(e,t,r)=>t&&e.some(n=>n[r]===t[r])?id(e,t,r):e,UY=e=>{if(!e)return e;let{events:t,events_offset:r,dropped_events_count:n,diff:o,...a}=e;return a},WY=(e,t)=>{let r=new Set(t||[]),n={},o=[];return(e||[]).forEach(a=>{!a||a.status==="expired"||a.sandbox_type&&a.sandbox_type!=="app_runtime"||(r.has(a.repository)?(n[a.repository]||=[]).push(a):o.push(a))}),{byRepository:n,others:o}},HY=(e,t)=>{let r=Array.isArray(e)?e:[],n=Array.isArray(t?.events)?t.events:[],o=Math.max(0,Math.min(Number(t?.events_offset)||0,r.length));return[...r.slice(0,o),...n]},wl=(e,t)=>{let r=String(e??"");if(!t)return r;let n=String(t).replace(/\/+$/,"");return r===n?".":r.startsWith(`${n}/`)?r.slice(n.length+1):r},_Se={Bash:e=>e.command,Read:(e,t)=>wl(e.file_path,t),Write:(e,t)=>wl(e.file_path,t),Edit:(e,t)=>wl(e.file_path,t),MultiEdit:(e,t)=>{let r=Array.isArray(e.edits)?` (${Hs(e.edits.length,"edit")})`:"";return`${wl(e.file_path,t)}${r}`},NotebookEdit:(e,t)=>wl(e.notebook_path,t),NotebookRead:(e,t)=>wl(e.notebook_path,t),Glob:(e,t)=>e.path?`${e.pattern} in ${wl(e.path,t)}`:e.pattern,Grep:(e,t)=>[`"${e.pattern}"`,e.path&&`in ${wl(e.path,t)}`,e.glob&&`(${e.glob})`].filter(Boolean).join(" "),LS:(e,t)=>wl(e.path,t),WebFetch:e=>e.url,WebSearch:e=>e.query,Task:e=>e.description||e.prompt,Agent:e=>e.description||e.prompt,TodoWrite:e=>Array.isArray(e.todos)?Hs(e.todos.length,"todo"):"",BashOutput:e=>e.bash_id,KillShell:e=>e.shell_id,KillBash:e=>e.shell_id,Skill:e=>e.skill||e.command,SlashCommand:e=>e.command},CSe=["command","file_path","path","url","query","pattern","description","name","prompt"],ASe=(e,t,{cwd:r}={})=>{if(t==null)return"";if(!Qp(t))return n0(OY(typeof t=="string"?t:ph(t)),120);let n=_Se[e],o=n?n(t,r):null;if(o==null||o===""){let a=CSe.find(i=>typeof t[i]=="string"&&t[i].trim());a?o=["file_path","path"].includes(a)?wl(t[a],r):t[a]:o=Object.keys(t).length?ph(t):""}return n0(OY(o),120)},ESe=e=>e==null?"":typeof e=="string"?e:Array.isArray(e)?e.map(t=>typeof t=="string"?t:t?.type==="text"?t.text??"":t?.type==="image"?"[image]":ph(t)).join(` -`):ph(e),NSe=(e,{chars:t=600,lines:r=12}={})=>{let n=String(e??"").replace(/\s+$/,""),o=n.split(` + `).concat(x.x,",").concat(x.y),k=ar(e.id)?ou("recharts-radial-line-"):e.id;return Ja.createElement("text",ku({},n,{dominantBaseline:"central",className:bt("recharts-radial-bar-label",i)}),Ja.createElement("defs",null,Ja.createElement("path",{id:k,d:S})),Ja.createElement("textPath",{xlinkHref:"#".concat(k)},r))},Ahe=(e,t,r)=>{var n=e.cx,o=e.cy,a=e.innerRadius,i=e.outerRadius,s=e.startAngle,l=e.endAngle,u=(s+l)/2;if(r==="outside"){var c=an(n,o,i+t,u),d=c.x,p=c.y;return{x:d,y:p,textAnchor:d>=n?"start":"end",verticalAnchor:"middle"}}if(r==="center")return{x:n,y:o,textAnchor:"middle",verticalAnchor:"middle"};if(r==="centerTop")return{x:n,y:o,textAnchor:"middle",verticalAnchor:"start"};if(r==="centerBottom")return{x:n,y:o,textAnchor:"middle",verticalAnchor:"end"};var f=(a+i)/2,m=an(n,o,f,u),y=m.x,b=m.y;return{x:y,y:b,textAnchor:"middle",verticalAnchor:"middle"}},Fg=e=>e!=null&&"cx"in e&&De(e.cx),Ehe={angle:0,offset:5,zIndex:ir.label,position:"middle",textBreakAll:!1};function Nhe(e){if(!Fg(e))return e;var t=e.cx,r=e.cy,n=e.outerRadius,o=n*2;return{x:t-n,y:r-n,width:o,upperWidth:o,lowerWidth:o,height:o}}function Su(e){var t,r,n=nr(e,Ehe),o=n.viewBox,a=n.parentViewBox,i=n.position,s=n.value,l=n.children,u=n.content,c=n.className,d=c===void 0?"":c,p=n.textBreakAll,f=n.labelRef,m=She(),y=JH(),b=i==="center"?y:m??y,g,h,v;o==null?g=b:Fg(o)?g=o:g=uv(o);var x=Nhe(g);if(!g||ar(s)&&ar(l)&&!(0,No.isValidElement)(u)&&typeof u!="function")return null;var S=Fg(g)&&(i==="insideStart"||i==="insideEnd"||i==="end");if(Fg(g))S||(v=Ahe(g,n.offset,n.position));else if(x){var k=pw({viewBox:x,position:i,offset:n.offset,parentViewBox:Fg(a)?void 0:a,clamp:!0});v=Mp(Mp({x:k.x,y:k.y,textAnchor:k.horizontalAnchor,verticalAnchor:k.verticalAnchor},k.width!==void 0?{width:k.width}:{}),k.height!==void 0?{height:k.height}:{})}var w=Mp(Mp(Mp(Mp({},((t=v)===null||t===void 0?void 0:t.x)!==void 0?{x:v.x}:{}),((r=v)===null||r===void 0?void 0:r.y)!==void 0?{y:v.y}:{}),n),{},{viewBox:g});if((0,No.isValidElement)(u)){var _=w.labelRef,A=GH(w,hhe);return(0,No.cloneElement)(u,A)}if(typeof u=="function"){var C=w.content,N=GH(w,yhe);if(h=(0,No.createElement)(u,N),(0,No.isValidElement)(h))return h}else h=khe(n);var L=yn(n);return S&&Fg(g)?Che(n,i,h,L,g):v==null?null:Ja.createElement(sn,{zIndex:n.zIndex},Ja.createElement(Pp,ku({ref:f,className:bt("recharts-label",d)},L,v,{textAnchor:I_(L.textAnchor)?L.textAnchor:v.textAnchor,breakAll:p}),h))}Su.displayName="Label";var The=(e,t,r)=>{if(!e)return null;var n={viewBox:t,labelRef:r};return e===!0?Ja.createElement(Su,ku({key:"label-implicit"},n)):Sa(e)?Ja.createElement(Su,ku({key:"label-implicit",value:e},n)):(0,No.isValidElement)(e)?e.type===Su?(0,No.cloneElement)(e,Mp({key:"label-implicit"},n)):Ja.createElement(Su,ku({key:"label-implicit",content:e},n)):Ip(e)?Ja.createElement(Su,ku({key:"label-implicit",content:e},n)):e&&typeof e=="object"?Ja.createElement(Su,ku({},e,{key:"label-implicit"},n)):null};function eq(e){var t=e.label,r=e.labelRef,n=JH();return The(t,n,r)||null}var _u=Z(J()),Ug=Z(J());var Ohe=["valueAccessor"],Phe=["dataKey","clockWise","id","textBreakAll","zIndex"];function j_(){return j_=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(HH(t))return t},rq=(0,Ug.createContext)(void 0),Wg=rq.Provider,nq=(0,Ug.createContext)(void 0),oq=nq.Provider;function Dhe(){return(0,Ug.useContext)(rq)}function jhe(){return(0,Ug.useContext)(nq)}function D_(e){var t=e.valueAccessor,r=t===void 0?Ihe:t,n=tq(e,Ohe),o=n.dataKey,a=n.clockWise,i=n.id,s=n.textBreakAll,l=n.zIndex,u=tq(n,Phe),c=Dhe(),d=jhe(),p=c||d;return!p||!p.length?null:_u.createElement(sn,{zIndex:l??ir.label},_u.createElement(br,{className:"recharts-label-list"},p.map((f,m)=>{var y,b=ar(o)?r(f,m):Ht(f.payload,o),g=ar(i)?{}:{id:"".concat(i,"-").concat(m)};return _u.createElement(Su,j_({key:"label-".concat(m)},yn(f),u,g,{fill:(y=n.fill)!==null&&y!==void 0?y:f.fill,parentViewBox:f.parentViewBox,value:b,textBreakAll:s,viewBox:f.viewBox,index:m,zIndex:0}))})))}D_.displayName="LabelList";function qc(e){var t=e.label;return t?t===!0?_u.createElement(D_,{key:"labelList-implicit"}):_u.isValidElement(t)||Ip(t)?_u.createElement(D_,{key:"labelList-implicit",content:t}):typeof t=="object"?_u.createElement(D_,j_({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}var aq=Z(J());function JM(){return JM=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=e.cx,r=e.cy,n=e.r,o=e.className,a=bt("recharts-dot",o);return De(t)&&De(r)&&De(n)?aq.createElement("circle",JM({},hn(e),Um(e),{className:a,cx:t,cy:r,r:n})):null};var QM=e=>e.graphicalItems.polarItems,$he=ae([vn,pp],ix),L_=ae([QM,En,$he],sx),Lhe=ae([L_],lx),z_=ae([Lhe,lp],ux),zhe=ae([z_,En,L_],nM),Y7e=ae([z_,En,L_],(e,t,r)=>r.length>0?e.flatMap(n=>r.flatMap(o=>{var a,i=Ht(n,(a=t.dataKey)!==null&&a!==void 0?a:o.dataKey);return{value:i,errorDomain:[]}})).filter(Boolean):t?.dataKey!=null?e.map(n=>({value:Ht(n,t.dataKey),errorDomain:[]})):e.map(n=>({value:n,errorDomain:[]}))),iq=()=>{},Bhe=ae([z_,En,L_,Og,vn,iF],dx),Fhe=ae([En,n_,o_,iq,Bhe,iq,Bt,vn],px),sq=ae([En,Bt,z_,zhe,Ec,vn,Fhe],fx),Uhe=ae([sq,Np,yu],mx),Whe=ae([En,sq,Uhe,vn],gx),X7e=ae([yu,Whe],hk);var Hhe={radiusAxis:{},angleAxis:{}},lq=Cr({name:"polarAxis",initialState:Hhe,reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=Zt(t.payload)},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=Zt(t.payload)},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),B_=lq.actions,R7e=B_.addRadiusAxis,e9e=B_.removeRadiusAxis,t9e=B_.addAngleAxis,r9e=B_.removeAngleAxis;var uq=lq.reducer;function F_(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}var Gt=Z(J()),Xg=Z(J());function cq(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function dq(e){for(var t=1;tt,RM=ae([QM,Ghe],(e,t)=>e.filter(r=>r.type==="pie").find(r=>r.id===t)),Yhe=[],e5=(e,t,r)=>r?.length===0?Yhe:r,pq=ae([lp,RM,e5],(e,t,r)=>{var n=e.chartData;if(t!=null){var o;if(t?.data!=null&&t.data.length>0?o=t.data:o=n,(!o||!o.length)&&r!=null&&(o=r.map(a=>dq(dq({},t.presentationProps),a.props))),o!=null)return o}}),fq=ae([pq,RM,e5],(e,t,r)=>{if(!(e==null||t==null))return e.map((n,o)=>{var a,i=Ht(n,t.nameKey,t.name),s;return r!=null&&(a=r[o])!==null&&a!==void 0&&(a=a.props)!==null&&a!==void 0&&a.fill?s=r[o].props.fill:typeof n=="object"&&n!=null&&"fill"in n?s=n.fill:s=t.fill,{value:xi(i,t.dataKey),dataKey:t.dataKey,color:s,payload:n,type:t.legendType}})}),mq=ae([pq,RM,e5,Fr],(e,t,r,n)=>{if(!(t==null||e==null))return gq({offset:n,pieSettings:t,displayedData:e,cells:r})});var wq=Z(J()),Sq=Z(vq());var xq=e=>typeof e=="string"?e:e?e.displayName||e.name||"Component":"",bq=null,n5=null,kq=e=>{if(e===bq&&Array.isArray(n5))return n5;var t=[];return wq.Children.forEach(e,r=>{ar(r)||((0,Sq.isFragment)(r)?t=t.concat(kq(r.props.children)):t.push(r))}),n5=t,bq=e,t};function wx(e,t){var r=[],n=[];return Array.isArray(t)?n=t.map(o=>xq(o)):n=[xq(t)],kq(e).forEach(o=>{var a=Uo(o,"type.displayName")||Uo(o,"type.name");a&&n.indexOf(a)!==-1&&r.push(o)}),r}var Hg=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0;var qg=Z(J()),Sx=Z(J());function _q(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Cq(e){for(var t=1;t{var n=jt();return(o,a)=>i=>{e?.(o,a,i),n(c_({activeIndex:String(a),activeDataKey:t,activeCoordinate:o.tooltipPosition,activeGraphicalItemId:r}))}},_x=e=>{var t=jt();return(r,n)=>o=>{e?.(r,n,o),t(hW())}},Cx=(e,t,r)=>{var n=jt();return(o,a)=>i=>{e?.(o,a,i),n(yW({activeIndex:String(a),activeDataKey:t,activeCoordinate:o.tooltipPosition,activeGraphicalItemId:r}))}};var Ax=Z(J());function Vc(e){var t=e.tooltipEntrySettings,r=jt(),n=Ar(),o=(0,Ax.useRef)(null);return(0,Ax.useLayoutEffect)(()=>{n||(o.current===null?r(pW(t)):o.current!==t&&r(fW({prev:o.current,next:t})),o.current=t)},[t,r,n]),(0,Ax.useLayoutEffect)(()=>()=>{o.current&&(r(mW(o.current)),o.current=null)},[r]),null}var Gc=Z(J());function Kg(e){var t=e.legendPayload,r=jt(),n=Ar(),o=(0,Gc.useRef)(null);return(0,Gc.useLayoutEffect)(()=>{n||(o.current===null?r(GO(t)):o.current!==t&&r(YO({prev:o.current,next:t})),o.current=t)},[r,n,t]),(0,Gc.useLayoutEffect)(()=>()=>{o.current&&(r(XO(o.current)),o.current=null)},[r]),null}function Eq(e){var t=e.legendPayload,r=jt(),n=$e(Bt),o=(0,Gc.useRef)(null);return(0,Gc.useLayoutEffect)(()=>{n!=="centric"&&n!=="radial"||(o.current===null?r(GO(t)):o.current!==t&&r(YO({prev:o.current,next:t})),o.current=t)},[r,n,t]),(0,Gc.useLayoutEffect)(()=>()=>{o.current&&(r(XO(o.current)),o.current=null)},[r]),null}var Oq=Z(J()),Tx=Z(J());function oye(e,t){return lye(e)||sye(e,t)||iye(e,t)||aye()}function aye(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function iye(e,t){if(e){if(typeof e=="string")return Nq(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Nq(e,t):void 0}}function Nq(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r2&&arguments[2]!==void 0?arguments[2]:[],n=[];for(var o of r)n.push({status:"removed",prev:o});for(var a=0;ae[Math.floor(a*r)]);return o5(n,t)}function cye(e,t){var r=t.map((n,o)=>e[o]);return o5(r,t)}function dye(e,t){for(var r=new Map,n=0;n{var f=r(d,p);if(f!=null){var m=n.get(f);if(m!==void 0)return o.add(f),m}}),i=[];for(var s of n){var l=oye(s,2),u=l[0],c=l[1];o.has(u)||i.push(c)}return o5(a,t,i)}function Nx(e,t,r){return t==null?null:e==null?t.map(n=>({status:"added",next:n})):r===Dp?uye(e,t):r===Ex?cye(e,t):pye(e,t,r)}var Vg=Z(J());function J_(e,t){var r=(0,Vg.useRef)(e),n=(0,Vg.useRef)(t.current),o=(0,Vg.useRef)(!0);r.current!==e&&(r.current=e,n.current=t.current,o.current=!1);var a=(0,Vg.useCallback)(function(i,s){var l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(s===0){o.current=!0;return}s===1&&(n.current=i),s>0&&o.current&&l&&(t.current=i)},[t]);return{startValue:n.current,syncStepValue:a}}function fye(e,t){return yye(e)||hye(e,t)||gye(e,t)||mye()}function mye(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function gye(e,t){if(e){if(typeof e=="string")return Tq(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Tq(e,t):void 0}}function Tq(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{typeof e=="function"&&e(),a(!0)},[e]),s=(0,Tx.useCallback)(()=>{typeof t=="function"&&t(),a(!1)},[t]);return{isAnimating:o,handleAnimationStart:i,handleAnimationEnd:s}}function Xc(e){var t,r=e.animationInput,n=e.animationIdPrefix,o=e.items,a=e.previousItemsRef,i=e.isAnimationActive,s=e.animationBegin,l=e.animationDuration,u=e.animationEasing,c=e.onAnimationStart,d=e.onAnimationEnd,p=e.animationInterpolateFn,f=e.animationMatchBy,m=e.shouldUpdatePreviousRef,y=e.children,b=e.layout,g=KS(r,n),h=J_(g,a),v=(t=h.startValue)!==null&&t!==void 0?t:null,x=Nx(v,o,f??Dp);return Oq.createElement(qS,{animationId:g,begin:s,duration:l,isActive:i,easing:u,onAnimationEnd:d,onAnimationStart:c,key:g},S=>{var k=v==null,w=o==null?o:p(x,S,b),_=m?m(S):S>0;return h.syncStepValue(w,S,_),w==null?null:y(w,S,k)})}var Iq=Z(J()),i5=Z(J());var Q_=Z(J());var a5;function vye(e,t){return Sye(e)||wye(e,t)||bye(e,t)||xye()}function xye(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function bye(e,t){if(e){if(typeof e=="string")return Pq(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Pq(e,t):void 0}}function Pq(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var e=Q_.useState(()=>ou("uid-")),t=vye(e,1),r=t[0];return r},R_=(a5=Q_.useId)!==null&&a5!==void 0?a5:kye;function Mq(e,t){var r=R_();return t||(e?"".concat(e,"-").concat(r):r)}var _ye=(0,i5.createContext)(void 0),Zc=e=>{var t=e.id,r=e.type,n=e.children,o=Mq("recharts-".concat(r),t);return Iq.createElement(_ye.Provider,{value:o},n(o))};var Ls=Z(J());var Cye={cartesianItems:[],polarItems:[]},Dq=Cr({name:"graphicalItems",initialState:Cye,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(Zt(t.payload))},prepare:Ir()},replaceCartesianGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,o=r.next,a=ea(e).cartesianItems.indexOf(Zt(n));a>-1&&(e.cartesianItems[a]=Zt(o))},prepare:Ir()},removeCartesianGraphicalItem:{reducer(e,t){var r=ea(e).cartesianItems.indexOf(Zt(t.payload));r>-1&&e.cartesianItems.splice(r,1)},prepare:Ir()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(Zt(t.payload))},prepare:Ir()},removePolarGraphicalItem:{reducer(e,t){var r=ea(e).polarItems.indexOf(Zt(t.payload));r>-1&&e.polarItems.splice(r,1)},prepare:Ir()},replacePolarGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,o=r.next,a=ea(e).polarItems.indexOf(Zt(n));a>-1&&(e.polarItems[a]=Zt(o))},prepare:Ir()}}}),Gg=Dq.actions,jq=Gg.addCartesianGraphicalItem,$q=Gg.replaceCartesianGraphicalItem,Lq=Gg.removeCartesianGraphicalItem,zq=Gg.addPolarGraphicalItem,Bq=Gg.removePolarGraphicalItem,Fq=Gg.replacePolarGraphicalItem;var Uq=Dq.reducer;var Aye=e=>{var t=jt(),r=(0,Ls.useRef)(null);return(0,Ls.useLayoutEffect)(()=>{r.current===null?t(jq(e)):r.current!==e&&t($q({prev:r.current,next:e})),r.current=e},[t,e]),(0,Ls.useLayoutEffect)(()=>()=>{r.current&&(t(Lq(r.current)),r.current=null)},[t]),null},Yg=(0,Ls.memo)(Aye),Eye=e=>{var t=jt(),r=(0,Ls.useRef)(null);return(0,Ls.useLayoutEffect)(()=>{r.current===null?t(zq(e)):r.current!==e&&t(Fq({prev:r.current,next:e})),r.current=e},[t,e]),(0,Ls.useLayoutEffect)(()=>()=>{r.current&&(t(Bq(r.current)),r.current=null)},[t]),null},Wq=(0,Ls.memo)(Eye);var Nye=["key"],Tye=["onMouseEnter","onClick","onMouseLeave"],Oye=["id"],Pye=["id"];function jp(){return jp=Object.assign?Object.assign.bind():function(e){for(var t=1;twx(e.children,wu),[e.children]),r=$e(n=>fq(n,e.id,t));return r==null?null:Gt.createElement(Eq,{legendPayload:r})}function Lye(e){if(!(e==null||typeof e=="boolean"||typeof e=="function")){if(Gt.isValidElement(e)){var t,r=(t=e.props)===null||t===void 0?void 0:t.fill;return typeof r=="string"?r:void 0}var n=e.fill;return typeof n=="string"?n:void 0}}var zye=Gt.memo(e=>{var t=e.dataKey,r=e.nameKey,n=e.sectors,o=e.stroke,a=e.strokeWidth,i=e.fill,s=e.name,l=e.hide,u=e.tooltipType,c=e.formatter,d=e.id,p=e.activeShape,f=Lye(p),m=n.map(b=>{var g=b.tooltipPayload;return f==null||g==null?g:g.map(h=>Nn(Nn({},h),{},{color:f,fill:f}))}),y={dataDefinedOnItem:m,getPosition:b=>{var g;return(g=n[Number(b)])===null||g===void 0?void 0:g.tooltipPosition},settings:{stroke:o,strokeWidth:a,fill:i,dataKey:t,nameKey:r,name:xi(s,t),hide:l,type:u,color:i,unit:"",formatter:c,graphicalItemId:d}};return Gt.createElement(Vc,{tooltipEntrySettings:y})}),Bye=(e,t)=>e>t?"start":etypeof t=="function"?$n(t(e),r,r*.8):$n(t,r,r*.8),Uye=(e,t,r)=>{var n=t.top,o=t.left,a=t.width,i=t.height,s=XS(a,i),l=o+$n(e.cx,a,a/2),u=n+$n(e.cy,i,i/2),c=$n(e.innerRadius,s,0),d=Fye(r,e.outerRadius,s),p=e.maxRadius||Math.sqrt(a*a+i*i)/2;return{cx:l,cy:u,innerRadius:c,outerRadius:d,maxRadius:p}},Wye=(e,t)=>{var r=Qr(t-e),n=Math.min(Math.abs(t-e),360);return r*n},Hye=(e,t)=>{if(Gt.isValidElement(e))return Gt.cloneElement(e,t);if(typeof e=="function")return e(t);var r=bt("recharts-pie-label-line",typeof e!="boolean"?e.className:""),n=t.key,o=eC(t,Nye);return Gt.createElement(ul,jp({},o,{type:"linear",className:r}))},qye=(e,t,r)=>{if(Gt.isValidElement(e))return Gt.cloneElement(e,t);var n=r;if(typeof e=="function"&&(n=e(t),Gt.isValidElement(n)))return n;var o=bt("recharts-pie-label-text",F_(e));return Gt.createElement(Pp,jp({},t,{alignmentBaseline:"middle",className:o}),n)};function Kye(e){var t=e.sectors,r=e.props,n=e.showLabels,o=r.label,a=r.labelLine,i=r.dataKey;if(!n||!o||!t)return null;var s=hn(r),l=mi(o),u=mi(a),c=typeof o=="object"&&"offsetRadius"in o&&typeof o.offsetRadius=="number"&&o.offsetRadius||20,d=t.map((p,f)=>{var m=(p.startAngle+p.endAngle)/2,y=an(p.cx,p.cy,p.outerRadius+c,m),b=Nn(Nn(Nn(Nn({},s),p),{},{stroke:"none"},l),{},{index:f,textAnchor:Bye(y.x,p.cx)},y),g=Nn(Nn(Nn(Nn({},s),p),{},{fill:"none",stroke:p.fill},u),{},{index:f,points:[an(p.cx,p.cy,p.outerRadius,m),y],key:"line"});return Gt.createElement(sn,{zIndex:ir.label,key:"label-".concat(p.startAngle,"-").concat(p.endAngle,"-").concat(p.midAngle,"-").concat(f)},Gt.createElement(br,null,a&&Hye(a,g),qye(o,b,Ht(p,i))))});return Gt.createElement(br,{className:"recharts-pie-labels"},d)}function Vye(e){var t=e.sectors,r=e.props,n=e.showLabels,o=r.label;return typeof o=="object"&&o!=null&&"position"in o?Gt.createElement(qc,{label:o}):Gt.createElement(Kye,{sectors:t,props:r,showLabels:n})}function Gye(e){var t=e.sectors,r=e.activeShape,n=e.inactiveShape,o=e.allOtherPieProps,a=e.shape,i=e.id,s=e.animationElapsedTime,l=e.isAnimating,u=e.isEntrance,c=$e(ns),d=$e(Ig),p=$e(b_),f=o.onMouseEnter,m=o.onClick,y=o.onMouseLeave,b=eC(o,Tye),g=kx(f,o.dataKey,i),h=_x(y),v=Cx(m,o.dataKey,i);return t==null||t.length===0?null:Gt.createElement(Gt.Fragment,null,t.map((x,S)=>{if(x?.startAngle===0&&x?.endAngle===0&&t.length!==1)return null;var k=p==null||p===i,w=String(S)===c&&(d==null||o.dataKey===d)&&k,_=c?n:null,A=r&&w?r:_,C=Nn(Nn({},x),{},{stroke:x.stroke,tabIndex:-1,index:S,isActive:w,animationElapsedTime:s,isAnimating:l,isEntrance:u,[ES]:S,[NS]:i});return Gt.createElement(br,jp({key:"sector-".concat(x?.startAngle,"-").concat(x?.endAngle,"-").concat(x.midAngle,"-").concat(S),tabIndex:-1,className:"recharts-pie-sector"},iu(b,x,S),{onMouseEnter:g(x,S),onMouseLeave:h(x,S),onClick:v(x,S)}),Gt.createElement(Kc,{option:A??a,DefaultShape:qq,shapeProps:C}))}))}function gq(e){var t,r=e.pieSettings,n=e.displayedData,o=e.cells,a=e.offset,i=r.cornerRadius,s=r.startAngle,l=r.endAngle,u=r.dataKey,c=r.nameKey,d=r.tooltipType,p=Math.abs(r.minAngle),f=Wye(s,l),m=Math.abs(f),y=n.length<=1?0:(t=r.paddingAngle)!==null&&t!==void 0?t:0,b=n.filter(_=>Ht(_,u,0)!==0).length,g=(m>=360?b:b-1)*y,h=n.reduce((_,A)=>{var C=Ht(A,u,0);return _+(De(C)?C:0)},0),v=p>0&&h>0&&n.some(_=>{var A=Ht(_,u,0),C=(De(A)?A:0)/h;return A!==0&&C*m0){var w;k=n.map((_,A)=>{var C=Ht(_,u,0),N=Ht(_,c,A),L=Uye(r,a,_),Q=(De(C)?C:0)/h,B,K=Nn(Nn({},_),o&&o[A]&&o[A].props),T=K!=null&&"fill"in K&&typeof K.fill=="string"?K.fill:r.fill;A?B=w.endAngle+Qr(f)*y*(C!==0?1:0):B=s;var O=B+Qr(f)*((C!==0?x:0)+Q*S),I=(B+O)/2,P=(L.innerRadius+L.outerRadius)/2,j=[{name:N,value:C,payload:K,dataKey:u,type:d,color:T,fill:T,graphicalItemId:r.id}],M=an(L.cx,L.cy,P,I);return w=Nn(Nn(Nn(Nn({},r.presentationProps),{},{percent:Q,cornerRadius:typeof i=="string"?parseFloat(i):i,name:N,tooltipPayload:j,midAngle:I,middleRadius:P,tooltipPosition:M},K),L),{},{value:C,dataKey:u,startAngle:B,endAngle:O,payload:K,paddingAngle:C!==0?Qr(f)*y:0}),w})}return k}function Yye(e){var t=e.showLabels,r=e.sectors,n=e.children,o=(0,Xg.useMemo)(()=>!t||!r?[]:r.map(a=>({value:a.value,payload:a.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:a.cx,cy:a.cy,innerRadius:a.innerRadius,outerRadius:a.outerRadius,startAngle:a.startAngle,endAngle:a.endAngle,clockWise:!1},fill:a.fill})),[r,t]);return Gt.createElement(oq,{value:t?o:void 0},n)}var Xye=(e,t)=>{if(e==null)return[];var r=[],n=e.find(a=>a.status!=="removed"),o=n?n.next.startAngle:0;return e.forEach((a,i)=>{if(a.status!=="removed"){var s=i>0?Uo(a.next,"paddingAngle",0):0;if(a.status==="matched"){var l=_r(a.prev.endAngle-a.prev.startAngle,a.next.endAngle-a.next.startAngle,t),u=Nn(Nn({},a.next),{},{startAngle:o+s,endAngle:o+l+s});r.push(u),o=u.endAngle}else{var c=_r(0,a.next.endAngle-a.next.startAngle,t),d=Nn(Nn({},a.next),{},{startAngle:o+s,endAngle:o+c+s});r.push(d),o=d.endAngle}}}),r};function Zye(e){var t,r,n,o,a=e.props,i=e.previousSectorsRef,s=e.id,l=a.sectors,u=a.activeShape,c=a.inactiveShape,d=a.animationInterpolateFn,p=Yc(a.onAnimationStart,a.onAnimationEnd),f=p.isAnimating,m=p.handleAnimationStart,y=p.handleAnimationEnd,b=M7();if(b==null)return null;var g=l[0];return Gt.createElement(Yye,{showLabels:!f,sectors:l},Gt.createElement(Xc,{animationInput:a,animationIdPrefix:"recharts-pie-",items:l,previousItemsRef:i,isAnimationActive:a.isAnimationActive,animationBegin:a.animationBegin,animationDuration:a.animationDuration,animationEasing:a.animationEasing,onAnimationStart:m,onAnimationEnd:y,animationInterpolateFn:d,animationMatchBy:a.animationMatchBy,layout:b},(h,v,x)=>Gt.createElement(br,null,Gt.createElement(Gye,{sectors:h,activeShape:u,inactiveShape:c,allOtherPieProps:a,shape:a.shape,id:s,animationElapsedTime:v,isAnimating:f||v<1,isEntrance:x}))),Gt.createElement(Vye,{showLabels:!f,sectors:l,props:a}),Gt.createElement(RH,{cx:(t=g?.cx)!==null&&t!==void 0?t:0,cy:(r=g?.cy)!==null&&r!==void 0?r:0,innerRadius:(n=g?.innerRadius)!==null&&n!==void 0?n:0,outerRadius:(o=g?.outerRadius)!==null&&o!==void 0?o:0,startAngle:a.startAngle,endAngle:a.endAngle,clockWise:!1},a.children))}var Jye={animationBegin:400,animationDuration:1500,animationEasing:"ease",animationInterpolateFn:Xye,animationMatchBy:Ex,cx:"50%",cy:"50%",dataKey:"value",endAngle:360,fill:"#808080",hide:!1,innerRadius:0,isAnimationActive:"auto",label:!1,labelLine:!0,legendType:"rect",minAngle:0,nameKey:"name",outerRadius:"80%",paddingAngle:0,rootTabIndex:0,shape:qq,startAngle:0,stroke:"#fff",zIndex:ir.area};function Qye(e){var t=e.id,r=eC(e,Oye),n=e.hide,o=e.className,a=e.rootTabIndex,i=(0,Xg.useMemo)(()=>wx(e.children,wu),[e.children]),s=$e(c=>mq(c,t,i)),l=(0,Xg.useRef)(null),u=bt("recharts-pie",o);return n||s==null?(l.current=null,Gt.createElement(br,{tabIndex:a,className:u})):Gt.createElement(sn,{zIndex:e.zIndex},Gt.createElement(zye,{dataKey:e.dataKey,nameKey:e.nameKey,sectors:s,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,tooltipType:e.tooltipType,formatter:e.formatter,id:t,activeShape:e.activeShape}),Gt.createElement(br,{tabIndex:a,className:u},Gt.createElement(Zye,{props:Nn(Nn({},r),{},{sectors:s}),previousSectorsRef:l,id:t})))}function Rye(e){var t=nr(e,Jye),r=t.id,n=eC(t,Pye),o=hn(n);return Gt.createElement(Zc,{id:r,type:"pie"},a=>Gt.createElement(Gt.Fragment,null,Gt.createElement(Wq,{type:"pie",id:a,data:n.data,dataKey:n.dataKey,hide:n.hide,angleAxisId:0,radiusAxisId:0,name:n.name,nameKey:n.nameKey,tooltipType:n.tooltipType,legendType:n.legendType,fill:n.fill,cx:n.cx,cy:n.cy,startAngle:n.startAngle,endAngle:n.endAngle,paddingAngle:n.paddingAngle,minAngle:n.minAngle,innerRadius:n.innerRadius,outerRadius:n.outerRadius,cornerRadius:n.cornerRadius,presentationProps:o,maxRadius:t.maxRadius}),Gt.createElement($ye,jp({},n,{id:a})),Gt.createElement(Qye,jp({},n,{id:a}))))}var tC=Rye;tC.displayName="Pie";var Ox=Z(J()),nC=Z(J());var eve=["points"];function Kq(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function s5(e){for(var t=1;t{var g,h,v=s5(s5(s5({r:3},i),p),{},{index:b,cx:(g=y.x)!==null&&g!==void 0?g:void 0,cy:(h=y.y)!==null&&h!==void 0?h:void 0,dataKey:a,value:y.value,payload:y.payload,points:t});return Ox.createElement(ive,{key:"dot-".concat(b),option:r,dotProps:v,className:o})}),m={};return s&&l!=null&&(m.clipPath="url(#clipPath-".concat(d?"":"dots-").concat(l,")")),Ox.createElement(sn,{zIndex:c},Ox.createElement(br,rC({className:n},m),f))}var Px=Z(J()),iC=Z(J());function Vq(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function aC(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right}));var oK=ae([nK,qo,Ko],(e,t,r)=>{if(!(!e||t==null||r==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,r-e.top-e.bottom)}});var Jc=()=>$e(oK),aK=()=>$e(OW);function iK(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function u5(e){for(var t=1;t{var t=e.point,r=e.childIndex,n=e.mainColor,o=e.activeDot,a=e.dataKey,i=e.clipPath;if(o===!1||t.x==null||t.y==null)return null;var s={index:r,dataKey:a,cx:t.x,cy:t.y,r:4,fill:n??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},l=u5(u5(u5({},s),mi(o)),Um(o)),u;return(0,iC.isValidElement)(o)?u=(0,iC.cloneElement)(o,l):typeof o=="function"?u=o(l):u=Px.createElement($_,l),Px.createElement(br,{className:"recharts-active-dot",clipPath:i},u)};function Mx(e){var t=e.points,r=e.mainColor,n=e.activeDot,o=e.itemDataKey,a=e.clipPath,i=e.zIndex,s=i===void 0?ir.activeDot:i,l=$e(ns),u=aK();if(t==null||u==null)return null;var c=t.find(d=>u.includes(d.payload));return ar(c)?null:Px.createElement(sn,{zIndex:s},Px.createElement(gve,{point:c,childIndex:Number(l),mainColor:r,dataKey:o,activeDot:n,clipPath:a}))}function hve(e,t){return bve(e)||xve(e,t)||vve(e,t)||yve()}function yve(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vve(e,t){if(e){if(typeof e=="string")return sK(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?sK(e,t):void 0}}function sK(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var n=r??e;if(!ar(n))return $n(n,t,0)},uK=(e,t,r)=>{var n={},o=e.filter(fp),a=e.filter(u=>u.stackId==null),i=o.reduce((u,c)=>{var d=u[c.stackId];return d==null&&(d=[]),d.push(c),u[c.stackId]=d,u},n),s=Object.entries(i).map(u=>{var c,d=hve(u,2),p=d[0],f=d[1],m=f.map(b=>b.dataKey),y=lK(t,r,(c=f[0])===null||c===void 0?void 0:c.barSize);return{stackId:p,dataKeys:m,barSize:y}}),l=a.map(u=>{var c=[u.dataKey].filter(p=>p!=null),d=lK(t,r,u.barSize);return{stackId:void 0,dataKeys:c,barSize:d}});return[...s,...l]};function cK(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function sC(e){for(var t=1;th+(v.barSize||0),0);p+=(i-1)*s,p>=r&&(p-=(i-1)*s,s=0),p>=r&&d>0&&(c=!0,d*=.9,p=i*d);var f=Math.round((r-p)/2),m={offset:f-s,size:0};l=n.reduce((h,v)=>{var x,S={stackId:v.stackId,dataKeys:v.dataKeys,position:{offset:m.offset+m.size+s,size:c?d:(x=v.barSize)!==null&&x!==void 0?x:0}},k=[...h,S];return m=S.position,k},u)}else{var y=$n(t,r,0,!0);r-2*y-(i-1)*s<=0&&(s=0);var b=(r-2*y-(i-1)*s)/i;b>1&&(b=Math.round(b));var g=Ot(o)?Math.min(b,o):b;l=n.reduce((h,v,x)=>[...h,{stackId:v.stackId,dataKeys:v.dataKeys,position:{offset:y+i*(b-g)/2+(g+s)*x,size:g}}],u)}return l}}var dK=(e,t,r,n,o,a,i)=>{var s=ar(i)?t:i,l=_ve(r,n,o!==a?o:a,e,s);return o!==a&&l!=null&&(l=l.map(u=>sC(sC({},u),{},{position:sC(sC({},u.position),{},{offset:u.position.offset-o/2})}))),l};var pK=(e,t)=>{var r=Tc(t);if(!(!e||r==null||t==null)){var n=t.stackId;if(n!=null){var o=e[n];if(o){var a=o.stackedData;if(a)return a.find(i=>i.key===r)}}}};var fK=(e,t)=>{if(!(e==null||t==null)){var r=e.find(n=>n.stackId===t.stackId&&t.dataKey!=null&&n.dataKeys.includes(t.dataKey));if(r!=null)return r.position}};function mK(e,t){return e&&typeof e=="object"&&"zIndex"in e&&typeof e.zIndex=="number"&&Ot(e.zIndex)?e.zIndex:t}var gK=Z(J());var lC=e=>{var t=e.chartData,r=jt(),n=Ar();return(0,gK.useEffect)(()=>n?()=>{}:(r(YM(t)),()=>{r(YM(void 0))}),[t,r,n]),null};var hK={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},yK=Cr({name:"brush",initialState:hK,reducers:{setBrushSettings(e,t){return t.payload==null?hK:t.payload}}}),EUe=yK.actions.setBrushSettings;var vK=yK.reducer;function Cve(e){return(e%180+180)%180}var xK=function(t){var r=t.width,n=t.height,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=Cve(o),i=a*Math.PI/180,s=Math.atan(n/r),l=i>s&&i{e.dots.push(t.payload)},removeDot:(e,t)=>{var r=ea(e).dots.findIndex(n=>n===t.payload);r!==-1&&e.dots.splice(r,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var r=ea(e).areas.findIndex(n=>n===t.payload);r!==-1&&e.areas.splice(r,1)},addLine:(e,t)=>{e.lines.push(Zt(t.payload))},removeLine:(e,t)=>{var r=ea(e).lines.findIndex(n=>n===t.payload);r!==-1&&e.lines.splice(r,1)}}}),Zg=bK.actions,MUe=Zg.addDot,IUe=Zg.removeDot,DUe=Zg.addArea,jUe=Zg.removeArea,$Ue=Zg.addLine,LUe=Zg.removeLine;var wK=bK.reducer;var Ix=Z(J()),Dx=Z(J());function Eve(e,t){return Pve(e)||Ove(e,t)||Tve(e,t)||Nve()}function Nve(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Tve(e,t){if(e){if(typeof e=="string")return SK(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?SK(e,t):void 0}}function SK(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=(0,Dx.useState)("".concat(ou("recharts"),"-clip")),n=Eve(r,1),o=n[0],a=Jc();if(a==null)return null;var i=a.x,s=a.y,l=a.width,u=a.height;return Ix.createElement(Mve.Provider,{value:o},Ix.createElement("defs",null,Ix.createElement("clipPath",{id:o},Ix.createElement("rect",{x:i,y:s,height:u,width:l}))),t)};var xn=Z(J()),ca=Z(J());function _K(){}function c5(e){if(!e||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)==="[object Object]":!1}function CK(e,t,r){return jx(e,t,void 0,void 0,void 0,void 0,r)}function jx(e,t,r,n,o,a,i){let s=i(e,t,r,n,o,a);if(s!==void 0)return s;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return e===t;case"number":return e===t||Object.is(e,t);case"function":return e===t;case"object":return $x(e,t,a,i)}return $x(e,t,a,i)}function $x(e,t,r,n){if(Object.is(e,t))return!0;let o=su(e),a=su(t);if(o==="[object Arguments]"&&(o=Km),a==="[object Arguments]"&&(a=Km),o!==a)return!1;switch(o){case Wm:return e.toString()===t.toString();case Hm:return _c(e.valueOf(),t.valueOf());case qm:case Aw:case Cw:return Object.is(e.valueOf(),t.valueOf());case kw:return e.source===t.source&&e.flags===t.flags;case Ez:return e===t}r=r??new Map;let i=r.get(e),s=r.get(t);if(i!=null&&s!=null)return i===t;r.set(e,t),r.set(t,e);try{switch(o){case Ew:if(e.size!==t.size)return!1;for(let[l,u]of e.entries())if(!t.has(l)||!jx(u,t.get(l),l,e,t,r,n))return!1;return!0;case Nw:{if(e.size!==t.size)return!1;let l=Array.from(e.values()),u=Array.from(t.values());for(let c=0;cjx(d,f,void 0,e,t,r,n));if(p===-1)return!1;u.splice(p,1)}return!0}case Tw:case Mw:case Iw:case Dw:case jw:case Tz:case $w:case Lw:case zw:case Oz:case Bw:case Fw:if(gv(e)!==gv(t)||e.length!==t.length)return!1;for(let l=0;le*o)return!1;var a=r();return e*(t-e*a/2-n)>=0&&e*(t+e*a/2-o)<=0}function NK(e,t){return uC(e,t+1)}function TK(e,t,r,n,o){for(var a=(n||[]).slice(),i=t.start,s=t.end,l=0,u=1,c=i,d=function(){var m=n?.[l];if(m===void 0)return{v:uC(n,u)};var y=l,b,g=()=>(b===void 0&&(b=r(m,y)),b),h=m.coordinate,v=l===0||$p(e,h,g,c,s);v||(l=0,c=i,u+=1),v&&(c=h+e*(g()/2+o),l+=u)},p;u<=a.length;)if(p=d(),p)return p.v;return[]}function OK(e,t,r,n,o){var a=(n||[]).slice(),i=a.length;if(i===0)return[];for(var s=t.start,l=t.end,u=1;u<=i;u++){for(var c=(i-1)%u,d=s,p=!0,f=function(){var x=n[y];if(x==null)return 0;var S=y,k,w=()=>(k===void 0&&(k=r(x,S)),k),_=x.coordinate,A=y===c||$p(e,_,w,d,l);if(!A)return p=!1,1;A&&(d=_+e*(w()/2+o))},m,y=c;y(y===void 0&&(y=r(f,p)),y);if(p===i-1){var g=e*(m.coordinate+e*b()/2-l);a[p]=m=ua(ua({},m),{},{tickCoord:g>0?m.coordinate-g*e:m.coordinate})}else a[p]=m=ua(ua({},m),{},{tickCoord:m.coordinate});if(m.tickCoord!=null){var h=$p(e,m.tickCoord,b,s,l);h&&(l=m.tickCoord-e*(b()/2+o),a[p]=ua(ua({},m),{},{isShow:!0}))}},c=i-1;c>=0;c--)u(c);return a}function Lve(e,t,r,n,o,a){var i=(n||[]).slice(),s=i.length,l=t.start,u=t.end;if(a){var c=n[s-1];if(c!=null){var d=r(c,s-1),p=e*(c.coordinate+e*d/2-u);if(i[s-1]=c=ua(ua({},c),{},{tickCoord:p>0?c.coordinate-p*e:c.coordinate}),c.tickCoord!=null){var f=$p(e,c.tickCoord,()=>d,l,u);f&&(u=c.tickCoord-e*(d/2+o),i[s-1]=ua(ua({},c),{},{isShow:!0}))}}}for(var m=a?s-1:s,y=function(h){var v=i[h];if(v==null)return 1;var x=v,S,k=()=>(S===void 0&&(S=r(v,h)),S);if(h===0){var w=e*(x.coordinate-e*k()/2-l);i[h]=x=ua(ua({},x),{},{tickCoord:w<0?x.coordinate-w*e:x.coordinate})}else i[h]=x=ua(ua({},x),{},{tickCoord:x.coordinate});if(x.tickCoord!=null){var _=$p(e,x.tickCoord,k,l,u);_&&(l=x.tickCoord+e*(k()/2+o),i[h]=ua(ua({},x),{},{isShow:!0}))}},b=0;b{var w=typeof u=="function"?u(S.value,k):S.value;return m==="width"?AK(Op(w,{fontSize:t,letterSpacing:r}),y,d):Op(w,{fontSize:t,letterSpacing:r})[m]},g=o[0],h=o[1],v=o.length>=2&&g!=null&&h!=null?Qr(h.coordinate-g.coordinate):1,x=EK(a,v,m);return l==="equidistantPreserveStart"?TK(v,x,b,o,i):l==="equidistantPreserveEnd"?OK(v,x,b,o,i):(l==="preserveStart"||l==="preserveStartEnd"?f=Lve(v,x,b,o,i,l==="preserveStartEnd"):f=$ve(v,x,b,o,i),f.filter(S=>S.isShow))}var MK=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,o=n===void 0?5:n,a=e.tickSize,i=a===void 0?0:a,s=e.tickMargin,l=s===void 0?0:s,u=0;if(t){Array.from(t).forEach(f=>{if(f){var m=f.getBoundingClientRect();m.width>u&&(u=m.width)}});var c=r?r.getBoundingClientRect().width:0,d=i+l,p=u+d+c+(r?o:0);return Math.round(p)}return 0};var IK=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,o=n===void 0?5:n,a=e.tickSize,i=a===void 0?0:a,s=e.tickMargin,l=s===void 0?0:s,u=0;if(t){Array.from(t).forEach(f=>{if(f){var m=f.getBoundingClientRect();m.height>u&&(u=m.height)}});var c=r?r.getBoundingClientRect().height:0,d=i+l,p=u+d+c+(r?o:0);return Math.round(p)}return 0};var zve={xAxis:{},yAxis:{}},DK=Cr({name:"renderedTicks",initialState:zve,reducers:{setRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,o=r.axisId,a=r.ticks;e[n][o]=Zt(a)},removeRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,o=r.axisId;delete e[n][o]}}}),jK=DK.actions,$K=jK.setRenderedTicks,LK=jK.removeRenderedTicks;var zK=DK.reducer;var Bve=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function BK(e,t){return Hve(e)||Wve(e,t)||Uve(e,t)||Fve()}function Fve(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Uve(e,t){if(e){if(typeof e=="string")return FK(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?FK(e,t):void 0}}function FK(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(!(n==null||r==null)){var i=t.map(l=>({value:l.value,coordinate:l.coordinate,offset:l.offset,index:l.index})),s=a.current;s!=null&&s.axisId===n&&s.axisType===r&&d5(s.ticks,i)||(a.current={ticks:i,axisId:n,axisType:r},o($K({ticks:i,axisId:n,axisType:r})))}},[o,t,n,r]),(0,ca.useEffect)(()=>n==null||r==null?ka:()=>{o(LK({axisId:n,axisType:r}))},[o,n,r]),null}var txe=(0,ca.forwardRef)((e,t)=>{var r=e.ticks,n=r===void 0?[]:r,o=e.tick,a=e.tickLine,i=e.stroke,s=e.tickFormatter,l=e.unit,u=e.padding,c=e.tickTextProps,d=e.orientation,p=e.mirror,f=e.x,m=e.y,y=e.width,b=e.height,g=e.tickSize,h=e.tickMargin,v=e.fontSize,x=e.letterSpacing,S=e.getTicksConfig,k=e.events,w=e.axisType,_=e.axisId,A=Lx(Yn(Yn({},S),{},{ticks:n}),v,x),C=hn(S),N=mi(o),L=I_(C.textAnchor)?C.textAnchor:Jve(d,p),Q=Qve(d,p),B={};typeof a=="object"&&(B=a);var K=Yn(Yn({},C),{},{fill:"none"},B),T=A.map(P=>Yn({entry:P},Zve(P,f,m,y,b,d,g,p,h))),O=T.map(P=>{var j=P.entry,M=P.line;return xn.createElement(br,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(j.value,"-").concat(j.coordinate,"-").concat(j.tickCoord)},a&&xn.createElement("line",Lp({},K,M,{className:bt("recharts-cartesian-axis-tick-line",Uo(a,"className"))})))}),I=T.map((P,j)=>{var M,W,Y=P.entry,z=P.tick,V=Yn(Yn(Yn(Yn({verticalAnchor:Q},C),{},{textAnchor:L,stroke:"none",fill:i},z),{},{index:j,payload:Y,visibleTicksCount:A.length,tickFormatter:s,padding:u},c),{},{angle:(M=(W=c?.angle)!==null&&W!==void 0?W:C.angle)!==null&&M!==void 0?M:0}),q=Yn(Yn({},V),N);return xn.createElement(br,Lp({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(Y.value,"-").concat(Y.coordinate,"-").concat(Y.tickCoord)},iu(k,Y,j)),o&&xn.createElement(Rve,{option:o,tickProps:q,value:"".concat(typeof s=="function"?s(Y.value,j):Y.value).concat(l||"")}))});return xn.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(w,"-ticks")},xn.createElement(exe,{ticks:A,axisId:_,axisType:w}),I.length>0&&xn.createElement(sn,{zIndex:ir.label},xn.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(w,"-tick-labels"),ref:t},I)),O.length>0&&xn.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(w,"-tick-lines")},O))}),rxe=(0,ca.forwardRef)((e,t)=>{var r=e.axisLine,n=e.width,o=e.height,a=e.className,i=e.hide,s=e.ticks,l=e.axisType,u=e.axisId,c=qve(e,Bve),d=(0,ca.useState)(""),p=BK(d,2),f=p[0],m=p[1],y=(0,ca.useState)(""),b=BK(y,2),g=b[0],h=b[1],v=(0,ca.useRef)(null);(0,ca.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>{var S;return MK({ticks:v.current,label:(S=e.labelRef)===null||S===void 0?void 0:S.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})},getCalculatedHeight:()=>{var S;return IK({ticks:v.current,label:(S=e.labelRef)===null||S===void 0?void 0:S.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var x=(0,ca.useCallback)(S=>{if(S){var k=S.getElementsByClassName("recharts-cartesian-axis-tick-value");v.current=k;var w=k[0];if(w){var _=window.getComputedStyle(w),A=_.fontSize,C=_.letterSpacing;(A!==f||C!==g)&&(m(A),h(C))}}},[f,g]);return i||n!=null&&n<=0||o!=null&&o<=0?null:xn.createElement(sn,{zIndex:e.zIndex},xn.createElement(br,{className:bt("recharts-cartesian-axis",a)},xn.createElement(Xve,{x:e.x,y:e.y,width:n,height:o,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:hn(e)}),xn.createElement(txe,{ref:x,axisType:l,events:c,fontSize:f,getTicksConfig:e,height:e.height,letterSpacing:g,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:s,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:u}),xn.createElement(ZH,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},xn.createElement(eq,{label:e.label,labelRef:e.labelRef}),e.children)))}),zx=xn.forwardRef((e,t)=>{var r=nr(e,is);return xn.createElement(rxe,Lp({},r,{ref:t}))});zx.displayName="CartesianAxis";var Xn=Z(J());var cC=Z(J());var WK={grid:{stroke:"#ccc",fill:"none"}};var HK=(0,cC.createContext)(WK),UWe=HK.Provider,qK=()=>(0,cC.useContext)(HK);var nxe=["x1","y1","x2","y2","key"],oxe=["offset"],axe=["xAxisId","yAxisId"],ixe=["xAxisId","yAxisId"];function KK(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function da(e){for(var t=1;t{var t=e.fill;if(!t||t==="none")return null;var r=e.fillOpacity,n=e.x,o=e.y,a=e.width,i=e.height,s=e.ry;return Xn.createElement("rect",{x:n,y:o,ry:s,width:a,height:i,stroke:"none",fill:t,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function VK(e){var t=e.option,r=e.lineItemProps,n;if(Xn.isValidElement(t))n=Xn.cloneElement(t,r);else if(typeof t=="function")n=t(r);else{var o,a=r.x1,i=r.y1,s=r.x2,l=r.y2,u=r.key,c=dC(r,nxe),d=(o=hn(c))!==null&&o!==void 0?o:{},p=d.offset,f=dC(d,oxe),m=Array.isArray(f.strokeDasharray)?f.strokeDasharray.join(","):f.strokeDasharray;n=Xn.createElement("line",zp({},f,{strokeDasharray:m,x1:a,y1:i,x2:s,y2:l,fill:"none",key:u}))}return n}function pxe(e){var t=e.x,r=e.width,n=e.horizontal,o=n===void 0?!0:n,a=e.horizontalPoints;if(!o||!a||!a.length)return null;var i=e.xAxisId,s=e.yAxisId,l=dC(e,axe),u=a.map((c,d)=>{var p=da(da({},l),{},{x1:t,y1:c,x2:t+r,y2:c,key:"line-".concat(d),index:d});return Xn.createElement(VK,{key:"line-".concat(d),option:o,lineItemProps:p})});return Xn.createElement("g",{className:"recharts-cartesian-grid-horizontal"},u)}function fxe(e){var t=e.y,r=e.height,n=e.vertical,o=n===void 0?!0:n,a=e.verticalPoints;if(!o||!a||!a.length)return null;var i=e.xAxisId,s=e.yAxisId,l=dC(e,ixe),u=a.map((c,d)=>{var p=da(da({},l),{},{x1:c,y1:t,x2:c,y2:t+r,key:"line-".concat(d),index:d});return Xn.createElement(VK,{option:o,lineItemProps:p,key:"line-".concat(d)})});return Xn.createElement("g",{className:"recharts-cartesian-grid-vertical"},u)}function mxe(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,o=e.y,a=e.width,i=e.height,s=e.horizontalPoints,l=e.horizontal,u=l===void 0?!0:l;if(!u||!t||!t.length||s==null)return null;var c=s.map(p=>Math.round(p+o-o)).sort((p,f)=>p-f);o!==c[0]&&c.unshift(0);var d=c.map((p,f)=>{var m=c[f+1],y=m==null,b=y?o+i-p:m-p;if(b<=0)return null;var g=f%t.length;return Xn.createElement("rect",{key:"react-".concat(f),y:p,x:n,height:b,width:a,stroke:"none",fill:t[g],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return Xn.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},d)}function gxe(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,o=e.fillOpacity,a=e.x,i=e.y,s=e.width,l=e.height,u=e.verticalPoints;if(!r||!n||!n.length)return null;var c=u.map(p=>Math.round(p+a-a)).sort((p,f)=>p-f);a!==c[0]&&c.unshift(0);var d=c.map((p,f)=>{var m=c[f+1],y=m==null,b=y?a+s-p:m-p;if(b<=0)return null;var g=f%n.length;return Xn.createElement("rect",{key:"react-".concat(f),x:p,y:i,width:b,height:l,stroke:"none",fill:n[g],fillOpacity:o,className:"recharts-cartesian-grid-bg"})});return Xn.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},d)}var hxe=(e,t)=>{var r=e.xAxis,n=e.width,o=e.height,a=e.offset;return zO(Lx(da(da(da({},is),r),{},{ticks:BO(r,!0),viewBox:{x:0,y:0,width:n,height:o}})),a.left,a.left+a.width,t)},yxe=(e,t)=>{var r=e.yAxis,n=e.width,o=e.height,a=e.offset;return zO(Lx(da(da(da({},is),r),{},{ticks:BO(r,!0),viewBox:{x:0,y:0,width:n,height:o}})),a.top,a.top+a.height,t)},vxe={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:ir.grid};function Cu(e){var t,r,n,o,a,i,s=ng(),l=og(),u=IS(),c=da(da({},nr(e,vxe)),{},{x:De(e.x)?e.x:u.left,y:De(e.y)?e.y:u.top,width:De(e.width)?e.width:u.width,height:De(e.height)?e.height:u.height}),d=c.xAxisId,p=c.yAxisId,f=c.x,m=c.y,y=c.width,b=c.height,g=c.syncWithTicks,h=c.horizontalValues,v=c.verticalValues,x=Ar(),S=$e(O=>CM(O,"xAxis",d,x)),k=$e(O=>CM(O,"yAxis",p,x)),w=qK(),_={stroke:(t=c.stroke)!==null&&t!==void 0?t:w.grid.stroke,strokeWidth:(r=c.strokeWidth)!==null&&r!==void 0?r:w.grid.strokeWidth,strokeOpacity:(n=c.strokeOpacity)!==null&&n!==void 0?n:w.grid.strokeOpacity,strokeDasharray:(o=c.strokeDasharray)!==null&&o!==void 0?o:w.grid.strokeDasharray};if(!qa(y)||!qa(b)||!De(f)||!De(m))return null;var A=c.verticalCoordinatesGenerator||hxe,C=c.horizontalCoordinatesGenerator||yxe,N=c.horizontalPoints,L=c.verticalPoints;if((!N||!N.length)&&typeof C=="function"){var Q=h&&h.length,B=C({yAxis:k?da(da({},k),{},{ticks:Q?h:k.ticks}):void 0,width:s??y,height:l??b,offset:u},Q?!0:g);rg(Array.isArray(B),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof B,"]")),Array.isArray(B)&&(N=B)}if((!L||!L.length)&&typeof A=="function"){var K=v&&v.length,T=A({xAxis:S?da(da({},S),{},{ticks:K?v:S.ticks}):void 0,width:s??y,height:l??b,offset:u},K?!0:g);rg(Array.isArray(T),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof T,"]")),Array.isArray(T)&&(L=T)}return Xn.createElement(sn,{zIndex:c.zIndex},Xn.createElement("g",{className:"recharts-cartesian-grid"},Xn.createElement(dxe,{fill:(a=c.fill)!==null&&a!==void 0?a:w.grid.fill,fillOpacity:(i=c.fillOpacity)!==null&&i!==void 0?i:w.grid.fillOpacity,x:c.x,y:c.y,width:c.width,height:c.height,ry:c.ry}),Xn.createElement(mxe,zp({},c,{horizontalPoints:N})),Xn.createElement(gxe,zp({},c,{verticalPoints:L})),Xn.createElement(pxe,zp({},c,_,{offset:u,horizontalPoints:N,xAxis:S,yAxis:k})),Xn.createElement(fxe,zp({},c,_,{offset:u,verticalPoints:L,xAxis:S,yAxis:k}))))}Cu.displayName="CartesianGrid";var Sr=Z(J()),Au=Z(J());var GK=Z(J());var xxe=["animationElapsedTime","isAnimating","isEntrance","visibleLength","strokeDasharray","connectNulls"];function p5(){return p5=Object.assign?Object.assign.bind():function(e){for(var t=1;tf+m,0);if(!o)return YK(t,e);for(var a=Math.floor(e/o),i=e%o,s=[],l=0,u=0;li){s=[...n.slice(0,l),i-u];break}}var p=s.length%2===0?[0,t]:[t];return[..._xe(n,a),...s,...p].map(f=>"".concat(f,"px")).join(", ")}function Axe(e,t,r){if(e){var n="".concat(e).split(/[,\s]+/gim).map(o=>parseFloat(o));return Cxe(r,t,n)}return YK(t,r)}function XK(e){var t=e.animationElapsedTime,r=e.isAnimating,n=e.isEntrance,o=e.visibleLength,a=e.strokeDasharray,i=e.connectNulls,s=bxe(e,xxe),l=i??!1,u;if(o!=null){var c,d=s.pathRef,p=Sxe((c=d?.current)!==null&&c!==void 0?c:null);u=Axe(a,p,o)}else a!=null&&(u=String(a));return GK.createElement(ul,p5({},s,{connectNulls:l,strokeDasharray:u}))}var Bp=Z(J());function ZK(e){var t=(0,Bp.useRef)(0),r=(0,Bp.useRef)(0),n=(0,Bp.useRef)(!1),o=(0,Bp.useRef)(e);return o.current!==e&&(t.current=r.current,o.current=e),(0,Bp.useCallback)((a,i)=>{if(n.current)return null;var s=Math.min(Vi(t.current+a*i),i);return a>0&&i>0&&(r.current=Math.max(r.current,s),s>=i)?(n.current=!0,null):s},[])}var RK=Z(J()),Bx=Z(J());var Exe={},JK=Cr({name:"errorBars",initialState:Exe,reducers:{addErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,o=r.errorBar;e[n]||(e[n]=[]),e[n].push(o)},replaceErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,o=r.prev,a=r.next;e[n]&&(e[n]=e[n].map(i=>i.dataKey===o.dataKey&&i.direction===o.direction?a:i))},removeErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,o=r.errorBar;e[n]&&(e[n]=e[n].filter(a=>a.dataKey!==o.dataKey||a.direction!==o.direction))}}}),f5=JK.actions,cHe=f5.addErrorBar,dHe=f5.replaceErrorBar,pHe=f5.removeErrorBar;var QK=JK.reducer;var Nxe=["children"];function Txe(e,t){if(e==null)return{};var r,n,o=Oxe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n({x:0,y:0,value:0}),errorBarOffset:0},Mxe=(0,Bx.createContext)(Pxe);function pC(e){var t=e.children,r=Txe(e,Nxe);return RK.createElement(Mxe.Provider,{value:r},t)}var m5=Z(J());function Fp(e,t){var r,n,o=$e(u=>hl(u,e)),a=$e(u=>yl(u,t)),i=(r=o?.allowDataOverflow)!==null&&r!==void 0?r:io.allowDataOverflow,s=(n=a?.allowDataOverflow)!==null&&n!==void 0?n:so.allowDataOverflow,l=i||s;return{needClip:l,needClipX:i,needClipY:s}}function Jg(e){var t=e.xAxisId,r=e.yAxisId,n=e.clipPathId,o=Jc(),a=Fp(t,r),i=a.needClipX,s=a.needClipY,l=a.needClip,u=$e(v=>gM(v,t,!1)),c=$e(v=>hM(v,r,!1));if(!l||!o)return null;var d=o.x,p=o.y,f=o.width,m=o.height,y=i&&u?Math.min(u[0],u[1]):d-f/2,b=s&&c?Math.min(c[0],c[1]):p-m/2,g=i&&u?Math.abs(u[1]-u[0]):f*2,h=s&&c?Math.abs(c[1]-c[0]):m*2;return m5.createElement("clipPath",{id:"clipPath-".concat(n)},m5.createElement("rect",{x:y,y:b,width:g,height:h}))}var eV=(e,t,r,n)=>Ai(e,"xAxis",t,n),tV=(e,t,r,n)=>Ci(e,"xAxis",t,n),rV=(e,t,r,n)=>Ai(e,"yAxis",r,n),nV=(e,t,r,n)=>Ci(e,"yAxis",r,n),Ixe=ae([Bt,eV,rV,tV,nV],(e,t,r,n,o)=>sa(e,"xAxis")?Ji(t,n,!1):Ji(r,o,!1)),Dxe=(e,t,r,n,o)=>o;function jxe(e){return e.type==="line"}var $xe=ae([$c,Dxe],(e,t)=>e.filter(jxe).find(r=>r.id===t)),oV=ae([Bt,eV,rV,tV,nV,$xe,Ixe,up],(e,t,r,n,o,a,i,s)=>{var l=s.chartData,u=s.dataStartIndex,c=s.dataEndIndex;if(!(a==null||t==null||r==null||n==null||o==null||n.length===0||o.length===0||i==null||e!=="horizontal"&&e!=="vertical")){var d=a.dataKey,p=a.data,f;if(p!=null&&p.length>0?f=p:f=l?.slice(u,c+1),f!=null)return aV({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:o,dataKey:d,bandSize:i,displayedData:f})}});function fC(e){var t=mi(e),r=3,n=2;if(t!=null){var o=t.r,a=t.strokeWidth,i=Number(o),s=Number(a);return(Number.isNaN(i)||i<0)&&(i=r),(Number.isNaN(s)||s<0)&&(s=n),{r:i,strokeWidth:s}}return{r,strokeWidth:n}}var Lxe=["id"],zxe=["type","layout","connectNulls","needClip","shape","strokeDasharray"],Bxe=["activeDot","animateNewValues","animationBegin","animationDuration","animationEasing","connectNulls","dot","hide","isAnimationActive","label","legendType","xAxisId","yAxisId","id"];function mC(){return mC=Object.assign?Object.assign.bind():function(e){for(var t=1;t0?t/r:0}var Vxe=(e,t)=>{if(e==null)return[];if(t===1)return e.flatMap(s=>s.status==="removed"?[]:[s.next]);var r=Kxe(e),n=[];for(var o of e)if(o.status==="matched")n.push(vl(vl({},o.next),{},{x:_r(o.prev.x,o.next.x,t),y:_r(o.prev.y,o.next.y,t)}));else if(o.status==="added")if(o.next.x!=null){var a=o.next.x-r;n.push(vl(vl({},o.next),{},{x:_r(a,o.next.x,t),y:o.next.y}))}else n.push(o.next);else if(o.status==="removed"&&o.prev.x!=null){var i=o.prev.x+r;n.push(vl(vl({},o.prev),{},{x:_r(o.prev.x,i,t),y:o.prev.y}))}return n},y5={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationInterpolateFn:Vxe,animationMatchBy:Dp,connectNulls:!1,dot:!0,fill:"#fff",hide:!1,isAnimationActive:"auto",label:!1,legendType:"line",shape:XK,stroke:"#3182bd",strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:ir.line,type:"linear"},Gxe=e=>{var t=e.dataKey,r=e.name,n=e.stroke,o=e.legendType,a=e.hide;return[{inactive:a,dataKey:t,type:o,color:n,value:xi(r,t),payload:e}]},Yxe=Sr.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,o=e.strokeWidth,a=e.fill,i=e.name,s=e.hide,l=e.unit,u=e.formatter,c=e.tooltipType,d=e.id,p={dataDefinedOnItem:r,getPosition:ka,settings:{stroke:n,strokeWidth:o,fill:a,dataKey:t,nameKey:void 0,name:xi(i,t),hide:s,type:c,color:n,unit:l,formatter:u,graphicalItemId:d}};return Sr.createElement(Vc,{tooltipEntrySettings:p})});function Xxe(e){var t=e.clipPathId,r=e.points,n=e.props,o=n.dot,a=n.dataKey,i=n.needClip,s=n.id,l=h5(n,Lxe),u=hn(l);return Sr.createElement(oC,{points:r,dot:o,className:"recharts-line-dots",dotClassName:"recharts-line-dot",dataKey:a,baseProps:u,needClip:i,clipPathId:t})}function Zxe(e){var t=e.showLabels,r=e.children,n=e.points,o=(0,Au.useMemo)(()=>n?.map(a=>{var i,s,l={x:(i=a.x)!==null&&i!==void 0?i:0,y:(s=a.y)!==null&&s!==void 0?s:0,width:0,lowerWidth:0,upperWidth:0,height:0};return vl(vl({},l),{},{value:a.value,payload:a.payload,viewBox:l,parentViewBox:void 0,fill:void 0})}),[n]);return Sr.createElement(Wg,{value:t?o:void 0},r)}function Jxe(e){var t=e.clipPathId,r=e.pathRef,n=e.points,o=e.props,a=e.animationElapsedTime,i=e.isAnimating,s=e.isEntrance,l=e.visibleLength,u=o.type,c=o.layout,d=o.connectNulls,p=o.needClip,f=o.shape,m=o.strokeDasharray,y=h5(o,zxe),b=vl(vl({},yn(y)),{},{fill:"none",className:"recharts-line-curve",clipPath:p?"url(#clipPath-".concat(t,")"):void 0,points:n,type:u,layout:c,connectNulls:d,strokeDasharray:m??o.strokeDasharray,pathRef:r,animationElapsedTime:a,isAnimating:i,isEntrance:o.animateNewValues?s:!1,visibleLength:l});return Sr.createElement(Sr.Fragment,null,n?.length>1&&Sr.createElement(Kc,{option:f,DefaultShape:y5.shape,shapeProps:b}),Sr.createElement(Xxe,{points:n,clipPathId:t,props:o}))}function Qxe(e){var t=e.clipPathId,r=e.props,n=e.pathRef,o=e.previousPointsRef,a=r.points,i=r.isAnimationActive,s=r.animationBegin,l=r.animationDuration,u=r.animationEasing,c=r.animationMatchBy,d=r.animationInterpolateFn,p=r.layout,f=qxe(n.current),m=Yc(r.onAnimationStart,r.onAnimationEnd),y=m.isAnimating,b=m.handleAnimationStart,g=m.handleAnimationEnd,h=!y,v=ZK(a),x=(0,Au.useCallback)(S=>S>0&&f>0,[f]);return Sr.createElement(Zxe,{points:a,showLabels:h},r.children,Sr.createElement(Xc,{animationInput:a,animationIdPrefix:"recharts-line-",items:a,previousItemsRef:o,isAnimationActive:i,animationBegin:s,animationDuration:l,animationEasing:u,onAnimationStart:b,onAnimationEnd:g,animationInterpolateFn:d,animationMatchBy:c,shouldUpdatePreviousRef:x,layout:p},(S,k,w)=>{var _=y||k<1,A=_?v(k,f):null;return Sr.createElement(Jxe,{props:r,points:S,clipPathId:t,pathRef:n,animationElapsedTime:k,isAnimating:_,isEntrance:w,visibleLength:A})}),Sr.createElement(qc,{label:r.label}))}function Rxe(e){var t=e.clipPathId,r=e.props,n=(0,Au.useRef)(null),o=(0,Au.useRef)(null);return Sr.createElement(Qxe,{props:r,clipPathId:t,previousPointsRef:n,pathRef:o})}var e0e=(e,t)=>{var r,n;return{x:(r=e.x)!==null&&r!==void 0?r:void 0,y:(n=e.y)!==null&&n!==void 0?n:void 0,value:e.value,errorVal:Ht(e.payload,t)}},g5=class extends Au.Component{render(){var t=this.props,r=t.hide,n=t.dot,o=t.points,a=t.className,i=t.xAxisId,s=t.yAxisId,l=t.top,u=t.left,c=t.width,d=t.height,p=t.id,f=t.needClip,m=t.zIndex;if(r)return null;var y=bt("recharts-line",a),b=p,g=fC(n),h=g.r,v=g.strokeWidth,x=Hg(n),S=h*2+v,k=f?"url(#clipPath-".concat(x?"":"dots-").concat(b,")"):void 0;return Sr.createElement(sn,{zIndex:m},Sr.createElement(br,{className:y},f&&Sr.createElement("defs",null,Sr.createElement(Jg,{clipPathId:b,xAxisId:i,yAxisId:s}),!x&&Sr.createElement("clipPath",{id:"clipPath-dots-".concat(b)},Sr.createElement("rect",{x:u-S/2,y:l-S/2,width:c+S,height:d+S}))),Sr.createElement(pC,{xAxisId:i,yAxisId:s,data:o,dataPointFormatter:e0e,errorBarOffset:0},Sr.createElement(Rxe,{props:this.props,clipPathId:b}))),Sr.createElement(Mx,{activeDot:this.props.activeDot,points:o,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:k}))}};function t0e(e){var t=nr(e,y5),r=t.activeDot,n=t.animateNewValues,o=t.animationBegin,a=t.animationDuration,i=t.animationEasing,s=t.connectNulls,l=t.dot,u=t.hide,c=t.isAnimationActive,d=t.label,p=t.legendType,f=t.xAxisId,m=t.yAxisId,y=t.id,b=h5(t,Bxe),g=Fp(f,m),h=g.needClip,v=Jc(),x=Va(),S=Ar(),k=$e(N=>oV(N,f,m,S,y));if(x!=="horizontal"&&x!=="vertical"||k==null||v==null)return null;var w=v.height,_=v.width,A=v.x,C=v.y;return Sr.createElement(g5,mC({},b,{id:y,connectNulls:s,dot:l,activeDot:r,animateNewValues:n,animationBegin:o,animationDuration:a,animationEasing:i,isAnimationActive:c,hide:u,label:d,legendType:p,xAxisId:f,yAxisId:m,points:k,layout:x,height:w,width:_,left:A,top:C,needClip:h}))}function aV(e){var t=e.layout,r=e.xAxis,n=e.yAxis,o=e.xAxisTicks,a=e.yAxisTicks,i=e.dataKey,s=e.bandSize,l=e.displayedData;return l.map((u,c)=>{var d=Ht(u,i);if(t==="horizontal"){var p=Zm({axis:r,ticks:o,bandSize:s,entry:u,index:c}),f=ar(d)?null:n.scale.map(d);return{x:p,y:f??null,value:d,payload:u}}var m=ar(d)?null:r.scale.map(d),y=Zm({axis:n,ticks:a,bandSize:s,entry:u,index:c});return m==null||y==null?null:{x:m,y,value:d,payload:u}}).filter(Boolean)}function r0e(e){var t=nr(e,y5),r=Ar();return Sr.createElement(Zc,{id:t.id,type:"line"},n=>Sr.createElement(Sr.Fragment,null,Sr.createElement(Kg,{legendPayload:Gxe(t)}),Sr.createElement(Yxe,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:n}),Sr.createElement(Yg,{type:"line",id:n,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:r}),Sr.createElement(t0e,mC({},t,{id:n}))))}var gC=Sr.memo(r0e,Ga);gC.displayName="Line";var hr=Z(J()),Up=Z(J());function ss(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(o=>o.id===t))===null||n===void 0?void 0:n.xAxisId)!==null&&r!==void 0?r:l5}function ls(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(o=>o.id===t))===null||n===void 0?void 0:n.yAxisId)!==null&&r!==void 0?r:l5}var sV=(e,t,r)=>Ai(e,"xAxis",ss(e,t),r),lV=(e,t,r)=>Ci(e,"xAxis",ss(e,t),r),uV=(e,t,r)=>Ai(e,"yAxis",ls(e,t),r),cV=(e,t,r)=>Ci(e,"yAxis",ls(e,t),r),n0e=ae([Bt,sV,uV,lV,cV],(e,t,r,n,o)=>sa(e,"xAxis")?Ji(t,n,!1):Ji(r,o,!1)),o0e=(e,t)=>t,v5=ae([$c,o0e],(e,t)=>e.filter(r=>r.type==="area").find(r=>r.id===t)),dV=e=>{var t=Bt(e),r=sa(t,"xAxis");return r?"yAxis":"xAxis"},a0e=(e,t)=>{var r=dV(e);return r==="yAxis"?ls(e,t):ss(e,t)},pV=(e,t,r)=>Tg(e,dV(e),a0e(e,t),r),i0e=ae([v5,pV],(e,t)=>{var r;if(!(e==null||t==null)){var n=e.stackId,o=Tc(e);if(!(n==null||o==null)){var a=(r=t[n])===null||r===void 0?void 0:r.stackedData,i=a?.find(s=>s.key===o);if(i!=null)return i.map(s=>[s[0],s[1]])}}}),s0e=ae([v5,pV],(e,t)=>{if(!(e==null||e.stackId==null||t==null)){var r=t[e.stackId];if(r!=null)return r.graphicalItems.map(n=>n.dataKey).filter(Ao)}}),fV=ae([Bt,sV,uV,lV,cV,i0e,tk,n0e,v5,vF,s0e],(e,t,r,n,o,a,i,s,l,u,c)=>{var d=i.chartData,p=i.dataStartIndex,f=i.dataEndIndex;if(!(l==null||e!=="horizontal"&&e!=="vertical"||t==null||r==null||n==null||o==null||n.length===0||o.length===0||s==null)){var m=l.data,y;if(m&&m.length>0?y=m:y=d?.slice(p,f+1),y!=null)return mV({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:o,dataStartIndex:p,areaSettings:l,stackedData:a,displayedData:y,chartBaseValue:u,bandSize:s,stackDataKeys:c})}});var pa=Z(J());var l0e=["animationElapsedTime","isAnimating","isEntrance","layout","isRange","stroke","connectNulls"],u0e=["id","baseLine"];function Fx(){return Fx=Object.assign?Object.assign.bind():function(e){for(var t=1;td.y||0));return De(o)?c=Math.max(o,c):o&&Array.isArray(o)&&o.length&&(c=Math.max(...o.map(d=>d.y||0),c)),De(c)?pa.createElement("rect",{x:sd.x||0));return De(o)?c=Math.max(o,c):o&&Array.isArray(o)&&o.length&&(c=Math.max(...o.map(d=>d.x||0),c)),De(c)?pa.createElement("rect",{x:0,y:se==null?[]:t===1?e.flatMap(r=>r.status==="removed"?[]:[r.next]):e.flatMap(r=>r.status==="matched"?[Qg(Qg({},r.next),{},{x:_r(r.prev.x,r.next.x,t),y:_r(r.prev.y,r.next.y,t)})]:r.status==="added"?[r.next]:[]),xV={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationMatchBy:Dp,animationInterpolateFn:b0e,connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,shape:hV,xAxisId:0,yAxisId:0,zIndex:ir.area};function yC(e,t){return e&&e!=="none"?e:t}var w0e=e=>{var t=e.dataKey,r=e.name,n=e.stroke,o=e.fill,a=e.legendType,i=e.hide;return[{inactive:i,dataKey:t,type:a,color:yC(n,o),value:xi(r,t),payload:e}]},S0e=hr.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,o=e.strokeWidth,a=e.fill,i=e.name,s=e.hide,l=e.unit,u=e.formatter,c=e.tooltipType,d=e.id,p={dataDefinedOnItem:r,getPosition:ka,settings:{stroke:n,strokeWidth:o,fill:a,dataKey:t,nameKey:void 0,name:xi(i,t),hide:s,type:c,color:yC(n,a),unit:l,formatter:u,graphicalItemId:d}};return hr.createElement(Vc,{tooltipEntrySettings:p})});function k0e(e){var t=e.clipPathId,r=e.points,n=e.props,o=n.needClip,a=n.dot,i=n.dataKey,s=hn(n);return hr.createElement(oC,{points:r,dot:a,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:i,baseProps:s,needClip:o,clipPathId:t})}function _0e(e){var t=e.showLabels,r=e.children,n=e.points,o=n.map(a=>{var i,s,l={x:(i=a.x)!==null&&i!==void 0?i:0,y:(s=a.y)!==null&&s!==void 0?s:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Qg(Qg({},l),{},{value:a.value,payload:a.payload,parentViewBox:void 0,viewBox:l,fill:void 0})});return hr.createElement(Wg,{value:t?o:void 0},r)}function C0e(e){var t=e.points,r=e.baseLine,n=e.needClip,o=e.clipPathId,a=e.props,i=e.animationElapsedTime,s=e.isAnimating,l=e.isEntrance,u=a.layout,c=a.type,d=a.stroke,p=a.connectNulls,f=a.isRange,m=a.shape,y=a.id,b=vV(a,m0e),g=yn(b),h=Qg(Qg({},g),{},{id:y,points:t,connectNulls:p,type:c,baseLine:r,layout:u,stroke:d,isRange:f,animationElapsedTime:i,isAnimating:s,isEntrance:l});return hr.createElement(hr.Fragment,null,t?.length>1&&hr.createElement(br,{clipPath:n?"url(#clipPath-".concat(o,")"):void 0},hr.createElement(Kc,{option:m,DefaultShape:xV.shape,shapeProps:h})),hr.createElement(k0e,{points:t,props:b,clipPathId:o}))}function A0e(e,t,r){if(De(e)){var n=De(t)?t:void 0;return _r(n,e,r)}if(ar(e)||Wo(e)){var o=De(t)?t:void 0;return _r(o,0,r)}return e}function E0e(e){var t=e.needClip,r=e.clipPathId,n=e.props,o=e.previousPointsRef,a=e.previousBaselineRef,i=n.points,s=n.baseLine,l=n.isAnimationActive,u=n.animationBegin,c=n.animationDuration,d=n.animationEasing,p=n.animationMatchBy,f=n.animationInterpolateFn,m=(0,Up.useMemo)(()=>({points:i,baseLine:s}),[i,s]),y=J_(m,a),b=ag(),g=Yc(n.onAnimationStart,n.onAnimationEnd),h=g.isAnimating,v=g.handleAnimationStart,x=g.handleAnimationEnd,S=y.startValue;if(b==null)return null;var k;return Array.isArray(s)&&Array.isArray(S)?k=Nx(S,s,p):Array.isArray(s)?k=Nx(null,s,p):k=null,hr.createElement(Xc,{animationInput:m,animationIdPrefix:"recharts-area-",items:i,previousItemsRef:o,isAnimationActive:l,animationBegin:u,animationDuration:c,animationEasing:d,onAnimationStart:v,onAnimationEnd:x,animationInterpolateFn:f,animationMatchBy:p,layout:b},(w,_,A)=>{var C;return _===1?C=s:Array.isArray(s)?C=f(k,_,b):C=A?s:A0e(s,S,_),y.syncStepValue(C,_),hr.createElement(_0e,{showLabels:!h,points:i},n.children,hr.createElement(C0e,{points:w,baseLine:C,needClip:t,clipPathId:r,props:n,animationElapsedTime:_,isAnimating:h||_<1,isEntrance:A}),hr.createElement(qc,{label:n.label}))})}function N0e(e){var t=e.needClip,r=e.clipPathId,n=e.props,o=(0,Up.useRef)(null),a=(0,Up.useRef)();return hr.createElement(E0e,{needClip:t,clipPathId:r,props:n,previousPointsRef:o,previousBaselineRef:a})}var x5=class extends Up.PureComponent{render(){var t=this.props,r=t.hide,n=t.dot,o=t.points,a=t.className,i=t.top,s=t.left,l=t.needClip,u=t.xAxisId,c=t.yAxisId,d=t.width,p=t.height,f=t.id,m=t.baseLine,y=t.zIndex;if(r)return null;var b=bt("recharts-area",a),g=f,h=fC(n),v=h.r,x=h.strokeWidth,S=Hg(n),k=v*2+x,w=l?"url(#clipPath-".concat(S?"":"dots-").concat(g,")"):void 0;return hr.createElement(sn,{zIndex:y},hr.createElement(br,{className:b},l&&hr.createElement("defs",null,hr.createElement(Jg,{clipPathId:g,xAxisId:u,yAxisId:c}),!S&&hr.createElement("clipPath",{id:"clipPath-dots-".concat(g)},hr.createElement("rect",{x:s-k/2,y:i-k/2,width:d+k,height:p+k}))),hr.createElement(N0e,{needClip:l,clipPathId:g,props:this.props})),hr.createElement(Mx,{points:o,mainColor:yC(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:w}),this.props.isRange&&Array.isArray(m)&&hr.createElement(Mx,{points:m,mainColor:yC(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:w}))}};function T0e(e){var t,r=e.activeDot,n=e.animationBegin,o=e.animationDuration,a=e.animationEasing,i=e.connectNulls,s=e.dot,l=e.fill,u=e.fillOpacity,c=e.hide,d=e.isAnimationActive,p=e.legendType,f=e.stroke,m=e.xAxisId,y=e.yAxisId,b=vV(e,g0e),g=Va(),h=w_(),v=Fp(m,y),x=v.needClip,S=Ar(),k=(t=$e(K=>fV(K,e.id,S)))!==null&&t!==void 0?t:{},w=k.points,_=k.isRange,A=k.baseLine,C=Jc();if(g!=="horizontal"&&g!=="vertical"||C==null||h!=="AreaChart"&&h!=="ComposedChart")return null;var N=C.height,L=C.width,Q=C.x,B=C.y;return!w||!w.length?null:hr.createElement(x5,hC({},b,{activeDot:r,animationBegin:n,animationDuration:o,animationEasing:a,baseLine:A,connectNulls:i,dot:s,fill:l,fillOpacity:u,height:N,hide:c,layout:g,isAnimationActive:d,isRange:_,legendType:p,needClip:x,points:w,stroke:f,width:L,left:Q,top:B,xAxisId:m,yAxisId:y}))}var O0e=(e,t,r,n,o)=>{var a=r??t;if(De(a))return a;var i=e==="horizontal"?o:n,s=i.scale.domain();if(i.type==="number"){var l=Math.max(s[0],s[1]),u=Math.min(s[0],s[1]);return a==="dataMin"?u:a==="dataMax"||l<0?l:Math.max(Math.min(s[0],s[1]),0)}return a==="dataMin"?s[0]:a==="dataMax"?s[1]:s[0]};function mV(e){var t=e.areaSettings,r=t.connectNulls,n=t.baseValue,o=t.dataKey,a=e.stackedData,i=e.layout,s=e.chartBaseValue,l=e.xAxis,u=e.yAxis,c=e.displayedData,d=e.dataStartIndex,p=e.xAxisTicks,f=e.yAxisTicks,m=e.bandSize,y=e.stackDataKeys,b=a&&a.length,g=O0e(i,s,n,l,u),h=i==="horizontal",v=!1,x=c.map((k,w)=>{var _,A,C,N;if(b)N=a[d+w];else{var L=Ht(k,o);Array.isArray(L)?(N=L,v=!0):N=[g,L]}var Q=(_=(A=N)===null||A===void 0?void 0:A[1])!==null&&_!==void 0?_:null,B=Ht(k,o),K=b&&B==null&&y!=null&&y.length>0&&y.every(I=>Ht(k,I)==null),T=Q==null||b&&!r&&B==null||K;if(h){var O;return{x:Zm({axis:l,ticks:p,bandSize:m,entry:k,index:w}),y:T?null:(O=u.scale.map(Q))!==null&&O!==void 0?O:null,value:N,payload:k}}return{x:T?null:(C=l.scale.map(Q))!==null&&C!==void 0?C:null,y:Zm({axis:u,ticks:f,bandSize:m,entry:k,index:w}),value:N,payload:k}}),S;return b||v?S=x.map(k=>{var w,_=Array.isArray(k.value)?k.value[0]:null;if(h){var A;return{x:k.x,y:_!=null&&k.y!=null&&(A=u.scale.map(_))!==null&&A!==void 0?A:null,payload:k.payload}}return{x:_!=null&&(w=l.scale.map(_))!==null&&w!==void 0?w:null,y:k.y,payload:k.payload}}):S=h?u.scale.map(g):l.scale.map(g),{points:x,baseLine:S??0,isRange:v}}function P0e(e){var t=nr(e,xV),r=Ar();return hr.createElement(Zc,{id:t.id,type:"area"},n=>hr.createElement(hr.Fragment,null,hr.createElement(Kg,{legendPayload:w0e(t)}),hr.createElement(S0e,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:n}),hr.createElement(Yg,{type:"area",id:n,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:AS(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:r,connectNulls:t.connectNulls}),hr.createElement(T0e,hC({},t,{id:n}))))}var Eu=hr.memo(P0e,Ga);Eu.displayName="Area";var Rt=Z(J()),Bs=Z(J());var wV=Z(J());var M0e=!0,b5="Invariant failed";function bV(e,t){if(!e){if(M0e)throw new Error(b5);var r=typeof t=="function"?t():t,n=r?"".concat(b5,": ").concat(r):b5;throw new Error(n)}}var I0e=["option"];function D0e(e,t){if(e==null)return{};var r,n,o=j0e(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n1&&arguments[1]!==void 0?arguments[1]:0;return(n,o)=>{if(De(t))return t;var a=De(n)||ar(n);return a?t(n,o):(a||bV(!1,"minPointSize callback function received a value with type of ".concat(typeof n,". Currently only numbers or null/undefined are supported.")),r)}};var $0e=(e,t,r)=>r,L0e=(e,t)=>t,Ux=ae([$c,L0e],(e,t)=>e.filter(r=>r.type==="bar").find(r=>r.id===t)),z0e=ae([Ux],e=>e?.maxBarSize),B0e=(e,t,r,n)=>n,F0e=ae([Bt,$c,ss,ls,$0e],(e,t,r,n,o)=>t.filter(a=>e==="horizontal"?a.xAxisId===r:a.yAxisId===n).filter(a=>a.isPanorama===o).filter(a=>a.hide===!1).filter(a=>a.type==="bar")),U0e=(e,t,r)=>{var n=Bt(e),o=ss(e,t),a=ls(e,t);if(!(o==null||a==null))return n==="horizontal"?Tg(e,"yAxis",a,r):Tg(e,"xAxis",o,r)},W0e=(e,t)=>{var r=Bt(e),n=ss(e,t),o=ls(e,t);if(!(n==null||o==null))return r==="horizontal"?SM(e,"xAxis",n):SM(e,"yAxis",o)},H0e=ae([F0e,yF,W0e],uK),q0e=(e,t,r)=>{var n,o,a=Ux(e,t);if(a==null)return 0;var i=ss(e,t),s=ls(e,t);if(i==null||s==null)return 0;var l=Bt(e),u=dP(e),c=a.maxBarSize,d=ar(c)?u:c,p,f;return l==="horizontal"?(p=Ai(e,"xAxis",i,r),f=Ci(e,"xAxis",i,r)):(p=Ai(e,"yAxis",s,r),f=Ci(e,"yAxis",s,r)),(n=(o=Ji(p,f,!0))!==null&&o!==void 0?o:d)!==null&&n!==void 0?n:0},kV=(e,t,r)=>{var n=Bt(e),o=ss(e,t),a=ls(e,t);if(!(o==null||a==null)){var i,s;return n==="horizontal"?(i=Ai(e,"xAxis",o,r),s=Ci(e,"xAxis",o,r)):(i=Ai(e,"yAxis",a,r),s=Ci(e,"yAxis",a,r)),Ji(i,s)}},K0e=ae([H0e,dP,hF,ik,q0e,kV,z0e],dK),V0e=(e,t,r)=>{var n=ss(e,t);if(n!=null)return Ai(e,"xAxis",n,r)},G0e=(e,t,r)=>{var n=ls(e,t);if(n!=null)return Ai(e,"yAxis",n,r)},Y0e=(e,t,r)=>{var n=ss(e,t);if(n!=null)return Ci(e,"xAxis",n,r)},X0e=(e,t,r)=>{var n=ls(e,t);if(n!=null)return Ci(e,"yAxis",n,r)},Z0e=ae([K0e,Ux],fK),J0e=ae([U0e,Ux],pK),_V=ae([Fr,eg,V0e,G0e,Y0e,X0e,Z0e,Bt,tk,kV,J0e,Ux,B0e],(e,t,r,n,o,a,i,s,l,u,c,d,p)=>{var f=l.chartData,m=l.dataStartIndex,y=l.dataEndIndex;if(!(d==null||i==null||t==null||s!=="horizontal"&&s!=="vertical"||r==null||n==null||o==null||a==null||u==null)){var b=d.data,g;if(b!=null&&b.length>0?g=b:g=f?.slice(m,y+1),g!=null)return CV({layout:s,barSettings:d,pos:i,parentViewBox:t,bandSize:u,xAxis:r,yAxis:n,xAxisTicks:o,yAxisTicks:a,stackedData:c,displayedData:g,offset:e,cells:p,dataStartIndex:m})}});var S5=Z(J()),Rg=Z(J());var Q0e=["index"];function w5(){return w5=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=(0,Rg.useContext)(AV);if(t!=null)return t.stackId;if(e!=null)return AS(e)};var tbe=(e,t)=>"recharts-bar-stack-clip-path-".concat(e,"-").concat(t),rbe=e=>{var t=(0,Rg.useContext)(AV);if(t!=null){var r=t.stackId;return"url(#".concat(tbe(r,e),")")}},k5=e=>{var t=e.index,r=R0e(e,Q0e),n=rbe(t);return S5.createElement(br,w5({className:"recharts-bar-stack-layer",clipPath:n},r))};var nbe=["onMouseEnter","onMouseLeave","onClick"],obe=["value","background","tooltipPosition"],abe=["id"],ibe=["onMouseEnter","onClick","onMouseLeave"];function NV(e,t){return cbe(e)||ube(e,t)||lbe(e,t)||sbe()}function sbe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function lbe(e,t){if(e){if(typeof e=="string")return TV(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?TV(e,t):void 0}}function TV(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.dataKey,r=e.name,n=e.fill,o=e.legendType,a=e.hide;return[{inactive:a,dataKey:t,type:o,color:n,value:xi(r,t),payload:e}]},hbe=Rt.memo(e=>{var t=e.dataKey,r=e.stroke,n=e.strokeWidth,o=e.fill,a=e.name,i=e.hide,s=e.unit,l=e.formatter,u=e.tooltipType,c=e.id,d={dataDefinedOnItem:void 0,getPosition:ka,settings:{stroke:r,strokeWidth:n,fill:o,dataKey:t,nameKey:void 0,name:xi(a,t),hide:i,type:u,color:o,unit:s,formatter:l,graphicalItemId:c}};return Rt.createElement(Vc,{tooltipEntrySettings:d})});function ybe(e){var t=$e(ns),r=e.data,n=e.dataKey,o=e.background,a=e.allOtherBarProps,i=a.onMouseEnter,s=a.onMouseLeave,l=a.onClick,u=bC(a,nbe),c=kx(i,n,a.id),d=_x(s),p=Cx(l,n,a.id);if(!o||r==null)return null;var f=mi(o);return Rt.createElement(sn,{zIndex:mK(o,ir.barBackground)},r.map((m,y)=>{var b=m.value,g=m.background,h=m.tooltipPosition,v=bC(m,obe);if(!g)return null;var x=c(m,m.originalDataIndex),S=d(m,m.originalDataIndex),k=p(m,m.originalDataIndex),w=To(To(To(To(To({option:o,isActive:String(m.originalDataIndex)===t},v),{},{fill:"#eee"},g),f),iu(u,m,y)),{},{onMouseEnter:x,onMouseLeave:S,onClick:k,dataKey:n,index:y,className:"recharts-bar-background-rectangle"});return Rt.createElement(xC,Qc({key:"background-bar-".concat(y)},w))}))}function vbe(e){var t=e.showLabels,r=e.children,n=e.rects,o=n?.map(a=>{var i={x:a.x,y:a.y,width:a.width,lowerWidth:a.width,upperWidth:a.width,height:a.height};return To(To({},i),{},{value:a.value,payload:a.payload,parentViewBox:a.parentViewBox,viewBox:i,fill:a.fill})});return Rt.createElement(Wg,{value:t?o:void 0},r)}function xbe(e){var t=e.shape,r=e.activeBar,n=e.baseProps,o=e.entry,a=e.index,i=e.dataKey,s=$e(ns),l=$e(Ig),u=r&&String(o.originalDataIndex)===s&&(l==null||i===l),c=s!=null&&(String(o.originalDataIndex)!==s||l!=null&&i!==l),d=(0,Bs.useState)(!1),p=NV(d,2),f=p[0],m=p[1],y=(0,Bs.useState)(!1),b=NV(y,2),g=b[0],h=b[1];(0,Bs.useEffect)(()=>{var _;return u?(m(!0),_=requestAnimationFrame(()=>{h(!0)})):(h(!1),c&&m(!1)),()=>{cancelAnimationFrame(_)}},[u,c]);var v=(0,Bs.useCallback)(()=>{u||m(!1)},[u]),x=u&&g,S=u||f,k;u?r===!0?k=t:k=r:k=t;var w=Rt.createElement(xC,Qc({},n,{name:String(n.name)},o,{isActive:x,option:k,index:a,dataKey:i,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance,onTransitionEnd:v}));return S?Rt.createElement(sn,{zIndex:ir.activeBar},Rt.createElement(k5,{index:o.originalDataIndex},w)):w}function bbe(e){var t=e.shape,r=e.baseProps,n=e.entry,o=e.index,a=e.dataKey;return Rt.createElement(xC,Qc({},r,{name:String(r.name)},n,{isActive:!1,option:t,index:o,dataKey:a,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance}))}function wbe(e){var t,r=e.data,n=e.props,o=e.animationElapsedTime,a=e.isAnimating,i=e.isEntrance,s=(t=hn(n))!==null&&t!==void 0?t:{},l=s.id,u=bC(s,abe),c=n.shape,d=n.dataKey,p=n.activeBar,f=n.onMouseEnter,m=n.onClick,y=n.onMouseLeave,b=bC(n,ibe),g=kx(f,d,l),h=_x(y),v=Cx(m,d,l);return r?Rt.createElement(Rt.Fragment,null,r.map((x,S)=>Rt.createElement(k5,Qc({index:x.originalDataIndex,key:"rectangle-".concat(x?.x,"-").concat(x?.y,"-").concat(x?.value,"-").concat(S),className:"recharts-bar-rectangle"},iu(b,x,S),{onMouseEnter:g(x,x.originalDataIndex),onMouseLeave:h(x,x.originalDataIndex),onClick:v(x,x.originalDataIndex)}),p?Rt.createElement(xbe,{shape:c,activeBar:p,baseProps:u,entry:x,index:S,dataKey:d,animationElapsedTime:o,isAnimating:a,isEntrance:i}):Rt.createElement(bbe,{shape:c,baseProps:u,entry:x,index:S,dataKey:d,animationElapsedTime:o,isAnimating:a,isEntrance:i})))):null}var Sbe=(e,t,r)=>e==null?[]:t===1?e.flatMap(n=>n.status==="removed"?[]:[n.next]):e.flatMap(n=>{if(n.status==="removed")return r==="horizontal"?[To(To({},n.prev),{},{height:_r(n.prev.height,0,t),y:_r(n.prev.y,n.prev.y+n.prev.height,t)})]:[To(To({},n.prev),{},{width:_r(n.prev.width,0,t)})];if(n.status==="matched")return[To(To({},n.next),{},{x:_r(n.prev.x,n.next.x,t),y:_r(n.prev.y,n.next.y,t),width:_r(n.prev.width,n.next.width,t),height:_r(n.prev.height,n.next.height,t)})];var o=n.next;return r==="horizontal"?[To(To({},o),{},{height:_r(0,o.height,t),y:_r(o.stackedBarStart,o.y,t)})]:[To(To({},o),{},{width:_r(0,o.width,t),x:_r(o.stackedBarStart,o.x,t)})]});function kbe(e){var t=e.props,r=e.previousRectanglesRef,n=t.data,o=t.isAnimationActive,a=t.animationBegin,i=t.animationDuration,s=t.animationEasing,l=t.animationInterpolateFn,u=t.layout,c=Yc(t.onAnimationStart,t.onAnimationEnd),d=c.isAnimating,p=c.handleAnimationStart,f=c.handleAnimationEnd;return Rt.createElement(vbe,{showLabels:!d,rects:n},Rt.createElement(Xc,{animationInput:n,animationIdPrefix:"recharts-bar-",items:n,previousItemsRef:r,isAnimationActive:o,animationBegin:a,animationDuration:i,animationEasing:s,onAnimationStart:p,onAnimationEnd:f,animationInterpolateFn:l,animationMatchBy:t.animationMatchBy,layout:u},(m,y,b)=>Rt.createElement(br,null,Rt.createElement(wbe,{props:t,data:m,animationElapsedTime:y,isAnimating:d||y<1,isEntrance:b}))),Rt.createElement(qc,{label:t.label}),t.children)}function _be(e){var t=(0,Bs.useRef)(null);return Rt.createElement(kbe,{previousRectanglesRef:t,props:e})}var PV=0,Cbe=(e,t)=>{var r=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:r,errorVal:Ht(e,t)}},_5=class extends Bs.PureComponent{render(){var t=this.props,r=t.hide,n=t.data,o=t.dataKey,a=t.className,i=t.xAxisId,s=t.yAxisId,l=t.needClip,u=t.background,c=t.id;if(r||n==null)return null;var d=bt("recharts-bar",a),p=c;return Rt.createElement(br,{className:d,id:c},l&&Rt.createElement("defs",null,Rt.createElement(Jg,{clipPathId:p,xAxisId:i,yAxisId:s})),Rt.createElement(br,{className:"recharts-bar-rectangles",clipPath:l?"url(#clipPath-".concat(p,")"):void 0},Rt.createElement(ybe,{data:n,dataKey:o,background:u,allOtherBarProps:this.props}),Rt.createElement(_be,this.props)))}},Abe={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",animationInterpolateFn:Sbe,animationMatchBy:Ex,background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:PV,shape:vC,xAxisId:0,yAxisId:0,zIndex:ir.bar};function Ebe(e){var t=e.xAxisId,r=e.yAxisId,n=e.hide,o=e.legendType,a=e.minPointSize,i=e.activeBar,s=e.animationBegin,l=e.animationDuration,u=e.animationEasing,c=e.isAnimationActive,d=Fp(t,r),p=d.needClip,f=Va(),m=Ar(),y=wx(e.children,wu),b=$e(v=>_V(v,e.id,m,y));if(f!=="vertical"&&f!=="horizontal")return null;var g,h=b?.[0];return h==null||h.height==null||h.width==null?g=0:g=f==="vertical"?h.height/2:h.width/2,Rt.createElement(pC,{xAxisId:t,yAxisId:r,data:b,dataPointFormatter:Cbe,errorBarOffset:g},Rt.createElement(_5,Qc({},e,{layout:f,needClip:p,data:b,xAxisId:t,yAxisId:r,hide:n,legendType:o,minPointSize:a,activeBar:i,animationBegin:s,animationDuration:l,animationEasing:u,isAnimationActive:c})))}function CV(e){var t=e.layout,r=e.barSettings,n=r.dataKey,o=r.minPointSize,a=r.hasCustomShape,i=e.pos,s=e.bandSize,l=e.xAxis,u=e.yAxis,c=e.xAxisTicks,d=e.yAxisTicks,p=e.stackedData,f=e.displayedData,m=e.offset,y=e.cells,b=e.parentViewBox,g=e.dataStartIndex,h=t==="horizontal"?u:l,v=p?h.scale.domain():null,x=g7({numericAxis:h}),S=h.scale.map(x);return f.map((k,w)=>{var _,A,C,N,L,Q;if(p){var B=p[w+g];if(B==null)return null;_=f7(B,v)}else _=Ht(k,n),Array.isArray(_)||(_=[x,_]);var K=SV(o,PV)(_[1],w);if(t==="horizontal"){var T,O=u.scale.map(_[0]),I=u.scale.map(_[1]);if(O==null||I==null)return null;A=FO({axis:l,ticks:c,bandSize:s,offset:i.offset,entry:k,index:w}),C=(T=I??O)!==null&&T!==void 0?T:void 0,N=i.size;var P=O-I;if(L=Wo(P)?0:P,Q={x:A,y:m.top,width:N,height:m.height},Math.abs(K)>0&&Math.abs(L)0&&Math.abs(N)Rt.createElement(Rt.Fragment,null,Rt.createElement(Kg,{legendPayload:gbe(t)}),Rt.createElement(hbe,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:o}),Rt.createElement(Yg,{type:"bar",id:o,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:r,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:n,hasCustomShape:t.shape!=null&&t.shape!==vC}),Rt.createElement(sn,{zIndex:t.zIndex},Rt.createElement(Ebe,Qc({},t,{id:o})))))}var wC=Rt.memo(Nbe,Ga);wC.displayName="Bar";var Nu=Z(J()),us=Z(J());var Tbe=["domain","range"],Obe=["domain","range"];function MV(e,t){if(e==null)return{};var r,n,o=Pbe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{if(i!=null)return jV(jV({},a),{},{type:i})},[a,i]);return(0,us.useLayoutEffect)(()=>{s!=null&&(r.current===null?t(Yq(s)):r.current!==s&&t(Xq({prev:r.current,next:s})),r.current=s)},[s,t]),(0,us.useLayoutEffect)(()=>()=>{r.current&&(t(Zq(r.current)),r.current=null)},[t]),null}var Fbe=e=>{var t=e.xAxisId,r=e.className,n=e.height,o=e.label,a=(0,us.useRef)(null),i=(0,us.useRef)(null),s=$e(eg),l=Ar(),u=jt(),c="xAxis",d=$e(k=>l_(k,c,t,l)),p=$e(k=>bM(k,t)),f=$e(k=>iW(k,t)),m=$e(k=>JP(k,t));if((0,us.useLayoutEffect)(()=>{if(!(n!=="auto"||!p||Ip(o)||(0,us.isValidElement)(o)||m==null)){var k=a.current;if(k){var w=k.getCalculatedHeight();Math.round(p.height)!==Math.round(w)&&u(tK({id:t,height:w}))}}},[d,p,u,o,t,n,m]),p==null||f==null||m==null)return null;var y=e.dangerouslySetInnerHTML,b=e.ticks,g=e.scale,h=A5(e,Ibe),v=m.id,x=m.scale,S=A5(m,Dbe);return Nu.createElement(zx,C5({},h,S,{ref:a,labelRef:i,x:f.x,y:f.y,width:p.width,height:p.height,className:bt("recharts-".concat(c," ").concat(c),r),viewBox:s,ticks:d,axisType:c,axisId:t}))},Ube={allowDataOverflow:io.allowDataOverflow,allowDecimals:io.allowDecimals,allowDuplicatedCategory:io.allowDuplicatedCategory,angle:io.angle,axisLine:is.axisLine,height:io.height,hide:!1,includeHidden:io.includeHidden,interval:io.interval,label:!1,minTickGap:io.minTickGap,mirror:io.mirror,orientation:io.orientation,padding:io.padding,reversed:io.reversed,scale:io.scale,tick:io.tick,tickCount:io.tickCount,tickLine:is.tickLine,tickSize:is.tickSize,type:io.type,niceTicks:io.niceTicks,xAxisId:0},Wbe=e=>{var t=nr(e,Ube);return Nu.createElement(Nu.Fragment,null,Nu.createElement(Bbe,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),Nu.createElement(Fbe,t))},Tu=Nu.memo(Wbe,SC);Tu.displayName="XAxis";var Ou=Z(J()),cs=Z(J());var Hbe=["type"],qbe=["dangerouslySetInnerHTML","ticks","scale"],Kbe=["id","scale"];function E5(){return E5=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(i!=null)return LV(LV({},a),{},{type:i})},[i,a]);return(0,cs.useLayoutEffect)(()=>{s!=null&&(r.current===null?t(Jq(s)):r.current!==s&&t(Qq({prev:r.current,next:s})),r.current=s)},[s,t]),(0,cs.useLayoutEffect)(()=>()=>{r.current&&(t(Rq(r.current)),r.current=null)},[t]),null}function Jbe(e){var t=e.yAxisId,r=e.className,n=e.width,o=e.label,a=(0,cs.useRef)(null),i=(0,cs.useRef)(null),s=$e(eg),l=Ar(),u=jt(),c="yAxis",d=$e(k=>wM(k,t)),p=$e(k=>sW(k,t)),f=$e(k=>l_(k,c,t,l)),m=$e(k=>QP(k,t));if((0,cs.useLayoutEffect)(()=>{if(!(n!=="auto"||!d||Ip(o)||(0,cs.isValidElement)(o)||m==null)){var k=a.current;if(k){var w=k.getCalculatedWidth();Math.round(d.width)!==Math.round(w)&&u(eK({id:t,width:w}))}}},[f,d,u,o,t,n,m]),d==null||p==null||m==null)return null;var y=e.dangerouslySetInnerHTML,b=e.ticks,g=e.scale,h=N5(e,qbe),v=m.id,x=m.scale,S=N5(m,Kbe);return Ou.createElement(zx,E5({},h,S,{ref:a,labelRef:i,x:p.x,y:p.y,tickTextProps:n==="auto"?{width:void 0}:{width:n},width:d.width,height:d.height,className:bt("recharts-".concat(c," ").concat(c),r),viewBox:s,ticks:f,axisType:c,axisId:t}))}var Qbe={allowDataOverflow:so.allowDataOverflow,allowDecimals:so.allowDecimals,allowDuplicatedCategory:so.allowDuplicatedCategory,angle:so.angle,axisLine:is.axisLine,hide:!1,includeHidden:so.includeHidden,interval:so.interval,label:!1,minTickGap:so.minTickGap,mirror:so.mirror,orientation:so.orientation,padding:so.padding,reversed:so.reversed,scale:so.scale,tick:so.tick,tickCount:so.tickCount,tickLine:is.tickLine,tickSize:is.tickSize,type:so.type,niceTicks:so.niceTicks,width:so.width,yAxisId:0},Rbe=e=>{var t=nr(e,Qbe);return Ou.createElement(Ou.Fragment,null,Ou.createElement(Zbe,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),Ou.createElement(Jbe,t))},Pu=Ou.memo(Rbe,SC);Pu.displayName="YAxis";var cG=Z(J()),dG=Z(J());var Gp=Z(J()),uG=Z(J());var QV=Z(J()),RV=Z(J());var e1e=(e,t)=>t,Wx=ae([e1e,Bt,mk,ao,PM,Za,BW,Fr],KW);function t1e(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function Hx(e){var t=e.currentTarget.getBoundingClientRect(),r,n;if(t1e(e)){var o=e.currentTarget.getBBox();r=o.width>0?t.width/o.width:1,n=o.height>0?t.height/o.height:1}else{var a=e.currentTarget;r=a.offsetWidth>0?t.width/a.offsetWidth:1,n=a.offsetHeight>0?t.height/a.offsetHeight:1}var i=(s,l)=>({relativeX:Math.round((s-t.left)/r),relativeY:Math.round((l-t.top)/n)});return"touches"in e?Array.from(e.touches).map(s=>i(s.clientX,s.clientY)):i(e.clientX,e.clientY)}var O5=xo("mouseClick"),P5=du();P5.startListening({actionCreator:O5,effect:(e,t)=>{var r=e.payload,n=Wx(t.getState(),Hx(r));n?.activeIndex!=null&&t.dispatch(vW({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var kC=xo("mouseMove"),M5=du(),eh=null,Wp=null,T5=null;M5.startListening({actionCreator:kC,effect:(e,t)=>{var r=e.payload,n=t.getState(),o=n.eventSettings,a=o.throttleDelay,i=o.throttledEvents,s=i==="all"||i?.includes("mousemove");eh!==null&&(cancelAnimationFrame(eh),eh=null),Wp!==null&&(typeof a!="number"||!s)&&(clearTimeout(Wp),Wp=null),T5=Hx(r);var l=()=>{var u=t.getState(),c=Lc(u,u.tooltip.settings.shared);if(!T5){eh=null,Wp=null;return}if(c==="axis"){var d=Wx(u,T5);d?.activeIndex!=null?t.dispatch(p_({activeIndex:d.activeIndex,activeDataKey:void 0,activeCoordinate:d.activeCoordinate})):t.dispatch(d_())}eh=null,Wp=null};if(!s){l();return}a==="raf"?eh=requestAnimationFrame(l):typeof a=="number"&&Wp===null&&(Wp=setTimeout(l,a))}});function zV(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":e==="children"&&typeof t=="object"&&t!==null?"<>":t}var BV={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},FV=Cr({name:"rootProps",initialState:BV,reducers:{updateOptions:(e,t)=>{var r;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(r=t.payload.barGap)!==null&&r!==void 0?r:BV.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),UV=FV.reducer,WV=FV.actions.updateOptions;var r1e=null,n1e={updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)},HV=Cr({name:"polarOptions",initialState:r1e,reducers:n1e}),qV=HV.actions.updatePolarOptions;var KV=HV.reducer;var I5=xo("keyDown"),D5=xo("focus"),j5=xo("blur"),qx=du(),th=null,Hp=null,_C=null;qx.startListening({actionCreator:I5,effect:(e,t)=>{_C=e.payload,th!==null&&(cancelAnimationFrame(th),th=null);var r=t.getState(),n=r.eventSettings,o=n.throttleDelay,a=n.throttledEvents,i=a==="all"||a.includes("keydown");Hp!==null&&(typeof o!="number"||!i)&&(clearTimeout(Hp),Hp=null);var s=()=>{try{var l=t.getState(),u=l.rootProps.accessibilityLayer!==!1;if(!u)return;var c=l.tooltip.keyboardInteraction,d=_C;if(d!=="ArrowRight"&&d!=="ArrowLeft"&&d!=="Enter")return;var p=zc(c,bu(l),hu(l),Fc(l)),f=p==null?-1:Number(p),m=!Number.isFinite(f)||f<0,y=Za(l),b=bu(l),g=Lc(l,l.tooltip.settings.shared);if(d==="Enter"){if(m)return;var h=vx(l,g,"hover",String(c.index));t.dispatch(hx({active:!c.active,activeIndex:c.index,activeCoordinate:h}));return}var v=lW(l),x=v==="left-to-right"?1:-1,S=d==="ArrowRight"?1:-1,k;if(m){var w=hu(l),_=Fc(l),A=S*x,C=K=>({active:!1,index:String(K),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(k=-1,A>0){for(var N=0;N=0;L--)if(zc(C(L),b,w,_)!=null){k=L;break}if(k<0)return}else{k=f+S*x;var Q=y?.length||b.length;if(Q===0||k>=Q||k<0)return}var B=vx(l,g,"hover",String(k));t.dispatch(hx({active:!0,activeIndex:k.toString(),activeCoordinate:B}))}finally{th=null,Hp=null}};if(!i){s();return}o==="raf"?th=requestAnimationFrame(s):typeof o=="number"&&Hp===null&&(s(),_C=null,Hp=setTimeout(()=>{_C?s():(Hp=null,th=null)},o))}});qx.startListening({actionCreator:D5,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var o=r.tooltip.keyboardInteraction;if(!o.active&&o.index==null){var a="0",i=Lc(r,r.tooltip.settings.shared),s=vx(r,i,"hover",String(a));t.dispatch(hx({active:!0,activeIndex:a,activeCoordinate:s}))}}}});qx.startListening({actionCreator:j5,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var o=r.tooltip.keyboardInteraction;o.active&&t.dispatch(hx({active:!1,activeIndex:o.index,activeCoordinate:o.coordinate}))}}});function CC(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(r,n)=>{if(n==="currentTarget")return t;var o=Reflect.get(r,n);return typeof o=="function"?o.bind(r):o}})}var Ei=xo("externalEvent"),L5=du(),AC=new Map,Kx=new Map,$5=new Map;L5.startListening({actionCreator:Ei,effect:(e,t)=>{var r=e.payload,n=r.handler,o=r.reactEvent;if(n!=null){var a=o.type,i=CC(o);$5.set(a,{handler:n,reactEvent:i});var s=AC.get(a);s!==void 0&&(cancelAnimationFrame(s),AC.delete(a));var l=t.getState(),u=l.eventSettings,c=u.throttleDelay,d=u.throttledEvents,p=d,f=p==="all"||p?.includes(a),m=Kx.get(a);m!==void 0&&(typeof c!="number"||!f)&&(clearTimeout(m),Kx.delete(a));var y=()=>{var h=$5.get(a);try{if(!h)return;var v=h.handler,x=h.reactEvent,S=t.getState(),k={activeCoordinate:jM(S),activeDataKey:Ig(S),activeIndex:ns(S),activeLabel:x_(S),activeTooltipIndex:ns(S),isTooltipActive:$M(S)};v&&v(k,x)}finally{AC.delete(a),Kx.delete(a),$5.delete(a)}};if(!f){y();return}if(c==="raf"){var b=requestAnimationFrame(y);AC.set(a,b)}else if(typeof c=="number"){if(!Kx.has(a)){y();var g=setTimeout(y,c);Kx.set(a,g)}}else y()}}});var o1e=ae([xu],e=>e.tooltipItemPayloads),VV=ae([o1e,(e,t)=>t,(e,t,r)=>r],(e,t,r)=>{if(t!=null){var n=e.find(a=>a.settings.graphicalItemId===r);if(n!=null){var o=n.getPosition;if(o!=null)return o(t)}}});var z5=xo("touchMove"),B5=du(),qp=null,Rc=null,GV=null,Vx=null;B5.startListening({actionCreator:z5,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){Vx=CC(r);var n=t.getState(),o=n.eventSettings,a=o.throttleDelay,i=o.throttledEvents,s=i==="all"||i.includes("touchmove");qp!==null&&(cancelAnimationFrame(qp),qp=null),Rc!==null&&(typeof a!="number"||!s)&&(clearTimeout(Rc),Rc=null),GV=Array.from(r.touches).map(u=>Hx({clientX:u.clientX,clientY:u.clientY,currentTarget:r.currentTarget}));var l=()=>{if(Vx!=null){var u=t.getState(),c=Lc(u,u.tooltip.settings.shared);if(c==="axis"){var d,p=(d=GV)===null||d===void 0?void 0:d[0];if(p==null){qp=null,Rc=null;return}var f=Wx(u,p);f?.activeIndex!=null&&t.dispatch(p_({activeIndex:f.activeIndex,activeDataKey:void 0,activeCoordinate:f.activeCoordinate}))}else if(c==="item"){var m,y=Vx.touches[0];if(document.elementFromPoint==null||y==null)return;var b=document.elementFromPoint(y.clientX,y.clientY);if(!b||!b.getAttribute)return;var g=b.getAttribute(ES),h=(m=b.getAttribute(NS))!==null&&m!==void 0?m:void 0,v=Bc(u).find(k=>k.id===h);if(g==null||v==null||h==null)return;var x=v.dataKey,S=VV(u,g,h);t.dispatch(c_({activeDataKey:x,activeIndex:g,activeCoordinate:S,activeGraphicalItemId:h}))}qp=null,Rc=null}};if(!s){l();return}a==="raf"?qp=requestAnimationFrame(l):typeof a=="number"&&Rc===null&&(l(),Vx=null,Rc=setTimeout(()=>{Vx?l():(Rc=null,qp=null)},a))}}});var Gx={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},YV=Cr({name:"eventSettings",initialState:Gx,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=Zt(t.payload.throttledEvents))}}}),XV=YV.actions.setEventSettings;var ZV=YV.reducer;var a1e=tS({brush:vK,cartesianAxis:rK,chartData:gH,errorBars:QK,eventSettings:ZV,graphicalItems:Uq,layout:c7,legend:$7,options:cH,polarAxis:uq,polarOptions:KV,referenceElements:wK,renderedTicks:zK,rootProps:UV,tooltip:xW,zIndex:eH}),JV=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return VB({reducer:a1e,preloadedState:t,middleware:n=>{var o;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((o="es6")!==null&&o!==void 0?o:"")}).concat([P5.middleware,M5.middleware,qx.middleware,L5.middleware,B5.middleware])},enhancers:n=>{var o=n;return typeof n=="function"&&(o=n()),o.concat(DO({type:"raf"}))},devTools:Qi.devToolsEnabled&&{serialize:{replacer:zV},name:"recharts-".concat(r)}})};function EC(e){var t=e.preloadedState,r=e.children,n=e.reduxStoreName,o=Ar(),a=(0,RV.useRef)(null);if(o)return r;a.current==null&&(a.current=JV(t,n));var i=hv;return QV.createElement(q7,{context:i,store:a.current},r)}var NC=Z(J());function i1e(e){var t=e.layout,r=e.margin,n=jt(),o=Ar();return(0,NC.useEffect)(()=>{o||(n(s7(t)),n(LO(r)))},[n,o,t,r]),null}var TC=(0,NC.memo)(i1e,Ga);var eG=Z(J());function OC(e){var t=jt();return(0,eG.useEffect)(()=>{t(WV(e))},[t,e]),null}var PC=Z(J());var s1e=e=>{var t=jt();return(0,PC.useEffect)(()=>{t(XV(e))},[t,e]),null},MC=(0,PC.memo)(s1e,Ga);var Mu=Z(J()),sG=Z(J());var Vp=Z(J()),U5=Z(J());var Kp=Z(J()),IC=Z(J());function tG(e){var t=e.zIndex,r=e.isPanorama,n=(0,IC.useRef)(null),o=jt();return(0,IC.useLayoutEffect)(()=>(n.current&&o(QW({zIndex:t,element:n.current,isPanorama:r})),()=>{o(RW({zIndex:t,isPanorama:r}))}),[o,t,r]),Kp.createElement("g",{tabIndex:-1,ref:n,className:"recharts-zIndex-layer_".concat(t)})}function F5(e){var t=e.children,r=e.isPanorama,n=$e(GW);if(!n||n.length===0)return t;var o=n.filter(i=>i<0),a=n.filter(i=>i>0);return Kp.createElement(Kp.Fragment,null,o.map(i=>Kp.createElement(tG,{key:i,zIndex:i,isPanorama:r})),t,a.map(i=>Kp.createElement(tG,{key:i,zIndex:i,isPanorama:r})))}var l1e=["children"];function u1e(e,t){if(e==null)return{};var r,n,o=c1e(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{var r=ng(),n=og(),o=BS();if(!qa(r)||!qa(n))return null;var a=e.children,i=e.otherAttributes,s=e.title,l=e.desc,u,c;return i!=null&&(typeof i.tabIndex=="number"?u=i.tabIndex:u=o?0:void 0,typeof i.role=="string"?c=i.role:c=o?"application":void 0),Vp.createElement(lv,DC({},i,{title:s,desc:l,role:c,tabIndex:u,width:r,height:n,style:d1e,ref:t}),a)}),f1e=e=>{var t=e.children,r=$e(np);if(!r)return null;var n=r.width,o=r.height,a=r.y,i=r.x;return Vp.createElement(lv,{width:n,height:o,x:i,y:a},t)},W5=(0,U5.forwardRef)((e,t)=>{var r=e.children,n=u1e(e,l1e),o=Ar();return o?Vp.createElement(f1e,null,Vp.createElement(F5,{isPanorama:!0},r)):Vp.createElement(p1e,DC({ref:t},n),Vp.createElement(F5,{isPanorama:!1},r))});var Tn=Z(J()),fr=Z(J());var jC=Z(J());function m1e(e,t){return v1e(e)||y1e(e,t)||h1e(e,t)||g1e()}function g1e(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function h1e(e,t){if(e){if(typeof e=="string")return rG(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?rG(e,t):void 0}}function rG(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(n!=null){var i=n.getBoundingClientRect(),s=i.width/n.offsetWidth;Ot(s)&&s!==a&&e(u7(s))}},[n,e,a]),o}function oG(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function x1e(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r(yH(),null);function LC(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var N1e=(0,fr.forwardRef)((e,t)=>{var r,n,o=(0,fr.useRef)(null),a=(0,fr.useState)({containerWidth:LC((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:LC((n=e.style)===null||n===void 0?void 0:n.height)}),i=$C(a,2),s=i[0],l=i[1],u=(0,fr.useCallback)((d,p)=>{l(f=>{var m=Math.round(d),y=Math.round(p);return f.containerWidth===m&&f.containerHeight===y?f:{containerWidth:m,containerHeight:y}})},[]),c=(0,fr.useCallback)(d=>{if(typeof t=="function"&&t(d),o.current!=null&&(o.current.disconnect(),o.current=null),d!=null&&typeof ResizeObserver<"u"){var p=d.getBoundingClientRect(),f=p.width,m=p.height;u(f,m);var y=g=>{var h=g[0];if(h!=null){var v=h.contentRect,x=v.width,S=v.height;u(x,S)}},b=new ResizeObserver(y);b.observe(d),o.current=b}},[t,u]);return(0,fr.useEffect)(()=>()=>{var d=o.current;d?.disconnect()},[u]),Tn.createElement(Tn.Fragment,null,Tn.createElement(ip,{width:s.containerWidth,height:s.containerHeight}),Tn.createElement("div",ed({ref:c},e)))}),T1e=(0,fr.forwardRef)((e,t)=>{var r=e.width,n=e.height,o=(0,fr.useState)({containerWidth:LC(r),containerHeight:LC(n)}),a=$C(o,2),i=a[0],s=a[1],l=(0,fr.useCallback)((c,d)=>{s(p=>{var f=Math.round(c),m=Math.round(d);return p.containerWidth===f&&p.containerHeight===m?p:{containerWidth:f,containerHeight:m}})},[]),u=(0,fr.useCallback)(c=>{if(typeof t=="function"&&t(c),c!=null){var d=c.getBoundingClientRect(),p=d.width,f=d.height;l(p,f)}},[t,l]);return Tn.createElement(Tn.Fragment,null,Tn.createElement(ip,{width:i.containerWidth,height:i.containerHeight}),Tn.createElement("div",ed({ref:u},e)))}),O1e=(0,fr.forwardRef)((e,t)=>{var r=e.width,n=e.height;return Tn.createElement(Tn.Fragment,null,Tn.createElement(ip,{width:r,height:n}),Tn.createElement("div",ed({ref:t},e)))}),P1e=(0,fr.forwardRef)((e,t)=>{var r=e.width,n=e.height;return typeof r=="string"||typeof n=="string"?Tn.createElement(T1e,ed({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?Tn.createElement(O1e,ed({},e,{width:r,height:n,ref:t})):Tn.createElement(Tn.Fragment,null,Tn.createElement(ip,{width:r,height:n}),Tn.createElement("div",ed({ref:t},e)))});function M1e(e){return e?N1e:P1e}var iG=(0,fr.forwardRef)((e,t)=>{var r=e.children,n=e.className,o=e.height,a=e.onClick,i=e.onContextMenu,s=e.onDoubleClick,l=e.onMouseDown,u=e.onMouseEnter,c=e.onMouseLeave,d=e.onMouseMove,p=e.onMouseUp,f=e.onTouchEnd,m=e.onTouchMove,y=e.onTouchStart,b=e.style,g=e.width,h=e.responsive,v=e.dispatchTouchEvents,x=v===void 0?!0:v,S=(0,fr.useRef)(null),k=jt(),w=(0,fr.useState)(null),_=$C(w,2),A=_[0],C=_[1],N=(0,fr.useState)(null),L=$C(N,2),Q=L[0],B=L[1],K=nG(),T=Av(),O=T?.width>0?T.width:g,I=T?.height>0?T.height:o,P=(0,fr.useCallback)(D=>{K(D),typeof t=="function"&&t(D),C(D),B(D),D!=null&&(S.current=D)},[K,t,C,B]),j=(0,fr.useCallback)(D=>{k(O5(D)),k(Ei({handler:a,reactEvent:D}))},[k,a]),M=(0,fr.useCallback)(D=>{k(kC(D)),k(Ei({handler:u,reactEvent:D}))},[k,u]),W=(0,fr.useCallback)(D=>{k(d_()),k(Ei({handler:c,reactEvent:D}))},[k,c]),Y=(0,fr.useCallback)(D=>{k(kC(D)),k(Ei({handler:d,reactEvent:D}))},[k,d]),z=(0,fr.useCallback)(()=>{k(D5())},[k]),V=(0,fr.useCallback)(()=>{k(j5())},[k]),q=(0,fr.useCallback)(D=>{k(I5(D.key))},[k]),oe=(0,fr.useCallback)(D=>{k(Ei({handler:i,reactEvent:D}))},[k,i]),Me=(0,fr.useCallback)(D=>{k(Ei({handler:s,reactEvent:D}))},[k,s]),fe=(0,fr.useCallback)(D=>{k(Ei({handler:l,reactEvent:D}))},[k,l]),le=(0,fr.useCallback)(D=>{k(Ei({handler:p,reactEvent:D}))},[k,p]),R=(0,fr.useCallback)(D=>{k(Ei({handler:y,reactEvent:D}))},[k,y]),te=(0,fr.useCallback)(D=>{x&&k(z5(D)),k(Ei({handler:m,reactEvent:D}))},[k,x,m]),He=(0,fr.useCallback)(D=>{k(Ei({handler:f,reactEvent:D}))},[k,f]),_e=M1e(h);return Tn.createElement(qM.Provider,{value:A},Tn.createElement(PT.Provider,{value:Q},Tn.createElement(_e,{width:O??b?.width,height:I??b?.height,className:bt("recharts-wrapper",n),style:x1e({position:"relative",cursor:"default",width:O,height:I},b),onClick:j,onContextMenu:oe,onDoubleClick:Me,onFocus:z,onBlur:V,onKeyDown:q,onMouseDown:fe,onMouseEnter:M,onMouseLeave:W,onMouseMove:Y,onMouseUp:le,onTouchEnd:He,onTouchMove:te,onTouchStart:R,ref:P},Tn.createElement(E1e,null),r)))});var I1e=["width","height","responsive","children","className","style","compact","title","desc"];function D1e(e,t){if(e==null)return{};var r,n,o=j1e(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{var r=e.width,n=e.height,o=e.responsive,a=e.children,i=e.className,s=e.style,l=e.compact,u=e.title,c=e.desc,d=D1e(e,I1e),p=hn(d);return l?Mu.createElement(Mu.Fragment,null,Mu.createElement(ip,{width:r,height:n}),Mu.createElement(W5,{otherAttributes:p,title:u,desc:c},a)):Mu.createElement(iG,{className:i,style:s,width:r,height:n,responsive:o??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},Mu.createElement(W5,{otherAttributes:p,title:u,desc:c,ref:t},Mu.createElement(kK,null,a)))});function H5(){return H5=Object.assign?Object.assign.bind():function(e){for(var t=1;tcG.createElement(rh,{chartName:"LineChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:W1e,tooltipPayloadSearcher:Uc,categoricalChartProps:e,ref:t}));var pG=Z(J()),fG=Z(J());var H1e=["axis","item"],K5=(0,fG.forwardRef)((e,t)=>pG.createElement(rh,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:H1e,tooltipPayloadSearcher:Uc,categoricalChartProps:e,ref:t}));var wG=Z(J()),SG=Z(J());var yG=Z(J()),td=Z(J());var mG=Z(J());function gG(e){var t=jt();return(0,mG.useEffect)(()=>{t(qV(e))},[t,e]),null}var q1e=["layout"];function V5(){return V5=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=nr(e,rwe);return wG.createElement(vG,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:twe,tooltipPayloadSearcher:Uc,categoricalChartProps:r,ref:t})});var kG=Z(J()),_G=Z(J());var nwe=["axis"],rd=(0,_G.forwardRef)((e,t)=>kG.createElement(rh,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:nwe,tooltipPayloadSearcher:Uc,categoricalChartProps:e,ref:t}));var ds=Z(J()),nh=[{id:"5m",label:"5m",minutes:5,bucketSeconds:10},{id:"10m",label:"10m",minutes:10,bucketSeconds:20},{id:"15m",label:"15m",minutes:15,bucketSeconds:30},{id:"30m",label:"30m",minutes:30,bucketSeconds:60},{id:"45m",label:"45m",minutes:45,bucketSeconds:60},{id:"1h",label:"1h",minutes:60,bucketSeconds:120},{id:"2h",label:"2h",minutes:120,bucketSeconds:240},{id:"3h",label:"3h",minutes:180,bucketSeconds:300},{id:"6h",label:"6h",minutes:360,bucketSeconds:600},{id:"12h",label:"12h",minutes:720,bucketSeconds:1200},{id:"1d",label:"1d",minutes:1440,bucketSeconds:1800},{id:"3d",label:"3d",minutes:4320,bucketSeconds:7200},{id:"7d",label:"7d",minutes:10080,bucketSeconds:14400},{id:"30d",label:"30d",minutes:43200,bucketSeconds:86400},{id:"90d",label:"90d",minutes:129600,bucketSeconds:259200}],CG="30m",AG="activeagents.timeWindow",EG=(0,ds.createContext)(null),X5=e=>nh.find(t=>t.id===e);function NG({children:e}){let[t,r]=(0,ds.useState)(()=>{try{let a=localStorage.getItem(AG);if(a&&X5(a))return a}catch{}return CG}),n=(0,ds.useCallback)(a=>{if(X5(a)){r(a);try{localStorage.setItem(AG,a)}catch{}}},[]),o=(0,ds.useMemo)(()=>{let a=nh.findIndex(s=>s.id===t),i=nh[a]||X5(CG);return{timeWindow:i,windowIndex:a,windows:nh,setWindow:n,zoomTo:s=>{let l=nh[Math.min(Math.max(s,0),nh.length-1)];l&&n(l.id)},days:Math.max(1,Math.ceil(i.minutes/1440))}},[t,n]);return ds.default.createElement(EG.Provider,{value:o},e)}function xl(){let e=(0,ds.useContext)(EG);if(!e)throw new Error("useTimeWindow must be used within a TimeWindowProvider");return e}var oh=Z(J());function bl({compact:e=!1}){let{windows:t,windowIndex:r,timeWindow:n,setWindow:o,zoomTo:a}=xl(),{darkMode:i}=ut(),s=Ki(i),l={color:s.textSecondary};return oh.default.createElement("div",{className:"flex items-center rounded-lg p-1",style:{background:s.mutedBg}},oh.default.createElement("button",{onClick:()=>a(r-1),disabled:r<=0,title:"Zoom in (shorter window)","aria-label":"Zoom in",className:"aa-zoom px-2 py-1 text-sm rounded-md disabled:opacity-30 disabled:cursor-not-allowed",style:l},"\u2212"),oh.default.createElement("select",{value:n.id,onChange:u=>o(u.target.value),"aria-label":"Time window",className:`aa-field px-2 py-1 mx-1 text-sm rounded-md shadow ${e?"":"min-w-[4.5rem]"}`,style:{background:s.cardBg,color:s.textPrimary,border:`1px solid ${s.cardBorder}`}},t.map(u=>oh.default.createElement("option",{key:u.id,value:u.id},u.label))),oh.default.createElement("button",{onClick:()=>a(r+1),disabled:r>=t.length-1,title:"Zoom out (longer window)","aria-label":"Zoom out",className:"aa-zoom px-2 py-1 text-sm rounded-md disabled:opacity-30 disabled:cursor-not-allowed",style:l},"+"))}var zn=Z(J());var tn=Z(J());var Yx=e=>{let t=(e||"").toLowerCase();return t.includes("claude")?2e5:t.includes("gemini")?1e6:t.includes("llama")?131072:t.includes("gpt-4o")||t.includes("gpt-4-turbo")||t.includes("gpt-4.1")?128e3:t.includes("gpt-5")?4e5:128e3},nd=e=>{if(e==null)return 0;let t=typeof e=="string"?e:JSON.stringify(e);return Math.round(t.length/4)},BC=e=>{let t=e?.spans||[],r=null;for(let m of t){let y=m.tokens||{},b=(y.input||0)+(y.output||0);b>0&&(!r||b>r.total)&&(r={input:y.input||0,output:y.output||0,thinking:y.thinking||0,cached:y.cached||0,total:b})}if(!r)return null;let n=m=>{for(let y of t){let b=(y.attributes||{})[m];if(b)return b}return null},o=(m,...y)=>{let b=Number(n(m));if(Number.isFinite(b)&&b>0)return b;for(let g of y){let h=n(g);if(h)return nd(h)}return 0},a=o("prompt.input.instructions.tokens","prompt.input.instructions","llm.instructions"),i=o("prompt.input.tools.tokens","prompt.input.tools","llm.tools"),s=o("prompt.input.mcp_tools.tokens","prompt.input.mcp_tools"),l=o("prompt.input.messages.tokens","prompt.input.messages","llm.messages"),u=0;for(let m of t){let y=m.attributes||{},b=y["tool.output.result"]||y["tool.result"],g=y["tool.input.args"]||y["tool.arguments"];b&&(u+=nd(b)),g&&(u+=nd(g))}u=Math.min(u,r.input);let c=["messages","toolResults","instructions","toolSchemas","mcpSchemas"],d={messages:l,toolResults:u,instructions:a,toolSchemas:i,mcpSchemas:s},p=c.reduce((m,y)=>m+d[y],0),f;if(p>0&&r.input>0){let m=r.input/p;f={};for(let b of c)f[b]=Math.round(d[b]*m);let y=r.input-c.reduce((b,g)=>b+f[g],0);if(y!==0){let b=c.reduce((g,h)=>f[h]>f[g]?h:g);f[b]=Math.max(f[b]+y,0)}}else f={messages:r.input,toolResults:0,instructions:0,toolSchemas:0,mcpSchemas:0};return{used:r.total,limit:Yx(e.model),cached:r.cached,thinking:r.thinking,estimated:p>0,segments:[{key:"messages",label:"Messages",tokens:f.messages},{key:"tool_results",label:"Tool results",tokens:f.toolResults},{key:"instructions",label:"Instructions",tokens:f.instructions},{key:"tool_schemas",label:"Tool schemas",tokens:f.toolSchemas},{key:"mcp_schemas",label:"MCP tool schemas",tokens:f.mcpSchemas},{key:"output",label:"Generated output",tokens:r.output}]}};var owe={messages:"#2563eb",tool_results:"#5b84ec",instructions:"#85a3f0",tool_schemas:"#a6bcf4",mcp_schemas:"#c3d2f8",memory:"#dce4fb",output:"#7c3aed"},ah=e=>e==null?"\u2014":e>=1e6?`${(e/1e6).toFixed(1).replace(/\.0$/,"")}M`:e>=1e3?`${(e/1e3).toFixed(1).replace(/\.0$/,"")}k`:String(Math.round(e));function od({used:e,limit:t=2e5,segments:r=[],cached:n=0,thinking:o=0,compact:a=!1,defaultOpen:i=!1,label:s="Context window",estimated:l=!1,darkMode:u=!1}){let[c,d]=(0,tn.useState)(i),p=r.filter(w=>w.tokens>0),f=e??p.reduce((w,_)=>w+_.tokens,0),m=t>0?f/t:0,y=m>=.9?"#dc2626":m>=.75?"#eab308":null,b=u?"rgba(255,255,255,0.4)":"#9ca3af",g=u?"rgba(255,255,255,0.6)":"#6b7280",h=u?"rgba(255,255,255,0.75)":"#4b5563",v=u?"rgba(255,255,255,0.1)":"#f3f4f6",x=`${ah(f)} / ${ah(t)} (${Math.round(m*100)}%)`,S=w=>w.key==="messages"&&y?y:w.color||owe[w.key]||"#2563eb",k=w=>tn.default.createElement("div",{style:{display:"flex",height:w,borderRadius:"999px",overflow:"hidden",background:v,flex:1}},p.map(_=>tn.default.createElement("div",{key:_.key,title:`${_.label} \xB7 ${ah(_.tokens)}`,style:{width:`${Math.min(_.tokens/t*100,100)}%`,background:S(_)}})));return a?tn.default.createElement("span",{title:`${s}: ${x}`,style:{display:"inline-flex",alignItems:"center",gap:"6px",width:"132px",verticalAlign:"middle"}},k("6px"),tn.default.createElement("span",{style:{fontSize:"11px",fontFamily:"'SF Mono', 'Fira Code', monospace",color:y||b,whiteSpace:"nowrap"}},Math.round(m*100),"%")):tn.default.createElement("div",{style:{background:u?"rgba(255,255,255,0.03)":"#ffffff",border:`1px solid ${y?y+"66":u?"rgba(255,255,255,0.1)":"#e5e7eb"}`,borderRadius:"12px",padding:"12px 14px"}},tn.default.createElement("div",{onClick:w=>{w.stopPropagation(),d(!c)},style:{display:"flex",alignItems:"center",justifyContent:"space-between",cursor:"pointer"}},tn.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:g}},s,l&&tn.default.createElement("span",{style:{color:b,fontWeight:400}}," \xB7 estimated")),tn.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:"8px"}},tn.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",fontWeight:600,color:y||h}},x),tn.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:b,display:"inline-block",transform:c?"rotate(90deg)":"none",transition:"transform 0.15s ease"}},">"))),tn.default.createElement("div",{style:{display:"flex",marginTop:"8px"}},k("9px")),m>=.9&&tn.default.createElement("div",{style:{marginTop:"6px",fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:"#dc2626"}},"[!] compaction imminent \u2014 next turn may drop the oldest messages"),c&&tn.default.createElement("div",{style:{marginTop:"10px",display:"grid",gap:"5px"}},[...p,{key:"__free",label:"Free space",tokens:Math.max(t-f,0)}].map(w=>tn.default.createElement("div",{key:w.key,style:{display:"flex",alignItems:"center",gap:"8px"}},tn.default.createElement("span",{style:{width:"9px",height:"9px",borderRadius:"2px",flexShrink:0,background:w.key==="__free"?v:S(w),border:w.key==="__free"?`1px solid ${u?"rgba(255,255,255,0.25)":"#d1d5db"}`:"none"}}),tn.default.createElement("span",{style:{fontSize:"13px",color:h,flex:1}},w.label),tn.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",color:g,width:"56px",textAlign:"right"}},ah(w.tokens)),tn.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",color:b,width:"46px",textAlign:"right"}},t>0?`${(w.tokens/t*100).toFixed(1)}%`:"\u2014"))),(n>0||o>0)&&tn.default.createElement("div",{style:{marginTop:"4px",paddingTop:"6px",borderTop:`1px solid ${u?"rgba(255,255,255,0.08)":"#f3f4f6"}`,display:"flex",gap:"16px",fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:b}},n>0&&tn.default.createElement("span",null,tn.default.createElement("span",{style:{color:"#2563eb"}},"[=]")," cached prefix ",ah(n)),o>0&&tn.default.createElement("span",null,tn.default.createElement("span",{style:{color:"#7c3aed"}},"[~]")," thinking ",ah(o)))))}var wt=Z(J());var Le=Z(J());var Zn=Z(J());var we=Z(J());var TG=["ui","json-ui","genui"],Yp="render_ui",Fs=e=>e!=null&&typeof e=="object"&&!Array.isArray(e),Z5=e=>{if(typeof e=="string")try{return JSON.parse(e)}catch{return}};function Xp(e){let t=typeof e=="string"?Z5(e):e;if(Array.isArray(t))return t.every(Fs)?t:null;if(Fs(t)){if(Array.isArray(t.blocks))return t.blocks.every(Fs)?t.blocks:null;if(Array.isArray(t.ui))return t.ui.every(Fs)?t.ui:null}return null}function J5(e,t){let r=String(e||"").trim().toLowerCase();if(TG.includes(r))return Xp(t);if(r==="json"){let n=Z5(t);return Fs(n)&&Array.isArray(n.ui)?Xp(n):null}return null}function Q5(e){if(typeof e!="string")return null;let t=e.trim(),r=t.startsWith("{")&&t.endsWith("}"),n=t.startsWith("[")&&t.endsWith("]");if(!r&&!n)return null;let o=Z5(t);if(o==null||typeof o!="object")return null;if(Array.isArray(o))return o.length>0&&o.every(s=>Fs(s)&&typeof s.type=="string")?{blocks:o}:{object:o};let a=Xp(o);return a?{blocks:a}:{object:o}}var awe=e=>Fs(e)?e.function?.name||e.name:void 0,iwe=e=>Fs(e)?e.function?.arguments??e.arguments??e.input:void 0;function ih(e,{callId:t}={}){if(!Fs(e))return null;if(e.tool_name===Yp&&e.tool_arguments!=null){let o=Xp(e.tool_arguments);if(o)return o}let r=e.tool_calls,n=[];if(Array.isArray(r)){let o=r.some(a=>Fs(a)&&a.id!=null);r.forEach(a=>{if(awe(a)!==Yp||t!=null&&o&&a.id!==t)return;let i=Xp(iwe(a));i&&n.push(...i)})}else if(Fs(r)&&e.tool_name===Yp){let o=Xp(r);o&&n.push(...o)}return n.length>0?n:null}function FC(e){return typeof e=="string"&&/^(https?:\/\/|data:image\/)/i.test(e.trim())}function UC(e){if(typeof e!="string")return!1;let t=e.trim();if(/^data:image\//i.test(t))return!0;if(!/^https?:\/\//i.test(t)||typeof window>"u"||!window.location)return!1;try{return new URL(t,window.location.href).origin===window.location.origin}catch{return!1}}function OG(e){try{return new URL(String(e).trim()).host}catch{return""}}var $G=["#2a78d6","#eb6834","#1baf7a","#eda100","#e87ba4","#008300","#4a3aa7","#e34948"],swe=["#3987e5","#d95926","#199e70","#c98500","#d55181","#008300","#9085e9","#e66767"],Xx=$G.length,PG=220,sh=e=>e!=null&&typeof e=="object"&&!Array.isArray(e),er=e=>e==null?"":typeof e=="object"?JSON.stringify(e):String(e),LG=e=>{if(typeof e!="number"||!Number.isFinite(e))return er(e);let t=Math.abs(e);return t>=1e9?`${(e/1e9).toFixed(1).replace(/\.0$/,"")}B`:t>=1e6?`${(e/1e6).toFixed(1).replace(/\.0$/,"")}M`:t>=1e4?`${(e/1e3).toFixed(1).replace(/\.0$/,"")}K`:e.toLocaleString()},rI=(e,t)=>typeof t=="string"&&Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0,MG={info:{light:["#eff6ff","#1d4ed8"],dark:["rgba(59,130,246,0.15)","#93c5fd"]},success:{light:["#f0fdf4","#15803d"],dark:["rgba(34,197,94,0.15)","#86efac"]},warning:{light:["#fffbeb","#b45309"],dark:["rgba(245,158,11,0.15)","#fcd34d"]},danger:{light:["#fef2f2","#b91c1c"],dark:["rgba(239,68,68,0.15)","#fca5a5"]}},lwe={positive:{light:"#15803d",dark:"#4ade80"},negative:{light:"#b91c1c",dark:"#f87171"}},R5=e=>({width:"100%",padding:"6px 10px",borderRadius:"8px",border:`1px solid ${e.inputBorder}`,background:e.inputBg,color:e.textPrimary,fontFamily:"inherit",fontSize:"13px"}),nI=e=>({background:e?"rgba(0,0,0,0.35)":"#f3f4f6",color:e?"#ffffff":"#111827",borderRadius:"6px",padding:"8px 10px",fontSize:"12px",overflowX:"auto",margin:0,whiteSpace:"pre-wrap"}),lh=e=>({fontSize:"13px",fontWeight:600,color:e.textPrimary,margin:0});function Iu({block:e,reason:t,colors:r,darkMode:n}){return we.default.createElement("div",{className:"text-xs",style:{color:r.textMuted}},we.default.createElement("div",{className:"mb-1"},"Unsupported block",e&&e.type?` \u201C${er(e.type)}\u201D`:"",t?` \u2014 ${t}`:""),we.default.createElement("pre",{style:{...nI(n),maxHeight:"160px",overflowY:"auto"}},JSON.stringify(e,null,2)))}function uwe({block:e,colors:t,darkMode:r,onAction:n}){let o=FC(e.image_url)&&UC(e.image_url)?e.image_url.trim():null;return we.default.createElement("div",{className:"overflow-hidden",style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",background:t.innerBg}},o&&we.default.createElement("img",{src:o,alt:er(e.title),style:{width:"100%",maxHeight:"220px",objectFit:"cover",display:"block"}}),we.default.createElement("div",{className:"p-3 space-y-1.5"},e.title!=null&&we.default.createElement("div",{style:lh(t)},er(e.title)),e.body!=null&&we.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},we.default.createElement(Us,{text:er(e.body),darkMode:r,onUiAction:n})),e.footer!=null&&we.default.createElement("div",{className:"text-xs pt-1",style:{color:t.textMuted,borderTop:`1px solid ${t.cardBorder}`}},er(e.footer))))}function zG({block:e,colors:t,darkMode:r}){let n=e.delta!=null?er(e.delta):null,o=e.tone||(n&&n.trim().startsWith("-")?"negative":n?"positive":"neutral"),a=rI(lwe,o),i=a?a[r?"dark":"light"]:t.textMuted,s=typeof e.value=="number"?LG(e.value):er(e.value);return we.default.createElement("div",{style:{background:t.innerBg,border:`1px solid ${t.cardBorder}`,borderRadius:"10px",padding:"10px 12px"}},we.default.createElement("div",{className:"text-xs",style:{color:t.textMuted}},er(e.label)),we.default.createElement("div",{className:"text-lg font-semibold leading-tight mt-0.5",style:{color:t.textPrimary}},s),n&&we.default.createElement("div",{className:"text-xs mt-0.5 font-medium",style:{color:i}},n))}function cwe({block:e,colors:t,darkMode:r}){let n=Array.isArray(e.items)?e.items.filter(sh):[];return n.length===0?we.default.createElement(Iu,{block:e,reason:"stats needs an items array",colors:t,darkMode:r}):we.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(140px, 1fr))",gap:"8px"}},n.map((o,a)=>we.default.createElement(zG,{key:a,block:o,colors:t,darkMode:r})))}var tI=(e,t)=>({padding:"6px 10px",borderBottom:`1px solid ${e.cardBorder}`,color:e.textCell,textAlign:t?"right":"left",fontVariantNumeric:t?"tabular-nums":void 0,verticalAlign:"top"}),dwe=e=>({padding:"6px 10px",borderBottom:`1px solid ${e.borderStrong}`,color:e.textSecondary,fontSize:"11px",fontWeight:600,textAlign:"left",fontFamily:Pt.mono,textTransform:"uppercase",letterSpacing:"0.04em",whiteSpace:"nowrap"});function BG({columns:e,rows:t,colors:r,renderCell:n}){return we.default.createElement("div",{style:{overflowX:"auto"}},we.default.createElement("table",{className:"text-sm",style:{width:"100%",borderCollapse:"collapse"}},we.default.createElement("thead",null,we.default.createElement("tr",null,e.map((o,a)=>we.default.createElement("th",{key:a,style:dwe(r)},er(o))))),we.default.createElement("tbody",null,t.map((o,a)=>we.default.createElement("tr",{key:a},e.map((i,s)=>{let l=o[s];return we.default.createElement("td",{key:s,style:tI(r,typeof l=="number")},n?n(l):typeof l=="number"?l.toLocaleString():er(l))}))))))}function pwe({block:e,colors:t,darkMode:r}){let n=Array.isArray(e.columns)?e.columns:null,o=Array.isArray(e.rows)?e.rows:null;if(!n||!o)return we.default.createElement(Iu,{block:e,reason:"table needs columns and rows arrays",colors:t,darkMode:r});let a=o.map(i=>Array.isArray(i)?i:sh(i)?n.map(s=>i[s]):[i]);return we.default.createElement("div",null,e.title!=null&&we.default.createElement("div",{className:"mb-1.5",style:lh(t)},er(e.title)),we.default.createElement(BG,{columns:n,rows:a,colors:t}))}var fwe=e=>{let t=e[0];return Object.keys(t).find(r=>typeof t[r]=="string")||Object.keys(t)[0]},mwe=(e,t)=>Object.keys(e[0]).filter(r=>r!==t&&typeof e[0][r]=="number");function gwe({block:e,colors:t,darkMode:r}){let n=String(e.chart||e.kind||"bar").toLowerCase(),o=Array.isArray(e.data)?e.data.filter(sh):[];if(o.length===0)return we.default.createElement(Iu,{block:e,reason:"chart needs a data array of objects",colors:t,darkMode:r});let a=typeof e.x=="string"?e.x:fwe(o),i=Array.isArray(e.series)?e.series.filter(b=>typeof b=="string"):[],s=(i.length>0?i:mwe(o,a)).slice(0,Xx);if(!a||s.length===0)return we.default.createElement(Iu,{block:e,reason:"chart needs an x key and at least one series",colors:t,darkMode:r});let l=r?swe:$G,u=t.cardBg,c={fontSize:10,fill:t.textMuted},d=we.default.createElement(Wc,{contentStyle:{background:u,border:`1px solid ${t.cardBorder}`,borderRadius:"8px",fontSize:"12px"},labelStyle:{color:t.textPrimary,fontWeight:600,marginBottom:"4px"},itemStyle:{color:t.textCell},formatter:b=>typeof b=="number"?b.toLocaleString():er(b)}),p=s.length>1||n==="pie"?we.default.createElement($S,{wrapperStyle:{fontSize:"11px",color:t.textSecondary},iconSize:10}):null,f=we.default.createElement(we.default.Fragment,null,we.default.createElement(Cu,{stroke:t.cardBorder,vertical:!1}),we.default.createElement(Tu,{dataKey:a,stroke:t.borderStrong,tick:c,tickLine:!1}),we.default.createElement(Pu,{stroke:t.borderStrong,tick:c,tickLine:!1,axisLine:!1,tickFormatter:LG,width:44})),m={top:8,right:12,bottom:0,left:0},y;if(n==="line")y=we.default.createElement(q5,{data:o,margin:m},f,d,p,s.map((b,g)=>we.default.createElement(gC,{key:b,type:"monotone",dataKey:b,stroke:l[g],strokeWidth:2,dot:{r:4,strokeWidth:2,stroke:u,fill:l[g]},activeDot:{r:5,strokeWidth:2,stroke:u},isAnimationActive:!1})));else if(n==="area")y=we.default.createElement(rd,{data:o,margin:m},f,d,p,s.map((b,g)=>we.default.createElement(Eu,{key:b,type:"monotone",dataKey:b,stroke:l[g],strokeWidth:2,fill:l[g],fillOpacity:.12,dot:{r:3,strokeWidth:2,stroke:u,fill:l[g]},isAnimationActive:!1})));else if(n==="pie"){let b=s[0],g=[...o].sort((x,S)=>(Number(S[b])||0)-(Number(x[b])||0)),h=g.slice(0,Xx),v=g.slice(Xx);v.length>0&&(h[Xx-1]={[a]:"Other",[b]:v.reduce((x,S)=>x+(Number(S[b])||0),Number(h[Xx-1][b])||0)}),y=we.default.createElement(Y5,{margin:m},d,p,we.default.createElement(tC,{data:h,dataKey:b,nameKey:a,innerRadius:44,outerRadius:80,paddingAngle:2,stroke:u,strokeWidth:2,isAnimationActive:!1},h.map((x,S)=>we.default.createElement(wu,{key:S,fill:l[S]}))))}else y=we.default.createElement(K5,{data:o,margin:m,barCategoryGap:"25%",barGap:2},f,d,p,s.map((b,g)=>we.default.createElement(wC,{key:b,dataKey:b,fill:l[g],radius:[4,4,0,0],maxBarSize:24,isAnimationActive:!1})));return we.default.createElement("div",null,e.title!=null&&we.default.createElement("div",{className:"mb-1",style:lh(t)},er(e.title)),we.default.createElement("div",{style:{width:"100%",height:PG,minWidth:0}},we.default.createElement(Cc,{width:"100%",height:PG},y)))}function hwe({block:e,colors:t,darkMode:r,onAction:n}){let o=Array.isArray(e.items)?e.items:null;if(!o)return we.default.createElement(Iu,{block:e,reason:"list needs an items array",colors:t,darkMode:r});let a=e.ordered?"ol":"ul";return we.default.createElement("div",null,e.title!=null&&we.default.createElement("div",{className:"mb-1",style:lh(t)},er(e.title)),we.default.createElement(a,{className:`${e.ordered?"list-decimal":"list-disc"} pl-5 text-sm space-y-0.5`,style:{color:t.textCell}},o.map((i,s)=>we.default.createElement("li",{key:s},typeof i=="string"?we.default.createElement(Us,{text:i,darkMode:r,onUiAction:n}):er(i)))))}function ywe({block:e,colors:t}){let r=Number(e.value),n=Number.isFinite(r)?Math.max(0,Math.min(100,r)):0;return we.default.createElement("div",null,we.default.createElement("div",{className:"flex items-center justify-between text-xs mb-1"},we.default.createElement("span",{style:{color:t.textCell}},er(e.label)),we.default.createElement("span",{className:"font-mono",style:{color:t.textMuted}},Math.round(n),"%")),we.default.createElement("div",{style:{height:"8px",borderRadius:"999px",background:t.trackBg,overflow:"hidden"}},we.default.createElement("div",{style:{width:`${n}%`,height:"100%",background:Qo,borderRadius:"999px",transition:"width 0.3s ease"}})))}var vwe=["text","textarea","number","select","checkbox"],eI=e=>er(e.name||e.label),IG=e=>er(e.label||e.name),DG=e=>vwe.includes(e.type)?e.type:"text";function xwe({block:e,colors:t,darkMode:r,onAction:n}){let o=(Array.isArray(e.fields)?e.fields:[]).filter(p=>sh(p)&&(p.name||p.label)),[a,i]=(0,we.useState)(()=>Object.fromEntries(o.map(p=>[eI(p),DG(p)==="checkbox"?!1:""]))),[s,l]=(0,we.useState)(!1);if(o.length===0)return we.default.createElement(Iu,{block:e,reason:"form needs fields",colors:t,darkMode:r});let u=e.submit!=null?er(e.submit):"Submit",c=(p,f)=>i(m=>({...m,[p]:f}));return we.default.createElement("form",{onSubmit:p=>{p.preventDefault();let f=o.map(m=>{let y=a[eI(m)];return`${IG(m)}: ${typeof y=="boolean"?y?"yes":"no":er(y)}`}).join("; ");l(!0),n&&n({kind:"form",text:`${e.submit!=null?er(e.submit):"Submitted"}: ${f}`,values:{...a}})},className:"space-y-2.5",style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",background:t.innerBg,padding:"12px"}},e.title!=null&&we.default.createElement("div",{style:lh(t)},er(e.title)),o.map(p=>{let f=eI(p),m=DG(p),y=IG(p),b=`genui-field-${f.replace(/\W+/g,"-")}`;return m==="checkbox"?we.default.createElement("label",{key:f,className:"flex items-center gap-2 text-sm",style:{color:t.textCell}},we.default.createElement("input",{type:"checkbox",checked:!!a[f],onChange:g=>c(f,g.target.checked),style:{accentColor:Qo}}),y):we.default.createElement("div",{key:f},we.default.createElement("label",{htmlFor:b,className:"block text-xs mb-1",style:{color:t.textSecondary}},y,p.required?" *":""),m==="textarea"?we.default.createElement("textarea",{id:b,name:f,value:a[f],onChange:g=>c(f,g.target.value),placeholder:p.placeholder!=null?er(p.placeholder):void 0,required:!!p.required,rows:3,className:"aa-field",style:{...R5(t),resize:"vertical"}}):m==="select"?we.default.createElement("select",{id:b,name:f,value:a[f],onChange:g=>c(f,g.target.value),required:!!p.required,className:"aa-field",style:R5(t)},we.default.createElement("option",{value:""},p.placeholder!=null?er(p.placeholder):"Select\u2026"),(Array.isArray(p.options)?p.options:[]).map((g,h)=>we.default.createElement("option",{key:h,value:er(g)},er(g)))):we.default.createElement("input",{id:b,name:f,type:m==="number"?"number":"text",value:a[f],onChange:g=>c(f,m==="number"&&g.target.value!==""?Number(g.target.value):g.target.value),placeholder:p.placeholder!=null?er(p.placeholder):void 0,required:!!p.required,className:"aa-field",style:R5(t)}))}),we.default.createElement("div",{className:"flex items-center gap-3 pt-1"},we.default.createElement("button",{type:"submit","data-testid":"genui-form-submit",style:{padding:"6px 14px",borderRadius:"8px",fontSize:"13px",fontWeight:500,background:Qo,color:"#ffffff",border:"1px solid transparent",cursor:"pointer"}},u),s&&we.default.createElement("span",{className:"text-xs",style:{color:t.textMuted}},"Sent to the agent")))}function bwe({block:e,colors:t,darkMode:r,onAction:n}){let o=Array.isArray(e.options)?e.options:null,[a,i]=(0,we.useState)(null);return!o||o.length===0?we.default.createElement(Iu,{block:e,reason:"choices needs options",colors:t,darkMode:r}):we.default.createElement("div",null,e.prompt!=null&&we.default.createElement("div",{className:"text-sm mb-1.5",style:{color:t.textCell}},er(e.prompt)),we.default.createElement("div",{className:"flex flex-wrap gap-2"},o.map((s,l)=>{let u=er(s),c=a===l;return we.default.createElement("button",{key:l,type:"button","data-testid":"genui-choice",onClick:()=>{i(l),n&&n({kind:"choice",text:u})},style:{padding:"5px 12px",borderRadius:"999px",fontSize:"13px",cursor:"pointer",border:`1px solid ${c?Qo:t.inputBorder}`,background:c?Qo:"transparent",color:c?"#ffffff":t.textCell}},u)})))}function wwe({url:e,alt:t,colors:r,darkMode:n}){let[o,a]=(0,we.useState)(!1);if(o)return we.default.createElement("img",{src:e,alt:t,style:{maxWidth:"100%",borderRadius:"8px",display:"block"}});let i=OG(e);return we.default.createElement("button",{type:"button",onClick:()=>a(!0),"data-testid":"genui-image-load",className:"text-xs w-full",style:{border:`1px dashed ${r.cardBorder}`,borderRadius:"8px",padding:"14px 12px",color:r.textMuted,background:n?"rgba(255,255,255,0.03)":"#f9fafb"}},"Load image from ",i||"another site")}function Swe({block:e,colors:t,darkMode:r}){if(!FC(e.url))return we.default.createElement(Iu,{block:e,reason:"image URL must be http(s) or data:",colors:t,darkMode:r});let n=e.url.trim(),o=e.alt!=null?er(e.alt):"";return we.default.createElement("figure",{style:{margin:0}},UC(n)?we.default.createElement("img",{src:n,alt:o,style:{maxWidth:"100%",borderRadius:"8px",display:"block"}}):we.default.createElement(wwe,{url:n,alt:o,colors:t,darkMode:r}),e.caption!=null&&we.default.createElement("figcaption",{className:"text-xs mt-1",style:{color:t.textMuted}},er(e.caption)))}function kwe({block:e,colors:t,darkMode:r,onAction:n}){let[o,a]=(rI(MG,e.tone)||MG.info)[r?"dark":"light"];return we.default.createElement("div",{style:{background:o,borderLeft:`3px solid ${a}`,borderRadius:"8px",padding:"10px 12px"}},e.title!=null&&we.default.createElement("div",{className:"text-sm font-semibold mb-0.5",style:{color:a}},er(e.title)),we.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},we.default.createElement(Us,{text:er(e.body),darkMode:r,onUiAction:n})))}function _we({block:e,colors:t,darkMode:r}){return we.default.createElement("div",null,e.language!=null&&we.default.createElement("div",{className:"text-xs font-mono mb-1",style:{color:t.textMuted}},er(e.language)),we.default.createElement("pre",{style:nI(r)},er(e.code)))}function jG({block:e,colors:t,darkMode:r,onAction:n}){let o=e.text??e.body??e.content??e.markdown;return we.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},we.default.createElement(Us,{text:er(o),darkMode:r,onUiAction:n}))}var Cwe=3;function WC({value:e,colors:t,darkMode:r,depth:n}){if(e==null||typeof e!="object")return typeof e=="boolean"?we.default.createElement("span",{className:"font-mono"},String(e)):typeof e=="number"?we.default.createElement("span",{style:{fontVariantNumeric:"tabular-nums"}},e.toLocaleString()):we.default.createElement("span",null,er(e));if(n>=Cwe)return we.default.createElement("pre",{style:{...nI(r),maxHeight:"160px",overflowY:"auto"}},JSON.stringify(e,null,2));if(Array.isArray(e)){if(e.length===0)return we.default.createElement("span",{style:{color:t.textMuted}},"\u2014");if(e.every(sh)){let a=[...new Set(e.flatMap(i=>Object.keys(i)))];return we.default.createElement(BG,{columns:a,rows:e.map(i=>a.map(s=>i[s])),colors:t,renderCell:i=>we.default.createElement(WC,{value:i,colors:t,darkMode:r,depth:n+1})})}return e.every(a=>a==null||typeof a!="object")?we.default.createElement("span",null,e.map(er).join(", ")):we.default.createElement("ul",{className:"list-disc pl-5 space-y-0.5"},e.map((a,i)=>we.default.createElement("li",{key:i},we.default.createElement(WC,{value:a,colors:t,darkMode:r,depth:n+1}))))}let o=Object.entries(e);return o.length===0?we.default.createElement("span",{style:{color:t.textMuted}},"{}"):we.default.createElement("table",{className:"text-sm",style:{borderCollapse:"collapse",width:n===0?"100%":"auto"}},we.default.createElement("tbody",null,o.map(([a,i])=>we.default.createElement("tr",{key:a},we.default.createElement("th",{scope:"row",className:"font-mono text-xs",style:{...tI(t,!1),color:t.textSecondary,fontWeight:500,whiteSpace:"nowrap",width:"1%"}},a),we.default.createElement("td",{style:tI(t,!1)},we.default.createElement(WC,{value:i,colors:t,darkMode:r,depth:n+1}))))))}function Awe({block:e,colors:t,darkMode:r}){let n="value"in e?e.value:e.data;return we.default.createElement("div",{style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",overflow:"hidden"}},e.title!=null&&we.default.createElement("div",{className:"px-3 pt-2",style:lh(t)},er(e.title)),we.default.createElement("div",{className:"px-1 pb-1",style:{overflowX:"auto"}},we.default.createElement(WC,{value:n,colors:t,darkMode:r,depth:0})))}var Ewe={card:uwe,stat:zG,stats:cwe,table:pwe,chart:gwe,list:hwe,progress:ywe,form:xwe,choices:bwe,image:Swe,callout:kwe,code:_we,object:Awe,text:jG,markdown:jG};function wl({blocks:e,onAction:t,darkMode:r=!1}){let n=Array.isArray(e)?e.filter(sh):[];if(n.length===0)return null;let o=Ki(r);return we.default.createElement("div",{className:"space-y-3",onClick:a=>a.stopPropagation()},n.map((a,i)=>{let s=typeof a.type=="string"?a.type.toLowerCase():"unknown",l=rI(Ewe,s);return we.default.createElement("div",{key:i,"data-testid":"genui-block","data-block-type":s},l?we.default.createElement(l,{block:a,colors:o,darkMode:r,onAction:t}):we.default.createElement(Iu,{block:a,colors:o,darkMode:r}))}))}var Nwe=/(\*\*[^*]+\*\*|\*[^*\n]+\*|`[^`]+`|\[[^\]]+\]\((?:https?:\/\/|\/)[^)\s]+\))/g,Zx=(e,t)=>e.split(Nwe).filter(Boolean).map((r,n)=>{let o=`${t}-${n}`;if(r.startsWith("**")&&r.endsWith("**"))return Zn.default.createElement("strong",{key:o},r.slice(2,-2));if(r.startsWith("*")&&r.endsWith("*")&&r.length>2)return Zn.default.createElement("em",{key:o},r.slice(1,-1));if(r.startsWith("`")&&r.endsWith("`"))return Zn.default.createElement("code",{key:o,className:"px-1 py-0.5 rounded text-[0.9em]",style:{background:"rgba(127,127,127,0.15)"}},r.slice(1,-1));let a=r.match(/^\[([^\]]+)\]\(((?:https?:\/\/|\/)[^)\s]+)\)$/);return a?Zn.default.createElement("a",{key:o,href:a[2],target:"_blank",rel:"noopener noreferrer",className:"underline text-blue-500"},a[1]):r}),FG=e=>/^\s*\|.*\|\s*$/.test(e),Twe=e=>/^\s*\|(\s*:?-+:?\s*\|)+\s*$/.test(e),UG=e=>e.trim().replace(/^\|/,"").replace(/\|$/,"").split(/(?t.replace(/\\\|/g,"|").trim());function Us({text:e,onUiAction:t,darkMode:r}){if(!e)return null;let n=[],o=String(e).split(` +`),a=0,i=0;for(;aZn.default.createElement("th",{key:f,className:"text-left font-semibold px-2 py-1",style:{borderBottom:"1px solid rgba(127,127,127,0.35)"}},Zx(p,`th${d}-${f}`))))),Zn.default.createElement("tbody",null,c.map((p,f)=>Zn.default.createElement("tr",{key:f},u.map((m,y)=>Zn.default.createElement("td",{key:y,className:"px-2 py-1 align-top",style:{borderBottom:"1px solid rgba(127,127,127,0.15)"}},Zx(p[y]??"",`td${d}-${f}-${y}`)))))))));continue}if(/^\s*([-*]|\d+\.)\s+/.test(s)){let u=[];for(;aZn.default.createElement("li",{key:d},Zx(c,`li${i}-${d}`)))));continue}if(s.trim()===""){n.push(Zn.default.createElement("div",{key:i++,className:"h-2"})),a+=1;continue}n.push(Zn.default.createElement("div",{key:i++},Zx(s,`p${i}`))),a+=1}return Zn.default.createElement("div",{className:"break-words"},n)}var Qa=Z(J()),Owe=e=>{let t=e.mcp_server||e.server;return t?`MCP server \xB7 ${t}`:typeof e.name=="string"&&e.name.startsWith("mcp__")?`MCP server \xB7 ${e.name.split("__")[1]}`:e.gem?`gem \xB7 ${e.gem}`:e.source?String(e.source):"agent-defined \xB7 method on the agent class"},Pwe=e=>Array.isArray(e.parameters)?e.parameters:e.parameters&&typeof e.parameters=="object"?Object.keys(e.parameters.properties||e.parameters):[];function oI({tool:e,darkMode:t}){let r=Pwe(e);return Qa.default.createElement("div",{style:{display:"grid",gap:"4px"}},e.description&&Qa.default.createElement("div",{className:"text-sm",style:{color:t?"rgba(255,255,255,0.75)":"#4b5563"}},e.description),Qa.default.createElement("div",{className:"text-xs font-mono",style:{color:t?"rgba(255,255,255,0.45)":"#9ca3af",display:"flex",flexWrap:"wrap",columnGap:"16px",rowGap:"4px"}},Qa.default.createElement("span",null,"params: ",r.length>0?r.join(", "):"none"),Qa.default.createElement("span",null,"source: ",Owe(e))))}function aI({tools:e,darkMode:t}){let[r,n]=(0,Qa.useState)(null),o=(e||[]).filter(s=>s&&s.name);if(o.length===0)return null;let a=o.find(s=>s.name===r),i=s=>({background:t?"rgba(34,197,94,0.12)":"#f0fdf4",color:t?"#86efac":"#15803d",border:`1px solid ${s?t?"#4ade80":"#22c55e":"transparent"}`,borderRadius:"6px",padding:"2px 8px",fontSize:"11px",cursor:"pointer"});return Qa.default.createElement("div",{style:{marginTop:"8px"}},Qa.default.createElement("div",{className:"flex items-center gap-1.5 flex-wrap font-mono"},Qa.default.createElement("span",{className:"text-xs uppercase",style:{letterSpacing:"0.05em",color:t?"rgba(255,255,255,0.45)":"#9ca3af"}},"tools"),o.map(s=>Qa.default.createElement("button",{key:s.name,onClick:l=>{l.stopPropagation(),n(r===s.name?null:s.name)},title:r===s.name?"Hide definition":"Show definition",style:i(r===s.name)},"\u2699 ",s.name))),a&&Qa.default.createElement("div",{onClick:s=>s.stopPropagation(),style:{marginTop:"6px",padding:"8px 10px",borderRadius:"8px",background:t?"rgba(34,197,94,0.06)":"#f7fef9",border:`1px solid ${t?"rgba(34,197,94,0.25)":"#bbf7d0"}`}},Qa.default.createElement(oI,{tool:a,darkMode:t})))}var Mwe=["application/json","application/xml","application/x-yaml","application/csv"],Iwe=/\.(csv|md|txt|json|ya?ml)$/i;function WG(e){let t=String(e?.type||e?.content_type||"").toLowerCase(),r=String(e?.name||e?.filename||"");return t.startsWith("image/")?"image":t==="application/pdf"?"document":t.startsWith("text/")||Mwe.includes(t)||Iwe.test(r)?"text":"file"}function HG(e){let t=Number(e);return!Number.isFinite(t)||t<0?"":t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function qG(e){if(typeof e!="string")return!1;let t=e.trim();if(/^(data:image\/|blob:)/i.test(t))return!0;if(/^\/[\\/]/.test(t))return!1;if(t.startsWith("/"))return!0;if(!/^https?:\/\//i.test(t)||typeof window>"u"||!window.location)return!1;try{return new URL(t,window.location.href).origin===window.location.origin}catch{return!1}}var KG=e=>e==null?null:e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,Jx=e=>{if(e==null)return null;if(typeof e=="object")return JSON.stringify(e,null,2);try{return JSON.stringify(JSON.parse(e),null,2)}catch{return null}},Dwe=["text","output","body","content"],VG=e=>{if(e==null)return null;if(typeof e=="object")return e;try{return JSON.parse(e)}catch{return null}},jwe=e=>{let t=VG(e.tool_result)??VG(e.content);if(!t||typeof t!="object"||Array.isArray(t))return null;let r=Dwe.find(a=>typeof t[a]=="string"&&t[a].trim().length>0);if(!r)return null;let n=[t.error&&"error",t.status!=null&&`status ${t.status}`,typeof t.url=="string"&&t.url.replace(/^https?:\/\//,""),typeof t.agent=="string"&&`\u2192 ${t.agent}`,t.truncated&&"truncated"].filter(Boolean).join(" \xB7 "),o=Object.fromEntries(Object.entries(t).filter(([a])=>a!==r));return{field:r,meta:n,body:t[r],rest:o}},$we=e=>!!(e.tool_name||e.tool_call_id||e.tool_arguments||e.tool_result||(e.tool_calls||[]).length>0||e.duration_ms!=null||Jx(e.content)),XG=280,Lwe=["tool","system","developer"],Qx=(e,t=XG)=>e.replace(/\s+/g," ").trim().slice(0,t),iI=e=>{if(e==null)return null;if(typeof e=="object")return JSON.stringify(e);try{return JSON.stringify(JSON.parse(e))}catch{return String(e)}},ZG=e=>{let t=e.tool_calls;return t?Array.isArray(t)?t.map(r=>({name:r.function?.name||r.name||e.tool_name,args:iI(r.function?.arguments??r.arguments??r.input)})):[{name:e.tool_name,args:iI(t)}]:[]},JG=e=>!!(e&&String(e).trim()&&String(e).trim()!=="\u2014"),zwe=e=>{let t=(e||[]).filter(Boolean),r=new Map,n=new Set;return t.forEach((o,a)=>{if(o.role!=="assistant"||JG(o.content))return;let i=ZG(o);if(i.length===0)return;let s=new Set;Array.isArray(o.tool_calls)?o.tool_calls.forEach(u=>u.id&&s.add(u.id)):o.tool_call_id&&s.add(o.tool_call_id);let l=[];for(let u=a+1;u0&&c.tool_call_id&&!s.has(c.tool_call_id))break;l.push(u)}l.length!==0&&(l.forEach((u,c)=>{let d=t[u],p=i.find(f=>f.name&&f.name===d.tool_name)||i[Math.min(c,i.length-1)];p&&p.args&&!d.tool_arguments&&r.set(u,{tool_arguments:p.args,created_at:o.created_at||d.created_at})}),n.add(a))}),t.map((o,a)=>r.has(a)?{...o,...r.get(a)}:o).filter((o,a)=>!n.has(a))},GG=e=>Lwe.includes(e.role)&&typeof e.content=="string"&&Qx(e.content).length>=XG,Bwe=({message:e,darkMode:t})=>{let r=e.trace_duration_ms||0;if(!r||e.span_duration_ms==null)return null;let n=Math.min((e.span_start_ms||0)/r*100,98),o=Math.max(e.span_duration_ms/r*100,2),a=e.role==="tool"?"#22c55e":e.role==="assistant"?"#ef4444":"#60a5fa";return Le.default.createElement("span",{title:`${Math.round(e.span_duration_ms)}ms \xB7 starts at ${Math.round(e.span_start_ms||0)}ms of ${Math.round(r)}ms`,style:{position:"relative",width:"96px",height:"5px",borderRadius:"999px",background:t?"rgba(255,255,255,0.08)":"#f3f4f6",flexShrink:0,marginTop:"8px",display:"inline-block"}},Le.default.createElement("span",{style:{position:"absolute",top:0,bottom:0,left:`${n}%`,width:`${Math.min(o,100-n)}%`,borderRadius:"999px",background:a}}))},HC=e=>({background:e?"rgba(0,0,0,0.35)":"#f3f4f6",color:e?"#ffffff":"#111827",borderRadius:"6px",padding:"8px 10px",fontSize:"12px",overflowX:"auto",margin:0}),Ln=(e,t)=>{let{tone:r,label:n}=k6(e),o=Dn[r]||Dn.muted;return{background:o.soft,color:o.text,label:n,tone:r}},YG={image:"IMG",document:"PDF",text:"TXT",file:"FILE"};function qC({attachments:e,darkMode:t,testId:r,onRemove:n,removeTestId:o}){let a=(e||[]).filter(Boolean);if(a.length===0)return null;let i=Ki(t);return Le.default.createElement("div",{className:"flex flex-wrap gap-2 mt-1.5"},a.map((s,l)=>{let u=String(s.content_type||""),c=(s.kind==="image"||u.startsWith("image/"))&&qG(s.url),d=HG(s.byte_size);return Le.default.createElement("span",{key:s.id??`${s.filename}-${l}`,"data-testid":r,title:[s.filename,u,d].filter(Boolean).join(" \xB7 "),className:"inline-flex items-center gap-2 rounded-lg px-2 py-1 text-xs",style:{background:i.mutedBg,border:`1px solid ${i.cardBorder}`,color:i.textCell,maxWidth:"260px"}},c?Le.default.createElement("img",{src:s.url,alt:s.filename||"",style:{width:"36px",height:"36px",objectFit:"cover",borderRadius:"4px",flexShrink:0}}):Le.default.createElement("span",{className:"font-mono",style:{color:i.textMuted,flexShrink:0}},YG[s.kind]||YG.file),Le.default.createElement("span",{className:"min-w-0"},Le.default.createElement("span",{className:"block truncate"},s.filename||"attachment"),d&&Le.default.createElement("span",{className:"block font-mono",style:{color:i.textMuted}},d)),n&&Le.default.createElement("button",{type:"button","data-testid":o,onClick:p=>{p.stopPropagation(),n(s,l)},title:"Remove","aria-label":`Remove ${s.filename||"attachment"}`,className:"font-mono",style:{color:i.textMuted,background:"none",border:"none",cursor:"pointer",padding:"0 2px"}},"\u2715"))}))}var QG=e=>{let t=new Set;return Array.isArray(e.tool_calls)?e.tool_calls.forEach(r=>r&&r.id!=null&&t.add(r.id)):e.tool_call_id&&t.add(e.tool_call_id),t},Fwe=(e,t)=>{let r=ih(e);if(r)return r;let n=t.find(o=>o&&o.role==="assistant"&&(e.tool_call_id?QG(o).has(e.tool_call_id):ih(o)));return n?ih(n,{callId:e.tool_call_id}):null},Uwe=(e,t)=>{let r=QG(e);return t.some(n=>n&&n.role==="tool"&&n.tool_name===Yp&&(!n.tool_call_id||r.size===0||r.has(n.tool_call_id)))};function ps({messages:e,darkMode:t,tools:r,onUiAction:n,onEditMessage:o,onDeleteMessage:a,testIdPrefix:i}){let[s,l]=(0,Le.useState)({}),[u,c]=(0,Le.useState)(null),[d,p]=(0,Le.useState)(""),[f,m]=(0,Le.useState)(!1),[y,b]=(0,Le.useState)(null),g=A=>l(C=>({...C,[A]:!C[A]})),h={textPrimary:t?"#ffffff":"#111827",textSecondary:t?"rgba(255,255,255,0.6)":"#6b7280",textMuted:t?"rgba(255,255,255,0.4)":"#9ca3af"},v=A=>i?`${i}-${A}`:void 0,x=A=>A.stopPropagation(),S=A=>{c(A.id),p(A.content||""),b(null)},k=()=>{c(null),b(null)},w=async A=>{if(!f){m(!0),b(null);try{await o(A,d),c(null)}catch(C){b(C.message||"Could not save the message")}finally{m(!1)}}},_=zwe(e);return Le.default.createElement("div",{className:"space-y-3"},_.map(A=>{let C=Ln(A.role,t),N=!!s[A.id],L=u===A.id,Q=!!((o||a)&&["user","assistant"].includes(A.role)),B=A.role==="tool"&&A.tool_name===Yp?Fwe(A,_):null,K=A.role==="assistant"&&!L?Q5(A.content):null,T=A.role==="assistant"&&!Uwe(A,_)?ih(A):null,O=GG(A)&&!N,I=$we(A)||GG(A),P=Jx(A.tool_arguments),j=Jx(A.tool_result)||Jx(A.content),M=A.tool_calls&&(!Array.isArray(A.tool_calls)||A.tool_calls.length>0)?Jx(A.tool_calls):null,W=A.role==="tool"?jwe(A):null,Y=A.tool_name?(r||[]).find(R=>R&&R.name===A.tool_name):null,z=A.role==="tool"?iI(A.tool_arguments):null,V=A.role==="tool"&&!!z,q=Ln("assistant",t),oe=Ln("tool",t),Me=A.role==="tool"&&!A.tool_arguments&&_.some(R=>R&&R.role==="assistant"&&(A.tool_call_id&&R.tool_call_id===A.tool_call_id||Array.isArray(R.tool_calls)&&R.tool_calls.some(te=>te.id&&te.id===A.tool_call_id))),fe=A.role==="assistant"&&!JG(A.content)?ZG(A):[],le=HC(t);return Le.default.createElement("div",{key:A.id,className:"group","data-testid":i,"data-message-id":i?A.id:void 0,"data-role":i?A.role:void 0},Le.default.createElement("div",{className:`flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 ${I?"cursor-pointer":""}`,onClick:I?()=>g(A.id):void 0,style:N?{background:t?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.03)"}:{}},Le.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},(V?[q,oe]:[C]).map(R=>Le.default.createElement(ke,{key:R.label,tone:R.tone,style:{justifyContent:"center"}},R.label))),Le.default.createElement("div",{className:"min-w-0 flex-1"},Le.default.createElement("div",{className:"text-sm break-words",style:{color:h.textPrimary}},L?Le.default.createElement("div",{className:"space-y-2",onClick:x},Le.default.createElement("textarea",{"data-testid":v("editor"),value:d,onChange:R=>p(R.target.value),onKeyDown:R=>{R.key==="Escape"&&k(),R.key==="Enter"&&(R.metaKey||R.ctrlKey)&&w(A)},rows:Math.min(12,Math.max(3,d.split(` +`).length)),autoFocus:!0,className:"aa-field w-full",style:{padding:"8px 10px",borderRadius:"8px",border:`1px solid ${t?"rgba(255,255,255,0.2)":"#d1d5db"}`,background:t?"rgba(255,255,255,0.06)":"#ffffff",color:h.textPrimary,fontFamily:"inherit",fontSize:"13px",resize:"vertical"}}),Le.default.createElement("div",{className:"flex items-center gap-2 text-xs"},Le.default.createElement("button",{type:"button","data-testid":v("save"),onClick:()=>w(A),disabled:f,style:{padding:"4px 10px",borderRadius:"6px",background:"#ef4444",color:"#ffffff",border:"none",cursor:f?"wait":"pointer",fontWeight:500}},f?"Saving\u2026":"Save"),Le.default.createElement("button",{type:"button","data-testid":v("cancel"),onClick:k,disabled:f,style:{padding:"4px 10px",borderRadius:"6px",background:"transparent",color:h.textSecondary,border:`1px solid ${t?"rgba(255,255,255,0.2)":"#d1d5db"}`,cursor:"pointer"}},"Cancel"),y&&Le.default.createElement("span",{style:{color:"#dc2626"}},y))):B?Le.default.createElement("div",null,Le.default.createElement("div",{className:"font-mono text-xs mb-1",style:{color:oe.color}},"\u2699 ",A.tool_name," \xB7 ",B.length," block",B.length===1?"":"s"),Le.default.createElement(wl,{blocks:B,onAction:n,darkMode:t})):A.role==="tool"?Le.default.createElement("span",{style:{display:"grid",gap:"2px"}},z&&!Me&&Le.default.createElement("span",{className:"font-mono text-xs break-words"},A.tool_name&&Le.default.createElement("span",{style:{color:oe.color}},"\u2699 ",A.tool_name," "),Le.default.createElement("span",{style:{color:V?q.color:h.textMuted}},"in:")," ",Qx(z,180),z.length>180?"\u2026":""),W?Le.default.createElement("span",null,A.tool_name&&!(z&&!Me)&&Le.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:oe.color}},"\u2699 ",A.tool_name),(z||Me)&&Le.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:V?oe.color:h.textMuted}},"out:"),W.meta&&Le.default.createElement("span",{className:"font-mono text-xs mr-2",style:{color:h.textMuted}},W.meta),"\u201C",W.body.replace(/\s+/g," ").trim().slice(0,180),W.body.length>180?"\u2026":"","\u201D"):A.content?Le.default.createElement("span",null,A.tool_name&&!(z&&!Me)&&Le.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:oe.color}},"\u2699 ",A.tool_name),(z||Me)&&Le.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:V?oe.color:h.textMuted}},"out:"),"\u201C",Qx(A.content,180),A.content.replace(/\s+/g," ").trim().length>180?"\u2026":"","\u201D"):Le.default.createElement("span",{className:"whitespace-pre-wrap"},A.tool_name?`\u2192 ${A.tool_name}(...)`:"\u2014")):O?Le.default.createElement("span",{style:{color:h.textSecondary}},Qx(A.content),"\u2026"):fe.length>0?Le.default.createElement("span",{style:{display:"grid",gap:"2px"}},fe.map((R,te)=>Le.default.createElement("span",{key:te,className:"font-mono text-xs break-words"},R.name&&Le.default.createElement("span",{style:{color:h.textMuted}},R.name," "),Le.default.createElement("span",{style:{color:h.textMuted}},"in:")," ",R.args?Le.default.createElement(Le.default.Fragment,null,Qx(R.args,180),R.args.length>180?"\u2026":""):"\u2014"))):K&&K.blocks?Le.default.createElement(wl,{blocks:K.blocks,onAction:n,darkMode:t}):K&&K.object?Le.default.createElement(wl,{blocks:[{type:"object",value:K.object}],darkMode:t}):Le.default.createElement(Us,{text:A.content||"\u2014",darkMode:t,onUiAction:n}),T&&!L&&Le.default.createElement("div",{className:"mt-2"},Le.default.createElement(wl,{blocks:T,onAction:n,darkMode:t})),A.role==="user"&&Le.default.createElement(qC,{attachments:A.attachments,darkMode:t,testId:v("attachment")})),Le.default.createElement("div",{className:"text-xs mt-0.5 font-mono flex items-center gap-2 flex-wrap",style:{color:h.textMuted}},Q&&!L&&Le.default.createElement("span",{className:"flex items-center gap-2 opacity-0 group-hover:opacity-100 focus-within:opacity-100 transition-opacity",onClick:x},o&&Le.default.createElement("button",{type:"button","data-testid":v("edit"),onClick:()=>S(A),className:"hover:underline",style:{color:h.textSecondary,background:"none",border:"none",padding:0,cursor:"pointer",font:"inherit"}},"Edit"),a&&Le.default.createElement("button",{type:"button","data-testid":v("delete"),onClick:()=>a(A),className:"hover:underline",style:{color:"#dc2626",background:"none",border:"none",padding:0,cursor:"pointer",font:"inherit"}},"Delete")),A.created_at&&Le.default.createElement("span",null,new Date(A.created_at).toLocaleTimeString()),A.tool_name&&A.role!=="tool"&&Le.default.createElement("span",{className:"px-1.5 py-0.5 rounded",style:{background:C.background,color:C.color}},"\u2699 ",A.tool_name),A.duration_ms!=null&&Le.default.createElement("span",null,KG(A.duration_ms)),(A.tool_calls||[]).length>0&&Le.default.createElement("span",null,A.tool_calls.length," tool call",A.tool_calls.length>1?"s":""),A.content_checksum&&Le.default.createElement("span",{title:"Content fingerprint"},"\u{1F512} ",A.content_checksum.slice(0,8)))),Le.default.createElement(Bwe,{message:A,darkMode:t}),I&&Le.default.createElement("svg",{className:`w-3.5 h-3.5 mt-1 flex-shrink-0 transition-transform ${N?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:h.textMuted}},Le.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),N&&Le.default.createElement("div",{className:"ml-3 mt-1 mb-2 pl-4 space-y-2 border-l-2",style:{borderColor:C.color+"55"}},Le.default.createElement("div",{className:"flex flex-wrap gap-x-5 gap-y-1 text-xs font-mono",style:{color:h.textSecondary}},A.created_at&&Le.default.createElement("span",null,new Date(A.created_at).toLocaleString()),A.tool_call_id&&Le.default.createElement("span",null,"call: ",A.tool_call_id),A.duration_ms!=null&&Le.default.createElement("span",null,"took ",KG(A.duration_ms)),A.content_checksum&&Le.default.createElement("span",null,"\u{1F512} ",A.content_checksum)),P&&Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:V?q.color:h.textMuted}},"Arguments",V?" \xB7 from the agent":""),Le.default.createElement("pre",{style:le},P)),W?Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:V?oe.color:h.textMuted}},"Result",V?" \xB7 from the tool":""),Object.keys(W.rest).length>0&&Le.default.createElement("pre",{style:le},JSON.stringify(W.rest,null,2)),Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mt-2 mb-1",style:{color:h.textMuted}},W.field," \xB7 ",W.body.length.toLocaleString()," chars"),Le.default.createElement("pre",{style:{...le,whiteSpace:"pre-wrap",maxHeight:"320px",overflowY:"auto"}},W.body.slice(0,8e3),W.body.length>8e3?` +\u2026`:"")):j?Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:h.textMuted}},A.role==="tool"?"Result":"Content (parsed)"),Le.default.createElement("pre",{style:le},j)):A.role==="tool"&&A.content?Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:V?oe.color:h.textMuted}},"Result",V?" \xB7 from the tool":""," \xB7 ",A.content.length.toLocaleString()," chars"),Le.default.createElement("pre",{style:{...le,whiteSpace:"pre-wrap",maxHeight:"320px",overflowY:"auto"}},A.content.slice(0,8e3),A.content.length>8e3?` +\u2026`:"")):null,M&&Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:h.textMuted}},"Requested tool calls"),Le.default.createElement("pre",{style:le},M)),Y&&Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:h.textMuted}},"Tool definition"),Le.default.createElement(oI,{tool:Y,darkMode:t}))))}))}var or=Z(J());var ln=Z(J());var Jn=e=>({cardBg:e?"#1f1f1f":"#ffffff",cardBorder:e?"#2a2a2a":"#e5e7eb",innerBg:e?"rgba(255,255,255,0.04)":"#f9fafb",panelBg:e?"rgba(0,0,0,0.35)":"#f9fafb",preBg:e?"rgba(255,255,255,0.06)":"#eef0f3",trackBg:e?"rgba(255,255,255,0.08)":"#f3f4f6",hoverBg:e?"rgba(255,255,255,0.04)":"#f9fafb",controlBg:e?"rgba(255,255,255,0.06)":"#f3f4f6",controlActiveBg:e?"#2a2a2a":"#ffffff",textPrimary:e?"#ffffff":"#111827",textSecondary:e?"rgba(255,255,255,0.6)":"#6b7280",textMuted:e?"rgba(255,255,255,0.4)":"#9ca3af",textBody:e?"rgba(255,255,255,0.75)":"#4b5563",link:"#3b82f6",good:e?"#4ade80":"#16a34a",bad:"#ef4444"}),RG=(e,t=200)=>{let r=String(e??"").replace(/\s+/g," ").trim();return r.length>t?`${r.slice(0,t)}\u2026`:r};function Zp({open:e,darkMode:t,size:r=14,style:n}){return ln.default.createElement("svg",{className:`flex-shrink-0 transition-transform ${e?"rotate-180":""}`,width:r,height:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:Jn(t).textMuted,...n},"aria-hidden":"true"},ln.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))}function KC({darkMode:e,id:t,children:r,style:n,className:o=""}){let a=Jn(e);return ln.default.createElement("div",{id:t,className:`rounded-xl border overflow-hidden transition-colors ${o}`,style:{backgroundColor:a.cardBg,borderColor:a.cardBorder,...n}},r)}var Na={context:132,duration:76,tokens:104,cost:88,status:68,count:96,age:76};function ad({cells:e,darkMode:t,gap:r=16,className:n="",style:o}){let a=Jn(t),i=(e||[]).filter(Boolean);return i.length===0?null:ln.default.createElement("div",{className:`flex-shrink-0 text-sm ${n}`,style:{display:"grid",gridTemplateColumns:i.map(s=>s.width?`${s.width}px`:"minmax(0, auto)").join(" "),alignItems:"center",columnGap:`${r}px`,color:a.textSecondary,...o}},i.map(s=>{let l=s.content!=null&&s.content!==!1&&s.content!=="";return ln.default.createElement("div",{key:s.key,title:(l?s.title:s.empty)||void 0,className:"min-w-0 truncate",style:{textAlign:s.align||"right"}},l?s.content:ln.default.createElement("span",{style:{color:a.textMuted}},"\u2014"))}))}var eY=(e,{wrap:t=!0,maxHeight:r=320}={})=>({background:Jn(e).preBg,borderRadius:"6px",padding:"6px 8px",margin:"2px 0 4px 0",overflowX:"auto",overflowY:"auto",maxHeight:`${r}px`,whiteSpace:t?"pre-wrap":"pre"}),Wwe=e=>{if(e==null)return{text:"",json:!1};if(typeof e=="object")return{text:JSON.stringify(e,null,2),json:!0};let t=String(e);if(!/^[[{]/.test(t.trim()))return{text:t,json:!1};try{return{text:JSON.stringify(JSON.parse(t),null,2),json:!0}}catch{return{text:t,json:!1}}};function uh({lines:e,darkMode:t,onClick:r,indent:n=0,size:o="12px",style:a,max:i=200,hold:s=!1}){let[l,u]=ch(),c=Jn(t),d=(e||[]).filter(p=>p&&(p.text||s));return d.some(p=>p.text)?ln.default.createElement("div",{onClick:r,className:"min-w-0",style:{display:"grid",gap:"2px",paddingLeft:n?`${n}px`:0,fontFamily:Pt.mono,fontSize:o,color:c.textSecondary,cursor:r?"pointer":"default",...a}},d.map((p,f)=>{let m=`${p.label}-${f}`,y=l(m),b=p.max||i,g=!p.text,h=String(p.text??"").replace(/\s+/g," ").trim(),v=Wwe(p.text),x=!g&&(v.json||h.length>60||h!==String(p.text).trim());return ln.default.createElement("div",{key:m},ln.default.createElement("div",{onClick:x?S=>{S.stopPropagation(),u(m)}:void 0,title:x?y?"Collapse":"Expand":void 0,style:{cursor:x?"pointer":"default",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0}},ln.default.createElement("span",{style:{color:p.color||c.textMuted}},x?y?"\u25BE":"\u25B8":"\xA0"," ",p.label,":")," ",!y&&(g?ln.default.createElement("span",{style:{color:c.textMuted}},"\u2014"):RG(h,b))),y&&ln.default.createElement("pre",{onClick:S=>S.stopPropagation(),style:eY(t,{wrap:!v.json})},v.text))})):null}function Rx({options:e,value:t,onChange:r,darkMode:n,label:o,style:a}){let i=Jn(n);return ln.default.createElement("div",{className:"flex items-center gap-1 flex-shrink-0",style:a},o&&ln.default.createElement("span",{className:"text-xs mr-1",style:{color:i.textMuted}},o),e.map(s=>ln.default.createElement("button",{key:s.id,type:"button",onClick:l=>{l.stopPropagation(),r(s.id)},title:s.hint,className:"px-2 py-0.5 text-xs rounded transition-colors",style:t===s.id?{background:i.controlActiveBg,color:i.textPrimary,boxShadow:n?"none":"0 1px 2px rgba(0,0,0,0.08)"}:{color:i.textSecondary}},s.label)))}function tY({label:e,body:t,open:r,onToggle:n,darkMode:o,prose:a=!1,max:i=140}){let s=Jn(o);return ln.default.createElement("div",null,ln.default.createElement("div",{onClick:l=>{l.stopPropagation(),n()},title:r?"Collapse":"Expand",style:{cursor:"pointer",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},ln.default.createElement("span",{style:{color:s.textMuted}},r?"\u25BE":"\u25B8"," ",e,":")," ",!r&&ln.default.createElement("span",{style:{color:s.textMuted}},RG(t,i))),r&&ln.default.createElement("pre",{onClick:l=>l.stopPropagation(),style:eY(o,{wrap:a})},t))}function ch(e={}){let[t,r]=(0,ln.useState)(e),n=(0,ln.useCallback)(a=>{r(i=>({...i,[a]:!i[a]}))},[]);return[(0,ln.useCallback)(a=>!!t[a],[t]),n,r]}var sI={root:"#9ca3af",prompt:"#60a5fa",generate:"#a855f7",llm:"#ef4444",thinking:"#fbbf24",tool:"#22c55e",response:"#2dd4bf",embedding:"#818cf8"},nY=[{id:"time",label:"Time",hint:"Chronological \u2014 reads as a waterfall"},{id:"duration",label:"Slowest",hint:"Longest-running first"},{id:"name",label:"Name",hint:"Group repeated tool calls together"}],Qn=e=>e==null?"\u2014":e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,lI=e=>{switch(e){case"root":return Fo.spans.root;case"prompt":return Fo.spans.prompt;case"generate":return Fo.spans.generate;case"llm":return Fo.spans.llm;case"thinking":return Fo.spans.thinking;case"tool":return Fo.spans.tool;case"response":return Fo.spans.response;default:return"-"}},Hwe=(e,t)=>{let r=Math.max(e||0,1),n=Math.max(t||1,1);if(n<=1)return 100;let o=Math.log(r)/Math.log(n);return Math.min(100,Math.max(4,o*100))},qwe=(e,t)=>{let r=[...e||[]];switch(t){case"duration":return r.sort((n,o)=>(o.duration||0)-(n.duration||0));case"name":return r.sort((n,o)=>(n.name||"").localeCompare(o.name||""));default:return r.sort((n,o)=>(n.start||0)-(o.start||0))}},Kwe=e=>{let t=e.tokens||{};return(t.input||0)+(t.output||0)+(t.thinking||0)},Vwe=(e,t)=>{if(!t.duration_ms)return Qn(e.duration);let r=(e.duration||0)/t.duration_ms*100;return`${Qn(e.duration)} \xB7 ${r<1?r.toFixed(2):r.toFixed(1)}%`},Gwe=e=>{if(typeof e!="string")return null;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return null}},rY=e=>e.endsWith(".instructions")?0:e.endsWith(".tools")?1:e.endsWith(".messages")?3:2,uI=e=>{let t=e.spans||[],r=a=>{for(let i of t){let s=(i.attributes||{})[a];if(s)return s}return null},n=r("llm.prompt");if(!n){let a=r("prompt.input.messages");if(a)try{n=[...JSON.parse(a)].reverse().find(l=>l&&l.role==="user"&&l.content)?.content}catch{}}let o=r("llm.completion")||r("llm.output.message");return{input:n,output:o}},Ywe=e=>{let t=e.attributes||{},r=null,n="input",o="user";if(t["prompt.input.messages"])try{let u=[...JSON.parse(t["prompt.input.messages"])].reverse().find(c=>c&&c.role==="user"&&c.content);typeof u?.content=="string"&&(r=u.content)}catch{}if(!r&&t["llm.prompt"]&&(r=String(t["llm.prompt"])),!r&&(t["tool.input.args"]||t["tool.arguments"])){let l=t["tool.input.args"]||t["tool.arguments"];r=typeof l=="string"?l:JSON.stringify(l),n="in",o="assistant"}let a=null,i="output",s="assistant";return t["llm.output.message"]||t["llm.completion"]?a=t["llm.output.message"]||t["llm.completion"]:(t["tool.output.result"]||t["tool.result"])&&(a=t["tool.output.result"]||t["tool.result"],i="out",s="tool"),a!=null&&typeof a!="string"&&(a=JSON.stringify(a)),{input:r,output:a,inputLabel:n,inputTone:o,outputLabel:i,outputTone:s}},Xwe=(e,t)=>{let r=Ywe(e),n=uI(t);return r.input&&r.input===n.input&&(r.input=null),r.output&&r.output===n.output&&(r.output=null),r},Zwe=e=>{let t={...e.attributes||{}},r=p=>{let f=t[p];return delete t[p],f},n=[],o=p=>n.push({id:`${e.span_id}-m${n.length}`,...p}),a=r("prompt.input.instructions")||r("llm.instructions");a&&o({role:"system",content:String(a)});let i=r("prompt.input.messages");if(i)try{JSON.parse(i).forEach(p=>{p&&o({role:p.role||"user",content:typeof p.content=="string"?p.content:JSON.stringify(p.content),tool_call_id:p.tool_call_id,tool_calls:p.tool_calls})})}catch{t["prompt.input.messages"]=i}let s=r("llm.prompt");s&&o({role:"user",content:String(s)});let l=r("tool.input.args")||r("tool.arguments"),u=r("tool.output.result")||r("tool.result");if(l||u){let p=r("tool.name");o({role:"tool",tool_name:p||(e.name||"").replace(/^tool\./,""),tool_arguments:l,content:u?String(u):null})}let c=r("llm.completion"),d=r("llm.output.message");return(c||d)&&o({role:"assistant",content:String(c||d)}),{messages:n,rest:t}},cI=e=>{for(let t of e?.spans||[]){let r=(t.attributes||{})["prompt.input.tools"];if(r)try{let n=typeof r=="string"?JSON.parse(r):r;if(Array.isArray(n)&&n.length>0)return n}catch{}}return[]};function Jwe({span:e,darkMode:t,tools:r=[]}){let[n,o]=ch(),a=Jn(t),{messages:i,rest:s}=Zwe(e),l=null,u=s["prompt.input.tools"];if(u)try{let f=typeof u=="string"?JSON.parse(u):u;Array.isArray(f)&&f.length>0&&(l=f,delete s["prompt.input.tools"])}catch{}let c=Object.entries(s).sort((f,m)=>rY(f[0])-rY(m[0])),d=i.length===1&&i[0].role==="tool"?i[0]:null,p=d?.tool_arguments==null?null:typeof d.tool_arguments=="string"?d.tool_arguments:JSON.stringify(d.tool_arguments);return or.default.createElement("div",{onClick:f=>f.stopPropagation(),style:{margin:"4px 0 8px 0",padding:"10px 12px",borderRadius:"8px",background:a.panelBg,border:`1px solid ${a.cardBorder}`,fontFamily:Pt.mono,fontSize:"12px",color:a.textBody,cursor:"default"}},or.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 20px"}},or.default.createElement("span",null,"duration: ",Qn(e.duration)),or.default.createElement("span",null,"status: ",e.status||"OK"),Kwe(e)>0&&or.default.createElement("span",null,"tokens in:",e.tokens.input||0," out:",e.tokens.output||0,e.tokens.thinking>0?` thinking:${e.tokens.thinking}`:""),or.default.createElement("span",{style:{color:a.textMuted}},"span: ",e.span_id)),d&&or.default.createElement("div",{style:{marginTop:"8px",display:"grid",gap:"4px"}},or.default.createElement("div",{style:{fontSize:"12px",wordBreak:"break-all"}},or.default.createElement("span",{style:{color:Ln("tool",t).color}},"\u2699 ",d.tool_name),p&&or.default.createElement(or.default.Fragment,null," ",or.default.createElement("span",{style:{color:Ln("assistant",t).color}},"in:")," ",or.default.createElement("span",{style:{color:a.textBody}},p))),d.content&&or.default.createElement("div",{style:{fontSize:"12px"}},or.default.createElement("span",{style:{color:Ln("tool",t).color}},"out:")," ",or.default.createElement("span",{style:{color:a.textBody,whiteSpace:"pre-wrap",display:"inline-block",maxHeight:"240px",overflowY:"auto",verticalAlign:"top",maxWidth:"100%"}},d.content))),i.length>0&&!d&&or.default.createElement("div",{style:{marginTop:"10px",fontFamily:"ui-sans-serif, system-ui, sans-serif"}},or.default.createElement(ps,{messages:i,darkMode:t,tools:l||r})),l&&or.default.createElement(aI,{tools:l,darkMode:t}),c.length>0&&or.default.createElement("div",{style:{marginTop:"6px",display:"grid",gap:"2px"}},c.map(([f,m])=>{let y=f.match(/args|result|input|output/)?Gwe(m):null,b=!y&&(f.endsWith(".instructions")||f.match(/input|output|result/))&&typeof m=="string"?m:null,g=y||b;if(!g)return or.default.createElement("div",{key:f,style:{wordBreak:"break-all"}},or.default.createElement("span",{style:{color:a.textMuted}},f,":")," ",typeof m=="string"?m:JSON.stringify(m));let h=`${e.span_id}:${f}`;return or.default.createElement(tY,{key:f,label:f,body:g,prose:!y,darkMode:t,open:n(h),onToggle:()=>o(h)})})))}function Qwe({span:e,trace:t,darkMode:r,sort:n,longest:o,expanded:a,onToggle:i,tools:s}){let l=Jn(r),u=Object.keys(e.attributes||{}).length>0,c=a?null:Xwe(e,t);return or.default.createElement(or.default.Fragment,null,or.default.createElement("div",{className:`py-0.5 px-1 -mx-1 rounded transition-colors ${u?`cursor-pointer ${r?"hover:bg-white/5":"hover:bg-gray-100"}`:""}`,style:{paddingLeft:n==="time"?`${(e.nested||0)*16}px`:0,background:a?l.hoverBg:void 0},onClick:u?()=>i():void 0,title:u?`${e.name} \u2014 click for span details`:e.name},or.default.createElement("div",{className:"flex items-baseline gap-2 min-w-0"},or.default.createElement("span",{className:"flex-shrink-0",style:{color:e.type==="thinking"?void 0:l.textMuted}},lI(e.type)),or.default.createElement("span",{className:"text-sm font-medium truncate",style:{color:e.error?l.bad:l.textPrimary}},e.name),or.default.createElement("span",{className:"text-xs ml-auto flex-shrink-0",style:{fontFamily:Pt.mono,color:l.textMuted}},Vwe(e,t)),u&&or.default.createElement(Zp,{open:a,darkMode:r,size:13,style:{marginLeft:"2px"}})),or.default.createElement("div",{className:"h-3 relative rounded mt-0.5",style:{background:l.trackBg}},or.default.createElement("div",{className:"absolute h-3 rounded",style:{background:e.error?"#f87171":sI[e.type]||"#9ca3af",left:n==="time"?`${t.duration_ms?e.start/t.duration_ms*100:0}%`:0,width:n==="time"?`${t.duration_ms?Math.max(e.duration/t.duration_ms*100,1):1}%`:`${Hwe(e.duration,o)}%`}})),c&&or.default.createElement(uh,{darkMode:r,size:"11px",style:{marginTop:"2px"},lines:[{label:c.inputLabel,text:c.input,color:Ln(c.inputTone,r).color,max:160},{label:c.outputLabel,text:c.output,color:Ln(c.outputTone,r).color,max:160}]})),a&&or.default.createElement(Jwe,{span:e,darkMode:r,tools:s}))}function dI({trace:e,darkMode:t,sort:r="time",tools:n,keyPrefix:o=""}){let[a,i]=ch(),s=Jn(t),l=qwe(e?.spans,r),u=n||cI(e);if(l.length===0)return or.default.createElement("div",{className:"text-sm py-2",style:{color:s.textMuted}},"No spans recorded for this trace.");let c=Math.max(...l.map(d=>d.duration||0),1);return or.default.createElement("div",{className:"space-y-2"},l.map((d,p)=>{let f=`${o}${d.span_id||p}`;return or.default.createElement(Qwe,{key:f,span:d,trace:e,darkMode:t,sort:r,longest:c,tools:u,expanded:a(f),onToggle:()=>i(f)})}))}var Rwe=[{id:"spans",label:"Spans",hint:"Timing waterfall with span details"},{id:"conversation",label:"Conversation",hint:"The run as a message stream \u2014 prompt, tool calls, response"}],eSe=e=>{let t=0,r=[];(e?.spans||[]).forEach(a=>{(a.nested||0)!==0&&(a.type==="tool"?r.push(a):(a.type==="llm"||a.type==="generate")&&(t=Math.max(t,a.duration||0)))});let n=r.reduce((a,i)=>a+(i.duration||0),0);t=Math.max(t-n,0);let o=e?.duration_ms||t+n||1;return{generation:t,tools:r,toolTotal:n,total:o,overhead:Math.max(o-t-n,0)}};function tSe({trace:e,darkMode:t}){let r=Jn(t),{generation:n,tools:o,toolTotal:a,total:i,overhead:s}=eSe(e);if(n===0&&a===0||n/i>=.99&&a/i<.01)return null;let l=c=>`${(c/i*100).toFixed(c/i<.01?2:1)}%`,u=(c,d)=>wt.default.createElement("div",{style:{width:`${Math.max(c/i*100,.4)}%`,background:d,height:"100%"}});return wt.default.createElement("div",{style:{marginTop:"14px",paddingTop:"12px",borderTop:`1px solid ${r.cardBorder}`}},wt.default.createElement("div",{style:{fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em",color:r.textSecondary,marginBottom:"6px"}},"Time breakdown \u2014 generation vs tools"),wt.default.createElement("div",{style:{display:"flex",height:"10px",borderRadius:"5px",overflow:"hidden",background:r.trackBg}},u(n,"#ef4444"),u(a,"#10b981"),s>0&&u(s,t?"rgba(255,255,255,0.2)":"#d1d5db")),wt.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 18px",marginTop:"8px",fontSize:"12px",fontFamily:Pt.mono,color:r.textBody}},wt.default.createElement("span",null,wt.default.createElement("span",{style:{color:"#ef4444"}},"\u25A0")," generation ",Qn(n)," (",l(n),")"),wt.default.createElement("span",null,wt.default.createElement("span",{style:{color:"#10b981"}},"\u25A0")," tools ",Qn(a)," (",l(a),")"),s>0&&wt.default.createElement("span",null,wt.default.createElement("span",{style:{color:r.textSecondary}},"\u25A0")," overhead ",Qn(s)," (",l(s),")")),o.length>0&&wt.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 18px",marginTop:"4px",fontSize:"12px",fontFamily:Pt.mono,color:r.textSecondary}},o.map((c,d)=>wt.default.createElement("span",{key:d},c.name," ",Qn(c.duration)," (",l(c.duration||0),")"))))}function rSe({trace:e,darkMode:t}){let[r,n]=(0,wt.useState)(null),[o,a]=(0,wt.useState)(!1),i=Jn(t);if((0,wt.useEffect)(()=>{if(e?.id==null)return;let l=!0;return n(null),a(!1),fetch(`/api/interactions/trace-${e.id}`).then(u=>u.ok?u.json():Promise.reject(new Error("request failed"))).then(u=>l&&n(u.interaction)).catch(()=>l&&a(!0)),()=>{l=!1}},[e?.id]),o)return wt.default.createElement("div",{className:"text-sm py-4",style:{color:i.bad}},"Couldn't load the conversation for this trace.");if(!r)return wt.default.createElement("div",{className:"text-sm py-4",style:{color:i.textMuted}},"Loading conversation\u2026");let s=r.instructions?[{id:`trace-${e.id}-system`,role:"system",content:r.instructions,created_at:r.created_at},...r.messages||[]]:r.messages||[];return s.length===0?wt.default.createElement("div",{className:"text-sm py-4",style:{color:i.textMuted}},"This trace predates content capture \u2014 no conversation to show."):wt.default.createElement(ps,{messages:s,darkMode:t,tools:cI(e)})}function e0({trace:e,darkMode:t,compact:r=!1,showConversation:n=!0}){let[o,a]=(0,wt.useState)("spans"),[i,s]=(0,wt.useState)("time"),l=Jn(t),u=(e?.spans||[]).length,c=BC(e),d=e?.tokens||{},p=(0,wt.useCallback)(f=>a(n?f:"spans"),[n]);return e?wt.default.createElement("div",null,wt.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2 mb-2"},wt.default.createElement("div",{className:"flex items-center gap-1"},n&&wt.default.createElement(Rx,{options:Rwe,value:o,onChange:p,darkMode:t}),wt.default.createElement("span",{className:"text-xs ml-2",style:{color:l.textSecondary}},u," ",u===1?"span":"spans")),o==="spans"&&u>0&&wt.default.createElement(Rx,{options:nY,value:i,onChange:s,darkMode:t,label:"Sort"})),o==="conversation"?wt.default.createElement("div",{className:"rounded-lg border p-4",style:{background:l.cardBg,borderColor:l.cardBorder}},wt.default.createElement(rSe,{trace:e,darkMode:t})):wt.default.createElement(wt.default.Fragment,null,i==="time"?wt.default.createElement("div",{className:"flex justify-between text-xs mb-2",style:{color:l.textMuted}},wt.default.createElement("span",null,"0ms"),wt.default.createElement("span",null,Math.round((e.duration_ms||0)*.33),"ms"),wt.default.createElement("span",null,Math.round((e.duration_ms||0)*.66),"ms"),wt.default.createElement("span",null,Qn(e.duration_ms))):wt.default.createElement("div",{className:"text-xs mb-2",style:{color:l.textMuted}},"Bar length compares duration on a log scale"),wt.default.createElement(dI,{trace:e,darkMode:t,sort:i,keyPrefix:`${e.id||e.trace_id}:`})),c&&wt.default.createElement("div",{className:"mt-3"},wt.default.createElement(od,{...c,label:"Context pressure",darkMode:t})),wt.default.createElement(tSe,{trace:e,darkMode:t}),!r&&wt.default.createElement("div",{className:"mt-4 pt-4 border-t flex items-center flex-wrap gap-x-6 gap-y-1 text-sm",style:{borderColor:l.cardBorder,color:l.textSecondary}},wt.default.createElement("span",null,"Tokens:"),d.thinking>0&&wt.default.createElement("span",{className:"text-amber-500",style:{fontFamily:Pt.mono}},"T:",d.thinking.toLocaleString()),wt.default.createElement("span",{className:"text-blue-500",style:{fontFamily:Pt.mono}},"in:",(d.input||0).toLocaleString()),wt.default.createElement("span",{className:"text-green-500",style:{fontFamily:Pt.mono}},"out:",(d.output||0).toLocaleString()),e.provider&&wt.default.createElement("span",{style:{fontFamily:Pt.mono}},e.provider,e.model?` \xB7 ${e.model}`:"")),e.error&&wt.default.createElement("div",{className:"mt-4 p-3 rounded-lg border",style:{background:t?"rgba(239,68,68,0.1)":"#fef2f2",borderColor:t?"rgba(239,68,68,0.3)":"#fecaca"}},wt.default.createElement("span",{className:"text-sm",style:{color:t?"#fca5a5":"#b91c1c"}},e.error))):null}var nSe=e=>{let t=(e?.input||0)+(e?.output||0)+(e?.thinking||0);return t?t>=1e3?`${(t/1e3).toFixed(1)}K`:`${t}`:null},oSe=e=>e==null?null:`$${e.toFixed(4)}`;function VC({trace:e,darkMode:t,expanded:r,onToggle:n}){let o=Jn(t),a=uI(e),i=BC(e),s=e.status!=="ERROR",l=nSe(e.tokens);return zn.default.createElement(KC,{darkMode:t,id:`trace-row-${e.id}`},zn.default.createElement("div",{className:`p-4 flex items-center justify-between flex-wrap gap-y-2 cursor-pointer transition-colors ${t?"hover:bg-white/5":"hover:bg-gray-50"}`,onClick:n,style:r?{background:o.hoverBg}:void 0},zn.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},zn.default.createElement("span",{className:"px-2 py-1 text-xs rounded flex-shrink-0",style:{fontFamily:Pt.mono,background:o.controlBg,color:o.textSecondary}},"TRACE"),zn.default.createElement("span",{className:"text-sm flex-shrink-0",style:{fontFamily:Pt.mono,color:o.textMuted}},e.short_id),zn.default.createElement("span",{className:"text-sm font-medium truncate",style:{color:o.textPrimary}},e.display_name)),zn.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0"},zn.default.createElement(ad,{darkMode:t,cells:[{key:"model",title:"Model that generated this trace",empty:"No model recorded for this trace",content:e.model&&zn.default.createElement("span",{className:"text-xs px-2 py-0.5 rounded",style:{fontFamily:Pt.mono,background:t?"rgba(99,102,241,0.2)":"#eef2ff",color:t?"#a5b4fc":"#4338ca"}},e.model)},{key:"context",width:Na.context,empty:"Context: no generation in this trace reported its token counts",content:i&&zn.default.createElement(od,{compact:!0,...i,label:"Context",darkMode:t})},{key:"duration",width:Na.duration,title:"Wall-clock duration",empty:"No duration recorded for this trace",content:e.duration_ms!=null&&zn.default.createElement(zn.default.Fragment,null,zn.default.createElement("i",{className:"fa-solid fa-clock mr-1"}),Qn(e.duration_ms))},{key:"tokens",width:Na.tokens,title:"Tokens in, out and thinking",empty:"No token counts recorded for this trace",content:l&&`${l} tokens`},{key:"cost",width:Na.cost,title:"Estimated cost of this trace",empty:"Nothing to price \u2014 this trace recorded no tokens",content:e.estimated_cost!=null&&zn.default.createElement(zn.default.Fragment,null,zn.default.createElement("i",{className:"fa-solid fa-coins mr-1"}),oSe(e.estimated_cost))},{key:"status",width:Na.status,title:s?"Trace completed":e.error||"Trace ended in an error",content:zn.default.createElement("span",{style:{color:s?o.good:o.bad}},zn.default.createElement("i",{className:`fa-solid ${s?"fa-check":"fa-xmark"} mr-1`}),s?"OK":"ERROR")}]}),zn.default.createElement(Zp,{open:r,darkMode:t}))),!r&&zn.default.createElement(uh,{darkMode:t,onClick:n,hold:!0,style:{padding:"0 16px 12px"},lines:[{label:"input",text:a.input,color:Ln("user",t).color},{label:"output",text:a.output,color:Ln("assistant",t).color}]}),r&&zn.default.createElement("div",{className:"border-t p-4",style:{borderColor:o.cardBorder,background:o.innerBg}},zn.default.createElement(e0,{trace:e,darkMode:t})))}function oY(e,t=""){return`${(e||"").replace(/\/$/,"")}${t}`||"/"}function aY(e,t){let r=(e||"").replace(/\/$/,"");return r&&(t===r||t.startsWith(`${r}/`))?t.slice(r.length)||"/":t}function Re(e=""){return oY(window.ACTIVE_AGENT_DASHBOARD?.mountPath,e)}function id(e="",t={}){window.history.pushState(t,"",Re(e))}function Rn(e=window.location.pathname){return aY(window.ACTIVE_AGENT_DASHBOARD?.mountPath,e)}function lt(e,t={}){if(!e)return;let r=Rn(e);id(r,t),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:Re(r)}}))}var iY=({minutes:e,agentId:t=null,bucketSeconds:r=null})=>{let n=new URLSearchParams({minutes:String(e)});return r!=null&&n.set("bucket_seconds",String(r)),t!=null&&t!==""&&n.set("agent_id",String(t)),`/api/traces?${n.toString()}`};var aSe=(e,t,r,n=60)=>{let o=Date.now(),a=[],i=n*1e3,s=Math.max(1,Math.round(r*60/n));for(let l=s-1;l>=0;l--){let u=o-(l+1)*i,c=o-l*i,d=e.filter(m=>m.timestamp_ms>=u&&m.timestamp_msm.duration_ms).filter(m=>typeof m=="number"&&Number.isFinite(m)),f={};t.forEach(m=>{f[m]=d.filter(y=>y.agent===m).length}),a.push({time:r>1440?new Date(c).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(c).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),timestamp:c,requests:d.length,errors:d.filter(m=>m.status==="ERROR").length,avgLatency:p.length>0?Math.round(p.reduce((m,y)=>m+y,0)/p.length):0,traces:d,...f})}return a},sY=(e,t,r,n)=>{let o=Array.isArray(e?.buckets)?e.buckets.map(s=>({time:n.minutes>1440?new Date(s.end_ms).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(s.end_ms).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),timestamp:s.end_ms,requests:s.requests,errors:s.errors,avgLatency:s.avg_latency_ms,traces:t.filter(l=>l.timestamp_ms>=s.start_ms&&l.timestamp_ms[l,s.agents?.[l]||0]))})):aSe(t,r,n.minutes,n.bucketSeconds),a=t.map(s=>s.duration_ms).filter(s=>typeof s=="number"&&Number.isFinite(s)),i=e?.summary?{requests:e.summary.requests,errors:e.summary.errors,avgLatency:e.summary.avg_latency_ms,throughput:Number(e.summary.throughput_per_minute).toFixed(1)}:{requests:t.length,errors:t.filter(s=>s.status==="ERROR").length,avgLatency:a.length?Math.round(a.reduce((s,l)=>s+l,0)/a.length):0,throughput:(t.length/n.minutes).toFixed(1)};return{buckets:o,summary:i,truncated:e?.truncated===!0,total:e?.total_count??t.length}};var lY=["#6366f1","#10b981","#f59e0b","#ec4899","#3b82f6","#8b5cf6","#14b8a6","#f97316"],iSe=3e4,sSe=e=>{let t={};return e.forEach((r,n)=>{t[r]=lY[n%lY.length]}),t},lSe=e=>{let t={};return e.forEach(r=>{(r.spans||[]).forEach(n=>{if((n.nested||0)===0)return;let o=n.name||n.type||"unknown";t[o]||(t[o]={name:o,type:n.type,count:0,total:0,max:0,errors:0});let a=t[o];a.count+=1,a.total+=n.duration||0,a.max=Math.max(a.max,n.duration||0),n.error&&(a.errors+=1)})}),Object.values(t).map(r=>({...r,avg:r.total/r.count})).sort((r,n)=>n.total-r.total)};function Jp({agentId:e=null,embedded:t=!1}){let{darkMode:r}=ut(),[n,o]=(0,H.useState)([]),[a,i]=(0,H.useState)(null),[s,l]=(0,H.useState)([]),[u,c]=(0,H.useState)({}),[d,p]=(0,H.useState)(!0),[f,m]=(0,H.useState)(null),[y,b]=(0,H.useState)(null),g=(0,H.useRef)(new URLSearchParams(window.location.search).get("trace")),[h,v]=(0,H.useState)(null),[x,S]=(0,H.useState)({status:"all",agent:"all",action:"all"}),[k,w]=(0,H.useState)("time"),[_,A]=(0,H.useState)(null),[C,N]=(0,H.useState)("timeline"),[L,Q]=(0,H.useState)("popular"),{timeWindow:B}=xl(),K=(0,H.useCallback)(async()=>{try{let E=await fetch(iY({minutes:B.minutes,bucketSeconds:B.bucketSeconds,agentId:e}));if(!E.ok)throw new Error(`Request failed (${E.status})`);let $=await E.json();o($.traces||[]),i($),l($.agents||[]),c($.agent_ids||{}),m(null)}catch(E){m(E.message)}finally{p(!1)}},[B.minutes,B.bucketSeconds,e]);(0,H.useEffect)(()=>{K();let E=setInterval(K,iSe);return()=>clearInterval(E)},[K]);let T=(0,H.useMemo)(()=>sSe(s),[s]);(0,H.useEffect)(()=>{A(null)},[B.id]);let O=(0,H.useMemo)(()=>sY(a,n,s,B),[a,n,s,B]),I=O.buckets,P=Math.max(0,Math.ceil(I.length/6)-1),j=(0,H.useMemo)(()=>{let E=n;if(_!==null){let $=I[_];$&&(E=$.traces||[])}if(x.status!=="all"&&(E=E.filter($=>x.status==="success"?$.status!=="ERROR":$.status==="ERROR")),x.agent!=="all"&&(E=E.filter($=>$.agent===x.agent)),x.action!=="all")if(x.action.includes("#")){let[$,ee]=x.action.split("#");E=E.filter(F=>F.agent===$&&F.action===ee)}else E=E.filter($=>$.action===x.action);return k==="latency"&&(E=[...E].sort(($,ee)=>(ee.duration_ms||0)-($.duration_ms||0))),h&&!E.some($=>$.id===h.id)&&(E=[h,...E]),E},[n,_,I,x,k,h]);(0,H.useEffect)(()=>{let E=g.current;if(!E)return;let $=F=>{g.current=null,b(F.id),setTimeout(()=>{document.getElementById(`trace-row-${F.id}`)?.scrollIntoView({behavior:"smooth",block:"start"})},150)},ee=n.find(F=>F.id===E||F.trace_id===E||F.short_id&&String(E).startsWith(F.short_id));if(ee){$(ee);return}n.length!==0&&fetch(`/api/traces/${encodeURIComponent(E)}`).then(F=>F.ok?F.json():Promise.reject(new Error("not found"))).then(({trace:F})=>{v(F),$(F)}).catch(()=>{g.current=null})},[n]);let M=(0,H.useMemo)(()=>{let E=_!==null?I[_]?.traces||[]:n,$={};E.forEach(F=>{F.agent&&($[F.agent]||($[F.agent]={agent:F.agent,count:0,totalDuration:0,cost:0,errors:0,actions:{},tokens:{thinking:0,input:0,output:0}}),$[F.agent].count++,$[F.agent].totalDuration+=F.duration_ms||0,$[F.agent].cost+=F.estimated_cost||0,F.status==="ERROR"&&$[F.agent].errors++,F.tokens&&($[F.agent].tokens.thinking+=F.tokens.thinking||0,$[F.agent].tokens.input+=F.tokens.input||0,$[F.agent].tokens.output+=F.tokens.output||0),F.action&&($[F.agent].actions[F.action]=($[F.agent].actions[F.action]||0)+1))});let ee={popular:F=>F.count,longest:F=>F.totalDuration/(F.count||1),cost:F=>F.cost,tokens:F=>(F.tokens.input||0)+(F.tokens.output||0)+(F.tokens.thinking||0),errors:F=>F.errors}[L]||(F=>F.count);return Object.values($).sort((F,me)=>ee(me)-ee(F)||me.count-F.count)},[n,I,_,L]),W=(0,H.useMemo)(()=>{let E=_!==null?I[_]?.traces||[]:n,$={};return E.forEach(ee=>{if(!ee.agent)return;let F=`${ee.agent}#${ee.action||"unknown"}`;$[F]||($[F]={key:F,agent:ee.agent,action:ee.action||"unknown",count:0,totalDuration:0,errors:0,minDuration:1/0,maxDuration:0,tokens:{thinking:0,input:0,output:0}}),$[F].count++,$[F].totalDuration+=ee.duration_ms||0,$[F].minDuration=Math.min($[F].minDuration,ee.duration_ms||0),$[F].maxDuration=Math.max($[F].maxDuration,ee.duration_ms||0),ee.status==="ERROR"&&$[F].errors++,ee.tokens&&($[F].tokens.thinking+=ee.tokens.thinking||0,$[F].tokens.input+=ee.tokens.input||0,$[F].tokens.output+=ee.tokens.output||0)}),Object.values($).forEach(ee=>{ee.minDuration===1/0&&(ee.minDuration=0)}),Object.values($).sort((ee,F)=>F.count-ee.count)},[n,I,_]),Y=(0,H.useMemo)(()=>{let E=_!==null?I[_]?.traces||[]:n,$={};return E.forEach(ee=>{(ee.spans||[]).forEach(F=>{if(F.type!=="tool")return;let me=F.attributes?.["tool.name"]||F.name?.replace(/^tool\./,"")||"unknown";$[me]||($[me]={name:me,count:0,totalDuration:0,maxDuration:0,errors:0,agents:new Set}),$[me].count++,$[me].totalDuration+=F.duration||0,$[me].maxDuration=Math.max($[me].maxDuration,F.duration||0),F.error&&$[me].errors++,ee.agent&&$[me].agents.add(`${ee.agent}#${ee.action||"unknown"}`)})}),Object.values($).map(ee=>({...ee,agents:[...ee.agents],avgDuration:ee.count?ee.totalDuration/ee.count:0})).sort((ee,F)=>F.totalDuration-ee.totalDuration)},[n,I,_]),z=(0,H.useMemo)(()=>x.agent==="all"?W.map(E=>E.key):W.filter(E=>E.agent===x.agent).map(E=>E.key),[x.agent,W]),V=(0,H.useMemo)(()=>lSe(j),[j]),q=E=>{if(E&&E.activeTooltipIndex!==void 0){let $=E.activeTooltipIndex;A(_===$?null:$),b(null)}},oe=E=>(E?.input||0)+(E?.output||0)+(E?.thinking||0),Me=E=>{let $=E.count?E.errors/E.count:0;return[{label:`Calls ${B.label||""}`.trim(),value:E.count.toLocaleString()},{label:"Errors",value:`${($*100).toFixed(1)}%`,tone:E.errors>0?"bad":"good"},{label:"Avg time",value:`${Math.round(E.totalDuration/(E.count||1))}ms`},{label:"Tokens",value:oe(E.tokens).toLocaleString()},{label:"Cost",value:fe(E.cost),title:"Estimated from token counts at this model's published rates",tone:E.cost?void 0:"muted"},{label:"Actions",value:(E.agents?.length||0).toLocaleString()}]},fe=E=>E?E<.01?"<$0.01":`$${E.toFixed(2)}`:"\u2014",le=H.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:"8px",marginBottom:"12px"}},H.default.createElement("span",{style:{fontSize:"12px",color:r?"rgba(255,255,255,0.5)":"#6b7280"}},"Rank by"),H.default.createElement("select",{value:L,onChange:E=>Q(E.target.value),style:{fontSize:"12px",padding:"4px 8px",borderRadius:"6px",border:`1px solid ${r?"rgba(255,255,255,0.15)":"#e5e7eb"}`,background:r?"rgba(255,255,255,0.05)":"#ffffff",color:r?"#f9fafb":"#111827"}},H.default.createElement("option",{value:"popular"},"Most calls"),H.default.createElement("option",{value:"longest"},"Longest average"),H.default.createElement("option",{value:"cost"},"Highest cost"),H.default.createElement("option",{value:"tokens"},"Most tokens"),H.default.createElement("option",{value:"errors"},"Most errors"))),R=E=>S($=>({...$,agent:$.agent===E?"all":E})),te=E=>{let $=u[E];if(!$)return R(E);let ee=Re(`/agents/${$}`);window.history.pushState(window.history.state,"",ee),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:ee}}))},He=E=>{let $=V[0]?.total||1,ee=E?"rgba(0,0,0,0.3)":"white",F=E?"1px solid rgba(255,255,255,0.1)":"1px solid #e5e7eb",me=E?"white":"#111827",et=E?"rgba(255,255,255,0.5)":"#6b7280",rt={llm:"#ef4444",tool:"#10b981",generate:"#8b5cf6",prompt:"#3b82f6"};return H.default.createElement("div",{style:{padding:E?"0 24px 24px 24px":0}},H.default.createElement("div",{style:{background:ee,border:F,borderRadius:"12px",padding:"16px"}},H.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,color:me,marginBottom:"4px"}},"Slowest operations"),H.default.createElement("div",{style:{fontSize:"12px",color:et,marginBottom:"14px"}},"Span durations aggregated across ",j.length," trace",j.length===1?"":"s"," \u2014 ranked by total time"),V.length===0?H.default.createElement("div",{style:{fontSize:"13px",color:et,padding:"12px 0"}},"No spans in the current selection"):H.default.createElement("div",{style:{display:"grid",gap:"10px"}},V.map(ge=>H.default.createElement("div",{key:ge.name,style:{display:"flex",alignItems:"center",gap:"12px"}},H.default.createElement("div",{style:{width:"220px",flexShrink:0,display:"flex",alignItems:"center",gap:"8px"}},H.default.createElement("span",{style:{color:et}},lI(ge.type)),H.default.createElement("span",{style:{fontSize:"13px",color:ge.errors>0?"#ef4444":me,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},ge.name)),H.default.createElement("div",{style:{flex:1,height:"18px",background:E?"rgba(255,255,255,0.06)":"#f3f4f6",borderRadius:"4px",position:"relative"}},H.default.createElement("div",{style:{position:"absolute",top:"3px",left:0,height:"12px",borderRadius:"3px",width:`${Math.max(ge.total/$*100,.5)}%`,background:rt[ge.type]||"#6366f1"}})),H.default.createElement("div",{style:{width:"260px",flexShrink:0,fontSize:"12px",color:et,fontFamily:Pt.mono,textAlign:"right"}},ge.count,"\xD7 \xB7 avg ",Qn(ge.avg)," \xB7 max ",Qn(ge.max)," \xB7 \u03A3 ",Qn(ge.total)))))))};if(d)return H.default.createElement("div",{className:"flex items-center justify-center h-64"},H.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let _e=O.summary,D=O.truncated&&H.default.createElement("div",{role:"status","data-testid":"trace-window-notice",style:{padding:"12px 24px",fontSize:13,color:r?"#fbbf24":"#92400e"}},"Showing newest ",n.length," of ",O.total," traces. Chart and totals cover the full window; lists and breakdowns use these loaded traces."),G=_e.requests===0;return r?H.default.createElement("div",{className:"preview-content",style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)"}},D,H.default.createElement("div",{style:{padding:"24px 24px 0 24px",borderBottom:"1px solid rgba(255,255,255,0.1)",marginBottom:"16px",paddingBottom:"16px"}},H.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},H.default.createElement("div",null,!t&&H.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:"white",margin:0}},"Traces"),H.default.createElement("p",{style:{fontSize:"14px",color:"rgba(255,255,255,0.6)",marginTop:"4px"}},_!==null?`Viewing ${I[_]?.time} \u2022 ${j.length} requests`:`Last ${B.label} \u2022 Click timeline to drill down`)),H.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"12px"}},H.default.createElement("div",{style:{display:"flex",background:"rgba(255,255,255,0.1)",borderRadius:"8px",padding:"2px"}},["timeline","agents","actions","tools","spans"].map(E=>H.default.createElement("button",{key:E,onClick:()=>N(E),style:{padding:"6px 12px",background:C===E?"#ef4444":"transparent",color:"white",borderRadius:"6px",border:"none",fontSize:"13px",cursor:"pointer",textTransform:"capitalize"}},E))),!e&&H.default.createElement("select",{value:x.agent,onChange:E=>S({...x,agent:E.target.value,action:"all"}),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px",maxWidth:"180px",textOverflow:"ellipsis"}},H.default.createElement("option",{value:"all"},"All Agents"),s.map(E=>H.default.createElement("option",{key:E,value:E},E))),H.default.createElement("select",{value:x.action,onChange:E=>S({...x,action:E.target.value}),style:{padding:"8px 12px",background:x.action!=="all"?"rgba(239, 68, 68, 0.3)":"rgba(255,255,255,0.1)",border:x.action!=="all"?"1px solid #ef4444":"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px",maxWidth:"220px",textOverflow:"ellipsis"}},H.default.createElement("option",{value:"all"},"All Actions"),z.map(E=>H.default.createElement("option",{key:E,value:E},E))),H.default.createElement("select",{value:x.status,onChange:E=>S({...x,status:E.target.value}),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px"}},H.default.createElement("option",{value:"all"},"All Status"),H.default.createElement("option",{value:"success"},"Success"),H.default.createElement("option",{value:"error"},"Error")),H.default.createElement("select",{value:k,onChange:E=>w(E.target.value),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px"}},H.default.createElement("option",{value:"time"},"Newest first"),H.default.createElement("option",{value:"latency"},"Slowest first")),_!==null&&H.default.createElement("button",{onClick:()=>A(null),style:{padding:"8px 16px",background:"rgba(255,255,255,0.2)",color:"white",borderRadius:"8px",border:"none",fontSize:"14px",fontWeight:"500",cursor:"pointer"}},"Clear Selection")))),f&&H.default.createElement("div",{style:{margin:"0 24px 16px 24px",padding:"12px 16px",background:"rgba(239, 68, 68, 0.1)",borderRadius:"8px",color:"#ef4444",fontSize:"13px"}},"Failed to load traces: ",f),H.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},H.default.createElement("div",{style:{background:"rgba(0,0,0,0.3)",borderRadius:"12px",padding:"16px",border:"1px solid rgba(255,255,255,0.1)"}},H.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px"}},H.default.createElement("div",{style:{fontSize:"14px",fontWeight:"600",color:"white"}},"Agent Requests / Minute"),H.default.createElement("div",{style:{display:"flex",gap:"16px",flexWrap:"wrap"}},Object.entries(T).map(([E,$])=>H.default.createElement("div",{key:E,style:{display:"flex",alignItems:"center",gap:"6px"}},H.default.createElement("div",{style:{width:"10px",height:"10px",borderRadius:"2px",background:$}}),H.default.createElement("span",{style:{fontSize:"11px",color:"rgba(255,255,255,0.7)"}},E.replace("Agent","")))))),H.default.createElement("div",{style:{height:"150px"}},H.default.createElement(Cc,{width:"100%",height:"100%"},H.default.createElement(rd,{data:I,onClick:q,style:{cursor:"pointer"}},H.default.createElement("defs",null,Object.entries(T).map(([E,$])=>H.default.createElement("linearGradient",{key:E,id:`gradient-${E}`,x1:"0",y1:"0",x2:"0",y2:"1"},H.default.createElement("stop",{offset:"5%",stopColor:$,stopOpacity:.8}),H.default.createElement("stop",{offset:"95%",stopColor:$,stopOpacity:.1})))),H.default.createElement(Cu,{strokeDasharray:"3 3",stroke:"rgba(255,255,255,0.1)"}),H.default.createElement(Tu,{dataKey:"time",stroke:"rgba(255,255,255,0.5)",tick:{fontSize:10,fill:"rgba(255,255,255,0.5)"},tickLine:!1,interval:P}),H.default.createElement(Pu,{stroke:"rgba(255,255,255,0.5)",tick:{fontSize:10,fill:"rgba(255,255,255,0.5)"},tickLine:!1,axisLine:!1,allowDecimals:!1}),H.default.createElement(Wc,{contentStyle:{background:"rgba(0,0,0,0.9)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",padding:"12px"},labelStyle:{color:"white",fontWeight:"600",marginBottom:"8px"},itemStyle:{color:"rgba(255,255,255,0.8)",fontSize:"12px"},formatter:(E,$)=>[E,$.replace("Agent","")]}),Object.keys(T).map(E=>H.default.createElement(Eu,{key:E,type:"monotone",dataKey:E,stackId:"1",stroke:T[E],fill:`url(#gradient-${E})`}))))),H.default.createElement("div",{style:{display:"flex",gap:"24px",marginTop:"12px",paddingTop:"12px",borderTop:"1px solid rgba(255,255,255,0.1)"}},H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"white"}},_e.requests),H.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Total Requests")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#ef4444"}},_e.errors),H.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Errors")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#10b981"}},_e.avgLatency,"ms"),H.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Avg Latency")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#f59e0b"}},_e.throughput,"/min"),H.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Throughput"))))),C==="agents"&&H.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},le,H.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(280px, 1fr))",gap:"16px"}},M.map(E=>H.default.createElement(Cm,{key:E.agent,name:E.agent,accentColor:T[E.agent],subtitle:E.agents?.length?E.agents.join(", "):void 0,badge:H.default.createElement("span",{style:{fontSize:"12px",padding:"2px 8px",background:T[E.agent]+"30",color:T[E.agent],borderRadius:"4px",whiteSpace:"nowrap"}},E.count," calls"),onClick:()=>te(E.agent),stats:Me(E),footer:H.default.createElement(H.default.Fragment,null,H.default.createElement("span",null,u[E.agent]?"Open agent \u2192":"Not linked to an agent record"),H.default.createElement("button",{onClick:$=>{$.stopPropagation(),R(E.agent)},style:{background:"none",border:"none",padding:0,cursor:"pointer",color:x.agent===E.agent?"#ef4444":"inherit",font:"inherit"}},x.agent===E.agent?"Clear filter":"Filter traces"))})))),C==="actions"&&H.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},H.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:"12px"}},W.map(E=>{let $=x.action===E.key;return H.default.createElement("div",{key:E.key,onClick:()=>{S({...x,action:$?"all":E.key}),N("timeline")},style:{background:$?"rgba(239, 68, 68, 0.15)":"rgba(0,0,0,0.3)",borderRadius:"10px",padding:"14px",border:$?"1px solid #ef4444":`1px solid ${T[E.agent]}30`,cursor:"pointer",transition:"all 0.15s"}},H.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"10px"}},H.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},H.default.createElement("div",{style:{width:"6px",height:"6px",borderRadius:"50%",background:T[E.agent]}}),H.default.createElement("span",{style:{fontSize:"14px",fontWeight:"600",color:"white"}},E.agent),H.default.createElement("span",{style:{fontSize:"13px",color:"rgba(255,255,255,0.7)"}},"#",E.action)),H.default.createElement("span",{style:{fontSize:"12px",padding:"2px 8px",background:T[E.agent]+"30",color:T[E.agent],borderRadius:"4px"}},E.count," calls")),H.default.createElement("div",{style:{display:"flex",gap:"16px",flexWrap:"wrap"}},H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Avg"),H.default.createElement("div",{style:{fontSize:"13px",color:"white",fontWeight:"500"}},Math.round(E.totalDuration/E.count),"ms")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Min/Max"),H.default.createElement("div",{style:{fontSize:"13px",color:"rgba(255,255,255,0.8)"}},Math.round(E.minDuration),"ms / ",Math.round(E.maxDuration),"ms")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Errors"),H.default.createElement("div",{style:{fontSize:"13px",color:E.errors>0?"#ef4444":"#10b981"}},E.errors," (",(E.errors/E.count*100).toFixed(0),"%)")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Tokens"),H.default.createElement("div",{style:{fontSize:"13px",color:"rgba(255,255,255,0.8)"}},oe(E.tokens).toLocaleString()))))}))),C==="spans"&&He(!0),C==="timeline"&&!G&&H.default.createElement("div",{className:"space-y-4"},j.length===0?H.default.createElement("div",{style:{textAlign:"center",padding:"32px",color:"rgba(255,255,255,0.5)",fontSize:"14px"}},"No traces match filters"):j.map(E=>H.default.createElement(VC,{key:E.id,trace:E,darkMode:!0,expanded:y===E.id,onToggle:()=>b(y===E.id?null:E.id)}))),G&&C==="timeline"&&H.default.createElement("div",{style:{textAlign:"center",padding:"48px 0"}},H.default.createElement("div",{style:{color:"rgba(255,255,255,0.5)",fontSize:"18px"}},"No traces yet"),H.default.createElement("p",{style:{color:"rgba(255,255,255,0.4)",fontSize:"14px",marginTop:"8px"}},"Run an agent, or point your app's ActiveAgent telemetry at this workspace to see traces appear here"))):H.default.createElement("div",{className:"space-y-6"},D,H.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2"},H.default.createElement("div",null,H.default.createElement("h1",{className:"text-2xl font-bold text-gray-900"},"Traces"),H.default.createElement("p",{className:"text-sm text-gray-500"},_!==null?`Viewing ${I[_]?.time} \u2022 ${j.length} requests`:`Last ${B.label} \u2022 Click timeline to drill down`)),H.default.createElement("div",{className:"flex items-center space-x-3 flex-wrap gap-y-2 min-w-0"},H.default.createElement(bl,null),H.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1"},["timeline","agents","actions","tools","spans"].map(E=>H.default.createElement("button",{key:E,onClick:()=>N(E),className:`px-3 py-1 text-sm rounded-md transition-colors capitalize ${C===E?"bg-white shadow text-gray-900":"text-gray-600"}`},E))),H.default.createElement("select",{value:x.agent,onChange:E=>S({...x,agent:E.target.value,action:"all"}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500",style:{maxWidth:"180px",textOverflow:"ellipsis"}},H.default.createElement("option",{value:"all"},"All Agents"),s.map(E=>H.default.createElement("option",{key:E,value:E},E))),H.default.createElement("select",{value:x.action,onChange:E=>S({...x,action:E.target.value}),className:`px-3 py-2 border rounded-lg text-sm focus:ring-2 focus:ring-red-500 ${x.action!=="all"?"border-red-500 bg-red-50":"border-gray-300"}`,style:{maxWidth:"220px",textOverflow:"ellipsis"}},H.default.createElement("option",{value:"all"},"All Actions"),z.map(E=>H.default.createElement("option",{key:E,value:E},E))),H.default.createElement("select",{value:x.status,onChange:E=>S({...x,status:E.target.value}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},H.default.createElement("option",{value:"all"},"All Status"),H.default.createElement("option",{value:"success"},"Success"),H.default.createElement("option",{value:"error"},"Error")),H.default.createElement("select",{value:k,onChange:E=>w(E.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},H.default.createElement("option",{value:"time"},"Newest first"),H.default.createElement("option",{value:"latency"},"Slowest first")),_!==null&&H.default.createElement("button",{onClick:()=>A(null),className:"px-4 py-2 bg-gray-200 text-gray-700 rounded-lg hover:bg-gray-300 transition-colors text-sm font-medium"},"Clear Selection"))),f&&H.default.createElement("div",{className:"p-3 bg-red-50 border border-red-200 rounded-lg text-sm text-red-700"},"Failed to load traces: ",f),H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},H.default.createElement("div",{className:"flex justify-between items-center mb-3"},H.default.createElement("h3",{className:"text-sm font-semibold text-gray-700"},"Agent Requests / Minute"),H.default.createElement("div",{className:"flex gap-4 flex-wrap"},Object.entries(T).map(([E,$])=>H.default.createElement("div",{key:E,className:"flex items-center gap-1.5"},H.default.createElement("div",{className:"w-2.5 h-2.5 rounded-sm",style:{background:$}}),H.default.createElement("span",{className:"text-xs text-gray-500"},E.replace("Agent","")))))),H.default.createElement("div",{className:"h-36"},H.default.createElement(Cc,{width:"100%",height:"100%"},H.default.createElement(rd,{data:I,onClick:q,style:{cursor:"pointer"}},H.default.createElement("defs",null,Object.entries(T).map(([E,$])=>H.default.createElement("linearGradient",{key:E,id:`gradient-light-${E}`,x1:"0",y1:"0",x2:"0",y2:"1"},H.default.createElement("stop",{offset:"5%",stopColor:$,stopOpacity:.6}),H.default.createElement("stop",{offset:"95%",stopColor:$,stopOpacity:.05})))),H.default.createElement(Cu,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),H.default.createElement(Tu,{dataKey:"time",stroke:"#9ca3af",tick:{fontSize:10,fill:"#6b7280"},tickLine:!1,interval:P}),H.default.createElement(Pu,{stroke:"#9ca3af",tick:{fontSize:10,fill:"#6b7280"},tickLine:!1,axisLine:!1,allowDecimals:!1}),H.default.createElement(Wc,{contentStyle:{background:"white",border:"1px solid #e5e7eb",borderRadius:"8px",boxShadow:"0 4px 6px -1px rgba(0,0,0,0.1)"},labelStyle:{color:"#111827",fontWeight:"600",marginBottom:"8px"},formatter:(E,$)=>[E,$.replace("Agent","")]}),Object.keys(T).map(E=>H.default.createElement(Eu,{key:E,type:"monotone",dataKey:E,stackId:"1",stroke:T[E],fill:`url(#gradient-light-${E})`}))))),H.default.createElement("div",{className:"flex gap-6 mt-3 pt-3 border-t border-gray-100"},H.default.createElement("div",null,H.default.createElement("div",{className:"text-lg font-bold text-gray-900"},_e.requests),H.default.createElement("div",{className:"text-xs text-gray-500"},"Total Requests")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-lg font-bold text-red-500"},_e.errors),H.default.createElement("div",{className:"text-xs text-gray-500"},"Errors")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-lg font-bold text-green-600"},_e.avgLatency,"ms"),H.default.createElement("div",{className:"text-xs text-gray-500"},"Avg Latency")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-lg font-bold text-amber-500"},_e.throughput,"/min"),H.default.createElement("div",{className:"text-xs text-gray-500"},"Throughput")))),C==="agents"&&H.default.createElement("div",null,le,H.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"},M.map(E=>H.default.createElement(Cm,{key:E.agent,name:E.agent,accentColor:T[E.agent],subtitle:E.agents?.length?E.agents.join(", "):void 0,badge:H.default.createElement("span",{className:"text-sm px-2 py-0.5 rounded",style:{background:T[E.agent]+"20",color:T[E.agent]}},E.count," calls"),onClick:()=>te(E.agent),stats:Me(E),footer:H.default.createElement(H.default.Fragment,null,H.default.createElement("span",null,u[E.agent]?"Open agent \u2192":"Not linked to an agent record"),H.default.createElement("button",{onClick:$=>{$.stopPropagation(),R(E.agent)},className:x.agent===E.agent?"text-red-600":"hover:text-gray-700"},x.agent===E.agent?"Clear filter":"Filter traces"))})))),C==="actions"&&H.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3"},W.map(E=>{let $=x.action===E.key;return H.default.createElement("div",{key:E.key,onClick:()=>{S({...x,action:$?"all":E.key}),N("timeline")},className:`rounded-xl p-4 cursor-pointer transition-all ${$?"bg-red-50 border-2 border-red-500":"bg-white border border-gray-200 hover:border-gray-300"}`,style:{borderLeftColor:T[E.agent],borderLeftWidth:$?"2px":"4px"}},H.default.createElement("div",{className:"flex items-center justify-between mb-3"},H.default.createElement("div",{className:"flex items-center gap-2"},H.default.createElement("div",{className:"w-2 h-2 rounded-full",style:{background:T[E.agent]}}),H.default.createElement("span",{className:"font-semibold text-gray-900"},E.agent),H.default.createElement("span",{className:"text-gray-500"},"#",E.action)),H.default.createElement("span",{className:"text-xs px-2 py-0.5 rounded",style:{background:T[E.agent]+"20",color:T[E.agent]}},E.count," calls")),H.default.createElement("div",{className:"flex flex-wrap gap-4 text-sm"},H.default.createElement("div",null,H.default.createElement("div",{className:"text-xs text-gray-500"},"Avg"),H.default.createElement("div",{className:"font-medium"},Math.round(E.totalDuration/E.count),"ms")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-xs text-gray-500"},"Min/Max"),H.default.createElement("div",{className:"text-gray-600"},Math.round(E.minDuration),"ms / ",Math.round(E.maxDuration),"ms")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-xs text-gray-500"},"Errors"),H.default.createElement("div",{className:E.errors>0?"text-red-600":"text-green-600"},E.errors," (",(E.errors/E.count*100).toFixed(0),"%)")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-xs text-gray-500"},"Tokens"),H.default.createElement("div",{className:"text-gray-600"},oe(E.tokens).toLocaleString()))))})),C==="tools"&&(Y.length===0?H.default.createElement("div",{className:"text-center py-8 text-gray-500 text-sm"},"No tool calls in this window"):H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},H.default.createElement("div",{className:"flex items-center gap-4 px-4 py-2 text-xs font-medium text-gray-500 border-b border-gray-100"},H.default.createElement("div",{className:"flex-1"},"Tool"),H.default.createElement("div",{className:"w-20 text-right"},"Calls"),H.default.createElement("div",{className:"w-24 text-right"},"Total time"),H.default.createElement("div",{className:"w-20 text-right"},"Avg"),H.default.createElement("div",{className:"w-20 text-right"},"Slowest")),Y.map(E=>{let $=Y[0].totalDuration?E.totalDuration/Y[0].totalDuration*100:0;return H.default.createElement("div",{key:E.name,className:"px-4 py-2 border-b border-gray-50 last:border-0"},H.default.createElement("div",{className:"flex items-center gap-4 text-sm"},H.default.createElement("div",{className:"flex-1 min-w-0"},H.default.createElement("div",{className:"font-medium text-gray-900 truncate",title:E.name},E.name),E.agents.length>0&&H.default.createElement("div",{className:"text-xs text-gray-400 truncate",title:E.agents.join(", ")},E.agents.join(", "))),H.default.createElement("div",{className:"w-20 text-right text-gray-700",style:{fontFamily:Pt.mono}},E.count.toLocaleString(),E.errors>0&&H.default.createElement("span",{className:"text-red-600 ml-1",title:`${E.errors} failed`},"(",E.errors,")")),H.default.createElement("div",{className:"w-24 text-right text-gray-900 font-medium",style:{fontFamily:Pt.mono}},Qn(E.totalDuration)),H.default.createElement("div",{className:"w-20 text-right text-gray-500",style:{fontFamily:Pt.mono}},Qn(E.avgDuration)),H.default.createElement("div",{className:"w-20 text-right text-gray-500",style:{fontFamily:Pt.mono}},Qn(E.maxDuration))),H.default.createElement("div",{className:"h-1 bg-gray-100 rounded mt-1.5"},H.default.createElement("div",{className:"h-1 bg-green-500 rounded",style:{width:`${Math.max($,1)}%`}})))}))),C==="spans"&&He(!1),C==="timeline"&&!G&&H.default.createElement("div",{className:"space-y-4"},j.length===0?H.default.createElement("div",{className:"text-center py-8 text-gray-500"},"No traces match filters"):j.map(E=>H.default.createElement(VC,{key:E.id,trace:E,darkMode:!1,expanded:y===E.id,onToggle:()=>b(y===E.id?null:E.id)}))),G&&C==="timeline"&&H.default.createElement("div",{className:"text-center py-12"},H.default.createElement("div",{className:"text-gray-400 text-lg"},"No traces yet"),H.default.createElement("p",{className:"text-gray-500 text-sm mt-2"},"Run an agent, or point your app's ActiveAgent telemetry at this workspace to see traces appear here")))}var xe=Z(J());var GC=Z(J());function pI({trace:e,darkMode:t,height:r=8}){let n=Jn(t);if(!e)return GC.default.createElement("div",{className:"rounded",style:{height:`${r}px`,background:n.trackBg}});let o=e.spans||[],a=e.duration_ms||1,i=[...o].sort((s,l)=>(s.nested||0)-(l.nested||0));return GC.default.createElement("div",{style:{position:"relative",height:`${r}px`,borderRadius:"999px",background:n.trackBg,overflow:"hidden",flex:1}},i.map((s,l)=>GC.default.createElement("div",{key:s.span_id||l,title:`${s.name} \xB7 ${Qn(s.duration)}`,style:{position:"absolute",top:0,bottom:0,left:`${Math.min(s.start/a*100,99)}%`,width:`${Math.max(s.duration/a*100,.8)}%`,background:s.error?"#ef4444":sI[s.type]||"#9ca3af"}})))}var Ws=Z(J());var yr=Z(J());var Du=Z(J());var uSe=/\/agents\/(\d+)/;function Ra(...e){return t=>e.some(r=>t.startsWith(r))?{}:null}function cSe(e){return t=>t===e?{}:null}function t0(e){return t=>e.test(t)?{agentId:t.match(uSe)?.[1]}:null}function YC(e){return({agent:t})=>t?`/agents/${t.id}${e}`:""}var dSe=e=>e.assistantEnabled!==!1,pSe=t0(/\/agents\/\d+\/(interactions|history)/),fSe=["recording","context","run","scenario_result"],mSe=/^\/replay\/(?:(context|run|scenario_result)\/)?(\d+)\/?$/;function gSe(e){let t=e.match(mSe);return t?{sessionKind:t[1]||"recording",sessionId:t[2]}:null}var fI=[{view:"assistant",match:cSe("/assistant"),path:"/assistant",enabled:dSe},{view:"traces",match:Ra("/traces"),path:"/traces"},{view:"metrics",match:Ra("/metrics"),path:"/metrics"},{view:"scenarios",match:Ra("/scenarios"),path:"/scenarios"},{view:"scenarios",match:e=>e.startsWith("/catalogs")?{replacePath:e.replace("/catalogs","/scenarios")}:null},{view:"interactions",match:Ra("/interactions"),path:"/interactions"},{view:"tools",match:Ra("/tools"),path:"/tools"},{view:"mcp",match:e=>{if(!e.startsWith("/mcp"))return null;let t=e.match(/^\/mcp\/([^/?#]+)/)?.[1];return t?{focusServer:decodeURIComponent(t)}:{}},path:"/mcp"},{view:"evaluations",match:Ra("/evaluations"),path:"/evaluations"},{view:"analytics",match:Ra("/analytics"),path:"/analytics"},{view:"projects",match:Ra("/projects"),path:"/projects"},{view:"exploration",match:Ra("/explorations"),path:"/explorations"},{view:"builder",match:Ra("/agents/new"),path:"/agents/new"},{view:"history",match:e=>{let t=pSe(e);return t&&e.includes("/history")&&(t.replacePath=e.replace("/history","/interactions")),t},path:YC("/interactions")},{view:"agent-analytics",match:t0(/\/agents\/\d+\/analytics/),path:YC("/analytics")},{view:"editor",match:t0(/\/agents\/\d+\/edit/),path:YC("/edit")},{view:"runner",match:t0(/\/agents\/\d+\/run/),path:YC("/run")},{view:"history",match:t0(/\/agents\/\d+\/?$/)},{view:"replay",match:gSe},{view:"sessions",match:Ra("/sessions","/replay"),path:"/sessions"},{view:"sandbox",match:Ra("/sandbox","/demo"),path:"/sandbox"},{view:"organization",match:Ra("/organization"),path:"/organization"},{view:"settings",match:Ra("/settings"),path:"/settings"}],hSe="list",uY=[{id:"agents",label:null,items:[{view:"assistant",label:"Ask ActiveAgents",glyph:">"},{view:"list",label:"Agents",icon:"agents",badge:"agentCount"},{view:"builder",label:"New Agent",icon:"newAgent"},{view:"sandbox",label:"Run Agents",icon:"demo"},{view:"projects",label:"Projects",glyph:""}]},{id:"observability",label:"Observability",items:[{view:"traces",label:"Traces",icon:"traces"},{view:"interactions",label:"Interactions",icon:"interactions",badge:"pendingInputCount",badgeTone:"attention",badgeTitle:"requests waiting for an answer"},{view:"tools",label:"Tools",icon:"tools"},{view:"mcp",label:"MCP Services",icon:"mcp"},{view:"metrics",label:"Metrics",icon:"metrics"},{view:"evaluations",label:"Evaluations",icon:"evaluations"},{view:"scenarios",label:"Scenarios",icon:"evaluations"},{view:"sessions",label:"Sessions",icon:"replay",also:["replay"]}]},{id:"workspace",label:"Workspace",items:[{view:"organization",label:"Organization",glyph:"\u{1F3E2}"},{view:"settings",label:"Settings",glyph:"\u2699\uFE0F"}]}];function cY(e={}){return{assistantEnabled:e.assistantEnabled!==!1}}function r0(e,t={}){return fI.every(r=>r.view!==e||!r.enabled||r.enabled(t))}function dY(e,t={}){for(let r of fI){if(r.enabled&&!r.enabled(t))continue;let n=r.match(e);if(n)return{view:r.view,...n}}return{view:hSe}}function XC(e,{agent:t=null,features:r={}}={}){if(!r0(e,r))return null;let n=fI.find(o=>o.view===e&&o.path!==void 0);return n&&(typeof n.path=="function"?n.path({agent:t}):n.path)||""}function pY(e){for(let t of uY){let r=t.items.find(n=>n.also?.includes(e));if(r)return r.view}return e}function dh(e,t){return!fSe.includes(e)||!/^[1-9]\d*$/.test(String(t))?null:e==="recording"?`/replay/${t}`:`/replay/${e}/${t}`}function fY(e={}){return uY.map(t=>({...t,items:t.items.filter(r=>r0(r.view,e))}))}var mI="/api/input_requests",ZC="action-agent:input-requests-changed",gY=3e4,mY=100,ySe=["text","choice","confirm","secret"];function hY({agentId:e=null,runId:t=null}={}){let r=new URLSearchParams;e!=null&&r.set("agent_id",String(e)),t!=null&&r.set("run_id",String(t));let n=r.toString();return n?`${mI}?${n}`:mI}function ph(e){return(Array.isArray(e)?e:[]).filter(t=>t&&t.status==="pending")}function yY(e){let t=ph(e).length;if(t!==0)return t>=mY?`${mY-1}+`:t}function gI(e){let t=e?.status;return t==="pending"||t==="running"?"poll":t==="awaiting_input"?ph(e.input_requests).length>0?"awaiting":"poll":"finished"}function hI(e){return ySe.includes(e?.kind)?e.kind:null}function vY(e){return(Array.isArray(e?.options)?e.options:[]).map(t=>{if(t&&typeof t=="object"){let r=String(t.value??t.label??"");return{value:r,label:String(t.label??r)}}return t==null?null:{value:String(t),label:String(t)}}).filter(t=>t&&t.value!=="")}function xY(e){return e?.id==null?"answer":`answer-${e.id}`}function bY(e){switch(hI(e)){case"text":return[{type:"form",submit:"Answer",fields:[{name:xY(e),label:"Your answer",type:"textarea",required:!0}]}];case"choice":return[{type:"choices",options:vY(e).map(t=>t.label)}];default:return[]}}function wY(e,t){if(t?.kind==="form"){let r=t.values?.[xY(e)];return r==null?void 0:String(r)}if(t?.kind==="choice")return vY(e).find(r=>r.label===t.text)?.value}var vSe={answered:"Already answered",declined:"Already declined",expired:"Expired before it was answered",cancelled:"Cancelled: the run ended"};function xSe(e,t={}){if(e>=200&&e<300)return{state:t?.input_request?.status==="declined"?"declined":"answered"};if(e===409){let r=t?.status||null;return{state:"closed",status:r,message:vSe[r]||"No longer waiting for an answer"}}return e===422?{state:"invalid",message:t?.error||"That answer does not fit this request"}:e===404?{state:"error",message:"This request is no longer available"}:{state:"error",message:t?.error||`Request failed (${e})`}}function yI(e){return["answered","declined","closed"].includes(e?.state)}async function SY(e,{answer:t,decline:r=!1}={},n=globalThis.fetch){let o=`${mI}/${encodeURIComponent(e.id)}/${r?"decline":"answer"}`,a;try{a=await n(o,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(r?{}:{answer:t})})}catch{return{state:"error",message:"Could not reach the server. Try again."}}let i=await a.json().catch(()=>({}));return xSe(a.status,i)}function kY(e,t){return t?.state==="closed"?t.message:t?.state==="declined"?e?.kind==="confirm"?"Declined: the tool does not run":"Declined":t?.state==="answered"?e?.kind==="confirm"?"Approved: the tool runs":"Answered: the run continues":null}function _Y(e){return e?e.name?String(e.name):e.id!=null?`${e.type||"user"} #${e.id}`:null:null}function CY(e,t=Date.now()){if(!e)return null;let r=new Date(e).getTime();if(Number.isNaN(r))return null;let n=Math.floor((r-t)/6e4);if(n<0)return"expired";if(n<60)return`expires in ${Math.max(n,1)}m`;let o=Math.floor(n/60);return o<48?`expires in ${o}h`:`expires in ${Math.floor(o/24)}d`}function AY(e,t=Date.now()){return e?`asked ${ov(e,t)}`:null}function EY(e){let t=e?.arguments;return t==null||typeof t=="object"&&Object.keys(t).length===0?null:typeof t=="string"?t:JSON.stringify(t,null,2)}function NY(e){let t=e?.agent?.id,r=e?.run_id;if(t==null||r==null)return null;let n=XC("runner",{agent:{id:t}});return n?`${n}?run=${encodeURIComponent(r)}`:null}function TY(e=""){let t=new URLSearchParams(e).get("run");return t&&/^\d+$/.test(t)?Number(t):null}function JC(){window.dispatchEvent(new CustomEvent(ZC))}function QC({agentId:e=null,refreshKey:t,enabled:r=!0,intervalMs:n=gY}={}){let[o,a]=(0,Du.useState)(null),[i,s]=(0,Du.useState)(null),l=(0,Du.useRef)(0),u=(0,Du.useCallback)(async()=>{let c=++l.current;try{let d=await fetch(hY({agentId:e}));if(!d.ok)throw new Error(`Request failed (${d.status})`);let p=await d.json();if(c!==l.current)return;a(Array.isArray(p.input_requests)?p.input_requests:[]),s(null)}catch(d){if(c!==l.current)return;s(d.message)}},[e]);return(0,Du.useEffect)(()=>{if(!r)return;u();let c=setInterval(u,n);return window.addEventListener(ZC,u),()=>{clearInterval(c),window.removeEventListener(ZC,u),l.current+=1}},[r,u,n,t]),{requests:o,error:i,refresh:u}}var bSe={text:"question",choice:"choice",confirm:"approval",secret:"secret"},wSe={answered:"success",declined:"muted",closed:"warning"},vI={fontFamily:U,fontSize:11,color:"var(--color-text-muted)"},SSe={flex:1,minWidth:0,padding:"7px 10px",borderRadius:8,border:"1px solid var(--color-border-strong)",background:"var(--color-surface)",color:"var(--color-text-primary)",fontFamily:U,fontSize:13};function kSe({request:e,busy:t,onSubmit:r}){let[n,o]=(0,yr.useState)("");return yr.default.createElement("form",{onSubmit:i=>{if(i.preventDefault(),!n||t)return;let s=n;o(""),r(s)},style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},yr.default.createElement("input",{type:"password",autoComplete:"off",spellCheck:!1,"data-aa-secret":"","data-testid":"input-request-secret","aria-label":e.prompt,value:n,onChange:i=>o(i.target.value),disabled:t,style:SSe}),yr.default.createElement(ce,{type:"submit",variant:"primary",size:"sm",disabled:t||!n,testId:"input-request-secret-submit"},t?"Sending\u2026":"Send"))}function _Se({request:e,busy:t,onApprove:r,onDecline:n}){let o=EY(e);return yr.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8}},o&&yr.default.createElement("pre",{"data-testid":"input-request-arguments",style:{margin:0,padding:"8px 10px",borderRadius:8,maxHeight:200,overflow:"auto",whiteSpace:"pre-wrap",background:"var(--color-muted)",color:"var(--color-text-cell)",fontFamily:U,fontSize:12}},o),yr.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},yr.default.createElement(ce,{variant:"primary",size:"sm",onClick:r,disabled:t,testId:"input-request-approve"},"Approve"),yr.default.createElement(ce,{variant:"secondary",size:"sm",onClick:n,disabled:t,testId:"input-request-decline"},"Decline")))}function Qp({request:e,onSettled:t,initialOutcome:r=null,showRunLink:n=!0}){let{darkMode:o}=ut(),[a,i]=(0,yr.useState)(!1),[s,l]=(0,yr.useState)(r),u=hI(e),c=yI(s),d=async h=>{if(a||c)return;i(!0);let v=await SY(e,h);i(!1),l(v),yI(v)&&(JC(),t&&t(e,v))},p=h=>{h!==void 0&&d({answer:h})},f=()=>d({decline:!0}),m=n?NY(e):null,y=_Y(e.actor),b=CY(e.expires_at),g=AY(e.created_at);return yr.default.createElement("div",{"data-testid":"input-request-card","data-kind":e.kind,"data-state":s?.state||"pending",style:{border:"1px solid var(--color-border)",borderRadius:10,background:"var(--color-card)",padding:"12px 14px",display:"flex",flexDirection:"column",gap:8}},yr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},yr.default.createElement(ke,{tone:e.kind==="confirm"?"warning":"info",size:10},bSe[e.kind]||e.kind),yr.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},e.agent?.name||"An agent"," is asking"),m&&yr.default.createElement(Gr,{href:Re(m),onClick:()=>lt(m),title:"Open the run this request paused"},yr.default.createElement("span",{"data-testid":"input-request-run-link"},"run #",e.run_id)),b&&yr.default.createElement("span",{style:{...vI,marginLeft:"auto",color:b==="expired"?"var(--color-error-text)":vI.color}},b)),yr.default.createElement("div",{style:{fontSize:14,color:"var(--color-text-primary)",whiteSpace:"pre-wrap",overflowWrap:"anywhere"}},e.prompt),yr.default.createElement("div",{style:{...vI,display:"flex",gap:10,flexWrap:"wrap"}},y&&yr.default.createElement("span",{"data-testid":"input-request-actor"},"for ",y),e.tool_name&&yr.default.createElement("span",{"data-testid":"input-request-tool"},"via ",e.tool_name),g&&yr.default.createElement("span",null,g)),c?yr.default.createElement("div",{"data-testid":"input-request-outcome"},yr.default.createElement(ke,{tone:wSe[s.state]||"muted"},kY(e,s))):yr.default.createElement(yr.default.Fragment,null,(u==="text"||u==="choice")&&yr.default.createElement(wl,{blocks:bY(e),darkMode:o,onAction:h=>p(wY(e,h))}),u==="confirm"&&yr.default.createElement(_Se,{request:e,busy:a,onApprove:()=>p(!0),onDecline:f}),u==="secret"&&yr.default.createElement(kSe,{request:e,busy:a,onSubmit:p}),u!=="confirm"&&yr.default.createElement("div",null,yr.default.createElement(ce,{variant:"ghost",size:"sm",onClick:f,disabled:a,testId:"input-request-decline",style:{padding:"2px 0"}},"Decline")),s?.message&&yr.default.createElement("div",{"data-testid":"input-request-error",role:"alert",style:{fontSize:12,color:"var(--color-error-text)"}},s.message)))}function CSe({pending:e,settled:t=[],onSettled:r}){return e.length===0&&t.length===0?null:Ws.default.createElement("section",{"data-testid":"needs-input-lane","aria-label":"Needs input",style:{border:"1px solid var(--color-warning)",borderRadius:12,background:"var(--color-warning-soft)",padding:14,display:"flex",flexDirection:"column",gap:10}},Ws.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10,flexWrap:"wrap"}},Ws.default.createElement(Ue,{color:"var(--color-warning-text)"},"Needs input"),Ws.default.createElement("span",{"data-testid":"needs-input-count",style:{fontFamily:U,fontSize:11,color:"var(--color-warning-text)"}},e.length," waiting"),Ws.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"Each run is paused until its request is answered. Answering continues the same run.")),e.map(n=>Ws.default.createElement(Qp,{key:n.id,request:n,onSettled:r})),t.map(({request:n,outcome:o})=>Ws.default.createElement(Qp,{key:n.id,request:n,initialOutcome:o})))}function xI({agentId:e=null}){let{requests:t}=QC({agentId:e}),[r,n]=(0,Ws.useState)([]),o=new Set(r.map(({request:s})=>s.id)),a=ph(t).filter(s=>!o.has(s.id));return Ws.default.createElement(CSe,{pending:a,settled:r,onSettled:(s,l)=>{n(u=>[...u.filter(c=>c.request.id!==s.id),{request:s,outcome:l}])}})}var mr=Z(J());function OY(e=[],t=""){let r=t.trim().toLowerCase();return e.filter(n=>n.status!=="archived"&&n.status!=="observed").filter(n=>!r||`${n.name||""} ${n.description||""}`.toLowerCase().includes(r)).sort((n,o)=>{let a=i=>i.status==="active"?0:1;return a(n)-a(o)||String(n.name||"").localeCompare(String(o.name||""))})}var PY=e=>`/agents/${e.id}/run?new=1`;function n0({inline:e=!1,label:t="New interaction"}){let[r,n]=(0,mr.useState)(e),[o,a]=(0,mr.useState)(null),[i,s]=(0,mr.useState)(null),[l,u]=(0,mr.useState)(""),c=(0,mr.useRef)(null);(0,mr.useEffect)(()=>{!r||o||fetch("/api/agents").then(f=>{if(!f.ok)throw new Error(`HTTP ${f.status}`);return f.json()}).then(f=>a(f.agents||[])).catch(f=>s(f.message))},[r,o]),(0,mr.useEffect)(()=>{if(e||!r)return;let f=m=>{c.current&&!c.current.contains(m.target)&&n(!1)};return document.addEventListener("mousedown",f),()=>document.removeEventListener("mousedown",f)},[e,r]);let d=(0,mr.useMemo)(()=>OY(o||[],l),[o,l]),p=mr.default.createElement("div",{"data-testid":"new-interaction-agents"},(o?.length||0)>6&&mr.default.createElement("input",{type:"search",value:l,onChange:f=>u(f.target.value),placeholder:"Find an agent","aria-label":"Find an agent",autoFocus:!e,className:"w-full mb-2 px-3 py-1.5 text-sm rounded-lg",style:{background:"var(--color-muted)",border:"1px solid var(--color-border)",color:"var(--color-text-primary)"}}),i&&mr.default.createElement("p",{className:"text-sm",style:{color:"var(--color-error)"}},"Could not load agents: ",i),!o&&!i&&mr.default.createElement("p",{className:"text-sm",style:{color:"var(--color-text-muted)"}},"Loading agents\u2026"),o&&d.length===0&&mr.default.createElement(Jr,null,o.length===0?"No agents in this workspace yet.":"No agent matches."," ",mr.default.createElement("a",{href:"#",onClick:f=>{f.preventDefault(),lt("/agents/new")},style:{color:"var(--color-info)"}},"Create an agent")),mr.default.createElement("ul",{className:"space-y-1 max-h-80 overflow-y-auto"},d.map(f=>mr.default.createElement("li",{key:f.id},mr.default.createElement("button",{type:"button","data-testid":`new-interaction-agent-${f.id}`,onClick:()=>lt(PY(f)),className:"w-full text-left px-3 py-2 rounded-lg block",style:{border:"1px solid var(--color-border)",background:"var(--color-card)",cursor:"pointer"}},mr.default.createElement("span",{className:"flex items-center justify-between gap-2"},mr.default.createElement("span",{className:"text-sm font-medium truncate min-w-0",style:{color:"var(--color-text-primary)"}},f.name),f.status&&f.status!=="active"&&mr.default.createElement(ke,{tone:"muted"},f.status)),mr.default.createElement("span",{className:"block truncate",style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},f.provider,"/",f.model),f.description&&mr.default.createElement("span",{className:"block text-xs truncate",style:{color:"var(--color-text-secondary)"}},f.description))))));return e?mr.default.createElement(je,{testId:"new-interaction-card"},mr.default.createElement("div",{className:"flex items-baseline justify-between mb-3 gap-3"},mr.default.createElement("div",null,mr.default.createElement(Ue,null,"Your agents"),mr.default.createElement("p",{className:"text-sm mt-1",style:{color:"var(--color-text-secondary)"}},"Start a new interaction. It runs with the instructions, tools and MCP servers saved on the agent."))),p):mr.default.createElement("div",{ref:c,className:"relative"},mr.default.createElement(ce,{variant:"primary",size:"sm",testId:"new-interaction",onClick:()=>n(f=>!f)},t),r&&mr.default.createElement("div",{className:"absolute right-0 mt-2 z-20 p-3 rounded-xl",style:{width:360,background:"var(--color-card)",border:"1px solid var(--color-border)",boxShadow:"0 8px 24px rgba(0,0,0,0.12)"}},mr.default.createElement(Ue,{style:{display:"block",marginBottom:8}},"Start a conversation with"),p))}var Ye=Z(J());var e2=(e,t)=>e!=null&&e>=400&&e<500||t>=5;var Hs=(e,t)=>`${e} ${t}${e===1?"":"s"}`,o0=(e,t)=>{let r=String(e??"");return r.length>t?`${r.slice(0,t-1)}\u2026`:r},t2=e=>String(e||"").replace(/_/g," ").replace(/^\w/,t=>t.toUpperCase()),MY=e=>String(e??"").replace(/\s+/g," ").trim(),Rp=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),fh=e=>{try{return JSON.stringify(e)??String(e)}catch{return String(e)}},r2=e=>{if(e==null||e===""||Number.isNaN(Number(e)))return null;let t=Number(e);return t===0?"$0.00":Math.abs(t)<.01?`$${t.toFixed(4)}`:`$${t.toFixed(2)}`},bI=e=>{if(e==null||e===""||Number.isNaN(Number(e)))return null;let t=Math.max(0,Number(e));if(t<1e3)return`${Math.round(t)}ms`;if(t<6e4)return`${(t/1e3).toFixed(1).replace(/\.0$/,"")}s`;let r=Math.round(t/1e3);return r<3600?`${Math.floor(r/60)}m ${r%60}s`:`${Math.floor(r/3600)}h ${Math.floor(r%3600/60)}m`},jY=(e,{num_turns:t,total_cost_usd:r,duration_ms:n}={})=>[e,t==null||t===""?null:Hs(Number(t),"turn"),r2(r),bI(n)].filter(Boolean).join(" \xB7 "),$Y=(e,t=Date.now())=>{if(!e)return null;let r=new Date(e).getTime();if(Number.isNaN(r))return null;let n=Math.ceil((r-t)/6e4);return n<=0?"past its expiry":n<60?`expires in ${n}m`:`expires in ${Math.floor(n/60)}h${n%60?` ${n%60}m`:""}`},at=(e,t)=>{let r=i=>Array.isArray(i)?i.filter(Boolean).join(", "):typeof i=="string"?i:"",n=Rp(e)?e:{},o=r(n.error)||r(n.errors),a=typeof n.message=="string"?n.message:"";return o&&a?`${o}: ${a}`:o||a||t},ASe={pending:{label:"Queued",tone:"progress"},provisioning:{label:"Booting",tone:"progress"},ready:{label:"Ready",tone:"success"},running:{label:"Running",tone:"success"},completed:{label:"Completed",tone:"neutral"},expired:{label:"Stopped",tone:"neutral"},failed:{label:"Failed",tone:"error"}},LY=e=>ASe[e]||{label:t2(e)||"Unknown",tone:"neutral"},n2=e=>["pending","provisioning"].includes(e?.status),zY=e=>e?.status==="ready",ESe={queued:{label:"Queued",tone:"progress"},running:{label:"Running",tone:"progress"},succeeded:{label:"Succeeded",tone:"success"},failed:{label:"Failed",tone:"error"},cancelled:{label:"Cancelled",tone:"neutral"}},fs=e=>ESe[e]||{label:t2(e)||"Unknown",tone:"neutral"},qs=e=>["queued","running"].includes(e?.status),l0=e=>["succeeded","failed","cancelled"].includes(e?.status),wI=e=>l0(e)&&e?.diff_pending===!0,SI=e=>l0(e)&&!wI(e),BY=e=>e?.status==="cancelled"&&SI(e)&&e?.diff==null&&!(Number(e?.event_count)>0),kI=e=>{if(!l0(e)){let t=Number(e?.event_count)||0;return t>0?Hs(t,"event"):""}return jY(null,e)},FY=e=>[fs(e?.status).label,kI(e)].filter(Boolean).join(" \xB7 "),UY=(e,t=80)=>{let r=String(e||"").split(` +`).map(n=>n.trim()).find(Boolean)||"";return o0(r,t)||"(empty prompt)"},sd=(e,t,r)=>{if(!t||t[r]==null)return e;let n=e.findIndex(a=>a[r]===t[r]);if(n===-1)return[t,...e];let o=e.slice();return o[n]={...e[n],...t},o},WY=(e,t,r)=>t&&e.some(n=>n[r]===t[r])?sd(e,t,r):e,HY=e=>{if(!e)return e;let{events:t,events_offset:r,dropped_events_count:n,diff:o,...a}=e;return a},qY=(e,t)=>{let r=new Set(t||[]),n={},o=[];return(e||[]).forEach(a=>{!a||a.status==="expired"||a.sandbox_type&&a.sandbox_type!=="app_runtime"||(r.has(a.repository)?(n[a.repository]||=[]).push(a):o.push(a))}),{byRepository:n,others:o}},KY=(e,t)=>{let r=Array.isArray(e)?e:[],n=Array.isArray(t?.events)?t.events:[],o=Math.max(0,Math.min(Number(t?.events_offset)||0,r.length));return[...r.slice(0,o),...n]},Sl=(e,t)=>{let r=String(e??"");if(!t)return r;let n=String(t).replace(/\/+$/,"");return r===n?".":r.startsWith(`${n}/`)?r.slice(n.length+1):r},NSe={Bash:e=>e.command,Read:(e,t)=>Sl(e.file_path,t),Write:(e,t)=>Sl(e.file_path,t),Edit:(e,t)=>Sl(e.file_path,t),MultiEdit:(e,t)=>{let r=Array.isArray(e.edits)?` (${Hs(e.edits.length,"edit")})`:"";return`${Sl(e.file_path,t)}${r}`},NotebookEdit:(e,t)=>Sl(e.notebook_path,t),NotebookRead:(e,t)=>Sl(e.notebook_path,t),Glob:(e,t)=>e.path?`${e.pattern} in ${Sl(e.path,t)}`:e.pattern,Grep:(e,t)=>[`"${e.pattern}"`,e.path&&`in ${Sl(e.path,t)}`,e.glob&&`(${e.glob})`].filter(Boolean).join(" "),LS:(e,t)=>Sl(e.path,t),WebFetch:e=>e.url,WebSearch:e=>e.query,Task:e=>e.description||e.prompt,Agent:e=>e.description||e.prompt,TodoWrite:e=>Array.isArray(e.todos)?Hs(e.todos.length,"todo"):"",BashOutput:e=>e.bash_id,KillShell:e=>e.shell_id,KillBash:e=>e.shell_id,Skill:e=>e.skill||e.command,SlashCommand:e=>e.command},TSe=["command","file_path","path","url","query","pattern","description","name","prompt"],OSe=(e,t,{cwd:r}={})=>{if(t==null)return"";if(!Rp(t))return o0(MY(typeof t=="string"?t:fh(t)),120);let n=NSe[e],o=n?n(t,r):null;if(o==null||o===""){let a=TSe.find(i=>typeof t[i]=="string"&&t[i].trim());a?o=["file_path","path"].includes(a)?Sl(t[a],r):t[a]:o=Object.keys(t).length?fh(t):""}return o0(MY(o),120)},PSe=e=>e==null?"":typeof e=="string"?e:Array.isArray(e)?e.map(t=>typeof t=="string"?t:t?.type==="text"?t.text??"":t?.type==="image"?"[image]":fh(t)).join(` +`):fh(e),MSe=(e,{chars:t=600,lines:r=12}={})=>{let n=String(e??"").replace(/\s+$/,""),o=n.split(` `).slice(0,r).join(` -`);o.length>t&&(o=o.slice(0,t));let a=o.lengthe?.is_error===!0||e?.subtype!=null&&e.subtype!=="success",TSe=e=>{if(!qY(e))return"Done";if(PY[e.subtype])return PY[e.subtype];let t=String(e.subtype||"").replace(/^error_?/,"").replace(/_/g," ").trim();return t&&e.subtype!=="success"?`Error (${t})`:"Error"},OSe=e=>{if(e.subtype==="init"){let t=Array.isArray(e.tools)?Hs(e.tools.length,"tool"):null;return{kind:"system",text:["Session started",...[e.model&&`model ${e.model}`,e.permissionMode&&`${e.permissionMode} mode`,t].filter(Boolean)].join(" \xB7 ")}}if(e.subtype==="compact_boundary")return{kind:"system",text:"Conversation compacted"};if(e.subtype==="api_retry"){let t=e.attempt??"?",r=e.max_retries!=null?`${t}/${e.max_retries}`:String(t),n=[e.error_status,e.error].filter(o=>o!=null&&o!=="").join(" ");return{kind:"system",text:[`API retry ${r}`,n].filter(Boolean).join(" \xB7 ")}}return{kind:"system",text:e.subtype?`System: ${e2(e.subtype).toLowerCase()}`:"System event"}},PSe=/^(hook_|thinking_tokens$)/,MSe=e=>PSe.test(String(e?.subtype||"")),ISe=e=>{let t=e?.rate_limit_info||{},r=String(t.status||"");if(r===""||r==="allowed")return[];let n=Number(t.resetsAt),o=Number.isFinite(n)&&n>0?`resets ${new Date(n*1e3).toLocaleTimeString()}`:null;return[{kind:"system",text:[`Rate limit: ${e2(r).toLowerCase()}`,o].filter(Boolean).join(" \xB7 ")}]},QC=(e,t)=>({kind:"unknown",label:String(e||"event"),text:n0(ph(t),300)}),MY=(e,t,r)=>{if(typeof e=="string")return e.trim()?[{kind:t==="assistant"?"text":"user_text",text:e}]:[];if(!Qp(e))return[];switch(e.type){case"text":return String(e.text??"").trim()?[{kind:t==="assistant"?"text":"user_text",text:e.text}]:[];case"thinking":return String(e.thinking??"").trim()?[{kind:"thinking",text:e.thinking}]:[];case"redacted_thinking":return[{kind:"thinking",text:"(redacted)"}];case"tool_use":case"server_tool_use":{let n=String(e.name||"tool");return e.id&&(r.toolNames[e.id]=n),[{kind:"tool_use",name:n,summary:ASe(n,e.input,r),id:e.id||null}]}case"tool_result":{let{text:n,truncated:o}=NSe(ESe(e.content));return[{kind:"tool_result",name:r.toolNames[e.tool_use_id]||null,text:n,truncated:o,isError:e.is_error===!0}]}default:return[QC(`${t} ${e.type||"block"}`,e)]}},DSe=(e,t)=>{let r=e.message?.content;return typeof r=="string"?MY(r,e.type,t):Array.isArray(r)?r.flatMap(n=>MY(n,e.type,t)):[QC(e.type,e)]},jSe=(e,t={toolNames:{}})=>{if(t.toolNames||={},!Qp(e))return e==null||e===""?[]:[{kind:"raw",text:typeof e=="string"?e:ph(e)}];let r=!!e.parent_tool_use_id,n=o=>r?o.map(a=>({...a,nested:!0})):o;switch(e.type){case"thread.started":return[{kind:"system",text:"Codex session started"}];case"turn.started":case"turn.completed":return[];case"item.started":case"item.updated":case"item.completed":{let o=e.item||{};return e.type!=="item.completed"?[]:o.type==="agent_message"?[{kind:"text",text:String(o.text||"")}]:o.type==="reasoning"?[{kind:"thinking",text:String(o.text||"")}]:o.type==="command_execution"?[{kind:"tool_use",name:"Command",summary:String(o.command||"")},{kind:"tool_result",text:String(o.aggregated_output||""),isError:o.status==="failed"||o.exit_code!=null&&o.exit_code!==0}]:[QC(o.type||e.type,o)]}case"system":return e.subtype==="init"&&e.cwd&&(t.cwd=e.cwd),MSe(e)?[]:[OSe(e)];case"rate_limit_event":return ISe(e);case"assistant":case"user":return n(DSe(e,t));case"result":{let o=Array.isArray(e.permission_denials)?e.permission_denials.length:0,a=IY(TSe(e),e);return[{kind:"result",tone:qY(e)?"error":"success",text:o?`${a} \xB7 ${Hs(o,"permission denial")}`:a}]}case"raw":return e.text==null||e.text===""?[]:[{kind:"raw",text:String(e.text)}];default:return[QC(e.type,e)]}},n2=e=>{let t={toolNames:{}};return(e||[]).flatMap((r,n)=>jSe(r,t).map((o,a)=>({...o,key:`${n}:${a}`})))},KY=/^diff (--git|--cc|--combined) /,$Se="\u2026 diff truncated",l0=e=>{if(!e)return[];let t=!0,r=1;return String(e).replace(/\n$/,"").split(` -`).map(n=>{if(KY.test(n))return t=!0,{text:n,kind:"meta"};if(n===$Se)return{text:n,kind:"meta"};if(n.startsWith("@@"))return t=!1,r=Math.max(1,n.match(/^@+/)[0].length-1),{text:n,kind:"hunk"};if(t)return{text:n,kind:"meta"};let o=n.slice(0,r);return o.includes("+")?{text:n,kind:"add"}:o.includes("-")?{text:n,kind:"del"}:{text:n,kind:"context"}})},VY=e=>{let t=l0(e),r=t.filter(a=>a.kind==="meta"&&KY.test(a.text)).length,n=t.filter(a=>a.kind==="add").length,o=t.filter(a=>a.kind==="del").length;return`${Hs(r,"file")} changed \xB7 +${n} \u2212${o}`},u0="default",c0="other",GY=["sonnet","opus","haiku"],LSe=/^[A-Za-z0-9][A-Za-z0-9._:[\]-]{0,99}$/,kI="actionagent.claudeCode.modelChoice",YY=(e="claude_code")=>[{value:u0,label:`Default (${e==="codex"?"Codex":"Claude Code"}'s own)`},...e==="codex"?[]:GY.map(t=>({value:t,label:t})),{value:c0,label:"Other\u2026"}],_I=e=>e===u0||e===c0||GY.includes(e),CI=(e,t="")=>{if(!_I(e)||e===u0)return{model:null};if(e!==c0)return{model:e};let r=String(t??"").trim();return r?LSe.test(r)?{model:r}:{error:`"${n0(r,40)}" is not a model name (letters, digits and . _ : [ ] -).`}:{error:"Enter a model id, or pick one of the options."}},XY=(e,t,r,n="claude_code")=>{let{model:o}=CI(t,r),a=o?{prompt:e,model:o}:{prompt:e};return n==="claude_code"?a:{...a,runner:n}},o2=e=>{let t={choice:u0,custom:""};if(typeof e!="string"||!e)return t;try{let r=JSON.parse(e);if(!Qp(r)||!_I(r.choice))return t;let n=typeof r.custom=="string"?r.custom.slice(0,100):"";return{choice:r.choice,custom:n}}catch{return t}},ZY=(e,t="")=>JSON.stringify({choice:_I(e)?e:u0,custom:String(t??"").slice(0,100)}),AI=e=>e?.model||"default model",o0="api_key",a0="local_login",JY="claude /login",QY="sk-ant-api03-\u2026",RY="https://platform.claude.com",eX="https://code.claude.com/docs/en/legal-and-compliance.md",a2=e=>{let t=Qp(e?.claude_code_login)?e.claude_code_login:{},r=e?.claude_code_auth===a0;return{mode:e?.claude_code_auth==="sandbox_login"?"sandbox_login":r?a0:o0,connected:e?.claude_code_connected===!0,loggedIn:r&&t.logged_in===!0,authMethod:r&&typeof t.auth_method=="string"&&t.auth_method?t.auth_method:null}},tX=(e,t)=>{if(!e)return{view:"loading",status:"Loading\u2026",tone:"neutral",keyForm:!1,needsReplacing:!1,loginHint:null};if(e.mode==="sandbox_login")return{view:"sandbox_login",status:"Your subscription, inside each sandbox",tone:"neutral",keyForm:!0,needsReplacing:t?.needs_replacing===!0,loginHint:null};if(e.mode===a0){let r=e.authMethod?` (${e.authMethod})`:"";return{view:a0,status:e.loggedIn?`Using this machine's Claude Code login \xB7 logged in${r}`:"Using this machine's Claude Code login \xB7 not logged in",tone:e.loggedIn?"success":"error",keyForm:!1,needsReplacing:!1,loginHint:e.loggedIn?null:JY}}return t?t.configured&&t.needs_replacing===!0?{view:o0,status:"Needs an API key: the stored subscription token is no longer used",tone:"error",keyForm:!0,needsReplacing:!0,loginHint:null}:{view:o0,status:t.configured?`Connected (${t.hint})`:"Not connected",tone:t.configured?"success":"neutral",keyForm:!0,needsReplacing:!1,loginHint:null}:{view:"loading",status:"Loading\u2026",tone:"neutral",keyForm:!1,needsReplacing:!1,loginHint:null}},rX=e=>e?.connected===!0?null:e?.mode==="sandbox_login"?{text:"Sign in with your Claude subscription in this sandbox, or connect an Anthropic API key.",loginHint:null,after:null}:e?.mode===a0?{text:"Claude Code is not logged in on this machine. Run",loginHint:JY,after:"as the user the dashboard runs as."}:{text:"Connect an Anthropic API key under Claude Code below to run sessions in this checkout.",loginHint:null,after:null},i0="local_login",nX="codex login",i2=e=>{let t=Qp(e?.codex_login)?e.codex_login:{},r=e?.codex_auth===i0;return{supported:e?.codex_sessions_supported===!0,mode:r?i0:o0,connected:e?.codex_connected===!0,loggedIn:r&&t.logged_in===!0,authMethod:r&&typeof t.auth_method=="string"&&t.auth_method?t.auth_method:null}},oX=(e,t)=>{let r={view:"loading",status:"Loading\u2026",tone:"neutral",keyForm:!1,loginHint:null};if(!e)return r;if(e.mode===i0){let n=e.authMethod?` (${e.authMethod})`:"";return{view:i0,status:e.loggedIn?`Using this machine's Codex login \xB7 logged in${n}`:"Using this machine's Codex login \xB7 not logged in",tone:e.loggedIn?"success":"error",keyForm:!1,loginHint:e.loggedIn?null:nX}}return t?{view:o0,status:t.configured?`Connected \xB7 ${t.hint}`:"Not connected",tone:t.configured?"success":"neutral",keyForm:!0,loginHint:null}:r},aX=e=>!e||e.supported!==!0?{text:"This sandbox backend does not support Codex.",loginHint:null,after:null}:e.connected===!0?null:e.mode===i0?{text:"Codex is not logged in on this machine. Run",loginHint:nX,after:"as the user the dashboard runs as."}:{text:"Connect an OpenAI API key in the Codex integration below.",loginHint:null,after:null};var sX=1500,EI=[{id:"all",label:"All"},{id:"agent",label:"Agent runs"},{id:"claude_code",label:"Claude Code"},{id:"codex",label:"Codex"}],zSe=new Set(EI.map(e=>e.id)),NI=e=>e?.source==="code_session"||/^code-\d+$/.test(String(e?.id??"")),Rp=e=>{let t=/^code-(\d+)$/.exec(String(e??""));return t?Number(t[1]):null},lX=(e,t="")=>{let r=new URLSearchParams(t),n=zSe.has(r.get("source"))?r.get("source"):"all",o=/^\d+$/.test(r.get("project")||"")?Number(r.get("project")):null,a=String(e||"").replace(/^\/interactions\/?/,"").replace(/\/$/,"");if(a==="latest")return{view:"latest",source:n,project:o,codeId:null};let i=Rp(a);return i?{view:"conversation",source:n,project:o,codeId:i}:{view:"list",source:n,project:o,codeId:null}},ms=e=>`/interactions/code-${e}`,s2=({source:e="all",project:t=null}={})=>{let r=new URLSearchParams;e&&e!=="all"&&r.set("source",e),t&&r.set("project",String(t));let n=r.toString();return`/interactions${n?`?${n}`:""}`},TI=({minutes:e=null,agentId:t=null,source:r="all",project:n=null}={})=>{let o=new URLSearchParams;return e&&o.set("minutes",String(e)),t&&o.set("agent_id",String(t)),r&&r!=="all"&&o.set("source",r),n&&o.set("project_id",String(n)),o.toString()},uX=e=>{let t=(e||[]).filter(NI);if(t.length===0)return null;let r=[...t].sort((n,o)=>String(o.last_activity_at).localeCompare(String(n.last_activity_at)));return r.find(n=>n.active)||r[0]},cX=e=>(e||[]).filter(t=>(t.events||[]).length>0).map(t=>`after[${encodeURIComponent(t.id)}]=${t.events_offset+t.events.length}`).join("&"),dX=(e,t)=>{if(!t)return e;if(!e)return t;let r=new Map((e.turns||[]).map(o=>[o.id,o])),n=(t.turns||[]).map(o=>{let a=r.get(o.id);if(!a||o.events_offset===0)return o;let i=(a.events||[]).slice(0,o.events_offset-a.events_offset);return{...o,events_offset:a.events_offset,events:[...i,...o.events||[]]}});return{...t,turns:n}},pX=e=>(e?.turns||[]).some(qs),fX=e=>{let t=[`Turn ${Number(e.turn_index)+1}`];return e.total_cost_usd!=null&&t.push(t2(e.total_cost_usd)),e.duration_ms!=null&&t.push(xI(e.duration_ms)),e.diff_stat&&t.push(`${Hs(e.diff_stat.files,"file")} +${e.diff_stat.additions} \u2212${e.diff_stat.deletions} since checkout`),t.join(" \xB7 ")},l2=e=>{let t=[Hs(e.turn_count??(e.turns||[]).length,"turn")];e.total_cost_usd&&t.push(t2(e.total_cost_usd));let r=e.tokens?.total||0;return r&&t.push(`${r>=1e3?`${(r/1e3).toFixed(1)}k`:r} tokens`),t.join(" \xB7 ")},mX=e=>{let t=e?.turns||[],r=t[t.length-1];if(!r||qs(r))return null;for(let n of[...r.events||[]].reverse()){let o=n?.message?.content;if(Array.isArray(o)){for(let a of[...o].reverse())if(a?.type==="tool_use"&&/(^|__)browser_request_person$/.test(String(a.name||""))){let i=typeof a.input?.reason=="string"?a.input.reason:null;if(i)return{reason:i,turn:r.turn_index}}}}return null},p0=e=>e?.runner==="codex"?"Codex":"Claude Code",gX=(e,{handoff:t=null}={})=>{if(e?.sandbox_status&&e.sandbox_status!=="ready")return`The sandbox is ${e.sandbox_status}: boot it again to continue this conversation.`;let r=(e?.turns||[]).filter(a=>a.status==="queued").length,n=(e?.turns||[]).some(a=>a.status==="running"),o=t?` ${p0(e)} will be told you drove the browser.`:"";return n?`Your message waits for the turn that runs${r?` (and ${Hs(r,"more")})`:""}.${o}`:`Sends the next turn, resuming this conversation.${o}`},hX=(e,t)=>{let r=new URLSearchParams(e||"").get("browser");return r==="1"||r==="0"?r==="1":t==="1"},ef=50,u2=25,c2=75,iX=5,d0=e=>{let t=Number(e);return Number.isFinite(t)?Math.min(c2,Math.max(u2,Math.round(t*10)/10)):ef},yX=(e,{left:t,width:r})=>r>0?d0((e-t)/r*100):ef,vX=(e,t)=>{switch(t){case"ArrowLeft":return d0(e-iX);case"ArrowRight":return d0(e+iX);case"Home":return u2;case"End":return c2;case"Enter":return ef;default:return null}};var Ee=Z(J());var Ut=Z(J());var m0={padding:16,border:"1px solid var(--color-border)",borderRadius:12,background:"var(--color-muted)",color:"var(--color-text-primary)"},OI={width:"100%",boxSizing:"border-box",padding:"12px 14px",borderRadius:8,border:"1px solid var(--color-border)",background:"var(--color-background)",color:"var(--color-text-primary)",fontFamily:"var(--font-mono)",fontSize:13};function PI({title:e,onClose:t,children:r}){let n=(0,Ut.useRef)(null);return(0,Ut.useEffect)(()=>{let o=n.current;return o?.showModal?.(),()=>o?.close?.()},[]),Ut.default.createElement("dialog",{ref:n,className:"aa-fix-dialog","aria-label":e,onCancel:o=>{o.preventDefault(),t()},style:{width:"min(760px, calc(100vw - 32px))",maxHeight:"calc(100dvh - 40px)",boxSizing:"border-box",padding:0,borderRadius:16,border:"1px solid var(--color-border)",background:"var(--color-card, var(--color-background))",color:"var(--color-text-primary)"}},Ut.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,padding:"20px 24px",borderBottom:"1px solid var(--color-border)"}},Ut.default.createElement("h2",{style:{margin:0,fontSize:19,letterSpacing:"-0.02em"}},e),Ut.default.createElement("button",{type:"button","aria-label":"Close dialog",onClick:t,style:{background:"none",border:0,color:"var(--color-text-secondary)",cursor:"pointer",fontSize:24}},"\xD7")),Ut.default.createElement("div",{style:{padding:24,display:"flex",flexDirection:"column",gap:18}},r))}async function f0(e,t="GET",r){let n=await fetch(e,{method:t,headers:r?{"Content-Type":"application/json"}:void 0,body:r?JSON.stringify(r):void 0,cache:"no-store"}),o=await n.json().catch(()=>({}));if(!n.ok)throw new Error(o.error||"Could not connect Claude Code. Please try again.");return o.login}var BSe=e=>e==="expired"?"This sign-in expired. Start again to get a fresh authorization page.":e==="completed"?"Claude Code signed in, but not with a Claude subscription. Start again and choose your Claude.ai account.":"Sign-in did not finish. Start again to retry.";function tf({sandbox:e,onConnected:t,onChange:r}){let n=`/api/sandboxes/${encodeURIComponent(e.session_id)}/claude_login`,[o,a]=(0,Ut.useState)(null),[i,s]=(0,Ut.useState)(!1),[l,u]=(0,Ut.useState)(""),[c,d]=(0,Ut.useState)(!1),[p,f]=(0,Ut.useState)(null),m=(0,Ut.useRef)(null),y=(0,Ut.useRef)(t);y.current=t,(0,Ut.useEffect)(()=>{let v=!1;return f0(n).then(x=>{v||a(x)}).catch(x=>{v||f(x.message)}),()=>{v=!0}},[n]),(0,Ut.useEffect)(()=>{if(!i)return;let v=!1,x,S=async()=>{try{let _=await f0(n);if(v)return;if(a(_),_.authorize_url&&m.current&&(m.current.location=_.authorize_url,m.current=null),_.logged_in){s(!1),u(""),d(!1),r?.(),y.current?.();return}if(!["starting","awaiting_code","submitted"].includes(_.status)){f(BSe(_.status)),d(!1);return}x=setTimeout(S,1200)}catch(_){v||(f(_.message),d(!1))}};return x=setTimeout(S,300),()=>{v=!0,clearTimeout(x)}},[n,i]);let b=async()=>{f(null),u(""),d(!0),m.current=window.open("about:blank","_blank"),m.current&&(m.current.opener=null);try{a(await f0(n,"POST")),s(!0)}catch(v){m.current?.close(),m.current=null,f(v.message)}finally{d(!1)}},g=async()=>{m.current?.close(),m.current=null,u(""),s(!1),d(!0);try{a(await f0(n,"DELETE")),r?.()}catch(v){f(v.message)}finally{d(!1)}},h=async v=>{if(v.preventDefault(),!l.trim()||c)return;let x=l.trim();u(""),d(!0),f(null);try{a(await f0(`${n}/code`,"POST",{claude_login_code:x}))}catch(S){f(S.message),d(!1)}};return Ut.default.createElement("section",{style:m0,"data-testid":"sandbox-claude-login"},Ut.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:10}},Ut.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:8}},Ut.default.createElement("strong",null,"Claude Code"),Ut.default.createElement(_e,{tone:o?.logged_in?"success":"accent"},o?.logged_in?"Your subscription connected":"Use your Claude subscription")),o?.logged_in&&Ut.default.createElement(de,{size:"sm",variant:"ghost",onClick:g,disabled:c},"Disconnect")),Ut.default.createElement("p",{style:{fontSize:13,lineHeight:"20px",color:"var(--color-text-secondary)",margin:"10px 0"}},"Usage counts against your own Claude Pro, Max, or Team plan. Your login stays inside this sandbox and ends when the sandbox stops."),!o?.logged_in&&Ut.default.createElement(de,{variant:"primary",onClick:b,disabled:c||e.status!=="ready"},c?"Connecting\u2026":"Sign in with your Claude subscription"),p&&!i&&Ut.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)",fontSize:13}},p),i&&Ut.default.createElement(PI,{title:"Connect your Claude subscription",onClose:g},Ut.default.createElement("p",{style:{margin:0,fontSize:14,lineHeight:"22px",color:"var(--color-text-secondary)"}},"Authorize Claude Code on Claude\u2019s website. Then paste the one-time code below to finish signing in to this sandbox."),Ut.default.createElement("div",{style:{...m0,fontSize:12}},Ut.default.createElement("strong",null,e.repository||"Checkout sandbox"),Ut.default.createElement("div",{style:{marginTop:6,fontFamily:"var(--font-mono)",color:"var(--color-text-muted)"}},e.session_id)),o?.authorize_url?Ut.default.createElement("a",{href:o.authorize_url,target:"_blank",rel:"noreferrer",style:{color:"var(--color-text-link, var(--color-accent-ui))",fontSize:13}},"Reopen Claude authorization page \u2197"):Ut.default.createElement("p",{role:"status",style:{fontSize:13}},o?.status==="submitted"?"Confirming your sign-in\u2026":"Preparing Claude\u2019s authorization page\u2026"),Ut.default.createElement("form",{onSubmit:h,style:{display:"flex",flexDirection:"column",gap:12},"data-aa-secret":""},Ut.default.createElement("label",{htmlFor:`claude-login-code-${e.session_id}`,style:{fontSize:12,fontWeight:600}},"Authentication code"),Ut.default.createElement("input",{id:`claude-login-code-${e.session_id}`,type:"password","data-aa-secret":"",autoComplete:"off",spellCheck:!1,maxLength:2048,value:l,onChange:v=>u(v.target.value),placeholder:"Paste the code from Claude",style:OI,disabled:c||o?.status!=="awaiting_code"}),Ut.default.createElement(de,{variant:"primary",type:"submit",disabled:!l.trim()||c||o?.status!=="awaiting_code"},c?"Completing connection\u2026":"Complete connection")),p&&Ut.default.createElement(Ut.default.Fragment,null,Ut.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)",fontSize:13}},p),Ut.default.createElement(de,{onClick:b,disabled:c},"Start sign-in again")),Ut.default.createElement("p",{style:{margin:0,fontSize:12,lineHeight:"18px",color:"var(--color-text-muted)"}},"The code is sent once to Claude Code running in your sandbox. ActiveAgent does not store your Claude subscription token.")))}var Dr=Z(J());function g0({session:e,evaluationId:t,sandboxId:r,onRetry:n}){let[o,a]=(0,Dr.useState)(null),[i,s]=(0,Dr.useState)(!1),l=e?.verification;if(!e?.evaluation_run_id)return null;let u=l?.rows||[],c=l?.status==="complete",d=async()=>{s(!0),a(null);try{let f=await fetch(`/api/evaluations/${t}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox_id:r,models:e.fix_item?.models})}),m=await f.json();if(!f.ok)throw new Error(m.error||"Could not run the full suite.");a({run:m.run.id})}catch(f){a({error:f.message})}finally{s(!1)}},p=f=>f==null?"\u2014":Number(f).toFixed(2);return Dr.default.createElement("section",{"data-testid":"fix-verification",style:{display:"flex",flexDirection:"column",gap:12,minWidth:0}},Dr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Dr.default.createElement("strong",{style:{fontSize:13}},"Before & after"),Dr.default.createElement(_e,{tone:c?"info":"muted"},l?.status||(e.status==="succeeded"?e.diff?"Preparing verification":"No changes to verify":e.status))),l?.error&&Dr.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)",margin:0,fontSize:13}},l.error),Dr.default.createElement("div",{style:{overflowX:"auto"}},Dr.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:12}},Dr.default.createElement("thead",null,Dr.default.createElement("tr",null,["Scenario / model","Before","After","Score \u0394","Fault"].map(f=>Dr.default.createElement("th",{key:f,style:{textAlign:"left",padding:"8px 10px",borderBottom:"1px solid var(--color-border)",color:"var(--color-text-muted)",whiteSpace:"nowrap"}},f)))),Dr.default.createElement("tbody",null,u.map(f=>Dr.default.createElement("tr",{key:`${f.scenario_key}/${f.model}`},Dr.default.createElement("td",{style:{padding:10,fontFamily:"var(--font-mono)"}},f.scenario_key,Dr.default.createElement("div",{style:{color:"var(--color-text-muted)",fontSize:10,marginTop:4}},f.model)),Dr.default.createElement("td",{style:{padding:10}},f.before," \xB7 ",p(f.before_score)),Dr.default.createElement("td",{style:{padding:10,color:f.change==="fixed"?"var(--color-success-text)":["regressed","still_failing"].includes(f.change)?"var(--color-error-text)":"var(--color-text-secondary)"}},f.after||"pending",f.after_score!=null&&` \xB7 ${p(f.after_score)}`,Dr.default.createElement("div",{style:{fontSize:10,marginTop:4}},f.change.replaceAll("_"," "))),Dr.default.createElement("td",{style:{padding:10,fontFamily:"var(--font-mono)"}},f.score_change==null?"\u2014":`${f.score_change>0?"+":""}${p(f.score_change)}`),Dr.default.createElement("td",{style:{padding:10}},f.fault||(f.after?"none":f.before_fault)||"\u2014")))))),Dr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12,flexWrap:"wrap",fontSize:12}},Dr.default.createElement("a",{href:et(`/evaluations/${t}/runs/${e.evaluation_run_id}`)},"Original run"),l?.run_id&&Dr.default.createElement("a",{href:et(`/evaluations/${t}/runs/${l.run_id}`)},"Verification run"),c&&Dr.default.createElement(de,{size:"sm",onClick:d,disabled:i},i?"Starting\u2026":"Re-run the full suite"),n&&["succeeded","failed","cancelled"].includes(e.status)&&(c||l?.error||e.status!=="succeeded"||!e.diff)&&Dr.default.createElement(de,{size:"sm",onClick:n},"Try again")),o?.run&&Dr.default.createElement("a",{style:{fontSize:12},href:et(`/evaluations/${t}/runs/${o.run}`)},"Full suite queued \u2014 open run \u2192"),o?.error&&Dr.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)"}},o.error))}var On=e=>{let t=Number(e)||0;return Math.abs(t)>=1e6?`${(t/1e6).toFixed(1)}M`:Math.abs(t)>=1e3?`${(t/1e3).toFixed(1)}K`:`${Math.round(t)}`},h0=e=>e==null?"\u2014":On(e),MI=(e,t)=>e==null&&t==null?"\u2014":`${h0(e)}\u2192${h0(t)}`,zn=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`},y0=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)}`},v0=(e,t=4)=>e==null?"\u2014":`$${Number(e).toFixed(t)}`;var fh=(e,t="%",r=0)=>{if(e==null||Number.isNaN(Number(e)))return"\u2014";let n=Number(e);return`${n>0?"+":n<0?"-":""}${Math.abs(n).toFixed(r)}${t}`},wo=e=>{if(!e)return"";let t=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(t<1)return"just now";if(t<60)return`${t} min ago`;if(t<1440){let n=Math.floor(t/60);return`${n} hour${n===1?"":"s"} ago`}let r=Math.floor(t/1440);return`${r} day${r===1?"":"s"} ago`},bn=(e,t=null)=>{let r=String(e||""),n=r.lastIndexOf("/");return n>0?{short:r.slice(n+1),provider:r.slice(0,n)}:{short:r,provider:t||""}};var FSe=2e4,bX=()=>{try{return o2(window.localStorage.getItem(kI))}catch{return o2(null)}},USe=(e,t)=>{try{window.localStorage.setItem(kI,ZY(e,t))}catch{}},kX=e=>({backgroundColor:e?"#1a1a1a":"#ffffff"}),wX={success:{dark:"bg-green-900/30 text-green-300",light:"bg-green-50 text-green-700"},error:{dark:"bg-red-900/30 text-red-300",light:"bg-red-50 text-red-700"},progress:{dark:"bg-amber-900/30 text-amber-300",light:"bg-amber-50 text-amber-700"},neutral:{dark:"bg-gray-700 text-gray-300",light:"bg-gray-100 text-gray-600"}};function Ks({tone:e="neutral",children:t}){let{darkMode:r}=ut(),n=wX[e]||wX.neutral;return Ee.default.createElement("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${r?n.dark:n.light}`},e==="progress"&&Ee.default.createElement("span",{className:"mr-1 h-1.5 w-1.5 rounded-full bg-current animate-pulse"}),t)}function x0({sandbox:e,claudeCode:t,codex:r,onRecheckConnection:n,readOnly:o=!1,focusSessionId:a=null,title:i="Code sessions"}){let{darkMode:s}=ut(),l=`/api/sandboxes/${encodeURIComponent(e.session_id)}/code_sessions`,[u,c]=(0,Ee.useState)(null),[d,p]=(0,Ee.useState)(null),[f,m]=(0,Ee.useState)(null),[y,b]=(0,Ee.useState)(null),[g,h]=(0,Ee.useState)(0),[v,x]=(0,Ee.useState)(0),[S,_]=(0,Ee.useState)(""),[w,k]=(0,Ee.useState)("claude_code"),A=w==="codex"?"Codex":"Claude Code",[C,T]=(0,Ee.useState)(bX),[$,Q]=(0,Ee.useState)(!1),[B,K]=(0,Ee.useState)(!1),[N,O]=(0,Ee.useState)(null),D=(0,Ee.useRef)(null),P=(0,Ee.useRef)(!0),j=(0,Ee.useCallback)(async()=>{let I=await fetch(l),V=await I.json().catch(()=>({}));if(!I.ok)throw new Error(ot(V,`Could not load code sessions (HTTP ${I.status}).`));return V.code_sessions||[]},[l]);(0,Ee.useEffect)(()=>{let I=!1;return c(null),p(null),j().then(V=>{if(I)return;c(V);let F=V.find(ce=>ce.id===a)||V.find(qs)||V[0];p(ce=>ce??F?.id??null)}).catch(V=>{I||(c([]),O(V.message))}),()=>{I=!0}},[j]),(0,Ee.useEffect)(()=>{a!=null&&p(a)},[a]),(0,Ee.useEffect)(()=>{if(d==null)return;let I=!1,V=null,F=[],ce=0;m(null),b(null),P.current=!0;let Qe=async()=>{let it=!0,me=null;try{let le=await fetch(`${l}/${d}?after=${F.length}`);me=le.status;let Ue=await le.json().catch(()=>({}));if(I)return;if(!le.ok)throw new Error(ot(Ue,`Could not load the session (HTTP ${le.status}).`));let Je=Ue.code_session;F=HY(F,Je),ce=0,b(null),m({...Je,events:F}),c(Tt=>id(Tt||[],UY(Je),"id"));let nt=Je.evaluation_run_id&&Je.status==="succeeded"&&Je.diff&&!Je.verification?.error&&!["complete","failed"].includes(Je.verification?.status);wI(Je)&&!nt&&(it=!1)}catch(le){if(I)return;ce+=1,b(le.message),RC(me,ce)&&(it=!1)}it&&!I&&(V=setTimeout(Qe,1500))};return Qe(),()=>{I=!0,clearTimeout(V)}},[l,d,g]);let M=(u||[]).find(qs)||null,W=M&&M.id!==d?M.id:null,Y=w==="codex"?aX(r):rX(t),L=Y?"not_connected":M?"busy":null;(0,Ee.useEffect)(()=>{if(W==null)return;let I=!1,V=setTimeout(async()=>{try{let F=await j();I||c(F)}catch{}I||x(F=>F+1)},1500*2);return()=>{I=!0,clearTimeout(V)}},[W,v,j]);let G=(0,Ee.useMemo)(()=>n2(f?.events),[f?.events]);(0,Ee.useLayoutEffect)(()=>{let I=D.current;I&&P.current&&(I.scrollTop=I.scrollHeight)},[G.length]);let q=I=>{let V=I.currentTarget;P.current=V.scrollHeight-V.scrollTop-V.clientHeight<40},oe=CI(C.choice,C.custom).error||null,Me=I=>{T(V=>{let F={...V,...I};return w==="claude_code"&&USe(F.choice,F.custom),F})},ge=async()=>{let I=S.trim();if(!(!I||L||$||oe)){Q(!0),O(null);try{let V=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(XY(I,C.choice,C.custom,w))}),F=await V.json().catch(()=>({}));if(!V.ok)throw F.code_session&&(c(ce=>id(ce||[],F.code_session,"id")),p(F.code_session.id)),new Error(ot(F,`Could not start ${A} (HTTP ${V.status}).`));c(ce=>id(ce||[],F.code_session,"id")),p(F.code_session.id),_("")}catch(V){O(V.message)}finally{Q(!1)}}},ue=async I=>{K(!0),O(null);try{let V=await fetch(`${l}/${I.id}/cancel`,{method:"POST"}),F=await V.json().catch(()=>({}));if(!V.ok)throw new Error(ot(F,`Could not cancel the session (HTTP ${V.status}).`));c(ce=>id(ce||[],F.code_session,"id")),m(ce=>ce&&ce.id===F.code_session.id?{...ce,...F.code_session}:ce)}catch(V){O(V.message)}finally{K(!1)}},R=s?"text-gray-400":"text-gray-500",te=s?"text-white":"text-gray-900",Be=s?"border-gray-700":"border-gray-200",ke=`px-3 py-1 text-sm rounded ${s?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,ee=`underline ${s?"text-gray-300 hover:text-white":"text-gray-700 hover:text-gray-900"}`,z=`p-2 rounded text-xs border ${s?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`,E=f&&f.id===d?f:(u||[]).find(I=>I.id===d)||null;return Ee.default.createElement("div",{className:`mt-2 p-3 rounded-lg border space-y-3 ${Be}`},!o&&t?.mode==="sandbox_login"&&Ee.default.createElement(tf,{sandbox:e,onChange:n}),Ee.default.createElement("div",{className:"flex items-center justify-between"},Ee.default.createElement("p",{className:`text-sm font-medium ${te}`},i),Ee.default.createElement("p",{className:`text-xs ${R}`},"A session edits this checkout and never commits or pushes. Publishing is a separate step, below.")),o&&N&&Ee.default.createElement("div",{className:z},N),!o&&Ee.default.createElement("div",{className:"space-y-2"},Ee.default.createElement("label",{className:`flex items-center gap-2 text-xs ${R}`},"Agent",Ee.default.createElement("select",{"aria-label":"Coding agent",value:w,onChange:I=>{k(I.target.value),T(I.target.value==="claude_code"?bX():o2(null))},disabled:$,className:`px-2 py-1 border rounded ${s?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`},Ee.default.createElement("option",{value:"claude_code"},"Claude Code"),Ee.default.createElement("option",{value:"codex",disabled:!r?.supported},"Codex",r?.supported?"":" (backend unavailable)"))),Ee.default.createElement("textarea",{value:S,onChange:I=>_(I.target.value),onKeyDown:I=>{I.key==="Enter"&&(I.metaKey||I.ctrlKey)&&ge()},rows:3,maxLength:FSe,disabled:L==="not_connected"||$,placeholder:`What should ${A} do in this checkout?`,className:`w-full px-3 py-2 border rounded-lg text-sm disabled:opacity-60 ${s?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),Ee.default.createElement("div",{className:"flex flex-wrap items-center gap-2"},Ee.default.createElement("label",{htmlFor:`code-session-model-${e.session_id}`,className:`text-xs ${R}`},"Model"),Ee.default.createElement("select",{id:`code-session-model-${e.session_id}`,value:C.choice,onChange:I=>Me({choice:I.target.value}),disabled:$,className:`px-2 py-1 border rounded text-xs ${s?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`},YY(w).map(I=>Ee.default.createElement("option",{key:I.value,value:I.value},I.label))),C.choice===c0&&Ee.default.createElement("input",{type:"text",value:C.custom,onChange:I=>Me({custom:I.target.value}),disabled:$,maxLength:100,placeholder:w==="codex"?"Model id":"claude-sonnet-4-5","aria-label":"Model id","aria-invalid":!!oe,className:`flex-1 min-w-[10rem] px-2 py-1 border rounded text-xs font-mono ${s?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`})),oe&&C.custom.trim()&&Ee.default.createElement("p",{className:`text-xs ${s?"text-red-300":"text-red-700"}`},oe),Ee.default.createElement("div",{className:"flex items-center justify-between gap-3"},Ee.default.createElement("p",{className:`text-xs ${R}`},L==="not_connected"&&Ee.default.createElement(Ee.default.Fragment,null,Y.text,Y.loginHint&&Ee.default.createElement(Ee.default.Fragment,null," ",Ee.default.createElement("code",{className:"font-mono"},Y.loginHint)," ",Y.after)," ",n&&Ee.default.createElement("button",{type:"button",onClick:n,className:ee},"Check again")),L==="busy"&&Ee.default.createElement(Ee.default.Fragment,null,"A session is ",M.status," in this checkout; wait for it to finish or cancel it."," ",M.id!==d&&Ee.default.createElement("button",{type:"button",onClick:()=>p(M.id),className:ee},"Show it"))),Ee.default.createElement("button",{type:"button",onClick:ge,disabled:!!L||$||!S.trim()||!!oe,className:"shrink-0 px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600 disabled:opacity-50"},$?"Starting\u2026":`Run ${A}`)),N&&Ee.default.createElement("div",{className:z},N)),u&&u.length>0&&Ee.default.createElement("div",{className:"space-y-1"},Ee.default.createElement("p",{className:`text-xs font-medium uppercase tracking-wide ${R}`},"Sessions"),Ee.default.createElement("div",{className:"max-h-40 overflow-y-auto space-y-1"},u.map(I=>{let{label:V,tone:F}=fs(I.status),ce=I.id===d;return Ee.default.createElement("button",{key:I.id,type:"button",title:zY(I),onClick:()=>ce?h(Qe=>Qe+1):p(I.id),className:`w-full text-left px-2 py-1.5 rounded flex items-center gap-2 text-sm ${ce?s?"bg-gray-700":"bg-gray-200":s?"hover:bg-gray-800":"hover:bg-gray-100"}`},Ee.default.createElement(Ks,{tone:F},V),Ee.default.createElement("span",{className:`text-xs ${R}`},I.runner==="codex"?"Codex":"Claude Code"),Ee.default.createElement("span",{className:`flex-1 truncate ${te}`},BY(I.prompt)),Ee.default.createElement("span",{className:`shrink-0 text-xs font-mono ${R}`},AI(I)),Ee.default.createElement("span",{className:`shrink-0 text-xs ${R}`},wo(I.created_at)))}))),u===null&&Ee.default.createElement("p",{className:`text-xs ${R}`},"Loading sessions\u2026"),E&&Ee.default.createElement(WSe,{session:E,rows:G,loaded:!!(f&&f.id===E.id),detailError:y,cancelling:B,onCancel:()=>ue(E),onReload:()=>h(I=>I+1),transcriptRef:D,onTranscriptScroll:q,classes:{muted:R,strong:te,border:Be,secondaryButton:ke,linkButton:ee,errorBox:z}}))}function WSe({session:e,rows:t,loaded:r,detailError:n,cancelling:o,onCancel:a,onReload:i,transcriptRef:s,onTranscriptScroll:l,classes:u}){let{darkMode:c}=ut(),{muted:d,strong:p,border:f,secondaryButton:m,linkButton:y,errorBox:b}=u,{label:g,tone:h}=fs(e.status),v=qs(e),x=s0(e),S=LY(e),_=Number(e.dropped_events_count)||0;return Ee.default.createElement("div",{className:`pt-3 border-t space-y-2 ${f}`},Ee.default.createElement("div",{className:"flex items-center justify-between gap-3"},Ee.default.createElement("div",{className:"flex items-center gap-2 min-w-0"},Ee.default.createElement(Ks,{tone:h},g),Ee.default.createElement("span",{className:`text-xs truncate ${d}`},[SI(e),AI(e)].filter(Boolean).join(" \xB7 "))),Ee.default.createElement("div",{className:"flex items-center gap-2 shrink-0"},Ee.default.createElement("a",{href:et(ms(e.conversation_id||e.id)),onClick:w=>{w.preventDefault(),lt(ms(e.conversation_id||e.id))},className:y,"data-testid":"code-session-open-interaction"},"Open in Interactions"),v&&Ee.default.createElement("button",{type:"button",onClick:a,disabled:o,className:`${m} shrink-0 disabled:opacity-50`},o?"Cancelling\u2026":"Cancel"))),Ee.default.createElement("p",{className:`text-xs whitespace-pre-wrap break-words max-h-24 overflow-y-auto ${d}`},e.prompt),n&&Ee.default.createElement("div",{className:b},n),Ee.default.createElement("div",{ref:s,onScroll:l,className:"max-h-96 overflow-y-auto rounded p-2 space-y-1.5",style:kX(c)},!r&&Ee.default.createElement("p",{className:`text-xs ${d}`},"Loading transcript\u2026"),r&&t.length===0&&Ee.default.createElement("p",{className:`text-xs ${d}`},e.status==="queued"?"Waiting for the sandbox to start the agent\u2026":v?"The agent is starting\u2026":S?"Cancelled before the agent started.":"No transcript was recorded."),t.map(w=>Ee.default.createElement(II,{key:w.key,row:w,darkMode:c,muted:d,strong:p})),_>0&&Ee.default.createElement("p",{className:`text-xs italic ${d}`},_," later event",_===1?" was":"s were"," not kept: a transcript keeps its first 1,000.")),e.error_message&&Ee.default.createElement("pre",{className:`${b} whitespace-pre-wrap break-words font-mono max-h-48 overflow-y-auto`},e.error_message),e.evaluation_run_id&&Ee.default.createElement(g0,{session:e,evaluationId:e.evaluation_id,sandboxId:e.sandbox_session_id}),x&&r&&Ee.default.createElement(DI,{diff:e.diff,pending:bI(e),onReload:i,muted:d,linkButton:y,darkMode:c}))}function II({row:e,darkMode:t,muted:r,strong:n}){let o=e.nested?`ml-4 pl-2 border-l ${t?"border-gray-700":"border-gray-200"}`:"";switch(e.kind){case"text":return Ee.default.createElement("p",{className:`text-sm whitespace-pre-wrap break-words ${n} ${o}`},e.text);case"user_text":return Ee.default.createElement("p",{className:`text-sm whitespace-pre-wrap break-words ${r} ${o}`},e.text);case"thinking":return Ee.default.createElement("p",{className:`text-xs italic whitespace-pre-wrap break-words line-clamp-3 ${r} ${o}`},e.text);case"tool_use":return Ee.default.createElement("p",{className:`text-xs font-mono break-words ${o}`},Ee.default.createElement("span",{className:`font-semibold ${t?"text-blue-300":"text-blue-700"}`},e.name),e.summary&&Ee.default.createElement("span",{className:r}," ",e.summary));case"tool_result":return Ee.default.createElement("pre",{className:`ml-4 text-xs font-mono whitespace-pre-wrap break-words ${e.isError?t?"text-red-400":"text-red-600":r} ${o}`,title:e.name?`${e.name} result`:void 0},e.text||"(no output)");case"result":return Ee.default.createElement("p",{className:`text-sm font-medium ${e.tone==="error"?t?"text-red-400":"text-red-600":t?"text-green-400":"text-green-600"}`},e.text);case"system":return Ee.default.createElement("p",{className:`text-xs ${r}`},e.text);case"raw":return Ee.default.createElement("pre",{className:`text-xs font-mono whitespace-pre-wrap break-words ${r} ${o}`},e.text);default:return Ee.default.createElement("pre",{className:`text-xs font-mono whitespace-pre-wrap break-words ${r} ${o}`},"[",e.label,"] ",e.text)}}var SX={add:{dark:"text-green-400",light:"text-green-700"},del:{dark:"text-red-400",light:"text-red-700"},hunk:{dark:"text-blue-300",light:"text-blue-700"},meta:{dark:"text-gray-400 font-semibold",light:"text-gray-500 font-semibold"},context:{dark:"text-gray-300",light:"text-gray-700"}};function DI({diff:e,pending:t,onReload:r,muted:n,linkButton:o,darkMode:a}){let i=(0,Ee.useMemo)(()=>l0(e),[e]);return e==null?t?Ee.default.createElement("p",{className:`text-xs ${n}`},"The diff is recorded once the agent has stopped."," ",Ee.default.createElement("button",{type:"button",onClick:r,className:o},"Refresh")):Ee.default.createElement("p",{className:`text-xs ${n}`},"No diff was recorded."):i.length===0?Ee.default.createElement("p",{className:`text-xs ${n}`},"No changes in the checkout."):Ee.default.createElement("div",{className:"space-y-1"},Ee.default.createElement("p",{className:`text-xs ${n}`},"Diff \xB7 ",VY(e)),Ee.default.createElement("pre",{className:"max-h-96 overflow-auto rounded p-2 text-xs font-mono",style:kX(a)},i.map((s,l)=>{let u=SX[s.kind]||SX.context;return Ee.default.createElement("div",{key:l,className:a?u.dark:u.light},s.text||" ")})))}var gt=Z(J());function d2(e){return(e.altKey?1:0)|(e.ctrlKey?2:0)|(e.metaKey?4:0)|(e.shiftKey?8:0)}var _X=["left","middle","right"];function CX(e,t,r){if(!r||!(r.width>0)||!(r.height>0))return null;let n=(e-r.left)/r.width,o=(t-r.top)/r.height;return n<0||n>1||o<0||o>1?null:{x:n,y:o}}function p2(e,t,r){let n=CX(t.clientX,t.clientY,r);if(!n)return null;let o={type:"mouse",action:e,...n,modifiers:d2(t)};return e==="move"?{...o,button:t.buttons&1?"left":"none"}:{...o,button:_X[t.button]||"left",clickCount:Math.min(Math.max(t.detail||1,1),3)}}function AX(e,t,r){let n=p2("up",e,t);return n||!r?n:{type:"mouse",action:"up",x:r.x,y:r.y,modifiers:d2(e),button:_X[e.button]||"left",clickCount:1}}var HSe=16,qSe=800;function EX(e,t){let r=CX(e.clientX,e.clientY,t);if(!r)return null;let n=e.deltaMode===1?HSe:e.deltaMode===2?qSe:1;return{type:"wheel",...r,deltaX:e.deltaX*n,deltaY:e.deltaY*n,modifiers:d2(e)}}function jI(e,t){return t.isComposing||t.key==="Process"||t.key==="Unidentified"||!t.key?null:{type:"key",action:e,key:t.key,code:t.code||"",keyCode:t.keyCode||void 0,modifiers:d2(t)}}function NX(e){return typeof e=="string"&&e!==""?{type:"text",text:e.slice(0,2e3)}:null}var KSe=600;function TX(e,t){return e.key!=="Escape"||e.repeat||t===null?!1:e.timeStamp-t<=KSe}var $I=32*1024;function OX(e){let t="";for(let r=0;r=1024*1024?`${Math.round(e/(1024*1024)*10)/10} MB`:e>=1024?`${Math.round(e/1024)} KB`:`${e} bytes`}function MX(e,t){let r=Array.from(e||[]);if(!t)return{error:"The page is no longer asking for a file."};if(r.length===0)return{error:"Choose a file to upload."};let n=t.multiple?t.max_files:1;if(r.length>n)return{error:n===1?"This field takes one file.":`This field takes at most ${n} files.`};let o=r.find(a=>a.size>t.max_file_bytes);return o?{error:`${o.name} is larger than ${PX(t.max_file_bytes)}.`}:{files:r.map(a=>({name:a.name,size:a.size})),total:r.reduce((a,i)=>a+i.size,0)}}function IX(e){if(!e)return null;let t=e.total>0?Math.min(100,Math.floor(e.sent/e.total*100)):100;return`Uploading ${PX(e.total)}\u2026 ${t}%`}function DX(e){return!e.fileChooser||e.control.mine?null:e.control.yours?"The page is asking for a file. Choose it in the view you are driving from.":`The page is asking ${e.control.by||"the person driving"} for a file.`}var b0={ready:!1,control:{held:!1,mine:!1,yours:!1,by:null,since:null},agent:{waiting:!1,tool:null,since:null,client:null},page:null,frameSize:null,fileChooser:null,personRequest:null,error:null};function jX(e,t){switch(t?.type){case"ready":return{...e,ready:!0,control:{...b0.control,...t.control},agent:{...b0.agent,...t.agent},page:t.page||null,fileChooser:t.file_chooser||null,personRequest:t.person_request||null};case"frame":return e.frameSize?.width===t.width&&e.frameSize?.height===t.height?e:{...e,frameSize:{width:t.width,height:t.height}};case"control":return{...e,control:{held:t.held,mine:t.mine,yours:t.yours===!0,by:t.by,since:t.since}};case"agent":return{...e,agent:{waiting:t.waiting,tool:t.tool,since:t.since,client:t.client||null}};case"person_requested":return{...e,personRequest:t.request||null};case"page":return{...e,page:t.page||null};case"file_chooser":return{...e,fileChooser:t.chooser||null};case"file_upload":return t.status==="failed"?{...e,error:t.message||"The upload failed"}:e;case"error":return{...e,error:t.message||"The browser refused that"};case"clear_error":return{...e,error:null};case"reset":return b0;default:return e}}function $X(e){if(!e.agent.waiting||!e.control.held)return null;let t=e.agent.tool?` (${e.agent.tool})`:"",r=e.agent.client||"The agent";return e.control.mine?`${r} is waiting for you to hand back control${t}.`:e.control.yours?`${r} is waiting for you to hand back control in your other view${t}.`:`${r} is waiting for ${e.control.by||"the person driving"} to hand back control${t}.`}function LX(e){let t=e.personRequest;return!t||e.control.held?null:`${t.client||"The agent"} needs a person: ${t.reason}`}function zX({by:e=null,takenAt:t,releasedAt:r,page:n=null}){let o=a=>Number.isFinite(a)?new Date(a).toISOString():null;return{by:e||null,taken_at:o(t),released_at:o(r),page_url:typeof n?.url=="string"&&/^https?:\/\//.test(n.url)?n.url:null}}function BX(e){return e.control.held?e.control.mine?"You are driving":e.control.yours?"You are driving in another view":`Held by ${e.control.by||"someone else"}`:null}function FX(e,{taking:t=!1}={}){let{held:r,yours:n}=e.control,o="Take over";return t?o="Taking over\u2026":r&&n&&(o="Continue driving here"),{label:o,disabled:t||r&&!n}}function UX(e){if(!e)return null;let t=e.tabs>1?` \xB7 tab ${e.tab} of ${e.tabs}`:"";return`${e.url||"a page with no address to show"}${t}`}var VSe={1001:"The browser stopped.",4401:"The live view did not accept the ticket. Try again.",4408:"The live view timed out before it opened. Try again.",4429:"Too many people are watching this browser."};function WX(e,{requested:t=!1}={}){return t?null:VSe[e]||"The live view lost its connection to the browser."}var GSe={starting:{label:"Starting",tone:"progress"},running:{label:"Running",tone:"success"},stopped:{label:"Stopped",tone:"neutral"},failed:{label:"Failed",tone:"error"}};function HX(e){return e?.status?GSe[e.status]||{label:e.status,tone:"neutral"}:null}function qX(e){return e?.status==="starting"||e?.status==="running"}function KX({inWindow:e=!1,modes:t=[]}={}){return{mode:e&&t.includes("headed")?"headed":"headless"}}async function VX(e,t){let r=await fetch(`/api/sandboxes/${encodeURIComponent(e)}/browser/tickets`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:t})}),n=await r.json().catch(()=>({}));if(r.status===403&&n.code==="forbidden")throw new Error("You do not have permission to take over this browser.");if(!r.ok)throw new Error(ot(n,`Could not open the live view (HTTP ${r.status}).`));return n}var GX=e=>(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()==="v",YSe=1024*1024,XSe=e=>new Promise(t=>{setTimeout(t,e)});function ZSe({chooser:e,upload:t,onFiles:r,onCancel:n}){let{darkMode:o}=ut(),a=o?"text-gray-400":"text-gray-500",i=o?"text-white":"text-gray-900",s=e.multiple;return gt.default.createElement("div",{role:"dialog","aria-label":"Choose a file for the page","data-testid":"live-view-file-chooser",className:`absolute inset-x-4 top-4 p-3 rounded border shadow space-y-2 ${o?"bg-gray-800 border-gray-600":"bg-white border-gray-300"}`},gt.default.createElement("p",{className:`text-sm font-medium ${i}`},"The page asked for ",s?"files":"a file"),gt.default.createElement("p",{className:`text-xs ${a}`},"Choose ",s?`up to ${e.max_files} files`:"one"," from this computer, or drop ",s?"them":"it"," on the view. ",e.accept?`The page takes ${e.accept}. `:"","Only the browser receives the files, and they stay in the sandbox until the browser stops."),t?gt.default.createElement("p",{className:`text-xs ${i}`,role:"status"},IX(t)):gt.default.createElement("input",{type:"file",multiple:s,accept:e.accept||void 0,onChange:l=>r(l.target.files),"aria-label":s?"Files for the page":"File for the page",className:`block text-xs ${i}`}),gt.default.createElement("button",{type:"button",onClick:n,className:`px-3 py-1 text-sm rounded ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},"Cancel"))}function w0({sessionId:e,headed:t=!1,watchOnOpen:r=!1,onHandBack:n=null,handBackLabel:o="Hand back"}){let{darkMode:a}=ut(),[i,s]=(0,gt.useReducer)(jX,b0),[l,u]=(0,gt.useState)("idle"),[c,d]=(0,gt.useState)(null),[p,f]=(0,gt.useState)(!1),[m,y]=(0,gt.useState)(null),b=(0,gt.useRef)(null),g=(0,gt.useRef)(!1),h=(0,gt.useRef)(0),v=(0,gt.useRef)(!1),x=(0,gt.useRef)(null),S=(0,gt.useRef)(null),_=(0,gt.useRef)({pending:null,decoding:!1}),w=(0,gt.useRef)({message:null,scheduled:!1}),k=(0,gt.useRef)(null),A=(0,gt.useRef)(null),C=(0,gt.useRef)(0),T=i.control.mine,$=(0,gt.useRef)(null),Q=(0,gt.useRef)(i);Q.current=i,(0,gt.useEffect)(()=>{if(T){$.current=i.control.since||Date.now();return}if($.current===null)return;let F=$.current;$.current=null,n?.(zX({by:null,takenAt:F,releasedAt:Date.now(),page:Q.current.page}))},[T]);let B=(0,gt.useCallback)(F=>{let ce=b.current;F&&ce?.readyState===WebSocket.OPEN&&ce.send(JSON.stringify(F))},[]),K=(0,gt.useCallback)(F=>{let ce=_.current;if(ce.pending=F,ce.decoding)return;let Qe=()=>{let it=ce.pending;if(ce.pending=null,ce.decoding=!!it,!it)return;let me=new Image;me.onload=()=>{let le=x.current;le&&((le.width!==me.naturalWidth||le.height!==me.naturalHeight)&&(le.width=me.naturalWidth,le.height=me.naturalHeight),le.getContext("2d")?.drawImage(me,0,0)),Qe()},me.onerror=Qe,me.src=`data:image/jpeg;base64,${it.data}`};Qe()},[]),N=(0,gt.useCallback)(()=>{h.current+=1;let F=b.current;if(!F){u("idle");return}v.current&&F.readyState===WebSocket.OPEN&&F.send(JSON.stringify({type:"hand_back"})),g.current=!0,F.close(1e3)},[]);(0,gt.useEffect)(()=>N,[N]);let O=async()=>{h.current+=1;let F=h.current;d(null),u("connecting");try{let{ticket:ce,url:Qe}=await VX(e,"view");if(h.current!==F)return;let it=new WebSocket(Qe);b.current=it,g.current=!1,it.onopen=()=>it.send(JSON.stringify({type:"auth",ticket:ce})),it.onmessage=me=>{let le;try{le=JSON.parse(me.data)}catch{return}le.type==="ready"&&u("open"),le.type==="frame"&&K(le),(le.type==="file_upload"&&le.status!=="progress"||le.type==="file_chooser"&&!le.chooser)&&(C.current+=1,y(null)),s(le)},it.onclose=me=>{b.current===it&&(b.current=null,C.current+=1,y(null),u("idle"),s({type:"reset"}),d(WX(me.code,{requested:g.current})))}}catch(ce){if(h.current!==F)return;u("idle"),d(ce.message)}},D=(0,gt.useRef)(!1);(0,gt.useEffect)(()=>{!r||D.current||(D.current=!0,O())},[r]);let P=async()=>{s({type:"clear_error"}),f(!0);try{let{ticket:F}=await VX(e,"control");B({type:"take_control",ticket:F})}catch(F){d(F.message)}finally{f(!1)}},j=()=>{B({type:"hand_back"}),x.current?.blur()},M=async F=>{let ce=i.fileChooser,Qe=MX(F,ce);if(Qe.error){d(Qe.error);return}let it=b.current;if(!it||it.readyState!==WebSocket.OPEN)return;C.current+=1;let me=C.current;d(null),s({type:"clear_error"}),B({type:"file_upload",chooser:ce.id,files:Qe.files});let le=0;y({sent:le,total:Qe.total});try{for(let Ue of Array.from(F))for(let Je=0;JeYSe&&C.current===me;)await XSe(50);if(C.current!==me||it.readyState!==WebSocket.OPEN)return;let nt=new Uint8Array(await Ue.slice(Je,Je+$I).arrayBuffer());B({type:"file_chunk",chooser:ce.id,data:OX(nt)}),le+=nt.length,y({sent:le,total:Qe.total})}}catch(Ue){d(`Could not read the file: ${Ue.message}`),W()}},W=()=>{C.current+=1,y(null),i.fileChooser&&B({type:"file_cancel",chooser:i.fileChooser.id})},Y=T&&!!i.fileChooser,L=Y?{onDragOver:F=>{F.preventDefault(),F.dataTransfer.dropEffect="copy"},onDrop:F=>{F.preventDefault(),m||M(F.dataTransfer.files)}}:{};(0,gt.useEffect)(()=>{v.current=T,T?x.current?.focus():x.current?.blur()},[T]),(0,gt.useEffect)(()=>{let F=x.current;if(!F||!T)return;let ce=Qe=>{Qe.preventDefault(),B(EX(Qe,F.getBoundingClientRect()))};return F.addEventListener("wheel",ce,{passive:!1}),()=>F.removeEventListener("wheel",ce)},[T,B,l]);let G=()=>x.current?.getBoundingClientRect(),q=F=>{F&&(k.current={x:F.x,y:F.y},B(F))},oe=T?{onMouseDown:F=>{F.preventDefault(),x.current?.focus(),q(p2("down",F,G())),window.addEventListener("mouseup",ce=>q(AX(ce,G(),k.current)),{once:!0})},onMouseMove:F=>{let ce=w.current;ce.message=p2("move",F,G()),!ce.scheduled&&(ce.scheduled=!0,requestAnimationFrame(()=>{ce.scheduled=!1,q(ce.message),ce.message=null}))},onContextMenu:F=>F.preventDefault(),onKeyDown:F=>{if(TX(F,A.current)){F.preventDefault(),A.current=null,S.current?.focus();return}if(A.current=F.key==="Escape"&&!F.repeat?F.timeStamp:null,GX(F))return;let ce=jI("down",F);ce&&(F.preventDefault(),B(ce))},onKeyUp:F=>{if(GX(F))return;let ce=jI("up",F);ce&&(F.preventDefault(),B(ce))},onPaste:F=>{F.preventDefault(),B(NX(F.clipboardData?.getData("text/plain")))}}:{},Me=a?"text-gray-400":"text-gray-500",ge=a?"text-white":"text-gray-900",ue=`px-3 py-1 text-sm rounded disabled:opacity-50 ${a?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,R="px-3 py-1 text-sm rounded text-white bg-blue-600 hover:bg-blue-700 disabled:opacity-50",te=$X(i),Be=LX(i),ke=BX(i),ee=FX(i,{taking:p}),z=UX(i.page),E=DX(i),I=l==="open",{frameSize:V}=i;return gt.default.createElement("div",{className:"space-y-2"},gt.default.createElement("div",{className:"flex flex-wrap items-center gap-2"},l==="idle"?gt.default.createElement("button",{type:"button",onClick:O,className:ue},"Watch live"):gt.default.createElement("button",{type:"button",onClick:N,className:ue},"Stop watching"),I&&(T?gt.default.createElement("button",{ref:S,type:"button",onClick:j,className:R},o):gt.default.createElement("button",{ref:S,type:"button",onClick:P,disabled:ee.disabled,className:R},ee.label)),ke&>.default.createElement("span",{className:`text-xs font-medium ${ge}`},ke),l==="connecting"&>.default.createElement("span",{className:`text-xs ${Me}`},"Connecting\u2026")),c&>.default.createElement("p",{className:`text-xs ${Me}`,role:"status"},c),i.error&>.default.createElement("p",{className:`text-xs ${a?"text-red-400":"text-red-600"}`,role:"alert"},i.error),Be&>.default.createElement("p",{role:"alert","data-testid":"live-view-person-request",className:`p-2 rounded text-xs border ${a?"bg-blue-900/20 border-blue-800 text-blue-200":"bg-blue-50 border-blue-200 text-blue-800"}`},Be,I?" Take over to help, then hand back.":" Watch live, then take over to help."),te&>.default.createElement("p",{role:"status",className:`p-2 rounded text-xs border ${a?"bg-amber-900/20 border-amber-800 text-amber-300":"bg-amber-50 border-amber-200 text-amber-800"}`},te),l!=="idle"&>.default.createElement("div",{className:"space-y-1"},z&>.default.createElement("p",{className:`text-xs font-mono truncate ${Me}`,title:z},z),E&>.default.createElement("p",{className:`text-xs ${Me}`,role:"status"},E),gt.default.createElement("div",{className:"relative","data-testid":"live-view-frame",...L},gt.default.createElement("canvas",{ref:x,tabIndex:T?0:-1,role:T?"application":"img","aria-label":T?"The sandbox's browser: your mouse and keys go to it. Press Escape twice to leave it.":"Live view of the sandbox's browser",className:`block w-full rounded border bg-black ${T?"cursor-default outline-none focus:ring-2 focus:ring-blue-500":""} ${a?"border-gray-700":"border-gray-200"}`,style:{aspectRatio:V?`${V.width} / ${V.height}`:"16 / 10"},...oe}),Y&>.default.createElement(ZSe,{chooser:i.fileChooser,upload:m,onFiles:F=>{M(F)},onCancel:W})),T&>.default.createElement("p",{className:`text-xs ${Me}`},"Your mouse and keys go to the browser, and the agent waits until you hand back. Press Escape twice to move focus out of the view. That, or clicking outside it, only stops your keys reaching the browser: the agent keeps waiting until you press Hand back or Stop watching.")),t&>.default.createElement("p",{className:`text-xs ${Me}`},"This browser also has a window open on this machine. Clicking or typing in that window changes the page too, but the agent does not wait for it: take over here first."))}var JSe={settings:"Started from Settings",boot_fix:"Fixing a failed boot",evaluation_fix:"Implementing an evaluation fix",chat:"Chat"};function QSe({turn:e,sandboxId:t,darkMode:r,muted:n,strong:o}){let a=(0,Ye.useMemo)(()=>n2(e.events),[e.events]),[i,s]=(0,Ye.useState)(void 0),l=fs(e.status),u=async()=>{if(i!==void 0){s(void 0);return}let c=await fetch(`/api/sandboxes/${encodeURIComponent(t)}/code_sessions/${e.id}?after=1000000000`),d=await c.json().catch(()=>({}));s(c.ok?d.code_session?.diff??null:null)};return Ye.default.createElement("li",{className:`rounded border p-3 space-y-2 ${r?"border-gray-700":"border-gray-200"}`,"data-testid":"code-interaction-turn"},Ye.default.createElement("div",{className:"flex flex-wrap items-center gap-2"},Ye.default.createElement(Ks,{tone:l.tone},l.label),Ye.default.createElement("span",{className:`text-xs ${n}`},fX(e))),e.context_note&&Ye.default.createElement("p",{className:`text-xs italic ${n}`,title:"Sent to Claude Code ahead of the message"},"Dashboard note: ",e.context_note),Ye.default.createElement("p",{className:`text-sm whitespace-pre-wrap break-words font-medium ${o}`},e.prompt),Ye.default.createElement("div",{className:"space-y-1"},a.length===0&&Ye.default.createElement("p",{className:`text-xs ${n}`},qs(e)?"Waiting for Claude Code\u2026":"No transcript was recorded."),a.map(c=>Ye.default.createElement(II,{key:c.key,row:c,darkMode:r,muted:n,strong:o}))),e.error_message&&Ye.default.createElement("p",{className:`text-xs ${r?"text-red-400":"text-red-600"}`},e.error_message),!qs(e)&&Ye.default.createElement("div",{className:"space-y-1"},Ye.default.createElement("button",{type:"button",onClick:u,className:`text-xs underline ${n}`},i===void 0?"Show the checkout\u2019s diff after this turn":"Hide the diff"),i!==void 0&&Ye.default.createElement(DI,{diff:i,pending:!1,muted:n,darkMode:r,linkButton:"underline"})))}function LI({rootId:e,onBack:t=null}){let{darkMode:r}=ut(),[n,o]=(0,Ye.useState)(null),[a,i]=(0,Ye.useState)(null),[s,l]=(0,Ye.useState)(""),[u,c]=(0,Ye.useState)(!1),[d,p]=(0,Ye.useState)(null),[f,m]=(0,Ye.useState)(eke),y=(0,Ye.useRef)(null);y.current=n;let b=(0,Ye.useRef)(null),g=(0,Ye.useRef)(null),h=(0,Ye.useRef)(null),v=rke(g,!!n),x=(0,Ye.useRef)(null),[S,_]=(0,Ye.useState)(RSe),[w,k]=(0,Ye.useState)(!1),A=f&&!!v,C=ce=>{_(ce),YX(ce)},T=(0,Ye.useRef)(null),$=(0,Ye.useRef)(S);$.current=S;let Q=ce=>{ce.button!==0||!x.current||(ce.preventDefault(),ce.currentTarget.setPointerCapture?.(ce.pointerId),T.current=x.current.getBoundingClientRect(),k(!0))},B=ce=>{if(!T.current)return;let Qe=yX(ce.clientX,T.current);$.current=Qe,_(Qe)},K=ce=>{T.current&&(ce.currentTarget.releasePointerCapture?.(ce.pointerId),T.current=null,k(!1),YX($.current))},N=ce=>{let Qe=vX(S,ce.key);Qe!==null&&(ce.preventDefault(),C(Qe))},O=ce=>{m(Qe=>{let it=typeof ce=="function"?ce(Qe):ce;return tke(it),it})},D=(0,Ye.useCallback)(async()=>{let ce=cX(y.current?.turns),Qe=await fetch(`/api/interactions/code-${e}${ce?`?${ce}`:""}`),it=await Qe.json().catch(()=>({}));if(!Qe.ok){i(ot(it,`Could not load the conversation (HTTP ${Qe.status}).`));return}i(null),o(me=>dX(me,it.interaction))},[e]);(0,Ye.useEffect)(()=>{o(null),y.current=null,D()},[D]);let P=pX(n);(0,Ye.useEffect)(()=>{if(!P)return;let ce=setInterval(()=>{D()},sX);return()=>clearInterval(ce)},[P,D]);let j=n?.turns?.length||0,M=n?.turns?.reduce((ce,Qe)=>ce+(Qe.events?.length||0),0)||0,W=(0,Ye.useRef)(!0);(0,Ye.useEffect)(()=>{let ce=h.current;ce&&W.current&&(ce.scrollTop=ce.scrollHeight)},[j,M,v]);let Y=()=>{let ce=h.current;ce&&(W.current=ce.scrollHeight-ce.scrollTop-ce.clientHeight<48)},L=n?.sandbox_session_id,G=n?.turns?.[n.turns.length-1],q=mX(n),oe=n?.browser?.status==="running",Me=async ce=>{ce?.preventDefault();let Qe=s.trim();if(!(!Qe||!L)){c(!0),i(null);try{let it=await fetch(`/api/sandboxes/${encodeURIComponent(L)}/code_sessions/${e}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:Qe,...d?{handoff:d}:{}})}),me=await it.json().catch(()=>({}));if(!it.ok)throw new Error(ot(me,`The message was not sent (HTTP ${it.status}).`));l(""),p(null),await D()}catch(it){i(it.message)}finally{c(!1)}}},ge=async()=>{let ce=(n?.turns||[]).filter(qs);for(let Qe of ce)await fetch(`/api/sandboxes/${encodeURIComponent(L)}/code_sessions/${Qe.id}/cancel`,{method:"POST"});await D()},ue=ce=>{p(ce),l(Qe=>Qe||"I've handed the browser back. "),b.current?.focus()},R=r?"text-gray-400":"text-gray-500",te=r?"text-white":"text-gray-900",Be=`rounded-lg border p-4 ${r?"bg-gray-900 border-gray-700":"bg-white border-gray-200"}`,ke=`px-3 py-1 text-sm rounded disabled:opacity-50 ${r?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,ee="px-3 py-1 text-sm rounded text-white bg-red-600 hover:bg-red-700 disabled:opacity-50",z=`p-2 rounded text-sm border ${r?"bg-blue-900/20 border-blue-800 text-blue-200":"bg-blue-50 border-blue-200 text-blue-800"}`;if(!n)return Ye.default.createElement("div",{className:Be,"data-testid":"code-interaction"},a?Ye.default.createElement("p",{className:`text-sm ${r?"text-red-400":"text-red-600"}`},a):Ye.default.createElement("p",{className:`text-sm ${R}`},"Loading\u2026"));let E=fs(n.status),I=`flex items-center justify-between gap-2 px-4 py-2 border-b ${r?"border-gray-700":"border-gray-200"}`,V=`rounded-lg border flex flex-col min-h-0 ${r?"bg-gray-900 border-gray-700":"bg-white border-gray-200"}`,F=`px-2 py-0.5 text-xs rounded ${r?"text-gray-300 hover:bg-gray-700":"text-gray-600 hover:bg-gray-100"}`;return Ye.default.createElement("div",{ref:g,className:"flex flex-col gap-3",style:v?{height:v}:void 0,"data-testid":"code-interaction"},Ye.default.createElement("div",{className:"flex flex-wrap items-start justify-between gap-3 shrink-0"},Ye.default.createElement("div",{className:"space-y-1"},t&&Ye.default.createElement("button",{type:"button",onClick:t,className:`text-xs ${R}`},"\u2190 Interactions"),Ye.default.createElement("h2",{className:`text-xl font-bold ${te}`},n.display_name),Ye.default.createElement("div",{className:"flex flex-wrap items-center gap-2"},Ye.default.createElement(Ks,{tone:E.tone},E.label),Ye.default.createElement("span",{className:`text-xs ${R}`},JSe[n.origin]||n.origin," \xB7 ",l2(n)),n.project&&Ye.default.createElement("a",{href:et(`/projects/${n.project.id}`),onClick:ce=>{ce.preventDefault(),lt(`/projects/${n.project.id}`)},className:"text-xs underline"},n.project.name))),Ye.default.createElement("div",{className:"flex items-center gap-2"},P&&Ye.default.createElement("button",{type:"button",onClick:ge,className:ke},"Stop"),Ye.default.createElement("button",{type:"button",onClick:()=>O(ce=>!ce),className:ke,"aria-pressed":f,"aria-controls":`code-interaction-${e}-browser`},f?"Hide browser":"Show browser"))),q&&!f&&Ye.default.createElement("p",{role:"alert",className:`${z} shrink-0`},"Claude Code needs you: ",q.reason," ",Ye.default.createElement("button",{type:"button",onClick:()=>O(!0),className:"underline"},"Show the browser")),Ye.default.createElement("div",{ref:x,className:`flex-1 min-h-0 flex flex-col gap-4 ${A?"lg:flex-row lg:gap-0":""} ${w?"select-none cursor-col-resize":""}`},Ye.default.createElement("section",{className:`${V} lg:h-full min-w-0`,style:A?{flex:`0 0 ${S}%`}:void 0,"aria-label":"Conversation",id:`code-interaction-${e}-conversation`},Ye.default.createElement("div",{className:I},Ye.default.createElement("span",{className:`text-sm font-medium ${te}`},"Conversation"),!f&&Ye.default.createElement("button",{type:"button",onClick:()=>O(!0),className:F},"Show browser \u203A")),Ye.default.createElement("ol",{ref:h,onScroll:Y,className:"space-y-3 p-4 flex-1 min-h-0 overflow-y-auto"},n.turns.map(ce=>Ye.default.createElement(QSe,{key:ce.id,turn:ce,sandboxId:L,darkMode:r,muted:R,strong:te}))),Ye.default.createElement("form",{onSubmit:Me,className:`space-y-2 p-4 border-t shrink-0 ${r?"border-gray-700":"border-gray-200"}`},Ye.default.createElement("label",{htmlFor:`code-interaction-${e}-message`,className:`text-xs font-medium ${te}`},"Message ",p0(n)),Ye.default.createElement("textarea",{id:`code-interaction-${e}-message`,ref:b,value:s,onChange:ce=>l(ce.target.value),rows:3,className:`w-full text-sm rounded border p-2 ${r?"bg-gray-800 border-gray-600 text-white":"bg-white border-gray-300"}`,placeholder:G?.result?"Reply, or ask for the next change":"What should happen next?"}),Ye.default.createElement("div",{className:"flex flex-wrap items-center justify-between gap-2"},Ye.default.createElement("span",{className:`text-xs ${R}`,role:"status"},gX(n,{handoff:d})),Ye.default.createElement("button",{type:"submit",className:ee,disabled:u||!s.trim()},u?"Sending\u2026":"Send")),a&&Ye.default.createElement("p",{className:`text-xs ${r?"text-red-400":"text-red-600"}`,role:"alert"},a))),A&&Ye.default.createElement("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize the conversation and the browser","aria-controls":`code-interaction-${e}-conversation`,"aria-valuenow":Math.round(S),"aria-valuemin":u2,"aria-valuemax":c2,tabIndex:0,onPointerDown:Q,onPointerMove:B,onPointerUp:K,onPointerCancel:K,onKeyDown:N,onDoubleClick:()=>C(ef),className:"group hidden lg:flex w-4 shrink-0 cursor-col-resize items-center justify-center touch-none focus:outline-none","data-testid":"code-interaction-separator"},Ye.default.createElement("span",{className:`h-12 w-1 rounded-full transition-colors ${w?"bg-red-500":r?"bg-gray-600 group-hover:bg-gray-400 group-focus-visible:bg-red-500":"bg-gray-300 group-hover:bg-gray-500 group-focus-visible:bg-red-500"}`})),f&&Ye.default.createElement("section",{id:`code-interaction-${e}-browser`,className:`${V} lg:h-full min-w-0 flex-1`,"aria-label":"The sandbox\u2019s browser","data-testid":"code-interaction-browser"},Ye.default.createElement("div",{className:I},Ye.default.createElement("span",{className:`text-sm font-medium ${te}`},"The sandbox\u2019s browser"),Ye.default.createElement("button",{type:"button",onClick:()=>O(!1),className:F,"aria-label":"Hide the browser"},"Hide \xD7")),Ye.default.createElement("div",{className:"p-4 space-y-2 flex-1 min-h-0 overflow-y-auto"},q&&Ye.default.createElement("p",{role:"alert",className:z},p0(n)," needs you: ",q.reason),oe?Ye.default.createElement(w0,{sessionId:L,watchOnOpen:!0,onHandBack:ue,handBackLabel:`Hand back to ${p0(n)}`}):Ye.default.createElement("p",{className:`text-xs ${R}`},"The browser is not running."," ",n.project?Ye.default.createElement("a",{href:et(`/projects/${n.project.id}?tab=browser`),onClick:ce=>{ce.preventDefault(),lt(`/projects/${n.project.id}?tab=browser`)},className:"underline"},"Start it from the project"):"Start it from Settings \u2192 Integrations",", and Claude Code reaches it from its next turn.")))))}var XX="activeagents.codeInteraction.showBrowser",ZX="activeagents.codeInteraction.split";function RSe(){try{let e=window.localStorage.getItem(ZX);return e===null?ef:d0(e)}catch{return ef}}function YX(e){try{window.localStorage.setItem(ZX,String(e))}catch{}}function eke(){let e=null;try{e=window.localStorage.getItem(XX)}catch{}return hX(window.location.search,e)}function tke(e){try{window.localStorage.setItem(XX,e?"1":"0")}catch{}let t=new URL(window.location.href);t.searchParams.set("browser",e?"1":"0"),window.history.replaceState(window.history.state,"",t)}function rke(e,t){let[r,n]=(0,Ye.useState)(null);return(0,Ye.useLayoutEffect)(()=>{let o=window.matchMedia("(min-width: 1024px)"),a=()=>{let i=e.current;if(!i||!o.matches){n(null);return}let s=i.getBoundingClientRect().top+window.scrollY;n(Math.max(420,Math.floor(window.innerHeight-s-24)))};return a(),window.addEventListener("resize",a),o.addEventListener("change",a),()=>{window.removeEventListener("resize",a),o.removeEventListener("change",a)}},[e,t]),r}var JX=Z(J());function sd({kind:e,id:t,title:r="Replay this session",testId:n="replay-link",style:o}){let a=ch(e,t);return a?JX.default.createElement("a",{href:et(a),"data-testid":n,title:r,onClick:i=>{i.stopPropagation(),!(i.metaKey||i.ctrlKey||i.shiftKey||i.button!==0)&&(i.preventDefault(),lt(a))},style:{fontFamily:U,fontSize:11,color:"var(--color-info)",textDecoration:"none",whiteSpace:"nowrap",...o}},"replay ->"):null}var nke=e=>{let t=null;if((e?.generations||[]).forEach(a=>{let i=a.tokens||{},s=(i.input||0)+(i.output||0);s>0&&(!t||s>t.total)&&(t={input:i.input||0,output:i.output||0,cached:i.cached||0,thinking:i.thinking||0,model:a.model,total:s})}),!t)return null;let r=rd(e?.instructions),n=0;(e?.messages||[]).forEach(a=>{a.role==="tool"&&(n+=rd(a.content)+rd(a.tool_arguments))}),n=Math.min(n,t.input);let o=Math.max(t.input-r-n,0);return{used:t.total,limit:Vx(t.model),cached:t.cached,thinking:t.thinking,segments:[{key:"messages",label:"Messages",tokens:o},{key:"tool_results",label:"Tool results",tokens:n},{key:"instructions",label:"Instructions",tokens:r},{key:"output",label:"Generated output",tokens:t.output}]}},QX=["#6366f1","#10b981","#f59e0b","#ec4899","#3b82f6","#8b5cf6","#14b8a6","#f97316"],oke=[{id:"recent",label:"Recent"},{id:"tokens",label:"Tokens"},{id:"messages",label:"Messages"}],ake=[{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"}],ike=3e4,Du=e=>e==null?"0":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString(),RX=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 ske({generation:e,darkMode:t,maxMs:r,expanded:n,onToggle:o}){let a=Zn(t),[i,s]=(0,xe.useState)(null),[l,u]=(0,xe.useState)(!1),c=e.trace_id,d=(e.duration_seconds||0)*1e3;(0,xe.useEffect)(()=>{if(!c)return;let m=!0;return fetch(`/api/traces/${encodeURIComponent(c)}`).then(y=>y.ok?y.json():Promise.reject(new Error("not found"))).then(({trace:y})=>m&&s(y)).catch(()=>m&&u(!0)),()=>{m=!1}},[c]);let p=!!i,f=(i?.spans||[]).length;return xe.default.createElement("div",{className:`rounded-lg px-2 py-1.5 -mx-2 transition-colors ${p?t?"hover:bg-white/5":"hover:bg-gray-100":""}`,style:n?{background:a.hoverBg}:void 0},xe.default.createElement("div",{className:p?"cursor-pointer":void 0,onClick:p?o:void 0,title:p?`${f} spans \u2014 click for the trace`:void 0},xe.default.createElement("div",{className:"flex flex-wrap items-center gap-3 text-xs font-mono",style:{color:a.textSecondary}},xe.default.createElement("span",{title:e.cache_hit?`${Du(e.tokens.cached)} cached prompt tokens`:"No prompt cache hit",style:{color:e.cache_hit?a.good:a.textMuted}},e.cache_hit?"\u26A1 cache hit":"\u25CF generated"),e.thinking&&xe.default.createElement("span",{className:"text-amber-500",title:`${Du(e.tokens.thinking)} thinking tokens`},"\u{1F9E0} ",Du(e.tokens.thinking)),xe.default.createElement("span",null,e.model||"unknown-model"),e.provider&&xe.default.createElement("span",null,e.provider),xe.default.createElement("span",{className:"text-blue-500"},"in:",Du(e.tokens.input)),xe.default.createElement("span",{className:"text-green-500"},"out:",Du(e.tokens.output)),e.finish_reason&&xe.default.createElement("span",null,e.finish_reason),e.duration_seconds!=null&&xe.default.createElement("span",null,Jn(d)),c&&xe.default.createElement("a",{href:et(`/traces?trace=${c}`),title:`${c} \u2014 open in Traces`,style:{color:a.link},className:"hover:underline",onClick:m=>m.stopPropagation()},"trace:",c.slice(0,8)," \u2192"),l&&xe.default.createElement("span",{style:{color:a.textMuted}},"trace unavailable")),xe.default.createElement("div",{className:"flex items-center gap-2 mt-1"},c&&!l?xe.default.createElement(dI,{trace:i,darkMode:t}):d>0?xe.default.createElement("div",{className:"rounded flex-1",style:{height:"8px",background:a.trackBg}},xe.default.createElement("div",{className:"rounded",style:{height:"8px",width:`${Math.max(d/r*100,2)}%`,background:"#ef4444"}})):null,p&&xe.default.createElement(xe.default.Fragment,null,xe.default.createElement("span",{className:"font-mono flex-shrink-0",style:{fontSize:"10px",color:a.textMuted}},f," ",f===1?"span":"spans"),xe.default.createElement(Xp,{open:n,darkMode:t,size:12})))),n&&i&&xe.default.createElement("div",{className:"mt-2 rounded-lg border p-3",style:{background:a.cardBg,borderColor:a.cardBorder}},xe.default.createElement(Qx,{trace:i,darkMode:t,compact:!0})))}function ju({agentId:e=null,embedded:t=!1}){let{darkMode:r}=ut(),[n,o]=(0,xe.useState)([]),[a,i]=(0,xe.useState)(!0),[s,l]=(0,xe.useState)(null),[u,c]=(0,xe.useState)(null),[d,p]=(0,xe.useState)({}),{timeWindow:f}=vl(),m=!t&&!e,y=()=>m?lX(Qn(),window.location.search):{view:"list",source:"all",project:null,codeId:null},[b,g]=(0,xe.useState)(y),[h,v]=(0,xe.useState)([]),{source:x,project:S}=b;(0,xe.useEffect)(()=>{if(!m)return;let L=()=>g(y());return window.addEventListener("popstate",L),window.addEventListener("dashboard:navigate",L),()=>{window.removeEventListener("popstate",L),window.removeEventListener("dashboard:navigate",L)}},[m]),(0,xe.useEffect)(()=>{m&&fetch("/api/projects").then(L=>L.ok?L.json():{projects:[]}).then(L=>v(L.projects||[])).catch(()=>{})},[m]);let _=L=>{ad(L),g(y())},w=L=>_(s2({source:x,project:S,...L})),k=L=>_(ms(L));(0,xe.useEffect)(()=>{if(b.view!=="latest")return;let L=TI({source:x==="all"?"claude_code":x,project:S});fetch(`/api/interactions?${L}`).then(G=>G.json()).then(G=>{let q=uX(G.interactions),oe=q?ms(Rp(q.id)):s2({source:x,project:S});window.history.replaceState({},"",et(oe)),g(y())}).catch(()=>{})},[b.view,x,S]);let A=(0,xe.useCallback)(async()=>{try{let L=await fetch(`/api/interactions?${TI({minutes:f.minutes,agentId:e,source:x,project:S})}`);if(!L.ok)throw new Error(`Request failed (${L.status})`);let G=await L.json();o(G.interactions||[]),l(null)}catch(L){l(L.message)}finally{i(!1)}},[f.minutes,e,x,S]);(0,xe.useEffect)(()=>{A();let L=setInterval(A,ike);return()=>clearInterval(L)},[A]);let[C,T]=(0,xe.useState)("recent"),$=(0,xe.useMemo)(()=>{let L=[...new Set(n.map(G=>G.display_name).filter(Boolean))].sort();return Object.fromEntries(L.map((G,q)=>[G,QX[q%QX.length]]))},[n]),Q=(0,xe.useMemo)(()=>{let L=n.reduce((q,oe)=>q+(oe.tokens?.total||0),0),G=new Set(n.map(q=>q.display_name).filter(Boolean));return{interactions:n.length,tokens:L,agents:G.size,avgTokens:n.length?Math.round(L/n.length):0}},[n]),B=(0,xe.useMemo)(()=>{if(n.length===0)return[];let L=Date.now(),G=f.bucketSeconds*1e3,q=Math.max(1,Math.round(f.minutes*60/f.bucketSeconds)),oe=Object.keys($);return Array.from({length:q},(Me,ge)=>{let ue=L-(q-1-ge)*G,R=ue-G,te=n.filter(Be=>{let ke=new Date(Be.last_activity_at).getTime();return ke>=R&&ke1440?new Date(ue).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(ue).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),...Object.fromEntries(oe.map(Be=>[Be,te.filter(ke=>ke.display_name===Be).length]))}})},[n,$,f]),K=Math.max(0,Math.ceil(B.length/6)-1),N=(0,xe.useCallback)(L=>{let G=[...L];switch(C){case"tokens":return G.sort((q,oe)=>(oe.tokens?.total||0)-(q.tokens?.total||0));case"messages":return G.sort((q,oe)=>(oe.message_count||0)-(q.message_count||0));default:return G.sort((q,oe)=>String(oe.last_activity_at).localeCompare(String(q.last_activity_at)))}},[C]),O=(0,xe.useMemo)(()=>{let L=new Map;n.forEach(q=>{let oe=q.agent_name||q.agent?.name||"Unattributed",Me=q.action_name,ge=`${oe}#${Me||""}`;L.has(ge)||L.set(ge,{key:ge,title:Me?`${oe} ${Me.charAt(0).toUpperCase()}${Me.slice(1)} Agent Interactions`:`${oe} Interactions`,sessions:[],tokens:0,lastActivity:q.last_activity_at});let ue=L.get(ge);ue.sessions.push(q),ue.tokens+=q.tokens?.total||0,q.last_activity_at>ue.lastActivity&&(ue.lastActivity=q.last_activity_at)});let G=[...L.values()].map(q=>({...q,sessions:N(q.sessions)}));return C==="tokens"?G.sort((q,oe)=>oe.tokens-q.tokens):C==="messages"?G.sort((q,oe)=>oe.sessions.length-q.sessions.length):G.sort((q,oe)=>String(oe.lastActivity).localeCompare(String(q.lastActivity)))},[n,C,N]),D=async L=>{if(m&&Rp(L)){k(Rp(L));return}if(u===L){c(null);return}if(c(L),!d[L])try{let G=await fetch(`/api/interactions/${L}`);if(G.ok){let q=await G.json();p(oe=>({...oe,[L]:q.interaction}))}}catch{}},[P,j]=(0,xe.useState)({}),[M,W]=lh(),Y=Zn(r);return m&&b.view==="conversation"?xe.default.createElement(LI,{rootId:b.codeId,onBack:()=>_(s2({source:x,project:S}))}):a?xe.default.createElement("div",{className:"flex items-center justify-center h-64"},xe.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):xe.default.createElement("div",{className:"space-y-6"},xe.default.createElement("div",{className:"flex items-start justify-between"},!t&&xe.default.createElement("div",null,xe.default.createElement("h1",{className:"text-2xl font-bold",style:{color:Y.textPrimary}},"Interactions"),xe.default.createElement("p",{className:"text-sm mt-1",style:{color:Y.textSecondary}},"Persisted conversation streams per agent \u2014 messages, generations and provenance")),xe.default.createElement("div",{className:"flex items-center gap-3"},xe.default.createElement("div",{className:"flex items-center rounded-lg p-1",style:{background:r?"rgba(255,255,255,0.06)":"#f3f4f6"}},xe.default.createElement("span",{className:"text-xs px-1",style:{color:Y.textMuted}},"Sort"),oke.map(L=>xe.default.createElement("button",{key:L.id,onClick:()=>T(L.id),className:"px-2 py-1 text-xs rounded transition-colors",style:C===L.id?{background:r?"#2a2a2a":"#ffffff",color:Y.textPrimary,boxShadow:r?"none":"0 1px 2px rgba(0,0,0,0.08)"}:{color:Y.textSecondary}},L.label))),xe.default.createElement(xl,null),m&&xe.default.createElement(r0,null))),m&&xe.default.createElement("div",{className:"flex flex-wrap items-center gap-3","data-testid":"interactions-filters"},xe.default.createElement("div",{className:"flex items-center rounded-lg p-1",role:"group","aria-label":"Source",style:{background:r?"rgba(255,255,255,0.06)":"#f3f4f6"}},EI.map(L=>xe.default.createElement("button",{key:L.id,type:"button",onClick:()=>w({source:L.id}),"aria-pressed":x===L.id,className:"px-2 py-1 text-xs rounded transition-colors",style:x===L.id?{background:r?"#2a2a2a":"#ffffff",color:Y.textPrimary}:{color:Y.textSecondary}},L.label))),h.length>0&&xe.default.createElement("label",{className:"flex items-center gap-1 text-xs",style:{color:Y.textSecondary}},"Project",xe.default.createElement("select",{value:S||"",onChange:L=>w({project:L.target.value?Number(L.target.value):null}),className:"text-xs rounded border px-1 py-0.5",style:{background:Y.cardBg,borderColor:Y.cardBorder,color:Y.textPrimary}},xe.default.createElement("option",{value:""},"All projects"),h.map(L=>xe.default.createElement("option",{key:L.id,value:L.id},L.name)))),xe.default.createElement("button",{type:"button",onClick:()=>_(`/interactions/latest${S?`?project=${S}`:""}`),className:"px-2 py-1 text-xs rounded border",style:{borderColor:Y.cardBorder,color:Y.textPrimary},title:"Open the most recent Claude Code or Codex conversation"},"Latest conversation")),xe.default.createElement(vI,{agentId:e}),s&&xe.default.createElement("div",{className:"p-3 rounded-lg text-sm",style:{background:r?"rgba(239,68,68,0.1)":"#fef2f2",color:"#ef4444"}},"Failed to load interactions: ",s),n.length>0&&xe.default.createElement("div",{className:"rounded-xl border p-4",style:{backgroundColor:Y.cardBg,borderColor:Y.cardBorder}},xe.default.createElement("div",{className:"flex items-center justify-between mb-3"},xe.default.createElement("h3",{className:"text-sm font-semibold",style:{color:Y.textPrimary}},"Interactions over time"),xe.default.createElement("div",{className:"flex items-center gap-3 flex-wrap justify-end"},Object.entries($).map(([L,G])=>xe.default.createElement("span",{key:L,className:"flex items-center gap-1.5 text-xs",style:{color:Y.textSecondary}},xe.default.createElement("span",{className:"inline-block w-2 h-2 rounded-full",style:{background:G}}),L)))),xe.default.createElement("div",{className:"h-32"},xe.default.createElement(_c,{width:"100%",height:"100%"},xe.default.createElement(td,{data:B},xe.default.createElement("defs",null,Object.entries($).map(([L,G])=>xe.default.createElement("linearGradient",{key:L,id:`ix-gradient-${L.replace(/\W/g,"-")}`,x1:"0",y1:"0",x2:"0",y2:"1"},xe.default.createElement("stop",{offset:"5%",stopColor:G,stopOpacity:.6}),xe.default.createElement("stop",{offset:"95%",stopColor:G,stopOpacity:.05})))),xe.default.createElement(Su,{strokeDasharray:"3 3",stroke:r?"#2a2a2a":"#e5e7eb"}),xe.default.createElement(Au,{dataKey:"time",stroke:r?"rgba(255,255,255,0.4)":"#9ca3af",tick:{fontSize:10,fill:r?"rgba(255,255,255,0.5)":"#6b7280"},tickLine:!1,interval:K}),xe.default.createElement(Nu,{stroke:r?"rgba(255,255,255,0.4)":"#9ca3af",tick:{fontSize:10,fill:r?"rgba(255,255,255,0.5)":"#6b7280"},tickLine:!1,axisLine:!1,allowDecimals:!1}),xe.default.createElement(Uc,{contentStyle:{background:r?"#1f1f1f":"white",border:`1px solid ${Y.cardBorder}`,borderRadius:"8px"},labelStyle:{color:Y.textPrimary,fontWeight:"600",marginBottom:"4px"}}),Object.entries($).map(([L,G])=>xe.default.createElement(_u,{key:L,type:"monotone",dataKey:L,stackId:"1",stroke:G,strokeWidth:2,fill:`url(#ix-gradient-${L.replace(/\W/g,"-")})`}))))),xe.default.createElement("div",{className:"flex items-center gap-8 pt-3 mt-3 border-t",style:{borderColor:Y.cardBorder}},[{label:"Interactions",value:Q.interactions.toLocaleString()},{label:"Agents",value:Q.agents.toLocaleString()},{label:"Total tokens",value:Du(Q.tokens)},{label:"Avg / interaction",value:Du(Q.avgTokens)}].map(L=>xe.default.createElement("div",{key:L.label},xe.default.createElement("div",{className:"text-lg font-bold",style:{color:Y.textPrimary}},L.value),xe.default.createElement("div",{className:"text-xs",style:{color:Y.textSecondary}},L.label))))),n.length===0?xe.default.createElement("div",{className:"text-center py-12"},xe.default.createElement("div",{className:"text-lg",style:{color:Y.textMuted}},"No interactions in the last ",f.label),xe.default.createElement("p",{className:"text-sm mt-2",style:{color:Y.textSecondary}},"Widen the time window, or run an agent to start recording its conversation stream")):xe.default.createElement("div",{className:"space-y-8"},O.map(L=>xe.default.createElement("div",{key:L.key,className:"space-y-4"},xe.default.createElement("div",{className:"flex items-baseline justify-between"},xe.default.createElement("h2",{className:"text-sm font-semibold",style:{color:Y.textPrimary}},L.title),xe.default.createElement("span",{className:"text-xs",style:{color:Y.textMuted}},L.sessions.length," ",L.sessions.length===1?"interaction":"interactions",L.tokens>0&&` \xB7 ${Du(L.tokens)} tokens`)),L.sessions.map(G=>{let q=d[G.id],oe=u===G.id,Me=P[G.id]||"conversation",ge=G.tokens?.total||0,ue=(G.tokens?.input||0)+(G.tokens?.output||0)||ge;return xe.default.createElement(HC,{key:G.id,darkMode:r,className:"shadow-sm"},xe.default.createElement("div",{className:`flex items-center justify-between flex-wrap gap-y-2 p-4 cursor-pointer transition-colors ${r?"hover:bg-white/5":"hover:bg-gray-50"}`,onClick:()=>D(G.id),style:oe?{background:Y.hoverBg}:void 0},xe.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},NI(G)?xe.default.createElement("span",{className:"px-2 py-1 text-xs font-medium rounded flex-shrink-0",style:{background:r?"rgba(249,115,22,0.15)":"#fff7ed",color:r?"#fdba74":"#c2410c"},title:`${G.turn_count} ${G.turn_count===1?"turn":"turns"}${G.active?", one running now":""}`},G.runner==="codex"?"CODEX":"CLAUDE CODE",G.active?" \xB7 LIVE":""):G.source==="telemetry"?xe.default.createElement("span",{className:"px-2 py-1 text-xs font-medium rounded flex-shrink-0",style:{background:r?"rgba(168,85,247,0.15)":"#faf5ff",color:r?"#d8b4fe":"#7e22ce"},title:"Reported by an app running this agent outside the platform"},"REPORTED"):xe.default.createElement("span",{className:"px-2 py-1 text-xs font-medium bg-blue-100 text-blue-700 rounded flex-shrink-0"},"SESSION"),xe.default.createElement("span",{className:"font-mono text-sm truncate",style:{color:Y.textPrimary}},G.display_name),G.agent&&xe.default.createElement("span",{className:"text-sm truncate",style:{color:Y.textSecondary}},G.agent.name),G.service_name&&xe.default.createElement("span",{className:"text-sm truncate font-mono",style:{color:Y.textMuted}},G.service_name)),xe.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0"},xe.default.createElement(od,{darkMode:r,cells:[{key:"activity",width:Ea.count,content:G.message_count>0?`${G.message_count} messages`:`${G.tool_count||0} tool ${G.tool_count===1?"call":"calls"}`},{key:"tokens",width:Ea.tokens,title:"Tokens across this interaction",empty:"No token counts recorded for this interaction",content:ge>0&&`${Du(ge)} tokens`},{key:"context",width:Ea.context,empty:"Context: this interaction recorded no token counts",content:ge>0&&xe.default.createElement(nd,{compact:!0,darkMode:r,label:"Context",used:ue,limit:Vx(G.model),segments:[{key:"messages",label:"Context",tokens:ue}]})},{key:"age",width:Ea.age,title:G.last_activity_at||void 0,empty:"No activity recorded",content:RX(G.last_activity_at)&&xe.default.createElement("span",{style:{color:Y.textMuted}},RX(G.last_activity_at))}]}),G.source!=="telemetry"&&xe.default.createElement(sd,{kind:"context",id:G.id,title:"Replay this conversation"}),xe.default.createElement(Xp,{open:oe,darkMode:r}))),!oe&&xe.default.createElement(sh,{darkMode:r,onClick:()=>D(G.id),hold:!0,style:{padding:"0 16px 12px"},lines:[{label:"input",text:G.preview?.input,color:jn("user",r).color},{label:"output",text:G.preview?.output,color:jn("assistant",r).color}]}),oe&&xe.default.createElement("div",{className:"border-t p-4 space-y-3",style:{borderColor:Y.cardBorder,background:Y.innerBg}},q?xe.default.createElement(xe.default.Fragment,null,xe.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2"},xe.default.createElement(Jx,{options:ake,value:Me,onChange:R=>j(te=>({...te,[G.id]:R})),darkMode:r}),xe.default.createElement("span",{className:"text-xs",style:{color:Y.textSecondary}},q.messages.length," ",q.messages.length===1?"message":"messages",q.generations.length>0&&` \xB7 ${q.generations.length} ${q.generations.length===1?"generation":"generations"}`)),Me==="conversation"&&xe.default.createElement(xe.default.Fragment,null,q.messages.length===0&&xe.default.createElement("div",{className:"text-sm",style:{color:Y.textMuted}},"No conversation content captured for this run. Enable content capture in the reporting app to record prompts, tool arguments, and responses."),xe.default.createElement(ds,{darkMode:r,messages:q.instructions?[{id:`ctx-${G.id}-system`,role:"system",content:q.instructions,created_at:G.created_at},...q.messages]:q.messages}),(()=>{let R=nke(q);return R?xe.default.createElement("div",{className:"pt-3 mt-2 border-t",style:{borderColor:Y.cardBorder}},xe.default.createElement(nd,{...R,label:"Context pressure",estimated:!0,darkMode:r})):null})()),Me==="spans"&&(q.generations.length===0?xe.default.createElement("div",{className:"text-sm",style:{color:Y.textMuted}},"No generations recorded for this interaction \u2014 nothing to trace."):xe.default.createElement("div",{className:"space-y-2"},q.generations.map(R=>xe.default.createElement(ske,{key:R.id,generation:R,darkMode:r,maxMs:Math.max(...q.generations.map(te=>(te.duration_seconds||0)*1e3),1),expanded:M(`${G.id}:${R.id}`),onToggle:()=>W(`${G.id}:${R.id}`)}))))):xe.default.createElement("div",{className:"flex justify-center py-6"},xe.default.createElement("div",{className:"animate-spin rounded-full h-6 w-6 border-b-2 border-red-500"}))))})))))}var Ne=Z(J());function tZ(e,t,r=null){let n=d=>Object.values(t[d]||{})[0]??null,o=(d,p)=>{if(!p)return null;let f=p.scenario||p;return{key:d,prompt:f.prompt,group:f.group??null,notes:f.notes??null,expectations:f.expectations||{},position:f.position}},a=(d,p)=>{let f=o(d.key,p),m=["prompt","group","notes","expectations"].some(y=>JSON.stringify(d[y]??null)!==JSON.stringify(f[y]??null));return{...d,...f,catalogChanged:m}},i=(d,p)=>({...o(d,p),id:null,enabled:!1,orphan:!0}),s=(d,p,f,m)=>{if(!r)return m();let y=r.get(d);if(y&&y.scenario===p&&y.first===f)return y.row;let b=m();return r.set(d,{scenario:p,first:f,row:b}),b},l=new Set(e.map(d=>d.key)),u=e.map(d=>{let p=n(d.key);return p?s(d.key,d,p,()=>a(d,p)):d}),c=Object.keys(t).filter(d=>!l.has(d)).map(d=>{let p=n(d);return s(d,null,p,()=>i(d,p))});return[...u,...c]}var eZ=e=>/^[1-9]\d*$/.test(e||"")?e:null;function zI(e){let t=new URLSearchParams(e),r=eZ(t.get("evaluation"));return r?{evaluationId:r,runId:eZ(t.get("run"))}:null}async function rZ(e,t,r){if(!t||e.some(a=>String(a.id)===String(t)))return e;let n=await r(`/api/evaluations/${encodeURIComponent(t)}`);if(!n.ok)throw new Error(`Requested evaluation is unavailable (HTTP ${n.status})`);let o=await n.json();if(!o.evaluation)throw new Error("Requested evaluation is unavailable");return[o.evaluation,...e]}var be=Z(J());async function ld(e,{navigator:t=globalThis.navigator,document:r=globalThis.document}={}){let n=String(e??"");if(t?.clipboard?.writeText)try{return await t.clipboard.writeText(n),!0}catch{}if(!r?.body||typeof r.execCommand!="function")return!1;let o=r.createElement("textarea");o.value=n,o.setAttribute("readonly",""),o.style.position="fixed",o.style.top="0",o.style.left="0",o.style.opacity="0",r.body.appendChild(o);try{return o.select(),typeof o.setSelectionRange=="function"&&o.setSelectionRange(0,n.length),r.execCommand("copy")===!0}catch{return!1}finally{r.body.removeChild(o)}}function mh(e){if(!e)return null;let t=`/api${e}`;return{report:t,markdown:`${t}.md`,html:`${t}?download=1`,json:`${t}.json?download=1`,md:`${t}.md?download=1`}}function f2(e,{part:t=null,model:r=null,scenario:n=null}={}){if(!e)return null;let o=new URLSearchParams;t&&o.set("part",t),r&&r!=="all"&&o.set("model",r),n&&o.set("scenario",n);let a=o.toString();return a?`${e}?${a}`:e}async function nZ(e,{fetch:t=globalThis.fetch,navigator:r=globalThis.navigator,document:n=globalThis.document,ClipboardItem:o=globalThis.ClipboardItem,Blob:a=globalThis.Blob}={}){if(!e||typeof t!="function")return!1;let i=()=>t(e,{headers:{Accept:"text/markdown"},credentials:"same-origin"}).then(s=>{if(!s.ok)throw new Error(`HTTP ${s.status}`);return s.text()});if(o&&a&&r?.clipboard?.write)try{let s=i();return await r.clipboard.write([new o({"text/plain":s.then(l=>new a([l],{type:"text/plain"}))})]),!0}catch{}try{return await ld(await i(),{navigator:r,document:n})}catch{return!1}}var lke=["trace_error_rate","trace_latency"],HI=[{id:"rules",label:"Rule-based"},{id:"telemetry",label:"Telemetry"},{id:"judge",label:"LLM judge"}],St=(e,t)=>`${e} ${t}${e===1?"":"s"}`,S0=(e,t)=>{let r=String(e||"");return r.length>t?`${r.slice(0,t-1)}\u2026`:r},oZ=e=>String(e||"").replace(/_/g," ").replace(/^\w/,t=>t.toUpperCase()),UI=e=>`${Math.round(Number(Math.abs(Number(e)*100).toFixed(9)))}%`,uke=(e,t)=>t>0?`${e}/${t} \xB7 ${UI(e/t)}`:"\u2014",aZ=e=>{let t=Number(e)||0;return t>=1e3?`${(t/1e3).toFixed(t%1e3===0?0:1)}s`:`${Math.round(t)}ms`},Sl=e=>e?.type==="llm_judge"?"judge":lke.includes(e?.type)?"telemetry":"rules",m2=e=>{let t=e?.config||{};switch(e?.type){case"response_present":return"Response present";case"min_length":return"Response length";case"max_latency_ms":return"Latency";case"token_budget":return"Output tokens";case"contains":return"Must contain";case"not_contains":return"Must not contain";case"trace_error_rate":return"Trace error rate";case"trace_latency":return"Trace latency";case"llm_judge":return t.description||oZ(e.key);default:return oZ(e?.key)}},yh=e=>{let t=e?.config||{};switch(e?.type){case"response_present":return"non-empty output";case"min_length":return`\u2265 ${t.chars??40} chars`;case"max_latency_ms":return`\u2264 ${aZ(t.ms??5e3)}`;case"token_budget":return`\u2264 ${t.output_tokens??1e3} output tokens`;case"contains":return`matches /${t.pattern||""}/i`;case"not_contains":return`no /${t.pattern||""}/i`;case"trace_error_rate":return`error rate \u2264 ${t.max_error_rate??5}% \xB7 ${t.window_hours??168}h`;case"trace_latency":return`avg \u2264 ${aZ(t.max_avg_ms??5e3)} \xB7 ${t.window_hours??168}h`;case"llm_judge":return t.prompt?`judge: ${S0(t.prompt,72)}`:"judge scores 0.0\u20131.0";default:return""}},k0=(e,t)=>(e?.criteria||[]).find(r=>r.key===t)||{key:t,type:t,config:{}},vh=(e,t=null)=>{let r=t?.scores||{};if(Object.prototype.hasOwnProperty.call(r,"_judge_label"))return r._judge_label||"rules";let n=r._verdict?.judge;return n&&n!=="pass rate"?n:e?.judge_kind==="judge_defined"?`judge-defined KPIs${e.judge_model?` \xB7 ${e.judge_model}`:""}`:e?.judge_kind==="llm"?e.judge_model||"LLM judge":"rules"},qI=(e,t=null)=>t?.models?.length||Object.keys(t?.scores?._models||t?.scores?._cohorts||{}).length||(e?.compare_models||[]).length||1,rf=(e,t=null)=>{let r=qI(e,t);if(e?.scenario_suite){let a=t?.samples_evaluated&&r?Math.round(t.samples_evaluated/r):e.scenario_count||0;return`${St(a,"scenario")} \xD7 ${St(r,"model")}`}let n=(e?.criteria||[]).length,o=n===1?"criterion":"criteria";return r>1?`${n} ${o} \xD7 ${St(r,"model")}`:`${n} ${o} \xB7 ${St(e?.sample_size??0,"sample")}`},KI=e=>e!=null&&typeof e=="object"&&!Array.isArray(e)&&!("score"in e)&&!("skipped"in e),xh=e=>Object.entries(e?.scores||{}).filter(([t,r])=>!t.startsWith("_")&&r&&typeof r=="object");var _0=e=>{let t=e?.scores?._cohorts||e?.scores?._models;if(t&&typeof t=="object"&&Object.keys(t).length)return Object.keys(t);if(Array.isArray(e?.models)&&e.models.length)return e.models;let r=[];return xh(e).forEach(([,n])=>{KI(n)&&Object.keys(n).forEach(o=>{r.includes(o)||r.push(o)})}),r},nf=(e,t)=>!e||typeof e!="object"?null:KI(e)?t&&e[t]||null:e,sZ=e=>e&&e.samples_evaluated?(e.samples_passed||0)/e.samples_evaluated:null,cke=e=>!!e&&["pending","running"].includes(e.status),hh=(e,t)=>!e||typeof e!="object"?null:e.priced!=null?e.priced:e.cost!=null?t??null:0,of=(e,t)=>e!=null&&t?e/t:null,g2=(e,t)=>{if(!e||typeof e!="object")return!1;if(Number(e.estimated)>0||e.cost_basis==="estimated"||e.cost_basis==="mixed")return!0;let r=hh(e,t);return r!=null&&t!=null&&e.cost!=null&&r{if(!e)return[];let t=e.scores||{},r=t._models;if(r&&typeof r=="object"&&Object.keys(r).length)return Object.entries(r).map(([a,i])=>({label:a,model:i.model||a,provider:i.provider||null,samples:i.scenarios??null,passed:i.passed??null,errored:i.errored??0,avg_score:i.avg_score??null,avg_duration_ms:i.avg_duration_ms??null,p50_duration_ms:i.p50_duration_ms??null,p95_duration_ms:i.p95_duration_ms??null,input_tokens:i.input_tokens??null,output_tokens:i.output_tokens??null,cost:i.cost??null,priced:hh(i,i.scenarios),reported:i.reported??null,estimated:g2(i,i.scenarios),judge_cost:i.judge_cost??null,judge_calls:i.judge_calls??0,faults:i.faults||{},kind:"replay"}));let n=t._cohorts;if(n&&typeof n=="object"&&Object.keys(n).length)return Object.entries(n).map(([a,i])=>({label:a,model:a,provider:i.provider||null,samples:i.samples??null,passed:i.passed??null,errored:0,avg_score:null,avg_duration_ms:i.avg_duration_ms??null,input_tokens:i.input_tokens??null,output_tokens:i.output_tokens??null,cost:i.cost??null,priced:hh(i,i.samples),reported:0,estimated:i.cost!=null,judge_cost:null,judge_calls:0,faults:{},kind:"sample"}));let o=_0(e);return o.length?o.map(a=>{let i=xh(e).map(([,s])=>nf(s,a)).filter(s=>s&&s.total!=null).map(s=>s.total);return{label:a,model:a,provider:null,samples:i.length?Math.max(...i):null,passed:null,errored:0,avg_score:null,avg_duration_ms:null,input_tokens:null,output_tokens:null,cost:null,priced:null,reported:null,estimated:!1,judge_cost:null,judge_calls:0,faults:{},kind:e.selection||t._selection?"replay":"sample"}}):[{label:null,model:null,provider:null,samples:e.samples_evaluated??null,passed:e.samples_passed??null,errored:0,avg_score:null,avg_duration_ms:null,input_tokens:null,output_tokens:null,cost:null,priced:null,reported:null,estimated:!1,judge_cost:null,judge_calls:0,faults:{},kind:"sample"}]},lZ=(e,t)=>{let r=xh(e).map(([,o])=>nf(o,t)).filter(Boolean),n=r.filter(o=>o.score!=null);return{avg:n.length?n.reduce((o,a)=>o+a.score,0)/n.length:null,scored:n.length,cleared:n.filter(o=>o.score>=.7).length,below:n.filter(o=>o.score<.7).length,skipped:r.filter(o=>o.skipped).length}},uZ=20,af=(e=[],t=null)=>Number.isFinite(t)?Math.max(t,e.length):e.length,C0=(e=[],t=null)=>{let r=af(e,t),n=e.length=uZ;return`${St(r,"run")}${n?` \xB7 latest ${e.length}`:""}`},cZ=3,dZ=(e=[],{limit:t=null,selectedId:r=null}={})=>{let n=e.map((o,a)=>a);return!Number.isFinite(t)||e.length<=t?n:n.filter(o=>o{if(!r)return"skipped";let o=t.map(s=>e[s]),a=o.filter(s=>s&&s.status!=="pending"),i=a.some(s=>s.status!=="passed");return t.length>0&&a.length===t.length?i?"failed":"passed":n?o.some(Boolean)?"running":"queued":i?"failed":"missing"},wh=(e,t,r=[],n=null)=>Number.isFinite(e?.number)?e.number:af(r,n)-t,A0=(e,t,{olderNumber:r=t?.number,comparable:n=!0}={})=>{if(!e||e.status!=="complete")return null;if(!t)return{text:"first run",tone:"muted"};let o=Number.isFinite(r)?`#${r}`:"previous";if(t.status!=="complete")return{text:`${o} ${t.status}`,tone:"muted"};if(!n)return{text:"partial run",tone:"muted"};let a=(e.samples_passed||0)-(t.samples_passed||0);return a===0?{text:`same as ${o}`,tone:"muted"}:{text:`${a>0?"+":""}${a} passed vs ${o}`,tone:a>0?"success":"error"}},pZ=(e,t)=>{if(!e||!t)return null;let r=e.agent_version?.id??null,n=t.agent_version?.id??null;return r==null||n==null?{kind:"unrecorded",text:"release not recorded"}:r===n?{kind:"same",text:"same version"}:{kind:"new",text:`new version${e.agent_version?.number!=null?` v${e.agent_version.number}`:""}`}},fZ=e=>{if(!e||!("version_state"in e)&&!e.agent_version)return null;let t=e.agent_version;if(!t)return{text:"release not recorded",tone:"warning",title:"This run named no release, so nothing says which version of the agent it scored"};let r=t.release_digest?` \xB7 ${String(t.release_digest).slice(0,7)}`:"",n=`v${t.number}${r}`,o=e.version_state||"current";return o==="earlier"?{text:n,tone:"muted",title:`An earlier version of the agent${t.revision?` \xB7 ${t.revision}`:""}`}:o==="unrecorded"?{text:n,tone:"warning",title:"The version this run scored was not recorded"}:{text:n,tone:"success",title:`The agent's current version${t.revision?` \xB7 ${t.revision}`:""}`}},Ni=e=>{let t=e?.usage;if(!t||typeof t!="object")return null;let r=t.replays??t.samples??null,n=t.cost??null,o=hh(t,r||0),a=r!=null||n!=null?{cost:n,count:r||0,priced:o,reported:t.reported??null,estimatedCount:t.estimated??null,basis:t.cost_basis??null,estimated:g2(t,r||0),unit:t.replays!=null?"replay":"sample",perInteraction:t.per_interaction??of(n,o),inputTokens:t.input_tokens??null,outputTokens:t.output_tokens??null,modelTimeMs:t.model_time_ms??null}:null,i=t.judge,s=i&&typeof i=="object"?{cost:i.cost??null,calls:i.calls||0,byKind:i.by_kind||{},model:i.model||null,inputTokens:i.input_tokens??null,outputTokens:i.output_tokens??null,source:i.source||null,estimated:i.estimated??(i.source==null||i.source!=="reported"),run:i.run&&typeof i.run=="object"?i.run:null}:null;if(!a&&!s)return null;let l=t.total??(a?.cost!=null||s?.cost!=null?(a?.cost||0)+(s?.cost||0):null),u=!!(a?.cost!=null&&a.estimated||s?.cost!=null&&s.estimated);return{agent:a,judge:s,total:l,totalEstimated:u,runtimeMs:t.runtime_ms??null}},mZ=e=>{let t=e?.agent||null,r=e?.judge||null;return t&&t.count>0&&t.cost==null?r?"judge only \xB7 agent unpriced":"agent unpriced":t&&r?"agent + judge":t?"agent only":"judge only"},E0=e=>{switch(e?.source){case"traces":return"from traces";case"meter":return"metered";case"reported":return"reported";default:return null}},N0=e=>{if(!e)return"";let t=["define","score","recommend","verdict"];return Object.entries(e.byKind||{}).sort(([n],[o])=>t.indexOf(n)-t.indexOf(o)).map(([n,o])=>`${n} ${o}`).join(" \xB7 ")},dke=(e=[])=>{let t=null,r=0,n=0,o=null,a=0,i=!1,s=!1;return e.forEach(l=>{let u=Ni(l);u&&(a+=1,u.agent&&(r+=u.agent.count,n+=u.agent.priced),u.agent?.cost!=null&&(t=(t||0)+u.agent.cost,u.agent.estimated&&(i=!0)),u.judge?.cost!=null&&(o=(o||0)+u.judge.cost,u.judge.estimated&&(s=!0)))}),{agentCost:t,interactions:r,pricedInteractions:n,perInteraction:of(t,n),judgeCost:o,priced:a,estimated:i,judgeEstimated:s}},Sh=e=>{if(!e)return null;if(e.headline_run&&typeof e.headline_run=="object")return e.headline_run;let t=e.latest_run||null;return e.headline_run_id!=null?t&&t.id===e.headline_run_id?t:null:t&&t.status==="complete"?t:null},VI=e=>e?e.standing?e.standing:e.archived_at?"archived":Sh(e)?"current":"none":"none",pke=["current","unrecorded"],gZ=(e=[],{focusId:t=null}={})=>{let r=t!=null?e.filter(d=>String(d.id)===String(t)):[],n=r.length>0,o=n?r:e,a={total:0,stale:0,archived:0,none:0},i=[],s={},l=[],u=0,c=0;return o.forEach(d=>{let p=Sh(d),f=VI(d);if(!(n?!!p:!!p&&pke.includes(f))){a.total+=1,f==="archived"?a.archived+=1:f==="stale"?a.stale+=1:a.none+=1;return}i.push(p),l.push({id:d.id,name:d.name||`evaluation ${d.id}`}),u+=p.samples_evaluated||0,c+=p.samples_passed||0,(d.per_model&&typeof d.per_model=="object"&&Object.keys(d.per_model).length?Object.entries(d.per_model).map(([b,g])=>({label:b,passed:g?.passed||0,total:g?.total||0})):bh(p).filter(b=>b.label&&b.samples>0).map(b=>({label:b.label,passed:b.passed||0,total:b.samples||0}))).forEach(({label:b,passed:g,total:h})=>{let v=s[b]||={label:b,passed:0,total:0,byEvaluation:{}};v.passed+=g,v.total+=h;let x=v.byEvaluation[d.id]||={passed:0,total:0};x.passed+=g,x.total+=h})}),{evaluations:o.length,counted:i.length,notCounted:a,runs:i,samplesScored:u,samplesPassed:c,passRatio:u?c/u:null,perModel:Object.values(s),columns:l,spend:dke(i),focused:n}},BI=1.96,fke=(e,t)=>{let r=Number(t)||0;if(r<=0)return 0;let n=(Number(e)||0)/r,o=BI*BI,a=n+o/(2*r),i=BI*Math.sqrt(n*(1-n)/r+o/(4*r*r));return Math.max(0,(a-i)/(1+o/r))},hZ=e=>(e?.perModel||[]).filter(t=>t.total>0).map(t=>({...t,ratio:t.passed/t.total,lower:fke(t.passed,t.total)})).sort((t,r)=>r.lower-t.lower||r.total-t.total||t.label.localeCompare(r.label)).map((t,r)=>({...t,rank:r+1})),yZ=e=>{let t=e?.notCounted;if(!t||!t.total)return null;let r=[];return t.stale&&r.push(`${t.stale} stale`),t.archived&&r.push(`${t.archived} archived`),t.none&&r.push(`${t.none} ${t.none===1?"has":"have"} no complete run`),[`${t.total} not counted`,...r].join(" \xB7 ")},y2=(e,t)=>{if(!t)return[];let r=[],n=`/agents/${e?.agent?.id}/run`;t.status==="failed"&&r.push({kind:"failed",label:"run failed",scope:Number.isFinite(t.number)?`run #${t.number}`:"latest run",text:t.error_message||"The run ended before any criterion was scored.",action:{label:"Run agent",path:n,hint:"Run Agent ->"}});let o=Array.isArray(t.scores?._missing_models)?t.scores._missing_models:[];o.length&&r.push({kind:"missing",label:`no generations \xD7${o.length}`,scope:"comparison cohorts",text:"The comparison asked for these models, but the agent has no recorded generations under them. Run the agent under each model, then run the evaluation again.",chipsLabel:"missing models",chips:o,action:{label:"Run agent",path:n,hint:"Run Agent ->"}});let a={judge:[],telemetry:[],rules:[]},i=[];xh(t).forEach(([u,c])=>{let d=k0(e,u);(KI(c)?Object.entries(c):[[null,c]]).forEach(([f,m])=>{!m||typeof m!="object"||(m.skipped?a[Sl(d)].push({key:u,model:f,reason:m.reason}):m.score!=null&&m.score<.7&&i.push({key:u,model:f,stats:m,criterion:d}))})});let s=u=>[...new Set(u.map(c=>c.key))],l=u=>`${s(u).length} ${s(u).length===1?"criterion":"criteria"}`;if(a.judge.length&&r.push({kind:"judge",label:`judge skipped \xD7${a.judge.length}`,scope:l(a.judge),text:a.judge[0].reason||"The LLM judge could not score these criteria.",chipsLabel:"unscored criteria",chips:s(a.judge),action:{label:"Add provider key",path:"/settings",hint:"Settings ->"}}),a.telemetry.length&&r.push({kind:"telemetry",label:`no telemetry \xD7${a.telemetry.length}`,scope:l(a.telemetry),text:a.telemetry[0].reason||"No traces were recorded for this agent in the criterion window.",chipsLabel:"unscored criteria",chips:s(a.telemetry),action:{label:"Open traces",path:"/traces",hint:"Traces ->"}}),a.rules.length&&r.push({kind:"samples",label:`no samples \xD7${a.rules.length}`,scope:l(a.rules),text:a.rules[0].reason||"No generation could be scored against these criteria.",chipsLabel:"unscored criteria",chips:s(a.rules),action:{label:"Run agent",path:n,hint:"Run Agent ->"}}),i.length){let u=[...new Set(i.map(c=>c.model).filter(Boolean))];r.push({kind:"below",label:`below pass mark \xD7${i.length}`,scope:`${l(i)}${u.length?` \xB7 ${St(u.length,"model")}`:""}`,text:`Scored under the pass mark (pass \u2265 ${UI(.7)}). Each line is what the criterion expects against how the samples did; tighten the agent's instructions or revisit the budget before running again.`,details:i.map(c=>`${c.key}${c.model?` \xB7 ${c.model}`:""} ${UI(c.stats.score)} \xB7 expects ${yh(c.criterion)} \xB7 ${uke(c.stats.passed,c.stats.total)} passed`)})}return r},iZ=e=>String(e||"").replace(/_/g," "),vZ=e=>{let t=e?.scores?._comparison;if(!t||typeof t!="object"||!Array.isArray(t.ranking)||t.ranking.length<2)return null;let r=t.method||{};return{rows:t.ranking.map(n=>{let o=t.models?.[n]||{};return{label:n,passRate:o.pass_rate??null,interval:Array.isArray(o.interval)&&o.interval.length===2?o.interval:null,scenarios:o.scenarios??0}}),conclusion:t.conclusion||null,confidence:Math.round(Number(r.confidence??.95)*100),resamples:r.resamples??null}},v2=(e,{results:t=[],scenarioCount:r=0,labelFor:n=a=>a?.model,columns:o=null}={})=>{let a=bh(e),i=new Map(a.map(c=>[c.label,c])),s=o&&o.length?o:a.map(c=>c.label),l=e?.scores?._verdict?.winner||null;return s.map(c=>{let d=i.get(c)||{},p=t.filter(C=>n(C)===c),f=p.filter(C=>C?.status&&C.status!=="pending"),m=d.samples??(r||p.length||null),y=d.passed??f.filter(C=>C.status==="passed").length,b=Object.keys(d.faults||{}).length?d.faults:f.reduce((C,T)=>T.fault?{...C,[T.fault]:(C[T.fault]||0)+1}:C,{}),g=C=>p.find(T=>T.fault===C)||null,h=C=>C==="low_quality"?1:0,v=Object.entries(b).sort((C,T)=>T[1]-C[1]||(g(T[0])?1:0)-(g(C[0])?1:0)||h(C[0])-h(T[0])||C[0].localeCompare(T[0])),[x,S]=v[0]||[],_=x?g(x):null,w=m||null,k=C=>C==null||!w?null:C/w,A=d.avg_score??(f.length&&f.some(C=>C.score!=null)?f.filter(C=>C.score!=null).reduce((C,T)=>C+Number(T.score),0)/f.filter(C=>C.score!=null).length:null);return{label:c,model:d.model||c,provider:d.provider||null,winner:l===c,passed:y,total:m,scored:d.samples??f.length,passRate:m?y/m:null,avgScore:A==null?null:Number(A),avgDurationMs:d.avg_duration_ms??null,p50DurationMs:d.p50_duration_ms??null,p95DurationMs:d.p95_duration_ms??null,inputTokens:d.input_tokens??null,outputTokens:d.output_tokens??null,avgInputTokens:k(d.input_tokens),avgOutputTokens:k(d.output_tokens),avgTokens:d.input_tokens==null&&d.output_tokens==null?null:k((d.input_tokens||0)+(d.output_tokens||0)),cost:d.cost??null,priced:d.priced??null,reported:d.reported??null,estimated:d.estimated??!1,judgeCost:d.judge_cost??null,judgeCalls:d.judge_calls??0,costPerInteraction:of(d.cost,d.priced),faults:v.map(([C,T])=>({fault:C,name:iZ(C),count:T})),typicalFault:x?{fault:x,name:iZ(x),count:S,scenarioKey:_?.scenario_key||null,summary:(_?.diagnosis?.summary||_?.recommendation||"").toString().trim()||null}:null}}).sort((c,d)=>(d.passRate??-1)-(c.passRate??-1)||(d.avgScore??-1)-(c.avgScore??-1)||s.indexOf(c.label)-s.indexOf(d.label))},xZ=(e,{max:t=120}={})=>{if(!e)return"\u2014";if(!e.typicalFault)return e.scored?"no faults":"\u2014";let{name:r,count:n,scenarioKey:o,summary:a}=e.typicalFault,i=`${r} \xD7${n}`;if(!a)return i;let s=o?`${o}: ${a}`:a;return`${i} \xB7 ${S0(s,t)}`},bZ=(e=[],t=[],r=n=>n?.model)=>e.map(n=>{let o=n.kind==="instruction"?t.filter(s=>(n.scenario_keys||[]).includes(s?.scenario_key)&&s?.fault):t.filter(s=>s?.fault===n.fault);if(!o.length)return n;let a={},i={};return o.forEach(s=>{let l=r(s);l&&(a[l]=(a[l]||0)+1,i[l]=[...new Set([...i[l]||[],s.scenario_key].filter(Boolean))])}),{...n,count_by_model:a,scenario_keys_by_model:i}}),GI=(e=[],t=null)=>!t||t==="all"?e:e.filter(r=>!Array.isArray(r.models)||r.models.length===0||r.models.includes(t)).map(r=>{if(!Array.isArray(r.models)||!r.models.length)return r;let n={...r,models:[t]};return r.count_by_model?.[t]!=null&&(n.count=r.count_by_model[t]),r.scenario_keys_by_model?.[t]&&(n.scenario_keys=r.scenario_keys_by_model[t]),n}),wZ=(e=[],t=[])=>Object.fromEntries(t.map(r=>[r,GI(e,r).length])),x2=e=>(Array.isArray(e)?e:[]).filter(t=>t&&t.session_id&&t.status==="ready"&&(t.sandbox_type==null||t.sandbox_type==="app_runtime")&&!("runtime_server_key"in t&&!t.runtime_server_key)).map(t=>({value:t.session_id,label:SZ(t)})),SZ=e=>{if(!e||!e.session_id)return null;let t=[e.repository,e.repository_ref].filter(Boolean).join("@"),r=String(e.session_id).slice(0,8);return t?`${t} \xB7 ${r}`:`sandbox ${r}`},T0=e=>SZ(e?.sandbox),kZ=(e={},t=[],r=null)=>{let n={...e,models:t};return r&&(n.sandbox_id=r),n},b2=(e,t)=>e&&(t||[]).some(r=>r.value===e)?e:"",sf=e=>e?.selection||e?.scores?._selection||{},_Z=e=>(sf(e).models||[]).map(t=>typeof t=="string"?t:t?.label).filter(Boolean);function O0(e,t=[]){let r=sf(e);if(Array.isArray(r.scenario_keys)&&r.scenario_keys.length)return r.scenario_keys;if(!e)return[];if(Array.isArray(r.keys)&&r.keys.length)return r.keys;if(Array.isArray(r.scenario_ids)&&r.scenario_ids.length){let o=r.scenario_ids.map(String);return t.filter(a=>o.includes(String(a.id))).map(a=>a.key)}let n=t.filter(o=>o.enabled!==!1);return r.group?n.filter(o=>o.group===r.group).map(o=>o.key):cke(e)||e.status==="failed"?n.map(o=>o.key):[]}var YI=(e,t=[])=>{let r=sf(e);if(r.group)return`partial: ${r.group}`;let n=r.scenario_keys||r.keys,o=t.filter(a=>a.enabled!==!1).length;return Array.isArray(n)&&n.length&&n.length{let r=new Set(t.filter(a=>a&&a.enabled!==!1).map(a=>a.key)),n=[],o=[];return[...new Set((e||[]).filter(a=>a!=null))].forEach(a=>(r.has(a)?n:o).push(a)),{keys:n,dropped:o}},CZ=(e=[],t=[])=>lf((e||[]).filter(r=>r&&r.scenario_key&&r.status!=="pending"&&r.status!=="passed").map(r=>r.scenario_key),t),AZ=(e,t=[])=>{let r=sf(e);if(r.group)return{group:r.group};let n=Array.isArray(r.scenario_keys)&&r.scenario_keys.length?r.scenario_keys:r.keys;return Array.isArray(n)&&n.length?{keys:lf(n,t).keys}:{}},XI=272,ZI=16,EZ=32,NZ=940,JI="clamp(360px, calc(100vh - 240px), 900px)",TZ=320,mke=3,OZ=3,PZ=720,WI="aa.evaluations.detail",MZ=e=>368+138*e,IZ=e=>504+170*e,DZ=e=>{try{let t=e?.getItem(WI);return t==="tools"||t==="steps"?t:null}catch{return null}},jZ=(e,t)=>{try{t==null?e?.removeItem?.(WI):e?.setItem(WI,t)}catch{}},$Z=(e=[])=>(e.find(t=>t?.step==="running")||e.find(t=>t?.step==="queued"))?.key??null,LZ=(e=[])=>{if(!e.length)return"none";let t=e.filter(n=>n!=="skipped"&&n!=="none");if(!t.length)return e.every(n=>n==="none")?"none":"skipped";if(t.includes("loading"))return"loading";if(t.includes("running"))return"running";let r=t.filter(n=>n==="queued").length;return r&&rnull,r="suite")=>{if(r!=="failed-first")return e;let n=[],o=new Map;return e.forEach(a=>{let i=a?.group||"",s=o.get(i);s||(s={failed:0,rows:[]},o.set(i,s),n.push(s));let l=t(a)==="failed";l&&(s.failed+=1),s.rows.push({row:a,failed:l})}),n.sort((a,i)=>i.failed-a.failed).flatMap(a=>[...a.rows.filter(i=>i.failed),...a.rows.filter(i=>!i.failed)].map(i=>i.row))},QI=(e=[],t=new Set)=>{let r=t instanceof Set?t:new Set(t||[]),n=new Set;if(!r.size)return n;let o=new Set;return e.forEach(a=>{(r.has(a?.key)?o:n).add(a?.group||"")}),o.forEach(a=>n.delete(a)),n},RI=(e={},t=[])=>{let r=t.map(n=>e?.[n]).filter(n=>n&&n.status!=="pending"&&n.duration_ms!=null&&Number.isFinite(Number(n.duration_ms))).map(n=>Number(n.duration_ms));return r.length?Math.max(...r):null},FI=e=>e!=null&&Number.isFinite(Number(e))?Number(e):null,w2=e=>{if(!e||e.status==="pending")return null;let t={durationMs:FI(e.duration_ms),inputTokens:FI(e.input_tokens),outputTokens:FI(e.output_tokens)};return t.durationMs==null&&t.inputTokens==null&&t.outputTokens==null?null:t},BZ=(e=[])=>{let t={durationMs:null,inputTokens:null,outputTokens:null,count:0};return e.forEach(r=>{let n=w2(r);n&&(t.count+=1,["durationMs","inputTokens","outputTokens"].forEach(o=>{n[o]!=null&&(t[o]=(t[o]||0)+n[o])}))}),t.count?t:null},FZ=(e={},t=[])=>{let r=BZ(t.map(n=>e?.[n]));return!r||r.inputTokens==null&&r.outputTokens==null?null:{input:r.inputTokens,output:r.outputTokens}},UZ=(e=[])=>{let t=e.filter(Boolean);if(!t.length)return null;let r=n=>t.some(o=>o[n]!=null)?t.reduce((o,a)=>o+(a[n]||0),0):null;return{input:r("input"),output:r("output")}},eD=(e={},t=[],r=Object.keys(e))=>Object.fromEntries(t.map(n=>[n,BZ(r.map(o=>e[o]?.[n]))])),WZ=(e=[],t={},r=[])=>{let n=e.map(o=>RI(t[o?.key],r)).filter(o=>o!=null);return n.length?n.reduce((o,a)=>o+a,0):null},HZ=(e,t=Date.now())=>{if(!e)return null;let r=e.usage?.runtime_ms;if(r!=null&&Number.isFinite(Number(r)))return Number(r);if(e.status==="pending"||e.status==="failed"||!e.created_at)return null;let n=Date.parse(e.created_at),o=e.completed_at?Date.parse(e.completed_at):t;return!Number.isFinite(n)||!Number.isFinite(o)?null:Math.max(0,o-n)},gh=e=>String(e).padStart(2,"0"),qZ=e=>{let t=Math.max(0,Math.floor(Number(e)/1e3));return{hours:Math.floor(t/3600),minutes:Math.floor(t%3600/60),seconds:t%60,total:t}},KZ=e=>{if(e==null||!Number.isFinite(Number(e)))return"\u2014";let{hours:t,minutes:r,seconds:n}=qZ(e);return t?`${t}:${gh(r)}:${gh(n)}`:`${gh(r)}:${gh(n)}`},tD=e=>{if(e==null||!Number.isFinite(Number(e)))return"\u2014";let{hours:t,minutes:r,seconds:n,total:o}=qZ(e);return o<60?`${o}s`:t?`${t}h ${gh(r)}m`:`${r}m ${gh(n)}s`},S2=e=>{if(e==null||!Number.isFinite(Number(e)))return"\u2014";let t=Number(e);return t>=6e4?tD(t):t>=1e3?`${(t/1e3).toFixed(t>=1e4?1:2).replace(/\.?0+$/,"")}s`:`${Math.round(t)}ms`},VZ=e=>{let t=Number(e)||0;return t<=500?3e3:t<=2e3?6e3:1e4},gke=(e,t)=>!!e&&!!t&&e.id===t.id&&e.status===t.status&&e.score===t.score&&e.fault===t.fault&&e.cost===t.cost&&(e.judge_usage?.cost??null)===(t.judge_usage?.cost??null)&&(e.output||"").length===(t.output||"").length,GZ=(e=[],t=[])=>{let r=new Map;(e||[]).forEach(i=>{i&&i.id!=null&&r.set(i.id,i)});let n=0,o=(t||[]).map(i=>{let s=i&&i.id!=null?r.get(i.id):null;return s&&gke(s,i)?(n+=1,s):i}),a=o.length!==(e||[]).length||n!==o.length;return{results:a?o:e||[],changed:a}},YZ=(e=[],t=n=>n?.model,r={})=>{let n={};(e||[]).forEach(i=>{!i||!i.scenario_key||((n[i.scenario_key]||={})[t(i)]=i)});let o=Object.keys(n),a=0;return o.forEach(i=>{let s=r?.[i];if(!s)return;let l=Object.keys(n[i]);l.length===Object.keys(s).length&&l.every(u=>s[u]===n[i][u])&&(n[i]=s,a+=1)}),r&&a===o.length&&o.length===Object.keys(r).length?r:n},XZ=(e=[],t=mke)=>{if(e.length<=t)return e;let r=n=>e.reduce((o,a)=>o+(Number(a?.[n])||0),0);return[{label:"combined",short:`${e.length} models`,passed:r("passed"),total:r("total"),title:e.map(n=>`${n.short} ${n.passed??"\u2014"}/${n.total??"\u2014"}`).join(" \xB7 ")}]},rD=(e={},t=[])=>{let r=new Set((t||[]).filter(a=>a!=null).map(String)),n=Object.entries(e||{}),o=n.filter(([a])=>r.has(String(a)));return o.length===n.length?e||{}:Object.fromEntries(o)},ZZ=({rowTop:e=0,headerHeight:t=0,boxHeight:r=0}={})=>Math.max(0,e-t-Math.round((r-t)/3)),JZ=({rowTop:e=0,headerHeight:t=0,groupRowHeight:r=0}={})=>Math.max(0,e-t-r);var hke=[[/^claude/i,"anthropic"],[/^(gpt-|o\d|chatgpt|text-embedding)/i,"openai"],[/:/,"ollama"]],QZ=["openai","anthropic","ollama","openrouter","mock"];function yke(e,t=QZ){let r=String(e??"").trim(),n=r.indexOf("/"),o=n>=0?r.slice(0,n):r,a=n>=0?r.slice(n+1):"";if(a.trim()){if(t.includes(o))return{provider:o,model:a};if(t.includes("openrouter"))return{provider:"openrouter",model:r}}let i=hke.find(([s,l])=>s.test(r)&&t.includes(l));return{provider:i?i[1]:null,model:r}}function vke(e,t,r=QZ){let n=yke(t,r);return n.provider===e&&n.model===t?t:`${e}/${t}`}function RZ(e,t){return t.flatMap(r=>(e?.[r]||[]).flatMap(n=>{let o=String(n??"").trim();return o?[{provider:r,id:o,qualified:vke(r,o)}]:[]}))}function P0(e,{providers:t,qualify:r=!0}){let n=RZ(e,t).map(o=>r?o.qualified:o.id);return[...new Set(n)]}function eJ(e,t,{providers:r,qualify:n,restore:o=new Map}){let a=RZ(t,r),i=new Set(a.map(c=>n?c.qualified:c.id)),s=new Map;a.forEach(c=>{let d=n?c.id:c.qualified;s.has(d)||s.set(d,n?c.qualified:c.id)});let l=c=>i.has(c)?c:s.get(c)??c;if(n){let c=e.flatMap(d=>o.get(d)??[l(d)]);return{models:[...new Set(c)],restore:new Map}}let u=new Map;return e.forEach(c=>{let d=l(c);u.set(d,[...u.get(d)||[],c])}),{models:[...u.keys()],restore:u}}function ud(e){return[...new Set(String(e??"").split(",").map(t=>t.trim()).filter(Boolean))]}function M0(e){return e.join(", ")}function tJ(e,t){return[...new Set([...e,...ud(t)])]}function rJ(e){let t=e.lastIndexOf(",");return t<0?{complete:"",rest:e.trimStart()}:{complete:e.slice(0,t),rest:e.slice(t+1).trimStart()}}function nJ(e,t,r){return(!e||e==="insertReplacementText")&&r.includes(t)}function oJ({key:e,repeat:t=!1},r,n){return e==="Enter"&&r.trim()?"commit":e==="Backspace"&&!t&&r===""&&n>0?"removeLast":null}var kh=Z(J()),Vs=typeof window>"u"?kh.useEffect:kh.useLayoutEffect;function I0(e){let[t,r]=(0,kh.useState)(0);return Vs(()=>{let n=e.current;if(!n)return;let o=()=>r(n.clientWidth);if(o(),typeof ResizeObserver>"u")return window.addEventListener("resize",o),()=>window.removeEventListener("resize",o);let a=new ResizeObserver(o);return a.observe(n),()=>a.disconnect()},[e]),t}var ta=Z(J());function D0({value:e,onChange:t,models:r=[],placeholder:n,style:o,title:a,describedBy:i,inputId:s,inputLabel:l,testId:u}){let[c,d]=(0,ta.useState)(""),[p,f]=(0,ta.useState)(""),m=(0,ta.useRef)(null),y=(0,ta.useId)(),b=ud(e),g=(0,ta.useRef)(b);g.current=b;let h=k=>{let A=tJ(g.current,k);A.length!==g.current.length&&(t(M0(A)),f(`Added ${A.slice(g.current.length).join(", ")}`)),d("")},v=k=>{t(M0(g.current.filter(A=>A!==k))),f(`Removed ${k}`),m.current?.focus()},x=(k,A)=>{if(k.includes(",")){let{complete:C,rest:T}=rJ(k);h(C),d(T)}else nJ(A.nativeEvent?.inputType,k,r)?h(k):d(k.trimStart())},S=k=>{let A=oJ(k,c,g.current.length);A==="commit"?(k.preventDefault(),setTimeout(()=>h(m.current?.value||""),0)):A==="removeLast"&&(k.preventDefault(),v(g.current[g.current.length-1]))},_=r.filter(k=>!b.includes(k)),w=[i,a&&`${y}-title`,`${y}-selected`].filter(Boolean).join(" ");return ta.default.createElement("div",{"data-testid":u,onClick:k=>{k.target===k.currentTarget&&m.current?.focus()},style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:4,cursor:"text",...o}},b.map(k=>ta.default.createElement("span",{key:k,style:xke},ta.default.createElement("span",{style:{overflowWrap:"anywhere"}},k),ta.default.createElement("button",{type:"button",onClick:()=>v(k),"aria-label":`Remove ${k}`,title:`Remove ${k}`,style:bke},"\xD7"))),ta.default.createElement(Rl,{inputRef:m,id:s,"aria-label":l,"aria-describedby":w,title:a,value:c,models:_,onChange:x,onKeyDown:S,onBlur:()=>{c.trim()&&h(c)},placeholder:b.length?"Add a model":n,style:{flex:"1 1 80px",minWidth:80,padding:0,border:"none",background:"transparent",font:"inherit",color:"inherit"}}),a&&ta.default.createElement("span",{id:`${y}-title`,style:nD},a),ta.default.createElement("span",{id:`${y}-selected`,style:nD},b.length?`Chosen: ${b.join(", ")}`:"No models chosen"),ta.default.createElement("span",{role:"status","aria-live":"polite",style:nD},p))}var xke={display:"inline-flex",alignItems:"center",gap:2,maxWidth:"100%",padding:"0 2px 0 8px",borderRadius:999,fontFamily:U,fontSize:11,lineHeight:"18px",background:"var(--color-muted)",border:"1px solid var(--color-border)",color:"var(--color-text-primary)"},bke={padding:"0 5px",border:"none",borderRadius:999,background:"transparent",cursor:"pointer",fontSize:13,lineHeight:"18px",color:"var(--color-text-muted)"},nD={position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0 0 0 0)",whiteSpace:"nowrap",border:0};var Ze=Z(J());var Ti=Z(J());var wke="What the agent spent answering \u2014 the operating cost of these interactions, and of one on average",Ske="What the judge model spent scoring, recommending and ruling \u2014 the evaluation's own offline cost",uf="var(--color-text-muted)",k2=e=>e?.agent?.unit==="replay"?"replay":"sampled interaction",$u=(e,t=!1)=>Pr(e,{estimated:t}),aJ=(e,{total:t=!1}={})=>{if(!e)return null;let r=[];if(e.agent){let n=[`agent ${Pr(e.agent.cost,{estimated:e.agent.estimated})}`,St(e.agent.count,k2(e))];e.agent.perInteraction!=null&&n.push(`${$u(e.agent.perInteraction,e.agent.estimated)} each`),r.push(n.join(" \xB7 "))}return e.judge&&r.push(`judge ${Pr(e.judge.cost,{estimated:e.judge.estimated})} \xB7 ${St(e.judge.calls,"call")}`),t&&e.total!=null&&r.push(`total ${Pr(e.total,{estimated:e.totalEstimated})}`),r.join(" \xB7 ")};function cf({label:e,value:t,sub:r,title:n,valueColor:o,testId:a,valueTestId:i,onClick:s,onKeyDown:l,role:u,tabIndex:c,style:d}){return Ti.default.createElement("div",{"data-testid":a,title:n,role:u,tabIndex:c,onClick:s,onKeyDown:l,style:{padding:"10px 16px",minWidth:0,marginLeft:-1,marginTop:-1,borderLeft:"1px solid var(--color-border-light)",borderTop:"1px solid var(--color-border-light)",...d}},Ti.default.createElement(We,{size:10,color:uf},e),Ti.default.createElement("div",{"data-testid":i,style:{marginTop:4,fontFamily:U,fontSize:18,fontWeight:700,lineHeight:1.1,color:o||"var(--color-text-primary)"}},t),Ti.default.createElement("div",{style:{marginTop:4,fontFamily:U,fontSize:11,color:"var(--color-text-secondary)",textWrap:"pretty"}},r))}var iJ={value:"\u2026",valueColor:uf,sub:"priced when the run completes"};function oD({spend:e,pending:t=!1,failed:r=!1}){let n=e?.agent||null,o=n&&(n.inputTokens!=null||n.outputTokens!=null)?` \xB7 in ${On(n.inputTokens)} \xB7 out ${On(n.outputTokens)}`:"",a=r?{value:"\u2014",valueColor:uf,sub:"nothing replayed"}:t?iJ:{value:n?Pr(n.cost,{estimated:n.estimated}):"\u2014",valueColor:n?.cost!=null?void 0:uf,sub:n?`${St(n.count,k2(e))}${n.perInteraction!=null?` \xB7 ${$u(n.perInteraction,n.estimated)} per interaction`:""}${o}`:"nothing replayed or sampled"};return Ti.default.createElement(cf,{label:"Agent cost",title:wke,testId:"run-spend-agent",...a})}function aD({spend:e,judgedBy:t=null,pending:r=!1,failed:n=!1}){let o=e?.judge||null,i=o?[St(o.calls,"call"),N0(o),o.model,E0(o),"offline"].filter(Boolean).join(" \xB7 "):t&&t!=="rules"?`judge ${t} \xB7 spend not recorded`:"no judge asked \xB7 rules only",s=n?{value:"\u2014",valueColor:uf,sub:i}:r?iJ:{value:o?Pr(o.cost,{estimated:o.estimated}):"\u2014",valueColor:o?void 0:uf,sub:i};return Ti.default.createElement(cf,{label:"Judge cost",title:Ske,testId:"run-spend-judge",...s})}function iD({spend:e,judgedBy:t=null,testId:r="run-spend"}){if(!e)return null;let{total:n,totalEstimated:o}=e;return Ti.default.createElement(Le,{padding:0,testId:r,style:{overflow:"hidden"}},Ti.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))"}},Ti.default.createElement(oD,{spend:e}),Ti.default.createElement(aD,{spend:e,judgedBy:t}),Ti.default.createElement(cf,{label:"Total",title:"Agent and judge together \u2014 what this run cost end to end",value:n!=null?Pr(n,{estimated:o}):"\u2014",sub:mZ(e),testId:"run-spend-total"})),o&&Ti.default.createElement("div",{"data-testid":"run-spend-legend",style:{padding:"6px 16px",borderTop:"1px solid var(--color-border-light)",fontFamily:U,fontSize:11,color:uf}},al))}function pf({run:e,testId:t,short:r=!1}){if(!e)return Ze.default.createElement(_e,{tone:"muted",testId:t},"no runs");if(e.status==="failed")return Ze.default.createElement(_e,{tone:"error",testId:t},"failed");if(e.status==="pending")return Ze.default.createElement(_e,{tone:"warning",testId:t},"queued");if(e.status==="running")return Ze.default.createElement(_e,{tone:"warning",testId:t},"running");if(e.samples_evaluated){let n=Kn(e.samples_passed||0,e.samples_evaluated);return Ze.default.createElement(_e,{tone:Pu(sZ(e)),testId:t,title:r?`${n} passed`:void 0},r?n:`${n} passed`)}if(e.average_score!=null){let n=Number(e.average_score);return Ze.default.createElement(_e,{tone:n>=.85?"success":n>=.7?"warning":"error",testId:t,title:"mean score across criteria"},`score ${aa(n)}`)}return Ze.default.createElement(_e,{tone:"muted",testId:t},"no samples")}function C2({run:e,testId:t="run-version"}){let r=fZ(e);return r?Ze.default.createElement(_e,{tone:r.tone,size:10,style:{padding:"1px 6px"},title:r.title,testId:t},r.text):null}var df={success:"var(--color-success)",error:"var(--color-error)",muted:"var(--color-text-muted)"},j0={same:"var(--color-text-muted)",new:"var(--color-info)",unrecorded:"var(--color-warning-text)"},sJ=Ea.cost+32,kke=e=>bh(e).filter(t=>t.samples>0).map(t=>({label:t.label,short:bn(t.label||"").short||"all samples",passed:t.passed,total:t.samples})),uJ=(e,t,r)=>[`@${r||t?.agent?.name||"agent"}`,rf(t,e),vh(t,e),T0(e)&&`against ${T0(e)}`].filter(Boolean).join(" \xB7 ");function A2({runs:e=[],runCount:t=null,evaluation:r,agentName:n,selectedId:o=null,previousRun:a=null,barsFor:i=null,deltaFor:s=null}){return e.map((l,u)=>{let c=wh(l,u,e,t),d=e[u+1]||(u===0&&e.length===1?a:null),p=d?Number.isFinite(d.number)?d.number:c-1:null,f=s?s(l,d,p):A0(l,d,{olderNumber:p}),m=f&&d?pZ(l,d):null,y=Ni(l);return{run:l,number:c,latest:u===0,when:wo(l.completed_at||l.created_at),meta:uJ(l,r,n),bars:i?i(l):kke(l),delta:f,version:m,spend:y,selected:l.id===o}})}function cD({runs:e=[],runCount:t=null,evaluation:r,agentName:n,selectedId:o=null,onOpen:a,previousRun:i=null,barsFor:s=null,deltaFor:l=null,title:u="Runs",testId:c="suite-runs-panel"}){let{darkMode:d}=ut(),p=A2({runs:e,runCount:t,evaluation:r,agentName:n,selectedId:o,previousRun:i,barsFor:s,deltaFor:l});return Ze.default.createElement(en,{title:u,meta:C0(e,t),testId:c,bodyStyle:{overflowX:"auto"}},p.length===0&&Ze.default.createElement(tn,null,"[ ] no runs yet"),Ze.default.createElement("div",{style:{minWidth:920}},p.map(f=>Ze.default.createElement("div",{key:f.run.id,role:"button",tabIndex:0,"data-testid":"evaluation-run","data-run-id":f.run.id,"data-selected":f.selected?"true":"false",onClick:()=>a?.(f.run),onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),a?.(f.run))},className:f.selected?void 0:"hover:bg-[var(--color-hover)]",style:{display:"grid",gridTemplateColumns:"minmax(220px, 1.4fr) minmax(180px, 1fr) auto",gap:16,alignItems:"center",padding:"10px 14px 10px 12px",borderTop:"1px solid var(--color-border-light)",cursor:"pointer",background:f.selected?"var(--color-muted)":void 0,borderLeft:`2px solid ${f.selected?"var(--color-accent-ui)":"transparent"}`}},Ze.default.createElement("div",{style:{minWidth:0}},Ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Ze.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:700,color:"var(--color-text-primary)"}},`Run #${f.number}`),Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},f.when),f.latest&&Ze.default.createElement(_e,{tone:"info",size:10,style:{padding:"1px 6px"}},"latest"),f.run.status==="failed"&&Ze.default.createElement(_e,{tone:"error",size:10,style:{padding:"1px 6px"}},"failed"),(f.run.status==="running"||f.run.status==="pending")&&Ze.default.createElement(_e,{tone:"warning",size:10,style:{padding:"1px 6px"}},f.run.status==="pending"?"queued":"running"),Ze.default.createElement(C2,{run:f.run})),Ze.default.createElement("div",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)",marginTop:3,textWrap:"pretty"}},f.meta),f.run.status==="failed"&&f.run.error_message&&Ze.default.createElement("div",{style:{fontFamily:U,fontSize:11,color:"var(--color-error)",marginTop:3,textWrap:"pretty"}},`[!] ${f.run.error_message}`)),Ze.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:4,minWidth:0}},f.bars.map(m=>m.passed==null||m.total==null?Ze.default.createElement("div",{key:m.label||"all",style:{display:"flex",alignItems:"center",gap:8}},Ze.default.createElement("span",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)",width:128,flexShrink:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:m.label||void 0},m.short),Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"\u2014")):Ze.default.createElement(Mu,{key:m.label||"all",label:m.short,passed:m.passed,total:m.total}))),Ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12}},Ze.default.createElement(od,{darkMode:d,cells:[{key:"agent",width:sJ,title:f.spend?.agent?`Agent: ${St(f.spend.agent.count,k2(f.spend))}${f.spend.agent.perInteraction!=null?` \xB7 ${$u(f.spend.agent.perInteraction,f.spend.agent.estimated)} per interaction`:""}${f.spend.agent.estimated?" \xB7 ~ estimated from tokens \xD7 model rates":""}`:void 0,empty:"Agent cost: nothing replayed or sampled in this run",content:f.spend?.agent?.cost!=null&&Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11}},Ze.default.createElement("span",{style:{color:"var(--color-text-muted)"}},"agent "),Pr(f.spend.agent.cost,{estimated:f.spend.agent.estimated}))},{key:"judge",width:sJ,title:f.spend?.judge?`Judge: ${St(f.spend.judge.calls,"call")}${N0(f.spend.judge)?` \xB7 ${N0(f.spend.judge)}`:""}${E0(f.spend.judge)?` \xB7 ${E0(f.spend.judge)}`:""} \xB7 offline`:void 0,empty:"Judge cost: no judge was asked in this run",content:f.spend?.judge?.cost!=null&&Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11}},Ze.default.createElement("span",{style:{color:"var(--color-text-muted)"}},"judge "),Pr(f.spend.judge.cost,{estimated:f.spend.judge.estimated}))},{key:"delta",width:136,title:f.delta?`Samples passed, against the run before${f.version?` \xB7 ${f.version.text}`:""}`:void 0,empty:"Movement is read once the run completes",content:f.delta&&Ze.default.createElement("span",{style:{display:"flex",flexDirection:"column",gap:1}},Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:600,color:df[f.delta.tone]||df.muted}},f.delta.text),f.version&&Ze.default.createElement("span",{"data-testid":"run-version-delta",style:{fontFamily:U,fontSize:10,color:j0[f.version.kind]||j0.same}},f.version.text))},{key:"badge",width:132,content:Ze.default.createElement(pf,{run:f.run,testId:f.latest?"suite-pass-badge":void 0})},{key:"open",width:20,content:Ze.default.createElement(Na,{kind:"link",color:"var(--color-info)",weight:400})}]}))))))}var lJ='[data-testid="evaluation-run"]',_ke=150,sD=(e,t)=>e&&t!=null?e.querySelector(`[data-run-id="${CSS.escape(String(t))}"]`):null,lD=(e,t,r="y")=>{if(!e||!t)return;if(r==="x"){let o=t.offsetLeft;(oe.scrollLeft+e.clientWidth)&&(e.scrollLeft=Math.max(o-8,0));return}let n=t.offsetTop;(ne.scrollTop+e.clientHeight-t.offsetHeight)&&(e.scrollTop=Math.max(n-8,0))},Cke=(e=[])=>{let t=e.filter(o=>o.total!=null),r=o=>t.reduce((a,i)=>a+(Number(i[o])||0),0),n=r("total");return n>0?{passed:r("passed"),failed:r("failed"),total:n}:null},Ake=(e,{evaluation:t,agentName:r,bars:n,selectedId:o})=>({run:e,number:Number.isFinite(e.number)?e.number:"?",latest:!1,when:wo(e.completed_at||e.created_at),meta:uJ(e,t,r),bars:n||[],delta:null,version:null,spend:Ni(e),selected:e.id===o}),uD={fontFamily:U,fontSize:10,color:"var(--color-text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"};function Eke({bar:e}){let t=e.title||void 0;return e.passed==null||e.total==null?Ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8},title:t},Ze.default.createElement("span",{style:{...uD,width:96,flexShrink:0},title:e.label||void 0},e.short),Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"\u2014")):Ze.default.createElement("div",{title:t},Ze.default.createElement(Mu,{label:e.short,labelWidth:96,passed:e.passed,total:e.total,height:4,valueWidth:44}))}function _2({row:e,selected:t=!1,tabIndex:r=-1,card:n=!1,onOpen:o,noteFor:a=null,style:i}){let{run:s}=e,l=a?a(s):null,u=n&&s.status==="running"?Cke(e.bars):null,c=XZ(s.status==="failed"?e.bars.filter(p=>p.passed!=null&&p.total!=null):e.bars),d=()=>o?.(s);return Ze.default.createElement("div",{role:"button",tabIndex:r,"aria-current":t?"true":void 0,"data-testid":"evaluation-run","data-run-id":s.id,"data-selected":t?"true":"false",onClick:d,onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),d())},className:t?void 0:"hover:bg-[var(--color-hover)]",title:e.meta,style:{display:"flex",flexDirection:"column",gap:5,padding:"9px 12px 9px 10px",borderTop:"1px solid var(--color-border-light)",cursor:"pointer",background:t?"var(--color-muted)":void 0,borderLeft:`2px solid ${t?"var(--color-accent-ui)":"transparent"}`,...i}},Ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0,flexWrap:n?"wrap":"nowrap"}},Ze.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:700,color:"var(--color-text-primary)"}},`#${e.number}`),Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},e.when),Ze.default.createElement(C2,{run:s}),Ze.default.createElement("span",{style:{marginLeft:"auto",flexShrink:0}},Ze.default.createElement(pf,{run:s,short:!0,testId:e.latest?"suite-pass-badge":void 0}))),c.map(p=>Ze.default.createElement(Eke,{key:p.label||"all",bar:p})),u&&Ze.default.createElement(VC,{parts:[{value:u.passed,tone:"success"},{value:u.failed,tone:"error"}],total:u.total,height:3,title:`${u.passed} of ${u.total} passed so far${u.failed?` \xB7 ${u.failed} failed`:""}`,testId:"evaluation-run-progress"}),s.status==="failed"&&s.error_message&&Ze.default.createElement("div",{style:{...uD,color:"var(--color-error)"},title:s.error_message},`[!] ${s.error_message}`),l&&Ze.default.createElement("div",{"data-testid":"evaluation-run-note",style:uD,title:l},l),(e.delta||e.spend?.agent?.cost!=null)&&Ze.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,fontFamily:U,fontSize:10,minWidth:0}},e.delta&&Ze.default.createElement("span",{style:{fontWeight:600,color:df[e.delta.tone]||df.muted,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:e.version?.text},e.delta.text),e.spend?.agent?.cost!=null&&Ze.default.createElement("span",{style:{marginLeft:"auto",color:"var(--color-text-muted)",whiteSpace:"nowrap"}},Pr(e.spend.agent.cost,{estimated:e.spend.agent.estimated}))))}function dD({rows:e=null,runs:t=[],runCount:r=null,evaluation:n,agentName:o,selectedId:a=null,onOpen:i,previousRun:s=null,barsFor:l=null,deltaFor:u=null,noteFor:c=null,linkedRun:d=null,linkedBars:p=null,layout:f="rail",limit:m=null,maxHeight:y=null,expandedHeight:b=TZ,testId:g="suite-runs-panel",style:h}){let v=e??A2({runs:t,runCount:r,evaluation:n,agentName:o,selectedId:a,previousRun:s,barsFor:l,deltaFor:u}),x=t.length||!e?t:e.map(q=>q.run),S=a??v.find(q=>q.selected)?.run.id??null,_=q=>q.run.id===S,w=d&&!v.some(q=>q.run.id===d.id)?Ake(d,{evaluation:n,agentName:o,bars:p,selectedId:S}):null,k=f==="strip",A=k?dZ(v.map(q=>q.run),{limit:m,selectedId:S}).map(q=>v[q]):v,C=w?[w,...A]:A,T=v.length-A.length,$=k&&Number.isFinite(m)&&T>0,Q=af(x,r)-x.length,B=(C.find(_)||C[0])?.run.id??null,K=(v.find(_)||v[0])?.run.id??null,[N,O]=(0,Ze.useState)(!1),D=(0,Ze.useRef)(null),P=(0,Ze.useRef)(null),j=(0,Ze.useRef)(null),M=(0,Ze.useRef)(null);(0,Ze.useEffect)(()=>()=>clearTimeout(M.current),[]),(0,Ze.useEffect)(()=>{$||O(!1)},[$]);let W=new Map(C.concat(v).map(q=>[String(q.run.id),q.run])),Y=q=>{clearTimeout(M.current),M.current=setTimeout(()=>i?.(q),_ke)},L=(q,{next:oe,prev:Me,axis:ge})=>ue=>{let R=q.current,te=R?Array.from(R.querySelectorAll(lJ)):[];if(te.length===0)return;let Be=ue.target.closest(lJ),ke=te.indexOf(Be),ee;if(ue.key===oe)ee=te[Math.min(ke+1,te.length-1)];else if(ue.key===Me)ee=te[Math.max(ke-1,0)];else if(ue.key==="Home")ee=te[0];else if(ue.key==="End")ee=te[te.length-1];else return;if(ue.preventDefault(),!ee||ee===Be)return;ee.focus({preventScroll:!0}),lD(R,ee,ge);let z=W.get(ee.dataset.runId);z&&Y(z)};Vs(()=>{if(N||j.current==null)return;let q=sD(P.current,j.current);j.current=null,q?.focus({preventScroll:!0})},[N]),Vs(()=>{S!=null&&(lD(P.current,sD(P.current,S),"x"),lD(D.current,sD(D.current,S),"y"))},[S,f,N]);let G=Q>0&&Ze.default.createElement("div",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)",padding:"8px 12px",borderTop:"1px solid var(--color-border-light)"}},`${St(Q,"older run")} \xB7 reachable by link`);return k?Ze.default.createElement(en,{title:"Runs",meta:C0(x,r),testId:g,style:h},Ze.default.createElement("div",{ref:P,"data-testid":"run-strip",onKeyDown:L(P,{next:"ArrowRight",prev:"ArrowLeft",axis:"x"}),style:{display:"flex",overflowX:"auto",scrollbarGutter:"stable",position:"relative"}},C.length===0&&Ze.default.createElement(tn,{style:{flex:1}},"[ ] no runs yet"),C.map((q,oe)=>Ze.default.createElement(_2,{key:q.run.id,row:q,card:!0,selected:_(q),tabIndex:B===q.run.id?0:-1,onOpen:i,noteFor:c,style:{flex:"1 1 0",minWidth:200,borderTop:"none",borderRight:oeO(q=>!q),className:"bg-transparent hover:bg-[var(--color-hover)]",style:{display:"block",width:"100%",textAlign:"left",padding:"6px 12px",border:0,borderTop:"1px solid var(--color-border-light)",cursor:"pointer",fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"}},N?`[-] latest ${m}`:`[+] ${St(T,"earlier run")}`),$&&N&&Ze.default.createElement("div",{ref:D,onKeyDown:L(D,{next:"ArrowDown",prev:"ArrowUp",axis:"y"}),style:{maxHeight:b,overflowY:"auto",position:"relative",scrollbarGutter:"stable"}},v.map(q=>Ze.default.createElement(_2,{key:q.run.id,row:q,selected:_(q),tabIndex:K===q.run.id?0:-1,noteFor:c,onOpen:oe=>{j.current=oe.id,O(!1),i?.(oe)}})),G)):Ze.default.createElement(en,{title:"Runs",meta:C0(x,r),testId:g,style:{display:"flex",flexDirection:"column",maxHeight:y||void 0,...h},bodyStyle:{flex:1,minHeight:0,display:"flex",flexDirection:"column"}},Ze.default.createElement("div",{ref:D,onKeyDown:L(D,{next:"ArrowDown",prev:"ArrowUp",axis:"y"}),style:{flex:1,minHeight:0,overflowY:"auto",position:"relative",scrollbarGutter:"stable"}},w&&Ze.default.createElement(Ze.default.Fragment,null,Ze.default.createElement("div",{"data-testid":"runs-rail-linked",style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)",padding:"4px 12px",background:"var(--color-muted)"}},`linked \xB7 older than the latest ${x.length}`),Ze.default.createElement(_2,{row:w,selected:_(w),tabIndex:B===w.run.id?0:-1,onOpen:i,noteFor:c})),!w&&v.length===0&&Ze.default.createElement(tn,null,"[ ] no runs yet"),v.map(q=>Ze.default.createElement(_2,{key:q.run.id,row:q,selected:_(q),tabIndex:B===q.run.id?0:-1,onOpen:i,noteFor:c})),G))}var cJ=(e=[],t=null)=>{let r=e[0],n=Number.isFinite(t)?Math.max(t,e.length):e.length;return[St(n,"run"),r?`latest #${wh(r,0,e,t)} ${wo(r.completed_at||r.created_at)}`:null,r?.status==="complete"&&r.samples_evaluated?`${Kn(r.samples_passed||0,r.samples_evaluated)} passed`:null].filter(Boolean).join(" \xB7 ")};var Mt=Z(J());var cd=Z(J());function kl({text:e=null,url:t=null,label:r="Copy as Markdown",title:n,testId:o="copy-markdown",style:a}){let[i,s]=(0,cd.useState)("idle"),l=(0,cd.useRef)(null);return(0,cd.useEffect)(()=>()=>clearTimeout(l.current),[]),!e&&!t?null:cd.default.createElement(de,{size:"sm",variant:"ghost",onClick:async c=>{c?.stopPropagation?.();let d=e?await ld(e):await nZ(t);s(d?"copied":"failed"),clearTimeout(l.current),l.current=setTimeout(()=>s("idle"),2e3)},testId:o,title:n||"Copy as GitHub-flavored Markdown, for an issue or a pull request",style:{padding:"4px 8px",fontSize:12,color:i==="failed"?"var(--color-error)":i==="copied"?"var(--color-success-text)":"var(--color-text-secondary)",...a}},i==="copied"?"Copied":i==="failed"?"Copy failed":r)}var Oi="var(--color-text-muted)",pD=3,dJ={passed:0,total:0},pJ={items:0,faults:0,scenarios:0},Nke={keys:[],dropped:[]},_l=(e,t,r={})=>({fontFamily:U,fontSize:e,color:t,...r}),$0=e=>typeof window>"u"?"#":et(e),Tke=e=>{let[t,r]=(0,Mt.useState)(()=>Date.now());return(0,Mt.useEffect)(()=>{if(!e)return;r(Date.now());let n=setInterval(()=>r(Date.now()),1e3);return()=>clearInterval(n)},[e]),t};function fJ({short:e,label:t}){return Mt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},Mt.default.createElement("span",{style:_l(10,Oi,{width:110,flexShrink:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),title:t||void 0},e),Mt.default.createElement("span",{style:_l(11,Oi)},"\u2014"))}function fD({run:e,runNumber:t=null,latestNumber:r=null,isLatest:n=!1,runningElsewhere:o=null,agentName:a="agent",scenarioCount:i=0,groupCount:s=0,columns:l=[],judgedBy:u="rules",bars:c=[],delta:d=null,version:p=null,totals:f=dJ,settledCount:m=0,settledFailed:y=0,expectedResults:b=0,running:g=!1,loading:h=!1,spend:v=null,fixSummary:x=pJ,selectionLabel:S=null,sandboxLabel:_=null,reportPath:w=null,rerun:k=Nke,onSelectLatest:A,onWatchLatest:C,onJumpToFix:T,onRerunFailed:$,onRunAgain:Q}){let{darkMode:B}=ut(),K=Tke(g);if(!e)return null;let N=mh(w),O=e.status==="failed",D=e.status==="complete",P=g?`started ${wo(e.created_at)}`:wo(e.completed_at||e.created_at),j=`@${a} \xB7 ${St(i,"scenario")}${s?` in ${St(s,"group")}`:""} \xD7 ${St(l.length,"model")} \xB7 judged by ${u}${_?` \xB7 against ${_}`:""}`,M=k?.keys||[],W=k?.dropped||[],Y=W.length?`${M.length} of ${M.length+W.length}`:`${M.length}`,L="Replay every scenario that failed on any model, under the models in the picker"+(W.length?` \xB7 not replayed (disabled or removed): ${W.join(", ")}`:""),G=HZ(e,K),q=[{key:"duration",width:Ea.duration,content:G!=null&&Mt.default.createElement("span",{style:_l(11)},g?KZ(G):tD(G)),title:e.usage?.runtime_ms!=null?"Wall clock, as the run recorded it":"From the run's start to its end",empty:"Duration is read once the run starts"},{key:"delta",width:136,content:d&&Mt.default.createElement("span",{style:{display:"flex",flexDirection:"column",gap:1}},Mt.default.createElement("span",{style:_l(11,df[d.tone]||df.muted,{fontWeight:600})},d.text),p&&Mt.default.createElement("span",{"data-testid":"run-version-delta",style:_l(10,j0[p.kind]||j0.same)},p.text)),title:"Samples passed, against the run before",empty:D&&!d?"Movement is read against the run before, which is not loaded":"Movement is read once the run completes"},{key:"badge",content:Mt.default.createElement(pf,{run:e,testId:"suite-run-badge"})}],oe=f||dJ,Me=oe.total>0?oe.passed/oe.total:null,ge=O?{value:"\u2014",valueColor:Oi,sub:m?`${m} of ${b} before it failed`:"run failed"}:g?{value:`${oe.passed} passed`,sub:Mt.default.createElement("span",{"data-testid":"suite-run-progress"},`${m} of ${b} results in${y?` \xB7 ${y} failed`:""}`)}:{value:Kn(oe.passed,oe.total),valueColor:Me==null?Oi:bo[Pu(Me)].text,sub:`${Math.max(oe.total-oe.passed,0)} failed \xB7 ${St(i,"scenario")} \xD7 ${St(l.length,"model")}`},ue=c.slice(0,pD),R=Mt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:5,fontWeight:400,lineHeight:"normal"}},c.length===0&&l.length===0&&Mt.default.createElement("span",{style:_l(11,Oi)},"\u2014"),c.length===0&&l.map(V=>Mt.default.createElement(fJ,{key:V,short:bn(V).short,label:V})),ue.map(V=>V.passed==null||V.total==null?Mt.default.createElement(fJ,{key:V.label||"all",short:V.short,label:V.label}):Mt.default.createElement(Mu,{key:V.label||"all",label:V.short,labelWidth:110,passed:V.passed,total:V.total,height:4,valueWidth:48}))),te=c.length>pD?Mt.default.createElement("span",{style:_l(10,Oi)},`+${c.length-pD} more`):void 0,Be=x||pJ,ke=O?{value:"\u2014",valueColor:Oi,sub:"\u2014"}:h?{value:"\u2026",valueColor:Oi,sub:"loading\u2026"}:g?{value:"\u2026",valueColor:Oi,sub:"scoring\u2026"}:Be.items>0?{value:Be.items,valueColor:bo.error.text,sub:Mt.default.createElement("span",{style:{color:"var(--color-info)"}},`${St(Be.faults,"fault")} across ${St(Be.scenarios,"scenario")} ${Rx.link}`)}:{value:"0",valueColor:Oi,sub:"nothing to fix"},ee=()=>T?.(),E=O?{}:{role:"button",tabIndex:0,onClick:ee,onKeyDown:V=>{(V.key==="Enter"||V.key===" ")&&(V.preventDefault(),ee())},style:{cursor:"pointer"}},I=`The faults this run found, grouped into fixes${O?"":" \u2014 opens What to fix"}`;return Mt.default.createElement(Le,{padding:0,testId:"suite-run-header",style:{overflow:"hidden"}},Mt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",padding:"10px 16px",borderBottom:"1px solid var(--color-border-light)"}},Mt.default.createElement("span",{style:_l(13,"var(--color-text-primary)",{fontWeight:700})},`Run #${t??"?"}`),Mt.default.createElement("span",{style:_l(11,Oi,{whiteSpace:"nowrap"})},P),n&&Mt.default.createElement(_e,{tone:"info",size:10,style:{padding:"1px 6px"}},"latest"),Mt.default.createElement(C2,{run:e}),Mt.default.createElement("span",{style:_l(11,Oi,{minWidth:0,textWrap:"pretty"})},j),S&&Mt.default.createElement(_e,{tone:"muted",size:10,style:{padding:"1px 6px"},testId:"suite-run-selection"},S),!n&&Mt.default.createElement(Gr,{onClick:()=>A?.(),title:"Show the suite's latest run",testId:"suite-latest-run"},`latest${r!=null?` #${r}`:""}`),o&&Mt.default.createElement(Gr,{onClick:()=>C?.(),title:"A newer run is going; show it as it replays",testId:"suite-watch-latest"},`#${o.number??r??"?"} is running \xB7 watch`),D&&!h&&M.length>0&&Mt.default.createElement(Gr,{onClick:()=>$?.(),title:L,testId:"suite-rerun-failed"},`re-run failed (${Y})`),O&&Mt.default.createElement(Gr,{onClick:()=>Q?.(),title:"Replay what this run was asked to, under the models in the picker",testId:"suite-run-again"},"run again"),w&&Mt.default.createElement(Gr,{href:$0(w),onClick:()=>lt(w),title:"The run rendered as a report page",testId:"suite-run-report"},"run report"),N&&Mt.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:10,flexWrap:"wrap"},"data-testid":"suite-run-exports"},Mt.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:Oi}},"download"),Mt.default.createElement(Gr,{href:$0(N.html),title:"The report as one self-contained HTML page",testId:"suite-run-download-html"},"html"),Mt.default.createElement(Gr,{href:$0(N.json),title:"The run as the evaluation report envelope another install imports",testId:"suite-run-download-json"},"json"),Mt.default.createElement(Gr,{href:$0(N.md),title:"The report as GitHub-flavored Markdown",testId:"suite-run-download-md"},"markdown"),Mt.default.createElement(kl,{url:$0(N.markdown),label:"copy markdown",testId:"suite-run-copy-markdown",title:"Copy the whole report as GitHub-flavored Markdown",style:{padding:"0 4px",fontFamily:U,fontSize:11}})),Mt.default.createElement("span",{style:{marginLeft:"auto"}},Mt.default.createElement(od,{darkMode:B,cells:q}))),Mt.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},Mt.default.createElement(cf,{label:"Passed",title:"Results that passed, over every scenario \xD7 model the run covers",testId:"suite-run-passed",...ge}),Mt.default.createElement(cf,{label:"Models",title:"Each model's passed scenarios \u2014 counted from the results that have landed while the run goes",testId:"suite-run-models",value:R,sub:te}),Mt.default.createElement(oD,{spend:v,pending:g,failed:O}),Mt.default.createElement(aD,{spend:v,judgedBy:u,pending:g,failed:O}),Mt.default.createElement(cf,{label:"To fix",title:I,testId:"suite-to-fix",...E,...ke})),g&&b>0&&Mt.default.createElement(VC,{parts:[{value:m-y,tone:"success"},{value:y,tone:"error"}],total:b,height:4,radius:0,role:"progressbar","aria-label":"Results in","aria-valuemin":0,"aria-valuemax":b,"aria-valuenow":m,"aria-valuetext":`${m} of ${b} results in${y?`, ${y} failed`:""}`,testId:"suite-run-progress-bar"}),O&&Mt.default.createElement("div",{"data-testid":"suite-run-error",style:{padding:"8px 16px",background:"var(--color-error-soft)",color:"var(--color-error-text)",fontSize:13}},`[!] ${e.error_message||"unknown error"}`))}var Oo=Z(J());function mf({evaluation:e,run:t=null,keys:r=null,spend:n=null,spendTotal:o=!1,reportPath:a=null,onDelete:i,deleting:s=!1,deleteLabel:l="Delete evaluation"}){let u=(r||(e.criteria||[]).map(m=>m.key)).map(m=>k0(e,m)),c={fontFamily:U,fontSize:11,color:"var(--color-text-muted)"},d={fontFamily:U,fontSize:11,color:"var(--color-text-cell)"},p=(m,y,b)=>Oo.default.createElement("span",{"data-testid":y,title:b,style:{...c,fontSize:10,textTransform:"uppercase",letterSpacing:"0.04em",marginLeft:2}},m),f=aJ(n,{total:o});return Oo.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:6,paddingTop:12,borderTop:"1px solid var(--color-border-light)"},"data-testid":"criteria-footer"},Oo.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap",rowGap:4}},Oo.default.createElement("span",{style:c},"judge"),Oo.default.createElement("span",{style:{...d,fontWeight:600}},vh(e,t)),Oo.default.createElement("span",{style:{...c,marginLeft:8}},"criteria"),u.length===0&&Oo.default.createElement("span",{style:c},e.judge_kind==="judge_defined"?"defined by the judge on the first run":e.scenario_suite?"each scenario's own expectations":"\u2014"),u.map((m,y)=>Oo.default.createElement(Oo.default.Fragment,{key:m.key||y},y>0&&Oo.default.createElement("span",{style:c},"\xB7"),Oo.default.createElement("span",{style:d,title:yh(m)||void 0},m2(m)),Sl(m)==="telemetry"&&p("telemetry","score-source-telemetry","Scored from the agent's telemetry traces, not from sampled generations"),Sl(m)==="judge"&&p("judge",void 0,"Scored by the judge model; needs provider credentials"))),Oo.default.createElement("span",{style:{...c,marginLeft:8},title:"A sample or scenario passes at or above this score","data-testid":"criteria-threshold"},Z1(.7))),Oo.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:16,flexWrap:"wrap",rowGap:4}},Oo.default.createElement("span",{style:{...c,whiteSpace:"nowrap"},title:"Run this evaluation again from the API"},"POST /api/evaluations/",e.id,"/run"),f&&Oo.default.createElement("span",{style:{...c,minWidth:0,textWrap:"pretty"},title:"What this run spent: the agent's replays or sampled interactions, and the judge's own calls"},f),f&&n?.totalEstimated&&Oo.default.createElement("span",{style:{...c,whiteSpace:"nowrap"},"data-testid":"criteria-cost-legend"},al),a&&Oo.default.createElement(Gr,{href:et(a),onClick:()=>lt(a),title:"The run rendered as a report page"},"run report"),i&&Oo.default.createElement("button",{type:"button",onClick:m=>{m.stopPropagation(),i()},disabled:s,title:"Delete this evaluation and its runs",style:{marginLeft:"auto",background:"transparent",border:"none",padding:0,cursor:s?"not-allowed":"pointer",fontFamily:U,fontSize:11,color:"var(--color-error)",opacity:s?.5:1}},s?"Deleting\u2026":l)))}var Oke=["tools","contains","not_contains"];function Pke(e){let t=e.expectations||{},r=[];return Oke.forEach(n=>{t[n]?.length&&r.push(`${n}: ${t[n].join(", ")}`)}),e.notes&&r.push(`notes: ${e.notes}`),r.push(`key: ${e.key}`),`${e.prompt} | ${r.join(" | ")}`}function mJ(e){let t=[],r=null;return e.forEach(n=>{(n.group||"")!==(r||"")&&(r=n.group,r&&t.push(`# ${r}`)),t.push(Pke(n))}),t.join(` -`)}var se=Z(J());var jr=Z(J());var Mke=e=>e>=.85?"success":e>=.7?"warning":"error";function _h({label:e,children:t,title:r,nowrap:n=!0}){return jr.default.createElement("span",{style:{whiteSpace:n?"nowrap":"normal"},title:r},e," ",jr.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},t))}function L0({label:e,short:t,provider:r,winner:n=!1,passed:o,total:a,avgScore:i,criteria:s,latencyMs:l,p50Ms:u=null,p95Ms:c=null,inputTokens:d,outputTokens:p,cost:f,perInteraction:m,estimated:y=!1,judgeCost:b=null,judgeCalls:g=0,judgeEstimated:h=!1,unit:v="interaction",badges:x=[],note:S,testId:_="model-scorecard"}){let w=o!=null&&a>0,k=w?o/a:null,A=w?Pu(k):i!=null?Mke(i):"muted",C=bo[A].strong,T=b!=null||g>0;return jr.default.createElement(Le,{padding:"14px 16px",testId:_,style:{display:"flex",flexDirection:"column",gap:10,minWidth:0}},jr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},jr.default.createElement("span",{style:{fontFamily:U,fontSize:14,fontWeight:700,color:"var(--color-text-primary)"},title:e||void 0},t||e||"all samples"),r&&jr.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},r),n&&jr.default.createElement(_e,{tone:"info",size:10,style:{padding:"1px 6px"},testId:"judges-pick"},"judge's pick")),jr.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,flexWrap:"wrap"}},jr.default.createElement("span",{style:{fontFamily:U,fontSize:26,fontWeight:700,lineHeight:1,color:C},"data-testid":"model-scorecard-headline"},w?Kn(o,a):i!=null?aa(i):"\u2014"),jr.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},w?`${v==="scenario"?"scenarios":"samples"} passed`:i!=null?"mean score":"nothing scored")),jr.default.createElement("span",{style:{display:"block",height:6,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},jr.default.createElement("span",{style:{display:"block",height:"100%",borderRadius:999,background:C,width:`${Math.round((k??i??0)*100)}%`}})),jr.default.createElement("div",{style:{display:"flex",gap:14,flexWrap:"wrap",fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"}},jr.default.createElement(_h,{label:"score"},aa(i)),s&&jr.default.createElement(_h,{label:"criteria"},Kn(s.cleared,s.scored)),l!=null&&jr.default.createElement(_h,{label:"latency"},zn(l)),u!=null&&jr.default.createElement(_h,{label:"p50 / p95"},`${zn(u)} / ${zn(c)}`),(d!=null||p!=null)&&jr.default.createElement("span",{style:{whiteSpace:"nowrap"}},jr.default.createElement("span",{style:{color:"var(--color-token-in)"}},"in")," ",jr.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},h0(d))," \xB7 ",jr.default.createElement("span",{style:{color:"var(--color-token-out)"}},"out")," ",jr.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},h0(p))),f!=null&&jr.default.createElement(_h,{label:"cost",title:`What the agent spent under this model${m!=null?` \u2014 ${$u(m,y)} per ${v}`:""}${y?` \xB7 ${Cm()}`:""}`},Pr(f,{estimated:y}),m!=null&&jr.default.createElement("span",{style:{fontWeight:400,color:"var(--color-text-muted)"}},` \xB7 ${$u(m,y)} / ${v}`)),T&&jr.default.createElement(_h,{label:"judge",title:"What the judge spent on this model's answers \u2014 the evaluation's own cost, not the model's"},Pr(b,{estimated:h}),jr.default.createElement("span",{style:{fontWeight:400,color:"var(--color-text-muted)"}},` \xB7 ${St(g,"call")}`))),(x.length>0||S)&&jr.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap",alignItems:"center"}},x.map($=>jr.default.createElement(_e,{key:$.text,tone:$.tone,testId:$.testId},$.text)),S&&jr.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:S.color||"var(--color-text-muted)"}},S.text)))}var vr=Z(J());var mD={fontFamily:U,fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",color:"var(--color-text-muted)",padding:"8px 12px",textAlign:"left",verticalAlign:"bottom",whiteSpace:"nowrap"},gD={padding:"9px 12px",verticalAlign:"top",fontSize:13,color:"var(--color-text-cell)",borderTop:"1px solid var(--color-border-light)"},gf={...gD,fontFamily:U,fontSize:12,whiteSpace:"nowrap",textAlign:"right"},hf={...mD,textAlign:"right"},z0=e=>e==null?"var(--color-text-muted)":e>=.85?"var(--color-success-text)":e>=.5?"var(--color-warning-text)":"var(--color-error)";function B0({rows:e=[],unit:t="scenario",judgedBy:r=null,judgeEstimated:n=!1,title:o="Model comparison",testId:a="model-comparison-table"}){if(!e.length)return null;let i=e.some(p=>p.cost!=null),s=e.some(p=>p.judgeCost!=null||p.judgeCalls>0),l=e.some(p=>p.avgTokens!=null),u=e.some(p=>p.avgDurationMs!=null),c=e.some(p=>p.p50DurationMs!=null),d=e.some(p=>p.cost!=null&&p.estimated||p.judgeCost!=null&&n);return vr.default.createElement(Le,{padding:0,style:{overflow:"hidden"},testId:a},vr.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10,padding:"10px 12px",flexWrap:"wrap"}},vr.default.createElement(We,null,o),vr.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},`${e.length} models \xB7 best first${r?` \xB7 judged by ${r}`:""}`),d&&vr.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"},"data-testid":"model-comparison-legend"},al)),vr.default.createElement("div",{style:{overflowX:"auto"}},vr.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},vr.default.createElement("thead",null,vr.default.createElement("tr",{style:{background:"var(--color-muted)"}},vr.default.createElement("th",{style:mD},"Model"),vr.default.createElement("th",{style:hf},"Passed"),vr.default.createElement("th",{style:hf},"Mean score"),u&&vr.default.createElement("th",{style:hf},"Avg latency"),c&&vr.default.createElement("th",{style:hf,title:"Median and 95th percentile latency, nearest rank"},"P50 / P95"),l&&vr.default.createElement("th",{style:hf,title:`Average input + output tokens per ${t}`},"Avg tokens"),i&&vr.default.createElement("th",{style:hf,title:`Cohort spend, and per ${t}`},"Cost"),s&&vr.default.createElement("th",{style:hf,title:"What the judge spent scoring this model's answers"},"Judge"),vr.default.createElement("th",{style:{...mD,width:"34%"}},"Typical fault"))),vr.default.createElement("tbody",null,e.map(p=>{let{short:f,provider:m}=bn(p.label,p.provider||"");return vr.default.createElement("tr",{key:p.label,"data-testid":"model-comparison-row","data-model":p.label},vr.default.createElement("td",{style:{...gD,whiteSpace:"nowrap"}},vr.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"},title:p.label},f),p.winner&&vr.default.createElement("span",{style:{marginLeft:6,fontFamily:U,fontSize:10,fontWeight:700,color:"var(--color-warning-text)"},title:"the judge's pick"},"\u2605 pick"),m&&vr.default.createElement("span",{style:{display:"block",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},m)),vr.default.createElement("td",{style:{...gf,color:z0(p.passRate),fontWeight:600}},Kn(p.passed,p.total)),vr.default.createElement("td",{style:gf},aa(p.avgScore)),u&&vr.default.createElement("td",{style:gf},p.avgDurationMs==null?"\u2014":zn(p.avgDurationMs)),c&&vr.default.createElement("td",{style:gf,"data-testid":"model-comparison-percentiles"},p.p50DurationMs==null?"\u2014":`${zn(p.p50DurationMs)} / ${zn(p.p95DurationMs)}`),l&&vr.default.createElement("td",{style:gf,title:p.avgInputTokens==null?void 0:`${Math.round(p.avgInputTokens)} in \xB7 ${Math.round(p.avgOutputTokens||0)} out per ${t}`},p.avgTokens==null?"\u2014":On(Math.round(p.avgTokens))),i&&vr.default.createElement("td",{style:gf,title:p.cost!=null&&p.estimated?Cm():void 0,"data-testid":"model-comparison-cost"},Pr(p.cost,{estimated:p.estimated}),p.costPerInteraction!=null&&vr.default.createElement("span",{style:{display:"block",fontWeight:400,color:"var(--color-text-muted)"}},`${Pr(p.costPerInteraction,{estimated:p.estimated})}/${t}`)),s&&vr.default.createElement("td",{style:gf,"data-testid":"model-comparison-judge"},p.judgeCost==null&&!p.judgeCalls?"\u2014":Pr(p.judgeCost,{estimated:n}),p.judgeCalls>0&&vr.default.createElement("span",{style:{display:"block",fontWeight:400,color:"var(--color-text-muted)"}},St(p.judgeCalls,"call"))),vr.default.createElement("td",{style:{...gD,color:p.typicalFault?"var(--color-text-cell)":"var(--color-text-muted)",textWrap:"pretty"}},xZ(p)))})))))}var Po=Z(J());var Ike=[0,25,50,75,100],Dke={display:"grid",gridTemplateColumns:"minmax(64px, 200px) minmax(96px, 1fr) auto",alignItems:"center",gap:"6px 12px",padding:"10px 12px",border:"1px solid var(--color-border-light)",borderRadius:10},gJ={display:"contents"},hD={gridColumn:"1 / -1"},jke={fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"};function $ke({passRate:e,interval:t}){return Po.default.createElement("span",{"aria-hidden":"true",style:{position:"relative",display:"block",height:14}},Po.default.createElement("span",{style:{position:"absolute",left:0,right:0,top:6,height:2,background:"var(--color-muted)"}}),t&&Po.default.createElement("span",{"data-testid":"comparison-interval-range",style:{position:"absolute",top:3,height:8,left:`${t[0]}%`,width:`${Math.max(0,Math.round((t[1]-t[0])*10)/10)}%`,boxSizing:"border-box",border:"1px solid var(--color-info)",borderRadius:999,background:"var(--color-info-soft)"}}),e!=null&&Po.default.createElement("span",{style:{position:"absolute",top:2,left:`${e}%`,width:10,height:10,marginLeft:-5,borderRadius:"50%",background:"var(--color-info)"}}))}function yD({plot:e,testId:t="comparison-intervals"}){if(!e)return null;let r=`${e.confidence}% CI`;return Po.default.createElement("div",{style:Dke,"data-testid":t},Po.default.createElement(We,{size:10,color:"var(--color-text-muted)",style:hD},`Pass rate \xB7 ${r}`),e.rows.map(n=>{let{short:o}=bn(n.label,"");return Po.default.createElement("div",{key:n.label,style:gJ,"data-testid":"comparison-interval-row","data-model":n.label},Po.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:"var(--color-text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:n.label},o),Po.default.createElement($ke,{passRate:n.passRate,interval:n.interval}),Po.default.createElement("span",{style:jke},Po.default.createElement("strong",{style:{color:"var(--color-text-primary)"}},n.passRate==null?"\u2014":`${n.passRate}%`),` ${n.interval?`${n.interval[0]} to ${n.interval[1]}`:"no interval"} \xB7 ${St(n.scenarios,"scenario")}`))}),Po.default.createElement("div",{style:gJ,"aria-hidden":"true"},Po.default.createElement("span",null),Po.default.createElement("span",{style:{position:"relative",display:"block",height:14}},Ike.map(n=>Po.default.createElement("span",{key:n,style:{position:"absolute",left:`${n}%`,transform:"translateX(-50%)",fontFamily:U,fontSize:10,color:"var(--color-text-muted)"}},`${n}%`))),Po.default.createElement("span",null)),e.conclusion&&Po.default.createElement("div",{style:{...hD,fontSize:12,lineHeight:"18px",color:"var(--color-text-cell)",textWrap:"pretty"},"data-testid":"comparison-conclusion"},e.conclusion),e.resamples!=null&&Po.default.createElement("span",{style:{...hD,fontFamily:U,fontSize:10,color:"var(--color-text-muted)"}},`${r} from ${Number(e.resamples).toLocaleString("en-US")} resamples of whole scenarios`))}var $r=Z(J());var hJ={evaluation:"pinned on this evaluation",provider_key:"the provider key's default model",config:"the host's config/active_agent.yml",provider_default:"the provider's own default"},Lke={openrouter:"openrouter/auto"},yJ=(e,t)=>{let r=t?.scores?._judge;if(!r||typeof r!="object")return null;let n=hJ[r.model_source]?r.model_source:"provider_default",o=Object.entries(r.answered||{}).filter(([,i])=>Number(i)>0).sort(([i,s],[l,u])=>u-s||i.localeCompare(l)),a=r.model||null;return{agent:r.agent||"EvaluationJudgeAgent",provider:r.provider||null,requested:a,source:n,sourceText:hJ[n],providerDefault:Lke[r.provider]||null,answered:o,auto:!a,pinned:e?.judge_model||null,suggestion:e?.judge_model||a||(o.length===1?o[0][0]:"")}},vJ=e=>{if(!e)return"";let t=e.requested?`${e.requested} (${e.sourceText})`:`${e.providerDefault||"no model"} (${e.sourceText})`,r=e.answered.map(([n,o])=>`${n} \xD7${o}`).join(", ");return`${e.agent} on ${e.provider||"no provider"} \xB7 asked for ${t}${r?` \xB7 answered by ${r}`:""}`};var xJ="/settings?tab=api-keys",E2=(e=11)=>({fontFamily:U,fontSize:e,color:"var(--color-text-secondary)"});function vD({evaluation:e,run:t,label:r,onChanged:n,testId:o="judge-chip"}){let a=yJ(e,t),[i,s]=(0,$r.useState)(!1),[l,u]=(0,$r.useState)(a?.suggestion||""),[c,d]=(0,$r.useState)(!1),[p,f]=(0,$r.useState)(null);if((0,$r.useEffect)(()=>{u(a?.suggestion||"")},[a?.suggestion]),!r)return null;if(!a)return $r.default.createElement("span",{style:E2()},`judged by ${r}`);let m=async b=>{d(!0),f(null);try{let g=await fetch(`/api/evaluations/${e.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({evaluation:{judge_model:b}})}),h=await g.json().catch(()=>({}));if(!g.ok){f((h.errors||[h.error]).filter(Boolean).join(", ")||`Saving the judge failed (HTTP ${g.status})`);return}await n?.()}finally{d(!1)}},y=(b,g)=>$r.default.createElement($r.default.Fragment,null,$r.default.createElement(We,{size:10},b),$r.default.createElement("span",{style:{...E2(12),color:"var(--color-text-cell)",overflowWrap:"anywhere"}},g));return $r.default.createElement("span",{style:{display:"inline-flex",flexDirection:"column",gap:8,minWidth:0},"data-testid":o},$r.default.createElement("button",{type:"button",onClick:()=>s(!i),title:vJ(a),"aria-expanded":i,style:{...E2(),display:"inline-flex",alignItems:"center",gap:6,background:"none",border:"none",padding:0,cursor:"pointer"}},$r.default.createElement("span",null,"judged by ",$r.default.createElement("span",{style:{color:"var(--color-info)"}},r)),a.auto&&$r.default.createElement(_e,{tone:"warning",size:10,title:"No judge model is pinned: the provider chose"},"auto"),a.answered.length>1&&$r.default.createElement(_e,{tone:"error",size:10,title:"More than one model judged this run"},`${a.answered.length} models`)),i&&$r.default.createElement(Le,{padding:"12px 14px",testId:`${o}-panel`,style:{display:"flex",flexDirection:"column",gap:10,maxWidth:560}},$r.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"max-content 1fr",columnGap:14,rowGap:6,alignItems:"baseline"}},y("Judge agent",a.agent),y("Provider",a.provider||"\u2014"),y("Asked for",a.requested?`${a.requested} \xB7 ${a.sourceText}`:`${a.providerDefault||"no model"} \xB7 ${a.sourceText}`),y("Answered by",a.answered.length?a.answered.map(([b,g])=>`${b} \xD7${g}`).join(", "):"no calls recorded")),a.auto&&$r.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},a.answered.length>1?"Different models judged this run. Pin one so runs are judged alike.":"No judge model is pinned, so a later run can be judged by a different model. Pin one to compare runs."),e?.id!=null&&$r.default.createElement("form",{onSubmit:b=>{b.preventDefault(),l.trim()&&m(l.trim())},style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},$r.default.createElement("input",{value:l,onChange:b=>u(b.target.value),placeholder:a.provider==="openrouter"?"e.g. anthropic/claude-sonnet-4.5":"judge model id","aria-label":"Judge model","data-testid":`${o}-model`,style:{flex:"1 1 220px",padding:"6px 10px",borderRadius:8,fontSize:12,fontFamily:U,boxSizing:"border-box",background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"}}),$r.default.createElement(de,{size:"sm",variant:"primary",type:"submit",disabled:c||!l.trim()||l.trim()===a.pinned,testId:`${o}-pin`},"Pin judge model"),a.pinned&&$r.default.createElement(de,{size:"sm",onClick:()=>m(""),disabled:c,testId:`${o}-unpin`},"Unpin")),$r.default.createElement("div",{style:{display:"flex",gap:12,flexWrap:"wrap",alignItems:"baseline"}},$r.default.createElement("span",{style:E2()},a.pinned?`next run: ${a.pinned}`:`next run: ${a.providerDefault||`${a.provider} default`}`),$r.default.createElement(Gr,{href:et(xJ),onClick:()=>lt(xJ)},`${a.provider||"provider"} key in Settings`)),p&&$r.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},p)))}var dd=Z(J());function F0({build:e,testId:t="copy-fix-prompt",style:r}){let[n,o]=(0,dd.useState)("idle"),a=(0,dd.useRef)(null);(0,dd.useEffect)(()=>()=>clearTimeout(a.current),[]);let i=async()=>{let l="";try{l=e?.()||""}catch{l=""}let u=l?await ld(l):!1;o(u?"copied":"failed"),clearTimeout(a.current),a.current=setTimeout(()=>o("idle"),2e3)},s=n==="copied"?"Copied":n==="failed"?"Copy failed":"Copy fix prompt";return dd.default.createElement(de,{size:"sm",variant:"ghost",onClick:i,testId:t,title:"Copy a Markdown brief of this fix \u2014 the scenarios, what they expect, what the agent did, and how to verify \u2014 for your coding harness",style:{padding:"4px 8px",fontSize:12,color:n==="failed"?"var(--color-error)":n==="copied"?"var(--color-success-text)":"var(--color-text-secondary)",...r}},s)}var N2=()=>{if(typeof window>"u"||!window.location)return"";let e=String(window.ACTIVE_AGENT_DASHBOARD?.mountPath||"").replace(/\/+$/,"");return`${window.location.origin}${e}`};var At=Z(J());var Pe=Z(J());var T2="Update from the sandbox",zke=new Set(["queued","publishing"]);function U0(e){return!!(e&&zke.has(e.status))}function wJ(e){if(!e)return{label:"None",tone:"neutral"};switch(e.status){case"queued":return{label:"Queued",tone:"progress"};case"publishing":return{label:"Publishing",tone:"progress"};case"draft_refused":return{label:"Branch published",tone:"neutral"};case"failed":return e.number?{label:`${bJ(e)} \xB7 update failed`,tone:"error"}:e.head_commit?{label:"Branch published \xB7 pull request not opened",tone:"error"}:{label:"Failed",tone:"error"};default:return{label:bJ(e),tone:Bke(e)}}}function bJ(e){return e.state==="merged"?"Merged":e.state==="closed"?"Closed":e.draft?"Draft":"Open"}function Bke(e){return e.state==="closed"?"error":e.state==="merged"?"success":e.draft?"neutral":"success"}function SJ(e){return!e?.head_commit||!e.number||U0(e)?!1:!["closed","merged"].includes(e.state)}function kJ(e){return!!(e?.head_commit&&!e.number&&!U0(e))}function _J(e,t,r){let n=new Set(Ch(t,r).map(o=>o.path));return(e?.files||[]).map(o=>o.path).filter(o=>!n.has(o))}function CJ(e){return(e||[]).some(t=>t.refusal==="not_read")}function AJ(e){let t=(e||"").split(/[\s,]+/).filter(Boolean);return t.length?t:null}function O2(e){return e==="changed_since_preview"}function P2(e){return new Set((e||[]).filter(t=>!t.refusal).map(t=>t.path))}function M2(e,t){let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r}function Ch(e,t){return(e||[]).filter(r=>!r.refusal&&t.has(r.path))}function EJ(e,t){let r=e||[],n=r.filter(l=>!l.refusal),o=r.length-n.length,a=Ch(r,t).length,i=n.length===1?"file":"files",s=[`${a} of ${n.length} ${i} selected`];return o>0&&s.push(`${o} cannot be published`),s.join(" \xB7 ")}function NJ(e){return{added:"A",modified:"M",deleted:"D"}[e.status]||"?"}var Fke=/[\x00-\x20\x7f~^:?*[\\]|\.\.|@\{|\/\/|^[/-]|\/$|\.$|^@$/;function Uke(e){let t=(e||"").trim();return t?t.length>200?"A branch name is at most 200 characters.":!/^[\x00-\x7f]*$/.test(t)||Fke.test(t)||t.split("/").some(r=>r.startsWith(".")||r.endsWith(".lock"))?`"${t}" is not a valid branch name.`:null:"Name the branch."}function TJ({files:e,selection:t,title:r,branch:n,message:o,update:a=!1}){return Ch(e,t).length===0?"Choose at least one file.":a?(o||"").trim()?null:"Add a commit message.":(r||"").trim()?Uke(n):"Add a title."}function I2({files:e,selection:t,title:r,body:n,branch:o,message:a,allowlist:i=null,update:s=!1}){let l=Ch(e,t).map(c=>({path:c.path,digest:c.digest})),u=s?{files:l,message:(a||"").trim(),update:!0}:{files:l,title:(r||"").trim(),body:n||"",branch:(o||"").trim()};return i?{...u,allowlist:i}:u}function OJ(e,t,r){let n=new URLSearchParams;(t||[]).forEach(a=>n.append("paths[]",a)),r&&r.trim()&&n.set("title",r.trim());let o=n.toString();return`/api/sandboxes/${encodeURIComponent(e)}/pull_request/patch${o?`?${o}`:""}`}function xD(e){let t=Number(e);return!Number.isFinite(t)||t<0?"":t<1024?`${t} ${t===1?"byte":"bytes"}`:t<1024*1024?`${Math.round(t/1024)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function PJ(e){return e?.repository?`Changes from a sandbox of ${e.repository}`:"Changes from a sandbox"}var MJ={add:{dark:"text-green-400",light:"text-green-700"},del:{dark:"text-red-400",light:"text-red-700"},hunk:{dark:"text-blue-300",light:"text-blue-700"},meta:{dark:"text-gray-400 font-semibold",light:"text-gray-500 font-semibold"},context:{dark:"text-gray-300",light:"text-gray-700"}};function IJ(e){return/[.!?]$/.test(e)?e:`${e}.`}function DJ(){let{darkMode:e}=ut();return{darkMode:e,muted:e?"text-gray-400":"text-gray-500",strong:e?"text-white":"text-gray-900",border:e?"border-gray-700":"border-gray-200",link:`underline ${e?"text-gray-300 hover:text-white":"text-gray-700 hover:text-gray-900"}`,secondaryButton:`px-3 py-1 text-sm rounded ${e?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,primaryButton:"px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600 disabled:opacity-50",input:`w-full px-3 py-2 border rounded-lg text-sm ${e?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`,errorBox:`p-2 rounded text-xs border ${e?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`,surface:{backgroundColor:e?"#1a1a1a":"#ffffff"}}}function W0({sandbox:e,codeSession:t=null}){let r=`/api/sandboxes/${encodeURIComponent(e.session_id)}/pull_request`,[n,o]=(0,Pe.useState)(null),[a,i]=(0,Pe.useState)(null),[s,l]=(0,Pe.useState)(null),[u,c]=(0,Pe.useState)(0),[d,p]=(0,Pe.useState)(!1),f=(0,Pe.useCallback)(async()=>{let g=await fetch(r),h=await g.json().catch(()=>({}));if(!g.ok)throw new Error(ot(h,`Could not load the pull request (HTTP ${g.status}).`));return h},[r]);(0,Pe.useEffect)(()=>{let g=!1,h=null,v=async()=>{try{let x=await f();if(g)return;o(x),i(null),U0(x.pull_request)&&(h=setTimeout(v,2e3))}catch(x){g||i(x.message)}};return v(),()=>{g=!0,clearTimeout(h)}},[f,u]);let m=async g=>{p(!0),i(null);try{let h=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g?{regular:!0}:{open:!0})}),v=await h.json().catch(()=>({}));if(!h.ok)throw new Error(ot(v,`Could not open the pull request (HTTP ${h.status}).`));c(x=>x+1)}catch(h){i(h.message)}finally{p(!1)}},y=n?.pull_request||null,b=n?.publishing||null;return b&&!b.supported?null:Pe.default.createElement(Pe.default.Fragment,null,Pe.default.createElement(Hke,{pullRequest:y,publishing:b,error:a,opening:d,onOpenDialog:g=>l({mode:g}),onOpenBranch:m}),s&&Pe.default.createElement(qke,{codeSession:t,sandbox:e,pullRequest:y,publishing:b,mode:s.mode,onClose:()=>l(null),onPublished:()=>{l(null),c(g=>g+1)}}))}function Hke({pullRequest:e,publishing:t,error:r,opening:n,onOpenDialog:o,onOpenBranch:a}){let i=DJ(),{muted:s,strong:l,border:u,link:c,secondaryButton:d,primaryButton:p,errorBox:f}=i,{label:m,tone:y}=wJ(e),b=U0(e),g=!!t?.available,h=SJ(e),v=kJ(e);return Pe.default.createElement("div",{className:`mt-2 p-3 rounded-lg border space-y-2 ${u}`},Pe.default.createElement("div",{className:"flex items-center justify-between gap-3"},Pe.default.createElement("p",{className:`text-sm font-medium ${l}`},"Pull request"),Pe.default.createElement("div",{className:"flex items-center gap-2"},t?.patch_available&&!g&&Pe.default.createElement("button",{type:"button",onClick:()=>o("patch"),className:d},"Download patch\u2026"),g&&h&&Pe.default.createElement("button",{type:"button",onClick:()=>o("update"),disabled:b,className:`${d} disabled:opacity-50`},"Update draft PR"),g&&Pe.default.createElement("button",{type:"button",onClick:()=>o("create"),disabled:b,className:p},"Open draft PR"))),t&&!g&&Pe.default.createElement("p",{className:`text-xs ${s}`},IJ(t.refusal||"Publishing is not available for this sandbox"),t.patch_available&&" You can download its changes as a patch instead."),e&&Pe.default.createElement("div",{className:"space-y-1"},Pe.default.createElement("div",{className:"flex items-center gap-2 min-w-0 text-sm"},Pe.default.createElement(Ks,{tone:y},m),e.url?Pe.default.createElement("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:`truncate ${c}`},"#",e.number," ",e.title):Pe.default.createElement("span",{className:`truncate ${l}`},e.title)),Pe.default.createElement("p",{className:`text-xs font-mono truncate ${s}`},e.branch,e.base_branch?` \u2192 ${e.base_branch}`:"",e.files?.length?` \xB7 ${e.files.length} file${e.files.length===1?"":"s"}`:""),e.status==="draft_refused"&&Pe.default.createElement("p",{className:`text-xs ${s}`},e.error_message),e.status==="failed"&&e.error_message&&Pe.default.createElement("p",{className:f},e.error_message),v&&Pe.default.createElement("div",{className:"flex flex-wrap items-center gap-3 text-xs"},e.compare_url&&Pe.default.createElement("a",{href:e.compare_url,target:"_blank",rel:"noopener noreferrer",className:c},"Compare on GitHub"),g&&Pe.default.createElement("button",{type:"button",onClick:()=>a(e.status==="draft_refused"),disabled:n,className:`${d} disabled:opacity-50`},n&&"Opening\u2026",!n&&(e.status==="draft_refused"?"Open as a regular pull request":"Open the draft PR again")))),r&&Pe.default.createElement("div",{className:f},r))}function qke({sandbox:e,pullRequest:t,publishing:r,mode:n,onClose:o,onPublished:a,codeSession:i}){let s=`/api/sandboxes/${encodeURIComponent(e.session_id)}/pull_request`,l=n==="update",[u,c]=(0,Pe.useState)(null),[d,p]=(0,Pe.useState)(!0),[f,m]=(0,Pe.useState)(null),[y,b]=(0,Pe.useState)(new Set),[g,h]=(0,Pe.useState)(l?t?.title||"":PJ(e)),[v,x]=(0,Pe.useState)(""),[S,_]=(0,Pe.useState)(l&&t?.branch||""),[w,k]=(0,Pe.useState)(T2),[A,C]=(0,Pe.useState)(""),[T,$]=(0,Pe.useState)(null),[Q,B]=(0,Pe.useState)(!1),[K,N]=(0,Pe.useState)(0);return(0,Pe.useEffect)(()=>{let D=!1;return p(!0),(async()=>{try{let P=await fetch(`${s}/preview`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(T?{allowlist:T}:{})}),j=await P.json().catch(()=>({}));if(D)return;if(!P.ok)throw new Error(ot(j,`Could not read the sandbox's changes (HTTP ${P.status}).`));c(j.preview),b(P2(j.preview.files)),_(M=>M||j.preview.suggested_branch||"")}catch(P){D||m(P.message)}finally{D||p(!1)}})(),()=>{D=!0}},[s,K,T]),Pe.default.createElement(bD,{sandbox:e,preview:u,loading:d,error:f,publishing:r,pullRequest:t,selection:y,onToggle:D=>b(P=>M2(P,D)),fields:{title:g,body:v,branch:S,message:w,allowlist:A},onField:(D,P)=>({title:h,body:x,branch:_,message:k,allowlist:C})[D](P),allowlistApplied:!!T,onApplyAllowlist:()=>{m(null),$(AJ(A))},mode:n,submitting:Q,onSubmit:async()=>{B(!0),m(null);try{let D=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...I2({files:u?.files,selection:y,title:g,body:v,branch:S,message:w,allowlist:T,update:l}),...i&&!l?{code_session_id:i.id}:{}})}),P=await D.json().catch(()=>({}));if(!D.ok)throw O2(P.code)&&N(j=>j+1),new Error(ot(P,`Could not publish (HTTP ${D.status}).`));a(P.pull_request)}catch(D){m(D.message)}finally{B(!1)}},onCancel:o})}function bD({sandbox:e,preview:t,loading:r,error:n,publishing:o,pullRequest:a,selection:i,onToggle:s,fields:l,onField:u,allowlistApplied:c,onApplyAllowlist:d,mode:p,submitting:f,onSubmit:m,onCancel:y,patchHref:b}){let g=DJ(),{muted:h,strong:v,border:x,link:S,secondaryButton:_,primaryButton:w,input:k,errorBox:A,darkMode:C}=g,T=t?.files||[],$=(0,Pe.useMemo)(()=>Ch(T,i),[T,i]),Q=!!o?.available,B=p==="patch"||!Q,K=p==="update"&&!B,N=t&&!B?TJ({files:T,selection:i,title:l.title,branch:l.branch,message:l.message,update:K}):null,O=K?_J(a,T,i):[],D="Open draft PR";B?D="Download patch":K&&(D="Update draft PR");let P=`Publishes the files you tick from ${e.repository}@${e.repository_ref} through the GitHub API, as one commit on a new branch.`;return B?P=`Downloads the files you tick from ${e.repository}@${e.repository_ref} as a patch for git am or git apply.`:K&&(P="Publishes the files you tick as one commit on the pull request's branch, which then holds the checkout commit with exactly these files changed."),Pe.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",role:"dialog","aria-modal":"true","aria-label":D},Pe.default.createElement("div",{className:`w-full max-w-4xl max-h-[90vh] overflow-y-auto rounded-lg border p-5 space-y-4 ${x} ${C?"bg-gray-900":"bg-white"}`},Pe.default.createElement("div",{className:"flex items-start justify-between gap-3"},Pe.default.createElement("div",null,Pe.default.createElement("p",{className:`text-lg font-medium ${v}`},D),Pe.default.createElement("p",{className:`text-xs ${h}`},P," Nothing under .github/ is ever published.")),Pe.default.createElement("button",{type:"button",onClick:y,className:_},"Close")),r&&Pe.default.createElement("p",{className:`text-sm ${h}`},"Reading the sandbox's changes\u2026"),n&&Pe.default.createElement("div",{className:A},n),t&&Pe.default.createElement(Pe.default.Fragment,null,d&&(CJ(T)||c)&&Pe.default.createElement("div",{className:"flex flex-wrap items-end gap-2"},Pe.default.createElement("label",{className:`flex-1 min-w-[16rem] text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Only read paths matching"),Pe.default.createElement("input",{type:"text",value:l.allowlist,onChange:j=>u("allowlist",j.target.value),disabled:f||r,placeholder:"app/**, lib/*.rb",className:`${k} font-mono`})),Pe.default.createElement("button",{type:"button",onClick:d,disabled:f||r,className:`${_} disabled:opacity-50`},"Read again")),Pe.default.createElement("div",{className:"space-y-1"},Pe.default.createElement("p",{className:`text-xs font-medium uppercase tracking-wide ${h}`},"Files \xB7 ",EJ(T,i)),T.length===0&&Pe.default.createElement("p",{className:`text-sm ${h}`},"The sandbox has no changes."),Pe.default.createElement("ul",{className:"space-y-1"},T.map(j=>Pe.default.createElement("li",{key:j.path,className:"flex items-center gap-2 text-sm"},Pe.default.createElement("input",{type:"checkbox","aria-label":`Publish ${j.path}`,checked:!j.refusal&&i.has(j.path),disabled:!!j.refusal||f,onChange:()=>s(j.path)}),Pe.default.createElement("span",{className:`w-4 text-xs font-mono ${h}`},NJ(j)),Pe.default.createElement("span",{className:`font-mono truncate ${j.refusal?h:v}`},j.path),j.size!=null&&j.status!=="deleted"&&Pe.default.createElement("span",{className:`shrink-0 text-xs ${h}`},xD(j.size)),j.refusal&&Pe.default.createElement("span",{className:`shrink-0 text-xs ${C?"text-amber-300":"text-amber-700"}`},j.refusal_message))))),O.length>0&&Pe.default.createElement("p",{className:`text-xs ${C?"text-amber-300":"text-amber-700"}`},"Not ticked, so returned to how they are in the checkout commit: ",Pe.default.createElement("span",{className:"font-mono"},O.join(", "))),$.length>0&&Pe.default.createElement("div",{className:"space-y-2"},Pe.default.createElement("p",{className:`text-xs font-medium uppercase tracking-wide ${h}`},"What will be published"),$.map(j=>Pe.default.createElement(Kke,{key:j.path,file:j,classes:g}))),!B&&Pe.default.createElement("label",{className:`block text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Branch"),Pe.default.createElement("input",{type:"text",value:l.branch,onChange:j=>u("branch",j.target.value),disabled:K||f,maxLength:200,className:`${k} font-mono`})),K?Pe.default.createElement("label",{className:`block text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Commit message"),Pe.default.createElement("input",{type:"text",value:l.message,onChange:j=>u("message",j.target.value),disabled:f,className:k})):Pe.default.createElement("label",{className:`block text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Title"),Pe.default.createElement("input",{type:"text",value:l.title,onChange:j=>u("title",j.target.value),disabled:f,maxLength:256,className:k})),!B&&!K&&Pe.default.createElement("label",{className:`block text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Description"),Pe.default.createElement("textarea",{value:l.body,onChange:j=>u("body",j.target.value),disabled:f,rows:4,className:k})),Pe.default.createElement("div",{className:"flex flex-wrap items-center justify-between gap-3"},Pe.default.createElement("p",{className:`text-xs ${h}`},!Q&&IJ(o?.refusal||"Publishing is not available for this sandbox"),Q&&N),Pe.default.createElement("div",{className:"flex items-center gap-3"},$.length>0&&Pe.default.createElement("a",{href:et((b||((j,M)=>OJ(e.session_id,j,M)))($.map(j=>j.path),K?l.message:l.title)),className:`text-sm ${S}`},"Download patch"),Pe.default.createElement("button",{type:"button",onClick:y,className:_},"Cancel"),!B&&Pe.default.createElement("button",{type:"button",onClick:m,disabled:!!N||f,className:w},f?"Publishing\u2026":D))))))}function Kke({file:e,classes:t}){let{muted:r,border:n,darkMode:o,surface:a}=t,i=(0,Pe.useMemo)(()=>l0(e.diff),[e.diff]);return Pe.default.createElement("div",{className:`rounded border ${n}`},Pe.default.createElement("p",{className:`px-2 py-1 text-xs font-mono border-b ${n} ${r}`},e.path),e.binary?Pe.default.createElement("p",{className:`px-2 py-1 text-xs ${r}`},"Binary file, ",xD(e.size),": published as it is in the sandbox."):Pe.default.createElement("pre",{className:"max-h-72 overflow-auto p-2 text-xs font-mono",style:a},i.map((s,l)=>{let u=MJ[s.kind]||MJ.context;return Pe.default.createElement("div",{key:l,className:o?u.dark:u.light},s.text||" ")})))}var Vke=(e,t)=>e?.kind===t?.kind&&(t?.kind==="instruction"?e?.quote===t?.quote:e?.fault===t?.fault)&&[...e?.scenario_keys||[]].sort().join("\0")===[...t?.scenario_keys||[]].sort().join("\0")&&(!(t?.models||[]).length||[...e?.models||[]].sort().join("\0")===[...t.models].sort().join("\0")),D2=new Map,Gke=e=>(D2.has(e)||D2.set(e,(async()=>{let t=await fetch(e),r=await t.json().catch(()=>({}));if(!t.ok)throw new Error(r.error||"Could not load the fix workspace.");return r})().finally(()=>D2.delete(e))),D2.get(e));function wD({item:e,evaluation:t,run:r}){let[n,o]=(0,At.useState)(!1),[a,i]=(0,At.useState)(null),[s,l]=(0,At.useState)(""),[u,c]=(0,At.useState)(null),[d,p]=(0,At.useState)(!1),[f,m]=(0,At.useState)(null),y=`/api/evaluations/${t?.id}/runs/${r?.id}/fixes`,b=(0,At.useCallback)(async()=>{let k=await Gke(y);return i(k),l(A=>A||k.sandboxes?.find(C=>C.status==="ready")?.session_id||""),k},[y]);if((0,At.useEffect)(()=>{if(!t?.id||!r?.id)return;let k=!1,A,C=async()=>{try{await b()}catch(T){k||c(T.message)}!k&&n&&(A=setTimeout(C,2500))};return C(),()=>{k=!0,clearTimeout(A)}},[b,n,t?.id,r?.id]),!t?.id||!r?.id||!["fault","instruction"].includes(e.kind))return null;let g=(a?.code_sessions||[]).filter(k=>Vke(k.fix_item,e));if(!n&&g.length===0&&(!a?.project||!a?.supported))return null;let h=g.find(k=>k.id===f)||g[0],v=a?.sandboxes?.find(k=>k.session_id===(h?.sandbox_session_id||s)),x=h&&(["queued","running"].includes(h.status)||h.status==="succeeded"&&h.diff&&!h.verification?.error&&!["complete","failed"].includes(h.verification?.status)),S=a?.auth_mode!=="sandbox_login"||v?.claude_login?.credential_mode,_=async(k=null)=>{if(!(!v||d||x)){p(!0),c(null);try{let A=await fetch(`/api/sandboxes/${encodeURIComponent(v.session_id)}/code_sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({evaluation_run_id:r.id,fix_item:{kind:e.kind,fault:e.fault,quote:e.quote,scenario_keys:e.scenario_keys,models:e.models},previous_code_session_id:k?.id})}),C=await A.json();if(!A.ok)throw new Error(C.error||"Could not start this fix.");m(C.code_session.id),await b()}catch(A){c(A.message)}finally{p(!1)}}},w=h?h.verification?.status==="complete"?3:h.status==="succeeded"?2:1:0;return At.default.createElement(At.default.Fragment,null,At.default.createElement(de,{size:"sm",variant:"primary",onClick:()=>o(!0),testId:"implement-fix"},h?"Review implementation":"Implement with Claude Code"),h?.verification?.status==="complete"&&At.default.createElement("span",{style:{fontSize:11,color:"var(--color-text-muted)"}},h.verification.counts.fixed||0," fixed \xB7 ",h.verification.counts.regressed||0," regressed"),n&&At.default.createElement(PI,{title:"Implement evaluation fix",onClose:()=>o(!1)},At.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},["Connect","Implement","Verify","Draft PR"].map((k,A)=>At.default.createElement(_e,{key:k,tone:A===w?"accent":Ak.status==="ready")&&At.default.createElement("label",{style:{fontSize:12,fontWeight:600}},"Checkout sandbox",At.default.createElement("select",{"aria-label":"Checkout sandbox",style:{...OI,marginTop:8},value:s,onChange:k=>l(k.target.value)},At.default.createElement("option",{value:""},"Choose a sandbox"),a.sandboxes.filter(k=>k.status==="ready").map(k=>At.default.createElement("option",{key:k.session_id,value:k.session_id},k.repository," \xB7 ",k.repository_ref," \xB7 ",k.session_id.slice(0,8))))),a&&!v&&At.default.createElement("div",{style:m0},At.default.createElement("p",{style:{fontSize:13,marginTop:0}},"Start a checkout sandbox for this evaluation\u2019s project, then return here to implement the fix."),At.default.createElement("a",{href:et(a.project?`/projects/${a.project.id}`:"/projects")},"Open ",a.project?.name||"Projects"," \u2192"),At.default.createElement(de,{size:"sm",onClick:()=>b().catch(k=>c(k.message)),style:{marginLeft:12}},"Check again")),v&&a?.auth_mode==="sandbox_login"&&!x&&At.default.createElement(tf,{sandbox:v,onConnected:b,onChange:b}),v&&At.default.createElement("p",{style:{margin:0,fontSize:12,color:"var(--color-text-secondary)"}},"This session will use ",At.default.createElement("strong",null,v.claude_login?.credential_mode==="sandbox_login"?"your Claude subscription":a?.auth_mode==="local_login"?"this machine\u2019s Claude login":S?"the account\u2019s Anthropic API key":"your sandbox login after you connect"),". Verification uses the agent\u2019s own provider credentials."),!h&&At.default.createElement(de,{variant:"primary",disabled:!v||!S||d||!!a?.refusal||!a?.supported,onClick:()=>_()},d?"Starting\u2026":"Implement this fix"),h&&At.default.createElement(At.default.Fragment,null,At.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},At.default.createElement(_e,{tone:h.status==="failed"?"error":"info"},"Claude Code \xB7 ",h.status),At.default.createElement("span",{style:{fontSize:11,color:"var(--color-text-muted)"}},"Session #",h.id)),["queued","running"].includes(h.status)&&At.default.createElement(de,{size:"sm",onClick:async()=>{try{if(!(await fetch(`/api/sandboxes/${encodeURIComponent(v.session_id)}/code_sessions/${h.id}/cancel`,{method:"POST"})).ok)throw new Error("Could not cancel this session.");await b()}catch(k){c(k.message)}}},"Cancel session"),h.result&&At.default.createElement("p",{style:{fontSize:13,lineHeight:"20px",whiteSpace:"pre-wrap"}},h.result),h.error_message&&At.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)"}},h.error_message),h.diff&&At.default.createElement("details",null,At.default.createElement("summary",{style:{cursor:"pointer",fontSize:13}},"Review code changes"),At.default.createElement("pre",{style:{...m0,maxHeight:240,overflow:"auto",fontSize:11}},h.diff)),At.default.createElement(g0,{session:h,evaluationId:t.id,sandboxId:v?.session_id,onRetry:()=>_(h)}),h.verification?.status==="complete"&&v&&At.default.createElement(W0,{sandbox:v,codeSession:h})),u&&At.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)",fontSize:13}},u)))}var SD=6,Yke=600,Ah=12,Eh=e=>String(e||"").replace(/_/g," "),gs=e=>String(e??"").trim(),H0=e=>[...new Set(e.filter(Boolean))],kD=e=>gs(e).split(` +`);o.length>t&&(o=o.slice(0,t));let a=o.lengthe?.is_error===!0||e?.subtype!=null&&e.subtype!=="success",ISe=e=>{if(!VY(e))return"Done";if(IY[e.subtype])return IY[e.subtype];let t=String(e.subtype||"").replace(/^error_?/,"").replace(/_/g," ").trim();return t&&e.subtype!=="success"?`Error (${t})`:"Error"},DSe=e=>{if(e.subtype==="init"){let t=Array.isArray(e.tools)?Hs(e.tools.length,"tool"):null;return{kind:"system",text:["Session started",...[e.model&&`model ${e.model}`,e.permissionMode&&`${e.permissionMode} mode`,t].filter(Boolean)].join(" \xB7 ")}}if(e.subtype==="compact_boundary")return{kind:"system",text:"Conversation compacted"};if(e.subtype==="api_retry"){let t=e.attempt??"?",r=e.max_retries!=null?`${t}/${e.max_retries}`:String(t),n=[e.error_status,e.error].filter(o=>o!=null&&o!=="").join(" ");return{kind:"system",text:[`API retry ${r}`,n].filter(Boolean).join(" \xB7 ")}}return{kind:"system",text:e.subtype?`System: ${t2(e.subtype).toLowerCase()}`:"System event"}},jSe=/^(hook_|thinking_tokens$)/,$Se=e=>jSe.test(String(e?.subtype||"")),LSe=e=>{let t=e?.rate_limit_info||{},r=String(t.status||"");if(r===""||r==="allowed")return[];let n=Number(t.resetsAt),o=Number.isFinite(n)&&n>0?`resets ${new Date(n*1e3).toLocaleTimeString()}`:null;return[{kind:"system",text:[`Rate limit: ${t2(r).toLowerCase()}`,o].filter(Boolean).join(" \xB7 ")}]},RC=(e,t)=>({kind:"unknown",label:String(e||"event"),text:o0(fh(t),300)}),DY=(e,t,r)=>{if(typeof e=="string")return e.trim()?[{kind:t==="assistant"?"text":"user_text",text:e}]:[];if(!Rp(e))return[];switch(e.type){case"text":return String(e.text??"").trim()?[{kind:t==="assistant"?"text":"user_text",text:e.text}]:[];case"thinking":return String(e.thinking??"").trim()?[{kind:"thinking",text:e.thinking}]:[];case"redacted_thinking":return[{kind:"thinking",text:"(redacted)"}];case"tool_use":case"server_tool_use":{let n=String(e.name||"tool");return e.id&&(r.toolNames[e.id]=n),[{kind:"tool_use",name:n,summary:OSe(n,e.input,r),id:e.id||null}]}case"tool_result":{let{text:n,truncated:o}=MSe(PSe(e.content));return[{kind:"tool_result",name:r.toolNames[e.tool_use_id]||null,text:n,truncated:o,isError:e.is_error===!0}]}default:return[RC(`${t} ${e.type||"block"}`,e)]}},zSe=(e,t)=>{let r=e.message?.content;return typeof r=="string"?DY(r,e.type,t):Array.isArray(r)?r.flatMap(n=>DY(n,e.type,t)):[RC(e.type,e)]},BSe=(e,t={toolNames:{}})=>{if(t.toolNames||={},!Rp(e))return e==null||e===""?[]:[{kind:"raw",text:typeof e=="string"?e:fh(e)}];let r=!!e.parent_tool_use_id,n=o=>r?o.map(a=>({...a,nested:!0})):o;switch(e.type){case"thread.started":return[{kind:"system",text:"Codex session started"}];case"turn.started":case"turn.completed":return[];case"item.started":case"item.updated":case"item.completed":{let o=e.item||{};return e.type!=="item.completed"?[]:o.type==="agent_message"?[{kind:"text",text:String(o.text||"")}]:o.type==="reasoning"?[{kind:"thinking",text:String(o.text||"")}]:o.type==="command_execution"?[{kind:"tool_use",name:"Command",summary:String(o.command||"")},{kind:"tool_result",text:String(o.aggregated_output||""),isError:o.status==="failed"||o.exit_code!=null&&o.exit_code!==0}]:[RC(o.type||e.type,o)]}case"system":return e.subtype==="init"&&e.cwd&&(t.cwd=e.cwd),$Se(e)?[]:[DSe(e)];case"rate_limit_event":return LSe(e);case"assistant":case"user":return n(zSe(e,t));case"result":{let o=Array.isArray(e.permission_denials)?e.permission_denials.length:0,a=jY(ISe(e),e);return[{kind:"result",tone:VY(e)?"error":"success",text:o?`${a} \xB7 ${Hs(o,"permission denial")}`:a}]}case"raw":return e.text==null||e.text===""?[]:[{kind:"raw",text:String(e.text)}];default:return[RC(e.type,e)]}},o2=e=>{let t={toolNames:{}};return(e||[]).flatMap((r,n)=>BSe(r,t).map((o,a)=>({...o,key:`${n}:${a}`})))},GY=/^diff (--git|--cc|--combined) /,FSe="\u2026 diff truncated",u0=e=>{if(!e)return[];let t=!0,r=1;return String(e).replace(/\n$/,"").split(` +`).map(n=>{if(GY.test(n))return t=!0,{text:n,kind:"meta"};if(n===FSe)return{text:n,kind:"meta"};if(n.startsWith("@@"))return t=!1,r=Math.max(1,n.match(/^@+/)[0].length-1),{text:n,kind:"hunk"};if(t)return{text:n,kind:"meta"};let o=n.slice(0,r);return o.includes("+")?{text:n,kind:"add"}:o.includes("-")?{text:n,kind:"del"}:{text:n,kind:"context"}})},YY=e=>{let t=u0(e),r=t.filter(a=>a.kind==="meta"&&GY.test(a.text)).length,n=t.filter(a=>a.kind==="add").length,o=t.filter(a=>a.kind==="del").length;return`${Hs(r,"file")} changed \xB7 +${n} \u2212${o}`},c0="default",d0="other",XY=["sonnet","opus","haiku"],USe=/^[A-Za-z0-9][A-Za-z0-9._:[\]-]{0,99}$/,_I="actionagent.claudeCode.modelChoice",ZY=(e="claude_code")=>[{value:c0,label:`Default (${e==="codex"?"Codex":"Claude Code"}'s own)`},...e==="codex"?[]:XY.map(t=>({value:t,label:t})),{value:d0,label:"Other\u2026"}],CI=e=>e===c0||e===d0||XY.includes(e),AI=(e,t="")=>{if(!CI(e)||e===c0)return{model:null};if(e!==d0)return{model:e};let r=String(t??"").trim();return r?USe.test(r)?{model:r}:{error:`"${o0(r,40)}" is not a model name (letters, digits and . _ : [ ] -).`}:{error:"Enter a model id, or pick one of the options."}},JY=(e,t,r,n="claude_code")=>{let{model:o}=AI(t,r),a=o?{prompt:e,model:o}:{prompt:e};return n==="claude_code"?a:{...a,runner:n}},a2=e=>{let t={choice:c0,custom:""};if(typeof e!="string"||!e)return t;try{let r=JSON.parse(e);if(!Rp(r)||!CI(r.choice))return t;let n=typeof r.custom=="string"?r.custom.slice(0,100):"";return{choice:r.choice,custom:n}}catch{return t}},QY=(e,t="")=>JSON.stringify({choice:CI(e)?e:c0,custom:String(t??"").slice(0,100)}),EI=e=>e?.model||"default model",a0="api_key",i0="local_login",RY="claude /login",eX="sk-ant-api03-\u2026",tX="https://platform.claude.com",rX="https://code.claude.com/docs/en/legal-and-compliance.md",i2=e=>{let t=Rp(e?.claude_code_login)?e.claude_code_login:{},r=e?.claude_code_auth===i0;return{mode:e?.claude_code_auth==="sandbox_login"?"sandbox_login":r?i0:a0,connected:e?.claude_code_connected===!0,loggedIn:r&&t.logged_in===!0,authMethod:r&&typeof t.auth_method=="string"&&t.auth_method?t.auth_method:null}},nX=(e,t)=>{if(!e)return{view:"loading",status:"Loading\u2026",tone:"neutral",keyForm:!1,needsReplacing:!1,loginHint:null};if(e.mode==="sandbox_login")return{view:"sandbox_login",status:"Your subscription, inside each sandbox",tone:"neutral",keyForm:!0,needsReplacing:t?.needs_replacing===!0,loginHint:null};if(e.mode===i0){let r=e.authMethod?` (${e.authMethod})`:"";return{view:i0,status:e.loggedIn?`Using this machine's Claude Code login \xB7 logged in${r}`:"Using this machine's Claude Code login \xB7 not logged in",tone:e.loggedIn?"success":"error",keyForm:!1,needsReplacing:!1,loginHint:e.loggedIn?null:RY}}return t?t.configured&&t.needs_replacing===!0?{view:a0,status:"Needs an API key: the stored subscription token is no longer used",tone:"error",keyForm:!0,needsReplacing:!0,loginHint:null}:{view:a0,status:t.configured?`Connected (${t.hint})`:"Not connected",tone:t.configured?"success":"neutral",keyForm:!0,needsReplacing:!1,loginHint:null}:{view:"loading",status:"Loading\u2026",tone:"neutral",keyForm:!1,needsReplacing:!1,loginHint:null}},oX=e=>e?.connected===!0?null:e?.mode==="sandbox_login"?{text:"Sign in with your Claude subscription in this sandbox, or connect an Anthropic API key.",loginHint:null,after:null}:e?.mode===i0?{text:"Claude Code is not logged in on this machine. Run",loginHint:RY,after:"as the user the dashboard runs as."}:{text:"Connect an Anthropic API key under Claude Code below to run sessions in this checkout.",loginHint:null,after:null},s0="local_login",aX="codex login",s2=e=>{let t=Rp(e?.codex_login)?e.codex_login:{},r=e?.codex_auth===s0;return{supported:e?.codex_sessions_supported===!0,mode:r?s0:a0,connected:e?.codex_connected===!0,loggedIn:r&&t.logged_in===!0,authMethod:r&&typeof t.auth_method=="string"&&t.auth_method?t.auth_method:null}},iX=(e,t)=>{let r={view:"loading",status:"Loading\u2026",tone:"neutral",keyForm:!1,loginHint:null};if(!e)return r;if(e.mode===s0){let n=e.authMethod?` (${e.authMethod})`:"";return{view:s0,status:e.loggedIn?`Using this machine's Codex login \xB7 logged in${n}`:"Using this machine's Codex login \xB7 not logged in",tone:e.loggedIn?"success":"error",keyForm:!1,loginHint:e.loggedIn?null:aX}}return t?{view:a0,status:t.configured?`Connected \xB7 ${t.hint}`:"Not connected",tone:t.configured?"success":"neutral",keyForm:!0,loginHint:null}:r},sX=e=>!e||e.supported!==!0?{text:"This sandbox backend does not support Codex.",loginHint:null,after:null}:e.connected===!0?null:e.mode===s0?{text:"Codex is not logged in on this machine. Run",loginHint:aX,after:"as the user the dashboard runs as."}:{text:"Connect an OpenAI API key in the Codex integration below.",loginHint:null,after:null};var uX=1500,NI=[{id:"all",label:"All"},{id:"agent",label:"Agent runs"},{id:"claude_code",label:"Claude Code"},{id:"codex",label:"Codex"}],WSe=new Set(NI.map(e=>e.id)),TI=e=>e?.source==="code_session"||/^code-\d+$/.test(String(e?.id??"")),ef=e=>{let t=/^code-(\d+)$/.exec(String(e??""));return t?Number(t[1]):null},cX=(e,t="")=>{let r=new URLSearchParams(t),n=WSe.has(r.get("source"))?r.get("source"):"all",o=/^\d+$/.test(r.get("project")||"")?Number(r.get("project")):null,a=String(e||"").replace(/^\/interactions\/?/,"").replace(/\/$/,"");if(a==="latest")return{view:"latest",source:n,project:o,codeId:null};let i=ef(a);return i?{view:"conversation",source:n,project:o,codeId:i}:{view:"list",source:n,project:o,codeId:null}},ms=e=>`/interactions/code-${e}`,l2=({source:e="all",project:t=null}={})=>{let r=new URLSearchParams;e&&e!=="all"&&r.set("source",e),t&&r.set("project",String(t));let n=r.toString();return`/interactions${n?`?${n}`:""}`},OI=({minutes:e=null,agentId:t=null,source:r="all",project:n=null}={})=>{let o=new URLSearchParams;return e&&o.set("minutes",String(e)),t&&o.set("agent_id",String(t)),r&&r!=="all"&&o.set("source",r),n&&o.set("project_id",String(n)),o.toString()},dX=e=>{let t=(e||[]).filter(TI);if(t.length===0)return null;let r=[...t].sort((n,o)=>String(o.last_activity_at).localeCompare(String(n.last_activity_at)));return r.find(n=>n.active)||r[0]},pX=e=>(e||[]).filter(t=>(t.events||[]).length>0).map(t=>`after[${encodeURIComponent(t.id)}]=${t.events_offset+t.events.length}`).join("&"),fX=(e,t)=>{if(!t)return e;if(!e)return t;let r=new Map((e.turns||[]).map(o=>[o.id,o])),n=(t.turns||[]).map(o=>{let a=r.get(o.id);if(!a||o.events_offset===0)return o;let i=(a.events||[]).slice(0,o.events_offset-a.events_offset);return{...o,events_offset:a.events_offset,events:[...i,...o.events||[]]}});return{...t,turns:n}},mX=e=>(e?.turns||[]).some(qs),gX=e=>{let t=[`Turn ${Number(e.turn_index)+1}`];return e.total_cost_usd!=null&&t.push(r2(e.total_cost_usd)),e.duration_ms!=null&&t.push(bI(e.duration_ms)),e.diff_stat&&t.push(`${Hs(e.diff_stat.files,"file")} +${e.diff_stat.additions} \u2212${e.diff_stat.deletions} since checkout`),t.join(" \xB7 ")},u2=e=>{let t=[Hs(e.turn_count??(e.turns||[]).length,"turn")];e.total_cost_usd&&t.push(r2(e.total_cost_usd));let r=e.tokens?.total||0;return r&&t.push(`${r>=1e3?`${(r/1e3).toFixed(1)}k`:r} tokens`),t.join(" \xB7 ")},hX=e=>{let t=e?.turns||[],r=t[t.length-1];if(!r||qs(r))return null;for(let n of[...r.events||[]].reverse()){let o=n?.message?.content;if(Array.isArray(o)){for(let a of[...o].reverse())if(a?.type==="tool_use"&&/(^|__)browser_request_person$/.test(String(a.name||""))){let i=typeof a.input?.reason=="string"?a.input.reason:null;if(i)return{reason:i,turn:r.turn_index}}}}return null},f0=e=>e?.runner==="codex"?"Codex":"Claude Code",yX=(e,{handoff:t=null}={})=>{if(e?.sandbox_status&&e.sandbox_status!=="ready")return`The sandbox is ${e.sandbox_status}: boot it again to continue this conversation.`;let r=(e?.turns||[]).filter(a=>a.status==="queued").length,n=(e?.turns||[]).some(a=>a.status==="running"),o=t?` ${f0(e)} will be told you drove the browser.`:"";return n?`Your message waits for the turn that runs${r?` (and ${Hs(r,"more")})`:""}.${o}`:`Sends the next turn, resuming this conversation.${o}`},vX=(e,t)=>{let r=new URLSearchParams(e||"").get("browser");return r==="1"||r==="0"?r==="1":t==="1"},tf=50,c2=25,d2=75,lX=5,p0=e=>{let t=Number(e);return Number.isFinite(t)?Math.min(d2,Math.max(c2,Math.round(t*10)/10)):tf},xX=(e,{left:t,width:r})=>r>0?p0((e-t)/r*100):tf,bX=(e,t)=>{switch(t){case"ArrowLeft":return p0(e-lX);case"ArrowRight":return p0(e+lX);case"Home":return c2;case"End":return d2;case"Enter":return tf;default:return null}};var Ee=Z(J());var Ut=Z(J());var g0={padding:16,border:"1px solid var(--color-border)",borderRadius:12,background:"var(--color-muted)",color:"var(--color-text-primary)"},PI={width:"100%",boxSizing:"border-box",padding:"12px 14px",borderRadius:8,border:"1px solid var(--color-border)",background:"var(--color-background)",color:"var(--color-text-primary)",fontFamily:"var(--font-mono)",fontSize:13};function MI({title:e,onClose:t,children:r}){let n=(0,Ut.useRef)(null);return(0,Ut.useEffect)(()=>{let o=n.current;return o?.showModal?.(),()=>o?.close?.()},[]),Ut.default.createElement("dialog",{ref:n,className:"aa-fix-dialog","aria-label":e,onCancel:o=>{o.preventDefault(),t()},style:{width:"min(760px, calc(100vw - 32px))",maxHeight:"calc(100dvh - 40px)",boxSizing:"border-box",padding:0,borderRadius:16,border:"1px solid var(--color-border)",background:"var(--color-card, var(--color-background))",color:"var(--color-text-primary)"}},Ut.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,padding:"20px 24px",borderBottom:"1px solid var(--color-border)"}},Ut.default.createElement("h2",{style:{margin:0,fontSize:19,letterSpacing:"-0.02em"}},e),Ut.default.createElement("button",{type:"button","aria-label":"Close dialog",onClick:t,style:{background:"none",border:0,color:"var(--color-text-secondary)",cursor:"pointer",fontSize:24}},"\xD7")),Ut.default.createElement("div",{style:{padding:24,display:"flex",flexDirection:"column",gap:18}},r))}async function m0(e,t="GET",r){let n=await fetch(e,{method:t,headers:r?{"Content-Type":"application/json"}:void 0,body:r?JSON.stringify(r):void 0,cache:"no-store"}),o=await n.json().catch(()=>({}));if(!n.ok)throw new Error(o.error||"Could not connect Claude Code. Please try again.");return o.login}var HSe=e=>e==="expired"?"This sign-in expired. Start again to get a fresh authorization page.":e==="completed"?"Claude Code signed in, but not with a Claude subscription. Start again and choose your Claude.ai account.":"Sign-in did not finish. Start again to retry.";function rf({sandbox:e,onConnected:t,onChange:r}){let n=`/api/sandboxes/${encodeURIComponent(e.session_id)}/claude_login`,[o,a]=(0,Ut.useState)(null),[i,s]=(0,Ut.useState)(!1),[l,u]=(0,Ut.useState)(""),[c,d]=(0,Ut.useState)(!1),[p,f]=(0,Ut.useState)(null),m=(0,Ut.useRef)(null),y=(0,Ut.useRef)(t);y.current=t,(0,Ut.useEffect)(()=>{let v=!1;return m0(n).then(x=>{v||a(x)}).catch(x=>{v||f(x.message)}),()=>{v=!0}},[n]),(0,Ut.useEffect)(()=>{if(!i)return;let v=!1,x,S=async()=>{try{let k=await m0(n);if(v)return;if(a(k),k.authorize_url&&m.current&&(m.current.location=k.authorize_url,m.current=null),k.logged_in){s(!1),u(""),d(!1),r?.(),y.current?.();return}if(!["starting","awaiting_code","submitted"].includes(k.status)){f(HSe(k.status)),d(!1);return}x=setTimeout(S,1200)}catch(k){v||(f(k.message),d(!1))}};return x=setTimeout(S,300),()=>{v=!0,clearTimeout(x)}},[n,i]);let b=async()=>{f(null),u(""),d(!0),m.current=window.open("about:blank","_blank"),m.current&&(m.current.opener=null);try{a(await m0(n,"POST")),s(!0)}catch(v){m.current?.close(),m.current=null,f(v.message)}finally{d(!1)}},g=async()=>{m.current?.close(),m.current=null,u(""),s(!1),d(!0);try{a(await m0(n,"DELETE")),r?.()}catch(v){f(v.message)}finally{d(!1)}},h=async v=>{if(v.preventDefault(),!l.trim()||c)return;let x=l.trim();u(""),d(!0),f(null);try{a(await m0(`${n}/code`,"POST",{claude_login_code:x}))}catch(S){f(S.message),d(!1)}};return Ut.default.createElement("section",{style:g0,"data-testid":"sandbox-claude-login"},Ut.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:10}},Ut.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:8}},Ut.default.createElement("strong",null,"Claude Code"),Ut.default.createElement(ke,{tone:o?.logged_in?"success":"accent"},o?.logged_in?"Your subscription connected":"Use your Claude subscription")),o?.logged_in&&Ut.default.createElement(ce,{size:"sm",variant:"ghost",onClick:g,disabled:c},"Disconnect")),Ut.default.createElement("p",{style:{fontSize:13,lineHeight:"20px",color:"var(--color-text-secondary)",margin:"10px 0"}},"Usage counts against your own Claude Pro, Max, or Team plan. Your login stays inside this sandbox and ends when the sandbox stops."),!o?.logged_in&&Ut.default.createElement(ce,{variant:"primary",onClick:b,disabled:c||e.status!=="ready"},c?"Connecting\u2026":"Sign in with your Claude subscription"),p&&!i&&Ut.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)",fontSize:13}},p),i&&Ut.default.createElement(MI,{title:"Connect your Claude subscription",onClose:g},Ut.default.createElement("p",{style:{margin:0,fontSize:14,lineHeight:"22px",color:"var(--color-text-secondary)"}},"Authorize Claude Code on Claude\u2019s website. Then paste the one-time code below to finish signing in to this sandbox."),Ut.default.createElement("div",{style:{...g0,fontSize:12}},Ut.default.createElement("strong",null,e.repository||"Checkout sandbox"),Ut.default.createElement("div",{style:{marginTop:6,fontFamily:"var(--font-mono)",color:"var(--color-text-muted)"}},e.session_id)),o?.authorize_url?Ut.default.createElement("a",{href:o.authorize_url,target:"_blank",rel:"noreferrer",style:{color:"var(--color-text-link, var(--color-accent-ui))",fontSize:13}},"Reopen Claude authorization page \u2197"):Ut.default.createElement("p",{role:"status",style:{fontSize:13}},o?.status==="submitted"?"Confirming your sign-in\u2026":"Preparing Claude\u2019s authorization page\u2026"),Ut.default.createElement("form",{onSubmit:h,style:{display:"flex",flexDirection:"column",gap:12},"data-aa-secret":""},Ut.default.createElement("label",{htmlFor:`claude-login-code-${e.session_id}`,style:{fontSize:12,fontWeight:600}},"Authentication code"),Ut.default.createElement("input",{id:`claude-login-code-${e.session_id}`,type:"password","data-aa-secret":"",autoComplete:"off",spellCheck:!1,maxLength:2048,value:l,onChange:v=>u(v.target.value),placeholder:"Paste the code from Claude",style:PI,disabled:c||o?.status!=="awaiting_code"}),Ut.default.createElement(ce,{variant:"primary",type:"submit",disabled:!l.trim()||c||o?.status!=="awaiting_code"},c?"Completing connection\u2026":"Complete connection")),p&&Ut.default.createElement(Ut.default.Fragment,null,Ut.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)",fontSize:13}},p),Ut.default.createElement(ce,{onClick:b,disabled:c},"Start sign-in again")),Ut.default.createElement("p",{style:{margin:0,fontSize:12,lineHeight:"18px",color:"var(--color-text-muted)"}},"The code is sent once to Claude Code running in your sandbox. ActiveAgent does not store your Claude subscription token.")))}var Dr=Z(J());function h0({session:e,evaluationId:t,sandboxId:r,onRetry:n}){let[o,a]=(0,Dr.useState)(null),[i,s]=(0,Dr.useState)(!1),l=e?.verification;if(!e?.evaluation_run_id)return null;let u=l?.rows||[],c=l?.status==="complete",d=async()=>{s(!0),a(null);try{let f=await fetch(`/api/evaluations/${t}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox_id:r,models:e.fix_item?.models})}),m=await f.json();if(!f.ok)throw new Error(m.error||"Could not run the full suite.");a({run:m.run.id})}catch(f){a({error:f.message})}finally{s(!1)}},p=f=>f==null?"\u2014":Number(f).toFixed(2);return Dr.default.createElement("section",{"data-testid":"fix-verification",style:{display:"flex",flexDirection:"column",gap:12,minWidth:0}},Dr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Dr.default.createElement("strong",{style:{fontSize:13}},"Before & after"),Dr.default.createElement(ke,{tone:c?"info":"muted"},l?.status||(e.status==="succeeded"?e.diff?"Preparing verification":"No changes to verify":e.status))),l?.error&&Dr.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)",margin:0,fontSize:13}},l.error),Dr.default.createElement("div",{style:{overflowX:"auto"}},Dr.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:12}},Dr.default.createElement("thead",null,Dr.default.createElement("tr",null,["Scenario / model","Before","After","Score \u0394","Fault"].map(f=>Dr.default.createElement("th",{key:f,style:{textAlign:"left",padding:"8px 10px",borderBottom:"1px solid var(--color-border)",color:"var(--color-text-muted)",whiteSpace:"nowrap"}},f)))),Dr.default.createElement("tbody",null,u.map(f=>Dr.default.createElement("tr",{key:`${f.scenario_key}/${f.model}`},Dr.default.createElement("td",{style:{padding:10,fontFamily:"var(--font-mono)"}},f.scenario_key,Dr.default.createElement("div",{style:{color:"var(--color-text-muted)",fontSize:10,marginTop:4}},f.model)),Dr.default.createElement("td",{style:{padding:10}},f.before," \xB7 ",p(f.before_score)),Dr.default.createElement("td",{style:{padding:10,color:f.change==="fixed"?"var(--color-success-text)":["regressed","still_failing"].includes(f.change)?"var(--color-error-text)":"var(--color-text-secondary)"}},f.after||"pending",f.after_score!=null&&` \xB7 ${p(f.after_score)}`,Dr.default.createElement("div",{style:{fontSize:10,marginTop:4}},f.change.replaceAll("_"," "))),Dr.default.createElement("td",{style:{padding:10,fontFamily:"var(--font-mono)"}},f.score_change==null?"\u2014":`${f.score_change>0?"+":""}${p(f.score_change)}`),Dr.default.createElement("td",{style:{padding:10}},f.fault||(f.after?"none":f.before_fault)||"\u2014")))))),Dr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12,flexWrap:"wrap",fontSize:12}},Dr.default.createElement("a",{href:Re(`/evaluations/${t}/runs/${e.evaluation_run_id}`)},"Original run"),l?.run_id&&Dr.default.createElement("a",{href:Re(`/evaluations/${t}/runs/${l.run_id}`)},"Verification run"),c&&Dr.default.createElement(ce,{size:"sm",onClick:d,disabled:i},i?"Starting\u2026":"Re-run the full suite"),n&&["succeeded","failed","cancelled"].includes(e.status)&&(c||l?.error||e.status!=="succeeded"||!e.diff)&&Dr.default.createElement(ce,{size:"sm",onClick:n},"Try again")),o?.run&&Dr.default.createElement("a",{style:{fontSize:12},href:Re(`/evaluations/${t}/runs/${o.run}`)},"Full suite queued \u2014 open run \u2192"),o?.error&&Dr.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)"}},o.error))}var On=e=>{let t=Number(e)||0;return Math.abs(t)>=1e6?`${(t/1e6).toFixed(1)}M`:Math.abs(t)>=1e3?`${(t/1e3).toFixed(1)}K`:`${Math.round(t)}`},y0=e=>e==null?"\u2014":On(e),II=(e,t)=>e==null&&t==null?"\u2014":`${y0(e)}\u2192${y0(t)}`,Bn=e=>{if(e==null||Number.isNaN(Number(e)))return"\u2014";let t=Number(e);return t>=1e3?`${(t/1e3).toFixed(t>=1e4?1:2).replace(/\.?0+$/,"")}s`:`${Math.round(t)}ms`},v0=e=>{if(e==null)return"\u2014";let t=Number(e);return t===0?"$0.00":Math.abs(t)<.01?`$${t.toFixed(4)}`:`$${t.toFixed(2)}`},x0=(e,t=4)=>e==null?"\u2014":`$${Number(e).toFixed(t)}`;var mh=(e,t="%",r=0)=>{if(e==null||Number.isNaN(Number(e)))return"\u2014";let n=Number(e);return`${n>0?"+":n<0?"-":""}${Math.abs(n).toFixed(r)}${t}`},wo=e=>{if(!e)return"";let t=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(t<1)return"just now";if(t<60)return`${t} min ago`;if(t<1440){let n=Math.floor(t/60);return`${n} hour${n===1?"":"s"} ago`}let r=Math.floor(t/1440);return`${r} day${r===1?"":"s"} ago`},bn=(e,t=null)=>{let r=String(e||""),n=r.lastIndexOf("/");return n>0?{short:r.slice(n+1),provider:r.slice(0,n)}:{short:r,provider:t||""}};var qSe=2e4,SX=()=>{try{return a2(window.localStorage.getItem(_I))}catch{return a2(null)}},KSe=(e,t)=>{try{window.localStorage.setItem(_I,QY(e,t))}catch{}},CX=e=>({backgroundColor:e?"#1a1a1a":"#ffffff"}),kX={success:{dark:"bg-green-900/30 text-green-300",light:"bg-green-50 text-green-700"},error:{dark:"bg-red-900/30 text-red-300",light:"bg-red-50 text-red-700"},progress:{dark:"bg-amber-900/30 text-amber-300",light:"bg-amber-50 text-amber-700"},neutral:{dark:"bg-gray-700 text-gray-300",light:"bg-gray-100 text-gray-600"}};function Ks({tone:e="neutral",children:t}){let{darkMode:r}=ut(),n=kX[e]||kX.neutral;return Ee.default.createElement("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${r?n.dark:n.light}`},e==="progress"&&Ee.default.createElement("span",{className:"mr-1 h-1.5 w-1.5 rounded-full bg-current animate-pulse"}),t)}function b0({sandbox:e,claudeCode:t,codex:r,onRecheckConnection:n,readOnly:o=!1,focusSessionId:a=null,title:i="Code sessions"}){let{darkMode:s}=ut(),l=`/api/sandboxes/${encodeURIComponent(e.session_id)}/code_sessions`,[u,c]=(0,Ee.useState)(null),[d,p]=(0,Ee.useState)(null),[f,m]=(0,Ee.useState)(null),[y,b]=(0,Ee.useState)(null),[g,h]=(0,Ee.useState)(0),[v,x]=(0,Ee.useState)(0),[S,k]=(0,Ee.useState)(""),[w,_]=(0,Ee.useState)("claude_code"),A=w==="codex"?"Codex":"Claude Code",[C,N]=(0,Ee.useState)(SX),[L,Q]=(0,Ee.useState)(!1),[B,K]=(0,Ee.useState)(!1),[T,O]=(0,Ee.useState)(null),I=(0,Ee.useRef)(null),P=(0,Ee.useRef)(!0),j=(0,Ee.useCallback)(async()=>{let $=await fetch(l),ee=await $.json().catch(()=>({}));if(!$.ok)throw new Error(at(ee,`Could not load code sessions (HTTP ${$.status}).`));return ee.code_sessions||[]},[l]);(0,Ee.useEffect)(()=>{let $=!1;return c(null),p(null),j().then(ee=>{if($)return;c(ee);let F=ee.find(me=>me.id===a)||ee.find(qs)||ee[0];p(me=>me??F?.id??null)}).catch(ee=>{$||(c([]),O(ee.message))}),()=>{$=!0}},[j]),(0,Ee.useEffect)(()=>{a!=null&&p(a)},[a]),(0,Ee.useEffect)(()=>{if(d==null)return;let $=!1,ee=null,F=[],me=0;m(null),b(null),P.current=!0;let et=async()=>{let rt=!0,ge=null;try{let ue=await fetch(`${l}/${d}?after=${F.length}`);ge=ue.status;let Fe=await ue.json().catch(()=>({}));if($)return;if(!ue.ok)throw new Error(at(Fe,`Could not load the session (HTTP ${ue.status}).`));let Je=Fe.code_session;F=KY(F,Je),me=0,b(null),m({...Je,events:F}),c(Tt=>sd(Tt||[],HY(Je),"id"));let ot=Je.evaluation_run_id&&Je.status==="succeeded"&&Je.diff&&!Je.verification?.error&&!["complete","failed"].includes(Je.verification?.status);SI(Je)&&!ot&&(rt=!1)}catch(ue){if($)return;me+=1,b(ue.message),e2(ge,me)&&(rt=!1)}rt&&!$&&(ee=setTimeout(et,1500))};return et(),()=>{$=!0,clearTimeout(ee)}},[l,d,g]);let M=(u||[]).find(qs)||null,W=M&&M.id!==d?M.id:null,Y=w==="codex"?sX(r):oX(t),z=Y?"not_connected":M?"busy":null;(0,Ee.useEffect)(()=>{if(W==null)return;let $=!1,ee=setTimeout(async()=>{try{let F=await j();$||c(F)}catch{}$||x(F=>F+1)},1500*2);return()=>{$=!0,clearTimeout(ee)}},[W,v,j]);let V=(0,Ee.useMemo)(()=>o2(f?.events),[f?.events]);(0,Ee.useLayoutEffect)(()=>{let $=I.current;$&&P.current&&($.scrollTop=$.scrollHeight)},[V.length]);let q=$=>{let ee=$.currentTarget;P.current=ee.scrollHeight-ee.scrollTop-ee.clientHeight<40},oe=AI(C.choice,C.custom).error||null,Me=$=>{N(ee=>{let F={...ee,...$};return w==="claude_code"&&KSe(F.choice,F.custom),F})},fe=async()=>{let $=S.trim();if(!(!$||z||L||oe)){Q(!0),O(null);try{let ee=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(JY($,C.choice,C.custom,w))}),F=await ee.json().catch(()=>({}));if(!ee.ok)throw F.code_session&&(c(me=>sd(me||[],F.code_session,"id")),p(F.code_session.id)),new Error(at(F,`Could not start ${A} (HTTP ${ee.status}).`));c(me=>sd(me||[],F.code_session,"id")),p(F.code_session.id),k("")}catch(ee){O(ee.message)}finally{Q(!1)}}},le=async $=>{K(!0),O(null);try{let ee=await fetch(`${l}/${$.id}/cancel`,{method:"POST"}),F=await ee.json().catch(()=>({}));if(!ee.ok)throw new Error(at(F,`Could not cancel the session (HTTP ${ee.status}).`));c(me=>sd(me||[],F.code_session,"id")),m(me=>me&&me.id===F.code_session.id?{...me,...F.code_session}:me)}catch(ee){O(ee.message)}finally{K(!1)}},R=s?"text-gray-400":"text-gray-500",te=s?"text-white":"text-gray-900",He=s?"border-gray-700":"border-gray-200",_e=`px-3 py-1 text-sm rounded ${s?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,D=`underline ${s?"text-gray-300 hover:text-white":"text-gray-700 hover:text-gray-900"}`,G=`p-2 rounded text-xs border ${s?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`,E=f&&f.id===d?f:(u||[]).find($=>$.id===d)||null;return Ee.default.createElement("div",{className:`mt-2 p-3 rounded-lg border space-y-3 ${He}`},!o&&t?.mode==="sandbox_login"&&Ee.default.createElement(rf,{sandbox:e,onChange:n}),Ee.default.createElement("div",{className:"flex items-center justify-between"},Ee.default.createElement("p",{className:`text-sm font-medium ${te}`},i),Ee.default.createElement("p",{className:`text-xs ${R}`},"A session edits this checkout and never commits or pushes. Publishing is a separate step, below.")),o&&T&&Ee.default.createElement("div",{className:G},T),!o&&Ee.default.createElement("div",{className:"space-y-2"},Ee.default.createElement("label",{className:`flex items-center gap-2 text-xs ${R}`},"Agent",Ee.default.createElement("select",{"aria-label":"Coding agent",value:w,onChange:$=>{_($.target.value),N($.target.value==="claude_code"?SX():a2(null))},disabled:L,className:`px-2 py-1 border rounded ${s?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`},Ee.default.createElement("option",{value:"claude_code"},"Claude Code"),Ee.default.createElement("option",{value:"codex",disabled:!r?.supported},"Codex",r?.supported?"":" (backend unavailable)"))),Ee.default.createElement("textarea",{value:S,onChange:$=>k($.target.value),onKeyDown:$=>{$.key==="Enter"&&($.metaKey||$.ctrlKey)&&fe()},rows:3,maxLength:qSe,disabled:z==="not_connected"||L,placeholder:`What should ${A} do in this checkout?`,className:`w-full px-3 py-2 border rounded-lg text-sm disabled:opacity-60 ${s?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),Ee.default.createElement("div",{className:"flex flex-wrap items-center gap-2"},Ee.default.createElement("label",{htmlFor:`code-session-model-${e.session_id}`,className:`text-xs ${R}`},"Model"),Ee.default.createElement("select",{id:`code-session-model-${e.session_id}`,value:C.choice,onChange:$=>Me({choice:$.target.value}),disabled:L,className:`px-2 py-1 border rounded text-xs ${s?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`},ZY(w).map($=>Ee.default.createElement("option",{key:$.value,value:$.value},$.label))),C.choice===d0&&Ee.default.createElement("input",{type:"text",value:C.custom,onChange:$=>Me({custom:$.target.value}),disabled:L,maxLength:100,placeholder:w==="codex"?"Model id":"claude-sonnet-4-5","aria-label":"Model id","aria-invalid":!!oe,className:`flex-1 min-w-[10rem] px-2 py-1 border rounded text-xs font-mono ${s?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`})),oe&&C.custom.trim()&&Ee.default.createElement("p",{className:`text-xs ${s?"text-red-300":"text-red-700"}`},oe),Ee.default.createElement("div",{className:"flex items-center justify-between gap-3"},Ee.default.createElement("p",{className:`text-xs ${R}`},z==="not_connected"&&Ee.default.createElement(Ee.default.Fragment,null,Y.text,Y.loginHint&&Ee.default.createElement(Ee.default.Fragment,null," ",Ee.default.createElement("code",{className:"font-mono"},Y.loginHint)," ",Y.after)," ",n&&Ee.default.createElement("button",{type:"button",onClick:n,className:D},"Check again")),z==="busy"&&Ee.default.createElement(Ee.default.Fragment,null,"A session is ",M.status," in this checkout; wait for it to finish or cancel it."," ",M.id!==d&&Ee.default.createElement("button",{type:"button",onClick:()=>p(M.id),className:D},"Show it"))),Ee.default.createElement("button",{type:"button",onClick:fe,disabled:!!z||L||!S.trim()||!!oe,className:"shrink-0 px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600 disabled:opacity-50"},L?"Starting\u2026":`Run ${A}`)),T&&Ee.default.createElement("div",{className:G},T)),u&&u.length>0&&Ee.default.createElement("div",{className:"space-y-1"},Ee.default.createElement("p",{className:`text-xs font-medium uppercase tracking-wide ${R}`},"Sessions"),Ee.default.createElement("div",{className:"max-h-40 overflow-y-auto space-y-1"},u.map($=>{let{label:ee,tone:F}=fs($.status),me=$.id===d;return Ee.default.createElement("button",{key:$.id,type:"button",title:FY($),onClick:()=>me?h(et=>et+1):p($.id),className:`w-full text-left px-2 py-1.5 rounded flex items-center gap-2 text-sm ${me?s?"bg-gray-700":"bg-gray-200":s?"hover:bg-gray-800":"hover:bg-gray-100"}`},Ee.default.createElement(Ks,{tone:F},ee),Ee.default.createElement("span",{className:`text-xs ${R}`},$.runner==="codex"?"Codex":"Claude Code"),Ee.default.createElement("span",{className:`flex-1 truncate ${te}`},UY($.prompt)),Ee.default.createElement("span",{className:`shrink-0 text-xs font-mono ${R}`},EI($)),Ee.default.createElement("span",{className:`shrink-0 text-xs ${R}`},wo($.created_at)))}))),u===null&&Ee.default.createElement("p",{className:`text-xs ${R}`},"Loading sessions\u2026"),E&&Ee.default.createElement(VSe,{session:E,rows:V,loaded:!!(f&&f.id===E.id),detailError:y,cancelling:B,onCancel:()=>le(E),onReload:()=>h($=>$+1),transcriptRef:I,onTranscriptScroll:q,classes:{muted:R,strong:te,border:He,secondaryButton:_e,linkButton:D,errorBox:G}}))}function VSe({session:e,rows:t,loaded:r,detailError:n,cancelling:o,onCancel:a,onReload:i,transcriptRef:s,onTranscriptScroll:l,classes:u}){let{darkMode:c}=ut(),{muted:d,strong:p,border:f,secondaryButton:m,linkButton:y,errorBox:b}=u,{label:g,tone:h}=fs(e.status),v=qs(e),x=l0(e),S=BY(e),k=Number(e.dropped_events_count)||0;return Ee.default.createElement("div",{className:`pt-3 border-t space-y-2 ${f}`},Ee.default.createElement("div",{className:"flex items-center justify-between gap-3"},Ee.default.createElement("div",{className:"flex items-center gap-2 min-w-0"},Ee.default.createElement(Ks,{tone:h},g),Ee.default.createElement("span",{className:`text-xs truncate ${d}`},[kI(e),EI(e)].filter(Boolean).join(" \xB7 "))),Ee.default.createElement("div",{className:"flex items-center gap-2 shrink-0"},Ee.default.createElement("a",{href:Re(ms(e.conversation_id||e.id)),onClick:w=>{w.preventDefault(),lt(ms(e.conversation_id||e.id))},className:y,"data-testid":"code-session-open-interaction"},"Open in Interactions"),v&&Ee.default.createElement("button",{type:"button",onClick:a,disabled:o,className:`${m} shrink-0 disabled:opacity-50`},o?"Cancelling\u2026":"Cancel"))),Ee.default.createElement("p",{className:`text-xs whitespace-pre-wrap break-words max-h-24 overflow-y-auto ${d}`},e.prompt),n&&Ee.default.createElement("div",{className:b},n),Ee.default.createElement("div",{ref:s,onScroll:l,className:"max-h-96 overflow-y-auto rounded p-2 space-y-1.5",style:CX(c)},!r&&Ee.default.createElement("p",{className:`text-xs ${d}`},"Loading transcript\u2026"),r&&t.length===0&&Ee.default.createElement("p",{className:`text-xs ${d}`},e.status==="queued"?"Waiting for the sandbox to start the agent\u2026":v?"The agent is starting\u2026":S?"Cancelled before the agent started.":"No transcript was recorded."),t.map(w=>Ee.default.createElement(DI,{key:w.key,row:w,darkMode:c,muted:d,strong:p})),k>0&&Ee.default.createElement("p",{className:`text-xs italic ${d}`},k," later event",k===1?" was":"s were"," not kept: a transcript keeps its first 1,000.")),e.error_message&&Ee.default.createElement("pre",{className:`${b} whitespace-pre-wrap break-words font-mono max-h-48 overflow-y-auto`},e.error_message),e.evaluation_run_id&&Ee.default.createElement(h0,{session:e,evaluationId:e.evaluation_id,sandboxId:e.sandbox_session_id}),x&&r&&Ee.default.createElement(jI,{diff:e.diff,pending:wI(e),onReload:i,muted:d,linkButton:y,darkMode:c}))}function DI({row:e,darkMode:t,muted:r,strong:n}){let o=e.nested?`ml-4 pl-2 border-l ${t?"border-gray-700":"border-gray-200"}`:"";switch(e.kind){case"text":return Ee.default.createElement("p",{className:`text-sm whitespace-pre-wrap break-words ${n} ${o}`},e.text);case"user_text":return Ee.default.createElement("p",{className:`text-sm whitespace-pre-wrap break-words ${r} ${o}`},e.text);case"thinking":return Ee.default.createElement("p",{className:`text-xs italic whitespace-pre-wrap break-words line-clamp-3 ${r} ${o}`},e.text);case"tool_use":return Ee.default.createElement("p",{className:`text-xs font-mono break-words ${o}`},Ee.default.createElement("span",{className:`font-semibold ${t?"text-blue-300":"text-blue-700"}`},e.name),e.summary&&Ee.default.createElement("span",{className:r}," ",e.summary));case"tool_result":return Ee.default.createElement("pre",{className:`ml-4 text-xs font-mono whitespace-pre-wrap break-words ${e.isError?t?"text-red-400":"text-red-600":r} ${o}`,title:e.name?`${e.name} result`:void 0},e.text||"(no output)");case"result":return Ee.default.createElement("p",{className:`text-sm font-medium ${e.tone==="error"?t?"text-red-400":"text-red-600":t?"text-green-400":"text-green-600"}`},e.text);case"system":return Ee.default.createElement("p",{className:`text-xs ${r}`},e.text);case"raw":return Ee.default.createElement("pre",{className:`text-xs font-mono whitespace-pre-wrap break-words ${r} ${o}`},e.text);default:return Ee.default.createElement("pre",{className:`text-xs font-mono whitespace-pre-wrap break-words ${r} ${o}`},"[",e.label,"] ",e.text)}}var _X={add:{dark:"text-green-400",light:"text-green-700"},del:{dark:"text-red-400",light:"text-red-700"},hunk:{dark:"text-blue-300",light:"text-blue-700"},meta:{dark:"text-gray-400 font-semibold",light:"text-gray-500 font-semibold"},context:{dark:"text-gray-300",light:"text-gray-700"}};function jI({diff:e,pending:t,onReload:r,muted:n,linkButton:o,darkMode:a}){let i=(0,Ee.useMemo)(()=>u0(e),[e]);return e==null?t?Ee.default.createElement("p",{className:`text-xs ${n}`},"The diff is recorded once the agent has stopped."," ",Ee.default.createElement("button",{type:"button",onClick:r,className:o},"Refresh")):Ee.default.createElement("p",{className:`text-xs ${n}`},"No diff was recorded."):i.length===0?Ee.default.createElement("p",{className:`text-xs ${n}`},"No changes in the checkout."):Ee.default.createElement("div",{className:"space-y-1"},Ee.default.createElement("p",{className:`text-xs ${n}`},"Diff \xB7 ",YY(e)),Ee.default.createElement("pre",{className:"max-h-96 overflow-auto rounded p-2 text-xs font-mono",style:CX(a)},i.map((s,l)=>{let u=_X[s.kind]||_X.context;return Ee.default.createElement("div",{key:l,className:a?u.dark:u.light},s.text||" ")})))}var gt=Z(J());function p2(e){return(e.altKey?1:0)|(e.ctrlKey?2:0)|(e.metaKey?4:0)|(e.shiftKey?8:0)}var AX=["left","middle","right"];function EX(e,t,r){if(!r||!(r.width>0)||!(r.height>0))return null;let n=(e-r.left)/r.width,o=(t-r.top)/r.height;return n<0||n>1||o<0||o>1?null:{x:n,y:o}}function f2(e,t,r){let n=EX(t.clientX,t.clientY,r);if(!n)return null;let o={type:"mouse",action:e,...n,modifiers:p2(t)};return e==="move"?{...o,button:t.buttons&1?"left":"none"}:{...o,button:AX[t.button]||"left",clickCount:Math.min(Math.max(t.detail||1,1),3)}}function NX(e,t,r){let n=f2("up",e,t);return n||!r?n:{type:"mouse",action:"up",x:r.x,y:r.y,modifiers:p2(e),button:AX[e.button]||"left",clickCount:1}}var GSe=16,YSe=800;function TX(e,t){let r=EX(e.clientX,e.clientY,t);if(!r)return null;let n=e.deltaMode===1?GSe:e.deltaMode===2?YSe:1;return{type:"wheel",...r,deltaX:e.deltaX*n,deltaY:e.deltaY*n,modifiers:p2(e)}}function $I(e,t){return t.isComposing||t.key==="Process"||t.key==="Unidentified"||!t.key?null:{type:"key",action:e,key:t.key,code:t.code||"",keyCode:t.keyCode||void 0,modifiers:p2(t)}}function OX(e){return typeof e=="string"&&e!==""?{type:"text",text:e.slice(0,2e3)}:null}var XSe=600;function PX(e,t){return e.key!=="Escape"||e.repeat||t===null?!1:e.timeStamp-t<=XSe}var LI=32*1024;function MX(e){let t="";for(let r=0;r=1024*1024?`${Math.round(e/(1024*1024)*10)/10} MB`:e>=1024?`${Math.round(e/1024)} KB`:`${e} bytes`}function DX(e,t){let r=Array.from(e||[]);if(!t)return{error:"The page is no longer asking for a file."};if(r.length===0)return{error:"Choose a file to upload."};let n=t.multiple?t.max_files:1;if(r.length>n)return{error:n===1?"This field takes one file.":`This field takes at most ${n} files.`};let o=r.find(a=>a.size>t.max_file_bytes);return o?{error:`${o.name} is larger than ${IX(t.max_file_bytes)}.`}:{files:r.map(a=>({name:a.name,size:a.size})),total:r.reduce((a,i)=>a+i.size,0)}}function jX(e){if(!e)return null;let t=e.total>0?Math.min(100,Math.floor(e.sent/e.total*100)):100;return`Uploading ${IX(e.total)}\u2026 ${t}%`}function $X(e){return!e.fileChooser||e.control.mine?null:e.control.yours?"The page is asking for a file. Choose it in the view you are driving from.":`The page is asking ${e.control.by||"the person driving"} for a file.`}var w0={ready:!1,control:{held:!1,mine:!1,yours:!1,by:null,since:null},agent:{waiting:!1,tool:null,since:null,client:null},page:null,frameSize:null,fileChooser:null,personRequest:null,error:null};function LX(e,t){switch(t?.type){case"ready":return{...e,ready:!0,control:{...w0.control,...t.control},agent:{...w0.agent,...t.agent},page:t.page||null,fileChooser:t.file_chooser||null,personRequest:t.person_request||null};case"frame":return e.frameSize?.width===t.width&&e.frameSize?.height===t.height?e:{...e,frameSize:{width:t.width,height:t.height}};case"control":return{...e,control:{held:t.held,mine:t.mine,yours:t.yours===!0,by:t.by,since:t.since}};case"agent":return{...e,agent:{waiting:t.waiting,tool:t.tool,since:t.since,client:t.client||null}};case"person_requested":return{...e,personRequest:t.request||null};case"page":return{...e,page:t.page||null};case"file_chooser":return{...e,fileChooser:t.chooser||null};case"file_upload":return t.status==="failed"?{...e,error:t.message||"The upload failed"}:e;case"error":return{...e,error:t.message||"The browser refused that"};case"clear_error":return{...e,error:null};case"reset":return w0;default:return e}}function zX(e){if(!e.agent.waiting||!e.control.held)return null;let t=e.agent.tool?` (${e.agent.tool})`:"",r=e.agent.client||"The agent";return e.control.mine?`${r} is waiting for you to hand back control${t}.`:e.control.yours?`${r} is waiting for you to hand back control in your other view${t}.`:`${r} is waiting for ${e.control.by||"the person driving"} to hand back control${t}.`}function BX(e){let t=e.personRequest;return!t||e.control.held?null:`${t.client||"The agent"} needs a person: ${t.reason}`}function FX({by:e=null,takenAt:t,releasedAt:r,page:n=null}){let o=a=>Number.isFinite(a)?new Date(a).toISOString():null;return{by:e||null,taken_at:o(t),released_at:o(r),page_url:typeof n?.url=="string"&&/^https?:\/\//.test(n.url)?n.url:null}}function UX(e){return e.control.held?e.control.mine?"You are driving":e.control.yours?"You are driving in another view":`Held by ${e.control.by||"someone else"}`:null}function WX(e,{taking:t=!1}={}){let{held:r,yours:n}=e.control,o="Take over";return t?o="Taking over\u2026":r&&n&&(o="Continue driving here"),{label:o,disabled:t||r&&!n}}function HX(e){if(!e)return null;let t=e.tabs>1?` \xB7 tab ${e.tab} of ${e.tabs}`:"";return`${e.url||"a page with no address to show"}${t}`}var ZSe={1001:"The browser stopped.",4401:"The live view did not accept the ticket. Try again.",4408:"The live view timed out before it opened. Try again.",4429:"Too many people are watching this browser."};function qX(e,{requested:t=!1}={}){return t?null:ZSe[e]||"The live view lost its connection to the browser."}var JSe={starting:{label:"Starting",tone:"progress"},running:{label:"Running",tone:"success"},stopped:{label:"Stopped",tone:"neutral"},failed:{label:"Failed",tone:"error"}};function KX(e){return e?.status?JSe[e.status]||{label:e.status,tone:"neutral"}:null}function VX(e){return e?.status==="starting"||e?.status==="running"}function GX({inWindow:e=!1,modes:t=[]}={}){return{mode:e&&t.includes("headed")?"headed":"headless"}}async function YX(e,t){let r=await fetch(`/api/sandboxes/${encodeURIComponent(e)}/browser/tickets`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:t})}),n=await r.json().catch(()=>({}));if(r.status===403&&n.code==="forbidden")throw new Error("You do not have permission to take over this browser.");if(!r.ok)throw new Error(at(n,`Could not open the live view (HTTP ${r.status}).`));return n}var XX=e=>(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()==="v",QSe=1024*1024,RSe=e=>new Promise(t=>{setTimeout(t,e)});function eke({chooser:e,upload:t,onFiles:r,onCancel:n}){let{darkMode:o}=ut(),a=o?"text-gray-400":"text-gray-500",i=o?"text-white":"text-gray-900",s=e.multiple;return gt.default.createElement("div",{role:"dialog","aria-label":"Choose a file for the page","data-testid":"live-view-file-chooser",className:`absolute inset-x-4 top-4 p-3 rounded border shadow space-y-2 ${o?"bg-gray-800 border-gray-600":"bg-white border-gray-300"}`},gt.default.createElement("p",{className:`text-sm font-medium ${i}`},"The page asked for ",s?"files":"a file"),gt.default.createElement("p",{className:`text-xs ${a}`},"Choose ",s?`up to ${e.max_files} files`:"one"," from this computer, or drop ",s?"them":"it"," on the view. ",e.accept?`The page takes ${e.accept}. `:"","Only the browser receives the files, and they stay in the sandbox until the browser stops."),t?gt.default.createElement("p",{className:`text-xs ${i}`,role:"status"},jX(t)):gt.default.createElement("input",{type:"file",multiple:s,accept:e.accept||void 0,onChange:l=>r(l.target.files),"aria-label":s?"Files for the page":"File for the page",className:`block text-xs ${i}`}),gt.default.createElement("button",{type:"button",onClick:n,className:`px-3 py-1 text-sm rounded ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},"Cancel"))}function S0({sessionId:e,headed:t=!1,watchOnOpen:r=!1,onHandBack:n=null,handBackLabel:o="Hand back"}){let{darkMode:a}=ut(),[i,s]=(0,gt.useReducer)(LX,w0),[l,u]=(0,gt.useState)("idle"),[c,d]=(0,gt.useState)(null),[p,f]=(0,gt.useState)(!1),[m,y]=(0,gt.useState)(null),b=(0,gt.useRef)(null),g=(0,gt.useRef)(!1),h=(0,gt.useRef)(0),v=(0,gt.useRef)(!1),x=(0,gt.useRef)(null),S=(0,gt.useRef)(null),k=(0,gt.useRef)({pending:null,decoding:!1}),w=(0,gt.useRef)({message:null,scheduled:!1}),_=(0,gt.useRef)(null),A=(0,gt.useRef)(null),C=(0,gt.useRef)(0),N=i.control.mine,L=(0,gt.useRef)(null),Q=(0,gt.useRef)(i);Q.current=i,(0,gt.useEffect)(()=>{if(N){L.current=i.control.since||Date.now();return}if(L.current===null)return;let F=L.current;L.current=null,n?.(FX({by:null,takenAt:F,releasedAt:Date.now(),page:Q.current.page}))},[N]);let B=(0,gt.useCallback)(F=>{let me=b.current;F&&me?.readyState===WebSocket.OPEN&&me.send(JSON.stringify(F))},[]),K=(0,gt.useCallback)(F=>{let me=k.current;if(me.pending=F,me.decoding)return;let et=()=>{let rt=me.pending;if(me.pending=null,me.decoding=!!rt,!rt)return;let ge=new Image;ge.onload=()=>{let ue=x.current;ue&&((ue.width!==ge.naturalWidth||ue.height!==ge.naturalHeight)&&(ue.width=ge.naturalWidth,ue.height=ge.naturalHeight),ue.getContext("2d")?.drawImage(ge,0,0)),et()},ge.onerror=et,ge.src=`data:image/jpeg;base64,${rt.data}`};et()},[]),T=(0,gt.useCallback)(()=>{h.current+=1;let F=b.current;if(!F){u("idle");return}v.current&&F.readyState===WebSocket.OPEN&&F.send(JSON.stringify({type:"hand_back"})),g.current=!0,F.close(1e3)},[]);(0,gt.useEffect)(()=>T,[T]);let O=async()=>{h.current+=1;let F=h.current;d(null),u("connecting");try{let{ticket:me,url:et}=await YX(e,"view");if(h.current!==F)return;let rt=new WebSocket(et);b.current=rt,g.current=!1,rt.onopen=()=>rt.send(JSON.stringify({type:"auth",ticket:me})),rt.onmessage=ge=>{let ue;try{ue=JSON.parse(ge.data)}catch{return}ue.type==="ready"&&u("open"),ue.type==="frame"&&K(ue),(ue.type==="file_upload"&&ue.status!=="progress"||ue.type==="file_chooser"&&!ue.chooser)&&(C.current+=1,y(null)),s(ue)},rt.onclose=ge=>{b.current===rt&&(b.current=null,C.current+=1,y(null),u("idle"),s({type:"reset"}),d(qX(ge.code,{requested:g.current})))}}catch(me){if(h.current!==F)return;u("idle"),d(me.message)}},I=(0,gt.useRef)(!1);(0,gt.useEffect)(()=>{!r||I.current||(I.current=!0,O())},[r]);let P=async()=>{s({type:"clear_error"}),f(!0);try{let{ticket:F}=await YX(e,"control");B({type:"take_control",ticket:F})}catch(F){d(F.message)}finally{f(!1)}},j=()=>{B({type:"hand_back"}),x.current?.blur()},M=async F=>{let me=i.fileChooser,et=DX(F,me);if(et.error){d(et.error);return}let rt=b.current;if(!rt||rt.readyState!==WebSocket.OPEN)return;C.current+=1;let ge=C.current;d(null),s({type:"clear_error"}),B({type:"file_upload",chooser:me.id,files:et.files});let ue=0;y({sent:ue,total:et.total});try{for(let Fe of Array.from(F))for(let Je=0;JeQSe&&C.current===ge;)await RSe(50);if(C.current!==ge||rt.readyState!==WebSocket.OPEN)return;let ot=new Uint8Array(await Fe.slice(Je,Je+LI).arrayBuffer());B({type:"file_chunk",chooser:me.id,data:MX(ot)}),ue+=ot.length,y({sent:ue,total:et.total})}}catch(Fe){d(`Could not read the file: ${Fe.message}`),W()}},W=()=>{C.current+=1,y(null),i.fileChooser&&B({type:"file_cancel",chooser:i.fileChooser.id})},Y=N&&!!i.fileChooser,z=Y?{onDragOver:F=>{F.preventDefault(),F.dataTransfer.dropEffect="copy"},onDrop:F=>{F.preventDefault(),m||M(F.dataTransfer.files)}}:{};(0,gt.useEffect)(()=>{v.current=N,N?x.current?.focus():x.current?.blur()},[N]),(0,gt.useEffect)(()=>{let F=x.current;if(!F||!N)return;let me=et=>{et.preventDefault(),B(TX(et,F.getBoundingClientRect()))};return F.addEventListener("wheel",me,{passive:!1}),()=>F.removeEventListener("wheel",me)},[N,B,l]);let V=()=>x.current?.getBoundingClientRect(),q=F=>{F&&(_.current={x:F.x,y:F.y},B(F))},oe=N?{onMouseDown:F=>{F.preventDefault(),x.current?.focus(),q(f2("down",F,V())),window.addEventListener("mouseup",me=>q(NX(me,V(),_.current)),{once:!0})},onMouseMove:F=>{let me=w.current;me.message=f2("move",F,V()),!me.scheduled&&(me.scheduled=!0,requestAnimationFrame(()=>{me.scheduled=!1,q(me.message),me.message=null}))},onContextMenu:F=>F.preventDefault(),onKeyDown:F=>{if(PX(F,A.current)){F.preventDefault(),A.current=null,S.current?.focus();return}if(A.current=F.key==="Escape"&&!F.repeat?F.timeStamp:null,XX(F))return;let me=$I("down",F);me&&(F.preventDefault(),B(me))},onKeyUp:F=>{if(XX(F))return;let me=$I("up",F);me&&(F.preventDefault(),B(me))},onPaste:F=>{F.preventDefault(),B(OX(F.clipboardData?.getData("text/plain")))}}:{},Me=a?"text-gray-400":"text-gray-500",fe=a?"text-white":"text-gray-900",le=`px-3 py-1 text-sm rounded disabled:opacity-50 ${a?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,R="px-3 py-1 text-sm rounded text-white bg-blue-600 hover:bg-blue-700 disabled:opacity-50",te=zX(i),He=BX(i),_e=UX(i),D=WX(i,{taking:p}),G=HX(i.page),E=$X(i),$=l==="open",{frameSize:ee}=i;return gt.default.createElement("div",{className:"space-y-2"},gt.default.createElement("div",{className:"flex flex-wrap items-center gap-2"},l==="idle"?gt.default.createElement("button",{type:"button",onClick:O,className:le},"Watch live"):gt.default.createElement("button",{type:"button",onClick:T,className:le},"Stop watching"),$&&(N?gt.default.createElement("button",{ref:S,type:"button",onClick:j,className:R},o):gt.default.createElement("button",{ref:S,type:"button",onClick:P,disabled:D.disabled,className:R},D.label)),_e&>.default.createElement("span",{className:`text-xs font-medium ${fe}`},_e),l==="connecting"&>.default.createElement("span",{className:`text-xs ${Me}`},"Connecting\u2026")),c&>.default.createElement("p",{className:`text-xs ${Me}`,role:"status"},c),i.error&>.default.createElement("p",{className:`text-xs ${a?"text-red-400":"text-red-600"}`,role:"alert"},i.error),He&>.default.createElement("p",{role:"alert","data-testid":"live-view-person-request",className:`p-2 rounded text-xs border ${a?"bg-blue-900/20 border-blue-800 text-blue-200":"bg-blue-50 border-blue-200 text-blue-800"}`},He,$?" Take over to help, then hand back.":" Watch live, then take over to help."),te&>.default.createElement("p",{role:"status",className:`p-2 rounded text-xs border ${a?"bg-amber-900/20 border-amber-800 text-amber-300":"bg-amber-50 border-amber-200 text-amber-800"}`},te),l!=="idle"&>.default.createElement("div",{className:"space-y-1"},G&>.default.createElement("p",{className:`text-xs font-mono truncate ${Me}`,title:G},G),E&>.default.createElement("p",{className:`text-xs ${Me}`,role:"status"},E),gt.default.createElement("div",{className:"relative","data-testid":"live-view-frame",...z},gt.default.createElement("canvas",{ref:x,tabIndex:N?0:-1,role:N?"application":"img","aria-label":N?"The sandbox's browser: your mouse and keys go to it. Press Escape twice to leave it.":"Live view of the sandbox's browser",className:`block w-full rounded border bg-black ${N?"cursor-default outline-none focus:ring-2 focus:ring-blue-500":""} ${a?"border-gray-700":"border-gray-200"}`,style:{aspectRatio:ee?`${ee.width} / ${ee.height}`:"16 / 10"},...oe}),Y&>.default.createElement(eke,{chooser:i.fileChooser,upload:m,onFiles:F=>{M(F)},onCancel:W})),N&>.default.createElement("p",{className:`text-xs ${Me}`},"Your mouse and keys go to the browser, and the agent waits until you hand back. Press Escape twice to move focus out of the view. That, or clicking outside it, only stops your keys reaching the browser: the agent keeps waiting until you press Hand back or Stop watching.")),t&>.default.createElement("p",{className:`text-xs ${Me}`},"This browser also has a window open on this machine. Clicking or typing in that window changes the page too, but the agent does not wait for it: take over here first."))}var tke={settings:"Started from Settings",boot_fix:"Fixing a failed boot",evaluation_fix:"Implementing an evaluation fix",chat:"Chat"};function rke({turn:e,sandboxId:t,darkMode:r,muted:n,strong:o}){let a=(0,Ye.useMemo)(()=>o2(e.events),[e.events]),[i,s]=(0,Ye.useState)(void 0),l=fs(e.status),u=async()=>{if(i!==void 0){s(void 0);return}let c=await fetch(`/api/sandboxes/${encodeURIComponent(t)}/code_sessions/${e.id}?after=1000000000`),d=await c.json().catch(()=>({}));s(c.ok?d.code_session?.diff??null:null)};return Ye.default.createElement("li",{className:`rounded border p-3 space-y-2 ${r?"border-gray-700":"border-gray-200"}`,"data-testid":"code-interaction-turn"},Ye.default.createElement("div",{className:"flex flex-wrap items-center gap-2"},Ye.default.createElement(Ks,{tone:l.tone},l.label),Ye.default.createElement("span",{className:`text-xs ${n}`},gX(e))),e.context_note&&Ye.default.createElement("p",{className:`text-xs italic ${n}`,title:"Sent to Claude Code ahead of the message"},"Dashboard note: ",e.context_note),Ye.default.createElement("p",{className:`text-sm whitespace-pre-wrap break-words font-medium ${o}`},e.prompt),Ye.default.createElement("div",{className:"space-y-1"},a.length===0&&Ye.default.createElement("p",{className:`text-xs ${n}`},qs(e)?"Waiting for Claude Code\u2026":"No transcript was recorded."),a.map(c=>Ye.default.createElement(DI,{key:c.key,row:c,darkMode:r,muted:n,strong:o}))),e.error_message&&Ye.default.createElement("p",{className:`text-xs ${r?"text-red-400":"text-red-600"}`},e.error_message),!qs(e)&&Ye.default.createElement("div",{className:"space-y-1"},Ye.default.createElement("button",{type:"button",onClick:u,className:`text-xs underline ${n}`},i===void 0?"Show the checkout\u2019s diff after this turn":"Hide the diff"),i!==void 0&&Ye.default.createElement(jI,{diff:i,pending:!1,muted:n,darkMode:r,linkButton:"underline"})))}function zI({rootId:e,onBack:t=null}){let{darkMode:r}=ut(),[n,o]=(0,Ye.useState)(null),[a,i]=(0,Ye.useState)(null),[s,l]=(0,Ye.useState)(""),[u,c]=(0,Ye.useState)(!1),[d,p]=(0,Ye.useState)(null),[f,m]=(0,Ye.useState)(oke),y=(0,Ye.useRef)(null);y.current=n;let b=(0,Ye.useRef)(null),g=(0,Ye.useRef)(null),h=(0,Ye.useRef)(null),v=ike(g,!!n),x=(0,Ye.useRef)(null),[S,k]=(0,Ye.useState)(nke),[w,_]=(0,Ye.useState)(!1),A=f&&!!v,C=me=>{k(me),ZX(me)},N=(0,Ye.useRef)(null),L=(0,Ye.useRef)(S);L.current=S;let Q=me=>{me.button!==0||!x.current||(me.preventDefault(),me.currentTarget.setPointerCapture?.(me.pointerId),N.current=x.current.getBoundingClientRect(),_(!0))},B=me=>{if(!N.current)return;let et=xX(me.clientX,N.current);L.current=et,k(et)},K=me=>{N.current&&(me.currentTarget.releasePointerCapture?.(me.pointerId),N.current=null,_(!1),ZX(L.current))},T=me=>{let et=bX(S,me.key);et!==null&&(me.preventDefault(),C(et))},O=me=>{m(et=>{let rt=typeof me=="function"?me(et):me;return ake(rt),rt})},I=(0,Ye.useCallback)(async()=>{let me=pX(y.current?.turns),et=await fetch(`/api/interactions/code-${e}${me?`?${me}`:""}`),rt=await et.json().catch(()=>({}));if(!et.ok){i(at(rt,`Could not load the conversation (HTTP ${et.status}).`));return}i(null),o(ge=>fX(ge,rt.interaction))},[e]);(0,Ye.useEffect)(()=>{o(null),y.current=null,I()},[I]);let P=mX(n);(0,Ye.useEffect)(()=>{if(!P)return;let me=setInterval(()=>{I()},uX);return()=>clearInterval(me)},[P,I]);let j=n?.turns?.length||0,M=n?.turns?.reduce((me,et)=>me+(et.events?.length||0),0)||0,W=(0,Ye.useRef)(!0);(0,Ye.useEffect)(()=>{let me=h.current;me&&W.current&&(me.scrollTop=me.scrollHeight)},[j,M,v]);let Y=()=>{let me=h.current;me&&(W.current=me.scrollHeight-me.scrollTop-me.clientHeight<48)},z=n?.sandbox_session_id,V=n?.turns?.[n.turns.length-1],q=hX(n),oe=n?.browser?.status==="running",Me=async me=>{me?.preventDefault();let et=s.trim();if(!(!et||!z)){c(!0),i(null);try{let rt=await fetch(`/api/sandboxes/${encodeURIComponent(z)}/code_sessions/${e}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:et,...d?{handoff:d}:{}})}),ge=await rt.json().catch(()=>({}));if(!rt.ok)throw new Error(at(ge,`The message was not sent (HTTP ${rt.status}).`));l(""),p(null),await I()}catch(rt){i(rt.message)}finally{c(!1)}}},fe=async()=>{let me=(n?.turns||[]).filter(qs);for(let et of me)await fetch(`/api/sandboxes/${encodeURIComponent(z)}/code_sessions/${et.id}/cancel`,{method:"POST"});await I()},le=me=>{p(me),l(et=>et||"I've handed the browser back. "),b.current?.focus()},R=r?"text-gray-400":"text-gray-500",te=r?"text-white":"text-gray-900",He=`rounded-lg border p-4 ${r?"bg-gray-900 border-gray-700":"bg-white border-gray-200"}`,_e=`px-3 py-1 text-sm rounded disabled:opacity-50 ${r?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,D="px-3 py-1 text-sm rounded text-white bg-red-600 hover:bg-red-700 disabled:opacity-50",G=`p-2 rounded text-sm border ${r?"bg-blue-900/20 border-blue-800 text-blue-200":"bg-blue-50 border-blue-200 text-blue-800"}`;if(!n)return Ye.default.createElement("div",{className:He,"data-testid":"code-interaction"},a?Ye.default.createElement("p",{className:`text-sm ${r?"text-red-400":"text-red-600"}`},a):Ye.default.createElement("p",{className:`text-sm ${R}`},"Loading\u2026"));let E=fs(n.status),$=`flex items-center justify-between gap-2 px-4 py-2 border-b ${r?"border-gray-700":"border-gray-200"}`,ee=`rounded-lg border flex flex-col min-h-0 ${r?"bg-gray-900 border-gray-700":"bg-white border-gray-200"}`,F=`px-2 py-0.5 text-xs rounded ${r?"text-gray-300 hover:bg-gray-700":"text-gray-600 hover:bg-gray-100"}`;return Ye.default.createElement("div",{ref:g,className:"flex flex-col gap-3",style:v?{height:v}:void 0,"data-testid":"code-interaction"},Ye.default.createElement("div",{className:"flex flex-wrap items-start justify-between gap-3 shrink-0"},Ye.default.createElement("div",{className:"space-y-1"},t&&Ye.default.createElement("button",{type:"button",onClick:t,className:`text-xs ${R}`},"\u2190 Interactions"),Ye.default.createElement("h2",{className:`text-xl font-bold ${te}`},n.display_name),Ye.default.createElement("div",{className:"flex flex-wrap items-center gap-2"},Ye.default.createElement(Ks,{tone:E.tone},E.label),Ye.default.createElement("span",{className:`text-xs ${R}`},tke[n.origin]||n.origin," \xB7 ",u2(n)),n.project&&Ye.default.createElement("a",{href:Re(`/projects/${n.project.id}`),onClick:me=>{me.preventDefault(),lt(`/projects/${n.project.id}`)},className:"text-xs underline"},n.project.name))),Ye.default.createElement("div",{className:"flex items-center gap-2"},P&&Ye.default.createElement("button",{type:"button",onClick:fe,className:_e},"Stop"),Ye.default.createElement("button",{type:"button",onClick:()=>O(me=>!me),className:_e,"aria-pressed":f,"aria-controls":`code-interaction-${e}-browser`},f?"Hide browser":"Show browser"))),q&&!f&&Ye.default.createElement("p",{role:"alert",className:`${G} shrink-0`},"Claude Code needs you: ",q.reason," ",Ye.default.createElement("button",{type:"button",onClick:()=>O(!0),className:"underline"},"Show the browser")),Ye.default.createElement("div",{ref:x,className:`flex-1 min-h-0 flex flex-col gap-4 ${A?"lg:flex-row lg:gap-0":""} ${w?"select-none cursor-col-resize":""}`},Ye.default.createElement("section",{className:`${ee} lg:h-full min-w-0`,style:A?{flex:`0 0 ${S}%`}:void 0,"aria-label":"Conversation",id:`code-interaction-${e}-conversation`},Ye.default.createElement("div",{className:$},Ye.default.createElement("span",{className:`text-sm font-medium ${te}`},"Conversation"),!f&&Ye.default.createElement("button",{type:"button",onClick:()=>O(!0),className:F},"Show browser \u203A")),Ye.default.createElement("ol",{ref:h,onScroll:Y,className:"space-y-3 p-4 flex-1 min-h-0 overflow-y-auto"},n.turns.map(me=>Ye.default.createElement(rke,{key:me.id,turn:me,sandboxId:z,darkMode:r,muted:R,strong:te}))),Ye.default.createElement("form",{onSubmit:Me,className:`space-y-2 p-4 border-t shrink-0 ${r?"border-gray-700":"border-gray-200"}`},Ye.default.createElement("label",{htmlFor:`code-interaction-${e}-message`,className:`text-xs font-medium ${te}`},"Message ",f0(n)),Ye.default.createElement("textarea",{id:`code-interaction-${e}-message`,ref:b,value:s,onChange:me=>l(me.target.value),rows:3,className:`w-full text-sm rounded border p-2 ${r?"bg-gray-800 border-gray-600 text-white":"bg-white border-gray-300"}`,placeholder:V?.result?"Reply, or ask for the next change":"What should happen next?"}),Ye.default.createElement("div",{className:"flex flex-wrap items-center justify-between gap-2"},Ye.default.createElement("span",{className:`text-xs ${R}`,role:"status"},yX(n,{handoff:d})),Ye.default.createElement("button",{type:"submit",className:D,disabled:u||!s.trim()},u?"Sending\u2026":"Send")),a&&Ye.default.createElement("p",{className:`text-xs ${r?"text-red-400":"text-red-600"}`,role:"alert"},a))),A&&Ye.default.createElement("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize the conversation and the browser","aria-controls":`code-interaction-${e}-conversation`,"aria-valuenow":Math.round(S),"aria-valuemin":c2,"aria-valuemax":d2,tabIndex:0,onPointerDown:Q,onPointerMove:B,onPointerUp:K,onPointerCancel:K,onKeyDown:T,onDoubleClick:()=>C(tf),className:"group hidden lg:flex w-4 shrink-0 cursor-col-resize items-center justify-center touch-none focus:outline-none","data-testid":"code-interaction-separator"},Ye.default.createElement("span",{className:`h-12 w-1 rounded-full transition-colors ${w?"bg-red-500":r?"bg-gray-600 group-hover:bg-gray-400 group-focus-visible:bg-red-500":"bg-gray-300 group-hover:bg-gray-500 group-focus-visible:bg-red-500"}`})),f&&Ye.default.createElement("section",{id:`code-interaction-${e}-browser`,className:`${ee} lg:h-full min-w-0 flex-1`,"aria-label":"The sandbox\u2019s browser","data-testid":"code-interaction-browser"},Ye.default.createElement("div",{className:$},Ye.default.createElement("span",{className:`text-sm font-medium ${te}`},"The sandbox\u2019s browser"),Ye.default.createElement("button",{type:"button",onClick:()=>O(!1),className:F,"aria-label":"Hide the browser"},"Hide \xD7")),Ye.default.createElement("div",{className:"p-4 space-y-2 flex-1 min-h-0 overflow-y-auto"},q&&Ye.default.createElement("p",{role:"alert",className:G},f0(n)," needs you: ",q.reason),oe?Ye.default.createElement(S0,{sessionId:z,watchOnOpen:!0,onHandBack:le,handBackLabel:`Hand back to ${f0(n)}`}):Ye.default.createElement("p",{className:`text-xs ${R}`},"The browser is not running."," ",n.project?Ye.default.createElement("a",{href:Re(`/projects/${n.project.id}?tab=browser`),onClick:me=>{me.preventDefault(),lt(`/projects/${n.project.id}?tab=browser`)},className:"underline"},"Start it from the project"):"Start it from Settings \u2192 Integrations",", and Claude Code reaches it from its next turn.")))))}var JX="activeagents.codeInteraction.showBrowser",QX="activeagents.codeInteraction.split";function nke(){try{let e=window.localStorage.getItem(QX);return e===null?tf:p0(e)}catch{return tf}}function ZX(e){try{window.localStorage.setItem(QX,String(e))}catch{}}function oke(){let e=null;try{e=window.localStorage.getItem(JX)}catch{}return vX(window.location.search,e)}function ake(e){try{window.localStorage.setItem(JX,e?"1":"0")}catch{}let t=new URL(window.location.href);t.searchParams.set("browser",e?"1":"0"),window.history.replaceState(window.history.state,"",t)}function ike(e,t){let[r,n]=(0,Ye.useState)(null);return(0,Ye.useLayoutEffect)(()=>{let o=window.matchMedia("(min-width: 1024px)"),a=()=>{let i=e.current;if(!i||!o.matches){n(null);return}let s=i.getBoundingClientRect().top+window.scrollY;n(Math.max(420,Math.floor(window.innerHeight-s-24)))};return a(),window.addEventListener("resize",a),o.addEventListener("change",a),()=>{window.removeEventListener("resize",a),o.removeEventListener("change",a)}},[e,t]),r}var RX=Z(J());function ld({kind:e,id:t,title:r="Replay this session",testId:n="replay-link",style:o}){let a=dh(e,t);return a?RX.default.createElement("a",{href:Re(a),"data-testid":n,title:r,onClick:i=>{i.stopPropagation(),!(i.metaKey||i.ctrlKey||i.shiftKey||i.button!==0)&&(i.preventDefault(),lt(a))},style:{fontFamily:U,fontSize:11,color:"var(--color-info)",textDecoration:"none",whiteSpace:"nowrap",...o}},"replay ->"):null}var ske=e=>{let t=null;if((e?.generations||[]).forEach(a=>{let i=a.tokens||{},s=(i.input||0)+(i.output||0);s>0&&(!t||s>t.total)&&(t={input:i.input||0,output:i.output||0,cached:i.cached||0,thinking:i.thinking||0,model:a.model,total:s})}),!t)return null;let r=nd(e?.instructions),n=0;(e?.messages||[]).forEach(a=>{a.role==="tool"&&(n+=nd(a.content)+nd(a.tool_arguments))}),n=Math.min(n,t.input);let o=Math.max(t.input-r-n,0);return{used:t.total,limit:Yx(t.model),cached:t.cached,thinking:t.thinking,segments:[{key:"messages",label:"Messages",tokens:o},{key:"tool_results",label:"Tool results",tokens:n},{key:"instructions",label:"Instructions",tokens:r},{key:"output",label:"Generated output",tokens:t.output}]}},eZ=["#6366f1","#10b981","#f59e0b","#ec4899","#3b82f6","#8b5cf6","#14b8a6","#f97316"],lke=[{id:"recent",label:"Recent"},{id:"tokens",label:"Tokens"},{id:"messages",label:"Messages"}],uke=[{id:"conversation",label:"Conversation",hint:"Messages, tool calls and responses in order"},{id:"spans",label:"Spans",hint:"Each generation as a trace \u2014 waterfall, span details, timings"}],cke=3e4,ju=e=>e==null?"0":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString(),tZ=e=>{if(!e)return"";let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);return t<60?"just now":t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`};function dke({generation:e,darkMode:t,maxMs:r,expanded:n,onToggle:o}){let a=Jn(t),[i,s]=(0,xe.useState)(null),[l,u]=(0,xe.useState)(!1),c=e.trace_id,d=(e.duration_seconds||0)*1e3;(0,xe.useEffect)(()=>{if(!c)return;let m=!0;return fetch(`/api/traces/${encodeURIComponent(c)}`).then(y=>y.ok?y.json():Promise.reject(new Error("not found"))).then(({trace:y})=>m&&s(y)).catch(()=>m&&u(!0)),()=>{m=!1}},[c]);let p=!!i,f=(i?.spans||[]).length;return xe.default.createElement("div",{className:`rounded-lg px-2 py-1.5 -mx-2 transition-colors ${p?t?"hover:bg-white/5":"hover:bg-gray-100":""}`,style:n?{background:a.hoverBg}:void 0},xe.default.createElement("div",{className:p?"cursor-pointer":void 0,onClick:p?o:void 0,title:p?`${f} spans \u2014 click for the trace`:void 0},xe.default.createElement("div",{className:"flex flex-wrap items-center gap-3 text-xs font-mono",style:{color:a.textSecondary}},xe.default.createElement("span",{title:e.cache_hit?`${ju(e.tokens.cached)} cached prompt tokens`:"No prompt cache hit",style:{color:e.cache_hit?a.good:a.textMuted}},e.cache_hit?"\u26A1 cache hit":"\u25CF generated"),e.thinking&&xe.default.createElement("span",{className:"text-amber-500",title:`${ju(e.tokens.thinking)} thinking tokens`},"\u{1F9E0} ",ju(e.tokens.thinking)),xe.default.createElement("span",null,e.model||"unknown-model"),e.provider&&xe.default.createElement("span",null,e.provider),xe.default.createElement("span",{className:"text-blue-500"},"in:",ju(e.tokens.input)),xe.default.createElement("span",{className:"text-green-500"},"out:",ju(e.tokens.output)),e.finish_reason&&xe.default.createElement("span",null,e.finish_reason),e.duration_seconds!=null&&xe.default.createElement("span",null,Qn(d)),c&&xe.default.createElement("a",{href:Re(`/traces?trace=${c}`),title:`${c} \u2014 open in Traces`,style:{color:a.link},className:"hover:underline",onClick:m=>m.stopPropagation()},"trace:",c.slice(0,8)," \u2192"),l&&xe.default.createElement("span",{style:{color:a.textMuted}},"trace unavailable")),xe.default.createElement("div",{className:"flex items-center gap-2 mt-1"},c&&!l?xe.default.createElement(pI,{trace:i,darkMode:t}):d>0?xe.default.createElement("div",{className:"rounded flex-1",style:{height:"8px",background:a.trackBg}},xe.default.createElement("div",{className:"rounded",style:{height:"8px",width:`${Math.max(d/r*100,2)}%`,background:"#ef4444"}})):null,p&&xe.default.createElement(xe.default.Fragment,null,xe.default.createElement("span",{className:"font-mono flex-shrink-0",style:{fontSize:"10px",color:a.textMuted}},f," ",f===1?"span":"spans"),xe.default.createElement(Zp,{open:n,darkMode:t,size:12})))),n&&i&&xe.default.createElement("div",{className:"mt-2 rounded-lg border p-3",style:{background:a.cardBg,borderColor:a.cardBorder}},xe.default.createElement(e0,{trace:i,darkMode:t,compact:!0})))}function $u({agentId:e=null,embedded:t=!1}){let{darkMode:r}=ut(),[n,o]=(0,xe.useState)([]),[a,i]=(0,xe.useState)(!0),[s,l]=(0,xe.useState)(null),[u,c]=(0,xe.useState)(null),[d,p]=(0,xe.useState)({}),{timeWindow:f}=xl(),m=!t&&!e,y=()=>m?cX(Rn(),window.location.search):{view:"list",source:"all",project:null,codeId:null},[b,g]=(0,xe.useState)(y),[h,v]=(0,xe.useState)([]),{source:x,project:S}=b;(0,xe.useEffect)(()=>{if(!m)return;let z=()=>g(y());return window.addEventListener("popstate",z),window.addEventListener("dashboard:navigate",z),()=>{window.removeEventListener("popstate",z),window.removeEventListener("dashboard:navigate",z)}},[m]),(0,xe.useEffect)(()=>{m&&fetch("/api/projects").then(z=>z.ok?z.json():{projects:[]}).then(z=>v(z.projects||[])).catch(()=>{})},[m]);let k=z=>{id(z),g(y())},w=z=>k(l2({source:x,project:S,...z})),_=z=>k(ms(z));(0,xe.useEffect)(()=>{if(b.view!=="latest")return;let z=OI({source:x==="all"?"claude_code":x,project:S});fetch(`/api/interactions?${z}`).then(V=>V.json()).then(V=>{let q=dX(V.interactions),oe=q?ms(ef(q.id)):l2({source:x,project:S});window.history.replaceState({},"",Re(oe)),g(y())}).catch(()=>{})},[b.view,x,S]);let A=(0,xe.useCallback)(async()=>{try{let z=await fetch(`/api/interactions?${OI({minutes:f.minutes,agentId:e,source:x,project:S})}`);if(!z.ok)throw new Error(`Request failed (${z.status})`);let V=await z.json();o(V.interactions||[]),l(null)}catch(z){l(z.message)}finally{i(!1)}},[f.minutes,e,x,S]);(0,xe.useEffect)(()=>{A();let z=setInterval(A,cke);return()=>clearInterval(z)},[A]);let[C,N]=(0,xe.useState)("recent"),L=(0,xe.useMemo)(()=>{let z=[...new Set(n.map(V=>V.display_name).filter(Boolean))].sort();return Object.fromEntries(z.map((V,q)=>[V,eZ[q%eZ.length]]))},[n]),Q=(0,xe.useMemo)(()=>{let z=n.reduce((q,oe)=>q+(oe.tokens?.total||0),0),V=new Set(n.map(q=>q.display_name).filter(Boolean));return{interactions:n.length,tokens:z,agents:V.size,avgTokens:n.length?Math.round(z/n.length):0}},[n]),B=(0,xe.useMemo)(()=>{if(n.length===0)return[];let z=Date.now(),V=f.bucketSeconds*1e3,q=Math.max(1,Math.round(f.minutes*60/f.bucketSeconds)),oe=Object.keys(L);return Array.from({length:q},(Me,fe)=>{let le=z-(q-1-fe)*V,R=le-V,te=n.filter(He=>{let _e=new Date(He.last_activity_at).getTime();return _e>=R&&_e1440?new Date(le).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(le).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),...Object.fromEntries(oe.map(He=>[He,te.filter(_e=>_e.display_name===He).length]))}})},[n,L,f]),K=Math.max(0,Math.ceil(B.length/6)-1),T=(0,xe.useCallback)(z=>{let V=[...z];switch(C){case"tokens":return V.sort((q,oe)=>(oe.tokens?.total||0)-(q.tokens?.total||0));case"messages":return V.sort((q,oe)=>(oe.message_count||0)-(q.message_count||0));default:return V.sort((q,oe)=>String(oe.last_activity_at).localeCompare(String(q.last_activity_at)))}},[C]),O=(0,xe.useMemo)(()=>{let z=new Map;n.forEach(q=>{let oe=q.agent_name||q.agent?.name||"Unattributed",Me=q.action_name,fe=`${oe}#${Me||""}`;z.has(fe)||z.set(fe,{key:fe,title:Me?`${oe} ${Me.charAt(0).toUpperCase()}${Me.slice(1)} Agent Interactions`:`${oe} Interactions`,sessions:[],tokens:0,lastActivity:q.last_activity_at});let le=z.get(fe);le.sessions.push(q),le.tokens+=q.tokens?.total||0,q.last_activity_at>le.lastActivity&&(le.lastActivity=q.last_activity_at)});let V=[...z.values()].map(q=>({...q,sessions:T(q.sessions)}));return C==="tokens"?V.sort((q,oe)=>oe.tokens-q.tokens):C==="messages"?V.sort((q,oe)=>oe.sessions.length-q.sessions.length):V.sort((q,oe)=>String(oe.lastActivity).localeCompare(String(q.lastActivity)))},[n,C,T]),I=async z=>{if(m&&ef(z)){_(ef(z));return}if(u===z){c(null);return}if(c(z),!d[z])try{let V=await fetch(`/api/interactions/${z}`);if(V.ok){let q=await V.json();p(oe=>({...oe,[z]:q.interaction}))}}catch{}},[P,j]=(0,xe.useState)({}),[M,W]=ch(),Y=Jn(r);return m&&b.view==="conversation"?xe.default.createElement(zI,{rootId:b.codeId,onBack:()=>k(l2({source:x,project:S}))}):a?xe.default.createElement("div",{className:"flex items-center justify-center h-64"},xe.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):xe.default.createElement("div",{className:"space-y-6"},xe.default.createElement("div",{className:"flex items-start justify-between"},!t&&xe.default.createElement("div",null,xe.default.createElement("h1",{className:"text-2xl font-bold",style:{color:Y.textPrimary}},"Interactions"),xe.default.createElement("p",{className:"text-sm mt-1",style:{color:Y.textSecondary}},"Persisted conversation streams per agent \u2014 messages, generations and provenance")),xe.default.createElement("div",{className:"flex items-center gap-3"},xe.default.createElement("div",{className:"flex items-center rounded-lg p-1",style:{background:r?"rgba(255,255,255,0.06)":"#f3f4f6"}},xe.default.createElement("span",{className:"text-xs px-1",style:{color:Y.textMuted}},"Sort"),lke.map(z=>xe.default.createElement("button",{key:z.id,onClick:()=>N(z.id),className:"px-2 py-1 text-xs rounded transition-colors",style:C===z.id?{background:r?"#2a2a2a":"#ffffff",color:Y.textPrimary,boxShadow:r?"none":"0 1px 2px rgba(0,0,0,0.08)"}:{color:Y.textSecondary}},z.label))),xe.default.createElement(bl,null),m&&xe.default.createElement(n0,null))),m&&xe.default.createElement("div",{className:"flex flex-wrap items-center gap-3","data-testid":"interactions-filters"},xe.default.createElement("div",{className:"flex items-center rounded-lg p-1",role:"group","aria-label":"Source",style:{background:r?"rgba(255,255,255,0.06)":"#f3f4f6"}},NI.map(z=>xe.default.createElement("button",{key:z.id,type:"button",onClick:()=>w({source:z.id}),"aria-pressed":x===z.id,className:"px-2 py-1 text-xs rounded transition-colors",style:x===z.id?{background:r?"#2a2a2a":"#ffffff",color:Y.textPrimary}:{color:Y.textSecondary}},z.label))),h.length>0&&xe.default.createElement("label",{className:"flex items-center gap-1 text-xs",style:{color:Y.textSecondary}},"Project",xe.default.createElement("select",{value:S||"",onChange:z=>w({project:z.target.value?Number(z.target.value):null}),className:"text-xs rounded border px-1 py-0.5",style:{background:Y.cardBg,borderColor:Y.cardBorder,color:Y.textPrimary}},xe.default.createElement("option",{value:""},"All projects"),h.map(z=>xe.default.createElement("option",{key:z.id,value:z.id},z.name)))),xe.default.createElement("button",{type:"button",onClick:()=>k(`/interactions/latest${S?`?project=${S}`:""}`),className:"px-2 py-1 text-xs rounded border",style:{borderColor:Y.cardBorder,color:Y.textPrimary},title:"Open the most recent Claude Code or Codex conversation"},"Latest conversation")),xe.default.createElement(xI,{agentId:e}),s&&xe.default.createElement("div",{className:"p-3 rounded-lg text-sm",style:{background:r?"rgba(239,68,68,0.1)":"#fef2f2",color:"#ef4444"}},"Failed to load interactions: ",s),n.length>0&&xe.default.createElement("div",{className:"rounded-xl border p-4",style:{backgroundColor:Y.cardBg,borderColor:Y.cardBorder}},xe.default.createElement("div",{className:"flex items-center justify-between mb-3"},xe.default.createElement("h3",{className:"text-sm font-semibold",style:{color:Y.textPrimary}},"Interactions over time"),xe.default.createElement("div",{className:"flex items-center gap-3 flex-wrap justify-end"},Object.entries(L).map(([z,V])=>xe.default.createElement("span",{key:z,className:"flex items-center gap-1.5 text-xs",style:{color:Y.textSecondary}},xe.default.createElement("span",{className:"inline-block w-2 h-2 rounded-full",style:{background:V}}),z)))),xe.default.createElement("div",{className:"h-32"},xe.default.createElement(Cc,{width:"100%",height:"100%"},xe.default.createElement(rd,{data:B},xe.default.createElement("defs",null,Object.entries(L).map(([z,V])=>xe.default.createElement("linearGradient",{key:z,id:`ix-gradient-${z.replace(/\W/g,"-")}`,x1:"0",y1:"0",x2:"0",y2:"1"},xe.default.createElement("stop",{offset:"5%",stopColor:V,stopOpacity:.6}),xe.default.createElement("stop",{offset:"95%",stopColor:V,stopOpacity:.05})))),xe.default.createElement(Cu,{strokeDasharray:"3 3",stroke:r?"#2a2a2a":"#e5e7eb"}),xe.default.createElement(Tu,{dataKey:"time",stroke:r?"rgba(255,255,255,0.4)":"#9ca3af",tick:{fontSize:10,fill:r?"rgba(255,255,255,0.5)":"#6b7280"},tickLine:!1,interval:K}),xe.default.createElement(Pu,{stroke:r?"rgba(255,255,255,0.4)":"#9ca3af",tick:{fontSize:10,fill:r?"rgba(255,255,255,0.5)":"#6b7280"},tickLine:!1,axisLine:!1,allowDecimals:!1}),xe.default.createElement(Wc,{contentStyle:{background:r?"#1f1f1f":"white",border:`1px solid ${Y.cardBorder}`,borderRadius:"8px"},labelStyle:{color:Y.textPrimary,fontWeight:"600",marginBottom:"4px"}}),Object.entries(L).map(([z,V])=>xe.default.createElement(Eu,{key:z,type:"monotone",dataKey:z,stackId:"1",stroke:V,strokeWidth:2,fill:`url(#ix-gradient-${z.replace(/\W/g,"-")})`}))))),xe.default.createElement("div",{className:"flex items-center gap-8 pt-3 mt-3 border-t",style:{borderColor:Y.cardBorder}},[{label:"Interactions",value:Q.interactions.toLocaleString()},{label:"Agents",value:Q.agents.toLocaleString()},{label:"Total tokens",value:ju(Q.tokens)},{label:"Avg / interaction",value:ju(Q.avgTokens)}].map(z=>xe.default.createElement("div",{key:z.label},xe.default.createElement("div",{className:"text-lg font-bold",style:{color:Y.textPrimary}},z.value),xe.default.createElement("div",{className:"text-xs",style:{color:Y.textSecondary}},z.label))))),n.length===0?xe.default.createElement("div",{className:"text-center py-12"},xe.default.createElement("div",{className:"text-lg",style:{color:Y.textMuted}},"No interactions in the last ",f.label),xe.default.createElement("p",{className:"text-sm mt-2",style:{color:Y.textSecondary}},"Widen the time window, or run an agent to start recording its conversation stream")):xe.default.createElement("div",{className:"space-y-8"},O.map(z=>xe.default.createElement("div",{key:z.key,className:"space-y-4"},xe.default.createElement("div",{className:"flex items-baseline justify-between"},xe.default.createElement("h2",{className:"text-sm font-semibold",style:{color:Y.textPrimary}},z.title),xe.default.createElement("span",{className:"text-xs",style:{color:Y.textMuted}},z.sessions.length," ",z.sessions.length===1?"interaction":"interactions",z.tokens>0&&` \xB7 ${ju(z.tokens)} tokens`)),z.sessions.map(V=>{let q=d[V.id],oe=u===V.id,Me=P[V.id]||"conversation",fe=V.tokens?.total||0,le=(V.tokens?.input||0)+(V.tokens?.output||0)||fe;return xe.default.createElement(KC,{key:V.id,darkMode:r,className:"shadow-sm"},xe.default.createElement("div",{className:`flex items-center justify-between flex-wrap gap-y-2 p-4 cursor-pointer transition-colors ${r?"hover:bg-white/5":"hover:bg-gray-50"}`,onClick:()=>I(V.id),style:oe?{background:Y.hoverBg}:void 0},xe.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},TI(V)?xe.default.createElement("span",{className:"px-2 py-1 text-xs font-medium rounded flex-shrink-0",style:{background:r?"rgba(249,115,22,0.15)":"#fff7ed",color:r?"#fdba74":"#c2410c"},title:`${V.turn_count} ${V.turn_count===1?"turn":"turns"}${V.active?", one running now":""}`},V.runner==="codex"?"CODEX":"CLAUDE CODE",V.active?" \xB7 LIVE":""):V.source==="telemetry"?xe.default.createElement("span",{className:"px-2 py-1 text-xs font-medium rounded flex-shrink-0",style:{background:r?"rgba(168,85,247,0.15)":"#faf5ff",color:r?"#d8b4fe":"#7e22ce"},title:"Reported by an app running this agent outside the platform"},"REPORTED"):xe.default.createElement("span",{className:"px-2 py-1 text-xs font-medium bg-blue-100 text-blue-700 rounded flex-shrink-0"},"SESSION"),xe.default.createElement("span",{className:"font-mono text-sm truncate",style:{color:Y.textPrimary}},V.display_name),V.agent&&xe.default.createElement("span",{className:"text-sm truncate",style:{color:Y.textSecondary}},V.agent.name),V.service_name&&xe.default.createElement("span",{className:"text-sm truncate font-mono",style:{color:Y.textMuted}},V.service_name)),xe.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0"},xe.default.createElement(ad,{darkMode:r,cells:[{key:"activity",width:Na.count,content:V.message_count>0?`${V.message_count} messages`:`${V.tool_count||0} tool ${V.tool_count===1?"call":"calls"}`},{key:"tokens",width:Na.tokens,title:"Tokens across this interaction",empty:"No token counts recorded for this interaction",content:fe>0&&`${ju(fe)} tokens`},{key:"context",width:Na.context,empty:"Context: this interaction recorded no token counts",content:fe>0&&xe.default.createElement(od,{compact:!0,darkMode:r,label:"Context",used:le,limit:Yx(V.model),segments:[{key:"messages",label:"Context",tokens:le}]})},{key:"age",width:Na.age,title:V.last_activity_at||void 0,empty:"No activity recorded",content:tZ(V.last_activity_at)&&xe.default.createElement("span",{style:{color:Y.textMuted}},tZ(V.last_activity_at))}]}),V.source!=="telemetry"&&xe.default.createElement(ld,{kind:"context",id:V.id,title:"Replay this conversation"}),xe.default.createElement(Zp,{open:oe,darkMode:r}))),!oe&&xe.default.createElement(uh,{darkMode:r,onClick:()=>I(V.id),hold:!0,style:{padding:"0 16px 12px"},lines:[{label:"input",text:V.preview?.input,color:Ln("user",r).color},{label:"output",text:V.preview?.output,color:Ln("assistant",r).color}]}),oe&&xe.default.createElement("div",{className:"border-t p-4 space-y-3",style:{borderColor:Y.cardBorder,background:Y.innerBg}},q?xe.default.createElement(xe.default.Fragment,null,xe.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2"},xe.default.createElement(Rx,{options:uke,value:Me,onChange:R=>j(te=>({...te,[V.id]:R})),darkMode:r}),xe.default.createElement("span",{className:"text-xs",style:{color:Y.textSecondary}},q.messages.length," ",q.messages.length===1?"message":"messages",q.generations.length>0&&` \xB7 ${q.generations.length} ${q.generations.length===1?"generation":"generations"}`)),Me==="conversation"&&xe.default.createElement(xe.default.Fragment,null,q.messages.length===0&&xe.default.createElement("div",{className:"text-sm",style:{color:Y.textMuted}},"No conversation content captured for this run. Enable content capture in the reporting app to record prompts, tool arguments, and responses."),xe.default.createElement(ps,{darkMode:r,messages:q.instructions?[{id:`ctx-${V.id}-system`,role:"system",content:q.instructions,created_at:V.created_at},...q.messages]:q.messages}),(()=>{let R=ske(q);return R?xe.default.createElement("div",{className:"pt-3 mt-2 border-t",style:{borderColor:Y.cardBorder}},xe.default.createElement(od,{...R,label:"Context pressure",estimated:!0,darkMode:r})):null})()),Me==="spans"&&(q.generations.length===0?xe.default.createElement("div",{className:"text-sm",style:{color:Y.textMuted}},"No generations recorded for this interaction \u2014 nothing to trace."):xe.default.createElement("div",{className:"space-y-2"},q.generations.map(R=>xe.default.createElement(dke,{key:R.id,generation:R,darkMode:r,maxMs:Math.max(...q.generations.map(te=>(te.duration_seconds||0)*1e3),1),expanded:M(`${V.id}:${R.id}`),onToggle:()=>W(`${V.id}:${R.id}`)}))))):xe.default.createElement("div",{className:"flex justify-center py-6"},xe.default.createElement("div",{className:"animate-spin rounded-full h-6 w-6 border-b-2 border-red-500"}))))})))))}var Ne=Z(J());function nZ(e,t,r=null){let n=d=>Object.values(t[d]||{})[0]??null,o=(d,p)=>{if(!p)return null;let f=p.scenario||p;return{key:d,prompt:f.prompt,group:f.group??null,notes:f.notes??null,expectations:f.expectations||{},position:f.position}},a=(d,p)=>{let f=o(d.key,p),m=["prompt","group","notes","expectations"].some(y=>JSON.stringify(d[y]??null)!==JSON.stringify(f[y]??null));return{...d,...f,catalogChanged:m}},i=(d,p)=>({...o(d,p),id:null,enabled:!1,orphan:!0}),s=(d,p,f,m)=>{if(!r)return m();let y=r.get(d);if(y&&y.scenario===p&&y.first===f)return y.row;let b=m();return r.set(d,{scenario:p,first:f,row:b}),b},l=new Set(e.map(d=>d.key)),u=e.map(d=>{let p=n(d.key);return p?s(d.key,d,p,()=>a(d,p)):d}),c=Object.keys(t).filter(d=>!l.has(d)).map(d=>{let p=n(d);return s(d,null,p,()=>i(d,p))});return[...u,...c]}var rZ=e=>/^[1-9]\d*$/.test(e||"")?e:null;function BI(e){let t=new URLSearchParams(e),r=rZ(t.get("evaluation"));return r?{evaluationId:r,runId:rZ(t.get("run"))}:null}async function oZ(e,t,r){if(!t||e.some(a=>String(a.id)===String(t)))return e;let n=await r(`/api/evaluations/${encodeURIComponent(t)}`);if(!n.ok)throw new Error(`Requested evaluation is unavailable (HTTP ${n.status})`);let o=await n.json();if(!o.evaluation)throw new Error("Requested evaluation is unavailable");return[o.evaluation,...e]}var be=Z(J());async function ud(e,{navigator:t=globalThis.navigator,document:r=globalThis.document}={}){let n=String(e??"");if(t?.clipboard?.writeText)try{return await t.clipboard.writeText(n),!0}catch{}if(!r?.body||typeof r.execCommand!="function")return!1;let o=r.createElement("textarea");o.value=n,o.setAttribute("readonly",""),o.style.position="fixed",o.style.top="0",o.style.left="0",o.style.opacity="0",r.body.appendChild(o);try{return o.select(),typeof o.setSelectionRange=="function"&&o.setSelectionRange(0,n.length),r.execCommand("copy")===!0}catch{return!1}finally{r.body.removeChild(o)}}function gh(e){if(!e)return null;let t=`/api${e}`;return{report:t,markdown:`${t}.md`,html:`${t}?download=1`,json:`${t}.json?download=1`,md:`${t}.md?download=1`}}function m2(e,{part:t=null,model:r=null,scenario:n=null}={}){if(!e)return null;let o=new URLSearchParams;t&&o.set("part",t),r&&r!=="all"&&o.set("model",r),n&&o.set("scenario",n);let a=o.toString();return a?`${e}?${a}`:e}async function aZ(e,{fetch:t=globalThis.fetch,navigator:r=globalThis.navigator,document:n=globalThis.document,ClipboardItem:o=globalThis.ClipboardItem,Blob:a=globalThis.Blob}={}){if(!e||typeof t!="function")return!1;let i=()=>t(e,{headers:{Accept:"text/markdown"},credentials:"same-origin"}).then(s=>{if(!s.ok)throw new Error(`HTTP ${s.status}`);return s.text()});if(o&&a&&r?.clipboard?.write)try{let s=i();return await r.clipboard.write([new o({"text/plain":s.then(l=>new a([l],{type:"text/plain"}))})]),!0}catch{}try{return await ud(await i(),{navigator:r,document:n})}catch{return!1}}var pke=["trace_error_rate","trace_latency"],qI=[{id:"rules",label:"Rule-based"},{id:"telemetry",label:"Telemetry"},{id:"judge",label:"LLM judge"}],St=(e,t)=>`${e} ${t}${e===1?"":"s"}`,k0=(e,t)=>{let r=String(e||"");return r.length>t?`${r.slice(0,t-1)}\u2026`:r},iZ=e=>String(e||"").replace(/_/g," ").replace(/^\w/,t=>t.toUpperCase()),WI=e=>`${Math.round(Number(Math.abs(Number(e)*100).toFixed(9)))}%`,fke=(e,t)=>t>0?`${e}/${t} \xB7 ${WI(e/t)}`:"\u2014",sZ=e=>{let t=Number(e)||0;return t>=1e3?`${(t/1e3).toFixed(t%1e3===0?0:1)}s`:`${Math.round(t)}ms`},kl=e=>e?.type==="llm_judge"?"judge":pke.includes(e?.type)?"telemetry":"rules",g2=e=>{let t=e?.config||{};switch(e?.type){case"response_present":return"Response present";case"min_length":return"Response length";case"max_latency_ms":return"Latency";case"token_budget":return"Output tokens";case"contains":return"Must contain";case"not_contains":return"Must not contain";case"trace_error_rate":return"Trace error rate";case"trace_latency":return"Trace latency";case"llm_judge":return t.description||iZ(e.key);default:return iZ(e?.key)}},vh=e=>{let t=e?.config||{};switch(e?.type){case"response_present":return"non-empty output";case"min_length":return`\u2265 ${t.chars??40} chars`;case"max_latency_ms":return`\u2264 ${sZ(t.ms??5e3)}`;case"token_budget":return`\u2264 ${t.output_tokens??1e3} output tokens`;case"contains":return`matches /${t.pattern||""}/i`;case"not_contains":return`no /${t.pattern||""}/i`;case"trace_error_rate":return`error rate \u2264 ${t.max_error_rate??5}% \xB7 ${t.window_hours??168}h`;case"trace_latency":return`avg \u2264 ${sZ(t.max_avg_ms??5e3)} \xB7 ${t.window_hours??168}h`;case"llm_judge":return t.prompt?`judge: ${k0(t.prompt,72)}`:"judge scores 0.0\u20131.0";default:return""}},_0=(e,t)=>(e?.criteria||[]).find(r=>r.key===t)||{key:t,type:t,config:{}},xh=(e,t=null)=>{let r=t?.scores||{};if(Object.prototype.hasOwnProperty.call(r,"_judge_label"))return r._judge_label||"rules";let n=r._verdict?.judge;return n&&n!=="pass rate"?n:e?.judge_kind==="judge_defined"?`judge-defined KPIs${e.judge_model?` \xB7 ${e.judge_model}`:""}`:e?.judge_kind==="llm"?e.judge_model||"LLM judge":"rules"},KI=(e,t=null)=>t?.models?.length||Object.keys(t?.scores?._models||t?.scores?._cohorts||{}).length||(e?.compare_models||[]).length||1,nf=(e,t=null)=>{let r=KI(e,t);if(e?.scenario_suite){let a=t?.samples_evaluated&&r?Math.round(t.samples_evaluated/r):e.scenario_count||0;return`${St(a,"scenario")} \xD7 ${St(r,"model")}`}let n=(e?.criteria||[]).length,o=n===1?"criterion":"criteria";return r>1?`${n} ${o} \xD7 ${St(r,"model")}`:`${n} ${o} \xB7 ${St(e?.sample_size??0,"sample")}`},VI=e=>e!=null&&typeof e=="object"&&!Array.isArray(e)&&!("score"in e)&&!("skipped"in e),bh=e=>Object.entries(e?.scores||{}).filter(([t,r])=>!t.startsWith("_")&&r&&typeof r=="object");var C0=e=>{let t=e?.scores?._cohorts||e?.scores?._models;if(t&&typeof t=="object"&&Object.keys(t).length)return Object.keys(t);if(Array.isArray(e?.models)&&e.models.length)return e.models;let r=[];return bh(e).forEach(([,n])=>{VI(n)&&Object.keys(n).forEach(o=>{r.includes(o)||r.push(o)})}),r},of=(e,t)=>!e||typeof e!="object"?null:VI(e)?t&&e[t]||null:e,uZ=e=>e&&e.samples_evaluated?(e.samples_passed||0)/e.samples_evaluated:null,mke=e=>!!e&&["pending","running"].includes(e.status),yh=(e,t)=>!e||typeof e!="object"?null:e.priced!=null?e.priced:e.cost!=null?t??null:0,af=(e,t)=>e!=null&&t?e/t:null,h2=(e,t)=>{if(!e||typeof e!="object")return!1;if(Number(e.estimated)>0||e.cost_basis==="estimated"||e.cost_basis==="mixed")return!0;let r=yh(e,t);return r!=null&&t!=null&&e.cost!=null&&r{if(!e)return[];let t=e.scores||{},r=t._models;if(r&&typeof r=="object"&&Object.keys(r).length)return Object.entries(r).map(([a,i])=>({label:a,model:i.model||a,provider:i.provider||null,samples:i.scenarios??null,passed:i.passed??null,errored:i.errored??0,avg_score:i.avg_score??null,avg_duration_ms:i.avg_duration_ms??null,p50_duration_ms:i.p50_duration_ms??null,p95_duration_ms:i.p95_duration_ms??null,input_tokens:i.input_tokens??null,output_tokens:i.output_tokens??null,cost:i.cost??null,priced:yh(i,i.scenarios),reported:i.reported??null,estimated:h2(i,i.scenarios),judge_cost:i.judge_cost??null,judge_calls:i.judge_calls??0,faults:i.faults||{},kind:"replay"}));let n=t._cohorts;if(n&&typeof n=="object"&&Object.keys(n).length)return Object.entries(n).map(([a,i])=>({label:a,model:a,provider:i.provider||null,samples:i.samples??null,passed:i.passed??null,errored:0,avg_score:null,avg_duration_ms:i.avg_duration_ms??null,input_tokens:i.input_tokens??null,output_tokens:i.output_tokens??null,cost:i.cost??null,priced:yh(i,i.samples),reported:0,estimated:i.cost!=null,judge_cost:null,judge_calls:0,faults:{},kind:"sample"}));let o=C0(e);return o.length?o.map(a=>{let i=bh(e).map(([,s])=>of(s,a)).filter(s=>s&&s.total!=null).map(s=>s.total);return{label:a,model:a,provider:null,samples:i.length?Math.max(...i):null,passed:null,errored:0,avg_score:null,avg_duration_ms:null,input_tokens:null,output_tokens:null,cost:null,priced:null,reported:null,estimated:!1,judge_cost:null,judge_calls:0,faults:{},kind:e.selection||t._selection?"replay":"sample"}}):[{label:null,model:null,provider:null,samples:e.samples_evaluated??null,passed:e.samples_passed??null,errored:0,avg_score:null,avg_duration_ms:null,input_tokens:null,output_tokens:null,cost:null,priced:null,reported:null,estimated:!1,judge_cost:null,judge_calls:0,faults:{},kind:"sample"}]},cZ=(e,t)=>{let r=bh(e).map(([,o])=>of(o,t)).filter(Boolean),n=r.filter(o=>o.score!=null);return{avg:n.length?n.reduce((o,a)=>o+a.score,0)/n.length:null,scored:n.length,cleared:n.filter(o=>o.score>=.7).length,below:n.filter(o=>o.score<.7).length,skipped:r.filter(o=>o.skipped).length}},dZ=20,sf=(e=[],t=null)=>Number.isFinite(t)?Math.max(t,e.length):e.length,A0=(e=[],t=null)=>{let r=sf(e,t),n=e.length=dZ;return`${St(r,"run")}${n?` \xB7 latest ${e.length}`:""}`},pZ=3,fZ=(e=[],{limit:t=null,selectedId:r=null}={})=>{let n=e.map((o,a)=>a);return!Number.isFinite(t)||e.length<=t?n:n.filter(o=>o{if(!r)return"skipped";let o=t.map(s=>e[s]),a=o.filter(s=>s&&s.status!=="pending"),i=a.some(s=>s.status!=="passed");return t.length>0&&a.length===t.length?i?"failed":"passed":n?o.some(Boolean)?"running":"queued":i?"failed":"missing"},Sh=(e,t,r=[],n=null)=>Number.isFinite(e?.number)?e.number:sf(r,n)-t,E0=(e,t,{olderNumber:r=t?.number,comparable:n=!0}={})=>{if(!e||e.status!=="complete")return null;if(!t)return{text:"first run",tone:"muted"};let o=Number.isFinite(r)?`#${r}`:"previous";if(t.status!=="complete")return{text:`${o} ${t.status}`,tone:"muted"};if(!n)return{text:"partial run",tone:"muted"};let a=(e.samples_passed||0)-(t.samples_passed||0);return a===0?{text:`same as ${o}`,tone:"muted"}:{text:`${a>0?"+":""}${a} passed vs ${o}`,tone:a>0?"success":"error"}},mZ=(e,t)=>{if(!e||!t)return null;let r=e.agent_version?.id??null,n=t.agent_version?.id??null;return r==null||n==null?{kind:"unrecorded",text:"release not recorded"}:r===n?{kind:"same",text:"same version"}:{kind:"new",text:`new version${e.agent_version?.number!=null?` v${e.agent_version.number}`:""}`}},gZ=e=>{if(!e||!("version_state"in e)&&!e.agent_version)return null;let t=e.agent_version;if(!t)return{text:"release not recorded",tone:"warning",title:"This run named no release, so nothing says which version of the agent it scored"};let r=t.release_digest?` \xB7 ${String(t.release_digest).slice(0,7)}`:"",n=`v${t.number}${r}`,o=e.version_state||"current";return o==="earlier"?{text:n,tone:"muted",title:`An earlier version of the agent${t.revision?` \xB7 ${t.revision}`:""}`}:o==="unrecorded"?{text:n,tone:"warning",title:"The version this run scored was not recorded"}:{text:n,tone:"success",title:`The agent's current version${t.revision?` \xB7 ${t.revision}`:""}`}},Ni=e=>{let t=e?.usage;if(!t||typeof t!="object")return null;let r=t.replays??t.samples??null,n=t.cost??null,o=yh(t,r||0),a=r!=null||n!=null?{cost:n,count:r||0,priced:o,reported:t.reported??null,estimatedCount:t.estimated??null,basis:t.cost_basis??null,estimated:h2(t,r||0),unit:t.replays!=null?"replay":"sample",perInteraction:t.per_interaction??af(n,o),inputTokens:t.input_tokens??null,outputTokens:t.output_tokens??null,modelTimeMs:t.model_time_ms??null}:null,i=t.judge,s=i&&typeof i=="object"?{cost:i.cost??null,calls:i.calls||0,byKind:i.by_kind||{},model:i.model||null,inputTokens:i.input_tokens??null,outputTokens:i.output_tokens??null,source:i.source||null,estimated:i.estimated??(i.source==null||i.source!=="reported"),run:i.run&&typeof i.run=="object"?i.run:null}:null;if(!a&&!s)return null;let l=t.total??(a?.cost!=null||s?.cost!=null?(a?.cost||0)+(s?.cost||0):null),u=!!(a?.cost!=null&&a.estimated||s?.cost!=null&&s.estimated);return{agent:a,judge:s,total:l,totalEstimated:u,runtimeMs:t.runtime_ms??null}},hZ=e=>{let t=e?.agent||null,r=e?.judge||null;return t&&t.count>0&&t.cost==null?r?"judge only \xB7 agent unpriced":"agent unpriced":t&&r?"agent + judge":t?"agent only":"judge only"},N0=e=>{switch(e?.source){case"traces":return"from traces";case"meter":return"metered";case"reported":return"reported";default:return null}},T0=e=>{if(!e)return"";let t=["define","score","recommend","verdict"];return Object.entries(e.byKind||{}).sort(([n],[o])=>t.indexOf(n)-t.indexOf(o)).map(([n,o])=>`${n} ${o}`).join(" \xB7 ")},gke=(e=[])=>{let t=null,r=0,n=0,o=null,a=0,i=!1,s=!1;return e.forEach(l=>{let u=Ni(l);u&&(a+=1,u.agent&&(r+=u.agent.count,n+=u.agent.priced),u.agent?.cost!=null&&(t=(t||0)+u.agent.cost,u.agent.estimated&&(i=!0)),u.judge?.cost!=null&&(o=(o||0)+u.judge.cost,u.judge.estimated&&(s=!0)))}),{agentCost:t,interactions:r,pricedInteractions:n,perInteraction:af(t,n),judgeCost:o,priced:a,estimated:i,judgeEstimated:s}},kh=e=>{if(!e)return null;if(e.headline_run&&typeof e.headline_run=="object")return e.headline_run;let t=e.latest_run||null;return e.headline_run_id!=null?t&&t.id===e.headline_run_id?t:null:t&&t.status==="complete"?t:null},GI=e=>e?e.standing?e.standing:e.archived_at?"archived":kh(e)?"current":"none":"none",hke=["current","unrecorded"],yZ=(e=[],{focusId:t=null}={})=>{let r=t!=null?e.filter(d=>String(d.id)===String(t)):[],n=r.length>0,o=n?r:e,a={total:0,stale:0,archived:0,none:0},i=[],s={},l=[],u=0,c=0;return o.forEach(d=>{let p=kh(d),f=GI(d);if(!(n?!!p:!!p&&hke.includes(f))){a.total+=1,f==="archived"?a.archived+=1:f==="stale"?a.stale+=1:a.none+=1;return}i.push(p),l.push({id:d.id,name:d.name||`evaluation ${d.id}`}),u+=p.samples_evaluated||0,c+=p.samples_passed||0,(d.per_model&&typeof d.per_model=="object"&&Object.keys(d.per_model).length?Object.entries(d.per_model).map(([b,g])=>({label:b,passed:g?.passed||0,total:g?.total||0})):wh(p).filter(b=>b.label&&b.samples>0).map(b=>({label:b.label,passed:b.passed||0,total:b.samples||0}))).forEach(({label:b,passed:g,total:h})=>{let v=s[b]||={label:b,passed:0,total:0,byEvaluation:{}};v.passed+=g,v.total+=h;let x=v.byEvaluation[d.id]||={passed:0,total:0};x.passed+=g,x.total+=h})}),{evaluations:o.length,counted:i.length,notCounted:a,runs:i,samplesScored:u,samplesPassed:c,passRatio:u?c/u:null,perModel:Object.values(s),columns:l,spend:gke(i),focused:n}},FI=1.96,yke=(e,t)=>{let r=Number(t)||0;if(r<=0)return 0;let n=(Number(e)||0)/r,o=FI*FI,a=n+o/(2*r),i=FI*Math.sqrt(n*(1-n)/r+o/(4*r*r));return Math.max(0,(a-i)/(1+o/r))},vZ=e=>(e?.perModel||[]).filter(t=>t.total>0).map(t=>({...t,ratio:t.passed/t.total,lower:yke(t.passed,t.total)})).sort((t,r)=>r.lower-t.lower||r.total-t.total||t.label.localeCompare(r.label)).map((t,r)=>({...t,rank:r+1})),xZ=e=>{let t=e?.notCounted;if(!t||!t.total)return null;let r=[];return t.stale&&r.push(`${t.stale} stale`),t.archived&&r.push(`${t.archived} archived`),t.none&&r.push(`${t.none} ${t.none===1?"has":"have"} no complete run`),[`${t.total} not counted`,...r].join(" \xB7 ")},v2=(e,t)=>{if(!t)return[];let r=[],n=`/agents/${e?.agent?.id}/run`;t.status==="failed"&&r.push({kind:"failed",label:"run failed",scope:Number.isFinite(t.number)?`run #${t.number}`:"latest run",text:t.error_message||"The run ended before any criterion was scored.",action:{label:"Run agent",path:n,hint:"Run Agent ->"}});let o=Array.isArray(t.scores?._missing_models)?t.scores._missing_models:[];o.length&&r.push({kind:"missing",label:`no generations \xD7${o.length}`,scope:"comparison cohorts",text:"The comparison asked for these models, but the agent has no recorded generations under them. Run the agent under each model, then run the evaluation again.",chipsLabel:"missing models",chips:o,action:{label:"Run agent",path:n,hint:"Run Agent ->"}});let a={judge:[],telemetry:[],rules:[]},i=[];bh(t).forEach(([u,c])=>{let d=_0(e,u);(VI(c)?Object.entries(c):[[null,c]]).forEach(([f,m])=>{!m||typeof m!="object"||(m.skipped?a[kl(d)].push({key:u,model:f,reason:m.reason}):m.score!=null&&m.score<.7&&i.push({key:u,model:f,stats:m,criterion:d}))})});let s=u=>[...new Set(u.map(c=>c.key))],l=u=>`${s(u).length} ${s(u).length===1?"criterion":"criteria"}`;if(a.judge.length&&r.push({kind:"judge",label:`judge skipped \xD7${a.judge.length}`,scope:l(a.judge),text:a.judge[0].reason||"The LLM judge could not score these criteria.",chipsLabel:"unscored criteria",chips:s(a.judge),action:{label:"Add provider key",path:"/settings",hint:"Settings ->"}}),a.telemetry.length&&r.push({kind:"telemetry",label:`no telemetry \xD7${a.telemetry.length}`,scope:l(a.telemetry),text:a.telemetry[0].reason||"No traces were recorded for this agent in the criterion window.",chipsLabel:"unscored criteria",chips:s(a.telemetry),action:{label:"Open traces",path:"/traces",hint:"Traces ->"}}),a.rules.length&&r.push({kind:"samples",label:`no samples \xD7${a.rules.length}`,scope:l(a.rules),text:a.rules[0].reason||"No generation could be scored against these criteria.",chipsLabel:"unscored criteria",chips:s(a.rules),action:{label:"Run agent",path:n,hint:"Run Agent ->"}}),i.length){let u=[...new Set(i.map(c=>c.model).filter(Boolean))];r.push({kind:"below",label:`below pass mark \xD7${i.length}`,scope:`${l(i)}${u.length?` \xB7 ${St(u.length,"model")}`:""}`,text:`Scored under the pass mark (pass \u2265 ${WI(.7)}). Each line is what the criterion expects against how the samples did; tighten the agent's instructions or revisit the budget before running again.`,details:i.map(c=>`${c.key}${c.model?` \xB7 ${c.model}`:""} ${WI(c.stats.score)} \xB7 expects ${vh(c.criterion)} \xB7 ${fke(c.stats.passed,c.stats.total)} passed`)})}return r},lZ=e=>String(e||"").replace(/_/g," "),bZ=e=>{let t=e?.scores?._comparison;if(!t||typeof t!="object"||!Array.isArray(t.ranking)||t.ranking.length<2)return null;let r=t.method||{};return{rows:t.ranking.map(n=>{let o=t.models?.[n]||{};return{label:n,passRate:o.pass_rate??null,interval:Array.isArray(o.interval)&&o.interval.length===2?o.interval:null,scenarios:o.scenarios??0}}),conclusion:t.conclusion||null,confidence:Math.round(Number(r.confidence??.95)*100),resamples:r.resamples??null}},x2=(e,{results:t=[],scenarioCount:r=0,labelFor:n=a=>a?.model,columns:o=null}={})=>{let a=wh(e),i=new Map(a.map(c=>[c.label,c])),s=o&&o.length?o:a.map(c=>c.label),l=e?.scores?._verdict?.winner||null;return s.map(c=>{let d=i.get(c)||{},p=t.filter(C=>n(C)===c),f=p.filter(C=>C?.status&&C.status!=="pending"),m=d.samples??(r||p.length||null),y=d.passed??f.filter(C=>C.status==="passed").length,b=Object.keys(d.faults||{}).length?d.faults:f.reduce((C,N)=>N.fault?{...C,[N.fault]:(C[N.fault]||0)+1}:C,{}),g=C=>p.find(N=>N.fault===C)||null,h=C=>C==="low_quality"?1:0,v=Object.entries(b).sort((C,N)=>N[1]-C[1]||(g(N[0])?1:0)-(g(C[0])?1:0)||h(C[0])-h(N[0])||C[0].localeCompare(N[0])),[x,S]=v[0]||[],k=x?g(x):null,w=m||null,_=C=>C==null||!w?null:C/w,A=d.avg_score??(f.length&&f.some(C=>C.score!=null)?f.filter(C=>C.score!=null).reduce((C,N)=>C+Number(N.score),0)/f.filter(C=>C.score!=null).length:null);return{label:c,model:d.model||c,provider:d.provider||null,winner:l===c,passed:y,total:m,scored:d.samples??f.length,passRate:m?y/m:null,avgScore:A==null?null:Number(A),avgDurationMs:d.avg_duration_ms??null,p50DurationMs:d.p50_duration_ms??null,p95DurationMs:d.p95_duration_ms??null,inputTokens:d.input_tokens??null,outputTokens:d.output_tokens??null,avgInputTokens:_(d.input_tokens),avgOutputTokens:_(d.output_tokens),avgTokens:d.input_tokens==null&&d.output_tokens==null?null:_((d.input_tokens||0)+(d.output_tokens||0)),cost:d.cost??null,priced:d.priced??null,reported:d.reported??null,estimated:d.estimated??!1,judgeCost:d.judge_cost??null,judgeCalls:d.judge_calls??0,costPerInteraction:af(d.cost,d.priced),faults:v.map(([C,N])=>({fault:C,name:lZ(C),count:N})),typicalFault:x?{fault:x,name:lZ(x),count:S,scenarioKey:k?.scenario_key||null,summary:(k?.diagnosis?.summary||k?.recommendation||"").toString().trim()||null}:null}}).sort((c,d)=>(d.passRate??-1)-(c.passRate??-1)||(d.avgScore??-1)-(c.avgScore??-1)||s.indexOf(c.label)-s.indexOf(d.label))},wZ=(e,{max:t=120}={})=>{if(!e)return"\u2014";if(!e.typicalFault)return e.scored?"no faults":"\u2014";let{name:r,count:n,scenarioKey:o,summary:a}=e.typicalFault,i=`${r} \xD7${n}`;if(!a)return i;let s=o?`${o}: ${a}`:a;return`${i} \xB7 ${k0(s,t)}`},SZ=(e=[],t=[],r=n=>n?.model)=>e.map(n=>{let o=n.kind==="instruction"?t.filter(s=>(n.scenario_keys||[]).includes(s?.scenario_key)&&s?.fault):t.filter(s=>s?.fault===n.fault);if(!o.length)return n;let a={},i={};return o.forEach(s=>{let l=r(s);l&&(a[l]=(a[l]||0)+1,i[l]=[...new Set([...i[l]||[],s.scenario_key].filter(Boolean))])}),{...n,count_by_model:a,scenario_keys_by_model:i}}),YI=(e=[],t=null)=>!t||t==="all"?e:e.filter(r=>!Array.isArray(r.models)||r.models.length===0||r.models.includes(t)).map(r=>{if(!Array.isArray(r.models)||!r.models.length)return r;let n={...r,models:[t]};return r.count_by_model?.[t]!=null&&(n.count=r.count_by_model[t]),r.scenario_keys_by_model?.[t]&&(n.scenario_keys=r.scenario_keys_by_model[t]),n}),kZ=(e=[],t=[])=>Object.fromEntries(t.map(r=>[r,YI(e,r).length])),b2=e=>(Array.isArray(e)?e:[]).filter(t=>t&&t.session_id&&t.status==="ready"&&(t.sandbox_type==null||t.sandbox_type==="app_runtime")&&!("runtime_server_key"in t&&!t.runtime_server_key)).map(t=>({value:t.session_id,label:_Z(t)})),_Z=e=>{if(!e||!e.session_id)return null;let t=[e.repository,e.repository_ref].filter(Boolean).join("@"),r=String(e.session_id).slice(0,8);return t?`${t} \xB7 ${r}`:`sandbox ${r}`},O0=e=>_Z(e?.sandbox),CZ=(e={},t=[],r=null)=>{let n={...e,models:t};return r&&(n.sandbox_id=r),n},w2=(e,t)=>e&&(t||[]).some(r=>r.value===e)?e:"",lf=e=>e?.selection||e?.scores?._selection||{},AZ=e=>(lf(e).models||[]).map(t=>typeof t=="string"?t:t?.label).filter(Boolean);function P0(e,t=[]){let r=lf(e);if(Array.isArray(r.scenario_keys)&&r.scenario_keys.length)return r.scenario_keys;if(!e)return[];if(Array.isArray(r.keys)&&r.keys.length)return r.keys;if(Array.isArray(r.scenario_ids)&&r.scenario_ids.length){let o=r.scenario_ids.map(String);return t.filter(a=>o.includes(String(a.id))).map(a=>a.key)}let n=t.filter(o=>o.enabled!==!1);return r.group?n.filter(o=>o.group===r.group).map(o=>o.key):mke(e)||e.status==="failed"?n.map(o=>o.key):[]}var XI=(e,t=[])=>{let r=lf(e);if(r.group)return`partial: ${r.group}`;let n=r.scenario_keys||r.keys,o=t.filter(a=>a.enabled!==!1).length;return Array.isArray(n)&&n.length&&n.length{let r=new Set(t.filter(a=>a&&a.enabled!==!1).map(a=>a.key)),n=[],o=[];return[...new Set((e||[]).filter(a=>a!=null))].forEach(a=>(r.has(a)?n:o).push(a)),{keys:n,dropped:o}},EZ=(e=[],t=[])=>uf((e||[]).filter(r=>r&&r.scenario_key&&r.status!=="pending"&&r.status!=="passed").map(r=>r.scenario_key),t),NZ=(e,t=[])=>{let r=lf(e);if(r.group)return{group:r.group};let n=Array.isArray(r.scenario_keys)&&r.scenario_keys.length?r.scenario_keys:r.keys;return Array.isArray(n)&&n.length?{keys:uf(n,t).keys}:{}},ZI=272,JI=16,TZ=32,OZ=940,QI="clamp(360px, calc(100vh - 240px), 900px)",PZ=320,vke=3,MZ=3,IZ=720,HI="aa.evaluations.detail",DZ=e=>368+138*e,jZ=e=>504+170*e,$Z=e=>{try{let t=e?.getItem(HI);return t==="tools"||t==="steps"?t:null}catch{return null}},LZ=(e,t)=>{try{t==null?e?.removeItem?.(HI):e?.setItem(HI,t)}catch{}},zZ=(e=[])=>(e.find(t=>t?.step==="running")||e.find(t=>t?.step==="queued"))?.key??null,BZ=(e=[])=>{if(!e.length)return"none";let t=e.filter(n=>n!=="skipped"&&n!=="none");if(!t.length)return e.every(n=>n==="none")?"none":"skipped";if(t.includes("loading"))return"loading";if(t.includes("running"))return"running";let r=t.filter(n=>n==="queued").length;return r&&rnull,r="suite")=>{if(r!=="failed-first")return e;let n=[],o=new Map;return e.forEach(a=>{let i=a?.group||"",s=o.get(i);s||(s={failed:0,rows:[]},o.set(i,s),n.push(s));let l=t(a)==="failed";l&&(s.failed+=1),s.rows.push({row:a,failed:l})}),n.sort((a,i)=>i.failed-a.failed).flatMap(a=>[...a.rows.filter(i=>i.failed),...a.rows.filter(i=>!i.failed)].map(i=>i.row))},RI=(e=[],t=new Set)=>{let r=t instanceof Set?t:new Set(t||[]),n=new Set;if(!r.size)return n;let o=new Set;return e.forEach(a=>{(r.has(a?.key)?o:n).add(a?.group||"")}),o.forEach(a=>n.delete(a)),n},eD=(e={},t=[])=>{let r=t.map(n=>e?.[n]).filter(n=>n&&n.status!=="pending"&&n.duration_ms!=null&&Number.isFinite(Number(n.duration_ms))).map(n=>Number(n.duration_ms));return r.length?Math.max(...r):null},UI=e=>e!=null&&Number.isFinite(Number(e))?Number(e):null,S2=e=>{if(!e||e.status==="pending")return null;let t={durationMs:UI(e.duration_ms),inputTokens:UI(e.input_tokens),outputTokens:UI(e.output_tokens)};return t.durationMs==null&&t.inputTokens==null&&t.outputTokens==null?null:t},UZ=(e=[])=>{let t={durationMs:null,inputTokens:null,outputTokens:null,count:0};return e.forEach(r=>{let n=S2(r);n&&(t.count+=1,["durationMs","inputTokens","outputTokens"].forEach(o=>{n[o]!=null&&(t[o]=(t[o]||0)+n[o])}))}),t.count?t:null},WZ=(e={},t=[])=>{let r=UZ(t.map(n=>e?.[n]));return!r||r.inputTokens==null&&r.outputTokens==null?null:{input:r.inputTokens,output:r.outputTokens}},HZ=(e=[])=>{let t=e.filter(Boolean);if(!t.length)return null;let r=n=>t.some(o=>o[n]!=null)?t.reduce((o,a)=>o+(a[n]||0),0):null;return{input:r("input"),output:r("output")}},tD=(e={},t=[],r=Object.keys(e))=>Object.fromEntries(t.map(n=>[n,UZ(r.map(o=>e[o]?.[n]))])),qZ=(e=[],t={},r=[])=>{let n=e.map(o=>eD(t[o?.key],r)).filter(o=>o!=null);return n.length?n.reduce((o,a)=>o+a,0):null},KZ=(e,t=Date.now())=>{if(!e)return null;let r=e.usage?.runtime_ms;if(r!=null&&Number.isFinite(Number(r)))return Number(r);if(e.status==="pending"||e.status==="failed"||!e.created_at)return null;let n=Date.parse(e.created_at),o=e.completed_at?Date.parse(e.completed_at):t;return!Number.isFinite(n)||!Number.isFinite(o)?null:Math.max(0,o-n)},hh=e=>String(e).padStart(2,"0"),VZ=e=>{let t=Math.max(0,Math.floor(Number(e)/1e3));return{hours:Math.floor(t/3600),minutes:Math.floor(t%3600/60),seconds:t%60,total:t}},GZ=e=>{if(e==null||!Number.isFinite(Number(e)))return"\u2014";let{hours:t,minutes:r,seconds:n}=VZ(e);return t?`${t}:${hh(r)}:${hh(n)}`:`${hh(r)}:${hh(n)}`},rD=e=>{if(e==null||!Number.isFinite(Number(e)))return"\u2014";let{hours:t,minutes:r,seconds:n,total:o}=VZ(e);return o<60?`${o}s`:t?`${t}h ${hh(r)}m`:`${r}m ${hh(n)}s`},k2=e=>{if(e==null||!Number.isFinite(Number(e)))return"\u2014";let t=Number(e);return t>=6e4?rD(t):t>=1e3?`${(t/1e3).toFixed(t>=1e4?1:2).replace(/\.?0+$/,"")}s`:`${Math.round(t)}ms`},YZ=e=>{let t=Number(e)||0;return t<=500?3e3:t<=2e3?6e3:1e4},xke=(e,t)=>!!e&&!!t&&e.id===t.id&&e.status===t.status&&e.score===t.score&&e.fault===t.fault&&e.cost===t.cost&&(e.judge_usage?.cost??null)===(t.judge_usage?.cost??null)&&(e.output||"").length===(t.output||"").length,XZ=(e=[],t=[])=>{let r=new Map;(e||[]).forEach(i=>{i&&i.id!=null&&r.set(i.id,i)});let n=0,o=(t||[]).map(i=>{let s=i&&i.id!=null?r.get(i.id):null;return s&&xke(s,i)?(n+=1,s):i}),a=o.length!==(e||[]).length||n!==o.length;return{results:a?o:e||[],changed:a}},ZZ=(e=[],t=n=>n?.model,r={})=>{let n={};(e||[]).forEach(i=>{!i||!i.scenario_key||((n[i.scenario_key]||={})[t(i)]=i)});let o=Object.keys(n),a=0;return o.forEach(i=>{let s=r?.[i];if(!s)return;let l=Object.keys(n[i]);l.length===Object.keys(s).length&&l.every(u=>s[u]===n[i][u])&&(n[i]=s,a+=1)}),r&&a===o.length&&o.length===Object.keys(r).length?r:n},JZ=(e=[],t=vke)=>{if(e.length<=t)return e;let r=n=>e.reduce((o,a)=>o+(Number(a?.[n])||0),0);return[{label:"combined",short:`${e.length} models`,passed:r("passed"),total:r("total"),title:e.map(n=>`${n.short} ${n.passed??"\u2014"}/${n.total??"\u2014"}`).join(" \xB7 ")}]},nD=(e={},t=[])=>{let r=new Set((t||[]).filter(a=>a!=null).map(String)),n=Object.entries(e||{}),o=n.filter(([a])=>r.has(String(a)));return o.length===n.length?e||{}:Object.fromEntries(o)},QZ=({rowTop:e=0,headerHeight:t=0,boxHeight:r=0}={})=>Math.max(0,e-t-Math.round((r-t)/3)),RZ=({rowTop:e=0,headerHeight:t=0,groupRowHeight:r=0}={})=>Math.max(0,e-t-r);var bke=[[/^claude/i,"anthropic"],[/^(gpt-|o\d|chatgpt|text-embedding)/i,"openai"],[/:/,"ollama"]],eJ=["openai","anthropic","ollama","openrouter","mock"];function wke(e,t=eJ){let r=String(e??"").trim(),n=r.indexOf("/"),o=n>=0?r.slice(0,n):r,a=n>=0?r.slice(n+1):"";if(a.trim()){if(t.includes(o))return{provider:o,model:a};if(t.includes("openrouter"))return{provider:"openrouter",model:r}}let i=bke.find(([s,l])=>s.test(r)&&t.includes(l));return{provider:i?i[1]:null,model:r}}function Ske(e,t,r=eJ){let n=wke(t,r);return n.provider===e&&n.model===t?t:`${e}/${t}`}function tJ(e,t){return t.flatMap(r=>(e?.[r]||[]).flatMap(n=>{let o=String(n??"").trim();return o?[{provider:r,id:o,qualified:Ske(r,o)}]:[]}))}function M0(e,{providers:t,qualify:r=!0}){let n=tJ(e,t).map(o=>r?o.qualified:o.id);return[...new Set(n)]}function rJ(e,t,{providers:r,qualify:n,restore:o=new Map}){let a=tJ(t,r),i=new Set(a.map(c=>n?c.qualified:c.id)),s=new Map;a.forEach(c=>{let d=n?c.id:c.qualified;s.has(d)||s.set(d,n?c.qualified:c.id)});let l=c=>i.has(c)?c:s.get(c)??c;if(n){let c=e.flatMap(d=>o.get(d)??[l(d)]);return{models:[...new Set(c)],restore:new Map}}let u=new Map;return e.forEach(c=>{let d=l(c);u.set(d,[...u.get(d)||[],c])}),{models:[...u.keys()],restore:u}}function cd(e){return[...new Set(String(e??"").split(",").map(t=>t.trim()).filter(Boolean))]}function I0(e){return e.join(", ")}function nJ(e,t){return[...new Set([...e,...cd(t)])]}function oJ(e){let t=e.lastIndexOf(",");return t<0?{complete:"",rest:e.trimStart()}:{complete:e.slice(0,t),rest:e.slice(t+1).trimStart()}}function aJ(e,t,r){return(!e||e==="insertReplacementText")&&r.includes(t)}function iJ({key:e,repeat:t=!1},r,n){return e==="Enter"&&r.trim()?"commit":e==="Backspace"&&!t&&r===""&&n>0?"removeLast":null}var _h=Z(J()),Vs=typeof window>"u"?_h.useEffect:_h.useLayoutEffect;function D0(e){let[t,r]=(0,_h.useState)(0);return Vs(()=>{let n=e.current;if(!n)return;let o=()=>r(n.clientWidth);if(o(),typeof ResizeObserver>"u")return window.addEventListener("resize",o),()=>window.removeEventListener("resize",o);let a=new ResizeObserver(o);return a.observe(n),()=>a.disconnect()},[e]),t}var ta=Z(J());function j0({value:e,onChange:t,models:r=[],placeholder:n,style:o,title:a,describedBy:i,inputId:s,inputLabel:l,testId:u}){let[c,d]=(0,ta.useState)(""),[p,f]=(0,ta.useState)(""),m=(0,ta.useRef)(null),y=(0,ta.useId)(),b=cd(e),g=(0,ta.useRef)(b);g.current=b;let h=_=>{let A=nJ(g.current,_);A.length!==g.current.length&&(t(I0(A)),f(`Added ${A.slice(g.current.length).join(", ")}`)),d("")},v=_=>{t(I0(g.current.filter(A=>A!==_))),f(`Removed ${_}`),m.current?.focus()},x=(_,A)=>{if(_.includes(",")){let{complete:C,rest:N}=oJ(_);h(C),d(N)}else aJ(A.nativeEvent?.inputType,_,r)?h(_):d(_.trimStart())},S=_=>{let A=iJ(_,c,g.current.length);A==="commit"?(_.preventDefault(),setTimeout(()=>h(m.current?.value||""),0)):A==="removeLast"&&(_.preventDefault(),v(g.current[g.current.length-1]))},k=r.filter(_=>!b.includes(_)),w=[i,a&&`${y}-title`,`${y}-selected`].filter(Boolean).join(" ");return ta.default.createElement("div",{"data-testid":u,onClick:_=>{_.target===_.currentTarget&&m.current?.focus()},style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:4,cursor:"text",...o}},b.map(_=>ta.default.createElement("span",{key:_,style:kke},ta.default.createElement("span",{style:{overflowWrap:"anywhere"}},_),ta.default.createElement("button",{type:"button",onClick:()=>v(_),"aria-label":`Remove ${_}`,title:`Remove ${_}`,style:_ke},"\xD7"))),ta.default.createElement(ru,{inputRef:m,id:s,"aria-label":l,"aria-describedby":w,title:a,value:c,models:k,onChange:x,onKeyDown:S,onBlur:()=>{c.trim()&&h(c)},placeholder:b.length?"Add a model":n,style:{flex:"1 1 80px",minWidth:80,padding:0,border:"none",background:"transparent",font:"inherit",color:"inherit"}}),a&&ta.default.createElement("span",{id:`${y}-title`,style:oD},a),ta.default.createElement("span",{id:`${y}-selected`,style:oD},b.length?`Chosen: ${b.join(", ")}`:"No models chosen"),ta.default.createElement("span",{role:"status","aria-live":"polite",style:oD},p))}var kke={display:"inline-flex",alignItems:"center",gap:2,maxWidth:"100%",padding:"0 2px 0 8px",borderRadius:999,fontFamily:U,fontSize:11,lineHeight:"18px",background:"var(--color-muted)",border:"1px solid var(--color-border)",color:"var(--color-text-primary)"},_ke={padding:"0 5px",border:"none",borderRadius:999,background:"transparent",cursor:"pointer",fontSize:13,lineHeight:"18px",color:"var(--color-text-muted)"},oD={position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0 0 0 0)",whiteSpace:"nowrap",border:0};var Ze=Z(J());var Ti=Z(J());var Cke="What the agent spent answering \u2014 the operating cost of these interactions, and of one on average",Ake="What the judge model spent scoring, recommending and ruling \u2014 the evaluation's own offline cost",cf="var(--color-text-muted)",_2=e=>e?.agent?.unit==="replay"?"replay":"sampled interaction",Lu=(e,t=!1)=>Pr(e,{estimated:t}),sJ=(e,{total:t=!1}={})=>{if(!e)return null;let r=[];if(e.agent){let n=[`agent ${Pr(e.agent.cost,{estimated:e.agent.estimated})}`,St(e.agent.count,_2(e))];e.agent.perInteraction!=null&&n.push(`${Lu(e.agent.perInteraction,e.agent.estimated)} each`),r.push(n.join(" \xB7 "))}return e.judge&&r.push(`judge ${Pr(e.judge.cost,{estimated:e.judge.estimated})} \xB7 ${St(e.judge.calls,"call")}`),t&&e.total!=null&&r.push(`total ${Pr(e.total,{estimated:e.totalEstimated})}`),r.join(" \xB7 ")};function df({label:e,value:t,sub:r,title:n,valueColor:o,testId:a,valueTestId:i,onClick:s,onKeyDown:l,role:u,tabIndex:c,style:d}){return Ti.default.createElement("div",{"data-testid":a,title:n,role:u,tabIndex:c,onClick:s,onKeyDown:l,style:{padding:"10px 16px",minWidth:0,marginLeft:-1,marginTop:-1,borderLeft:"1px solid var(--color-border-light)",borderTop:"1px solid var(--color-border-light)",...d}},Ti.default.createElement(Ue,{size:10,color:cf},e),Ti.default.createElement("div",{"data-testid":i,style:{marginTop:4,fontFamily:U,fontSize:18,fontWeight:700,lineHeight:1.1,color:o||"var(--color-text-primary)"}},t),Ti.default.createElement("div",{style:{marginTop:4,fontFamily:U,fontSize:11,color:"var(--color-text-secondary)",textWrap:"pretty"}},r))}var lJ={value:"\u2026",valueColor:cf,sub:"priced when the run completes"};function aD({spend:e,pending:t=!1,failed:r=!1}){let n=e?.agent||null,o=n&&(n.inputTokens!=null||n.outputTokens!=null)?` \xB7 in ${On(n.inputTokens)} \xB7 out ${On(n.outputTokens)}`:"",a=r?{value:"\u2014",valueColor:cf,sub:"nothing replayed"}:t?lJ:{value:n?Pr(n.cost,{estimated:n.estimated}):"\u2014",valueColor:n?.cost!=null?void 0:cf,sub:n?`${St(n.count,_2(e))}${n.perInteraction!=null?` \xB7 ${Lu(n.perInteraction,n.estimated)} per interaction`:""}${o}`:"nothing replayed or sampled"};return Ti.default.createElement(df,{label:"Agent cost",title:Cke,testId:"run-spend-agent",...a})}function iD({spend:e,judgedBy:t=null,pending:r=!1,failed:n=!1}){let o=e?.judge||null,i=o?[St(o.calls,"call"),T0(o),o.model,N0(o),"offline"].filter(Boolean).join(" \xB7 "):t&&t!=="rules"?`judge ${t} \xB7 spend not recorded`:"no judge asked \xB7 rules only",s=n?{value:"\u2014",valueColor:cf,sub:i}:r?lJ:{value:o?Pr(o.cost,{estimated:o.estimated}):"\u2014",valueColor:o?void 0:cf,sub:i};return Ti.default.createElement(df,{label:"Judge cost",title:Ake,testId:"run-spend-judge",...s})}function sD({spend:e,judgedBy:t=null,testId:r="run-spend"}){if(!e)return null;let{total:n,totalEstimated:o}=e;return Ti.default.createElement(je,{padding:0,testId:r,style:{overflow:"hidden"}},Ti.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))"}},Ti.default.createElement(aD,{spend:e}),Ti.default.createElement(iD,{spend:e,judgedBy:t}),Ti.default.createElement(df,{label:"Total",title:"Agent and judge together \u2014 what this run cost end to end",value:n!=null?Pr(n,{estimated:o}):"\u2014",sub:hZ(e),testId:"run-spend-total"})),o&&Ti.default.createElement("div",{"data-testid":"run-spend-legend",style:{padding:"6px 16px",borderTop:"1px solid var(--color-border-light)",fontFamily:U,fontSize:11,color:cf}},il))}function ff({run:e,testId:t,short:r=!1}){if(!e)return Ze.default.createElement(ke,{tone:"muted",testId:t},"no runs");if(e.status==="failed")return Ze.default.createElement(ke,{tone:"error",testId:t},"failed");if(e.status==="pending")return Ze.default.createElement(ke,{tone:"warning",testId:t},"queued");if(e.status==="running")return Ze.default.createElement(ke,{tone:"warning",testId:t},"running");if(e.samples_evaluated){let n=Vn(e.samples_passed||0,e.samples_evaluated);return Ze.default.createElement(ke,{tone:eu(uZ(e)),testId:t,title:r?`${n} passed`:void 0},r?n:`${n} passed`)}if(e.average_score!=null){let n=Number(e.average_score);return Ze.default.createElement(ke,{tone:n>=.85?"success":n>=.7?"warning":"error",testId:t,title:"mean score across criteria"},`score ${aa(n)}`)}return Ze.default.createElement(ke,{tone:"muted",testId:t},"no samples")}function A2({run:e,testId:t="run-version"}){let r=gZ(e);return r?Ze.default.createElement(ke,{tone:r.tone,size:10,style:{padding:"1px 6px"},title:r.title,testId:t},r.text):null}var pf={success:"var(--color-success)",error:"var(--color-error)",muted:"var(--color-text-muted)"},$0={same:"var(--color-text-muted)",new:"var(--color-info)",unrecorded:"var(--color-warning-text)"},uJ=Na.cost+32,Eke=e=>wh(e).filter(t=>t.samples>0).map(t=>({label:t.label,short:bn(t.label||"").short||"all samples",passed:t.passed,total:t.samples})),dJ=(e,t,r)=>[`@${r||t?.agent?.name||"agent"}`,nf(t,e),xh(t,e),O0(e)&&`against ${O0(e)}`].filter(Boolean).join(" \xB7 ");function E2({runs:e=[],runCount:t=null,evaluation:r,agentName:n,selectedId:o=null,previousRun:a=null,barsFor:i=null,deltaFor:s=null}){return e.map((l,u)=>{let c=Sh(l,u,e,t),d=e[u+1]||(u===0&&e.length===1?a:null),p=d?Number.isFinite(d.number)?d.number:c-1:null,f=s?s(l,d,p):E0(l,d,{olderNumber:p}),m=f&&d?mZ(l,d):null,y=Ni(l);return{run:l,number:c,latest:u===0,when:wo(l.completed_at||l.created_at),meta:dJ(l,r,n),bars:i?i(l):Eke(l),delta:f,version:m,spend:y,selected:l.id===o}})}function dD({runs:e=[],runCount:t=null,evaluation:r,agentName:n,selectedId:o=null,onOpen:a,previousRun:i=null,barsFor:s=null,deltaFor:l=null,title:u="Runs",testId:c="suite-runs-panel"}){let{darkMode:d}=ut(),p=E2({runs:e,runCount:t,evaluation:r,agentName:n,selectedId:o,previousRun:i,barsFor:s,deltaFor:l});return Ze.default.createElement(Zr,{title:u,meta:A0(e,t),testId:c,bodyStyle:{overflowX:"auto"}},p.length===0&&Ze.default.createElement(Jr,null,"[ ] no runs yet"),Ze.default.createElement("div",{style:{minWidth:920}},p.map(f=>Ze.default.createElement("div",{key:f.run.id,role:"button",tabIndex:0,"data-testid":"evaluation-run","data-run-id":f.run.id,"data-selected":f.selected?"true":"false",onClick:()=>a?.(f.run),onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),a?.(f.run))},className:f.selected?void 0:"hover:bg-[var(--color-hover)]",style:{display:"grid",gridTemplateColumns:"minmax(220px, 1.4fr) minmax(180px, 1fr) auto",gap:16,alignItems:"center",padding:"10px 14px 10px 12px",borderTop:"1px solid var(--color-border-light)",cursor:"pointer",background:f.selected?"var(--color-muted)":void 0,borderLeft:`2px solid ${f.selected?"var(--color-accent-ui)":"transparent"}`}},Ze.default.createElement("div",{style:{minWidth:0}},Ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Ze.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:700,color:"var(--color-text-primary)"}},`Run #${f.number}`),Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},f.when),f.latest&&Ze.default.createElement(ke,{tone:"info",size:10,style:{padding:"1px 6px"}},"latest"),f.run.status==="failed"&&Ze.default.createElement(ke,{tone:"error",size:10,style:{padding:"1px 6px"}},"failed"),(f.run.status==="running"||f.run.status==="pending")&&Ze.default.createElement(ke,{tone:"warning",size:10,style:{padding:"1px 6px"}},f.run.status==="pending"?"queued":"running"),Ze.default.createElement(A2,{run:f.run})),Ze.default.createElement("div",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)",marginTop:3,textWrap:"pretty"}},f.meta),f.run.status==="failed"&&f.run.error_message&&Ze.default.createElement("div",{style:{fontFamily:U,fontSize:11,color:"var(--color-error)",marginTop:3,textWrap:"pretty"}},`[!] ${f.run.error_message}`)),Ze.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:4,minWidth:0}},f.bars.map(m=>m.passed==null||m.total==null?Ze.default.createElement("div",{key:m.label||"all",style:{display:"flex",alignItems:"center",gap:8}},Ze.default.createElement("span",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)",width:128,flexShrink:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:m.label||void 0},m.short),Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"\u2014")):Ze.default.createElement(tu,{key:m.label||"all",label:m.short,passed:m.passed,total:m.total}))),Ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12}},Ze.default.createElement(ad,{darkMode:d,cells:[{key:"agent",width:uJ,title:f.spend?.agent?`Agent: ${St(f.spend.agent.count,_2(f.spend))}${f.spend.agent.perInteraction!=null?` \xB7 ${Lu(f.spend.agent.perInteraction,f.spend.agent.estimated)} per interaction`:""}${f.spend.agent.estimated?" \xB7 ~ estimated from tokens \xD7 model rates":""}`:void 0,empty:"Agent cost: nothing replayed or sampled in this run",content:f.spend?.agent?.cost!=null&&Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11}},Ze.default.createElement("span",{style:{color:"var(--color-text-muted)"}},"agent "),Pr(f.spend.agent.cost,{estimated:f.spend.agent.estimated}))},{key:"judge",width:uJ,title:f.spend?.judge?`Judge: ${St(f.spend.judge.calls,"call")}${T0(f.spend.judge)?` \xB7 ${T0(f.spend.judge)}`:""}${N0(f.spend.judge)?` \xB7 ${N0(f.spend.judge)}`:""} \xB7 offline`:void 0,empty:"Judge cost: no judge was asked in this run",content:f.spend?.judge?.cost!=null&&Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11}},Ze.default.createElement("span",{style:{color:"var(--color-text-muted)"}},"judge "),Pr(f.spend.judge.cost,{estimated:f.spend.judge.estimated}))},{key:"delta",width:136,title:f.delta?`Samples passed, against the run before${f.version?` \xB7 ${f.version.text}`:""}`:void 0,empty:"Movement is read once the run completes",content:f.delta&&Ze.default.createElement("span",{style:{display:"flex",flexDirection:"column",gap:1}},Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:600,color:pf[f.delta.tone]||pf.muted}},f.delta.text),f.version&&Ze.default.createElement("span",{"data-testid":"run-version-delta",style:{fontFamily:U,fontSize:10,color:$0[f.version.kind]||$0.same}},f.version.text))},{key:"badge",width:132,content:Ze.default.createElement(ff,{run:f.run,testId:f.latest?"suite-pass-badge":void 0})},{key:"open",width:20,content:Ze.default.createElement(wa,{kind:"link",color:"var(--color-info)",weight:400})}]}))))))}var cJ='[data-testid="evaluation-run"]',Nke=150,lD=(e,t)=>e&&t!=null?e.querySelector(`[data-run-id="${CSS.escape(String(t))}"]`):null,uD=(e,t,r="y")=>{if(!e||!t)return;if(r==="x"){let o=t.offsetLeft;(oe.scrollLeft+e.clientWidth)&&(e.scrollLeft=Math.max(o-8,0));return}let n=t.offsetTop;(ne.scrollTop+e.clientHeight-t.offsetHeight)&&(e.scrollTop=Math.max(n-8,0))},Tke=(e=[])=>{let t=e.filter(o=>o.total!=null),r=o=>t.reduce((a,i)=>a+(Number(i[o])||0),0),n=r("total");return n>0?{passed:r("passed"),failed:r("failed"),total:n}:null},Oke=(e,{evaluation:t,agentName:r,bars:n,selectedId:o})=>({run:e,number:Number.isFinite(e.number)?e.number:"?",latest:!1,when:wo(e.completed_at||e.created_at),meta:dJ(e,t,r),bars:n||[],delta:null,version:null,spend:Ni(e),selected:e.id===o}),cD={fontFamily:U,fontSize:10,color:"var(--color-text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"};function Pke({bar:e}){let t=e.title||void 0;return e.passed==null||e.total==null?Ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8},title:t},Ze.default.createElement("span",{style:{...cD,width:96,flexShrink:0},title:e.label||void 0},e.short),Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"\u2014")):Ze.default.createElement("div",{title:t},Ze.default.createElement(tu,{label:e.short,labelWidth:96,passed:e.passed,total:e.total,height:4,valueWidth:44}))}function C2({row:e,selected:t=!1,tabIndex:r=-1,card:n=!1,onOpen:o,noteFor:a=null,style:i}){let{run:s}=e,l=a?a(s):null,u=n&&s.status==="running"?Tke(e.bars):null,c=JZ(s.status==="failed"?e.bars.filter(p=>p.passed!=null&&p.total!=null):e.bars),d=()=>o?.(s);return Ze.default.createElement("div",{role:"button",tabIndex:r,"aria-current":t?"true":void 0,"data-testid":"evaluation-run","data-run-id":s.id,"data-selected":t?"true":"false",onClick:d,onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),d())},className:t?void 0:"hover:bg-[var(--color-hover)]",title:e.meta,style:{display:"flex",flexDirection:"column",gap:5,padding:"9px 12px 9px 10px",borderTop:"1px solid var(--color-border-light)",cursor:"pointer",background:t?"var(--color-muted)":void 0,borderLeft:`2px solid ${t?"var(--color-accent-ui)":"transparent"}`,...i}},Ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0,flexWrap:n?"wrap":"nowrap"}},Ze.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:700,color:"var(--color-text-primary)"}},`#${e.number}`),Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},e.when),Ze.default.createElement(A2,{run:s}),Ze.default.createElement("span",{style:{marginLeft:"auto",flexShrink:0}},Ze.default.createElement(ff,{run:s,short:!0,testId:e.latest?"suite-pass-badge":void 0}))),c.map(p=>Ze.default.createElement(Pke,{key:p.label||"all",bar:p})),u&&Ze.default.createElement(Z1,{parts:[{value:u.passed,tone:"success"},{value:u.failed,tone:"error"}],total:u.total,height:3,title:`${u.passed} of ${u.total} passed so far${u.failed?` \xB7 ${u.failed} failed`:""}`,testId:"evaluation-run-progress"}),s.status==="failed"&&s.error_message&&Ze.default.createElement("div",{style:{...cD,color:"var(--color-error)"},title:s.error_message},`[!] ${s.error_message}`),l&&Ze.default.createElement("div",{"data-testid":"evaluation-run-note",style:cD,title:l},l),(e.delta||e.spend?.agent?.cost!=null)&&Ze.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,fontFamily:U,fontSize:10,minWidth:0}},e.delta&&Ze.default.createElement("span",{style:{fontWeight:600,color:pf[e.delta.tone]||pf.muted,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:e.version?.text},e.delta.text),e.spend?.agent?.cost!=null&&Ze.default.createElement("span",{style:{marginLeft:"auto",color:"var(--color-text-muted)",whiteSpace:"nowrap"}},Pr(e.spend.agent.cost,{estimated:e.spend.agent.estimated}))))}function pD({rows:e=null,runs:t=[],runCount:r=null,evaluation:n,agentName:o,selectedId:a=null,onOpen:i,previousRun:s=null,barsFor:l=null,deltaFor:u=null,noteFor:c=null,linkedRun:d=null,linkedBars:p=null,layout:f="rail",limit:m=null,maxHeight:y=null,expandedHeight:b=PZ,testId:g="suite-runs-panel",style:h}){let v=e??E2({runs:t,runCount:r,evaluation:n,agentName:o,selectedId:a,previousRun:s,barsFor:l,deltaFor:u}),x=t.length||!e?t:e.map(q=>q.run),S=a??v.find(q=>q.selected)?.run.id??null,k=q=>q.run.id===S,w=d&&!v.some(q=>q.run.id===d.id)?Oke(d,{evaluation:n,agentName:o,bars:p,selectedId:S}):null,_=f==="strip",A=_?fZ(v.map(q=>q.run),{limit:m,selectedId:S}).map(q=>v[q]):v,C=w?[w,...A]:A,N=v.length-A.length,L=_&&Number.isFinite(m)&&N>0,Q=sf(x,r)-x.length,B=(C.find(k)||C[0])?.run.id??null,K=(v.find(k)||v[0])?.run.id??null,[T,O]=(0,Ze.useState)(!1),I=(0,Ze.useRef)(null),P=(0,Ze.useRef)(null),j=(0,Ze.useRef)(null),M=(0,Ze.useRef)(null);(0,Ze.useEffect)(()=>()=>clearTimeout(M.current),[]),(0,Ze.useEffect)(()=>{L||O(!1)},[L]);let W=new Map(C.concat(v).map(q=>[String(q.run.id),q.run])),Y=q=>{clearTimeout(M.current),M.current=setTimeout(()=>i?.(q),Nke)},z=(q,{next:oe,prev:Me,axis:fe})=>le=>{let R=q.current,te=R?Array.from(R.querySelectorAll(cJ)):[];if(te.length===0)return;let He=le.target.closest(cJ),_e=te.indexOf(He),D;if(le.key===oe)D=te[Math.min(_e+1,te.length-1)];else if(le.key===Me)D=te[Math.max(_e-1,0)];else if(le.key==="Home")D=te[0];else if(le.key==="End")D=te[te.length-1];else return;if(le.preventDefault(),!D||D===He)return;D.focus({preventScroll:!0}),uD(R,D,fe);let G=W.get(D.dataset.runId);G&&Y(G)};Vs(()=>{if(T||j.current==null)return;let q=lD(P.current,j.current);j.current=null,q?.focus({preventScroll:!0})},[T]),Vs(()=>{S!=null&&(uD(P.current,lD(P.current,S),"x"),uD(I.current,lD(I.current,S),"y"))},[S,f,T]);let V=Q>0&&Ze.default.createElement("div",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)",padding:"8px 12px",borderTop:"1px solid var(--color-border-light)"}},`${St(Q,"older run")} \xB7 reachable by link`);return _?Ze.default.createElement(Zr,{title:"Runs",meta:A0(x,r),testId:g,style:h},Ze.default.createElement("div",{ref:P,"data-testid":"run-strip",onKeyDown:z(P,{next:"ArrowRight",prev:"ArrowLeft",axis:"x"}),style:{display:"flex",overflowX:"auto",scrollbarGutter:"stable",position:"relative"}},C.length===0&&Ze.default.createElement(Jr,{style:{flex:1}},"[ ] no runs yet"),C.map((q,oe)=>Ze.default.createElement(C2,{key:q.run.id,row:q,card:!0,selected:k(q),tabIndex:B===q.run.id?0:-1,onOpen:i,noteFor:c,style:{flex:"1 1 0",minWidth:200,borderTop:"none",borderRight:oeO(q=>!q),className:"bg-transparent hover:bg-[var(--color-hover)]",style:{display:"block",width:"100%",textAlign:"left",padding:"6px 12px",border:0,borderTop:"1px solid var(--color-border-light)",cursor:"pointer",fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"}},T?`[-] latest ${m}`:`[+] ${St(N,"earlier run")}`),L&&T&&Ze.default.createElement("div",{ref:I,onKeyDown:z(I,{next:"ArrowDown",prev:"ArrowUp",axis:"y"}),style:{maxHeight:b,overflowY:"auto",position:"relative",scrollbarGutter:"stable"}},v.map(q=>Ze.default.createElement(C2,{key:q.run.id,row:q,selected:k(q),tabIndex:K===q.run.id?0:-1,noteFor:c,onOpen:oe=>{j.current=oe.id,O(!1),i?.(oe)}})),V)):Ze.default.createElement(Zr,{title:"Runs",meta:A0(x,r),testId:g,style:{display:"flex",flexDirection:"column",maxHeight:y||void 0,...h},bodyStyle:{flex:1,minHeight:0,display:"flex",flexDirection:"column"}},Ze.default.createElement("div",{ref:I,onKeyDown:z(I,{next:"ArrowDown",prev:"ArrowUp",axis:"y"}),style:{flex:1,minHeight:0,overflowY:"auto",position:"relative",scrollbarGutter:"stable"}},w&&Ze.default.createElement(Ze.default.Fragment,null,Ze.default.createElement("div",{"data-testid":"runs-rail-linked",style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)",padding:"4px 12px",background:"var(--color-muted)"}},`linked \xB7 older than the latest ${x.length}`),Ze.default.createElement(C2,{row:w,selected:k(w),tabIndex:B===w.run.id?0:-1,onOpen:i,noteFor:c})),!w&&v.length===0&&Ze.default.createElement(Jr,null,"[ ] no runs yet"),v.map(q=>Ze.default.createElement(C2,{key:q.run.id,row:q,selected:k(q),tabIndex:B===q.run.id?0:-1,onOpen:i,noteFor:c})),V))}var pJ=(e=[],t=null)=>{let r=e[0],n=Number.isFinite(t)?Math.max(t,e.length):e.length;return[St(n,"run"),r?`latest #${Sh(r,0,e,t)} ${wo(r.completed_at||r.created_at)}`:null,r?.status==="complete"&&r.samples_evaluated?`${Vn(r.samples_passed||0,r.samples_evaluated)} passed`:null].filter(Boolean).join(" \xB7 ")};var Mt=Z(J());var dd=Z(J());function _l({text:e=null,url:t=null,label:r="Copy as Markdown",title:n,testId:o="copy-markdown",style:a}){let[i,s]=(0,dd.useState)("idle"),l=(0,dd.useRef)(null);return(0,dd.useEffect)(()=>()=>clearTimeout(l.current),[]),!e&&!t?null:dd.default.createElement(ce,{size:"sm",variant:"ghost",onClick:async c=>{c?.stopPropagation?.();let d=e?await ud(e):await aZ(t);s(d?"copied":"failed"),clearTimeout(l.current),l.current=setTimeout(()=>s("idle"),2e3)},testId:o,title:n||"Copy as GitHub-flavored Markdown, for an issue or a pull request",style:{padding:"4px 8px",fontSize:12,color:i==="failed"?"var(--color-error)":i==="copied"?"var(--color-success-text)":"var(--color-text-secondary)",...a}},i==="copied"?"Copied":i==="failed"?"Copy failed":r)}var Oi="var(--color-text-muted)",fD=3,fJ={passed:0,total:0},mJ={items:0,faults:0,scenarios:0},Mke={keys:[],dropped:[]},Cl=(e,t,r={})=>({fontFamily:U,fontSize:e,color:t,...r}),L0=e=>typeof window>"u"?"#":Re(e),Ike=e=>{let[t,r]=(0,Mt.useState)(()=>Date.now());return(0,Mt.useEffect)(()=>{if(!e)return;r(Date.now());let n=setInterval(()=>r(Date.now()),1e3);return()=>clearInterval(n)},[e]),t};function gJ({short:e,label:t}){return Mt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},Mt.default.createElement("span",{style:Cl(10,Oi,{width:110,flexShrink:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),title:t||void 0},e),Mt.default.createElement("span",{style:Cl(11,Oi)},"\u2014"))}function mD({run:e,runNumber:t=null,latestNumber:r=null,isLatest:n=!1,runningElsewhere:o=null,agentName:a="agent",scenarioCount:i=0,groupCount:s=0,columns:l=[],judgedBy:u="rules",bars:c=[],delta:d=null,version:p=null,totals:f=fJ,settledCount:m=0,settledFailed:y=0,expectedResults:b=0,running:g=!1,loading:h=!1,spend:v=null,fixSummary:x=mJ,selectionLabel:S=null,sandboxLabel:k=null,reportPath:w=null,rerun:_=Mke,onSelectLatest:A,onWatchLatest:C,onJumpToFix:N,onRerunFailed:L,onRunAgain:Q}){let{darkMode:B}=ut(),K=Ike(g);if(!e)return null;let T=gh(w),O=e.status==="failed",I=e.status==="complete",P=g?`started ${wo(e.created_at)}`:wo(e.completed_at||e.created_at),j=`@${a} \xB7 ${St(i,"scenario")}${s?` in ${St(s,"group")}`:""} \xD7 ${St(l.length,"model")} \xB7 judged by ${u}${k?` \xB7 against ${k}`:""}`,M=_?.keys||[],W=_?.dropped||[],Y=W.length?`${M.length} of ${M.length+W.length}`:`${M.length}`,z="Replay every scenario that failed on any model, under the models in the picker"+(W.length?` \xB7 not replayed (disabled or removed): ${W.join(", ")}`:""),V=KZ(e,K),q=[{key:"duration",width:Na.duration,content:V!=null&&Mt.default.createElement("span",{style:Cl(11)},g?GZ(V):rD(V)),title:e.usage?.runtime_ms!=null?"Wall clock, as the run recorded it":"From the run's start to its end",empty:"Duration is read once the run starts"},{key:"delta",width:136,content:d&&Mt.default.createElement("span",{style:{display:"flex",flexDirection:"column",gap:1}},Mt.default.createElement("span",{style:Cl(11,pf[d.tone]||pf.muted,{fontWeight:600})},d.text),p&&Mt.default.createElement("span",{"data-testid":"run-version-delta",style:Cl(10,$0[p.kind]||$0.same)},p.text)),title:"Samples passed, against the run before",empty:I&&!d?"Movement is read against the run before, which is not loaded":"Movement is read once the run completes"},{key:"badge",content:Mt.default.createElement(ff,{run:e,testId:"suite-run-badge"})}],oe=f||fJ,Me=oe.total>0?oe.passed/oe.total:null,fe=O?{value:"\u2014",valueColor:Oi,sub:m?`${m} of ${b} before it failed`:"run failed"}:g?{value:`${oe.passed} passed`,sub:Mt.default.createElement("span",{"data-testid":"suite-run-progress"},`${m} of ${b} results in${y?` \xB7 ${y} failed`:""}`)}:{value:Vn(oe.passed,oe.total),valueColor:Me==null?Oi:Dn[eu(Me)].text,sub:`${Math.max(oe.total-oe.passed,0)} failed \xB7 ${St(i,"scenario")} \xD7 ${St(l.length,"model")}`},le=c.slice(0,fD),R=Mt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:5,fontWeight:400,lineHeight:"normal"}},c.length===0&&l.length===0&&Mt.default.createElement("span",{style:Cl(11,Oi)},"\u2014"),c.length===0&&l.map(ee=>Mt.default.createElement(gJ,{key:ee,short:bn(ee).short,label:ee})),le.map(ee=>ee.passed==null||ee.total==null?Mt.default.createElement(gJ,{key:ee.label||"all",short:ee.short,label:ee.label}):Mt.default.createElement(tu,{key:ee.label||"all",label:ee.short,labelWidth:110,passed:ee.passed,total:ee.total,height:4,valueWidth:48}))),te=c.length>fD?Mt.default.createElement("span",{style:Cl(10,Oi)},`+${c.length-fD} more`):void 0,He=x||mJ,_e=O?{value:"\u2014",valueColor:Oi,sub:"\u2014"}:h?{value:"\u2026",valueColor:Oi,sub:"loading\u2026"}:g?{value:"\u2026",valueColor:Oi,sub:"scoring\u2026"}:He.items>0?{value:He.items,valueColor:Dn.error.text,sub:Mt.default.createElement("span",{style:{color:"var(--color-info)"}},`${St(He.faults,"fault")} across ${St(He.scenarios,"scenario")} ${nv.link}`)}:{value:"0",valueColor:Oi,sub:"nothing to fix"},D=()=>N?.(),E=O?{}:{role:"button",tabIndex:0,onClick:D,onKeyDown:ee=>{(ee.key==="Enter"||ee.key===" ")&&(ee.preventDefault(),D())},style:{cursor:"pointer"}},$=`The faults this run found, grouped into fixes${O?"":" \u2014 opens What to fix"}`;return Mt.default.createElement(je,{padding:0,testId:"suite-run-header",style:{overflow:"hidden"}},Mt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",padding:"10px 16px",borderBottom:"1px solid var(--color-border-light)"}},Mt.default.createElement("span",{style:Cl(13,"var(--color-text-primary)",{fontWeight:700})},`Run #${t??"?"}`),Mt.default.createElement("span",{style:Cl(11,Oi,{whiteSpace:"nowrap"})},P),n&&Mt.default.createElement(ke,{tone:"info",size:10,style:{padding:"1px 6px"}},"latest"),Mt.default.createElement(A2,{run:e}),Mt.default.createElement("span",{style:Cl(11,Oi,{minWidth:0,textWrap:"pretty"})},j),S&&Mt.default.createElement(ke,{tone:"muted",size:10,style:{padding:"1px 6px"},testId:"suite-run-selection"},S),!n&&Mt.default.createElement(Gr,{onClick:()=>A?.(),title:"Show the suite's latest run",testId:"suite-latest-run"},`latest${r!=null?` #${r}`:""}`),o&&Mt.default.createElement(Gr,{onClick:()=>C?.(),title:"A newer run is going; show it as it replays",testId:"suite-watch-latest"},`#${o.number??r??"?"} is running \xB7 watch`),I&&!h&&M.length>0&&Mt.default.createElement(Gr,{onClick:()=>L?.(),title:z,testId:"suite-rerun-failed"},`re-run failed (${Y})`),O&&Mt.default.createElement(Gr,{onClick:()=>Q?.(),title:"Replay what this run was asked to, under the models in the picker",testId:"suite-run-again"},"run again"),w&&Mt.default.createElement(Gr,{href:L0(w),onClick:()=>lt(w),title:"The run rendered as a report page",testId:"suite-run-report"},"run report"),T&&Mt.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:10,flexWrap:"wrap"},"data-testid":"suite-run-exports"},Mt.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:Oi}},"download"),Mt.default.createElement(Gr,{href:L0(T.html),title:"The report as one self-contained HTML page",testId:"suite-run-download-html"},"html"),Mt.default.createElement(Gr,{href:L0(T.json),title:"The run as the evaluation report envelope another install imports",testId:"suite-run-download-json"},"json"),Mt.default.createElement(Gr,{href:L0(T.md),title:"The report as GitHub-flavored Markdown",testId:"suite-run-download-md"},"markdown"),Mt.default.createElement(_l,{url:L0(T.markdown),label:"copy markdown",testId:"suite-run-copy-markdown",title:"Copy the whole report as GitHub-flavored Markdown",style:{padding:"0 4px",fontFamily:U,fontSize:11}})),Mt.default.createElement("span",{style:{marginLeft:"auto"}},Mt.default.createElement(ad,{darkMode:B,cells:q}))),Mt.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},Mt.default.createElement(df,{label:"Passed",title:"Results that passed, over every scenario \xD7 model the run covers",testId:"suite-run-passed",...fe}),Mt.default.createElement(df,{label:"Models",title:"Each model's passed scenarios \u2014 counted from the results that have landed while the run goes",testId:"suite-run-models",value:R,sub:te}),Mt.default.createElement(aD,{spend:v,pending:g,failed:O}),Mt.default.createElement(iD,{spend:v,judgedBy:u,pending:g,failed:O}),Mt.default.createElement(df,{label:"To fix",title:$,testId:"suite-to-fix",...E,..._e})),g&&b>0&&Mt.default.createElement(Z1,{parts:[{value:m-y,tone:"success"},{value:y,tone:"error"}],total:b,height:4,radius:0,role:"progressbar","aria-label":"Results in","aria-valuemin":0,"aria-valuemax":b,"aria-valuenow":m,"aria-valuetext":`${m} of ${b} results in${y?`, ${y} failed`:""}`,testId:"suite-run-progress-bar"}),O&&Mt.default.createElement("div",{"data-testid":"suite-run-error",style:{padding:"8px 16px",background:"var(--color-error-soft)",color:"var(--color-error-text)",fontSize:13}},`[!] ${e.error_message||"unknown error"}`))}var Oo=Z(J());function gf({evaluation:e,run:t=null,keys:r=null,spend:n=null,spendTotal:o=!1,reportPath:a=null,onDelete:i,deleting:s=!1,deleteLabel:l="Delete evaluation"}){let u=(r||(e.criteria||[]).map(m=>m.key)).map(m=>_0(e,m)),c={fontFamily:U,fontSize:11,color:"var(--color-text-muted)"},d={fontFamily:U,fontSize:11,color:"var(--color-text-cell)"},p=(m,y,b)=>Oo.default.createElement("span",{"data-testid":y,title:b,style:{...c,fontSize:10,textTransform:"uppercase",letterSpacing:"0.04em",marginLeft:2}},m),f=sJ(n,{total:o});return Oo.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:6,paddingTop:12,borderTop:"1px solid var(--color-border-light)"},"data-testid":"criteria-footer"},Oo.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap",rowGap:4}},Oo.default.createElement("span",{style:c},"judge"),Oo.default.createElement("span",{style:{...d,fontWeight:600}},xh(e,t)),Oo.default.createElement("span",{style:{...c,marginLeft:8}},"criteria"),u.length===0&&Oo.default.createElement("span",{style:c},e.judge_kind==="judge_defined"?"defined by the judge on the first run":e.scenario_suite?"each scenario's own expectations":"\u2014"),u.map((m,y)=>Oo.default.createElement(Oo.default.Fragment,{key:m.key||y},y>0&&Oo.default.createElement("span",{style:c},"\xB7"),Oo.default.createElement("span",{style:d,title:vh(m)||void 0},g2(m)),kl(m)==="telemetry"&&p("telemetry","score-source-telemetry","Scored from the agent's telemetry traces, not from sampled generations"),kl(m)==="judge"&&p("judge",void 0,"Scored by the judge model; needs provider credentials"))),Oo.default.createElement("span",{style:{...c,marginLeft:8},title:"A sample or scenario passes at or above this score","data-testid":"criteria-threshold"},Q1(.7))),Oo.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:16,flexWrap:"wrap",rowGap:4}},Oo.default.createElement("span",{style:{...c,whiteSpace:"nowrap"},title:"Run this evaluation again from the API"},"POST /api/evaluations/",e.id,"/run"),f&&Oo.default.createElement("span",{style:{...c,minWidth:0,textWrap:"pretty"},title:"What this run spent: the agent's replays or sampled interactions, and the judge's own calls"},f),f&&n?.totalEstimated&&Oo.default.createElement("span",{style:{...c,whiteSpace:"nowrap"},"data-testid":"criteria-cost-legend"},il),a&&Oo.default.createElement(Gr,{href:Re(a),onClick:()=>lt(a),title:"The run rendered as a report page"},"run report"),i&&Oo.default.createElement("button",{type:"button",onClick:m=>{m.stopPropagation(),i()},disabled:s,title:"Delete this evaluation and its runs",style:{marginLeft:"auto",background:"transparent",border:"none",padding:0,cursor:s?"not-allowed":"pointer",fontFamily:U,fontSize:11,color:"var(--color-error)",opacity:s?.5:1}},s?"Deleting\u2026":l)))}var Dke=["tools","contains","not_contains"];function jke(e){let t=e.expectations||{},r=[];return Dke.forEach(n=>{t[n]?.length&&r.push(`${n}: ${t[n].join(", ")}`)}),e.notes&&r.push(`notes: ${e.notes}`),r.push(`key: ${e.key}`),`${e.prompt} | ${r.join(" | ")}`}function hJ(e){let t=[],r=null;return e.forEach(n=>{(n.group||"")!==(r||"")&&(r=n.group,r&&t.push(`# ${r}`)),t.push(jke(n))}),t.join(` +`)}var se=Z(J());var jr=Z(J());var $ke=e=>e>=.85?"success":e>=.7?"warning":"error";function Ch({label:e,children:t,title:r,nowrap:n=!0}){return jr.default.createElement("span",{style:{whiteSpace:n?"nowrap":"normal"},title:r},e," ",jr.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},t))}function z0({label:e,short:t,provider:r,winner:n=!1,passed:o,total:a,avgScore:i,criteria:s,latencyMs:l,p50Ms:u=null,p95Ms:c=null,inputTokens:d,outputTokens:p,cost:f,perInteraction:m,estimated:y=!1,judgeCost:b=null,judgeCalls:g=0,judgeEstimated:h=!1,unit:v="interaction",badges:x=[],note:S,testId:k="model-scorecard"}){let w=o!=null&&a>0,_=w?o/a:null,A=w?eu(_):i!=null?$ke(i):"muted",C=Dn[A].strong,N=b!=null||g>0;return jr.default.createElement(je,{padding:"14px 16px",testId:k,style:{display:"flex",flexDirection:"column",gap:10,minWidth:0}},jr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},jr.default.createElement("span",{style:{fontFamily:U,fontSize:14,fontWeight:700,color:"var(--color-text-primary)"},title:e||void 0},t||e||"all samples"),r&&jr.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},r),n&&jr.default.createElement(ke,{tone:"info",size:10,style:{padding:"1px 6px"},testId:"judges-pick"},"judge's pick")),jr.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,flexWrap:"wrap"}},jr.default.createElement("span",{style:{fontFamily:U,fontSize:26,fontWeight:700,lineHeight:1,color:C},"data-testid":"model-scorecard-headline"},w?Vn(o,a):i!=null?aa(i):"\u2014"),jr.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},w?`${v==="scenario"?"scenarios":"samples"} passed`:i!=null?"mean score":"nothing scored")),jr.default.createElement("span",{style:{display:"block",height:6,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},jr.default.createElement("span",{style:{display:"block",height:"100%",borderRadius:999,background:C,width:`${Math.round((_??i??0)*100)}%`}})),jr.default.createElement("div",{style:{display:"flex",gap:14,flexWrap:"wrap",fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"}},jr.default.createElement(Ch,{label:"score"},aa(i)),s&&jr.default.createElement(Ch,{label:"criteria"},Vn(s.cleared,s.scored)),l!=null&&jr.default.createElement(Ch,{label:"latency"},Bn(l)),u!=null&&jr.default.createElement(Ch,{label:"p50 / p95"},`${Bn(u)} / ${Bn(c)}`),(d!=null||p!=null)&&jr.default.createElement("span",{style:{whiteSpace:"nowrap"}},jr.default.createElement("span",{style:{color:"var(--color-token-in)"}},"in")," ",jr.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},y0(d))," \xB7 ",jr.default.createElement("span",{style:{color:"var(--color-token-out)"}},"out")," ",jr.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},y0(p))),f!=null&&jr.default.createElement(Ch,{label:"cost",title:`What the agent spent under this model${m!=null?` \u2014 ${Lu(m,y)} per ${v}`:""}${y?` \xB7 ${Em()}`:""}`},Pr(f,{estimated:y}),m!=null&&jr.default.createElement("span",{style:{fontWeight:400,color:"var(--color-text-muted)"}},` \xB7 ${Lu(m,y)} / ${v}`)),N&&jr.default.createElement(Ch,{label:"judge",title:"What the judge spent on this model's answers \u2014 the evaluation's own cost, not the model's"},Pr(b,{estimated:h}),jr.default.createElement("span",{style:{fontWeight:400,color:"var(--color-text-muted)"}},` \xB7 ${St(g,"call")}`))),(x.length>0||S)&&jr.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap",alignItems:"center"}},x.map(L=>jr.default.createElement(ke,{key:L.text,tone:L.tone,testId:L.testId},L.text)),S&&jr.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:S.color||"var(--color-text-muted)"}},S.text)))}var vr=Z(J());var gD={fontFamily:U,fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",color:"var(--color-text-muted)",padding:"8px 12px",textAlign:"left",verticalAlign:"bottom",whiteSpace:"nowrap"},hD={padding:"9px 12px",verticalAlign:"top",fontSize:13,color:"var(--color-text-cell)",borderTop:"1px solid var(--color-border-light)"},hf={...hD,fontFamily:U,fontSize:12,whiteSpace:"nowrap",textAlign:"right"},yf={...gD,textAlign:"right"},B0=e=>e==null?"var(--color-text-muted)":e>=.85?"var(--color-success-text)":e>=.5?"var(--color-warning-text)":"var(--color-error)";function F0({rows:e=[],unit:t="scenario",judgedBy:r=null,judgeEstimated:n=!1,title:o="Model comparison",testId:a="model-comparison-table"}){if(!e.length)return null;let i=e.some(p=>p.cost!=null),s=e.some(p=>p.judgeCost!=null||p.judgeCalls>0),l=e.some(p=>p.avgTokens!=null),u=e.some(p=>p.avgDurationMs!=null),c=e.some(p=>p.p50DurationMs!=null),d=e.some(p=>p.cost!=null&&p.estimated||p.judgeCost!=null&&n);return vr.default.createElement(je,{padding:0,style:{overflow:"hidden"},testId:a},vr.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10,padding:"10px 12px",flexWrap:"wrap"}},vr.default.createElement(Ue,null,o),vr.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},`${e.length} models \xB7 best first${r?` \xB7 judged by ${r}`:""}`),d&&vr.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"},"data-testid":"model-comparison-legend"},il)),vr.default.createElement("div",{style:{overflowX:"auto"}},vr.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},vr.default.createElement("thead",null,vr.default.createElement("tr",{style:{background:"var(--color-muted)"}},vr.default.createElement("th",{style:gD},"Model"),vr.default.createElement("th",{style:yf},"Passed"),vr.default.createElement("th",{style:yf},"Mean score"),u&&vr.default.createElement("th",{style:yf},"Avg latency"),c&&vr.default.createElement("th",{style:yf,title:"Median and 95th percentile latency, nearest rank"},"P50 / P95"),l&&vr.default.createElement("th",{style:yf,title:`Average input + output tokens per ${t}`},"Avg tokens"),i&&vr.default.createElement("th",{style:yf,title:`Cohort spend, and per ${t}`},"Cost"),s&&vr.default.createElement("th",{style:yf,title:"What the judge spent scoring this model's answers"},"Judge"),vr.default.createElement("th",{style:{...gD,width:"34%"}},"Typical fault"))),vr.default.createElement("tbody",null,e.map(p=>{let{short:f,provider:m}=bn(p.label,p.provider||"");return vr.default.createElement("tr",{key:p.label,"data-testid":"model-comparison-row","data-model":p.label},vr.default.createElement("td",{style:{...hD,whiteSpace:"nowrap"}},vr.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"},title:p.label},f),p.winner&&vr.default.createElement("span",{style:{marginLeft:6,fontFamily:U,fontSize:10,fontWeight:700,color:"var(--color-warning-text)"},title:"the judge's pick"},"\u2605 pick"),m&&vr.default.createElement("span",{style:{display:"block",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},m)),vr.default.createElement("td",{style:{...hf,color:B0(p.passRate),fontWeight:600}},Vn(p.passed,p.total)),vr.default.createElement("td",{style:hf},aa(p.avgScore)),u&&vr.default.createElement("td",{style:hf},p.avgDurationMs==null?"\u2014":Bn(p.avgDurationMs)),c&&vr.default.createElement("td",{style:hf,"data-testid":"model-comparison-percentiles"},p.p50DurationMs==null?"\u2014":`${Bn(p.p50DurationMs)} / ${Bn(p.p95DurationMs)}`),l&&vr.default.createElement("td",{style:hf,title:p.avgInputTokens==null?void 0:`${Math.round(p.avgInputTokens)} in \xB7 ${Math.round(p.avgOutputTokens||0)} out per ${t}`},p.avgTokens==null?"\u2014":On(Math.round(p.avgTokens))),i&&vr.default.createElement("td",{style:hf,title:p.cost!=null&&p.estimated?Em():void 0,"data-testid":"model-comparison-cost"},Pr(p.cost,{estimated:p.estimated}),p.costPerInteraction!=null&&vr.default.createElement("span",{style:{display:"block",fontWeight:400,color:"var(--color-text-muted)"}},`${Pr(p.costPerInteraction,{estimated:p.estimated})}/${t}`)),s&&vr.default.createElement("td",{style:hf,"data-testid":"model-comparison-judge"},p.judgeCost==null&&!p.judgeCalls?"\u2014":Pr(p.judgeCost,{estimated:n}),p.judgeCalls>0&&vr.default.createElement("span",{style:{display:"block",fontWeight:400,color:"var(--color-text-muted)"}},St(p.judgeCalls,"call"))),vr.default.createElement("td",{style:{...hD,color:p.typicalFault?"var(--color-text-cell)":"var(--color-text-muted)",textWrap:"pretty"}},wZ(p)))})))))}var Po=Z(J());var Lke=[0,25,50,75,100],zke={display:"grid",gridTemplateColumns:"minmax(64px, 200px) minmax(96px, 1fr) auto",alignItems:"center",gap:"6px 12px",padding:"10px 12px",border:"1px solid var(--color-border-light)",borderRadius:10},yJ={display:"contents"},yD={gridColumn:"1 / -1"},Bke={fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"};function Fke({passRate:e,interval:t}){return Po.default.createElement("span",{"aria-hidden":"true",style:{position:"relative",display:"block",height:14}},Po.default.createElement("span",{style:{position:"absolute",left:0,right:0,top:6,height:2,background:"var(--color-muted)"}}),t&&Po.default.createElement("span",{"data-testid":"comparison-interval-range",style:{position:"absolute",top:3,height:8,left:`${t[0]}%`,width:`${Math.max(0,Math.round((t[1]-t[0])*10)/10)}%`,boxSizing:"border-box",border:"1px solid var(--color-info)",borderRadius:999,background:"var(--color-info-soft)"}}),e!=null&&Po.default.createElement("span",{style:{position:"absolute",top:2,left:`${e}%`,width:10,height:10,marginLeft:-5,borderRadius:"50%",background:"var(--color-info)"}}))}function vD({plot:e,testId:t="comparison-intervals"}){if(!e)return null;let r=`${e.confidence}% CI`;return Po.default.createElement("div",{style:zke,"data-testid":t},Po.default.createElement(Ue,{size:10,color:"var(--color-text-muted)",style:yD},`Pass rate \xB7 ${r}`),e.rows.map(n=>{let{short:o}=bn(n.label,"");return Po.default.createElement("div",{key:n.label,style:yJ,"data-testid":"comparison-interval-row","data-model":n.label},Po.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:"var(--color-text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:n.label},o),Po.default.createElement(Fke,{passRate:n.passRate,interval:n.interval}),Po.default.createElement("span",{style:Bke},Po.default.createElement("strong",{style:{color:"var(--color-text-primary)"}},n.passRate==null?"\u2014":`${n.passRate}%`),` ${n.interval?`${n.interval[0]} to ${n.interval[1]}`:"no interval"} \xB7 ${St(n.scenarios,"scenario")}`))}),Po.default.createElement("div",{style:yJ,"aria-hidden":"true"},Po.default.createElement("span",null),Po.default.createElement("span",{style:{position:"relative",display:"block",height:14}},Lke.map(n=>Po.default.createElement("span",{key:n,style:{position:"absolute",left:`${n}%`,transform:"translateX(-50%)",fontFamily:U,fontSize:10,color:"var(--color-text-muted)"}},`${n}%`))),Po.default.createElement("span",null)),e.conclusion&&Po.default.createElement("div",{style:{...yD,fontSize:12,lineHeight:"18px",color:"var(--color-text-cell)",textWrap:"pretty"},"data-testid":"comparison-conclusion"},e.conclusion),e.resamples!=null&&Po.default.createElement("span",{style:{...yD,fontFamily:U,fontSize:10,color:"var(--color-text-muted)"}},`${r} from ${Number(e.resamples).toLocaleString("en-US")} resamples of whole scenarios`))}var $r=Z(J());var vJ={evaluation:"pinned on this evaluation",provider_key:"the provider key's default model",config:"the host's config/active_agent.yml",provider_default:"the provider's own default"},Uke={openrouter:"openrouter/auto"},xJ=(e,t)=>{let r=t?.scores?._judge;if(!r||typeof r!="object")return null;let n=vJ[r.model_source]?r.model_source:"provider_default",o=Object.entries(r.answered||{}).filter(([,i])=>Number(i)>0).sort(([i,s],[l,u])=>u-s||i.localeCompare(l)),a=r.model||null;return{agent:r.agent||"EvaluationJudgeAgent",provider:r.provider||null,requested:a,source:n,sourceText:vJ[n],providerDefault:Uke[r.provider]||null,answered:o,auto:!a,pinned:e?.judge_model||null,suggestion:e?.judge_model||a||(o.length===1?o[0][0]:"")}},bJ=e=>{if(!e)return"";let t=e.requested?`${e.requested} (${e.sourceText})`:`${e.providerDefault||"no model"} (${e.sourceText})`,r=e.answered.map(([n,o])=>`${n} \xD7${o}`).join(", ");return`${e.agent} on ${e.provider||"no provider"} \xB7 asked for ${t}${r?` \xB7 answered by ${r}`:""}`};var wJ="/settings?tab=api-keys",N2=(e=11)=>({fontFamily:U,fontSize:e,color:"var(--color-text-secondary)"});function xD({evaluation:e,run:t,label:r,onChanged:n,testId:o="judge-chip"}){let a=xJ(e,t),[i,s]=(0,$r.useState)(!1),[l,u]=(0,$r.useState)(a?.suggestion||""),[c,d]=(0,$r.useState)(!1),[p,f]=(0,$r.useState)(null);if((0,$r.useEffect)(()=>{u(a?.suggestion||"")},[a?.suggestion]),!r)return null;if(!a)return $r.default.createElement("span",{style:N2()},`judged by ${r}`);let m=async b=>{d(!0),f(null);try{let g=await fetch(`/api/evaluations/${e.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({evaluation:{judge_model:b}})}),h=await g.json().catch(()=>({}));if(!g.ok){f((h.errors||[h.error]).filter(Boolean).join(", ")||`Saving the judge failed (HTTP ${g.status})`);return}await n?.()}finally{d(!1)}},y=(b,g)=>$r.default.createElement($r.default.Fragment,null,$r.default.createElement(Ue,{size:10},b),$r.default.createElement("span",{style:{...N2(12),color:"var(--color-text-cell)",overflowWrap:"anywhere"}},g));return $r.default.createElement("span",{style:{display:"inline-flex",flexDirection:"column",gap:8,minWidth:0},"data-testid":o},$r.default.createElement("button",{type:"button",onClick:()=>s(!i),title:bJ(a),"aria-expanded":i,style:{...N2(),display:"inline-flex",alignItems:"center",gap:6,background:"none",border:"none",padding:0,cursor:"pointer"}},$r.default.createElement("span",null,"judged by ",$r.default.createElement("span",{style:{color:"var(--color-info)"}},r)),a.auto&&$r.default.createElement(ke,{tone:"warning",size:10,title:"No judge model is pinned: the provider chose"},"auto"),a.answered.length>1&&$r.default.createElement(ke,{tone:"error",size:10,title:"More than one model judged this run"},`${a.answered.length} models`)),i&&$r.default.createElement(je,{padding:"12px 14px",testId:`${o}-panel`,style:{display:"flex",flexDirection:"column",gap:10,maxWidth:560}},$r.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"max-content 1fr",columnGap:14,rowGap:6,alignItems:"baseline"}},y("Judge agent",a.agent),y("Provider",a.provider||"\u2014"),y("Asked for",a.requested?`${a.requested} \xB7 ${a.sourceText}`:`${a.providerDefault||"no model"} \xB7 ${a.sourceText}`),y("Answered by",a.answered.length?a.answered.map(([b,g])=>`${b} \xD7${g}`).join(", "):"no calls recorded")),a.auto&&$r.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},a.answered.length>1?"Different models judged this run. Pin one so runs are judged alike.":"No judge model is pinned, so a later run can be judged by a different model. Pin one to compare runs."),e?.id!=null&&$r.default.createElement("form",{onSubmit:b=>{b.preventDefault(),l.trim()&&m(l.trim())},style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},$r.default.createElement("input",{value:l,onChange:b=>u(b.target.value),placeholder:a.provider==="openrouter"?"e.g. anthropic/claude-sonnet-4.5":"judge model id","aria-label":"Judge model","data-testid":`${o}-model`,style:{flex:"1 1 220px",padding:"6px 10px",borderRadius:8,fontSize:12,fontFamily:U,boxSizing:"border-box",background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"}}),$r.default.createElement(ce,{size:"sm",variant:"primary",type:"submit",disabled:c||!l.trim()||l.trim()===a.pinned,testId:`${o}-pin`},"Pin judge model"),a.pinned&&$r.default.createElement(ce,{size:"sm",onClick:()=>m(""),disabled:c,testId:`${o}-unpin`},"Unpin")),$r.default.createElement("div",{style:{display:"flex",gap:12,flexWrap:"wrap",alignItems:"baseline"}},$r.default.createElement("span",{style:N2()},a.pinned?`next run: ${a.pinned}`:`next run: ${a.providerDefault||`${a.provider} default`}`),$r.default.createElement(Gr,{href:Re(wJ),onClick:()=>lt(wJ)},`${a.provider||"provider"} key in Settings`)),p&&$r.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},p)))}var pd=Z(J());function U0({build:e,testId:t="copy-fix-prompt",style:r}){let[n,o]=(0,pd.useState)("idle"),a=(0,pd.useRef)(null);(0,pd.useEffect)(()=>()=>clearTimeout(a.current),[]);let i=async()=>{let l="";try{l=e?.()||""}catch{l=""}let u=l?await ud(l):!1;o(u?"copied":"failed"),clearTimeout(a.current),a.current=setTimeout(()=>o("idle"),2e3)},s=n==="copied"?"Copied":n==="failed"?"Copy failed":"Copy fix prompt";return pd.default.createElement(ce,{size:"sm",variant:"ghost",onClick:i,testId:t,title:"Copy a Markdown brief of this fix \u2014 the scenarios, what they expect, what the agent did, and how to verify \u2014 for your coding harness",style:{padding:"4px 8px",fontSize:12,color:n==="failed"?"var(--color-error)":n==="copied"?"var(--color-success-text)":"var(--color-text-secondary)",...r}},s)}var T2=()=>{if(typeof window>"u"||!window.location)return"";let e=String(window.ACTIVE_AGENT_DASHBOARD?.mountPath||"").replace(/\/+$/,"");return`${window.location.origin}${e}`};var At=Z(J());var Pe=Z(J());var O2="Update from the sandbox",Wke=new Set(["queued","publishing"]);function W0(e){return!!(e&&Wke.has(e.status))}function kJ(e){if(!e)return{label:"None",tone:"neutral"};switch(e.status){case"queued":return{label:"Queued",tone:"progress"};case"publishing":return{label:"Publishing",tone:"progress"};case"draft_refused":return{label:"Branch published",tone:"neutral"};case"failed":return e.number?{label:`${SJ(e)} \xB7 update failed`,tone:"error"}:e.head_commit?{label:"Branch published \xB7 pull request not opened",tone:"error"}:{label:"Failed",tone:"error"};default:return{label:SJ(e),tone:Hke(e)}}}function SJ(e){return e.state==="merged"?"Merged":e.state==="closed"?"Closed":e.draft?"Draft":"Open"}function Hke(e){return e.state==="closed"?"error":e.state==="merged"?"success":e.draft?"neutral":"success"}function _J(e){return!e?.head_commit||!e.number||W0(e)?!1:!["closed","merged"].includes(e.state)}function CJ(e){return!!(e?.head_commit&&!e.number&&!W0(e))}function AJ(e,t,r){let n=new Set(Ah(t,r).map(o=>o.path));return(e?.files||[]).map(o=>o.path).filter(o=>!n.has(o))}function EJ(e){return(e||[]).some(t=>t.refusal==="not_read")}function NJ(e){let t=(e||"").split(/[\s,]+/).filter(Boolean);return t.length?t:null}function P2(e){return e==="changed_since_preview"}function M2(e){return new Set((e||[]).filter(t=>!t.refusal).map(t=>t.path))}function I2(e,t){let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r}function Ah(e,t){return(e||[]).filter(r=>!r.refusal&&t.has(r.path))}function TJ(e,t){let r=e||[],n=r.filter(l=>!l.refusal),o=r.length-n.length,a=Ah(r,t).length,i=n.length===1?"file":"files",s=[`${a} of ${n.length} ${i} selected`];return o>0&&s.push(`${o} cannot be published`),s.join(" \xB7 ")}function OJ(e){return{added:"A",modified:"M",deleted:"D"}[e.status]||"?"}var qke=/[\x00-\x20\x7f~^:?*[\\]|\.\.|@\{|\/\/|^[/-]|\/$|\.$|^@$/;function Kke(e){let t=(e||"").trim();return t?t.length>200?"A branch name is at most 200 characters.":!/^[\x00-\x7f]*$/.test(t)||qke.test(t)||t.split("/").some(r=>r.startsWith(".")||r.endsWith(".lock"))?`"${t}" is not a valid branch name.`:null:"Name the branch."}function PJ({files:e,selection:t,title:r,branch:n,message:o,update:a=!1}){return Ah(e,t).length===0?"Choose at least one file.":a?(o||"").trim()?null:"Add a commit message.":(r||"").trim()?Kke(n):"Add a title."}function D2({files:e,selection:t,title:r,body:n,branch:o,message:a,allowlist:i=null,update:s=!1}){let l=Ah(e,t).map(c=>({path:c.path,digest:c.digest})),u=s?{files:l,message:(a||"").trim(),update:!0}:{files:l,title:(r||"").trim(),body:n||"",branch:(o||"").trim()};return i?{...u,allowlist:i}:u}function MJ(e,t,r){let n=new URLSearchParams;(t||[]).forEach(a=>n.append("paths[]",a)),r&&r.trim()&&n.set("title",r.trim());let o=n.toString();return`/api/sandboxes/${encodeURIComponent(e)}/pull_request/patch${o?`?${o}`:""}`}function bD(e){let t=Number(e);return!Number.isFinite(t)||t<0?"":t<1024?`${t} ${t===1?"byte":"bytes"}`:t<1024*1024?`${Math.round(t/1024)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function IJ(e){return e?.repository?`Changes from a sandbox of ${e.repository}`:"Changes from a sandbox"}var DJ={add:{dark:"text-green-400",light:"text-green-700"},del:{dark:"text-red-400",light:"text-red-700"},hunk:{dark:"text-blue-300",light:"text-blue-700"},meta:{dark:"text-gray-400 font-semibold",light:"text-gray-500 font-semibold"},context:{dark:"text-gray-300",light:"text-gray-700"}};function jJ(e){return/[.!?]$/.test(e)?e:`${e}.`}function $J(){let{darkMode:e}=ut();return{darkMode:e,muted:e?"text-gray-400":"text-gray-500",strong:e?"text-white":"text-gray-900",border:e?"border-gray-700":"border-gray-200",link:`underline ${e?"text-gray-300 hover:text-white":"text-gray-700 hover:text-gray-900"}`,secondaryButton:`px-3 py-1 text-sm rounded ${e?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,primaryButton:"px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600 disabled:opacity-50",input:`w-full px-3 py-2 border rounded-lg text-sm ${e?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`,errorBox:`p-2 rounded text-xs border ${e?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`,surface:{backgroundColor:e?"#1a1a1a":"#ffffff"}}}function H0({sandbox:e,codeSession:t=null}){let r=`/api/sandboxes/${encodeURIComponent(e.session_id)}/pull_request`,[n,o]=(0,Pe.useState)(null),[a,i]=(0,Pe.useState)(null),[s,l]=(0,Pe.useState)(null),[u,c]=(0,Pe.useState)(0),[d,p]=(0,Pe.useState)(!1),f=(0,Pe.useCallback)(async()=>{let g=await fetch(r),h=await g.json().catch(()=>({}));if(!g.ok)throw new Error(at(h,`Could not load the pull request (HTTP ${g.status}).`));return h},[r]);(0,Pe.useEffect)(()=>{let g=!1,h=null,v=async()=>{try{let x=await f();if(g)return;o(x),i(null),W0(x.pull_request)&&(h=setTimeout(v,2e3))}catch(x){g||i(x.message)}};return v(),()=>{g=!0,clearTimeout(h)}},[f,u]);let m=async g=>{p(!0),i(null);try{let h=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g?{regular:!0}:{open:!0})}),v=await h.json().catch(()=>({}));if(!h.ok)throw new Error(at(v,`Could not open the pull request (HTTP ${h.status}).`));c(x=>x+1)}catch(h){i(h.message)}finally{p(!1)}},y=n?.pull_request||null,b=n?.publishing||null;return b&&!b.supported?null:Pe.default.createElement(Pe.default.Fragment,null,Pe.default.createElement(Gke,{pullRequest:y,publishing:b,error:a,opening:d,onOpenDialog:g=>l({mode:g}),onOpenBranch:m}),s&&Pe.default.createElement(Yke,{codeSession:t,sandbox:e,pullRequest:y,publishing:b,mode:s.mode,onClose:()=>l(null),onPublished:()=>{l(null),c(g=>g+1)}}))}function Gke({pullRequest:e,publishing:t,error:r,opening:n,onOpenDialog:o,onOpenBranch:a}){let i=$J(),{muted:s,strong:l,border:u,link:c,secondaryButton:d,primaryButton:p,errorBox:f}=i,{label:m,tone:y}=kJ(e),b=W0(e),g=!!t?.available,h=_J(e),v=CJ(e);return Pe.default.createElement("div",{className:`mt-2 p-3 rounded-lg border space-y-2 ${u}`},Pe.default.createElement("div",{className:"flex items-center justify-between gap-3"},Pe.default.createElement("p",{className:`text-sm font-medium ${l}`},"Pull request"),Pe.default.createElement("div",{className:"flex items-center gap-2"},t?.patch_available&&!g&&Pe.default.createElement("button",{type:"button",onClick:()=>o("patch"),className:d},"Download patch\u2026"),g&&h&&Pe.default.createElement("button",{type:"button",onClick:()=>o("update"),disabled:b,className:`${d} disabled:opacity-50`},"Update draft PR"),g&&Pe.default.createElement("button",{type:"button",onClick:()=>o("create"),disabled:b,className:p},"Open draft PR"))),t&&!g&&Pe.default.createElement("p",{className:`text-xs ${s}`},jJ(t.refusal||"Publishing is not available for this sandbox"),t.patch_available&&" You can download its changes as a patch instead."),e&&Pe.default.createElement("div",{className:"space-y-1"},Pe.default.createElement("div",{className:"flex items-center gap-2 min-w-0 text-sm"},Pe.default.createElement(Ks,{tone:y},m),e.url?Pe.default.createElement("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:`truncate ${c}`},"#",e.number," ",e.title):Pe.default.createElement("span",{className:`truncate ${l}`},e.title)),Pe.default.createElement("p",{className:`text-xs font-mono truncate ${s}`},e.branch,e.base_branch?` \u2192 ${e.base_branch}`:"",e.files?.length?` \xB7 ${e.files.length} file${e.files.length===1?"":"s"}`:""),e.status==="draft_refused"&&Pe.default.createElement("p",{className:`text-xs ${s}`},e.error_message),e.status==="failed"&&e.error_message&&Pe.default.createElement("p",{className:f},e.error_message),v&&Pe.default.createElement("div",{className:"flex flex-wrap items-center gap-3 text-xs"},e.compare_url&&Pe.default.createElement("a",{href:e.compare_url,target:"_blank",rel:"noopener noreferrer",className:c},"Compare on GitHub"),g&&Pe.default.createElement("button",{type:"button",onClick:()=>a(e.status==="draft_refused"),disabled:n,className:`${d} disabled:opacity-50`},n&&"Opening\u2026",!n&&(e.status==="draft_refused"?"Open as a regular pull request":"Open the draft PR again")))),r&&Pe.default.createElement("div",{className:f},r))}function Yke({sandbox:e,pullRequest:t,publishing:r,mode:n,onClose:o,onPublished:a,codeSession:i}){let s=`/api/sandboxes/${encodeURIComponent(e.session_id)}/pull_request`,l=n==="update",[u,c]=(0,Pe.useState)(null),[d,p]=(0,Pe.useState)(!0),[f,m]=(0,Pe.useState)(null),[y,b]=(0,Pe.useState)(new Set),[g,h]=(0,Pe.useState)(l?t?.title||"":IJ(e)),[v,x]=(0,Pe.useState)(""),[S,k]=(0,Pe.useState)(l&&t?.branch||""),[w,_]=(0,Pe.useState)(O2),[A,C]=(0,Pe.useState)(""),[N,L]=(0,Pe.useState)(null),[Q,B]=(0,Pe.useState)(!1),[K,T]=(0,Pe.useState)(0);return(0,Pe.useEffect)(()=>{let I=!1;return p(!0),(async()=>{try{let P=await fetch(`${s}/preview`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(N?{allowlist:N}:{})}),j=await P.json().catch(()=>({}));if(I)return;if(!P.ok)throw new Error(at(j,`Could not read the sandbox's changes (HTTP ${P.status}).`));c(j.preview),b(M2(j.preview.files)),k(M=>M||j.preview.suggested_branch||"")}catch(P){I||m(P.message)}finally{I||p(!1)}})(),()=>{I=!0}},[s,K,N]),Pe.default.createElement(wD,{sandbox:e,preview:u,loading:d,error:f,publishing:r,pullRequest:t,selection:y,onToggle:I=>b(P=>I2(P,I)),fields:{title:g,body:v,branch:S,message:w,allowlist:A},onField:(I,P)=>({title:h,body:x,branch:k,message:_,allowlist:C})[I](P),allowlistApplied:!!N,onApplyAllowlist:()=>{m(null),L(NJ(A))},mode:n,submitting:Q,onSubmit:async()=>{B(!0),m(null);try{let I=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...D2({files:u?.files,selection:y,title:g,body:v,branch:S,message:w,allowlist:N,update:l}),...i&&!l?{code_session_id:i.id}:{}})}),P=await I.json().catch(()=>({}));if(!I.ok)throw P2(P.code)&&T(j=>j+1),new Error(at(P,`Could not publish (HTTP ${I.status}).`));a(P.pull_request)}catch(I){m(I.message)}finally{B(!1)}},onCancel:o})}function wD({sandbox:e,preview:t,loading:r,error:n,publishing:o,pullRequest:a,selection:i,onToggle:s,fields:l,onField:u,allowlistApplied:c,onApplyAllowlist:d,mode:p,submitting:f,onSubmit:m,onCancel:y,patchHref:b}){let g=$J(),{muted:h,strong:v,border:x,link:S,secondaryButton:k,primaryButton:w,input:_,errorBox:A,darkMode:C}=g,N=t?.files||[],L=(0,Pe.useMemo)(()=>Ah(N,i),[N,i]),Q=!!o?.available,B=p==="patch"||!Q,K=p==="update"&&!B,T=t&&!B?PJ({files:N,selection:i,title:l.title,branch:l.branch,message:l.message,update:K}):null,O=K?AJ(a,N,i):[],I="Open draft PR";B?I="Download patch":K&&(I="Update draft PR");let P=`Publishes the files you tick from ${e.repository}@${e.repository_ref} through the GitHub API, as one commit on a new branch.`;return B?P=`Downloads the files you tick from ${e.repository}@${e.repository_ref} as a patch for git am or git apply.`:K&&(P="Publishes the files you tick as one commit on the pull request's branch, which then holds the checkout commit with exactly these files changed."),Pe.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",role:"dialog","aria-modal":"true","aria-label":I},Pe.default.createElement("div",{className:`w-full max-w-4xl max-h-[90vh] overflow-y-auto rounded-lg border p-5 space-y-4 ${x} ${C?"bg-gray-900":"bg-white"}`},Pe.default.createElement("div",{className:"flex items-start justify-between gap-3"},Pe.default.createElement("div",null,Pe.default.createElement("p",{className:`text-lg font-medium ${v}`},I),Pe.default.createElement("p",{className:`text-xs ${h}`},P," Nothing under .github/ is ever published.")),Pe.default.createElement("button",{type:"button",onClick:y,className:k},"Close")),r&&Pe.default.createElement("p",{className:`text-sm ${h}`},"Reading the sandbox's changes\u2026"),n&&Pe.default.createElement("div",{className:A},n),t&&Pe.default.createElement(Pe.default.Fragment,null,d&&(EJ(N)||c)&&Pe.default.createElement("div",{className:"flex flex-wrap items-end gap-2"},Pe.default.createElement("label",{className:`flex-1 min-w-[16rem] text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Only read paths matching"),Pe.default.createElement("input",{type:"text",value:l.allowlist,onChange:j=>u("allowlist",j.target.value),disabled:f||r,placeholder:"app/**, lib/*.rb",className:`${_} font-mono`})),Pe.default.createElement("button",{type:"button",onClick:d,disabled:f||r,className:`${k} disabled:opacity-50`},"Read again")),Pe.default.createElement("div",{className:"space-y-1"},Pe.default.createElement("p",{className:`text-xs font-medium uppercase tracking-wide ${h}`},"Files \xB7 ",TJ(N,i)),N.length===0&&Pe.default.createElement("p",{className:`text-sm ${h}`},"The sandbox has no changes."),Pe.default.createElement("ul",{className:"space-y-1"},N.map(j=>Pe.default.createElement("li",{key:j.path,className:"flex items-center gap-2 text-sm"},Pe.default.createElement("input",{type:"checkbox","aria-label":`Publish ${j.path}`,checked:!j.refusal&&i.has(j.path),disabled:!!j.refusal||f,onChange:()=>s(j.path)}),Pe.default.createElement("span",{className:`w-4 text-xs font-mono ${h}`},OJ(j)),Pe.default.createElement("span",{className:`font-mono truncate ${j.refusal?h:v}`},j.path),j.size!=null&&j.status!=="deleted"&&Pe.default.createElement("span",{className:`shrink-0 text-xs ${h}`},bD(j.size)),j.refusal&&Pe.default.createElement("span",{className:`shrink-0 text-xs ${C?"text-amber-300":"text-amber-700"}`},j.refusal_message))))),O.length>0&&Pe.default.createElement("p",{className:`text-xs ${C?"text-amber-300":"text-amber-700"}`},"Not ticked, so returned to how they are in the checkout commit: ",Pe.default.createElement("span",{className:"font-mono"},O.join(", "))),L.length>0&&Pe.default.createElement("div",{className:"space-y-2"},Pe.default.createElement("p",{className:`text-xs font-medium uppercase tracking-wide ${h}`},"What will be published"),L.map(j=>Pe.default.createElement(Xke,{key:j.path,file:j,classes:g}))),!B&&Pe.default.createElement("label",{className:`block text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Branch"),Pe.default.createElement("input",{type:"text",value:l.branch,onChange:j=>u("branch",j.target.value),disabled:K||f,maxLength:200,className:`${_} font-mono`})),K?Pe.default.createElement("label",{className:`block text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Commit message"),Pe.default.createElement("input",{type:"text",value:l.message,onChange:j=>u("message",j.target.value),disabled:f,className:_})):Pe.default.createElement("label",{className:`block text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Title"),Pe.default.createElement("input",{type:"text",value:l.title,onChange:j=>u("title",j.target.value),disabled:f,maxLength:256,className:_})),!B&&!K&&Pe.default.createElement("label",{className:`block text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Description"),Pe.default.createElement("textarea",{value:l.body,onChange:j=>u("body",j.target.value),disabled:f,rows:4,className:_})),Pe.default.createElement("div",{className:"flex flex-wrap items-center justify-between gap-3"},Pe.default.createElement("p",{className:`text-xs ${h}`},!Q&&jJ(o?.refusal||"Publishing is not available for this sandbox"),Q&&T),Pe.default.createElement("div",{className:"flex items-center gap-3"},L.length>0&&Pe.default.createElement("a",{href:Re((b||((j,M)=>MJ(e.session_id,j,M)))(L.map(j=>j.path),K?l.message:l.title)),className:`text-sm ${S}`},"Download patch"),Pe.default.createElement("button",{type:"button",onClick:y,className:k},"Cancel"),!B&&Pe.default.createElement("button",{type:"button",onClick:m,disabled:!!T||f,className:w},f?"Publishing\u2026":I))))))}function Xke({file:e,classes:t}){let{muted:r,border:n,darkMode:o,surface:a}=t,i=(0,Pe.useMemo)(()=>u0(e.diff),[e.diff]);return Pe.default.createElement("div",{className:`rounded border ${n}`},Pe.default.createElement("p",{className:`px-2 py-1 text-xs font-mono border-b ${n} ${r}`},e.path),e.binary?Pe.default.createElement("p",{className:`px-2 py-1 text-xs ${r}`},"Binary file, ",bD(e.size),": published as it is in the sandbox."):Pe.default.createElement("pre",{className:"max-h-72 overflow-auto p-2 text-xs font-mono",style:a},i.map((s,l)=>{let u=DJ[s.kind]||DJ.context;return Pe.default.createElement("div",{key:l,className:o?u.dark:u.light},s.text||" ")})))}var Zke=(e,t)=>e?.kind===t?.kind&&(t?.kind==="instruction"?e?.quote===t?.quote:e?.fault===t?.fault)&&[...e?.scenario_keys||[]].sort().join("\0")===[...t?.scenario_keys||[]].sort().join("\0")&&(!(t?.models||[]).length||[...e?.models||[]].sort().join("\0")===[...t.models].sort().join("\0")),j2=new Map,Jke=e=>(j2.has(e)||j2.set(e,(async()=>{let t=await fetch(e),r=await t.json().catch(()=>({}));if(!t.ok)throw new Error(r.error||"Could not load the fix workspace.");return r})().finally(()=>j2.delete(e))),j2.get(e));function SD({item:e,evaluation:t,run:r}){let[n,o]=(0,At.useState)(!1),[a,i]=(0,At.useState)(null),[s,l]=(0,At.useState)(""),[u,c]=(0,At.useState)(null),[d,p]=(0,At.useState)(!1),[f,m]=(0,At.useState)(null),y=`/api/evaluations/${t?.id}/runs/${r?.id}/fixes`,b=(0,At.useCallback)(async()=>{let _=await Jke(y);return i(_),l(A=>A||_.sandboxes?.find(C=>C.status==="ready")?.session_id||""),_},[y]);if((0,At.useEffect)(()=>{if(!t?.id||!r?.id)return;let _=!1,A,C=async()=>{try{await b()}catch(N){_||c(N.message)}!_&&n&&(A=setTimeout(C,2500))};return C(),()=>{_=!0,clearTimeout(A)}},[b,n,t?.id,r?.id]),!t?.id||!r?.id||!["fault","instruction"].includes(e.kind))return null;let g=(a?.code_sessions||[]).filter(_=>Zke(_.fix_item,e));if(!n&&g.length===0&&(!a?.project||!a?.supported))return null;let h=g.find(_=>_.id===f)||g[0],v=a?.sandboxes?.find(_=>_.session_id===(h?.sandbox_session_id||s)),x=h&&(["queued","running"].includes(h.status)||h.status==="succeeded"&&h.diff&&!h.verification?.error&&!["complete","failed"].includes(h.verification?.status)),S=a?.auth_mode!=="sandbox_login"||v?.claude_login?.credential_mode,k=async(_=null)=>{if(!(!v||d||x)){p(!0),c(null);try{let A=await fetch(`/api/sandboxes/${encodeURIComponent(v.session_id)}/code_sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({evaluation_run_id:r.id,fix_item:{kind:e.kind,fault:e.fault,quote:e.quote,scenario_keys:e.scenario_keys,models:e.models},previous_code_session_id:_?.id})}),C=await A.json();if(!A.ok)throw new Error(C.error||"Could not start this fix.");m(C.code_session.id),await b()}catch(A){c(A.message)}finally{p(!1)}}},w=h?h.verification?.status==="complete"?3:h.status==="succeeded"?2:1:0;return At.default.createElement(At.default.Fragment,null,At.default.createElement(ce,{size:"sm",variant:"primary",onClick:()=>o(!0),testId:"implement-fix"},h?"Review implementation":"Implement with Claude Code"),h?.verification?.status==="complete"&&At.default.createElement("span",{style:{fontSize:11,color:"var(--color-text-muted)"}},h.verification.counts.fixed||0," fixed \xB7 ",h.verification.counts.regressed||0," regressed"),n&&At.default.createElement(MI,{title:"Implement evaluation fix",onClose:()=>o(!1)},At.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},["Connect","Implement","Verify","Draft PR"].map((_,A)=>At.default.createElement(ke,{key:_,tone:A===w?"accent":A_.status==="ready")&&At.default.createElement("label",{style:{fontSize:12,fontWeight:600}},"Checkout sandbox",At.default.createElement("select",{"aria-label":"Checkout sandbox",style:{...PI,marginTop:8},value:s,onChange:_=>l(_.target.value)},At.default.createElement("option",{value:""},"Choose a sandbox"),a.sandboxes.filter(_=>_.status==="ready").map(_=>At.default.createElement("option",{key:_.session_id,value:_.session_id},_.repository," \xB7 ",_.repository_ref," \xB7 ",_.session_id.slice(0,8))))),a&&!v&&At.default.createElement("div",{style:g0},At.default.createElement("p",{style:{fontSize:13,marginTop:0}},"Start a checkout sandbox for this evaluation\u2019s project, then return here to implement the fix."),At.default.createElement("a",{href:Re(a.project?`/projects/${a.project.id}`:"/projects")},"Open ",a.project?.name||"Projects"," \u2192"),At.default.createElement(ce,{size:"sm",onClick:()=>b().catch(_=>c(_.message)),style:{marginLeft:12}},"Check again")),v&&a?.auth_mode==="sandbox_login"&&!x&&At.default.createElement(rf,{sandbox:v,onConnected:b,onChange:b}),v&&At.default.createElement("p",{style:{margin:0,fontSize:12,color:"var(--color-text-secondary)"}},"This session will use ",At.default.createElement("strong",null,v.claude_login?.credential_mode==="sandbox_login"?"your Claude subscription":a?.auth_mode==="local_login"?"this machine\u2019s Claude login":S?"the account\u2019s Anthropic API key":"your sandbox login after you connect"),". Verification uses the agent\u2019s own provider credentials."),!h&&At.default.createElement(ce,{variant:"primary",disabled:!v||!S||d||!!a?.refusal||!a?.supported,onClick:()=>k()},d?"Starting\u2026":"Implement this fix"),h&&At.default.createElement(At.default.Fragment,null,At.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},At.default.createElement(ke,{tone:h.status==="failed"?"error":"info"},"Claude Code \xB7 ",h.status),At.default.createElement("span",{style:{fontSize:11,color:"var(--color-text-muted)"}},"Session #",h.id)),["queued","running"].includes(h.status)&&At.default.createElement(ce,{size:"sm",onClick:async()=>{try{if(!(await fetch(`/api/sandboxes/${encodeURIComponent(v.session_id)}/code_sessions/${h.id}/cancel`,{method:"POST"})).ok)throw new Error("Could not cancel this session.");await b()}catch(_){c(_.message)}}},"Cancel session"),h.result&&At.default.createElement("p",{style:{fontSize:13,lineHeight:"20px",whiteSpace:"pre-wrap"}},h.result),h.error_message&&At.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)"}},h.error_message),h.diff&&At.default.createElement("details",null,At.default.createElement("summary",{style:{cursor:"pointer",fontSize:13}},"Review code changes"),At.default.createElement("pre",{style:{...g0,maxHeight:240,overflow:"auto",fontSize:11}},h.diff)),At.default.createElement(h0,{session:h,evaluationId:t.id,sandboxId:v?.session_id,onRetry:()=>k(h)}),h.verification?.status==="complete"&&v&&At.default.createElement(H0,{sandbox:v,codeSession:h})),u&&At.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)",fontSize:13}},u)))}var kD=6,Qke=600,Eh=12,Nh=e=>String(e||"").replace(/_/g," "),gs=e=>String(e??"").trim(),q0=e=>[...new Set(e.filter(Boolean))],_D=e=>gs(e).split(` `).map(t=>`> ${t}`).join(` -`),_D=(e,t=Yke)=>{let r=gs(e);return r.length>t?`${r.slice(0,t-1)}\u2026`:r},Gs=e=>`\`${String(e).replace(/`/g,"\u02CB")}\``,j2=e=>String(e||"").replace(/\/+$/,""),jJ=e=>e?e.kind==="instruction"?"Add to the instructions":e.kind==="fault"?`Fix: ${Eh(e.fault)}`:`Fix: ${Eh(e.label||e.kind)}`:"Fix",$J=(e,t)=>{let r=H0(e?.models||[]);return r.length?r:H0(_0(t).map(n=>typeof n=="string"?n:n?.label))},Xke=e=>!e||typeof e!="object"?[]:Object.entries(e).flatMap(([t,r])=>{let n=Array.isArray(r)?r:r==null||r===""?[]:[r];return n.length?[`${Eh(t)}: ${n.map(o=>typeof o=="object"?JSON.stringify(o):String(o)).join(", ")}`]:[]}),Zke=e=>!Array.isArray(e)||!e.length?"none":e.map(t=>{if(typeof t=="string")return t;let r=t?.name||t?.tool||"tool",n=t?.error?` (error: ${_D(t.detail||t.error,80)})`:"";return`${r}${n}`}).join(", "),Jke=(e,t=[],{labelFor:r=n=>n?.model}={})=>{let n=new Set(e?.scenario_keys||[]),o=new Set(e?.models||[]),a=t.filter(l=>l&&l.status&&l.status!=="pending"&&n.has(l.scenario_key)),i=o.size?a.filter(l=>o.has(r(l))):a,s=i.filter(l=>e?.kind==="instruction"?gs(l.diagnosis?.judge?.instruction_change)===gs(e.quote):e?.kind==="fault"?l.fault===e.fault:!0);return s.length?s:i},Qke=(e,t,r)=>{let n=(t||[]).find(a=>a?.key===e);if(n)return n;let o=r.find(a=>a?.scenario_key===e&&(a.prompt||a.scenario));return o?{...o.scenario||{},prompt:o.scenario?.prompt||o.prompt}:null},Rke=(e,t,r)=>{let n=t[0],o=n?.prompt||n?.scenario?.prompt||r?.prompt,a=n?.scenario?.expectations||r?.expectations,i=n?.scenario?.notes||r?.notes,s=[`### ${Gs(e)}`];o&&s.push("","Prompt:",kD(o));let l=Xke(a);return l.length&&s.push("",`Expects: ${l.join("; ")}`),i&&s.push("",`Notes: ${gs(i)}`),t.forEach(u=>{let c=[u.provider,u.model].filter(Boolean).join("/")||"model",d=u.score==null?"":` \xB7 score ${Number(u.score).toFixed(2)}`,p=u.fault||(u.status==="errored"?"run_error":null);s.push("",`**${c}** \xB7 ${u.status}${d}${p?` \xB7 ${Eh(p)}`:""}`),s.push(`- Tools called: ${Zke(u.tool_calls)}`);let f=u.diagnosis||{},m=[f.summary,f.recommendation||u.recommendation].map(gs).filter(Boolean).join(" ");if(m&&s.push(`- Diagnosis: ${m}`),f.judge?.suggested_tool?.name){let y=f.judge.suggested_tool;s.push(`- Suggested tool: ${Gs(y.name)}${y.description?` (${gs(y.description)})`:""}`)}u.error_message&&s.push(`- Error: ${_D(u.error_message,200)}`),u.id!=null&&s.push(`- Result id: ${u.id}${u.agent_run_id?` \xB7 agent run ${u.agent_run_id}`:""}`),u.output?s.push("","Answer:",kD(_D(u.output))):s.push("- Answer: not retained for this run")}),s},LJ=({evaluation:e,run:t,runNumber:r,agentName:n,dashboardUrl:o})=>{let a=e?.agent||{},i=n||a.name||"the agent",s=j2(o),l=[],u=t?.id!=null?`run ${r!=null?`#${r} `:""}(id ${t.id})`:null;return l.push(`Agent **${i}**${a.id!=null?` (id ${a.id}${a.slug?`, slug ${Gs(a.slug)}`:""})`:""}.`),e?.name&&l.push(`Evaluation **${e.name}**${e.id!=null?` (id ${e.id})`:""}${u?`, ${u}`:""}.`),s&&e?.id!=null&&l.push(`Dashboard: ${s}/evaluations/${e.id}${t?.id!=null?`/runs/${t.id}`:""}`),l},zJ=({evaluation:e,run:t,runNumber:r,keys:n=[],models:o=[],dashboardUrl:a})=>{let i=j2(a),s=e?.id,l=[`evaluation_id: ${s??""}`];n.length&&l.push(`keys: [${n.map(c=>`"${c}"`).join(", ")}]`),o.length&&l.push(`models: [${o.map(c=>`"${c}"`).join(", ")}]`);let u=["## Verify","","1. Make the change in the agent, not in the scenarios or their expectations.",`2. Re-run with the dashboard's MCP tool ${Gs("evaluations_run")} (${l.join(", ")})${i?`, served at ${i}/mcp`:""}${s!=null?`, or POST ${i||""}/api/evaluations/${s}/run with the same ${n.length?"keys[] and ":""}models[]`:""}.`,`3. Poll ${Gs("evaluation_runs_get")} until the run is complete${n.length?": every scenario above should pass with no fault":" and nothing is skipped or below the pass mark"}.`];return t?.id!=null&&u.push(`4. ${Gs("evaluation_runs_compare")} against run ${r!=null?`#${r} `:""}(id ${t.id}) should list them as fixed and nothing as regressed.`),u.push("","When done, say what you changed and which run proved it."),u},BJ=({item:e,evaluation:t=null,run:r=null,runNumber:n=null,results:o=[],scenarios:a=[],agentName:i=null,dashboardUrl:s="",labelFor:l,target:u="dashboard"}={})=>{if(!e)return"";u==="sandbox"&&(s="");let c=j2(s),d=H0(e.scenario_keys||[]),p=$J(e,r),f=Jke(e,o,{labelFor:l}),m=new Map;f.forEach(x=>m.set(x.scenario_key,[...m.get(x.scenario_key)||[],x]));let y=[`# ${jJ(e)}`,"",...LJ({evaluation:t,run:r,runNumber:n,agentName:i,dashboardUrl:s}),""];y.push("## What went wrong","");let b=e.count||d.length,g=`${Eh(e.fault)} on ${d.length} scenario${d.length===1?"":"s"}${p.length&&(e.models||[]).length?` under ${p.join(", ")}`:""}`;if(y.push(`${b>1?`${b} results: `:""}${g}.`),e.recommendation&&y.push("",gs(e.recommendation)),e.quote&&y.push("","The judge proposes adding this to the instructions:","",kD(e.quote)),e.note&&y.push("",gs(e.note)),H0((e.tools||[]).map(x=>typeof x=="string"?x:x?.name)).length&&(y.push("",`## ${e.tools_label?e.tools_label[0].toUpperCase()+e.tools_label.slice(1):"Tools"}`,""),(e.tools||[]).forEach(x=>{let S=typeof x=="string"?x:x?.name;if(!S)return;let _=typeof x=="object"?x.note:null,w=typeof x=="object"?x.server:null,k=w?` \xB7 served by ${w.name||w.key}${w.status?` (${w.status})`:""}`:"";y.push(`- ${Gs(S)}${_&&_!==w?.name?` \u2014 ${gs(_)}`:""}${k}`)}),e.server)){let x=e.server.status==="enabled";y.push("",`MCP server **${e.server.name||e.server.key}** (${Gs(e.server.key)}) is ${x?"enabled":`${e.server.status||"not enabled"}`} for the agent${c?`: ${c}/mcp/${e.server.key}`:""}.`)}y.push("",`## Scenario${d.length===1?"":"s"} (${d.length})`),d.slice(0,SD).forEach(x=>{y.push("",...Rke(x,m.get(x)||[],Qke(x,a,o)))}),d.length>SD&&y.push("",`Also failing: ${d.slice(SD).map(Gs).join(", ")}.`),y.push("","## Where to look","");let v=t?.agent?.id;return y.push(`- The agent's instructions and action prompts${c&&v!=null?`: ${c}/agents/${v}/edit`:""}.`),y.push(`- Its tools and MCP servers${c?`: ${c}/tools`:""}.`),e.action?.label&&y.push(`- On the dashboard: **${e.action.label}**${e.action.hint?` (${e.action.hint})`:""}${c&&e.action.path?` ${c}${e.action.path.startsWith("/")?"":"/"}${e.action.path}`:""}.`),u==="sandbox"?y.push("","- Find the agent in app/agents/ and its prompt views in app/views/agents/.","","## Verify","","1. Change the agent, not the scenarios or their expectations.","2. Run the relevant tests in this checkout. Do not commit or push.",`3. The dashboard will re-run these scenarios when you finish: ${d.join(", ")}; models: ${p.join(", ")}.`,"","Summarize your changes. Do not read or copy the sandbox\u2019s Claude credentials."):y.push("",...zJ({evaluation:t,run:r,runNumber:n,keys:d,models:p,dashboardUrl:s})),`${y.join(` +`),CD=(e,t=Qke)=>{let r=gs(e);return r.length>t?`${r.slice(0,t-1)}\u2026`:r},Gs=e=>`\`${String(e).replace(/`/g,"\u02CB")}\``,$2=e=>String(e||"").replace(/\/+$/,""),LJ=e=>e?e.kind==="instruction"?"Add to the instructions":e.kind==="fault"?`Fix: ${Nh(e.fault)}`:`Fix: ${Nh(e.label||e.kind)}`:"Fix",zJ=(e,t)=>{let r=q0(e?.models||[]);return r.length?r:q0(C0(t).map(n=>typeof n=="string"?n:n?.label))},Rke=e=>!e||typeof e!="object"?[]:Object.entries(e).flatMap(([t,r])=>{let n=Array.isArray(r)?r:r==null||r===""?[]:[r];return n.length?[`${Nh(t)}: ${n.map(o=>typeof o=="object"?JSON.stringify(o):String(o)).join(", ")}`]:[]}),e_e=e=>!Array.isArray(e)||!e.length?"none":e.map(t=>{if(typeof t=="string")return t;let r=t?.name||t?.tool||"tool",n=t?.error?` (error: ${CD(t.detail||t.error,80)})`:"";return`${r}${n}`}).join(", "),t_e=(e,t=[],{labelFor:r=n=>n?.model}={})=>{let n=new Set(e?.scenario_keys||[]),o=new Set(e?.models||[]),a=t.filter(l=>l&&l.status&&l.status!=="pending"&&n.has(l.scenario_key)),i=o.size?a.filter(l=>o.has(r(l))):a,s=i.filter(l=>e?.kind==="instruction"?gs(l.diagnosis?.judge?.instruction_change)===gs(e.quote):e?.kind==="fault"?l.fault===e.fault:!0);return s.length?s:i},r_e=(e,t,r)=>{let n=(t||[]).find(a=>a?.key===e);if(n)return n;let o=r.find(a=>a?.scenario_key===e&&(a.prompt||a.scenario));return o?{...o.scenario||{},prompt:o.scenario?.prompt||o.prompt}:null},n_e=(e,t,r)=>{let n=t[0],o=n?.prompt||n?.scenario?.prompt||r?.prompt,a=n?.scenario?.expectations||r?.expectations,i=n?.scenario?.notes||r?.notes,s=[`### ${Gs(e)}`];o&&s.push("","Prompt:",_D(o));let l=Rke(a);return l.length&&s.push("",`Expects: ${l.join("; ")}`),i&&s.push("",`Notes: ${gs(i)}`),t.forEach(u=>{let c=[u.provider,u.model].filter(Boolean).join("/")||"model",d=u.score==null?"":` \xB7 score ${Number(u.score).toFixed(2)}`,p=u.fault||(u.status==="errored"?"run_error":null);s.push("",`**${c}** \xB7 ${u.status}${d}${p?` \xB7 ${Nh(p)}`:""}`),s.push(`- Tools called: ${e_e(u.tool_calls)}`);let f=u.diagnosis||{},m=[f.summary,f.recommendation||u.recommendation].map(gs).filter(Boolean).join(" ");if(m&&s.push(`- Diagnosis: ${m}`),f.judge?.suggested_tool?.name){let y=f.judge.suggested_tool;s.push(`- Suggested tool: ${Gs(y.name)}${y.description?` (${gs(y.description)})`:""}`)}u.error_message&&s.push(`- Error: ${CD(u.error_message,200)}`),u.id!=null&&s.push(`- Result id: ${u.id}${u.agent_run_id?` \xB7 agent run ${u.agent_run_id}`:""}`),u.output?s.push("","Answer:",_D(CD(u.output))):s.push("- Answer: not retained for this run")}),s},BJ=({evaluation:e,run:t,runNumber:r,agentName:n,dashboardUrl:o})=>{let a=e?.agent||{},i=n||a.name||"the agent",s=$2(o),l=[],u=t?.id!=null?`run ${r!=null?`#${r} `:""}(id ${t.id})`:null;return l.push(`Agent **${i}**${a.id!=null?` (id ${a.id}${a.slug?`, slug ${Gs(a.slug)}`:""})`:""}.`),e?.name&&l.push(`Evaluation **${e.name}**${e.id!=null?` (id ${e.id})`:""}${u?`, ${u}`:""}.`),s&&e?.id!=null&&l.push(`Dashboard: ${s}/evaluations/${e.id}${t?.id!=null?`/runs/${t.id}`:""}`),l},FJ=({evaluation:e,run:t,runNumber:r,keys:n=[],models:o=[],dashboardUrl:a})=>{let i=$2(a),s=e?.id,l=[`evaluation_id: ${s??""}`];n.length&&l.push(`keys: [${n.map(c=>`"${c}"`).join(", ")}]`),o.length&&l.push(`models: [${o.map(c=>`"${c}"`).join(", ")}]`);let u=["## Verify","","1. Make the change in the agent, not in the scenarios or their expectations.",`2. Re-run with the dashboard's MCP tool ${Gs("evaluations_run")} (${l.join(", ")})${i?`, served at ${i}/mcp`:""}${s!=null?`, or POST ${i||""}/api/evaluations/${s}/run with the same ${n.length?"keys[] and ":""}models[]`:""}.`,`3. Poll ${Gs("evaluation_runs_get")} until the run is complete${n.length?": every scenario above should pass with no fault":" and nothing is skipped or below the pass mark"}.`];return t?.id!=null&&u.push(`4. ${Gs("evaluation_runs_compare")} against run ${r!=null?`#${r} `:""}(id ${t.id}) should list them as fixed and nothing as regressed.`),u.push("","When done, say what you changed and which run proved it."),u},UJ=({item:e,evaluation:t=null,run:r=null,runNumber:n=null,results:o=[],scenarios:a=[],agentName:i=null,dashboardUrl:s="",labelFor:l,target:u="dashboard"}={})=>{if(!e)return"";u==="sandbox"&&(s="");let c=$2(s),d=q0(e.scenario_keys||[]),p=zJ(e,r),f=t_e(e,o,{labelFor:l}),m=new Map;f.forEach(x=>m.set(x.scenario_key,[...m.get(x.scenario_key)||[],x]));let y=[`# ${LJ(e)}`,"",...BJ({evaluation:t,run:r,runNumber:n,agentName:i,dashboardUrl:s}),""];y.push("## What went wrong","");let b=e.count||d.length,g=`${Nh(e.fault)} on ${d.length} scenario${d.length===1?"":"s"}${p.length&&(e.models||[]).length?` under ${p.join(", ")}`:""}`;if(y.push(`${b>1?`${b} results: `:""}${g}.`),e.recommendation&&y.push("",gs(e.recommendation)),e.quote&&y.push("","The judge proposes adding this to the instructions:","",_D(e.quote)),e.note&&y.push("",gs(e.note)),q0((e.tools||[]).map(x=>typeof x=="string"?x:x?.name)).length&&(y.push("",`## ${e.tools_label?e.tools_label[0].toUpperCase()+e.tools_label.slice(1):"Tools"}`,""),(e.tools||[]).forEach(x=>{let S=typeof x=="string"?x:x?.name;if(!S)return;let k=typeof x=="object"?x.note:null,w=typeof x=="object"?x.server:null,_=w?` \xB7 served by ${w.name||w.key}${w.status?` (${w.status})`:""}`:"";y.push(`- ${Gs(S)}${k&&k!==w?.name?` \u2014 ${gs(k)}`:""}${_}`)}),e.server)){let x=e.server.status==="enabled";y.push("",`MCP server **${e.server.name||e.server.key}** (${Gs(e.server.key)}) is ${x?"enabled":`${e.server.status||"not enabled"}`} for the agent${c?`: ${c}/mcp/${e.server.key}`:""}.`)}y.push("",`## Scenario${d.length===1?"":"s"} (${d.length})`),d.slice(0,kD).forEach(x=>{y.push("",...n_e(x,m.get(x)||[],r_e(x,a,o)))}),d.length>kD&&y.push("",`Also failing: ${d.slice(kD).map(Gs).join(", ")}.`),y.push("","## Where to look","");let v=t?.agent?.id;return y.push(`- The agent's instructions and action prompts${c&&v!=null?`: ${c}/agents/${v}/edit`:""}.`),y.push(`- Its tools and MCP servers${c?`: ${c}/tools`:""}.`),e.action?.label&&y.push(`- On the dashboard: **${e.action.label}**${e.action.hint?` (${e.action.hint})`:""}${c&&e.action.path?` ${c}${e.action.path.startsWith("/")?"":"/"}${e.action.path}`:""}.`),u==="sandbox"?y.push("","- Find the agent in app/agents/ and its prompt views in app/views/agents/.","","## Verify","","1. Change the agent, not the scenarios or their expectations.","2. Run the relevant tests in this checkout. Do not commit or push.",`3. The dashboard will re-run these scenarios when you finish: ${d.join(", ")}; models: ${p.join(", ")}.`,"","Summarize your changes. Do not read or copy the sandbox\u2019s Claude credentials."):y.push("",...FJ({evaluation:t,run:r,runNumber:n,keys:d,models:p,dashboardUrl:s})),`${y.join(` `)} -`},FJ=({item:e,evaluation:t=null,run:r=null,runNumber:n=null,agentName:o=null,dashboardUrl:a=""}={})=>{if(!e)return"";let i=[`# ${jJ(e)}`,"",...LJ({evaluation:t,run:r,runNumber:n,agentName:o,dashboardUrl:a}),""];i.push("## What went wrong",""),i.push(`${e.label||Eh(e.kind)}${e.scope?` \xB7 ${e.scope}`:""}.`),e.text&&i.push("",gs(e.text)),Array.isArray(e.chips)&&e.chips.length&&i.push("",`${e.chipsLabel?e.chipsLabel[0].toUpperCase()+e.chipsLabel.slice(1):"Items"}: ${e.chips.slice(0,Ah).map(Gs).join(", ")}${e.chips.length>Ah?` and ${e.chips.length-Ah} more`:""}.`),Array.isArray(e.details)&&e.details.length&&(i.push(""),e.details.slice(0,Ah).forEach(d=>i.push(`- ${gs(d)}`)),e.details.length>Ah&&i.push(`- and ${e.details.length-Ah} more`));let s=(t?.criteria||[]).filter(d=>(e.chips||[]).includes(d?.key));s.length&&(i.push("","## Criteria",""),s.forEach(d=>{i.push(`- ${Gs(d.key)} (${d.type})${d.config&&Object.keys(d.config).length?`: ${JSON.stringify(d.config)}`:""}`)}));let l=j2(a);i.push("","## Where to look","");let u=t?.agent?.id;i.push(`- The agent's instructions, model config and tools${l&&u!=null?`: ${l}/agents/${u}/edit`:""}.`),e.action?.label&&i.push(`- On the dashboard: **${e.action.label}**${e.action.hint?` (${e.action.hint})`:""}${l&&e.action.path?` ${l}${e.action.path.startsWith("/")?"":"/"}${e.action.path}`:""}.`);let c=H0(e.kind==="missing"?e.chips||[]:$J({},r));return i.push("",...zJ({evaluation:t,run:r,runNumber:n,keys:[],models:c,dashboardUrl:a})),`${i.join(` +`},WJ=({item:e,evaluation:t=null,run:r=null,runNumber:n=null,agentName:o=null,dashboardUrl:a=""}={})=>{if(!e)return"";let i=[`# ${LJ(e)}`,"",...BJ({evaluation:t,run:r,runNumber:n,agentName:o,dashboardUrl:a}),""];i.push("## What went wrong",""),i.push(`${e.label||Nh(e.kind)}${e.scope?` \xB7 ${e.scope}`:""}.`),e.text&&i.push("",gs(e.text)),Array.isArray(e.chips)&&e.chips.length&&i.push("",`${e.chipsLabel?e.chipsLabel[0].toUpperCase()+e.chipsLabel.slice(1):"Items"}: ${e.chips.slice(0,Eh).map(Gs).join(", ")}${e.chips.length>Eh?` and ${e.chips.length-Eh} more`:""}.`),Array.isArray(e.details)&&e.details.length&&(i.push(""),e.details.slice(0,Eh).forEach(d=>i.push(`- ${gs(d)}`)),e.details.length>Eh&&i.push(`- and ${e.details.length-Eh} more`));let s=(t?.criteria||[]).filter(d=>(e.chips||[]).includes(d?.key));s.length&&(i.push("","## Criteria",""),s.forEach(d=>{i.push(`- ${Gs(d.key)} (${d.type})${d.config&&Object.keys(d.config).length?`: ${JSON.stringify(d.config)}`:""}`)}));let l=$2(a);i.push("","## Where to look","");let u=t?.agent?.id;i.push(`- The agent's instructions, model config and tools${l&&u!=null?`: ${l}/agents/${u}/edit`:""}.`),e.action?.label&&i.push(`- On the dashboard: **${e.action.label}**${e.action.hint?` (${e.action.hint})`:""}${l&&e.action.path?` ${l}${e.action.path.startsWith("/")?"":"/"}${e.action.path}`:""}.`);let c=q0(e.kind==="missing"?e.chips||[]:zJ({},r));return i.push("",...FJ({evaluation:t,run:r,runNumber:n,keys:[],models:c,dashboardUrl:a})),`${i.join(` `)} -`};var pd=e=>[...new Set(e)],ED=(e,t)=>{let r=e?.expectations?.[t];return Array.isArray(r)?r:r==null||r===""?[]:[r]},Nh=e=>String(e||"").replace(/_/g," "),Cl=e=>e?.status==="passed",Al=e=>!!e&&e.status!=="pending",fd=e=>!!e&&["pending","running"].includes(e.status);function q0(e,t=[],r=null){if(Array.isArray(e?.models)&&e.models.length)return e.models;let n=Object.keys(e?.scores?._models||{});if(n.length)return n;let o=_Z(e);if(o.length)return o;let a=pd(t.map(s=>Lu(e,s)));if(a.length)return a;let i=r?.compare_models||[];return i.length?i:e?["agent's model"]:[]}function Lu(e,t){let n=(sf(e).models||[]).filter(i=>i&&typeof i=="object").find(i=>i.model===t.model&&(i.provider||"")===(t.provider||""));if(n?.label)return n.label;let o=e?.scores?._models||{};if(o[t.model])return t.model;let a=[t.provider,t.model].filter(Boolean).join("/");return o[a]?a:t.model}function TD(e,t){let r=e?.scores?._models?.[t],n=(sf(e).models||[]).find(o=>o&&typeof o=="object"&&o.label===t);return bn(t,r?.provider||n?.provider||"")}function Th(e,t=[],r=[]){let n=O0(e,r);if(n.length)return n.length;let o=Object.values(e?.scores?._models||{});return o.length?Math.max(...o.map(a=>a.scenarios||0)):e?.samples_evaluated&&t.length?Math.round(e.samples_evaluated/t.length):0}function HJ(e,t,r=[],n=0){let o=e?.scores?._models?.[t];if(o&&o.scenarios!=null){let i=o.passed||0,s=o.scenarios||0;return{passed:i,failed:Math.max(s-i,0),total:s}}let a=r.filter(i=>Lu(e,i)===t);return{passed:a.filter(Cl).length,failed:a.filter(i=>Al(i)&&!Cl(i)).length,total:n||a.length}}function qJ(e,t=[],r=null,n=[]){let o=q0(e,t,r),a=Th(e,o,n);return o.map(i=>{let s={label:i,short:bn(i).short};return e?.scores?._models?.[i]?.scenarios!=null||fd(e)||t.some(u=>Lu(e,u)===i)?{...s,...HJ(e,i,t,a)}:{...s,passed:null,failed:null,total:null}})}function KJ(e,t=[],r=[],n=[]){if(e?.status==="complete"&&e.samples_evaluated!=null)return{passed:e.samples_passed||0,total:e.samples_evaluated||0};let o=Th(e,r,n)*Math.max(r.length,1);return{passed:t.filter(Cl).length,total:o}}function VJ(e,t=[]){let r=[],n={};return(Array.isArray(e)?e:[]).forEach(o=>{let a=typeof o=="string"?o:String(o?.name||"");a&&(n[a]||(n[a]={name:a,count:0,errored:!1},r.push(a)),n[a].count+=1,o&&typeof o=="object"&&o.error&&(n[a].errored=!0))}),r.map(o=>{let a=n[o],i=t.includes(o);return{...a,hit:i,label:`${o}${a.errored?" \u2717":""}${a.count>1?` \xD7${a.count}`:""}`,color:a.errored?"var(--color-error)":i?"var(--color-success-text)":"var(--color-text-muted)",weight:a.errored||i?600:400}})}var e_e=(e,t)=>{let r=String(e||"").trim();return r.length>t?`${r.slice(0,t-1)}\u2026`:r},CD=e=>e?.diagnosis?.judge?.instruction_change;function GJ(e,t=[]){let r=e?.scores?._recommendations||[];if(Array.isArray(e?.fix_items)){let a=r.length>0||t.some(CD);if(e.fix_items.length>0||!a)return e.fix_items}let n=r.map(a=>t_e(a,t)),o=new Set;return t.forEach(a=>{let i=CD(a);if(!i||o.has(i))return;o.add(i);let s=t.filter(l=>CD(l)===i);n.push({kind:"instruction",fault:"instruction change",count:s.length,scenario_keys:pd(s.map(l=>l.scenario_key)),models:pd(s.map(l=>Lu(e,l))),recommendation:a.diagnosis.judge.recommendation||a.recommendation||"",quote:i,tools_label:null,tools:[],server:null,note:null,action:{label:"Add to instructions",hint:"Agent -> Instructions",path:null}})}),n}function t_e(e,t){let r=e.fault,n=t.filter(u=>u.fault===r),o=(e.suggested_tools||[]).map(u=>typeof u=="string"?u:u?.name).filter(Boolean),a=null,i=[],s=null,l=null;if(r==="expected_tool_not_called"){a="missing tools";let u=pd(n.flatMap(d=>d.diagnosis?.evidence?.unavailable||[]));u.length||(u=pd(n.flatMap(d=>{let p=d.diagnosis?.evidence||{};return(p.expected||[]).filter(f=>!(p.called||[]).includes(f))}))),i=u.map(d=>({name:d,note:null,server:null}));let c=n.filter(d=>d.diagnosis?.summary&&(d.diagnosis?.evidence?.unavailable||[]).length===0);c.length&&c.length`${d.scenario_key} is the exception: ${d.diagnosis.summary} ${d.diagnosis.recommendation||""}`.trim()).join(" "))}else if(r==="tool_error"){a="failing tools";let u={};n.forEach(c=>(c.tool_calls||[]).forEach(d=>{!d||typeof d!="object"||!d.error||!d.name||u[d.name]||(u[d.name]={name:d.name,note:e_e(d.detail,60)||null,server:null})})),i=Object.values(u),l={label:"Open failing tools",hint:"Tools ->",path:"/tools"}}else a=o.length?"suggested tools":null,i=pd(o).map(u=>({name:u,note:null,server:null}));return!l&&a==="suggested tools"&&i.length&&(l={label:"Open suggested tools",hint:"Tools ->",path:"/tools"}),{kind:"fault",fault:r,count:e.count||n.length,scenario_keys:e.scenario_keys||pd(n.map(u=>u.scenario_key)),models:e.models||[],recommendation:e.recommendation||"",quote:null,tools_label:a,tools:i,server:null,note:s,action:l}}var OD=e=>e?.cost_source==="estimated",YJ=e=>{let t=e?.judge_usage;return t?t.estimated??(t.source!=null&&t.source!=="reported"):!1},$2=e=>{if(!e)return null;let t=e.judge_usage?.cost??null;if(e.cost==null&&t==null)return null;let r=[Pr(e.cost,{estimated:OD(e)})];return t!=null&&r.push(`judge ${Pr(t,{estimated:YJ(e)})}`),r.join(" \xB7 ")},XJ=e=>{if(!OD(e))return;let t=e.cost_rate||null;return Cm({inputTokens:t?.input_tokens??e.input_tokens,outputTokens:t?.output_tokens??e.output_tokens,rate:t})},r_e=(e,t,r={})=>{let n=e?.costs?.scenarios?.[t];if(n&&typeof n=="object")return n.cost==null&&n.judge_cost==null?null:{cost:n.cost??null,judgeCost:n.judge_cost??null,total:n.total??null,estimated:!!n.estimated};let o=Object.values(r||{}).filter(Al),a=o.map(u=>u.cost).filter(u=>u!=null),i=o.map(u=>u.judge_usage?.cost).filter(u=>u!=null);if(!a.length&&!i.length)return null;let s=a.length?a.reduce((u,c)=>u+Number(c),0):null,l=i.length?i.reduce((u,c)=>u+Number(c),0):null;return{cost:s,judgeCost:l,total:(s||0)+(l||0),estimated:o.some(u=>OD(u)||YJ(u))||a.length>0&&a.length{let t=e.filter(Boolean);if(!t.length)return null;let r=t.filter(i=>i.cost!=null),n=t.filter(i=>i.judgeCost!=null),o=r.length?r.reduce((i,s)=>i+s.cost,0):null,a=n.length?n.reduce((i,s)=>i+s.judgeCost,0):null;return{cost:o,judgeCost:a,total:(o||0)+(a||0),estimated:t.some(i=>i.estimated)}};function ZJ({entry:e,compact:t=!1,testId:r,tokens:n=null}){let o={display:"flex",flexDirection:"column",gap:1,minWidth:0,textAlign:"right"},a=n&&(n.input!=null||n.output!=null)?se.default.createElement("span",{"data-testid":r?`${r}-tokens`:void 0,title:"input\u2192output tokens across the models",style:{...Ur(10.5),whiteSpace:"nowrap"}},MI(n.input,n.output)):null;if(!e)return se.default.createElement("span",{style:o,"data-testid":r},se.default.createElement("span",{style:Ur(12)},"\u2014"),a);if(t){let i=e.total??(e.cost!=null||e.judgeCost!=null?(e.cost||0)+(e.judgeCost||0):null),s=[];return e.cost!=null&&s.push(`agent ${Pr(e.cost,{estimated:e.estimated})}`),e.judgeCost!=null&&s.push(`judge ${Pr(e.judgeCost,{estimated:e.estimated})}`),se.default.createElement("span",{style:o,"data-testid":r},se.default.createElement("span",{title:s.join(" \xB7 ")||void 0,style:{fontFamily:U,fontSize:11,fontWeight:600,color:"var(--color-text-primary)",whiteSpace:"nowrap"}},Pr(i,{estimated:e.estimated})),a)}return se.default.createElement("span",{style:{...o,fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"},"data-testid":r},se.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},Pr(e.cost,{estimated:e.estimated})),e.judgeCost!=null&&se.default.createElement("span",{style:{color:"var(--color-text-muted)",whiteSpace:"nowrap"}},`judge ${Pr(e.judgeCost,{estimated:e.estimated})}`),a)}var Ur=(e,t="var(--color-text-muted)",r={})=>({fontFamily:U,fontSize:e,color:t,...r});function JJ({calls:e,empty:t,style:r}){return se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"2px 8px",fontFamily:U,fontSize:11,...r}},e.map(n=>se.default.createElement("span",{key:n.name,style:{color:n.color,fontWeight:n.weight}},n.label)),e.length===0&&se.default.createElement("span",{style:{color:"var(--color-text-muted)"}},t))}function QJ({run:e,columns:t,results:r=[],scenarioCount:n=0,judgedBy:o,verdict:a,evaluation:i=null,onJudgeChanged:s,markdownUrl:l=null}){let u=e?.scores?._models||{},c=Ni(e)?.judge?.estimated??!0;return se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10},"data-testid":"suite-models-panel"},se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10,flexWrap:"wrap"}},se.default.createElement(We,null,"Models"),se.default.createElement(vD,{evaluation:i,run:e,label:o,onChanged:s,testId:"suite-judge"}),se.default.createElement(kl,{url:f2(l,{part:"verdict"}),testId:"copy-verdict-markdown",title:"Copy the verdict and the model comparison as Markdown",style:{marginLeft:"auto"}})),t.length===0&&se.default.createElement(tn,{style:{border:"1px solid var(--color-border-light)",borderRadius:10}},"[ ] no models scored yet"),t.length>1&&se.default.createElement(B0,{rows:v2(e,{results:r,scenarioCount:n,columns:t,labelFor:d=>Lu(e,d)}),unit:"scenario",judgedBy:o,judgeEstimated:c}),t.length>1&&se.default.createElement(yD,{plot:vZ(e)}),t.length>0&&se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(260px, 1fr))",gap:12}},t.map(d=>{let{short:p,provider:f}=TD(e,d),m=u[d],{passed:y,total:b}=HJ(e,d,r,n),g=Object.entries(m?.faults||{}),h=hh(m,m?.scenarios),v=m&&g.length===0?{text:"[+] no faults",color:"var(--color-success-text)"}:!m&&fd(e)?{text:"scoring\u2026"}:null;return se.default.createElement(L0,{key:d,label:d,short:p,provider:f,winner:a?.winner===d,passed:y,total:b,avgScore:m?.avg_score,latencyMs:m?.avg_duration_ms,p50Ms:m?.p50_duration_ms??null,p95Ms:m?.p95_duration_ms??null,inputTokens:m?.input_tokens,outputTokens:m?.output_tokens,cost:m?.cost,perInteraction:of(m?.cost,h),estimated:g2(m,m?.scenarios),judgeCost:m?.judge_cost,judgeCalls:m?.judge_calls||0,judgeEstimated:c,unit:"scenario",badges:g.map(([x,S])=>({tone:"error",text:`${Nh(x)} \xD7${S}`})),note:v})})),a?.rationale&&se.default.createElement(Le,{padding:"12px 16px",testId:"suite-verdict",style:{display:"flex",flexDirection:"column",gap:6}},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},se.default.createElement(We,null,"Verdict"),a.judge&&se.default.createElement("span",{style:Ur(11)},`judged by ${a.judge}`)),se.default.createElement("div",{style:{fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},se.default.createElement("strong",{style:{color:"var(--color-text-primary)",fontFamily:U,fontSize:12}},a.winner),a.rationale?` \xB7 ${a.rationale}`:"")))}var o_e=(e,t)=>e==="tools"?["minmax(220px, 1.6fr)","130px",...Array(t).fill("minmax(160px, 1fr)"),"110px"].join(" "):["minmax(200px, 1.6fr)",...Array(t).fill("minmax(130px, 1fr)"),"80px","48px"].join(" "),ND={tools:10,steps:8},AD=[],a_e={},UJ=new Set,L2=e=>typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(String(e)):String(e).replace(/["\\]/g,"\\$&"),i_e=600,WJ=e=>typeof e=="number"?`${e}px`:e,s_e=e=>["INPUT","TEXTAREA","SELECT"].includes(e?.tagName);function l_e({result:e,expects:t,pending:r,compact:n=!1}){if(!e)return se.default.createElement("span",{style:{...Ur(12),fontWeight:600}},r?"\u2026":"\u2014");if(!Al(e))return se.default.createElement("span",{style:{...Ur(12),fontWeight:600}},"\u2026");let o=Cl(e),a=o?"var(--color-success)":"var(--color-error)",i=VJ(e.tool_calls,t);if(n){let s=e.fault?Nh(e.fault):e.status==="errored"?"errored":null,l=$2(e),u=`${i.map(c=>c.label).join(" ")||"no tools called"}${l?` \xB7 ${l}`:""}`;return se.default.createElement("span",{title:u,style:{display:"flex",flexDirection:"column",gap:1,minWidth:0}},se.default.createElement("span",{style:{display:"flex",alignItems:"baseline",gap:6,minWidth:0,fontFamily:U,fontSize:12,whiteSpace:"nowrap"}},se.default.createElement("span",{style:{fontWeight:700,color:a,flexShrink:0}},o?"[+]":"[!]"),se.default.createElement("span",{style:{fontWeight:600,color:a,flexShrink:0}},aa(e.score)),s&&se.default.createElement("span",{style:{fontSize:11,color:"var(--color-error-text)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis"}},s)),se.default.createElement(z2,{metrics:w2(e)}))}return se.default.createElement("div",{style:{minWidth:0,display:"flex",flexDirection:"column",gap:3}},se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:6,flexWrap:"wrap",fontFamily:U,fontSize:12}},se.default.createElement("span",{style:{fontWeight:700,color:a}},o?"[+]":"[!]"),se.default.createElement("span",{style:{fontWeight:600,color:a}},aa(e.score)),e.fault&&se.default.createElement("span",{style:{fontSize:11,color:"var(--color-error-text)"}},Nh(e.fault))),se.default.createElement(JJ,{calls:i,empty:"no tools called"}),se.default.createElement(z2,{metrics:w2(e)}),$2(e)&&se.default.createElement("span",{style:{...Ur(11,"var(--color-text-secondary)"),whiteSpace:"nowrap"},title:XJ(e),"data-testid":"scenario-cell-cost"},$2(e)))}var u_e=e=>{if(!e)return null;let t=[];e.durationMs!=null&&t.push(S2(e.durationMs));let r=MI(e.inputTokens,e.outputTokens);return r!=="\u2014"&&t.push(r),t.length?t.join(" \xB7 "):null};function z2({metrics:e,testId:t="scenario-cell-metrics",title:r="time to answer \xB7 input\u2192output tokens",style:n}){let o=u_e(e);return o?se.default.createElement("span",{"data-testid":t,title:r,style:{...Ur(10.5),whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0,...n}},o):null}var B2={passed:{text:"[+]",color:"var(--color-success)",title:"passed on every model"},failed:{text:"[!]",color:"var(--color-error)",title:"failed on at least one model"},running:{text:"[~]",color:"var(--color-warning-text)",title:"running"},queued:{text:"[ ]",color:"var(--color-text-muted)",title:"queued"},missing:{text:"[?]",color:"var(--color-text-muted)",title:"the run ended without its results"},skipped:{text:"[-]",color:"var(--color-text-muted)",title:"not in this run"},none:{text:"[ ]",color:"var(--color-text-muted)",title:"not run yet"},loading:{text:"[ ]",color:"var(--color-text-muted)",title:"loading results\u2026"}},c_e=(e,t)=>e===t||!!e&&!!t&&e.cost===t.cost&&e.judgeCost===t.judgeCost&&e.total===t.total&&e.estimated===t.estimated,d_e=(e,t)=>e===t||!!e&&!!t&&e.input===t.input&&e.output===t.output,p_e=(e,t)=>e.scenario===t.scenario&&e.results===t.results&&e.columns===t.columns&&e.step===t.step&&e.current===t.current&&e.open===t.open&&e.detail===t.detail&&e.showKey===t.showKey&&e.grid===t.grid&&e.inSelection===t.inSelection&&e.running===t.running&&e.loading===t.loading&&e.tabIndex===t.tabIndex&&c_e(e.costEntry,t.costEntry)&&d_e(e.tokens,t.tokens)&&e.timeMs===t.timeMs,f_e=se.default.memo(function({scenario:t,results:r,columns:n,step:o,current:a,open:i,detail:s,showKey:l,grid:u,inSelection:c,running:d,loading:p,costEntry:f,tokens:m=null,timeMs:y,tabIndex:b,onToggle:g,onFocus:h}){let v=t.key,x=s==="steps",S=ED(t,"tools"),_=t.enabled===!1,w=B2[o]||B2.none,k=`${v}${_?" \xB7 disabled":""}`,A=se.default.createElement("span",{"data-testid":"scenario-step",title:w.title,style:{...Ur(11,w.color),fontWeight:700,flexShrink:0}},w.text),C={fontFamily:U,fontSize:11,padding:"2px 6px",border:"1px solid var(--color-border)",borderRadius:4,color:"var(--color-text-cell)",whiteSpace:"nowrap"};return se.default.createElement("div",{"data-testid":"scenario-row","data-scenario-key":v,"data-step":o,"data-nav":v,"data-current":a?"true":void 0,role:"button","aria-expanded":i,tabIndex:b,title:x&&!l?`${k} \xB7 ${t.prompt||""}`:void 0,onClick:()=>g(v),onKeyDown:T=>{(T.key==="Enter"||T.key===" ")&&(T.preventDefault(),g(v))},onFocus:T=>h(v,T),className:i?void 0:"hover:bg-[var(--color-hover)]",style:{display:"grid",gridTemplateColumns:u,gap:ND[s]??ND.steps,padding:x?"6px 12px":"10px 12px",alignItems:x?"center":void 0,borderTop:"1px solid var(--color-border-light)",cursor:"pointer",background:i?"var(--color-muted)":void 0,boxShadow:a?"inset 2px 0 0 var(--color-warning)":void 0,opacity:_?.5:1}},x?se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,minWidth:0}},A,l&&se.default.createElement("span",{style:{...Ur(11),minWidth:0,maxWidth:"40%",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},k),se.default.createElement("span",{title:l?t.prompt:void 0,style:{flex:1,minWidth:0,fontSize:13,color:t.orphan?"var(--color-text-muted)":"var(--color-text-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},t.prompt)):se.default.createElement(se.default.Fragment,null,se.default.createElement("div",{style:{minWidth:0}},se.default.createElement("div",{style:{...Ur(11),marginBottom:2,display:"flex",gap:6}},A,se.default.createElement("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"}},k)),se.default.createElement("div",{style:{fontSize:13,lineHeight:"18px",color:"var(--color-text-primary)",textWrap:"pretty"}},t.prompt)),se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:4,alignContent:"flex-start",minWidth:0}},S.map(T=>se.default.createElement("span",{key:T,style:C},T)),S.length===0&&ED(t,"contains").map(T=>se.default.createElement("span",{key:`contains-${T}`,style:C,title:"the answer must contain this"},`contains: ${T}`)))),n.map(T=>se.default.createElement(l_e,{key:T,result:r?.[T],expects:S,pending:(d||p)&&c,compact:x})),se.default.createElement(ZJ,{entry:f,compact:x,testId:"scenario-row-cost",tokens:m}),x&&se.default.createElement("span",{"data-testid":"scenario-row-time",title:"the slowest answer across the models",style:{...Ur(11),textAlign:"right",whiteSpace:"nowrap"}},S2(y)))},p_e);function RJ({rows:e=AD,columns:t=AD,run:r=null,resultsByKey:n=a_e,runKeys:o=UJ,running:a=!1,loading:i=!1,stepsByKey:s=null,currentKey:l=null,bars:u=AD,detail:c="steps",showKey:d=!0,collapsedGroups:p=UJ,onToggleGroup:f,openKey:m=null,onToggleRow:y,following:b=!1,onStopFollowing:g,emptyLabel:h,maxHeight:v=null,renderDetail:x,boxRef:S=null,testId:_="scenario-matrix"}){let w=t.length===0?"tools":c,k=w==="steps",A=o_e(w,t.length),C=ND[w],T=k?MZ(t.length):IZ(t.length),$=le=>o.has(le.key)||!!n[le.key],Q=le=>r?i?$(le)?"loading":"skipped":h2(n[le.key],t,{inRun:$(le),running:a}):"none",B=le=>s?.[le.key]??Q(le),K=new Map(e.map(le=>[le.key,r_e(r,le.key,n[le.key])])),N=[...K.values()].some(le=>le?.estimated),O=new Map(e.map(le=>[le.key,FZ(n[le.key],t)])),D=eD(n,t),P=e.some(le=>le.group),j=[];e.forEach(le=>{let Ue=le.group||"",Je=j.find(nt=>nt.name===Ue);Je||(Je={name:Ue,rows:[]},j.push(Je)),Je.rows.push(le)});let M=le=>(le||P)&&p.has(le),[W,Y]=(0,se.useState)(null),L=[];j.forEach(le=>{(le.name||P)&&L.push(`group:${le.name}`),M(le.name)||le.rows.forEach(Ue=>L.push(Ue.key))});let G=new Set(L),q=[W,m,l].find(le=>le!=null&&G.has(le))??L[0]??null,oe=(0,se.useRef)(null),Me=(0,se.useRef)(null),[ge,ue]=(0,se.useState)(50),[R,te]=(0,se.useState)(0),Be=(0,se.useRef)(ge),ke=(0,se.useRef)({});Vs(()=>{Be.current=ge,ke.current={onToggleRow:y,onStopFollowing:g}});let ee=(0,se.useCallback)(le=>{oe.current=le,S&&(S.current=le)},[S]),z=(0,se.useCallback)(le=>ke.current.onToggleRow?.(le),[]),E=(0,se.useCallback)((le,Ue)=>{Y(le);let Je=oe.current;Je&&!Je.contains(Ue.relatedTarget)&&ke.current.onStopFollowing?.()},[]),I=()=>g?.();Vs(()=>{let le=Me.current;if(!le)return;let Ue=()=>{let nt=le.offsetHeight;nt&&ue(Tt=>Tt===nt?Tt:nt)};if(Ue(),typeof ResizeObserver>"u")return;let Je=new ResizeObserver(Ue);return Je.observe(le),()=>Je.disconnect()},[]);let V=(0,se.useCallback)(le=>{if(!le){te(0);return}let Ue=()=>te(le.offsetHeight);Ue();let Je=typeof ResizeObserver>"u"?null:new ResizeObserver(Ue);Je?.observe(le);let nt=oe.current,Tt=le.previousElementSibling;if(nt&&Tt?.hasAttribute("data-scenario-key")){let Lt=Tt.closest("[data-group]")?.querySelector('[data-testid="scenario-group-row"]');nt.scrollTo({top:JZ({rowTop:Tt.offsetTop,headerHeight:Be.current,groupRowHeight:Lt?.offsetHeight??0}),behavior:"smooth"})}return()=>{Je?.disconnect(),te(0)}},[]),F=(0,se.useRef)(null),ce=(0,se.useRef)(null),Qe=(0,se.useRef)(0);Vs(()=>{let le=oe.current;if(!le||!b||!l){F.current=l;return}let Ue=le.querySelector(`[data-scenario-key="${L2(l)}"]`);if(!Ue)return;let Je=ZZ({rowTop:Ue.offsetTop,headerHeight:ge,boxHeight:le.clientHeight});if(Math.abs(Je-le.scrollTop)>4){let nt=Date.now(){let Ue=oe.current;if(!Ue||!le)return;let Je=le.hasAttribute("data-scenario-key")?le.closest("[data-group]")?.querySelector('[data-testid="scenario-group-row"]'):null,nt=Be.current+(Je?.offsetHeight??0);le.offsetTop-ntUe.scrollTop+Ue.clientHeight&&(Ue.scrollTop=le.offsetTop+le.offsetHeight-Ue.clientHeight)};return se.default.createElement("div",{ref:ee,"data-testid":_,"data-detail":w,onWheel:I,onTouchMove:I,onKeyDown:le=>{if(s_e(le.target))return;let Ue=oe.current;if(Ue){if(le.key==="ArrowDown"||le.key==="ArrowUp"){let Je=[...Ue.querySelectorAll("[data-nav]")];if(!Je.length)return;let nt=Je.indexOf(le.target);nt<0&&(nt=Je.findIndex(Lt=>Lt.hasAttribute("data-scenario-key")&&Lt.parentElement?.contains(le.target)));let Tt=nt<0?Je[0]:Je[Math.min(Math.max(nt+(le.key==="ArrowDown"?1:-1),0),Je.length-1)];le.preventDefault(),g?.(),Tt&&Tt!==le.target&&(Tt.focus({preventScroll:!0}),it(Tt));return}le.key==="Escape"&&m&&(y?.(m),Ue.querySelector(`[data-scenario-key="${L2(m)}"]`)?.focus({preventScroll:!0}))}},style:{border:"1px solid var(--color-border-light)",borderRadius:10,overflow:"auto",position:"relative",scrollbarGutter:"stable",maxHeight:v?R?`calc(${WJ(v)} + ${R}px)`:WJ(v):void 0}},se.default.createElement("div",{style:{minWidth:T}},se.default.createElement("div",{ref:Me,style:{display:"grid",gridTemplateColumns:A,gap:C,padding:"8px 12px",alignItems:"end",position:"sticky",top:0,zIndex:2,backgroundColor:"var(--color-surface)",backgroundImage:"linear-gradient(var(--color-muted), var(--color-muted))"}},se.default.createElement(We,{size:10,color:"var(--color-text-muted)"},k?"Step":"Scenario"),!k&&se.default.createElement(We,{size:10,color:"var(--color-text-muted)"},"Expects"),t.map(le=>{let{short:Ue,provider:Je}=TD(r,le),nt=u.find(Tt=>Tt.label===le);return se.default.createElement("span",{key:le,style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},title:le},se.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:600,color:"var(--color-text-primary)"}},Ue),se.default.createElement("span",{style:Ur(10)},Je||" "),nt&&nt.passed!=null&&nt.total!=null&&se.default.createElement(Mu,{passed:nt.passed,total:nt.total,height:4,valueWidth:48,style:{marginTop:3}}),se.default.createElement(z2,{metrics:D[le],testId:"scenario-column-totals",title:"this model's answers' time added up, and its input\u2192output tokens, over the results in",style:{marginTop:2}}))}),se.default.createElement("span",{style:{textAlign:"right"},title:"What the scenario cost across every model, and what judging it cost; under it, its input\u2192output tokens"},se.default.createElement(We,{size:10,color:"var(--color-text-muted)"},"Cost")),k&&se.default.createElement("span",{style:{textAlign:"right"},title:"The slowest answer across the run's models; a group's add up"},se.default.createElement(We,{size:10,color:"var(--color-text-muted)"},"Time"))),j.map(le=>{let Ue=le.name,Je=M(Ue),nt=`group:${Ue}`,Tt=le.rows.filter($),Lt=B2[LZ(le.rows.map(B))]||B2.none,Hr=eD(n,t,le.rows.map(yt=>yt.key)),Io=t.map(yt=>{let eo=Hr[yt];if(!Tt.length)return{label:yt,text:"not in this run",color:"var(--color-text-muted)",weight:400,metrics:eo};if(i)return{label:yt,text:"loading\u2026",color:"var(--color-text-muted)",weight:400,metrics:eo};let xs=Tt.filter(pt=>Al(n[pt.key]?.[yt]));if(a&&!xs.length)return{label:yt,text:"queued",color:"var(--color-text-muted)",weight:400,metrics:eo};let bs=xs.filter(pt=>Cl(n[pt.key][yt])).length,ve=Tt.length,rt=ve&&bs===ve?"var(--color-success-text)":bs===0?"var(--color-error-text)":"var(--color-text-cell)";return{label:yt,text:`${Kn(bs,ve)} passed`,color:rt,weight:600,metrics:eo}}),vs=n_e(le.rows.map(yt=>K.get(yt.key))),Mi=UZ(le.rows.map(yt=>O.get(yt.key)));return se.default.createElement("div",{key:Ue||"__ungrouped","data-group":Ue},(Ue||P)&&se.default.createElement("div",{"data-testid":"scenario-group-row","data-group":Ue,"data-collapsed":Je?"true":"false","data-nav":nt,role:"button","aria-expanded":!Je,tabIndex:q===nt?0:-1,onClick:()=>f?.(Ue),onKeyDown:yt=>{(yt.key==="Enter"||yt.key===" "||yt.key==="ArrowLeft"&&!Je||yt.key==="ArrowRight"&&Je)&&(yt.preventDefault(),f?.(Ue))},onFocus:yt=>E(nt,yt),style:{display:"grid",gridTemplateColumns:A,gap:C,padding:"7px 12px",alignItems:"center",borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",cursor:"pointer",position:"sticky",top:ge,zIndex:1}},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0}},se.default.createElement(Na,{kind:"chevron",open:!Je}),se.default.createElement("span",{"data-testid":"scenario-group-step",title:Lt.title,style:{...Ur(11,Lt.color),fontWeight:700,flexShrink:0}},Lt.text),se.default.createElement("span",{style:{fontSize:12,fontWeight:600,color:"var(--color-text-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},Ue||"ungrouped"),k&&se.default.createElement("span",{style:{...Ur(11),whiteSpace:"nowrap"}},`\xB7 ${St(le.rows.length,"scenario")}`)),!k&&se.default.createElement("span",{style:Ur(11)},St(le.rows.length,"scenario")),Io.map(yt=>se.default.createElement("span",{key:yt.label,style:{display:"flex",flexDirection:"column",gap:1,minWidth:0}},se.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:yt.weight,color:yt.color,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},yt.text),se.default.createElement(z2,{metrics:yt.metrics,testId:"scenario-group-metrics",title:"the group's answers' time added up, and their input\u2192output tokens, on this model"}))),se.default.createElement(ZJ,{entry:vs,compact:k,testId:"scenario-group-cost",tokens:Mi}),k&&se.default.createElement("span",{"data-testid":"scenario-group-time",title:"the group's scenarios' times added up",style:{...Ur(11),textAlign:"right",whiteSpace:"nowrap"}},S2(WZ(le.rows,n,t)))),!Je&&le.rows.map(yt=>{let eo=m===yt.key;return se.default.createElement("div",{key:yt.key},se.default.createElement(f_e,{scenario:yt,results:n[yt.key],columns:t,step:B(yt),current:yt.key===l,open:eo,detail:w,showKey:d,grid:A,inSelection:$(yt),running:a,loading:i,costEntry:K.get(yt.key)??null,tokens:O.get(yt.key)??null,timeMs:RI(n[yt.key],t),tabIndex:q===yt.key?0:-1,onToggle:z,onFocus:E}),eo&&se.default.createElement("div",{ref:V},x?.(yt)))}))}),e.length===0&&se.default.createElement(tn,{style:{borderTop:"1px solid var(--color-border-light)"}},h||"[+] nothing failed in this group"),N&&se.default.createElement("div",{style:{...Ur(11),padding:"6px 12px",borderTop:"1px solid var(--color-border-light)",textAlign:"right"},"data-testid":"scenario-matrix-legend"},al)))}function m_e(e){let t=[];e.duration_ms!=null&&t.push(zn(e.duration_ms)),(e.input_tokens!=null||e.output_tokens!=null)&&t.push(`${On((e.input_tokens||0)+(e.output_tokens||0))} tokens`);let r=$2(e);return r&&t.push(r),t.join(" \xB7 ")}function g_e({label:e,run:t,result:r,expects:n,running:o}){let{short:a}=TD(t,e),i=se.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"},title:e},a),s=(g,h)=>se.default.createElement("div",{"data-testid":"scenario-result-detail",style:{background:"var(--color-card)",border:"1px solid var(--color-border-light)",borderRadius:10,overflow:"hidden",minWidth:0}},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},i,h),se.default.createElement("div",{style:{padding:"10px 12px",display:"flex",flexDirection:"column",gap:10}},g));if(!r||!Al(r))return s(se.default.createElement("span",{style:Ur(11)},o?"waiting for this replay\u2026":"not part of this run"),se.default.createElement(_e,{tone:"muted"},o?"pending":"no result"));let u=Cl(r)?"success":"error",c=VJ(r.tool_calls,n),d=r.diagnosis||{},p=d.judge||{},f=r.fault||(r.status==="errored"?"run_error":null),m=[d.summary,d.recommendation||r.recommendation].filter(Boolean).join(" ")||r.error_message||"",y=Object.entries(r.scores||{}),b=m_e(r);return s(se.default.createElement(se.default.Fragment,null,se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,flexWrap:"wrap",fontFamily:U,fontSize:11}},se.default.createElement(We,{size:10,color:"var(--color-text-muted)"},"tools"),se.default.createElement(JJ,{calls:c,empty:"none called",style:{display:"contents"}})),f&&se.default.createElement("div",{style:{background:"var(--color-error-soft)",borderRadius:8,padding:"8px 10px",fontSize:12,lineHeight:"18px",color:"var(--color-error-text)",textWrap:"pretty"}},se.default.createElement("span",{style:{fontFamily:U,fontWeight:700}},`[!] ${Nh(f)}`),m?` \u2014 ${m}`:"",p.suggested_tool?.name&&se.default.createElement("div",{style:{marginTop:4,fontFamily:U,fontSize:11}},`suggested tool: ${p.suggested_tool.name}${p.suggested_tool.description?` \u2014 ${p.suggested_tool.description}`:""}`),p.instruction_change&&se.default.createElement("div",{style:{marginTop:4,fontStyle:"italic"}},`instruction change: \u201C${p.instruction_change}\u201D`)),r.output?se.default.createElement("div",{style:{fontFamily:"var(--font-text)",fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",maxHeight:190,overflow:"auto",whiteSpace:"pre-wrap",textWrap:"pretty"}},r.output):se.default.createElement("div",{style:Ur(11)},"answer not retained for this run"),y.length>0&&se.default.createElement("div",{style:{...Ur(11),display:"flex",flexWrap:"wrap",gap:"2px 10px"},title:"score per criterion"},y.map(([g,h])=>se.default.createElement("span",{key:g},Nh(g)," ",se.default.createElement("span",{style:{color:"var(--color-text-secondary)"}},h==null?"skipped":aa(h)))))),se.default.createElement(se.default.Fragment,null,se.default.createElement(_e,{tone:u},r.score==null?r.status:`${r.status} \xB7 ${aa(r.score)}`),b&&se.default.createElement("span",{style:{marginLeft:"auto",...Ur(11)},title:XJ(r)},b),r.agent_run_id&&se.default.createElement(sd,{kind:"scenario_result",id:r.id,title:"Replay this scenario's run",testId:"scenario-result-replay",style:b?void 0:{marginLeft:"auto"}})))}function eQ({scenario:e,run:t,columns:r,resultsByKey:n,running:o,inRun:a=!0,onRerun:i,onToggleEnabled:s,canMutate:l=!0,markdownUrl:u=null}){let c=ED(e,"tools"),d=n[e.key]||{},p=r.some(m=>d[m]),f=a||p;return se.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",padding:"12px 12px 14px"},"data-testid":"scenario-drilldown"},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:10,flexWrap:"wrap"}},se.default.createElement("span",{style:Ur(11)},e.key),se.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-cell)"}},"expects"),se.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:600,color:"var(--color-text-primary)"}},c.join(" or ")||"\u2014"),t&&p&&se.default.createElement(kl,{url:f2(u,{part:"scenario",scenario:e.key}),testId:"copy-scenario-markdown",title:"Copy this scenario \u2014 the prompt, expectations and each model's result \u2014 as Markdown",style:{marginLeft:"auto"}}),l&&se.default.createElement("span",{style:{marginLeft:t&&p&&u?0:"auto",display:"flex",alignItems:"center",gap:14}},se.default.createElement("button",{type:"button",onClick:m=>{m.stopPropagation(),s?.(e)},title:e.enabled===!1?"Enable this scenario":"Disable this scenario",style:{background:"transparent",border:"none",padding:0,cursor:"pointer",fontFamily:U,fontSize:11,color:e.enabled===!1?"var(--color-text-muted)":"var(--color-text-cell)"}},e.enabled===!1?"[ ] enabled":"[x] enabled"),se.default.createElement(Gr,{onClick:()=>i?.(e),title:"Run only this scenario under the selected models"},"re-run scenario"))),e.notes&&se.default.createElement("div",{style:{fontSize:12,fontStyle:"italic",color:"var(--color-text-secondary)",marginBottom:10}},e.notes),e.catalogChanged&&se.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)",marginBottom:10}},"This run used an earlier version of this question. Re-running uses the current version."),t?f?se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(300px, 1fr))",gap:12}},r.map(m=>se.default.createElement(g_e,{key:m,label:m,run:t,result:d[m],expects:c,running:o}))):se.default.createElement("div",{style:Ur(11)},"Not part of this run \u2014 use \u201Cre-run scenario\u201D to replay it."):se.default.createElement("div",{style:Ur(11)},"No runs yet \u2014 use \u201Cre-run scenario\u201D to replay this one on its own."))}function tQ({items:e,columns:t=[],agentName:r,onNavigate:n,onOpenScenario:o,run:a=null,results:i=[],evaluation:s=null,runNumber:l=null,scenarios:u=[],onRerun:c=null,runnableFor:d=null,markdownUrl:p=null}){let f=w=>d?d(w):lf(w.scenario_keys||[],u),[m,y]=(0,se.useState)("all"),b=t.length>1,g=b?m:"all",h=b?bZ(e,i,w=>Lu(a,w)):e,v=GI(h,g),x=b?wZ(h,t):{},S=w=>BJ({item:w,evaluation:s,run:a,runNumber:l,results:i,scenarios:u,agentName:r,dashboardUrl:N2(),labelFor:k=>Lu(a,k)}),_=w=>{let k=St((w.scenario_keys||[]).length,"scenario");if(w.kind==="instruction")return`${(w.scenario_keys||[]).join(", ")} \xB7 judge suggestion`;let A=pd(w.models||[]);if(t.length<=1||A.length===0)return k;let T=A.length>=t.length?t.length===2?"both models":"all models":A.map($=>bn($).short).join(", ");return`${k} \xB7 ${T}`};return se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10},"data-testid":"fix-list"},se.default.createElement(kl,{url:f2(p,{part:"fix_items",model:g}),label:g==="all"?"Copy What to fix as Markdown":`Copy What to fix for ${bn(g).short} as Markdown`,testId:"copy-fixes-markdown",title:"Copy What to fix as Markdown, for the model the filter shows",style:{alignSelf:"flex-end"}}),b&&se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},"data-testid":"fix-list-model-filter"},se.default.createElement("span",{style:Ur(11)},"for"),se.default.createElement(Ln,{square:!0,mono:!0,selected:g==="all",onClick:()=>y("all"),testId:"fix-filter-all"},`all models ${e.length}`),t.map(w=>se.default.createElement(Ln,{key:w,square:!0,mono:!0,selected:g===w,onClick:()=>y(w),title:`Only what ${w} needs fixed`,testId:"fix-filter-model"},`${bn(w).short} ${x[w]??0}`))),v.length===0&&se.default.createElement(tn,{style:{border:"1px solid var(--color-border-light)",borderRadius:10,padding:"14px 12px"}},`[+] nothing to fix for ${bn(g).short}`),se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:12}},v.map((w,k)=>{let A=w.kind==="instruction",C=A?"info":"error",T=[],$=new Set;(w.tools||[]).forEach(O=>{let D=typeof O=="string"?O:O?.name;!D||$.has(D)||($.add(D),T.push({name:D,note:typeof O=="object"&&(O.note||O.server?.name)||null}))});let Q=w.server,B=Q?.status==="enabled",K=r||"the agent",N=c?f(w):null;return se.default.createElement("div",{key:`${w.fault}-${k}`,"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(Na,{kind:A?"info":"fault"}),se.default.createElement(_e,{tone:C},`${Nh(w.fault)}${w.count>1?` \xD7${w.count}`:""}`),o&&(w.scenario_keys||[]).length>0?se.default.createElement("button",{type:"button",onClick:()=>o(w.scenario_keys),title:`Show ${(w.scenario_keys||[]).join(", ")} \u2014 the question, the answer and the tools it called`,style:{...Ur(11),background:"none",border:0,padding:0,cursor:"pointer",color:"var(--color-text-link, var(--color-text-primary))",textDecoration:"underline",textUnderlineOffset:2}},_(w)):se.default.createElement("span",{style:Ur(11)},_(w))),w.recommendation&&se.default.createElement("p",{style:{margin:0,fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},w.recommendation),w.quote&&se.default.createElement("div",{style:{background:"var(--color-muted)",borderRadius:8,padding:"8px 10px",fontSize:12,lineHeight:"18px",color:"var(--color-text-cell)",fontStyle:"italic"}},"\u201C",w.quote,"\u201D"),T.length>0&&se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:6}},se.default.createElement(We,{size:10,color:"var(--color-text-muted)"},w.tools_label||"tools"),se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:6}},T.map(O=>se.default.createElement("span",{key:O.name,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"3px 8px",borderRadius:6,border:"1px solid var(--color-border)",fontFamily:U,fontSize:11,maxWidth:"100%"}},se.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},O.name),O.note&&se.default.createElement("span",{style:{color:"var(--color-text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:O.note},O.note))))),Q&&se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",fontSize:12,color:"var(--color-text-cell)"}},se.default.createElement("span",null,"served by"),se.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},Q.name||Q.key),se.default.createElement(_e,{tone:B?"success":"warning",size:10,style:{padding:"1px 6px"}},B?`enabled for ${K}`:`${Q.status||"unknown"} \xB7 not enabled for ${K}`)),w.note&&se.default.createElement("div",{style:{fontSize:12,lineHeight:"18px",color:"var(--color-text-secondary)",textWrap:"pretty"}},w.note),se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:"auto",paddingTop:2,flexWrap:"wrap"}},w.action?.path&&se.default.createElement(de,{size:"sm",onClick:()=>n?.(w.action.path)},w.action.label),w.action?.hint&&se.default.createElement("span",{style:{...Ur(11),whiteSpace:"nowrap"}},w.action.hint),N&&(N.keys.length?se.default.createElement(Gr,{onClick:()=>c(w,N),title:"Replay these scenarios under the models in the picker",testId:"fix-item-rerun"},`re-run ${St(N.keys.length,"scenario")}`):se.default.createElement("span",{style:{...Ur(11),whiteSpace:"nowrap"},title:`${N.dropped.join(", ")} \xB7 disabled or no longer in the suite`,"data-testid":"fix-item-rerun-none"},"re-run \xB7 none enabled")),se.default.createElement(F0,{build:()=>S(w),style:{marginLeft:"auto"}}),se.default.createElement(kl,{text:w.markdown,testId:"copy-fix-markdown",title:"Copy this fix as Markdown, for an issue or a pull request"}),se.default.createElement(wD,{item:w,evaluation:s,run:a})))})))}var rQ=e=>{let{results:t,fix_items:r,...n}=e;return n},h_e={keys:[],dropped:[]},PD={padding:"6px 10px",borderRadius:8,fontSize:12,fontFamily:U,background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"},yf={border:"1px solid var(--color-border-light)",borderRadius:10},y_e=(e,t)=>e.size===t.size&&[...e].every(r=>t.has(r)),nQ=()=>typeof localStorage<"u"?localStorage:null,oQ=()=>typeof document<"u"&&document.visibilityState==="hidden";function MD({evaluation:e,modelProviders:t,onChanged:r,onDelete:n,deleting:o=!1,initialRunId:a=null,onRunSelected:i}){let s=e.id,l=e.agent?.name||"Agent",[u,c]=(0,be.useState)(!1),[d,p]=(0,be.useState)(null),[f,m]=(0,be.useState)(e.scenarios||[]),[y,b]=(0,be.useState)(e.scenario_groups||[]),[g,h]=(0,be.useState)(e.latest_run?[e.latest_run]:[]),[v,x]=(0,be.useState)(null),[S,_]=(0,be.useState)(a??e.latest_run?.id??null),[w,k]=(0,be.useState)({}),[A,C]=(0,be.useState)({}),[T,$]=(0,be.useState)(null),[Q,B]=(0,be.useState)((e.compare_models||[]).join(", ")),K=(0,be.useMemo)(()=>t===void 0?[]:t??J1,[t]),N=xc(K),O=(0,be.useMemo)(()=>P0(N,{providers:K}),[N,K]),[D,P]=(0,be.useState)(null),[j,M]=(0,be.useState)(!1),[W,Y]=(0,be.useState)([]),[L,G]=(0,be.useState)(""),[q,oe]=(0,be.useState)(!1),[Me,ge]=(0,be.useState)(""),[ue,R]=(0,be.useState)(null),[te,Be]=(0,be.useState)(null),[ke,ee]=(0,be.useState)(!1),[z,E]=(0,be.useState)(null),[I,V]=(0,be.useState)(!0),[F,ce]=(0,be.useState)(()=>{let fe=e.scenarios||[],tt=(a==null||a===e.latest_run?.id)&&e.latest_run||null;return QI(fe,new Set(O0(tt,fe)))}),[Qe,it]=(0,be.useState)(()=>new Map),[me,le]=(0,be.useState)(()=>DZ(nQ())),[Ue,Je]=(0,be.useState)("suite"),nt=(0,be.useRef)(null),Tt=(0,be.useRef)(null),Lt=(0,be.useRef)(null),Hr=(0,be.useRef)(new Map),Io=(0,be.useRef)(new Map),vs=(0,be.useRef)({}),Mi=(0,be.useRef)(w),yt=(0,be.useRef)(S),eo=(0,be.useRef)(null),xs=I0(nt),bs=xs-EZ,ve=xs===0||bs>=NZ,rt=xs===0?0:bs-(ve?XI+ZI:0),pt=me??"steps",Qt=rt===0||rt>=PZ,Wn=(0,be.useCallback)(async()=>{let fe=await fetch(`/api/evaluations/${s}/scenarios`);if(!fe.ok)return;let tt=await fe.json();m(tt.scenarios||[]),b(tt.groups||[])},[s]),uo=(0,be.useCallback)(async()=>{try{let fe=await fetch(`/api/evaluations/${s}`);if(!fe.ok)return p(`Could not load this suite (HTTP ${fe.status})`),null;let Ct=(await fe.json()).evaluation||{};return m(Ct.scenarios||[]),b(Ct.scenario_groups||[]),h(Ct.runs||[]),x(Number.isFinite(Ct.run_count)?Ct.run_count:null),p(null),Ct}catch(fe){return p(`Could not load this suite: ${fe.message}`),null}finally{c(!0)}},[s]);Vs(()=>{Mi.current=w,yt.current=S});let nn=(0,be.useCallback)(fe=>{if(!fe)return Promise.resolve(null);if(Hr.current.has(fe))return Hr.current.get(fe);let tt=(async()=>{try{let Ct=await fetch(`/api/evaluations/${s}/runs/${fe}`);if(!Ct.ok)return C(Js=>({...Js,[fe]:`HTTP ${Ct.status}`})),null;let lr=(await Ct.json()).run;if(!lr)return C(Js=>({...Js,[fe]:"no run in the response"})),null;C(Js=>{if(!(fe in Js))return Js;let{[fe]:_s,...Ed}=Js;return Ed});let jo=Mi.current[lr.id],{results:Of,changed:qu}=GZ(jo?.results,lr.results);if(!(!!jo&&!qu&&jo.status===lr.status&&jo.completed_at===lr.completed_at&&(jo.fix_items?.length??0)===(lr.fix_items?.length??0))){let Js=rQ(lr);k(_s=>({..._s,[lr.id]:{...lr,results:Of}})),h(_s=>_s.some(Ed=>Ed.id===lr.id)?_s.map(Ed=>Ed.id===lr.id?{...Ed,...Js}:Ed):_s),$(_s=>_s&&_s.id===lr.id?{..._s,...Js}:_s)}return lr}catch(Ct){return C(rr=>({...rr,[fe]:Ct.message})),null}finally{Hr.current.delete(fe)}})();return Hr.current.set(fe,tt),tt},[s]),Oa=fe=>{$(rQ(fe)),_(fe.id),E(null)};(0,be.useEffect)(()=>{let fe=!1;return(async()=>{let tt=await uo();if(fe)return;let Ct=tt?.runs?.[0]?.id??null,rr=!!(a&&tt?.runs?.some(qu=>qu.id===a));if(a&&!rr){let qu=await nn(a);if(fe)return;if(qu){Oa(qu);return}}let lr=rr?a:null,jo=yt.current,Of=lr||(jo&&tt?.runs?.some(qu=>qu.id===jo)?jo:Ct);_(Of),Of&&nn(Of)})(),()=>{fe=!0}},[uo,nn]);let Pa=e.latest_run?.id??null;(0,be.useEffect)(()=>{!Pa||g.some(fe=>fe.id===Pa)||uo()},[Pa,g,uo]);let ws=w[S]||g.find(fe=>fe.id===S)||(T?.id===S?T:null),co=g[0]||null,Uu=fd(ws)?ws.id:fd(co)?co.id:null;(0,be.useEffect)(()=>{if(!Uu)return;let fe=!1,tt=()=>VZ(Mi.current[Uu]?.results?.length??0),Ct=lr=>{clearTimeout(eo.current),eo.current=setTimeout(async()=>{if(fe||oQ())return;let jo=null;try{jo=await nn(Uu)}catch{jo=null}if(!fe){if(jo&&!fd(jo)){await uo(),r?.();return}Ct(tt())}},lr)},rr=()=>{document.visibilityState==="visible"&&Ct(0)};return oQ()||Ct(tt()),typeof document<"u"&&document.addEventListener("visibilitychange",rr),()=>{fe=!0,clearTimeout(eo.current),typeof document<"u"&&document.removeEventListener("visibilitychange",rr)}},[Uu,nn,uo,r]);let Ss=(0,be.useCallback)(async()=>{try{let fe=await fetch("/api/sandboxes?sandbox_type=app_runtime");if(!fe.ok)return;let tt=await fe.json(),Ct=x2(tt.sandboxes);Y(Ct),G(rr=>b2(rr,Ct))}catch{}},[]);(0,be.useEffect)(()=>{Ss()},[Ss]);let Wu=ud(Q),to=async fe=>{M(!0),P(null);try{let tt=await fetch(`/api/evaluations/${s}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(kZ(fe,Wu,L))}),Ct=await tt.json().catch(()=>({}));if(!tt.ok)throw Ct.code==="sandbox_refused"&&Ss(),new Error((Ct.errors||[Ct.error]).filter(Boolean).join(", ")||"Run failed to start");let rr=Ct.run;h(lr=>[rr,...lr.filter(jo=>jo.id!==rr.id)]),x(lr=>lr==null?null:lr+1),k(lr=>({...lr,[rr.id]:{...rr,results:[]}})),_(rr.id),E(null),V(!0),Je("suite"),r?.()}catch(tt){P(tt.message)}finally{M(!1)}},Ol=fe=>[fe,co?.id,S].slice(0,OZ),Hh=fe=>{_(fe),E(null),k(tt=>rD(tt,Ol(fe))),w[fe]||nn(fe)},pb=fe=>{Hh(fe.id),i?.(fe.id)};(0,be.useEffect)(()=>{if(!a||a===S)return;if(g.some(tt=>tt.id===a)||T?.id===a){Hh(a);return}if(!u)return;let fe=!1;return(async()=>{let tt=await nn(a);fe||!tt||(k(Ct=>rD(Ct,Ol(tt.id))),Oa(tt))})(),()=>{fe=!0}},[a]);let fb=async fe=>{fe.id&&(await fetch(`/api/evaluations/${s}/scenarios/${fe.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({scenario:{enabled:fe.enabled===!1}})}),await Wn())},SA=async()=>{R(null);let fe=await fetch(`/api/evaluations/${s}/scenarios`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({scenarios_text:Me})}),tt=await fe.json().catch(()=>({}));if(!fe.ok){R((tt.errors||[tt.error]).filter(Boolean).join(", ")||"Could not save scenarios");return}m(tt.scenarios||[]),b(tt.groups||[]),oe(!1),r?.()},Re=ws,Ma=!!Re&&!Array.isArray(Re.results),qh=Re?A[Re.id]:null,po=(0,be.useMemo)(()=>(Re?.results||[]).filter(fe=>fe&&fe.scenario_key),[Re]),Kh=q0(Re,po,e).join("\0"),ya=(0,be.useMemo)(()=>Kh?Kh.split("\0"):[],[Kh]),Ia=(0,be.useMemo)(()=>YZ(po,fe=>Lu(Re,fe),vs.current),[po,Re]);Vs(()=>{vs.current=Ia});let Nf=(0,be.useMemo)(()=>new Set(O0(Re,f)),[Re,f]),Da=fd(Re),Vh=Th(Re,ya,f),bd=KJ(Re,po,ya,f),wd=(0,be.useCallback)(fe=>Nf.has(fe.key)||!!Ia[fe.key],[Nf,Ia]),fo=(0,be.useMemo)(()=>tZ(f,Ia,Io.current),[f,Ia]),Pl=(0,be.useMemo)(()=>{let fe={};return fo.forEach(tt=>{let Ct=wd(tt);fe[tt.key]=Ma?Ct?"loading":"skipped":Re?h2(Ia[tt.key],ya,{inRun:Ct,running:Da}):"none"}),fe},[fo,wd,Ia,ya,Re,Ma,Da]),mb=(0,be.useCallback)(fe=>Pl[fe.key],[Pl]),Gh=(0,be.useMemo)(()=>Da?$Z(fo.map(fe=>({key:fe.key,step:Pl[fe.key]}))):null,[Da,fo,Pl]),Sd=(0,be.useCallback)(fe=>ya.some(tt=>{let Ct=Ia[fe.key]?.[tt];return Al(Ct)&&!Cl(Ct)}),[ya,Ia]),gb=(0,be.useMemo)(()=>fo.filter(Sd).length,[fo,Sd]),kd=!!Re&&Re.status==="complete"&&!Ma,Yh=(0,be.useMemo)(()=>zZ(fo.filter(fe=>!te||(fe.group||"")===te).filter(fe=>!ke||Sd(fe)),mb,kd?Ue:"suite"),[fo,te,ke,Sd,mb,kd,Ue]),kA=new Set(fo.filter(wd).map(fe=>fe.group).filter(Boolean)).size,_d=po.filter(Al).length,hb=po.filter(fe=>Al(fe)&&!Cl(fe)).length,_A=Vh*Math.max(ya.length,1),Xh=new Set(po.filter(fe=>Al(fe)&&!Cl(fe)).map(fe=>fe.scenario_key)).size,Tf=Re?.scores?._verdict||null,Ml=Object.prototype.hasOwnProperty.call(Re?.scores||{},"_judge_label")?Re.scores._judge_label||"rules":Tf?.judge&&Tf.judge!=="pass rate"?Tf.judge:e.judge_model||"rules",Cd=(0,be.useMemo)(()=>Re?GJ(Re,po):[],[Re,po]),Zh=(0,be.useMemo)(()=>Ma?h_e:CZ(po,f),[Ma,po,f]),Jh=Object.keys(Re?.scores||{}).filter(fe=>!fe.startsWith("_")),Hu=(0,be.useCallback)(fe=>qJ(fe,fe.id===Re?.id?po:(w[fe.id]?.results||[]).filter(tt=>tt&&tt.scenario_key),e,f),[Re,po,w,e,f]),yb=(0,be.useCallback)((fe,tt,Ct)=>{if(!tt||tt.status!=="complete"||fe.status!=="complete")return A0(fe,tt,{olderNumber:Ct});let rr=q0(fe,fe.id===Re?.id?po:[],e),lr=q0(tt,[],e),jo=Th(tt,lr,f)===Th(fe,rr,f)&&lr.length===rr.length;return A0(fe,tt,{olderNumber:Ct,comparable:jo})},[Re,po,e,f]),ie=(0,be.useMemo)(()=>A2({runs:g,runCount:v,evaluation:e,agentName:l,selectedId:Re?.id??null,previousRun:e.previous_run,barsFor:Hu,deltaFor:yb}),[g,v,e,l,Re?.id,Hu,yb]),Ie=ie.find(fe=>fe.run.id===Re?.id)||null,st=Ie?.number??(Number.isFinite(Re?.number)?Re.number:null),zt=Ie?.bars??(Re?Hu(Re):[]),kn=af(g,v),ni=!!Re&&co?.id===Re.id,Do=fd(co)&&co.id!==Re?.id?co:null,ja=u||f.length>0,ks=ja?f.length:e.scenario_count??0,Ad=ja?f.filter(fe=>fe.enabled!==!1&&(!te||(fe.group||"")===te)).length:ks,ote=`Run ${St(Ad,"scenario")}${Wu.length?` \xD7 ${St(Wu.length,"model")}`:""}`,ate=`@${l} \xB7 ${St(ks,"scenario")}${y.length?` in ${St(y.length,"group")}`:""} \xB7 ${d?"not loaded":u?g.length?St(kn,"run"):"no runs yet":"loading\u2026"}`,vb=Re&&Re.status==="complete"?`/evaluations/${s}/runs/${Re.id}/report`:null,CA=vb?et(mh(vb).markdown):null,ite=[...new Set([...y,...fo.map(fe=>fe.group).filter(Boolean)])],ste=[{label:`All ${fo.length||ks}`,value:null}].concat(ite.map(fe=>({label:ja?`${fe} ${fo.filter(tt=>tt.group===fe).length}`:fe,value:fe}))),Qh=(0,be.useMemo)(()=>{let fe=[...new Set(fo.map(tt=>tt.group||""))];return fe.some(Boolean)?fe:[]},[fo]),lte=Qh.some(fe=>!F.has(fe)),AA=fo.length===0,ute=ke?"[+] nothing failed in this group":"[ ] no scenarios";(0,be.useEffect)(()=>{V(!0),it(new Map),Je("suite"),E(null)},[Re?.id]),(0,be.useEffect)(()=>{ce(QI(f,Nf))},[Re?.id,u]);let Aj=(0,be.useRef)(Re?.id??null);(0,be.useEffect)(()=>{if(Aj.current!==(Re?.id??null)){Aj.current=Re?.id??null;return}!Da||!I||ce(fe=>{let tt=new Set(fe);return Qh.forEach(Ct=>{if(Qe.has(Ct))return;let rr=fo.filter(lr=>(lr.group||"")===Ct&&wd(lr));rr.length&&(rr.every(lr=>Pl[lr.key]==="passed")&&tt.add(Ct),rr.some(lr=>lr.key===Gh)&&tt.delete(Ct))}),y_e(tt,fe)?fe:tt})},[Re?.id,Gh,_d,I,Da]);let cte=fe=>{let tt=F.has(fe);ce(Ct=>{let rr=new Set(Ct);return tt?rr.delete(fe):rr.add(fe),rr}),it(Ct=>new Map(Ct).set(fe,tt))},Ej=fe=>{ce(new Set(fe?[]:Qh)),it(new Map(Qh.map(tt=>[tt,fe])))},dte=fe=>{le(fe),jZ(nQ(),fe)},pte=(0,be.useCallback)(fe=>{E(tt=>tt===fe?null:fe),V(!1)},[]),fte=(0,be.useCallback)(()=>V(!1),[]),mte=(0,be.useCallback)(fe=>{let tt=Array.isArray(fe)?fe[0]:fe;if(!tt)return;let Ct=fo.find(rr=>rr.key===tt)?.group||"";Be(null),ee(!1),ce(rr=>{if(!rr.has(Ct))return rr;let lr=new Set(rr);return lr.delete(Ct),lr}),it(rr=>new Map(rr).set(Ct,!0)),E(tt),V(!1),requestAnimationFrame(()=>{let rr=Tt.current;rr&&(rr.scrollIntoView({behavior:"smooth",block:"start"}),rr.querySelector(`[data-scenario-key="${L2(tt)}"]`)?.focus({preventScroll:!0}))})},[fo]),gte=()=>{Lt.current?.scrollIntoView({behavior:"smooth",block:"start"}),Lt.current?.focus({preventScroll:!0})},hte=()=>{Re&&(C(fe=>{let{[Re.id]:tt,...Ct}=fe;return Ct}),nn(Re.id))},Nj=()=>{co&&pb(co)},Tj=AA&&d?be.default.createElement(tn,{style:yf},"[!] suite not loaded"):AA&&!u?be.default.createElement(tn,{style:yf},"loading\u2026"):AA?be.default.createElement(tn,{style:yf},"No scenarios yet \u2014 paste some with \u201CEdit scenarios\u201D."):S!=null&&!Re?be.default.createElement(tn,{style:yf},"loading\u2026"):qh&&!Array.isArray(Re.results)?be.default.createElement(tn,{style:yf},`[!] results not loaded (${qh}) \xB7 `,be.default.createElement(Gr,{onClick:hte,title:"Fetch this run's results again",testId:"suite-detail-retry"},"retry")):be.default.createElement(RJ,{rows:Yh,columns:Re?ya:[],run:Re,resultsByKey:Ia,runKeys:Nf,running:Da,loading:Ma,stepsByKey:Pl,currentKey:Gh,bars:zt,detail:pt,showKey:Qt,collapsedGroups:F,onToggleGroup:cte,openKey:z,onToggleRow:pte,following:I,onStopFollowing:fte,emptyLabel:ute,maxHeight:JI,boxRef:Tt,renderDetail:fe=>be.default.createElement(eQ,{scenario:fe,run:Re,columns:Re?ya:[],resultsByKey:Ia,running:Da,inRun:wd(fe),canMutate:!fe.orphan,onRerun:tt=>to({keys:[tt.key]}),onToggleEnabled:fb,markdownUrl:CA})}),Oj={rows:ie,runs:g,runCount:v,evaluation:e,agentName:l,selectedId:Re?.id??null,onOpen:pb,noteFor:fe=>YI(fe,f),linkedRun:T,linkedBars:T&&Hu(T)};return be.default.createElement("div",{ref:nt,style:{padding:16,display:"flex",flexDirection:"column",gap:16},"data-testid":"scenario-suite-panel","data-layout":ve?"rail":"strip"},be.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},be.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},ate),be.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},be.default.createElement(de,{size:"sm",onClick:()=>{ge(mJ(f)),R(null),oe(!q)}},q?"Cancel":"Edit scenarios"),be.default.createElement(D0,{value:Q,onChange:B,models:O,inputLabel:"Models to run",placeholder:"models, e.g. gpt-5-mini, ollama/qwen3:8b",title:"Blank runs the suite's saved models, or the agent's own model when it has none. Prefix a typed name with its provider (ollama/llama3.2) when the name alone is ambiguous.",style:{...PD,minWidth:250,maxWidth:420},testId:"suite-models-picker"}),W.length>0&&be.default.createElement("select",{value:L,onChange:fe=>G(fe.target.value),style:{...PD,maxWidth:260},"aria-label":"Run against sandbox",title:"Replays also reach this checkout sandbox's app runtime, as if the agent listed it in its MCP servers. The agent is not changed.","data-testid":"suite-run-sandbox"},be.default.createElement("option",{value:""},"Run against: agent's own tools"),W.map(fe=>be.default.createElement("option",{key:fe.value,value:fe.value},`Run against sandbox ${fe.label}`))),be.default.createElement(de,{variant:"primary",size:"sm",disabled:j||!u||Ad===0,onClick:()=>to(te?{group:te}:{}),testId:"suite-run-button"},j?"Starting\u2026":ote))),(d||D)&&be.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)",background:"var(--color-error-soft)",borderRadius:8,padding:"8px 12px"}},d||D),q&&be.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8}},be.default.createElement("textarea",{value:Me,onChange:fe=>ge(fe.target.value),rows:Math.min(Math.max(f.length+4,6),24),style:{...PD,width:"100%",boxSizing:"border-box",lineHeight:"18px"}}),be.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12,fontSize:12,color:"var(--color-text-muted)",flexWrap:"wrap"}},be.default.createElement("span",{style:{flex:1,minWidth:240}},"One message per line. ",be.default.createElement("code",{style:{fontFamily:U}},"# Heading")," starts a group; ",be.default.createElement("code",{style:{fontFamily:U}},"| tools: a, b"),", ",be.default.createElement("code",{style:{fontFamily:U}},"| contains: x"),", ",be.default.createElement("code",{style:{fontFamily:U}},"| not_contains: y")," set expectations. Keep a scenario's ",be.default.createElement("code",{style:{fontFamily:U}},"key")," to keep its history."),be.default.createElement(de,{variant:"primary",size:"sm",onClick:SA},"Save scenarios")),ue&&be.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},ue)),Re&&be.default.createElement(fD,{run:Re,runNumber:st,latestNumber:kn,isLatest:ni,runningElsewhere:Do,agentName:l,scenarioCount:Vh,groupCount:kA,columns:ya,judgedBy:Ml,bars:zt,delta:Ie?.delta??null,version:Ie?.version??null,totals:bd,settledCount:_d,settledFailed:hb,expectedResults:_A,running:Da,loading:Ma,spend:Ni(Re),fixSummary:{items:Cd.length,faults:Math.max(bd.total-bd.passed,0),scenarios:Xh},selectionLabel:YI(Re,f),sandboxLabel:T0(Re),reportPath:vb,rerun:Zh,onSelectLatest:Nj,onWatchLatest:Nj,onJumpToFix:gte,onRerunFailed:()=>to({keys:Zh.keys}),onRunAgain:()=>to(AZ(Re,f))}),!ve&&be.default.createElement(dD,{layout:"strip",limit:cZ,...Oj}),be.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},be.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},be.default.createElement(We,{style:{marginRight:4}},"Scenarios"),ste.map(fe=>be.default.createElement(Ln,{key:fe.label,selected:te===fe.value,onClick:()=>Be(fe.value)},fe.label)),be.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},be.default.createElement(Ln,{square:!0,mono:!0,selected:pt==="tools",onClick:()=>dte(pt==="tools"?"steps":"tools"),style:{background:"transparent"},title:"Show the tools each replay called and what each cell cost",testId:"suite-detail-toggle"},pt==="tools"?"[x] tools":"[ ] tools"),be.default.createElement(Ln,{square:!0,mono:!0,selected:ke,onClick:()=>ee(!ke),style:{background:"transparent"},title:"Hide scenarios that passed on every model",testId:"suite-failed-only"},`${ke?"[x]":"[ ]"} failed only${!Ma&&gb?` \xB7 ${gb}`:""}`),Re&&Re.status!=="failed"&&(kd?be.default.createElement(Ln,{square:!0,mono:!0,selected:Ue==="failed-first",onClick:()=>Je(Ue==="failed-first"?"suite":"failed-first"),style:{background:"transparent"},title:"Groups with the most failures first, and failed scenarios first within each",testId:"suite-order-toggle"},Ue==="failed-first"?"[x] failed first":"[ ] failed first"):be.default.createElement(Ln,{square:!0,mono:!0,disabled:!0,style:{background:"transparent"},title:"applies once the run completes",testId:"suite-order-toggle"},"[ ] failed first")),Da&&be.default.createElement(Ln,{square:!0,mono:!0,selected:I,onClick:()=>V(fe=>!fe),style:{background:"transparent"},title:"Keep the step being replayed in view as the run goes",testId:"suite-follow"},I?"[x] follow":"[ ] follow"),Qh.length>1&&(lte?be.default.createElement(Gr,{onClick:()=>Ej(!1),title:"Fold every group",testId:"suite-collapse-all"},"collapse all"):be.default.createElement(Gr,{onClick:()=>Ej(!0),title:"Unfold every group",testId:"suite-collapse-all"},"expand all")))),ve?be.default.createElement("div",{style:{display:"grid",gridTemplateColumns:`${XI}px minmax(0, 1fr)`,gap:ZI,alignItems:"start"}},be.default.createElement(dD,{layout:"rail",maxHeight:JI,...Oj}),Tj):Tj),Re&&Re.status!=="failed"&&be.default.createElement(QJ,{run:Re,columns:ya,results:po,scenarioCount:Vh,judgedBy:Ml,verdict:Tf,evaluation:e,onJudgeChanged:r,markdownUrl:CA}),Re&&Re.status!=="failed"&&be.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},be.default.createElement("div",{ref:Lt,tabIndex:-1,style:{display:"flex",alignItems:"baseline",gap:10,outline:"none"},"data-testid":"suite-fix-heading"},be.default.createElement(We,null,"What to fix"),be.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},Ma?"loading\u2026":`${St(Cd.length,"item")} \xB7 ${St(Math.max(bd.total-bd.passed,0),"fault")} across ${St(Xh,"scenario")}`)),Ma?be.default.createElement(tn,{style:{...yf,padding:"14px 12px"}},"[ ] loading\u2026"):Cd.length>0?be.default.createElement(tQ,{items:Cd,columns:ya,agentName:l,onNavigate:lt,onOpenScenario:mte,run:Re,results:po,evaluation:e,runNumber:st,scenarios:f,onRerun:fe=>to({keys:lf(fe.scenario_keys||[],f).keys}),runnableFor:fe=>lf(fe.scenario_keys||[],f),markdownUrl:CA}):be.default.createElement(tn,{style:{...yf,padding:"14px 12px"}},Da?"[ ] scoring\u2026":"[+] nothing to fix")),be.default.createElement(mf,{evaluation:e,run:Re,keys:Jh.length?Jh:null,spend:Ni(Re),spendTotal:!0,reportPath:vb,onDelete:n,deleting:o,deleteLabel:"Delete suite"}))}var at=Z(J());var ID=[{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}}],aQ=[{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}}],zu={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)"},iQ={margin:"6px 0 0",fontSize:12,color:"var(--color-text-muted)"},v_e={openai:"OpenAI",anthropic:"Anthropic",ollama:"Ollama",openrouter:"OpenRouter"};function DD({agents:e,agentId:t,judgeProvider:r,judgeProviderError:n=!1,modelProviders:o,onCreated:a,onCancel:i}){let[s,l]=(0,at.useState)({agent_id:t?String(t):"",name:"",sample_size:20,criteria:ID.map(C=>C.key),containsPattern:"",llmJudgePrompt:"",judgeKind:"manual",judgeModel:"",compareModels:"",scenariosText:"",compareRestore:new Map}),[u,c]=(0,at.useState)(null),[d,p]=(0,at.useState)(!1),f=(0,at.useId)(),m=(0,at.useMemo)(()=>o===void 0?[]:o??J1,[o]),y=xc(r&&!m.includes(r)?[...m,r]:m),b=b_e(s.agent_id),g=(0,at.useMemo)(()=>P0(y,{providers:m.length?m:r?[r]:[]}),[y,m,r]),h=!!s.scenariosText.trim(),v=(0,at.useMemo)(()=>h?P0(y,{providers:m}):b,[y,m,h,b]),x=C=>l(T=>({...T,...C})),S=C=>l(T=>{let $=!!C.trim();if($===!!T.scenariosText.trim())return{...T,scenariosText:C};let{models:Q,restore:B}=eJ(ud(T.compareModels),y,{providers:m,qualify:$,restore:T.compareRestore});return{...T,scenariosText:C,compareModels:M0(Q),compareRestore:B}}),_=(C,T)=>x({criteria:T?[...s.criteria,C]:s.criteria.filter($=>$!==C)}),w=()=>{let C=[...ID,...aQ].filter(T=>s.criteria.includes(T.key)).map(({key:T,type:$,config:Q})=>({key:T,type:$,config:Q}));return s.containsPattern.trim()&&C.push({key:"contains",type:"contains",config:{pattern:s.containsPattern.trim()}}),s.llmJudgePrompt.trim()&&C.push({key:"quality",type:"llm_judge",config:{prompt:s.llmJudgePrompt.trim()}}),C},k=async C=>{C.preventDefault(),p(!0),c(null);try{let T=await fetch("/api/evaluations",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({evaluation:{agent_id:s.agent_id,name:s.name,sample_size:s.sample_size,judge_kind:s.judgeKind==="judge_defined"?"judge_defined":s.llmJudgePrompt.trim()?"llm":"rules",judge_model:s.judgeModel.trim()||void 0,compare_models:ud(s.compareModels),criteria:s.judgeKind==="judge_defined"?[]:w(),scenarios_text:s.scenariosText.trim()||void 0}})}),$=await T.json().catch(()=>({}));if(!T.ok)throw new Error(($.errors||[$.error]).filter(Boolean).join(", ")||`Failed to create evaluation (HTTP ${T.status})`);a?.($.evaluation)}catch(T){c(T.message)}finally{p(!1)}},A=C=>at.default.createElement("label",{key:C.key,style:{display:"flex",alignItems:"center",gap:8,fontSize:13,color:"var(--color-text-primary)"}},at.default.createElement("input",{type:"checkbox",checked:s.criteria.includes(C.key),onChange:T=>_(C.key,T.target.checked),style:{accentColor:"var(--color-accent-ui)"}}),C.label);return at.default.createElement(Le,{testId:"new-evaluation-form"},at.default.createElement("form",{onSubmit:k,style:{display:"flex",flexDirection:"column",gap:16}},at.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},at.default.createElement("div",null,at.default.createElement(We,{as:"label",style:{display:"block",marginBottom:6}},"Agent"),at.default.createElement("select",{required:!0,disabled:!!t,value:s.agent_id,onChange:C=>x({agent_id:C.target.value}),style:{...zu,width:"100%",opacity:t?.7:1}},!t&&at.default.createElement("option",{value:""},"Select agent\u2026"),e.map(C=>at.default.createElement("option",{key:C.id,value:C.id},C.name)))),at.default.createElement("div",null,at.default.createElement(We,{as:"label",style:{display:"block",marginBottom:6}},"Name"),at.default.createElement("input",{required:!0,type:"text",value:s.name,onChange:C=>x({name:C.target.value}),placeholder:"Response Quality",style:{...zu,width:"100%"}})),at.default.createElement("div",null,at.default.createElement(We,{as:"label",style:{display:"block",marginBottom:6}},"Sample size"),at.default.createElement("input",{type:"number",min:"1",max:"100",value:s.sample_size,onChange:C=>x({sample_size:C.target.value}),style:{...zu,width:"100%",fontFamily:U}}))),at.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},at.default.createElement("div",null,at.default.createElement(We,{as:"label",style:{display:"block",marginBottom:6}},"KPI definition"),at.default.createElement("select",{value:s.judgeKind,onChange:C=>x({judgeKind:C.target.value}),style:{...zu,width:"100%"}},at.default.createElement("option",{value:"manual"},"Manual criteria"),at.default.createElement("option",{value:"judge_defined"},"Judge defines KPIs from agent goals"))),at.default.createElement("div",null,at.default.createElement(We,{as:"label",htmlFor:`${f}-judge`,style:{display:"block",marginBottom:6}},"Judge model (optional)"),at.default.createElement(Rl,{id:`${f}-judge`,"aria-describedby":r===void 0?void 0:`${f}-judge-provider`,value:s.judgeModel,models:g,onChange:C=>x({judgeModel:C}),style:{...zu,width:"100%",fontFamily:U,fontSize:12}}),r!==void 0&&at.default.createElement("p",{id:`${f}-judge-provider`,style:iQ},x_e(r,n))),at.default.createElement("div",null,at.default.createElement(We,{as:"label",htmlFor:`${f}-compare`,style:{display:"block",marginBottom:6}},"Compare models (optional)"),at.default.createElement(D0,{inputId:`${f}-compare`,describedBy:`${f}-compare-hint`,value:s.compareModels,onChange:C=>x({compareModels:C}),models:v,placeholder:"e.g. claude-haiku-4-5, qwen3:8b",style:{...zu,width:"100%",fontFamily:U,fontSize:12}}),at.default.createElement("p",{id:`${f}-compare-hint`,style:iQ},h?"Each model replays the scenarios. Any model name can be typed.":"Compares the agent's generations recorded under each model name. Add scenarios to try any model."))),at.default.createElement("div",null,at.default.createElement(We,{as:"label",style:{display:"block",marginBottom:6}},"Scenarios (optional) \u2014 paste user messages to replay, one per line"),at.default.createElement("textarea",{value:s.scenariosText,onChange:C=>S(C.target.value),rows:s.scenariosText?8:3,placeholder:`# Open tickets +`};var fd=e=>[...new Set(e)],ND=(e,t)=>{let r=e?.expectations?.[t];return Array.isArray(r)?r:r==null||r===""?[]:[r]},Th=e=>String(e||"").replace(/_/g," "),Al=e=>e?.status==="passed",El=e=>!!e&&e.status!=="pending",md=e=>!!e&&["pending","running"].includes(e.status);function K0(e,t=[],r=null){if(Array.isArray(e?.models)&&e.models.length)return e.models;let n=Object.keys(e?.scores?._models||{});if(n.length)return n;let o=AZ(e);if(o.length)return o;let a=fd(t.map(s=>zu(e,s)));if(a.length)return a;let i=r?.compare_models||[];return i.length?i:e?["agent's model"]:[]}function zu(e,t){let n=(lf(e).models||[]).filter(i=>i&&typeof i=="object").find(i=>i.model===t.model&&(i.provider||"")===(t.provider||""));if(n?.label)return n.label;let o=e?.scores?._models||{};if(o[t.model])return t.model;let a=[t.provider,t.model].filter(Boolean).join("/");return o[a]?a:t.model}function OD(e,t){let r=e?.scores?._models?.[t],n=(lf(e).models||[]).find(o=>o&&typeof o=="object"&&o.label===t);return bn(t,r?.provider||n?.provider||"")}function Oh(e,t=[],r=[]){let n=P0(e,r);if(n.length)return n.length;let o=Object.values(e?.scores?._models||{});return o.length?Math.max(...o.map(a=>a.scenarios||0)):e?.samples_evaluated&&t.length?Math.round(e.samples_evaluated/t.length):0}function KJ(e,t,r=[],n=0){let o=e?.scores?._models?.[t];if(o&&o.scenarios!=null){let i=o.passed||0,s=o.scenarios||0;return{passed:i,failed:Math.max(s-i,0),total:s}}let a=r.filter(i=>zu(e,i)===t);return{passed:a.filter(Al).length,failed:a.filter(i=>El(i)&&!Al(i)).length,total:n||a.length}}function VJ(e,t=[],r=null,n=[]){let o=K0(e,t,r),a=Oh(e,o,n);return o.map(i=>{let s={label:i,short:bn(i).short};return e?.scores?._models?.[i]?.scenarios!=null||md(e)||t.some(u=>zu(e,u)===i)?{...s,...KJ(e,i,t,a)}:{...s,passed:null,failed:null,total:null}})}function GJ(e,t=[],r=[],n=[]){if(e?.status==="complete"&&e.samples_evaluated!=null)return{passed:e.samples_passed||0,total:e.samples_evaluated||0};let o=Oh(e,r,n)*Math.max(r.length,1);return{passed:t.filter(Al).length,total:o}}function YJ(e,t=[]){let r=[],n={};return(Array.isArray(e)?e:[]).forEach(o=>{let a=typeof o=="string"?o:String(o?.name||"");a&&(n[a]||(n[a]={name:a,count:0,errored:!1},r.push(a)),n[a].count+=1,o&&typeof o=="object"&&o.error&&(n[a].errored=!0))}),r.map(o=>{let a=n[o],i=t.includes(o);return{...a,hit:i,label:`${o}${a.errored?" \u2717":""}${a.count>1?` \xD7${a.count}`:""}`,color:a.errored?"var(--color-error)":i?"var(--color-success-text)":"var(--color-text-muted)",weight:a.errored||i?600:400}})}var o_e=(e,t)=>{let r=String(e||"").trim();return r.length>t?`${r.slice(0,t-1)}\u2026`:r},AD=e=>e?.diagnosis?.judge?.instruction_change;function XJ(e,t=[]){let r=e?.scores?._recommendations||[];if(Array.isArray(e?.fix_items)){let a=r.length>0||t.some(AD);if(e.fix_items.length>0||!a)return e.fix_items}let n=r.map(a=>a_e(a,t)),o=new Set;return t.forEach(a=>{let i=AD(a);if(!i||o.has(i))return;o.add(i);let s=t.filter(l=>AD(l)===i);n.push({kind:"instruction",fault:"instruction change",count:s.length,scenario_keys:fd(s.map(l=>l.scenario_key)),models:fd(s.map(l=>zu(e,l))),recommendation:a.diagnosis.judge.recommendation||a.recommendation||"",quote:i,tools_label:null,tools:[],server:null,note:null,action:{label:"Add to instructions",hint:"Agent -> Instructions",path:null}})}),n}function a_e(e,t){let r=e.fault,n=t.filter(u=>u.fault===r),o=(e.suggested_tools||[]).map(u=>typeof u=="string"?u:u?.name).filter(Boolean),a=null,i=[],s=null,l=null;if(r==="expected_tool_not_called"){a="missing tools";let u=fd(n.flatMap(d=>d.diagnosis?.evidence?.unavailable||[]));u.length||(u=fd(n.flatMap(d=>{let p=d.diagnosis?.evidence||{};return(p.expected||[]).filter(f=>!(p.called||[]).includes(f))}))),i=u.map(d=>({name:d,note:null,server:null}));let c=n.filter(d=>d.diagnosis?.summary&&(d.diagnosis?.evidence?.unavailable||[]).length===0);c.length&&c.length`${d.scenario_key} is the exception: ${d.diagnosis.summary} ${d.diagnosis.recommendation||""}`.trim()).join(" "))}else if(r==="tool_error"){a="failing tools";let u={};n.forEach(c=>(c.tool_calls||[]).forEach(d=>{!d||typeof d!="object"||!d.error||!d.name||u[d.name]||(u[d.name]={name:d.name,note:o_e(d.detail,60)||null,server:null})})),i=Object.values(u),l={label:"Open failing tools",hint:"Tools ->",path:"/tools"}}else a=o.length?"suggested tools":null,i=fd(o).map(u=>({name:u,note:null,server:null}));return!l&&a==="suggested tools"&&i.length&&(l={label:"Open suggested tools",hint:"Tools ->",path:"/tools"}),{kind:"fault",fault:r,count:e.count||n.length,scenario_keys:e.scenario_keys||fd(n.map(u=>u.scenario_key)),models:e.models||[],recommendation:e.recommendation||"",quote:null,tools_label:a,tools:i,server:null,note:s,action:l}}var PD=e=>e?.cost_source==="estimated",ZJ=e=>{let t=e?.judge_usage;return t?t.estimated??(t.source!=null&&t.source!=="reported"):!1},L2=e=>{if(!e)return null;let t=e.judge_usage?.cost??null;if(e.cost==null&&t==null)return null;let r=[Pr(e.cost,{estimated:PD(e)})];return t!=null&&r.push(`judge ${Pr(t,{estimated:ZJ(e)})}`),r.join(" \xB7 ")},JJ=e=>{if(!PD(e))return;let t=e.cost_rate||null;return Em({inputTokens:t?.input_tokens??e.input_tokens,outputTokens:t?.output_tokens??e.output_tokens,rate:t})},i_e=(e,t,r={})=>{let n=e?.costs?.scenarios?.[t];if(n&&typeof n=="object")return n.cost==null&&n.judge_cost==null?null:{cost:n.cost??null,judgeCost:n.judge_cost??null,total:n.total??null,estimated:!!n.estimated};let o=Object.values(r||{}).filter(El),a=o.map(u=>u.cost).filter(u=>u!=null),i=o.map(u=>u.judge_usage?.cost).filter(u=>u!=null);if(!a.length&&!i.length)return null;let s=a.length?a.reduce((u,c)=>u+Number(c),0):null,l=i.length?i.reduce((u,c)=>u+Number(c),0):null;return{cost:s,judgeCost:l,total:(s||0)+(l||0),estimated:o.some(u=>PD(u)||ZJ(u))||a.length>0&&a.length{let t=e.filter(Boolean);if(!t.length)return null;let r=t.filter(i=>i.cost!=null),n=t.filter(i=>i.judgeCost!=null),o=r.length?r.reduce((i,s)=>i+s.cost,0):null,a=n.length?n.reduce((i,s)=>i+s.judgeCost,0):null;return{cost:o,judgeCost:a,total:(o||0)+(a||0),estimated:t.some(i=>i.estimated)}};function QJ({entry:e,compact:t=!1,testId:r,tokens:n=null}){let o={display:"flex",flexDirection:"column",gap:1,minWidth:0,textAlign:"right"},a=n&&(n.input!=null||n.output!=null)?se.default.createElement("span",{"data-testid":r?`${r}-tokens`:void 0,title:"input\u2192output tokens across the models",style:{...Ur(10.5),whiteSpace:"nowrap"}},II(n.input,n.output)):null;if(!e)return se.default.createElement("span",{style:o,"data-testid":r},se.default.createElement("span",{style:Ur(12)},"\u2014"),a);if(t){let i=e.total??(e.cost!=null||e.judgeCost!=null?(e.cost||0)+(e.judgeCost||0):null),s=[];return e.cost!=null&&s.push(`agent ${Pr(e.cost,{estimated:e.estimated})}`),e.judgeCost!=null&&s.push(`judge ${Pr(e.judgeCost,{estimated:e.estimated})}`),se.default.createElement("span",{style:o,"data-testid":r},se.default.createElement("span",{title:s.join(" \xB7 ")||void 0,style:{fontFamily:U,fontSize:11,fontWeight:600,color:"var(--color-text-primary)",whiteSpace:"nowrap"}},Pr(i,{estimated:e.estimated})),a)}return se.default.createElement("span",{style:{...o,fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"},"data-testid":r},se.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},Pr(e.cost,{estimated:e.estimated})),e.judgeCost!=null&&se.default.createElement("span",{style:{color:"var(--color-text-muted)",whiteSpace:"nowrap"}},`judge ${Pr(e.judgeCost,{estimated:e.estimated})}`),a)}var Ur=(e,t="var(--color-text-muted)",r={})=>({fontFamily:U,fontSize:e,color:t,...r});function RJ({calls:e,empty:t,style:r}){return se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"2px 8px",fontFamily:U,fontSize:11,...r}},e.map(n=>se.default.createElement("span",{key:n.name,style:{color:n.color,fontWeight:n.weight}},n.label)),e.length===0&&se.default.createElement("span",{style:{color:"var(--color-text-muted)"}},t))}function eQ({run:e,columns:t,results:r=[],scenarioCount:n=0,judgedBy:o,verdict:a,evaluation:i=null,onJudgeChanged:s,markdownUrl:l=null}){let u=e?.scores?._models||{},c=Ni(e)?.judge?.estimated??!0;return se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10},"data-testid":"suite-models-panel"},se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10,flexWrap:"wrap"}},se.default.createElement(Ue,null,"Models"),se.default.createElement(xD,{evaluation:i,run:e,label:o,onChanged:s,testId:"suite-judge"}),se.default.createElement(_l,{url:m2(l,{part:"verdict"}),testId:"copy-verdict-markdown",title:"Copy the verdict and the model comparison as Markdown",style:{marginLeft:"auto"}})),t.length===0&&se.default.createElement(Jr,{style:{border:"1px solid var(--color-border-light)",borderRadius:10}},"[ ] no models scored yet"),t.length>1&&se.default.createElement(F0,{rows:x2(e,{results:r,scenarioCount:n,columns:t,labelFor:d=>zu(e,d)}),unit:"scenario",judgedBy:o,judgeEstimated:c}),t.length>1&&se.default.createElement(vD,{plot:bZ(e)}),t.length>0&&se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(260px, 1fr))",gap:12}},t.map(d=>{let{short:p,provider:f}=OD(e,d),m=u[d],{passed:y,total:b}=KJ(e,d,r,n),g=Object.entries(m?.faults||{}),h=yh(m,m?.scenarios),v=m&&g.length===0?{text:"[+] no faults",color:"var(--color-success-text)"}:!m&&md(e)?{text:"scoring\u2026"}:null;return se.default.createElement(z0,{key:d,label:d,short:p,provider:f,winner:a?.winner===d,passed:y,total:b,avgScore:m?.avg_score,latencyMs:m?.avg_duration_ms,p50Ms:m?.p50_duration_ms??null,p95Ms:m?.p95_duration_ms??null,inputTokens:m?.input_tokens,outputTokens:m?.output_tokens,cost:m?.cost,perInteraction:af(m?.cost,h),estimated:h2(m,m?.scenarios),judgeCost:m?.judge_cost,judgeCalls:m?.judge_calls||0,judgeEstimated:c,unit:"scenario",badges:g.map(([x,S])=>({tone:"error",text:`${Th(x)} \xD7${S}`})),note:v})})),a?.rationale&&se.default.createElement(je,{padding:"12px 16px",testId:"suite-verdict",style:{display:"flex",flexDirection:"column",gap:6}},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},se.default.createElement(Ue,null,"Verdict"),a.judge&&se.default.createElement("span",{style:Ur(11)},`judged by ${a.judge}`)),se.default.createElement("div",{style:{fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},se.default.createElement("strong",{style:{color:"var(--color-text-primary)",fontFamily:U,fontSize:12}},a.winner),a.rationale?` \xB7 ${a.rationale}`:"")))}var l_e=(e,t)=>e==="tools"?["minmax(220px, 1.6fr)","130px",...Array(t).fill("minmax(160px, 1fr)"),"110px"].join(" "):["minmax(200px, 1.6fr)",...Array(t).fill("minmax(130px, 1fr)"),"80px","48px"].join(" "),TD={tools:10,steps:8},ED=[],u_e={},HJ=new Set,z2=e=>typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(String(e)):String(e).replace(/["\\]/g,"\\$&"),c_e=600,qJ=e=>typeof e=="number"?`${e}px`:e,d_e=e=>["INPUT","TEXTAREA","SELECT"].includes(e?.tagName);function p_e({result:e,expects:t,pending:r,compact:n=!1}){if(!e)return se.default.createElement("span",{style:{...Ur(12),fontWeight:600}},r?"\u2026":"\u2014");if(!El(e))return se.default.createElement("span",{style:{...Ur(12),fontWeight:600}},"\u2026");let o=Al(e),a=o?"var(--color-success)":"var(--color-error)",i=YJ(e.tool_calls,t);if(n){let s=e.fault?Th(e.fault):e.status==="errored"?"errored":null,l=L2(e),u=`${i.map(c=>c.label).join(" ")||"no tools called"}${l?` \xB7 ${l}`:""}`;return se.default.createElement("span",{title:u,style:{display:"flex",flexDirection:"column",gap:1,minWidth:0}},se.default.createElement("span",{style:{display:"flex",alignItems:"baseline",gap:6,minWidth:0,fontFamily:U,fontSize:12,whiteSpace:"nowrap"}},se.default.createElement("span",{style:{fontWeight:700,color:a,flexShrink:0}},o?"[+]":"[!]"),se.default.createElement("span",{style:{fontWeight:600,color:a,flexShrink:0}},aa(e.score)),s&&se.default.createElement("span",{style:{fontSize:11,color:"var(--color-error-text)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis"}},s)),se.default.createElement(B2,{metrics:S2(e)}))}return se.default.createElement("div",{style:{minWidth:0,display:"flex",flexDirection:"column",gap:3}},se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:6,flexWrap:"wrap",fontFamily:U,fontSize:12}},se.default.createElement("span",{style:{fontWeight:700,color:a}},o?"[+]":"[!]"),se.default.createElement("span",{style:{fontWeight:600,color:a}},aa(e.score)),e.fault&&se.default.createElement("span",{style:{fontSize:11,color:"var(--color-error-text)"}},Th(e.fault))),se.default.createElement(RJ,{calls:i,empty:"no tools called"}),se.default.createElement(B2,{metrics:S2(e)}),L2(e)&&se.default.createElement("span",{style:{...Ur(11,"var(--color-text-secondary)"),whiteSpace:"nowrap"},title:JJ(e),"data-testid":"scenario-cell-cost"},L2(e)))}var f_e=e=>{if(!e)return null;let t=[];e.durationMs!=null&&t.push(k2(e.durationMs));let r=II(e.inputTokens,e.outputTokens);return r!=="\u2014"&&t.push(r),t.length?t.join(" \xB7 "):null};function B2({metrics:e,testId:t="scenario-cell-metrics",title:r="time to answer \xB7 input\u2192output tokens",style:n}){let o=f_e(e);return o?se.default.createElement("span",{"data-testid":t,title:r,style:{...Ur(10.5),whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0,...n}},o):null}var F2={passed:{text:"[+]",color:"var(--color-success)",title:"passed on every model"},failed:{text:"[!]",color:"var(--color-error)",title:"failed on at least one model"},running:{text:"[~]",color:"var(--color-warning-text)",title:"running"},queued:{text:"[ ]",color:"var(--color-text-muted)",title:"queued"},missing:{text:"[?]",color:"var(--color-text-muted)",title:"the run ended without its results"},skipped:{text:"[-]",color:"var(--color-text-muted)",title:"not in this run"},none:{text:"[ ]",color:"var(--color-text-muted)",title:"not run yet"},loading:{text:"[ ]",color:"var(--color-text-muted)",title:"loading results\u2026"}},m_e=(e,t)=>e===t||!!e&&!!t&&e.cost===t.cost&&e.judgeCost===t.judgeCost&&e.total===t.total&&e.estimated===t.estimated,g_e=(e,t)=>e===t||!!e&&!!t&&e.input===t.input&&e.output===t.output,h_e=(e,t)=>e.scenario===t.scenario&&e.results===t.results&&e.columns===t.columns&&e.step===t.step&&e.current===t.current&&e.open===t.open&&e.detail===t.detail&&e.showKey===t.showKey&&e.grid===t.grid&&e.inSelection===t.inSelection&&e.running===t.running&&e.loading===t.loading&&e.tabIndex===t.tabIndex&&m_e(e.costEntry,t.costEntry)&&g_e(e.tokens,t.tokens)&&e.timeMs===t.timeMs,y_e=se.default.memo(function({scenario:t,results:r,columns:n,step:o,current:a,open:i,detail:s,showKey:l,grid:u,inSelection:c,running:d,loading:p,costEntry:f,tokens:m=null,timeMs:y,tabIndex:b,onToggle:g,onFocus:h}){let v=t.key,x=s==="steps",S=ND(t,"tools"),k=t.enabled===!1,w=F2[o]||F2.none,_=`${v}${k?" \xB7 disabled":""}`,A=se.default.createElement("span",{"data-testid":"scenario-step",title:w.title,style:{...Ur(11,w.color),fontWeight:700,flexShrink:0}},w.text),C={fontFamily:U,fontSize:11,padding:"2px 6px",border:"1px solid var(--color-border)",borderRadius:4,color:"var(--color-text-cell)",whiteSpace:"nowrap"};return se.default.createElement("div",{"data-testid":"scenario-row","data-scenario-key":v,"data-step":o,"data-nav":v,"data-current":a?"true":void 0,role:"button","aria-expanded":i,tabIndex:b,title:x&&!l?`${_} \xB7 ${t.prompt||""}`:void 0,onClick:()=>g(v),onKeyDown:N=>{(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),g(v))},onFocus:N=>h(v,N),className:i?void 0:"hover:bg-[var(--color-hover)]",style:{display:"grid",gridTemplateColumns:u,gap:TD[s]??TD.steps,padding:x?"6px 12px":"10px 12px",alignItems:x?"center":void 0,borderTop:"1px solid var(--color-border-light)",cursor:"pointer",background:i?"var(--color-muted)":void 0,boxShadow:a?"inset 2px 0 0 var(--color-warning)":void 0,opacity:k?.5:1}},x?se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,minWidth:0}},A,l&&se.default.createElement("span",{style:{...Ur(11),minWidth:0,maxWidth:"40%",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},_),se.default.createElement("span",{title:l?t.prompt:void 0,style:{flex:1,minWidth:0,fontSize:13,color:t.orphan?"var(--color-text-muted)":"var(--color-text-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},t.prompt)):se.default.createElement(se.default.Fragment,null,se.default.createElement("div",{style:{minWidth:0}},se.default.createElement("div",{style:{...Ur(11),marginBottom:2,display:"flex",gap:6}},A,se.default.createElement("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"}},_)),se.default.createElement("div",{style:{fontSize:13,lineHeight:"18px",color:"var(--color-text-primary)",textWrap:"pretty"}},t.prompt)),se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:4,alignContent:"flex-start",minWidth:0}},S.map(N=>se.default.createElement("span",{key:N,style:C},N)),S.length===0&&ND(t,"contains").map(N=>se.default.createElement("span",{key:`contains-${N}`,style:C,title:"the answer must contain this"},`contains: ${N}`)))),n.map(N=>se.default.createElement(p_e,{key:N,result:r?.[N],expects:S,pending:(d||p)&&c,compact:x})),se.default.createElement(QJ,{entry:f,compact:x,testId:"scenario-row-cost",tokens:m}),x&&se.default.createElement("span",{"data-testid":"scenario-row-time",title:"the slowest answer across the models",style:{...Ur(11),textAlign:"right",whiteSpace:"nowrap"}},k2(y)))},h_e);function tQ({rows:e=ED,columns:t=ED,run:r=null,resultsByKey:n=u_e,runKeys:o=HJ,running:a=!1,loading:i=!1,stepsByKey:s=null,currentKey:l=null,bars:u=ED,detail:c="steps",showKey:d=!0,collapsedGroups:p=HJ,onToggleGroup:f,openKey:m=null,onToggleRow:y,following:b=!1,onStopFollowing:g,emptyLabel:h,maxHeight:v=null,renderDetail:x,boxRef:S=null,testId:k="scenario-matrix"}){let w=t.length===0?"tools":c,_=w==="steps",A=l_e(w,t.length),C=TD[w],N=_?DZ(t.length):jZ(t.length),L=ue=>o.has(ue.key)||!!n[ue.key],Q=ue=>r?i?L(ue)?"loading":"skipped":y2(n[ue.key],t,{inRun:L(ue),running:a}):"none",B=ue=>s?.[ue.key]??Q(ue),K=new Map(e.map(ue=>[ue.key,i_e(r,ue.key,n[ue.key])])),T=[...K.values()].some(ue=>ue?.estimated),O=new Map(e.map(ue=>[ue.key,WZ(n[ue.key],t)])),I=tD(n,t),P=e.some(ue=>ue.group),j=[];e.forEach(ue=>{let Fe=ue.group||"",Je=j.find(ot=>ot.name===Fe);Je||(Je={name:Fe,rows:[]},j.push(Je)),Je.rows.push(ue)});let M=ue=>(ue||P)&&p.has(ue),[W,Y]=(0,se.useState)(null),z=[];j.forEach(ue=>{(ue.name||P)&&z.push(`group:${ue.name}`),M(ue.name)||ue.rows.forEach(Fe=>z.push(Fe.key))});let V=new Set(z),q=[W,m,l].find(ue=>ue!=null&&V.has(ue))??z[0]??null,oe=(0,se.useRef)(null),Me=(0,se.useRef)(null),[fe,le]=(0,se.useState)(50),[R,te]=(0,se.useState)(0),He=(0,se.useRef)(fe),_e=(0,se.useRef)({});Vs(()=>{He.current=fe,_e.current={onToggleRow:y,onStopFollowing:g}});let D=(0,se.useCallback)(ue=>{oe.current=ue,S&&(S.current=ue)},[S]),G=(0,se.useCallback)(ue=>_e.current.onToggleRow?.(ue),[]),E=(0,se.useCallback)((ue,Fe)=>{Y(ue);let Je=oe.current;Je&&!Je.contains(Fe.relatedTarget)&&_e.current.onStopFollowing?.()},[]),$=()=>g?.();Vs(()=>{let ue=Me.current;if(!ue)return;let Fe=()=>{let ot=ue.offsetHeight;ot&&le(Tt=>Tt===ot?Tt:ot)};if(Fe(),typeof ResizeObserver>"u")return;let Je=new ResizeObserver(Fe);return Je.observe(ue),()=>Je.disconnect()},[]);let ee=(0,se.useCallback)(ue=>{if(!ue){te(0);return}let Fe=()=>te(ue.offsetHeight);Fe();let Je=typeof ResizeObserver>"u"?null:new ResizeObserver(Fe);Je?.observe(ue);let ot=oe.current,Tt=ue.previousElementSibling;if(ot&&Tt?.hasAttribute("data-scenario-key")){let Lt=Tt.closest("[data-group]")?.querySelector('[data-testid="scenario-group-row"]');ot.scrollTo({top:RZ({rowTop:Tt.offsetTop,headerHeight:He.current,groupRowHeight:Lt?.offsetHeight??0}),behavior:"smooth"})}return()=>{Je?.disconnect(),te(0)}},[]),F=(0,se.useRef)(null),me=(0,se.useRef)(null),et=(0,se.useRef)(0);Vs(()=>{let ue=oe.current;if(!ue||!b||!l){F.current=l;return}let Fe=ue.querySelector(`[data-scenario-key="${z2(l)}"]`);if(!Fe)return;let Je=QZ({rowTop:Fe.offsetTop,headerHeight:fe,boxHeight:ue.clientHeight});if(Math.abs(Je-ue.scrollTop)>4){let ot=Date.now(){let Fe=oe.current;if(!Fe||!ue)return;let Je=ue.hasAttribute("data-scenario-key")?ue.closest("[data-group]")?.querySelector('[data-testid="scenario-group-row"]'):null,ot=He.current+(Je?.offsetHeight??0);ue.offsetTop-otFe.scrollTop+Fe.clientHeight&&(Fe.scrollTop=ue.offsetTop+ue.offsetHeight-Fe.clientHeight)};return se.default.createElement("div",{ref:D,"data-testid":k,"data-detail":w,onWheel:$,onTouchMove:$,onKeyDown:ue=>{if(d_e(ue.target))return;let Fe=oe.current;if(Fe){if(ue.key==="ArrowDown"||ue.key==="ArrowUp"){let Je=[...Fe.querySelectorAll("[data-nav]")];if(!Je.length)return;let ot=Je.indexOf(ue.target);ot<0&&(ot=Je.findIndex(Lt=>Lt.hasAttribute("data-scenario-key")&&Lt.parentElement?.contains(ue.target)));let Tt=ot<0?Je[0]:Je[Math.min(Math.max(ot+(ue.key==="ArrowDown"?1:-1),0),Je.length-1)];ue.preventDefault(),g?.(),Tt&&Tt!==ue.target&&(Tt.focus({preventScroll:!0}),rt(Tt));return}ue.key==="Escape"&&m&&(y?.(m),Fe.querySelector(`[data-scenario-key="${z2(m)}"]`)?.focus({preventScroll:!0}))}},style:{border:"1px solid var(--color-border-light)",borderRadius:10,overflow:"auto",position:"relative",scrollbarGutter:"stable",maxHeight:v?R?`calc(${qJ(v)} + ${R}px)`:qJ(v):void 0}},se.default.createElement("div",{style:{minWidth:N}},se.default.createElement("div",{ref:Me,style:{display:"grid",gridTemplateColumns:A,gap:C,padding:"8px 12px",alignItems:"end",position:"sticky",top:0,zIndex:2,backgroundColor:"var(--color-surface)",backgroundImage:"linear-gradient(var(--color-muted), var(--color-muted))"}},se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},_?"Step":"Scenario"),!_&&se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},"Expects"),t.map(ue=>{let{short:Fe,provider:Je}=OD(r,ue),ot=u.find(Tt=>Tt.label===ue);return se.default.createElement("span",{key:ue,style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},title:ue},se.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:600,color:"var(--color-text-primary)"}},Fe),se.default.createElement("span",{style:Ur(10)},Je||" "),ot&&ot.passed!=null&&ot.total!=null&&se.default.createElement(tu,{passed:ot.passed,total:ot.total,height:4,valueWidth:48,style:{marginTop:3}}),se.default.createElement(B2,{metrics:I[ue],testId:"scenario-column-totals",title:"this model's answers' time added up, and its input\u2192output tokens, over the results in",style:{marginTop:2}}))}),se.default.createElement("span",{style:{textAlign:"right"},title:"What the scenario cost across every model, and what judging it cost; under it, its input\u2192output tokens"},se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},"Cost")),_&&se.default.createElement("span",{style:{textAlign:"right"},title:"The slowest answer across the run's models; a group's add up"},se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},"Time"))),j.map(ue=>{let Fe=ue.name,Je=M(Fe),ot=`group:${Fe}`,Tt=ue.rows.filter(L),Lt=F2[BZ(ue.rows.map(B))]||F2.none,Hr=tD(n,t,ue.rows.map(yt=>yt.key)),Io=t.map(yt=>{let to=Hr[yt];if(!Tt.length)return{label:yt,text:"not in this run",color:"var(--color-text-muted)",weight:400,metrics:to};if(i)return{label:yt,text:"loading\u2026",color:"var(--color-text-muted)",weight:400,metrics:to};let xs=Tt.filter(pt=>El(n[pt.key]?.[yt]));if(a&&!xs.length)return{label:yt,text:"queued",color:"var(--color-text-muted)",weight:400,metrics:to};let bs=xs.filter(pt=>Al(n[pt.key][yt])).length,ve=Tt.length,nt=ve&&bs===ve?"var(--color-success-text)":bs===0?"var(--color-error-text)":"var(--color-text-cell)";return{label:yt,text:`${Vn(bs,ve)} passed`,color:nt,weight:600,metrics:to}}),vs=s_e(ue.rows.map(yt=>K.get(yt.key))),Mi=HZ(ue.rows.map(yt=>O.get(yt.key)));return se.default.createElement("div",{key:Fe||"__ungrouped","data-group":Fe},(Fe||P)&&se.default.createElement("div",{"data-testid":"scenario-group-row","data-group":Fe,"data-collapsed":Je?"true":"false","data-nav":ot,role:"button","aria-expanded":!Je,tabIndex:q===ot?0:-1,onClick:()=>f?.(Fe),onKeyDown:yt=>{(yt.key==="Enter"||yt.key===" "||yt.key==="ArrowLeft"&&!Je||yt.key==="ArrowRight"&&Je)&&(yt.preventDefault(),f?.(Fe))},onFocus:yt=>E(ot,yt),style:{display:"grid",gridTemplateColumns:A,gap:C,padding:"7px 12px",alignItems:"center",borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",cursor:"pointer",position:"sticky",top:fe,zIndex:1}},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0}},se.default.createElement(wa,{kind:"chevron",open:!Je}),se.default.createElement("span",{"data-testid":"scenario-group-step",title:Lt.title,style:{...Ur(11,Lt.color),fontWeight:700,flexShrink:0}},Lt.text),se.default.createElement("span",{style:{fontSize:12,fontWeight:600,color:"var(--color-text-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},Fe||"ungrouped"),_&&se.default.createElement("span",{style:{...Ur(11),whiteSpace:"nowrap"}},`\xB7 ${St(ue.rows.length,"scenario")}`)),!_&&se.default.createElement("span",{style:Ur(11)},St(ue.rows.length,"scenario")),Io.map(yt=>se.default.createElement("span",{key:yt.label,style:{display:"flex",flexDirection:"column",gap:1,minWidth:0}},se.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:yt.weight,color:yt.color,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},yt.text),se.default.createElement(B2,{metrics:yt.metrics,testId:"scenario-group-metrics",title:"the group's answers' time added up, and their input\u2192output tokens, on this model"}))),se.default.createElement(QJ,{entry:vs,compact:_,testId:"scenario-group-cost",tokens:Mi}),_&&se.default.createElement("span",{"data-testid":"scenario-group-time",title:"the group's scenarios' times added up",style:{...Ur(11),textAlign:"right",whiteSpace:"nowrap"}},k2(qZ(ue.rows,n,t)))),!Je&&ue.rows.map(yt=>{let to=m===yt.key;return se.default.createElement("div",{key:yt.key},se.default.createElement(y_e,{scenario:yt,results:n[yt.key],columns:t,step:B(yt),current:yt.key===l,open:to,detail:w,showKey:d,grid:A,inSelection:L(yt),running:a,loading:i,costEntry:K.get(yt.key)??null,tokens:O.get(yt.key)??null,timeMs:eD(n[yt.key],t),tabIndex:q===yt.key?0:-1,onToggle:G,onFocus:E}),to&&se.default.createElement("div",{ref:ee},x?.(yt)))}))}),e.length===0&&se.default.createElement(Jr,{style:{borderTop:"1px solid var(--color-border-light)"}},h||"[+] nothing failed in this group"),T&&se.default.createElement("div",{style:{...Ur(11),padding:"6px 12px",borderTop:"1px solid var(--color-border-light)",textAlign:"right"},"data-testid":"scenario-matrix-legend"},il)))}function v_e(e){let t=[];e.duration_ms!=null&&t.push(Bn(e.duration_ms)),(e.input_tokens!=null||e.output_tokens!=null)&&t.push(`${On((e.input_tokens||0)+(e.output_tokens||0))} tokens`);let r=L2(e);return r&&t.push(r),t.join(" \xB7 ")}function x_e({label:e,run:t,result:r,expects:n,running:o}){let{short:a}=OD(t,e),i=se.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"},title:e},a),s=(g,h)=>se.default.createElement("div",{"data-testid":"scenario-result-detail",style:{background:"var(--color-card)",border:"1px solid var(--color-border-light)",borderRadius:10,overflow:"hidden",minWidth:0}},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},i,h),se.default.createElement("div",{style:{padding:"10px 12px",display:"flex",flexDirection:"column",gap:10}},g));if(!r||!El(r))return s(se.default.createElement("span",{style:Ur(11)},o?"waiting for this replay\u2026":"not part of this run"),se.default.createElement(ke,{tone:"muted"},o?"pending":"no result"));let u=Al(r)?"success":"error",c=YJ(r.tool_calls,n),d=r.diagnosis||{},p=d.judge||{},f=r.fault||(r.status==="errored"?"run_error":null),m=[d.summary,d.recommendation||r.recommendation].filter(Boolean).join(" ")||r.error_message||"",y=Object.entries(r.scores||{}),b=v_e(r);return s(se.default.createElement(se.default.Fragment,null,se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,flexWrap:"wrap",fontFamily:U,fontSize:11}},se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},"tools"),se.default.createElement(RJ,{calls:c,empty:"none called",style:{display:"contents"}})),f&&se.default.createElement("div",{style:{background:"var(--color-error-soft)",borderRadius:8,padding:"8px 10px",fontSize:12,lineHeight:"18px",color:"var(--color-error-text)",textWrap:"pretty"}},se.default.createElement("span",{style:{fontFamily:U,fontWeight:700}},`[!] ${Th(f)}`),m?` \u2014 ${m}`:"",p.suggested_tool?.name&&se.default.createElement("div",{style:{marginTop:4,fontFamily:U,fontSize:11}},`suggested tool: ${p.suggested_tool.name}${p.suggested_tool.description?` \u2014 ${p.suggested_tool.description}`:""}`),p.instruction_change&&se.default.createElement("div",{style:{marginTop:4,fontStyle:"italic"}},`instruction change: \u201C${p.instruction_change}\u201D`)),r.output?se.default.createElement("div",{style:{fontFamily:"var(--font-text)",fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",maxHeight:190,overflow:"auto",whiteSpace:"pre-wrap",textWrap:"pretty"}},r.output):se.default.createElement("div",{style:Ur(11)},"answer not retained for this run"),y.length>0&&se.default.createElement("div",{style:{...Ur(11),display:"flex",flexWrap:"wrap",gap:"2px 10px"},title:"score per criterion"},y.map(([g,h])=>se.default.createElement("span",{key:g},Th(g)," ",se.default.createElement("span",{style:{color:"var(--color-text-secondary)"}},h==null?"skipped":aa(h)))))),se.default.createElement(se.default.Fragment,null,se.default.createElement(ke,{tone:u},r.score==null?r.status:`${r.status} \xB7 ${aa(r.score)}`),b&&se.default.createElement("span",{style:{marginLeft:"auto",...Ur(11)},title:JJ(r)},b),r.agent_run_id&&se.default.createElement(ld,{kind:"scenario_result",id:r.id,title:"Replay this scenario's run",testId:"scenario-result-replay",style:b?void 0:{marginLeft:"auto"}})))}function rQ({scenario:e,run:t,columns:r,resultsByKey:n,running:o,inRun:a=!0,onRerun:i,onToggleEnabled:s,canMutate:l=!0,markdownUrl:u=null}){let c=ND(e,"tools"),d=n[e.key]||{},p=r.some(m=>d[m]),f=a||p;return se.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",padding:"12px 12px 14px"},"data-testid":"scenario-drilldown"},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:10,flexWrap:"wrap"}},se.default.createElement("span",{style:Ur(11)},e.key),se.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-cell)"}},"expects"),se.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:600,color:"var(--color-text-primary)"}},c.join(" or ")||"\u2014"),t&&p&&se.default.createElement(_l,{url:m2(u,{part:"scenario",scenario:e.key}),testId:"copy-scenario-markdown",title:"Copy this scenario \u2014 the prompt, expectations and each model's result \u2014 as Markdown",style:{marginLeft:"auto"}}),l&&se.default.createElement("span",{style:{marginLeft:t&&p&&u?0:"auto",display:"flex",alignItems:"center",gap:14}},se.default.createElement("button",{type:"button",onClick:m=>{m.stopPropagation(),s?.(e)},title:e.enabled===!1?"Enable this scenario":"Disable this scenario",style:{background:"transparent",border:"none",padding:0,cursor:"pointer",fontFamily:U,fontSize:11,color:e.enabled===!1?"var(--color-text-muted)":"var(--color-text-cell)"}},e.enabled===!1?"[ ] enabled":"[x] enabled"),se.default.createElement(Gr,{onClick:()=>i?.(e),title:"Run only this scenario under the selected models"},"re-run scenario"))),e.notes&&se.default.createElement("div",{style:{fontSize:12,fontStyle:"italic",color:"var(--color-text-secondary)",marginBottom:10}},e.notes),e.catalogChanged&&se.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)",marginBottom:10}},"This run used an earlier version of this question. Re-running uses the current version."),t?f?se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(300px, 1fr))",gap:12}},r.map(m=>se.default.createElement(x_e,{key:m,label:m,run:t,result:d[m],expects:c,running:o}))):se.default.createElement("div",{style:Ur(11)},"Not part of this run \u2014 use \u201Cre-run scenario\u201D to replay it."):se.default.createElement("div",{style:Ur(11)},"No runs yet \u2014 use \u201Cre-run scenario\u201D to replay this one on its own."))}function nQ({items:e,columns:t=[],agentName:r,onNavigate:n,onOpenScenario:o,run:a=null,results:i=[],evaluation:s=null,runNumber:l=null,scenarios:u=[],onRerun:c=null,runnableFor:d=null,markdownUrl:p=null}){let f=w=>d?d(w):uf(w.scenario_keys||[],u),[m,y]=(0,se.useState)("all"),b=t.length>1,g=b?m:"all",h=b?SZ(e,i,w=>zu(a,w)):e,v=YI(h,g),x=b?kZ(h,t):{},S=w=>UJ({item:w,evaluation:s,run:a,runNumber:l,results:i,scenarios:u,agentName:r,dashboardUrl:T2(),labelFor:_=>zu(a,_)}),k=w=>{let _=St((w.scenario_keys||[]).length,"scenario");if(w.kind==="instruction")return`${(w.scenario_keys||[]).join(", ")} \xB7 judge suggestion`;let A=fd(w.models||[]);if(t.length<=1||A.length===0)return _;let N=A.length>=t.length?t.length===2?"both models":"all models":A.map(L=>bn(L).short).join(", ");return`${_} \xB7 ${N}`};return se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10},"data-testid":"fix-list"},se.default.createElement(_l,{url:m2(p,{part:"fix_items",model:g}),label:g==="all"?"Copy What to fix as Markdown":`Copy What to fix for ${bn(g).short} as Markdown`,testId:"copy-fixes-markdown",title:"Copy What to fix as Markdown, for the model the filter shows",style:{alignSelf:"flex-end"}}),b&&se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},"data-testid":"fix-list-model-filter"},se.default.createElement("span",{style:Ur(11)},"for"),se.default.createElement(jn,{square:!0,mono:!0,selected:g==="all",onClick:()=>y("all"),testId:"fix-filter-all"},`all models ${e.length}`),t.map(w=>se.default.createElement(jn,{key:w,square:!0,mono:!0,selected:g===w,onClick:()=>y(w),title:`Only what ${w} needs fixed`,testId:"fix-filter-model"},`${bn(w).short} ${x[w]??0}`))),v.length===0&&se.default.createElement(Jr,{style:{border:"1px solid var(--color-border-light)",borderRadius:10,padding:"14px 12px"}},`[+] nothing to fix for ${bn(g).short}`),se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:12}},v.map((w,_)=>{let A=w.kind==="instruction",C=A?"info":"error",N=[],L=new Set;(w.tools||[]).forEach(O=>{let I=typeof O=="string"?O:O?.name;!I||L.has(I)||(L.add(I),N.push({name:I,note:typeof O=="object"&&(O.note||O.server?.name)||null}))});let Q=w.server,B=Q?.status==="enabled",K=r||"the agent",T=c?f(w):null;return se.default.createElement("div",{key:`${w.fault}-${_}`,"data-testid":"scenario-recommendation",style:{border:"1px solid var(--color-border)",borderRadius:10,padding:"12px 14px",display:"flex",flexDirection:"column",gap:10,minWidth:0}},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},se.default.createElement(wa,{kind:A?"info":"fault"}),se.default.createElement(ke,{tone:C},`${Th(w.fault)}${w.count>1?` \xD7${w.count}`:""}`),o&&(w.scenario_keys||[]).length>0?se.default.createElement("button",{type:"button",onClick:()=>o(w.scenario_keys),title:`Show ${(w.scenario_keys||[]).join(", ")} \u2014 the question, the answer and the tools it called`,style:{...Ur(11),background:"none",border:0,padding:0,cursor:"pointer",color:"var(--color-text-link, var(--color-text-primary))",textDecoration:"underline",textUnderlineOffset:2}},k(w)):se.default.createElement("span",{style:Ur(11)},k(w))),w.recommendation&&se.default.createElement("p",{style:{margin:0,fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},w.recommendation),w.quote&&se.default.createElement("div",{style:{background:"var(--color-muted)",borderRadius:8,padding:"8px 10px",fontSize:12,lineHeight:"18px",color:"var(--color-text-cell)",fontStyle:"italic"}},"\u201C",w.quote,"\u201D"),N.length>0&&se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:6}},se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},w.tools_label||"tools"),se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:6}},N.map(O=>se.default.createElement("span",{key:O.name,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"3px 8px",borderRadius:6,border:"1px solid var(--color-border)",fontFamily:U,fontSize:11,maxWidth:"100%"}},se.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},O.name),O.note&&se.default.createElement("span",{style:{color:"var(--color-text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:O.note},O.note))))),Q&&se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",fontSize:12,color:"var(--color-text-cell)"}},se.default.createElement("span",null,"served by"),se.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},Q.name||Q.key),se.default.createElement(ke,{tone:B?"success":"warning",size:10,style:{padding:"1px 6px"}},B?`enabled for ${K}`:`${Q.status||"unknown"} \xB7 not enabled for ${K}`)),w.note&&se.default.createElement("div",{style:{fontSize:12,lineHeight:"18px",color:"var(--color-text-secondary)",textWrap:"pretty"}},w.note),se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:"auto",paddingTop:2,flexWrap:"wrap"}},w.action?.path&&se.default.createElement(ce,{size:"sm",onClick:()=>n?.(w.action.path)},w.action.label),w.action?.hint&&se.default.createElement("span",{style:{...Ur(11),whiteSpace:"nowrap"}},w.action.hint),T&&(T.keys.length?se.default.createElement(Gr,{onClick:()=>c(w,T),title:"Replay these scenarios under the models in the picker",testId:"fix-item-rerun"},`re-run ${St(T.keys.length,"scenario")}`):se.default.createElement("span",{style:{...Ur(11),whiteSpace:"nowrap"},title:`${T.dropped.join(", ")} \xB7 disabled or no longer in the suite`,"data-testid":"fix-item-rerun-none"},"re-run \xB7 none enabled")),se.default.createElement(U0,{build:()=>S(w),style:{marginLeft:"auto"}}),se.default.createElement(_l,{text:w.markdown,testId:"copy-fix-markdown",title:"Copy this fix as Markdown, for an issue or a pull request"}),se.default.createElement(SD,{item:w,evaluation:s,run:a})))})))}var oQ=e=>{let{results:t,fix_items:r,...n}=e;return n},b_e={keys:[],dropped:[]},MD={padding:"6px 10px",borderRadius:8,fontSize:12,fontFamily:U,background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"},vf={border:"1px solid var(--color-border-light)",borderRadius:10},w_e=(e,t)=>e.size===t.size&&[...e].every(r=>t.has(r)),aQ=()=>typeof localStorage<"u"?localStorage:null,iQ=()=>typeof document<"u"&&document.visibilityState==="hidden";function ID({evaluation:e,modelProviders:t,onChanged:r,onDelete:n,deleting:o=!1,initialRunId:a=null,onRunSelected:i}){let s=e.id,l=e.agent?.name||"Agent",[u,c]=(0,be.useState)(!1),[d,p]=(0,be.useState)(null),[f,m]=(0,be.useState)(e.scenarios||[]),[y,b]=(0,be.useState)(e.scenario_groups||[]),[g,h]=(0,be.useState)(e.latest_run?[e.latest_run]:[]),[v,x]=(0,be.useState)(null),[S,k]=(0,be.useState)(a??e.latest_run?.id??null),[w,_]=(0,be.useState)({}),[A,C]=(0,be.useState)({}),[N,L]=(0,be.useState)(null),[Q,B]=(0,be.useState)((e.compare_models||[]).join(", ")),K=(0,be.useMemo)(()=>t===void 0?[]:t??R1,[t]),T=bc(K),O=(0,be.useMemo)(()=>M0(T,{providers:K}),[T,K]),[I,P]=(0,be.useState)(null),[j,M]=(0,be.useState)(!1),[W,Y]=(0,be.useState)([]),[z,V]=(0,be.useState)(""),[q,oe]=(0,be.useState)(!1),[Me,fe]=(0,be.useState)(""),[le,R]=(0,be.useState)(null),[te,He]=(0,be.useState)(null),[_e,D]=(0,be.useState)(!1),[G,E]=(0,be.useState)(null),[$,ee]=(0,be.useState)(!0),[F,me]=(0,be.useState)(()=>{let pe=e.scenarios||[],tt=(a==null||a===e.latest_run?.id)&&e.latest_run||null;return RI(pe,new Set(P0(tt,pe)))}),[et,rt]=(0,be.useState)(()=>new Map),[ge,ue]=(0,be.useState)(()=>$Z(aQ())),[Fe,Je]=(0,be.useState)("suite"),ot=(0,be.useRef)(null),Tt=(0,be.useRef)(null),Lt=(0,be.useRef)(null),Hr=(0,be.useRef)(new Map),Io=(0,be.useRef)(new Map),vs=(0,be.useRef)({}),Mi=(0,be.useRef)(w),yt=(0,be.useRef)(S),to=(0,be.useRef)(null),xs=D0(ot),bs=xs-TZ,ve=xs===0||bs>=OZ,nt=xs===0?0:bs-(ve?ZI+JI:0),pt=ge??"steps",Qt=nt===0||nt>=IZ,Hn=(0,be.useCallback)(async()=>{let pe=await fetch(`/api/evaluations/${s}/scenarios`);if(!pe.ok)return;let tt=await pe.json();m(tt.scenarios||[]),b(tt.groups||[])},[s]),co=(0,be.useCallback)(async()=>{try{let pe=await fetch(`/api/evaluations/${s}`);if(!pe.ok)return p(`Could not load this suite (HTTP ${pe.status})`),null;let Ct=(await pe.json()).evaluation||{};return m(Ct.scenarios||[]),b(Ct.scenario_groups||[]),h(Ct.runs||[]),x(Number.isFinite(Ct.run_count)?Ct.run_count:null),p(null),Ct}catch(pe){return p(`Could not load this suite: ${pe.message}`),null}finally{c(!0)}},[s]);Vs(()=>{Mi.current=w,yt.current=S});let nn=(0,be.useCallback)(pe=>{if(!pe)return Promise.resolve(null);if(Hr.current.has(pe))return Hr.current.get(pe);let tt=(async()=>{try{let Ct=await fetch(`/api/evaluations/${s}/runs/${pe}`);if(!Ct.ok)return C(Js=>({...Js,[pe]:`HTTP ${Ct.status}`})),null;let lr=(await Ct.json()).run;if(!lr)return C(Js=>({...Js,[pe]:"no run in the response"})),null;C(Js=>{if(!(pe in Js))return Js;let{[pe]:_s,...Nd}=Js;return Nd});let jo=Mi.current[lr.id],{results:Pf,changed:Ku}=XZ(jo?.results,lr.results);if(!(!!jo&&!Ku&&jo.status===lr.status&&jo.completed_at===lr.completed_at&&(jo.fix_items?.length??0)===(lr.fix_items?.length??0))){let Js=oQ(lr);_(_s=>({..._s,[lr.id]:{...lr,results:Pf}})),h(_s=>_s.some(Nd=>Nd.id===lr.id)?_s.map(Nd=>Nd.id===lr.id?{...Nd,...Js}:Nd):_s),L(_s=>_s&&_s.id===lr.id?{..._s,...Js}:_s)}return lr}catch(Ct){return C(rr=>({...rr,[pe]:Ct.message})),null}finally{Hr.current.delete(pe)}})();return Hr.current.set(pe,tt),tt},[s]),Oa=pe=>{L(oQ(pe)),k(pe.id),E(null)};(0,be.useEffect)(()=>{let pe=!1;return(async()=>{let tt=await co();if(pe)return;let Ct=tt?.runs?.[0]?.id??null,rr=!!(a&&tt?.runs?.some(Ku=>Ku.id===a));if(a&&!rr){let Ku=await nn(a);if(pe)return;if(Ku){Oa(Ku);return}}let lr=rr?a:null,jo=yt.current,Pf=lr||(jo&&tt?.runs?.some(Ku=>Ku.id===jo)?jo:Ct);k(Pf),Pf&&nn(Pf)})(),()=>{pe=!0}},[co,nn]);let Pa=e.latest_run?.id??null;(0,be.useEffect)(()=>{!Pa||g.some(pe=>pe.id===Pa)||co()},[Pa,g,co]);let ws=w[S]||g.find(pe=>pe.id===S)||(N?.id===S?N:null),po=g[0]||null,Wu=md(ws)?ws.id:md(po)?po.id:null;(0,be.useEffect)(()=>{if(!Wu)return;let pe=!1,tt=()=>YZ(Mi.current[Wu]?.results?.length??0),Ct=lr=>{clearTimeout(to.current),to.current=setTimeout(async()=>{if(pe||iQ())return;let jo=null;try{jo=await nn(Wu)}catch{jo=null}if(!pe){if(jo&&!md(jo)){await co(),r?.();return}Ct(tt())}},lr)},rr=()=>{document.visibilityState==="visible"&&Ct(0)};return iQ()||Ct(tt()),typeof document<"u"&&document.addEventListener("visibilitychange",rr),()=>{pe=!0,clearTimeout(to.current),typeof document<"u"&&document.removeEventListener("visibilitychange",rr)}},[Wu,nn,co,r]);let Ss=(0,be.useCallback)(async()=>{try{let pe=await fetch("/api/sandboxes?sandbox_type=app_runtime");if(!pe.ok)return;let tt=await pe.json(),Ct=b2(tt.sandboxes);Y(Ct),V(rr=>w2(rr,Ct))}catch{}},[]);(0,be.useEffect)(()=>{Ss()},[Ss]);let Hu=cd(Q),ro=async pe=>{M(!0),P(null);try{let tt=await fetch(`/api/evaluations/${s}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(CZ(pe,Hu,z))}),Ct=await tt.json().catch(()=>({}));if(!tt.ok)throw Ct.code==="sandbox_refused"&&Ss(),new Error((Ct.errors||[Ct.error]).filter(Boolean).join(", ")||"Run failed to start");let rr=Ct.run;h(lr=>[rr,...lr.filter(jo=>jo.id!==rr.id)]),x(lr=>lr==null?null:lr+1),_(lr=>({...lr,[rr.id]:{...rr,results:[]}})),k(rr.id),E(null),ee(!0),Je("suite"),r?.()}catch(tt){P(tt.message)}finally{M(!1)}},Pl=pe=>[pe,po?.id,S].slice(0,MZ),qh=pe=>{k(pe),E(null),_(tt=>nD(tt,Pl(pe))),w[pe]||nn(pe)},fb=pe=>{qh(pe.id),i?.(pe.id)};(0,be.useEffect)(()=>{if(!a||a===S)return;if(g.some(tt=>tt.id===a)||N?.id===a){qh(a);return}if(!u)return;let pe=!1;return(async()=>{let tt=await nn(a);pe||!tt||(_(Ct=>nD(Ct,Pl(tt.id))),Oa(tt))})(),()=>{pe=!0}},[a]);let mb=async pe=>{pe.id&&(await fetch(`/api/evaluations/${s}/scenarios/${pe.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({scenario:{enabled:pe.enabled===!1}})}),await Hn())},kA=async()=>{R(null);let pe=await fetch(`/api/evaluations/${s}/scenarios`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({scenarios_text:Me})}),tt=await pe.json().catch(()=>({}));if(!pe.ok){R((tt.errors||[tt.error]).filter(Boolean).join(", ")||"Could not save scenarios");return}m(tt.scenarios||[]),b(tt.groups||[]),oe(!1),r?.()},Qe=ws,Ma=!!Qe&&!Array.isArray(Qe.results),Kh=Qe?A[Qe.id]:null,fo=(0,be.useMemo)(()=>(Qe?.results||[]).filter(pe=>pe&&pe.scenario_key),[Qe]),Vh=K0(Qe,fo,e).join("\0"),ya=(0,be.useMemo)(()=>Vh?Vh.split("\0"):[],[Vh]),Ia=(0,be.useMemo)(()=>ZZ(fo,pe=>zu(Qe,pe),vs.current),[fo,Qe]);Vs(()=>{vs.current=Ia});let Tf=(0,be.useMemo)(()=>new Set(P0(Qe,f)),[Qe,f]),Da=md(Qe),Gh=Oh(Qe,ya,f),wd=GJ(Qe,fo,ya,f),Sd=(0,be.useCallback)(pe=>Tf.has(pe.key)||!!Ia[pe.key],[Tf,Ia]),mo=(0,be.useMemo)(()=>nZ(f,Ia,Io.current),[f,Ia]),Ml=(0,be.useMemo)(()=>{let pe={};return mo.forEach(tt=>{let Ct=Sd(tt);pe[tt.key]=Ma?Ct?"loading":"skipped":Qe?y2(Ia[tt.key],ya,{inRun:Ct,running:Da}):"none"}),pe},[mo,Sd,Ia,ya,Qe,Ma,Da]),gb=(0,be.useCallback)(pe=>Ml[pe.key],[Ml]),Yh=(0,be.useMemo)(()=>Da?zZ(mo.map(pe=>({key:pe.key,step:Ml[pe.key]}))):null,[Da,mo,Ml]),kd=(0,be.useCallback)(pe=>ya.some(tt=>{let Ct=Ia[pe.key]?.[tt];return El(Ct)&&!Al(Ct)}),[ya,Ia]),hb=(0,be.useMemo)(()=>mo.filter(kd).length,[mo,kd]),_d=!!Qe&&Qe.status==="complete"&&!Ma,Xh=(0,be.useMemo)(()=>FZ(mo.filter(pe=>!te||(pe.group||"")===te).filter(pe=>!_e||kd(pe)),gb,_d?Fe:"suite"),[mo,te,_e,kd,gb,_d,Fe]),_A=new Set(mo.filter(Sd).map(pe=>pe.group).filter(Boolean)).size,Cd=fo.filter(El).length,yb=fo.filter(pe=>El(pe)&&!Al(pe)).length,CA=Gh*Math.max(ya.length,1),Zh=new Set(fo.filter(pe=>El(pe)&&!Al(pe)).map(pe=>pe.scenario_key)).size,Of=Qe?.scores?._verdict||null,Il=Object.prototype.hasOwnProperty.call(Qe?.scores||{},"_judge_label")?Qe.scores._judge_label||"rules":Of?.judge&&Of.judge!=="pass rate"?Of.judge:e.judge_model||"rules",Ad=(0,be.useMemo)(()=>Qe?XJ(Qe,fo):[],[Qe,fo]),Jh=(0,be.useMemo)(()=>Ma?b_e:EZ(fo,f),[Ma,fo,f]),Qh=Object.keys(Qe?.scores||{}).filter(pe=>!pe.startsWith("_")),qu=(0,be.useCallback)(pe=>VJ(pe,pe.id===Qe?.id?fo:(w[pe.id]?.results||[]).filter(tt=>tt&&tt.scenario_key),e,f),[Qe,fo,w,e,f]),vb=(0,be.useCallback)((pe,tt,Ct)=>{if(!tt||tt.status!=="complete"||pe.status!=="complete")return E0(pe,tt,{olderNumber:Ct});let rr=K0(pe,pe.id===Qe?.id?fo:[],e),lr=K0(tt,[],e),jo=Oh(tt,lr,f)===Oh(pe,rr,f)&&lr.length===rr.length;return E0(pe,tt,{olderNumber:Ct,comparable:jo})},[Qe,fo,e,f]),ie=(0,be.useMemo)(()=>E2({runs:g,runCount:v,evaluation:e,agentName:l,selectedId:Qe?.id??null,previousRun:e.previous_run,barsFor:qu,deltaFor:vb}),[g,v,e,l,Qe?.id,qu,vb]),Ie=ie.find(pe=>pe.run.id===Qe?.id)||null,st=Ie?.number??(Number.isFinite(Qe?.number)?Qe.number:null),zt=Ie?.bars??(Qe?qu(Qe):[]),kn=sf(g,v),ni=!!Qe&&po?.id===Qe.id,Do=md(po)&&po.id!==Qe?.id?po:null,ja=u||f.length>0,ks=ja?f.length:e.scenario_count??0,Ed=ja?f.filter(pe=>pe.enabled!==!1&&(!te||(pe.group||"")===te)).length:ks,ite=`Run ${St(Ed,"scenario")}${Hu.length?` \xD7 ${St(Hu.length,"model")}`:""}`,ste=`@${l} \xB7 ${St(ks,"scenario")}${y.length?` in ${St(y.length,"group")}`:""} \xB7 ${d?"not loaded":u?g.length?St(kn,"run"):"no runs yet":"loading\u2026"}`,xb=Qe&&Qe.status==="complete"?`/evaluations/${s}/runs/${Qe.id}/report`:null,AA=xb?Re(gh(xb).markdown):null,lte=[...new Set([...y,...mo.map(pe=>pe.group).filter(Boolean)])],ute=[{label:`All ${mo.length||ks}`,value:null}].concat(lte.map(pe=>({label:ja?`${pe} ${mo.filter(tt=>tt.group===pe).length}`:pe,value:pe}))),Rh=(0,be.useMemo)(()=>{let pe=[...new Set(mo.map(tt=>tt.group||""))];return pe.some(Boolean)?pe:[]},[mo]),cte=Rh.some(pe=>!F.has(pe)),EA=mo.length===0,dte=_e?"[+] nothing failed in this group":"[ ] no scenarios";(0,be.useEffect)(()=>{ee(!0),rt(new Map),Je("suite"),E(null)},[Qe?.id]),(0,be.useEffect)(()=>{me(RI(f,Tf))},[Qe?.id,u]);let Ej=(0,be.useRef)(Qe?.id??null);(0,be.useEffect)(()=>{if(Ej.current!==(Qe?.id??null)){Ej.current=Qe?.id??null;return}!Da||!$||me(pe=>{let tt=new Set(pe);return Rh.forEach(Ct=>{if(et.has(Ct))return;let rr=mo.filter(lr=>(lr.group||"")===Ct&&Sd(lr));rr.length&&(rr.every(lr=>Ml[lr.key]==="passed")&&tt.add(Ct),rr.some(lr=>lr.key===Yh)&&tt.delete(Ct))}),w_e(tt,pe)?pe:tt})},[Qe?.id,Yh,Cd,$,Da]);let pte=pe=>{let tt=F.has(pe);me(Ct=>{let rr=new Set(Ct);return tt?rr.delete(pe):rr.add(pe),rr}),rt(Ct=>new Map(Ct).set(pe,tt))},Nj=pe=>{me(new Set(pe?[]:Rh)),rt(new Map(Rh.map(tt=>[tt,pe])))},fte=pe=>{ue(pe),LZ(aQ(),pe)},mte=(0,be.useCallback)(pe=>{E(tt=>tt===pe?null:pe),ee(!1)},[]),gte=(0,be.useCallback)(()=>ee(!1),[]),hte=(0,be.useCallback)(pe=>{let tt=Array.isArray(pe)?pe[0]:pe;if(!tt)return;let Ct=mo.find(rr=>rr.key===tt)?.group||"";He(null),D(!1),me(rr=>{if(!rr.has(Ct))return rr;let lr=new Set(rr);return lr.delete(Ct),lr}),rt(rr=>new Map(rr).set(Ct,!0)),E(tt),ee(!1),requestAnimationFrame(()=>{let rr=Tt.current;rr&&(rr.scrollIntoView({behavior:"smooth",block:"start"}),rr.querySelector(`[data-scenario-key="${z2(tt)}"]`)?.focus({preventScroll:!0}))})},[mo]),yte=()=>{Lt.current?.scrollIntoView({behavior:"smooth",block:"start"}),Lt.current?.focus({preventScroll:!0})},vte=()=>{Qe&&(C(pe=>{let{[Qe.id]:tt,...Ct}=pe;return Ct}),nn(Qe.id))},Tj=()=>{po&&fb(po)},Oj=EA&&d?be.default.createElement(Jr,{style:vf},"[!] suite not loaded"):EA&&!u?be.default.createElement(Jr,{style:vf},"loading\u2026"):EA?be.default.createElement(Jr,{style:vf},"No scenarios yet \u2014 paste some with \u201CEdit scenarios\u201D."):S!=null&&!Qe?be.default.createElement(Jr,{style:vf},"loading\u2026"):Kh&&!Array.isArray(Qe.results)?be.default.createElement(Jr,{style:vf},`[!] results not loaded (${Kh}) \xB7 `,be.default.createElement(Gr,{onClick:vte,title:"Fetch this run's results again",testId:"suite-detail-retry"},"retry")):be.default.createElement(tQ,{rows:Xh,columns:Qe?ya:[],run:Qe,resultsByKey:Ia,runKeys:Tf,running:Da,loading:Ma,stepsByKey:Ml,currentKey:Yh,bars:zt,detail:pt,showKey:Qt,collapsedGroups:F,onToggleGroup:pte,openKey:G,onToggleRow:mte,following:$,onStopFollowing:gte,emptyLabel:dte,maxHeight:QI,boxRef:Tt,renderDetail:pe=>be.default.createElement(rQ,{scenario:pe,run:Qe,columns:Qe?ya:[],resultsByKey:Ia,running:Da,inRun:Sd(pe),canMutate:!pe.orphan,onRerun:tt=>ro({keys:[tt.key]}),onToggleEnabled:mb,markdownUrl:AA})}),Pj={rows:ie,runs:g,runCount:v,evaluation:e,agentName:l,selectedId:Qe?.id??null,onOpen:fb,noteFor:pe=>XI(pe,f),linkedRun:N,linkedBars:N&&qu(N)};return be.default.createElement("div",{ref:ot,style:{padding:16,display:"flex",flexDirection:"column",gap:16},"data-testid":"scenario-suite-panel","data-layout":ve?"rail":"strip"},be.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},be.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},ste),be.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},be.default.createElement(ce,{size:"sm",onClick:()=>{fe(hJ(f)),R(null),oe(!q)}},q?"Cancel":"Edit scenarios"),be.default.createElement(j0,{value:Q,onChange:B,models:O,inputLabel:"Models to run",placeholder:"models, e.g. gpt-5-mini, ollama/qwen3:8b",title:"Blank runs the suite's saved models, or the agent's own model when it has none. Prefix a typed name with its provider (ollama/llama3.2) when the name alone is ambiguous.",style:{...MD,minWidth:250,maxWidth:420},testId:"suite-models-picker"}),W.length>0&&be.default.createElement("select",{value:z,onChange:pe=>V(pe.target.value),style:{...MD,maxWidth:260},"aria-label":"Run against sandbox",title:"Replays also reach this checkout sandbox's app runtime, as if the agent listed it in its MCP servers. The agent is not changed.","data-testid":"suite-run-sandbox"},be.default.createElement("option",{value:""},"Run against: agent's own tools"),W.map(pe=>be.default.createElement("option",{key:pe.value,value:pe.value},`Run against sandbox ${pe.label}`))),be.default.createElement(ce,{variant:"primary",size:"sm",disabled:j||!u||Ed===0,onClick:()=>ro(te?{group:te}:{}),testId:"suite-run-button"},j?"Starting\u2026":ite))),(d||I)&&be.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)",background:"var(--color-error-soft)",borderRadius:8,padding:"8px 12px"}},d||I),q&&be.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8}},be.default.createElement("textarea",{value:Me,onChange:pe=>fe(pe.target.value),rows:Math.min(Math.max(f.length+4,6),24),style:{...MD,width:"100%",boxSizing:"border-box",lineHeight:"18px"}}),be.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12,fontSize:12,color:"var(--color-text-muted)",flexWrap:"wrap"}},be.default.createElement("span",{style:{flex:1,minWidth:240}},"One message per line. ",be.default.createElement("code",{style:{fontFamily:U}},"# Heading")," starts a group; ",be.default.createElement("code",{style:{fontFamily:U}},"| tools: a, b"),", ",be.default.createElement("code",{style:{fontFamily:U}},"| contains: x"),", ",be.default.createElement("code",{style:{fontFamily:U}},"| not_contains: y")," set expectations. Keep a scenario's ",be.default.createElement("code",{style:{fontFamily:U}},"key")," to keep its history."),be.default.createElement(ce,{variant:"primary",size:"sm",onClick:kA},"Save scenarios")),le&&be.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},le)),Qe&&be.default.createElement(mD,{run:Qe,runNumber:st,latestNumber:kn,isLatest:ni,runningElsewhere:Do,agentName:l,scenarioCount:Gh,groupCount:_A,columns:ya,judgedBy:Il,bars:zt,delta:Ie?.delta??null,version:Ie?.version??null,totals:wd,settledCount:Cd,settledFailed:yb,expectedResults:CA,running:Da,loading:Ma,spend:Ni(Qe),fixSummary:{items:Ad.length,faults:Math.max(wd.total-wd.passed,0),scenarios:Zh},selectionLabel:XI(Qe,f),sandboxLabel:O0(Qe),reportPath:xb,rerun:Jh,onSelectLatest:Tj,onWatchLatest:Tj,onJumpToFix:yte,onRerunFailed:()=>ro({keys:Jh.keys}),onRunAgain:()=>ro(NZ(Qe,f))}),!ve&&be.default.createElement(pD,{layout:"strip",limit:pZ,...Pj}),be.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},be.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},be.default.createElement(Ue,{style:{marginRight:4}},"Scenarios"),ute.map(pe=>be.default.createElement(jn,{key:pe.label,selected:te===pe.value,onClick:()=>He(pe.value)},pe.label)),be.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},be.default.createElement(jn,{square:!0,mono:!0,selected:pt==="tools",onClick:()=>fte(pt==="tools"?"steps":"tools"),style:{background:"transparent"},title:"Show the tools each replay called and what each cell cost",testId:"suite-detail-toggle"},pt==="tools"?"[x] tools":"[ ] tools"),be.default.createElement(jn,{square:!0,mono:!0,selected:_e,onClick:()=>D(!_e),style:{background:"transparent"},title:"Hide scenarios that passed on every model",testId:"suite-failed-only"},`${_e?"[x]":"[ ]"} failed only${!Ma&&hb?` \xB7 ${hb}`:""}`),Qe&&Qe.status!=="failed"&&(_d?be.default.createElement(jn,{square:!0,mono:!0,selected:Fe==="failed-first",onClick:()=>Je(Fe==="failed-first"?"suite":"failed-first"),style:{background:"transparent"},title:"Groups with the most failures first, and failed scenarios first within each",testId:"suite-order-toggle"},Fe==="failed-first"?"[x] failed first":"[ ] failed first"):be.default.createElement(jn,{square:!0,mono:!0,disabled:!0,style:{background:"transparent"},title:"applies once the run completes",testId:"suite-order-toggle"},"[ ] failed first")),Da&&be.default.createElement(jn,{square:!0,mono:!0,selected:$,onClick:()=>ee(pe=>!pe),style:{background:"transparent"},title:"Keep the step being replayed in view as the run goes",testId:"suite-follow"},$?"[x] follow":"[ ] follow"),Rh.length>1&&(cte?be.default.createElement(Gr,{onClick:()=>Nj(!1),title:"Fold every group",testId:"suite-collapse-all"},"collapse all"):be.default.createElement(Gr,{onClick:()=>Nj(!0),title:"Unfold every group",testId:"suite-collapse-all"},"expand all")))),ve?be.default.createElement("div",{style:{display:"grid",gridTemplateColumns:`${ZI}px minmax(0, 1fr)`,gap:JI,alignItems:"start"}},be.default.createElement(pD,{layout:"rail",maxHeight:QI,...Pj}),Oj):Oj),Qe&&Qe.status!=="failed"&&be.default.createElement(eQ,{run:Qe,columns:ya,results:fo,scenarioCount:Gh,judgedBy:Il,verdict:Of,evaluation:e,onJudgeChanged:r,markdownUrl:AA}),Qe&&Qe.status!=="failed"&&be.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},be.default.createElement("div",{ref:Lt,tabIndex:-1,style:{display:"flex",alignItems:"baseline",gap:10,outline:"none"},"data-testid":"suite-fix-heading"},be.default.createElement(Ue,null,"What to fix"),be.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},Ma?"loading\u2026":`${St(Ad.length,"item")} \xB7 ${St(Math.max(wd.total-wd.passed,0),"fault")} across ${St(Zh,"scenario")}`)),Ma?be.default.createElement(Jr,{style:{...vf,padding:"14px 12px"}},"[ ] loading\u2026"):Ad.length>0?be.default.createElement(nQ,{items:Ad,columns:ya,agentName:l,onNavigate:lt,onOpenScenario:hte,run:Qe,results:fo,evaluation:e,runNumber:st,scenarios:f,onRerun:pe=>ro({keys:uf(pe.scenario_keys||[],f).keys}),runnableFor:pe=>uf(pe.scenario_keys||[],f),markdownUrl:AA}):be.default.createElement(Jr,{style:{...vf,padding:"14px 12px"}},Da?"[ ] scoring\u2026":"[+] nothing to fix")),be.default.createElement(gf,{evaluation:e,run:Qe,keys:Qh.length?Qh:null,spend:Ni(Qe),spendTotal:!0,reportPath:xb,onDelete:n,deleting:o,deleteLabel:"Delete suite"}))}var it=Z(J());var DD=[{type:"response_present",key:"response_present",label:"Response present",config:{}},{type:"min_length",key:"response_length",label:"Response length \u2265 40 chars",config:{chars:40}},{type:"max_latency_ms",key:"latency",label:"Latency \u2264 5s",config:{ms:5e3}},{type:"token_budget",key:"token_budget",label:"Output \u2264 1000 tokens",config:{output_tokens:1e3}}],sQ=[{type:"trace_error_rate",key:"trace_error_rate",label:"Trace error rate \u2264 5% (telemetry, 7d)",config:{max_error_rate:5,window_hours:168}},{type:"trace_latency",key:"trace_latency",label:"Avg trace latency \u2264 5s (telemetry, 7d)",config:{max_avg_ms:5e3,window_hours:168}}],Bu={padding:"8px 12px",borderRadius:8,fontSize:13,fontFamily:"inherit",boxSizing:"border-box",background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"},lQ={margin:"6px 0 0",fontSize:12,color:"var(--color-text-muted)"},S_e={openai:"OpenAI",anthropic:"Anthropic",ollama:"Ollama",openrouter:"OpenRouter"};function jD({agents:e,agentId:t,judgeProvider:r,judgeProviderError:n=!1,modelProviders:o,onCreated:a,onCancel:i}){let[s,l]=(0,it.useState)({agent_id:t?String(t):"",name:"",sample_size:20,criteria:DD.map(C=>C.key),containsPattern:"",llmJudgePrompt:"",judgeKind:"manual",judgeModel:"",compareModels:"",scenariosText:"",compareRestore:new Map}),[u,c]=(0,it.useState)(null),[d,p]=(0,it.useState)(!1),f=(0,it.useId)(),m=(0,it.useMemo)(()=>o===void 0?[]:o??R1,[o]),y=bc(r&&!m.includes(r)?[...m,r]:m),b=__e(s.agent_id),g=(0,it.useMemo)(()=>M0(y,{providers:m.length?m:r?[r]:[]}),[y,m,r]),h=!!s.scenariosText.trim(),v=(0,it.useMemo)(()=>h?M0(y,{providers:m}):b,[y,m,h,b]),x=C=>l(N=>({...N,...C})),S=C=>l(N=>{let L=!!C.trim();if(L===!!N.scenariosText.trim())return{...N,scenariosText:C};let{models:Q,restore:B}=rJ(cd(N.compareModels),y,{providers:m,qualify:L,restore:N.compareRestore});return{...N,scenariosText:C,compareModels:I0(Q),compareRestore:B}}),k=(C,N)=>x({criteria:N?[...s.criteria,C]:s.criteria.filter(L=>L!==C)}),w=()=>{let C=[...DD,...sQ].filter(N=>s.criteria.includes(N.key)).map(({key:N,type:L,config:Q})=>({key:N,type:L,config:Q}));return s.containsPattern.trim()&&C.push({key:"contains",type:"contains",config:{pattern:s.containsPattern.trim()}}),s.llmJudgePrompt.trim()&&C.push({key:"quality",type:"llm_judge",config:{prompt:s.llmJudgePrompt.trim()}}),C},_=async C=>{C.preventDefault(),p(!0),c(null);try{let N=await fetch("/api/evaluations",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({evaluation:{agent_id:s.agent_id,name:s.name,sample_size:s.sample_size,judge_kind:s.judgeKind==="judge_defined"?"judge_defined":s.llmJudgePrompt.trim()?"llm":"rules",judge_model:s.judgeModel.trim()||void 0,compare_models:cd(s.compareModels),criteria:s.judgeKind==="judge_defined"?[]:w(),scenarios_text:s.scenariosText.trim()||void 0}})}),L=await N.json().catch(()=>({}));if(!N.ok)throw new Error((L.errors||[L.error]).filter(Boolean).join(", ")||`Failed to create evaluation (HTTP ${N.status})`);a?.(L.evaluation)}catch(N){c(N.message)}finally{p(!1)}},A=C=>it.default.createElement("label",{key:C.key,style:{display:"flex",alignItems:"center",gap:8,fontSize:13,color:"var(--color-text-primary)"}},it.default.createElement("input",{type:"checkbox",checked:s.criteria.includes(C.key),onChange:N=>k(C.key,N.target.checked),style:{accentColor:"var(--color-accent-ui)"}}),C.label);return it.default.createElement(je,{testId:"new-evaluation-form"},it.default.createElement("form",{onSubmit:_,style:{display:"flex",flexDirection:"column",gap:16}},it.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"Agent"),it.default.createElement("select",{required:!0,disabled:!!t,value:s.agent_id,onChange:C=>x({agent_id:C.target.value}),style:{...Bu,width:"100%",opacity:t?.7:1}},!t&&it.default.createElement("option",{value:""},"Select agent\u2026"),e.map(C=>it.default.createElement("option",{key:C.id,value:C.id},C.name)))),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"Name"),it.default.createElement("input",{required:!0,type:"text",value:s.name,onChange:C=>x({name:C.target.value}),placeholder:"Response Quality",style:{...Bu,width:"100%"}})),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"Sample size"),it.default.createElement("input",{type:"number",min:"1",max:"100",value:s.sample_size,onChange:C=>x({sample_size:C.target.value}),style:{...Bu,width:"100%",fontFamily:U}}))),it.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"KPI definition"),it.default.createElement("select",{value:s.judgeKind,onChange:C=>x({judgeKind:C.target.value}),style:{...Bu,width:"100%"}},it.default.createElement("option",{value:"manual"},"Manual criteria"),it.default.createElement("option",{value:"judge_defined"},"Judge defines KPIs from agent goals"))),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",htmlFor:`${f}-judge`,style:{display:"block",marginBottom:6}},"Judge model (optional)"),it.default.createElement(ru,{id:`${f}-judge`,"aria-describedby":r===void 0?void 0:`${f}-judge-provider`,value:s.judgeModel,models:g,onChange:C=>x({judgeModel:C}),style:{...Bu,width:"100%",fontFamily:U,fontSize:12}}),r!==void 0&&it.default.createElement("p",{id:`${f}-judge-provider`,style:lQ},k_e(r,n))),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",htmlFor:`${f}-compare`,style:{display:"block",marginBottom:6}},"Compare models (optional)"),it.default.createElement(j0,{inputId:`${f}-compare`,describedBy:`${f}-compare-hint`,value:s.compareModels,onChange:C=>x({compareModels:C}),models:v,placeholder:"e.g. claude-haiku-4-5, qwen3:8b",style:{...Bu,width:"100%",fontFamily:U,fontSize:12}}),it.default.createElement("p",{id:`${f}-compare-hint`,style:lQ},h?"Each model replays the scenarios. Any model name can be typed.":"Compares the agent's generations recorded under each model name. Add scenarios to try any model."))),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"Scenarios (optional) \u2014 paste user messages to replay, one per line"),it.default.createElement("textarea",{value:s.scenariosText,onChange:C=>S(C.target.value),rows:s.scenariosText?8:3,placeholder:`# Open tickets Which open tickets mention a refund? | tools: find_tickets # Change history -Who changed the shipping policy last week?`,style:{...zu,width:"100%",fontFamily:U,fontSize:12,lineHeight:"18px"}}),at.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. ",at.default.createElement("code",{style:{fontFamily:U}},"# Heading")," lines group related tasks so they can be run together; ",at.default.createElement("code",{style:{fontFamily:U}},"| tools: a, b")," names the tool a task should call.")),s.judgeKind==="judge_defined"?at.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."):at.default.createElement(at.default.Fragment,null,at.default.createElement("div",null,at.default.createElement(We,{style:{display:"block",marginBottom:8}},"Rule-based criteria (sampled generations)"),at.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:12}},ID.map(A))),at.default.createElement("div",null,at.default.createElement(We,{style:{display:"block",marginBottom:8}},"Telemetry criteria (trace aggregates)"),at.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:12}},aQ.map(A))),at.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4"},at.default.createElement("div",null,at.default.createElement(We,{as:"label",style:{display:"block",marginBottom:6}},"Must contain (optional pattern)"),at.default.createElement("input",{type:"text",value:s.containsPattern,onChange:C=>x({containsPattern:C.target.value}),placeholder:"e.g. password reset",style:{...zu,width:"100%"}})),at.default.createElement("div",null,at.default.createElement(We,{as:"label",style:{display:"block",marginBottom:6}},"LLM judge criterion (optional, needs provider credentials)"),at.default.createElement("input",{type:"text",value:s.llmJudgePrompt,onChange:C=>x({llmJudgePrompt:C.target.value}),placeholder:"e.g. Is the answer helpful and accurate?",style:{...zu,width:"100%"}})))),u&&at.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},u),at.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},at.default.createElement(de,{variant:"primary",type:"submit",disabled:d},d?s.scenariosText.trim()?"Creating & starting run\u2026":"Creating & running\u2026":"Create & Run"),i&&at.default.createElement(de,{onClick:i},"Cancel"))))}function x_e(e,t){return e?`An unpinned judge defaults to ${v_e[e]||e}. Pinning a model selects its provider.`:t?"Provider credentials could not be read, so the judge's provider is unknown. Check the provider API keys in Settings.":"No provider has credentials for a judge. Add a provider API key in Settings."}function b_e(e){let[t,r]=(0,at.useState)([]);return(0,at.useEffect)(()=>{if(r([]),!e)return;let n=!1;return fetch(`/api/agents/${encodeURIComponent(e)}/recorded_models`).then(o=>o.ok?o.json():{}).then(o=>{!n&&Array.isArray(o.models)&&r(o.models)}).catch(()=>{}),()=>{n=!0}},[e]),t}var Ce=Z(J());var w_e={background:"none",border:"none",padding:0,cursor:"pointer",fontFamily:U,fontSize:12,color:"var(--color-info)"},So=(e=11,t="var(--color-text-muted)",r={})=>({fontFamily:U,fontSize:e,color:t,...r});function S_e({stats:e}){if(!e)return Ce.default.createElement("span",{style:So()},"\u2014");if(e.skipped)return Ce.default.createElement("div",null,Ce.default.createElement("span",{style:So(12,"var(--color-text-cell)",{fontWeight:700})},"[-] skipped"),Ce.default.createElement("div",{style:{...So(),marginTop:2,textWrap:"pretty"},title:e.reason},S0(e.reason,90)));let t=Number(e.score),r=bo[t>=.85?"success":t>=.7?"warning":"error"].strong,n=[];if(e.total!=null&&n.push(`${Kn(e.passed,e.total)} passed`),e.total>1&&e.min!=null&&n.push(`min ${aa(e.min)} \xB7 max ${aa(e.max)}`),e.source==="telemetry"){n.push(`${e.traces} traces \xB7 ${e.window_hours}h`);let o=e.observed||{};o.error_rate!=null&&n.push(`observed ${o.error_rate}% errors (${o.errors})`),o.avg_duration_ms!=null&&n.push(`observed avg ${zn(o.avg_duration_ms)}`)}return Ce.default.createElement("div",null,Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6}},Ce.default.createElement("span",{style:So(12,r,{fontWeight:700})},t>=.7?"[+]":"[!]"," ",aa(t)),e.source==="telemetry"&&Ce.default.createElement("span",{"data-testid":"score-source-telemetry",title:"Aggregate over the agent's telemetry traces",style:So(10,"var(--color-text-muted)",{textTransform:"uppercase",letterSpacing:"0.04em"})},"telemetry")),Ce.default.createElement("div",{style:{...So(),marginTop:2,textWrap:"pretty"}},n.join(" \xB7 ")))}function k_e({item:e,evaluation:t=null,run:r=null,number:n=null}){let o=()=>FJ({item:e,evaluation:t,run:r,runNumber:n,agentName:t?.agent?.name,dashboardUrl:N2()});return Ce.default.createElement("div",{"data-testid":"fix-item",style:{border:"1px solid var(--color-border)",borderRadius:10,padding:"12px 14px",display:"flex",flexDirection:"column",gap:10,minWidth:0}},Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Ce.default.createElement(Na,{kind:"fault"}),Ce.default.createElement(_e,{tone:"error"},e.label),Ce.default.createElement("span",{style:So()},e.scope)),Ce.default.createElement("div",{style:{fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},e.text),e.chips?.length>0&&Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:6}},Ce.default.createElement(We,{size:10,color:"var(--color-text-muted)"},e.chipsLabel),Ce.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap"}},e.chips.map(a=>Ce.default.createElement("span",{key:a,style:{fontFamily:U,fontSize:11,padding:"3px 8px",borderRadius:6,border:"1px solid var(--color-border)",color:"var(--color-text-primary)",fontWeight:600}},a)))),e.details?.length>0&&Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:3}},e.details.map(a=>Ce.default.createElement("span",{key:a,style:So(11,"var(--color-text-cell)",{textWrap:"pretty"})},a))),Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:"auto",flexWrap:"wrap"}},e.action?.path&&Ce.default.createElement(de,{size:"sm",onClick:()=>lt(e.action.path)},e.action.label),e.action?.hint&&Ce.default.createElement("span",{style:{...So(),whiteSpace:"nowrap"}},e.action.hint),Ce.default.createElement(F0,{build:o,style:{marginLeft:"auto"}})))}function jD({evaluation:e,runs:t=[],runCount:r=null,runId:n,loading:o=!1,running:a=!1,onSelectRun:i,onRun:s,onBack:l,onOpenEvaluation:u,onDelete:c,deleting:d=!1}){let[p,f]=(0,Ce.useState)("all"),[m,y]=(0,Ce.useState)(!1),b=(L,G)=>Ce.default.createElement("button",{type:"button",onClick:G,style:w_e},L),g=t.findIndex(L=>L.id===n),h=g>=0?t[g]:t[0],v=h?wh(h,Math.max(g,0),t,r):null,x=Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},b("Evaluations",l),Ce.default.createElement("span",{style:So(12)},"/"),b(e?.name||"Evaluation",u),Ce.default.createElement("span",{style:So(12)},"/"),Ce.default.createElement("span",{style:So(12,"var(--color-text-primary)",{fontWeight:700})},h?`Run #${v}`:"Runs"));if(!e)return Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12}},Ce.default.createElement("div",null,b("Evaluations",l)),Ce.default.createElement(Le,null,Ce.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-muted)"}},"This evaluation is not in the list any more.")));if(!h)return Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12}},x,o?Ce.default.createElement("div",{className:"flex items-center justify-center h-64"},Ce.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2",style:{borderBottomColor:"var(--color-accent-ui)"}})):Ce.default.createElement(Le,null,Ce.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-muted)"}},"No runs recorded yet.")));let S=_0(h),_=S.length?S:[null],w=bh(h),k=L=>w.find(G=>G.label===L)||(L==null?w[0]:null),A=h.scores?._verdict,C=Array.isArray(h.scores?._missing_models)?h.scores._missing_models:[],T=xh(h).map(([L,G])=>({key:L,value:G,criterion:k0(e,L)})),$=L=>T.filter(G=>Sl(G.criterion)===L).length,Q=HI.filter(L=>$(L.id)>0),B=L=>_.some(G=>{let q=nf(L.value,G);return q&&(q.skipped||q.score!=null&&q.score<.7)}),K=T.filter(L=>(p==="all"||Sl(L.criterion)===p)&&(!m||B(L))),N=HI.map(L=>({...L,rows:K.filter(G=>Sl(G.criterion)===L.id)})).filter(L=>L.rows.length),O=y2(e,{...h,number:v}),D=Ni(h),P=wo(h.completed_at||h.created_at),j=h.status==="complete"&&h.samples_evaluated?` \xB7 ${Kn(h.samples_passed||0,h.samples_evaluated)} passed`:"",M={fontFamily:U,fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",color:"var(--color-text-muted)",padding:"8px 12px",textAlign:"left",verticalAlign:"top",whiteSpace:"nowrap"},W={padding:"10px 12px",verticalAlign:"top"},Y={padding:"7px 12px",verticalAlign:"middle"};return Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"evaluation-run-detail"},x,Ce.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},Ce.default.createElement("div",{style:{minWidth:0}},Ce.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},`Run #${v}`),Ce.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)",textWrap:"pretty"}},`${e.name} \xB7 ${P} \xB7 @${e.agent?.name||"agent"} \xB7 ${rf(e,h)}${j}`)),Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},t.map((L,G)=>Ce.default.createElement(Ln,{key:L.id,square:!0,mono:!0,selected:L.id===h.id,onClick:()=>i?.(L),title:`${L.status} \xB7 ${wo(L.completed_at||L.created_at)}`},`#${wh(L,G,t,r)}`)),Ce.default.createElement(de,{variant:"primary",disabled:a,onClick:s,testId:"run-again-button"},a?"Running\u2026":"Run again"))),Ce.default.createElement(iD,{spend:D,judgedBy:vh(e,h)}),h.status==="failed"?Ce.default.createElement(Le,{"data-testid":"run-failed",style:{borderColor:"var(--color-error)"},padding:"14px 16px"},Ce.default.createElement("span",{style:So(12,"var(--color-error)",{fontWeight:700})},"[!] run failed"),Ce.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-cell)",marginTop:6,lineHeight:"19px"}},h.error_message)):h.status!=="complete"?Ce.default.createElement(Le,{"data-testid":"run-pending",padding:"14px 16px"},Ce.default.createElement("span",{style:So(12,"var(--color-warning-text)",{fontWeight:700})},`[~] ${h.status}`),Ce.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-cell)",marginTop:6}},"Scores appear once the run completes.")):Ce.default.createElement(Ce.default.Fragment,null,S.length>1&&Ce.default.createElement(B0,{rows:v2(h,{columns:S}),unit:"interaction",judgedBy:A?.judge||null,judgeEstimated:D?.judge?.estimated??!0}),Ce.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(260px, 1fr))",gap:12}},_.map(L=>{let G=lZ(h,L),q=k(L),oe=q?.samples??(L==null?h.samples_evaluated:null),Me=q?.passed??(L==null?h.samples_passed:null),ge=[];return G.below>0&&ge.push({tone:"error",text:`below pass mark \xD7${G.below}`}),G.skipped>0&&ge.push({tone:"warning",text:`skipped \xD7${G.skipped}`}),Ce.default.createElement(L0,{key:L||"all",label:L,short:L?bn(L).short:"all samples",provider:q?.provider||(L?bn(L).provider:null)||null,winner:!!A?.winner&&A.winner===L,passed:Me,total:oe,avgScore:G.avg,criteria:{cleared:G.cleared,scored:G.scored},latencyMs:q?.avg_duration_ms,inputTokens:q?.input_tokens,outputTokens:q?.output_tokens,cost:q?.cost,perInteraction:of(q?.cost,q?.priced),estimated:q?.estimated??!1,unit:"interaction",badges:ge})}))),(A||C.length>0)&&Ce.default.createElement(Le,{padding:"12px 16px",style:{display:"flex",flexDirection:"column",gap:6},"data-testid":"run-verdict"},A&&Ce.default.createElement(Ce.default.Fragment,null,Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},Ce.default.createElement(We,null,"Verdict"),A.judge&&Ce.default.createElement("span",{style:So()},`judged by ${A.judge}`)),Ce.default.createElement("div",{style:{fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},Ce.default.createElement("strong",{style:{color:"var(--color-text-primary)",fontFamily:U,fontSize:12}},A.winner),A.rationale?` \xB7 ${A.rationale}`:"")),C.length>0&&Ce.default.createElement("span",{style:So(11,"var(--color-warning-text)",{fontWeight:600})},`[!] no generations recorded under ${C.join(", ")}`)),Ce.default.createElement(Le,{padding:0,style:{overflow:"hidden"},testId:"criteria-matrix"},Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"10px 14px",flexWrap:"wrap"}},Ce.default.createElement(We,{style:{marginRight:4}},"Criteria"),Ce.default.createElement(Ln,{selected:p==="all",onClick:()=>f("all")},`All ${T.length}`),Q.map(L=>Ce.default.createElement(Ln,{key:L.id,selected:p===L.id,onClick:()=>f(L.id)},`${L.label} ${$(L.id)}`)),Ce.default.createElement(Ln,{square:!0,mono:!0,selected:m,onClick:()=>y(L=>!L),style:{marginLeft:"auto",background:"transparent"},title:"Hide criteria every model cleared"},m?"[x] failed only":"[ ] failed only")),Ce.default.createElement("div",{style:{overflowX:"auto"}},Ce.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},Ce.default.createElement("thead",null,Ce.default.createElement("tr",{style:{background:"var(--color-muted)"}},Ce.default.createElement("th",{style:{...M,width:"34%"}},"Criterion"),Ce.default.createElement("th",{style:M},"Expects"),_.map(L=>Ce.default.createElement("th",{key:L||"score",style:M},L?Ce.default.createElement(Ce.default.Fragment,null,Ce.default.createElement("span",{style:{color:"var(--color-text-primary)",textTransform:"none",letterSpacing:0,fontSize:12}},bn(L).short),(k(L)?.provider||bn(L).provider)&&Ce.default.createElement("span",{style:{display:"block",fontWeight:400,textTransform:"none",letterSpacing:0}},k(L)?.provider||bn(L).provider)):"Score")))),Ce.default.createElement("tbody",null,N.map(L=>Ce.default.createElement(Ce.default.Fragment,{key:L.id},Ce.default.createElement("tr",{style:{background:"var(--color-background)",borderTop:"1px solid var(--color-border-light)"}},Ce.default.createElement("td",{style:Y},Ce.default.createElement("span",{style:{fontWeight:600,fontSize:13,color:"var(--color-text-primary)"}},L.label)),Ce.default.createElement("td",{style:Y},Ce.default.createElement("span",{style:So()},`${L.rows.length} ${L.rows.length===1?"criterion":"criteria"}`)),_.map(G=>{let q=L.rows.filter(ge=>{let ue=nf(ge.value,G);return ue&&ue.score!=null}),oe=q.filter(ge=>nf(ge.value,G).score>=.7).length,Me=q.length&&oe===q.length?"var(--color-success-text)":oe===0&&q.length?"var(--color-error-text)":"var(--color-text-cell)";return Ce.default.createElement("td",{key:G||"score",style:Y},Ce.default.createElement("span",{style:So(11,Me,{fontWeight:600})},q.length?`${Kn(oe,q.length)} passed`:"\u2014"))})),L.rows.map(G=>Ce.default.createElement("tr",{key:G.key,"data-testid":"criterion-row",style:{borderTop:"1px solid var(--color-border-light)"}},Ce.default.createElement("td",{style:W},Ce.default.createElement("div",{style:So()},G.key),Ce.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-primary)"}},m2(G.criterion))),Ce.default.createElement("td",{style:W},Ce.default.createElement("span",{style:{fontFamily:U,fontSize:11,padding:"2px 6px",border:"1px solid var(--color-border)",borderRadius:4,color:"var(--color-text-cell)",whiteSpace:"nowrap"},title:yh(G.criterion)},S0(yh(G.criterion),40))),_.map(q=>Ce.default.createElement("td",{key:q||"score",style:W},Ce.default.createElement(S_e,{stats:nf(G.value,q)}))))))),N.length===0&&Ce.default.createElement("tr",{style:{borderTop:"1px solid var(--color-border-light)"}},Ce.default.createElement("td",{colSpan:2+_.length,style:{padding:"16px 14px",fontSize:13,color:"var(--color-text-muted)"}},T.length?"Nothing failed under this filter.":"This run recorded no criterion scores.")))))),Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},Ce.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10}},Ce.default.createElement(We,null,"What to fix"),Ce.default.createElement("span",{style:So()},O.length?St(O.length,"item"):"nothing")),O.length?Ce.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:12}},O.map(L=>Ce.default.createElement(k_e,{key:L.kind,item:L,evaluation:e,run:h,number:v}))):Ce.default.createElement(tn,{style:{border:"1px solid var(--color-border-light)",borderRadius:10,padding:"14px 12px",color:"var(--color-success-text)"}},`[+] Every criterion cleared the pass mark (${Z1(.7)}) and nothing was skipped.`)),Ce.default.createElement(mf,{evaluation:e,run:h,spend:D,onDelete:c,deleting:d}))}var Pn=Z(J());var zD={fontFamily:U,fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",color:"var(--color-text-muted)",padding:"8px 12px",textAlign:"left",verticalAlign:"bottom",whiteSpace:"nowrap"},BD={padding:"8px 12px",verticalAlign:"middle",fontSize:13,color:"var(--color-text-cell)",borderTop:"1px solid var(--color-border-light)"},$D={...BD,fontFamily:U,fontSize:12,whiteSpace:"nowrap",textAlign:"right"},LD={...zD,textAlign:"right"};function FD({rows:e=[],columns:t=[],testId:r="model-leaderboard"}){if(e.length<2)return null;let n=t.length>1?t.filter(o=>e.some(a=>a.byEvaluation?.[o.id]?.total>0)):[];return Pn.default.createElement(Le,{padding:0,style:{overflow:"hidden"},testId:r},Pn.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10,padding:"10px 12px",flexWrap:"wrap"}},Pn.default.createElement(We,null,"Model leaderboard"),Pn.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},`${St(e.length,"model")} \xB7 ${St(t.length,"evaluation")} \xB7 ranked by the low end of each pass rate`)),Pn.default.createElement("div",{style:{overflowX:"auto"}},Pn.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},Pn.default.createElement("thead",null,Pn.default.createElement("tr",{style:{background:"var(--color-muted)"}},Pn.default.createElement("th",{style:{...LD,width:28}},"#"),Pn.default.createElement("th",{style:zD},"Model"),Pn.default.createElement("th",{style:{...zD,minWidth:160}},"Passed"),Pn.default.createElement("th",{style:LD},"Rate"),n.map(o=>Pn.default.createElement("th",{key:o.id,style:{...LD,maxWidth:140,overflow:"hidden",textOverflow:"ellipsis"},title:o.name},o.name)))),Pn.default.createElement("tbody",null,e.map(o=>{let{short:a,provider:i}=bn(o.label);return Pn.default.createElement("tr",{key:o.label,"data-testid":"model-leaderboard-row",title:`${o.label}: at least ${Ts(o.lower)} at 95% confidence`},Pn.default.createElement("td",{style:{...$D,color:"var(--color-text-muted)"}},o.rank),Pn.default.createElement("td",{style:BD},Pn.default.createElement("div",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:"var(--color-text-primary)",whiteSpace:"nowrap"}},a),i&&Pn.default.createElement("div",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)",whiteSpace:"nowrap"}},i)),Pn.default.createElement("td",{style:BD},Pn.default.createElement(Mu,{passed:o.passed,total:o.total,color:z0(o.ratio),valueWidth:56})),Pn.default.createElement("td",{style:{...$D,fontWeight:700,color:z0(o.ratio)}},Ts(o.ratio)),n.map(s=>{let l=o.byEvaluation?.[s.id],u=l?.total?l.passed/l.total:null;return Pn.default.createElement("td",{key:s.id,style:{...$D,color:z0(u)},title:l?.total?`${s.name}: ${Kn(l.passed,l.total)}`:`${s.name}: not run on this model`},Ts(u))}))})))))}var md=null,UD=new Set,sQ=()=>UD.forEach(e=>e(md));function __e(e={}){let t=e.requireText==null?null:String(e.requireText);return{title:e.title||"Are you sure?",message:e.message||"",confirmLabel:e.confirmLabel||"Confirm",cancelLabel:e.cancelLabel||"Cancel",danger:!!e.danger,requireText:t===""?null:t}}function Wr(e){return md&&md.resolve(!1),new Promise(t=>{md={...__e(e),resolve:t},sQ()})}function lQ(e){if(!md)return;let{resolve:t}=md;md=null,sQ(),t(!!e)}function uQ(){return md}function cQ(e){return UD.add(e),()=>UD.delete(e)}function dQ(e,t){return e?.requireText?t===e.requireText:!0}var pQ=()=>{let e=Qn().match(/^\/evaluations\/(\d+)\/runs\/(\d+)\/report/);if(e)return{evaluationId:e[1],runId:e[2]};let t=zI(window.location.search);return t?.runId?t:null},U2=()=>{let e=Qn().match(/^\/evaluations\/(\d+)(?:\/runs\/(\d+))?\/?$/);return e?{evaluationId:Number(e[1]),runId:e[2]?Number(e[2]):null}:null},fQ=()=>zI(window.location.search)?.evaluationId||(U2()?String(U2().evaluationId):null),F2=(e=11,t="var(--color-text-muted)")=>({fontFamily:U,fontSize:e,color:t}),C_e=e=>{let t=Sh(e),r=e.latest_run?.status==="failed"?1:0;return t?e.scenario_suite?(t.scores?._recommendations||[]).length+r:y2(e,t).length+r:r},A_e={stale:{tone:"warning",text:"stale",title:"Its headline run scored an earlier version of the agent, so the tiles leave it out"},unrecorded:{tone:"muted",text:"version not recorded",title:"Nothing says which version of the agent its headline run scored; it still counts"},archived:{tone:"muted",text:"archived",title:"Archived: kept with its runs, left out of the tiles"}};function K0({embedded:e=!1,agentId:t=null}){let{darkMode:r}=ut(),[n,o]=(0,Ne.useState)(()=>e?null:pQ()),a=(0,Ne.useRef)(null),[i,s]=(0,Ne.useState)(0),[l,u]=(0,Ne.useState)(null);(0,Ne.useEffect)(()=>{let ve=a.current?.contentDocument?.body;if(!ve)return;let rt=()=>u(ve.scrollHeight);if(rt(),typeof ResizeObserver>"u")return window.addEventListener("resize",rt),()=>window.removeEventListener("resize",rt);let pt=new ResizeObserver(rt);return pt.observe(ve),()=>pt.disconnect()},[i,n]),(0,Ne.useEffect)(()=>u(null),[n]);let[c,d]=(0,Ne.useState)([]),[p,f]=(0,Ne.useState)([]),[m,y]=(0,Ne.useState)(void 0),[b,g]=(0,Ne.useState)(!1),[h,v]=(0,Ne.useState)(void 0),[x,S]=(0,Ne.useState)(!0),[_,w]=(0,Ne.useState)(null),[k,A]=(0,Ne.useState)(null),[C,T]=(0,Ne.useState)(()=>{if(e)return null;let ve=U2();return ve?.runId?ve:null}),[$,Q]=(0,Ne.useState)(()=>e?null:fQ()),[B,K]=(0,Ne.useState)({}),[N,O]=(0,Ne.useState)(!1),[D,P]=(0,Ne.useState)(null),[j,M]=(0,Ne.useState)(null),[W,Y]=(0,Ne.useState)(null),[L,G]=(0,Ne.useState)(!1),[q,oe]=(0,Ne.useState)(!1),[Me,ge]=(0,Ne.useState)(0);(0,Ne.useEffect)(()=>{if(e)return;let ve=()=>{o(pQ());let rt=U2();T(rt?.runId?rt:null);let pt=fQ();Q(pt),pt&&A(Qt=>new Set([...Qt||[],Number(pt)]))};return window.addEventListener("popstate",ve),window.addEventListener("dashboard:navigate",ve),()=>{window.removeEventListener("popstate",ve),window.removeEventListener("dashboard:navigate",ve)}},[e]);let ue=(0,Ne.useCallback)(async()=>{try{let ve=new URLSearchParams;t&&ve.set("agent_id",t),L&&ve.set("archived","1");let rt=ve.toString(),pt=await fetch(`/api/evaluations${rt?`?${rt}`:""}`);if(!pt.ok)throw new Error(`Request failed (${pt.status})`);let Qt=await pt.json();ge(Number(Qt.archived_count)||0),y(Qt.judge_provider??null),g(Qt.judge_provider_error===!0),v(Array.isArray(Qt.model_providers)?Qt.model_providers:null);let Wn=Qt.evaluations||[],uo=null;try{Wn=await rZ(Wn,$,fetch)}catch(nn){uo=nn.message}d(Wn),A(nn=>{if(nn)return nn;let Oa=$?Wn.find(Pa=>String(Pa.id)===$):Wn.find(Pa=>Pa.scenario_suite)||Wn[0];return new Set(Oa?[Oa.id]:[])}),w(uo)}catch(ve){w(ve.message),v(rt=>rt===void 0?null:rt)}finally{S(!1)}},[t,$,L]),R=(0,Ne.useCallback)(async ve=>{try{let rt=await fetch(`/api/evaluations/${ve}`);if(!rt.ok)throw new Error(`Could not load this evaluation's runs (HTTP ${rt.status})`);let pt=await rt.json();K(Qt=>({...Qt,[ve]:{runs:pt.evaluation?.runs||[],runCount:pt.evaluation?.run_count??null}}))}catch(rt){K(pt=>({...pt,[ve]:{runs:null,runCount:null,error:rt.message}})),w(rt.message)}},[]);(0,Ne.useEffect)(()=>{ue(),fetch("/api/agents").then(ve=>ve.ok?ve.json():{agents:[]}).then(ve=>f(ve.agents||[])).catch(()=>f([]))},[ue]),(0,Ne.useEffect)(()=>{new Set([...k||[],...C?[C.evaluationId]:[]]).forEach(rt=>{let pt=c.find(Qt=>Qt.id===rt);pt&&!pt.scenario_suite&&!B[rt]&&R(rt)})},[k,C,c,B,R]);let te=ve=>{!e&&Qn()!==ve&&ad(ve)},Be=ve=>!!k?.has(ve),ke=ve=>{let rt=!Be(ve.id);A(pt=>{let Qt=new Set(pt||[]);return rt?Qt.add(ve.id):Qt.delete(ve.id),Qt}),te(rt?`/evaluations/${ve.id}`:"/evaluations")},ee=(ve,rt)=>{A(pt=>new Set([...pt||[],ve.id])),T({evaluationId:ve.id,runId:rt.id}),te(`/evaluations/${ve.id}/runs/${rt.id}`)},z=ve=>{T(null),te(ve?`/evaluations/${ve}`:"/evaluations")},E=async ve=>{P(ve.id),w(null);try{let rt=await fetch(`/api/evaluations/${ve.id}/run`,{method:"POST"}),pt=await rt.json().catch(()=>({}));if(!rt.ok){w((pt.errors||[pt.error]).filter(Boolean).join(", ")||`Run failed (HTTP ${rt.status})`);return}await Promise.all([ue(),R(ve.id)]),pt.run&&C?.evaluationId===ve.id&&ee(ve,pt.run)}finally{P(null)}},I=async(ve,rt)=>{Y(ve.id),w(null);try{let pt=await fetch(`/api/evaluations/${ve.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({evaluation:{archived:rt}})}),Qt=await pt.json().catch(()=>({}));if(!pt.ok){w((Qt.errors||[Qt.error]).filter(Boolean).join(", ")||`${rt?"Archive":"Unarchive"} failed (HTTP ${pt.status})`);return}await ue()}finally{Y(null)}},V=async ve=>{if(await Wr({title:`Delete ${ve.name}?`,message:"Its runs are deleted with it. This cannot be undone.",confirmLabel:"Delete evaluation",danger:!0,requireText:ve.name})){M(ve.id),w(null);try{let rt=await fetch(`/api/evaluations/${ve.id}`,{method:"DELETE"});rt.ok||rt.status===404?(d(pt=>pt.filter(Qt=>Qt.id!==ve.id)),A(pt=>{let Qt=new Set(pt||[]);return Qt.delete(ve.id),Qt}),C?.evaluationId===ve.id&&z(null)):w(`Delete failed (HTTP ${rt.status})`)}finally{M(null)}}};if(x)return Ne.default.createElement("div",{className:"flex items-center justify-center h-64"},Ne.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2",style:{borderBottomColor:"var(--color-accent-ui)"}}));let F=t?c.filter(ve=>String(ve.agent?.id)===String(t)):c,ce=ve=>{let rt=B[ve.id];return rt?.runs?{runs:rt.runs,runCount:ve.run_count??rt.runCount??null,loaded:!0}:{runs:ve.latest_run?[ve.latest_run]:[],runCount:ve.run_count??null,loaded:!1}};if(n){let ve=mh(`/evaluations/${n.evaluationId}/runs/${n.runId}/report`),rt=et(ve.report),pt={padding:"6px 12px",borderRadius:8,fontSize:13,fontWeight:500,color:"var(--color-text-cell)",border:"1px solid var(--color-border-strong)",textDecoration:"none",whiteSpace:"nowrap"},Qt=`${rt}?theme=${r?"dark":"light"}`;return Ne.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},Ne.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},Ne.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12}},Ne.default.createElement(de,{size:"sm",onClick:()=>{ad("/evaluations"),o(null)}},Ne.default.createElement("span",{style:{fontFamily:U}},"<-")," Evaluations"),Ne.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Run report"),Ne.default.createElement("span",{style:F2(11)},`evaluation ${n.evaluationId} \xB7 run ${n.runId}`)),Ne.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},"data-testid":"run-report-exports"},Ne.default.createElement(kl,{url:et(ve.markdown),title:"Copy the whole report as GitHub-flavored Markdown, for a pull request or an issue",testId:"run-report-copy-markdown"}),[["html","Download HTML","The report as one self-contained page"],["json","Download JSON","The run as the evaluation report envelope \u2014 POST it to another install\u2019s /api/evaluation_reports to import it"],["md","Download Markdown","The report as GitHub-flavored Markdown"]].map(([Wn,uo,nn])=>Ne.default.createElement("a",{key:Wn,href:et(ve[Wn]),download:!0,title:nn,"data-testid":`run-report-download-${Wn}`,style:pt},uo)),Ne.default.createElement("a",{href:rt,target:"_blank",rel:"noopener noreferrer",title:"The report as one self-contained page, outside the dashboard",style:pt},"Open standalone ",Ne.default.createElement("span",{style:{fontFamily:U}},"->")))),Ne.default.createElement("iframe",{ref:a,src:Qt,title:"Evaluation run report",allow:"clipboard-write",onLoad:()=>s(Wn=>Wn+1),scrolling:"no",style:{width:"100%",borderRadius:12,border:"1px solid var(--color-border)",background:"var(--color-background)",display:"block",height:l?`${l}px`:"calc(100vh - 180px)"}}))}if(C){let ve=F.find(rt=>rt.id===C.evaluationId);if(!ve||!ve.scenario_suite){let{runs:rt,runCount:pt,loaded:Qt}=ve?ce(ve):{runs:[],runCount:null,loaded:!0};return Ne.default.createElement(jD,{evaluation:ve,runs:rt,runCount:pt,runId:C.runId,loading:!Qt,running:D===C.evaluationId,onSelectRun:Wn=>ee(ve,Wn),onRun:()=>E(ve),onBack:()=>z(null),onOpenEvaluation:()=>z(C.evaluationId),onDelete:ve?()=>V(ve):void 0,deleting:j===C.evaluationId})}}let Qe=gZ(F,{focusId:$}),{samplesScored:it,samplesPassed:me,passRatio:le,spend:Ue}=Qe,Je=yZ(Qe),nt=[...new Set(F.map(ve=>ve.agent?.name).filter(Boolean))],Tt=F.reduce((ve,rt)=>Math.max(ve,qI(rt,Sh(rt)||rt.latest_run)),0),Lt=F.map(C_e),Hr=Lt.reduce((ve,rt)=>ve+rt,0),Io=Lt.filter(Boolean).length,vs=F.length?[`${St(nt.length,"agent")} \xB7 ${Tt>1?`${Tt} models compared`:"no model comparisons"}`,Je].filter(Boolean).join(" \xB7 "):"none defined yet",Mi=Qe.focused?"headline run of this evaluation":`headline run of ${St(Qe.counted,"current evaluation")}${Je?` \xB7 ${Je}`:""}`,yt=hZ(Qe),eo=yt.length>1?yt[0]:null,xs=Ue.agentCost!=null&&Ue.estimated||Ue.judgeCost!=null&&Ue.judgeEstimated,bs=Ue.agentCost!=null?Ne.default.createElement("span",{style:{display:"flex",flexDirection:"column",gap:4}},Ne.default.createElement("span",{"data-testid":"stat-agent-cost-scope"},`over ${St(Ue.interactions,"interaction")}`),Ne.default.createElement("span",{style:{display:"grid",gridTemplateColumns:"max-content minmax(0, 1fr)",columnGap:10,rowGap:2,fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},Ne.default.createElement("span",null,"agent"),Ne.default.createElement("span",{"data-testid":"stat-agent-cost-agent",style:{color:"var(--color-text-cell)"}},Pr(Ue.agentCost,{estimated:Ue.estimated})),Ne.default.createElement("span",null,"judge"),Ne.default.createElement("span",{"data-testid":"stat-agent-cost-judge",style:{color:"var(--color-text-cell)"},title:"The judge's spend is the evaluation's own, outside the interactions, so it is not in the figure above"},Ue.judgeCost!=null?`${Pr(Ue.judgeCost,{estimated:Ue.judgeEstimated})} \xB7 offline`:"none")),xs&&Ne.default.createElement("span",{title:al,style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"~ estimated")):"no priced runs yet";return Ne.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:20}},Ne.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16,flexWrap:"wrap"}},!e&&Ne.default.createElement("div",{style:{flex:1,minWidth:260}},Ne.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Evaluations"),Ne.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Score recorded outputs, or paste a list of user messages to replay through the agent under one or more models. Every run is kept.")),Ne.default.createElement("div",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:12}},(Me>0||L)&&Ne.default.createElement(de,{size:"sm",onClick:()=>G(ve=>!ve),testId:"show-archived-toggle",title:"Archived evaluations keep their runs but leave the list and the tiles"},L?"Hide archived":`Show archived (${Me})`),Ne.default.createElement(de,{variant:"primary",onClick:()=>O(!N),testId:"new-evaluation-button"},N?"Cancel":"New Evaluation"))),_&&Ne.default.createElement("div",{style:{padding:"10px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},"Failed to load evaluations: ",_),N&&Ne.default.createElement(DD,{agents:p,agentId:t,judgeProvider:m,judgeProviderError:b,modelProviders:h,onCancel:()=>O(!1),onCreated:async ve=>{O(!1),await ue(),ve?.id!=null&&(A(rt=>new Set([...rt||[],ve.id])),te(`/evaluations/${ve.id}`))}}),Ne.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(190px, 1fr))",gap:16}},Ne.default.createElement(uh,{label:"Evaluations",value:F.length,sub:vs,testId:"stat-evaluations"}),Ne.default.createElement(uh,{label:"Samples scored",value:it,sub:Mi,testId:"stat-samples-scored"}),Ne.default.createElement(uh,{label:"Pass rate",value:Ts(le),valueColor:le==null?"var(--color-text-muted)":bo[Pu(le)].strong,sub:le==null?Je||"no completed runs yet":Ne.default.createElement("span",{style:{display:"flex",flexDirection:"column",gap:2}},Ne.default.createElement("span",{"data-testid":"stat-pass-rate-fraction"},`${me}/${it} passed`),eo&&Ne.default.createElement(Ne.default.Fragment,null,Ne.default.createElement("span",{"data-testid":"stat-pass-rate-leader",title:`${eo.label} ${Kn(eo.passed,eo.total)}: best of ${yt.length} models by the low end of its pass rate`,style:{display:"flex",gap:6,minWidth:0,fontFamily:U,fontSize:11,color:"var(--color-text-muted)",whiteSpace:"nowrap"}},Ne.default.createElement("span",null,"best"),Ne.default.createElement("span",{style:{overflow:"hidden",textOverflow:"ellipsis",minWidth:0,color:"var(--color-text-cell)"}},bn(eo.label).short),Ne.default.createElement("span",{style:{flexShrink:0}},Ts(eo.ratio))),Ne.default.createElement("button",{type:"button",onClick:()=>oe(ve=>!ve),"aria-expanded":q,"data-testid":"stat-pass-rate-leaderboard-toggle",style:{alignSelf:"flex-start",background:"transparent",border:"none",padding:0,cursor:"pointer",fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"}},Ne.default.createElement(Na,{kind:"chevron",open:q})," ",`${q?"hide":"compare"} ${yt.length} models`))),testId:"stat-pass-rate"}),Ne.default.createElement(uh,{label:"To fix",value:Hr,valueColor:Hr?"var(--color-error)":void 0,sub:Hr?`across ${St(Io,"evaluation")}`:"nothing outstanding",testId:"stat-to-fix"}),Ne.default.createElement(uh,{label:"Cost / interaction",value:$u(Ue.perInteraction,Ue.estimated),valueColor:Ue.perInteraction==null?"var(--color-text-muted)":void 0,sub:bs,testId:"stat-agent-cost"})),q&&Ne.default.createElement(FD,{rows:yt,columns:Qe.columns}),Ne.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},F.map((ve,rt)=>{let pt=ve.latest_run,Qt=Sh(ve),Wn=pt&&Qt&&pt.id!==Qt.id?pt:null,uo=VI(ve),nn=A_e[uo],Oa=uo==="archived",Pa=Be(ve.id),ws=!!ve.scenario_suite,co=Lt[rt],Uu=(ve.criteria||[]).some(to=>Sl(to)==="telemetry"),{runs:Ss,runCount:Wu}=ce(ve);return Ne.default.createElement(Le,{key:ve.id,padding:0,testId:"evaluation-card","data-telemetry":Uu?"true":"false","data-kind":ws?"suite":"sampling","data-open":Pa?"true":"false","data-standing":uo,style:{overflow:"hidden",opacity:Oa?.75:1}},Ne.default.createElement("div",{role:"button",tabIndex:0,"aria-expanded":Pa,onClick:()=>ke(ve),onKeyDown:to=>{(to.key==="Enter"||to.key===" ")&&(to.preventDefault(),ke(ve))},className:"hover:bg-[var(--color-hover)]",style:{display:"flex",alignItems:"center",gap:10,rowGap:8,padding:"12px 16px",cursor:"pointer",flexWrap:"wrap"}},Ne.default.createElement(Na,{kind:"chevron",open:Pa}),Ne.default.createElement("span",{style:{width:22,height:22,borderRadius:6,background:"var(--color-muted)",display:"inline-flex",alignItems:"center",justifyContent:"center",fontFamily:U,fontSize:11,fontWeight:700,color:"var(--color-text-secondary)",flexShrink:0},title:ws?"scenario suite":"sampling evaluation"},ws?"=":"~"),Ne.default.createElement("span",{style:{fontSize:15,fontWeight:700,color:"var(--color-text-primary)"}},ve.name),Ne.default.createElement("span",{style:F2(11)},`@${ve.agent?.name||"agent"} \xB7 ${rf(ve)}`),Ne.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:12,flexShrink:0}},Ne.default.createElement("span",{style:F2(11)},wo(pt?.completed_at||pt?.created_at||ve.created_at)),co>0&&Ne.default.createElement("span",{style:F2(11,"var(--color-error)")},`${co} to fix`),nn&&Ne.default.createElement(_e,{tone:nn.tone,size:10,style:{padding:"1px 6px"},title:nn.title,testId:"evaluation-standing"},nn.text),Wn&&Ne.default.createElement(pf,{run:Wn,testId:"evaluation-newer-run-badge"}),Ne.default.createElement(pf,{run:Qt||pt,testId:ws?"suite-pass-badge":"evaluation-pass-badge"}),Ne.default.createElement("button",{type:"button",onClick:to=>{to.stopPropagation(),I(ve,!Oa)},disabled:W===ve.id,title:Oa?"Bring this evaluation back into the list and the tiles":"Archive: keep its runs, leave it out of the list and the tiles","data-testid":"evaluation-archive-toggle",style:{background:"transparent",border:"none",padding:0,cursor:W===ve.id?"not-allowed":"pointer",fontFamily:U,fontSize:11,color:"var(--color-text-muted)",opacity:W===ve.id?.5:1}},W===ve.id?"\u2026":Oa?"unarchive":"archive"))),Pa&&Ne.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)"}},ws?Ne.default.createElement(MD,{evaluation:ve,modelProviders:h,onChanged:ue,onDelete:()=>V(ve),deleting:j===ve.id,initialRunId:C?.evaluationId===ve.id?C.runId:null,onRunSelected:to=>te(`/evaluations/${ve.id}/runs/${to}`)}):Ne.default.createElement("div",{style:{padding:16,display:"flex",flexDirection:"column",gap:12},"data-testid":"sampling-evaluation-panel"},Ne.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},Ne.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},Ss.length?cJ(Ss,Wu):`@${ve.agent?.name||"agent"} \xB7 no runs yet`),Ne.default.createElement(de,{variant:"primary",size:"sm",disabled:D===ve.id,onClick:to=>{to.stopPropagation(),E(ve)},testId:"evaluation-run-button"},D===ve.id?"Running\u2026":`Run ${rf(ve)}`)),Ne.default.createElement(cD,{runs:Ss,runCount:Wu,evaluation:ve,agentName:ve.agent?.name,previousRun:ve.previous_run,onOpen:to=>ee(ve,to),testId:"evaluation-runs-panel"}),Ne.default.createElement(mf,{evaluation:ve,run:pt,spend:Ni(pt),onDelete:()=>V(ve),deleting:j===ve.id}))))})),F.length===0&&!N&&Ne.default.createElement(Le,{style:{textAlign:"center",padding:"48px 20px"}},Ne.default.createElement("div",{style:{fontSize:16,fontWeight:600,color:"var(--color-text-primary)"}},"No evaluations yet"),Ne.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Create an evaluation to score recorded outputs, or paste scenarios to test new tasks across models. Every run is kept, so scores stay comparable over time.")))}var He=Z(J());var E_e=e=>new Date(`${e}T00:00:00`),N_e=[{id:"overview",label:"Overview"},{id:"traces",label:"Traces"},{id:"interactions",label:"Interactions"}];function WD({agent:e,onBack:t,embedded:r=!1}){let{darkMode:n}=ut(),o=qi(n),[a,i]=(0,He.useState)(null),[s,l]=(0,He.useState)(!0),{timeWindow:u,days:c}=vl(),[d,p]=(0,He.useState)("overview");(0,He.useEffect)(()=>{f()},[e?.id,c]);let f=async()=>{if(e?.id){l(!0);try{let x=await(await fetch(`/api/agents/${e.id}/analytics?days=${c}`)).json();i(x)}catch(v){console.error("Failed to load analytics:",v)}finally{l(!1)}}},m=v=>v?v<1e3?`${v}ms`:`${(v/1e3).toFixed(2)}s`:"-",y=v=>v?v>=1e6?`${(v/1e6).toFixed(1)}M`:v>=1e3?`${(v/1e3).toFixed(1)}K`:v.toString():"0",b=v=>{switch(v){case"complete":return"bg-green-500";case"failed":return"bg-red-500";case"running":return"bg-blue-500";case"pending":return"bg-yellow-500";case"cancelled":return"bg-gray-500";default:return"bg-gray-400"}};if(s&&!a)return He.default.createElement("div",{className:"flex items-center justify-center h-64"},He.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let g=a?.runs_by_day?.length>0?Math.max(...a.runs_by_day.map(v=>v.count)):1,h=r?"overview":d;return He.default.createElement("div",{className:"space-y-6"},r?He.default.createElement("div",{className:"flex items-center justify-end gap-2"},u.minutes<1440&&He.default.createElement("span",{className:"text-xs",style:{color:o.textMuted},title:"This view aggregates by day"},"showing 1 day"),He.default.createElement(xl,null)):He.default.createElement("div",{className:"flex items-center justify-between"},He.default.createElement("div",{className:"flex items-center space-x-4"},He.default.createElement("button",{onClick:t,className:"p-2 transition-colors",style:{color:o.textMuted}},He.default.createElement("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},He.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),He.default.createElement("div",null,He.default.createElement("h1",{className:"text-2xl font-bold",style:{color:o.textPrimary}},e.name," Analytics"),He.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Performance metrics and usage data"))),He.default.createElement("div",{className:"flex items-center gap-2"},u.minutes<1440&&He.default.createElement("span",{className:"text-xs",style:{color:o.textMuted},title:"This view aggregates by day"},"showing 1 day"),He.default.createElement(xl,null))),!r&&He.default.createElement("div",{className:"flex rounded-lg p-1 w-fit",style:{background:o.mutedBg}},N_e.map(v=>He.default.createElement("button",{key:v.id,onClick:()=>p(v.id),className:`px-4 py-1.5 text-sm rounded-md transition-colors ${d===v.id?"shadow":""}`,style:d===v.id?{background:o.cardBg,color:o.textPrimary}:{color:o.textSecondary}},v.label))),h==="traces"&&He.default.createElement(Zp,{agentId:e.id,embedded:!0}),h==="interactions"&&He.default.createElement(ju,{agentId:e.id,embedded:!0}),h==="overview"&&He.default.createElement(He.default.Fragment,null,He.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4"},He.default.createElement(W2,{title:"Total Runs",value:a?.summary?.total_runs||0,icon:He.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},He.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 10V3L4 14h7v7l9-11h-7z"})),color:"rose",colors:o,darkMode:n}),He.default.createElement(W2,{title:"Success Rate",value:`${a?.summary?.success_rate||0}%`,icon:He.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},He.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})),color:"green",colors:o,darkMode:n}),He.default.createElement(W2,{title:"Avg Duration",value:m(a?.summary?.avg_duration_ms),icon:He.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},He.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})),color:"blue",colors:o,darkMode:n}),He.default.createElement(W2,{title:"Total Tokens",value:y(a?.summary?.total_tokens),icon:He.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},He.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01"})),color:"purple",colors:o,darkMode:n})),He.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6"},He.default.createElement("div",{className:"lg:col-span-2 rounded-xl border p-6",style:{background:o.cardBg,borderColor:o.cardBorder}},He.default.createElement("h3",{className:"font-semibold mb-4",style:{color:o.textPrimary}},"Runs Over Time"),a?.runs_by_day?.length>0?He.default.createElement("div",{className:"h-48"},He.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},a.runs_by_day.map((v,x)=>He.default.createElement("div",{key:v.date,className:"flex-1 flex flex-col items-center group"},He.default.createElement("div",{className:"relative w-full"},He.default.createElement("div",{className:"w-full bg-red-500 rounded-t transition-all hover:bg-red-600",style:{height:`${v.count/g*150}px`,minHeight:v.count>0?"4px":"0"}}),He.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap"},v.count," runs")),(x===0||x===a.runs_by_day.length-1||a.runs_by_day.length<=7)&&He.default.createElement("span",{className:"text-xs mt-2 transform -rotate-45 origin-left",style:{color:o.textMuted}},E_e(v.date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))))):He.default.createElement("div",{className:"h-48 flex items-center justify-center",style:{color:o.textMuted}},"No data for this period")),He.default.createElement("div",{className:"rounded-xl border p-6",style:{background:o.cardBg,borderColor:o.cardBorder}},He.default.createElement("h3",{className:"font-semibold mb-4",style:{color:o.textPrimary}},"Status Breakdown"),Object.keys(a?.status_breakdown||{}).length>0?He.default.createElement("div",{className:"space-y-3"},Object.entries(a.status_breakdown).map(([v,x])=>{let S=a?.summary?.total_runs||1,_=(x/S*100).toFixed(1);return He.default.createElement("div",{key:v},He.default.createElement("div",{className:"flex justify-between text-sm mb-1"},He.default.createElement("span",{className:"capitalize",style:{color:o.textSecondary}},v),He.default.createElement("span",{className:"font-medium",style:{color:o.textPrimary}},x," (",_,"%)")),He.default.createElement("div",{className:"h-2 rounded-full overflow-hidden",style:{background:o.trackBg}},He.default.createElement("div",{className:`h-full ${b(v)} rounded-full transition-all`,style:{width:`${_}%`}})))})):He.default.createElement("div",{className:"h-32 flex items-center justify-center",style:{color:o.textMuted}},"No runs yet"))),a?.recent_errors?.length>0&&He.default.createElement("div",{className:"rounded-xl border p-6",style:{background:o.cardBg,borderColor:o.cardBorder}},He.default.createElement("h3",{className:"font-semibold mb-4",style:{color:o.textPrimary}},"Recent Errors"),He.default.createElement("div",{className:"space-y-3"},a.recent_errors.map(v=>He.default.createElement("div",{key:v.id,className:"flex items-start space-x-3 p-3 rounded-lg",style:{background:n?"rgba(220,38,38,0.12)":"#fef2f2"}},He.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"},He.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"})),He.default.createElement("div",{className:"flex-1 min-w-0"},He.default.createElement("p",{className:"text-sm",style:{color:n?"#fca5a5":"#991b1b"}},v.error||"Unknown error"),He.default.createElement("p",{className:"text-xs mt-1",style:{color:n?"#f87171":"#dc2626"}},new Date(v.created_at).toLocaleString())))))),He.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4"},He.default.createElement("div",{className:"rounded-lg p-4",style:{background:o.innerBg}},He.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Completed Runs"),He.default.createElement("p",{className:"text-2xl font-bold",style:{color:o.textPrimary}},a?.summary?.completed_runs||0)),He.default.createElement("div",{className:"rounded-lg p-4",style:{background:o.innerBg}},He.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Failed Runs"),He.default.createElement("p",{className:"text-2xl font-bold",style:{color:o.textPrimary}},a?.summary?.failed_runs||0)),He.default.createElement("div",{className:"rounded-lg p-4",style:{background:o.innerBg}},He.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Avg Tokens/Run"),He.default.createElement("p",{className:"text-2xl font-bold",style:{color:o.textPrimary}},y(a?.summary?.avg_tokens_per_run))),He.default.createElement("div",{className:"rounded-lg p-4",style:{background:o.innerBg}},He.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Period"),He.default.createElement("p",{className:"text-2xl font-bold",style:{color:o.textPrimary}},a?.period_days||30," days")))))}var mQ={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 W2({title:e,value:t,icon:r,color:n,colors:o,darkMode:a}){let[i,s,l]=mQ[n]||mQ.rose;return He.default.createElement("div",{className:"rounded-xl border p-4",style:{background:o.cardBg,borderColor:o.cardBorder}},He.default.createElement("div",{className:"flex items-center justify-between"},He.default.createElement("div",null,He.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},e),He.default.createElement("p",{className:"text-2xl font-bold mt-1",style:{color:o.textPrimary}},t)),He.default.createElement("div",{className:"p-3 rounded-lg",style:{background:a?s:l,color:i}},r)))}var pe=Z(J());var T_e={active:"success",configured:"info",available:"warning",idle:"muted"},O_e={agent_defined:"success",dashboard:"success",mcp:"info"},gQ="44px minmax(0, 1fr) 108px 60px 52px 58px 74px 26px",hQ="26px minmax(0, 1fr) 108px 52px 52px 52px 74px 64px",P_e=[{value:"enabled",label:"Enabled"},{value:"active",label:"Active"},{value:"configured",label:"Configured"},{value:"available",label:"Available"}],yQ={padding:"7px 16px",gap:10,alignItems:"end",background:"var(--color-muted)",fontFamily:U,fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",color:"var(--color-text-muted)"},El={fontFamily:U,fontSize:11,textAlign:"right",color:"var(--color-text-primary)"},H2={whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"};function bQ({on:e,onClick:t,title:r}){return pe.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"}},pe.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 vQ({on:e,dim:t=!1}){return pe.default.createElement("span",{"aria-hidden":"true",style:{width:16,height:16,borderRadius:4,display:"flex",alignItems:"center",justifyContent:"center",fontFamily:U,fontSize:10,fontWeight:700,flexShrink:0,border:`1px solid ${e?"var(--color-accent-ui)":"var(--color-border-strong)"}`,background:e?"var(--color-accent-ui)":"transparent",color:e?"var(--color-on-accent)":"transparent",opacity:t?.8:1}},e?"x":"")}function M_e({tool:e,state:t,onToggle:r}){if(!t)return pe.default.createElement("span",null);let n=t!=="off",o=`Click to make each ${e.name} call wait for a person to approve it`;return t==="on"&&(o=`Each ${e.name} call waits for approval. Click to let it run without asking.`),t==="partial"&&(o=`Some ${e.name} functions wait for approval. Click to let every ${e.name} call run without asking.`),pe.default.createElement("span",{"data-testid":`tool-approval-${e.key}`,"data-approval":t,onClick:a=>a.stopPropagation(),onKeyDown:a=>a.stopPropagation(),style:{display:"flex",justifyContent:"center"}},pe.default.createElement(bQ,{on:n,title:o,onClick:()=>r(e)}))}function q2({children:e,onClick:t,disabled:r,title:n}){return pe.default.createElement("button",{type:"button",onClick:t,disabled:r,title:n,style:{padding:"3px 9px",borderRadius:6,background:"transparent",fontFamily:U,fontSize:11,border:"1px solid var(--color-border-strong)",color:"var(--color-text-cell)",cursor:r?"not-allowed":"pointer",opacity:r?.5:1}},e)}function xQ({children:e}){return pe.default.createElement("div",{style:{overflowX:"auto"}},pe.default.createElement("div",{style:{minWidth:800}},e))}function HD({agent:e,formData:t,updateField:r,onSave:n,hasChanges:o=!1,isLoading:a}){let[i,s]=(0,pe.useState)(null),[l,u]=(0,pe.useState)(null),[c,d]=(0,pe.useState)("7d"),[p,f]=(0,pe.useState)(""),[m,y]=(0,pe.useState)(null),[b,g]=(0,pe.useState)(null),[h,v]=(0,pe.useState)(!1),[x,S]=(0,pe.useState)(null),[_,w]=(0,pe.useState)({}),k=(ew.find(ee=>ee.value===c)||ew[1]).hours;(0,pe.useEffect)(()=>{let ee=!1;return u(null),fetch(`/api/agents/${e.id}/tool_roster?hours=${k}`).then(z=>{if(!z.ok)throw new Error(`Request failed (${z.status})`);return z.json()}).then(z=>{ee||s(z)}).catch(z=>{ee||u(z.message)}),()=>{ee=!0}},[e.id,k]);let A=(0,pe.useMemo)(()=>({services:[],tools:[]}),[]),C=i||A,T=(0,pe.useMemo)(()=>t.tools||[],[t.tools]),$=(0,pe.useMemo)(()=>t.mcp_servers||[],[t.mcp_servers]),Q=(0,pe.useMemo)(()=>t.approval_required_tools||[],[t.approval_required_tools]),B=(0,pe.useMemo)(()=>R1(C,$),[C,$]),K=(0,pe.useMemo)(()=>O6(C,B,{query:p,filter:m}),[C,B,p,m]),N=(0,pe.useMemo)(()=>M6(C,B,T,{query:p,source:b,enabledOnly:h}),[C,B,T,p,b,h]),O=(0,pe.useMemo)(()=>I6(C,B,T,{range:c}),[C,B,T,c]),D=(0,pe.useMemo)(()=>$6(C,{tools:T,mcpServers:$,approvalRequiredTools:Q},{tools:e.tools||[],mcpServers:e.mcp_servers||[],approvalRequiredTools:e.approval_required_tools||[]}),[C,T,$,Q,e]),P=C.usage_available!==!1,j=ee=>P?ee:"\u2014",M=(0,pe.useCallback)(ee=>{r("mcp_servers",L6(C,ee,$))},[C,$,r]),W=(0,pe.useCallback)(ee=>{let z=B[ee.key];M({...B,[ee.key]:{...z,on:!z.on}})},[B,M]),Y=(0,pe.useCallback)((ee,z)=>{let E=B[ee.key];E.on&&M({...B,[ee.key]:{...E,tools:{...E.tools,[z.name]:!E.tools[z.name]}}})},[B,M]),L=(0,pe.useCallback)((ee,z)=>{let E=B[ee.key],I=Object.fromEntries((ee.tools||[]).map(V=>[V.name,z]));M({...B,[ee.key]:{on:z||E.on,tools:I}})},[B,M]),G=(0,pe.useCallback)(ee=>{r("tools",z6(C,ee));let z=Nm(ee.filter(E=>!T.includes(E)));z.length>0&&r("approval_required_tools",xT(Q,z,!0))},[C,T,Q,r]),q=(0,pe.useCallback)(ee=>{ee.editable&&G(ee.on?T.filter(z=>z!==ee.key):[...T,ee.key])},[T,G]),oe=(0,pe.useCallback)((ee,z)=>{ee.editable&&G(z?[...T,...ee.keys.filter(E=>!T.includes(E))]:T.filter(E=>!ee.keys.includes(E)))},[T,G]),Me=(0,pe.useCallback)(ee=>{r("approval_required_tools",j6(Q,ee,e.approval_required_tools||[]))},[Q,e,r]),ge=(0,pe.useCallback)(()=>{r("tools",e.tools||[]),r("mcp_servers",e.mcp_servers||[]),r("approval_required_tools",e.approval_required_tools||[])},[e,r]),ue=(C.services||[]).filter(ee=>B[ee.key]?.on),R=N.find(ee=>ee.source==="mcp"),Be=N.filter(ee=>ee.source!=="mcp").reduce((ee,z)=>ee+z.enabledCount,0)+(R?R.total:0),ke=N.reduce((ee,z)=>ee+z.total,0);return l?pe.default.createElement(Le,null,pe.default.createElement(We,null,"Tools & MCP services"),pe.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,color:"var(--color-error-text)"}},"Could not load the roster: ",l)):i?pe.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},pe.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",gap:16,flexWrap:"wrap"}},pe.default.createElement("div",{style:{flex:1,minWidth:260}},pe.default.createElement("h2",{style:{margin:0,fontSize:16,fontWeight:600,color:"var(--color-text-primary)"}},"Tools & MCP services"),pe.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.")),pe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},pe.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)"}},pe.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-muted)"}},"?"),pe.default.createElement("input",{value:p,onChange:ee=>f(ee.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}})),pe.default.createElement(ps,{options:ew,value:c,onChange:d}))),pe.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))",gap:12}},O.map(ee=>pe.default.createElement(Le,{key:ee.key,padding:"14px 16px",testId:`roster-stat-${ee.key}`},pe.default.createElement(We,{size:11,spacing:"0.05em"},ee.label),pe.default.createElement("div",{style:{marginTop:6,fontFamily:U,fontSize:26,fontWeight:700,lineHeight:1.1,color:ee.tone==="warning"?"var(--color-warning)":"var(--color-text-primary)"}},ee.value),pe.default.createElement("div",{style:{marginTop:5,fontSize:12,color:"var(--color-text-secondary)",textWrap:"pretty"}},ee.sub)))),pe.default.createElement(Le,{padding:0,style:{overflow:"hidden"},testId:"mcp-services-card"},pe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"12px 16px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},pe.default.createElement(We,null,"MCP services"),pe.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},ue.length," of ",(C.services||[]).length," enabled \xB7 ",R?R.total:0," tools offered"),pe.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},pe.default.createElement(Ln,{selected:!m,onClick:()=>y(null)},"All ",(C.services||[]).length),P_e.map(ee=>pe.default.createElement(Ln,{key:ee.value,selected:m===ee.value,onClick:()=>y(m===ee.value?null:ee.value)},ee.label,ee.value==="enabled"?` ${ue.length}`:"")),pe.default.createElement(Gr,{href:et("/mcp"),onClick:()=>lt("/mcp"),title:"Every MCP service this workspace knows",style:{marginLeft:4}},"manage servers"))),pe.default.createElement(xQ,null,pe.default.createElement("div",{style:{display:"grid",gridTemplateColumns:gQ,...yQ}},pe.default.createElement("span",null,"On"),pe.default.createElement("span",null,"Service"),pe.default.createElement("span",null,"Status"),pe.default.createElement("span",{style:{textAlign:"right"}},"Tools"),pe.default.createElement("span",{style:{textAlign:"right"}},"Calls"),pe.default.createElement("span",{style:{textAlign:"right"}},"Errors"),pe.default.createElement("span",{style:{textAlign:"right"}},"Last seen"),pe.default.createElement("span",null)),K.map(ee=>{let z=x===ee.key;return pe.default.createElement("div",{key:ee.key},pe.default.createElement("div",{className:"aa-roster-row","data-on":ee.on?"true":"false","data-testid":`service-row-${ee.key}`,style:{display:"grid",gridTemplateColumns:gQ,gap:10,alignItems:"center",padding:"10px 16px",borderTop:"1px solid var(--color-border-light)"}},pe.default.createElement(bQ,{on:ee.on,onClick:()=>W(ee),title:`${ee.on?"Disable":"Enable"} ${ee.name} for this agent`}),pe.default.createElement("div",{onClick:()=>S(z?null:ee.key),style:{minWidth:0,cursor:"pointer"}},pe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},pe.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},ee.name),ee.first_party&&pe.default.createElement(_e,{tone:"accent",size:10},"first-party"),Xd(ee)&&pe.default.createElement(_e,{tone:"info",size:10,title:"The app runtime of a checkout sandbox started from Settings \u2192 Integrations"},"sandbox runtime"),nv(ee)&&pe.default.createElement(_e,{tone:"warning",size:10,title:"This checkout sandbox has stopped; the agent still names its runtime"},"not running"),tw(ee)&&pe.default.createElement(_e,{size:10,title:"Seen in your traffic but not in the platform catalog"},"undocumented"),ee.partial&&pe.default.createElement(_e,{tone:"warning",size:10},ee.partialLabel)),pe.default.createElement("div",{style:{marginTop:2,fontSize:12,lineHeight:"17px",color:"var(--color-text-secondary)",...H2}},ee.description)),pe.default.createElement("span",null,pe.default.createElement(_e,{tone:T_e[ee.status]||"muted"},ee.status)),pe.default.createElement("span",{style:{...El,color:ee.on?"var(--color-text-primary)":"var(--color-text-muted)"}},ee.toolsLabel),pe.default.createElement("span",{style:El},j(ee.calls)),pe.default.createElement("span",{style:{...El,color:ee.errors?"var(--color-error-text)":"var(--color-text-secondary)"}},j(ee.errors)),pe.default.createElement("span",{style:{...El,color:"var(--color-text-muted)"}},j(rv(ee.last_seen))),pe.default.createElement("span",{onClick:()=>S(z?null:ee.key),style:{cursor:"pointer",textAlign:"center"}},pe.default.createElement(Na,{kind:"chevron",open:z}))),z&&pe.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",padding:"10px 16px 12px"}},pe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap",marginBottom:8}},pe.default.createElement(We,{size:10,color:"var(--color-text-muted)"},"Tools offered"),pe.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},ee.transport),pe.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8}},pe.default.createElement(q2,{onClick:()=>L(ee,!0),title:`Offer every tool ${ee.name} serves`},"all"),pe.default.createElement(q2,{onClick:()=>L(ee,!1),disabled:!ee.on,title:`Offer none of ${ee.name}'s tools`},"none"))),ee.tools.length===0?pe.default.createElement(tn,{style:{padding:"10px 0"}},N6(ee)):pe.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(300px, 1fr))",gap:"6px 14px"}},ee.tools.map(E=>pe.default.createElement("div",{key:E.name,className:"aa-roster-row",onClick:()=>Y(ee,E),style:{display:"grid",gridTemplateColumns:"20px minmax(0, 1fr) 46px 52px",gap:10,alignItems:"center",padding:"6px 8px",borderRadius:8,cursor:ee.on?"pointer":"default",opacity:ee.on?1:.55}},pe.default.createElement(vQ,{on:E.on,dim:!ee.on}),pe.default.createElement("span",{style:{minWidth:0}},pe.default.createElement("span",{style:{display:"block",fontFamily:U,fontSize:12,fontWeight:600,color:E.on?"var(--color-text-primary)":"var(--color-text-secondary)",...H2}},E.name),pe.default.createElement("span",{style:{display:"block",fontSize:11,color:"var(--color-text-muted)",...H2}},E.description)),pe.default.createElement("span",{style:{...El,color:"var(--color-text-secondary)"}},j(E.calls)),pe.default.createElement("span",{style:{...El,color:E.errors?"var(--color-error-text)":"var(--color-text-muted)"}},j(E.errors?`${E.errors} err`:yT(E.avg_duration_ms)))))),!ee.on&&pe.default.createElement("div",{style:{marginTop:8,fontSize:12,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Turning ",ee.name," on offers these ",ee.tools.length," tools to the agent and starts recording traces and metrics for every call.")))}),K.length===0&&pe.default.createElement(tn,{style:{borderTop:"1px solid var(--color-border-light)",padding:"18px 16px"}},p?`no services match "${p}"`:"no MCP services yet"))),pe.default.createElement(Le,{padding:0,style:{overflow:"hidden"},testId:"tools-card"},pe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"12px 16px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},pe.default.createElement(We,null,"Tools"),pe.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},Be," enabled of ",ke," available"),pe.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},pe.default.createElement(Ln,{selected:!b,onClick:()=>g(null)},"All ",ke),N.map(ee=>pe.default.createElement(Ln,{key:ee.source,selected:b===ee.source,onClick:()=>g(b===ee.source?null:ee.source)},ee.name," ",ee.total)),pe.default.createElement(Ln,{square:!0,mono:!0,selected:h,onClick:()=>v(!h),style:{marginLeft:4}},h?"[x] enabled only":"[ ] enabled only"))),pe.default.createElement(xQ,null,pe.default.createElement("div",{style:{display:"grid",gridTemplateColumns:hQ,...yQ}},pe.default.createElement("span",null),pe.default.createElement("span",null,"Tool"),pe.default.createElement("span",null,"Source"),pe.default.createElement("span",{style:{textAlign:"right"}},"Calls"),pe.default.createElement("span",{style:{textAlign:"right"}},"Errors"),pe.default.createElement("span",{style:{textAlign:"right"}},"Avg"),pe.default.createElement("span",{style:{textAlign:"right"}},"Last seen"),pe.default.createElement("span",{style:{textAlign:"center"},title:"Pause the run for a person to approve each call before the tool runs"},"Approval")),N.map(ee=>{let z=_[ee.source]!==!0;return pe.default.createElement("div",{key:ee.source},pe.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"}},pe.default.createElement("span",{onClick:()=>w({..._,[ee.source]:z}),style:{cursor:"pointer",display:"inline-flex",alignItems:"center",gap:10}},pe.default.createElement(Na,{kind:"chevron",open:z}),pe.default.createElement("span",{style:{fontSize:12,fontWeight:600,color:"var(--color-text-primary)"}},ee.name)),pe.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},ee.meta),pe.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:8}},pe.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-cell)"}},ee.countLabel),ee.editable&&pe.default.createElement(pe.default.Fragment,null,pe.default.createElement(q2,{onClick:()=>oe(ee,!0)},"all"),pe.default.createElement(q2,{onClick:()=>oe(ee,!1)},"none")))),z&&ee.rows.map(E=>pe.default.createElement("div",{key:E.key,className:"aa-roster-row","data-on":E.on?"true":"false","data-testid":`tool-row-${E.key}`,onClick:()=>q(E),style:{display:"grid",gridTemplateColumns:hQ,gap:10,alignItems:"center",padding:"10px 16px",borderTop:"1px solid var(--color-border-light)",cursor:E.editable?"pointer":"default",opacity:E.editable?1:.75}},pe.default.createElement(vQ,{on:E.on,dim:!E.editable}),pe.default.createElement("div",{style:{minWidth:0}},pe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},pe.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:E.on?"var(--color-text-primary)":"var(--color-text-secondary)"}},E.name),E.source==="mcp"&&pe.default.createElement(_e,{size:10},"via ",E.server),E.source==="agent_defined"&&(E.editable?pe.default.createElement(_e,{size:10,title:"Generated from the host's schema tools; offered to this agent only while its roster names it"},"from schema"):pe.default.createElement(_e,{size:10,title:"Declared by the agent class in code, so the roster reports it rather than selecting it"},"from code")),P&&E.on&&!E.calls&&pe.default.createElement(_e,{size:10},"unused")),pe.default.createElement("div",{style:{marginTop:2,fontSize:12,lineHeight:"17px",color:"var(--color-text-secondary)",...H2}},E.description)),pe.default.createElement("span",null,pe.default.createElement(_e,{tone:O_e[E.source]||"muted"},hT[E.source])),pe.default.createElement("span",{style:El},j(E.calls)),pe.default.createElement("span",{style:{...El,color:E.errors?"var(--color-error-text)":"var(--color-text-secondary)"}},j(E.errors)),pe.default.createElement("span",{style:{...El,color:"var(--color-text-secondary)"}},j(yT(E.avg_duration_ms))),pe.default.createElement("span",{style:{...El,color:"var(--color-text-muted)"}},j(rv(E.last_seen))),pe.default.createElement(M_e,{tool:E,state:vT(E,Q),onToggle:Me}))))}),N.every(ee=>ee.rows.length===0)&&pe.default.createElement(tn,{style:{borderTop:"1px solid var(--color-border-light)",padding:"18px 16px"}},p?`no tools match "${p}"`:"nothing enabled yet"))),pe.default.createElement(Le,{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"},pe.default.createElement("div",{style:{minWidth:0,display:"flex",flexDirection:"column",gap:3}},pe.default.createElement(We,{size:11,spacing:"0.05em"},Be," tools \xB7 ",ue.length," services"),pe.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.")),pe.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},D>0&&pe.default.createElement(pe.default.Fragment,null,pe.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-warning-text)"}},D," change",D===1?"":"s"," pending"),pe.default.createElement(de,{variant:"secondary",onClick:ge},"Discard")),pe.default.createElement(de,{variant:o?"primary":"secondary",onClick:n,disabled:a||!o,title:o?"Save this agent":"Nothing to save",style:o?void 0:{background:"var(--color-muted)",color:"var(--color-text-muted)",border:"1px solid transparent",cursor:"default"}},a?"Saving\u2026":"Save Changes")))):pe.default.createElement(Le,null,pe.default.createElement(tn,null,"loading the roster\u2026"))}var Jt=Z(J());function qD({agentId:e,colors:t}){let[r,n]=(0,Jt.useState)(""),[o,a]=(0,Jt.useState)(""),[i,s]=(0,Jt.useState)(""),[l,u]=(0,Jt.useState)(1),[c,d]=(0,Jt.useState)(null),[p,f]=(0,Jt.useState)(null),[m,y]=(0,Jt.useState)(0);(0,Jt.useEffect)(()=>{let g=new AbortController;d(null),f(null);let h=new URLSearchParams({agent_id:e,rating:r,from:o,to:i,page:l});return fetch(et(`/api/feedback?${h}`),{signal:g.signal}).then(async v=>{if(!v.ok)throw new Error("Could not load feedback.");return v.json()}).then(d).catch(v=>{v.name!=="AbortError"&&f(v.message)}),()=>g.abort()},[e,r,o,i,l,m]);let b=g=>h=>{g(h.target.value),u(1)};return Jt.default.createElement("section",{"aria-label":"User feedback",style:{color:t.textPrimary,background:t.cardBg,border:`1px solid ${t.cardBorder}`,borderRadius:12,padding:20}},Jt.default.createElement("div",{className:"flex flex-wrap items-center gap-4 mb-4"},Jt.default.createElement("label",null,"Rating ",Jt.default.createElement("select",{value:r,onChange:b(n),style:{color:t.textPrimary,background:t.cardBg}},Jt.default.createElement("option",{value:""},"All ratings"),Jt.default.createElement("option",{value:"positive"},"Thumbs up"),Jt.default.createElement("option",{value:"negative"},"Thumbs down"))),Jt.default.createElement("label",null,"From ",Jt.default.createElement("input",{type:"date",value:o,onChange:b(a),style:{color:t.textPrimary,background:t.cardBg}})),Jt.default.createElement("label",null,"To ",Jt.default.createElement("input",{type:"date",value:i,onChange:b(s),style:{color:t.textPrimary,background:t.cardBg}})),Jt.default.createElement("button",{type:"button",onClick:()=>y(g=>g+1)},"Refresh")),p&&Jt.default.createElement("p",{role:"alert"},p),!c&&!p&&Jt.default.createElement("p",{role:"status"},"Loading feedback\u2026"),c&&Jt.default.createElement(Jt.default.Fragment,null,Jt.default.createElement("p",{className:"mb-4"},c.positive," thumbs up \xB7 ",c.negative," thumbs down \xB7 ",c.positive_percentage==null?"No ratings":`${c.positive_percentage}% positive`," (",c.total," ratings matching filters)"),c.total===0&&Jt.default.createElement("p",null,"No feedback recorded for these filters. Submit feedback from your application after the trace is ingested."),Jt.default.createElement("ul",null,c.feedback.map(g=>Jt.default.createElement("li",{key:g.id,className:"py-4",style:{borderTop:`1px solid ${t.cardBorder}`}},Jt.default.createElement("strong",null,g.rating==="positive"?"\u{1F44D} Thumbs up":"\u{1F44E} Thumbs down"),Jt.default.createElement("span",null," \xB7 ",new Date(g.created_at).toLocaleString()),g.user_reference&&Jt.default.createElement("span",null," \xB7 ",g.user_reference),g.comment&&Jt.default.createElement("p",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere"}},g.comment),Jt.default.createElement("a",{className:"underline",href:et(`/traces?trace=${encodeURIComponent(g.trace_id)}`)},"Open interaction trace"),g.span_id&&Jt.default.createElement("p",null,"Response span: ",Jt.default.createElement("code",null,g.span_id))))),Jt.default.createElement("div",{className:"flex gap-4 mt-4"},Jt.default.createElement("button",{disabled:l===1,onClick:()=>u(g=>g-1)},"Previous"),Jt.default.createElement("span",null,"Page ",l),Jt.default.createElement("button",{disabled:l*50>=c.total,onClick:()=>u(g=>g+1)},"Next"))))}var I_e=[{id:"config",label:"Configuration"},{id:"instructions",label:"Instructions"},{id:"tools",label:"Tools"},{id:"versions",label:"Versions"},{id:"code",label:"Code"}],kQ=[{id:"traces",label:"Traces"},{id:"metrics",label:"Metrics"},{id:"interactions",label:"Interactions"},{id:"evals",label:"Evals"},{id:"feedback",label:"Feedback"}],D_e=kQ.map(e=>e.id),wQ={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"]}},j_e={active:"success",draft:"warning",archived:"neutral",failed:"error",trial:"info"};function gd({tone:e="neutral",mono:t=!1,darkMode:r,children:n}){let[o,a]=(wQ[e]||wQ.neutral)[r?"dark":"light"];return Se.default.createElement("span",{style:{background:o,color:a,borderRadius:"999px",padding:"2px 8px",fontSize:"11px",fontWeight:600,fontFamily:t?Pt.mono:void 0,whiteSpace:"nowrap"}},n)}function fa({variant:e="secondary",size:t="md",onClick:r,disabled:n,colors:o,title:a,testId:i,children:s}){let u={padding:t==="sm"?"5px 10px":"7px 14px",borderRadius:"8px",fontSize:"13px",fontWeight:500,cursor:n?"not-allowed":"pointer",transition:"background 0.15s ease, border-color 0.15s ease",whiteSpace:"nowrap"},c={primary:{background:n?o.mutedBg:Qo,color:n?o.textMuted:"#ffffff",border:"1px solid transparent"},secondary:{background:"transparent",color:o.textCell,border:`1px solid ${o.inputBorder}`},danger:{background:"transparent",color:"#dc2626",border:"1px solid rgba(220,38,38,0.4)"}};return Se.default.createElement("button",{type:"button",onClick:r,disabled:n,title:a,"data-testid":i,style:{...u,...c[e]||c.secondary}},s)}function SQ({tabs:e,active:t,onChange:r,colors:n}){return Se.default.createElement("div",{style:{display:"flex",alignItems:"center"}},e.map(o=>{let a=t===o.id;return Se.default.createElement("button",{key:o.id,type:"button",onClick:()=>r(o.id),style:{padding:"10px 12px",marginBottom:"-1px",background:"none",border:"none",borderBottom:`2px solid ${a?Qo:"transparent"}`,color:a?Qo:n.textSecondary,fontSize:"13px",fontWeight:a?600:500,cursor:"pointer",whiteSpace:"nowrap"}},o.label)}))}function K2({agent:e,meta:t,onSave:r,onDelete:n,onRun:o,onDuplicate:a,onRunReport:i,onBack:s,isLoading:l,initialTab:u}){let{darkMode:c}=ut(),d=qi(c),[p,f]=(0,Se.useState)(u||"config"),[m,y]=(0,Se.useState)({name:e.name||"",description:e.description||"",provider:e.provider||"openai",model:e.model||"gpt-4o-mini",instructions:e.instructions||"",action_prompts:e.actionPrompts||e.action_prompts||[],preset_type:e.presetType||e.preset_type||"terminal",appearance:e.appearance||{},instruction_sets:e.instructionSets||e.instruction_sets||[],tools:e.tools||[],approval_required_tools:e.approvalRequiredTools||e.approval_required_tools||[],mcp_servers:e.mcpServers||e.mcp_servers||[],model_config:e.modelConfig||e.model_config||{temperature:.7},status:e.status||"draft"}),[b,g]=(0,Se.useState)([]),[h,v]=(0,Se.useState)(!1),[x,S]=(0,Se.useState)(""),_=xc([m.provider]);(0,Se.useEffect)(()=>{let B=JSON.stringify(m)!==JSON.stringify({name:e.name||"",description:e.description||"",provider:e.provider||"openai",model:e.model||"gpt-4o-mini",instructions:e.instructions||"",action_prompts:e.actionPrompts||e.action_prompts||[],preset_type:e.presetType||e.preset_type||"terminal",appearance:e.appearance||{},instruction_sets:e.instructionSets||e.instruction_sets||[],tools:e.tools||[],approval_required_tools:e.approvalRequiredTools||e.approval_required_tools||[],mcp_servers:e.mcpServers||e.mcp_servers||[],model_config:e.modelConfig||e.model_config||{temperature:.7},status:e.status||"draft"});v(B)},[m,e]),(0,Se.useEffect)(()=>{p==="versions"?w():p==="code"&&k()},[p]);let w=async()=>{try{let K=await(await fetch(`/api/agents/${e.id}/versions`)).json();g(K.versions)}catch(B){console.error("Failed to load versions:",B)}},k=async()=>{try{let K=await(await fetch(`/api/agents/${e.id}/export`)).json();S(K.code)}catch(B){console.error("Failed to load code preview:",B)}},A=(B,K)=>{y(N=>({...N,[B]:K}))},C=(B,K)=>{y(N=>{let O=N[B]||[],D=O.includes(K)?O.filter(P=>P!==K):[...O,K];return{...N,[B]:D}})},T=()=>{r(m)},$=D_e.includes(p),Q=p==="tools";return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Se.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:"12px"}},Se.default.createElement("button",{type:"button",onClick:s,title:"Back to agents",style:{fontFamily:Pt.mono,fontSize:"13px",color:d.textSecondary,background:"none",border:"none",cursor:"pointer",padding:"4px 2px",marginTop:"10px"}},"<-"),Se.default.createElement(In,{size:44}),Se.default.createElement("div",{style:{flex:1,minWidth:0}},Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},Se.default.createElement("h1",{style:{fontSize:"20px",fontWeight:700,color:d.textPrimary,margin:0}},m.name||"Untitled agent"),Se.default.createElement(gd,{tone:j_e[m.status]||"neutral",darkMode:c},m.status),h&&Se.default.createElement(gd,{tone:"info",darkMode:c},"unsaved")),Se.default.createElement("p",{style:{fontSize:"13px",color:d.textSecondary,margin:"4px 0 0"}},m.description||"No description")),Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexShrink:0}},a&&Se.default.createElement(fa,{variant:"secondary",colors:d,onClick:a},"Duplicate"),Se.default.createElement(fa,{variant:"primary",colors:d,onClick:o},"Run Agent"))),Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"20px",borderBottom:`1px solid ${d.cardBorder}`,overflowX:"auto"}},Se.default.createElement(SQ,{tabs:I_e,active:p,onChange:f,colors:d}),Se.default.createElement("div",{style:{width:"1px",height:"18px",background:d.borderStrong,flexShrink:0}}),Se.default.createElement(SQ,{tabs:kQ,active:p,onChange:f,colors:d})),Q?Se.default.createElement(HD,{agent:e,formData:m,updateField:A,onSave:T,hasChanges:h,isLoading:l}):$?Se.default.createElement("div",null,p==="traces"&&Se.default.createElement(Zp,{agentId:e.id,embedded:!0}),p==="metrics"&&Se.default.createElement(WD,{agent:e,embedded:!0}),p==="interactions"&&Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},i&&Se.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end"}},Se.default.createElement("button",{type:"button",onClick:i,style:{background:"none",border:"none",cursor:"pointer",fontFamily:Pt.mono,fontSize:"11px",color:"#3b82f6"}},"run report ->")),Se.default.createElement(ju,{agentId:e.id,embedded:!0})),p==="evals"&&Se.default.createElement(K0,{embedded:!0,agentId:e.id}),p==="feedback"&&Se.default.createElement(qD,{agentId:e.id,colors:d})):Se.default.createElement("div",{style:{background:d.cardBg,border:`1px solid ${d.cardBorder}`,borderRadius:"12px",padding:"20px"}},p==="config"&&Se.default.createElement(L_e,{formData:m,updateField:A,providerModels:_,colors:d,darkMode:c,onDelete:n}),p==="instructions"&&Se.default.createElement(z_e,{formData:m,updateField:A,meta:t,toggleArrayItem:C,colors:d}),p==="versions"&&Se.default.createElement(B_e,{versions:b,agentId:e.id,onRestore:w,colors:d,darkMode:c}),p==="code"&&Se.default.createElement(F_e,{code:x,colors:d})),h&&!Q&&Se.default.createElement("div",{style:{position:"sticky",bottom:"0",display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",background:d.cardBg,border:`1px solid ${d.borderStrong}`,borderRadius:"12px",padding:"10px 14px",boxShadow:"0 4px 16px rgba(0,0,0,0.12)"}},Se.default.createElement("span",{style:{fontSize:"13px",color:d.textSecondary}},"Unsaved changes"),Se.default.createElement("div",{style:{display:"flex",gap:"8px"}},Se.default.createElement(fa,{variant:"primary",size:"sm",colors:d,onClick:T,disabled:l},l?"Saving\u2026":"Save Changes"))))}var Nl=e=>({display:"block",fontSize:"13px",fontWeight:500,color:e.textCell,marginBottom:"6px"}),Bu=e=>({width:"100%",padding:"8px 12px",borderRadius:"8px",border:`1px solid ${e.inputBorder}`,background:e.inputBg,color:e.textPrimary,fontFamily:"inherit",fontSize:"13px"}),$_e=e=>({fontFamily:Pt.mono,fontSize:"11px",fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:e.textSecondary});function L_e({formData:e,updateField:t,providerModels:r,colors:n,darkMode:o,onDelete:a}){return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Se.default.createElement("div",null,Se.default.createElement("label",{style:Nl(n)},"Agent Name"),Se.default.createElement("input",{type:"text",value:e.name,onChange:i=>t("name",i.target.value),className:"aa-field",style:Bu(n)})),Se.default.createElement("div",null,Se.default.createElement("label",{style:Nl(n)},"Preset Type"),Se.default.createElement("select",{value:e.preset_type,onChange:i=>t("preset_type",i.target.value),className:"aa-field",style:Bu(n)},Object.keys(km).map(i=>Se.default.createElement("option",{key:i,value:i},i))))),Se.default.createElement("div",null,Se.default.createElement("label",{style:Nl(n)},"Description"),Se.default.createElement("textarea",{value:e.description,onChange:i=>t("description",i.target.value),rows:3,className:"aa-field",style:{...Bu(n),resize:"vertical"}})),Se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Se.default.createElement("div",null,Se.default.createElement("label",{style:Nl(n)},"Provider"),Se.default.createElement("select",{value:e.provider,onChange:i=>{t("provider",i.target.value),t("model",r[i.target.value][0])},className:"aa-field",style:Bu(n)},Object.keys(r).map(i=>Se.default.createElement("option",{key:i,value:i},i.charAt(0).toUpperCase()+i.slice(1))))),Se.default.createElement("div",null,Se.default.createElement("label",{style:Nl(n)},"Model"),Se.default.createElement(Rl,{value:e.model,models:r[e.provider],onChange:i=>t("model",i),className:"aa-field",style:{...Bu(n),fontFamily:Pt.mono}}))),Se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Se.default.createElement("div",null,Se.default.createElement("label",{style:Nl(n)},"Temperature"," ",Se.default.createElement("span",{style:{fontFamily:Pt.mono,color:n.textSecondary}},e.model_config.temperature)),Se.default.createElement("input",{type:"range",min:"0",max:"1",step:"0.1",value:e.model_config.temperature,onChange:i=>t("model_config",{...e.model_config,temperature:parseFloat(i.target.value)}),style:{width:"100%",accentColor:Qo}})),Se.default.createElement("div",null,Se.default.createElement("label",{style:Nl(n)},"Status"),Se.default.createElement("select",{value:e.status,onChange:i=>t("status",i.target.value),className:"aa-field",style:Bu(n)},Se.default.createElement("option",{value:"draft"},"Draft"),Se.default.createElement("option",{value:"active"},"Active"),Se.default.createElement("option",{value:"archived"},"Archived")))),a&&Se.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",borderTop:`1px solid ${n.cardBorder}`,paddingTop:"16px"}},Se.default.createElement("div",null,Se.default.createElement("div",{style:$_e(n)},"Danger zone"),Se.default.createElement("p",{style:{fontSize:"13px",color:n.textMuted,margin:"4px 0 0"}},"Deleting an agent removes its configuration and version history.")),Se.default.createElement(fa,{variant:"danger",size:"sm",colors:n,onClick:a},"Delete Agent")))}function z_e({formData:e,updateField:t,meta:r,toggleArrayItem:n,colors:o}){let a=e.action_prompts||[],i=(u,c)=>{t("action_prompts",a.map((d,p)=>p===u?{...d,...c}:d))},s=()=>{t("action_prompts",[...a,{name:"",prompt:"",expose_as_tool:!1}])},l=u=>{t("action_prompts",a.filter((c,d)=>d!==u))};return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Se.default.createElement("div",null,Se.default.createElement("label",{style:Nl(o)},"System Instructions"),Se.default.createElement("textarea",{value:e.instructions,onChange:u=>t("instructions",u.target.value),placeholder:"You are a helpful AI assistant...",rows:12,className:"aa-field",style:{...Bu(o),fontFamily:Pt.mono,resize:"vertical"}})),Se.default.createElement("div",null,Se.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"6px"}},Se.default.createElement("label",{style:{...Nl(o),marginBottom:0}},"Action Prompts"),Se.default.createElement(fa,{variant:"secondary",size:"sm",colors:o,onClick:s},"+ Add action")),Se.default.createElement("p",{style:{fontSize:"12px",color:o.textMuted,margin:"0 0 12px"}},"Named actions run with their prompt stacked below the system instructions. The default ",Se.default.createElement("span",{style:{fontFamily:Pt.mono}},"#ask")," action uses the system instructions alone."),a.length>0&&Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},a.map((u,c)=>Se.default.createElement("div",{key:c,style:{border:`1px solid ${o.cardBorder}`,borderRadius:"10px",padding:"12px",display:"flex",flexDirection:"column",gap:"8px"}},Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},Se.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"13px",color:o.textMuted}},"#"),Se.default.createElement("input",{type:"text",value:u.name,onChange:d=>i(c,{name:d.target.value.toLowerCase().replace(/[^a-z0-9_]/g,"_")}),placeholder:"action_name",className:"aa-field",style:{...Bu(o),flex:1,padding:"6px 10px",fontFamily:Pt.mono}}),Se.default.createElement("label",{style:{display:"flex",alignItems:"center",gap:"6px",fontSize:"12px",color:o.textSecondary,whiteSpace:"nowrap"}},Se.default.createElement("input",{type:"checkbox",checked:!!u.expose_as_tool,onChange:d=>i(c,{expose_as_tool:d.target.checked}),style:{accentColor:Qo}}),"Expose as tool"),Se.default.createElement("button",{type:"button",onClick:()=>l(c),title:"Remove action",style:{fontFamily:Pt.mono,fontSize:"12px",color:o.textMuted,background:"none",border:"none",cursor:"pointer",padding:"4px"}},"[x]")),Se.default.createElement("textarea",{value:u.prompt,onChange:d=>i(c,{prompt:d.target.value}),placeholder:"This action's system prompt, applied on top of the base instructions...",rows:4,className:"aa-field",style:{...Bu(o),fontFamily:Pt.mono,resize:"vertical"}}))))),Se.default.createElement("div",null,Se.default.createElement("label",{style:Nl(o)},"Instruction Sets"),Se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px"}},r.instructionSets?.map(u=>{let c=e.instruction_sets.includes(u);return Se.default.createElement("button",{key:u,type:"button",onClick:()=>n("instruction_sets",u),style:{padding:"5px 12px",borderRadius:"999px",fontSize:"13px",cursor:"pointer",border:`1px solid ${c?Qo:o.inputBorder}`,background:c?Qo:"transparent",color:c?"#ffffff":o.textCell}},u)}))))}function B_e({versions:e,agentId:t,onRestore:r,colors:n,darkMode:o}){let a=async i=>{if(await Wr({title:"Restore this version?",message:"A new version is created with the restored configuration. The current version stays in the history.",confirmLabel:"Restore"}))try{await fetch(`/api/agents/${t}/restore`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({version_id:i})}),r()}catch(s){console.error("Failed to restore version:",s)}};return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},Se.default.createElement("p",{style:{fontSize:"13px",color:n.textSecondary,margin:0}},"View and restore previous versions of this agent."),e.length>0?Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"10px"}},e.map(i=>{let s=i.is_latest||i.isLatest;return Se.default.createElement("div",{key:i.id,style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"12px",padding:"14px",borderRadius:"10px",border:`1px solid ${s?Qo:n.cardBorder}`,background:s?"rgba(239,68,68,0.06)":"transparent"}},Se.default.createElement("div",{style:{minWidth:0}},Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},Se.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"13px",fontWeight:600,color:n.textPrimary}},"v",i.version_number||i.versionNumber),s&&Se.default.createElement(gd,{tone:"error",darkMode:o},"current")),Se.default.createElement("p",{style:{fontSize:"13px",color:n.textCell,margin:"4px 0 0"}},i.change_summary||i.changeSummary),Se.default.createElement("p",{style:{fontFamily:Pt.mono,fontSize:"11px",color:n.textMuted,margin:"4px 0 0"}},new Date(i.created_at||i.createdAt).toLocaleString())),!s&&Se.default.createElement(fa,{variant:"secondary",size:"sm",colors:n,onClick:()=>a(i.id)},"Restore"))})):Se.default.createElement(U_e,{colors:n,glyph:"[#]",title:"No version history",hint:"Saving a change records a new version."}))}function F_e({code:e,colors:t}){let r=()=>{navigator.clipboard.writeText(e)};return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},Se.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},Se.default.createElement("p",{style:{fontSize:"13px",color:t.textSecondary,margin:0}},"Generated Ruby code for this agent."),Se.default.createElement(fa,{variant:"secondary",size:"sm",colors:t,onClick:r},"Copy")),Se.default.createElement("pre",{style:{padding:"16px",background:"#111827",color:"#e5e7eb",borderRadius:"10px",overflowX:"auto",fontFamily:Pt.mono,fontSize:"12px",lineHeight:1.6,margin:0}},Se.default.createElement("code",null,e||"Loading...")))}function U_e({colors:e,glyph:t,title:r,hint:n}){return Se.default.createElement("div",{style:{textAlign:"center",padding:"40px 20px"}},Se.default.createElement("div",{style:{fontFamily:Pt.mono,fontSize:"20px",color:e.textMuted}},t),Se.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,color:e.textPrimary,marginTop:"10px"}},r),Se.default.createElement("p",{style:{fontSize:"13px",color:e.textMuted,margin:"6px auto 0",maxWidth:"420px"}},n))}var X=Z(J());async function Oh(){let e=window.ACTIVE_AGENT_DASHBOARD?.meta?.upgradeUrl;if(!e)throw new Error("This dashboard has no billing configured.");window.location.href=e}var V2=Z(J());var W_e='[data-aa-secret], meta[name="csrf-token"], input[type="hidden"]';var CQ=Object.freeze({events:500,chars:262144}),H_e=16*1024,q_e=3;function K_e(e){return{emit:e,maskAllInputs:!0,blockSelector:W_e,slimDOMOptions:"all",sampling:{scroll:150,input:"last"}}}function V_e(e){return JSON.stringify({kind:"rrweb",timestamp:e.timestamp,data:e})}function G_e(e,t){return`{"sent_at":${Math.floor(t)},"recording_events":[${e.join(",")}]}`}function Y_e(e,t=CQ){let r=0,n=0;for(let o of e){if(n>=t.events||n>0&&r+o.length>t.chars)break;r+=o.length+1,n+=1}return n}function _Q(e){return e>=200&&e<300?"sent":e===403?"off":e===413?"limit":e===429||e>=500?"retry":"failed"}function AQ({contextId:e,loadRecorder:t,fetch:r,now:n=Date.now,timers:o=globalThis,target:a=globalThis,onStateChange:i=()=>{},limits:s=CQ,flushIntervalMs:l=5e3}){let u=[],c=0,d="idle",p=null,f=null,m=null,y=null,b=!1,g=!1,h=null,v=0;function x(K){d!==K&&(d=K,i(K))}function S(){u.length=0,c=0}function _(){f&&f(),f=null,m=null,y!==null&&o.clearInterval(y),y=null,a?.removeEventListener?.("pagehide",$)}function w(K){g=!0,S(),_(),x(K)}function k(K){if(b||g)return;let N=V_e(K);u.push(N),c+=N.length+1,(u.length>=s.events||c>=s.chars)&&T()}async function A(K,N){let O=G_e(K,n());try{let D=await r(`/api/session_recordings/${encodeURIComponent(p)}/events`,{method:"POST",headers:{"Content-Type":"text/plain"},body:O,keepalive:N&&O.length<=H_e});return _Q(D.status)}catch{return"retry"}}async function C(K){for(;u.length>0&&!g;){let N=u.splice(0,Y_e(u,s)),O=N.reduce((P,j)=>P+j.length+1,0);c-=O;let D=await A(N,K);if(D==="sent"){v=0;continue}if(D!=="retry"){w(D);return}if(v+=1,K||v>=q_e){v=0,S(),m&&m();return}u.unshift(...N),c+=O;return}}function T({final:K=!1}={}){return p===null||g?Promise.resolve():(h||(h=C(K).finally(()=>{h=null})),h)}function $(){T({final:!0})}async function Q(){if(d!=="idle"||b)return;x("starting");let K;try{K=await r("/api/session_recordings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent_context_id:e})})}catch{b||w("failed");return}if(b)return;if(!K.ok){w(_Q(K.status)==="off"?"off":"failed");return}let N=await K.json().catch(()=>null);if(b)return;if(p=N?.recording?.id??null,p===null){w("failed");return}let O;try{({record:O}=await t())}catch{b||w("failed");return}if(b)return;let D=null;try{D=typeof O=="function"?O(K_e(k)):null}catch{D=null}if(typeof D!="function"){w("failed");return}f=D,m=()=>O.takeFullSnapshot?.(),y=o.setInterval(()=>T(),l),a?.addEventListener?.("pagehide",$),x("recording")}async function B(){b||(b=!0,_(),!g&&(x("stopped"),h&&await h,await T({final:!0})))}return{start:Q,stop:B,flush:T,get state(){return d}}}function KD(e,t){let[r,n]=(0,V2.useState)("idle");return(0,V2.useLayoutEffect)(()=>{if(!e||!t){n("idle");return}let o=!0,a=AQ({contextId:e,loadRecorder:()=>import(t),fetch:(i,s)=>fetch(i,s),target:window,onStateChange:i=>{o&&n(i)}});return a.start(),()=>{o=!1,a.stop()}},[e,t]),r}var X_e={llm:{role:"assistant",label:"LLM"},tool:{role:"tool",label:"Tool"},agent:{role:"developer",label:"Agent"},mcp:{role:"system",label:"MCP"}},Z_e=(e,t)=>{let r=X_e[e]||{role:e,label:e};return{...jn(r.role,t),label:r.label}},VD={complete:"success",failed:"error",running:"info",pending:"warning",cancelled:"neutral",awaiting_input:"warning"},J_e=["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"],Q_e=["user","assistant","tool"],R_e=1200,eCe=600*1e3,G2=e=>e?e<1e3?`${e}ms`:`${(e/1e3).toFixed(2)}s`:"-",EQ=e=>{if(!e)return null;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}},GD=e=>{let t=new Map;return(e?.logs||[]).filter(r=>r.eid).forEach(r=>{let n=t.get(r.eid)||{eid:r.eid};r.status==="started"?Object.assign(n,r,{input:r.detail,output:n.output}):Object.assign(n,r,{input:n.input,output:r.detail}),t.set(r.eid,n)}),[...t.values()]},hs=e=>e?.context_id??e?.output_metadata?.context_id??null,V0=e=>e.json().catch(()=>({})),TQ=({open:e,color:t})=>X.default.createElement("svg",{className:`w-3.5 h-3.5 mt-1 flex-shrink-0 transition-transform ${e?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:t}},X.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})),tCe=e=>typeof e=="string"?e:e?.name||e?.key||"?";function NQ({label:e,names:t,colors:r}){return X.default.createElement("div",{className:"flex justify-between gap-3"},X.default.createElement("dt",{className:"shrink-0",style:{color:r.textSecondary}},e),X.default.createElement("dd",{className:"text-right font-mono text-xs break-words min-w-0",style:{color:t.length?r.textPrimary:r.textMuted}},t.length?t.join(", "):"none"))}function rCe({run:e,darkMode:t,colors:r,expanded:n,onToggle:o}){let a=GD(e),i=UC(t);return X.default.createElement("div",{"data-testid":"runner-activity",className:"space-y-2"},a.map(s=>{let l=!!n[s.eid],u=!!(s.input||s.output),c=Z_e(s.kind,t);return X.default.createElement("div",{key:s.eid,"data-testid":"runner-activity-event"},X.default.createElement("div",{className:`flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 ${u?"cursor-pointer":""}`,onClick:u?()=>o(s.eid):void 0,title:u?"Click to inspect input/output":void 0,style:l?{background:t?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.03)"}:{}},X.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium flex-shrink-0 mt-0.5",style:{background:c.background,color:c.color,minWidth:"72px",textAlign:"center"}},c.label),X.default.createElement("div",{className:"min-w-0 flex-1"},X.default.createElement("div",{className:"text-sm break-words",style:{color:r.textPrimary}},s.label,s.output&&!l&&X.default.createElement("span",{style:{color:r.textMuted}}," \u201C",s.output.slice(0,160),s.output.length>160?"\u2026":"","\u201D")),X.default.createElement("div",{className:"text-xs mt-0.5 font-mono flex items-center gap-2 flex-wrap",style:{color:r.textMuted}},s.status==="started"?X.default.createElement("span",{className:"animate-pulse",style:{color:"#3b82f6"}},"running\u2026"):s.status==="awaiting"?X.default.createElement("span",{"data-testid":"runner-activity-awaiting",style:{color:"var(--color-warning-text)"}},"waiting for input"):X.default.createElement("span",{style:s.status==="error"?{color:"#ef4444"}:void 0},s.status==="error"?"failed":"\u2713",s.duration_ms!=null&&` ${G2(s.duration_ms)}`),s.at&&X.default.createElement("span",null,new Date(s.at).toLocaleTimeString()))),u&&X.default.createElement(TQ,{open:l,color:r.textMuted})),l&&X.default.createElement("div",{className:"ml-3 mt-1 mb-2 pl-4 space-y-2 border-l-2",style:{borderColor:c.color+"55"}},s.input&&X.default.createElement("div",null,X.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:r.textMuted}},"Input"),X.default.createElement("pre",{style:{...i,whiteSpace:"pre-wrap",maxHeight:"160px",overflowY:"auto"}},EQ(s.input))),s.output&&X.default.createElement("div",null,X.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:r.textMuted}},s.status==="error"?"Error":s.status==="awaiting"?"Asked":"Result"),X.default.createElement("pre",{style:{...i,whiteSpace:"pre-wrap",maxHeight:"224px",overflowY:"auto",...s.status==="error"?{background:t?"rgba(239,68,68,0.12)":"#fef2f2",color:t?"#fca5a5":"#b91c1c"}:{}}},EQ(s.output)))))}))}function nCe({run:e,darkMode:t,colors:r}){return e?X.default.createElement("div",{className:"flex items-center gap-3 flex-wrap text-xs",style:{color:r.textMuted}},X.default.createElement("span",{"data-testid":"runner-status",style:{display:"inline-flex"}},X.default.createElement(gd,{tone:VD[e.status]||"neutral",darkMode:t},e.status)),e.output_metadata?.model&&X.default.createElement("span",{className:"font-mono",title:"Model that generated this run"},e.output_metadata.provider,"/",e.output_metadata.model),e.duration_ms?X.default.createElement("span",null,G2(e.duration_ms)):null,e.total_tokens?X.default.createElement("span",null,e.total_tokens," tokens"):null,e.trace_id&&X.default.createElement("a",{href:et(`/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 YD({agent:e,onBack:t,recorderUrl:r=null,freshConversation:n=!1}){let{darkMode:o}=ut(),a=qi(o),i=e.action_prompts||e.actionPrompts||[],s=["ask",...i.map(ie=>ie.name).filter(Boolean)],[l,u]=(0,X.useState)("ask"),[c,d]=(0,X.useState)(""),[p,f]=(0,X.useState)([]),[m,y]=(0,X.useState)(!1),[b,g]=(0,X.useState)([]),[h,v]=(0,X.useState)(null),[x,S]=(0,X.useState)(null),[_,w]=(0,X.useState)(null),[k,A]=(0,X.useState)([]),[C,T]=(0,X.useState)(!1),[$,Q]=(0,X.useState)(null),[B,K]=(0,X.useState)(null),[N,O]=(0,X.useState)(null),[D,P]=(0,X.useState)(null),[j,M]=(0,X.useState)({}),[W,Y]=(0,X.useState)([]),[L,G]=(0,X.useState)([]),[q,oe]=(0,X.useState)(""),Me=(0,X.useCallback)(async()=>{try{let ie=await fetch("/api/sandboxes?sandbox_type=app_runtime");if(!ie.ok)return;let Ie=await ie.json(),st=x2(Ie.sandboxes);G(st),oe(zt=>b2(zt,st)||(st.length===1?st[0].value:""))}catch{}},[]);(0,X.useEffect)(()=>{Me()},[Me]);let ge=rw(e.tools||[]),[ue,R]=(0,X.useState)(null),[te,Be]=(0,X.useState)(!1),[ke,ee]=(0,X.useState)(null),[z,E]=(0,X.useState)(!1),[I,V]=(0,X.useState)(!1),[F,ce]=(0,X.useState)(null),[Qe,it]=(0,X.useState)(""),[me,le]=(0,X.useState)(!1),[Ue,Je]=(0,X.useState)(null),nt=(0,X.useRef)(null),Tt=(0,X.useRef)(!n),Lt=(0,X.useRef)(null),Hr=(0,X.useRef)(0),Io=(0,X.useRef)(null),vs=(0,X.useRef)(!1),Mi=(0,X.useRef)(!0),yt=(0,X.useRef)(null),eo=(0,X.useRef)([]),xs=(0,X.useRef)(null),bs=(0,X.useRef)(null),ve=(0,X.useRef)(null),rt=(0,X.useRef)(null),pt=KD(h,r),Qt=(x?.messages||[]).filter(ie=>Q_e.includes(ie.role));(0,X.useEffect)(()=>{yt.current=B},[B]),(0,X.useEffect)(()=>{eo.current=p},[p]),(0,X.useEffect)(()=>{Mi.current=!0,Wn();let ie=EY(window.location.search);return ie&&Nf(ie),()=>{Mi.current=!1,Hr.current+=1,Ol(yt.current),Ol({attachments:eo.current}),K(null),f([])}},[e.id]),(0,X.useEffect)(()=>{uo(l)},[e.id,l]),(0,X.useEffect)(()=>{Lt.current=h,h?nn(h):(S(null),w(null))},[h]),(0,X.useEffect)(()=>{let ie=bs.current;ie&&(ie.scrollTop=ie.scrollHeight)},[Qt.length,B,$?.logs?.length,$?.input_requests?.length,F,N]),(0,X.useEffect)(()=>{if(!I)return;let ie=Ie=>{rt.current&&!rt.current.contains(Ie.target)&&V(!1)};return document.addEventListener("mousedown",ie),()=>document.removeEventListener("mousedown",ie)},[I]);let Wn=async()=>{try{let Ie=await(await fetch(`/api/agents/${e.id}/runs?per_page=10`)).json();A(Ie.runs||[])}catch(ie){console.error("Failed to load runs:",ie)}},uo=async ie=>{try{let Ie=await fetch(`/api/agents/${e.id}/conversations?action_name=${encodeURIComponent(ie)}`);if(!Ie.ok)throw new Error(`HTTP ${Ie.status}`);let zt=(await Ie.json()).conversations||[];g(zt),v(kn=>kn&&(nt.current===kn||zt.some(ni=>ni.id===kn))?kn:Tt.current?zt[0]?.id??null:null)}catch(Ie){console.error("Failed to load conversations:",Ie),g([])}},nn=async ie=>{try{let Ie=await fetch(`/api/interactions/${ie}`);if(!Ie.ok)throw new Error(Ie.status===404?"Conversation not found":`HTTP ${Ie.status}`);let st=await Ie.json();if(Lt.current!==ie)return;S(st.interaction),w(null)}catch(Ie){if(Lt.current!==ie)return;S(null),w(Ie.message)}},Oa=async()=>{let ie=await fetch(`/api/agents/${e.id}/conversations`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action_name:l})}),Ie=await V0(ie);if(!ie.ok||!Ie.conversation)throw new Error(Ie.error||`Could not start a conversation (HTTP ${ie.status})`);let st=Ie.conversation;return g(zt=>[st,...zt.filter(kn=>kn.id!==st.id)]),nt.current=st.id,v(st.id),st.id},Pa=()=>Lt.current?Promise.resolve(Lt.current):Oa(),ws=ie=>{nt.current=null,u(ie)},co=ie=>{vs.current=ie,T(ie)},Uu=()=>{Io.current?.waiting&&(Io.current=null,co(!1))},Ss=()=>{Uu(),Q(null),P(null),M({}),Y([])},Wu=ie=>{let Ie=ie?Number(ie):null;Ie!==Lt.current&&Ss(),nt.current=Ie,v(Ie),O(null)},to=async()=>{if(!C)try{await Oa(),w(null),O(null),Ss(),Ol(yt.current),K(null),ce(null)}catch(ie){w(ie.message)}},Ol=ie=>{(ie?.attachments||[]).forEach(Ie=>{Ie.url&&Ie.url.startsWith("blob:")&&URL.revokeObjectURL(Ie.url)})},Hh=ie=>{let Ie=Array.from(ie||[]).filter(Boolean);Ie.length!==0&&f(st=>[...st,...Ie.map(zt=>({file:zt,filename:zt.name,content_type:zt.type||"application/octet-stream",byte_size:zt.size,kind:FG(zt),url:zt.type&&zt.type.startsWith("image/")?URL.createObjectURL(zt):null}))])},pb=ie=>{f(Ie=>{let st=Ie[ie];return st?.url&&URL.revokeObjectURL(st.url),Ie.filter((zt,kn)=>kn!==ie)})},fb=(ie,Ie)=>{Ol(yt.current),K(null),Wn();let st=hs(ie)??Ie;st&&(st!==Lt.current?(nt.current=st,v(st)):nn(st),uo(l))},SA=(ie,Ie)=>{Io.current=null,co(!1),Y([]),fb(ie,Ie)},Re=(ie,Ie)=>{Io.current={id:ie.id,contextId:hs(ie)??Ie,waiting:!0},fb(ie,Ie),ZC()},Ma=(ie,Ie)=>{if(!Mi.current)return;let st=++Hr.current,zt=Date.now(),kn=async()=>{if(Hr.current===st){try{let ni=await fetch(`/api/runs/${ie}`);if(ni.ok){let Do=await ni.json();if(Hr.current!==st)return;Q(Do.run);let ja=mI(Do.run);if(ja==="finished"){SA(Do.run,Ie);return}if(ja==="awaiting"){Re(Do.run,Ie);return}}}catch{}Date.now()-ztni&&{...ni,status:"failed",error_message:"Timed out waiting for the run to finish."}),P("Timed out waiting for the run to finish."))}};kn()},qh=async({text:ie,files:Ie,fromComposer:st=!1})=>{let zt=(ie||"").trim();if(!zt&&Ie.length===0||C)return;P(null),O(null),ce(null),co(!0),M({}),Y([]),Q({status:"pending",input_prompt:zt,output:"",logs:[],started_at:new Date().toISOString()}),Ol(yt.current),K({content:zt||"(see attached files)",attachments:Ie.map(({file:Do,...ja})=>ja)}),st&&(d(""),f([]));let kn=Lt.current;if(!kn)try{kn=await Oa()}catch(Do){P(`${Do.message} \u2014 running without a pinned conversation.`)}let ni=()=>{st&&(d(zt),f(Ie)),K(null)};try{let Do=new FormData;Do.append("prompt",zt),Do.append("action_name",l),kn&&Do.append("params[context_id]",String(kn)),q&&Do.append("sandbox_id",q),Ie.forEach(({file:Ad})=>Do.append("attachments[]",Ad,Ad.name));let ja=await fetch(`/api/agents/${e.id}/execute`,{method:"POST",body:Do}),ks=await V0(ja);if(ks.code==="sandbox_refused"&&Me(),ja.status===402&&ks.upgrade_required){R(ks.usage),Q(Ad=>({...Ad,status:"failed",error_message:ks.message||"Plan limit reached"})),co(!1),ni();return}if(!ja.ok)throw new Error(ks.error||"Run failed");Ma(ks.run.id,hs(ks.run)??kn)}catch(Do){Q(ja=>({...ja,status:"failed",error_message:Do.message})),co(!1),ni()}},po=()=>qh({text:c,files:p,fromComposer:!0}),Kh=(ie,Ie)=>{let st=Io.current;!st||String(st.id)!==String(ie.run_id)||(Y(zt=>[...zt.filter(kn=>kn.request.id!==ie.id),{request:ie,outcome:Ie}]),Io.current={...st,waiting:!1},Ma(st.id,st.contextId))},ya=ie=>{let Ie=mI(ie);Ie==="finished"||vs.current||(P(null),M({}),Y([]),Q(ie),co(!0),Ie==="awaiting"?Re(ie,hs(ie)):Ma(ie.id,hs(ie)))},Ia=(ie,Ie)=>{nt.current=ie,Ie&&s.includes(Ie)&&Ie!==l&&u(Ie),v(ie)},Nf=async ie=>{try{let Ie=await fetch(`/api/runs/${ie}`);if(!Ie.ok)return;let st=await Ie.json();if(!Mi.current||!st.run||String(st.agent?.id)!==String(e.id))return;let zt=hs(st.run);zt&&Ia(zt,st.run.action_name),ya(st.run)}catch(Ie){console.error("Failed to open the linked run:",Ie)}},Da=ie=>{!ie||!ie.text||qh({text:ie.text,files:[]})},Vh=ie=>{ie.key==="Enter"&&(ie.metaKey||ie.ctrlKey)&&(ie.preventDefault(),po())},bd=async(ie,Ie)=>{let st=Lt.current,zt=await fetch(`/api/interactions/${st}/messages/${ie.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:Ie})}),kn=await V0(zt);if(!zt.ok)throw new Error(kn.error||`Could not save the message (HTTP ${zt.status})`);await nn(st)},wd=async ie=>{let Ie=Lt.current;try{let st=await fetch(`/api/interactions/${Ie}/messages/${ie.id}`,{method:"DELETE"});if(!st.ok){let zt=await V0(st);throw new Error(zt.error||`Could not delete the message (HTTP ${st.status})`)}w(null),await nn(Ie),uo(l)}catch(st){w(st.message)}},fo=ie=>{V(!1),ce(ie),it(""),Je(null)},Pl=async()=>{let ie=Qe.trim();if(!(!ie||me)){le(!0),Je(null);try{let Ie=await Pa(),st=await fetch(`/api/interactions/${Ie}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({role:F,content:ie})}),zt=await V0(st);if(!st.ok)throw new Error(zt.error||`Could not add the message (HTTP ${st.status})`);it(""),ce(null),await nn(Ie),uo(l)}catch(Ie){Je(Ie.message)}finally{le(!1)}}},mb=async ie=>{let Ie=ie;if(hs(ie)==null||ie.status==="awaiting_input")try{let zt=await fetch(`/api/runs/${ie.id}`);zt.ok&&(Ie=(await zt.json()).run)}catch(zt){console.error("Failed to load run details:",zt)}let st=hs(Ie);st?(O(null),st!==Lt.current&&Ss(),Ia(st,Ie.action_name||ie.action_name),ya(Ie)):O({...Ie,output:Ie.output??Ie.output_preview,error_message:Ie.error_message??Ie.error}),xs.current?.scrollIntoView({behavior:"smooth",block:"start"})},Gh=async()=>{Be(!0),ee(null);try{await Oh({planSlug:"pro"})}catch(ie){ee(ie.message),Be(!1)}},Sd=window.ACTIVE_AGENT_DASHBOARD?.meta?.upgradeUrl,gb=i.find(ie=>ie.name===l)?.prompt,kd=[e.instructions,l==="ask"?null:gb].map(ie=>(ie||"").trim()).filter(Boolean).join(` +Who changed the shipping policy last week?`,style:{...Bu,width:"100%",fontFamily:U,fontSize:12,lineHeight:"18px"}}),it.default.createElement("p",{style:{margin:"6px 0 0",fontSize:12,color:"var(--color-text-muted)",textWrap:"pretty"}},"With scenarios, each run replays every message through the agent \u2014 once per model in \u201CCompare models\u201D \u2014 and reports which tasks it completes, what faults it hits, and how to fix them. ",it.default.createElement("code",{style:{fontFamily:U}},"# Heading")," lines group related tasks so they can be run together; ",it.default.createElement("code",{style:{fontFamily:U}},"| tools: a, b")," names the tool a task should call.")),s.judgeKind==="judge_defined"?it.default.createElement("p",{style:{margin:0,fontSize:12,color:"var(--color-text-secondary)"}},"On the first run the judge reads the agent's instructions and recent interactions, defines 3\u20136 KPIs, then scores samples against them. KPIs persist so later runs (and model cohorts) stay comparable."):it.default.createElement(it.default.Fragment,null,it.default.createElement("div",null,it.default.createElement(Ue,{style:{display:"block",marginBottom:8}},"Rule-based criteria (sampled generations)"),it.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:12}},DD.map(A))),it.default.createElement("div",null,it.default.createElement(Ue,{style:{display:"block",marginBottom:8}},"Telemetry criteria (trace aggregates)"),it.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:12}},sQ.map(A))),it.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4"},it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"Must contain (optional pattern)"),it.default.createElement("input",{type:"text",value:s.containsPattern,onChange:C=>x({containsPattern:C.target.value}),placeholder:"e.g. password reset",style:{...Bu,width:"100%"}})),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"LLM judge criterion (optional, needs provider credentials)"),it.default.createElement("input",{type:"text",value:s.llmJudgePrompt,onChange:C=>x({llmJudgePrompt:C.target.value}),placeholder:"e.g. Is the answer helpful and accurate?",style:{...Bu,width:"100%"}})))),u&&it.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},u),it.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},it.default.createElement(ce,{variant:"primary",type:"submit",disabled:d},d?s.scenariosText.trim()?"Creating & starting run\u2026":"Creating & running\u2026":"Create & Run"),i&&it.default.createElement(ce,{onClick:i},"Cancel"))))}function k_e(e,t){return e?`An unpinned judge defaults to ${S_e[e]||e}. Pinning a model selects its provider.`:t?"Provider credentials could not be read, so the judge's provider is unknown. Check the provider API keys in Settings.":"No provider has credentials for a judge. Add a provider API key in Settings."}function __e(e){let[t,r]=(0,it.useState)([]);return(0,it.useEffect)(()=>{if(r([]),!e)return;let n=!1;return fetch(`/api/agents/${encodeURIComponent(e)}/recorded_models`).then(o=>o.ok?o.json():{}).then(o=>{!n&&Array.isArray(o.models)&&r(o.models)}).catch(()=>{}),()=>{n=!0}},[e]),t}var Ce=Z(J());var C_e={background:"none",border:"none",padding:0,cursor:"pointer",fontFamily:U,fontSize:12,color:"var(--color-info)"},So=(e=11,t="var(--color-text-muted)",r={})=>({fontFamily:U,fontSize:e,color:t,...r});function A_e({stats:e}){if(!e)return Ce.default.createElement("span",{style:So()},"\u2014");if(e.skipped)return Ce.default.createElement("div",null,Ce.default.createElement("span",{style:So(12,"var(--color-text-cell)",{fontWeight:700})},"[-] skipped"),Ce.default.createElement("div",{style:{...So(),marginTop:2,textWrap:"pretty"},title:e.reason},k0(e.reason,90)));let t=Number(e.score),r=Dn[t>=.85?"success":t>=.7?"warning":"error"].strong,n=[];if(e.total!=null&&n.push(`${Vn(e.passed,e.total)} passed`),e.total>1&&e.min!=null&&n.push(`min ${aa(e.min)} \xB7 max ${aa(e.max)}`),e.source==="telemetry"){n.push(`${e.traces} traces \xB7 ${e.window_hours}h`);let o=e.observed||{};o.error_rate!=null&&n.push(`observed ${o.error_rate}% errors (${o.errors})`),o.avg_duration_ms!=null&&n.push(`observed avg ${Bn(o.avg_duration_ms)}`)}return Ce.default.createElement("div",null,Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6}},Ce.default.createElement("span",{style:So(12,r,{fontWeight:700})},t>=.7?"[+]":"[!]"," ",aa(t)),e.source==="telemetry"&&Ce.default.createElement("span",{"data-testid":"score-source-telemetry",title:"Aggregate over the agent's telemetry traces",style:So(10,"var(--color-text-muted)",{textTransform:"uppercase",letterSpacing:"0.04em"})},"telemetry")),Ce.default.createElement("div",{style:{...So(),marginTop:2,textWrap:"pretty"}},n.join(" \xB7 ")))}function E_e({item:e,evaluation:t=null,run:r=null,number:n=null}){let o=()=>WJ({item:e,evaluation:t,run:r,runNumber:n,agentName:t?.agent?.name,dashboardUrl:T2()});return Ce.default.createElement("div",{"data-testid":"fix-item",style:{border:"1px solid var(--color-border)",borderRadius:10,padding:"12px 14px",display:"flex",flexDirection:"column",gap:10,minWidth:0}},Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Ce.default.createElement(wa,{kind:"fault"}),Ce.default.createElement(ke,{tone:"error"},e.label),Ce.default.createElement("span",{style:So()},e.scope)),Ce.default.createElement("div",{style:{fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},e.text),e.chips?.length>0&&Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:6}},Ce.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},e.chipsLabel),Ce.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap"}},e.chips.map(a=>Ce.default.createElement("span",{key:a,style:{fontFamily:U,fontSize:11,padding:"3px 8px",borderRadius:6,border:"1px solid var(--color-border)",color:"var(--color-text-primary)",fontWeight:600}},a)))),e.details?.length>0&&Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:3}},e.details.map(a=>Ce.default.createElement("span",{key:a,style:So(11,"var(--color-text-cell)",{textWrap:"pretty"})},a))),Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:"auto",flexWrap:"wrap"}},e.action?.path&&Ce.default.createElement(ce,{size:"sm",onClick:()=>lt(e.action.path)},e.action.label),e.action?.hint&&Ce.default.createElement("span",{style:{...So(),whiteSpace:"nowrap"}},e.action.hint),Ce.default.createElement(U0,{build:o,style:{marginLeft:"auto"}})))}function $D({evaluation:e,runs:t=[],runCount:r=null,runId:n,loading:o=!1,running:a=!1,onSelectRun:i,onRun:s,onBack:l,onOpenEvaluation:u,onDelete:c,deleting:d=!1}){let[p,f]=(0,Ce.useState)("all"),[m,y]=(0,Ce.useState)(!1),b=(z,V)=>Ce.default.createElement("button",{type:"button",onClick:V,style:C_e},z),g=t.findIndex(z=>z.id===n),h=g>=0?t[g]:t[0],v=h?Sh(h,Math.max(g,0),t,r):null,x=Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},b("Evaluations",l),Ce.default.createElement("span",{style:So(12)},"/"),b(e?.name||"Evaluation",u),Ce.default.createElement("span",{style:So(12)},"/"),Ce.default.createElement("span",{style:So(12,"var(--color-text-primary)",{fontWeight:700})},h?`Run #${v}`:"Runs"));if(!e)return Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12}},Ce.default.createElement("div",null,b("Evaluations",l)),Ce.default.createElement(je,null,Ce.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-muted)"}},"This evaluation is not in the list any more.")));if(!h)return Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12}},x,o?Ce.default.createElement("div",{className:"flex items-center justify-center h-64"},Ce.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2",style:{borderBottomColor:"var(--color-accent-ui)"}})):Ce.default.createElement(je,null,Ce.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-muted)"}},"No runs recorded yet.")));let S=C0(h),k=S.length?S:[null],w=wh(h),_=z=>w.find(V=>V.label===z)||(z==null?w[0]:null),A=h.scores?._verdict,C=Array.isArray(h.scores?._missing_models)?h.scores._missing_models:[],N=bh(h).map(([z,V])=>({key:z,value:V,criterion:_0(e,z)})),L=z=>N.filter(V=>kl(V.criterion)===z).length,Q=qI.filter(z=>L(z.id)>0),B=z=>k.some(V=>{let q=of(z.value,V);return q&&(q.skipped||q.score!=null&&q.score<.7)}),K=N.filter(z=>(p==="all"||kl(z.criterion)===p)&&(!m||B(z))),T=qI.map(z=>({...z,rows:K.filter(V=>kl(V.criterion)===z.id)})).filter(z=>z.rows.length),O=v2(e,{...h,number:v}),I=Ni(h),P=wo(h.completed_at||h.created_at),j=h.status==="complete"&&h.samples_evaluated?` \xB7 ${Vn(h.samples_passed||0,h.samples_evaluated)} passed`:"",M={fontFamily:U,fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",color:"var(--color-text-muted)",padding:"8px 12px",textAlign:"left",verticalAlign:"top",whiteSpace:"nowrap"},W={padding:"10px 12px",verticalAlign:"top"},Y={padding:"7px 12px",verticalAlign:"middle"};return Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"evaluation-run-detail"},x,Ce.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},Ce.default.createElement("div",{style:{minWidth:0}},Ce.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},`Run #${v}`),Ce.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)",textWrap:"pretty"}},`${e.name} \xB7 ${P} \xB7 @${e.agent?.name||"agent"} \xB7 ${nf(e,h)}${j}`)),Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},t.map((z,V)=>Ce.default.createElement(jn,{key:z.id,square:!0,mono:!0,selected:z.id===h.id,onClick:()=>i?.(z),title:`${z.status} \xB7 ${wo(z.completed_at||z.created_at)}`},`#${Sh(z,V,t,r)}`)),Ce.default.createElement(ce,{variant:"primary",disabled:a,onClick:s,testId:"run-again-button"},a?"Running\u2026":"Run again"))),Ce.default.createElement(sD,{spend:I,judgedBy:xh(e,h)}),h.status==="failed"?Ce.default.createElement(je,{"data-testid":"run-failed",style:{borderColor:"var(--color-error)"},padding:"14px 16px"},Ce.default.createElement("span",{style:So(12,"var(--color-error)",{fontWeight:700})},"[!] run failed"),Ce.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-cell)",marginTop:6,lineHeight:"19px"}},h.error_message)):h.status!=="complete"?Ce.default.createElement(je,{"data-testid":"run-pending",padding:"14px 16px"},Ce.default.createElement("span",{style:So(12,"var(--color-warning-text)",{fontWeight:700})},`[~] ${h.status}`),Ce.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-cell)",marginTop:6}},"Scores appear once the run completes.")):Ce.default.createElement(Ce.default.Fragment,null,S.length>1&&Ce.default.createElement(F0,{rows:x2(h,{columns:S}),unit:"interaction",judgedBy:A?.judge||null,judgeEstimated:I?.judge?.estimated??!0}),Ce.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(260px, 1fr))",gap:12}},k.map(z=>{let V=cZ(h,z),q=_(z),oe=q?.samples??(z==null?h.samples_evaluated:null),Me=q?.passed??(z==null?h.samples_passed:null),fe=[];return V.below>0&&fe.push({tone:"error",text:`below pass mark \xD7${V.below}`}),V.skipped>0&&fe.push({tone:"warning",text:`skipped \xD7${V.skipped}`}),Ce.default.createElement(z0,{key:z||"all",label:z,short:z?bn(z).short:"all samples",provider:q?.provider||(z?bn(z).provider:null)||null,winner:!!A?.winner&&A.winner===z,passed:Me,total:oe,avgScore:V.avg,criteria:{cleared:V.cleared,scored:V.scored},latencyMs:q?.avg_duration_ms,inputTokens:q?.input_tokens,outputTokens:q?.output_tokens,cost:q?.cost,perInteraction:af(q?.cost,q?.priced),estimated:q?.estimated??!1,unit:"interaction",badges:fe})}))),(A||C.length>0)&&Ce.default.createElement(je,{padding:"12px 16px",style:{display:"flex",flexDirection:"column",gap:6},"data-testid":"run-verdict"},A&&Ce.default.createElement(Ce.default.Fragment,null,Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},Ce.default.createElement(Ue,null,"Verdict"),A.judge&&Ce.default.createElement("span",{style:So()},`judged by ${A.judge}`)),Ce.default.createElement("div",{style:{fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},Ce.default.createElement("strong",{style:{color:"var(--color-text-primary)",fontFamily:U,fontSize:12}},A.winner),A.rationale?` \xB7 ${A.rationale}`:"")),C.length>0&&Ce.default.createElement("span",{style:So(11,"var(--color-warning-text)",{fontWeight:600})},`[!] no generations recorded under ${C.join(", ")}`)),Ce.default.createElement(je,{padding:0,style:{overflow:"hidden"},testId:"criteria-matrix"},Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"10px 14px",flexWrap:"wrap"}},Ce.default.createElement(Ue,{style:{marginRight:4}},"Criteria"),Ce.default.createElement(jn,{selected:p==="all",onClick:()=>f("all")},`All ${N.length}`),Q.map(z=>Ce.default.createElement(jn,{key:z.id,selected:p===z.id,onClick:()=>f(z.id)},`${z.label} ${L(z.id)}`)),Ce.default.createElement(jn,{square:!0,mono:!0,selected:m,onClick:()=>y(z=>!z),style:{marginLeft:"auto",background:"transparent"},title:"Hide criteria every model cleared"},m?"[x] failed only":"[ ] failed only")),Ce.default.createElement("div",{style:{overflowX:"auto"}},Ce.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},Ce.default.createElement("thead",null,Ce.default.createElement("tr",{style:{background:"var(--color-muted)"}},Ce.default.createElement("th",{style:{...M,width:"34%"}},"Criterion"),Ce.default.createElement("th",{style:M},"Expects"),k.map(z=>Ce.default.createElement("th",{key:z||"score",style:M},z?Ce.default.createElement(Ce.default.Fragment,null,Ce.default.createElement("span",{style:{color:"var(--color-text-primary)",textTransform:"none",letterSpacing:0,fontSize:12}},bn(z).short),(_(z)?.provider||bn(z).provider)&&Ce.default.createElement("span",{style:{display:"block",fontWeight:400,textTransform:"none",letterSpacing:0}},_(z)?.provider||bn(z).provider)):"Score")))),Ce.default.createElement("tbody",null,T.map(z=>Ce.default.createElement(Ce.default.Fragment,{key:z.id},Ce.default.createElement("tr",{style:{background:"var(--color-background)",borderTop:"1px solid var(--color-border-light)"}},Ce.default.createElement("td",{style:Y},Ce.default.createElement("span",{style:{fontWeight:600,fontSize:13,color:"var(--color-text-primary)"}},z.label)),Ce.default.createElement("td",{style:Y},Ce.default.createElement("span",{style:So()},`${z.rows.length} ${z.rows.length===1?"criterion":"criteria"}`)),k.map(V=>{let q=z.rows.filter(fe=>{let le=of(fe.value,V);return le&&le.score!=null}),oe=q.filter(fe=>of(fe.value,V).score>=.7).length,Me=q.length&&oe===q.length?"var(--color-success-text)":oe===0&&q.length?"var(--color-error-text)":"var(--color-text-cell)";return Ce.default.createElement("td",{key:V||"score",style:Y},Ce.default.createElement("span",{style:So(11,Me,{fontWeight:600})},q.length?`${Vn(oe,q.length)} passed`:"\u2014"))})),z.rows.map(V=>Ce.default.createElement("tr",{key:V.key,"data-testid":"criterion-row",style:{borderTop:"1px solid var(--color-border-light)"}},Ce.default.createElement("td",{style:W},Ce.default.createElement("div",{style:So()},V.key),Ce.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-primary)"}},g2(V.criterion))),Ce.default.createElement("td",{style:W},Ce.default.createElement("span",{style:{fontFamily:U,fontSize:11,padding:"2px 6px",border:"1px solid var(--color-border)",borderRadius:4,color:"var(--color-text-cell)",whiteSpace:"nowrap"},title:vh(V.criterion)},k0(vh(V.criterion),40))),k.map(q=>Ce.default.createElement("td",{key:q||"score",style:W},Ce.default.createElement(A_e,{stats:of(V.value,q)}))))))),T.length===0&&Ce.default.createElement("tr",{style:{borderTop:"1px solid var(--color-border-light)"}},Ce.default.createElement("td",{colSpan:2+k.length,style:{padding:"16px 14px",fontSize:13,color:"var(--color-text-muted)"}},N.length?"Nothing failed under this filter.":"This run recorded no criterion scores.")))))),Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},Ce.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10}},Ce.default.createElement(Ue,null,"What to fix"),Ce.default.createElement("span",{style:So()},O.length?St(O.length,"item"):"nothing")),O.length?Ce.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:12}},O.map(z=>Ce.default.createElement(E_e,{key:z.kind,item:z,evaluation:e,run:h,number:v}))):Ce.default.createElement(Jr,{style:{border:"1px solid var(--color-border-light)",borderRadius:10,padding:"14px 12px",color:"var(--color-success-text)"}},`[+] Every criterion cleared the pass mark (${Q1(.7)}) and nothing was skipped.`)),Ce.default.createElement(gf,{evaluation:e,run:h,spend:I,onDelete:c,deleting:d}))}var Pn=Z(J());var BD={fontFamily:U,fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",color:"var(--color-text-muted)",padding:"8px 12px",textAlign:"left",verticalAlign:"bottom",whiteSpace:"nowrap"},FD={padding:"8px 12px",verticalAlign:"middle",fontSize:13,color:"var(--color-text-cell)",borderTop:"1px solid var(--color-border-light)"},LD={...FD,fontFamily:U,fontSize:12,whiteSpace:"nowrap",textAlign:"right"},zD={...BD,textAlign:"right"};function UD({rows:e=[],columns:t=[],testId:r="model-leaderboard"}){if(e.length<2)return null;let n=t.length>1?t.filter(o=>e.some(a=>a.byEvaluation?.[o.id]?.total>0)):[];return Pn.default.createElement(je,{padding:0,style:{overflow:"hidden"},testId:r},Pn.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10,padding:"10px 12px",flexWrap:"wrap"}},Pn.default.createElement(Ue,null,"Model leaderboard"),Pn.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},`${St(e.length,"model")} \xB7 ${St(t.length,"evaluation")} \xB7 ranked by the low end of each pass rate`)),Pn.default.createElement("div",{style:{overflowX:"auto"}},Pn.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},Pn.default.createElement("thead",null,Pn.default.createElement("tr",{style:{background:"var(--color-muted)"}},Pn.default.createElement("th",{style:{...zD,width:28}},"#"),Pn.default.createElement("th",{style:BD},"Model"),Pn.default.createElement("th",{style:{...BD,minWidth:160}},"Passed"),Pn.default.createElement("th",{style:zD},"Rate"),n.map(o=>Pn.default.createElement("th",{key:o.id,style:{...zD,maxWidth:140,overflow:"hidden",textOverflow:"ellipsis"},title:o.name},o.name)))),Pn.default.createElement("tbody",null,e.map(o=>{let{short:a,provider:i}=bn(o.label);return Pn.default.createElement("tr",{key:o.label,"data-testid":"model-leaderboard-row",title:`${o.label}: at least ${Ts(o.lower)} at 95% confidence`},Pn.default.createElement("td",{style:{...LD,color:"var(--color-text-muted)"}},o.rank),Pn.default.createElement("td",{style:FD},Pn.default.createElement("div",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:"var(--color-text-primary)",whiteSpace:"nowrap"}},a),i&&Pn.default.createElement("div",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)",whiteSpace:"nowrap"}},i)),Pn.default.createElement("td",{style:FD},Pn.default.createElement(tu,{passed:o.passed,total:o.total,color:B0(o.ratio),valueWidth:56})),Pn.default.createElement("td",{style:{...LD,fontWeight:700,color:B0(o.ratio)}},Ts(o.ratio)),n.map(s=>{let l=o.byEvaluation?.[s.id],u=l?.total?l.passed/l.total:null;return Pn.default.createElement("td",{key:s.id,style:{...LD,color:B0(u)},title:l?.total?`${s.name}: ${Vn(l.passed,l.total)}`:`${s.name}: not run on this model`},Ts(u))}))})))))}var gd=null,WD=new Set,uQ=()=>WD.forEach(e=>e(gd));function N_e(e={}){let t=e.requireText==null?null:String(e.requireText);return{title:e.title||"Are you sure?",message:e.message||"",confirmLabel:e.confirmLabel||"Confirm",cancelLabel:e.cancelLabel||"Cancel",danger:!!e.danger,requireText:t===""?null:t}}function Wr(e){return gd&&gd.resolve(!1),new Promise(t=>{gd={...N_e(e),resolve:t},uQ()})}function cQ(e){if(!gd)return;let{resolve:t}=gd;gd=null,uQ(),t(!!e)}function dQ(){return gd}function pQ(e){return WD.add(e),()=>WD.delete(e)}function fQ(e,t){return e?.requireText?t===e.requireText:!0}var mQ=()=>{let e=Rn().match(/^\/evaluations\/(\d+)\/runs\/(\d+)\/report/);if(e)return{evaluationId:e[1],runId:e[2]};let t=BI(window.location.search);return t?.runId?t:null},W2=()=>{let e=Rn().match(/^\/evaluations\/(\d+)(?:\/runs\/(\d+))?\/?$/);return e?{evaluationId:Number(e[1]),runId:e[2]?Number(e[2]):null}:null},gQ=()=>BI(window.location.search)?.evaluationId||(W2()?String(W2().evaluationId):null),U2=(e=11,t="var(--color-text-muted)")=>({fontFamily:U,fontSize:e,color:t}),T_e=e=>{let t=kh(e),r=e.latest_run?.status==="failed"?1:0;return t?e.scenario_suite?(t.scores?._recommendations||[]).length+r:v2(e,t).length+r:r},O_e={stale:{tone:"warning",text:"stale",title:"Its headline run scored an earlier version of the agent, so the tiles leave it out"},unrecorded:{tone:"muted",text:"version not recorded",title:"Nothing says which version of the agent its headline run scored; it still counts"},archived:{tone:"muted",text:"archived",title:"Archived: kept with its runs, left out of the tiles"}};function V0({embedded:e=!1,agentId:t=null}){let{darkMode:r}=ut(),[n,o]=(0,Ne.useState)(()=>e?null:mQ()),a=(0,Ne.useRef)(null),[i,s]=(0,Ne.useState)(0),[l,u]=(0,Ne.useState)(null);(0,Ne.useEffect)(()=>{let ve=a.current?.contentDocument?.body;if(!ve)return;let nt=()=>u(ve.scrollHeight);if(nt(),typeof ResizeObserver>"u")return window.addEventListener("resize",nt),()=>window.removeEventListener("resize",nt);let pt=new ResizeObserver(nt);return pt.observe(ve),()=>pt.disconnect()},[i,n]),(0,Ne.useEffect)(()=>u(null),[n]);let[c,d]=(0,Ne.useState)([]),[p,f]=(0,Ne.useState)([]),[m,y]=(0,Ne.useState)(void 0),[b,g]=(0,Ne.useState)(!1),[h,v]=(0,Ne.useState)(void 0),[x,S]=(0,Ne.useState)(!0),[k,w]=(0,Ne.useState)(null),[_,A]=(0,Ne.useState)(null),[C,N]=(0,Ne.useState)(()=>{if(e)return null;let ve=W2();return ve?.runId?ve:null}),[L,Q]=(0,Ne.useState)(()=>e?null:gQ()),[B,K]=(0,Ne.useState)({}),[T,O]=(0,Ne.useState)(!1),[I,P]=(0,Ne.useState)(null),[j,M]=(0,Ne.useState)(null),[W,Y]=(0,Ne.useState)(null),[z,V]=(0,Ne.useState)(!1),[q,oe]=(0,Ne.useState)(!1),[Me,fe]=(0,Ne.useState)(0);(0,Ne.useEffect)(()=>{if(e)return;let ve=()=>{o(mQ());let nt=W2();N(nt?.runId?nt:null);let pt=gQ();Q(pt),pt&&A(Qt=>new Set([...Qt||[],Number(pt)]))};return window.addEventListener("popstate",ve),window.addEventListener("dashboard:navigate",ve),()=>{window.removeEventListener("popstate",ve),window.removeEventListener("dashboard:navigate",ve)}},[e]);let le=(0,Ne.useCallback)(async()=>{try{let ve=new URLSearchParams;t&&ve.set("agent_id",t),z&&ve.set("archived","1");let nt=ve.toString(),pt=await fetch(`/api/evaluations${nt?`?${nt}`:""}`);if(!pt.ok)throw new Error(`Request failed (${pt.status})`);let Qt=await pt.json();fe(Number(Qt.archived_count)||0),y(Qt.judge_provider??null),g(Qt.judge_provider_error===!0),v(Array.isArray(Qt.model_providers)?Qt.model_providers:null);let Hn=Qt.evaluations||[],co=null;try{Hn=await oZ(Hn,L,fetch)}catch(nn){co=nn.message}d(Hn),A(nn=>{if(nn)return nn;let Oa=L?Hn.find(Pa=>String(Pa.id)===L):Hn.find(Pa=>Pa.scenario_suite)||Hn[0];return new Set(Oa?[Oa.id]:[])}),w(co)}catch(ve){w(ve.message),v(nt=>nt===void 0?null:nt)}finally{S(!1)}},[t,L,z]),R=(0,Ne.useCallback)(async ve=>{try{let nt=await fetch(`/api/evaluations/${ve}`);if(!nt.ok)throw new Error(`Could not load this evaluation's runs (HTTP ${nt.status})`);let pt=await nt.json();K(Qt=>({...Qt,[ve]:{runs:pt.evaluation?.runs||[],runCount:pt.evaluation?.run_count??null}}))}catch(nt){K(pt=>({...pt,[ve]:{runs:null,runCount:null,error:nt.message}})),w(nt.message)}},[]);(0,Ne.useEffect)(()=>{le(),fetch("/api/agents").then(ve=>ve.ok?ve.json():{agents:[]}).then(ve=>f(ve.agents||[])).catch(()=>f([]))},[le]),(0,Ne.useEffect)(()=>{new Set([..._||[],...C?[C.evaluationId]:[]]).forEach(nt=>{let pt=c.find(Qt=>Qt.id===nt);pt&&!pt.scenario_suite&&!B[nt]&&R(nt)})},[_,C,c,B,R]);let te=ve=>{!e&&Rn()!==ve&&id(ve)},He=ve=>!!_?.has(ve),_e=ve=>{let nt=!He(ve.id);A(pt=>{let Qt=new Set(pt||[]);return nt?Qt.add(ve.id):Qt.delete(ve.id),Qt}),te(nt?`/evaluations/${ve.id}`:"/evaluations")},D=(ve,nt)=>{A(pt=>new Set([...pt||[],ve.id])),N({evaluationId:ve.id,runId:nt.id}),te(`/evaluations/${ve.id}/runs/${nt.id}`)},G=ve=>{N(null),te(ve?`/evaluations/${ve}`:"/evaluations")},E=async ve=>{P(ve.id),w(null);try{let nt=await fetch(`/api/evaluations/${ve.id}/run`,{method:"POST"}),pt=await nt.json().catch(()=>({}));if(!nt.ok){w((pt.errors||[pt.error]).filter(Boolean).join(", ")||`Run failed (HTTP ${nt.status})`);return}await Promise.all([le(),R(ve.id)]),pt.run&&C?.evaluationId===ve.id&&D(ve,pt.run)}finally{P(null)}},$=async(ve,nt)=>{Y(ve.id),w(null);try{let pt=await fetch(`/api/evaluations/${ve.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({evaluation:{archived:nt}})}),Qt=await pt.json().catch(()=>({}));if(!pt.ok){w((Qt.errors||[Qt.error]).filter(Boolean).join(", ")||`${nt?"Archive":"Unarchive"} failed (HTTP ${pt.status})`);return}await le()}finally{Y(null)}},ee=async ve=>{if(await Wr({title:`Delete ${ve.name}?`,message:"Its runs are deleted with it. This cannot be undone.",confirmLabel:"Delete evaluation",danger:!0,requireText:ve.name})){M(ve.id),w(null);try{let nt=await fetch(`/api/evaluations/${ve.id}`,{method:"DELETE"});nt.ok||nt.status===404?(d(pt=>pt.filter(Qt=>Qt.id!==ve.id)),A(pt=>{let Qt=new Set(pt||[]);return Qt.delete(ve.id),Qt}),C?.evaluationId===ve.id&&G(null)):w(`Delete failed (HTTP ${nt.status})`)}finally{M(null)}}};if(x)return Ne.default.createElement("div",{className:"flex items-center justify-center h-64"},Ne.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2",style:{borderBottomColor:"var(--color-accent-ui)"}}));let F=t?c.filter(ve=>String(ve.agent?.id)===String(t)):c,me=ve=>{let nt=B[ve.id];return nt?.runs?{runs:nt.runs,runCount:ve.run_count??nt.runCount??null,loaded:!0}:{runs:ve.latest_run?[ve.latest_run]:[],runCount:ve.run_count??null,loaded:!1}};if(n){let ve=gh(`/evaluations/${n.evaluationId}/runs/${n.runId}/report`),nt=Re(ve.report),pt={padding:"6px 12px",borderRadius:8,fontSize:13,fontWeight:500,color:"var(--color-text-cell)",border:"1px solid var(--color-border-strong)",textDecoration:"none",whiteSpace:"nowrap"},Qt=`${nt}?theme=${r?"dark":"light"}`;return Ne.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},Ne.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},Ne.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12}},Ne.default.createElement(ce,{size:"sm",onClick:()=>{id("/evaluations"),o(null)}},Ne.default.createElement("span",{style:{fontFamily:U}},"<-")," Evaluations"),Ne.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Run report"),Ne.default.createElement("span",{style:U2(11)},`evaluation ${n.evaluationId} \xB7 run ${n.runId}`)),Ne.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},"data-testid":"run-report-exports"},Ne.default.createElement(_l,{url:Re(ve.markdown),title:"Copy the whole report as GitHub-flavored Markdown, for a pull request or an issue",testId:"run-report-copy-markdown"}),[["html","Download HTML","The report as one self-contained page"],["json","Download JSON","The run as the evaluation report envelope \u2014 POST it to another install\u2019s /api/evaluation_reports to import it"],["md","Download Markdown","The report as GitHub-flavored Markdown"]].map(([Hn,co,nn])=>Ne.default.createElement("a",{key:Hn,href:Re(ve[Hn]),download:!0,title:nn,"data-testid":`run-report-download-${Hn}`,style:pt},co)),Ne.default.createElement("a",{href:nt,target:"_blank",rel:"noopener noreferrer",title:"The report as one self-contained page, outside the dashboard",style:pt},"Open standalone ",Ne.default.createElement("span",{style:{fontFamily:U}},"->")))),Ne.default.createElement("iframe",{ref:a,src:Qt,title:"Evaluation run report",allow:"clipboard-write",onLoad:()=>s(Hn=>Hn+1),scrolling:"no",style:{width:"100%",borderRadius:12,border:"1px solid var(--color-border)",background:"var(--color-background)",display:"block",height:l?`${l}px`:"calc(100vh - 180px)"}}))}if(C){let ve=F.find(nt=>nt.id===C.evaluationId);if(!ve||!ve.scenario_suite){let{runs:nt,runCount:pt,loaded:Qt}=ve?me(ve):{runs:[],runCount:null,loaded:!0};return Ne.default.createElement($D,{evaluation:ve,runs:nt,runCount:pt,runId:C.runId,loading:!Qt,running:I===C.evaluationId,onSelectRun:Hn=>D(ve,Hn),onRun:()=>E(ve),onBack:()=>G(null),onOpenEvaluation:()=>G(C.evaluationId),onDelete:ve?()=>ee(ve):void 0,deleting:j===C.evaluationId})}}let et=yZ(F,{focusId:L}),{samplesScored:rt,samplesPassed:ge,passRatio:ue,spend:Fe}=et,Je=xZ(et),ot=[...new Set(F.map(ve=>ve.agent?.name).filter(Boolean))],Tt=F.reduce((ve,nt)=>Math.max(ve,KI(nt,kh(nt)||nt.latest_run)),0),Lt=F.map(T_e),Hr=Lt.reduce((ve,nt)=>ve+nt,0),Io=Lt.filter(Boolean).length,vs=F.length?[`${St(ot.length,"agent")} \xB7 ${Tt>1?`${Tt} models compared`:"no model comparisons"}`,Je].filter(Boolean).join(" \xB7 "):"none defined yet",Mi=et.focused?"headline run of this evaluation":`headline run of ${St(et.counted,"current evaluation")}${Je?` \xB7 ${Je}`:""}`,yt=vZ(et),to=yt.length>1?yt[0]:null,xs=Fe.agentCost!=null&&Fe.estimated||Fe.judgeCost!=null&&Fe.judgeEstimated,bs=Fe.agentCost!=null?Ne.default.createElement("span",{style:{display:"flex",flexDirection:"column",gap:4}},Ne.default.createElement("span",{"data-testid":"stat-agent-cost-scope"},`over ${St(Fe.interactions,"interaction")}`),Ne.default.createElement("span",{style:{display:"grid",gridTemplateColumns:"max-content minmax(0, 1fr)",columnGap:10,rowGap:2,fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},Ne.default.createElement("span",null,"agent"),Ne.default.createElement("span",{"data-testid":"stat-agent-cost-agent",style:{color:"var(--color-text-cell)"}},Pr(Fe.agentCost,{estimated:Fe.estimated})),Ne.default.createElement("span",null,"judge"),Ne.default.createElement("span",{"data-testid":"stat-agent-cost-judge",style:{color:"var(--color-text-cell)"},title:"The judge's spend is the evaluation's own, outside the interactions, so it is not in the figure above"},Fe.judgeCost!=null?`${Pr(Fe.judgeCost,{estimated:Fe.judgeEstimated})} \xB7 offline`:"none")),xs&&Ne.default.createElement("span",{title:il,style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"~ estimated")):"no priced runs yet";return Ne.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:20}},Ne.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16,flexWrap:"wrap"}},!e&&Ne.default.createElement("div",{style:{flex:1,minWidth:260}},Ne.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Evaluations"),Ne.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Score recorded outputs, or paste a list of user messages to replay through the agent under one or more models. Every run is kept.")),Ne.default.createElement("div",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:12}},(Me>0||z)&&Ne.default.createElement(ce,{size:"sm",onClick:()=>V(ve=>!ve),testId:"show-archived-toggle",title:"Archived evaluations keep their runs but leave the list and the tiles"},z?"Hide archived":`Show archived (${Me})`),Ne.default.createElement(ce,{variant:"primary",onClick:()=>O(!T),testId:"new-evaluation-button"},T?"Cancel":"New Evaluation"))),k&&Ne.default.createElement("div",{style:{padding:"10px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},"Failed to load evaluations: ",k),T&&Ne.default.createElement(jD,{agents:p,agentId:t,judgeProvider:m,judgeProviderError:b,modelProviders:h,onCancel:()=>O(!1),onCreated:async ve=>{O(!1),await le(),ve?.id!=null&&(A(nt=>new Set([...nt||[],ve.id])),te(`/evaluations/${ve.id}`))}}),Ne.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(190px, 1fr))",gap:16}},Ne.default.createElement(Am,{label:"Evaluations",value:F.length,sub:vs,testId:"stat-evaluations"}),Ne.default.createElement(Am,{label:"Samples scored",value:rt,sub:Mi,testId:"stat-samples-scored"}),Ne.default.createElement(Am,{label:"Pass rate",value:Ts(ue),valueColor:ue==null?"var(--color-text-muted)":Dn[eu(ue)].strong,sub:ue==null?Je||"no completed runs yet":Ne.default.createElement("span",{style:{display:"flex",flexDirection:"column",gap:2}},Ne.default.createElement("span",{"data-testid":"stat-pass-rate-fraction"},`${ge}/${rt} passed`),to&&Ne.default.createElement(Ne.default.Fragment,null,Ne.default.createElement("span",{"data-testid":"stat-pass-rate-leader",title:`${to.label} ${Vn(to.passed,to.total)}: best of ${yt.length} models by the low end of its pass rate`,style:{display:"flex",gap:6,minWidth:0,fontFamily:U,fontSize:11,color:"var(--color-text-muted)",whiteSpace:"nowrap"}},Ne.default.createElement("span",null,"best"),Ne.default.createElement("span",{style:{overflow:"hidden",textOverflow:"ellipsis",minWidth:0,color:"var(--color-text-cell)"}},bn(to.label).short),Ne.default.createElement("span",{style:{flexShrink:0}},Ts(to.ratio))),Ne.default.createElement("button",{type:"button",onClick:()=>oe(ve=>!ve),"aria-expanded":q,"data-testid":"stat-pass-rate-leaderboard-toggle",style:{alignSelf:"flex-start",background:"transparent",border:"none",padding:0,cursor:"pointer",fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"}},Ne.default.createElement(wa,{kind:"chevron",open:q})," ",`${q?"hide":"compare"} ${yt.length} models`))),testId:"stat-pass-rate"}),Ne.default.createElement(Am,{label:"To fix",value:Hr,valueColor:Hr?"var(--color-error)":void 0,sub:Hr?`across ${St(Io,"evaluation")}`:"nothing outstanding",testId:"stat-to-fix"}),Ne.default.createElement(Am,{label:"Cost / interaction",value:Lu(Fe.perInteraction,Fe.estimated),valueColor:Fe.perInteraction==null?"var(--color-text-muted)":void 0,sub:bs,testId:"stat-agent-cost"})),q&&Ne.default.createElement(UD,{rows:yt,columns:et.columns}),Ne.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},F.map((ve,nt)=>{let pt=ve.latest_run,Qt=kh(ve),Hn=pt&&Qt&&pt.id!==Qt.id?pt:null,co=GI(ve),nn=O_e[co],Oa=co==="archived",Pa=He(ve.id),ws=!!ve.scenario_suite,po=Lt[nt],Wu=(ve.criteria||[]).some(ro=>kl(ro)==="telemetry"),{runs:Ss,runCount:Hu}=me(ve);return Ne.default.createElement(je,{key:ve.id,padding:0,testId:"evaluation-card","data-telemetry":Wu?"true":"false","data-kind":ws?"suite":"sampling","data-open":Pa?"true":"false","data-standing":co,style:{overflow:"hidden",opacity:Oa?.75:1}},Ne.default.createElement("div",{role:"button",tabIndex:0,"aria-expanded":Pa,onClick:()=>_e(ve),onKeyDown:ro=>{(ro.key==="Enter"||ro.key===" ")&&(ro.preventDefault(),_e(ve))},className:"hover:bg-[var(--color-hover)]",style:{display:"flex",alignItems:"center",gap:10,rowGap:8,padding:"12px 16px",cursor:"pointer",flexWrap:"wrap"}},Ne.default.createElement(wa,{kind:"chevron",open:Pa}),Ne.default.createElement("span",{style:{width:22,height:22,borderRadius:6,background:"var(--color-muted)",display:"inline-flex",alignItems:"center",justifyContent:"center",fontFamily:U,fontSize:11,fontWeight:700,color:"var(--color-text-secondary)",flexShrink:0},title:ws?"scenario suite":"sampling evaluation"},ws?"=":"~"),Ne.default.createElement("span",{style:{fontSize:15,fontWeight:700,color:"var(--color-text-primary)"}},ve.name),Ne.default.createElement("span",{style:U2(11)},`@${ve.agent?.name||"agent"} \xB7 ${nf(ve)}`),Ne.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:12,flexShrink:0}},Ne.default.createElement("span",{style:U2(11)},wo(pt?.completed_at||pt?.created_at||ve.created_at)),po>0&&Ne.default.createElement("span",{style:U2(11,"var(--color-error)")},`${po} to fix`),nn&&Ne.default.createElement(ke,{tone:nn.tone,size:10,style:{padding:"1px 6px"},title:nn.title,testId:"evaluation-standing"},nn.text),Hn&&Ne.default.createElement(ff,{run:Hn,testId:"evaluation-newer-run-badge"}),Ne.default.createElement(ff,{run:Qt||pt,testId:ws?"suite-pass-badge":"evaluation-pass-badge"}),Ne.default.createElement("button",{type:"button",onClick:ro=>{ro.stopPropagation(),$(ve,!Oa)},disabled:W===ve.id,title:Oa?"Bring this evaluation back into the list and the tiles":"Archive: keep its runs, leave it out of the list and the tiles","data-testid":"evaluation-archive-toggle",style:{background:"transparent",border:"none",padding:0,cursor:W===ve.id?"not-allowed":"pointer",fontFamily:U,fontSize:11,color:"var(--color-text-muted)",opacity:W===ve.id?.5:1}},W===ve.id?"\u2026":Oa?"unarchive":"archive"))),Pa&&Ne.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)"}},ws?Ne.default.createElement(ID,{evaluation:ve,modelProviders:h,onChanged:le,onDelete:()=>ee(ve),deleting:j===ve.id,initialRunId:C?.evaluationId===ve.id?C.runId:null,onRunSelected:ro=>te(`/evaluations/${ve.id}/runs/${ro}`)}):Ne.default.createElement("div",{style:{padding:16,display:"flex",flexDirection:"column",gap:12},"data-testid":"sampling-evaluation-panel"},Ne.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},Ne.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},Ss.length?pJ(Ss,Hu):`@${ve.agent?.name||"agent"} \xB7 no runs yet`),Ne.default.createElement(ce,{variant:"primary",size:"sm",disabled:I===ve.id,onClick:ro=>{ro.stopPropagation(),E(ve)},testId:"evaluation-run-button"},I===ve.id?"Running\u2026":`Run ${nf(ve)}`)),Ne.default.createElement(dD,{runs:Ss,runCount:Hu,evaluation:ve,agentName:ve.agent?.name,previousRun:ve.previous_run,onOpen:ro=>D(ve,ro),testId:"evaluation-runs-panel"}),Ne.default.createElement(gf,{evaluation:ve,run:pt,spend:Ni(pt),onDelete:()=>ee(ve),deleting:j===ve.id}))))})),F.length===0&&!T&&Ne.default.createElement(je,{style:{textAlign:"center",padding:"48px 20px"}},Ne.default.createElement("div",{style:{fontSize:16,fontWeight:600,color:"var(--color-text-primary)"}},"No evaluations yet"),Ne.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Create an evaluation to score recorded outputs, or paste scenarios to test new tasks across models. Every run is kept, so scores stay comparable over time.")))}var We=Z(J());var P_e=e=>new Date(`${e}T00:00:00`),M_e=[{id:"overview",label:"Overview"},{id:"traces",label:"Traces"},{id:"interactions",label:"Interactions"}];function HD({agent:e,onBack:t,embedded:r=!1}){let{darkMode:n}=ut(),o=Ki(n),[a,i]=(0,We.useState)(null),[s,l]=(0,We.useState)(!0),{timeWindow:u,days:c}=xl(),[d,p]=(0,We.useState)("overview");(0,We.useEffect)(()=>{f()},[e?.id,c]);let f=async()=>{if(e?.id){l(!0);try{let x=await(await fetch(`/api/agents/${e.id}/analytics?days=${c}`)).json();i(x)}catch(v){console.error("Failed to load analytics:",v)}finally{l(!1)}}},m=v=>v?v<1e3?`${v}ms`:`${(v/1e3).toFixed(2)}s`:"-",y=v=>v?v>=1e6?`${(v/1e6).toFixed(1)}M`:v>=1e3?`${(v/1e3).toFixed(1)}K`:v.toString():"0",b=v=>{switch(v){case"complete":return"bg-green-500";case"failed":return"bg-red-500";case"running":return"bg-blue-500";case"pending":return"bg-yellow-500";case"cancelled":return"bg-gray-500";default:return"bg-gray-400"}};if(s&&!a)return We.default.createElement("div",{className:"flex items-center justify-center h-64"},We.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let g=a?.runs_by_day?.length>0?Math.max(...a.runs_by_day.map(v=>v.count)):1,h=r?"overview":d;return We.default.createElement("div",{className:"space-y-6"},r?We.default.createElement("div",{className:"flex items-center justify-end gap-2"},u.minutes<1440&&We.default.createElement("span",{className:"text-xs",style:{color:o.textMuted},title:"This view aggregates by day"},"showing 1 day"),We.default.createElement(bl,null)):We.default.createElement("div",{className:"flex items-center justify-between"},We.default.createElement("div",{className:"flex items-center space-x-4"},We.default.createElement("button",{onClick:t,className:"p-2 transition-colors",style:{color:o.textMuted}},We.default.createElement("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),We.default.createElement("div",null,We.default.createElement("h1",{className:"text-2xl font-bold",style:{color:o.textPrimary}},e.name," Analytics"),We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Performance metrics and usage data"))),We.default.createElement("div",{className:"flex items-center gap-2"},u.minutes<1440&&We.default.createElement("span",{className:"text-xs",style:{color:o.textMuted},title:"This view aggregates by day"},"showing 1 day"),We.default.createElement(bl,null))),!r&&We.default.createElement("div",{className:"flex rounded-lg p-1 w-fit",style:{background:o.mutedBg}},M_e.map(v=>We.default.createElement("button",{key:v.id,onClick:()=>p(v.id),className:`px-4 py-1.5 text-sm rounded-md transition-colors ${d===v.id?"shadow":""}`,style:d===v.id?{background:o.cardBg,color:o.textPrimary}:{color:o.textSecondary}},v.label))),h==="traces"&&We.default.createElement(Jp,{agentId:e.id,embedded:!0}),h==="interactions"&&We.default.createElement($u,{agentId:e.id,embedded:!0}),h==="overview"&&We.default.createElement(We.default.Fragment,null,We.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4"},We.default.createElement(H2,{title:"Total Runs",value:a?.summary?.total_runs||0,icon:We.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 10V3L4 14h7v7l9-11h-7z"})),color:"rose",colors:o,darkMode:n}),We.default.createElement(H2,{title:"Success Rate",value:`${a?.summary?.success_rate||0}%`,icon:We.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})),color:"green",colors:o,darkMode:n}),We.default.createElement(H2,{title:"Avg Duration",value:m(a?.summary?.avg_duration_ms),icon:We.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})),color:"blue",colors:o,darkMode:n}),We.default.createElement(H2,{title:"Total Tokens",value:y(a?.summary?.total_tokens),icon:We.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01"})),color:"purple",colors:o,darkMode:n})),We.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6"},We.default.createElement("div",{className:"lg:col-span-2 rounded-xl border p-6",style:{background:o.cardBg,borderColor:o.cardBorder}},We.default.createElement("h3",{className:"font-semibold mb-4",style:{color:o.textPrimary}},"Runs Over Time"),a?.runs_by_day?.length>0?We.default.createElement("div",{className:"h-48"},We.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},a.runs_by_day.map((v,x)=>We.default.createElement("div",{key:v.date,className:"flex-1 flex flex-col items-center group"},We.default.createElement("div",{className:"relative w-full"},We.default.createElement("div",{className:"w-full bg-red-500 rounded-t transition-all hover:bg-red-600",style:{height:`${v.count/g*150}px`,minHeight:v.count>0?"4px":"0"}}),We.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap"},v.count," runs")),(x===0||x===a.runs_by_day.length-1||a.runs_by_day.length<=7)&&We.default.createElement("span",{className:"text-xs mt-2 transform -rotate-45 origin-left",style:{color:o.textMuted}},P_e(v.date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))))):We.default.createElement("div",{className:"h-48 flex items-center justify-center",style:{color:o.textMuted}},"No data for this period")),We.default.createElement("div",{className:"rounded-xl border p-6",style:{background:o.cardBg,borderColor:o.cardBorder}},We.default.createElement("h3",{className:"font-semibold mb-4",style:{color:o.textPrimary}},"Status Breakdown"),Object.keys(a?.status_breakdown||{}).length>0?We.default.createElement("div",{className:"space-y-3"},Object.entries(a.status_breakdown).map(([v,x])=>{let S=a?.summary?.total_runs||1,k=(x/S*100).toFixed(1);return We.default.createElement("div",{key:v},We.default.createElement("div",{className:"flex justify-between text-sm mb-1"},We.default.createElement("span",{className:"capitalize",style:{color:o.textSecondary}},v),We.default.createElement("span",{className:"font-medium",style:{color:o.textPrimary}},x," (",k,"%)")),We.default.createElement("div",{className:"h-2 rounded-full overflow-hidden",style:{background:o.trackBg}},We.default.createElement("div",{className:`h-full ${b(v)} rounded-full transition-all`,style:{width:`${k}%`}})))})):We.default.createElement("div",{className:"h-32 flex items-center justify-center",style:{color:o.textMuted}},"No runs yet"))),a?.recent_errors?.length>0&&We.default.createElement("div",{className:"rounded-xl border p-6",style:{background:o.cardBg,borderColor:o.cardBorder}},We.default.createElement("h3",{className:"font-semibold mb-4",style:{color:o.textPrimary}},"Recent Errors"),We.default.createElement("div",{className:"space-y-3"},a.recent_errors.map(v=>We.default.createElement("div",{key:v.id,className:"flex items-start space-x-3 p-3 rounded-lg",style:{background:n?"rgba(220,38,38,0.12)":"#fef2f2"}},We.default.createElement("svg",{className:"w-5 h-5 text-red-500 flex-shrink-0 mt-0.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})),We.default.createElement("div",{className:"flex-1 min-w-0"},We.default.createElement("p",{className:"text-sm",style:{color:n?"#fca5a5":"#991b1b"}},v.error||"Unknown error"),We.default.createElement("p",{className:"text-xs mt-1",style:{color:n?"#f87171":"#dc2626"}},new Date(v.created_at).toLocaleString())))))),We.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4"},We.default.createElement("div",{className:"rounded-lg p-4",style:{background:o.innerBg}},We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Completed Runs"),We.default.createElement("p",{className:"text-2xl font-bold",style:{color:o.textPrimary}},a?.summary?.completed_runs||0)),We.default.createElement("div",{className:"rounded-lg p-4",style:{background:o.innerBg}},We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Failed Runs"),We.default.createElement("p",{className:"text-2xl font-bold",style:{color:o.textPrimary}},a?.summary?.failed_runs||0)),We.default.createElement("div",{className:"rounded-lg p-4",style:{background:o.innerBg}},We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Avg Tokens/Run"),We.default.createElement("p",{className:"text-2xl font-bold",style:{color:o.textPrimary}},y(a?.summary?.avg_tokens_per_run))),We.default.createElement("div",{className:"rounded-lg p-4",style:{background:o.innerBg}},We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Period"),We.default.createElement("p",{className:"text-2xl font-bold",style:{color:o.textPrimary}},a?.period_days||30," days")))))}var hQ={rose:["#dc2626","rgba(220,38,38,0.18)","#fee2e2"],green:["#16a34a","rgba(22,163,74,0.18)","#dcfce7"],blue:["#2563eb","rgba(37,99,235,0.18)","#dbeafe"],purple:["#7c3aed","rgba(124,58,237,0.18)","#ede9fe"]};function H2({title:e,value:t,icon:r,color:n,colors:o,darkMode:a}){let[i,s,l]=hQ[n]||hQ.rose;return We.default.createElement("div",{className:"rounded-xl border p-4",style:{background:o.cardBg,borderColor:o.cardBorder}},We.default.createElement("div",{className:"flex items-center justify-between"},We.default.createElement("div",null,We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},e),We.default.createElement("p",{className:"text-2xl font-bold mt-1",style:{color:o.textPrimary}},t)),We.default.createElement("div",{className:"p-3 rounded-lg",style:{background:a?s:l,color:i}},r)))}var de=Z(J());var I_e={active:"success",configured:"info",available:"warning",idle:"muted"},D_e={agent_defined:"success",dashboard:"success",mcp:"info"},yQ="44px minmax(0, 1fr) 108px 60px 52px 58px 74px 26px",vQ="26px minmax(0, 1fr) 108px 52px 52px 52px 74px 64px",j_e=[{value:"enabled",label:"Enabled"},{value:"active",label:"Active"},{value:"configured",label:"Configured"},{value:"available",label:"Available"}],xQ={padding:"7px 16px",gap:10,alignItems:"end",background:"var(--color-muted)",fontFamily:U,fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",color:"var(--color-text-muted)"},Nl={fontFamily:U,fontSize:11,textAlign:"right",color:"var(--color-text-primary)"},q2={whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"};function SQ({on:e,onClick:t,title:r}){return de.default.createElement("span",{role:"switch","aria-checked":e,tabIndex:0,title:r,onClick:t,onKeyDown:n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),t(n))},style:{width:34,height:18,borderRadius:999,flexShrink:0,position:"relative",cursor:"pointer",background:e?"var(--color-accent-ui)":"var(--color-muted)",border:`1px solid ${e?"var(--color-accent-ui)":"var(--color-border-strong)"}`,transition:"background 0.12s ease"}},de.default.createElement("span",{style:{position:"absolute",top:1,left:e?17:1,width:14,height:14,borderRadius:"50%",background:e?"#ffffff":"var(--color-text-muted)",transition:"left 0.12s ease"}}))}function bQ({on:e,dim:t=!1}){return de.default.createElement("span",{"aria-hidden":"true",style:{width:16,height:16,borderRadius:4,display:"flex",alignItems:"center",justifyContent:"center",fontFamily:U,fontSize:10,fontWeight:700,flexShrink:0,border:`1px solid ${e?"var(--color-accent-ui)":"var(--color-border-strong)"}`,background:e?"var(--color-accent-ui)":"transparent",color:e?"var(--color-on-accent)":"transparent",opacity:t?.8:1}},e?"x":"")}function $_e({tool:e,state:t,onToggle:r}){if(!t)return de.default.createElement("span",null);let n=t!=="off",o=`Click to make each ${e.name} call wait for a person to approve it`;return t==="on"&&(o=`Each ${e.name} call waits for approval. Click to let it run without asking.`),t==="partial"&&(o=`Some ${e.name} functions wait for approval. Click to let every ${e.name} call run without asking.`),de.default.createElement("span",{"data-testid":`tool-approval-${e.key}`,"data-approval":t,onClick:a=>a.stopPropagation(),onKeyDown:a=>a.stopPropagation(),style:{display:"flex",justifyContent:"center"}},de.default.createElement(SQ,{on:n,title:o,onClick:()=>r(e)}))}function K2({children:e,onClick:t,disabled:r,title:n}){return de.default.createElement("button",{type:"button",onClick:t,disabled:r,title:n,style:{padding:"3px 9px",borderRadius:6,background:"transparent",fontFamily:U,fontSize:11,border:"1px solid var(--color-border-strong)",color:"var(--color-text-cell)",cursor:r?"not-allowed":"pointer",opacity:r?.5:1}},e)}function wQ({children:e}){return de.default.createElement("div",{style:{overflowX:"auto"}},de.default.createElement("div",{style:{minWidth:800}},e))}function qD({agent:e,formData:t,updateField:r,onSave:n,hasChanges:o=!1,isLoading:a}){let[i,s]=(0,de.useState)(null),[l,u]=(0,de.useState)(null),[c,d]=(0,de.useState)("7d"),[p,f]=(0,de.useState)(""),[m,y]=(0,de.useState)(null),[b,g]=(0,de.useState)(null),[h,v]=(0,de.useState)(!1),[x,S]=(0,de.useState)(null),[k,w]=(0,de.useState)({}),_=(rw.find(D=>D.value===c)||rw[1]).hours;(0,de.useEffect)(()=>{let D=!1;return u(null),fetch(`/api/agents/${e.id}/tool_roster?hours=${_}`).then(G=>{if(!G.ok)throw new Error(`Request failed (${G.status})`);return G.json()}).then(G=>{D||s(G)}).catch(G=>{D||u(G.message)}),()=>{D=!0}},[e.id,_]);let A=(0,de.useMemo)(()=>({services:[],tools:[]}),[]),C=i||A,N=(0,de.useMemo)(()=>t.tools||[],[t.tools]),L=(0,de.useMemo)(()=>t.mcp_servers||[],[t.mcp_servers]),Q=(0,de.useMemo)(()=>t.approval_required_tools||[],[t.approval_required_tools]),B=(0,de.useMemo)(()=>tw(C,L),[C,L]),K=(0,de.useMemo)(()=>M6(C,B,{query:p,filter:m}),[C,B,p,m]),T=(0,de.useMemo)(()=>D6(C,B,N,{query:p,source:b,enabledOnly:h}),[C,B,N,p,b,h]),O=(0,de.useMemo)(()=>j6(C,B,N,{range:c}),[C,B,N,c]),I=(0,de.useMemo)(()=>z6(C,{tools:N,mcpServers:L,approvalRequiredTools:Q},{tools:e.tools||[],mcpServers:e.mcp_servers||[],approvalRequiredTools:e.approval_required_tools||[]}),[C,N,L,Q,e]),P=C.usage_available!==!1,j=D=>P?D:"\u2014",M=(0,de.useCallback)(D=>{r("mcp_servers",B6(C,D,L))},[C,L,r]),W=(0,de.useCallback)(D=>{let G=B[D.key];M({...B,[D.key]:{...G,on:!G.on}})},[B,M]),Y=(0,de.useCallback)((D,G)=>{let E=B[D.key];E.on&&M({...B,[D.key]:{...E,tools:{...E.tools,[G.name]:!E.tools[G.name]}}})},[B,M]),z=(0,de.useCallback)((D,G)=>{let E=B[D.key],$=Object.fromEntries((D.tools||[]).map(ee=>[ee.name,G]));M({...B,[D.key]:{on:G||E.on,tools:$}})},[B,M]),V=(0,de.useCallback)(D=>{r("tools",F6(C,D));let G=Om(D.filter(E=>!N.includes(E)));G.length>0&&r("approval_required_tools",bT(Q,G,!0))},[C,N,Q,r]),q=(0,de.useCallback)(D=>{D.editable&&V(D.on?N.filter(G=>G!==D.key):[...N,D.key])},[N,V]),oe=(0,de.useCallback)((D,G)=>{D.editable&&V(G?[...N,...D.keys.filter(E=>!N.includes(E))]:N.filter(E=>!D.keys.includes(E)))},[N,V]),Me=(0,de.useCallback)(D=>{r("approval_required_tools",L6(Q,D,e.approval_required_tools||[]))},[Q,e,r]),fe=(0,de.useCallback)(()=>{r("tools",e.tools||[]),r("mcp_servers",e.mcp_servers||[]),r("approval_required_tools",e.approval_required_tools||[])},[e,r]),le=(C.services||[]).filter(D=>B[D.key]?.on),R=T.find(D=>D.source==="mcp"),He=T.filter(D=>D.source!=="mcp").reduce((D,G)=>D+G.enabledCount,0)+(R?R.total:0),_e=T.reduce((D,G)=>D+G.total,0);return l?de.default.createElement(je,null,de.default.createElement(Ue,null,"Tools & MCP services"),de.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,color:"var(--color-error-text)"}},"Could not load the roster: ",l)):i?de.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},de.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",gap:16,flexWrap:"wrap"}},de.default.createElement("div",{style:{flex:1,minWidth:260}},de.default.createElement("h2",{style:{margin:0,fontSize:16,fontWeight:600,color:"var(--color-text-primary)"}},"Tools & MCP services"),de.default.createElement("p",{style:{margin:"3px 0 0",fontSize:13,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Turn a service on to offer its tools, then narrow the roster tool by tool. Call counts come from the traces recorded on every tool call.")),de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},de.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 10px",borderRadius:8,border:"1px solid var(--color-border-strong)",background:"var(--color-card)"}},de.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-muted)"}},"?"),de.default.createElement("input",{value:p,onChange:D=>f(D.target.value),placeholder:"Filter tools and services\u2026","aria-label":"Filter tools and services",style:{border:"none",outline:"none",background:"transparent",color:"var(--color-text-primary)",fontSize:13,width:180}})),de.default.createElement(qi,{options:rw,value:c,onChange:d}))),de.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))",gap:12}},O.map(D=>de.default.createElement(je,{key:D.key,padding:"14px 16px",testId:`roster-stat-${D.key}`},de.default.createElement(Ue,{size:11,spacing:"0.05em"},D.label),de.default.createElement("div",{style:{marginTop:6,fontFamily:U,fontSize:26,fontWeight:700,lineHeight:1.1,color:D.tone==="warning"?"var(--color-warning)":"var(--color-text-primary)"}},D.value),de.default.createElement("div",{style:{marginTop:5,fontSize:12,color:"var(--color-text-secondary)",textWrap:"pretty"}},D.sub)))),de.default.createElement(je,{padding:0,style:{overflow:"hidden"},testId:"mcp-services-card"},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"12px 16px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},de.default.createElement(Ue,null,"MCP services"),de.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},le.length," of ",(C.services||[]).length," enabled \xB7 ",R?R.total:0," tools offered"),de.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},de.default.createElement(jn,{selected:!m,onClick:()=>y(null)},"All ",(C.services||[]).length),j_e.map(D=>de.default.createElement(jn,{key:D.value,selected:m===D.value,onClick:()=>y(m===D.value?null:D.value)},D.label,D.value==="enabled"?` ${le.length}`:"")),de.default.createElement(Gr,{href:Re("/mcp"),onClick:()=>lt("/mcp"),title:"Every MCP service this workspace knows",style:{marginLeft:4}},"manage servers"))),de.default.createElement(wQ,null,de.default.createElement("div",{style:{display:"grid",gridTemplateColumns:yQ,...xQ}},de.default.createElement("span",null,"On"),de.default.createElement("span",null,"Service"),de.default.createElement("span",null,"Status"),de.default.createElement("span",{style:{textAlign:"right"}},"Tools"),de.default.createElement("span",{style:{textAlign:"right"}},"Calls"),de.default.createElement("span",{style:{textAlign:"right"}},"Errors"),de.default.createElement("span",{style:{textAlign:"right"}},"Last seen"),de.default.createElement("span",null)),K.map(D=>{let G=x===D.key;return de.default.createElement("div",{key:D.key},de.default.createElement("div",{className:"aa-roster-row","data-on":D.on?"true":"false","data-testid":`service-row-${D.key}`,style:{display:"grid",gridTemplateColumns:yQ,gap:10,alignItems:"center",padding:"10px 16px",borderTop:"1px solid var(--color-border-light)"}},de.default.createElement(SQ,{on:D.on,onClick:()=>W(D),title:`${D.on?"Disable":"Enable"} ${D.name} for this agent`}),de.default.createElement("div",{onClick:()=>S(G?null:D.key),style:{minWidth:0,cursor:"pointer"}},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},de.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},D.name),D.first_party&&de.default.createElement(ke,{tone:"accent",size:10},"first-party"),Zd(D)&&de.default.createElement(ke,{tone:"info",size:10,title:"The app runtime of a checkout sandbox started from Settings \u2192 Integrations"},"sandbox runtime"),av(D)&&de.default.createElement(ke,{tone:"warning",size:10,title:"This checkout sandbox has stopped; the agent still names its runtime"},"not running"),nw(D)&&de.default.createElement(ke,{size:10,title:"Seen in your traffic but not in the platform catalog"},"undocumented"),D.partial&&de.default.createElement(ke,{tone:"warning",size:10},D.partialLabel)),de.default.createElement("div",{style:{marginTop:2,fontSize:12,lineHeight:"17px",color:"var(--color-text-secondary)",...q2}},D.description)),de.default.createElement("span",null,de.default.createElement(ke,{tone:I_e[D.status]||"muted"},D.status)),de.default.createElement("span",{style:{...Nl,color:D.on?"var(--color-text-primary)":"var(--color-text-muted)"}},D.toolsLabel),de.default.createElement("span",{style:Nl},j(D.calls)),de.default.createElement("span",{style:{...Nl,color:D.errors?"var(--color-error-text)":"var(--color-text-secondary)"}},j(D.errors)),de.default.createElement("span",{style:{...Nl,color:"var(--color-text-muted)"}},j(ov(D.last_seen))),de.default.createElement("span",{onClick:()=>S(G?null:D.key),style:{cursor:"pointer",textAlign:"center"}},de.default.createElement(wa,{kind:"chevron",open:G}))),G&&de.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",padding:"10px 16px 12px"}},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap",marginBottom:8}},de.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},"Tools offered"),de.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},D.transport),de.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8}},de.default.createElement(K2,{onClick:()=>z(D,!0),title:`Offer every tool ${D.name} serves`},"all"),de.default.createElement(K2,{onClick:()=>z(D,!1),disabled:!D.on,title:`Offer none of ${D.name}'s tools`},"none"))),D.tools.length===0?de.default.createElement(Jr,{style:{padding:"10px 0"}},O6(D)):de.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(300px, 1fr))",gap:"6px 14px"}},D.tools.map(E=>de.default.createElement("div",{key:E.name,className:"aa-roster-row",onClick:()=>Y(D,E),style:{display:"grid",gridTemplateColumns:"20px minmax(0, 1fr) 46px 52px",gap:10,alignItems:"center",padding:"6px 8px",borderRadius:8,cursor:D.on?"pointer":"default",opacity:D.on?1:.55}},de.default.createElement(bQ,{on:E.on,dim:!D.on}),de.default.createElement("span",{style:{minWidth:0}},de.default.createElement("span",{style:{display:"block",fontFamily:U,fontSize:12,fontWeight:600,color:E.on?"var(--color-text-primary)":"var(--color-text-secondary)",...q2}},E.name),de.default.createElement("span",{style:{display:"block",fontSize:11,color:"var(--color-text-muted)",...q2}},E.description)),de.default.createElement("span",{style:{...Nl,color:"var(--color-text-secondary)"}},j(E.calls)),de.default.createElement("span",{style:{...Nl,color:E.errors?"var(--color-error-text)":"var(--color-text-muted)"}},j(E.errors?`${E.errors} err`:vT(E.avg_duration_ms)))))),!D.on&&de.default.createElement("div",{style:{marginTop:8,fontSize:12,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Turning ",D.name," on offers these ",D.tools.length," tools to the agent and starts recording traces and metrics for every call.")))}),K.length===0&&de.default.createElement(Jr,{style:{borderTop:"1px solid var(--color-border-light)",padding:"18px 16px"}},p?`no services match "${p}"`:"no MCP services yet"))),de.default.createElement(je,{padding:0,style:{overflow:"hidden"},testId:"tools-card"},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"12px 16px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},de.default.createElement(Ue,null,"Tools"),de.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},He," enabled of ",_e," available"),de.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},de.default.createElement(jn,{selected:!b,onClick:()=>g(null)},"All ",_e),T.map(D=>de.default.createElement(jn,{key:D.source,selected:b===D.source,onClick:()=>g(b===D.source?null:D.source)},D.name," ",D.total)),de.default.createElement(jn,{square:!0,mono:!0,selected:h,onClick:()=>v(!h),style:{marginLeft:4}},h?"[x] enabled only":"[ ] enabled only"))),de.default.createElement(wQ,null,de.default.createElement("div",{style:{display:"grid",gridTemplateColumns:vQ,...xQ}},de.default.createElement("span",null),de.default.createElement("span",null,"Tool"),de.default.createElement("span",null,"Source"),de.default.createElement("span",{style:{textAlign:"right"}},"Calls"),de.default.createElement("span",{style:{textAlign:"right"}},"Errors"),de.default.createElement("span",{style:{textAlign:"right"}},"Avg"),de.default.createElement("span",{style:{textAlign:"right"}},"Last seen"),de.default.createElement("span",{style:{textAlign:"center"},title:"Pause the run for a person to approve each call before the tool runs"},"Approval")),T.map(D=>{let G=k[D.source]!==!0;return de.default.createElement("div",{key:D.source},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"7px 16px",borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",flexWrap:"wrap"}},de.default.createElement("span",{onClick:()=>w({...k,[D.source]:G}),style:{cursor:"pointer",display:"inline-flex",alignItems:"center",gap:10}},de.default.createElement(wa,{kind:"chevron",open:G}),de.default.createElement("span",{style:{fontSize:12,fontWeight:600,color:"var(--color-text-primary)"}},D.name)),de.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},D.meta),de.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:8}},de.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-cell)"}},D.countLabel),D.editable&&de.default.createElement(de.default.Fragment,null,de.default.createElement(K2,{onClick:()=>oe(D,!0)},"all"),de.default.createElement(K2,{onClick:()=>oe(D,!1)},"none")))),G&&D.rows.map(E=>de.default.createElement("div",{key:E.key,className:"aa-roster-row","data-on":E.on?"true":"false","data-testid":`tool-row-${E.key}`,onClick:()=>q(E),style:{display:"grid",gridTemplateColumns:vQ,gap:10,alignItems:"center",padding:"10px 16px",borderTop:"1px solid var(--color-border-light)",cursor:E.editable?"pointer":"default",opacity:E.editable?1:.75}},de.default.createElement(bQ,{on:E.on,dim:!E.editable}),de.default.createElement("div",{style:{minWidth:0}},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},de.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:E.on?"var(--color-text-primary)":"var(--color-text-secondary)"}},E.name),E.source==="mcp"&&de.default.createElement(ke,{size:10},"via ",E.server),E.source==="agent_defined"&&(E.editable?de.default.createElement(ke,{size:10,title:"Generated from the host's schema tools; offered to this agent only while its roster names it"},"from schema"):de.default.createElement(ke,{size:10,title:"Declared by the agent class in code, so the roster reports it rather than selecting it"},"from code")),P&&E.on&&!E.calls&&de.default.createElement(ke,{size:10},"unused")),de.default.createElement("div",{style:{marginTop:2,fontSize:12,lineHeight:"17px",color:"var(--color-text-secondary)",...q2}},E.description)),de.default.createElement("span",null,de.default.createElement(ke,{tone:D_e[E.source]||"muted"},yT[E.source])),de.default.createElement("span",{style:Nl},j(E.calls)),de.default.createElement("span",{style:{...Nl,color:E.errors?"var(--color-error-text)":"var(--color-text-secondary)"}},j(E.errors)),de.default.createElement("span",{style:{...Nl,color:"var(--color-text-secondary)"}},j(vT(E.avg_duration_ms))),de.default.createElement("span",{style:{...Nl,color:"var(--color-text-muted)"}},j(ov(E.last_seen))),de.default.createElement($_e,{tool:E,state:xT(E,Q),onToggle:Me}))))}),T.every(D=>D.rows.length===0)&&de.default.createElement(Jr,{style:{borderTop:"1px solid var(--color-border-light)",padding:"18px 16px"}},p?`no tools match "${p}"`:"nothing enabled yet"))),de.default.createElement(je,{padding:"12px 16px",style:{position:"sticky",bottom:0,zIndex:4,background:"var(--color-surface)",display:"flex",alignItems:"center",gap:12,flexWrap:"wrap"},testId:"roster-action-bar"},de.default.createElement("div",{style:{minWidth:0,display:"flex",flexDirection:"column",gap:3}},de.default.createElement(Ue,{size:11,spacing:"0.05em"},He," tools \xB7 ",le.length," services"),de.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Every enabled tool is traced: calls, arguments, errors and latency land in Traces and roll up into Metrics.")),de.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},I>0&&de.default.createElement(de.default.Fragment,null,de.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-warning-text)"}},I," change",I===1?"":"s"," pending"),de.default.createElement(ce,{variant:"secondary",onClick:fe},"Discard")),de.default.createElement(ce,{variant:o?"primary":"secondary",onClick:n,disabled:a||!o,title:o?"Save this agent":"Nothing to save",style:o?void 0:{background:"var(--color-muted)",color:"var(--color-text-muted)",border:"1px solid transparent",cursor:"default"}},a?"Saving\u2026":"Save Changes")))):de.default.createElement(je,null,de.default.createElement(Jr,null,"loading the roster\u2026"))}var Jt=Z(J());function KD({agentId:e,colors:t}){let[r,n]=(0,Jt.useState)(""),[o,a]=(0,Jt.useState)(""),[i,s]=(0,Jt.useState)(""),[l,u]=(0,Jt.useState)(1),[c,d]=(0,Jt.useState)(null),[p,f]=(0,Jt.useState)(null),[m,y]=(0,Jt.useState)(0);(0,Jt.useEffect)(()=>{let g=new AbortController;d(null),f(null);let h=new URLSearchParams({agent_id:e,rating:r,from:o,to:i,page:l});return fetch(Re(`/api/feedback?${h}`),{signal:g.signal}).then(async v=>{if(!v.ok)throw new Error("Could not load feedback.");return v.json()}).then(d).catch(v=>{v.name!=="AbortError"&&f(v.message)}),()=>g.abort()},[e,r,o,i,l,m]);let b=g=>h=>{g(h.target.value),u(1)};return Jt.default.createElement("section",{"aria-label":"User feedback",style:{color:t.textPrimary,background:t.cardBg,border:`1px solid ${t.cardBorder}`,borderRadius:12,padding:20}},Jt.default.createElement("div",{className:"flex flex-wrap items-center gap-4 mb-4"},Jt.default.createElement("label",null,"Rating ",Jt.default.createElement("select",{value:r,onChange:b(n),style:{color:t.textPrimary,background:t.cardBg}},Jt.default.createElement("option",{value:""},"All ratings"),Jt.default.createElement("option",{value:"positive"},"Thumbs up"),Jt.default.createElement("option",{value:"negative"},"Thumbs down"))),Jt.default.createElement("label",null,"From ",Jt.default.createElement("input",{type:"date",value:o,onChange:b(a),style:{color:t.textPrimary,background:t.cardBg}})),Jt.default.createElement("label",null,"To ",Jt.default.createElement("input",{type:"date",value:i,onChange:b(s),style:{color:t.textPrimary,background:t.cardBg}})),Jt.default.createElement("button",{type:"button",onClick:()=>y(g=>g+1)},"Refresh")),p&&Jt.default.createElement("p",{role:"alert"},p),!c&&!p&&Jt.default.createElement("p",{role:"status"},"Loading feedback\u2026"),c&&Jt.default.createElement(Jt.default.Fragment,null,Jt.default.createElement("p",{className:"mb-4"},c.positive," thumbs up \xB7 ",c.negative," thumbs down \xB7 ",c.positive_percentage==null?"No ratings":`${c.positive_percentage}% positive`," (",c.total," ratings matching filters)"),c.total===0&&Jt.default.createElement("p",null,"No feedback recorded for these filters. Submit feedback from your application after the trace is ingested."),Jt.default.createElement("ul",null,c.feedback.map(g=>Jt.default.createElement("li",{key:g.id,className:"py-4",style:{borderTop:`1px solid ${t.cardBorder}`}},Jt.default.createElement("strong",null,g.rating==="positive"?"\u{1F44D} Thumbs up":"\u{1F44E} Thumbs down"),Jt.default.createElement("span",null," \xB7 ",new Date(g.created_at).toLocaleString()),g.user_reference&&Jt.default.createElement("span",null," \xB7 ",g.user_reference),g.comment&&Jt.default.createElement("p",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere"}},g.comment),Jt.default.createElement("a",{className:"underline",href:Re(`/traces?trace=${encodeURIComponent(g.trace_id)}`)},"Open interaction trace"),g.span_id&&Jt.default.createElement("p",null,"Response span: ",Jt.default.createElement("code",null,g.span_id))))),Jt.default.createElement("div",{className:"flex gap-4 mt-4"},Jt.default.createElement("button",{disabled:l===1,onClick:()=>u(g=>g-1)},"Previous"),Jt.default.createElement("span",null,"Page ",l),Jt.default.createElement("button",{disabled:l*50>=c.total,onClick:()=>u(g=>g+1)},"Next"))))}var L_e=[{id:"config",label:"Configuration"},{id:"instructions",label:"Instructions"},{id:"tools",label:"Tools"},{id:"versions",label:"Versions"},{id:"code",label:"Code"}],CQ=[{id:"traces",label:"Traces"},{id:"metrics",label:"Metrics"},{id:"interactions",label:"Interactions"},{id:"evals",label:"Evals"},{id:"feedback",label:"Feedback"}],z_e=CQ.map(e=>e.id),kQ={success:{light:["#dcfce7","#166534"],dark:["rgba(22,163,74,0.18)","#4ade80"]},warning:{light:["#fef9c3","#854d0e"],dark:["rgba(234,179,8,0.18)","#facc15"]},neutral:{light:["#f3f4f6","#4b5563"],dark:["rgba(255,255,255,0.1)","rgba(255,255,255,0.7)"]},error:{light:["#fee2e2","#991b1b"],dark:["rgba(220,38,38,0.18)","#f87171"]},info:{light:["#dbeafe","#1e40af"],dark:["rgba(59,130,246,0.18)","#60a5fa"]}},B_e={active:"success",draft:"warning",archived:"neutral",failed:"error",trial:"info"};function hd({tone:e="neutral",mono:t=!1,darkMode:r,children:n}){let[o,a]=(kQ[e]||kQ.neutral)[r?"dark":"light"];return Se.default.createElement("span",{style:{background:o,color:a,borderRadius:"999px",padding:"2px 8px",fontSize:"11px",fontWeight:600,fontFamily:t?Pt.mono:void 0,whiteSpace:"nowrap"}},n)}function fa({variant:e="secondary",size:t="md",onClick:r,disabled:n,colors:o,title:a,testId:i,children:s}){let u={padding:t==="sm"?"5px 10px":"7px 14px",borderRadius:"8px",fontSize:"13px",fontWeight:500,cursor:n?"not-allowed":"pointer",transition:"background 0.15s ease, border-color 0.15s ease",whiteSpace:"nowrap"},c={primary:{background:n?o.mutedBg:Qo,color:n?o.textMuted:"#ffffff",border:"1px solid transparent"},secondary:{background:"transparent",color:o.textCell,border:`1px solid ${o.inputBorder}`},danger:{background:"transparent",color:"#dc2626",border:"1px solid rgba(220,38,38,0.4)"}};return Se.default.createElement("button",{type:"button",onClick:r,disabled:n,title:a,"data-testid":i,style:{...u,...c[e]||c.secondary}},s)}function _Q({tabs:e,active:t,onChange:r,colors:n}){return Se.default.createElement("div",{style:{display:"flex",alignItems:"center"}},e.map(o=>{let a=t===o.id;return Se.default.createElement("button",{key:o.id,type:"button",onClick:()=>r(o.id),style:{padding:"10px 12px",marginBottom:"-1px",background:"none",border:"none",borderBottom:`2px solid ${a?Qo:"transparent"}`,color:a?Qo:n.textSecondary,fontSize:"13px",fontWeight:a?600:500,cursor:"pointer",whiteSpace:"nowrap"}},o.label)}))}function V2({agent:e,meta:t,onSave:r,onDelete:n,onRun:o,onDuplicate:a,onRunReport:i,onBack:s,isLoading:l,initialTab:u}){let{darkMode:c}=ut(),d=Ki(c),[p,f]=(0,Se.useState)(u||"config"),[m,y]=(0,Se.useState)({name:e.name||"",description:e.description||"",provider:e.provider||"openai",model:e.model||"gpt-4o-mini",instructions:e.instructions||"",action_prompts:e.actionPrompts||e.action_prompts||[],preset_type:e.presetType||e.preset_type||"terminal",appearance:e.appearance||{},instruction_sets:e.instructionSets||e.instruction_sets||[],tools:e.tools||[],approval_required_tools:e.approvalRequiredTools||e.approval_required_tools||[],mcp_servers:e.mcpServers||e.mcp_servers||[],model_config:e.modelConfig||e.model_config||{temperature:.7},status:e.status||"draft"}),[b,g]=(0,Se.useState)([]),[h,v]=(0,Se.useState)(!1),[x,S]=(0,Se.useState)(""),k=bc([m.provider]);(0,Se.useEffect)(()=>{let B=JSON.stringify(m)!==JSON.stringify({name:e.name||"",description:e.description||"",provider:e.provider||"openai",model:e.model||"gpt-4o-mini",instructions:e.instructions||"",action_prompts:e.actionPrompts||e.action_prompts||[],preset_type:e.presetType||e.preset_type||"terminal",appearance:e.appearance||{},instruction_sets:e.instructionSets||e.instruction_sets||[],tools:e.tools||[],approval_required_tools:e.approvalRequiredTools||e.approval_required_tools||[],mcp_servers:e.mcpServers||e.mcp_servers||[],model_config:e.modelConfig||e.model_config||{temperature:.7},status:e.status||"draft"});v(B)},[m,e]),(0,Se.useEffect)(()=>{p==="versions"?w():p==="code"&&_()},[p]);let w=async()=>{try{let K=await(await fetch(`/api/agents/${e.id}/versions`)).json();g(K.versions)}catch(B){console.error("Failed to load versions:",B)}},_=async()=>{try{let K=await(await fetch(`/api/agents/${e.id}/export`)).json();S(K.code)}catch(B){console.error("Failed to load code preview:",B)}},A=(B,K)=>{y(T=>({...T,[B]:K}))},C=(B,K)=>{y(T=>{let O=T[B]||[],I=O.includes(K)?O.filter(P=>P!==K):[...O,K];return{...T,[B]:I}})},N=()=>{r(m)},L=z_e.includes(p),Q=p==="tools";return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Se.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:"12px"}},Se.default.createElement("button",{type:"button",onClick:s,title:"Back to agents",style:{fontFamily:Pt.mono,fontSize:"13px",color:d.textSecondary,background:"none",border:"none",cursor:"pointer",padding:"4px 2px",marginTop:"10px"}},"<-"),Se.default.createElement(In,{size:44}),Se.default.createElement("div",{style:{flex:1,minWidth:0}},Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},Se.default.createElement("h1",{style:{fontSize:"20px",fontWeight:700,color:d.textPrimary,margin:0}},m.name||"Untitled agent"),Se.default.createElement(hd,{tone:B_e[m.status]||"neutral",darkMode:c},m.status),h&&Se.default.createElement(hd,{tone:"info",darkMode:c},"unsaved")),Se.default.createElement("p",{style:{fontSize:"13px",color:d.textSecondary,margin:"4px 0 0"}},m.description||"No description")),Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexShrink:0}},a&&Se.default.createElement(fa,{variant:"secondary",colors:d,onClick:a},"Duplicate"),Se.default.createElement(fa,{variant:"primary",colors:d,onClick:o},"Run Agent"))),Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"20px",borderBottom:`1px solid ${d.cardBorder}`,overflowX:"auto"}},Se.default.createElement(_Q,{tabs:L_e,active:p,onChange:f,colors:d}),Se.default.createElement("div",{style:{width:"1px",height:"18px",background:d.borderStrong,flexShrink:0}}),Se.default.createElement(_Q,{tabs:CQ,active:p,onChange:f,colors:d})),Q?Se.default.createElement(qD,{agent:e,formData:m,updateField:A,onSave:N,hasChanges:h,isLoading:l}):L?Se.default.createElement("div",null,p==="traces"&&Se.default.createElement(Jp,{agentId:e.id,embedded:!0}),p==="metrics"&&Se.default.createElement(HD,{agent:e,embedded:!0}),p==="interactions"&&Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},i&&Se.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end"}},Se.default.createElement("button",{type:"button",onClick:i,style:{background:"none",border:"none",cursor:"pointer",fontFamily:Pt.mono,fontSize:"11px",color:"#3b82f6"}},"run report ->")),Se.default.createElement($u,{agentId:e.id,embedded:!0})),p==="evals"&&Se.default.createElement(V0,{embedded:!0,agentId:e.id}),p==="feedback"&&Se.default.createElement(KD,{agentId:e.id,colors:d})):Se.default.createElement("div",{style:{background:d.cardBg,border:`1px solid ${d.cardBorder}`,borderRadius:"12px",padding:"20px"}},p==="config"&&Se.default.createElement(U_e,{formData:m,updateField:A,providerModels:k,colors:d,darkMode:c,onDelete:n}),p==="instructions"&&Se.default.createElement(W_e,{formData:m,updateField:A,meta:t,toggleArrayItem:C,colors:d}),p==="versions"&&Se.default.createElement(H_e,{versions:b,agentId:e.id,onRestore:w,colors:d,darkMode:c}),p==="code"&&Se.default.createElement(q_e,{code:x,colors:d})),h&&!Q&&Se.default.createElement("div",{style:{position:"sticky",bottom:"0",display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",background:d.cardBg,border:`1px solid ${d.borderStrong}`,borderRadius:"12px",padding:"10px 14px",boxShadow:"0 4px 16px rgba(0,0,0,0.12)"}},Se.default.createElement("span",{style:{fontSize:"13px",color:d.textSecondary}},"Unsaved changes"),Se.default.createElement("div",{style:{display:"flex",gap:"8px"}},Se.default.createElement(fa,{variant:"primary",size:"sm",colors:d,onClick:N,disabled:l},l?"Saving\u2026":"Save Changes"))))}var Tl=e=>({display:"block",fontSize:"13px",fontWeight:500,color:e.textCell,marginBottom:"6px"}),Fu=e=>({width:"100%",padding:"8px 12px",borderRadius:"8px",border:`1px solid ${e.inputBorder}`,background:e.inputBg,color:e.textPrimary,fontFamily:"inherit",fontSize:"13px"}),F_e=e=>({fontFamily:Pt.mono,fontSize:"11px",fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:e.textSecondary});function U_e({formData:e,updateField:t,providerModels:r,colors:n,darkMode:o,onDelete:a}){return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Agent Name"),Se.default.createElement("input",{type:"text",value:e.name,onChange:i=>t("name",i.target.value),className:"aa-field",style:Fu(n)})),Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Preset Type"),Se.default.createElement("select",{value:e.preset_type,onChange:i=>t("preset_type",i.target.value),className:"aa-field",style:Fu(n)},Object.keys(_m).map(i=>Se.default.createElement("option",{key:i,value:i},i))))),Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Description"),Se.default.createElement("textarea",{value:e.description,onChange:i=>t("description",i.target.value),rows:3,className:"aa-field",style:{...Fu(n),resize:"vertical"}})),Se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Provider"),Se.default.createElement("select",{value:e.provider,onChange:i=>{t("provider",i.target.value),t("model",r[i.target.value][0])},className:"aa-field",style:Fu(n)},Object.keys(r).map(i=>Se.default.createElement("option",{key:i,value:i},i.charAt(0).toUpperCase()+i.slice(1))))),Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Model"),Se.default.createElement(ru,{value:e.model,models:r[e.provider],onChange:i=>t("model",i),className:"aa-field",style:{...Fu(n),fontFamily:Pt.mono}}))),Se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Temperature"," ",Se.default.createElement("span",{style:{fontFamily:Pt.mono,color:n.textSecondary}},e.model_config.temperature)),Se.default.createElement("input",{type:"range",min:"0",max:"1",step:"0.1",value:e.model_config.temperature,onChange:i=>t("model_config",{...e.model_config,temperature:parseFloat(i.target.value)}),style:{width:"100%",accentColor:Qo}})),Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Status"),Se.default.createElement("select",{value:e.status,onChange:i=>t("status",i.target.value),className:"aa-field",style:Fu(n)},Se.default.createElement("option",{value:"draft"},"Draft"),Se.default.createElement("option",{value:"active"},"Active"),Se.default.createElement("option",{value:"archived"},"Archived")))),a&&Se.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",borderTop:`1px solid ${n.cardBorder}`,paddingTop:"16px"}},Se.default.createElement("div",null,Se.default.createElement("div",{style:F_e(n)},"Danger zone"),Se.default.createElement("p",{style:{fontSize:"13px",color:n.textMuted,margin:"4px 0 0"}},"Deleting an agent removes its configuration and version history.")),Se.default.createElement(fa,{variant:"danger",size:"sm",colors:n,onClick:a},"Delete Agent")))}function W_e({formData:e,updateField:t,meta:r,toggleArrayItem:n,colors:o}){let a=e.action_prompts||[],i=(u,c)=>{t("action_prompts",a.map((d,p)=>p===u?{...d,...c}:d))},s=()=>{t("action_prompts",[...a,{name:"",prompt:"",expose_as_tool:!1}])},l=u=>{t("action_prompts",a.filter((c,d)=>d!==u))};return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(o)},"System Instructions"),Se.default.createElement("textarea",{value:e.instructions,onChange:u=>t("instructions",u.target.value),placeholder:"You are a helpful AI assistant...",rows:12,className:"aa-field",style:{...Fu(o),fontFamily:Pt.mono,resize:"vertical"}})),Se.default.createElement("div",null,Se.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"6px"}},Se.default.createElement("label",{style:{...Tl(o),marginBottom:0}},"Action Prompts"),Se.default.createElement(fa,{variant:"secondary",size:"sm",colors:o,onClick:s},"+ Add action")),Se.default.createElement("p",{style:{fontSize:"12px",color:o.textMuted,margin:"0 0 12px"}},"Named actions run with their prompt stacked below the system instructions. The default ",Se.default.createElement("span",{style:{fontFamily:Pt.mono}},"#ask")," action uses the system instructions alone."),a.length>0&&Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},a.map((u,c)=>Se.default.createElement("div",{key:c,style:{border:`1px solid ${o.cardBorder}`,borderRadius:"10px",padding:"12px",display:"flex",flexDirection:"column",gap:"8px"}},Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},Se.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"13px",color:o.textMuted}},"#"),Se.default.createElement("input",{type:"text",value:u.name,onChange:d=>i(c,{name:d.target.value.toLowerCase().replace(/[^a-z0-9_]/g,"_")}),placeholder:"action_name",className:"aa-field",style:{...Fu(o),flex:1,padding:"6px 10px",fontFamily:Pt.mono}}),Se.default.createElement("label",{style:{display:"flex",alignItems:"center",gap:"6px",fontSize:"12px",color:o.textSecondary,whiteSpace:"nowrap"}},Se.default.createElement("input",{type:"checkbox",checked:!!u.expose_as_tool,onChange:d=>i(c,{expose_as_tool:d.target.checked}),style:{accentColor:Qo}}),"Expose as tool"),Se.default.createElement("button",{type:"button",onClick:()=>l(c),title:"Remove action",style:{fontFamily:Pt.mono,fontSize:"12px",color:o.textMuted,background:"none",border:"none",cursor:"pointer",padding:"4px"}},"[x]")),Se.default.createElement("textarea",{value:u.prompt,onChange:d=>i(c,{prompt:d.target.value}),placeholder:"This action's system prompt, applied on top of the base instructions...",rows:4,className:"aa-field",style:{...Fu(o),fontFamily:Pt.mono,resize:"vertical"}}))))),Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(o)},"Instruction Sets"),Se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px"}},r.instructionSets?.map(u=>{let c=e.instruction_sets.includes(u);return Se.default.createElement("button",{key:u,type:"button",onClick:()=>n("instruction_sets",u),style:{padding:"5px 12px",borderRadius:"999px",fontSize:"13px",cursor:"pointer",border:`1px solid ${c?Qo:o.inputBorder}`,background:c?Qo:"transparent",color:c?"#ffffff":o.textCell}},u)}))))}function H_e({versions:e,agentId:t,onRestore:r,colors:n,darkMode:o}){let a=async i=>{if(await Wr({title:"Restore this version?",message:"A new version is created with the restored configuration. The current version stays in the history.",confirmLabel:"Restore"}))try{await fetch(`/api/agents/${t}/restore`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({version_id:i})}),r()}catch(s){console.error("Failed to restore version:",s)}};return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},Se.default.createElement("p",{style:{fontSize:"13px",color:n.textSecondary,margin:0}},"View and restore previous versions of this agent."),e.length>0?Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"10px"}},e.map(i=>{let s=i.is_latest||i.isLatest;return Se.default.createElement("div",{key:i.id,style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"12px",padding:"14px",borderRadius:"10px",border:`1px solid ${s?Qo:n.cardBorder}`,background:s?"rgba(239,68,68,0.06)":"transparent"}},Se.default.createElement("div",{style:{minWidth:0}},Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},Se.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"13px",fontWeight:600,color:n.textPrimary}},"v",i.version_number||i.versionNumber),s&&Se.default.createElement(hd,{tone:"error",darkMode:o},"current")),Se.default.createElement("p",{style:{fontSize:"13px",color:n.textCell,margin:"4px 0 0"}},i.change_summary||i.changeSummary),Se.default.createElement("p",{style:{fontFamily:Pt.mono,fontSize:"11px",color:n.textMuted,margin:"4px 0 0"}},new Date(i.created_at||i.createdAt).toLocaleString())),!s&&Se.default.createElement(fa,{variant:"secondary",size:"sm",colors:n,onClick:()=>a(i.id)},"Restore"))})):Se.default.createElement(K_e,{colors:n,glyph:"[#]",title:"No version history",hint:"Saving a change records a new version."}))}function q_e({code:e,colors:t}){let r=()=>{navigator.clipboard.writeText(e)};return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},Se.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},Se.default.createElement("p",{style:{fontSize:"13px",color:t.textSecondary,margin:0}},"Generated Ruby code for this agent."),Se.default.createElement(fa,{variant:"secondary",size:"sm",colors:t,onClick:r},"Copy")),Se.default.createElement("pre",{style:{padding:"16px",background:"#111827",color:"#e5e7eb",borderRadius:"10px",overflowX:"auto",fontFamily:Pt.mono,fontSize:"12px",lineHeight:1.6,margin:0}},Se.default.createElement("code",null,e||"Loading...")))}function K_e({colors:e,glyph:t,title:r,hint:n}){return Se.default.createElement("div",{style:{textAlign:"center",padding:"40px 20px"}},Se.default.createElement("div",{style:{fontFamily:Pt.mono,fontSize:"20px",color:e.textMuted}},t),Se.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,color:e.textPrimary,marginTop:"10px"}},r),Se.default.createElement("p",{style:{fontSize:"13px",color:e.textMuted,margin:"6px auto 0",maxWidth:"420px"}},n))}var X=Z(J());async function Ph(){let e=window.ACTIVE_AGENT_DASHBOARD?.meta?.upgradeUrl;if(!e)throw new Error("This dashboard has no billing configured.");window.location.href=e}var G2=Z(J());var V_e='[data-aa-secret], meta[name="csrf-token"], input[type="hidden"]';var EQ=Object.freeze({events:500,chars:262144}),G_e=16*1024,Y_e=3;function X_e(e){return{emit:e,maskAllInputs:!0,blockSelector:V_e,slimDOMOptions:"all",sampling:{scroll:150,input:"last"}}}function Z_e(e){return JSON.stringify({kind:"rrweb",timestamp:e.timestamp,data:e})}function J_e(e,t){return`{"sent_at":${Math.floor(t)},"recording_events":[${e.join(",")}]}`}function Q_e(e,t=EQ){let r=0,n=0;for(let o of e){if(n>=t.events||n>0&&r+o.length>t.chars)break;r+=o.length+1,n+=1}return n}function AQ(e){return e>=200&&e<300?"sent":e===403?"off":e===413?"limit":e===429||e>=500?"retry":"failed"}function NQ({contextId:e,loadRecorder:t,fetch:r,now:n=Date.now,timers:o=globalThis,target:a=globalThis,onStateChange:i=()=>{},limits:s=EQ,flushIntervalMs:l=5e3}){let u=[],c=0,d="idle",p=null,f=null,m=null,y=null,b=!1,g=!1,h=null,v=0;function x(K){d!==K&&(d=K,i(K))}function S(){u.length=0,c=0}function k(){f&&f(),f=null,m=null,y!==null&&o.clearInterval(y),y=null,a?.removeEventListener?.("pagehide",L)}function w(K){g=!0,S(),k(),x(K)}function _(K){if(b||g)return;let T=Z_e(K);u.push(T),c+=T.length+1,(u.length>=s.events||c>=s.chars)&&N()}async function A(K,T){let O=J_e(K,n());try{let I=await r(`/api/session_recordings/${encodeURIComponent(p)}/events`,{method:"POST",headers:{"Content-Type":"text/plain"},body:O,keepalive:T&&O.length<=G_e});return AQ(I.status)}catch{return"retry"}}async function C(K){for(;u.length>0&&!g;){let T=u.splice(0,Q_e(u,s)),O=T.reduce((P,j)=>P+j.length+1,0);c-=O;let I=await A(T,K);if(I==="sent"){v=0;continue}if(I!=="retry"){w(I);return}if(v+=1,K||v>=Y_e){v=0,S(),m&&m();return}u.unshift(...T),c+=O;return}}function N({final:K=!1}={}){return p===null||g?Promise.resolve():(h||(h=C(K).finally(()=>{h=null})),h)}function L(){N({final:!0})}async function Q(){if(d!=="idle"||b)return;x("starting");let K;try{K=await r("/api/session_recordings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent_context_id:e})})}catch{b||w("failed");return}if(b)return;if(!K.ok){w(AQ(K.status)==="off"?"off":"failed");return}let T=await K.json().catch(()=>null);if(b)return;if(p=T?.recording?.id??null,p===null){w("failed");return}let O;try{({record:O}=await t())}catch{b||w("failed");return}if(b)return;let I=null;try{I=typeof O=="function"?O(X_e(_)):null}catch{I=null}if(typeof I!="function"){w("failed");return}f=I,m=()=>O.takeFullSnapshot?.(),y=o.setInterval(()=>N(),l),a?.addEventListener?.("pagehide",L),x("recording")}async function B(){b||(b=!0,k(),!g&&(x("stopped"),h&&await h,await N({final:!0})))}return{start:Q,stop:B,flush:N,get state(){return d}}}function VD(e,t){let[r,n]=(0,G2.useState)("idle");return(0,G2.useLayoutEffect)(()=>{if(!e||!t){n("idle");return}let o=!0,a=NQ({contextId:e,loadRecorder:()=>import(t),fetch:(i,s)=>fetch(i,s),target:window,onStateChange:i=>{o&&n(i)}});return a.start(),()=>{o=!1,a.stop()}},[e,t]),r}var R_e={llm:{role:"assistant",label:"LLM"},tool:{role:"tool",label:"Tool"},agent:{role:"developer",label:"Agent"},mcp:{role:"system",label:"MCP"}},eCe=(e,t)=>{let r=R_e[e]||{role:e,label:e};return{...Ln(r.role,t),label:r.label}},GD={complete:"success",failed:"error",running:"info",pending:"warning",cancelled:"neutral",awaiting_input:"warning"},tCe=["Hello, what can you help me with?","Show me a dashboard of last quarter's sales","List the files in the current directory","Explain how this code works"],rCe=["user","assistant","tool"],nCe=1200,oCe=600*1e3,Y2=e=>e?e<1e3?`${e}ms`:`${(e/1e3).toFixed(2)}s`:"-",TQ=e=>{if(!e)return null;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}},YD=e=>{let t=new Map;return(e?.logs||[]).filter(r=>r.eid).forEach(r=>{let n=t.get(r.eid)||{eid:r.eid};r.status==="started"?Object.assign(n,r,{input:r.detail,output:n.output}):Object.assign(n,r,{input:n.input,output:r.detail}),t.set(r.eid,n)}),[...t.values()]},hs=e=>e?.context_id??e?.output_metadata?.context_id??null,G0=e=>e.json().catch(()=>({})),PQ=({open:e,color:t})=>X.default.createElement("svg",{className:`w-3.5 h-3.5 mt-1 flex-shrink-0 transition-transform ${e?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:t}},X.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})),aCe=e=>typeof e=="string"?e:e?.name||e?.key||"?";function OQ({label:e,names:t,colors:r}){return X.default.createElement("div",{className:"flex justify-between gap-3"},X.default.createElement("dt",{className:"shrink-0",style:{color:r.textSecondary}},e),X.default.createElement("dd",{className:"text-right font-mono text-xs break-words min-w-0",style:{color:t.length?r.textPrimary:r.textMuted}},t.length?t.join(", "):"none"))}function iCe({run:e,darkMode:t,colors:r,expanded:n,onToggle:o}){let a=YD(e),i=HC(t);return X.default.createElement("div",{"data-testid":"runner-activity",className:"space-y-2"},a.map(s=>{let l=!!n[s.eid],u=!!(s.input||s.output),c=eCe(s.kind,t);return X.default.createElement("div",{key:s.eid,"data-testid":"runner-activity-event"},X.default.createElement("div",{className:`flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 ${u?"cursor-pointer":""}`,onClick:u?()=>o(s.eid):void 0,title:u?"Click to inspect input/output":void 0,style:l?{background:t?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.03)"}:{}},X.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium flex-shrink-0 mt-0.5",style:{background:c.background,color:c.color,minWidth:"72px",textAlign:"center"}},c.label),X.default.createElement("div",{className:"min-w-0 flex-1"},X.default.createElement("div",{className:"text-sm break-words",style:{color:r.textPrimary}},s.label,s.output&&!l&&X.default.createElement("span",{style:{color:r.textMuted}}," \u201C",s.output.slice(0,160),s.output.length>160?"\u2026":"","\u201D")),X.default.createElement("div",{className:"text-xs mt-0.5 font-mono flex items-center gap-2 flex-wrap",style:{color:r.textMuted}},s.status==="started"?X.default.createElement("span",{className:"animate-pulse",style:{color:"#3b82f6"}},"running\u2026"):s.status==="awaiting"?X.default.createElement("span",{"data-testid":"runner-activity-awaiting",style:{color:"var(--color-warning-text)"}},"waiting for input"):X.default.createElement("span",{style:s.status==="error"?{color:"#ef4444"}:void 0},s.status==="error"?"failed":"\u2713",s.duration_ms!=null&&` ${Y2(s.duration_ms)}`),s.at&&X.default.createElement("span",null,new Date(s.at).toLocaleTimeString()))),u&&X.default.createElement(PQ,{open:l,color:r.textMuted})),l&&X.default.createElement("div",{className:"ml-3 mt-1 mb-2 pl-4 space-y-2 border-l-2",style:{borderColor:c.color+"55"}},s.input&&X.default.createElement("div",null,X.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:r.textMuted}},"Input"),X.default.createElement("pre",{style:{...i,whiteSpace:"pre-wrap",maxHeight:"160px",overflowY:"auto"}},TQ(s.input))),s.output&&X.default.createElement("div",null,X.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:r.textMuted}},s.status==="error"?"Error":s.status==="awaiting"?"Asked":"Result"),X.default.createElement("pre",{style:{...i,whiteSpace:"pre-wrap",maxHeight:"224px",overflowY:"auto",...s.status==="error"?{background:t?"rgba(239,68,68,0.12)":"#fef2f2",color:t?"#fca5a5":"#b91c1c"}:{}}},TQ(s.output)))))}))}function sCe({run:e,darkMode:t,colors:r}){return e?X.default.createElement("div",{className:"flex items-center gap-3 flex-wrap text-xs",style:{color:r.textMuted}},X.default.createElement("span",{"data-testid":"runner-status",style:{display:"inline-flex"}},X.default.createElement(hd,{tone:GD[e.status]||"neutral",darkMode:t},e.status)),e.output_metadata?.model&&X.default.createElement("span",{className:"font-mono",title:"Model that generated this run"},e.output_metadata.provider,"/",e.output_metadata.model),e.duration_ms?X.default.createElement("span",null,Y2(e.duration_ms)):null,e.total_tokens?X.default.createElement("span",null,e.total_tokens," tokens"):null,e.trace_id&&X.default.createElement("a",{href:Re(`/traces?trace=${e.trace_id}`),className:"font-mono hover:underline",style:{color:r.textSecondary},title:`${e.trace_id} \u2014 open in Traces`},"trace:",e.trace_id.slice(0,8)," \u2192")):null}function XD({agent:e,onBack:t,recorderUrl:r=null,freshConversation:n=!1}){let{darkMode:o}=ut(),a=Ki(o),i=e.action_prompts||e.actionPrompts||[],s=["ask",...i.map(ie=>ie.name).filter(Boolean)],[l,u]=(0,X.useState)("ask"),[c,d]=(0,X.useState)(""),[p,f]=(0,X.useState)([]),[m,y]=(0,X.useState)(!1),[b,g]=(0,X.useState)([]),[h,v]=(0,X.useState)(null),[x,S]=(0,X.useState)(null),[k,w]=(0,X.useState)(null),[_,A]=(0,X.useState)([]),[C,N]=(0,X.useState)(!1),[L,Q]=(0,X.useState)(null),[B,K]=(0,X.useState)(null),[T,O]=(0,X.useState)(null),[I,P]=(0,X.useState)(null),[j,M]=(0,X.useState)({}),[W,Y]=(0,X.useState)([]),[z,V]=(0,X.useState)([]),[q,oe]=(0,X.useState)(""),Me=(0,X.useCallback)(async()=>{try{let ie=await fetch("/api/sandboxes?sandbox_type=app_runtime");if(!ie.ok)return;let Ie=await ie.json(),st=b2(Ie.sandboxes);V(st),oe(zt=>w2(zt,st)||(st.length===1?st[0].value:""))}catch{}},[]);(0,X.useEffect)(()=>{Me()},[Me]);let fe=ow(e.tools||[]),[le,R]=(0,X.useState)(null),[te,He]=(0,X.useState)(!1),[_e,D]=(0,X.useState)(null),[G,E]=(0,X.useState)(!1),[$,ee]=(0,X.useState)(!1),[F,me]=(0,X.useState)(null),[et,rt]=(0,X.useState)(""),[ge,ue]=(0,X.useState)(!1),[Fe,Je]=(0,X.useState)(null),ot=(0,X.useRef)(null),Tt=(0,X.useRef)(!n),Lt=(0,X.useRef)(null),Hr=(0,X.useRef)(0),Io=(0,X.useRef)(null),vs=(0,X.useRef)(!1),Mi=(0,X.useRef)(!0),yt=(0,X.useRef)(null),to=(0,X.useRef)([]),xs=(0,X.useRef)(null),bs=(0,X.useRef)(null),ve=(0,X.useRef)(null),nt=(0,X.useRef)(null),pt=VD(h,r),Qt=(x?.messages||[]).filter(ie=>rCe.includes(ie.role));(0,X.useEffect)(()=>{yt.current=B},[B]),(0,X.useEffect)(()=>{to.current=p},[p]),(0,X.useEffect)(()=>{Mi.current=!0,Hn();let ie=TY(window.location.search);return ie&&Tf(ie),()=>{Mi.current=!1,Hr.current+=1,Pl(yt.current),Pl({attachments:to.current}),K(null),f([])}},[e.id]),(0,X.useEffect)(()=>{co(l)},[e.id,l]),(0,X.useEffect)(()=>{Lt.current=h,h?nn(h):(S(null),w(null))},[h]),(0,X.useEffect)(()=>{let ie=bs.current;ie&&(ie.scrollTop=ie.scrollHeight)},[Qt.length,B,L?.logs?.length,L?.input_requests?.length,F,T]),(0,X.useEffect)(()=>{if(!$)return;let ie=Ie=>{nt.current&&!nt.current.contains(Ie.target)&&ee(!1)};return document.addEventListener("mousedown",ie),()=>document.removeEventListener("mousedown",ie)},[$]);let Hn=async()=>{try{let Ie=await(await fetch(`/api/agents/${e.id}/runs?per_page=10`)).json();A(Ie.runs||[])}catch(ie){console.error("Failed to load runs:",ie)}},co=async ie=>{try{let Ie=await fetch(`/api/agents/${e.id}/conversations?action_name=${encodeURIComponent(ie)}`);if(!Ie.ok)throw new Error(`HTTP ${Ie.status}`);let zt=(await Ie.json()).conversations||[];g(zt),v(kn=>kn&&(ot.current===kn||zt.some(ni=>ni.id===kn))?kn:Tt.current?zt[0]?.id??null:null)}catch(Ie){console.error("Failed to load conversations:",Ie),g([])}},nn=async ie=>{try{let Ie=await fetch(`/api/interactions/${ie}`);if(!Ie.ok)throw new Error(Ie.status===404?"Conversation not found":`HTTP ${Ie.status}`);let st=await Ie.json();if(Lt.current!==ie)return;S(st.interaction),w(null)}catch(Ie){if(Lt.current!==ie)return;S(null),w(Ie.message)}},Oa=async()=>{let ie=await fetch(`/api/agents/${e.id}/conversations`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action_name:l})}),Ie=await G0(ie);if(!ie.ok||!Ie.conversation)throw new Error(Ie.error||`Could not start a conversation (HTTP ${ie.status})`);let st=Ie.conversation;return g(zt=>[st,...zt.filter(kn=>kn.id!==st.id)]),ot.current=st.id,v(st.id),st.id},Pa=()=>Lt.current?Promise.resolve(Lt.current):Oa(),ws=ie=>{ot.current=null,u(ie)},po=ie=>{vs.current=ie,N(ie)},Wu=()=>{Io.current?.waiting&&(Io.current=null,po(!1))},Ss=()=>{Wu(),Q(null),P(null),M({}),Y([])},Hu=ie=>{let Ie=ie?Number(ie):null;Ie!==Lt.current&&Ss(),ot.current=Ie,v(Ie),O(null)},ro=async()=>{if(!C)try{await Oa(),w(null),O(null),Ss(),Pl(yt.current),K(null),me(null)}catch(ie){w(ie.message)}},Pl=ie=>{(ie?.attachments||[]).forEach(Ie=>{Ie.url&&Ie.url.startsWith("blob:")&&URL.revokeObjectURL(Ie.url)})},qh=ie=>{let Ie=Array.from(ie||[]).filter(Boolean);Ie.length!==0&&f(st=>[...st,...Ie.map(zt=>({file:zt,filename:zt.name,content_type:zt.type||"application/octet-stream",byte_size:zt.size,kind:WG(zt),url:zt.type&&zt.type.startsWith("image/")?URL.createObjectURL(zt):null}))])},fb=ie=>{f(Ie=>{let st=Ie[ie];return st?.url&&URL.revokeObjectURL(st.url),Ie.filter((zt,kn)=>kn!==ie)})},mb=(ie,Ie)=>{Pl(yt.current),K(null),Hn();let st=hs(ie)??Ie;st&&(st!==Lt.current?(ot.current=st,v(st)):nn(st),co(l))},kA=(ie,Ie)=>{Io.current=null,po(!1),Y([]),mb(ie,Ie)},Qe=(ie,Ie)=>{Io.current={id:ie.id,contextId:hs(ie)??Ie,waiting:!0},mb(ie,Ie),JC()},Ma=(ie,Ie)=>{if(!Mi.current)return;let st=++Hr.current,zt=Date.now(),kn=async()=>{if(Hr.current===st){try{let ni=await fetch(`/api/runs/${ie}`);if(ni.ok){let Do=await ni.json();if(Hr.current!==st)return;Q(Do.run);let ja=gI(Do.run);if(ja==="finished"){kA(Do.run,Ie);return}if(ja==="awaiting"){Qe(Do.run,Ie);return}}}catch{}Date.now()-ztni&&{...ni,status:"failed",error_message:"Timed out waiting for the run to finish."}),P("Timed out waiting for the run to finish."))}};kn()},Kh=async({text:ie,files:Ie,fromComposer:st=!1})=>{let zt=(ie||"").trim();if(!zt&&Ie.length===0||C)return;P(null),O(null),me(null),po(!0),M({}),Y([]),Q({status:"pending",input_prompt:zt,output:"",logs:[],started_at:new Date().toISOString()}),Pl(yt.current),K({content:zt||"(see attached files)",attachments:Ie.map(({file:Do,...ja})=>ja)}),st&&(d(""),f([]));let kn=Lt.current;if(!kn)try{kn=await Oa()}catch(Do){P(`${Do.message} \u2014 running without a pinned conversation.`)}let ni=()=>{st&&(d(zt),f(Ie)),K(null)};try{let Do=new FormData;Do.append("prompt",zt),Do.append("action_name",l),kn&&Do.append("params[context_id]",String(kn)),q&&Do.append("sandbox_id",q),Ie.forEach(({file:Ed})=>Do.append("attachments[]",Ed,Ed.name));let ja=await fetch(`/api/agents/${e.id}/execute`,{method:"POST",body:Do}),ks=await G0(ja);if(ks.code==="sandbox_refused"&&Me(),ja.status===402&&ks.upgrade_required){R(ks.usage),Q(Ed=>({...Ed,status:"failed",error_message:ks.message||"Plan limit reached"})),po(!1),ni();return}if(!ja.ok)throw new Error(ks.error||"Run failed");Ma(ks.run.id,hs(ks.run)??kn)}catch(Do){Q(ja=>({...ja,status:"failed",error_message:Do.message})),po(!1),ni()}},fo=()=>Kh({text:c,files:p,fromComposer:!0}),Vh=(ie,Ie)=>{let st=Io.current;!st||String(st.id)!==String(ie.run_id)||(Y(zt=>[...zt.filter(kn=>kn.request.id!==ie.id),{request:ie,outcome:Ie}]),Io.current={...st,waiting:!1},Ma(st.id,st.contextId))},ya=ie=>{let Ie=gI(ie);Ie==="finished"||vs.current||(P(null),M({}),Y([]),Q(ie),po(!0),Ie==="awaiting"?Qe(ie,hs(ie)):Ma(ie.id,hs(ie)))},Ia=(ie,Ie)=>{ot.current=ie,Ie&&s.includes(Ie)&&Ie!==l&&u(Ie),v(ie)},Tf=async ie=>{try{let Ie=await fetch(`/api/runs/${ie}`);if(!Ie.ok)return;let st=await Ie.json();if(!Mi.current||!st.run||String(st.agent?.id)!==String(e.id))return;let zt=hs(st.run);zt&&Ia(zt,st.run.action_name),ya(st.run)}catch(Ie){console.error("Failed to open the linked run:",Ie)}},Da=ie=>{!ie||!ie.text||Kh({text:ie.text,files:[]})},Gh=ie=>{ie.key==="Enter"&&(ie.metaKey||ie.ctrlKey)&&(ie.preventDefault(),fo())},wd=async(ie,Ie)=>{let st=Lt.current,zt=await fetch(`/api/interactions/${st}/messages/${ie.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:Ie})}),kn=await G0(zt);if(!zt.ok)throw new Error(kn.error||`Could not save the message (HTTP ${zt.status})`);await nn(st)},Sd=async ie=>{let Ie=Lt.current;try{let st=await fetch(`/api/interactions/${Ie}/messages/${ie.id}`,{method:"DELETE"});if(!st.ok){let zt=await G0(st);throw new Error(zt.error||`Could not delete the message (HTTP ${st.status})`)}w(null),await nn(Ie),co(l)}catch(st){w(st.message)}},mo=ie=>{ee(!1),me(ie),rt(""),Je(null)},Ml=async()=>{let ie=et.trim();if(!(!ie||ge)){ue(!0),Je(null);try{let Ie=await Pa(),st=await fetch(`/api/interactions/${Ie}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({role:F,content:ie})}),zt=await G0(st);if(!st.ok)throw new Error(zt.error||`Could not add the message (HTTP ${st.status})`);rt(""),me(null),await nn(Ie),co(l)}catch(Ie){Je(Ie.message)}finally{ue(!1)}}},gb=async ie=>{let Ie=ie;if(hs(ie)==null||ie.status==="awaiting_input")try{let zt=await fetch(`/api/runs/${ie.id}`);zt.ok&&(Ie=(await zt.json()).run)}catch(zt){console.error("Failed to load run details:",zt)}let st=hs(Ie);st?(O(null),st!==Lt.current&&Ss(),Ia(st,Ie.action_name||ie.action_name),ya(Ie)):O({...Ie,output:Ie.output??Ie.output_preview,error_message:Ie.error_message??Ie.error}),xs.current?.scrollIntoView({behavior:"smooth",block:"start"})},Yh=async()=>{He(!0),D(null);try{await Ph({planSlug:"pro"})}catch(ie){D(ie.message),He(!1)}},kd=window.ACTIVE_AGENT_DASHBOARD?.meta?.upgradeUrl,hb=i.find(ie=>ie.name===l)?.prompt,_d=[e.instructions,l==="ask"?null:hb].map(ie=>(ie||"").trim()).filter(Boolean).join(` -`)||x?.instructions||"",Yh=b.slice();h&&!Yh.some(ie=>ie.id===h)&&Yh.unshift({id:h,message_count:Qt.length});let kA=(c.trim().length>0||p.length>0)&&!C,_d=$?.status==="awaiting_input",hb=_d?dh($.input_requests):[],_A=new Set(W.map(({request:ie})=>ie.id)),Xh=$&&!C&&$.status==="failed",Tf=$&&!C&&$.status==="complete"&&!hs($)&&!h,Ml={background:a.cardBg,border:`1px solid ${a.cardBorder}`,borderRadius:"12px"},Cd={borderBottom:`1px solid ${a.cardBorder}`},Zh={padding:"6px 10px",borderRadius:"8px",border:`1px solid ${a.inputBorder}`,background:a.inputBg,color:a.textPrimary,fontSize:"13px",fontFamily:Pt.mono,maxWidth:"260px"},Jh={width:"100%",padding:"10px 12px",borderRadius:"8px",border:`1px solid ${m?Qo:a.inputBorder}`,background:a.inputBg,color:a.textPrimary,fontFamily:"inherit",fontSize:"13px",resize:"vertical"},Hu=jn("system",o),yb=UC(o);return X.default.createElement("div",{className:"grid grid-cols-3 gap-6 h-full"},X.default.createElement("div",{className:"col-span-2 flex flex-col gap-4 min-w-0"},ue&&X.default.createElement("div",{className:"bg-amber-50 border border-amber-200 rounded-xl p-4 flex items-center justify-between gap-4"},X.default.createElement("div",null,X.default.createElement("p",{className:"font-medium text-amber-900"},"Monthly run limit reached"),X.default.createElement("p",{className:"text-sm text-amber-700 mt-0.5"},"You've used ",ue.runs_used," of ",ue.runs_limit," runs on the"," ",ue.plan||"free"," plan. Upgrade to keep running agents."),ke&&X.default.createElement("p",{className:"text-sm text-red-600 mt-1"},ke)),X.default.createElement("div",{className:"flex items-center gap-2 flex-shrink-0"},Sd&&X.default.createElement("a",{href:Sd,className:"px-4 py-2 text-sm text-amber-800 hover:text-amber-900"},"See plans"),X.default.createElement("button",{onClick:Gh,disabled:te,className:"px-4 py-2 text-sm bg-amber-500 text-white rounded-lg hover:bg-amber-600 transition-colors disabled:opacity-50"},te?"Redirecting\u2026":"Upgrade to Pro"))),X.default.createElement("div",{"data-testid":"runner-toolbar",style:Ml,className:"p-4 flex items-center gap-3 flex-wrap"},X.default.createElement(In,{size:40}),X.default.createElement("div",{className:"min-w-0"},X.default.createElement("div",{className:"font-semibold truncate",style:{color:a.textPrimary}},e.name),X.default.createElement("div",{className:"text-xs font-mono",style:{color:a.textSecondary}},e.provider," / ",e.model)),X.default.createElement("div",{className:"flex items-center gap-2 flex-wrap ml-auto"},X.default.createElement("select",{"data-testid":"runner-action-select",value:l,onChange:ie=>ws(ie.target.value),disabled:C,className:"aa-field",style:Zh,title:"Agent action to invoke"},s.map(ie=>X.default.createElement("option",{key:ie,value:ie},"#",ie))),X.default.createElement("select",{"data-testid":"runner-conversation-select",value:h??"",onChange:ie=>Wu(ie.target.value),disabled:C,className:"aa-field",style:Zh,title:"Conversation to continue"},X.default.createElement("option",{value:""},"New conversation on first run"),Yh.map(ie=>X.default.createElement("option",{key:ie.id,value:ie.id},"Conversation #",ie.id," \xB7 ",ie.message_count??0," message",ie.message_count===1?"":"s"))),X.default.createElement(fa,{testId:"runner-new-conversation",variant:"secondary",size:"sm",colors:a,onClick:to,disabled:C,title:"Start an empty conversation for this action"},"+ New conversation"),X.default.createElement(fa,{testId:"runner-back",variant:"secondary",size:"sm",colors:a,onClick:t},"\u2190 Back to editor"))),X.default.createElement("div",{"data-testid":"runner-context",ref:xs,style:Ml,className:"flex flex-col overflow-hidden"},X.default.createElement("div",{className:"px-4 py-3 flex items-center justify-between gap-3 flex-wrap",style:Cd},X.default.createElement("div",{className:"flex items-center gap-2 min-w-0"},X.default.createElement("h3",{className:"font-medium",style:{color:a.textPrimary}},"Context"),x&&X.default.createElement("span",{className:"text-xs font-mono",style:{color:a.textMuted}},"#",x.id," \xB7 ",Qt.length," message",Qt.length===1?"":"s"),pt==="recording"&&X.default.createElement("span",{"data-testid":"runner-recording-notice",className:"text-xs inline-flex items-center gap-1",style:{color:a.textMuted},title:"This view is recorded for the conversation's replay. Field values are masked and keys are left out; the conversation is recorded as shown."},X.default.createElement("span",{"aria-hidden":"true",style:{color:"#ef4444"}},"\u25CF"),"Recording"),pt==="limit"&&X.default.createElement("span",{"data-testid":"runner-recording-stopped",className:"text-xs",style:{color:a.textMuted},title:"This visit reached the size limit for a recording, so the rest of it is not recorded. Open the conversation again to start a new recording."},"Recording stopped")),X.default.createElement("div",{className:"flex items-center gap-3 flex-wrap"},X.default.createElement(nCe,{run:$,darkMode:o,colors:a}),x&&X.default.createElement(fa,{testId:"runner-replay",variant:"secondary",size:"sm",colors:a,onClick:()=>lt(ch("context",x.id)),disabled:C,title:"Replay this conversation: its messages, model calls and tool calls on one timeline"},"Replay"),X.default.createElement("div",{className:"relative",ref:rt},X.default.createElement(fa,{testId:"runner-add-message",variant:"secondary",size:"sm",colors:a,onClick:()=>V(ie=>!ie),disabled:C,title:"Insert a message into the context without running"},"+ Add message"),I&&X.default.createElement("div",{className:"absolute right-0 mt-1 z-10 py-1 rounded-lg shadow-lg",style:{background:a.cardBg,border:`1px solid ${a.borderStrong}`,minWidth:"180px"}},[["user","runner-add-user-message","User message"],["assistant","runner-add-assistant-message","Assistant message"]].map(([ie,Ie,st])=>X.default.createElement("button",{key:ie,type:"button","data-testid":Ie,onClick:()=>fo(ie),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-black/5",style:{color:a.textCell,background:"none",border:"none",cursor:"pointer"}},st)))))),X.default.createElement("div",{ref:bs,className:"p-4 overflow-auto",style:{maxHeight:"60vh"}},X.default.createElement("div",{"data-testid":"runner-system-row",className:"flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 cursor-pointer",onClick:()=>E(ie=>!ie),title:z?"Collapse system instructions":"Show system instructions"},X.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},X.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:Hu.background,color:Hu.color,textAlign:"center"}},Hu.label)),X.default.createElement("div",{className:"min-w-0 flex-1"},kd?z?X.default.createElement("pre",{style:{...yb,whiteSpace:"pre-wrap",maxHeight:"260px",overflowY:"auto"}},kd):X.default.createElement("div",{className:"text-sm truncate",style:{color:a.textSecondary}},kd.split(` -`).find(ie=>ie.trim())||""):X.default.createElement("div",{className:"text-sm",style:{color:a.textMuted}},"No system instructions"),X.default.createElement("div",{className:"text-xs mt-0.5 font-mono",style:{color:a.textMuted}},"read-only \xB7 Edit in the Instructions tab")),X.default.createElement(TQ,{open:z,color:a.textMuted})),_&&X.default.createElement("div",{className:"text-sm mt-3",style:{color:"#dc2626"}},_),Qt.length>0?X.default.createElement("div",{className:"mt-3"},X.default.createElement(ds,{messages:Qt,darkMode:o,testIdPrefix:"runner-message",onUiAction:Da,onEditMessage:bd,onDeleteMessage:wd})):!B&&!N&&!Xh&&X.default.createElement("div",{"data-testid":"runner-context-empty",className:"text-sm text-center py-8",style:{color:a.textMuted}},"No messages yet \u2014 say something below to test the agent as a user."),B&&X.default.createElement("div",{"data-testid":"runner-pending-turn",className:"flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 mt-3"},X.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},X.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:jn("user",o).background,color:jn("user",o).color,textAlign:"center"}},"User")),X.default.createElement("div",{className:"min-w-0 flex-1"},X.default.createElement("div",{className:"text-sm break-words whitespace-pre-wrap",style:{color:a.textPrimary}},B.content),X.default.createElement(WC,{attachments:B.attachments,darkMode:o}))),$&&(C||GD($).length>0)&&X.default.createElement("div",{className:"mt-3 space-y-2"},X.default.createElement(rCe,{run:$,darkMode:o,colors:a,expanded:j,onToggle:ie=>M(Ie=>({...Ie,[ie]:!Ie[ie]}))}),C&&!_d&&X.default.createElement("div",{className:"flex items-center gap-2 text-sm",style:{color:a.textSecondary}},X.default.createElement("span",{className:"animate-pulse"},"\u25CF"),X.default.createElement("span",null,GD($).length>0?"Working\u2026":"Starting run\u2026"))),(hb.length>0||W.length>0)&&X.default.createElement("div",{"data-testid":"runner-input-requests",className:"mt-3 space-y-2"},_d&&X.default.createElement("div",{className:"text-sm",style:{color:a.textSecondary}},"Paused for input: answer to continue this run."),hb.filter(ie=>!_A.has(ie.id)).map(ie=>X.default.createElement(Jp,{key:ie.id,request:ie,showRunLink:!1,onSettled:Kh})),W.map(({request:ie,outcome:Ie})=>X.default.createElement(Jp,{key:ie.id,request:ie,initialOutcome:Ie,showRunLink:!1}))),D&&X.default.createElement("div",{className:"text-xs mt-3",style:{color:"#d97706"}},D),Xh&&$.error_message&&X.default.createElement("div",{className:"mt-3 rounded-lg p-3 text-sm",style:{background:o?"rgba(239,68,68,0.12)":"#fef2f2",color:o?"#fca5a5":"#b91c1c"}},X.default.createElement("div",{className:"font-semibold mb-1"},"Run failed"),X.default.createElement("pre",{className:"whitespace-pre-wrap font-mono text-xs",style:{margin:0}},$.error_message)),Tf&&X.default.createElement("div",{className:"mt-3 rounded-lg p-3 text-sm",style:{background:a.innerBg,color:a.textPrimary}},X.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:a.textMuted}},"Output"),X.default.createElement(Us,{text:$.output||"No output",darkMode:o,onUiAction:Da})),N&&X.default.createElement("div",{"data-testid":"runner-inspected-run",className:"mt-3 rounded-lg p-3",style:{background:a.innerBg,border:`1px solid ${a.cardBorder}`}},X.default.createElement("div",{className:"flex items-center justify-between gap-3 flex-wrap mb-2"},X.default.createElement("div",{className:"flex items-center gap-2 text-xs font-mono",style:{color:a.textMuted}},X.default.createElement("span",{style:{color:a.textPrimary}},"Run #",N.id),X.default.createElement(gd,{tone:VD[N.status]||"neutral",darkMode:o},N.status),N.output_metadata?.model&&X.default.createElement("span",null,N.output_metadata.provider,"/",N.output_metadata.model),N.duration_ms?X.default.createElement("span",null,G2(N.duration_ms)):null,N.trace_id&&X.default.createElement("a",{href:et(`/traces?trace=${N.trace_id}`),className:"hover:underline",style:{color:a.textSecondary}},"trace:",N.trace_id.slice(0,8)," \u2192"),X.default.createElement("span",null,"\xB7 no conversation attached")),X.default.createElement("button",{type:"button",onClick:()=>O(null),className:"text-xs font-mono",style:{color:a.textMuted,background:"none",border:"none",cursor:"pointer"},title:"Close"},"[x]")),(N.input_prompt||N.input_preview)&&X.default.createElement("div",{className:"text-sm mb-2 whitespace-pre-wrap",style:{color:a.textSecondary}},N.input_prompt||N.input_preview),N.error_message?X.default.createElement("pre",{className:"whitespace-pre-wrap font-mono text-xs",style:{margin:0,color:o?"#fca5a5":"#b91c1c"}},N.error_message):X.default.createElement("div",{className:"text-sm",style:{color:a.textPrimary}},X.default.createElement(Us,{text:N.output||"No output",darkMode:o}))),F&&X.default.createElement("div",{className:"mt-3 rounded-lg p-3",style:{border:`1px dashed ${a.borderStrong}`}},X.default.createElement("div",{className:"flex items-center gap-2 mb-2"},X.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:jn(F,o).background,color:jn(F,o).color}},jn(F,o).label),X.default.createElement("span",{className:"text-xs",style:{color:a.textMuted}},"Added to the context without running the agent")),X.default.createElement("textarea",{"data-testid":"runner-inline-composer",value:Qe,onChange:ie=>it(ie.target.value),onKeyDown:ie=>{ie.key==="Escape"&&ce(null),ie.key==="Enter"&&(ie.metaKey||ie.ctrlKey)&&Pl()},placeholder:F==="user"?"What the user said\u2026":"What the assistant replied\u2026",rows:3,autoFocus:!0,className:"aa-field",style:{...Jh,border:`1px solid ${a.inputBorder}`}}),X.default.createElement("div",{className:"flex items-center gap-2 mt-2 flex-wrap"},X.default.createElement(fa,{testId:"runner-inline-submit",variant:"primary",size:"sm",colors:a,onClick:Pl,disabled:me||!Qe.trim()},me?"Adding\u2026":`Add ${F} message`),X.default.createElement(fa,{variant:"secondary",size:"sm",colors:a,onClick:()=>ce(null),disabled:me},"Cancel"),Ue&&X.default.createElement("span",{className:"text-xs",style:{color:"#dc2626"}},Ue))))),X.default.createElement("div",{style:Ml,className:"p-4"},X.default.createElement("div",{onDragOver:ie=>{ie.preventDefault(),m||y(!0)},onDragLeave:()=>y(!1),onDrop:ie=>{ie.preventDefault(),y(!1),C||Hh(ie.dataTransfer?.files)}},X.default.createElement("textarea",{"data-testid":"runner-prompt",value:c,onChange:ie=>d(ie.target.value),onKeyDown:Vh,placeholder:"Message the agent as a user\u2026 (\u2318/Ctrl+Enter to run \xB7 drop files here to attach)",rows:3,disabled:C,className:"aa-field",style:Jh})),X.default.createElement(WC,{attachments:p,darkMode:o,testId:"runner-attachment-chip",onRemove:(ie,Ie)=>pb(Ie),removeTestId:"runner-attachment-remove"}),X.default.createElement("div",{className:"flex items-center justify-between gap-3 flex-wrap mt-3"},X.default.createElement("div",{className:"flex items-center gap-3 flex-wrap"},X.default.createElement("input",{ref:ve,"data-testid":"runner-attach-input",type:"file",multiple:!0,style:{display:"none"},onChange:ie=>{Hh(ie.target.files),ie.target.value=""}}),X.default.createElement(fa,{testId:"runner-attach",variant:"secondary",size:"sm",colors:a,onClick:()=>ve.current?.click(),disabled:C,title:"Attach images, PDFs, or text files to this message"},"\u{1F4CE} Attach files"),X.default.createElement("span",{className:"text-xs",style:{color:a.textMuted}},"Press ",X.default.createElement("kbd",{className:"px-1.5 py-0.5 rounded",style:{background:a.mutedBg,color:a.textSecondary}},"\u2318")," + ",X.default.createElement("kbd",{className:"px-1.5 py-0.5 rounded",style:{background:a.mutedBg,color:a.textSecondary}},"Enter")," to run")),X.default.createElement(fa,{testId:"runner-run",variant:"primary",colors:a,onClick:po,disabled:!kA},C&&_d?X.default.createElement(X.default.Fragment,null,X.default.createElement("span",{style:{fontFamily:Pt.mono}},"[?]")," Waiting for input"):C?X.default.createElement(X.default.Fragment,null,X.default.createElement("span",{className:"animate-spin inline-block",style:{fontFamily:Pt.mono}},"[~]")," Running\u2026"):X.default.createElement(X.default.Fragment,null,X.default.createElement("span",{style:{fontFamily:Pt.mono}},"[>]")," Run"))))),X.default.createElement("div",{className:"space-y-4 min-w-0"},X.default.createElement("div",{style:Ml,className:"p-4"},X.default.createElement("h4",{className:"font-medium mb-3",style:{color:a.textPrimary}},"Configuration"),X.default.createElement("dl",{className:"space-y-2 text-sm"},X.default.createElement("div",{className:"flex justify-between"},X.default.createElement("dt",{style:{color:a.textSecondary}},"Temperature"),X.default.createElement("dd",{style:{color:a.textPrimary}},e.modelConfig?.temperature||e.model_config?.temperature||.7)),X.default.createElement(NQ,{label:"Tools",names:e.tools||[],colors:a}),X.default.createElement(NQ,{label:"MCP",names:(e.mcp_servers||e.mcpServers||[]).map(tCe),colors:a}),X.default.createElement("div",{className:"flex justify-between items-center gap-3"},X.default.createElement("dt",{className:"shrink-0",style:{color:a.textSecondary}},"Checkout"),X.default.createElement("dd",{className:"min-w-0"},X.default.createElement("select",{"data-testid":"runner-checkout",value:q,onChange:ie=>oe(ie.target.value),onFocus:Me,className:"text-xs rounded border px-1 py-0.5 max-w-[12rem]",style:{background:a.cardBg,borderColor:a.cardBorder,color:a.textPrimary}},X.default.createElement("option",{value:""},"None"),L.map(ie=>X.default.createElement("option",{key:ie.value,value:ie.value},ie.label))))),ge&&!q&&X.default.createElement("p",{className:"text-xs","data-testid":"runner-checkout-hint",style:{color:a.textMuted}},L.length?"Choose a checkout: the terminal, filesystem, edit and database tools act in it.":"The terminal, filesystem, edit and database tools act in a checkout. Boot one from a project's page, then choose it here."),X.default.createElement("div",{className:"flex justify-between items-center"},X.default.createElement("dt",{style:{color:a.textSecondary}},"Status"),X.default.createElement("dd",null,X.default.createElement(gd,{tone:e.status==="active"?"success":"neutral",darkMode:o},e.status)))),e.instructions&&X.default.createElement("div",{className:"mt-3 pt-3",style:{borderTop:`1px solid ${a.cardBorder}`}},X.default.createElement("div",{className:"text-xs mb-1.5",style:{color:a.textSecondary}},"System Instructions"),X.default.createElement("p",{className:"text-xs whitespace-pre-wrap max-h-44 overflow-y-auto font-mono leading-relaxed",style:{color:a.textCell}},e.instructions))),X.default.createElement("div",{style:Ml,className:"overflow-hidden"},X.default.createElement("div",{className:"px-4 py-3",style:Cd},X.default.createElement("h4",{className:"font-medium",style:{color:a.textPrimary}},"Recent Runs")),X.default.createElement("div",{className:"max-h-64 overflow-auto"},k.length>0?X.default.createElement("div",null,k.map(ie=>X.default.createElement("div",{key:ie.id,"data-testid":"runner-recent-run",className:"px-4 py-3 cursor-pointer hover:bg-black/5",style:{borderBottom:`1px solid ${a.cardBorder}`},onClick:()=>mb(ie),title:hs(ie)?"Open this run\u2019s conversation":"Show this run\u2019s output"},X.default.createElement("div",{className:"flex items-center justify-between mb-1"},X.default.createElement(gd,{tone:VD[ie.status]||"neutral",darkMode:o},ie.status),X.default.createElement("span",{className:"text-xs",style:{color:a.textMuted}},G2(ie.duration_ms))),X.default.createElement("p",{className:"text-sm truncate",style:{color:a.textCell}},ie.input_preview||ie.input_prompt?.substring(0,50)),X.default.createElement("p",{className:"text-xs mt-1 flex items-center gap-2 flex-wrap",style:{color:a.textMuted}},ie.model&&X.default.createElement("span",{className:"px-1.5 py-0.5 rounded font-mono",style:{background:a.mutedBg,color:a.textSecondary}},ie.model),hs(ie)&&X.default.createElement("span",{className:"font-mono"},"#",hs(ie)),X.default.createElement("span",null,new Date(ie.created_at).toLocaleString()))))):X.default.createElement("div",{className:"px-4 py-8 text-center text-sm",style:{color:a.textMuted}},"No runs yet"))),X.default.createElement("div",{style:Ml,className:"p-4"},X.default.createElement("h4",{className:"font-medium mb-3",style:{color:a.textPrimary}},"Example Prompts"),X.default.createElement("div",{className:"space-y-2"},J_e.map(ie=>X.default.createElement("button",{key:ie,type:"button","data-testid":"runner-example-prompt",onClick:()=>d(ie),className:"w-full text-left px-3 py-2 text-sm rounded-lg transition-colors hover:bg-black/5",style:{color:a.textCell,border:`1px solid ${a.cardBorder}`,background:"transparent",cursor:"pointer"}},ie))))))}var Ge=Z(J()),Y2=e=>new Date(`${e}T00:00:00`),oCe=[{value:7,label:"7 days"},{value:14,label:"14 days"},{value:30,label:"30 days"},{value:90,label:"90 days"}];function XD({onSelectAgent:e}){let[t,r]=(0,Ge.useState)(null),[n,o]=(0,Ge.useState)(!0),[a,i]=(0,Ge.useState)(30);(0,Ge.useEffect)(()=>{s()},[a]);let s=async()=>{o(!0);try{let f=await(await fetch(`/api/analytics?days=${a}`)).json();r(f)}catch(p){console.error("Failed to load analytics:",p)}finally{o(!1)}},l=p=>p?p>=1e6?`${(p/1e6).toFixed(1)}M`:p>=1e3?`${(p/1e3).toFixed(1)}K`:p.toString():"0",u=p=>p?p<1e3?`${p}ms`:`${(p/1e3).toFixed(2)}s`:"-";if(n&&!t)return Ge.default.createElement("div",{className:"flex items-center justify-center h-64"},Ge.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let c=t?.charts?.runs_by_day?.length>0?Math.max(...t.charts.runs_by_day.map(p=>p.count)):1,d=t?.charts?.tokens_by_day?.length>0?Math.max(...t.charts.tokens_by_day.map(p=>p.tokens)):1;return Ge.default.createElement("div",{className:"space-y-6"},Ge.default.createElement("div",{className:"flex items-center justify-between"},Ge.default.createElement("div",null,Ge.default.createElement("h1",{className:"text-2xl font-bold text-gray-900"},"Analytics Dashboard"),Ge.default.createElement("p",{className:"text-sm text-gray-500"},"Overview of all your agents' performance")),Ge.default.createElement("select",{value:a,onChange:p=>i(Number(p.target.value)),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},oCe.map(p=>Ge.default.createElement("option",{key:p.value,value:p.value},"Last ",p.label)))),Ge.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-5 gap-4"},Ge.default.createElement(G0,{title:"Total Agents",value:t?.summary?.total_agents||0,subtitle:`${t?.summary?.active_agents||0} active`,color:"rose"}),Ge.default.createElement(G0,{title:"Total Runs",value:t?.summary?.total_runs||0,subtitle:`${t?.period_days} day period`,color:"blue"}),Ge.default.createElement(G0,{title:"Success Rate",value:`${t?.summary?.success_rate||0}%`,subtitle:`${t?.summary?.completed_runs||0} completed`,color:"green"}),Ge.default.createElement(G0,{title:"Avg Duration",value:u(t?.summary?.avg_duration_ms),subtitle:"per run",color:"purple"}),Ge.default.createElement(G0,{title:"Total Tokens",value:l(t?.summary?.total_tokens),subtitle:`${l(t?.summary?.avg_tokens_per_run)}/run avg`,color:"amber"})),Ge.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6"},Ge.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Runs Over Time"),t?.charts?.runs_by_day?.length>0?Ge.default.createElement("div",{className:"h-48"},Ge.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},t.charts.runs_by_day.map((p,f)=>Ge.default.createElement("div",{key:p.date,className:"flex-1 flex flex-col items-center group"},Ge.default.createElement("div",{className:"relative w-full"},Ge.default.createElement("div",{className:"w-full bg-red-500 rounded-t transition-all hover:bg-red-600",style:{height:`${p.count/c*150}px`,minHeight:p.count>0?"4px":"0"}}),Ge.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap z-10"},p.count," runs"))))),Ge.default.createElement("div",{className:"flex justify-between mt-2 text-xs text-gray-400"},Ge.default.createElement("span",null,t.charts.runs_by_day[0]?.date&&Y2(t.charts.runs_by_day[0].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})),Ge.default.createElement("span",null,t.charts.runs_by_day[t.charts.runs_by_day.length-1]?.date&&Y2(t.charts.runs_by_day[t.charts.runs_by_day.length-1].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))):Ge.default.createElement("div",{className:"h-48 flex items-center justify-center text-gray-400"},"No runs in this period")),Ge.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Token Usage Over Time"),t?.charts?.tokens_by_day?.length>0?Ge.default.createElement("div",{className:"h-48"},Ge.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},t.charts.tokens_by_day.map((p,f)=>Ge.default.createElement("div",{key:p.date,className:"flex-1 flex flex-col items-center group"},Ge.default.createElement("div",{className:"relative w-full"},Ge.default.createElement("div",{className:"w-full bg-purple-500 rounded-t transition-all hover:bg-purple-600",style:{height:`${p.tokens/d*150}px`,minHeight:p.tokens>0?"4px":"0"}}),Ge.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap z-10"},l(p.tokens)," tokens"))))),Ge.default.createElement("div",{className:"flex justify-between mt-2 text-xs text-gray-400"},Ge.default.createElement("span",null,t.charts.tokens_by_day[0]?.date&&Y2(t.charts.tokens_by_day[0].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})),Ge.default.createElement("span",null,t.charts.tokens_by_day[t.charts.tokens_by_day.length-1]?.date&&Y2(t.charts.tokens_by_day[t.charts.tokens_by_day.length-1].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))):Ge.default.createElement("div",{className:"h-48 flex items-center justify-center text-gray-400"},"No token usage in this period"))),Ge.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6"},Ge.default.createElement("div",{className:"lg:col-span-2 bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Top Agents"),t?.top_agents?.length>0?Ge.default.createElement("div",{className:"space-y-3"},t.top_agents.map((p,f)=>Ge.default.createElement("div",{key:p.id,onClick:()=>e?.(p),className:"flex items-center space-x-4 p-3 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors"},Ge.default.createElement("div",{className:"w-8 h-8 rounded-full bg-red-100 flex items-center justify-center text-red-600 font-semibold"},f+1),Ge.default.createElement("div",{className:"flex-1 min-w-0"},Ge.default.createElement("p",{className:"font-medium text-gray-900 truncate"},p.name),Ge.default.createElement("p",{className:"text-sm text-gray-500"},p.run_count," runs")),Ge.default.createElement("div",{className:"text-right"},Ge.default.createElement("p",{className:"font-medium text-gray-900"},l(p.total_tokens)),Ge.default.createElement("p",{className:"text-xs text-gray-500"},"tokens"))))):Ge.default.createElement("div",{className:"py-8 text-center text-gray-400"},"No agent activity yet")),Ge.default.createElement("div",{className:"space-y-6"},Ge.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"By Provider"),Object.keys(t?.provider_breakdown||{}).length>0?Ge.default.createElement("div",{className:"space-y-3"},Object.entries(t.provider_breakdown).map(([p,f])=>{let m=t?.summary?.total_runs||1,y=(f/m*100).toFixed(1);return Ge.default.createElement("div",{key:p},Ge.default.createElement("div",{className:"flex justify-between text-sm mb-1"},Ge.default.createElement("span",{className:"capitalize text-gray-600"},p),Ge.default.createElement("span",{className:"text-gray-900 font-medium"},f)),Ge.default.createElement("div",{className:"h-2 bg-gray-100 rounded-full overflow-hidden"},Ge.default.createElement("div",{className:"h-full bg-blue-500 rounded-full",style:{width:`${y}%`}})))})):Ge.default.createElement("div",{className:"py-4 text-center text-gray-400 text-sm"},"No data")),Ge.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Token Usage"),Ge.default.createElement("div",{className:"space-y-4"},Ge.default.createElement("div",{className:"flex justify-between items-center"},Ge.default.createElement("span",{className:"text-sm text-gray-500"},"Input Tokens"),Ge.default.createElement("span",{className:"font-medium text-gray-900"},l(t?.summary?.total_input_tokens))),Ge.default.createElement("div",{className:"flex justify-between items-center"},Ge.default.createElement("span",{className:"text-sm text-gray-500"},"Output Tokens"),Ge.default.createElement("span",{className:"font-medium text-gray-900"},l(t?.summary?.total_output_tokens))),Ge.default.createElement("div",{className:"pt-2 border-t border-gray-100"},Ge.default.createElement("div",{className:"flex justify-between items-center"},Ge.default.createElement("span",{className:"text-sm font-medium text-gray-700"},"Total"),Ge.default.createElement("span",{className:"font-bold text-gray-900"},l(t?.summary?.total_tokens)))))))))}function G0({title:e,value:t,subtitle:r,color:n}){return Ge.default.createElement("div",{className:`bg-white rounded-xl border border-gray-200 border-l-4 ${{rose:"border-l-red-500",blue:"border-l-blue-500",green:"border-l-green-500",purple:"border-l-purple-500",amber:"border-l-amber-500"}[n]} p-4`},Ge.default.createElement("p",{className:"text-sm text-gray-500"},e),Ge.default.createElement("p",{className:"text-2xl font-bold text-gray-900 mt-1"},t),r&&Ge.default.createElement("p",{className:"text-xs text-gray-400 mt-1"},r))}var ne=Z(J());function ZD({agent:e,onBack:t}){let{timeWindow:r}=vl(),[n,o]=(0,ne.useState)([]),[a,i]=(0,ne.useState)([]),[s,l]=(0,ne.useState)(null),[u,c]=(0,ne.useState)(null),[d,p]=(0,ne.useState)([]),[f,m]=(0,ne.useState)("run"),[y,b]=(0,ne.useState)(!1),[g,h]=(0,ne.useState)(!1),v=(0,ne.useRef)(!1),x=(0,ne.useRef)(!1),[S,_]=(0,ne.useState)("recent"),[w,k]=(0,ne.useState)({}),[A,C]=(0,ne.useState)(!0),[T,$]=(0,ne.useState)(1),[Q,B]=(0,ne.useState)(!0),[K,N]=(0,ne.useState)(""),[O,D]=(0,ne.useState)(""),[P,j]=(0,ne.useState)("recent"),M=(0,ne.useRef)(null),W=et(`/agents/${e.id}/interactions`);(0,ne.useEffect)(()=>{Y()},[e.id,T,K,O,P,r.minutes]),(0,ne.useEffect)(()=>{$(1)},[r.minutes]),(0,ne.useEffect)(()=>{fetch(`/api/interactions?agent_id=${e.id}`).then(z=>z.json()).then(z=>i(z.interactions||[])).catch(()=>{}).finally(()=>h(!0))},[e.id]),(0,ne.useEffect)(()=>{let z=()=>{let E=Qn(),I=E.match(/\/interactions\/runs\/(\d+)/),V=E.match(/\/interactions\/sessions\/(\d+)/);if(I)m("run"),c(null),G(parseInt(I[1],10),{updateUrl:!1});else if(V)m("all"),c({id:parseInt(V[1],10)});else if(E.endsWith("/interactions/sessions")||E.endsWith("/interactions/all"))E.endsWith("/all")&&window.history.replaceState({},"",E.replace(/\/all$/,"/sessions")),m("all"),c(null);else{v.current=!1,l(null),c(null),p([]);return}v.current=!0};return z(),window.addEventListener("popstate",z),()=>window.removeEventListener("popstate",z)},[e.id]),(0,ne.useEffect)(()=>{v.current||x.current||!y||!g||m(n.length===0&&a.length>0?"all":"run")},[y,g,n.length,a.length]);let Y=async()=>{C(!0);try{let z=new URLSearchParams({page:T.toString(),per_page:"20",minutes:String(r.minutes)});K&&z.append("status",K),O&&z.append("source",O),P!=="recent"&&z.append("sort",P);let I=await(await fetch(`/api/agents/${e.id}/runs?${z}`)).json();o(T===1?I.runs:V=>[...V,...I.runs]),B(I.runs.length===20)}catch(z){console.error("Failed to load runs:",z)}finally{C(!1),b(!0)}},L=z=>{window.location.pathname!==z&&window.history.pushState({},"",z)},G=async(z,{updateUrl:E=!0}={})=>{try{let V=await(await fetch(`/api/runs/${z}`)).json();l(V.run),p(V.messages||[]),m("run"),c(null),E&&L(`${W}/runs/${z}`)}catch(I){console.error("Failed to load run details:",I)}},q=z=>{if(z.source==="reported"){let E=z.trace_id||String(z.id).replace(/^trace-/,"");window.history.pushState(window.history.state,"",et(`/traces/${E}`)),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:et(`/traces/${E}`)}}));return}G(z.record_id||z.id)},oe=()=>{l(null),c(null),p([]),m("run"),L(W)},Me=z=>{m("all"),z?(c({id:z.id,name:z.display_name}),L(`${W}/sessions/${z.id}`)):(c(null),L(`${W}/sessions`))},ge=z=>{x.current=!0,m(z),L(z==="all"?u?`${W}/sessions/${u.id}`:`${W}/sessions`:s?`${W}/runs/${s.id}`:W)},ue=u?u.name||a.find(z=>z.id===u.id)?.display_name||`Session #${u.id}`:null,R=()=>{let z=new Map;n.forEach(V=>{let F=`${V.model||"unknown"}|${V.instructions_digest||"none"}`;z.has(F)||z.set(F,{key:F,model:V.model,instructionsDigest:V.instructions_digest,instructionsVersion:V.instructions_version,instructionsCodename:V.instructions_codename,instructionsPreview:V.instructions_preview,runs:[]}),z.get(F).runs.push(V)});let E=[...z.values()].map(V=>({...V,count:V.runs.length,completed:V.runs.filter(F=>F.status==="complete").length,failed:V.runs.filter(F=>F.status==="failed").length,totalTokens:V.runs.reduce((F,ce)=>F+(ce.tokens||0),0),avgTokens:V.runs.reduce((F,ce)=>F+(ce.tokens||0),0)/V.runs.length,avgDuration:V.runs.reduce((F,ce)=>F+(ce.duration_ms||0),0)/V.runs.length,latest:V.runs[0],sortedRuns:[...V.runs].sort((F,ce)=>(ce.duration_ms||0)-(F.duration_ms||0))}));E.sort((V,F)=>S==="longest"?F.avgDuration-V.avgDuration:new Date(F.latest.created_at)-new Date(V.latest.created_at));let I={runs:n.length,completed:n.filter(V=>V.status==="complete").length,tokens:n.reduce((V,F)=>V+(F.tokens||0),0),avgDuration:n.length?n.reduce((V,F)=>V+(F.duration_ms||0),0)/n.length:0,models:[...new Set(n.map(V=>V.model).filter(Boolean))]};return{cohorts:E,totals:I}},te=z=>{switch(z){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"}},Be=z=>z?z<1e3?`${z}ms`:z<6e4?`${(z/1e3).toFixed(1)}s`:`${Math.floor(z/6e4)}m ${Math.floor(z%6e4/1e3)}s`:"-",ke=z=>z==null?"\u2014":z===0?"$0":z<.01?`$${z.toFixed(4)}`:`$${z.toFixed(2)}`,ee=z=>{let E=new Date(z),V=new Date-E,F=Math.floor(V/6e4),ce=Math.floor(V/36e5),Qe=Math.floor(V/864e5);return F<1?"Just now":F<60?`${F}m ago`:ce<24?`${ce}h ago`:Qe<7?`${Qe}d ago`:E.toLocaleDateString()};return ne.default.createElement("div",{className:"flex h-full"},ne.default.createElement("div",{className:"w-80 border-r border-gray-200 flex flex-col bg-white"},ne.default.createElement("div",{className:"p-4 border-b border-gray-200"},ne.default.createElement("div",{className:"flex items-center space-x-3 mb-4"},ne.default.createElement("button",{onClick:t,className:"p-1 text-gray-400 hover:text-gray-600 transition-colors"},ne.default.createElement("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ne.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),ne.default.createElement("div",null,ne.default.createElement("h2",{className:"font-semibold text-gray-900"},"Agent Interactions"),ne.default.createElement("p",{className:"text-sm text-gray-500"},e.name))),ne.default.createElement("div",{className:"mb-2"},ne.default.createElement(xl,{compact:!0})),ne.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1 mb-2 text-sm"},[{value:"",label:"All"},{value:"dashboard",label:"Dashboard"},{value:"reported",label:"Reported"}].map(z=>ne.default.createElement("button",{key:z.value||"all",onClick:()=>{D(z.value),$(1)},className:`flex-1 px-2 py-1 rounded-md transition-colors ${O===z.value?"bg-white shadow text-gray-900":"text-gray-600"}`,title:z.value==="dashboard"?"Executions started from this dashboard":z.value==="reported"?"Executions reported by your app via telemetry":"Every execution, however it started"},z.label))),ne.default.createElement("select",{value:K,onChange:z=>{N(z.target.value),$(1)},className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},ne.default.createElement("option",{value:""},"All statuses"),ne.default.createElement("option",{value:"complete"},"Completed"),ne.default.createElement("option",{value:"failed"},"Failed"),ne.default.createElement("option",{value:"running"},"Running"),ne.default.createElement("option",{value:"cancelled"},"Cancelled")),ne.default.createElement("select",{value:P,onChange:z=>{j(z.target.value),$(1)},className:"w-full mt-2 px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500",title:"Rank these executions"},ne.default.createElement("option",{value:"recent"},"Most recent"),ne.default.createElement("option",{value:"longest"},"Longest running"),ne.default.createElement("option",{value:"cost"},"Highest cost"),ne.default.createElement("option",{value:"tokens"},"Most tokens"))),ne.default.createElement("div",{className:"flex-1 overflow-auto"},A&&n.length===0?ne.default.createElement("div",{className:"flex items-center justify-center h-32"},ne.default.createElement("div",{className:"animate-spin rounded-full h-6 w-6 border-b-2 border-red-500"})):n.length>0?ne.default.createElement(ne.default.Fragment,null,n.map(z=>{let E=z.source==="reported";return ne.default.createElement("div",{key:z.id,onClick:()=>q(z),title:E?"Reported by your app \u2014 opens its trace":"Started from this dashboard",className:`p-4 border-b border-gray-100 cursor-pointer transition-colors ${!E&&s?.id===z.id?"bg-red-50 border-l-4 border-l-red-500":"hover:bg-gray-50"}`},ne.default.createElement("div",{className:"flex items-center justify-between mb-2 gap-2"},ne.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${te(z.status)}`},z.status),ne.default.createElement("div",{className:"flex items-center gap-2"},ne.default.createElement("span",{className:`px-1.5 py-0.5 rounded text-[10px] uppercase tracking-wide ${E?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-600"}`},E?"reported":"dashboard"),ne.default.createElement("span",{className:"text-xs text-gray-400"},ee(z.created_at||z.occurred_at)),!E&&ne.default.createElement(sd,{kind:"run",id:z.id,title:"Replay this run"}))),ne.default.createElement("p",{className:"text-sm text-gray-700 truncate"},z.input_preview||z.input_prompt?.substring(0,60)||(E?`${z.action_name||"execution"} \xB7 trace ${String(z.trace_id||"").slice(0,8)}`:"No input")),ne.default.createElement("div",{className:"flex items-center space-x-3 mt-2 text-xs text-gray-400 flex-wrap gap-y-1"},z.model&&ne.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},z.model),ne.default.createElement("span",{className:P==="longest"?"text-gray-700 font-medium":void 0},Be(z.duration_ms)),!!z.tokens&&ne.default.createElement("span",{className:P==="tokens"?"text-gray-700 font-medium":void 0},z.tokens," tokens"),z.cost!=null&&ne.default.createElement("span",{className:P==="cost"?"text-gray-700 font-medium":void 0,title:"Estimated from token counts at this model's published rates"},ke(z.cost))))}),Q&&ne.default.createElement("button",{onClick:()=>$(z=>z+1),disabled:A,className:"w-full py-3 text-sm text-red-600 hover:bg-gray-50 transition-colors"},A?"Loading...":"Load More")):ne.default.createElement("div",{className:"p-8 text-center text-gray-400"},ne.default.createElement("svg",{className:"w-12 h-12 mx-auto mb-3 text-gray-300",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ne.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"})),ne.default.createElement("p",null,"No conversations yet")))),ne.default.createElement("div",{className:"flex-1 flex flex-col bg-gray-50"},ne.default.createElement("div",{className:"px-4 py-2 bg-white border-b border-gray-100 flex items-center gap-1.5 text-xs text-gray-500"},ne.default.createElement("button",{onClick:t,className:"hover:text-gray-900 hover:underline transition-colors"},e.name),ne.default.createElement("span",{className:"text-gray-300"},"/"),f==="all"||s?ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("button",{onClick:oe,className:"hover:text-gray-900 hover:underline transition-colors"},"Interactions"),ne.default.createElement("span",{className:"text-gray-300"},"/"),f==="all"?u?ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("button",{onClick:()=>Me(null),className:"hover:text-gray-900 hover:underline transition-colors"},"Sessions"),ne.default.createElement("span",{className:"text-gray-300"},"/"),ne.default.createElement("span",{className:"text-gray-900 font-medium"},ue)):ne.default.createElement("span",{className:"text-gray-900 font-medium"},"Sessions"):ne.default.createElement("span",{className:"text-gray-900 font-medium"},"Run #",s.id)):ne.default.createElement("span",{className:"text-gray-900 font-medium"},"Interactions")),ne.default.createElement("div",{className:"p-3 bg-white border-b border-gray-200 flex items-center justify-between"},ne.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1"},ne.default.createElement("button",{onClick:()=>ge("run"),className:`px-3 py-1 text-sm rounded-md transition-colors ${f==="run"?"bg-white shadow text-gray-900":"text-gray-600"}`},"Selected run"),ne.default.createElement("button",{onClick:()=>ge("all"),className:`px-3 py-1 text-sm rounded-md transition-colors ${f==="all"?"bg-white shadow text-gray-900":"text-gray-600"}`},"Sessions")),f==="run"&&s&&ne.default.createElement("span",{className:`px-3 py-1 rounded-full text-sm font-medium ${te(s.status)}`},s.status)),f==="all"?ne.default.createElement("div",{className:"flex-1 overflow-auto p-4 space-y-4"},(()=>{let{totals:z}=R();return ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4 space-y-3"},ne.default.createElement("div",{className:"flex items-center gap-3"},ne.default.createElement(In,{size:40}),ne.default.createElement("div",null,ne.default.createElement("h3",{className:"font-semibold text-gray-900"},e.name),ne.default.createElement("p",{className:"text-xs text-gray-500"},u?`${ue} \u2014 one persisted interaction stream`:"Sessions group this agent\u2019s runs into persisted interaction streams"))),ne.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3"},ne.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Runs"),ne.default.createElement("p",{className:"text-lg font-bold text-gray-900"},z.runs)),ne.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Success"),ne.default.createElement("p",{className:"text-lg font-bold text-gray-900"},z.runs?Math.round(z.completed/z.runs*100):0,"%")),ne.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Avg Duration"),ne.default.createElement("p",{className:"text-lg font-bold text-gray-900"},Be(Math.round(z.avgDuration)))),ne.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Tokens"),ne.default.createElement("p",{className:"text-lg font-bold text-gray-900"},z.tokens.toLocaleString()))))})(),ne.default.createElement(ju,{agentId:e.id,embedded:!0,selectedSessionId:u?.id??null,onSelectSession:Me})):s?ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("div",{className:"p-4 bg-white border-b border-gray-200"},ne.default.createElement("div",{className:"flex items-center space-x-3"},ne.default.createElement(In,{size:40}),ne.default.createElement("div",null,ne.default.createElement("h3",{className:"font-medium text-gray-900"},e.name," \u2014 Run #",s.id),ne.default.createElement("p",{className:"text-xs text-gray-500"},new Date(s.created_at).toLocaleString())))),ne.default.createElement("div",{ref:M,className:"flex-1 overflow-auto p-6"},ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 shadow-sm p-4"},d.length>0?ne.default.createElement(ds,{messages:d,darkMode:!1}):ne.default.createElement(ds,{darkMode:!1,messages:[{id:`run-${s.id}-input`,role:"user",content:s.input_prompt||s.input_preview,created_at:s.created_at},{id:`run-${s.id}-output`,role:"assistant",content:s.error_message||s.output||s.output_preview||"No response",created_at:s.completed_at||s.created_at}]}))),ne.default.createElement("div",{className:"p-4 bg-white border-t border-gray-200"},ne.default.createElement("div",{className:"flex items-center justify-center space-x-8 text-sm text-gray-500"},ne.default.createElement("span",null,"Duration: ",Be(s.duration_ms)),s.total_tokens&&ne.default.createElement("span",null,"Tokens: ",s.total_tokens),s.input_tokens&&s.output_tokens&&ne.default.createElement("span",null,"Input: ",s.input_tokens," / Output: ",s.output_tokens),s.trace_id&&ne.default.createElement("a",{href:et(`/traces?trace=${s.trace_id}`),className:"font-mono text-xs text-blue-500 hover:underline",title:`${s.trace_id} \u2014 open in Traces`},"trace:",s.trace_id.slice(0,8)," \u2192")))):(()=>{let{cohorts:z,totals:E}=R();return z.length===0?ne.default.createElement("div",{className:"flex-1 flex items-center justify-center"},ne.default.createElement("div",{className:"text-center text-gray-400"},ne.default.createElement(In,{size:100}),ne.default.createElement("p",{className:"mt-4"},"No runs yet \u2014 run the agent to build its report"))):ne.default.createElement("div",{className:"flex-1 overflow-auto p-6 space-y-5"},ne.default.createElement("div",{className:"flex items-center gap-3"},ne.default.createElement(In,{size:40}),ne.default.createElement("div",null,ne.default.createElement("h3",{className:"font-semibold text-gray-900"},"Agent Report"),ne.default.createElement("p",{className:"text-xs text-gray-500"},"Recent activity for ",e.name," \u2014 select a run for its full interaction"))),ne.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3"},ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Runs"),ne.default.createElement("p",{className:"text-xl font-bold text-gray-900"},E.runs)),ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Success"),ne.default.createElement("p",{className:"text-xl font-bold text-gray-900"},E.runs?Math.round(E.completed/E.runs*100):0,"%")),ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Avg Duration"),ne.default.createElement("p",{className:"text-xl font-bold text-gray-900"},Be(Math.round(E.avgDuration)))),ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Tokens"),ne.default.createElement("p",{className:"text-xl font-bold text-gray-900"},E.tokens.toLocaleString()))),E.models.length>0&&ne.default.createElement("div",{className:"flex items-center gap-2 flex-wrap text-xs"},ne.default.createElement("span",{className:"text-gray-500"},"Models used:"),E.models.map(I=>ne.default.createElement("span",{key:I,className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},I))),a.length>0&&ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},ne.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},ne.default.createElement("span",{className:"text-xs uppercase tracking-wide text-gray-400"},"Sessions \u2014 grouped interaction streams")),ne.default.createElement("div",{className:"divide-y divide-gray-100"},a.map(I=>ne.default.createElement("div",{key:I.id,className:"px-4 py-3 hover:bg-gray-50 cursor-pointer flex items-center justify-between gap-3",onClick:()=>Me(I),title:"Open this session's interaction stream"},ne.default.createElement("div",{className:"flex items-center gap-2 min-w-0",title:I.display_name},ne.default.createElement("span",{className:"px-2 py-0.5 text-xs font-medium bg-blue-100 text-blue-700 rounded flex-shrink-0"},"SESSION"),ne.default.createElement("span",{className:"text-sm text-gray-900 truncate"},I.agent?.name||I.agent_name),I.action_name&&ne.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-purple-50 text-purple-700 font-mono text-xs flex-shrink-0"},"#",I.action_name)),ne.default.createElement("div",{className:"flex items-center gap-3 text-xs text-gray-400 flex-shrink-0"},ne.default.createElement("span",null,I.message_count," messages"),ne.default.createElement("span",null,(I.tokens?.total||0).toLocaleString()," tokens"),ne.default.createElement("span",null,ee(I.last_activity_at)),ne.default.createElement(sd,{kind:"context",id:I.id,title:"Replay this conversation"})))))),ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},ne.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100 flex items-center justify-between"},ne.default.createElement("span",{className:"text-xs uppercase tracking-wide text-gray-400"},"Interactions by instructions \xD7 model"),ne.default.createElement("select",{value:S,onChange:I=>_(I.target.value),className:"text-xs border border-gray-200 rounded px-2 py-1 text-gray-600"},ne.default.createElement("option",{value:"recent"},"Most recent"),ne.default.createElement("option",{value:"longest"},"Longest interactions"))),ne.default.createElement("div",{className:"divide-y divide-gray-100"},z.map(I=>ne.default.createElement("div",{key:I.key},ne.default.createElement("div",{className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>k(V=>({...V,[I.key]:!V[I.key]})),title:"Show this configuration's runs"},ne.default.createElement("div",{className:"flex items-center gap-2 flex-wrap"},ne.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono text-xs"},I.model||"unknown model"),ne.default.createElement("span",{className:"text-xs text-gray-400 font-mono",title:I.instructionsDigest?`sha:${I.instructionsDigest}`:void 0},"instructions"," ",I.instructionsDigest?[I.instructionsVersion,I.instructionsCodename||I.instructionsDigest].filter(Boolean).join(" \xB7 "):"n/a")),I.instructionsPreview&&ne.default.createElement("p",{className:"text-xs text-gray-500 mt-1 truncate"},I.instructionsPreview),ne.default.createElement("div",{className:"flex items-center gap-3 mt-1.5 text-xs text-gray-400 flex-wrap gap-y-1"},ne.default.createElement("span",null,I.count," run",I.count>1?"s":""),ne.default.createElement("span",{className:I.failed>0?"text-red-500":"text-green-600"},I.count?Math.round(I.completed/I.count*100):0,"% success"),ne.default.createElement("span",null,"avg ",Be(Math.round(I.avgDuration))),ne.default.createElement("span",null,"avg ",Math.round(I.avgTokens).toLocaleString()," tokens"),ne.default.createElement("span",null,"last ",ee(I.latest.created_at)))),w[I.key]&&ne.default.createElement("div",{className:"bg-gray-50 divide-y divide-gray-100 border-t border-gray-100"},I.sortedRuns.map(V=>ne.default.createElement("div",{key:V.id,className:"px-6 py-2 hover:bg-gray-100 cursor-pointer",onClick:()=>G(V.id),title:"Open this run's interaction"},ne.default.createElement("p",{className:"text-xs text-gray-700 truncate"},V.input_preview||"No input"),ne.default.createElement("div",{className:"flex items-center gap-3 mt-0.5 text-[11px] text-gray-400"},ne.default.createElement("span",{className:V.status==="failed"?"text-red-500":""},V.status),ne.default.createElement("span",null,Be(V.duration_ms)),V.tokens&&ne.default.createElement("span",null,V.tokens.toLocaleString()," tokens"),ne.default.createElement("span",null,ee(V.created_at)))))))))))})()))}var ct=Z(J());var aCe={productivity:"[+]",development:"<>",research:"[?]",creative:"[*]",data:"[#]",automation:"[>]"};function JD({onUseTemplate:e,onClose:t}){let[r,n]=(0,ct.useState)([]),[o,a]=(0,ct.useState)([]),[i,s]=(0,ct.useState)(""),[l,u]=(0,ct.useState)(null),[c,d]=(0,ct.useState)(!0),[p,f]=(0,ct.useState)(!1),[m,y]=(0,ct.useState)(null);(0,ct.useEffect)(()=>{b()},[i]);let b=async()=>{d(!0);try{let h=new URLSearchParams;i&&h.append("category",i);let x=await(await fetch(`/api/templates?${h}`)).json();n(x.templates),a(x.categories)}catch(h){console.error("Failed to load templates:",h)}finally{d(!1)}},g=async h=>{f(!0),y(null);try{let v=await fetch(`/api/templates/${h.id}/use`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:h.name})});if(v.ok){let x=await v.json();e(x.agent)}else{let x=`Could not create the agent (HTTP ${v.status})`;try{let S=await v.json(),_=S.errors||S.error;_&&(x=Array.isArray(_)?_.join(", "):String(_))}catch{}y(x)}}catch(v){console.error("Failed to create agent from template:",v),y("Could not create the agent \u2014 check your connection and try again.")}finally{f(!1)}};return ct.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},ct.default.createElement("div",{className:"bg-white rounded-2xl w-full max-w-5xl max-h-[90vh] flex flex-col overflow-hidden"},ct.default.createElement("div",{className:"px-6 py-4 border-b border-gray-200 flex items-center justify-between"},ct.default.createElement("div",null,ct.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Template Library"),ct.default.createElement("p",{className:"text-sm text-gray-500"},"Start with a pre-configured agent template")),ct.default.createElement("button",{onClick:t,className:"p-2 text-gray-400 hover:text-gray-600 transition-colors"},ct.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ct.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))),ct.default.createElement("div",{className:"flex-1 flex overflow-hidden"},ct.default.createElement("div",{className:"w-48 border-r border-gray-200 p-4 flex-shrink-0"},ct.default.createElement("h3",{className:"text-xs font-semibold text-gray-400 uppercase mb-3"},"Categories"),ct.default.createElement("div",{className:"space-y-1"},ct.default.createElement("button",{onClick:()=>s(""),className:`w-full text-left px-3 py-2 rounded-lg text-sm transition-colors ${i?"text-gray-600 hover:bg-gray-50":"bg-red-50 text-red-600"}`},"All Templates"),o.map(h=>ct.default.createElement("button",{key:h,onClick:()=>s(h),className:`w-full text-left px-3 py-2 rounded-lg text-sm flex items-center space-x-2 transition-colors ${i===h?"bg-red-50 text-red-600":"text-gray-600 hover:bg-gray-50"}`},ct.default.createElement("span",null,aCe[h]||"\u{1F4E6}"),ct.default.createElement("span",{className:"capitalize"},h))))),ct.default.createElement("div",{className:"flex-1 p-6 overflow-auto"},c?ct.default.createElement("div",{className:"flex items-center justify-center h-full"},ct.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):r.length>0?ct.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-3 gap-4"},r.map(h=>ct.default.createElement("div",{key:h.id,onClick:()=>u(h),className:`bg-white rounded-xl border-2 p-4 cursor-pointer transition-all hover:shadow-lg ${l?.id===h.id?"border-red-500 ring-2 ring-red-100":"border-gray-200 hover:border-gray-300"}`},ct.default.createElement("div",{className:"flex items-start space-x-3"},ct.default.createElement("div",{className:"flex-shrink-0"},ct.default.createElement(In,{size:60})),ct.default.createElement("div",{className:"flex-1 min-w-0"},ct.default.createElement("div",{className:"flex items-center space-x-2"},ct.default.createElement("span",{className:"text-lg"},h.icon),ct.default.createElement("h3",{className:"font-medium text-gray-900 truncate"},h.name)),ct.default.createElement("p",{className:"text-xs text-gray-500 mt-1 line-clamp-2"},h.description),ct.default.createElement("div",{className:"flex items-center space-x-2 mt-2"},ct.default.createElement("span",{className:"text-xs px-2 py-0.5 bg-gray-100 rounded capitalize"},h.category),h.featured&&ct.default.createElement("span",{className:"text-xs px-2 py-0.5 bg-yellow-100 text-yellow-700 rounded"},"Featured"))))))):ct.default.createElement("div",{className:"text-center py-12 text-gray-500"},"No templates found in this category")),l&&ct.default.createElement("div",{className:"w-80 border-l border-gray-200 p-6 flex-shrink-0 bg-gray-50 overflow-auto"},ct.default.createElement("div",{className:"flex justify-center mb-4"},ct.default.createElement(In,{size:120})),ct.default.createElement("h3",{className:"text-lg font-semibold text-gray-900 text-center"},l.name),ct.default.createElement("p",{className:"text-sm text-gray-500 text-center mt-1"},l.description),ct.default.createElement("div",{className:"mt-6 space-y-4"},ct.default.createElement("div",null,ct.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Provider / Model"),ct.default.createElement("p",{className:"text-sm text-gray-900"},l.provider," / ",l.model)),l.tools?.length>0&&ct.default.createElement("div",null,ct.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Tools"),ct.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},l.tools.map(h=>ct.default.createElement("span",{key:h,className:"text-xs px-2 py-0.5 bg-red-100 text-red-700 rounded"},h)))),ct.default.createElement("div",null,ct.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Usage"),ct.default.createElement("p",{className:"text-sm text-gray-900"},l.usage_count," agents created"))),ct.default.createElement("button",{onClick:()=>g(l),disabled:p,className:"w-full mt-6 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors disabled:opacity-50"},p?"Creating...":"Use This Template"),m&&ct.default.createElement("p",{className:"mt-2 text-sm text-red-600",role:"alert"},m)))))}var mt=Z(J());function QD({currentView:e,onNavigate:t,agentCount:r,pendingInputCount:n,account:o,user:a,gemVersion:i,features:s={}}){let{darkMode:l}=ut(),[u,c]=(0,mt.useState)(!1),d=(0,mt.useRef)(null);(0,mt.useEffect)(()=>{function h(v){d.current&&!d.current.contains(v.target)&&c(!1)}return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[]);let p=o?.name||"My Workspace",f=a?.name||a?.email?.split("@")[0]||"User",m={agentCount:r,pendingInputCount:n},y=h=>{let v=h.badge?m[h.badge]:void 0;return h.badgeTone==="attention"&&!v?void 0:v},b=dY(s).map(h=>({...h,items:h.items.map(v=>({id:v.view,label:v.label,icon:v.glyph??Fo.nav[v.icon],badge:y(v),badgeTone:v.badgeTone,badgeTitle:v.badgeTitle}))})),g=({item:h})=>mt.default.createElement("button",{onClick:()=>t(h.id),className:`w-full flex items-center justify-between py-3 rounded-lg text-left transition-colors ${h.indent?"pl-10 pr-4":"px-4"}`,style:{backgroundColor:e===h.id?l?"rgba(239, 68, 68, 0.15)":"#fef2f2":"transparent",color:e===h.id?"#ef4444":l?"#d1d5db":"#374151"},onMouseEnter:v=>{e!==h.id&&(v.currentTarget.style.backgroundColor=l?"#252525":"#f3f4f6")},onMouseLeave:v=>{e!==h.id&&(v.currentTarget.style.backgroundColor="transparent")}},mt.default.createElement("div",{className:"flex items-center space-x-3"},mt.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"12px",width:"20px",textAlign:"center"}},h.icon),mt.default.createElement("span",{className:"font-medium"},h.label)),h.badge!==void 0&&h.badgeTone==="attention"&&mt.default.createElement("span",{"data-testid":`nav-badge-${h.id}`,className:"px-2 py-0.5 text-xs rounded-full font-semibold",title:`${h.badge} ${h.badgeTitle||""}`.trim(),"aria-label":`${h.badge} ${h.badgeTitle||""}`.trim(),style:{backgroundColor:"var(--color-warning-soft)",color:"var(--color-warning-text)"}},h.badge),h.badge!==void 0&&h.badgeTone!=="attention"&&mt.default.createElement("span",{className:"px-2 py-0.5 text-xs rounded-full",style:{backgroundColor:e===h.id?"#fee2e2":l?"#2a2a2a":"#f3f4f6",color:e===h.id?"#ef4444":l?"#d1d5db":"#4b5563"}},h.badge));return mt.default.createElement("aside",{className:"w-64 border-r flex flex-col",style:{backgroundColor:l?"#1a1a1a":"#ffffff",borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:"h-16 flex items-center px-4 border-b relative",style:{borderColor:l?"#2a2a2a":"#e5e7eb"},ref:d},mt.default.createElement("button",{onClick:()=>c(!u),className:"w-full flex items-center justify-between px-2 py-2 rounded-lg transition-colors",style:{backgroundColor:u?l?"#252525":"#f3f4f6":"transparent"}},mt.default.createElement("div",{className:"flex items-center space-x-3 min-w-0"},mt.default.createElement(In,{size:28}),mt.default.createElement("span",{className:`font-semibold truncate ${l?"text-white":"text-gray-900"}`},p)),mt.default.createElement("svg",{className:`w-4 h-4 flex-shrink-0 transition-transform ${u?"rotate-180":""}`,style:{color:l?"#9ca3af":"#6b7280"},fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),u&&mt.default.createElement("div",{className:"absolute left-4 right-4 top-14 rounded-lg shadow-lg border overflow-hidden z-50",style:{backgroundColor:l?"#1a1a1a":"#ffffff",borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:"px-4 py-3 border-b",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:"flex items-center space-x-3"},mt.default.createElement(In,{size:32}),mt.default.createElement("div",{className:"min-w-0"},mt.default.createElement("div",{className:`font-medium truncate ${l?"text-white":"text-gray-900"}`},p)))),mt.default.createElement("div",{className:"py-1"},mt.default.createElement("button",{onClick:()=>{t("settings"),c(!1)},className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${l?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},mt.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})),mt.default.createElement("span",null,"Settings")),mt.default.createElement("button",{onClick:()=>{t("organization"),c(!1)},className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${l?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},mt.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"})),mt.default.createElement("span",null,"Organization"))),mt.default.createElement("div",{className:"border-t py-1",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:`px-4 py-2 flex items-center space-x-3 ${l?"text-gray-300":"text-gray-700"}`},mt.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})),mt.default.createElement("span",{className:"text-sm"},f))))),mt.default.createElement("nav",{className:"flex-1 px-4 py-4 space-y-1 overflow-y-auto"},b.map(h=>{let v=mt.default.createElement("div",{className:"space-y-1"},h.items.map(x=>mt.default.createElement(g,{key:x.id,item:x})));return h.label?mt.default.createElement("div",{key:h.id,className:"pt-4"},mt.default.createElement("div",{className:"px-4 pb-2"},mt.default.createElement("span",{className:`text-xs font-semibold uppercase tracking-wide ${l?"text-gray-500":"text-gray-400"}`},h.label)),v):mt.default.createElement(mt.default.Fragment,{key:h.id},v)})),mt.default.createElement("div",{className:"px-4 py-4 border-t",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:`text-xs font-semibold uppercase mb-3 ${l?"text-gray-500":"text-gray-400"}`},"Resources"),mt.default.createElement("div",{className:"space-y-2"},mt.default.createElement("a",{href:"https://docs.activeagents.ai",target:"_blank",rel:"noopener noreferrer",className:`flex items-center space-x-2 text-sm transition-colors ${l?"text-gray-400 hover:text-red-400":"text-gray-600 hover:text-red-600"}`},mt.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"12px",width:"20px",textAlign:"center"}},Fo.nav.docs),mt.default.createElement("span",null,"Documentation")),mt.default.createElement("a",{href:"https://github.com/activeagents/activeagent",target:"_blank",rel:"noopener noreferrer",className:`flex items-center space-x-2 text-sm transition-colors ${l?"text-gray-400 hover:text-red-400":"text-gray-600 hover:text-red-600"}`},mt.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"12px",width:"20px",textAlign:"center"}},Fo.nav.github),mt.default.createElement("span",null,"GitHub")))),mt.default.createElement("div",{className:"px-6 py-4 border-t",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:`text-xs ${l?"text-gray-500":"text-gray-400"}`},"Active Agent ",i?`v${i}`:"")))}var xr=Z(J());function RD({user:e,account:t}){let{darkMode:r,toggleDarkMode:n}=ut(),[o,a]=(0,xr.useState)(!1),i=(0,xr.useRef)(null);(0,xr.useEffect)(()=>{function d(p){i.current&&!i.current.contains(p.target)&&a(!1)}return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[]);let s=window.ACTIVE_AGENT_DASHBOARD?.meta?.signOutPath,l=()=>{if(!s)return;let d=document.querySelector('meta[name="csrf-token"]')?.content,p=document.createElement("form");p.method="POST",p.action=s;let f=document.createElement("input");f.type="hidden",f.name="_method",f.value="delete",p.appendChild(f);let m=document.createElement("input");m.type="hidden",m.name="authenticity_token",m.value=d,p.appendChild(m),document.body.appendChild(p),p.submit()},u=e?.name||e?.email?.split("@")[0]||"User",c=u.charAt(0).toUpperCase();return xr.default.createElement("header",{className:"h-16 border-b flex items-center justify-between px-6",style:{backgroundColor:r?"#1a1a1a":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"}},xr.default.createElement("div",{className:"flex items-center space-x-4"}),xr.default.createElement("div",{className:"flex items-center space-x-4"},xr.default.createElement("button",{onClick:n,className:"p-2 rounded-lg transition-colors",style:{backgroundColor:r?"#252525":"#f3f4f6",color:r?"#fbbf24":"#4b5563"},title:r?"Switch to light mode":"Switch to dark mode"},r?xr.default.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},xr.default.createElement("path",{fillRule:"evenodd",d:"M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z",clipRule:"evenodd"})):xr.default.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},xr.default.createElement("path",{d:"M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"}))),xr.default.createElement("div",{className:`flex items-center space-x-2 text-sm ${r?"text-gray-400":"text-gray-500"}`},xr.default.createElement("span",{className:"w-2 h-2 bg-green-400 rounded-full"}),xr.default.createElement("span",null,"Connected")),xr.default.createElement("div",{className:"relative",ref:i},xr.default.createElement("button",{onClick:()=>a(!o),className:"flex items-center space-x-2 p-1 rounded-lg transition-colors",style:{backgroundColor:o?r?"#252525":"#f3f4f6":"transparent"}},xr.default.createElement("div",{className:"w-8 h-8 bg-red-100 rounded-full flex items-center justify-center"},xr.default.createElement("span",{className:"text-red-600 font-medium text-sm"},c))),o&&xr.default.createElement("div",{className:"absolute right-0 mt-2 w-64 rounded-lg shadow-lg border overflow-hidden z-50",style:{backgroundColor:r?"#1a1a1a":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"}},xr.default.createElement("div",{className:"px-4 py-3 border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},xr.default.createElement("div",{className:"flex items-center space-x-3"},xr.default.createElement("div",{className:"w-10 h-10 bg-red-100 rounded-full flex items-center justify-center"},xr.default.createElement("span",{className:"text-red-600 font-medium"},c)),xr.default.createElement("div",null,xr.default.createElement("div",{className:`font-medium ${r?"text-white":"text-gray-900"}`},u),xr.default.createElement("div",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},e?.email)))),s&&xr.default.createElement("div",{className:"py-1"},xr.default.createElement("button",{onClick:l,className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${r?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},xr.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},xr.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"})),xr.default.createElement("span",null,"Sign out")))))))}var ze=Z(J());var kt=Z(J());var e3=150,iCe=e=>e.reduce((t,r)=>t+(Number(r)||0),0),sCe=e=>e.length?iCe(e)/e.length:0,Ys=e=>e.reduce((t,r)=>r!=null&&Number(r)>t?Number(r):t,0),t3=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},vf=(e,t)=>[0,25,50,75,100].map(r=>({top:r,label:t(e*(1-r/100))})),lCe=4,Ph=e=>Math.max(lCe,t3(e)),OQ=(e,t=2,r=6)=>{let n=e/4;for(let o=t;oMath.abs(n*i-Number((n*i).toFixed(o)))<=n*.1))return o;return r},uCe=5.5,cCe=12,dCe=(e,t)=>{let r=!!e.flip;if(!(t>0))return r;let n=String(e.label||"").length*uCe+cCe,o=Number(e.left)/100*t,a=t-o;return r?!(oo):aa},xf=(e,t)=>{let r=e.length,n=[];return e.forEach((o,a)=>{if(o==null||Number.isNaN(Number(o)))return;let i=r>1?a/(r-1)*100:50,s=100-Math.min(100,Math.max(0,Number(o)/t*100));n.push(`${i.toFixed(2)},${s.toFixed(2)}`)}),n.join(" ")},X2=(e,t)=>{let r=xf(e,t);return r?`0,100 ${r} 100,100`:""},PQ=(e,t=24)=>{let r=e.length;if(!r)return"";let n=r/t,o=Array.from({length:t},(s,l)=>{let u=Math.floor(l*n),c=Math.max(u+1,Math.floor((l+1)*n));return sCe(e.slice(u,c).filter(d=>d!=null))}),a=Math.max(...o),i=Math.min(...o);return o.map((s,l)=>`${(l/(t-1)*100).toFixed(1)},${(26-(a===i?.5:(s-i)/(a-i))*24).toFixed(1)}`).join(" ")},Y0=(e,t,r)=>{let n=e.length?e[0].data.length:0;return Array.from({length:n},(o,a)=>({title:r(a),segs:e.map(i=>({h:(Number(i.data[a])||0)/t*100,color:i.color}))}))};function MQ({label:e,value:t,unit:r,sub:n,delta:o,deltaColor:a,deltaSub:i,spark:s,sparkColor:l}){return kt.default.createElement(Le,{padding:"14px 16px 12px",style:{display:"flex",flexDirection:"column",gap:6,minWidth:0}},kt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8}},kt.default.createElement(We,{size:11,spacing:"0.05em"},e),kt.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,fontWeight:600,color:a,whiteSpace:"nowrap"}},o)),kt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:6}},kt.default.createElement("span",{style:{fontFamily:U,fontSize:26,fontWeight:700,lineHeight:1.1,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},t),r?kt.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-muted)"}},r):null),kt.default.createElement("div",{title:n,style:{fontFamily:U,fontSize:11,color:"var(--color-text-secondary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},n),kt.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",gap:8,marginTop:2}},kt.default.createElement("svg",{viewBox:"0 0 100 28",preserveAspectRatio:"none","aria-hidden":"true",style:{flex:1,height:28,minWidth:0,display:"block",overflow:"visible"}},kt.default.createElement("polyline",{points:s,fill:"none",stroke:l,strokeWidth:"1.5",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke"})),kt.default.createElement("span",{style:{fontSize:10,color:"var(--color-text-muted)",whiteSpace:"nowrap"}},i)))}function IQ({title:e,sub:t,value:r,valueColor:n="var(--color-text-primary)",legend:o=[],ticks:a=[],buckets:i=[],lines:s=[],areas:l=[],markers:u=[],xLabels:c=[],height:d=e3}){let p=(0,kt.useRef)(null),f=I0(p),m="1px dashed var(--color-text-secondary)";return kt.default.createElement(Le,{padding:"14px 16px 12px",style:{minWidth:0,display:"flex",flexDirection:"column",gap:8}},kt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,flexWrap:"wrap"}},kt.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},e),kt.default.createElement("span",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)"}},t),kt.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:12,fontWeight:600,color:n,whiteSpace:"nowrap"}},r)),kt.default.createElement("div",{style:{display:"flex",gap:12,flexWrap:"wrap"}},o.map(y=>kt.default.createElement("span",{key:y.label,style:{display:"inline-flex",alignItems:"center",gap:5,fontFamily:U,fontSize:10,color:"var(--color-text-secondary)"}},kt.default.createElement("span",{style:{width:8,height:8,borderRadius:2,background:y.color,flexShrink:0}}),y.label))),kt.default.createElement("div",{ref:p,style:{position:"relative",height:d,margin:"6px 0 0 40px"}},a.map(y=>kt.default.createElement("div",{key:y.top,style:{position:"absolute",left:0,right:0,top:`${y.top}%`,borderTop:"1px solid var(--color-border-light)"}},kt.default.createElement("span",{style:{position:"absolute",right:"calc(100% + 6px)",top:-6,whiteSpace:"nowrap",fontFamily:U,fontSize:10,lineHeight:"12px",color:"var(--color-text-muted)"}},y.label))),i.length>0&&kt.default.createElement("div",{style:{position:"absolute",inset:0,display:"flex",alignItems:"stretch",gap:1}},i.map((y,b)=>kt.default.createElement("div",{key:b,title:y.title,style:{flex:1,minWidth:0,display:"flex",flexDirection:"column-reverse"}},y.segs.map((g,h)=>kt.default.createElement("div",{key:h,style:{height:`${g.h.toFixed(2)}%`,background:g.color,flexShrink:0}}))))),(s.length>0||l.length>0)&&kt.default.createElement("svg",{viewBox:"0 0 100 100",preserveAspectRatio:"none","aria-hidden":"true",style:{position:"absolute",inset:0,width:"100%",height:"100%",overflow:"visible",pointerEvents:"none"}},l.map((y,b)=>kt.default.createElement("polygon",{key:b,points:y.points,fill:y.color,opacity:"0.16"})),s.map((y,b)=>kt.default.createElement("polyline",{key:b,points:y.points,fill:"none",stroke:y.color,strokeWidth:y.width||1.5,strokeLinejoin:"round",strokeLinecap:"round",vectorEffect:"non-scaling-stroke"}))),u.map((y,b)=>{let g=dCe(y,f),h=`${Number(y.left).toFixed(2)}%`;return kt.default.createElement("div",{key:b,style:{position:"absolute",top:0,bottom:0,pointerEvents:"none",...g?{left:0,width:h,borderRight:m}:{left:h,right:0,borderLeft:m}}},kt.default.createElement("span",{style:{position:"absolute",top:-4,[g?"right":"left"]:4,maxWidth:"calc(100% - 8px)",boxSizing:"border-box",overflow:"hidden",textOverflow:"ellipsis",fontFamily:U,fontSize:9,lineHeight:"12px",color:"var(--color-text-secondary)",whiteSpace:"nowrap",background:"var(--color-card)",padding:"0 4px",borderRadius:3}},y.label))})),kt.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginLeft:40,fontFamily:U,fontSize:10,color:"var(--color-text-muted)"}},c.map((y,b)=>kt.default.createElement("span",{key:b},y))))}function Mh({label:e,qualifier:t,meta:r,children:n}){return kt.default.createElement(Le,{padding:0,style:{overflow:"hidden"}},kt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,padding:"10px 14px",borderBottom:"1px solid var(--color-border-light)"}},kt.default.createElement(We,null,e),t?kt.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},t):null,r?kt.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},r):null),n)}function r3({template:e,columns:t}){return kt.default.createElement("div",{style:{display:"grid",gridTemplateColumns:e,gap:8,padding:"6px 14px 4px",fontFamily:U,fontSize:10,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--color-text-muted)"}},kt.default.createElement("span",null),t.map(r=>kt.default.createElement("span",{key:r,style:{textAlign:"right"}},r)))}function Z2({template:e,active:t=!1,onClick:r,title:n,padding:o="8px 14px",children:a}){let i=typeof r=="function";return kt.default.createElement("div",{role:i?"button":void 0,tabIndex:i?0:void 0,"aria-pressed":i?t:void 0,onClick:r,onKeyDown:i?l=>{(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),r(l))}:void 0,title:n,className:i?"hover:bg-[var(--color-hover)]":void 0,style:{display:"grid",gridTemplateColumns:e,gap:8,alignItems:"center",padding:o,borderTop:"1px solid var(--color-border-light)",cursor:i?"pointer":"default",background:t?"var(--color-muted)":void 0}},a)}function n3({children:e,padding:t="8px 14px"}){return kt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:t,borderTop:"1px solid var(--color-border-light)"}},e)}function X0({children:e}){return kt.default.createElement("div",{style:{padding:"12px 14px",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},e)}function o3({color:e}){return kt.default.createElement("span",{style:{width:8,height:8,borderRadius:2,background:e,flexShrink:0}})}function a3({pct:e,color:t}){return kt.default.createElement("div",{style:{marginTop:5,height:3,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},kt.default.createElement("div",{style:{width:`${Math.max(0,Math.min(100,Number(e)||0))}%`,height:"100%",background:t}}))}function i3({pct:e,color:t,width:r=70}){return kt.default.createElement("span",{style:{width:r,height:4,borderRadius:999,background:"var(--color-muted)",overflow:"hidden",flexShrink:0,display:"inline-block"}},kt.default.createElement("span",{style:{display:"block",width:`${Math.max(0,Math.min(100,Number(e)||0))}%`,height:"100%",background:t}}))}function ys({children:e,color:t="var(--color-text-primary)",weight:r=400,width:n,style:o}){return kt.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:r,textAlign:"right",color:t,width:n,...o}},e)}var LQ=6e4,pCe=1180,Dh={"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"}},fCe=Object.keys(Dh).map(e=>({value:e,label:e})),l3="24h",Ih=["var(--chart-1)","var(--chart-2)","var(--chart-3)","var(--chart-5)","var(--chart-4)"],Z0=[{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)"}],DQ=e=>Z0.find(t=>t.type===e)?.color||"var(--color-text-muted)",mCe=3,Q2="var(--color-text-primary)",gCe={success:"var(--color-success)",error:"var(--color-error)",muted:"var(--color-text-muted)"},hCe=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],s3=e=>String(e).padStart(2,"0"),Wt=e=>e==null||Number.isNaN(Number(e))?0:Number(e),yCe=e=>e.reduce((t,r)=>t+Wt(r),0),jQ=e=>`${Wt(e).toFixed(1)}%`,J2=(e,t)=>`${e} ${t}${e===1?"":"s"}`,vCe=e=>e>=1e3?`${(e/1e3).toFixed(1)}s`:`${Math.round(e)}ms`,xCe=(e,t)=>{let r=Array.isArray(e)?[...e]:[];return t.forEach(n=>{n.name&&!r.some(o=>o.name===n.name)&&r.push(n)}),r},bCe=e=>{let t=String(e.label||"incident"),r=Z0.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},wCe=e=>{let t=Wt(e);return t<60?`${t}s`:t<3600?`${+(t/60).toFixed(1)} min`:`${+(t/3600).toFixed(1)} h`},$Q=async e=>{let t=await fetch(`/api/metrics?${e.toString()}`);if(!t.ok)throw new Error(`Request failed (${t.status})`);return t.json()},SCe=(e,t,r=Date.now())=>{let n=Math.max(1,Wt(t))*1e3,o=Math.max(1,Math.round(Wt(e)*6e4/n)),a=Math.floor(r/n)*n;return Array.from({length:o},(i,s)=>({ts:new Date(a-(o-1-s)*n).toISOString()}))},kCe=(e,t)=>{let r=e.summary||{},n=Dh[e.range]||Dh[t]||Dh[l3],o=Wt(e.bucket_seconds)||n.seconds,a=Wt(e.window_minutes)||(e.window_hours?Wt(e.window_hours)*60:n.n*n.seconds/60),i=Array.isArray(e.series)?e.series:SCe(a,o),s=Wt(e.totals?.requests??r.total_requests),l=Wt(e.totals?.cost??r.total_cost),u={requests:s,requests_per_minute:a?s/a:0,p50_ms:null,p95_ms:null,p99_ms:null,errors:Wt(r.errors),error_rate:Wt(r.error_rate),tokens_in:Wt(r.tokens_input),tokens_out:Wt(r.tokens_output),tokens:Wt(r.tokens_used),cost:l,cost_per_request:s?l/s:0,tool_calls:0,tool_errors:0,tool_error_rate:0,...e.totals||{}},c={requests_pct:r.requests_change??null,p50_pct:r.latency_change??null,error_rate_pt:null,tokens_pct:null,cost_pct:null,...e.deltas||{}},d=Array.isArray(e.agents)?e.agents:(e.by_agent||[]).map(f=>({name:f.name,requests:Wt(f.requests),share_pct:s?Wt(f.requests)/s*100:0,p95_ms:null,error_rate:f.requests?Wt(f.errors)/Wt(f.requests)*100:0,cost:Wt(f.cost),tokens:Wt(f.tokens)})),p=Array.isArray(e.errors_by_type)&&e.errors_by_type.length?e.errors_by_type:Z0.map(f=>({type:f.type,count:0}));return{range:e.range||t,bucketSeconds:o,windowMinutes:a,agent:e.agent||null,environment:e.environment||null,totals:u,deltas:c,series:i,agents:d,models:Array.isArray(e.models)?e.models:[],actions:Array.isArray(e.actions)?e.actions:[],tools:Array.isArray(e.tools)?e.tools:[],errorsByType:p,markers:Array.isArray(e.markers)?e.markers:[]}},zQ=e=>{let t=Dh[e.range];if(t)return t;let r=Math.max(1,Math.round(e.windowMinutes/60));return{bucket:wCe(e.bucketSeconds),prev:`vs previous ${r}h`,title:`last ${r} hours`}},_Ce=e=>{let[t,r]=(0,ze.useState)(()=>typeof window<"u"&&window.innerWidth{let n=window.matchMedia(`(max-width: ${e-1}px)`),o=()=>r(n.matches);return o(),n.addEventListener("change",o),()=>n.removeEventListener("change",o)},[e]),t};function u3(){let[e,t]=(0,ze.useState)(l3),[r,n]=(0,ze.useState)(""),[o,a]=(0,ze.useState)(null),[i,s]=(0,ze.useState)(!0),[l,u]=(0,ze.useState)(null),[c,d]=(0,ze.useState)(!1),p=(0,ze.useRef)(0),f=_Ce(pCe),m=(0,ze.useRef)(null),y=(0,ze.useCallback)(async()=>{let S=++p.current;try{let _=new URLSearchParams({range:e});r&&_.set("agent",r);let[w,k]=await Promise.all([$Q(_),r?$Q(new URLSearchParams({range:e})).catch(()=>null):null]);if(S!==p.current)return;let A=r?k?.agents:w.agents;Array.isArray(A)&&(m.current=A),a({data:w,ranking:Array.isArray(A)?A:m.current}),u(null)}catch(_){if(S!==p.current)return;u(_.message)}finally{S===p.current&&s(!1)}},[e,r]);(0,ze.useEffect)(()=>{let S=!1;d(!0),y().finally(()=>{S||d(!1)});let _=setInterval(y,LQ);return()=>{S=!0,clearInterval(_)}},[y]);let b=(0,ze.useMemo)(()=>o?kCe(o.data,e):null,[o,e]),g=(0,ze.useMemo)(()=>b?b.agent?xCe(o.ranking,b.agents):b.agents:[],[b,o]),h=(0,ze.useMemo)(()=>g.map(S=>S.name).filter(Boolean),[g]),v=(0,ze.useMemo)(()=>{let S=Object.fromEntries(h.map((w,k)=>[w,Ih[k%Ih.length]])),_=h.length;return(b?b.agents:[]).forEach(w=>{w.name&&!S[w.name]&&(S[w.name]=Ih[_++%Ih.length])}),w=>S[w]||Ih[0]},[h,b]),x=(0,ze.useMemo)(()=>b?ACe(b,v):null,[b,v]);return i?ze.default.createElement("div",{className:"flex items-center justify-center h-64"},ze.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2",style:{borderBottomColor:"var(--color-accent-ui)"}})):l||!b?ze.default.createElement("div",null,ze.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:Q2}},"Metrics"),ze.default.createElement("div",{style:{marginTop:16,padding:"12px 16px",background:"var(--color-error-soft)",borderRadius:8,color:"var(--color-error-text)",fontSize:14}},"Failed to load metrics",l?`: ${l}`:"")):ze.default.createElement(CCe,{m:b,view:x,railAgents:g,range:Dh[e]?e:l3,agent:r,agentOptions:r&&!h.includes(r)?[...h,r]:h,colorFor:v,narrow:f,pending:c,onRange:t,onAgent:n})}function CCe({m:e,view:t,railAgents:r=e.agents,range:n,agent:o,agentOptions:a,colorFor:i,narrow:s,pending:l=!1,onRange:u,onAgent:c}){let d=zQ(e),p=e.totals.requests===0,f=m=>c(o===m?"":m);return ze.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16,width:"100%",maxWidth:1600,boxSizing:"border-box",color:Q2,fontSize:13}},ze.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",gap:16,flexWrap:"wrap"}},ze.default.createElement("div",{style:{flex:1,minWidth:240}},ze.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em"}},"Metrics"),ze.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"Requests, latency, errors, tokens and cost across every agent \u2014 ",d.title,o?` \xB7 ${o}`:"")),ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},ze.default.createElement("select",{value:o,onChange:m=>c(m.target.value),"aria-label":"Filter by agent",style:{padding:"6px 10px",borderRadius:8,fontSize:13,fontFamily:"inherit",border:"1px solid var(--color-border-strong)",background:"var(--color-card)",color:Q2,cursor:"pointer"}},ze.default.createElement("option",{value:""},"All agents"),a.map(m=>ze.default.createElement("option",{key:m,value:m},m))),e.environment&&ze.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 10px",borderRadius:8,border:"1px solid var(--color-border)",fontFamily:U,fontSize:11,color:"var(--color-text-cell)",background:"var(--color-card)"}},ze.default.createElement("span",{style:{color:"var(--color-text-muted)"}},"env"),e.environment),ze.default.createElement(ps,{options:fCe,value:n,onChange:u}),ze.default.createElement("span",{title:l?"loading\u2026":`refreshes every ${LQ/1e3}s`,style:{display:"inline-flex",alignItems:"center",gap:6,fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},ze.default.createElement("span",{style:{width:7,height:7,borderRadius:"50%",background:l?"var(--color-text-muted)":"var(--color-success)"}}),"live \xB7 ",d.bucket," buckets"))),p?ze.default.createElement(Le,{style:{padding:"40px 24px",textAlign:"center",fontSize:14,color:"var(--color-text-secondary)"}},"No traffic yet \u2014 run an agent, or point your app's ActiveAgent telemetry at this workspace",ze.default.createElement("div",{style:{marginTop:8,fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},o||"all agents"," \xB7 ",d.title)):ze.default.createElement(ze.default.Fragment,null,ze.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:12,opacity:l?.6:1}},t.signals.map(m=>ze.default.createElement(MQ,{key:m.label,...m,deltaSub:d.prev}))),ze.default.createElement("div",{style:{display:"grid",gridTemplateColumns:s?"minmax(0, 1fr)":"minmax(0, 2.3fr) minmax(300px, 1fr)",gap:16,alignItems:"start",opacity:l?.6:1}},ze.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:16,minWidth:0}},t.panels.map(m=>ze.default.createElement(IQ,{key:m.title,...m,xLabels:t.xLabels,height:e3}))),ze.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16,minWidth:0}},ze.default.createElement(Mh,{label:"Agents",qualifier:"by requests \xB7 click to filter"},ze.default.createElement(r3,{template:"minmax(0, 1fr) 44px 44px 40px 52px",columns:["req","p95","err","cost"]}),r.length===0&&ze.default.createElement(X0,null,"no agents in this window"),r.map(m=>ze.default.createElement(Z2,{key:m.name,template:"minmax(0, 1fr) 44px 44px 40px 52px",active:o===m.name,onClick:()=>f(m.name),title:o===m.name?"Show all agents":`Filter to ${m.name}`},ze.default.createElement("div",{style:{minWidth:0}},ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0}},ze.default.createElement(o3,{color:i(m.name)}),ze.default.createElement("span",{style:{fontSize:12,fontWeight:600,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name)),ze.default.createElement(a3,{pct:m.share_pct,color:i(m.name)})),ze.default.createElement(ys,null,On(m.requests)),ze.default.createElement(ys,{color:"var(--color-text-secondary)"},zn(m.p95_ms)),ze.default.createElement(ys,{color:Wt(m.error_rate)>=1.5?"var(--color-error-text)":"var(--color-text-secondary)"},jQ(m.error_rate)),ze.default.createElement(ys,null,y0(m.cost))))),ze.default.createElement(Mh,{label:"Models",qualifier:"by tokens"},e.models.length===0&&ze.default.createElement(X0,null,"no model usage in this window"),e.models.map((m,y)=>ze.default.createElement(Z2,{key:`${m.model}-${m.provider}-${y}`,template:"minmax(0, 1fr) 52px 56px"},ze.default.createElement("div",{style:{minWidth:0}},ze.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:6,minWidth:0}},ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:600,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.model||"unknown"),m.provider&&ze.default.createElement("span",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)"}},m.provider)),ze.default.createElement(a3,{pct:m.share_pct,color:"var(--color-token-in)"})),ze.default.createElement(ys,null,On(m.tokens)),ze.default.createElement(ys,{color:"var(--color-text-secondary)"},y0(m.cost))))),ze.default.createElement(Mh,{label:"Slowest actions",qualifier:"p95"},e.actions.length===0&&ze.default.createElement(X0,null,"no actions in this window"),e.actions.map(m=>ze.default.createElement(n3,{key:m.name},ze.default.createElement("span",{title:m.name,style:{flex:1,minWidth:0,fontFamily:U,fontSize:11,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name),ze.default.createElement(i3,{pct:t.slowestP95?Wt(m.p95_ms)/t.slowestP95*100:0,color:i(m.agent)}),ze.default.createElement(ys,{weight:600,width:40},zn(m.p95_ms))))),ze.default.createElement(Mh,{label:"Tools",qualifier:"by calls"},ze.default.createElement(r3,{template:"minmax(0, 1fr) 44px 48px 40px",columns:["calls","avg","err"]}),e.tools.length===0&&ze.default.createElement(X0,null,"no tool calls in this window"),e.tools.map(m=>ze.default.createElement(Z2,{key:m.name,template:"minmax(0, 1fr) 44px 48px 40px",padding:"7px 14px"},ze.default.createElement("span",{title:m.name,style:{fontFamily:U,fontSize:11,fontWeight:600,color:"var(--span-tool)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name),ze.default.createElement(ys,null,On(m.calls)),ze.default.createElement(ys,{color:"var(--color-text-secondary)"},zn(m.avg_ms)),ze.default.createElement(ys,{color:Wt(m.error_rate)>=2?"var(--color-error-text)":"var(--color-text-secondary)"},jQ(m.error_rate))))),ze.default.createElement(Mh,{label:"Errors by type",meta:`${Math.round(e.totals.errors)} total`},e.errorsByType.map(m=>ze.default.createElement(n3,{key:m.type},ze.default.createElement(o3,{color:DQ(m.type)}),ze.default.createElement("span",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--color-text-cell)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.type),ze.default.createElement(i3,{pct:t.errorTotal?Wt(m.count)/t.errorTotal*100:0,color:DQ(m.type)}),ze.default.createElement(ys,{weight:600,width:32},Math.round(Wt(m.count))))))))))}function ACe(e,t){let{series:r,totals:n,deltas:o}=e,a=r.length,i=zQ(e),s=r.map(I=>new Date(I.ts)),l=e.windowMinutes>=2880,u=I=>Number.isNaN(I.getTime())?"":l?`${hCe[I.getDay()]} ${s3(I.getHours())}h`:`${s3(I.getHours())}:${s3(I.getMinutes())}`,c=a?[0,1,2,3,4,5,6].map(I=>I===6?"now":u(s[Math.round(I*(a-1)/6)])):[],d=I=>r.map(V=>Wt(V[I])),p=d("requests"),f=d("errors"),m=d("tokens_in"),y=d("tokens_out"),b=d("cost"),g=d("tool_calls"),h=d("tool_errors"),v=I=>r.map(V=>V[I]==null?null:Wt(V[I])),x=v("p50_ms"),S=v("p95_ms"),_=v("p99_ms"),w=r.map(I=>I.requests_by_agent||{}),k=e.agents.map(I=>I.name).filter(Boolean);w.forEach(I=>Object.keys(I).forEach(V=>{k.includes(V)||k.push(V)}));let A=k.length?k.map(I=>({label:I,color:t(I),data:w.map(V=>Wt(V[I]))})):[{label:"requests",color:Ih[0],data:p}],C=Z0.map(I=>({label:I.type,color:I.color,data:r.map(V=>Wt((V.errors_by_type||{})[I.type]))})),T=(Wt(e.bucketSeconds)||(a>1?(s[1]-s[0])/1e3:0))*1e3,$=(I,V)=>{if(!I||a<2||!T)return null;let F=new Date(I.ts).getTime();if(Number.isNaN(F))return null;let Qe=Math.min(a-1,Math.max(0,Math.floor((F-s[0].getTime())/T)))/(a-1);return{left:Qe*100,label:V,flip:Qe>.55}},Q=e.markers.filter(I=>I.kind==="deploy").sort((I,V)=>new Date(I.ts)-new Date(V.ts)).slice(-mCe).map(I=>$(I,I.label)).filter(Boolean),B=e.markers.find(I=>I.kind==="incident"),K=B?$(B,bCe(B)):null,N=K?[K]:[],O=Ph(Ys(p)*1.1),D=Ph(Ys(f)*1.15),P=Ph(Math.max(Ys(_),Ys(S),Ys(x))*1.05),j=Ph(Math.max(Ys(m),Ys(y))*1.1),M=t3(Ys(b)*1.1),W=OQ(M),Y=Ph(Ys(g)*1.1),L=Wt(n.requests),G=Wt(n.requests_per_minute),q=Wt(n.errors),oe=Wt(n.error_rate),Me=Wt(n.tokens)||Wt(n.tokens_in)+Wt(n.tokens_out),ge=Wt(n.cost),ue=n.cost_per_request!=null?Wt(n.cost_per_request):L?ge/L:0,R=Wt(n.tool_calls),te=n.tool_error_rate!=null?Wt(n.tool_error_rate):R?Wt(n.tool_errors)/R*100:0,Be=Wt(e.errorsByType.find(I=>I.type===Z0[0].type)?.count),ke=[{title:"Requests",sub:`per ${i.bucket} \xB7 stacked by agent`,value:`${On(L)} \xB7 ${G.toFixed(1)}/min`,legend:A.map(I=>({label:I.label,color:I.color})),ticks:vf(O,On),buckets:Y0(A,O,I=>`${u(s[I])} \xB7 ${Math.round(p[I])} req`),markers:Q},{title:"Latency",sub:"generation percentiles",value:`p50 ${zn(n.p50_ms)}`,legend:[{label:`p50 ${zn(n.p50_ms)}`,color:"var(--color-token-in)"},{label:`p95 ${zn(n.p95_ms)}`,color:"var(--color-warning)"},{label:`p99 ${zn(n.p99_ms)}`,color:"var(--color-error)"}],ticks:vf(P,vCe),lines:[{points:xf(_,P),color:"var(--color-error)",width:1.5},{points:xf(S,P),color:"var(--color-warning)",width:1.5},{points:xf(x,P),color:"var(--color-token-in)",width:2}],areas:[{points:X2(x,P),color:"var(--color-token-in)"}],markers:N},{title:"Errors",sub:`per ${i.bucket} \xB7 by type`,value:`${oe.toFixed(2)}% \xB7 ${J2(Math.round(q),"error")}`,valueColor:oe>1?"var(--color-error)":Q2,legend:C.map(I=>({label:I.label,color:I.color})),ticks:vf(D,I=>String(Math.round(I))),buckets:Y0(C,D,I=>`${u(s[I])} \xB7 ${J2(Math.round(f[I]),"error")}`),markers:N},{title:"Tokens",sub:`per ${i.bucket} \xB7 input / output`,value:`${On(Me)} \xB7 in ${On(n.tokens_in)} / out ${On(n.tokens_out)}`,legend:[{label:"input",color:"var(--color-token-in)"},{label:"output",color:"var(--color-token-out)"}],ticks:vf(j,On),lines:[{points:xf(m,j),color:"var(--color-token-in)",width:1.5},{points:xf(y,j),color:"var(--color-token-out)",width:1.5}],areas:[{points:X2(m,j),color:"var(--color-token-in)"},{points:X2(y,j),color:"var(--color-token-out)"}]},{title:"Cost",sub:`estimated \xB7 per ${i.bucket}`,value:`${y0(ge)} \xB7 ${v0(ue)}/req`,legend:[{label:"spend",color:"var(--color-text-secondary)"}],ticks:vf(M,I=>v0(I,W)),buckets:Y0([{color:"var(--color-text-secondary)",data:b}],M,I=>`${u(s[I])} \xB7 ${v0(b[I],W)}`)},{title:"Tool calls",sub:`per ${i.bucket} \xB7 MCP + agent-defined`,value:`${On(R)} \xB7 ${te.toFixed(1)}% errors`,legend:[{label:"calls",color:"var(--span-tool)"},{label:"errors",color:"var(--color-error)"}],ticks:vf(Y,On),buckets:Y0([{color:"var(--span-tool)",data:g.map((I,V)=>Math.max(0,I-h[V]))},{color:"var(--color-error)",data:h}],Y,I=>`${u(s[I])} \xB7 ${J2(Math.round(g[I]),"call")}`)}],ee=(I,V,F)=>{let ce=I==null?null:Wt(I);return ce==null||ce===0?"muted":V&&V(ce)?"success":F&&F(ce)?"error":"muted"},z=(I,V,F,ce,Qe,it,me,le)=>({label:I,value:V,unit:F,sub:ce,delta:Qe,deltaColor:gCe[it],spark:PQ(me),sparkColor:le});return{signals:[z("Requests",On(L),"",`${G.toFixed(1)} req/min`,fh(o.requests_pct),ee(o.requests_pct,I=>I>0,null),p,"var(--color-token-in)"),z("Latency",zn(n.p50_ms),"p50",`p95 ${zn(n.p95_ms)} \xB7 p99 ${zn(n.p99_ms)}`,fh(o.p50_pct),ee(o.p50_pct,I=>I<0,I=>I>0),x,"var(--color-token-in)"),z("Error rate",oe.toFixed(2),"%",`${J2(Math.round(q),"error")} \xB7 ${Math.round(Be)} rate-limited`,fh(o.error_rate_pt," pt",1),ee(o.error_rate_pt,I=>I<0,I=>I>0),f,"var(--color-error)"),z("Tokens",On(Me),"",`in ${On(n.tokens_in)} \xB7 out ${On(n.tokens_out)}`,fh(o.tokens_pct),"muted",m.map((I,V)=>I+y[V]),"var(--color-token-in)"),z("Cost",y0(ge),"",`${v0(ue)} per request`,fh(o.cost_pct),"muted",b,"var(--color-text-secondary)")],panels:ke,xLabels:c,slowestP95:Ys(e.actions.map(I=>I.p95_ms)),errorTotal:yCe(e.errorsByType.map(I=>I.count))}}var Fe=Z(J());var ECe=6e4,NCe=[{value:24,label:"24h"},{value:168,label:"7d"},{value:720,label:"30d"}],BQ={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)"}},J0=e=>e==null?"0":e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e),FQ=e=>e==null?"\u2014":e>=1e3?`${(e/1e3).toFixed(2)}s`:`${Math.round(e)}ms`,TCe=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 c3({onOpenServer:e}){let{darkMode:t}=ut(),[r,n]=(0,Fe.useState)(null),[o,a]=(0,Fe.useState)(!0),[i,s]=(0,Fe.useState)(null),[l,u]=(0,Fe.useState)("all"),[c,d]=(0,Fe.useState)(""),[p,f]=(0,Fe.useState)(168),[m,y]=(0,Fe.useState)(null),b=(0,Fe.useCallback)(async()=>{try{let A=new URLSearchParams({hours:String(p)});l!=="all"&&A.set("origin",l),c.trim()&&A.set("q",c.trim());let C=await fetch(`/api/tools?${A}`);if(!C.ok)throw new Error(`Request failed (${C.status})`);n(await C.json()),s(null)}catch(A){s(A.message)}finally{a(!1)}},[l,c,p]);(0,Fe.useEffect)(()=>{let A=setTimeout(b,c?250:0);return()=>clearTimeout(A)},[b,c]),(0,Fe.useEffect)(()=>{let A=setInterval(b,ECe);return()=>clearInterval(A)},[b]);let g={bg:t?"transparent":"#f9fafb",cardBg:t?"rgba(255,255,255,0.05)":"#ffffff",border:t?"rgba(255,255,255,0.1)":"#e5e7eb",borderLight:t?"rgba(255,255,255,0.05)":"#f3f4f6",textPrimary:t?"#ffffff":"#111827",textSecondary:t?"rgba(255,255,255,0.6)":"#6b7280",textMuted:t?"rgba(255,255,255,0.4)":"#9ca3af",textCell:t?"rgba(255,255,255,0.7)":"#4b5563",error:"#ef4444",errorBg:t?"rgba(239,68,68,0.2)":"#fef2f2",inputBg:t?"rgba(255,255,255,0.06)":"#ffffff"},h=A=>{let C=BQ[A]||BQ.agent;return{fg:t?C.dark:C.light,bg:t?C.bgDark:C.bgLight}};if(o&&!r)return Fe.default.createElement("div",{className:"flex items-center justify-center h-64"},Fe.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));if(i&&!r)return Fe.default.createElement("div",{style:{padding:"24px"}},Fe.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:g.textPrimary,margin:0}},"Tools"),Fe.default.createElement("div",{style:{marginTop:"16px",padding:"12px 16px",background:g.errorBg,borderRadius:"8px",color:g.error,fontSize:"14px"}},"Failed to load tools: ",i));let{tools:v=[],summary:x={},origins:S={},sources:_={}}=r||{},w=!_.telemetry&&!_.generations&&!_.messages&&!_.declared,k=({label:A,value:C,hint:T,tone:$})=>Fe.default.createElement("div",{style:{background:g.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${g.border}`}},Fe.default.createElement("div",{style:{fontSize:"11px",color:g.textSecondary,textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"8px"}},A),Fe.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",fontFamily:"monospace",color:$||g.textPrimary}},C),T&&Fe.default.createElement("div",{style:{fontSize:"13px",color:g.textSecondary,marginTop:"8px"}},T));return Fe.default.createElement("div",{style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)",backgroundColor:g.bg}},Fe.default.createElement("div",{style:{padding:"24px 24px 16px 24px",borderBottom:`1px solid ${g.border}`,marginBottom:"16px"}},Fe.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"16px",flexWrap:"wrap"}},Fe.default.createElement("div",null,Fe.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:g.textPrimary,margin:0}},"Tools"),Fe.default.createElement("p",{style:{fontSize:"14px",color:g.textSecondary,marginTop:"4px"}},"Detected from telemetry spans, generation request bodies, and agent records \u2014 nothing to register by hand")),Fe.default.createElement("div",{style:{display:"flex",gap:"4px"}},NCe.map(A=>Fe.default.createElement("button",{key:A.value,onClick:()=>f(A.value),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${p===A.value?"#ef4444":g.border}`,background:p===A.value?t?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:p===A.value?"#ef4444":g.textSecondary}},A.label))))),Fe.default.createElement("div",{style:{padding:"0 24px 24px 24px"}},Fe.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px",marginBottom:"16px"}},Fe.default.createElement(k,{label:"Tools Detected",value:J0(x.total_tools),hint:`${x.active_tools||0} called in this window`}),Fe.default.createElement(k,{label:"Tool Calls",value:J0(x.total_calls),hint:`${FQ(x.avg_duration_ms)} average`}),Fe.default.createElement(k,{label:"Error Rate",value:`${x.error_rate||0}%`,tone:x.error_rate>5?g.error:g.textPrimary,hint:`${x.total_errors||0} failed call${x.total_errors===1?"":"s"}`}),Fe.default.createElement(k,{label:"From MCP",value:J0(x.mcp_tools),hint:`across ${x.mcp_servers_active||0} active server${x.mcp_servers_active===1?"":"s"}`}),Fe.default.createElement(k,{label:"Never Called",value:J0(x.unused_tools),hint:"offered or configured, unused"})),Fe.default.createElement("div",{style:{display:"flex",gap:"8px",marginBottom:"16px",flexWrap:"wrap",alignItems:"center"}},Object.entries(S).map(([A,C])=>Fe.default.createElement("button",{key:A,onClick:()=>u(A),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${l===A?"#ef4444":g.border}`,background:l===A?t?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:l===A?"#ef4444":g.textSecondary}},C)),Fe.default.createElement("input",{value:c,onChange:A=>d(A.target.value),placeholder:"Filter by name\u2026",style:{marginLeft:"auto",padding:"6px 12px",fontSize:"13px",borderRadius:"6px",minWidth:"200px",border:`1px solid ${g.border}`,background:g.inputBg,color:g.textPrimary}})),Fe.default.createElement("div",{style:{background:g.cardBg,borderRadius:"12px",border:`1px solid ${g.border}`,overflow:"hidden"}},v.length===0?Fe.default.createElement("div",{style:{textAlign:"center",padding:"48px 24px",color:g.textSecondary,fontSize:"14px"}},w?"No tool activity yet \u2014 run an agent, or point your app's ActiveAgent telemetry at this workspace":"No tools match these filters"):Fe.default.createElement("div",{style:{overflowX:"auto"}},Fe.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse",minWidth:"760px"}},Fe.default.createElement("thead",null,Fe.default.createElement("tr",{style:{textAlign:"left",fontSize:"13px",color:g.textSecondary,borderBottom:`1px solid ${g.border}`}},Fe.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500"}},"Tool"),Fe.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500"}},"Source"),Fe.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Calls"),Fe.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Errors"),Fe.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Avg"),Fe.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Last seen"))),Fe.default.createElement("tbody",null,v.map((A,C)=>{let T=h(A.origin),$=m===A.name;return Fe.default.createElement(Fe.default.Fragment,{key:A.name},Fe.default.createElement("tr",{onClick:()=>y($?null:A.name),style:{borderBottom:C{Q.stopPropagation(),A.mcp_server&&e&&e(A.mcp_server)},style:{fontSize:"11px",padding:"3px 8px",borderRadius:"6px",border:"none",background:T.bg,color:T.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)),Fe.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:g.textCell,fontFamily:"monospace"}},J0(A.calls)),Fe.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",fontFamily:"monospace",color:A.errors>0?g.error:g.textCell}},A.errors),Fe.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:g.textCell,fontFamily:"monospace"}},FQ(A.avg_duration_ms)),Fe.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:g.textMuted,fontSize:"13px"}},TCe(A.last_seen))),$&&Fe.default.createElement("tr",{style:{borderBottom:CFe.default.createElement("span",{key:A,style:{color:_[A]?g.textSecondary:g.textMuted,opacity:_[A]?1:.5}},_[A]?"\u25CF":"\u25CB"," ",C)))))}function OCe({tool:e,colors:t,tone:r,darkMode:n}){let o=({label:a,children:i})=>Fe.default.createElement("div",{style:{display:"flex",gap:"12px",fontSize:"13px",alignItems:"baseline"}},Fe.default.createElement("span",{style:{color:t.textMuted,minWidth:"108px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em"}},a),Fe.default.createElement("span",{style:{color:t.textCell,flex:1,wordBreak:"break-word"}},i));return Fe.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}`}},Fe.default.createElement(o,{label:"Full name"},Fe.default.createElement("code",{style:{fontFamily:"monospace"}},e.name)),e.description&&Fe.default.createElement(o,{label:"Description"},e.description),Fe.default.createElement(o,{label:"Parameters"},e.parameters?.length>0?Fe.default.createElement("code",{style:{fontFamily:"monospace",color:r.fg}},e.parameters.join(", ")):Fe.default.createElement("span",{style:{color:t.textMuted}},"none recorded")),Fe.default.createElement(o,{label:"Agents"},e.agents?.length>0?e.agents.join(", "):Fe.default.createElement("span",{style:{color:t.textMuted}},"\u2014")),e.configured_by?.length>0&&Fe.default.createElement(o,{label:"Configured by"},e.configured_by.join(", ")),Fe.default.createElement(o,{label:"Call breakdown"},Fe.default.createElement("span",{style:{fontFamily:"monospace"}},e.traced_calls," traced \xB7 ",e.requested," requested \xB7 ",e.results," results")),e.sample_arguments&&Fe.default.createElement(o,{label:"Last arguments"},Fe.default.createElement("code",{style:{fontFamily:"monospace",fontSize:"12px",color:t.textMuted}},e.sample_arguments)),e.last_error&&Fe.default.createElement(o,{label:"Last error"},Fe.default.createElement("span",{style:{color:t.error}},e.last_error)),Fe.default.createElement(o,{label:"Detected from"},e.detected_from?.join(", ")||"\u2014"))}var qe=Z(J());var PCe=6e4,MCe=[{value:24,label:"24h"},{value:168,label:"7d"},{value:720,label:"30d"}],ICe=[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"configured",label:"Configured"},{value:"available",label:"Available"}],DCe=["http","streamable_http","sse"],UQ={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)"}},Q0=e=>e==null?"0":e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e);function d3({focusServer:e,onOpenTools:t}){let{darkMode:r}=ut(),[n,o]=(0,qe.useState)(null),[a,i]=(0,qe.useState)(!0),[s,l]=(0,qe.useState)(null),[u,c]=(0,qe.useState)("all"),[d,p]=(0,qe.useState)(168),[f,m]=(0,qe.useState)(e||null),[y,b]=(0,qe.useState)(null),[g,h]=(0,qe.useState)(null),v=(0,qe.useCallback)(async()=>{try{let B=await fetch(`/api/mcp_servers?hours=${d}`);if(!B.ok)throw new Error(`Request failed (${B.status})`);o(await B.json()),l(null)}catch(B){l(B.message)}finally{i(!1)}},[d]);(0,qe.useEffect)(()=>{v();let B=setInterval(v,PCe);return()=>clearInterval(B)},[v]),(0,qe.useEffect)(()=>{e&&m(e)},[e]);let x={bg:r?"transparent":"#f9fafb",cardBg:r?"rgba(255,255,255,0.05)":"#ffffff",border:r?"rgba(255,255,255,0.1)":"#e5e7eb",borderLight:r?"rgba(255,255,255,0.05)":"#f3f4f6",textPrimary:r?"#ffffff":"#111827",textSecondary:r?"rgba(255,255,255,0.6)":"#6b7280",textMuted:r?"rgba(255,255,255,0.4)":"#9ca3af",textCell:r?"rgba(255,255,255,0.7)":"#4b5563",error:"#ef4444",errorBg:r?"rgba(239,68,68,0.2)":"#fef2f2",codeBg:r?"rgba(0,0,0,0.35)":"#f9fafb"},S=B=>{let K=UQ[B]||UQ.available;return{fg:r?K.dark:K.light,bg:r?K.bgDark:K.bgLight}},_=async B=>{b(B.key),h(null);try{let K=await fetch(`/api/mcp_servers/${encodeURIComponent(B.key)}/launch`,{method:"POST",headers:{"Content-Type":"application/json"}}),N=await K.json();if(!K.ok)throw new Error(N.reason||N.error||`Launch failed (${K.status})`);h({kind:"ok",text:`${B.name} is starting in a sandbox (${N.sandbox.session_id.slice(0,8)}\u2026)`}),v()}catch(K){h({kind:"error",text:K.message})}finally{b(null)}};if(a&&!n)return qe.default.createElement("div",{className:"flex items-center justify-center h-64"},qe.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));if(s&&!n)return qe.default.createElement("div",{style:{padding:"24px"}},qe.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:x.textPrimary,margin:0}},"MCP Services"),qe.default.createElement("div",{style:{marginTop:"16px",padding:"12px 16px",background:x.errorBg,borderRadius:"8px",color:x.error,fontSize:"14px"}},"Failed to load MCP services: ",s));let{servers:w=[],summary:k={},sandboxes:A=[],statuses:C={}}=n||{},T=u==="all"?w:w.filter(B=>B.status===u),$=new Set(A.flatMap(B=>B.mcp_servers||[])),Q=({label:B,value:K,hint:N})=>qe.default.createElement("div",{style:{background:x.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${x.border}`}},qe.default.createElement("div",{style:{fontSize:"11px",color:x.textSecondary,textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"8px"}},B),qe.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",fontFamily:"monospace",color:x.textPrimary}},K),N&&qe.default.createElement("div",{style:{fontSize:"13px",color:x.textSecondary,marginTop:"8px"}},N));return qe.default.createElement("div",{style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)",backgroundColor:x.bg}},qe.default.createElement("div",{style:{padding:"24px 24px 16px 24px",borderBottom:`1px solid ${x.border}`,marginBottom:"16px"}},qe.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"16px",flexWrap:"wrap"}},qe.default.createElement("div",null,qe.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:x.textPrimary,margin:0}},"MCP Services"),qe.default.createElement("p",{style:{fontSize:"14px",color:x.textSecondary,marginTop:"4px"}},"Servers detected from your agents' traffic, plus the defaults you can connect or run in a sandbox")),qe.default.createElement("div",{style:{display:"flex",gap:"4px"}},MCe.map(B=>qe.default.createElement("button",{key:B.value,onClick:()=>p(B.value),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${d===B.value?"#ef4444":x.border}`,background:d===B.value?r?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:d===B.value?"#ef4444":x.textSecondary}},B.label))))),qe.default.createElement("div",{style:{padding:"0 24px 24px 24px"}},qe.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px",marginBottom:"16px"}},qe.default.createElement(Q,{label:"Active",value:Q0(k.active),hint:"called in this window"}),qe.default.createElement(Q,{label:"Configured",value:Q0(k.configured),hint:"declared, no traffic yet"}),qe.default.createElement(Q,{label:"Available",value:Q0(k.available),hint:"defaults you can connect"}),qe.default.createElement(Q,{label:"Tool Calls",value:Q0(k.total_calls),hint:"through MCP servers"})),g&&qe.default.createElement("div",{style:{marginBottom:"16px",padding:"12px 16px",borderRadius:"8px",fontSize:"14px",background:g.kind==="error"?x.errorBg:r?"rgba(34,197,94,0.15)":"#f0fdf4",color:g.kind==="error"?x.error:r?"#86efac":"#15803d"}},g.text),qe.default.createElement("div",{style:{display:"flex",gap:"8px",marginBottom:"16px",flexWrap:"wrap"}},ICe.map(B=>qe.default.createElement("button",{key:B.value,onClick:()=>c(B.value),title:C[B.value]||"Every MCP service known to this workspace",style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${u===B.value?"#ef4444":x.border}`,background:u===B.value?r?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:u===B.value?"#ef4444":x.textSecondary}},B.label))),qe.default.createElement("div",{style:{display:"grid",gap:"12px"}},T.length===0?qe.default.createElement("div",{style:{background:x.cardBg,borderRadius:"12px",border:`1px solid ${x.border}`,textAlign:"center",padding:"48px 24px",color:x.textSecondary,fontSize:"14px"}},"No MCP services in this state"):T.map(B=>{let K=S(B.status),N=f===B.key,O=$.has(B.key);return qe.default.createElement("div",{key:B.key,style:{background:x.cardBg,borderRadius:"12px",border:`1px solid ${N?K.fg:x.border}`,overflow:"hidden"}},qe.default.createElement("div",{onClick:()=>m(N?null:B.key),style:{padding:"16px 20px",cursor:"pointer",display:"flex",alignItems:"center",gap:"16px",flexWrap:"wrap"}},qe.default.createElement("div",{style:{flex:1,minWidth:"220px"}},qe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},qe.default.createElement("span",{style:{fontSize:"15px",fontWeight:"600",color:x.textPrimary}},B.name),qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:K.bg,color:K.fg,textTransform:"uppercase",letterSpacing:"0.04em"}},B.status),B.first_party&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(239,68,68,0.15)":"#fef2f2",color:"#ef4444"}},"first-party"),Xd(B)&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(59,130,246,0.15)":"#eff6ff",color:r?"#93c5fd":"#1d4ed8"},title:"The app runtime of a checkout sandbox started from Settings \u2192 Integrations"},"sandbox runtime"),nv(B)&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(245,158,11,0.15)":"#fffbeb",color:r?"#fcd34d":"#b45309"},title:"This checkout sandbox has stopped; agents may still name its runtime"},"not running"),tw(B)&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:x.borderLight,color:x.textMuted},title:"Seen in your traffic but not in the platform catalog"},"undocumented"),O&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(34,197,94,0.15)":"#f0fdf4",color:r?"#86efac":"#15803d"}},"\u25CF sandbox running")),B.description&&qe.default.createElement("div",{style:{fontSize:"13px",color:x.textSecondary,marginTop:"4px"}},B.description)),qe.default.createElement("div",{style:{display:"flex",gap:"24px",alignItems:"center"}},qe.default.createElement("div",{style:{textAlign:"right"}},qe.default.createElement("div",{style:{fontSize:"18px",fontFamily:"monospace",fontWeight:"600",color:x.textPrimary}},Q0(B.calls)),qe.default.createElement("div",{style:{fontSize:"11px",color:x.textMuted}},"calls")),qe.default.createElement("div",{style:{textAlign:"right"}},qe.default.createElement("div",{style:{fontSize:"18px",fontFamily:"monospace",fontWeight:"600",color:B.errors>0?x.error:x.textPrimary}},B.errors||0),qe.default.createElement("div",{style:{fontSize:"11px",color:x.textMuted}},"errors")),B.launchable&&qe.default.createElement("button",{onClick:D=>{D.stopPropagation(),_(B)},disabled:y===B.key,style:{padding:"8px 14px",fontSize:"13px",borderRadius:"6px",border:"none",background:y===B.key?x.borderLight:"#ef4444",color:y===B.key?x.textMuted:"#ffffff",cursor:y===B.key?"wait":"pointer",fontWeight:"500",whiteSpace:"nowrap"},title:`Start ${B.name} in a sandbox session`},y===B.key?"Starting\u2026":O?"Start another":"Start in sandbox"))),N&&qe.default.createElement(jCe,{server:B,colors:x,tone:K,onOpenTools:t}))})),A.length>0&&qe.default.createElement("div",{style:{marginTop:"24px",background:x.cardBg,borderRadius:"12px",border:`1px solid ${x.border}`,padding:"20px"}},qe.default.createElement("h3",{style:{fontSize:"16px",fontWeight:"600",color:x.textPrimary,margin:"0 0 12px 0"}},"Running sandboxes"),qe.default.createElement("div",{style:{display:"grid",gap:"8px"}},A.map(B=>qe.default.createElement("div",{key:B.session_id,style:{display:"flex",justifyContent:"space-between",gap:"12px",fontSize:"13px",color:x.textCell,flexWrap:"wrap"}},qe.default.createElement("span",{style:{fontFamily:"monospace"}},(B.mcp_servers||[]).join(", ")||B.sandbox_type),qe.default.createElement("span",{style:{color:x.textMuted}},B.status," \xB7 ",B.runs_count,"/",B.max_runs," runs \xB7 expires ",new Date(B.expires_at).toLocaleTimeString())))))))}function jCe({server:e,colors:t,tone:r,onOpenTools:n}){let o=({label:i,children:s})=>qe.default.createElement("div",{style:{display:"flex",gap:"12px",fontSize:"13px",alignItems:"baseline"}},qe.default.createElement("span",{style:{color:t.textMuted,minWidth:"120px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em"}},i),qe.default.createElement("span",{style:{color:t.textCell,flex:1,wordBreak:"break-word"}},s)),a=e.command||e.url;return qe.default.createElement("div",{style:{padding:"0 20px 20px 20px",display:"grid",gap:"10px"}},qe.default.createElement("div",{style:{height:"1px",background:t.borderLight,marginBottom:"4px"}}),a&&qe.default.createElement(o,{label:DCe.includes(e.transport)?"Endpoint":"Command"},qe.default.createElement("code",{style:{fontFamily:"monospace",fontSize:"12px",padding:"4px 8px",borderRadius:"4px",background:t.codeBg,display:"inline-block"}},a)),e.transport&&qe.default.createElement(o,{label:"Transport"},e.transport),e.categories?.length>0&&qe.default.createElement(o,{label:"Categories"},e.categories.join(", ")),e.requires_credentials?.length>0&&qe.default.createElement(o,{label:"Requires"},e.requires_credentials.join(", ")),qe.default.createElement(o,{label:e.tool_count>0?"Tools used":"Tools offered"},e.tools?.length>0?qe.default.createElement("span",{style:{display:"flex",gap:"6px",flexWrap:"wrap"}},e.tools.map(i=>qe.default.createElement("code",{key:i,style:{fontFamily:"monospace",fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r.bg,color:r.fg}},i))):qe.default.createElement("span",{style:{color:t.textMuted}},"none recorded")),e.agents?.length>0&&qe.default.createElement(o,{label:"Used by"},e.agents.join(", ")),e.configured_by?.length>0&&qe.default.createElement(o,{label:"Configured by"},e.configured_by.join(", ")),e.last_seen&&qe.default.createElement(o,{label:"Last call"},new Date(e.last_seen).toLocaleString()),qe.default.createElement("div",{style:{display:"flex",gap:"12px",marginTop:"4px",flexWrap:"wrap"}},e.docs_url&&qe.default.createElement("a",{href:e.docs_url,target:"_blank",rel:"noopener noreferrer",style:{fontSize:"13px",color:"#ef4444",textDecoration:"none"}},"Documentation \u2192"),e.calls>0&&n&&qe.default.createElement("button",{onClick:()=>n(e.key),style:{fontSize:"13px",color:"#ef4444",background:"none",border:"none",padding:0,cursor:"pointer"}},"View its tools \u2192")))}var re=Z(J());var hd=Z(J());var eA={logger:typeof console<"u"?console:void 0,WebSocket:typeof WebSocket<"u"?WebSocket:void 0},Bn={log(...e){this.enabled&&(e.push(Date.now()),eA.logger.log("[ActionCable]",...e))}},eb=()=>new Date().getTime(),R2=e=>(eb()-e)/1e3,tb=class{constructor(t){this.visibilityDidChange=this.visibilityDidChange.bind(this),this.connection=t,this.reconnectAttempts=0}start(){this.isRunning()||(this.startedAt=eb(),delete this.stoppedAt,this.startPolling(),addEventListener("visibilitychange",this.visibilityDidChange),Bn.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`))}stop(){this.isRunning()&&(this.stoppedAt=eb(),this.stopPolling(),removeEventListener("visibilitychange",this.visibilityDidChange),Bn.log("ConnectionMonitor stopped"))}isRunning(){return this.startedAt&&!this.stoppedAt}recordMessage(){this.pingedAt=eb()}recordConnect(){this.reconnectAttempts=0,delete this.disconnectedAt,Bn.log("ConnectionMonitor recorded connect")}recordDisconnect(){this.disconnectedAt=eb(),Bn.log("ConnectionMonitor recorded disconnect")}startPolling(){this.stopPolling(),this.poll()}stopPolling(){clearTimeout(this.pollTimeout)}poll(){this.pollTimeout=setTimeout((()=>{this.reconnectIfStale(),this.poll()}),this.getPollInterval())}getPollInterval(){let{staleThreshold:t,reconnectionBackoffRate:r}=this.constructor,n=Math.pow(1+r,Math.min(this.reconnectAttempts,10)),a=(this.reconnectAttempts===0?1:r)*Math.random();return t*1e3*n*(1+a)}reconnectIfStale(){this.connectionIsStale()&&(Bn.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${R2(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`),this.reconnectAttempts++,this.disconnectedRecently()?Bn.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${R2(this.disconnectedAt)} s`):(Bn.log("ConnectionMonitor reopening"),this.connection.reopen()))}get refreshedAt(){return this.pingedAt?this.pingedAt:this.startedAt}connectionIsStale(){return R2(this.refreshedAt)>this.constructor.staleThreshold}disconnectedRecently(){return this.disconnectedAt&&R2(this.disconnectedAt){(this.connectionIsStale()||!this.connection.isOpen())&&(Bn.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`),this.connection.reopen())}),200)}};tb.staleThreshold=6;tb.reconnectionBackoffRate=.15;var HQ={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:R0,protocols:p3}=HQ,$Ce=p3.slice(0,p3.length-1),WQ=[].indexOf,rb=class{constructor(t){this.open=this.open.bind(this),this.consumer=t,this.subscriptions=this.consumer.subscriptions,this.monitor=new tb(this),this.disconnected=!0}send(t){return this.isOpen()?(this.webSocket.send(JSON.stringify(t)),!0):!1}open(){if(this.isActive())return Bn.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`),!1;{let t=[...p3,...this.consumer.subprotocols||[]];return Bn.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${t}`),this.webSocket&&this.uninstallEventHandlers(),this.webSocket=new eA.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(Bn.log(`Reopening WebSocket, current state is ${this.getState()}`),this.isActive())try{return this.close()}catch(t){Bn.log("Failed to reopen WebSocket",t)}finally{Bn.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 WQ.call($Ce,this.getProtocol())>=0}isState(...t){return WQ.call(t,this.getState())>=0}getState(){if(this.webSocket){for(let t in eA.WebSocket)if(eA.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(){}}};rb.reopenDelay=500;rb.prototype.events={message(e){if(!this.isProtocolSupported())return;let{identifier:t,message:r,reason:n,reconnect:o,type:a}=JSON.parse(e.data);switch(this.monitor.recordMessage(),a){case R0.welcome:return this.triedToReconnect()&&(this.reconnectAttempted=!0),this.monitor.recordConnect(),this.subscriptions.reload();case R0.disconnect:return Bn.log(`Disconnecting. Reason: ${n}`),this.close({allowReconnect:o});case R0.ping:return null;case R0.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 R0.rejection:return this.subscriptions.reject(t);default:return this.subscriptions.notify(t,"received",r)}},open(){if(Bn.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`),this.disconnected=!1,!this.isProtocolSupported())return Bn.log("Protocol is unsupported. Stopping monitor and disconnecting."),this.close({allowReconnect:!1})},close(e){if(Bn.log("WebSocket onclose event"),!this.disconnected)return this.disconnected=!0,this.monitor.recordDisconnect(),this.subscriptions.notifyAll("disconnected",{willAttemptReconnect:this.monitor.isRunning()})},error(){Bn.log("WebSocket onerror event")}};var LCe=function(e,t){if(t!=null)for(let r in t){let n=t[r];e[r]=n}return e},f3=class{constructor(t,r={},n){this.consumer=t,this.identifier=JSON.stringify(r),LCe(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)}},m3=class{constructor(t){this.subscriptions=t,this.pendingSubscriptions=[]}guarantee(t){this.pendingSubscriptions.indexOf(t)==-1?(Bn.log(`SubscriptionGuarantor guaranteeing ${t.identifier}`),this.pendingSubscriptions.push(t)):Bn.log(`SubscriptionGuarantor already guaranteeing ${t.identifier}`),this.startGuaranteeing()}forget(t){Bn.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=>{Bn.log(`SubscriptionGuarantor resubscribing ${t.identifier}`),this.subscriptions.subscribe(t)}))}),500)}},g3=class{constructor(t){this.consumer=t,this.guarantor=new m3(this),this.subscriptions=[]}create(t,r){let n=t,o=typeof n=="object"?n:{channel:n},a=new f3(this.consumer,o,r);return this.add(a)}add(t){return this.subscriptions.push(t),this.consumer.ensureActiveConnection(),this.notify(t,"initialized"),this.subscribe(t),t}remove(t){return this.forget(t),this.findAll(t.identifier).length||this.sendCommand(t,"unsubscribe"),t}reject(t){return this.findAll(t).map((r=>(this.forget(r),this.notify(r,"rejected"),r)))}forget(t){return this.guarantor.forget(t),this.subscriptions=this.subscriptions.filter((r=>r!==t)),t}findAll(t){return this.subscriptions.filter((r=>r.identifier===t))}reload(){return this.subscriptions.map((t=>this.subscribe(t)))}notifyAll(t,...r){return this.subscriptions.map((n=>this.notify(n,t,...r)))}notify(t,r,...n){let o;return typeof t=="string"?o=this.findAll(t):o=[t],o.map((a=>typeof a[r]=="function"?a[r](...n):void 0))}subscribe(t){this.sendCommand(t,"subscribe")&&this.guarantor.guarantee(t)}confirmSubscription(t){Bn.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})}},h3=class{constructor(t){this._url=t,this.subscriptions=new g3(this),this.connection=new rb(this),this.subprotocols=[]}get url(){return zCe(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 zCe(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 qQ(e=BCe("url")||HQ.default_mount_path){return new h3(e)}function BCe(e){let t=document.head.querySelector(`meta[name='action-cable-${e}']`);if(t)return t.getAttribute("content")}var tA=null;function FCe(){if(tA===null)try{tA=qQ()}catch{tA=!1}return tA||null}function jh(e,t,r,n=!0){let o=(0,hd.useRef)(null),a=(0,hd.useRef)(r);return(0,hd.useEffect)(()=>{a.current=r},[r]),(0,hd.useEffect)(()=>{if(!n||!e)return;let s=FCe();if(s)return o.current=s.subscriptions.create({channel:e,...t},{connected(){console.log(`[ActionCable] Connected to ${e}`,t)},disconnected(){console.log(`[ActionCable] Disconnected from ${e}`)},received(l){console.log(`[ActionCable] Received on ${e}:`,l),a.current&&a.current(l)},rejected(){console.warn(`[ActionCable] Subscription rejected for ${e}`)}}),()=>{o.current&&(console.log(`[ActionCable] Unsubscribing from ${e}`),o.current.unsubscribe(),o.current=null)}},[e,JSON.stringify(t),n]),{send:(0,hd.useCallback)((s,l)=>{o.current&&o.current.perform(s,l)},[])}}function $h(e){return!e||typeof e!="object"||typeof e.type!="string"?null:{type:e.type,id:e.id??null,status:e.status??null}}var rA=[{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"}],UCe={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"}]},KQ={max_runs:10,timeout_seconds:300,session_duration_minutes:15};function y3({initialType:e="playwright_mcp",onClose:t,showAgents:r=!1}){let[n,o]=(0,re.useState)(e),[a,i]=(0,re.useState)(null),[s,l]=(0,re.useState)(""),[u,c]=(0,re.useState)([]),[d,p]=(0,re.useState)(null),[f,m]=(0,re.useState)(!1),[y,b]=(0,re.useState)(!1),[g,h]=(0,re.useState)(null),[v,x]=(0,re.useState)(null),[S,_]=(0,re.useState)(!1),[w,k]=(0,re.useState)(null),[A,C]=(0,re.useState)(!1),T=(0,re.useRef)(null),[$,Q]=(0,re.useState)(["anthropic"]),[B,K]=(0,re.useState)(!1),[N,O]=(0,re.useState)({}),[D,P]=(0,re.useState)([]),j=(0,re.useCallback)(async z=>{try{let E=await fetch(`/api/sandboxes/${z}`);if(!E.ok)return;let I=await E.json();i(I.sandbox),c(I.sandbox.runs||[])}catch(E){console.error("Could not refresh the sandbox session:",E)}},[]),M=(0,re.useCallback)(z=>{!$h(z)||!a?.session_id||j(a.session_id)},[j,a?.session_id]);jh("SandboxChannel",{session_id:a?.session_id},M,!!a?.session_id),(0,re.useEffect)(()=>{Y(),W()},[n]);let W=async()=>{try{let z=await fetch("/api/usage");if(z.ok){let E=await z.json();k(E.usage)}}catch{console.log("Could not fetch usage (user may not be authenticated)")}};(0,re.useEffect)(()=>{if(!a?.expires_at)return;let z=setInterval(()=>{let E=new Date,I=new Date(a.expires_at),V=Math.max(0,Math.floor((I-E)/1e3));x(V),V===0&&(i(F=>({...F,status:"expired"})),clearInterval(z))},1e3);return()=>clearInterval(z)},[a?.expires_at]),(0,re.useEffect)(()=>{T.current&&(T.current.scrollTop=T.current.scrollHeight)},[d?.result]);let Y=async()=>{b(!0),h(null);try{let z=await fetch("/api/sandboxes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox_type:n})});if(!z.ok)throw new Error("Failed to create sandbox session");let E=await z.json();i(E.sandbox),c([]),p(null)}catch(z){h(z.message)}finally{b(!1)}},L=async()=>{!s.trim()||f||!a||(B&&$.length>1?await q():await G($[0]||"anthropic"))},G=async z=>{m(!0),p({status:"running",task:s,provider:z,result:"",started_at:new Date().toISOString()});try{let E=await fetch(`/api/sandboxes/${a.session_id}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task:s,provider:z})}),I=await E.json();if(E.status===402&&I.upgrade_required){k(I.usage),_(!0),p(V=>({...V,status:"failed",error:I.message||"Plan limit reached"})),m(!1);return}if(!E.ok)throw new Error(I.error||"Task execution failed");I.usage&&k(I.usage),ue(I.run_id)}catch(E){p(I=>({...I,status:"failed",error:E.message})),m(!1)}},q=async()=>{m(!0),P([...$]),O({});let z={};$.forEach(E=>{z[E]={status:"running",result:"",started_at:new Date().toISOString()}}),O(z);try{let E=await fetch("/api/sandboxes/compare",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task:s,providers:$,sandbox_id:a?.session_id,sandbox_type:n})});if(!E.ok){let V=await E.json();throw new Error(V.error||"Comparison failed")}let I=await E.json();I.sandbox&&i(I.sandbox),oe($,I.sandbox?.session_id||a?.session_id,I.sandbox?.runs_count??a?.runs_count??0)}catch(E){$.forEach(I=>{O(V=>({...V,[I]:{status:"failed",error:E.message}}))}),m(!1),P([])}},oe=(z,E,I)=>{if(!E)return;let V=async()=>{try{let F=await fetch(`/api/sandboxes/${E}`);if(!F.ok)throw new Error(`HTTP ${F.status}`);let ce=await F.json();i(ce.sandbox);let Qe=ce.sandbox.runs||[];c(Qe);let it=new Set;if(Qe.slice(I).forEach(me=>{me.provider&&(O(le=>({...le,[me.provider]:{...me,provider:me.provider}})),(me.status==="completed"||me.status==="failed")&&it.add(me.provider))}),z.every(me=>it.has(me))){m(!1),P([]);return}setTimeout(V,1e3)}catch(F){console.error("Comparison polling failed:",F),m(!1),P([])}};setTimeout(V,1e3)},Me=async()=>{if(a?.session_id)try{let E=await(await fetch(`/api/sandboxes/${a.session_id}`)).json();i(E.sandbox),c(E.sandbox.runs||[]),(E.sandbox.runs||[]).forEach(F=>{F.provider&&O(ce=>({...ce,[F.provider]:{...F,provider:F.provider}}))}),$.every(F=>{let ce=N[F];return ce?.status==="completed"||ce?.status==="failed"})&&(m(!1),P([]))}catch(z){console.error("Polling error:",z)}},ge=z=>{Q(E=>E.includes(z)?E.length===1?E:E.filter(I=>I!==z):[...E,z])},ue=async z=>{let E=async()=>{try{let V=await(await fetch(`/api/sandboxes/${a.session_id}`)).json();i(V.sandbox);let F=V.sandbox.runs||[],ce=F[F.length-1];if(ce&&(p(ce),c(F),ce.status==="completed"||ce.status==="failed")){m(!1);return}setTimeout(E,1e3)}catch{m(!1)}};E()},R=z=>{z.key==="Enter"&&(z.metaKey||z.ctrlKey)&&L()},te=z=>{if(!z)return"--:--";let E=Math.floor(z/60),I=z%60;return`${E}:${I.toString().padStart(2,"0")}`},Be=z=>{switch(z){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"}},ke=a?.status==="ready"&&a?.runs_count{C(!0);try{await Oh({planSlug:"pro",billingInterval:z})}catch(E){console.error("Checkout error:",E),h(E.message||"Failed to initiate checkout. Please try again."),C(!1)}};return re.default.createElement("div",{className:"h-full flex flex-col bg-gray-50"},r&&re.default.createElement("div",{className:"pb-6"},re.default.createElement(r0,{inline:!0})),re.default.createElement("div",{className:"bg-white border-b border-gray-200 px-6 py-4"},re.default.createElement("div",{className:"flex items-center justify-between"},re.default.createElement("div",{className:"flex items-center space-x-4"},re.default.createElement(In,{size:48,appearance:{hat:"fedora",hatAccessory:"theaterMasks",heldItem:"browser"}}),re.default.createElement("div",null,re.default.createElement("h1",{className:"text-xl font-semibold text-gray-900"},"PlaywrightMCP Demo"),re.default.createElement("p",{className:"text-sm text-gray-500"},"Try browser automation for free - no account required"))),re.default.createElement("div",{className:"flex items-center space-x-4"},a&&re.default.createElement("div",{className:"flex items-center space-x-3 text-sm"},re.default.createElement("span",{className:`px-2 py-1 rounded-full text-xs font-medium ${Be(a.status)}`},a.status),re.default.createElement("span",{className:"text-gray-500"},a.runs_count,"/",a.max_runs," runs"),re.default.createElement("span",{className:`font-mono ${v<60?"text-red-500":"text-gray-500"}`},te(v))),t&&re.default.createElement("button",{onClick:t,className:"text-gray-400 hover:text-gray-600"},re.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},re.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))))),re.default.createElement("div",{className:"flex-1 p-6 overflow-hidden"},re.default.createElement("div",{className:"grid grid-cols-3 gap-6 h-full"},re.default.createElement("div",{className:"col-span-2 flex flex-col space-y-4"},re.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},re.default.createElement("textarea",{value:s,onChange:z=>l(z.target.value),onKeyDown:R,placeholder:"Describe what you want the browser agent to do...",rows:3,disabled:!ke,className:"w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-rose-500 focus:border-transparent resize-none disabled:bg-gray-100"}),re.default.createElement("div",{className:"flex items-center justify-between mt-3"},re.default.createElement("span",{className:"text-xs text-gray-400"},"Press ",re.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Cmd")," + ",re.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Enter")," to run"),re.default.createElement("button",{onClick:L,disabled:!s.trim()||!ke,className:`flex items-center space-x-2 px-6 py-2 rounded-lg transition-colors ${s.trim()&&ke?"bg-rose-500 text-white hover:bg-rose-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},f?re.default.createElement(re.default.Fragment,null,re.default.createElement("span",{className:"animate-spin"},"\u25E0"),re.default.createElement("span",null,"Running...")):re.default.createElement(re.default.Fragment,null,re.default.createElement("span",null,"\u25B6"),re.default.createElement("span",null,"Run"))))),re.default.createElement("div",{className:"flex-1 bg-white rounded-xl border border-gray-200 flex flex-col overflow-hidden"},re.default.createElement("div",{className:"px-4 py-3 border-b border-gray-200 flex items-center justify-between"},re.default.createElement("h3",{className:"font-medium text-gray-900"},B&&Object.keys(N).length>0?"Comparison Results":"Output"),d&&!B&&re.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${Be(d.status)}`},d.status),B&&D.length>0&&re.default.createElement("span",{className:"text-xs text-blue-600"},"Running ",D.length," provider(s)...")),re.default.createElement("div",{ref:T,className:"flex-1 overflow-auto bg-gray-50"},y?re.default.createElement("div",{className:"flex items-center justify-center h-full text-gray-500 p-4"},re.default.createElement("span",{className:"animate-pulse"},"Starting sandbox...")):g?re.default.createElement("div",{className:"text-red-600 p-4"},g):B&&Object.keys(N).length>0?re.default.createElement("div",{className:"grid grid-cols-1 divide-y divide-gray-200"},$.map(z=>{let E=rA.find(V=>V.id===z),I=N[z];return re.default.createElement("div",{key:z,className:"p-4"},re.default.createElement("div",{className:"flex items-center justify-between mb-2"},re.default.createElement("div",{className:"flex items-center space-x-2"},re.default.createElement("div",{className:`w-3 h-3 rounded-full ${E?.color||"bg-gray-400"}`}),re.default.createElement("span",{className:"font-medium text-gray-900"},E?.name||z),re.default.createElement("span",{className:"text-xs text-gray-500"},E?.model)),I&&re.default.createElement("div",{className:"flex items-center space-x-2"},re.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${Be(I.status)}`},I.status),I.tokens&&re.default.createElement("span",{className:"text-xs text-gray-500"},I.tokens," tokens"),I.duration_ms&&re.default.createElement("span",{className:"text-xs text-gray-500"},(I.duration_ms/1e3).toFixed(1),"s"))),re.default.createElement("div",{className:"bg-white rounded-lg border border-gray-200 p-3 font-mono text-sm max-h-48 overflow-auto"},I?.status==="running"?re.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},re.default.createElement("span",{className:"animate-pulse"},"\u25CF"),re.default.createElement("span",null,"Processing...")):I?.error?re.default.createElement("div",{className:"text-red-600"},I.error):I?.result?re.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},I.result):re.default.createElement("span",{className:"text-gray-400"},"Waiting...")))})):d?re.default.createElement("div",{className:"p-4 font-mono text-sm"},d.provider&&re.default.createElement("div",{className:"flex items-center space-x-2 mb-3 pb-2 border-b border-gray-200"},re.default.createElement("div",{className:`w-2 h-2 rounded-full ${rA.find(z=>z.id===d.provider)?.color||"bg-gray-400"}`}),re.default.createElement("span",{className:"text-sm text-gray-600"},rA.find(z=>z.id===d.provider)?.name||d.provider)),d.status==="running"?re.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},re.default.createElement("span",{className:"animate-pulse"},"\u25CF"),re.default.createElement("span",null,"Executing task...")):d.error?re.default.createElement("div",{className:"text-red-600"},re.default.createElement("div",{className:"font-semibold mb-2"},"Error:"),re.default.createElement("pre",{className:"whitespace-pre-wrap"},d.error)):re.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},d.result||"Processing...")):re.default.createElement("div",{className:"text-gray-400 text-center py-12"},re.default.createElement("p",{className:"mb-2"},"Select a sample task or enter your own"),re.default.createElement("p",{className:"text-xs"},B?`Compare results across ${$.length} providers`:"Task will execute using the selected provider"))))),re.default.createElement("div",{className:"space-y-4 overflow-auto"},re.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},re.default.createElement("div",{className:"flex items-center justify-between mb-3"},re.default.createElement("h4",{className:"font-medium text-gray-900"},"Providers"),re.default.createElement("label",{className:"flex items-center space-x-2 cursor-pointer"},re.default.createElement("input",{type:"checkbox",checked:B,onChange:z=>K(z.target.checked),className:"rounded border-gray-300 text-rose-500 focus:ring-rose-500"}),re.default.createElement("span",{className:"text-xs text-gray-600"},"Compare"))),re.default.createElement("div",{className:"space-y-2"},rA.map(z=>re.default.createElement("label",{key:z.id,className:`flex items-center justify-between p-2 rounded-lg border cursor-pointer transition-colors ${$.includes(z.id)?"border-rose-300 bg-rose-50":"border-gray-200 hover:bg-gray-50"}`},re.default.createElement("div",{className:"flex items-center space-x-3"},re.default.createElement("input",{type:"checkbox",checked:$.includes(z.id),onChange:()=>ge(z.id),className:"rounded border-gray-300 text-rose-500 focus:ring-rose-500"}),re.default.createElement("div",{className:`w-2 h-2 rounded-full ${z.color}`}),re.default.createElement("span",{className:"text-sm font-medium text-gray-900"},z.name)),re.default.createElement("span",{className:"text-xs text-gray-500"},z.model)))),B&&$.length>1&&re.default.createElement("div",{className:"mt-3 p-2 bg-purple-50 rounded-lg"},re.default.createElement("p",{className:"text-xs text-purple-700"},"Comparison mode: Run task on ",$.length," providers simultaneously"))),re.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},re.default.createElement("div",{className:"flex items-center justify-between mb-3"},re.default.createElement("h4",{className:"font-medium text-gray-900"},"Sample Tasks"),B&&re.default.createElement("button",{onClick:()=>o(n==="playwright_mcp"?"comparison":"playwright_mcp"),className:"text-xs text-rose-600 hover:text-rose-700"},n==="comparison"?"Browser Tasks":"Comparison Tasks")),re.default.createElement("div",{className:"space-y-2"},UCe[n]?.map((z,E)=>re.default.createElement("button",{key:E,onClick:()=>l(z.task),disabled:!ke,className:"w-full text-left px-3 py-2 rounded-lg transition-colors border border-gray-200 hover:bg-gray-50 disabled:opacity-50"},re.default.createElement("div",{className:"font-medium text-sm text-gray-900"},z.name),re.default.createElement("div",{className:"text-xs text-gray-500 mt-0.5"},z.description))))),re.default.createElement("div",{className:"bg-gradient-to-br from-rose-50 to-purple-50 rounded-xl border border-rose-200 p-4"},re.default.createElement("h4",{className:"font-medium text-gray-900 mb-3"},w?.unlimited?"Unlimited":w?.plan==="free"?"Free Tier":`${w?.plan?.toUpperCase()||"FREE"} Plan`),w&&!w.unlimited&&w.runs_limit!=null&&re.default.createElement("div",{className:"mb-4"},re.default.createElement("div",{className:"flex justify-between text-sm mb-1"},re.default.createElement("span",{className:"text-gray-600"},"Agent Runs"),re.default.createElement("span",{className:`font-medium ${w.runs_remaining<=1?"text-rose-600":"text-gray-900"}`},w.runs_used," / ",w.runs_limit)),re.default.createElement("div",{className:"w-full bg-white rounded-full h-2 border border-rose-200"},re.default.createElement("div",{className:`h-2 rounded-full transition-all ${w.runs_remaining<=1?"bg-rose-500":"bg-emerald-500"}`,style:{width:`${Math.min(w.runs_used/w.runs_limit*100,100)}%`}})),w.runs_remaining<=1&&re.default.createElement("p",{className:"text-xs text-rose-600 mt-1"},w.runs_remaining===0?"Limit reached!":"Almost at limit!")),re.default.createElement("dl",{className:"space-y-2 text-sm"},re.default.createElement("div",{className:"flex justify-between"},re.default.createElement("dt",{className:"text-gray-500"},"Session Runs"),re.default.createElement("dd",{className:"text-gray-900"},a?.runs_count||0,"/",a?.max_runs||KQ.max_runs)),re.default.createElement("div",{className:"flex justify-between"},re.default.createElement("dt",{className:"text-gray-500"},"Timeout"),re.default.createElement("dd",{className:"text-gray-900"},KQ.timeout_seconds,"s per task"))),w?.plan==="free"&&re.default.createElement("div",{className:"mt-4 pt-4 border-t border-rose-200"},re.default.createElement("button",{onClick:()=>_(!0),className:"w-full text-center text-sm text-rose-600 hover:text-rose-700 font-medium"},"Upgrade to PRO \u2192"))),u.length>0&&re.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},re.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},re.default.createElement("h4",{className:"font-medium text-gray-900"},"Run History")),re.default.createElement("div",{className:"max-h-48 overflow-auto divide-y divide-gray-100"},u.slice().reverse().map((z,E)=>re.default.createElement("div",{key:z.id||E,className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>p(z)},re.default.createElement("div",{className:"flex items-center justify-between mb-1"},re.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${Be(z.status||"completed")}`},z.status||"completed"),re.default.createElement("span",{className:"text-xs text-gray-400"},z.tokens||0," tokens")),re.default.createElement("p",{className:"text-sm text-gray-600 truncate"},z.task))))),a?.status==="expired"&&re.default.createElement("button",{onClick:Y,className:"w-full px-4 py-3 bg-rose-500 text-white rounded-lg hover:bg-rose-600 transition-colors"},"Start New Session")))),S&&re.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},re.default.createElement("div",{className:"bg-white rounded-2xl max-w-4xl w-full overflow-hidden shadow-2xl max-h-[90vh] overflow-y-auto"},re.default.createElement("div",{className:"bg-gradient-to-r from-rose-500 to-purple-600 px-6 py-6 text-white text-center"},re.default.createElement("h2",{className:"text-2xl font-bold mb-1"},"Upgrade Your Plan"),re.default.createElement("p",{className:"text-rose-100 text-sm"},"You've used ",w?.runs_used||0," of ",w?.runs_limit||25," trial runs. Choose a plan to continue.")),re.default.createElement("div",{className:"p-6"},re.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},re.default.createElement("div",{className:"border border-gray-200 rounded-xl p-5"},re.default.createElement("div",{className:"text-center mb-4"},re.default.createElement("h3",{className:"font-semibold text-gray-900"},"Free"),re.default.createElement("div",{className:"mt-2"},re.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$0"),re.default.createElement("span",{className:"text-gray-500"},"/mo"))),re.default.createElement("ul",{className:"space-y-2 text-sm text-gray-600 mb-4"},re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"25 trial runs/month"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"Community support"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"Basic features")),re.default.createElement("button",{disabled:!0,className:"w-full py-2 px-4 border border-gray-300 text-gray-400 rounded-lg text-sm cursor-not-allowed"},"Current Plan")),re.default.createElement("div",{className:"border-2 border-rose-500 rounded-xl p-5 relative bg-rose-50"},re.default.createElement("div",{className:"absolute -top-3 left-1/2 transform -translate-x-1/2"},re.default.createElement("span",{className:"bg-rose-500 text-white text-xs font-semibold px-3 py-1 rounded-full"},"RECOMMENDED")),re.default.createElement("div",{className:"text-center mb-4 mt-2"},re.default.createElement("h3",{className:"font-semibold text-gray-900"},"Pro"),re.default.createElement("div",{className:"mt-2"},re.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$99"),re.default.createElement("span",{className:"text-gray-500"},"/mo")),re.default.createElement("p",{className:"text-xs text-gray-500 mt-1"},"or $995/year (save 16%)")),re.default.createElement("ul",{className:"space-y-2 text-sm text-gray-700 mb-4"},re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"10,000 agent runs/month"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Advanced cost tracking"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"25K traces/month"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Priority email support")),re.default.createElement("button",{onClick:()=>ee("monthly"),disabled:A,className:"w-full py-2 px-4 bg-rose-500 text-white rounded-lg text-sm font-semibold hover:bg-rose-600 transition-colors disabled:opacity-50"},A?"Loading...":"Upgrade to Pro")),re.default.createElement("div",{className:"border border-gray-200 rounded-xl p-5"},re.default.createElement("div",{className:"text-center mb-4"},re.default.createElement("h3",{className:"font-semibold text-gray-900"},"Enterprise"),re.default.createElement("div",{className:"mt-2"},re.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$269"),re.default.createElement("span",{className:"text-gray-500"},"/mo")),re.default.createElement("p",{className:"text-xs text-gray-500 mt-1"},"or $2,690/year (save 16%)")),re.default.createElement("ul",{className:"space-y-2 text-sm text-gray-600 mb-4"},re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Unlimited runs"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"500K traces/month"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"SSO & SOC2/HIPAA"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Dedicated support")),re.default.createElement("a",{href:"mailto:sales@activeagents.ai",className:"block w-full py-2 px-4 border border-gray-300 text-gray-700 rounded-lg text-sm font-semibold text-center hover:bg-gray-50 transition-colors"},"Contact Sales")))),re.default.createElement("div",{className:"px-6 py-4 bg-gray-50 border-t border-gray-100 flex justify-center"},re.default.createElement("button",{onClick:()=>_(!1),className:"text-gray-500 hover:text-gray-700 text-sm"},"Maybe later")))))}var ht=Z(J());var Mo=Z(J());var v3=["message","llm","tool","browser"];function nA(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function VQ(e={}){let t=[];return v3.forEach((r,n)=>{(e[r]||[]).forEach((o,a)=>{let i=nA(o?.start);if(i===null)return;let s=Math.max(0,Number(o.duration_ms)||0);t.push({entry:{...o,lane:r,startMs:i,endMs:i+s},laneIndex:n,index:a})})}),t.sort((r,n)=>r.entry.startMs-n.entry.startMs||r.laneIndex-n.laneIndex||r.index-n.index),t.map(({entry:r})=>r)}function GQ(e=[]){return e.filter(t=>t?.rrweb?.event_count>0&&nA(t.rrweb.first_at)!==null).map(t=>{let r=nA(t.rrweb.first_at);return{...t,startMs:r,endMs:Math.max(r,nA(t.rrweb.last_at)??r)}}).sort((t,r)=>t.startMs-r.startMs)}function YQ(e=[],t=[]){return[...e.map(r=>[r.startMs,r.endMs]),...t.map(r=>[r.startMs,r.endMs])]}function XQ(e=[],{maxGapMs:t=1e4,gapMs:r=1e3,minSegmentMs:n=1e3}={}){let o=e.filter(([u,c])=>Number.isFinite(u)&&Number.isFinite(c)).map(([u,c])=>[u,Math.max(u,c)]).sort((u,c)=>u[0]-c[0]),a=[];for(let[u,c]of o){let d=a[a.length-1];d&&u-d[1]<=t?d[1]=Math.max(d[1],c):a.push([u,c])}let i=0,s=a.map(([u,c])=>{let d=Math.max(c,u+n),p={startMs:u,endMs:d,axisStart:i,axisEnd:i+(d-u)};return i=p.axisEnd+r,p}),l=s[s.length-1];return{segments:s,gapMs:r,totalMs:l?l.axisEnd:0,startMs:s[0]?.startMs??null,endMs:l?.endMs??null}}function ZQ(e){return e.segments.slice(1).map((t,r)=>{let n=e.segments[r];return{axisStart:n.axisEnd,axisEnd:t.axisStart,skippedMs:t.startMs-n.endMs}})}function JQ(e,t){let{segments:r}=e;if(!r.length)return null;let n=Math.min(Math.max(t,0),e.totalMs);for(let o=0;ot<=n.axisEnd);return r===-1?Math.max(0,e.segments.length*2-2):t>=e.segments[r].axisStart?r*2:Math.max(0,r*2-1)}function x3(e,t){let r=0,n=e.length-1,o=-1;for(;r<=n;){let a=r+n>>1;e[a].startMs<=t?(o=a,r=a+1):n=a-1}return o}function RQ(e,t,r){if(r>0)return e.find(n=>n.startMs>t)?.startMs??null;for(let n=e.length-1;n>=0;n-=1)if(e[n].startMst>=o.startMs&&t<=o.endMs);if(r)return r;let n=e.filter(o=>o.startMs<=t);return n[n.length-1]||e[0]}function tR(e,t){let r=Math.max(0,e.endMs-e.startMs);return te.endMs?{phase:"after",offsetMs:r}:{phase:"during",offsetMs:t-e.startMs}}function Lh(e){let t=Math.max(0,Math.floor((Number(e)||0)/1e3)),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=String(t%60).padStart(2,"0");return r?`${r}:${String(n).padStart(2,"0")}:${o}`:`${n}:${o}`}function oA(e){let t=Math.max(0,Math.round((Number(e)||0)/1e3)),r=[["d",86400],["h",3600],["m",60],["s",1]],n=[],o=t;for(let[a,i]of r){let s=Math.floor(o/i);if(o-=s*i,(s||n.length)&&n.push(`${s}${a}`),n.length===2)break}return n.filter(a=>!a.startsWith("0")).join(" ")||"0s"}function b3(e){let t=String(e??"").replace(/\s+/g," ").trim();return t.length>140?`${t.slice(0,139)}\u2026`:t}function WCe(e){if(!e)return"";let t=Number(e.input??e.input_tokens)||0,r=Number(e.output??e.output_tokens)||0;return t||r?`${t} in / ${r} out`:""}function rR(e){switch(e?.lane){case"message":{let t=(e.tool_calls||[]).map(n=>n?.name||n?.function?.name).filter(Boolean),r=b3(e.content);return!r&&t.length?`${e.role} called ${t.join(", ")}`:e.role==="tool"?`${e.tool_name||"tool"} result: ${r}`:`${e.role}: ${r}`}case"llm":return[e.model||e.name||"model call",WCe(e.tokens)].filter(Boolean).join(" \xB7 ");case"tool":return`${e.name||"tool"}${e.error?" (failed)":""}`;case"browser":{let t=e.data||{};return e.kind==="console"?`console ${t.level||"log"}: ${b3(t.message??t.value)}`:e.kind==="marker"?`marker: ${b3(t.label??t.name??t.value)}`:t.tool_name||t.action_type||e.kind||"browser event"}default:return""}}function zh(e){return e?e.error===!0?!0:["error","ERROR","failed"].includes(e.status):!1}function HCe(e=[]){return e.filter(t=>t?.kind==="rrweb").flatMap(t=>t.events||[]).filter(t=>t&&Number.isFinite(t.at)&&t.data&&typeof t.data=="object").map(t=>({...t.data,timestamp:t.at})).sort((t,r)=>t.timestamp-r.timestamp)}function qCe(e,t=null,r=50){let n=new URLSearchParams({kind:"rrweb",limit:String(r)});return t!=null&&n.set("after",String(t)),`/api/session_recordings/${encodeURIComponent(e)}/events?${n}`}async function nR(e,{fetchPage:t,onEvents:r,maxEvents:n=5e4,isCancelled:o=()=>!1}){let a=null,i=0;for(;;){let s=await t(qCe(e,a));if(o())return{count:i,truncated:!1};let l=HCe(s?.events);if(l.length&&(r(l,i===0),i+=l.length),!s?.has_more||s.next_after==null)return{count:i,truncated:!1};if(i>=n)return{count:i,truncated:!0};a=s.next_after}}var Fu=[{lane:"message",label:"messages",color:"var(--color-info)"},{lane:"llm",label:"model",color:"var(--color-token-out)"},{lane:"tool",label:"tools",color:"var(--color-warning)"},{lane:"browser",label:"browser",color:"var(--color-success)"}],nb=18,KCe=76,bf=(e,t)=>e.totalMs?t/e.totalMs*100:0,VCe=(0,Mo.memo)(function({axis:t,entries:r,recordings:n}){let o=ZQ(t);return Mo.default.createElement(Mo.default.Fragment,null,o.map(a=>Mo.default.createElement("div",{key:`gap-${a.axisStart}`,title:`${oA(a.skippedMs)} idle, shortened`,style:{position:"absolute",top:0,bottom:0,left:`${bf(t,a.axisStart)}%`,width:`${bf(t,a.axisEnd-a.axisStart)}%`,background:"repeating-linear-gradient(135deg, var(--color-muted) 0 4px, transparent 4px 8px)"}})),Fu.map((a,i)=>Mo.default.createElement(Mo.default.Fragment,{key:a.lane},a.lane==="browser"&&n.map(s=>{let l=yd(t,s.startMs);return Mo.default.createElement("div",{key:`recording-${s.id}`,title:`browser recording ${s.id}`,style:{position:"absolute",top:i*nb+7,height:4,borderRadius:2,left:`${bf(t,l)}%`,width:`${Math.max(bf(t,yd(t,s.endMs)-l),.3)}%`,background:a.color,opacity:.35}})}),r.filter(s=>s.lane===a.lane).map(s=>{let l=yd(t,s.startMs);return Mo.default.createElement("div",{key:s.id,style:{position:"absolute",top:i*nb+4,height:nb-8,borderRadius:2,left:`${bf(t,l)}%`,width:`max(3px, ${bf(t,yd(t,s.endMs)-l)}%)`,background:zh(s)?"var(--color-error)":a.color}})}))))});function w3({axis:e,entries:t,recordings:r,position:n,onSeek:o}){let a=(0,Mo.useRef)(null),i=Fu.length*nb,s=u=>{let c=a.current?.getBoundingClientRect();if(!c?.width)return;let d=Math.min(Math.max((u.clientX-c.left)/c.width,0),1);o(d*e.totalMs)},l=u=>{let c=e.totalMs/100;if(u.key==="ArrowRight")o(n+c);else if(u.key==="ArrowLeft")o(n-c);else if(u.key==="Home")o(0);else if(u.key==="End")o(e.totalMs);else return;u.preventDefault()};return Mo.default.createElement("div",{"data-testid":"replay-scrubber",style:{display:"flex",gap:8}},Mo.default.createElement("div",{style:{width:KCe,flexShrink:0}},Fu.map(u=>Mo.default.createElement("div",{key:u.lane,style:{height:nb,display:"flex",alignItems:"center",gap:6,fontFamily:U,fontSize:10,color:"var(--color-text-muted)",textTransform:"uppercase"}},Mo.default.createElement("span",{style:{width:8,height:8,borderRadius:2,background:u.color}}),u.label))),Mo.default.createElement("div",{ref:a,role:"slider",tabIndex:0,"aria-label":"Session position","aria-valuemin":0,"aria-valuemax":Math.round(e.totalMs),"aria-valuenow":Math.round(n),onPointerDown:u=>{u.currentTarget.setPointerCapture?.(u.pointerId),s(u)},onPointerMove:u=>{u.buttons===1&&s(u)},onKeyDown:l,style:{position:"relative",flex:1,height:i,cursor:"pointer",borderRadius:6,overflow:"hidden",background:"var(--color-background)",border:"1px solid var(--color-border-light)",touchAction:"none"}},Mo.default.createElement(VCe,{axis:e,entries:t,recordings:r}),Mo.default.createElement("div",{style:{position:"absolute",top:0,bottom:0,width:2,marginLeft:-1,pointerEvents:"none",left:`${bf(e,n)}%`,background:"var(--color-text-primary)"}})))}var ra=Z(J());var GCe=Object.fromEntries(Fu.map(e=>[e.lane,e])),YCe=(0,ra.memo)(function({entry:t,startMs:r,current:n,selected:o,onChoose:a,rowRef:i}){let s=GCe[t.lane],l=zh(t);return ra.default.createElement("button",{type:"button",ref:i,"data-testid":"replay-entry","aria-current":n?"step":void 0,onClick:()=>a(t),style:{display:"flex",alignItems:"baseline",gap:10,width:"100%",textAlign:"left",cursor:"pointer",padding:"6px 12px",border:"none",borderLeft:`3px solid ${n?s.color:"transparent"}`,background:o?"var(--color-accent-ui-tint)":n?"var(--color-hover)":"transparent",fontFamily:"inherit"}},ra.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)",width:56,flexShrink:0}},Lh(t.startMs-r)),ra.default.createElement("span",{style:{fontFamily:U,fontSize:10,textTransform:"uppercase",color:s.color,width:64,flexShrink:0}},s.label),ra.default.createElement("span",{style:{fontSize:13,color:l?"var(--color-error-text)":"var(--color-text-cell)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},rR(t)),t.duration_ms>0&&ra.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)",flexShrink:0}},Math.round(t.duration_ms),"ms"))}),oR=(0,ra.memo)(function({entries:t,startMs:r,currentId:n,selectedId:o,playing:a,onChoose:i}){let s=(0,ra.useRef)(null),l=(0,ra.useRef)(null);return(0,ra.useEffect)(()=>{let u=l.current,c=s.current;if(!a||!u||!c)return;let d=u.offsetTop;(dc.scrollTop+c.clientHeight)&&(c.scrollTop=Math.max(0,d-c.clientHeight/3))},[n,a]),t.length?ra.default.createElement("div",{ref:s,"data-testid":"replay-transcript",style:{maxHeight:460,overflowY:"auto",position:"relative"}},t.map(u=>ra.default.createElement(YCe,{key:u.id,entry:u,startMs:r,current:u.id===n,selected:u.id===o,onChoose:i,rowRef:u.id===n?l:void 0}))):ra.default.createElement("div",{style:{padding:20,fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"no entries in the lanes shown")});var Pi=Z(J());var XCe=Object.fromEntries(Fu.map(e=>[e.lane,e.label])),ZCe={margin:0,padding:"8px 10px",borderRadius:8,background:"var(--color-background)",border:"1px solid var(--color-border-light)",fontFamily:U,fontSize:12,lineHeight:"18px",color:"var(--color-text-cell)",whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:220,overflow:"auto"};function JCe(e){return e==null||e===""?null:typeof e=="string"?e:JSON.stringify(e,null,2)}function QCe({label:e,value:t}){let r=JCe(t);return r==null?null:Pi.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:4}},Pi.default.createElement(We,{size:10},e),Pi.default.createElement("pre",{style:ZCe},r))}function RCe(e){switch(e.lane){case"message":return[["content",e.content],["tool calls",e.tool_calls?.length?e.tool_calls:null]];case"llm":return[["model",[e.provider,e.model].filter(Boolean).join(" / ")],["finish reason",e.finish_reason],["tokens",e.tokens]];case"tool":return[["arguments",e.arguments],["result",e.result??e.detail]];case"browser":return[["event",e.data]];default:return[]}}function S3({entry:e}){return e?Pi.default.createElement("div",{"data-testid":"replay-entry-detail",style:{padding:14,display:"flex",flexDirection:"column",gap:10}},Pi.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Pi.default.createElement(_e,{tone:zh(e)?"error":"muted"},XCe[e.lane]),e.role&&Pi.default.createElement(_e,{tone:"info"},e.role),(e.name||e.tool_name)&&e.lane!=="llm"&&Pi.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"}},e.name||e.tool_name),Pi.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"},title:e.start},new Date(e.startMs).toLocaleTimeString(),e.duration_ms>0?` \xB7 ${Math.round(e.duration_ms)}ms`:"")),e.trace_id&&Pi.default.createElement("div",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"trace ",e.trace_id),RCe(e).map(([t,r])=>Pi.default.createElement(QCe,{key:t,label:t,value:r}))):Pi.default.createElement("div",{style:{padding:16,fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"choose an entry to see it in full")}var lo=Z(J());var aR="action-agent-session-player",iR="/session_player",sR="allow-scripts allow-same-origin";function lR(e,t={}){return{...t,channel:aR,type:e}}function uR(e,t,r){return!!e&&t!=null&&e.source===t&&e.origin===r&&e.data?.channel===aR&&typeof e.data.type=="string"}async function t2e(e){let t=await fetch(e);if(!t.ok)throw new Error(`Could not load the browser recording (HTTP ${t.status})`);return t.json()}var r2e="the session player did not start",n2e={loading:"loading the browser recording\u2026",empty:"this recording has too few browser events to replay",truncated:"showing the start of a long recording"};function k3({recordings:e,time:t,sessionStartMs:r,playing:n,speed:o,seekVersion:a}){let i=(0,lo.useRef)(null),s=(0,lo.useRef)(null),[l,u]=(0,lo.useState)(!1),[c,d]=(0,lo.useState)(!1),[p,f]=(0,lo.useState)(null),[m,y]=(0,lo.useState)({state:"loading"}),b=eR(e,t),g=b?.id,h=p!==null&&p===s.current,v=b?tR(b,t):null,x=(w,k)=>{i.current?.contentWindow?.postMessage(lR(w,k),window.location.origin)};(0,lo.useEffect)(()=>{let w=k=>{if(!uR(k,i.current?.contentWindow,window.location.origin))return;let{type:A}=k.data;A==="ready"?d(!0):A==="loaded"?f(k.data.token):A==="error"&&y({state:"error",message:k.data.message})};return window.addEventListener("message",w),()=>window.removeEventListener("message",w)},[]),(0,lo.useEffect)(()=>{if(!l||c)return;let w=setTimeout(()=>y({state:"error",message:r2e}),5e3);return()=>clearTimeout(w)},[l,c]),(0,lo.useEffect)(()=>{if(!c||g==null)return;let w=!1,k=[],A=`${g}:${Date.now()}`;return s.current=A,f(null),y({state:"loading"}),nR(g,{fetchPage:t2e,isCancelled:()=>w,onEvents:C=>{if(k===null){x("append",{events:C});return}k=k.concat(C),!(k.length<2)&&(x("load",{events:k,token:A}),k=null)}}).then(({truncated:C})=>{w||y(k!==null?{state:"empty"}:{state:C?"truncated":"ready"})}).catch(C=>{w||y({state:"error",message:C.message})}),()=>{w=!0}},[c,g]);let S=v?.phase;(0,lo.useEffect)(()=>{!h||!v||x("seek",{offset:v.offsetMs,playing:n&&S==="during"})},[h,a,n,S]),(0,lo.useEffect)(()=>{h&&x("speed",{speed:o})},[h,o]);let _=m.state==="error"?m.message:S==="before"?`the browser recording starts at ${Lh(b.startMs-r)}`:n2e[m.state];return lo.default.createElement("div",{"data-testid":"replay-browser",style:{display:"flex",flexDirection:"column",gap:8}},lo.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10}},lo.default.createElement(We,null,"browser"),b&&lo.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},b.name||`recording ${b.id}`,e.length>1?` \xB7 ${e.indexOf(b)+1} of ${e.length}`:""),_&&lo.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:m.state==="error"?"var(--color-error-text)":"var(--color-text-muted)"}},_)),lo.default.createElement("iframe",{ref:i,title:"Browser recording",src:et(iR),sandbox:sR,referrerPolicy:"no-referrer",onLoad:()=>u(!0),style:{width:"100%",height:480,border:"1px solid var(--color-border-light)",borderRadius:10,background:"var(--color-background)",opacity:S==="before"?.4:1}}))}var Ta=Z(J());function _3(e){let[t,r]=(0,Ta.useState)(0),[n,o]=(0,Ta.useState)(!1),[a,i]=(0,Ta.useState)(1),[s,l]=(0,Ta.useState)(0),u=(0,Ta.useRef)(0),c=(0,Ta.useRef)(0),d=(0,Ta.useCallback)((y,b)=>{let g=Math.min(Math.max(y,0),e.totalMs),h=QQ(e,g);return u.current=g,r(g),(b||h!==c.current)&&l(v=>v+1),c.current=h,g},[e]);(0,Ta.useEffect)(()=>{if(!n)return;let y=null,b=performance.now(),g=h=>{let v=d(u.current+(h-b)*a,!1);if(b=h,v>=e.totalMs){o(!1);return}y=requestAnimationFrame(g)};return y=requestAnimationFrame(g),()=>cancelAnimationFrame(y)},[n,a,e,d]);let p=(0,Ta.useCallback)(y=>d(y,!0),[d]),f=(0,Ta.useCallback)(()=>{!n&&u.current>=e.totalMs&&d(0,!0),o(!n)},[n,e,d]),m=(0,Ta.useCallback)(()=>o(!1),[]);return{position:t,playing:n,speed:a,seekVersion:s,seek:p,togglePlay:f,pause:m,setSpeed:i}}var o2e=[.5,1,2,4,8,16],a2e={context:"Conversation",run:"Run",scenario_result:"Evaluation replay",recording:"Recording"};function i2e(e,t){let r=encodeURIComponent(t);return e==="recording"?`/api/session_recordings/${r}/timeline`:`/api/sessions/${e}/${r}/timeline`}function s2e(e){return e.reduce((t,r)=>({...t,[r.lane]:(t[r.lane]||0)+1}),{})}function l2e({kind:e,id:t,timeline:r,onBack:n,handoff:o}){let a=(0,ht.useMemo)(()=>VQ(r.lanes),[r]),i=(0,ht.useMemo)(()=>GQ(r.recordings),[r]),s=(0,ht.useMemo)(()=>XQ(YQ(a,i)),[a,i]),l=_3(s),{seek:u,pause:c}=l,[d,p]=(0,ht.useState)(()=>new Set(v3)),[f,m]=(0,ht.useState)(null),y=JQ(s,l.position)??s.startMs,b=(0,ht.useMemo)(()=>a.filter(T=>d.has(T.lane)),[a,d]),g=a[x3(a,y)]||null,h=b[x3(b,y)]?.id??null,v=a.find(T=>T.id===f)||g,x=(0,ht.useMemo)(()=>s2e(a),[a]),S=(0,ht.useCallback)(T=>{c(),m(T.id),u(yd(s,T.startMs))},[s,c,u]),_=T=>{let $=RQ(b,y,T);$!==null&&(c(),m(null),u(yd(s,$)))},w=()=>{m(null),l.togglePlay()},k=T=>p($=>{let Q=new Set($);return Q.has(T)?Q.delete(T):Q.add(T),Q}),A=r.session||{},C=a.length===0&&i.length===0;return ht.default.createElement("div",{"data-testid":"session-replay",style:{display:"flex",flexDirection:"column",gap:16,maxWidth:1400}},ht.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:12,flexWrap:"wrap"}},ht.default.createElement("div",{style:{minWidth:0}},ht.default.createElement(de,{variant:"ghost",size:"sm",onClick:n,style:{padding:"2px 0",marginBottom:6}},"<- Sessions"),ht.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},a2e[e]||"Session"," #",t),ht.default.createElement("div",{style:{marginTop:4,display:"flex",gap:12,flexWrap:"wrap",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},A.started_at&&ht.default.createElement("span",{title:A.started_at},"started ",new Date(A.started_at).toLocaleString()),s.startMs!==null&&ht.default.createElement("span",null,oA(s.endMs-s.startMs)," long"),ht.default.createElement("span",null,x.message||0," messages \xB7 ",x.llm||0," model calls \xB7 ",x.tool||0," tool calls"),i.length>0&&ht.default.createElement("span",null,"browser recorded"))),ht.default.createElement("div",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center"}},A.truncated&&ht.default.createElement(_e,{tone:"warning",title:"Each lane holds its earliest 2,000 entries"},"truncated"),o)),C?ht.default.createElement(Le,{testId:"replay-empty"},ht.default.createElement("div",{style:{fontSize:14,color:"var(--color-text-primary)"}},"Nothing to replay yet."),ht.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)",marginTop:6}},"This session has no messages, model calls, tool calls or browser events.")):ht.default.createElement(ht.default.Fragment,null,ht.default.createElement(Le,{padding:14,style:{display:"flex",flexDirection:"column",gap:12}},ht.default.createElement("div",{"data-testid":"replay-controls",style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},ht.default.createElement(de,{size:"sm",testId:"replay-step-back",title:"Previous entry",onClick:()=>_(-1)},"|<"),ht.default.createElement(de,{size:"sm",variant:"primary",testId:"replay-play",onClick:w,style:{minWidth:72}},l.playing?"Pause":"Play"),ht.default.createElement(de,{size:"sm",testId:"replay-step-forward",title:"Next entry",onClick:()=>_(1)},">|"),ht.default.createElement("select",{"aria-label":"Playback speed",value:l.speed,onChange:T=>l.setSpeed(Number(T.target.value)),style:{padding:"6px 8px",borderRadius:8,fontFamily:U,fontSize:12,background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"}},o2e.map(T=>ht.default.createElement("option",{key:T,value:T},T,"x"))),ht.default.createElement("span",{"data-testid":"replay-clock",style:{marginLeft:8,fontFamily:U,fontSize:12,color:"var(--color-text-primary)"}},Lh(y-s.startMs)),ht.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"},title:"Idle stretches longer than 10 seconds play as one second"},Number.isFinite(y)?new Date(y).toLocaleTimeString():"")),ht.default.createElement(w3,{axis:s,entries:a,recordings:i,position:l.position,onSeek:u})),ht.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 3fr) minmax(0, 2fr)",gap:16,alignItems:"start"}},ht.default.createElement(Le,{padding:0,style:{overflow:"hidden"}},ht.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"10px 12px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},ht.default.createElement(We,{style:{marginRight:6}},"timeline"),Fu.map(T=>ht.default.createElement(Ln,{key:T.lane,mono:!0,selected:d.has(T.lane),onClick:()=>k(T.lane)},T.label," ",x[T.lane]||0))),ht.default.createElement(oR,{entries:b,startMs:s.startMs,currentId:h,selectedId:f,playing:l.playing,onChoose:S})),ht.default.createElement(Le,{padding:0},ht.default.createElement(S3,{entry:v}))),i.length>0&&ht.default.createElement(Le,{padding:14},ht.default.createElement(k3,{recordings:i,time:y,sessionStartMs:s.startMs,playing:l.playing,speed:l.speed,seekVersion:l.seekVersion}))))}function C3({kind:e,id:t,onBack:r,onHandoff:n}){let[o,a]=(0,ht.useState)({status:"loading"}),[i,s]=(0,ht.useState)(!1);(0,ht.useEffect)(()=>{let c=!1;return a({status:"loading"}),fetch(i2e(e,t)).then(async d=>{if(c)return;if(d.status===404)return a({status:"missing"});let p=await d.json().catch(()=>({}));return d.ok?a({status:"ready",timeline:p.timeline||{}}):a({status:"error",message:p.error||`Could not load this session (HTTP ${d.status})`})}).catch(()=>{c||a({status:"error",message:"Could not load this session: the request did not complete"})}),e==="recording"&&fetch(`/api/session_recordings/${encodeURIComponent(t)}`).then(d=>d.ok?d.json():null).then(d=>{c||s(!!d?.recording?.handoff_state)}).catch(()=>{}),()=>{c=!0}},[e,t]);let l=async()=>{let c=await fetch(`/api/session_recordings/${encodeURIComponent(t)}/handoff`,{method:"POST",headers:{"Content-Type":"application/json"}});c.ok&&n?.(await c.json())};if(o.status==="ready")return ht.default.createElement(l2e,{kind:e,id:t,timeline:o.timeline,onBack:r,handoff:i&&ht.default.createElement(de,{size:"sm",variant:"primary",testId:"replay-take-over",onClick:l},"Take over session")});let u=o.status==="loading"?"loading the session\u2026":o.status==="missing"?"This session does not exist, or you cannot open it.":o.message;return ht.default.createElement("div",{"data-testid":"session-replay",style:{display:"flex",flexDirection:"column",gap:12,maxWidth:1400}},ht.default.createElement(de,{variant:"ghost",size:"sm",onClick:r,style:{padding:"2px 0",alignSelf:"flex-start"}},"<- Sessions"),ht.default.createElement(Le,{testId:`replay-${o.status}`},ht.default.createElement("div",{style:{fontSize:13,color:o.status==="loading"?"var(--color-text-muted)":"var(--color-text-primary)"}},u)))}var dt=Z(J());function cR(){let e=0,t=r=>()=>r===e;return{next:()=>t(++e),latest:()=>t(e)}}var E3=[{value:"",label:"Every source"},{value:"dashboard",label:"Dashboard conversations"},{value:"evaluation",label:"Evaluation replays"},{value:"agent",label:"Agent browsers"}],N3=[{value:"",label:"Any outcome"},{value:"failed",label:"Failed or errored"},{value:"passed",label:"Passed"}],ob=Object.freeze({agentId:"",user:"",source:"",outcome:"",from:"",to:""}),pR={agentId:"agent_id",user:"user",source:"source",outcome:"outcome",from:"from",to:"to"},A3=/^(\d{4})-(\d{2})-(\d{2})$/,u2e={agentId:e=>/^\d+$/.test(e),user:e=>e==="me",source:e=>E3.some(t=>t.value&&t.value===e),outcome:e=>N3.some(t=>t.value&&t.value===e),from:e=>A3.test(e),to:e=>A3.test(e)};function aA(e={}){let t={...ob};for(let r of Object.keys(ob)){let n=String(e[r]??"");n&&u2e[r](n)&&(t[r]=n)}return t}function T3(e={}){return Object.values(aA(e)).some(Boolean)}function fR(e=""){let t=new URLSearchParams(e),r={};for(let[n,o]of Object.entries(pR))r[n]=t.get(o)||"";return aA(r)}function mR(e={}){let t=new URLSearchParams,r=aA(e);for(let[o,a]of Object.entries(pR))r[o]&&t.set(a,r[o]);let n=t.toString();return n?`?${n}`:""}function dR(e,t=0){let[,r,n,o]=e.match(A3);return new Date(Number(r),Number(n)-1,Number(o)+t).toISOString()}var gR=Object.freeze({openedFromSessions:!0});function hR(e){return e?.openedFromSessions===!0}function yR(e={},{before:t=null,perPage:r=25}={}){let n=aA(e),o=new URLSearchParams;return n.agentId&&o.set("agent_id",n.agentId),n.user&&o.set("user",n.user),n.source&&o.set("source",n.source),n.outcome&&o.set("outcome",n.outcome),n.from&&o.set("from",dR(n.from)),n.to&&o.set("to",dR(n.to,1)),o.set("per_page",String(r)),t&&o.set("before",t),`/api/sessions?${o}`}var vR={dashboard:{tone:"info",label:"conversation"},evaluation:{tone:"muted",label:"evaluation"},agent:{tone:"muted",label:"browser"}},c2e={failed:"error",passed:"success"},Bh={padding:"7px 10px",borderRadius:8,fontSize:13,fontFamily:"inherit",boxSizing:"border-box",background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"};async function xR(e,t){let r=await fetch(yR(e,{before:t})),n=await r.json().catch(()=>({}));if(!r.ok)throw new Error(n.error||`Could not load sessions (HTTP ${r.status})`);return n}function d2e(e){let t=[];return e.kind==="context"&&(t.push(`${e.message_count} message${e.message_count===1?"":"s"}`),e.recording_count&&t.push("browser recorded")),e.kind==="scenario_result"&&(e.evaluation?.name&&t.push(e.evaluation.name),e.model&&t.push(e.model)),e.kind==="recording"&&(t.push(`${e.event_count||0} events`),e.action_count&&t.push(`${e.action_count} actions`)),t.join(" \xB7 ")}function p2e({filters:e,onChange:t,agents:r,user:n}){let o=a=>i=>t({...e,[a]:i.target.value});return dt.default.createElement("div",{"data-testid":"sessions-filters",style:{display:"flex",gap:8,flexWrap:"wrap",alignItems:"center"}},dt.default.createElement("select",{"aria-label":"Agent",value:e.agentId,onChange:o("agentId"),style:Bh},dt.default.createElement("option",{value:""},"Every agent"),r.map(a=>dt.default.createElement("option",{key:a.id,value:String(a.id)},a.name))),n?.id!=null&&dt.default.createElement("select",{"aria-label":"Run by",value:e.user,onChange:o("user"),style:Bh},dt.default.createElement("option",{value:""},"Run by anyone"),dt.default.createElement("option",{value:"me"},"Run by me")),dt.default.createElement("select",{"aria-label":"Source",value:e.source,onChange:o("source"),style:Bh},E3.map(a=>dt.default.createElement("option",{key:a.value,value:a.value},a.label))),dt.default.createElement("select",{"aria-label":"Outcome",value:e.outcome,onChange:o("outcome"),style:Bh},N3.map(a=>dt.default.createElement("option",{key:a.value,value:a.value},a.label))),dt.default.createElement("label",{style:{display:"flex",alignItems:"center",gap:6,fontSize:12,color:"var(--color-text-secondary)"}},"From",dt.default.createElement("input",{type:"date","aria-label":"Active from",value:e.from,max:e.to||void 0,onChange:o("from"),style:Bh})),dt.default.createElement("label",{style:{display:"flex",alignItems:"center",gap:6,fontSize:12,color:"var(--color-text-secondary)"}},"To",dt.default.createElement("input",{type:"date","aria-label":"Active until",value:e.to,min:e.from||void 0,onChange:o("to"),style:Bh})),T3(e)&&dt.default.createElement(de,{variant:"ghost",size:"sm",testId:"sessions-clear-filters",onClick:()=>t(ob)},"Clear filters"))}function f2e({session:e}){let t=ch(e.kind,e.id),r=vR[e.source]||vR.agent,n=d2e(e);return dt.default.createElement("a",{href:et(t),"data-testid":"session-row",onClick:o=>{o.metaKey||o.ctrlKey||o.shiftKey||o.button!==0||(o.preventDefault(),lt(t,gR))},style:{display:"flex",alignItems:"center",gap:12,padding:"12px 16px",textDecoration:"none",borderTop:"1px solid var(--color-border-light)",color:"inherit"}},dt.default.createElement(_e,{tone:r.tone,style:{width:92,justifyContent:"center"}},r.label),dt.default.createElement("div",{style:{minWidth:0,flex:1}},dt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,minWidth:0}},dt.default.createElement("span",{style:{fontFamily:U,fontSize:13,fontWeight:600,color:"var(--color-text-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},e.title),e.agent&&dt.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",whiteSpace:"nowrap"}},e.agent.name)),e.preview&&dt.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-cell)",marginTop:2,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},e.preview),n&&dt.default.createElement("div",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)",marginTop:2}},n)),e.outcome&&dt.default.createElement(_e,{tone:c2e[e.outcome]||"muted"},e.outcome),dt.default.createElement("span",{title:e.last_activity_at,style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)",width:96,textAlign:"right",flexShrink:0}},wo(e.last_activity_at)),dt.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-info)",flexShrink:0}},"replay ->"))}function O3({agents:e=[],user:t=null}){let[r,n]=(0,dt.useState)(()=>fR(window.location.search)),[o,a]=(0,dt.useState)({sessions:[],total:0,nextBefore:null}),[i,s]=(0,dt.useState)("loading"),[l,u]=(0,dt.useState)(null),[c,d]=(0,dt.useState)(!1),[p,f]=(0,dt.useState)(null),[m,y]=(0,dt.useState)(0),[b]=(0,dt.useState)(cR);(0,dt.useEffect)(()=>{window.history.replaceState(window.history.state,"",`${window.location.pathname}${mR(r)}`);let v=b.next();return s("loading"),d(!1),f(null),xR(r,null).then(x=>{v()&&(a({sessions:x.sessions||[],total:x.total||0,nextBefore:x.next_before||null}),s("ready"))}).catch(x=>{v()&&(u(x.message),s("error"))}),()=>{b.next()}},[r,m]);let g=async()=>{let v=b.latest();d(!0),f(null);try{let x=await xR(r,o.nextBefore);if(!v())return;a(S=>({sessions:[...S.sessions,...x.sessions||[]],total:x.total??S.total,nextBefore:x.next_before||null}))}catch(x){v()&&f(x.message)}finally{v()&&d(!1)}},h=T3(r);return dt.default.createElement("div",{"data-testid":"sessions-view",style:{display:"flex",flexDirection:"column",gap:16,maxWidth:1200}},dt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},dt.default.createElement("div",null,dt.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Sessions"),dt.default.createElement("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},"Replay what an agent did: its messages, model calls and tool calls, and its browser when one was recorded.")),i==="ready"&&dt.default.createElement(We,null,o.total," session",o.total===1?"":"s")),dt.default.createElement(p2e,{filters:r,onChange:n,agents:e,user:t}),dt.default.createElement(Le,{padding:0,testId:"sessions-list",style:{overflow:"hidden"}},i==="loading"&&dt.default.createElement(tn,null,"loading sessions\u2026"),i==="error"&&dt.default.createElement("div",{style:{padding:20,display:"flex",alignItems:"center",gap:12,color:"var(--color-error-text)",fontSize:13}},l,dt.default.createElement(de,{size:"sm",onClick:()=>y(v=>v+1)},"Retry")),i==="ready"&&o.sessions.length===0&&dt.default.createElement("div",{"data-testid":"sessions-empty",style:{padding:"32px 20px",textAlign:"center"}},h?dt.default.createElement(dt.default.Fragment,null,dt.default.createElement("div",{style:{fontSize:14,color:"var(--color-text-primary)"}},"No sessions match these filters."),dt.default.createElement(de,{variant:"secondary",size:"sm",style:{marginTop:12},onClick:()=>n(ob)},"Clear filters")):dt.default.createElement(dt.default.Fragment,null,dt.default.createElement("div",{style:{fontSize:14,color:"var(--color-text-primary)"}},"No sessions yet."),dt.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)",marginTop:6}},"Every conversation in an agent's Run workbench and every evaluation replay appears here, ready to replay."))),i==="ready"&&o.sessions.map(v=>dt.default.createElement(f2e,{key:`${v.kind}-${v.id}`,session:v}))),i==="ready"&&o.nextBefore&&dt.default.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",gap:12}},p&&dt.default.createElement("span",{"data-testid":"sessions-load-more-error",role:"alert",style:{fontSize:13,color:"var(--color-error-text)"}},p),dt.default.createElement(de,{size:"sm",testId:"sessions-load-more",onClick:g,disabled:c},c?"Loading\u2026":p?"Try again":"Load more")))}var Te=Z(J());var qt=Z(J());var m2e={personal:"Your key",host_resolver:"Organization key",organization:"Organization key",config:"Platform default",none:"Not configured"};function bR(e){return m2e[e]||null}function iA(e,t){return t?`${e}?scope=${encodeURIComponent(t)}`:e}function wR({set_by:e,updated_at:t}={},r=n=>new Date(n).toLocaleDateString()){let n=[];return e?.name&&n.push(`Set by ${e.name}`),t&&n.push(`${n.length?"updated":"Updated"} ${r(t)}`),n.length?n.join(" \xB7 "):null}var g2e="Setting your own host needs permission to manage the organization's keys.";function SR({editable:e=!0,scope:t,row:r={}}){let n=t==="personal"&&r.editable===!1;return{canChange:e&&!n,canRemove:e&&!!r.configured,note:e&&n&&r.host_based?g2e:null}}var _R={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 sA({onKeysChanged:e,onError:t,scope:r}){let[n,o]=(0,qt.useState)(null),[a,i]=(0,qt.useState)(""),[s,l]=(0,qt.useState)(""),[u,c]=(0,qt.useState)(!1),[d,p]=(0,qt.useState)({}),[f,m]=(0,qt.useState)(null);return{editingProvider:n,setEditingProvider:o,providerInput:a,setProviderInput:i,providerApiKeyInput:s,setProviderApiKeyInput:l,savingProvider:u,testResults:d,testingProvider:f,saveProviderKey:async(h,{hostBased:v=!1,clearApiKey:x=!1}={})=>{if(!(!a.trim()||u)){c(!0),t(null);try{let S={provider:h,credential:a.trim()};r&&(S.scope=r),v&&(s.trim()||x)&&(S.api_key=x?"":s.trim());let _=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(S)});if(!_.ok){let w=await _.json().catch(()=>({}));throw new Error(Array.isArray(w.error)?w.error.join(", "):"save failed")}o(null),i(""),l(""),p(w=>({...w,[h]:null})),gT(),await e()}catch(S){t(`Could not save the ${_R[h]?.label||h} credential${S.message!=="save failed"?`: ${S.message}`:"."}`)}finally{c(!1)}}},testProviderHost:async(h,{editing:v=!1}={})=>{if(!f){m(h),t(null);try{let x={provider:h};r&&(x.scope=r),v&&(a.trim()&&(x.credential=a.trim()),s.trim()&&(x.api_key=s.trim()));let S=await fetch("/api/provider_keys/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(x)}),_=await S.json().catch(()=>({}));if(!S.ok)throw new Error(_.error||"test failed");p(w=>({...w,[h]:_}))}catch(x){p(S=>({...S,[h]:{ok:!1,models:[],error:x.message}}))}finally{m(null)}}},removeProviderKey:async h=>{if(await Wr(r==="personal"?{title:"Remove your key?",message:"Your runs will use the organization's key, or the platform default.",confirmLabel:"Remove key",danger:!0}:{title:"Remove this provider credential?",message:"Runs fall back to the platform default credentials, or fail until a key is configured.",confirmLabel:"Remove credential",danger:!0}))try{if(!(await fetch(iA(`/api/provider_keys/${h}`,r),{method:"DELETE"})).ok)throw new Error("delete failed");p(S=>({...S,[h]:null})),gT(),await e()}catch{t("Could not remove the provider credential.")}}}}var kR={default:{title:"Provider API Keys",description:"Configure your own LLM provider credentials. Agent runs and evaluations on this account use these instead of the platform defaults. Keys are encrypted at rest."},organization:{title:"Provider Keys",description:"Shared by everyone in this organization. Agent runs and evaluations use these instead of the platform defaults. Keys are encrypted at rest."},personal:{title:"Your Provider Keys",description:"Your own credentials, used by the runs you start. Where you have none, the organization's key applies. Keys are encrypted at rest."}};function ab({providerKeys:e,editor:t,scope:r,editable:n=!0}){let{darkMode:o}=ut(),{editingProvider:a,setEditingProvider:i,providerInput:s,setProviderInput:l,providerApiKeyInput:u,setProviderApiKeyInput:c,savingProvider:d,testResults:p,testingProvider:f,saveProviderKey:m,testProviderHost:y,removeProviderKey:b}=t,g={backgroundColor:o?"#1f1f1f":"#ffffff",borderColor:o?"#2a2a2a":"#e5e7eb"},h=kR[r]||kR.default;return qt.default.createElement("div",{className:"border rounded-lg p-6",style:g},qt.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${o?"text-white":"text-gray-900"}`},h.title),qt.default.createElement("p",{className:`text-sm mb-4 ${o?"text-gray-400":"text-gray-500"}`},h.description),!n&&qt.default.createElement("p",{className:`text-sm mb-4 ${o?"text-gray-500":"text-gray-400"}`},"You can see these keys but not change them."),qt.default.createElement("div",{className:"space-y-4"},e.filter(({kind:v})=>v!=="connection").map(v=>{let{provider:x,host_based:S,configured:_,hint:w,api_key_configured:k,api_key_hint:A,platform_default:C}=v,T=_R[x]||{label:x,icon:"\u{1F511}",placeholder:""},$=a===x,Q=p[x],B=f===x,K=S&&($?s.trim():_||C),N=_?S?`${w}${k?` \xB7 key ${A}`:""}`:`Configured (${w})`:S&&C?`Platform default: ${C}`:"Not configured",O=r==="personal"?bR(v.effective_source):null,{canChange:D,canRemove:P,note:j}=SR({editable:n,scope:r,row:v}),M=r==="organization"&&_?wR(v):null;return qt.default.createElement("div",{key:x,className:"p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},qt.default.createElement("div",{className:"flex items-center justify-between"},qt.default.createElement("div",{className:"flex items-center space-x-3"},qt.default.createElement("span",{className:"text-xl"},T.icon),qt.default.createElement("div",null,qt.default.createElement("p",{className:`font-medium ${o?"text-white":"text-gray-900"}`},T.label),qt.default.createElement("p",{className:`text-sm ${_?o?"text-green-400":"text-green-600":o?"text-gray-400":"text-gray-500"}`},N),M&&qt.default.createElement("p",{className:`text-xs ${o?"text-gray-500":"text-gray-400"}`,"data-testid":"provider-key-audit"},M)),O&&qt.default.createElement("span",{className:`px-2 py-0.5 rounded text-xs ${o?"bg-gray-700 text-gray-200":"bg-gray-200 text-gray-700"}`,"data-testid":"provider-key-source"},O)),(D||P)&&qt.default.createElement("div",{className:"flex items-center space-x-2"},D&&S&&!$&&K&&qt.default.createElement("button",{onClick:()=>y(x),disabled:B,className:`px-3 py-1 text-sm rounded disabled:opacity-50 ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},B?"Testing\u2026":"Test connection"),P&&!$&&qt.default.createElement("button",{onClick:()=>b(x),className:`px-3 py-1 text-sm rounded ${o?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},"Remove"),D&&qt.default.createElement("button",{onClick:()=>{i($?null:x),l(!$&&S&&_?w:""),c("")},className:`px-3 py-1 text-sm rounded ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},$?"Cancel":_?"Update":"Configure"))),j&&qt.default.createElement("p",{className:`mt-2 text-xs ${o?"text-gray-500":"text-gray-400"}`,"data-testid":"provider-key-locked"},j),$&&qt.default.createElement("div",{className:"mt-3 space-y-2"},qt.default.createElement("div",{className:"flex items-center space-x-2"},qt.default.createElement("input",{type:S?"text":"password","data-aa-secret":S?void 0:"",value:s,onChange:W=>l(W.target.value),onKeyDown:W=>W.key==="Enter"&&m(x,{hostBased:S}),placeholder:S?T.placeholder:`${T.label} API key (${T.placeholder})`,"aria-label":S?`${T.label} host URL`:`${T.label} API key`,autoFocus:!0,className:`flex-1 px-3 py-2 border rounded-lg text-sm font-mono ${o?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),S&&qt.default.createElement("button",{onClick:()=>y(x,{editing:!0}),disabled:!s.trim()||B,className:`px-3 py-2 text-sm rounded-lg disabled:opacity-50 ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},B?"Testing\u2026":"Test"),qt.default.createElement("button",{onClick:()=>m(x,{hostBased:S}),disabled:!s.trim()||d,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 text-sm"},d?"Saving\u2026":"Save")),S&&qt.default.createElement("div",{className:"flex items-center space-x-2"},qt.default.createElement("input",{type:"password","data-aa-secret":"",value:u,onChange:W=>c(W.target.value),onKeyDown:W=>W.key==="Enter"&&m(x,{hostBased:S}),placeholder:k?`API key (stored: ${A} \u2014 type to replace)`:"API key (optional \u2014 only for remote servers that require one)","aria-label":`${T.label} API key`,className:`flex-1 px-3 py-2 border rounded-lg text-sm font-mono ${o?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),k&&qt.default.createElement("button",{onClick:()=>m(x,{hostBased:S,clearApiKey:!0}),disabled:!s.trim()||d,className:`px-3 py-2 text-sm rounded-lg disabled:opacity-50 ${o?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},"Clear key"))),S&&$&&qt.default.createElement("p",{className:`mt-2 text-xs ${o?"text-gray-500":"text-gray-400"}`},"Your Ollama server's address \u2014 the OpenAI-compatible /v1 path is added if you leave it off. Local: http://localhost:11434. Remote: a LAN host, a tunnel URL, or Ollama Cloud (https://ollama.com), which needs an API key. Test lists the models the server currently serves."),S&&Q&&qt.default.createElement("div",{className:"mt-2 text-xs rounded-lg px-3 py-2",role:"status",style:{backgroundColor:Q.ok?o?"rgba(74,222,128,0.1)":"#ecfdf5":o?"rgba(248,113,113,0.1)":"#fef2f2",color:Q.ok?o?"#4ade80":"#047857":o?"#f87171":"#b91c1c"}},Q.ok?qt.default.createElement(qt.default.Fragment,null,qt.default.createElement("span",{className:"font-medium"},"Connected")," ","to ",Q.host,typeof Q.latency_ms=="number"?` in ${Q.latency_ms} ms`:""," \xB7 ",Q.models.length===0?"no models pulled yet (run `ollama pull ` on the server)":`${Q.models.length} model${Q.models.length===1?"":"s"}`,Q.models.length>0&&qt.default.createElement("span",{className:"block mt-1 font-mono",style:{color:o?"#d1d5db":"#374151"}},Q.models.join(" \xB7 "))):qt.default.createElement(qt.default.Fragment,null,qt.default.createElement("span",{className:"font-medium"},"Not reachable.")," ",Q.error)))})))}async function CR(e=fetch){let t=await e("/api/telemetry_key",{cache:"no-store"});if(!t.ok)throw new Error(`Could not load the telemetry key (HTTP ${t.status})`);return(await t.json().catch(()=>null))?.telemetry_api_key||null}var lA=e=>e==null?"0":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString();function P3({account:e,user:t,subscription:r,agentCount:n=0}){let{darkMode:o}=ut(),[a,i]=(0,Te.useState)(null),[s,l]=(0,Te.useState)(!1),[u,c]=(0,Te.useState)(!1),[d,p]=(0,Te.useState)({status:"idle",value:null,error:null}),[f,m]=(0,Te.useState)(!1),[y,b]=(0,Te.useState)(null),[g,h]=(0,Te.useState)(null),[v,x]=(0,Te.useState)([]),[S,_]=(0,Te.useState)(!1),[w,k]=(0,Te.useState)(null),A=window.ACTIVE_AGENT_DASHBOARD?.meta?.memberInviteUrl;(0,Te.useEffect)(()=>{fetch("/api/usage").then(M=>M.ok?M.json():null).then(M=>i(M?.usage||null)).catch(()=>i(null)),fetch("/api/members").then(M=>M.ok?M.json():null).then(M=>h(M?.members||[])).catch(()=>h([]))},[]);let C=(0,Te.useCallback)(async()=>{try{let M=await fetch("/api/provider_keys?scope=organization");if(!M.ok)throw new Error("load failed");let W=await M.json();x(W.provider_keys||[]),_(!!W.can_manage_organization_keys),k(null)}catch{k("Could not load the organization's provider keys.")}},[]);(0,Te.useEffect)(()=>{C()},[C]);let T=sA({onKeysChanged:C,onError:k,scope:"organization"}),$=async()=>{m(!0),b(null);try{await Oh({planSlug:"pro"})}catch(M){b(M.message),m(!1)}},Q=async()=>{if(d.status==="ready")return d.value;p({status:"loading",value:null,error:null});try{let M=await CR();return p({status:"ready",value:M,error:null}),M}catch(M){return p({status:"error",value:null,error:M.message}),null}},B=async()=>{u?c(!1):await Q()&&c(!0)},K=async()=>{let M=await Q();if(M)try{await navigator.clipboard.writeText(M),l(!0),setTimeout(()=>l(!1),2e3)}catch{}},N=d.status==="ready"&&!d.value,O={backgroundColor:o?"#1f1f1f":"#ffffff",borderColor:o?"#2a2a2a":"#e5e7eb"},D=r?.plan_name||"Free",P={free:{seats:1,workspaces:1,agents:3,traces:"250/mo trial"},pro:{seats:5,workspaces:3,agents:"Unlimited",traces:"25,000/mo"},enterprise:{seats:"Unlimited",workspaces:"Unlimited",agents:"Unlimited",traces:"500,000+/mo"}},j=P[D.toLowerCase()]||P.free;return Te.default.createElement("div",{className:"p-6 space-y-6"},Te.default.createElement("div",null,Te.default.createElement("h2",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},"Organization"),Te.default.createElement("p",{className:`mt-1 ${o?"text-gray-400":"text-gray-500"}`},"Manage your workspace, team, and billing")),Te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6"},Te.default.createElement("div",{className:"border rounded-lg p-6",style:O},Te.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${o?"text-white":"text-gray-900"}`},"Workspace"),Te.default.createElement("div",{className:"space-y-3"},Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Name"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},e?.name||"My Workspace")),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Owner"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},t?.email||"you@example.com")),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Created"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},e?.created_at?new Date(e.created_at).toLocaleDateString():"Today")))),Te.default.createElement("div",{className:"border rounded-lg p-6",style:O},Te.default.createElement("div",{className:"flex items-center justify-between mb-4"},Te.default.createElement("h3",{className:`text-lg font-semibold ${o?"text-white":"text-gray-900"}`},"Current Plan"),Te.default.createElement("span",{className:"px-3 py-1 bg-red-100 text-red-700 rounded-full text-sm font-medium"},D)),Te.default.createElement("div",{className:"space-y-3"},Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Team Seats"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},j.seats)),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Workspaces"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},j.workspaces)),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Agents"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},j.agents)),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Traces"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},j.traces))),D.toLowerCase()!=="enterprise"&&Te.default.createElement(Te.default.Fragment,null,Te.default.createElement("button",{onClick:$,disabled:f,className:"mt-4 w-full px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},f?"Redirecting to checkout\u2026":"Upgrade Plan"),y&&Te.default.createElement("p",{className:"mt-2 text-sm text-red-500 text-center"},y)))),Te.default.createElement("div",{className:"border rounded-lg p-6",style:O},Te.default.createElement("div",{className:"flex items-center justify-between mb-4"},Te.default.createElement("h3",{className:`text-lg font-semibold ${o?"text-white":"text-gray-900"}`},"Team Members"),A&&Te.default.createElement("a",{href:A,className:"px-4 py-2 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors"},"+ Invite Member")),Te.default.createElement("div",{className:"overflow-hidden"},Te.default.createElement("table",{className:"min-w-full"},Te.default.createElement("thead",null,Te.default.createElement("tr",{className:o?"border-b border-gray-700":"border-b border-gray-200"},Te.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${o?"text-gray-400":"text-gray-500"}`},"Member"),Te.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${o?"text-gray-400":"text-gray-500"}`},"Role"))),Te.default.createElement("tbody",null,(g||[]).map(M=>Te.default.createElement("tr",{key:M.id??M.email},Te.default.createElement("td",{className:"py-3 px-4"},Te.default.createElement("div",{className:"flex items-center space-x-3"},Te.default.createElement("div",{className:"w-8 h-8 bg-red-100 rounded-full flex items-center justify-center"},Te.default.createElement("span",{className:"text-red-600 font-medium text-sm"},(M.name||M.email||"?").charAt(0).toUpperCase())),Te.default.createElement("div",null,Te.default.createElement("p",{className:`font-medium ${o?"text-white":"text-gray-900"}`},M.name||M.email,M.id!=null&&M.id===t?.id&&Te.default.createElement("span",{className:`ml-2 text-xs ${o?"text-gray-500":"text-gray-400"}`},"(you)")),M.name&&M.email&&Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},M.email)))),Te.default.createElement("td",{className:"py-3 px-4"},M.role?Te.default.createElement("span",{className:"px-2 py-1 bg-purple-100 text-purple-700 rounded text-sm"},String(M.role).charAt(0).toUpperCase()+String(M.role).slice(1)):Te.default.createElement("span",{className:o?"text-gray-500":"text-gray-400"},"\u2014")))))))),Te.default.createElement("div",{className:"space-y-2"},w&&Te.default.createElement("p",{className:"text-sm text-red-500",role:"alert"},w),Te.default.createElement(ab,{providerKeys:v,editor:T,scope:"organization",editable:S})),Te.default.createElement("div",{className:"border rounded-lg p-6",style:O},Te.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${o?"text-white":"text-gray-900"}`},"Usage This Month"),Te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4"},Te.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},Te.default.createElement("p",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},n),Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},"Agents")),Te.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},Te.default.createElement("p",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},lA(a?.traces_used),a?.traces_limit>0&&Te.default.createElement("span",{className:`text-sm font-normal ${o?"text-gray-500":"text-gray-400"}`}," / ",lA(a.traces_limit))),Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},"Traces")),Te.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},Te.default.createElement("p",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},lA(a?.runs_used)),Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},"Executions")),Te.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},Te.default.createElement("p",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},lA(a?.tokens_used)),Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},"Tokens")))),Te.default.createElement("div",{className:"border rounded-lg p-6",style:O},Te.default.createElement("h3",{className:`text-lg font-semibold mb-1 ${o?"text-white":"text-gray-900"}`},"Telemetry"),Te.default.createElement("p",{className:`text-sm mb-4 ${o?"text-gray-400":"text-gray-500"}`},"Send traces from your own ActiveAgent app to this workspace. Add this to your"," ",Te.default.createElement("code",{className:`px-1 rounded text-xs ${o?"bg-gray-800 text-gray-300":"bg-gray-100 text-gray-700"}`},"config/active_agent.yml"),":"),Te.default.createElement("pre",{className:`text-xs rounded-lg p-4 overflow-x-auto mb-4 ${o?"bg-black text-gray-300":"bg-gray-900 text-gray-100"}`},`telemetry: +`)||x?.instructions||"",Xh=b.slice();h&&!Xh.some(ie=>ie.id===h)&&Xh.unshift({id:h,message_count:Qt.length});let _A=(c.trim().length>0||p.length>0)&&!C,Cd=L?.status==="awaiting_input",yb=Cd?ph(L.input_requests):[],CA=new Set(W.map(({request:ie})=>ie.id)),Zh=L&&!C&&L.status==="failed",Of=L&&!C&&L.status==="complete"&&!hs(L)&&!h,Il={background:a.cardBg,border:`1px solid ${a.cardBorder}`,borderRadius:"12px"},Ad={borderBottom:`1px solid ${a.cardBorder}`},Jh={padding:"6px 10px",borderRadius:"8px",border:`1px solid ${a.inputBorder}`,background:a.inputBg,color:a.textPrimary,fontSize:"13px",fontFamily:Pt.mono,maxWidth:"260px"},Qh={width:"100%",padding:"10px 12px",borderRadius:"8px",border:`1px solid ${m?Qo:a.inputBorder}`,background:a.inputBg,color:a.textPrimary,fontFamily:"inherit",fontSize:"13px",resize:"vertical"},qu=Ln("system",o),vb=HC(o);return X.default.createElement("div",{className:"grid grid-cols-3 gap-6 h-full"},X.default.createElement("div",{className:"col-span-2 flex flex-col gap-4 min-w-0"},le&&X.default.createElement("div",{className:"bg-amber-50 border border-amber-200 rounded-xl p-4 flex items-center justify-between gap-4"},X.default.createElement("div",null,X.default.createElement("p",{className:"font-medium text-amber-900"},"Monthly run limit reached"),X.default.createElement("p",{className:"text-sm text-amber-700 mt-0.5"},"You've used ",le.runs_used," of ",le.runs_limit," runs on the"," ",le.plan||"free"," plan. Upgrade to keep running agents."),_e&&X.default.createElement("p",{className:"text-sm text-red-600 mt-1"},_e)),X.default.createElement("div",{className:"flex items-center gap-2 flex-shrink-0"},kd&&X.default.createElement("a",{href:kd,className:"px-4 py-2 text-sm text-amber-800 hover:text-amber-900"},"See plans"),X.default.createElement("button",{onClick:Yh,disabled:te,className:"px-4 py-2 text-sm bg-amber-500 text-white rounded-lg hover:bg-amber-600 transition-colors disabled:opacity-50"},te?"Redirecting\u2026":"Upgrade to Pro"))),X.default.createElement("div",{"data-testid":"runner-toolbar",style:Il,className:"p-4 flex items-center gap-3 flex-wrap"},X.default.createElement(In,{size:40}),X.default.createElement("div",{className:"min-w-0"},X.default.createElement("div",{className:"font-semibold truncate",style:{color:a.textPrimary}},e.name),X.default.createElement("div",{className:"text-xs font-mono",style:{color:a.textSecondary}},e.provider," / ",e.model)),X.default.createElement("div",{className:"flex items-center gap-2 flex-wrap ml-auto"},X.default.createElement("select",{"data-testid":"runner-action-select",value:l,onChange:ie=>ws(ie.target.value),disabled:C,className:"aa-field",style:Jh,title:"Agent action to invoke"},s.map(ie=>X.default.createElement("option",{key:ie,value:ie},"#",ie))),X.default.createElement("select",{"data-testid":"runner-conversation-select",value:h??"",onChange:ie=>Hu(ie.target.value),disabled:C,className:"aa-field",style:Jh,title:"Conversation to continue"},X.default.createElement("option",{value:""},"New conversation on first run"),Xh.map(ie=>X.default.createElement("option",{key:ie.id,value:ie.id},"Conversation #",ie.id," \xB7 ",ie.message_count??0," message",ie.message_count===1?"":"s"))),X.default.createElement(fa,{testId:"runner-new-conversation",variant:"secondary",size:"sm",colors:a,onClick:ro,disabled:C,title:"Start an empty conversation for this action"},"+ New conversation"),X.default.createElement(fa,{testId:"runner-back",variant:"secondary",size:"sm",colors:a,onClick:t},"\u2190 Back to editor"))),X.default.createElement("div",{"data-testid":"runner-context",ref:xs,style:Il,className:"flex flex-col overflow-hidden"},X.default.createElement("div",{className:"px-4 py-3 flex items-center justify-between gap-3 flex-wrap",style:Ad},X.default.createElement("div",{className:"flex items-center gap-2 min-w-0"},X.default.createElement("h3",{className:"font-medium",style:{color:a.textPrimary}},"Context"),x&&X.default.createElement("span",{className:"text-xs font-mono",style:{color:a.textMuted}},"#",x.id," \xB7 ",Qt.length," message",Qt.length===1?"":"s"),pt==="recording"&&X.default.createElement("span",{"data-testid":"runner-recording-notice",className:"text-xs inline-flex items-center gap-1",style:{color:a.textMuted},title:"This view is recorded for the conversation's replay. Field values are masked and keys are left out; the conversation is recorded as shown."},X.default.createElement("span",{"aria-hidden":"true",style:{color:"#ef4444"}},"\u25CF"),"Recording"),pt==="limit"&&X.default.createElement("span",{"data-testid":"runner-recording-stopped",className:"text-xs",style:{color:a.textMuted},title:"This visit reached the size limit for a recording, so the rest of it is not recorded. Open the conversation again to start a new recording."},"Recording stopped")),X.default.createElement("div",{className:"flex items-center gap-3 flex-wrap"},X.default.createElement(sCe,{run:L,darkMode:o,colors:a}),x&&X.default.createElement(fa,{testId:"runner-replay",variant:"secondary",size:"sm",colors:a,onClick:()=>lt(dh("context",x.id)),disabled:C,title:"Replay this conversation: its messages, model calls and tool calls on one timeline"},"Replay"),X.default.createElement("div",{className:"relative",ref:nt},X.default.createElement(fa,{testId:"runner-add-message",variant:"secondary",size:"sm",colors:a,onClick:()=>ee(ie=>!ie),disabled:C,title:"Insert a message into the context without running"},"+ Add message"),$&&X.default.createElement("div",{className:"absolute right-0 mt-1 z-10 py-1 rounded-lg shadow-lg",style:{background:a.cardBg,border:`1px solid ${a.borderStrong}`,minWidth:"180px"}},[["user","runner-add-user-message","User message"],["assistant","runner-add-assistant-message","Assistant message"]].map(([ie,Ie,st])=>X.default.createElement("button",{key:ie,type:"button","data-testid":Ie,onClick:()=>mo(ie),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-black/5",style:{color:a.textCell,background:"none",border:"none",cursor:"pointer"}},st)))))),X.default.createElement("div",{ref:bs,className:"p-4 overflow-auto",style:{maxHeight:"60vh"}},X.default.createElement("div",{"data-testid":"runner-system-row",className:"flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 cursor-pointer",onClick:()=>E(ie=>!ie),title:G?"Collapse system instructions":"Show system instructions"},X.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},X.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:qu.background,color:qu.color,textAlign:"center"}},qu.label)),X.default.createElement("div",{className:"min-w-0 flex-1"},_d?G?X.default.createElement("pre",{style:{...vb,whiteSpace:"pre-wrap",maxHeight:"260px",overflowY:"auto"}},_d):X.default.createElement("div",{className:"text-sm truncate",style:{color:a.textSecondary}},_d.split(` +`).find(ie=>ie.trim())||""):X.default.createElement("div",{className:"text-sm",style:{color:a.textMuted}},"No system instructions"),X.default.createElement("div",{className:"text-xs mt-0.5 font-mono",style:{color:a.textMuted}},"read-only \xB7 Edit in the Instructions tab")),X.default.createElement(PQ,{open:G,color:a.textMuted})),k&&X.default.createElement("div",{className:"text-sm mt-3",style:{color:"#dc2626"}},k),Qt.length>0?X.default.createElement("div",{className:"mt-3"},X.default.createElement(ps,{messages:Qt,darkMode:o,testIdPrefix:"runner-message",onUiAction:Da,onEditMessage:wd,onDeleteMessage:Sd})):!B&&!T&&!Zh&&X.default.createElement("div",{"data-testid":"runner-context-empty",className:"text-sm text-center py-8",style:{color:a.textMuted}},"No messages yet \u2014 say something below to test the agent as a user."),B&&X.default.createElement("div",{"data-testid":"runner-pending-turn",className:"flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 mt-3"},X.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},X.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:Ln("user",o).background,color:Ln("user",o).color,textAlign:"center"}},"User")),X.default.createElement("div",{className:"min-w-0 flex-1"},X.default.createElement("div",{className:"text-sm break-words whitespace-pre-wrap",style:{color:a.textPrimary}},B.content),X.default.createElement(qC,{attachments:B.attachments,darkMode:o}))),L&&(C||YD(L).length>0)&&X.default.createElement("div",{className:"mt-3 space-y-2"},X.default.createElement(iCe,{run:L,darkMode:o,colors:a,expanded:j,onToggle:ie=>M(Ie=>({...Ie,[ie]:!Ie[ie]}))}),C&&!Cd&&X.default.createElement("div",{className:"flex items-center gap-2 text-sm",style:{color:a.textSecondary}},X.default.createElement("span",{className:"animate-pulse"},"\u25CF"),X.default.createElement("span",null,YD(L).length>0?"Working\u2026":"Starting run\u2026"))),(yb.length>0||W.length>0)&&X.default.createElement("div",{"data-testid":"runner-input-requests",className:"mt-3 space-y-2"},Cd&&X.default.createElement("div",{className:"text-sm",style:{color:a.textSecondary}},"Paused for input: answer to continue this run."),yb.filter(ie=>!CA.has(ie.id)).map(ie=>X.default.createElement(Qp,{key:ie.id,request:ie,showRunLink:!1,onSettled:Vh})),W.map(({request:ie,outcome:Ie})=>X.default.createElement(Qp,{key:ie.id,request:ie,initialOutcome:Ie,showRunLink:!1}))),I&&X.default.createElement("div",{className:"text-xs mt-3",style:{color:"#d97706"}},I),Zh&&L.error_message&&X.default.createElement("div",{className:"mt-3 rounded-lg p-3 text-sm",style:{background:o?"rgba(239,68,68,0.12)":"#fef2f2",color:o?"#fca5a5":"#b91c1c"}},X.default.createElement("div",{className:"font-semibold mb-1"},"Run failed"),X.default.createElement("pre",{className:"whitespace-pre-wrap font-mono text-xs",style:{margin:0}},L.error_message)),Of&&X.default.createElement("div",{className:"mt-3 rounded-lg p-3 text-sm",style:{background:a.innerBg,color:a.textPrimary}},X.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:a.textMuted}},"Output"),X.default.createElement(Us,{text:L.output||"No output",darkMode:o,onUiAction:Da})),T&&X.default.createElement("div",{"data-testid":"runner-inspected-run",className:"mt-3 rounded-lg p-3",style:{background:a.innerBg,border:`1px solid ${a.cardBorder}`}},X.default.createElement("div",{className:"flex items-center justify-between gap-3 flex-wrap mb-2"},X.default.createElement("div",{className:"flex items-center gap-2 text-xs font-mono",style:{color:a.textMuted}},X.default.createElement("span",{style:{color:a.textPrimary}},"Run #",T.id),X.default.createElement(hd,{tone:GD[T.status]||"neutral",darkMode:o},T.status),T.output_metadata?.model&&X.default.createElement("span",null,T.output_metadata.provider,"/",T.output_metadata.model),T.duration_ms?X.default.createElement("span",null,Y2(T.duration_ms)):null,T.trace_id&&X.default.createElement("a",{href:Re(`/traces?trace=${T.trace_id}`),className:"hover:underline",style:{color:a.textSecondary}},"trace:",T.trace_id.slice(0,8)," \u2192"),X.default.createElement("span",null,"\xB7 no conversation attached")),X.default.createElement("button",{type:"button",onClick:()=>O(null),className:"text-xs font-mono",style:{color:a.textMuted,background:"none",border:"none",cursor:"pointer"},title:"Close"},"[x]")),(T.input_prompt||T.input_preview)&&X.default.createElement("div",{className:"text-sm mb-2 whitespace-pre-wrap",style:{color:a.textSecondary}},T.input_prompt||T.input_preview),T.error_message?X.default.createElement("pre",{className:"whitespace-pre-wrap font-mono text-xs",style:{margin:0,color:o?"#fca5a5":"#b91c1c"}},T.error_message):X.default.createElement("div",{className:"text-sm",style:{color:a.textPrimary}},X.default.createElement(Us,{text:T.output||"No output",darkMode:o}))),F&&X.default.createElement("div",{className:"mt-3 rounded-lg p-3",style:{border:`1px dashed ${a.borderStrong}`}},X.default.createElement("div",{className:"flex items-center gap-2 mb-2"},X.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:Ln(F,o).background,color:Ln(F,o).color}},Ln(F,o).label),X.default.createElement("span",{className:"text-xs",style:{color:a.textMuted}},"Added to the context without running the agent")),X.default.createElement("textarea",{"data-testid":"runner-inline-composer",value:et,onChange:ie=>rt(ie.target.value),onKeyDown:ie=>{ie.key==="Escape"&&me(null),ie.key==="Enter"&&(ie.metaKey||ie.ctrlKey)&&Ml()},placeholder:F==="user"?"What the user said\u2026":"What the assistant replied\u2026",rows:3,autoFocus:!0,className:"aa-field",style:{...Qh,border:`1px solid ${a.inputBorder}`}}),X.default.createElement("div",{className:"flex items-center gap-2 mt-2 flex-wrap"},X.default.createElement(fa,{testId:"runner-inline-submit",variant:"primary",size:"sm",colors:a,onClick:Ml,disabled:ge||!et.trim()},ge?"Adding\u2026":`Add ${F} message`),X.default.createElement(fa,{variant:"secondary",size:"sm",colors:a,onClick:()=>me(null),disabled:ge},"Cancel"),Fe&&X.default.createElement("span",{className:"text-xs",style:{color:"#dc2626"}},Fe))))),X.default.createElement("div",{style:Il,className:"p-4"},X.default.createElement("div",{onDragOver:ie=>{ie.preventDefault(),m||y(!0)},onDragLeave:()=>y(!1),onDrop:ie=>{ie.preventDefault(),y(!1),C||qh(ie.dataTransfer?.files)}},X.default.createElement("textarea",{"data-testid":"runner-prompt",value:c,onChange:ie=>d(ie.target.value),onKeyDown:Gh,placeholder:"Message the agent as a user\u2026 (\u2318/Ctrl+Enter to run \xB7 drop files here to attach)",rows:3,disabled:C,className:"aa-field",style:Qh})),X.default.createElement(qC,{attachments:p,darkMode:o,testId:"runner-attachment-chip",onRemove:(ie,Ie)=>fb(Ie),removeTestId:"runner-attachment-remove"}),X.default.createElement("div",{className:"flex items-center justify-between gap-3 flex-wrap mt-3"},X.default.createElement("div",{className:"flex items-center gap-3 flex-wrap"},X.default.createElement("input",{ref:ve,"data-testid":"runner-attach-input",type:"file",multiple:!0,style:{display:"none"},onChange:ie=>{qh(ie.target.files),ie.target.value=""}}),X.default.createElement(fa,{testId:"runner-attach",variant:"secondary",size:"sm",colors:a,onClick:()=>ve.current?.click(),disabled:C,title:"Attach images, PDFs, or text files to this message"},"\u{1F4CE} Attach files"),X.default.createElement("span",{className:"text-xs",style:{color:a.textMuted}},"Press ",X.default.createElement("kbd",{className:"px-1.5 py-0.5 rounded",style:{background:a.mutedBg,color:a.textSecondary}},"\u2318")," + ",X.default.createElement("kbd",{className:"px-1.5 py-0.5 rounded",style:{background:a.mutedBg,color:a.textSecondary}},"Enter")," to run")),X.default.createElement(fa,{testId:"runner-run",variant:"primary",colors:a,onClick:fo,disabled:!_A},C&&Cd?X.default.createElement(X.default.Fragment,null,X.default.createElement("span",{style:{fontFamily:Pt.mono}},"[?]")," Waiting for input"):C?X.default.createElement(X.default.Fragment,null,X.default.createElement("span",{className:"animate-spin inline-block",style:{fontFamily:Pt.mono}},"[~]")," Running\u2026"):X.default.createElement(X.default.Fragment,null,X.default.createElement("span",{style:{fontFamily:Pt.mono}},"[>]")," Run"))))),X.default.createElement("div",{className:"space-y-4 min-w-0"},X.default.createElement("div",{style:Il,className:"p-4"},X.default.createElement("h4",{className:"font-medium mb-3",style:{color:a.textPrimary}},"Configuration"),X.default.createElement("dl",{className:"space-y-2 text-sm"},X.default.createElement("div",{className:"flex justify-between"},X.default.createElement("dt",{style:{color:a.textSecondary}},"Temperature"),X.default.createElement("dd",{style:{color:a.textPrimary}},e.modelConfig?.temperature||e.model_config?.temperature||.7)),X.default.createElement(OQ,{label:"Tools",names:e.tools||[],colors:a}),X.default.createElement(OQ,{label:"MCP",names:(e.mcp_servers||e.mcpServers||[]).map(aCe),colors:a}),X.default.createElement("div",{className:"flex justify-between items-center gap-3"},X.default.createElement("dt",{className:"shrink-0",style:{color:a.textSecondary}},"Checkout"),X.default.createElement("dd",{className:"min-w-0"},X.default.createElement("select",{"data-testid":"runner-checkout",value:q,onChange:ie=>oe(ie.target.value),onFocus:Me,className:"text-xs rounded border px-1 py-0.5 max-w-[12rem]",style:{background:a.cardBg,borderColor:a.cardBorder,color:a.textPrimary}},X.default.createElement("option",{value:""},"None"),z.map(ie=>X.default.createElement("option",{key:ie.value,value:ie.value},ie.label))))),fe&&!q&&X.default.createElement("p",{className:"text-xs","data-testid":"runner-checkout-hint",style:{color:a.textMuted}},z.length?"Choose a checkout: the terminal, filesystem, edit and database tools act in it.":"The terminal, filesystem, edit and database tools act in a checkout. Boot one from a project's page, then choose it here."),X.default.createElement("div",{className:"flex justify-between items-center"},X.default.createElement("dt",{style:{color:a.textSecondary}},"Status"),X.default.createElement("dd",null,X.default.createElement(hd,{tone:e.status==="active"?"success":"neutral",darkMode:o},e.status)))),e.instructions&&X.default.createElement("div",{className:"mt-3 pt-3",style:{borderTop:`1px solid ${a.cardBorder}`}},X.default.createElement("div",{className:"text-xs mb-1.5",style:{color:a.textSecondary}},"System Instructions"),X.default.createElement("p",{className:"text-xs whitespace-pre-wrap max-h-44 overflow-y-auto font-mono leading-relaxed",style:{color:a.textCell}},e.instructions))),X.default.createElement("div",{style:Il,className:"overflow-hidden"},X.default.createElement("div",{className:"px-4 py-3",style:Ad},X.default.createElement("h4",{className:"font-medium",style:{color:a.textPrimary}},"Recent Runs")),X.default.createElement("div",{className:"max-h-64 overflow-auto"},_.length>0?X.default.createElement("div",null,_.map(ie=>X.default.createElement("div",{key:ie.id,"data-testid":"runner-recent-run",className:"px-4 py-3 cursor-pointer hover:bg-black/5",style:{borderBottom:`1px solid ${a.cardBorder}`},onClick:()=>gb(ie),title:hs(ie)?"Open this run\u2019s conversation":"Show this run\u2019s output"},X.default.createElement("div",{className:"flex items-center justify-between mb-1"},X.default.createElement(hd,{tone:GD[ie.status]||"neutral",darkMode:o},ie.status),X.default.createElement("span",{className:"text-xs",style:{color:a.textMuted}},Y2(ie.duration_ms))),X.default.createElement("p",{className:"text-sm truncate",style:{color:a.textCell}},ie.input_preview||ie.input_prompt?.substring(0,50)),X.default.createElement("p",{className:"text-xs mt-1 flex items-center gap-2 flex-wrap",style:{color:a.textMuted}},ie.model&&X.default.createElement("span",{className:"px-1.5 py-0.5 rounded font-mono",style:{background:a.mutedBg,color:a.textSecondary}},ie.model),hs(ie)&&X.default.createElement("span",{className:"font-mono"},"#",hs(ie)),X.default.createElement("span",null,new Date(ie.created_at).toLocaleString()))))):X.default.createElement("div",{className:"px-4 py-8 text-center text-sm",style:{color:a.textMuted}},"No runs yet"))),X.default.createElement("div",{style:Il,className:"p-4"},X.default.createElement("h4",{className:"font-medium mb-3",style:{color:a.textPrimary}},"Example Prompts"),X.default.createElement("div",{className:"space-y-2"},tCe.map(ie=>X.default.createElement("button",{key:ie,type:"button","data-testid":"runner-example-prompt",onClick:()=>d(ie),className:"w-full text-left px-3 py-2 text-sm rounded-lg transition-colors hover:bg-black/5",style:{color:a.textCell,border:`1px solid ${a.cardBorder}`,background:"transparent",cursor:"pointer"}},ie))))))}var Ge=Z(J()),X2=e=>new Date(`${e}T00:00:00`),lCe=[{value:7,label:"7 days"},{value:14,label:"14 days"},{value:30,label:"30 days"},{value:90,label:"90 days"}];function ZD({onSelectAgent:e}){let[t,r]=(0,Ge.useState)(null),[n,o]=(0,Ge.useState)(!0),[a,i]=(0,Ge.useState)(30);(0,Ge.useEffect)(()=>{s()},[a]);let s=async()=>{o(!0);try{let f=await(await fetch(`/api/analytics?days=${a}`)).json();r(f)}catch(p){console.error("Failed to load analytics:",p)}finally{o(!1)}},l=p=>p?p>=1e6?`${(p/1e6).toFixed(1)}M`:p>=1e3?`${(p/1e3).toFixed(1)}K`:p.toString():"0",u=p=>p?p<1e3?`${p}ms`:`${(p/1e3).toFixed(2)}s`:"-";if(n&&!t)return Ge.default.createElement("div",{className:"flex items-center justify-center h-64"},Ge.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let c=t?.charts?.runs_by_day?.length>0?Math.max(...t.charts.runs_by_day.map(p=>p.count)):1,d=t?.charts?.tokens_by_day?.length>0?Math.max(...t.charts.tokens_by_day.map(p=>p.tokens)):1;return Ge.default.createElement("div",{className:"space-y-6"},Ge.default.createElement("div",{className:"flex items-center justify-between"},Ge.default.createElement("div",null,Ge.default.createElement("h1",{className:"text-2xl font-bold text-gray-900"},"Analytics Dashboard"),Ge.default.createElement("p",{className:"text-sm text-gray-500"},"Overview of all your agents' performance")),Ge.default.createElement("select",{value:a,onChange:p=>i(Number(p.target.value)),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},lCe.map(p=>Ge.default.createElement("option",{key:p.value,value:p.value},"Last ",p.label)))),Ge.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-5 gap-4"},Ge.default.createElement(Y0,{title:"Total Agents",value:t?.summary?.total_agents||0,subtitle:`${t?.summary?.active_agents||0} active`,color:"rose"}),Ge.default.createElement(Y0,{title:"Total Runs",value:t?.summary?.total_runs||0,subtitle:`${t?.period_days} day period`,color:"blue"}),Ge.default.createElement(Y0,{title:"Success Rate",value:`${t?.summary?.success_rate||0}%`,subtitle:`${t?.summary?.completed_runs||0} completed`,color:"green"}),Ge.default.createElement(Y0,{title:"Avg Duration",value:u(t?.summary?.avg_duration_ms),subtitle:"per run",color:"purple"}),Ge.default.createElement(Y0,{title:"Total Tokens",value:l(t?.summary?.total_tokens),subtitle:`${l(t?.summary?.avg_tokens_per_run)}/run avg`,color:"amber"})),Ge.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6"},Ge.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Runs Over Time"),t?.charts?.runs_by_day?.length>0?Ge.default.createElement("div",{className:"h-48"},Ge.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},t.charts.runs_by_day.map((p,f)=>Ge.default.createElement("div",{key:p.date,className:"flex-1 flex flex-col items-center group"},Ge.default.createElement("div",{className:"relative w-full"},Ge.default.createElement("div",{className:"w-full bg-red-500 rounded-t transition-all hover:bg-red-600",style:{height:`${p.count/c*150}px`,minHeight:p.count>0?"4px":"0"}}),Ge.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap z-10"},p.count," runs"))))),Ge.default.createElement("div",{className:"flex justify-between mt-2 text-xs text-gray-400"},Ge.default.createElement("span",null,t.charts.runs_by_day[0]?.date&&X2(t.charts.runs_by_day[0].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})),Ge.default.createElement("span",null,t.charts.runs_by_day[t.charts.runs_by_day.length-1]?.date&&X2(t.charts.runs_by_day[t.charts.runs_by_day.length-1].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))):Ge.default.createElement("div",{className:"h-48 flex items-center justify-center text-gray-400"},"No runs in this period")),Ge.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Token Usage Over Time"),t?.charts?.tokens_by_day?.length>0?Ge.default.createElement("div",{className:"h-48"},Ge.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},t.charts.tokens_by_day.map((p,f)=>Ge.default.createElement("div",{key:p.date,className:"flex-1 flex flex-col items-center group"},Ge.default.createElement("div",{className:"relative w-full"},Ge.default.createElement("div",{className:"w-full bg-purple-500 rounded-t transition-all hover:bg-purple-600",style:{height:`${p.tokens/d*150}px`,minHeight:p.tokens>0?"4px":"0"}}),Ge.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap z-10"},l(p.tokens)," tokens"))))),Ge.default.createElement("div",{className:"flex justify-between mt-2 text-xs text-gray-400"},Ge.default.createElement("span",null,t.charts.tokens_by_day[0]?.date&&X2(t.charts.tokens_by_day[0].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})),Ge.default.createElement("span",null,t.charts.tokens_by_day[t.charts.tokens_by_day.length-1]?.date&&X2(t.charts.tokens_by_day[t.charts.tokens_by_day.length-1].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))):Ge.default.createElement("div",{className:"h-48 flex items-center justify-center text-gray-400"},"No token usage in this period"))),Ge.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6"},Ge.default.createElement("div",{className:"lg:col-span-2 bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Top Agents"),t?.top_agents?.length>0?Ge.default.createElement("div",{className:"space-y-3"},t.top_agents.map((p,f)=>Ge.default.createElement("div",{key:p.id,onClick:()=>e?.(p),className:"flex items-center space-x-4 p-3 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors"},Ge.default.createElement("div",{className:"w-8 h-8 rounded-full bg-red-100 flex items-center justify-center text-red-600 font-semibold"},f+1),Ge.default.createElement("div",{className:"flex-1 min-w-0"},Ge.default.createElement("p",{className:"font-medium text-gray-900 truncate"},p.name),Ge.default.createElement("p",{className:"text-sm text-gray-500"},p.run_count," runs")),Ge.default.createElement("div",{className:"text-right"},Ge.default.createElement("p",{className:"font-medium text-gray-900"},l(p.total_tokens)),Ge.default.createElement("p",{className:"text-xs text-gray-500"},"tokens"))))):Ge.default.createElement("div",{className:"py-8 text-center text-gray-400"},"No agent activity yet")),Ge.default.createElement("div",{className:"space-y-6"},Ge.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"By Provider"),Object.keys(t?.provider_breakdown||{}).length>0?Ge.default.createElement("div",{className:"space-y-3"},Object.entries(t.provider_breakdown).map(([p,f])=>{let m=t?.summary?.total_runs||1,y=(f/m*100).toFixed(1);return Ge.default.createElement("div",{key:p},Ge.default.createElement("div",{className:"flex justify-between text-sm mb-1"},Ge.default.createElement("span",{className:"capitalize text-gray-600"},p),Ge.default.createElement("span",{className:"text-gray-900 font-medium"},f)),Ge.default.createElement("div",{className:"h-2 bg-gray-100 rounded-full overflow-hidden"},Ge.default.createElement("div",{className:"h-full bg-blue-500 rounded-full",style:{width:`${y}%`}})))})):Ge.default.createElement("div",{className:"py-4 text-center text-gray-400 text-sm"},"No data")),Ge.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Token Usage"),Ge.default.createElement("div",{className:"space-y-4"},Ge.default.createElement("div",{className:"flex justify-between items-center"},Ge.default.createElement("span",{className:"text-sm text-gray-500"},"Input Tokens"),Ge.default.createElement("span",{className:"font-medium text-gray-900"},l(t?.summary?.total_input_tokens))),Ge.default.createElement("div",{className:"flex justify-between items-center"},Ge.default.createElement("span",{className:"text-sm text-gray-500"},"Output Tokens"),Ge.default.createElement("span",{className:"font-medium text-gray-900"},l(t?.summary?.total_output_tokens))),Ge.default.createElement("div",{className:"pt-2 border-t border-gray-100"},Ge.default.createElement("div",{className:"flex justify-between items-center"},Ge.default.createElement("span",{className:"text-sm font-medium text-gray-700"},"Total"),Ge.default.createElement("span",{className:"font-bold text-gray-900"},l(t?.summary?.total_tokens)))))))))}function Y0({title:e,value:t,subtitle:r,color:n}){return Ge.default.createElement("div",{className:`bg-white rounded-xl border border-gray-200 border-l-4 ${{rose:"border-l-red-500",blue:"border-l-blue-500",green:"border-l-green-500",purple:"border-l-purple-500",amber:"border-l-amber-500"}[n]} p-4`},Ge.default.createElement("p",{className:"text-sm text-gray-500"},e),Ge.default.createElement("p",{className:"text-2xl font-bold text-gray-900 mt-1"},t),r&&Ge.default.createElement("p",{className:"text-xs text-gray-400 mt-1"},r))}var ne=Z(J());function JD({agent:e,onBack:t}){let{timeWindow:r}=xl(),[n,o]=(0,ne.useState)([]),[a,i]=(0,ne.useState)([]),[s,l]=(0,ne.useState)(null),[u,c]=(0,ne.useState)(null),[d,p]=(0,ne.useState)([]),[f,m]=(0,ne.useState)("run"),[y,b]=(0,ne.useState)(!1),[g,h]=(0,ne.useState)(!1),v=(0,ne.useRef)(!1),x=(0,ne.useRef)(!1),[S,k]=(0,ne.useState)("recent"),[w,_]=(0,ne.useState)({}),[A,C]=(0,ne.useState)(!0),[N,L]=(0,ne.useState)(1),[Q,B]=(0,ne.useState)(!0),[K,T]=(0,ne.useState)(""),[O,I]=(0,ne.useState)(""),[P,j]=(0,ne.useState)("recent"),M=(0,ne.useRef)(null),W=Re(`/agents/${e.id}/interactions`);(0,ne.useEffect)(()=>{Y()},[e.id,N,K,O,P,r.minutes]),(0,ne.useEffect)(()=>{L(1)},[r.minutes]),(0,ne.useEffect)(()=>{fetch(`/api/interactions?agent_id=${e.id}`).then(D=>D.json()).then(D=>i(D.interactions||[])).catch(()=>{}).finally(()=>h(!0))},[e.id]),(0,ne.useEffect)(()=>{let D=()=>{let G=Rn(),E=G.match(/\/interactions\/runs\/(\d+)/),$=G.match(/\/interactions\/sessions\/(\d+)/);if(E)m("run"),c(null),V(parseInt(E[1],10),{updateUrl:!1});else if($)m("all"),c({id:parseInt($[1],10)});else if(G.endsWith("/interactions/sessions")||G.endsWith("/interactions/all"))G.endsWith("/all")&&window.history.replaceState({},"",G.replace(/\/all$/,"/sessions")),m("all"),c(null);else{v.current=!1,l(null),c(null),p([]);return}v.current=!0};return D(),window.addEventListener("popstate",D),()=>window.removeEventListener("popstate",D)},[e.id]),(0,ne.useEffect)(()=>{v.current||x.current||!y||!g||m(n.length===0&&a.length>0?"all":"run")},[y,g,n.length,a.length]);let Y=async()=>{C(!0);try{let D=new URLSearchParams({page:N.toString(),per_page:"20",minutes:String(r.minutes)});K&&D.append("status",K),O&&D.append("source",O),P!=="recent"&&D.append("sort",P);let E=await(await fetch(`/api/agents/${e.id}/runs?${D}`)).json();o(N===1?E.runs:$=>[...$,...E.runs]),B(E.runs.length===20)}catch(D){console.error("Failed to load runs:",D)}finally{C(!1),b(!0)}},z=D=>{window.location.pathname!==D&&window.history.pushState({},"",D)},V=async(D,{updateUrl:G=!0}={})=>{try{let $=await(await fetch(`/api/runs/${D}`)).json();l($.run),p($.messages||[]),m("run"),c(null),G&&z(`${W}/runs/${D}`)}catch(E){console.error("Failed to load run details:",E)}},q=D=>{if(D.source==="reported"){let G=D.trace_id||String(D.id).replace(/^trace-/,"");window.history.pushState(window.history.state,"",Re(`/traces/${G}`)),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:Re(`/traces/${G}`)}}));return}V(D.record_id||D.id)},oe=()=>{l(null),c(null),p([]),m("run"),z(W)},Me=D=>{m("all"),D?(c({id:D.id,name:D.display_name}),z(`${W}/sessions/${D.id}`)):(c(null),z(`${W}/sessions`))},fe=D=>{x.current=!0,m(D),z(D==="all"?u?`${W}/sessions/${u.id}`:`${W}/sessions`:s?`${W}/runs/${s.id}`:W)},le=u?u.name||a.find(D=>D.id===u.id)?.display_name||`Session #${u.id}`:null,R=()=>{let D=new Map;n.forEach($=>{let ee=`${$.model||"unknown"}|${$.instructions_digest||"none"}`;D.has(ee)||D.set(ee,{key:ee,model:$.model,instructionsDigest:$.instructions_digest,instructionsVersion:$.instructions_version,instructionsCodename:$.instructions_codename,instructionsPreview:$.instructions_preview,runs:[]}),D.get(ee).runs.push($)});let G=[...D.values()].map($=>({...$,count:$.runs.length,completed:$.runs.filter(ee=>ee.status==="complete").length,failed:$.runs.filter(ee=>ee.status==="failed").length,totalTokens:$.runs.reduce((ee,F)=>ee+(F.tokens||0),0),avgTokens:$.runs.reduce((ee,F)=>ee+(F.tokens||0),0)/$.runs.length,avgDuration:$.runs.reduce((ee,F)=>ee+(F.duration_ms||0),0)/$.runs.length,latest:$.runs[0],sortedRuns:[...$.runs].sort((ee,F)=>(F.duration_ms||0)-(ee.duration_ms||0))}));G.sort(($,ee)=>S==="longest"?ee.avgDuration-$.avgDuration:new Date(ee.latest.created_at)-new Date($.latest.created_at));let E={runs:n.length,completed:n.filter($=>$.status==="complete").length,tokens:n.reduce(($,ee)=>$+(ee.tokens||0),0),avgDuration:n.length?n.reduce(($,ee)=>$+(ee.duration_ms||0),0)/n.length:0,models:[...new Set(n.map($=>$.model).filter(Boolean))]};return{cohorts:G,totals:E}},te=D=>D?D<1e3?`${D}ms`:D<6e4?`${(D/1e3).toFixed(1)}s`:`${Math.floor(D/6e4)}m ${Math.floor(D%6e4/1e3)}s`:"-",He=D=>D==null?"\u2014":D===0?"$0":D<.01?`$${D.toFixed(4)}`:`$${D.toFixed(2)}`,_e=D=>{let G=new Date(D),$=new Date-G,ee=Math.floor($/6e4),F=Math.floor($/36e5),me=Math.floor($/864e5);return ee<1?"Just now":ee<60?`${ee}m ago`:F<24?`${F}h ago`:me<7?`${me}d ago`:G.toLocaleDateString()};return ne.default.createElement("div",{className:"flex h-full"},ne.default.createElement("div",{className:"w-80 border-r border-gray-200 flex flex-col bg-white"},ne.default.createElement("div",{className:"p-4 border-b border-gray-200"},ne.default.createElement("div",{className:"flex items-center space-x-3 mb-4"},ne.default.createElement("button",{onClick:t,className:"p-1 text-gray-400 hover:text-gray-600 transition-colors"},ne.default.createElement("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ne.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),ne.default.createElement("div",null,ne.default.createElement("h2",{className:"font-semibold text-gray-900"},"Agent Interactions"),ne.default.createElement("p",{className:"text-sm text-gray-500"},e.name))),ne.default.createElement("div",{className:"mb-2"},ne.default.createElement(bl,{compact:!0})),ne.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1 mb-2 text-sm"},[{value:"",label:"All"},{value:"dashboard",label:"Dashboard"},{value:"reported",label:"Reported"}].map(D=>ne.default.createElement("button",{key:D.value||"all",onClick:()=>{I(D.value),L(1)},className:`flex-1 px-2 py-1 rounded-md transition-colors ${O===D.value?"bg-white shadow text-gray-900":"text-gray-600"}`,title:D.value==="dashboard"?"Executions started from this dashboard":D.value==="reported"?"Executions reported by your app via telemetry":"Every execution, however it started"},D.label))),ne.default.createElement("select",{value:K,onChange:D=>{T(D.target.value),L(1)},className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},ne.default.createElement("option",{value:""},"All statuses"),ne.default.createElement("option",{value:"complete"},"Completed"),ne.default.createElement("option",{value:"failed"},"Failed"),ne.default.createElement("option",{value:"running"},"Running"),ne.default.createElement("option",{value:"cancelled"},"Cancelled")),ne.default.createElement("select",{value:P,onChange:D=>{j(D.target.value),L(1)},className:"w-full mt-2 px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500",title:"Rank these executions"},ne.default.createElement("option",{value:"recent"},"Most recent"),ne.default.createElement("option",{value:"longest"},"Longest running"),ne.default.createElement("option",{value:"cost"},"Highest cost"),ne.default.createElement("option",{value:"tokens"},"Most tokens"))),ne.default.createElement("div",{className:"flex-1 overflow-auto"},A&&n.length===0?ne.default.createElement("div",{className:"flex items-center justify-center h-32"},ne.default.createElement("div",{className:"animate-spin rounded-full h-6 w-6 border-b-2 border-red-500"})):n.length>0?ne.default.createElement(ne.default.Fragment,null,n.map(D=>{let G=D.source==="reported";return ne.default.createElement("div",{key:D.id,onClick:()=>q(D),title:G?"Reported by your app \u2014 opens its trace":"Started from this dashboard",className:`p-4 border-b border-gray-100 cursor-pointer transition-colors ${!G&&s?.id===D.id?"bg-red-50 border-l-4 border-l-red-500":"hover:bg-gray-50"}`},ne.default.createElement("div",{className:"flex items-center justify-between mb-2 gap-2"},ne.default.createElement(ke,{tone:al(D.status)},D.status),ne.default.createElement("div",{className:"flex items-center gap-2"},ne.default.createElement("span",{className:`px-1.5 py-0.5 rounded text-[10px] uppercase tracking-wide ${G?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-600"}`},G?"reported":"dashboard"),ne.default.createElement("span",{className:"text-xs text-gray-400"},_e(D.created_at||D.occurred_at)),!G&&ne.default.createElement(ld,{kind:"run",id:D.id,title:"Replay this run"}))),ne.default.createElement("p",{className:"text-sm text-gray-700 truncate"},D.input_preview||D.input_prompt?.substring(0,60)||(G?`${D.action_name||"execution"} \xB7 trace ${String(D.trace_id||"").slice(0,8)}`:"No input")),ne.default.createElement("div",{className:"flex items-center space-x-3 mt-2 text-xs text-gray-400 flex-wrap gap-y-1"},D.model&&ne.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},D.model),ne.default.createElement("span",{className:P==="longest"?"text-gray-700 font-medium":void 0},te(D.duration_ms)),!!D.tokens&&ne.default.createElement("span",{className:P==="tokens"?"text-gray-700 font-medium":void 0},D.tokens," tokens"),D.cost!=null&&ne.default.createElement("span",{className:P==="cost"?"text-gray-700 font-medium":void 0,title:"Estimated from token counts at this model's published rates"},He(D.cost))))}),Q&&ne.default.createElement("button",{onClick:()=>L(D=>D+1),disabled:A,className:"w-full py-3 text-sm text-red-600 hover:bg-gray-50 transition-colors"},A?"Loading...":"Load More")):ne.default.createElement("div",{className:"p-8 text-center text-gray-400"},ne.default.createElement("svg",{className:"w-12 h-12 mx-auto mb-3 text-gray-300",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ne.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"})),ne.default.createElement("p",null,"No conversations yet")))),ne.default.createElement("div",{className:"flex-1 flex flex-col bg-gray-50"},ne.default.createElement("div",{className:"px-4 py-2 bg-white border-b border-gray-100 flex items-center gap-1.5 text-xs text-gray-500"},ne.default.createElement("button",{onClick:t,className:"hover:text-gray-900 hover:underline transition-colors"},e.name),ne.default.createElement("span",{className:"text-gray-300"},"/"),f==="all"||s?ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("button",{onClick:oe,className:"hover:text-gray-900 hover:underline transition-colors"},"Interactions"),ne.default.createElement("span",{className:"text-gray-300"},"/"),f==="all"?u?ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("button",{onClick:()=>Me(null),className:"hover:text-gray-900 hover:underline transition-colors"},"Sessions"),ne.default.createElement("span",{className:"text-gray-300"},"/"),ne.default.createElement("span",{className:"text-gray-900 font-medium"},le)):ne.default.createElement("span",{className:"text-gray-900 font-medium"},"Sessions"):ne.default.createElement("span",{className:"text-gray-900 font-medium"},"Run #",s.id)):ne.default.createElement("span",{className:"text-gray-900 font-medium"},"Interactions")),ne.default.createElement("div",{className:"p-3 bg-white border-b border-gray-200 flex items-center justify-between"},ne.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1"},ne.default.createElement("button",{onClick:()=>fe("run"),className:`px-3 py-1 text-sm rounded-md transition-colors ${f==="run"?"bg-white shadow text-gray-900":"text-gray-600"}`},"Selected run"),ne.default.createElement("button",{onClick:()=>fe("all"),className:`px-3 py-1 text-sm rounded-md transition-colors ${f==="all"?"bg-white shadow text-gray-900":"text-gray-600"}`},"Sessions")),f==="run"&&s&&ne.default.createElement(ke,{tone:al(s.status),size:12},s.status)),f==="all"?ne.default.createElement("div",{className:"flex-1 overflow-auto p-4 space-y-4"},(()=>{let{totals:D}=R();return ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4 space-y-3"},ne.default.createElement("div",{className:"flex items-center gap-3"},ne.default.createElement(In,{size:40}),ne.default.createElement("div",null,ne.default.createElement("h3",{className:"font-semibold text-gray-900"},e.name),ne.default.createElement("p",{className:"text-xs text-gray-500"},u?`${le} \u2014 one persisted interaction stream`:"Sessions group this agent\u2019s runs into persisted interaction streams"))),ne.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3"},ne.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Runs"),ne.default.createElement("p",{className:"text-lg font-bold text-gray-900"},D.runs)),ne.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Success"),ne.default.createElement("p",{className:"text-lg font-bold text-gray-900"},D.runs?Math.round(D.completed/D.runs*100):0,"%")),ne.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Avg Duration"),ne.default.createElement("p",{className:"text-lg font-bold text-gray-900"},te(Math.round(D.avgDuration)))),ne.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Tokens"),ne.default.createElement("p",{className:"text-lg font-bold text-gray-900"},D.tokens.toLocaleString()))))})(),ne.default.createElement($u,{agentId:e.id,embedded:!0,selectedSessionId:u?.id??null,onSelectSession:Me})):s?ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("div",{className:"p-4 bg-white border-b border-gray-200"},ne.default.createElement("div",{className:"flex items-center space-x-3"},ne.default.createElement(In,{size:40}),ne.default.createElement("div",null,ne.default.createElement("h3",{className:"font-medium text-gray-900"},e.name," \u2014 Run #",s.id),ne.default.createElement("p",{className:"text-xs text-gray-500"},new Date(s.created_at).toLocaleString())))),ne.default.createElement("div",{ref:M,className:"flex-1 overflow-auto p-6"},ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 shadow-sm p-4"},d.length>0?ne.default.createElement(ps,{messages:d,darkMode:!1}):ne.default.createElement(ps,{darkMode:!1,messages:[{id:`run-${s.id}-input`,role:"user",content:s.input_prompt||s.input_preview,created_at:s.created_at},{id:`run-${s.id}-output`,role:"assistant",content:s.error_message||s.output||s.output_preview||"No response",created_at:s.completed_at||s.created_at}]}))),ne.default.createElement("div",{className:"p-4 bg-white border-t border-gray-200"},ne.default.createElement("div",{className:"flex items-center justify-center space-x-8 text-sm text-gray-500"},ne.default.createElement("span",null,"Duration: ",te(s.duration_ms)),s.total_tokens&&ne.default.createElement("span",null,"Tokens: ",s.total_tokens),s.input_tokens&&s.output_tokens&&ne.default.createElement("span",null,"Input: ",s.input_tokens," / Output: ",s.output_tokens),s.trace_id&&ne.default.createElement("a",{href:Re(`/traces?trace=${s.trace_id}`),className:"font-mono text-xs text-blue-500 hover:underline",title:`${s.trace_id} \u2014 open in Traces`},"trace:",s.trace_id.slice(0,8)," \u2192")))):(()=>{let{cohorts:D,totals:G}=R();return D.length===0?ne.default.createElement("div",{className:"flex-1 flex items-center justify-center"},ne.default.createElement("div",{className:"text-center text-gray-400"},ne.default.createElement(In,{size:100}),ne.default.createElement("p",{className:"mt-4"},"No runs yet \u2014 run the agent to build its report"))):ne.default.createElement("div",{className:"flex-1 overflow-auto p-6 space-y-5"},ne.default.createElement("div",{className:"flex items-center gap-3"},ne.default.createElement(In,{size:40}),ne.default.createElement("div",null,ne.default.createElement("h3",{className:"font-semibold text-gray-900"},"Agent Report"),ne.default.createElement("p",{className:"text-xs text-gray-500"},"Recent activity for ",e.name," \u2014 select a run for its full interaction"))),ne.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3"},ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Runs"),ne.default.createElement("p",{className:"text-xl font-bold text-gray-900"},G.runs)),ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Success"),ne.default.createElement("p",{className:"text-xl font-bold text-gray-900"},G.runs?Math.round(G.completed/G.runs*100):0,"%")),ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Avg Duration"),ne.default.createElement("p",{className:"text-xl font-bold text-gray-900"},te(Math.round(G.avgDuration)))),ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Tokens"),ne.default.createElement("p",{className:"text-xl font-bold text-gray-900"},G.tokens.toLocaleString()))),G.models.length>0&&ne.default.createElement("div",{className:"flex items-center gap-2 flex-wrap text-xs"},ne.default.createElement("span",{className:"text-gray-500"},"Models used:"),G.models.map(E=>ne.default.createElement("span",{key:E,className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},E))),a.length>0&&ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},ne.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},ne.default.createElement("span",{className:"text-xs uppercase tracking-wide text-gray-400"},"Sessions \u2014 grouped interaction streams")),ne.default.createElement("div",{className:"divide-y divide-gray-100"},a.map(E=>ne.default.createElement("div",{key:E.id,className:"px-4 py-3 hover:bg-gray-50 cursor-pointer flex items-center justify-between gap-3",onClick:()=>Me(E),title:"Open this session's interaction stream"},ne.default.createElement("div",{className:"flex items-center gap-2 min-w-0",title:E.display_name},ne.default.createElement("span",{className:"px-2 py-0.5 text-xs font-medium bg-blue-100 text-blue-700 rounded flex-shrink-0"},"SESSION"),ne.default.createElement("span",{className:"text-sm text-gray-900 truncate"},E.agent?.name||E.agent_name),E.action_name&&ne.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-purple-50 text-purple-700 font-mono text-xs flex-shrink-0"},"#",E.action_name)),ne.default.createElement("div",{className:"flex items-center gap-3 text-xs text-gray-400 flex-shrink-0"},ne.default.createElement("span",null,E.message_count," messages"),ne.default.createElement("span",null,(E.tokens?.total||0).toLocaleString()," tokens"),ne.default.createElement("span",null,_e(E.last_activity_at)),ne.default.createElement(ld,{kind:"context",id:E.id,title:"Replay this conversation"})))))),ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},ne.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100 flex items-center justify-between"},ne.default.createElement("span",{className:"text-xs uppercase tracking-wide text-gray-400"},"Interactions by instructions \xD7 model"),ne.default.createElement("select",{value:S,onChange:E=>k(E.target.value),className:"text-xs border border-gray-200 rounded px-2 py-1 text-gray-600"},ne.default.createElement("option",{value:"recent"},"Most recent"),ne.default.createElement("option",{value:"longest"},"Longest interactions"))),ne.default.createElement("div",{className:"divide-y divide-gray-100"},D.map(E=>ne.default.createElement("div",{key:E.key},ne.default.createElement("div",{className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>_($=>({...$,[E.key]:!$[E.key]})),title:"Show this configuration's runs"},ne.default.createElement("div",{className:"flex items-center gap-2 flex-wrap"},ne.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono text-xs"},E.model||"unknown model"),ne.default.createElement("span",{className:"text-xs text-gray-400 font-mono",title:E.instructionsDigest?`sha:${E.instructionsDigest}`:void 0},"instructions"," ",E.instructionsDigest?[E.instructionsVersion,E.instructionsCodename||E.instructionsDigest].filter(Boolean).join(" \xB7 "):"n/a")),E.instructionsPreview&&ne.default.createElement("p",{className:"text-xs text-gray-500 mt-1 truncate"},E.instructionsPreview),ne.default.createElement("div",{className:"flex items-center gap-3 mt-1.5 text-xs text-gray-400 flex-wrap gap-y-1"},ne.default.createElement("span",null,E.count," run",E.count>1?"s":""),ne.default.createElement("span",{className:E.failed>0?"text-red-500":"text-green-600"},E.count?Math.round(E.completed/E.count*100):0,"% success"),ne.default.createElement("span",null,"avg ",te(Math.round(E.avgDuration))),ne.default.createElement("span",null,"avg ",Math.round(E.avgTokens).toLocaleString()," tokens"),ne.default.createElement("span",null,"last ",_e(E.latest.created_at)))),w[E.key]&&ne.default.createElement("div",{className:"bg-gray-50 divide-y divide-gray-100 border-t border-gray-100"},E.sortedRuns.map($=>ne.default.createElement("div",{key:$.id,className:"px-6 py-2 hover:bg-gray-100 cursor-pointer",onClick:()=>V($.id),title:"Open this run's interaction"},ne.default.createElement("p",{className:"text-xs text-gray-700 truncate"},$.input_preview||"No input"),ne.default.createElement("div",{className:"flex items-center gap-3 mt-0.5 text-[11px] text-gray-400"},ne.default.createElement("span",{className:$.status==="failed"?"text-red-500":""},$.status),ne.default.createElement("span",null,te($.duration_ms)),$.tokens&&ne.default.createElement("span",null,$.tokens.toLocaleString()," tokens"),ne.default.createElement("span",null,_e($.created_at)))))))))))})()))}var ct=Z(J());var uCe={productivity:"[+]",development:"<>",research:"[?]",creative:"[*]",data:"[#]",automation:"[>]"};function QD({onUseTemplate:e,onClose:t}){let[r,n]=(0,ct.useState)([]),[o,a]=(0,ct.useState)([]),[i,s]=(0,ct.useState)(""),[l,u]=(0,ct.useState)(null),[c,d]=(0,ct.useState)(!0),[p,f]=(0,ct.useState)(!1),[m,y]=(0,ct.useState)(null);(0,ct.useEffect)(()=>{b()},[i]);let b=async()=>{d(!0);try{let h=new URLSearchParams;i&&h.append("category",i);let x=await(await fetch(`/api/templates?${h}`)).json();n(x.templates),a(x.categories)}catch(h){console.error("Failed to load templates:",h)}finally{d(!1)}},g=async h=>{f(!0),y(null);try{let v=await fetch(`/api/templates/${h.id}/use`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:h.name})});if(v.ok){let x=await v.json();e(x.agent)}else{let x=`Could not create the agent (HTTP ${v.status})`;try{let S=await v.json(),k=S.errors||S.error;k&&(x=Array.isArray(k)?k.join(", "):String(k))}catch{}y(x)}}catch(v){console.error("Failed to create agent from template:",v),y("Could not create the agent \u2014 check your connection and try again.")}finally{f(!1)}};return ct.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},ct.default.createElement("div",{className:"bg-white rounded-2xl w-full max-w-5xl max-h-[90vh] flex flex-col overflow-hidden"},ct.default.createElement("div",{className:"px-6 py-4 border-b border-gray-200 flex items-center justify-between"},ct.default.createElement("div",null,ct.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Template Library"),ct.default.createElement("p",{className:"text-sm text-gray-500"},"Start with a pre-configured agent template")),ct.default.createElement("button",{onClick:t,className:"p-2 text-gray-400 hover:text-gray-600 transition-colors"},ct.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ct.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))),ct.default.createElement("div",{className:"flex-1 flex overflow-hidden"},ct.default.createElement("div",{className:"w-48 border-r border-gray-200 p-4 flex-shrink-0"},ct.default.createElement("h3",{className:"text-xs font-semibold text-gray-400 uppercase mb-3"},"Categories"),ct.default.createElement("div",{className:"space-y-1"},ct.default.createElement("button",{onClick:()=>s(""),className:`w-full text-left px-3 py-2 rounded-lg text-sm transition-colors ${i?"text-gray-600 hover:bg-gray-50":"bg-red-50 text-red-600"}`},"All Templates"),o.map(h=>ct.default.createElement("button",{key:h,onClick:()=>s(h),className:`w-full text-left px-3 py-2 rounded-lg text-sm flex items-center space-x-2 transition-colors ${i===h?"bg-red-50 text-red-600":"text-gray-600 hover:bg-gray-50"}`},ct.default.createElement("span",null,uCe[h]||"\u{1F4E6}"),ct.default.createElement("span",{className:"capitalize"},h))))),ct.default.createElement("div",{className:"flex-1 p-6 overflow-auto"},c?ct.default.createElement("div",{className:"flex items-center justify-center h-full"},ct.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):r.length>0?ct.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-3 gap-4"},r.map(h=>ct.default.createElement("div",{key:h.id,onClick:()=>u(h),className:`bg-white rounded-xl border-2 p-4 cursor-pointer transition-all hover:shadow-lg ${l?.id===h.id?"border-red-500 ring-2 ring-red-100":"border-gray-200 hover:border-gray-300"}`},ct.default.createElement("div",{className:"flex items-start space-x-3"},ct.default.createElement("div",{className:"flex-shrink-0"},ct.default.createElement(In,{size:60})),ct.default.createElement("div",{className:"flex-1 min-w-0"},ct.default.createElement("div",{className:"flex items-center space-x-2"},ct.default.createElement("span",{className:"text-lg"},h.icon),ct.default.createElement("h3",{className:"font-medium text-gray-900 truncate"},h.name)),ct.default.createElement("p",{className:"text-xs text-gray-500 mt-1 line-clamp-2"},h.description),ct.default.createElement("div",{className:"flex items-center space-x-2 mt-2"},ct.default.createElement("span",{className:"text-xs px-2 py-0.5 bg-gray-100 rounded capitalize"},h.category),h.featured&&ct.default.createElement("span",{className:"text-xs px-2 py-0.5 bg-yellow-100 text-yellow-700 rounded"},"Featured"))))))):ct.default.createElement("div",{className:"text-center py-12 text-gray-500"},"No templates found in this category")),l&&ct.default.createElement("div",{className:"w-80 border-l border-gray-200 p-6 flex-shrink-0 bg-gray-50 overflow-auto"},ct.default.createElement("div",{className:"flex justify-center mb-4"},ct.default.createElement(In,{size:120})),ct.default.createElement("h3",{className:"text-lg font-semibold text-gray-900 text-center"},l.name),ct.default.createElement("p",{className:"text-sm text-gray-500 text-center mt-1"},l.description),ct.default.createElement("div",{className:"mt-6 space-y-4"},ct.default.createElement("div",null,ct.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Provider / Model"),ct.default.createElement("p",{className:"text-sm text-gray-900"},l.provider," / ",l.model)),l.tools?.length>0&&ct.default.createElement("div",null,ct.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Tools"),ct.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},l.tools.map(h=>ct.default.createElement("span",{key:h,className:"text-xs px-2 py-0.5 bg-red-100 text-red-700 rounded"},h)))),ct.default.createElement("div",null,ct.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Usage"),ct.default.createElement("p",{className:"text-sm text-gray-900"},l.usage_count," agents created"))),ct.default.createElement("button",{onClick:()=>g(l),disabled:p,className:"w-full mt-6 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors disabled:opacity-50"},p?"Creating...":"Use This Template"),m&&ct.default.createElement("p",{className:"mt-2 text-sm text-red-600",role:"alert"},m)))))}var mt=Z(J());function RD({currentView:e,onNavigate:t,agentCount:r,pendingInputCount:n,account:o,user:a,gemVersion:i,features:s={}}){let{darkMode:l}=ut(),[u,c]=(0,mt.useState)(!1),d=(0,mt.useRef)(null);(0,mt.useEffect)(()=>{function h(v){d.current&&!d.current.contains(v.target)&&c(!1)}return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[]);let p=o?.name||"My Workspace",f=a?.name||a?.email?.split("@")[0]||"User",m={agentCount:r,pendingInputCount:n},y=h=>{let v=h.badge?m[h.badge]:void 0;return h.badgeTone==="attention"&&!v?void 0:v},b=fY(s).map(h=>({...h,items:h.items.map(v=>({id:v.view,label:v.label,icon:v.glyph??Fo.nav[v.icon],badge:y(v),badgeTone:v.badgeTone,badgeTitle:v.badgeTitle}))})),g=({item:h})=>mt.default.createElement("button",{onClick:()=>t(h.id),className:`w-full flex items-center justify-between py-3 rounded-lg text-left transition-colors ${h.indent?"pl-10 pr-4":"px-4"}`,style:{backgroundColor:e===h.id?l?"rgba(239, 68, 68, 0.15)":"#fef2f2":"transparent",color:e===h.id?"#ef4444":l?"#d1d5db":"#374151"},onMouseEnter:v=>{e!==h.id&&(v.currentTarget.style.backgroundColor=l?"#252525":"#f3f4f6")},onMouseLeave:v=>{e!==h.id&&(v.currentTarget.style.backgroundColor="transparent")}},mt.default.createElement("div",{className:"flex items-center space-x-3"},mt.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"12px",width:"20px",textAlign:"center"}},h.icon),mt.default.createElement("span",{className:"font-medium"},h.label)),h.badge!==void 0&&h.badgeTone==="attention"&&mt.default.createElement("span",{"data-testid":`nav-badge-${h.id}`,className:"px-2 py-0.5 text-xs rounded-full font-semibold",title:`${h.badge} ${h.badgeTitle||""}`.trim(),"aria-label":`${h.badge} ${h.badgeTitle||""}`.trim(),style:{backgroundColor:"var(--color-warning-soft)",color:"var(--color-warning-text)"}},h.badge),h.badge!==void 0&&h.badgeTone!=="attention"&&mt.default.createElement("span",{className:"px-2 py-0.5 text-xs rounded-full",style:{backgroundColor:e===h.id?"#fee2e2":l?"#2a2a2a":"#f3f4f6",color:e===h.id?"#ef4444":l?"#d1d5db":"#4b5563"}},h.badge));return mt.default.createElement("aside",{className:"w-64 border-r flex flex-col",style:{backgroundColor:l?"#1a1a1a":"#ffffff",borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:"h-16 flex items-center px-4 border-b relative",style:{borderColor:l?"#2a2a2a":"#e5e7eb"},ref:d},mt.default.createElement("button",{onClick:()=>c(!u),className:"w-full flex items-center justify-between px-2 py-2 rounded-lg transition-colors",style:{backgroundColor:u?l?"#252525":"#f3f4f6":"transparent"}},mt.default.createElement("div",{className:"flex items-center space-x-3 min-w-0"},mt.default.createElement(In,{size:28}),mt.default.createElement("span",{className:`font-semibold truncate ${l?"text-white":"text-gray-900"}`},p)),mt.default.createElement("svg",{className:`w-4 h-4 flex-shrink-0 transition-transform ${u?"rotate-180":""}`,style:{color:l?"#9ca3af":"#6b7280"},fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),u&&mt.default.createElement("div",{className:"absolute left-4 right-4 top-14 rounded-lg shadow-lg border overflow-hidden z-50",style:{backgroundColor:l?"#1a1a1a":"#ffffff",borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:"px-4 py-3 border-b",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:"flex items-center space-x-3"},mt.default.createElement(In,{size:32}),mt.default.createElement("div",{className:"min-w-0"},mt.default.createElement("div",{className:`font-medium truncate ${l?"text-white":"text-gray-900"}`},p)))),mt.default.createElement("div",{className:"py-1"},mt.default.createElement("button",{onClick:()=>{t("settings"),c(!1)},className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${l?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},mt.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})),mt.default.createElement("span",null,"Settings")),mt.default.createElement("button",{onClick:()=>{t("organization"),c(!1)},className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${l?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},mt.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"})),mt.default.createElement("span",null,"Organization"))),mt.default.createElement("div",{className:"border-t py-1",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:`px-4 py-2 flex items-center space-x-3 ${l?"text-gray-300":"text-gray-700"}`},mt.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})),mt.default.createElement("span",{className:"text-sm"},f))))),mt.default.createElement("nav",{className:"flex-1 px-4 py-4 space-y-1 overflow-y-auto"},b.map(h=>{let v=mt.default.createElement("div",{className:"space-y-1"},h.items.map(x=>mt.default.createElement(g,{key:x.id,item:x})));return h.label?mt.default.createElement("div",{key:h.id,className:"pt-4"},mt.default.createElement("div",{className:"px-4 pb-2"},mt.default.createElement("span",{className:`text-xs font-semibold uppercase tracking-wide ${l?"text-gray-500":"text-gray-400"}`},h.label)),v):mt.default.createElement(mt.default.Fragment,{key:h.id},v)})),mt.default.createElement("div",{className:"px-4 py-4 border-t",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:`text-xs font-semibold uppercase mb-3 ${l?"text-gray-500":"text-gray-400"}`},"Resources"),mt.default.createElement("div",{className:"space-y-2"},mt.default.createElement("a",{href:"https://docs.activeagents.ai",target:"_blank",rel:"noopener noreferrer",className:`flex items-center space-x-2 text-sm transition-colors ${l?"text-gray-400 hover:text-red-400":"text-gray-600 hover:text-red-600"}`},mt.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"12px",width:"20px",textAlign:"center"}},Fo.nav.docs),mt.default.createElement("span",null,"Documentation")),mt.default.createElement("a",{href:"https://github.com/activeagents/activeagent",target:"_blank",rel:"noopener noreferrer",className:`flex items-center space-x-2 text-sm transition-colors ${l?"text-gray-400 hover:text-red-400":"text-gray-600 hover:text-red-600"}`},mt.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"12px",width:"20px",textAlign:"center"}},Fo.nav.github),mt.default.createElement("span",null,"GitHub")))),mt.default.createElement("div",{className:"px-6 py-4 border-t",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:`text-xs ${l?"text-gray-500":"text-gray-400"}`},"Active Agent ",i?`v${i}`:"")))}var xr=Z(J());function e3({user:e,account:t}){let{darkMode:r,toggleDarkMode:n}=ut(),[o,a]=(0,xr.useState)(!1),i=(0,xr.useRef)(null);(0,xr.useEffect)(()=>{function d(p){i.current&&!i.current.contains(p.target)&&a(!1)}return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[]);let s=window.ACTIVE_AGENT_DASHBOARD?.meta?.signOutPath,l=()=>{if(!s)return;let d=document.querySelector('meta[name="csrf-token"]')?.content,p=document.createElement("form");p.method="POST",p.action=s;let f=document.createElement("input");f.type="hidden",f.name="_method",f.value="delete",p.appendChild(f);let m=document.createElement("input");m.type="hidden",m.name="authenticity_token",m.value=d,p.appendChild(m),document.body.appendChild(p),p.submit()},u=e?.name||e?.email?.split("@")[0]||"User",c=u.charAt(0).toUpperCase();return xr.default.createElement("header",{className:"h-16 border-b flex items-center justify-between px-6",style:{backgroundColor:r?"#1a1a1a":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"}},xr.default.createElement("div",{className:"flex items-center space-x-4"}),xr.default.createElement("div",{className:"flex items-center space-x-4"},xr.default.createElement("button",{onClick:n,className:"p-2 rounded-lg transition-colors",style:{backgroundColor:r?"#252525":"#f3f4f6",color:r?"#fbbf24":"#4b5563"},title:r?"Switch to light mode":"Switch to dark mode"},r?xr.default.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},xr.default.createElement("path",{fillRule:"evenodd",d:"M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z",clipRule:"evenodd"})):xr.default.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},xr.default.createElement("path",{d:"M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"}))),xr.default.createElement("div",{className:`flex items-center space-x-2 text-sm ${r?"text-gray-400":"text-gray-500"}`},xr.default.createElement("span",{className:"w-2 h-2 bg-green-400 rounded-full"}),xr.default.createElement("span",null,"Connected")),xr.default.createElement("div",{className:"relative",ref:i},xr.default.createElement("button",{onClick:()=>a(!o),className:"flex items-center space-x-2 p-1 rounded-lg transition-colors",style:{backgroundColor:o?r?"#252525":"#f3f4f6":"transparent"}},xr.default.createElement("div",{className:"w-8 h-8 bg-red-100 rounded-full flex items-center justify-center"},xr.default.createElement("span",{className:"text-red-600 font-medium text-sm"},c))),o&&xr.default.createElement("div",{className:"absolute right-0 mt-2 w-64 rounded-lg shadow-lg border overflow-hidden z-50",style:{backgroundColor:r?"#1a1a1a":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"}},xr.default.createElement("div",{className:"px-4 py-3 border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},xr.default.createElement("div",{className:"flex items-center space-x-3"},xr.default.createElement("div",{className:"w-10 h-10 bg-red-100 rounded-full flex items-center justify-center"},xr.default.createElement("span",{className:"text-red-600 font-medium"},c)),xr.default.createElement("div",null,xr.default.createElement("div",{className:`font-medium ${r?"text-white":"text-gray-900"}`},u),xr.default.createElement("div",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},e?.email)))),s&&xr.default.createElement("div",{className:"py-1"},xr.default.createElement("button",{onClick:l,className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${r?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},xr.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},xr.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"})),xr.default.createElement("span",null,"Sign out")))))))}var ze=Z(J());var kt=Z(J());var t3=150,cCe=e=>e.reduce((t,r)=>t+(Number(r)||0),0),dCe=e=>e.length?cCe(e)/e.length:0,Ys=e=>e.reduce((t,r)=>r!=null&&Number(r)>t?Number(r):t,0),r3=e=>{if(!(e>0))return 1;let t=Math.pow(10,Math.floor(Math.log10(e))),r=e/t;return(r<=1?1:r<=2?2:r<=2.5?2.5:r<=5?5:10)*t},xf=(e,t)=>[0,25,50,75,100].map(r=>({top:r,label:t(e*(1-r/100))})),pCe=4,Mh=e=>Math.max(pCe,r3(e)),MQ=(e,t=2,r=6)=>{let n=e/4;for(let o=t;oMath.abs(n*i-Number((n*i).toFixed(o)))<=n*.1))return o;return r},fCe=5.5,mCe=12,gCe=(e,t)=>{let r=!!e.flip;if(!(t>0))return r;let n=String(e.label||"").length*fCe+mCe,o=Number(e.left)/100*t,a=t-o;return r?!(oo):aa},bf=(e,t)=>{let r=e.length,n=[];return e.forEach((o,a)=>{if(o==null||Number.isNaN(Number(o)))return;let i=r>1?a/(r-1)*100:50,s=100-Math.min(100,Math.max(0,Number(o)/t*100));n.push(`${i.toFixed(2)},${s.toFixed(2)}`)}),n.join(" ")},Z2=(e,t)=>{let r=bf(e,t);return r?`0,100 ${r} 100,100`:""},IQ=(e,t=24)=>{let r=e.length;if(!r)return"";let n=r/t,o=Array.from({length:t},(s,l)=>{let u=Math.floor(l*n),c=Math.max(u+1,Math.floor((l+1)*n));return dCe(e.slice(u,c).filter(d=>d!=null))}),a=Math.max(...o),i=Math.min(...o);return o.map((s,l)=>`${(l/(t-1)*100).toFixed(1)},${(26-(a===i?.5:(s-i)/(a-i))*24).toFixed(1)}`).join(" ")},X0=(e,t,r)=>{let n=e.length?e[0].data.length:0;return Array.from({length:n},(o,a)=>({title:r(a),segs:e.map(i=>({h:(Number(i.data[a])||0)/t*100,color:i.color}))}))};function DQ({label:e,value:t,unit:r,sub:n,delta:o,deltaColor:a,deltaSub:i,spark:s,sparkColor:l}){return kt.default.createElement(je,{padding:"14px 16px 12px",style:{display:"flex",flexDirection:"column",gap:6,minWidth:0}},kt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8}},kt.default.createElement(Ue,{size:11,spacing:"0.05em"},e),kt.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,fontWeight:600,color:a,whiteSpace:"nowrap"}},o)),kt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:6}},kt.default.createElement("span",{style:{fontFamily:U,fontSize:26,fontWeight:700,lineHeight:1.1,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},t),r?kt.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-muted)"}},r):null),kt.default.createElement("div",{title:n,style:{fontFamily:U,fontSize:11,color:"var(--color-text-secondary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},n),kt.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",gap:8,marginTop:2}},kt.default.createElement("svg",{viewBox:"0 0 100 28",preserveAspectRatio:"none","aria-hidden":"true",style:{flex:1,height:28,minWidth:0,display:"block",overflow:"visible"}},kt.default.createElement("polyline",{points:s,fill:"none",stroke:l,strokeWidth:"1.5",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke"})),kt.default.createElement("span",{style:{fontSize:10,color:"var(--color-text-muted)",whiteSpace:"nowrap"}},i)))}function jQ({title:e,sub:t,value:r,valueColor:n="var(--color-text-primary)",legend:o=[],ticks:a=[],buckets:i=[],lines:s=[],areas:l=[],markers:u=[],xLabels:c=[],height:d=t3}){let p=(0,kt.useRef)(null),f=D0(p),m="1px dashed var(--color-text-secondary)";return kt.default.createElement(je,{padding:"14px 16px 12px",style:{minWidth:0,display:"flex",flexDirection:"column",gap:8}},kt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,flexWrap:"wrap"}},kt.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},e),kt.default.createElement("span",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)"}},t),kt.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:12,fontWeight:600,color:n,whiteSpace:"nowrap"}},r)),kt.default.createElement("div",{style:{display:"flex",gap:12,flexWrap:"wrap"}},o.map(y=>kt.default.createElement("span",{key:y.label,style:{display:"inline-flex",alignItems:"center",gap:5,fontFamily:U,fontSize:10,color:"var(--color-text-secondary)"}},kt.default.createElement("span",{style:{width:8,height:8,borderRadius:2,background:y.color,flexShrink:0}}),y.label))),kt.default.createElement("div",{ref:p,style:{position:"relative",height:d,margin:"6px 0 0 40px"}},a.map(y=>kt.default.createElement("div",{key:y.top,style:{position:"absolute",left:0,right:0,top:`${y.top}%`,borderTop:"1px solid var(--color-border-light)"}},kt.default.createElement("span",{style:{position:"absolute",right:"calc(100% + 6px)",top:-6,whiteSpace:"nowrap",fontFamily:U,fontSize:10,lineHeight:"12px",color:"var(--color-text-muted)"}},y.label))),i.length>0&&kt.default.createElement("div",{style:{position:"absolute",inset:0,display:"flex",alignItems:"stretch",gap:1}},i.map((y,b)=>kt.default.createElement("div",{key:b,title:y.title,style:{flex:1,minWidth:0,display:"flex",flexDirection:"column-reverse"}},y.segs.map((g,h)=>kt.default.createElement("div",{key:h,style:{height:`${g.h.toFixed(2)}%`,background:g.color,flexShrink:0}}))))),(s.length>0||l.length>0)&&kt.default.createElement("svg",{viewBox:"0 0 100 100",preserveAspectRatio:"none","aria-hidden":"true",style:{position:"absolute",inset:0,width:"100%",height:"100%",overflow:"visible",pointerEvents:"none"}},l.map((y,b)=>kt.default.createElement("polygon",{key:b,points:y.points,fill:y.color,opacity:"0.16"})),s.map((y,b)=>kt.default.createElement("polyline",{key:b,points:y.points,fill:"none",stroke:y.color,strokeWidth:y.width||1.5,strokeLinejoin:"round",strokeLinecap:"round",vectorEffect:"non-scaling-stroke"}))),u.map((y,b)=>{let g=gCe(y,f),h=`${Number(y.left).toFixed(2)}%`;return kt.default.createElement("div",{key:b,style:{position:"absolute",top:0,bottom:0,pointerEvents:"none",...g?{left:0,width:h,borderRight:m}:{left:h,right:0,borderLeft:m}}},kt.default.createElement("span",{style:{position:"absolute",top:-4,[g?"right":"left"]:4,maxWidth:"calc(100% - 8px)",boxSizing:"border-box",overflow:"hidden",textOverflow:"ellipsis",fontFamily:U,fontSize:9,lineHeight:"12px",color:"var(--color-text-secondary)",whiteSpace:"nowrap",background:"var(--color-card)",padding:"0 4px",borderRadius:3}},y.label))})),kt.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginLeft:40,fontFamily:U,fontSize:10,color:"var(--color-text-muted)"}},c.map((y,b)=>kt.default.createElement("span",{key:b},y))))}function Ih({label:e,qualifier:t,meta:r,children:n}){return kt.default.createElement(je,{padding:0,style:{overflow:"hidden"}},kt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,padding:"10px 14px",borderBottom:"1px solid var(--color-border-light)"}},kt.default.createElement(Ue,null,e),t?kt.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},t):null,r?kt.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},r):null),n)}function n3({template:e,columns:t}){return kt.default.createElement("div",{style:{display:"grid",gridTemplateColumns:e,gap:8,padding:"6px 14px 4px",fontFamily:U,fontSize:10,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--color-text-muted)"}},kt.default.createElement("span",null),t.map(r=>kt.default.createElement("span",{key:r,style:{textAlign:"right"}},r)))}function J2({template:e,active:t=!1,onClick:r,title:n,padding:o="8px 14px",children:a}){let i=typeof r=="function";return kt.default.createElement("div",{role:i?"button":void 0,tabIndex:i?0:void 0,"aria-pressed":i?t:void 0,onClick:r,onKeyDown:i?l=>{(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),r(l))}:void 0,title:n,className:i?"hover:bg-[var(--color-hover)]":void 0,style:{display:"grid",gridTemplateColumns:e,gap:8,alignItems:"center",padding:o,borderTop:"1px solid var(--color-border-light)",cursor:i?"pointer":"default",background:t?"var(--color-muted)":void 0}},a)}function o3({children:e,padding:t="8px 14px"}){return kt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:t,borderTop:"1px solid var(--color-border-light)"}},e)}function Z0({children:e}){return kt.default.createElement("div",{style:{padding:"12px 14px",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},e)}function a3({color:e}){return kt.default.createElement("span",{style:{width:8,height:8,borderRadius:2,background:e,flexShrink:0}})}function i3({pct:e,color:t}){return kt.default.createElement("div",{style:{marginTop:5,height:3,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},kt.default.createElement("div",{style:{width:`${Math.max(0,Math.min(100,Number(e)||0))}%`,height:"100%",background:t}}))}function s3({pct:e,color:t,width:r=70}){return kt.default.createElement("span",{style:{width:r,height:4,borderRadius:999,background:"var(--color-muted)",overflow:"hidden",flexShrink:0,display:"inline-block"}},kt.default.createElement("span",{style:{display:"block",width:`${Math.max(0,Math.min(100,Number(e)||0))}%`,height:"100%",background:t}}))}function ys({children:e,color:t="var(--color-text-primary)",weight:r=400,width:n,style:o}){return kt.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:r,textAlign:"right",color:t,width:n,...o}},e)}var BQ=6e4,hCe=1180,jh={"1h":{n:60,seconds:60,bucket:"1 min",prev:"vs previous hour",title:"last hour"},"24h":{n:96,seconds:900,bucket:"15 min",prev:"vs previous 24h",title:"last 24 hours"},"7d":{n:84,seconds:7200,bucket:"2 h",prev:"vs previous 7 days",title:"last 7 days"}},yCe=Object.keys(jh).map(e=>({value:e,label:e})),u3="24h",Dh=["var(--chart-1)","var(--chart-2)","var(--chart-3)","var(--chart-5)","var(--chart-4)"],J0=[{type:"429 rate limit",short:"429",color:"var(--color-error)"},{type:"timeout",short:"timeout",color:"var(--color-warning)"},{type:"tool error",short:"tool error",color:"var(--span-tool)"},{type:"provider 5xx",short:"5xx",color:"var(--color-token-out)"},{type:"other",short:"error",color:"var(--color-text-muted)"}],$Q=e=>J0.find(t=>t.type===e)?.color||"var(--color-text-muted)",vCe=3,R2="var(--color-text-primary)",xCe={success:"var(--color-success)",error:"var(--color-error)",muted:"var(--color-text-muted)"},bCe=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],l3=e=>String(e).padStart(2,"0"),Wt=e=>e==null||Number.isNaN(Number(e))?0:Number(e),wCe=e=>e.reduce((t,r)=>t+Wt(r),0),LQ=e=>`${Wt(e).toFixed(1)}%`,Q2=(e,t)=>`${e} ${t}${e===1?"":"s"}`,SCe=e=>e>=1e3?`${(e/1e3).toFixed(1)}s`:`${Math.round(e)}ms`,kCe=(e,t)=>{let r=Array.isArray(e)?[...e]:[];return t.forEach(n=>{n.name&&!r.some(o=>o.name===n.name)&&r.push(n)}),r},_Ce=e=>{let t=String(e.label||"incident"),r=J0.find(n=>t.startsWith(n.type));return r&&(t=`${r.short}${t.slice(r.type.length)}`),e.agent&&!t.includes(e.agent)?`${t} \xB7 ${e.agent}`:t},CCe=e=>{let t=Wt(e);return t<60?`${t}s`:t<3600?`${+(t/60).toFixed(1)} min`:`${+(t/3600).toFixed(1)} h`},zQ=async e=>{let t=await fetch(`/api/metrics?${e.toString()}`);if(!t.ok)throw new Error(`Request failed (${t.status})`);return t.json()},ACe=(e,t,r=Date.now())=>{let n=Math.max(1,Wt(t))*1e3,o=Math.max(1,Math.round(Wt(e)*6e4/n)),a=Math.floor(r/n)*n;return Array.from({length:o},(i,s)=>({ts:new Date(a-(o-1-s)*n).toISOString()}))},ECe=(e,t)=>{let r=e.summary||{},n=jh[e.range]||jh[t]||jh[u3],o=Wt(e.bucket_seconds)||n.seconds,a=Wt(e.window_minutes)||(e.window_hours?Wt(e.window_hours)*60:n.n*n.seconds/60),i=Array.isArray(e.series)?e.series:ACe(a,o),s=Wt(e.totals?.requests??r.total_requests),l=Wt(e.totals?.cost??r.total_cost),u={requests:s,requests_per_minute:a?s/a:0,p50_ms:null,p95_ms:null,p99_ms:null,errors:Wt(r.errors),error_rate:Wt(r.error_rate),tokens_in:Wt(r.tokens_input),tokens_out:Wt(r.tokens_output),tokens:Wt(r.tokens_used),cost:l,cost_per_request:s?l/s:0,tool_calls:0,tool_errors:0,tool_error_rate:0,...e.totals||{}},c={requests_pct:r.requests_change??null,p50_pct:r.latency_change??null,error_rate_pt:null,tokens_pct:null,cost_pct:null,...e.deltas||{}},d=Array.isArray(e.agents)?e.agents:(e.by_agent||[]).map(f=>({name:f.name,requests:Wt(f.requests),share_pct:s?Wt(f.requests)/s*100:0,p95_ms:null,error_rate:f.requests?Wt(f.errors)/Wt(f.requests)*100:0,cost:Wt(f.cost),tokens:Wt(f.tokens)})),p=Array.isArray(e.errors_by_type)&&e.errors_by_type.length?e.errors_by_type:J0.map(f=>({type:f.type,count:0}));return{range:e.range||t,bucketSeconds:o,windowMinutes:a,agent:e.agent||null,environment:e.environment||null,totals:u,deltas:c,series:i,agents:d,models:Array.isArray(e.models)?e.models:[],actions:Array.isArray(e.actions)?e.actions:[],tools:Array.isArray(e.tools)?e.tools:[],errorsByType:p,markers:Array.isArray(e.markers)?e.markers:[]}},FQ=e=>{let t=jh[e.range];if(t)return t;let r=Math.max(1,Math.round(e.windowMinutes/60));return{bucket:CCe(e.bucketSeconds),prev:`vs previous ${r}h`,title:`last ${r} hours`}},NCe=e=>{let[t,r]=(0,ze.useState)(()=>typeof window<"u"&&window.innerWidth{let n=window.matchMedia(`(max-width: ${e-1}px)`),o=()=>r(n.matches);return o(),n.addEventListener("change",o),()=>n.removeEventListener("change",o)},[e]),t};function c3(){let[e,t]=(0,ze.useState)(u3),[r,n]=(0,ze.useState)(""),[o,a]=(0,ze.useState)(null),[i,s]=(0,ze.useState)(!0),[l,u]=(0,ze.useState)(null),[c,d]=(0,ze.useState)(!1),p=(0,ze.useRef)(0),f=NCe(hCe),m=(0,ze.useRef)(null),y=(0,ze.useCallback)(async()=>{let S=++p.current;try{let k=new URLSearchParams({range:e});r&&k.set("agent",r);let[w,_]=await Promise.all([zQ(k),r?zQ(new URLSearchParams({range:e})).catch(()=>null):null]);if(S!==p.current)return;let A=r?_?.agents:w.agents;Array.isArray(A)&&(m.current=A),a({data:w,ranking:Array.isArray(A)?A:m.current}),u(null)}catch(k){if(S!==p.current)return;u(k.message)}finally{S===p.current&&s(!1)}},[e,r]);(0,ze.useEffect)(()=>{let S=!1;d(!0),y().finally(()=>{S||d(!1)});let k=setInterval(y,BQ);return()=>{S=!0,clearInterval(k)}},[y]);let b=(0,ze.useMemo)(()=>o?ECe(o.data,e):null,[o,e]),g=(0,ze.useMemo)(()=>b?b.agent?kCe(o.ranking,b.agents):b.agents:[],[b,o]),h=(0,ze.useMemo)(()=>g.map(S=>S.name).filter(Boolean),[g]),v=(0,ze.useMemo)(()=>{let S=Object.fromEntries(h.map((w,_)=>[w,Dh[_%Dh.length]])),k=h.length;return(b?b.agents:[]).forEach(w=>{w.name&&!S[w.name]&&(S[w.name]=Dh[k++%Dh.length])}),w=>S[w]||Dh[0]},[h,b]),x=(0,ze.useMemo)(()=>b?OCe(b,v):null,[b,v]);return i?ze.default.createElement("div",{className:"flex items-center justify-center h-64"},ze.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2",style:{borderBottomColor:"var(--color-accent-ui)"}})):l||!b?ze.default.createElement("div",null,ze.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:R2}},"Metrics"),ze.default.createElement("div",{style:{marginTop:16,padding:"12px 16px",background:"var(--color-error-soft)",borderRadius:8,color:"var(--color-error-text)",fontSize:14}},"Failed to load metrics",l?`: ${l}`:"")):ze.default.createElement(TCe,{m:b,view:x,railAgents:g,range:jh[e]?e:u3,agent:r,agentOptions:r&&!h.includes(r)?[...h,r]:h,colorFor:v,narrow:f,pending:c,onRange:t,onAgent:n})}function TCe({m:e,view:t,railAgents:r=e.agents,range:n,agent:o,agentOptions:a,colorFor:i,narrow:s,pending:l=!1,onRange:u,onAgent:c}){let d=FQ(e),p=e.totals.requests===0,f=m=>c(o===m?"":m);return ze.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16,width:"100%",maxWidth:1600,boxSizing:"border-box",color:R2,fontSize:13}},ze.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",gap:16,flexWrap:"wrap"}},ze.default.createElement("div",{style:{flex:1,minWidth:240}},ze.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em"}},"Metrics"),ze.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"Requests, latency, errors, tokens and cost across every agent \u2014 ",d.title,o?` \xB7 ${o}`:"")),ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},ze.default.createElement("select",{value:o,onChange:m=>c(m.target.value),"aria-label":"Filter by agent",style:{padding:"6px 10px",borderRadius:8,fontSize:13,fontFamily:"inherit",border:"1px solid var(--color-border-strong)",background:"var(--color-card)",color:R2,cursor:"pointer"}},ze.default.createElement("option",{value:""},"All agents"),a.map(m=>ze.default.createElement("option",{key:m,value:m},m))),e.environment&&ze.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 10px",borderRadius:8,border:"1px solid var(--color-border)",fontFamily:U,fontSize:11,color:"var(--color-text-cell)",background:"var(--color-card)"}},ze.default.createElement("span",{style:{color:"var(--color-text-muted)"}},"env"),e.environment),ze.default.createElement(qi,{options:yCe,value:n,onChange:u}),ze.default.createElement("span",{title:l?"loading\u2026":`refreshes every ${BQ/1e3}s`,style:{display:"inline-flex",alignItems:"center",gap:6,fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},ze.default.createElement("span",{style:{width:7,height:7,borderRadius:"50%",background:l?"var(--color-text-muted)":"var(--color-success)"}}),"live \xB7 ",d.bucket," buckets"))),p?ze.default.createElement(je,{style:{padding:"40px 24px",textAlign:"center",fontSize:14,color:"var(--color-text-secondary)"}},"No traffic yet \u2014 run an agent, or point your app's ActiveAgent telemetry at this workspace",ze.default.createElement("div",{style:{marginTop:8,fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},o||"all agents"," \xB7 ",d.title)):ze.default.createElement(ze.default.Fragment,null,ze.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:12,opacity:l?.6:1}},t.signals.map(m=>ze.default.createElement(DQ,{key:m.label,...m,deltaSub:d.prev}))),ze.default.createElement("div",{style:{display:"grid",gridTemplateColumns:s?"minmax(0, 1fr)":"minmax(0, 2.3fr) minmax(300px, 1fr)",gap:16,alignItems:"start",opacity:l?.6:1}},ze.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:16,minWidth:0}},t.panels.map(m=>ze.default.createElement(jQ,{key:m.title,...m,xLabels:t.xLabels,height:t3}))),ze.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16,minWidth:0}},ze.default.createElement(Ih,{label:"Agents",qualifier:"by requests \xB7 click to filter"},ze.default.createElement(n3,{template:"minmax(0, 1fr) 44px 44px 40px 52px",columns:["req","p95","err","cost"]}),r.length===0&&ze.default.createElement(Z0,null,"no agents in this window"),r.map(m=>ze.default.createElement(J2,{key:m.name,template:"minmax(0, 1fr) 44px 44px 40px 52px",active:o===m.name,onClick:()=>f(m.name),title:o===m.name?"Show all agents":`Filter to ${m.name}`},ze.default.createElement("div",{style:{minWidth:0}},ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0}},ze.default.createElement(a3,{color:i(m.name)}),ze.default.createElement("span",{style:{fontSize:12,fontWeight:600,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name)),ze.default.createElement(i3,{pct:m.share_pct,color:i(m.name)})),ze.default.createElement(ys,null,On(m.requests)),ze.default.createElement(ys,{color:"var(--color-text-secondary)"},Bn(m.p95_ms)),ze.default.createElement(ys,{color:Wt(m.error_rate)>=1.5?"var(--color-error-text)":"var(--color-text-secondary)"},LQ(m.error_rate)),ze.default.createElement(ys,null,v0(m.cost))))),ze.default.createElement(Ih,{label:"Models",qualifier:"by tokens"},e.models.length===0&&ze.default.createElement(Z0,null,"no model usage in this window"),e.models.map((m,y)=>ze.default.createElement(J2,{key:`${m.model}-${m.provider}-${y}`,template:"minmax(0, 1fr) 52px 56px"},ze.default.createElement("div",{style:{minWidth:0}},ze.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:6,minWidth:0}},ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:600,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.model||"unknown"),m.provider&&ze.default.createElement("span",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)"}},m.provider)),ze.default.createElement(i3,{pct:m.share_pct,color:"var(--color-token-in)"})),ze.default.createElement(ys,null,On(m.tokens)),ze.default.createElement(ys,{color:"var(--color-text-secondary)"},v0(m.cost))))),ze.default.createElement(Ih,{label:"Slowest actions",qualifier:"p95"},e.actions.length===0&&ze.default.createElement(Z0,null,"no actions in this window"),e.actions.map(m=>ze.default.createElement(o3,{key:m.name},ze.default.createElement("span",{title:m.name,style:{flex:1,minWidth:0,fontFamily:U,fontSize:11,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name),ze.default.createElement(s3,{pct:t.slowestP95?Wt(m.p95_ms)/t.slowestP95*100:0,color:i(m.agent)}),ze.default.createElement(ys,{weight:600,width:40},Bn(m.p95_ms))))),ze.default.createElement(Ih,{label:"Tools",qualifier:"by calls"},ze.default.createElement(n3,{template:"minmax(0, 1fr) 44px 48px 40px",columns:["calls","avg","err"]}),e.tools.length===0&&ze.default.createElement(Z0,null,"no tool calls in this window"),e.tools.map(m=>ze.default.createElement(J2,{key:m.name,template:"minmax(0, 1fr) 44px 48px 40px",padding:"7px 14px"},ze.default.createElement("span",{title:m.name,style:{fontFamily:U,fontSize:11,fontWeight:600,color:"var(--span-tool)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name),ze.default.createElement(ys,null,On(m.calls)),ze.default.createElement(ys,{color:"var(--color-text-secondary)"},Bn(m.avg_ms)),ze.default.createElement(ys,{color:Wt(m.error_rate)>=2?"var(--color-error-text)":"var(--color-text-secondary)"},LQ(m.error_rate))))),ze.default.createElement(Ih,{label:"Errors by type",meta:`${Math.round(e.totals.errors)} total`},e.errorsByType.map(m=>ze.default.createElement(o3,{key:m.type},ze.default.createElement(a3,{color:$Q(m.type)}),ze.default.createElement("span",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--color-text-cell)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.type),ze.default.createElement(s3,{pct:t.errorTotal?Wt(m.count)/t.errorTotal*100:0,color:$Q(m.type)}),ze.default.createElement(ys,{weight:600,width:32},Math.round(Wt(m.count))))))))))}function OCe(e,t){let{series:r,totals:n,deltas:o}=e,a=r.length,i=FQ(e),s=r.map($=>new Date($.ts)),l=e.windowMinutes>=2880,u=$=>Number.isNaN($.getTime())?"":l?`${bCe[$.getDay()]} ${l3($.getHours())}h`:`${l3($.getHours())}:${l3($.getMinutes())}`,c=a?[0,1,2,3,4,5,6].map($=>$===6?"now":u(s[Math.round($*(a-1)/6)])):[],d=$=>r.map(ee=>Wt(ee[$])),p=d("requests"),f=d("errors"),m=d("tokens_in"),y=d("tokens_out"),b=d("cost"),g=d("tool_calls"),h=d("tool_errors"),v=$=>r.map(ee=>ee[$]==null?null:Wt(ee[$])),x=v("p50_ms"),S=v("p95_ms"),k=v("p99_ms"),w=r.map($=>$.requests_by_agent||{}),_=e.agents.map($=>$.name).filter(Boolean);w.forEach($=>Object.keys($).forEach(ee=>{_.includes(ee)||_.push(ee)}));let A=_.length?_.map($=>({label:$,color:t($),data:w.map(ee=>Wt(ee[$]))})):[{label:"requests",color:Dh[0],data:p}],C=J0.map($=>({label:$.type,color:$.color,data:r.map(ee=>Wt((ee.errors_by_type||{})[$.type]))})),N=(Wt(e.bucketSeconds)||(a>1?(s[1]-s[0])/1e3:0))*1e3,L=($,ee)=>{if(!$||a<2||!N)return null;let F=new Date($.ts).getTime();if(Number.isNaN(F))return null;let et=Math.min(a-1,Math.max(0,Math.floor((F-s[0].getTime())/N)))/(a-1);return{left:et*100,label:ee,flip:et>.55}},Q=e.markers.filter($=>$.kind==="deploy").sort(($,ee)=>new Date($.ts)-new Date(ee.ts)).slice(-vCe).map($=>L($,$.label)).filter(Boolean),B=e.markers.find($=>$.kind==="incident"),K=B?L(B,_Ce(B)):null,T=K?[K]:[],O=Mh(Ys(p)*1.1),I=Mh(Ys(f)*1.15),P=Mh(Math.max(Ys(k),Ys(S),Ys(x))*1.05),j=Mh(Math.max(Ys(m),Ys(y))*1.1),M=r3(Ys(b)*1.1),W=MQ(M),Y=Mh(Ys(g)*1.1),z=Wt(n.requests),V=Wt(n.requests_per_minute),q=Wt(n.errors),oe=Wt(n.error_rate),Me=Wt(n.tokens)||Wt(n.tokens_in)+Wt(n.tokens_out),fe=Wt(n.cost),le=n.cost_per_request!=null?Wt(n.cost_per_request):z?fe/z:0,R=Wt(n.tool_calls),te=n.tool_error_rate!=null?Wt(n.tool_error_rate):R?Wt(n.tool_errors)/R*100:0,He=Wt(e.errorsByType.find($=>$.type===J0[0].type)?.count),_e=[{title:"Requests",sub:`per ${i.bucket} \xB7 stacked by agent`,value:`${On(z)} \xB7 ${V.toFixed(1)}/min`,legend:A.map($=>({label:$.label,color:$.color})),ticks:xf(O,On),buckets:X0(A,O,$=>`${u(s[$])} \xB7 ${Math.round(p[$])} req`),markers:Q},{title:"Latency",sub:"generation percentiles",value:`p50 ${Bn(n.p50_ms)}`,legend:[{label:`p50 ${Bn(n.p50_ms)}`,color:"var(--color-token-in)"},{label:`p95 ${Bn(n.p95_ms)}`,color:"var(--color-warning)"},{label:`p99 ${Bn(n.p99_ms)}`,color:"var(--color-error)"}],ticks:xf(P,SCe),lines:[{points:bf(k,P),color:"var(--color-error)",width:1.5},{points:bf(S,P),color:"var(--color-warning)",width:1.5},{points:bf(x,P),color:"var(--color-token-in)",width:2}],areas:[{points:Z2(x,P),color:"var(--color-token-in)"}],markers:T},{title:"Errors",sub:`per ${i.bucket} \xB7 by type`,value:`${oe.toFixed(2)}% \xB7 ${Q2(Math.round(q),"error")}`,valueColor:oe>1?"var(--color-error)":R2,legend:C.map($=>({label:$.label,color:$.color})),ticks:xf(I,$=>String(Math.round($))),buckets:X0(C,I,$=>`${u(s[$])} \xB7 ${Q2(Math.round(f[$]),"error")}`),markers:T},{title:"Tokens",sub:`per ${i.bucket} \xB7 input / output`,value:`${On(Me)} \xB7 in ${On(n.tokens_in)} / out ${On(n.tokens_out)}`,legend:[{label:"input",color:"var(--color-token-in)"},{label:"output",color:"var(--color-token-out)"}],ticks:xf(j,On),lines:[{points:bf(m,j),color:"var(--color-token-in)",width:1.5},{points:bf(y,j),color:"var(--color-token-out)",width:1.5}],areas:[{points:Z2(m,j),color:"var(--color-token-in)"},{points:Z2(y,j),color:"var(--color-token-out)"}]},{title:"Cost",sub:`estimated \xB7 per ${i.bucket}`,value:`${v0(fe)} \xB7 ${x0(le)}/req`,legend:[{label:"spend",color:"var(--color-text-secondary)"}],ticks:xf(M,$=>x0($,W)),buckets:X0([{color:"var(--color-text-secondary)",data:b}],M,$=>`${u(s[$])} \xB7 ${x0(b[$],W)}`)},{title:"Tool calls",sub:`per ${i.bucket} \xB7 MCP + agent-defined`,value:`${On(R)} \xB7 ${te.toFixed(1)}% errors`,legend:[{label:"calls",color:"var(--span-tool)"},{label:"errors",color:"var(--color-error)"}],ticks:xf(Y,On),buckets:X0([{color:"var(--span-tool)",data:g.map(($,ee)=>Math.max(0,$-h[ee]))},{color:"var(--color-error)",data:h}],Y,$=>`${u(s[$])} \xB7 ${Q2(Math.round(g[$]),"call")}`)}],D=($,ee,F)=>{let me=$==null?null:Wt($);return me==null||me===0?"muted":ee&&ee(me)?"success":F&&F(me)?"error":"muted"},G=($,ee,F,me,et,rt,ge,ue)=>({label:$,value:ee,unit:F,sub:me,delta:et,deltaColor:xCe[rt],spark:IQ(ge),sparkColor:ue});return{signals:[G("Requests",On(z),"",`${V.toFixed(1)} req/min`,mh(o.requests_pct),D(o.requests_pct,$=>$>0,null),p,"var(--color-token-in)"),G("Latency",Bn(n.p50_ms),"p50",`p95 ${Bn(n.p95_ms)} \xB7 p99 ${Bn(n.p99_ms)}`,mh(o.p50_pct),D(o.p50_pct,$=>$<0,$=>$>0),x,"var(--color-token-in)"),G("Error rate",oe.toFixed(2),"%",`${Q2(Math.round(q),"error")} \xB7 ${Math.round(He)} rate-limited`,mh(o.error_rate_pt," pt",1),D(o.error_rate_pt,$=>$<0,$=>$>0),f,"var(--color-error)"),G("Tokens",On(Me),"",`in ${On(n.tokens_in)} \xB7 out ${On(n.tokens_out)}`,mh(o.tokens_pct),"muted",m.map(($,ee)=>$+y[ee]),"var(--color-token-in)"),G("Cost",v0(fe),"",`${x0(le)} per request`,mh(o.cost_pct),"muted",b,"var(--color-text-secondary)")],panels:_e,xLabels:c,slowestP95:Ys(e.actions.map($=>$.p95_ms)),errorTotal:wCe(e.errorsByType.map($=>$.count))}}var Be=Z(J());var PCe=6e4,MCe=[{value:24,label:"24h"},{value:168,label:"7d"},{value:720,label:"30d"}],UQ={mcp:{light:"#7c3aed",dark:"#c4b5fd",bgLight:"#f5f3ff",bgDark:"rgba(124,58,237,0.15)"},builtin:{light:"#2563eb",dark:"#93c5fd",bgLight:"#eff6ff",bgDark:"rgba(37,99,235,0.15)"},agent:{light:"#15803d",dark:"#86efac",bgLight:"#f0fdf4",bgDark:"rgba(34,197,94,0.12)"}},Q0=e=>e==null?"0":e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e),WQ=e=>e==null?"\u2014":e>=1e3?`${(e/1e3).toFixed(2)}s`:`${Math.round(e)}ms`,ICe=e=>{if(!e)return"\u2014";let t=new Date(e),r=Math.round((Date.now()-t.getTime())/6e4);if(r<1)return"just now";if(r<60)return`${r}m ago`;let n=Math.round(r/60);return n<24?`${n}h ago`:`${Math.round(n/24)}d ago`};function d3({onOpenServer:e}){let{darkMode:t}=ut(),[r,n]=(0,Be.useState)(null),[o,a]=(0,Be.useState)(!0),[i,s]=(0,Be.useState)(null),[l,u]=(0,Be.useState)("all"),[c,d]=(0,Be.useState)(""),[p,f]=(0,Be.useState)(168),[m,y]=(0,Be.useState)(null),b=(0,Be.useCallback)(async()=>{try{let A=new URLSearchParams({hours:String(p)});l!=="all"&&A.set("origin",l),c.trim()&&A.set("q",c.trim());let C=await fetch(`/api/tools?${A}`);if(!C.ok)throw new Error(`Request failed (${C.status})`);n(await C.json()),s(null)}catch(A){s(A.message)}finally{a(!1)}},[l,c,p]);(0,Be.useEffect)(()=>{let A=setTimeout(b,c?250:0);return()=>clearTimeout(A)},[b,c]),(0,Be.useEffect)(()=>{let A=setInterval(b,PCe);return()=>clearInterval(A)},[b]);let g={bg:t?"transparent":"#f9fafb",cardBg:t?"rgba(255,255,255,0.05)":"#ffffff",border:t?"rgba(255,255,255,0.1)":"#e5e7eb",borderLight:t?"rgba(255,255,255,0.05)":"#f3f4f6",textPrimary:t?"#ffffff":"#111827",textSecondary:t?"rgba(255,255,255,0.6)":"#6b7280",textMuted:t?"rgba(255,255,255,0.4)":"#9ca3af",textCell:t?"rgba(255,255,255,0.7)":"#4b5563",error:"#ef4444",errorBg:t?"rgba(239,68,68,0.2)":"#fef2f2",inputBg:t?"rgba(255,255,255,0.06)":"#ffffff"},h=A=>{let C=UQ[A]||UQ.agent;return{fg:t?C.dark:C.light,bg:t?C.bgDark:C.bgLight}};if(o&&!r)return Be.default.createElement("div",{className:"flex items-center justify-center h-64"},Be.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));if(i&&!r)return Be.default.createElement("div",{style:{padding:"24px"}},Be.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:g.textPrimary,margin:0}},"Tools"),Be.default.createElement("div",{style:{marginTop:"16px",padding:"12px 16px",background:g.errorBg,borderRadius:"8px",color:g.error,fontSize:"14px"}},"Failed to load tools: ",i));let{tools:v=[],summary:x={},origins:S={},sources:k={}}=r||{},w=!k.telemetry&&!k.generations&&!k.messages&&!k.declared,_=({label:A,value:C,hint:N,tone:L})=>Be.default.createElement("div",{style:{background:g.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${g.border}`}},Be.default.createElement("div",{style:{fontSize:"11px",color:g.textSecondary,textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"8px"}},A),Be.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",fontFamily:"monospace",color:L||g.textPrimary}},C),N&&Be.default.createElement("div",{style:{fontSize:"13px",color:g.textSecondary,marginTop:"8px"}},N));return Be.default.createElement("div",{style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)",backgroundColor:g.bg}},Be.default.createElement("div",{style:{padding:"24px 24px 16px 24px",borderBottom:`1px solid ${g.border}`,marginBottom:"16px"}},Be.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"16px",flexWrap:"wrap"}},Be.default.createElement("div",null,Be.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:g.textPrimary,margin:0}},"Tools"),Be.default.createElement("p",{style:{fontSize:"14px",color:g.textSecondary,marginTop:"4px"}},"Detected from telemetry spans, generation request bodies, and agent records \u2014 nothing to register by hand")),Be.default.createElement("div",{style:{display:"flex",gap:"4px"}},MCe.map(A=>Be.default.createElement("button",{key:A.value,onClick:()=>f(A.value),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${p===A.value?"#ef4444":g.border}`,background:p===A.value?t?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:p===A.value?"#ef4444":g.textSecondary}},A.label))))),Be.default.createElement("div",{style:{padding:"0 24px 24px 24px"}},Be.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px",marginBottom:"16px"}},Be.default.createElement(_,{label:"Tools Detected",value:Q0(x.total_tools),hint:`${x.active_tools||0} called in this window`}),Be.default.createElement(_,{label:"Tool Calls",value:Q0(x.total_calls),hint:`${WQ(x.avg_duration_ms)} average`}),Be.default.createElement(_,{label:"Error Rate",value:`${x.error_rate||0}%`,tone:x.error_rate>5?g.error:g.textPrimary,hint:`${x.total_errors||0} failed call${x.total_errors===1?"":"s"}`}),Be.default.createElement(_,{label:"From MCP",value:Q0(x.mcp_tools),hint:`across ${x.mcp_servers_active||0} active server${x.mcp_servers_active===1?"":"s"}`}),Be.default.createElement(_,{label:"Never Called",value:Q0(x.unused_tools),hint:"offered or configured, unused"})),Be.default.createElement("div",{style:{display:"flex",gap:"8px",marginBottom:"16px",flexWrap:"wrap",alignItems:"center"}},Object.entries(S).map(([A,C])=>Be.default.createElement("button",{key:A,onClick:()=>u(A),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${l===A?"#ef4444":g.border}`,background:l===A?t?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:l===A?"#ef4444":g.textSecondary}},C)),Be.default.createElement("input",{value:c,onChange:A=>d(A.target.value),placeholder:"Filter by name\u2026",style:{marginLeft:"auto",padding:"6px 12px",fontSize:"13px",borderRadius:"6px",minWidth:"200px",border:`1px solid ${g.border}`,background:g.inputBg,color:g.textPrimary}})),Be.default.createElement("div",{style:{background:g.cardBg,borderRadius:"12px",border:`1px solid ${g.border}`,overflow:"hidden"}},v.length===0?Be.default.createElement("div",{style:{textAlign:"center",padding:"48px 24px",color:g.textSecondary,fontSize:"14px"}},w?"No tool activity yet \u2014 run an agent, or point your app's ActiveAgent telemetry at this workspace":"No tools match these filters"):Be.default.createElement("div",{style:{overflowX:"auto"}},Be.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse",minWidth:"760px"}},Be.default.createElement("thead",null,Be.default.createElement("tr",{style:{textAlign:"left",fontSize:"13px",color:g.textSecondary,borderBottom:`1px solid ${g.border}`}},Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500"}},"Tool"),Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500"}},"Source"),Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Calls"),Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Errors"),Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Avg"),Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Last seen"))),Be.default.createElement("tbody",null,v.map((A,C)=>{let N=h(A.origin),L=m===A.name;return Be.default.createElement(Be.default.Fragment,{key:A.name},Be.default.createElement("tr",{onClick:()=>y(L?null:A.name),style:{borderBottom:C{Q.stopPropagation(),A.mcp_server&&e&&e(A.mcp_server)},style:{fontSize:"11px",padding:"3px 8px",borderRadius:"6px",border:"none",background:N.bg,color:N.fg,fontFamily:"monospace",cursor:A.mcp_server&&e?"pointer":"default"},title:A.mcp_server?`Open ${A.mcp_server} in MCP Services`:A.source_label},A.source_label)),Be.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:g.textCell,fontFamily:"monospace"}},Q0(A.calls)),Be.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",fontFamily:"monospace",color:A.errors>0?g.error:g.textCell}},A.errors),Be.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:g.textCell,fontFamily:"monospace"}},WQ(A.avg_duration_ms)),Be.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:g.textMuted,fontSize:"13px"}},ICe(A.last_seen))),L&&Be.default.createElement("tr",{style:{borderBottom:CBe.default.createElement("span",{key:A,style:{color:k[A]?g.textSecondary:g.textMuted,opacity:k[A]?1:.5}},k[A]?"\u25CF":"\u25CB"," ",C)))))}function DCe({tool:e,colors:t,tone:r,darkMode:n}){let o=({label:a,children:i})=>Be.default.createElement("div",{style:{display:"flex",gap:"12px",fontSize:"13px",alignItems:"baseline"}},Be.default.createElement("span",{style:{color:t.textMuted,minWidth:"108px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em"}},a),Be.default.createElement("span",{style:{color:t.textCell,flex:1,wordBreak:"break-word"}},i));return Be.default.createElement("div",{style:{display:"grid",gap:"8px",padding:"12px 16px",borderRadius:"8px",background:n?"rgba(0,0,0,0.25)":"#ffffff",border:`1px solid ${t.border}`}},Be.default.createElement(o,{label:"Full name"},Be.default.createElement("code",{style:{fontFamily:"monospace"}},e.name)),e.description&&Be.default.createElement(o,{label:"Description"},e.description),Be.default.createElement(o,{label:"Parameters"},e.parameters?.length>0?Be.default.createElement("code",{style:{fontFamily:"monospace",color:r.fg}},e.parameters.join(", ")):Be.default.createElement("span",{style:{color:t.textMuted}},"none recorded")),Be.default.createElement(o,{label:"Agents"},e.agents?.length>0?e.agents.join(", "):Be.default.createElement("span",{style:{color:t.textMuted}},"\u2014")),e.configured_by?.length>0&&Be.default.createElement(o,{label:"Configured by"},e.configured_by.join(", ")),Be.default.createElement(o,{label:"Call breakdown"},Be.default.createElement("span",{style:{fontFamily:"monospace"}},e.traced_calls," traced \xB7 ",e.requested," requested \xB7 ",e.results," results")),e.sample_arguments&&Be.default.createElement(o,{label:"Last arguments"},Be.default.createElement("code",{style:{fontFamily:"monospace",fontSize:"12px",color:t.textMuted}},e.sample_arguments)),e.last_error&&Be.default.createElement(o,{label:"Last error"},Be.default.createElement("span",{style:{color:t.error}},e.last_error)),Be.default.createElement(o,{label:"Detected from"},e.detected_from?.join(", ")||"\u2014"))}var qe=Z(J());var jCe=6e4,$Ce=[{value:24,label:"24h"},{value:168,label:"7d"},{value:720,label:"30d"}],LCe=[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"configured",label:"Configured"},{value:"available",label:"Available"}],zCe=["http","streamable_http","sse"],HQ={active:{light:"#15803d",dark:"#86efac",bgLight:"#f0fdf4",bgDark:"rgba(34,197,94,0.15)"},configured:{light:"#b45309",dark:"#fcd34d",bgLight:"#fffbeb",bgDark:"rgba(245,158,11,0.15)"},available:{light:"#4b5563",dark:"rgba(255,255,255,0.6)",bgLight:"#f3f4f6",bgDark:"rgba(255,255,255,0.08)"},idle:{light:"#4b5563",dark:"rgba(255,255,255,0.6)",bgLight:"#f3f4f6",bgDark:"rgba(255,255,255,0.08)"}},R0=e=>e==null?"0":e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e);function p3({focusServer:e,onOpenTools:t}){let{darkMode:r}=ut(),[n,o]=(0,qe.useState)(null),[a,i]=(0,qe.useState)(!0),[s,l]=(0,qe.useState)(null),[u,c]=(0,qe.useState)("all"),[d,p]=(0,qe.useState)(168),[f,m]=(0,qe.useState)(e||null),[y,b]=(0,qe.useState)(null),[g,h]=(0,qe.useState)(null),v=(0,qe.useCallback)(async()=>{try{let B=await fetch(`/api/mcp_servers?hours=${d}`);if(!B.ok)throw new Error(`Request failed (${B.status})`);o(await B.json()),l(null)}catch(B){l(B.message)}finally{i(!1)}},[d]);(0,qe.useEffect)(()=>{v();let B=setInterval(v,jCe);return()=>clearInterval(B)},[v]),(0,qe.useEffect)(()=>{e&&m(e)},[e]);let x={bg:r?"transparent":"#f9fafb",cardBg:r?"rgba(255,255,255,0.05)":"#ffffff",border:r?"rgba(255,255,255,0.1)":"#e5e7eb",borderLight:r?"rgba(255,255,255,0.05)":"#f3f4f6",textPrimary:r?"#ffffff":"#111827",textSecondary:r?"rgba(255,255,255,0.6)":"#6b7280",textMuted:r?"rgba(255,255,255,0.4)":"#9ca3af",textCell:r?"rgba(255,255,255,0.7)":"#4b5563",error:"#ef4444",errorBg:r?"rgba(239,68,68,0.2)":"#fef2f2",codeBg:r?"rgba(0,0,0,0.35)":"#f9fafb"},S=B=>{let K=HQ[B]||HQ.available;return{fg:r?K.dark:K.light,bg:r?K.bgDark:K.bgLight}},k=async B=>{b(B.key),h(null);try{let K=await fetch(`/api/mcp_servers/${encodeURIComponent(B.key)}/launch`,{method:"POST",headers:{"Content-Type":"application/json"}}),T=await K.json();if(!K.ok)throw new Error(T.reason||T.error||`Launch failed (${K.status})`);h({kind:"ok",text:`${B.name} is starting in a sandbox (${T.sandbox.session_id.slice(0,8)}\u2026)`}),v()}catch(K){h({kind:"error",text:K.message})}finally{b(null)}};if(a&&!n)return qe.default.createElement("div",{className:"flex items-center justify-center h-64"},qe.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));if(s&&!n)return qe.default.createElement("div",{style:{padding:"24px"}},qe.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:x.textPrimary,margin:0}},"MCP Services"),qe.default.createElement("div",{style:{marginTop:"16px",padding:"12px 16px",background:x.errorBg,borderRadius:"8px",color:x.error,fontSize:"14px"}},"Failed to load MCP services: ",s));let{servers:w=[],summary:_={},sandboxes:A=[],statuses:C={}}=n||{},N=u==="all"?w:w.filter(B=>B.status===u),L=new Set(A.flatMap(B=>B.mcp_servers||[])),Q=({label:B,value:K,hint:T})=>qe.default.createElement("div",{style:{background:x.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${x.border}`}},qe.default.createElement("div",{style:{fontSize:"11px",color:x.textSecondary,textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"8px"}},B),qe.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",fontFamily:"monospace",color:x.textPrimary}},K),T&&qe.default.createElement("div",{style:{fontSize:"13px",color:x.textSecondary,marginTop:"8px"}},T));return qe.default.createElement("div",{style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)",backgroundColor:x.bg}},qe.default.createElement("div",{style:{padding:"24px 24px 16px 24px",borderBottom:`1px solid ${x.border}`,marginBottom:"16px"}},qe.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"16px",flexWrap:"wrap"}},qe.default.createElement("div",null,qe.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:x.textPrimary,margin:0}},"MCP Services"),qe.default.createElement("p",{style:{fontSize:"14px",color:x.textSecondary,marginTop:"4px"}},"Servers detected from your agents' traffic, plus the defaults you can connect or run in a sandbox")),qe.default.createElement("div",{style:{display:"flex",gap:"4px"}},$Ce.map(B=>qe.default.createElement("button",{key:B.value,onClick:()=>p(B.value),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${d===B.value?"#ef4444":x.border}`,background:d===B.value?r?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:d===B.value?"#ef4444":x.textSecondary}},B.label))))),qe.default.createElement("div",{style:{padding:"0 24px 24px 24px"}},qe.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px",marginBottom:"16px"}},qe.default.createElement(Q,{label:"Active",value:R0(_.active),hint:"called in this window"}),qe.default.createElement(Q,{label:"Configured",value:R0(_.configured),hint:"declared, no traffic yet"}),qe.default.createElement(Q,{label:"Available",value:R0(_.available),hint:"defaults you can connect"}),qe.default.createElement(Q,{label:"Tool Calls",value:R0(_.total_calls),hint:"through MCP servers"})),g&&qe.default.createElement("div",{style:{marginBottom:"16px",padding:"12px 16px",borderRadius:"8px",fontSize:"14px",background:g.kind==="error"?x.errorBg:r?"rgba(34,197,94,0.15)":"#f0fdf4",color:g.kind==="error"?x.error:r?"#86efac":"#15803d"}},g.text),qe.default.createElement("div",{style:{display:"flex",gap:"8px",marginBottom:"16px",flexWrap:"wrap"}},LCe.map(B=>qe.default.createElement("button",{key:B.value,onClick:()=>c(B.value),title:C[B.value]||"Every MCP service known to this workspace",style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${u===B.value?"#ef4444":x.border}`,background:u===B.value?r?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:u===B.value?"#ef4444":x.textSecondary}},B.label))),qe.default.createElement("div",{style:{display:"grid",gap:"12px"}},N.length===0?qe.default.createElement("div",{style:{background:x.cardBg,borderRadius:"12px",border:`1px solid ${x.border}`,textAlign:"center",padding:"48px 24px",color:x.textSecondary,fontSize:"14px"}},"No MCP services in this state"):N.map(B=>{let K=S(B.status),T=f===B.key,O=L.has(B.key);return qe.default.createElement("div",{key:B.key,style:{background:x.cardBg,borderRadius:"12px",border:`1px solid ${T?K.fg:x.border}`,overflow:"hidden"}},qe.default.createElement("div",{onClick:()=>m(T?null:B.key),style:{padding:"16px 20px",cursor:"pointer",display:"flex",alignItems:"center",gap:"16px",flexWrap:"wrap"}},qe.default.createElement("div",{style:{flex:1,minWidth:"220px"}},qe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},qe.default.createElement("span",{style:{fontSize:"15px",fontWeight:"600",color:x.textPrimary}},B.name),qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:K.bg,color:K.fg,textTransform:"uppercase",letterSpacing:"0.04em"}},B.status),B.first_party&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(239,68,68,0.15)":"#fef2f2",color:"#ef4444"}},"first-party"),Zd(B)&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(59,130,246,0.15)":"#eff6ff",color:r?"#93c5fd":"#1d4ed8"},title:"The app runtime of a checkout sandbox started from Settings \u2192 Integrations"},"sandbox runtime"),av(B)&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(245,158,11,0.15)":"#fffbeb",color:r?"#fcd34d":"#b45309"},title:"This checkout sandbox has stopped; agents may still name its runtime"},"not running"),nw(B)&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:x.borderLight,color:x.textMuted},title:"Seen in your traffic but not in the platform catalog"},"undocumented"),O&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(34,197,94,0.15)":"#f0fdf4",color:r?"#86efac":"#15803d"}},"\u25CF sandbox running")),B.description&&qe.default.createElement("div",{style:{fontSize:"13px",color:x.textSecondary,marginTop:"4px"}},B.description)),qe.default.createElement("div",{style:{display:"flex",gap:"24px",alignItems:"center"}},qe.default.createElement("div",{style:{textAlign:"right"}},qe.default.createElement("div",{style:{fontSize:"18px",fontFamily:"monospace",fontWeight:"600",color:x.textPrimary}},R0(B.calls)),qe.default.createElement("div",{style:{fontSize:"11px",color:x.textMuted}},"calls")),qe.default.createElement("div",{style:{textAlign:"right"}},qe.default.createElement("div",{style:{fontSize:"18px",fontFamily:"monospace",fontWeight:"600",color:B.errors>0?x.error:x.textPrimary}},B.errors||0),qe.default.createElement("div",{style:{fontSize:"11px",color:x.textMuted}},"errors")),B.launchable&&qe.default.createElement("button",{onClick:I=>{I.stopPropagation(),k(B)},disabled:y===B.key,style:{padding:"8px 14px",fontSize:"13px",borderRadius:"6px",border:"none",background:y===B.key?x.borderLight:"#ef4444",color:y===B.key?x.textMuted:"#ffffff",cursor:y===B.key?"wait":"pointer",fontWeight:"500",whiteSpace:"nowrap"},title:`Start ${B.name} in a sandbox session`},y===B.key?"Starting\u2026":O?"Start another":"Start in sandbox"))),T&&qe.default.createElement(BCe,{server:B,colors:x,tone:K,onOpenTools:t}))})),A.length>0&&qe.default.createElement("div",{style:{marginTop:"24px",background:x.cardBg,borderRadius:"12px",border:`1px solid ${x.border}`,padding:"20px"}},qe.default.createElement("h3",{style:{fontSize:"16px",fontWeight:"600",color:x.textPrimary,margin:"0 0 12px 0"}},"Running sandboxes"),qe.default.createElement("div",{style:{display:"grid",gap:"8px"}},A.map(B=>qe.default.createElement("div",{key:B.session_id,style:{display:"flex",justifyContent:"space-between",gap:"12px",fontSize:"13px",color:x.textCell,flexWrap:"wrap"}},qe.default.createElement("span",{style:{fontFamily:"monospace"}},(B.mcp_servers||[]).join(", ")||B.sandbox_type),qe.default.createElement("span",{style:{color:x.textMuted}},B.status," \xB7 ",B.runs_count,"/",B.max_runs," runs \xB7 expires ",new Date(B.expires_at).toLocaleTimeString())))))))}function BCe({server:e,colors:t,tone:r,onOpenTools:n}){let o=({label:i,children:s})=>qe.default.createElement("div",{style:{display:"flex",gap:"12px",fontSize:"13px",alignItems:"baseline"}},qe.default.createElement("span",{style:{color:t.textMuted,minWidth:"120px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em"}},i),qe.default.createElement("span",{style:{color:t.textCell,flex:1,wordBreak:"break-word"}},s)),a=e.command||e.url;return qe.default.createElement("div",{style:{padding:"0 20px 20px 20px",display:"grid",gap:"10px"}},qe.default.createElement("div",{style:{height:"1px",background:t.borderLight,marginBottom:"4px"}}),a&&qe.default.createElement(o,{label:zCe.includes(e.transport)?"Endpoint":"Command"},qe.default.createElement("code",{style:{fontFamily:"monospace",fontSize:"12px",padding:"4px 8px",borderRadius:"4px",background:t.codeBg,display:"inline-block"}},a)),e.transport&&qe.default.createElement(o,{label:"Transport"},e.transport),e.categories?.length>0&&qe.default.createElement(o,{label:"Categories"},e.categories.join(", ")),e.requires_credentials?.length>0&&qe.default.createElement(o,{label:"Requires"},e.requires_credentials.join(", ")),qe.default.createElement(o,{label:e.tool_count>0?"Tools used":"Tools offered"},e.tools?.length>0?qe.default.createElement("span",{style:{display:"flex",gap:"6px",flexWrap:"wrap"}},e.tools.map(i=>qe.default.createElement("code",{key:i,style:{fontFamily:"monospace",fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r.bg,color:r.fg}},i))):qe.default.createElement("span",{style:{color:t.textMuted}},"none recorded")),e.agents?.length>0&&qe.default.createElement(o,{label:"Used by"},e.agents.join(", ")),e.configured_by?.length>0&&qe.default.createElement(o,{label:"Configured by"},e.configured_by.join(", ")),e.last_seen&&qe.default.createElement(o,{label:"Last call"},new Date(e.last_seen).toLocaleString()),qe.default.createElement("div",{style:{display:"flex",gap:"12px",marginTop:"4px",flexWrap:"wrap"}},e.docs_url&&qe.default.createElement("a",{href:e.docs_url,target:"_blank",rel:"noopener noreferrer",style:{fontSize:"13px",color:"#ef4444",textDecoration:"none"}},"Documentation \u2192"),e.calls>0&&n&&qe.default.createElement("button",{onClick:()=>n(e.key),style:{fontSize:"13px",color:"#ef4444",background:"none",border:"none",padding:0,cursor:"pointer"}},"View its tools \u2192")))}var re=Z(J());var yd=Z(J());var tA={logger:typeof console<"u"?console:void 0,WebSocket:typeof WebSocket<"u"?WebSocket:void 0},Fn={log(...e){this.enabled&&(e.push(Date.now()),tA.logger.log("[ActionCable]",...e))}},tb=()=>new Date().getTime(),eA=e=>(tb()-e)/1e3,rb=class{constructor(t){this.visibilityDidChange=this.visibilityDidChange.bind(this),this.connection=t,this.reconnectAttempts=0}start(){this.isRunning()||(this.startedAt=tb(),delete this.stoppedAt,this.startPolling(),addEventListener("visibilitychange",this.visibilityDidChange),Fn.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`))}stop(){this.isRunning()&&(this.stoppedAt=tb(),this.stopPolling(),removeEventListener("visibilitychange",this.visibilityDidChange),Fn.log("ConnectionMonitor stopped"))}isRunning(){return this.startedAt&&!this.stoppedAt}recordMessage(){this.pingedAt=tb()}recordConnect(){this.reconnectAttempts=0,delete this.disconnectedAt,Fn.log("ConnectionMonitor recorded connect")}recordDisconnect(){this.disconnectedAt=tb(),Fn.log("ConnectionMonitor recorded disconnect")}startPolling(){this.stopPolling(),this.poll()}stopPolling(){clearTimeout(this.pollTimeout)}poll(){this.pollTimeout=setTimeout((()=>{this.reconnectIfStale(),this.poll()}),this.getPollInterval())}getPollInterval(){let{staleThreshold:t,reconnectionBackoffRate:r}=this.constructor,n=Math.pow(1+r,Math.min(this.reconnectAttempts,10)),a=(this.reconnectAttempts===0?1:r)*Math.random();return t*1e3*n*(1+a)}reconnectIfStale(){this.connectionIsStale()&&(Fn.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${eA(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`),this.reconnectAttempts++,this.disconnectedRecently()?Fn.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${eA(this.disconnectedAt)} s`):(Fn.log("ConnectionMonitor reopening"),this.connection.reopen()))}get refreshedAt(){return this.pingedAt?this.pingedAt:this.startedAt}connectionIsStale(){return eA(this.refreshedAt)>this.constructor.staleThreshold}disconnectedRecently(){return this.disconnectedAt&&eA(this.disconnectedAt){(this.connectionIsStale()||!this.connection.isOpen())&&(Fn.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`),this.connection.reopen())}),200)}};rb.staleThreshold=6;rb.reconnectionBackoffRate=.15;var KQ={message_types:{welcome:"welcome",disconnect:"disconnect",ping:"ping",confirmation:"confirm_subscription",rejection:"reject_subscription"},disconnect_reasons:{unauthorized:"unauthorized",invalid_request:"invalid_request",server_restart:"server_restart",remote:"remote"},default_mount_path:"/cable",protocols:["actioncable-v1-json","actioncable-unsupported"]},{message_types:eb,protocols:f3}=KQ,FCe=f3.slice(0,f3.length-1),qQ=[].indexOf,nb=class{constructor(t){this.open=this.open.bind(this),this.consumer=t,this.subscriptions=this.consumer.subscriptions,this.monitor=new rb(this),this.disconnected=!0}send(t){return this.isOpen()?(this.webSocket.send(JSON.stringify(t)),!0):!1}open(){if(this.isActive())return Fn.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`),!1;{let t=[...f3,...this.consumer.subprotocols||[]];return Fn.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${t}`),this.webSocket&&this.uninstallEventHandlers(),this.webSocket=new tA.WebSocket(this.consumer.url,t),this.installEventHandlers(),this.monitor.start(),!0}}close({allowReconnect:t}={allowReconnect:!0}){if(t||this.monitor.stop(),this.isOpen())return this.webSocket.close()}reopen(){if(Fn.log(`Reopening WebSocket, current state is ${this.getState()}`),this.isActive())try{return this.close()}catch(t){Fn.log("Failed to reopen WebSocket",t)}finally{Fn.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`),setTimeout(this.open,this.constructor.reopenDelay)}else return this.open()}getProtocol(){if(this.webSocket)return this.webSocket.protocol}isOpen(){return this.isState("open")}isActive(){return this.isState("open","connecting")}triedToReconnect(){return this.monitor.reconnectAttempts>0}isProtocolSupported(){return qQ.call(FCe,this.getProtocol())>=0}isState(...t){return qQ.call(t,this.getState())>=0}getState(){if(this.webSocket){for(let t in tA.WebSocket)if(tA.WebSocket[t]===this.webSocket.readyState)return t.toLowerCase()}return null}installEventHandlers(){for(let t in this.events){let r=this.events[t].bind(this);this.webSocket[`on${t}`]=r}}uninstallEventHandlers(){for(let t in this.events)this.webSocket[`on${t}`]=function(){}}};nb.reopenDelay=500;nb.prototype.events={message(e){if(!this.isProtocolSupported())return;let{identifier:t,message:r,reason:n,reconnect:o,type:a}=JSON.parse(e.data);switch(this.monitor.recordMessage(),a){case eb.welcome:return this.triedToReconnect()&&(this.reconnectAttempted=!0),this.monitor.recordConnect(),this.subscriptions.reload();case eb.disconnect:return Fn.log(`Disconnecting. Reason: ${n}`),this.close({allowReconnect:o});case eb.ping:return null;case eb.confirmation:return this.subscriptions.confirmSubscription(t),this.reconnectAttempted?(this.reconnectAttempted=!1,this.subscriptions.notify(t,"connected",{reconnected:!0})):this.subscriptions.notify(t,"connected",{reconnected:!1});case eb.rejection:return this.subscriptions.reject(t);default:return this.subscriptions.notify(t,"received",r)}},open(){if(Fn.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`),this.disconnected=!1,!this.isProtocolSupported())return Fn.log("Protocol is unsupported. Stopping monitor and disconnecting."),this.close({allowReconnect:!1})},close(e){if(Fn.log("WebSocket onclose event"),!this.disconnected)return this.disconnected=!0,this.monitor.recordDisconnect(),this.subscriptions.notifyAll("disconnected",{willAttemptReconnect:this.monitor.isRunning()})},error(){Fn.log("WebSocket onerror event")}};var UCe=function(e,t){if(t!=null)for(let r in t){let n=t[r];e[r]=n}return e},m3=class{constructor(t,r={},n){this.consumer=t,this.identifier=JSON.stringify(r),UCe(this,n)}perform(t,r={}){return r.action=t,this.send(r)}send(t){return this.consumer.send({command:"message",identifier:this.identifier,data:JSON.stringify(t)})}unsubscribe(){return this.consumer.subscriptions.remove(this)}},g3=class{constructor(t){this.subscriptions=t,this.pendingSubscriptions=[]}guarantee(t){this.pendingSubscriptions.indexOf(t)==-1?(Fn.log(`SubscriptionGuarantor guaranteeing ${t.identifier}`),this.pendingSubscriptions.push(t)):Fn.log(`SubscriptionGuarantor already guaranteeing ${t.identifier}`),this.startGuaranteeing()}forget(t){Fn.log(`SubscriptionGuarantor forgetting ${t.identifier}`),this.pendingSubscriptions=this.pendingSubscriptions.filter((r=>r!==t))}startGuaranteeing(){this.stopGuaranteeing(),this.retrySubscribing()}stopGuaranteeing(){clearTimeout(this.retryTimeout)}retrySubscribing(){this.retryTimeout=setTimeout((()=>{this.subscriptions&&typeof this.subscriptions.subscribe=="function"&&this.pendingSubscriptions.map((t=>{Fn.log(`SubscriptionGuarantor resubscribing ${t.identifier}`),this.subscriptions.subscribe(t)}))}),500)}},h3=class{constructor(t){this.consumer=t,this.guarantor=new g3(this),this.subscriptions=[]}create(t,r){let n=t,o=typeof n=="object"?n:{channel:n},a=new m3(this.consumer,o,r);return this.add(a)}add(t){return this.subscriptions.push(t),this.consumer.ensureActiveConnection(),this.notify(t,"initialized"),this.subscribe(t),t}remove(t){return this.forget(t),this.findAll(t.identifier).length||this.sendCommand(t,"unsubscribe"),t}reject(t){return this.findAll(t).map((r=>(this.forget(r),this.notify(r,"rejected"),r)))}forget(t){return this.guarantor.forget(t),this.subscriptions=this.subscriptions.filter((r=>r!==t)),t}findAll(t){return this.subscriptions.filter((r=>r.identifier===t))}reload(){return this.subscriptions.map((t=>this.subscribe(t)))}notifyAll(t,...r){return this.subscriptions.map((n=>this.notify(n,t,...r)))}notify(t,r,...n){let o;return typeof t=="string"?o=this.findAll(t):o=[t],o.map((a=>typeof a[r]=="function"?a[r](...n):void 0))}subscribe(t){this.sendCommand(t,"subscribe")&&this.guarantor.guarantee(t)}confirmSubscription(t){Fn.log(`Subscription confirmed ${t}`),this.findAll(t).map((r=>this.guarantor.forget(r)))}sendCommand(t,r){let{identifier:n}=t;return this.consumer.send({command:r,identifier:n})}},y3=class{constructor(t){this._url=t,this.subscriptions=new h3(this),this.connection=new nb(this),this.subprotocols=[]}get url(){return WCe(this._url)}send(t){return this.connection.send(t)}connect(){return this.connection.open()}disconnect(){return this.connection.close({allowReconnect:!1})}ensureActiveConnection(){if(!this.connection.isActive())return this.connection.open()}addSubProtocol(t){this.subprotocols=[...this.subprotocols,t]}};function WCe(e){if(typeof e=="function"&&(e=e()),e&&!/^wss?:/i.test(e)){let t=document.createElement("a");return t.href=e,t.href=t.href,t.protocol=t.protocol.replace("http","ws"),t.href}else return e}function VQ(e=HCe("url")||KQ.default_mount_path){return new y3(e)}function HCe(e){let t=document.head.querySelector(`meta[name='action-cable-${e}']`);if(t)return t.getAttribute("content")}var rA=null;function qCe(){if(rA===null)try{rA=VQ()}catch{rA=!1}return rA||null}function $h(e,t,r,n=!0){let o=(0,yd.useRef)(null),a=(0,yd.useRef)(r);return(0,yd.useEffect)(()=>{a.current=r},[r]),(0,yd.useEffect)(()=>{if(!n||!e)return;let s=qCe();if(s)return o.current=s.subscriptions.create({channel:e,...t},{connected(){console.log(`[ActionCable] Connected to ${e}`,t)},disconnected(){console.log(`[ActionCable] Disconnected from ${e}`)},received(l){console.log(`[ActionCable] Received on ${e}:`,l),a.current&&a.current(l)},rejected(){console.warn(`[ActionCable] Subscription rejected for ${e}`)}}),()=>{o.current&&(console.log(`[ActionCable] Unsubscribing from ${e}`),o.current.unsubscribe(),o.current=null)}},[e,JSON.stringify(t),n]),{send:(0,yd.useCallback)((s,l)=>{o.current&&o.current.perform(s,l)},[])}}function Lh(e){return!e||typeof e!="object"||typeof e.type!="string"?null:{type:e.type,id:e.id??null,status:e.status??null}}var nA=[{id:"anthropic",name:"Anthropic",model:"claude-haiku-4-5",color:"bg-orange-500"},{id:"openai",name:"OpenAI",model:"gpt-4o",color:"bg-green-500"},{id:"ollama",name:"Ollama",model:"llama3.1:8b",color:"bg-purple-500"}],KCe={playwright_mcp:[{name:"Screenshot Example.com",task:"Take a screenshot of https://example.com",description:"Navigate to example.com and capture a screenshot"},{name:"Extract Hacker News Headlines",task:"Go to https://news.ycombinator.com and list the top 5 story titles with their scores",description:"Scrape the front page of Hacker News"},{name:"Check Wikipedia",task:"Navigate to https://en.wikipedia.org/wiki/Artificial_intelligence and extract the first paragraph",description:"Extract content from Wikipedia"},{name:"GitHub Trending",task:"Visit https://github.com/trending and list the top 3 trending repositories",description:"Check GitHub's trending repositories"}],comparison:[{name:"Explain Ruby Blocks",task:"Explain how Ruby blocks work with a simple example",description:"Compare how each model explains Ruby concepts"},{name:"Write a Haiku",task:"Write a haiku about programming",description:"Compare creative output across models"},{name:"Debug This Code",task:"What's wrong with this code? def add(a, b); a - b; end; puts add(2, 3)",description:"Compare debugging abilities"},{name:"Summarize AI",task:"Summarize the current state of AI in 3 sentences",description:"Compare factual knowledge and conciseness"}]},GQ={max_runs:10,timeout_seconds:300,session_duration_minutes:15};function v3({initialType:e="playwright_mcp",onClose:t,showAgents:r=!1}){let[n,o]=(0,re.useState)(e),[a,i]=(0,re.useState)(null),[s,l]=(0,re.useState)(""),[u,c]=(0,re.useState)([]),[d,p]=(0,re.useState)(null),[f,m]=(0,re.useState)(!1),[y,b]=(0,re.useState)(!1),[g,h]=(0,re.useState)(null),[v,x]=(0,re.useState)(null),[S,k]=(0,re.useState)(!1),[w,_]=(0,re.useState)(null),[A,C]=(0,re.useState)(!1),N=(0,re.useRef)(null),[L,Q]=(0,re.useState)(["anthropic"]),[B,K]=(0,re.useState)(!1),[T,O]=(0,re.useState)({}),[I,P]=(0,re.useState)([]),j=(0,re.useCallback)(async D=>{try{let G=await fetch(`/api/sandboxes/${D}`);if(!G.ok)return;let E=await G.json();i(E.sandbox),c(E.sandbox.runs||[])}catch(G){console.error("Could not refresh the sandbox session:",G)}},[]),M=(0,re.useCallback)(D=>{!Lh(D)||!a?.session_id||j(a.session_id)},[j,a?.session_id]);$h("SandboxChannel",{session_id:a?.session_id},M,!!a?.session_id),(0,re.useEffect)(()=>{Y(),W()},[n]);let W=async()=>{try{let D=await fetch("/api/usage");if(D.ok){let G=await D.json();_(G.usage)}}catch{console.log("Could not fetch usage (user may not be authenticated)")}};(0,re.useEffect)(()=>{if(!a?.expires_at)return;let D=setInterval(()=>{let G=new Date,E=new Date(a.expires_at),$=Math.max(0,Math.floor((E-G)/1e3));x($),$===0&&(i(ee=>({...ee,status:"expired"})),clearInterval(D))},1e3);return()=>clearInterval(D)},[a?.expires_at]),(0,re.useEffect)(()=>{N.current&&(N.current.scrollTop=N.current.scrollHeight)},[d?.result]);let Y=async()=>{b(!0),h(null);try{let D=await fetch("/api/sandboxes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox_type:n})});if(!D.ok)throw new Error("Failed to create sandbox session");let G=await D.json();i(G.sandbox),c([]),p(null)}catch(D){h(D.message)}finally{b(!1)}},z=async()=>{!s.trim()||f||!a||(B&&L.length>1?await q():await V(L[0]||"anthropic"))},V=async D=>{m(!0),p({status:"running",task:s,provider:D,result:"",started_at:new Date().toISOString()});try{let G=await fetch(`/api/sandboxes/${a.session_id}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task:s,provider:D})}),E=await G.json();if(G.status===402&&E.upgrade_required){_(E.usage),k(!0),p($=>({...$,status:"failed",error:E.message||"Plan limit reached"})),m(!1);return}if(!G.ok)throw new Error(E.error||"Task execution failed");E.usage&&_(E.usage),le(E.run_id)}catch(G){p(E=>({...E,status:"failed",error:G.message})),m(!1)}},q=async()=>{m(!0),P([...L]),O({});let D={};L.forEach(G=>{D[G]={status:"running",result:"",started_at:new Date().toISOString()}}),O(D);try{let G=await fetch("/api/sandboxes/compare",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task:s,providers:L,sandbox_id:a?.session_id,sandbox_type:n})});if(!G.ok){let $=await G.json();throw new Error($.error||"Comparison failed")}let E=await G.json();E.sandbox&&i(E.sandbox),oe(L,E.sandbox?.session_id||a?.session_id,E.sandbox?.runs_count??a?.runs_count??0)}catch(G){L.forEach(E=>{O($=>({...$,[E]:{status:"failed",error:G.message}}))}),m(!1),P([])}},oe=(D,G,E)=>{if(!G)return;let $=async()=>{try{let ee=await fetch(`/api/sandboxes/${G}`);if(!ee.ok)throw new Error(`HTTP ${ee.status}`);let F=await ee.json();i(F.sandbox);let me=F.sandbox.runs||[];c(me);let et=new Set;if(me.slice(E).forEach(rt=>{rt.provider&&(O(ge=>({...ge,[rt.provider]:{...rt,provider:rt.provider}})),(rt.status==="completed"||rt.status==="failed")&&et.add(rt.provider))}),D.every(rt=>et.has(rt))){m(!1),P([]);return}setTimeout($,1e3)}catch(ee){console.error("Comparison polling failed:",ee),m(!1),P([])}};setTimeout($,1e3)},Me=async()=>{if(a?.session_id)try{let G=await(await fetch(`/api/sandboxes/${a.session_id}`)).json();i(G.sandbox),c(G.sandbox.runs||[]),(G.sandbox.runs||[]).forEach(ee=>{ee.provider&&O(F=>({...F,[ee.provider]:{...ee,provider:ee.provider}}))}),L.every(ee=>{let F=T[ee];return F?.status==="completed"||F?.status==="failed"})&&(m(!1),P([]))}catch(D){console.error("Polling error:",D)}},fe=D=>{Q(G=>G.includes(D)?G.length===1?G:G.filter(E=>E!==D):[...G,D])},le=async D=>{let G=async()=>{try{let $=await(await fetch(`/api/sandboxes/${a.session_id}`)).json();i($.sandbox);let ee=$.sandbox.runs||[],F=ee[ee.length-1];if(F&&(p(F),c(ee),F.status==="completed"||F.status==="failed")){m(!1);return}setTimeout(G,1e3)}catch{m(!1)}};G()},R=D=>{D.key==="Enter"&&(D.metaKey||D.ctrlKey)&&z()},te=D=>{if(!D)return"--:--";let G=Math.floor(D/60),E=D%60;return`${G}:${E.toString().padStart(2,"0")}`},He=a?.status==="ready"&&a?.runs_count{C(!0);try{await Ph({planSlug:"pro",billingInterval:D})}catch(G){console.error("Checkout error:",G),h(G.message||"Failed to initiate checkout. Please try again."),C(!1)}};return re.default.createElement("div",{className:"h-full flex flex-col bg-gray-50"},r&&re.default.createElement("div",{className:"pb-6"},re.default.createElement(n0,{inline:!0})),re.default.createElement("div",{className:"bg-white border-b border-gray-200 px-6 py-4"},re.default.createElement("div",{className:"flex items-center justify-between"},re.default.createElement("div",{className:"flex items-center space-x-4"},re.default.createElement(In,{size:48,appearance:{hat:"fedora",hatAccessory:"theaterMasks",heldItem:"browser"}}),re.default.createElement("div",null,re.default.createElement("h1",{className:"text-xl font-semibold text-gray-900"},"PlaywrightMCP Demo"),re.default.createElement("p",{className:"text-sm text-gray-500"},"Try browser automation for free - no account required"))),re.default.createElement("div",{className:"flex items-center space-x-4"},a&&re.default.createElement("div",{className:"flex items-center space-x-3 text-sm"},re.default.createElement(ke,{tone:al(a.status)},a.status),re.default.createElement("span",{className:"text-gray-500"},a.runs_count,"/",a.max_runs," runs"),re.default.createElement("span",{className:`font-mono ${v<60?"text-red-500":"text-gray-500"}`},te(v))),t&&re.default.createElement("button",{onClick:t,className:"text-gray-400 hover:text-gray-600"},re.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},re.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))))),re.default.createElement("div",{className:"flex-1 p-6 overflow-hidden"},re.default.createElement("div",{className:"grid grid-cols-3 gap-6 h-full"},re.default.createElement("div",{className:"col-span-2 flex flex-col space-y-4"},re.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},re.default.createElement("textarea",{value:s,onChange:D=>l(D.target.value),onKeyDown:R,placeholder:"Describe what you want the browser agent to do...",rows:3,disabled:!He,className:"w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-rose-500 focus:border-transparent resize-none disabled:bg-gray-100"}),re.default.createElement("div",{className:"flex items-center justify-between mt-3"},re.default.createElement("span",{className:"text-xs text-gray-400"},"Press ",re.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Cmd")," + ",re.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Enter")," to run"),re.default.createElement("button",{onClick:z,disabled:!s.trim()||!He,className:`flex items-center space-x-2 px-6 py-2 rounded-lg transition-colors ${s.trim()&&He?"bg-rose-500 text-white hover:bg-rose-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},f?re.default.createElement(re.default.Fragment,null,re.default.createElement("span",{className:"animate-spin"},"\u25E0"),re.default.createElement("span",null,"Running...")):re.default.createElement(re.default.Fragment,null,re.default.createElement("span",null,"\u25B6"),re.default.createElement("span",null,"Run"))))),re.default.createElement("div",{className:"flex-1 bg-white rounded-xl border border-gray-200 flex flex-col overflow-hidden"},re.default.createElement("div",{className:"px-4 py-3 border-b border-gray-200 flex items-center justify-between"},re.default.createElement("h3",{className:"font-medium text-gray-900"},B&&Object.keys(T).length>0?"Comparison Results":"Output"),d&&!B&&re.default.createElement(ke,{tone:al(d.status)},d.status),B&&I.length>0&&re.default.createElement("span",{className:"text-xs text-blue-600"},"Running ",I.length," provider(s)...")),re.default.createElement("div",{ref:N,className:"flex-1 overflow-auto bg-gray-50"},y?re.default.createElement("div",{className:"flex items-center justify-center h-full text-gray-500 p-4"},re.default.createElement("span",{className:"animate-pulse"},"Starting sandbox...")):g?re.default.createElement("div",{className:"text-red-600 p-4"},g):B&&Object.keys(T).length>0?re.default.createElement("div",{className:"grid grid-cols-1 divide-y divide-gray-200"},L.map(D=>{let G=nA.find($=>$.id===D),E=T[D];return re.default.createElement("div",{key:D,className:"p-4"},re.default.createElement("div",{className:"flex items-center justify-between mb-2"},re.default.createElement("div",{className:"flex items-center space-x-2"},re.default.createElement("div",{className:`w-3 h-3 rounded-full ${G?.color||"bg-gray-400"}`}),re.default.createElement("span",{className:"font-medium text-gray-900"},G?.name||D),re.default.createElement("span",{className:"text-xs text-gray-500"},G?.model)),E&&re.default.createElement("div",{className:"flex items-center space-x-2"},re.default.createElement(ke,{tone:al(E.status)},E.status),E.tokens&&re.default.createElement("span",{className:"text-xs text-gray-500"},E.tokens," tokens"),E.duration_ms&&re.default.createElement("span",{className:"text-xs text-gray-500"},(E.duration_ms/1e3).toFixed(1),"s"))),re.default.createElement("div",{className:"bg-white rounded-lg border border-gray-200 p-3 font-mono text-sm max-h-48 overflow-auto"},E?.status==="running"?re.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},re.default.createElement("span",{className:"animate-pulse"},"\u25CF"),re.default.createElement("span",null,"Processing...")):E?.error?re.default.createElement("div",{className:"text-red-600"},E.error):E?.result?re.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},E.result):re.default.createElement("span",{className:"text-gray-400"},"Waiting...")))})):d?re.default.createElement("div",{className:"p-4 font-mono text-sm"},d.provider&&re.default.createElement("div",{className:"flex items-center space-x-2 mb-3 pb-2 border-b border-gray-200"},re.default.createElement("div",{className:`w-2 h-2 rounded-full ${nA.find(D=>D.id===d.provider)?.color||"bg-gray-400"}`}),re.default.createElement("span",{className:"text-sm text-gray-600"},nA.find(D=>D.id===d.provider)?.name||d.provider)),d.status==="running"?re.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},re.default.createElement("span",{className:"animate-pulse"},"\u25CF"),re.default.createElement("span",null,"Executing task...")):d.error?re.default.createElement("div",{className:"text-red-600"},re.default.createElement("div",{className:"font-semibold mb-2"},"Error:"),re.default.createElement("pre",{className:"whitespace-pre-wrap"},d.error)):re.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},d.result||"Processing...")):re.default.createElement("div",{className:"text-gray-400 text-center py-12"},re.default.createElement("p",{className:"mb-2"},"Select a sample task or enter your own"),re.default.createElement("p",{className:"text-xs"},B?`Compare results across ${L.length} providers`:"Task will execute using the selected provider"))))),re.default.createElement("div",{className:"space-y-4 overflow-auto"},re.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},re.default.createElement("div",{className:"flex items-center justify-between mb-3"},re.default.createElement("h4",{className:"font-medium text-gray-900"},"Providers"),re.default.createElement("label",{className:"flex items-center space-x-2 cursor-pointer"},re.default.createElement("input",{type:"checkbox",checked:B,onChange:D=>K(D.target.checked),className:"rounded border-gray-300 text-rose-500 focus:ring-rose-500"}),re.default.createElement("span",{className:"text-xs text-gray-600"},"Compare"))),re.default.createElement("div",{className:"space-y-2"},nA.map(D=>re.default.createElement("label",{key:D.id,className:`flex items-center justify-between p-2 rounded-lg border cursor-pointer transition-colors ${L.includes(D.id)?"border-rose-300 bg-rose-50":"border-gray-200 hover:bg-gray-50"}`},re.default.createElement("div",{className:"flex items-center space-x-3"},re.default.createElement("input",{type:"checkbox",checked:L.includes(D.id),onChange:()=>fe(D.id),className:"rounded border-gray-300 text-rose-500 focus:ring-rose-500"}),re.default.createElement("div",{className:`w-2 h-2 rounded-full ${D.color}`}),re.default.createElement("span",{className:"text-sm font-medium text-gray-900"},D.name)),re.default.createElement("span",{className:"text-xs text-gray-500"},D.model)))),B&&L.length>1&&re.default.createElement("div",{className:"mt-3 p-2 bg-purple-50 rounded-lg"},re.default.createElement("p",{className:"text-xs text-purple-700"},"Comparison mode: Run task on ",L.length," providers simultaneously"))),re.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},re.default.createElement("div",{className:"flex items-center justify-between mb-3"},re.default.createElement("h4",{className:"font-medium text-gray-900"},"Sample Tasks"),B&&re.default.createElement("button",{onClick:()=>o(n==="playwright_mcp"?"comparison":"playwright_mcp"),className:"text-xs text-rose-600 hover:text-rose-700"},n==="comparison"?"Browser Tasks":"Comparison Tasks")),re.default.createElement("div",{className:"space-y-2"},KCe[n]?.map((D,G)=>re.default.createElement("button",{key:G,onClick:()=>l(D.task),disabled:!He,className:"w-full text-left px-3 py-2 rounded-lg transition-colors border border-gray-200 hover:bg-gray-50 disabled:opacity-50"},re.default.createElement("div",{className:"font-medium text-sm text-gray-900"},D.name),re.default.createElement("div",{className:"text-xs text-gray-500 mt-0.5"},D.description))))),re.default.createElement("div",{className:"bg-gradient-to-br from-rose-50 to-purple-50 rounded-xl border border-rose-200 p-4"},re.default.createElement("h4",{className:"font-medium text-gray-900 mb-3"},w?.unlimited?"Unlimited":w?.plan==="free"?"Free Tier":`${w?.plan?.toUpperCase()||"FREE"} Plan`),w&&!w.unlimited&&w.runs_limit!=null&&re.default.createElement("div",{className:"mb-4"},re.default.createElement("div",{className:"flex justify-between text-sm mb-1"},re.default.createElement("span",{className:"text-gray-600"},"Agent Runs"),re.default.createElement("span",{className:`font-medium ${w.runs_remaining<=1?"text-rose-600":"text-gray-900"}`},w.runs_used," / ",w.runs_limit)),re.default.createElement("div",{className:"w-full bg-white rounded-full h-2 border border-rose-200"},re.default.createElement("div",{className:`h-2 rounded-full transition-all ${w.runs_remaining<=1?"bg-rose-500":"bg-emerald-500"}`,style:{width:`${Math.min(w.runs_used/w.runs_limit*100,100)}%`}})),w.runs_remaining<=1&&re.default.createElement("p",{className:"text-xs text-rose-600 mt-1"},w.runs_remaining===0?"Limit reached!":"Almost at limit!")),re.default.createElement("dl",{className:"space-y-2 text-sm"},re.default.createElement("div",{className:"flex justify-between"},re.default.createElement("dt",{className:"text-gray-500"},"Session Runs"),re.default.createElement("dd",{className:"text-gray-900"},a?.runs_count||0,"/",a?.max_runs||GQ.max_runs)),re.default.createElement("div",{className:"flex justify-between"},re.default.createElement("dt",{className:"text-gray-500"},"Timeout"),re.default.createElement("dd",{className:"text-gray-900"},GQ.timeout_seconds,"s per task"))),w?.plan==="free"&&re.default.createElement("div",{className:"mt-4 pt-4 border-t border-rose-200"},re.default.createElement("button",{onClick:()=>k(!0),className:"w-full text-center text-sm text-rose-600 hover:text-rose-700 font-medium"},"Upgrade to PRO \u2192"))),u.length>0&&re.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},re.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},re.default.createElement("h4",{className:"font-medium text-gray-900"},"Run History")),re.default.createElement("div",{className:"max-h-48 overflow-auto divide-y divide-gray-100"},u.slice().reverse().map((D,G)=>re.default.createElement("div",{key:D.id||G,className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>p(D)},re.default.createElement("div",{className:"flex items-center justify-between mb-1"},re.default.createElement(ke,{tone:al(D.status||"completed")},D.status||"completed"),re.default.createElement("span",{className:"text-xs text-gray-400"},D.tokens||0," tokens")),re.default.createElement("p",{className:"text-sm text-gray-600 truncate"},D.task))))),a?.status==="expired"&&re.default.createElement("button",{onClick:Y,className:"w-full px-4 py-3 bg-rose-500 text-white rounded-lg hover:bg-rose-600 transition-colors"},"Start New Session")))),S&&re.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},re.default.createElement("div",{className:"bg-white rounded-2xl max-w-4xl w-full overflow-hidden shadow-2xl max-h-[90vh] overflow-y-auto"},re.default.createElement("div",{className:"bg-gradient-to-r from-rose-500 to-purple-600 px-6 py-6 text-white text-center"},re.default.createElement("h2",{className:"text-2xl font-bold mb-1"},"Upgrade Your Plan"),re.default.createElement("p",{className:"text-rose-100 text-sm"},"You've used ",w?.runs_used||0," of ",w?.runs_limit||25," trial runs. Choose a plan to continue.")),re.default.createElement("div",{className:"p-6"},re.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},re.default.createElement("div",{className:"border border-gray-200 rounded-xl p-5"},re.default.createElement("div",{className:"text-center mb-4"},re.default.createElement("h3",{className:"font-semibold text-gray-900"},"Free"),re.default.createElement("div",{className:"mt-2"},re.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$0"),re.default.createElement("span",{className:"text-gray-500"},"/mo"))),re.default.createElement("ul",{className:"space-y-2 text-sm text-gray-600 mb-4"},re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"25 trial runs/month"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"Community support"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"Basic features")),re.default.createElement("button",{disabled:!0,className:"w-full py-2 px-4 border border-gray-300 text-gray-400 rounded-lg text-sm cursor-not-allowed"},"Current Plan")),re.default.createElement("div",{className:"border-2 border-rose-500 rounded-xl p-5 relative bg-rose-50"},re.default.createElement("div",{className:"absolute -top-3 left-1/2 transform -translate-x-1/2"},re.default.createElement("span",{className:"bg-rose-500 text-white text-xs font-semibold px-3 py-1 rounded-full"},"RECOMMENDED")),re.default.createElement("div",{className:"text-center mb-4 mt-2"},re.default.createElement("h3",{className:"font-semibold text-gray-900"},"Pro"),re.default.createElement("div",{className:"mt-2"},re.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$99"),re.default.createElement("span",{className:"text-gray-500"},"/mo")),re.default.createElement("p",{className:"text-xs text-gray-500 mt-1"},"or $995/year (save 16%)")),re.default.createElement("ul",{className:"space-y-2 text-sm text-gray-700 mb-4"},re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"10,000 agent runs/month"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Advanced cost tracking"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"25K traces/month"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Priority email support")),re.default.createElement("button",{onClick:()=>_e("monthly"),disabled:A,className:"w-full py-2 px-4 bg-rose-500 text-white rounded-lg text-sm font-semibold hover:bg-rose-600 transition-colors disabled:opacity-50"},A?"Loading...":"Upgrade to Pro")),re.default.createElement("div",{className:"border border-gray-200 rounded-xl p-5"},re.default.createElement("div",{className:"text-center mb-4"},re.default.createElement("h3",{className:"font-semibold text-gray-900"},"Enterprise"),re.default.createElement("div",{className:"mt-2"},re.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$269"),re.default.createElement("span",{className:"text-gray-500"},"/mo")),re.default.createElement("p",{className:"text-xs text-gray-500 mt-1"},"or $2,690/year (save 16%)")),re.default.createElement("ul",{className:"space-y-2 text-sm text-gray-600 mb-4"},re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Unlimited runs"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"500K traces/month"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"SSO & SOC2/HIPAA"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Dedicated support")),re.default.createElement("a",{href:"mailto:sales@activeagents.ai",className:"block w-full py-2 px-4 border border-gray-300 text-gray-700 rounded-lg text-sm font-semibold text-center hover:bg-gray-50 transition-colors"},"Contact Sales")))),re.default.createElement("div",{className:"px-6 py-4 bg-gray-50 border-t border-gray-100 flex justify-center"},re.default.createElement("button",{onClick:()=>k(!1),className:"text-gray-500 hover:text-gray-700 text-sm"},"Maybe later")))))}var ht=Z(J());var Mo=Z(J());var x3=["message","llm","tool","browser"];function oA(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function YQ(e={}){let t=[];return x3.forEach((r,n)=>{(e[r]||[]).forEach((o,a)=>{let i=oA(o?.start);if(i===null)return;let s=Math.max(0,Number(o.duration_ms)||0);t.push({entry:{...o,lane:r,startMs:i,endMs:i+s},laneIndex:n,index:a})})}),t.sort((r,n)=>r.entry.startMs-n.entry.startMs||r.laneIndex-n.laneIndex||r.index-n.index),t.map(({entry:r})=>r)}function XQ(e=[]){return e.filter(t=>t?.rrweb?.event_count>0&&oA(t.rrweb.first_at)!==null).map(t=>{let r=oA(t.rrweb.first_at);return{...t,startMs:r,endMs:Math.max(r,oA(t.rrweb.last_at)??r)}}).sort((t,r)=>t.startMs-r.startMs)}function ZQ(e=[],t=[]){return[...e.map(r=>[r.startMs,r.endMs]),...t.map(r=>[r.startMs,r.endMs])]}function JQ(e=[],{maxGapMs:t=1e4,gapMs:r=1e3,minSegmentMs:n=1e3}={}){let o=e.filter(([u,c])=>Number.isFinite(u)&&Number.isFinite(c)).map(([u,c])=>[u,Math.max(u,c)]).sort((u,c)=>u[0]-c[0]),a=[];for(let[u,c]of o){let d=a[a.length-1];d&&u-d[1]<=t?d[1]=Math.max(d[1],c):a.push([u,c])}let i=0,s=a.map(([u,c])=>{let d=Math.max(c,u+n),p={startMs:u,endMs:d,axisStart:i,axisEnd:i+(d-u)};return i=p.axisEnd+r,p}),l=s[s.length-1];return{segments:s,gapMs:r,totalMs:l?l.axisEnd:0,startMs:s[0]?.startMs??null,endMs:l?.endMs??null}}function QQ(e){return e.segments.slice(1).map((t,r)=>{let n=e.segments[r];return{axisStart:n.axisEnd,axisEnd:t.axisStart,skippedMs:t.startMs-n.endMs}})}function RQ(e,t){let{segments:r}=e;if(!r.length)return null;let n=Math.min(Math.max(t,0),e.totalMs);for(let o=0;ot<=n.axisEnd);return r===-1?Math.max(0,e.segments.length*2-2):t>=e.segments[r].axisStart?r*2:Math.max(0,r*2-1)}function b3(e,t){let r=0,n=e.length-1,o=-1;for(;r<=n;){let a=r+n>>1;e[a].startMs<=t?(o=a,r=a+1):n=a-1}return o}function tR(e,t,r){if(r>0)return e.find(n=>n.startMs>t)?.startMs??null;for(let n=e.length-1;n>=0;n-=1)if(e[n].startMst>=o.startMs&&t<=o.endMs);if(r)return r;let n=e.filter(o=>o.startMs<=t);return n[n.length-1]||e[0]}function nR(e,t){let r=Math.max(0,e.endMs-e.startMs);return te.endMs?{phase:"after",offsetMs:r}:{phase:"during",offsetMs:t-e.startMs}}function zh(e){let t=Math.max(0,Math.floor((Number(e)||0)/1e3)),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=String(t%60).padStart(2,"0");return r?`${r}:${String(n).padStart(2,"0")}:${o}`:`${n}:${o}`}function aA(e){let t=Math.max(0,Math.round((Number(e)||0)/1e3)),r=[["d",86400],["h",3600],["m",60],["s",1]],n=[],o=t;for(let[a,i]of r){let s=Math.floor(o/i);if(o-=s*i,(s||n.length)&&n.push(`${s}${a}`),n.length===2)break}return n.filter(a=>!a.startsWith("0")).join(" ")||"0s"}function w3(e){let t=String(e??"").replace(/\s+/g," ").trim();return t.length>140?`${t.slice(0,139)}\u2026`:t}function VCe(e){if(!e)return"";let t=Number(e.input??e.input_tokens)||0,r=Number(e.output??e.output_tokens)||0;return t||r?`${t} in / ${r} out`:""}function oR(e){switch(e?.lane){case"message":{let t=(e.tool_calls||[]).map(n=>n?.name||n?.function?.name).filter(Boolean),r=w3(e.content);return!r&&t.length?`${e.role} called ${t.join(", ")}`:e.role==="tool"?`${e.tool_name||"tool"} result: ${r}`:`${e.role}: ${r}`}case"llm":return[e.model||e.name||"model call",VCe(e.tokens)].filter(Boolean).join(" \xB7 ");case"tool":return`${e.name||"tool"}${e.error?" (failed)":""}`;case"browser":{let t=e.data||{};return e.kind==="console"?`console ${t.level||"log"}: ${w3(t.message??t.value)}`:e.kind==="marker"?`marker: ${w3(t.label??t.name??t.value)}`:t.tool_name||t.action_type||e.kind||"browser event"}default:return""}}function Bh(e){return e?e.error===!0?!0:["error","ERROR","failed"].includes(e.status):!1}function GCe(e=[]){return e.filter(t=>t?.kind==="rrweb").flatMap(t=>t.events||[]).filter(t=>t&&Number.isFinite(t.at)&&t.data&&typeof t.data=="object").map(t=>({...t.data,timestamp:t.at})).sort((t,r)=>t.timestamp-r.timestamp)}function YCe(e,t=null,r=50){let n=new URLSearchParams({kind:"rrweb",limit:String(r)});return t!=null&&n.set("after",String(t)),`/api/session_recordings/${encodeURIComponent(e)}/events?${n}`}async function aR(e,{fetchPage:t,onEvents:r,maxEvents:n=5e4,isCancelled:o=()=>!1}){let a=null,i=0;for(;;){let s=await t(YCe(e,a));if(o())return{count:i,truncated:!1};let l=GCe(s?.events);if(l.length&&(r(l,i===0),i+=l.length),!s?.has_more||s.next_after==null)return{count:i,truncated:!1};if(i>=n)return{count:i,truncated:!0};a=s.next_after}}var Uu=[{lane:"message",label:"messages",color:"var(--color-info)"},{lane:"llm",label:"model",color:"var(--color-token-out)"},{lane:"tool",label:"tools",color:"var(--color-warning)"},{lane:"browser",label:"browser",color:"var(--color-success)"}],ob=18,XCe=76,wf=(e,t)=>e.totalMs?t/e.totalMs*100:0,ZCe=(0,Mo.memo)(function({axis:t,entries:r,recordings:n}){let o=QQ(t);return Mo.default.createElement(Mo.default.Fragment,null,o.map(a=>Mo.default.createElement("div",{key:`gap-${a.axisStart}`,title:`${aA(a.skippedMs)} idle, shortened`,style:{position:"absolute",top:0,bottom:0,left:`${wf(t,a.axisStart)}%`,width:`${wf(t,a.axisEnd-a.axisStart)}%`,background:"repeating-linear-gradient(135deg, var(--color-muted) 0 4px, transparent 4px 8px)"}})),Uu.map((a,i)=>Mo.default.createElement(Mo.default.Fragment,{key:a.lane},a.lane==="browser"&&n.map(s=>{let l=vd(t,s.startMs);return Mo.default.createElement("div",{key:`recording-${s.id}`,title:`browser recording ${s.id}`,style:{position:"absolute",top:i*ob+7,height:4,borderRadius:2,left:`${wf(t,l)}%`,width:`${Math.max(wf(t,vd(t,s.endMs)-l),.3)}%`,background:a.color,opacity:.35}})}),r.filter(s=>s.lane===a.lane).map(s=>{let l=vd(t,s.startMs);return Mo.default.createElement("div",{key:s.id,style:{position:"absolute",top:i*ob+4,height:ob-8,borderRadius:2,left:`${wf(t,l)}%`,width:`max(3px, ${wf(t,vd(t,s.endMs)-l)}%)`,background:Bh(s)?"var(--color-error)":a.color}})}))))});function S3({axis:e,entries:t,recordings:r,position:n,onSeek:o}){let a=(0,Mo.useRef)(null),i=Uu.length*ob,s=u=>{let c=a.current?.getBoundingClientRect();if(!c?.width)return;let d=Math.min(Math.max((u.clientX-c.left)/c.width,0),1);o(d*e.totalMs)},l=u=>{let c=e.totalMs/100;if(u.key==="ArrowRight")o(n+c);else if(u.key==="ArrowLeft")o(n-c);else if(u.key==="Home")o(0);else if(u.key==="End")o(e.totalMs);else return;u.preventDefault()};return Mo.default.createElement("div",{"data-testid":"replay-scrubber",style:{display:"flex",gap:8}},Mo.default.createElement("div",{style:{width:XCe,flexShrink:0}},Uu.map(u=>Mo.default.createElement("div",{key:u.lane,style:{height:ob,display:"flex",alignItems:"center",gap:6,fontFamily:U,fontSize:10,color:"var(--color-text-muted)",textTransform:"uppercase"}},Mo.default.createElement("span",{style:{width:8,height:8,borderRadius:2,background:u.color}}),u.label))),Mo.default.createElement("div",{ref:a,role:"slider",tabIndex:0,"aria-label":"Session position","aria-valuemin":0,"aria-valuemax":Math.round(e.totalMs),"aria-valuenow":Math.round(n),onPointerDown:u=>{u.currentTarget.setPointerCapture?.(u.pointerId),s(u)},onPointerMove:u=>{u.buttons===1&&s(u)},onKeyDown:l,style:{position:"relative",flex:1,height:i,cursor:"pointer",borderRadius:6,overflow:"hidden",background:"var(--color-background)",border:"1px solid var(--color-border-light)",touchAction:"none"}},Mo.default.createElement(ZCe,{axis:e,entries:t,recordings:r}),Mo.default.createElement("div",{style:{position:"absolute",top:0,bottom:0,width:2,marginLeft:-1,pointerEvents:"none",left:`${wf(e,n)}%`,background:"var(--color-text-primary)"}})))}var ra=Z(J());var JCe=Object.fromEntries(Uu.map(e=>[e.lane,e])),QCe=(0,ra.memo)(function({entry:t,startMs:r,current:n,selected:o,onChoose:a,rowRef:i}){let s=JCe[t.lane],l=Bh(t);return ra.default.createElement("button",{type:"button",ref:i,"data-testid":"replay-entry","aria-current":n?"step":void 0,onClick:()=>a(t),style:{display:"flex",alignItems:"baseline",gap:10,width:"100%",textAlign:"left",cursor:"pointer",padding:"6px 12px",border:"none",borderLeft:`3px solid ${n?s.color:"transparent"}`,background:o?"var(--color-accent-ui-tint)":n?"var(--color-hover)":"transparent",fontFamily:"inherit"}},ra.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)",width:56,flexShrink:0}},zh(t.startMs-r)),ra.default.createElement("span",{style:{fontFamily:U,fontSize:10,textTransform:"uppercase",color:s.color,width:64,flexShrink:0}},s.label),ra.default.createElement("span",{style:{fontSize:13,color:l?"var(--color-error-text)":"var(--color-text-cell)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},oR(t)),t.duration_ms>0&&ra.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)",flexShrink:0}},Math.round(t.duration_ms),"ms"))}),iR=(0,ra.memo)(function({entries:t,startMs:r,currentId:n,selectedId:o,playing:a,onChoose:i}){let s=(0,ra.useRef)(null),l=(0,ra.useRef)(null);return(0,ra.useEffect)(()=>{let u=l.current,c=s.current;if(!a||!u||!c)return;let d=u.offsetTop;(dc.scrollTop+c.clientHeight)&&(c.scrollTop=Math.max(0,d-c.clientHeight/3))},[n,a]),t.length?ra.default.createElement("div",{ref:s,"data-testid":"replay-transcript",style:{maxHeight:460,overflowY:"auto",position:"relative"}},t.map(u=>ra.default.createElement(QCe,{key:u.id,entry:u,startMs:r,current:u.id===n,selected:u.id===o,onChoose:i,rowRef:u.id===n?l:void 0}))):ra.default.createElement("div",{style:{padding:20,fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"no entries in the lanes shown")});var Pi=Z(J());var RCe=Object.fromEntries(Uu.map(e=>[e.lane,e.label])),e2e={margin:0,padding:"8px 10px",borderRadius:8,background:"var(--color-background)",border:"1px solid var(--color-border-light)",fontFamily:U,fontSize:12,lineHeight:"18px",color:"var(--color-text-cell)",whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:220,overflow:"auto"};function t2e(e){return e==null||e===""?null:typeof e=="string"?e:JSON.stringify(e,null,2)}function r2e({label:e,value:t}){let r=t2e(t);return r==null?null:Pi.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:4}},Pi.default.createElement(Ue,{size:10},e),Pi.default.createElement("pre",{style:e2e},r))}function n2e(e){switch(e.lane){case"message":return[["content",e.content],["tool calls",e.tool_calls?.length?e.tool_calls:null]];case"llm":return[["model",[e.provider,e.model].filter(Boolean).join(" / ")],["finish reason",e.finish_reason],["tokens",e.tokens]];case"tool":return[["arguments",e.arguments],["result",e.result??e.detail]];case"browser":return[["event",e.data]];default:return[]}}function k3({entry:e}){return e?Pi.default.createElement("div",{"data-testid":"replay-entry-detail",style:{padding:14,display:"flex",flexDirection:"column",gap:10}},Pi.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Pi.default.createElement(ke,{tone:Bh(e)?"error":"muted"},RCe[e.lane]),e.role&&Pi.default.createElement(ke,{tone:"info"},e.role),(e.name||e.tool_name)&&e.lane!=="llm"&&Pi.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"}},e.name||e.tool_name),Pi.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"},title:e.start},new Date(e.startMs).toLocaleTimeString(),e.duration_ms>0?` \xB7 ${Math.round(e.duration_ms)}ms`:"")),e.trace_id&&Pi.default.createElement("div",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"trace ",e.trace_id),n2e(e).map(([t,r])=>Pi.default.createElement(r2e,{key:t,label:t,value:r}))):Pi.default.createElement("div",{style:{padding:16,fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"choose an entry to see it in full")}var uo=Z(J());var sR="action-agent-session-player",lR="/session_player",uR="allow-scripts allow-same-origin";function cR(e,t={}){return{...t,channel:sR,type:e}}function dR(e,t,r){return!!e&&t!=null&&e.source===t&&e.origin===r&&e.data?.channel===sR&&typeof e.data.type=="string"}async function a2e(e){let t=await fetch(e);if(!t.ok)throw new Error(`Could not load the browser recording (HTTP ${t.status})`);return t.json()}var i2e="the session player did not start",s2e={loading:"loading the browser recording\u2026",empty:"this recording has too few browser events to replay",truncated:"showing the start of a long recording"};function _3({recordings:e,time:t,sessionStartMs:r,playing:n,speed:o,seekVersion:a}){let i=(0,uo.useRef)(null),s=(0,uo.useRef)(null),[l,u]=(0,uo.useState)(!1),[c,d]=(0,uo.useState)(!1),[p,f]=(0,uo.useState)(null),[m,y]=(0,uo.useState)({state:"loading"}),b=rR(e,t),g=b?.id,h=p!==null&&p===s.current,v=b?nR(b,t):null,x=(w,_)=>{i.current?.contentWindow?.postMessage(cR(w,_),window.location.origin)};(0,uo.useEffect)(()=>{let w=_=>{if(!dR(_,i.current?.contentWindow,window.location.origin))return;let{type:A}=_.data;A==="ready"?d(!0):A==="loaded"?f(_.data.token):A==="error"&&y({state:"error",message:_.data.message})};return window.addEventListener("message",w),()=>window.removeEventListener("message",w)},[]),(0,uo.useEffect)(()=>{if(!l||c)return;let w=setTimeout(()=>y({state:"error",message:i2e}),5e3);return()=>clearTimeout(w)},[l,c]),(0,uo.useEffect)(()=>{if(!c||g==null)return;let w=!1,_=[],A=`${g}:${Date.now()}`;return s.current=A,f(null),y({state:"loading"}),aR(g,{fetchPage:a2e,isCancelled:()=>w,onEvents:C=>{if(_===null){x("append",{events:C});return}_=_.concat(C),!(_.length<2)&&(x("load",{events:_,token:A}),_=null)}}).then(({truncated:C})=>{w||y(_!==null?{state:"empty"}:{state:C?"truncated":"ready"})}).catch(C=>{w||y({state:"error",message:C.message})}),()=>{w=!0}},[c,g]);let S=v?.phase;(0,uo.useEffect)(()=>{!h||!v||x("seek",{offset:v.offsetMs,playing:n&&S==="during"})},[h,a,n,S]),(0,uo.useEffect)(()=>{h&&x("speed",{speed:o})},[h,o]);let k=m.state==="error"?m.message:S==="before"?`the browser recording starts at ${zh(b.startMs-r)}`:s2e[m.state];return uo.default.createElement("div",{"data-testid":"replay-browser",style:{display:"flex",flexDirection:"column",gap:8}},uo.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10}},uo.default.createElement(Ue,null,"browser"),b&&uo.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},b.name||`recording ${b.id}`,e.length>1?` \xB7 ${e.indexOf(b)+1} of ${e.length}`:""),k&&uo.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:m.state==="error"?"var(--color-error-text)":"var(--color-text-muted)"}},k)),uo.default.createElement("iframe",{ref:i,title:"Browser recording",src:Re(lR),sandbox:uR,referrerPolicy:"no-referrer",onLoad:()=>u(!0),style:{width:"100%",height:480,border:"1px solid var(--color-border-light)",borderRadius:10,background:"var(--color-background)",opacity:S==="before"?.4:1}}))}var Ta=Z(J());function C3(e){let[t,r]=(0,Ta.useState)(0),[n,o]=(0,Ta.useState)(!1),[a,i]=(0,Ta.useState)(1),[s,l]=(0,Ta.useState)(0),u=(0,Ta.useRef)(0),c=(0,Ta.useRef)(0),d=(0,Ta.useCallback)((y,b)=>{let g=Math.min(Math.max(y,0),e.totalMs),h=eR(e,g);return u.current=g,r(g),(b||h!==c.current)&&l(v=>v+1),c.current=h,g},[e]);(0,Ta.useEffect)(()=>{if(!n)return;let y=null,b=performance.now(),g=h=>{let v=d(u.current+(h-b)*a,!1);if(b=h,v>=e.totalMs){o(!1);return}y=requestAnimationFrame(g)};return y=requestAnimationFrame(g),()=>cancelAnimationFrame(y)},[n,a,e,d]);let p=(0,Ta.useCallback)(y=>d(y,!0),[d]),f=(0,Ta.useCallback)(()=>{!n&&u.current>=e.totalMs&&d(0,!0),o(!n)},[n,e,d]),m=(0,Ta.useCallback)(()=>o(!1),[]);return{position:t,playing:n,speed:a,seekVersion:s,seek:p,togglePlay:f,pause:m,setSpeed:i}}var l2e=[.5,1,2,4,8,16],u2e={context:"Conversation",run:"Run",scenario_result:"Evaluation replay",recording:"Recording"};function c2e(e,t){let r=encodeURIComponent(t);return e==="recording"?`/api/session_recordings/${r}/timeline`:`/api/sessions/${e}/${r}/timeline`}function d2e(e){return e.reduce((t,r)=>({...t,[r.lane]:(t[r.lane]||0)+1}),{})}function p2e({kind:e,id:t,timeline:r,onBack:n,handoff:o}){let a=(0,ht.useMemo)(()=>YQ(r.lanes),[r]),i=(0,ht.useMemo)(()=>XQ(r.recordings),[r]),s=(0,ht.useMemo)(()=>JQ(ZQ(a,i)),[a,i]),l=C3(s),{seek:u,pause:c}=l,[d,p]=(0,ht.useState)(()=>new Set(x3)),[f,m]=(0,ht.useState)(null),y=RQ(s,l.position)??s.startMs,b=(0,ht.useMemo)(()=>a.filter(N=>d.has(N.lane)),[a,d]),g=a[b3(a,y)]||null,h=b[b3(b,y)]?.id??null,v=a.find(N=>N.id===f)||g,x=(0,ht.useMemo)(()=>d2e(a),[a]),S=(0,ht.useCallback)(N=>{c(),m(N.id),u(vd(s,N.startMs))},[s,c,u]),k=N=>{let L=tR(b,y,N);L!==null&&(c(),m(null),u(vd(s,L)))},w=()=>{m(null),l.togglePlay()},_=N=>p(L=>{let Q=new Set(L);return Q.has(N)?Q.delete(N):Q.add(N),Q}),A=r.session||{},C=a.length===0&&i.length===0;return ht.default.createElement("div",{"data-testid":"session-replay",style:{display:"flex",flexDirection:"column",gap:16,maxWidth:1400}},ht.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:12,flexWrap:"wrap"}},ht.default.createElement("div",{style:{minWidth:0}},ht.default.createElement(ce,{variant:"ghost",size:"sm",onClick:n,style:{padding:"2px 0",marginBottom:6}},"<- Sessions"),ht.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},u2e[e]||"Session"," #",t),ht.default.createElement("div",{style:{marginTop:4,display:"flex",gap:12,flexWrap:"wrap",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},A.started_at&&ht.default.createElement("span",{title:A.started_at},"started ",new Date(A.started_at).toLocaleString()),s.startMs!==null&&ht.default.createElement("span",null,aA(s.endMs-s.startMs)," long"),ht.default.createElement("span",null,x.message||0," messages \xB7 ",x.llm||0," model calls \xB7 ",x.tool||0," tool calls"),i.length>0&&ht.default.createElement("span",null,"browser recorded"))),ht.default.createElement("div",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center"}},A.truncated&&ht.default.createElement(ke,{tone:"warning",title:"Each lane holds its earliest 2,000 entries"},"truncated"),o)),C?ht.default.createElement(je,{testId:"replay-empty"},ht.default.createElement("div",{style:{fontSize:14,color:"var(--color-text-primary)"}},"Nothing to replay yet."),ht.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)",marginTop:6}},"This session has no messages, model calls, tool calls or browser events.")):ht.default.createElement(ht.default.Fragment,null,ht.default.createElement(je,{padding:14,style:{display:"flex",flexDirection:"column",gap:12}},ht.default.createElement("div",{"data-testid":"replay-controls",style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},ht.default.createElement(ce,{size:"sm",testId:"replay-step-back",title:"Previous entry",onClick:()=>k(-1)},"|<"),ht.default.createElement(ce,{size:"sm",variant:"primary",testId:"replay-play",onClick:w,style:{minWidth:72}},l.playing?"Pause":"Play"),ht.default.createElement(ce,{size:"sm",testId:"replay-step-forward",title:"Next entry",onClick:()=>k(1)},">|"),ht.default.createElement("select",{"aria-label":"Playback speed",value:l.speed,onChange:N=>l.setSpeed(Number(N.target.value)),style:{padding:"6px 8px",borderRadius:8,fontFamily:U,fontSize:12,background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"}},l2e.map(N=>ht.default.createElement("option",{key:N,value:N},N,"x"))),ht.default.createElement("span",{"data-testid":"replay-clock",style:{marginLeft:8,fontFamily:U,fontSize:12,color:"var(--color-text-primary)"}},zh(y-s.startMs)),ht.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"},title:"Idle stretches longer than 10 seconds play as one second"},Number.isFinite(y)?new Date(y).toLocaleTimeString():"")),ht.default.createElement(S3,{axis:s,entries:a,recordings:i,position:l.position,onSeek:u})),ht.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 3fr) minmax(0, 2fr)",gap:16,alignItems:"start"}},ht.default.createElement(je,{padding:0,style:{overflow:"hidden"}},ht.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"10px 12px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},ht.default.createElement(Ue,{style:{marginRight:6}},"timeline"),Uu.map(N=>ht.default.createElement(jn,{key:N.lane,mono:!0,selected:d.has(N.lane),onClick:()=>_(N.lane)},N.label," ",x[N.lane]||0))),ht.default.createElement(iR,{entries:b,startMs:s.startMs,currentId:h,selectedId:f,playing:l.playing,onChoose:S})),ht.default.createElement(je,{padding:0},ht.default.createElement(k3,{entry:v}))),i.length>0&&ht.default.createElement(je,{padding:14},ht.default.createElement(_3,{recordings:i,time:y,sessionStartMs:s.startMs,playing:l.playing,speed:l.speed,seekVersion:l.seekVersion}))))}function A3({kind:e,id:t,onBack:r,onHandoff:n}){let[o,a]=(0,ht.useState)({status:"loading"}),[i,s]=(0,ht.useState)(!1);(0,ht.useEffect)(()=>{let c=!1;return a({status:"loading"}),fetch(c2e(e,t)).then(async d=>{if(c)return;if(d.status===404)return a({status:"missing"});let p=await d.json().catch(()=>({}));return d.ok?a({status:"ready",timeline:p.timeline||{}}):a({status:"error",message:p.error||`Could not load this session (HTTP ${d.status})`})}).catch(()=>{c||a({status:"error",message:"Could not load this session: the request did not complete"})}),e==="recording"&&fetch(`/api/session_recordings/${encodeURIComponent(t)}`).then(d=>d.ok?d.json():null).then(d=>{c||s(!!d?.recording?.handoff_state)}).catch(()=>{}),()=>{c=!0}},[e,t]);let l=async()=>{let c=await fetch(`/api/session_recordings/${encodeURIComponent(t)}/handoff`,{method:"POST",headers:{"Content-Type":"application/json"}});c.ok&&n?.(await c.json())};if(o.status==="ready")return ht.default.createElement(p2e,{kind:e,id:t,timeline:o.timeline,onBack:r,handoff:i&&ht.default.createElement(ce,{size:"sm",variant:"primary",testId:"replay-take-over",onClick:l},"Take over session")});let u=o.status==="loading"?"loading the session\u2026":o.status==="missing"?"This session does not exist, or you cannot open it.":o.message;return ht.default.createElement("div",{"data-testid":"session-replay",style:{display:"flex",flexDirection:"column",gap:12,maxWidth:1400}},ht.default.createElement(ce,{variant:"ghost",size:"sm",onClick:r,style:{padding:"2px 0",alignSelf:"flex-start"}},"<- Sessions"),ht.default.createElement(je,{testId:`replay-${o.status}`},ht.default.createElement("div",{style:{fontSize:13,color:o.status==="loading"?"var(--color-text-muted)":"var(--color-text-primary)"}},u)))}var dt=Z(J());function pR(){let e=0,t=r=>()=>r===e;return{next:()=>t(++e),latest:()=>t(e)}}var N3=[{value:"",label:"Every source"},{value:"dashboard",label:"Dashboard conversations"},{value:"evaluation",label:"Evaluation replays"},{value:"agent",label:"Agent browsers"}],T3=[{value:"",label:"Any outcome"},{value:"failed",label:"Failed or errored"},{value:"passed",label:"Passed"}],ab=Object.freeze({agentId:"",user:"",source:"",outcome:"",from:"",to:""}),mR={agentId:"agent_id",user:"user",source:"source",outcome:"outcome",from:"from",to:"to"},E3=/^(\d{4})-(\d{2})-(\d{2})$/,f2e={agentId:e=>/^\d+$/.test(e),user:e=>e==="me",source:e=>N3.some(t=>t.value&&t.value===e),outcome:e=>T3.some(t=>t.value&&t.value===e),from:e=>E3.test(e),to:e=>E3.test(e)};function iA(e={}){let t={...ab};for(let r of Object.keys(ab)){let n=String(e[r]??"");n&&f2e[r](n)&&(t[r]=n)}return t}function O3(e={}){return Object.values(iA(e)).some(Boolean)}function gR(e=""){let t=new URLSearchParams(e),r={};for(let[n,o]of Object.entries(mR))r[n]=t.get(o)||"";return iA(r)}function hR(e={}){let t=new URLSearchParams,r=iA(e);for(let[o,a]of Object.entries(mR))r[o]&&t.set(a,r[o]);let n=t.toString();return n?`?${n}`:""}function fR(e,t=0){let[,r,n,o]=e.match(E3);return new Date(Number(r),Number(n)-1,Number(o)+t).toISOString()}var yR=Object.freeze({openedFromSessions:!0});function vR(e){return e?.openedFromSessions===!0}function xR(e={},{before:t=null,perPage:r=25}={}){let n=iA(e),o=new URLSearchParams;return n.agentId&&o.set("agent_id",n.agentId),n.user&&o.set("user",n.user),n.source&&o.set("source",n.source),n.outcome&&o.set("outcome",n.outcome),n.from&&o.set("from",fR(n.from)),n.to&&o.set("to",fR(n.to,1)),o.set("per_page",String(r)),t&&o.set("before",t),`/api/sessions?${o}`}var bR={dashboard:{tone:"info",label:"conversation"},evaluation:{tone:"muted",label:"evaluation"},agent:{tone:"muted",label:"browser"}},m2e={failed:"error",passed:"success"},Fh={padding:"7px 10px",borderRadius:8,fontSize:13,fontFamily:"inherit",boxSizing:"border-box",background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"};async function wR(e,t){let r=await fetch(xR(e,{before:t})),n=await r.json().catch(()=>({}));if(!r.ok)throw new Error(n.error||`Could not load sessions (HTTP ${r.status})`);return n}function g2e(e){let t=[];return e.kind==="context"&&(t.push(`${e.message_count} message${e.message_count===1?"":"s"}`),e.recording_count&&t.push("browser recorded")),e.kind==="scenario_result"&&(e.evaluation?.name&&t.push(e.evaluation.name),e.model&&t.push(e.model)),e.kind==="recording"&&(t.push(`${e.event_count||0} events`),e.action_count&&t.push(`${e.action_count} actions`)),t.join(" \xB7 ")}function h2e({filters:e,onChange:t,agents:r,user:n}){let o=a=>i=>t({...e,[a]:i.target.value});return dt.default.createElement("div",{"data-testid":"sessions-filters",style:{display:"flex",gap:8,flexWrap:"wrap",alignItems:"center"}},dt.default.createElement("select",{"aria-label":"Agent",value:e.agentId,onChange:o("agentId"),style:Fh},dt.default.createElement("option",{value:""},"Every agent"),r.map(a=>dt.default.createElement("option",{key:a.id,value:String(a.id)},a.name))),n?.id!=null&&dt.default.createElement("select",{"aria-label":"Run by",value:e.user,onChange:o("user"),style:Fh},dt.default.createElement("option",{value:""},"Run by anyone"),dt.default.createElement("option",{value:"me"},"Run by me")),dt.default.createElement("select",{"aria-label":"Source",value:e.source,onChange:o("source"),style:Fh},N3.map(a=>dt.default.createElement("option",{key:a.value,value:a.value},a.label))),dt.default.createElement("select",{"aria-label":"Outcome",value:e.outcome,onChange:o("outcome"),style:Fh},T3.map(a=>dt.default.createElement("option",{key:a.value,value:a.value},a.label))),dt.default.createElement("label",{style:{display:"flex",alignItems:"center",gap:6,fontSize:12,color:"var(--color-text-secondary)"}},"From",dt.default.createElement("input",{type:"date","aria-label":"Active from",value:e.from,max:e.to||void 0,onChange:o("from"),style:Fh})),dt.default.createElement("label",{style:{display:"flex",alignItems:"center",gap:6,fontSize:12,color:"var(--color-text-secondary)"}},"To",dt.default.createElement("input",{type:"date","aria-label":"Active until",value:e.to,min:e.from||void 0,onChange:o("to"),style:Fh})),O3(e)&&dt.default.createElement(ce,{variant:"ghost",size:"sm",testId:"sessions-clear-filters",onClick:()=>t(ab)},"Clear filters"))}function y2e({session:e}){let t=dh(e.kind,e.id),r=bR[e.source]||bR.agent,n=g2e(e);return dt.default.createElement("a",{href:Re(t),"data-testid":"session-row",onClick:o=>{o.metaKey||o.ctrlKey||o.shiftKey||o.button!==0||(o.preventDefault(),lt(t,yR))},style:{display:"flex",alignItems:"center",gap:12,padding:"12px 16px",textDecoration:"none",borderTop:"1px solid var(--color-border-light)",color:"inherit"}},dt.default.createElement(ke,{tone:r.tone,style:{width:92,justifyContent:"center"}},r.label),dt.default.createElement("div",{style:{minWidth:0,flex:1}},dt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,minWidth:0}},dt.default.createElement("span",{style:{fontFamily:U,fontSize:13,fontWeight:600,color:"var(--color-text-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},e.title),e.agent&&dt.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",whiteSpace:"nowrap"}},e.agent.name)),e.preview&&dt.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-cell)",marginTop:2,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},e.preview),n&&dt.default.createElement("div",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)",marginTop:2}},n)),e.outcome&&dt.default.createElement(ke,{tone:m2e[e.outcome]||"muted"},e.outcome),dt.default.createElement("span",{title:e.last_activity_at,style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)",width:96,textAlign:"right",flexShrink:0}},wo(e.last_activity_at)),dt.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-info)",flexShrink:0}},"replay ->"))}function P3({agents:e=[],user:t=null}){let[r,n]=(0,dt.useState)(()=>gR(window.location.search)),[o,a]=(0,dt.useState)({sessions:[],total:0,nextBefore:null}),[i,s]=(0,dt.useState)("loading"),[l,u]=(0,dt.useState)(null),[c,d]=(0,dt.useState)(!1),[p,f]=(0,dt.useState)(null),[m,y]=(0,dt.useState)(0),[b]=(0,dt.useState)(pR);(0,dt.useEffect)(()=>{window.history.replaceState(window.history.state,"",`${window.location.pathname}${hR(r)}`);let v=b.next();return s("loading"),d(!1),f(null),wR(r,null).then(x=>{v()&&(a({sessions:x.sessions||[],total:x.total||0,nextBefore:x.next_before||null}),s("ready"))}).catch(x=>{v()&&(u(x.message),s("error"))}),()=>{b.next()}},[r,m]);let g=async()=>{let v=b.latest();d(!0),f(null);try{let x=await wR(r,o.nextBefore);if(!v())return;a(S=>({sessions:[...S.sessions,...x.sessions||[]],total:x.total??S.total,nextBefore:x.next_before||null}))}catch(x){v()&&f(x.message)}finally{v()&&d(!1)}},h=O3(r);return dt.default.createElement("div",{"data-testid":"sessions-view",style:{display:"flex",flexDirection:"column",gap:16,maxWidth:1200}},dt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},dt.default.createElement("div",null,dt.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Sessions"),dt.default.createElement("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},"Replay what an agent did: its messages, model calls and tool calls, and its browser when one was recorded.")),i==="ready"&&dt.default.createElement(Ue,null,o.total," session",o.total===1?"":"s")),dt.default.createElement(h2e,{filters:r,onChange:n,agents:e,user:t}),dt.default.createElement(je,{padding:0,testId:"sessions-list",style:{overflow:"hidden"}},i==="loading"&&dt.default.createElement(Jr,null,"loading sessions\u2026"),i==="error"&&dt.default.createElement("div",{style:{padding:20,display:"flex",alignItems:"center",gap:12,color:"var(--color-error-text)",fontSize:13}},l,dt.default.createElement(ce,{size:"sm",onClick:()=>y(v=>v+1)},"Retry")),i==="ready"&&o.sessions.length===0&&dt.default.createElement("div",{"data-testid":"sessions-empty",style:{padding:"32px 20px",textAlign:"center"}},h?dt.default.createElement(dt.default.Fragment,null,dt.default.createElement("div",{style:{fontSize:14,color:"var(--color-text-primary)"}},"No sessions match these filters."),dt.default.createElement(ce,{variant:"secondary",size:"sm",style:{marginTop:12},onClick:()=>n(ab)},"Clear filters")):dt.default.createElement(dt.default.Fragment,null,dt.default.createElement("div",{style:{fontSize:14,color:"var(--color-text-primary)"}},"No sessions yet."),dt.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)",marginTop:6}},"Every conversation in an agent's Run workbench and every evaluation replay appears here, ready to replay."))),i==="ready"&&o.sessions.map(v=>dt.default.createElement(y2e,{key:`${v.kind}-${v.id}`,session:v}))),i==="ready"&&o.nextBefore&&dt.default.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",gap:12}},p&&dt.default.createElement("span",{"data-testid":"sessions-load-more-error",role:"alert",style:{fontSize:13,color:"var(--color-error-text)"}},p),dt.default.createElement(ce,{size:"sm",testId:"sessions-load-more",onClick:g,disabled:c},c?"Loading\u2026":p?"Try again":"Load more")))}var Te=Z(J());var qt=Z(J());var v2e={personal:"Your key",host_resolver:"Organization key",organization:"Organization key",config:"Platform default",none:"Not configured"};function SR(e){return v2e[e]||null}function sA(e,t){return t?`${e}?scope=${encodeURIComponent(t)}`:e}function kR({set_by:e,updated_at:t}={},r=n=>new Date(n).toLocaleDateString()){let n=[];return e?.name&&n.push(`Set by ${e.name}`),t&&n.push(`${n.length?"updated":"Updated"} ${r(t)}`),n.length?n.join(" \xB7 "):null}var x2e="Setting your own host needs permission to manage the organization's keys.";function _R({editable:e=!0,scope:t,row:r={}}){let n=t==="personal"&&r.editable===!1;return{canChange:e&&!n,canRemove:e&&!!r.configured,note:e&&n&&r.host_based?x2e:null}}var AR={openai:{label:"OpenAI",icon:"\u{1F916}",placeholder:"sk-\u2026"},anthropic:{label:"Anthropic",icon:"\u{1F9E0}",placeholder:"sk-ant-\u2026"},openrouter:{label:"OpenRouter",icon:"\u{1F500}",placeholder:"sk-or-\u2026"},ollama:{label:"Ollama",icon:"\u{1F999}",placeholder:"http://localhost:11434/v1"}};function lA({onKeysChanged:e,onError:t,scope:r}){let[n,o]=(0,qt.useState)(null),[a,i]=(0,qt.useState)(""),[s,l]=(0,qt.useState)(""),[u,c]=(0,qt.useState)(!1),[d,p]=(0,qt.useState)({}),[f,m]=(0,qt.useState)(null);return{editingProvider:n,setEditingProvider:o,providerInput:a,setProviderInput:i,providerApiKeyInput:s,setProviderApiKeyInput:l,savingProvider:u,testResults:d,testingProvider:f,saveProviderKey:async(h,{hostBased:v=!1,clearApiKey:x=!1}={})=>{if(!(!a.trim()||u)){c(!0),t(null);try{let S={provider:h,credential:a.trim()};r&&(S.scope=r),v&&(s.trim()||x)&&(S.api_key=x?"":s.trim());let k=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(S)});if(!k.ok){let w=await k.json().catch(()=>({}));throw new Error(Array.isArray(w.error)?w.error.join(", "):"save failed")}o(null),i(""),l(""),p(w=>({...w,[h]:null})),hT(),await e()}catch(S){t(`Could not save the ${AR[h]?.label||h} credential${S.message!=="save failed"?`: ${S.message}`:"."}`)}finally{c(!1)}}},testProviderHost:async(h,{editing:v=!1}={})=>{if(!f){m(h),t(null);try{let x={provider:h};r&&(x.scope=r),v&&(a.trim()&&(x.credential=a.trim()),s.trim()&&(x.api_key=s.trim()));let S=await fetch("/api/provider_keys/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(x)}),k=await S.json().catch(()=>({}));if(!S.ok)throw new Error(k.error||"test failed");p(w=>({...w,[h]:k}))}catch(x){p(S=>({...S,[h]:{ok:!1,models:[],error:x.message}}))}finally{m(null)}}},removeProviderKey:async h=>{if(await Wr(r==="personal"?{title:"Remove your key?",message:"Your runs will use the organization's key, or the platform default.",confirmLabel:"Remove key",danger:!0}:{title:"Remove this provider credential?",message:"Runs fall back to the platform default credentials, or fail until a key is configured.",confirmLabel:"Remove credential",danger:!0}))try{if(!(await fetch(sA(`/api/provider_keys/${h}`,r),{method:"DELETE"})).ok)throw new Error("delete failed");p(S=>({...S,[h]:null})),hT(),await e()}catch{t("Could not remove the provider credential.")}}}}var CR={default:{title:"Provider API Keys",description:"Configure your own LLM provider credentials. Agent runs and evaluations on this account use these instead of the platform defaults. Keys are encrypted at rest."},organization:{title:"Provider Keys",description:"Shared by everyone in this organization. Agent runs and evaluations use these instead of the platform defaults. Keys are encrypted at rest."},personal:{title:"Your Provider Keys",description:"Your own credentials, used by the runs you start. Where you have none, the organization's key applies. Keys are encrypted at rest."}};function ib({providerKeys:e,editor:t,scope:r,editable:n=!0}){let{darkMode:o}=ut(),{editingProvider:a,setEditingProvider:i,providerInput:s,setProviderInput:l,providerApiKeyInput:u,setProviderApiKeyInput:c,savingProvider:d,testResults:p,testingProvider:f,saveProviderKey:m,testProviderHost:y,removeProviderKey:b}=t,g={backgroundColor:o?"#1f1f1f":"#ffffff",borderColor:o?"#2a2a2a":"#e5e7eb"},h=CR[r]||CR.default;return qt.default.createElement("div",{className:"border rounded-lg p-6",style:g},qt.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${o?"text-white":"text-gray-900"}`},h.title),qt.default.createElement("p",{className:`text-sm mb-4 ${o?"text-gray-400":"text-gray-500"}`},h.description),!n&&qt.default.createElement("p",{className:`text-sm mb-4 ${o?"text-gray-500":"text-gray-400"}`},"You can see these keys but not change them."),qt.default.createElement("div",{className:"space-y-4"},e.filter(({kind:v})=>v!=="connection").map(v=>{let{provider:x,host_based:S,configured:k,hint:w,api_key_configured:_,api_key_hint:A,platform_default:C}=v,N=AR[x]||{label:x,icon:"\u{1F511}",placeholder:""},L=a===x,Q=p[x],B=f===x,K=S&&(L?s.trim():k||C),T=k?S?`${w}${_?` \xB7 key ${A}`:""}`:`Configured (${w})`:S&&C?`Platform default: ${C}`:"Not configured",O=r==="personal"?SR(v.effective_source):null,{canChange:I,canRemove:P,note:j}=_R({editable:n,scope:r,row:v}),M=r==="organization"&&k?kR(v):null;return qt.default.createElement("div",{key:x,className:"p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},qt.default.createElement("div",{className:"flex items-center justify-between"},qt.default.createElement("div",{className:"flex items-center space-x-3"},qt.default.createElement("span",{className:"text-xl"},N.icon),qt.default.createElement("div",null,qt.default.createElement("p",{className:`font-medium ${o?"text-white":"text-gray-900"}`},N.label),qt.default.createElement("p",{className:`text-sm ${k?o?"text-green-400":"text-green-600":o?"text-gray-400":"text-gray-500"}`},T),M&&qt.default.createElement("p",{className:`text-xs ${o?"text-gray-500":"text-gray-400"}`,"data-testid":"provider-key-audit"},M)),O&&qt.default.createElement("span",{className:`px-2 py-0.5 rounded text-xs ${o?"bg-gray-700 text-gray-200":"bg-gray-200 text-gray-700"}`,"data-testid":"provider-key-source"},O)),(I||P)&&qt.default.createElement("div",{className:"flex items-center space-x-2"},I&&S&&!L&&K&&qt.default.createElement("button",{onClick:()=>y(x),disabled:B,className:`px-3 py-1 text-sm rounded disabled:opacity-50 ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},B?"Testing\u2026":"Test connection"),P&&!L&&qt.default.createElement("button",{onClick:()=>b(x),className:`px-3 py-1 text-sm rounded ${o?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},"Remove"),I&&qt.default.createElement("button",{onClick:()=>{i(L?null:x),l(!L&&S&&k?w:""),c("")},className:`px-3 py-1 text-sm rounded ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},L?"Cancel":k?"Update":"Configure"))),j&&qt.default.createElement("p",{className:`mt-2 text-xs ${o?"text-gray-500":"text-gray-400"}`,"data-testid":"provider-key-locked"},j),L&&qt.default.createElement("div",{className:"mt-3 space-y-2"},qt.default.createElement("div",{className:"flex items-center space-x-2"},qt.default.createElement("input",{type:S?"text":"password","data-aa-secret":S?void 0:"",value:s,onChange:W=>l(W.target.value),onKeyDown:W=>W.key==="Enter"&&m(x,{hostBased:S}),placeholder:S?N.placeholder:`${N.label} API key (${N.placeholder})`,"aria-label":S?`${N.label} host URL`:`${N.label} API key`,autoFocus:!0,className:`flex-1 px-3 py-2 border rounded-lg text-sm font-mono ${o?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),S&&qt.default.createElement("button",{onClick:()=>y(x,{editing:!0}),disabled:!s.trim()||B,className:`px-3 py-2 text-sm rounded-lg disabled:opacity-50 ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},B?"Testing\u2026":"Test"),qt.default.createElement("button",{onClick:()=>m(x,{hostBased:S}),disabled:!s.trim()||d,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 text-sm"},d?"Saving\u2026":"Save")),S&&qt.default.createElement("div",{className:"flex items-center space-x-2"},qt.default.createElement("input",{type:"password","data-aa-secret":"",value:u,onChange:W=>c(W.target.value),onKeyDown:W=>W.key==="Enter"&&m(x,{hostBased:S}),placeholder:_?`API key (stored: ${A} \u2014 type to replace)`:"API key (optional \u2014 only for remote servers that require one)","aria-label":`${N.label} API key`,className:`flex-1 px-3 py-2 border rounded-lg text-sm font-mono ${o?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),_&&qt.default.createElement("button",{onClick:()=>m(x,{hostBased:S,clearApiKey:!0}),disabled:!s.trim()||d,className:`px-3 py-2 text-sm rounded-lg disabled:opacity-50 ${o?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},"Clear key"))),S&&L&&qt.default.createElement("p",{className:`mt-2 text-xs ${o?"text-gray-500":"text-gray-400"}`},"Your Ollama server's address \u2014 the OpenAI-compatible /v1 path is added if you leave it off. Local: http://localhost:11434. Remote: a LAN host, a tunnel URL, or Ollama Cloud (https://ollama.com), which needs an API key. Test lists the models the server currently serves."),S&&Q&&qt.default.createElement("div",{className:"mt-2 text-xs rounded-lg px-3 py-2",role:"status",style:{backgroundColor:Q.ok?o?"rgba(74,222,128,0.1)":"#ecfdf5":o?"rgba(248,113,113,0.1)":"#fef2f2",color:Q.ok?o?"#4ade80":"#047857":o?"#f87171":"#b91c1c"}},Q.ok?qt.default.createElement(qt.default.Fragment,null,qt.default.createElement("span",{className:"font-medium"},"Connected")," ","to ",Q.host,typeof Q.latency_ms=="number"?` in ${Q.latency_ms} ms`:""," \xB7 ",Q.models.length===0?"no models pulled yet (run `ollama pull ` on the server)":`${Q.models.length} model${Q.models.length===1?"":"s"}`,Q.models.length>0&&qt.default.createElement("span",{className:"block mt-1 font-mono",style:{color:o?"#d1d5db":"#374151"}},Q.models.join(" \xB7 "))):qt.default.createElement(qt.default.Fragment,null,qt.default.createElement("span",{className:"font-medium"},"Not reachable.")," ",Q.error)))})))}async function ER(e=fetch){let t=await e("/api/telemetry_key",{cache:"no-store"});if(!t.ok)throw new Error(`Could not load the telemetry key (HTTP ${t.status})`);return(await t.json().catch(()=>null))?.telemetry_api_key||null}var uA=e=>e==null?"0":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString();function M3({account:e,user:t,subscription:r,agentCount:n=0}){let{darkMode:o}=ut(),[a,i]=(0,Te.useState)(null),[s,l]=(0,Te.useState)(!1),[u,c]=(0,Te.useState)(!1),[d,p]=(0,Te.useState)({status:"idle",value:null,error:null}),[f,m]=(0,Te.useState)(!1),[y,b]=(0,Te.useState)(null),[g,h]=(0,Te.useState)(null),[v,x]=(0,Te.useState)([]),[S,k]=(0,Te.useState)(!1),[w,_]=(0,Te.useState)(null),A=window.ACTIVE_AGENT_DASHBOARD?.meta?.memberInviteUrl;(0,Te.useEffect)(()=>{fetch("/api/usage").then(M=>M.ok?M.json():null).then(M=>i(M?.usage||null)).catch(()=>i(null)),fetch("/api/members").then(M=>M.ok?M.json():null).then(M=>h(M?.members||[])).catch(()=>h([]))},[]);let C=(0,Te.useCallback)(async()=>{try{let M=await fetch("/api/provider_keys?scope=organization");if(!M.ok)throw new Error("load failed");let W=await M.json();x(W.provider_keys||[]),k(!!W.can_manage_organization_keys),_(null)}catch{_("Could not load the organization's provider keys.")}},[]);(0,Te.useEffect)(()=>{C()},[C]);let N=lA({onKeysChanged:C,onError:_,scope:"organization"}),L=async()=>{m(!0),b(null);try{await Ph({planSlug:"pro"})}catch(M){b(M.message),m(!1)}},Q=async()=>{if(d.status==="ready")return d.value;p({status:"loading",value:null,error:null});try{let M=await ER();return p({status:"ready",value:M,error:null}),M}catch(M){return p({status:"error",value:null,error:M.message}),null}},B=async()=>{u?c(!1):await Q()&&c(!0)},K=async()=>{let M=await Q();if(M)try{await navigator.clipboard.writeText(M),l(!0),setTimeout(()=>l(!1),2e3)}catch{}},T=d.status==="ready"&&!d.value,O={backgroundColor:o?"#1f1f1f":"#ffffff",borderColor:o?"#2a2a2a":"#e5e7eb"},I=r?.plan_name||"Free",P={free:{seats:1,workspaces:1,agents:3,traces:"250/mo trial"},pro:{seats:5,workspaces:3,agents:"Unlimited",traces:"25,000/mo"},enterprise:{seats:"Unlimited",workspaces:"Unlimited",agents:"Unlimited",traces:"500,000+/mo"}},j=P[I.toLowerCase()]||P.free;return Te.default.createElement("div",{className:"p-6 space-y-6"},Te.default.createElement("div",null,Te.default.createElement("h2",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},"Organization"),Te.default.createElement("p",{className:`mt-1 ${o?"text-gray-400":"text-gray-500"}`},"Manage your workspace, team, and billing")),Te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6"},Te.default.createElement("div",{className:"border rounded-lg p-6",style:O},Te.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${o?"text-white":"text-gray-900"}`},"Workspace"),Te.default.createElement("div",{className:"space-y-3"},Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Name"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},e?.name||"My Workspace")),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Owner"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},t?.email||"you@example.com")),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Created"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},e?.created_at?new Date(e.created_at).toLocaleDateString():"Today")))),Te.default.createElement("div",{className:"border rounded-lg p-6",style:O},Te.default.createElement("div",{className:"flex items-center justify-between mb-4"},Te.default.createElement("h3",{className:`text-lg font-semibold ${o?"text-white":"text-gray-900"}`},"Current Plan"),Te.default.createElement("span",{className:"px-3 py-1 bg-red-100 text-red-700 rounded-full text-sm font-medium"},I)),Te.default.createElement("div",{className:"space-y-3"},Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Team Seats"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},j.seats)),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Workspaces"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},j.workspaces)),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Agents"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},j.agents)),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Traces"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},j.traces))),I.toLowerCase()!=="enterprise"&&Te.default.createElement(Te.default.Fragment,null,Te.default.createElement("button",{onClick:L,disabled:f,className:"mt-4 w-full px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},f?"Redirecting to checkout\u2026":"Upgrade Plan"),y&&Te.default.createElement("p",{className:"mt-2 text-sm text-red-500 text-center"},y)))),Te.default.createElement("div",{className:"border rounded-lg p-6",style:O},Te.default.createElement("div",{className:"flex items-center justify-between mb-4"},Te.default.createElement("h3",{className:`text-lg font-semibold ${o?"text-white":"text-gray-900"}`},"Team Members"),A&&Te.default.createElement("a",{href:A,className:"px-4 py-2 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors"},"+ Invite Member")),Te.default.createElement("div",{className:"overflow-hidden"},Te.default.createElement("table",{className:"min-w-full"},Te.default.createElement("thead",null,Te.default.createElement("tr",{className:o?"border-b border-gray-700":"border-b border-gray-200"},Te.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${o?"text-gray-400":"text-gray-500"}`},"Member"),Te.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${o?"text-gray-400":"text-gray-500"}`},"Role"))),Te.default.createElement("tbody",null,(g||[]).map(M=>Te.default.createElement("tr",{key:M.id??M.email},Te.default.createElement("td",{className:"py-3 px-4"},Te.default.createElement("div",{className:"flex items-center space-x-3"},Te.default.createElement("div",{className:"w-8 h-8 bg-red-100 rounded-full flex items-center justify-center"},Te.default.createElement("span",{className:"text-red-600 font-medium text-sm"},(M.name||M.email||"?").charAt(0).toUpperCase())),Te.default.createElement("div",null,Te.default.createElement("p",{className:`font-medium ${o?"text-white":"text-gray-900"}`},M.name||M.email,M.id!=null&&M.id===t?.id&&Te.default.createElement("span",{className:`ml-2 text-xs ${o?"text-gray-500":"text-gray-400"}`},"(you)")),M.name&&M.email&&Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},M.email)))),Te.default.createElement("td",{className:"py-3 px-4"},M.role?Te.default.createElement("span",{className:"px-2 py-1 bg-purple-100 text-purple-700 rounded text-sm"},String(M.role).charAt(0).toUpperCase()+String(M.role).slice(1)):Te.default.createElement("span",{className:o?"text-gray-500":"text-gray-400"},"\u2014")))))))),Te.default.createElement("div",{className:"space-y-2"},w&&Te.default.createElement("p",{className:"text-sm text-red-500",role:"alert"},w),Te.default.createElement(ib,{providerKeys:v,editor:N,scope:"organization",editable:S})),Te.default.createElement("div",{className:"border rounded-lg p-6",style:O},Te.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${o?"text-white":"text-gray-900"}`},"Usage This Month"),Te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4"},Te.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},Te.default.createElement("p",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},n),Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},"Agents")),Te.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},Te.default.createElement("p",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},uA(a?.traces_used),a?.traces_limit>0&&Te.default.createElement("span",{className:`text-sm font-normal ${o?"text-gray-500":"text-gray-400"}`}," / ",uA(a.traces_limit))),Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},"Traces")),Te.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},Te.default.createElement("p",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},uA(a?.runs_used)),Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},"Executions")),Te.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},Te.default.createElement("p",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},uA(a?.tokens_used)),Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},"Tokens")))),Te.default.createElement("div",{className:"border rounded-lg p-6",style:O},Te.default.createElement("h3",{className:`text-lg font-semibold mb-1 ${o?"text-white":"text-gray-900"}`},"Telemetry"),Te.default.createElement("p",{className:`text-sm mb-4 ${o?"text-gray-400":"text-gray-500"}`},"Send traces from your own ActiveAgent app to this workspace. Add this to your"," ",Te.default.createElement("code",{className:`px-1 rounded text-xs ${o?"bg-gray-800 text-gray-300":"bg-gray-100 text-gray-700"}`},"config/active_agent.yml"),":"),Te.default.createElement("pre",{className:`text-xs rounded-lg p-4 overflow-x-auto mb-4 ${o?"bg-black text-gray-300":"bg-gray-900 text-gray-100"}`},`telemetry: enabled: true endpoint: ${window.location.origin}/v1/traces - api_key: <%= ENV["ACTIVEAGENTS_API_KEY"] %>`),Te.default.createElement("div",{className:"flex items-center justify-between gap-3"},Te.default.createElement("div",{className:"min-w-0 flex-1"},Te.default.createElement("p",{className:`text-xs uppercase tracking-wide mb-1 ${o?"text-gray-500":"text-gray-400"}`},"API Key"),Te.default.createElement("code",{"data-testid":"telemetry-key","data-aa-secret":"",className:`block truncate text-sm font-mono px-3 py-2 rounded-lg border ${o?"bg-gray-900 border-gray-700 text-gray-300":"bg-gray-50 border-gray-200 text-gray-700"}`},N?"Not available":u?d.value:"\u2022".repeat(24))),Te.default.createElement("div",{className:"flex gap-2 flex-shrink-0 self-end"},Te.default.createElement("button",{onClick:B,disabled:N||d.status==="loading",className:"px-3 py-2 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},u?"Hide":"Show"),Te.default.createElement("button",{onClick:K,disabled:N||d.status==="loading",className:"px-3 py-2 text-sm bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},s?"Copied!":"Copy"))),d.error&&Te.default.createElement("p",{role:"alert",className:"mt-2 text-sm text-red-500"},d.error)))}var Oe=Z(J());var Ke=Z(J());var h2e=/^[A-Za-z_][A-Za-z0-9_]*$/,y2e=/^(?:PORT|DATABASE_URL|RUBYOPT|RUBYLIB|LD_PRELOAD|PATH|NODE_OPTIONS)$|_DATABASE_URL$|^ACTION_AGENT_SANDBOX_|^DYLD_|^BUNDLE_|^GIT_/,v2e={OPENAI_API_KEY:"openai",ANTHROPIC_API_KEY:"anthropic",OPENROUTER_API_KEY:"openrouter"},x2e=["sk_live_","rk_live_"],AR=8,ER=2e3;function uA(e){return e?h2e.test(e)?y2e.test(e)?`${e} is set by the sandbox or changes how code is loaded, so a project cannot set it.`:null:"Use letters, digits and _ only, not starting with a digit.":"Name the variable."}function cA(e,t){let r=[],n=typeof t=="string"?t:"";return x2e.some(o=>n.startsWith(o))&&r.push({code:"live_credential",message:"This looks like a live-mode key. A sandbox runs the repository's code with it: use a test-mode key."}),n.length>0&&n.lengthn.name));return e.map(n=>({name:n.name,required:!!n.required,sources:n.sources||[],description:n.description||null,organizationKey:n.organization_key||v2e[n.name]||null,set:r.has(n.name)||!!n.set,value:"",useOrganizationKey:!1,consent:!1}))}function NR(e,t){return[...e,...ib([{name:t}])]}function TR({name:e,edited:t,fullName:r}){return t?e:r}function sb(e){return e.flatMap(t=>t.useOrganizationKey?[{name:t.name,source:"organization_key",consent:t.consent===!0}]:t.value?[{name:t.name,value:t.value}]:[])}function Fh(e){for(let t of e){let r=uA(t.name);if(r&&(t.value||t.useOrganizationKey))return r;if(t.useOrganizationKey&&!t.consent)return`Confirm that ${t.name}'s organization key may be read by the repository's code.`}return null}function OR({github:e,repositories:t,reconnectRequired:r=!1,pendingApproval:n=!1}={}){return e?e.mode==="none"?"not_configured":e.connected?r?"reconnect_required":n?"pending_approval":t==null?"loading":t.length===0?"empty":"ready":"not_connected":"loading"}function M3(e){return/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(e||"")}function b2e(e){return(e?.items||[]).filter(t=>t.blocking&&!t.ok)}function PR({capabilities:e,preflight:t,secretsProblem:r}={}){if(!e)return"Checking what this dashboard can do\u2026";let n=b2e(e);return n.length>0?`Fix first: ${n.map(o=>o.label).join(", ")}.`:t?t.status==="unsupported"?t.summary:r||null:"Pick a repository."}var dA={supported:"success",bootstrap:"info",unsupported:"error"};function MR(e){return e==="checkout"?"Checkout":e==="preflight"?"Preflight":e==="setup"?"Setup":/^bundle_/.test(e)?"Bundle":/^(add|install)_/.test(e)?"Install":/_build$/.test(e)?"Assets":e==="db_prepare"?"Database":e==="manifest"?"Manifest":e==="start"||e==="server"?"Start and start URL":"Step"}function IR(e){if(e==null||Number.isNaN(Number(e)))return"\u2014";let t=Number(e);if(t<1e3)return`${Math.round(t)}ms`;if(t<6e4)return`${(t/1e3).toFixed(1)}s`;let r=Math.floor(t/6e4),n=Math.round(t%6e4/1e3);return`${r}m ${String(n).padStart(2,"0")}s`}var DR={succeeded:"success",failed:"error",running:"info",skipped:"muted",pending:"muted"};function jR(e){return e?.sandbox_state==="booting"}function wf(e){return e==null?"/projects/new":`/projects/${e}`}function lb(e=""){if(/^\/projects\/new\/?$/.test(e))return{creating:!0};let t=e.match(/^\/projects\/(\d+)/);return t?{projectId:t[1]}:{}}var $R=["overview","explorations","environment","browser","sessions"];function LR(e=""){let t=new URLSearchParams(e).get("tab");return $R.includes(t)?t:"overview"}function zR(e="",t="overview"){let r=new URLSearchParams(e);t==="overview"||!$R.includes(t)?r.delete("tab"):r.set("tab",t);let n=r.toString();return n?`?${n}`:""}function pA(e){if(!e?.project?.id)return null;let t=wf(e.project.id);return e.browser?.status==="running"?`${t}?tab=browser`:t}function BR(e,t=[]){return e?.sandbox_state!=="ready"||!e.sandbox?.session_id||t.length===0?null:e.sandbox.browser?.status==="running"?{label:"Watch live",watch:!0}:{label:"Open browser",watch:!1}}var Mn=Z(J());function Sf({sandbox:e,modes:t,watchOnOpen:r=!1,onChange:n}){let{darkMode:o}=ut(),[a,i]=(0,Mn.useState)(e.browser||null),[s,l]=(0,Mn.useState)(!1),[u,c]=(0,Mn.useState)(null),[d,p]=(0,Mn.useState)(null),f=`/api/sandboxes/${encodeURIComponent(e.session_id)}/browser`;(0,Mn.useEffect)(()=>{i(e.browser||null)},[e.browser?.status,e.browser?.started_at,e.browser?.live_url]);let m=async(k,A,C)=>{c(k),p(null);try{let T=await fetch(f,A),$=await T.json().catch(()=>({}));if($.browser&&(i($.browser),n?.($.browser)),!T.ok)throw new Error($.message||ot($,`${C} (HTTP ${T.status}).`))}catch(T){p(T.message)}finally{c(null)}},y=()=>m("start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(KX({inWindow:s,modes:t}))},"Could not start the browser"),b=()=>m("stop",{method:"DELETE"},"Could not stop the browser"),g=o?"text-gray-400":"text-gray-500",h=o?"text-white":"text-gray-900",v=o?"border-gray-700":"border-gray-200",x=`px-3 py-1 text-sm rounded disabled:opacity-50 ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,S=HX(a),_=qX(a),w=a?.status==="running";return Mn.default.createElement("div",{className:`mt-2 p-3 rounded-lg border space-y-3 ${v}`},Mn.default.createElement("div",{className:"flex flex-wrap items-center justify-between gap-2"},Mn.default.createElement("div",{className:"flex items-center gap-2"},Mn.default.createElement("p",{className:`text-sm font-medium ${h}`},"Browser"),S&&Mn.default.createElement(Ks,{tone:S.tone},S.label)),_?Mn.default.createElement("button",{type:"button",onClick:b,disabled:u!==null,className:x},u==="stop"?"Stopping\u2026":"Stop browser"):Mn.default.createElement("div",{className:"flex items-center gap-3"},t.includes("headed")&&Mn.default.createElement("label",{className:`flex items-center gap-1 text-xs ${g}`},Mn.default.createElement("input",{type:"checkbox",checked:s,onChange:k=>l(k.target.checked),disabled:u!==null}),"Open a window on this machine"),Mn.default.createElement("button",{type:"button",onClick:y,disabled:u!==null,className:x},u==="start"?"Starting\u2026":"Start browser"))),d&&Mn.default.createElement("p",{className:`text-xs ${o?"text-red-400":"text-red-600"}`,role:"alert"},d),!_&&!d&&Mn.default.createElement("p",{className:`text-xs ${g}`},"A browser of this sandbox's own, opened on its app and recorded. Agent runs against the sandbox can drive it."),w&&a.server_key&&Mn.default.createElement("p",{className:`text-xs ${g}`},"Runs against this sandbox reach it as ",Mn.default.createElement("code",{className:"font-mono"},a.server_key),"."),w&&a.live_url&&Mn.default.createElement(w0,{key:a.started_at,sessionId:e.session_id,headed:a.mode==="headed",watchOnOpen:r}),w&&!a.live_url&&Mn.default.createElement("p",{className:`text-xs ${g}`},"This browser has no live view to watch."))}var tr=Z(J());var un=Z(J());function FR(e,t=""){let r=t.toLowerCase();return(e||[]).filter(n=>n.full_name.toLowerCase().includes(r))}function fA(e,t){let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r}var UR={loading:"Loading repositories\u2026",not_configured:"GitHub is not configured on this dashboard.",not_connected:"Connect GitHub to pick a repository.",reconnect_required:"GitHub rejected the stored token. Reconnect GitHub to list repositories again.",pending_approval:"The GitHub installation is waiting for an owner of the account to approve it. Check again once it is approved.",empty:"This GitHub connection reaches no repositories yet."};function kf({repositories:e,selection:t,onToggle:r,filter:n,onFilterChange:o,mode:a="multiple",selected:i=null,onSelect:s,state:l="ready",settingsHref:u,missingRepositoryUrl:c,onRefresh:d,onTypeName:p,typedNameError:f}){let{darkMode:m}=ut(),[y,b]=(0,un.useState)(""),[g,h]=(0,un.useState)(!1),v=m?"text-gray-400":"text-gray-500",x=m?"text-white":"text-gray-900",S={backgroundColor:m?"#252525":"#f9fafb"},_=`w-full px-3 py-2 border rounded-lg text-sm ${m?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`,w=FR(e,n);(0,un.useEffect)(()=>{if(!g||!d)return;let C=()=>{h(!1),d()};return window.addEventListener("focus",C),()=>window.removeEventListener("focus",C)},[g,d]);let k=c?un.default.createElement("a",{href:c,target:"_blank",rel:"noreferrer",onClick:()=>h(!0),className:"text-sm underline","data-testid":"repo-picker-missing"},"Repository not listed?"):null,A=p?un.default.createElement("form",{className:"flex items-center gap-2",onSubmit:C=>{C.preventDefault(),M3(y)&&p(y)}},un.default.createElement("input",{type:"text",value:y,onChange:C=>b(C.target.value.trim()),placeholder:"Type owner/name","aria-label":"Repository owner/name",className:_,"data-testid":"repo-picker-typed-name"}),un.default.createElement("button",{type:"submit",disabled:!M3(y),className:`px-3 py-2 border rounded-lg text-sm ${x}`},"Look up")):null;if(l!=="ready"){let C=["not_connected","reconnect_required"].includes(l)&&u;return un.default.createElement("div",{className:"space-y-2","data-testid":`repo-picker-${l}`},un.default.createElement("p",{className:`text-sm ${v}`},UR[l]||UR.loading),C&&un.default.createElement("a",{href:u,className:"text-sm underline"},l==="reconnect_required"?"Reconnect GitHub":"Connect GitHub"," in Settings \u2192 Integrations"),l==="pending_approval"&&d&&un.default.createElement("button",{type:"button",onClick:d,className:`px-3 py-2 border rounded-lg text-sm ${x}`},"Check again"),l==="empty"&&k,l==="empty"&&A,f&&un.default.createElement("p",{className:"text-sm text-red-500"},f))}return un.default.createElement("div",{className:"space-y-2"},un.default.createElement("input",{type:"text",value:n,onChange:C=>o(C.target.value),placeholder:"Filter repositories",className:_}),un.default.createElement("div",{className:"max-h-80 overflow-y-auto space-y-1"},w.map(C=>un.default.createElement("label",{key:C.id,className:"flex items-center space-x-3 p-2 rounded cursor-pointer",style:S},a==="single"?un.default.createElement("input",{type:"radio",name:"repository",checked:i===C.full_name,onChange:()=>s(C.full_name)}):un.default.createElement("input",{type:"checkbox",checked:t.has(C.full_name),onChange:()=>r(C.full_name)}),un.default.createElement("span",{className:`text-sm font-mono ${x}`},C.full_name),C.private&&un.default.createElement("span",{className:`text-xs ${v}`},"private"))),w.length===0&&un.default.createElement("p",{className:`text-sm ${v}`},"No repositories match.")),(k||A)&&un.default.createElement("div",{className:"space-y-2"},k,A,f&&un.default.createElement("p",{className:"text-sm text-red-500"},f)))}var WR={linked:{tone:"success",text:"GitHub App installation linked. Choose the repositories this workspace may use on it."},pending:{tone:"success",text:"Installation requested. Once an owner of the organization approves it on GitHub, that owner has to link it from this page."},denied:{tone:"error",text:"GitHub authorization was cancelled."},invalid_state:{tone:"error",text:"That GitHub App return expired or was not started here. Try again from this page."},missing_code:{tone:"error",text:"GitHub did not return an authorization code. Try again."},missing_installation:{tone:"error",text:"GitHub did not say which installation to link. Try installing again."},not_found:{tone:"error",text:"Your GitHub account cannot reach that installation, so it was not linked."},not_admin:{tone:"error",text:"Only the account the App is installed on, or an admin of its organization, can link an installation."},taken:{tone:"error",text:"That installation is already linked to another workspace."},not_configured:{tone:"error",text:"No GitHub App is configured on this dashboard."},forbidden:{tone:"error",text:"You do not have permission to change the GitHub App."},manifest_error:{tone:"error",text:"GitHub did not finish creating the App. Try again."},manifest_unavailable:{tone:"error",text:"Creating a GitHub App is not available on this dashboard."},error:{tone:"error",text:"Could not finish linking the GitHub App. Try again."}};function HR(e){let t=e.account_type==="Organization"?"organization":"user";return`@${e.account_login} \xB7 ${t}`}function mA(e){return e.status==="removed"?{label:"Removed from GitHub: reinstall or unlink",tone:"error"}:e.status==="suspended"?{label:"Suspended on GitHub",tone:"warning"}:null}function qR(e){let t=e||[];if(t.length===0)return{text:null,active:0};let r=t.filter(a=>mA(a)).length,n=t.length===1?"GitHub App installation":"GitHub App installations",o=r>0?` (${r} ${r===1?"needs":"need"} attention)`:"";return{text:`${t.length} ${n}${o}`,active:t.length-r}}function KR(e,t){let r=new Map;return(t||[]).forEach(n=>{mA(n)||(n.repositories||[]).forEach(o=>{let a=o.full_name.toLowerCase();r.has(a)||r.set(a,{...o,source:"app",installation:n})})}),(e?.repositories||[]).forEach(n=>{let o=n.full_name.toLowerCase();r.has(o)||r.set(o,{...n,source:"oauth",installation:null})}),[...r.values()]}function VR(e){return e.source==="app"?`GitHub App (@${e.installation.account_login})`:"OAuth"}function GR(e){return/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,38})$/.test(e)}function YR(e,t,r){let n=e.createElement("form");n.method="post",n.action=t,n.style.display="none";let o=e.createElement("input");return o.type="hidden",o.name="manifest",o.value=JSON.stringify(r),n.appendChild(o),e.body.appendChild(n),n.submit(),n}function I3({app:e,onChanged:t,onError:r,onNotice:n}){let{darkMode:o}=ut(),[a,i]=(0,tr.useState)(null),[s,l]=(0,tr.useState)(null),[u,c]=(0,tr.useState)(new Set),[d,p]=(0,tr.useState)(""),[f,m]=(0,tr.useState)(!1),[y,b]=(0,tr.useState)(null),[g,h]=(0,tr.useState)(""),[v,x]=(0,tr.useState)(!1);if(!e||!e.configured&&!e.manifest_available)return null;let S=o?"text-gray-400":"text-gray-500",_=o?"text-white":"text-gray-900",w={backgroundColor:o?"#252525":"#f9fafb"},k=`px-3 py-1 text-sm rounded ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,A=`px-3 py-1 text-sm rounded ${o?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`,C={error:o?"text-red-400":"text-red-600",warning:o?"text-amber-300":"text-amber-700"},T=async D=>{r(null);try{let P=await fetch(`/api/github_installations/${D.id}/repositories`),j=await P.json().catch(()=>({}));if(!P.ok)throw j.reinstall_required&&t(),new Error(j.error||"Could not list the installation's repositories.");l(j.repositories||[]),c(new Set((D.repositories||[]).map(M=>M.full_name))),p(""),i(D.id)}catch(P){r(P.message)}},$=async D=>{b(D.id),r(null);try{let P=await fetch(`/api/github_installations/${D.id}/repositories`),j=await P.json().catch(()=>({}));if(!P.ok)throw new Error(j.error||"Could not check the installation on GitHub.");n({tone:"success",text:`The installation on @${D.account_login} is active again.`})}catch(P){r(P.message)}finally{b(null),t()}},Q=()=>{i(null),l(null)},B=async()=>{m(!0),r(null);try{let D=await fetch(`/api/github_installations/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({repositories:[...u]})}),P=await D.json().catch(()=>({}));if(!D.ok)throw new Error(P.error||"Could not save the selection.");Q(),n({tone:"success",text:"Repository selection saved."}),t()}catch(D){r(D.message)}finally{m(!1)}},K=async D=>{if(await Wr({title:`Unlink @${D.account_login}?`,message:"New sandboxes can no longer check out its repositories. The App stays installed on GitHub; uninstall it there to remove its access.",confirmLabel:"Unlink",danger:!0})){r(null);try{let P=await fetch(`/api/github_installations/${D.id}`,{method:"DELETE"});if(!P.ok&&P.status!==404)throw new Error("Could not unlink the installation.");a===D.id&&Q(),t()}catch(P){r(P.message)}}},N=async()=>{let D=g.trim();if(D&&!GR(D)){r("Enter the organization's GitHub login, or leave it empty to create the App under your account.");return}x(!0),r(null);try{let P=await fetch("/api/github_app_manifest",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(D?{organization:D}:{})}),j=await P.json().catch(()=>({}));if(!P.ok)throw new Error(j.error||"Could not start creating the GitHub App.");YR(document,j.url,j.manifest)}catch(P){r(P.message),x(!1)}};if(!e.configured)return tr.default.createElement("div",{className:"p-3 rounded-lg space-y-2",style:w},tr.default.createElement("p",{className:`text-sm font-medium ${_}`},"Use a GitHub App"),tr.default.createElement("p",{className:`text-xs ${S}`},"A GitHub App gives each checkout a one-hour token limited to its one repository. Create one for this dashboard: GitHub registers it, and this page shows its settings once to add to your configuration."),tr.default.createElement("div",{className:"flex items-center gap-2"},tr.default.createElement("input",{type:"text",value:g,onChange:D=>h(D.target.value),placeholder:"Organization (optional)",className:`flex-1 px-3 py-1 border rounded text-sm ${o?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),tr.default.createElement("button",{type:"button",onClick:N,disabled:v,className:`${k} disabled:opacity-50`},v?"Opening GitHub\u2026":"Create GitHub App")));let O=e.installations||[];return tr.default.createElement("div",{className:"space-y-3"},tr.default.createElement("div",{className:"flex items-center justify-between"},tr.default.createElement("div",null,tr.default.createElement("p",{className:`text-sm font-medium ${_}`},"GitHub App"),tr.default.createElement("p",{className:`text-xs ${S}`},"Each checkout gets a one-hour token limited to its repository. When a repository is reachable both ways, the App is used.")),tr.default.createElement("a",{href:et("/api/github_installations/install"),className:"shrink-0 px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600"},"Install the GitHub App")),O.length===0&&tr.default.createElement("p",{className:`text-sm ${S}`},"No installation is linked yet. Install the App on the repositories this workspace should use."),O.map(D=>{let P=mA(D),j=D.repositories||[];return tr.default.createElement("div",{key:D.id,className:"p-3 rounded-lg space-y-2",style:w},tr.default.createElement("div",{className:"flex items-center justify-between gap-3"},tr.default.createElement("div",{className:"min-w-0"},tr.default.createElement("p",{className:`text-sm font-mono ${_}`},HR(D)),tr.default.createElement("p",{className:`text-xs ${P?C[P.tone]:S}`},P?P.label:`${j.length} selected for sandboxes`)),tr.default.createElement("div",{className:"flex items-center gap-2 shrink-0"},a===D.id?tr.default.createElement(tr.default.Fragment,null,tr.default.createElement("button",{type:"button",onClick:Q,className:k},"Cancel"),tr.default.createElement("button",{type:"button",onClick:B,disabled:f,className:"px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600 disabled:opacity-50"},f?"Saving\u2026":`Save (${u.size})`)):tr.default.createElement(tr.default.Fragment,null,P?tr.default.createElement("button",{type:"button",onClick:()=>$(D),disabled:y===D.id,className:`${k} disabled:opacity-50`},y===D.id?"Checking\u2026":"Check again"):tr.default.createElement("button",{type:"button",onClick:()=>T(D),className:k},"Choose repositories"),D.settings_url&&tr.default.createElement("a",{href:D.settings_url,target:"_blank",rel:"noreferrer",className:k},"Access on GitHub"),tr.default.createElement("button",{type:"button",onClick:()=>K(D),className:A},"Unlink")))),a===D.id&&s&&tr.default.createElement(kf,{repositories:s,selection:u,onToggle:M=>c(W=>fA(W,M)),filter:d,onFilterChange:p}))}))}var S2e={connected:{tone:"success",text:"GitHub connected. Choose the repositories this workspace may use."},denied:{tone:"error",text:"GitHub authorization was cancelled."},invalid_state:{tone:"error",text:"That GitHub sign-in expired or was not started here. Try connecting again."},missing_code:{tone:"error",text:"GitHub did not return an authorization code. Try connecting again."},not_configured:{tone:"error",text:"GitHub OAuth is not configured on this dashboard."},forbidden:{tone:"error",text:"You do not have permission to change the GitHub connection."},error:{tone:"error",text:"Could not finish connecting GitHub. Try again."}};function D3({callbackStatus:e,appCallbackStatus:t,refreshKey:r}){let{darkMode:n}=ut(),[o,a]=(0,Ke.useState)(null),[i,s]=(0,Ke.useState)(null),[l,u]=(0,Ke.useState)(new Set),[c,d]=(0,Ke.useState)(""),[p,f]=(0,Ke.useState)(!1),[m,y]=(0,Ke.useState)(null),[b,g]=(0,Ke.useState)(S2e[e]||WR[t]||null),[h,v]=(0,Ke.useState)([]),[x,S]=(0,Ke.useState)(null),[_,w]=(0,Ke.useState)({}),[k,A]=(0,Ke.useState)(null),[C,T]=(0,Ke.useState)(null),[$,Q]=(0,Ke.useState)(0),[B,K]=(0,Ke.useState)({}),N=(0,Ke.useRef)({}),O=(0,Ke.useCallback)(async()=>{try{let me=await fetch("/api/github_connection");if(!me.ok)throw new Error("status failed");let le=await me.json();a(le),u(new Set((le.connection?.repositories||[]).map(Ue=>Ue.full_name)))}catch{y("Could not load the GitHub connection. Are you signed in?")}},[]);(0,Ke.useEffect)(()=>{O()},[O]);let D=(0,Ke.useCallback)(async()=>{try{let me=await fetch("/api/sandboxes?sandbox_type=app_runtime"),le=await me.json().catch(()=>({}));if(!me.ok)throw new Error(ot(le,`Could not list your sandboxes (HTTP ${me.status}).`));v(le.sandboxes||[]),S({codeSessions:!!le.code_sessions_supported,claudeCode:{...a2(le),sandboxes:le.claude_code_sandboxes||[]},codex:i2(le),pullRequests:le.pull_requests_supported===!0,browserModes:Array.isArray(le.browser_modes)?le.browser_modes:[]})}catch(me){y(me.message)}},[]),P=o!==null,j=!!o?.connected;(0,Ke.useEffect)(()=>{P&&D()},[P,j,D,r]);let M=h.filter(me=>r2(me)&&!B[me.session_id]?.stopped).map(me=>me.session_id).join(" ");(0,Ke.useEffect)(()=>{if(!M)return;let me=!1,le=setTimeout(async()=>{let Ue=await Promise.all(M.split(" ").map(async nt=>{try{let Tt=await fetch(`/api/sandboxes/${encodeURIComponent(nt)}`);if(Tt.status===404)return{id:nt,gone:!0};let Lt=await Tt.json().catch(()=>({}));return Tt.ok?{id:nt,sandbox:Lt.sandbox||null}:{id:nt,status:Tt.status,error:ot(Lt,`Could not check on this sandbox (HTTP ${Tt.status}).`)}}catch{return{id:nt,status:null,error:"Could not reach the dashboard to check on this sandbox."}}}));if(me)return;let Je={};Ue.forEach(({id:nt,status:Tt,error:Lt})=>{if(!Lt){delete N.current[nt],Je[nt]=null;return}let Hr=(N.current[nt]||0)+1;N.current[nt]=Hr,Je[nt]={message:Lt,stopped:RC(Tt,Hr)}}),K(nt=>Object.entries(Je).reduce((Tt,[Lt,Hr])=>{if(Hr)return{...Tt,[Lt]:Hr};if(!(Lt in Tt))return Tt;let{[Lt]:Io,...vs}=Tt;return vs},nt)),v(nt=>Ue.reduce((Tt,Lt)=>Lt.gone?Tt.filter(Hr=>Hr.session_id!==Lt.id):Lt.sandbox?FY(Tt,Lt.sandbox,"session_id"):Tt,nt)),Q(nt=>nt+1)},2e3);return()=>{me=!0,clearTimeout(le)}},[M,$]);let W=me=>{delete N.current[me],K(le=>{let{[me]:Ue,...Je}=le;return Je})},Y=(me,le)=>{w(Ue=>({...Ue,[me]:le}))},L=async()=>{y(null);try{let me=await fetch("/api/github_connection/repositories"),le=await me.json().catch(()=>({}));if(!me.ok)throw new Error(le.error||"Could not list repositories.");s(le.repositories||[])}catch(me){y(me.message)}},G=me=>{u(le=>fA(le,me))},q=async()=>{f(!0),y(null);try{let me=await fetch("/api/github_connection",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({repositories:[...l]})}),le=await me.json().catch(()=>({}));if(!me.ok)throw new Error(le.error||"Could not save the selection.");a(Ue=>({...Ue,connection:le.connection})),s(null),g({tone:"success",text:"Repository selection saved."})}catch(me){y(me.message)}finally{f(!1)}},oe=async()=>{if(await Wr({title:"Disconnect GitHub?",message:"New checkout sandboxes can no longer clone its repositories. Sandboxes already running keep running until you stop them or they expire.",confirmLabel:"Disconnect",danger:!0}))try{if(!(await fetch("/api/github_connection",{method:"DELETE"})).ok)throw new Error("disconnect failed");s(null),g(null),await O()}catch{y("Could not disconnect GitHub.")}},Me=async me=>{A(me),Y(me,null);try{let le=await fetch("/api/sandboxes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox_type:"app_runtime",repository:me})}),Ue=await le.json().catch(()=>({}));if(!le.ok)throw new Error(ot(Ue,`Could not start the sandbox (HTTP ${le.status}).`));v(Je=>id(Je,Ue.sandbox,"session_id"))}catch(le){Y(me,le.message)}finally{A(null)}},ge=async me=>{if(!(me.status!=="failed"&&!await Wr({title:"Stop this sandbox?",message:"Its app stops and its checkout is deleted, including any changes Claude Code made there.",confirmLabel:"Stop sandbox",danger:!0}))){T(me.session_id),Y(me.repository,null);try{let le=await fetch(`/api/sandboxes/${encodeURIComponent(me.session_id)}`,{method:"DELETE"}),Ue=await le.json().catch(()=>({}));if(!le.ok&&le.status!==404)throw new Error(ot(Ue,`Could not stop the sandbox (HTTP ${le.status}).`));v(Je=>Je.filter(nt=>nt.session_id!==me.session_id)),W(me.session_id)}catch(le){Y(me.repository,le.message)}finally{T(null)}}},ue=n?"text-gray-400":"text-gray-500",R=n?"text-white":"text-gray-900",te={backgroundColor:n?"#252525":"#f9fafb"},Be=`px-3 py-1 text-sm rounded ${n?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,ke=o?.connection,ee=ke?.repositories||[],z=o?.app?.configured?o.app.installations||[]:[],E=KR(ke,z),{byRepository:I,others:V}=WY(h,E.map(me=>me.full_name)),F=z.length>0,ce=qR(z),Qe=n?"text-red-400":"text-red-600",it=(me,{standalone:le=!1}={})=>{let{label:Ue,tone:Je}=jY(me.status),nt=r2(me),Tt=$Y(me),Lt=Tt?DY(me.expires_at):null,Hr=nt?B[me.session_id]:null;return Ke.default.createElement("div",{key:me.session_id,className:le?"p-3 rounded-lg space-y-2":`mt-3 pt-3 border-t space-y-2 ${n?"border-gray-700":"border-gray-200"}`,style:le?te:void 0},Ke.default.createElement("div",{className:"flex items-center justify-between gap-3"},Ke.default.createElement("div",{className:"flex items-center gap-2 min-w-0 text-xs"},Ke.default.createElement(Ks,{tone:Je},Ue),Ke.default.createElement("span",{className:`font-mono truncate ${ue}`},le?me.repository:"","@",me.repository_ref),Lt&&Ke.default.createElement("span",{className:`shrink-0 ${ue}`},"\xB7 ",Lt),pA(me)&&Ke.default.createElement("a",{href:et(pA(me)),onClick:Io=>{Io.preventDefault(),lt(pA(me))},className:`shrink-0 truncate hover:underline ${n?"text-blue-300":"text-blue-600"}`,"data-testid":"sandbox-project-link",title:me.browser?.status==="running"?"Open the project's page on its browser":"Open the project's page"},"\xB7 ",me.project.name," \u2192")),Ke.default.createElement("button",{onClick:()=>ge(me),disabled:C===me.session_id,className:`shrink-0 px-3 py-1 text-sm rounded disabled:opacity-50 ${n?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},C===me.session_id?"Stopping\u2026":me.status==="failed"?"Dismiss":"Stop")),nt&&!Hr?.stopped&&Ke.default.createElement("p",{className:`text-xs ${ue}`},"Checking out the repository and booting its app; this can take a few minutes."),Hr&&Ke.default.createElement("p",{className:`text-xs ${Qe}`},Hr.message," ",Hr.stopped?Ke.default.createElement(Ke.default.Fragment,null,"Stopped checking; its status above may be out of date."," ",Ke.default.createElement("button",{type:"button",onClick:()=>W(me.session_id),className:"underline"},"Retry")):"Trying again\u2026"),me.error_message&&Ke.default.createElement("pre",{className:`p-2 rounded text-xs font-mono whitespace-pre-wrap break-words max-h-48 overflow-y-auto border ${n?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`},me.error_message),me.runtime_server_key&&Ke.default.createElement("p",{className:`text-xs ${ue}`},"Enable ",Ke.default.createElement("code",{className:"font-mono"},me.runtime_server_key)," in an agent's Tools tab to run it, or evaluate it, with this checkout's tools."),Tt&&x?.codeSessions&&Ke.default.createElement(x0,{sandbox:me,claudeCode:x.claudeCode?.mode==="sandbox_login"?{...x.claudeCode,connected:!!x.claudeCode.sandboxes.find(Io=>Io.session_id===me.session_id)?.credential_mode}:x.claudeCode,codex:x.codex,onRecheckConnection:D}),Tt&&x&&!x.codeSessions&&Ke.default.createElement("p",{className:`text-xs ${ue}`},"The configured sandbox backend cannot run Claude Code sessions."),Tt&&x?.pullRequests&&Ke.default.createElement(W0,{sandbox:me}),Tt&&x?.browserModes.length>0&&Ke.default.createElement(Sf,{sandbox:me,modes:x.browserModes}))};return Ke.default.createElement("div",{className:"space-y-4"},Ke.default.createElement("div",{className:"flex items-center justify-between"},Ke.default.createElement("div",{className:"flex items-center space-x-3"},Ke.default.createElement("span",{className:"text-xl"},"\u{1F419}"),Ke.default.createElement("div",null,Ke.default.createElement("p",{className:`font-medium ${R}`},"GitHub"),Ke.default.createElement("p",{className:`text-sm ${o?.connected||ce.active>0?n?"text-green-400":"text-green-600":ue}`},o?[o.connected?`Connected as @${ke.login}`:null,ce.text].filter(Boolean).join(" \xB7 ")||"Not connected":"Loading\u2026"))),o?.connected?Ke.default.createElement("button",{onClick:oe,className:`px-3 py-1 text-sm rounded ${n?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},o.app?.configured?"Disconnect OAuth":"Disconnect"):o?.configured?Ke.default.createElement("a",{href:et("/api/github_connection/connect"),className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 text-sm"},o.app?.configured?"Connect with OAuth":"Connect GitHub"):null),o&&!o.configured&&!o.connected&&!o.app?.configured&&Ke.default.createElement("p",{className:`text-sm ${ue}`},"The operator has not configured a GitHub OAuth app. Set ",Ke.default.createElement("code",null,"ActionAgent.github_client_id")," and"," ",Ke.default.createElement("code",null,"github_client_secret")," (or ",Ke.default.createElement("code",null,"GITHUB_CLIENT_ID")," / ",Ke.default.createElement("code",null,"GITHUB_CLIENT_SECRET"),") and register"," ",Ke.default.createElement("code",null,et("/api/github_connection/callback"))," as its callback URL."),b&&Ke.default.createElement("div",{className:`p-3 rounded-lg text-sm border ${b.tone==="success"?n?"bg-green-900/20 border-green-800 text-green-300":"bg-green-50 border-green-200 text-green-800":n?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`},b.text),m&&Ke.default.createElement("div",{className:`p-3 rounded-lg text-sm border ${n?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`},m),Ke.default.createElement(I3,{app:o?.app,onChanged:O,onError:y,onNotice:g}),o?.connected&&Ke.default.createElement("div",{className:"space-y-3"},Ke.default.createElement("div",{className:"flex items-center justify-between"},Ke.default.createElement("div",null,Ke.default.createElement("p",{className:`text-sm font-medium ${R}`},"OAuth connection"),Ke.default.createElement("p",{className:`text-xs ${ue}`},ee.length," selected for sandboxes, cloned with @",ke.login,"'s token.")),i?Ke.default.createElement("div",{className:"flex items-center space-x-2"},Ke.default.createElement("button",{onClick:()=>{s(null),u(new Set(ee.map(me=>me.full_name)))},className:Be},"Cancel"),Ke.default.createElement("button",{onClick:q,disabled:p,className:"px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600 disabled:opacity-50"},p?"Saving\u2026":`Save (${l.size})`)):Ke.default.createElement("button",{onClick:L,className:Be},"Choose repositories")),i&&Ke.default.createElement(kf,{repositories:i,selection:l,onToggle:G,filter:c,onFilterChange:d})),(o?.connected||F)&&!i&&Ke.default.createElement("div",{className:"space-y-3"},Ke.default.createElement("p",{className:`text-sm font-medium ${R}`},"Available repositories"),E.length===0?Ke.default.createElement("p",{className:`text-sm ${ue}`},"No repositories selected yet. Selected repositories can be checked out into sandboxes."):Ke.default.createElement("div",{className:"space-y-2"},E.map(me=>{let le=I[me.full_name]||[],Ue=le.some(r2),Je=o.app?.configured?` \xB7 via ${VR(me)}`:"";return Ke.default.createElement("div",{key:me.full_name,className:"p-3 rounded-lg",style:te},Ke.default.createElement("div",{className:"flex items-center justify-between"},Ke.default.createElement("div",null,Ke.default.createElement("p",{className:`text-sm font-mono ${R}`},me.full_name),Ke.default.createElement("p",{className:`text-xs ${ue}`},me.private?"private":"public"," \xB7 ",me.default_branch,Je)),Ke.default.createElement("button",{onClick:()=>Me(me.full_name),disabled:k===me.full_name||Ue,className:`${Be} disabled:opacity-50`},k===me.full_name?"Starting\u2026":Ue?"Booting\u2026":"Start sandbox")),_[me.full_name]&&Ke.default.createElement("p",{className:`mt-2 text-xs ${Qe}`},_[me.full_name]),le.map(nt=>it(nt)))}))),!i&&V.length>0&&Ke.default.createElement("div",{className:"space-y-2"},Ke.default.createElement("p",{className:`text-sm font-medium ${R}`},j||F?"Other sandboxes":"Checkout sandboxes"),Ke.default.createElement("p",{className:`text-xs ${ue}`},j||F?"From repositories no longer selected.":"Checked out while GitHub was connected."," ","They keep running until stopped or they expire."),V.map(me=>Ke.default.createElement(Ke.default.Fragment,{key:me.session_id},_[me.repository]&&Ke.default.createElement("p",{className:`text-xs ${Qe}`},_[me.repository]),it(me,{standalone:!0})))))}var It=Z(J());var j3="claude_code";function $3({onChange:e}){let{darkMode:t}=ut(),[r,n]=(0,It.useState)(null),[o,a]=(0,It.useState)(null),[i,s]=(0,It.useState)(!1),[l,u]=(0,It.useState)(""),[c,d]=(0,It.useState)(!1),[p,f]=(0,It.useState)(null),[m,y]=(0,It.useState)([]),[b,g]=(0,It.useState)(""),h=(0,It.useCallback)(async()=>{try{let[C,T]=await Promise.all([fetch("/api/provider_keys"),fetch("/api/sandboxes?sandbox_type=app_runtime")]);if(!C.ok||!T.ok)throw new Error("load failed");let[$,Q]=await Promise.all([C.json(),T.json()]);n(($.provider_keys||[]).find(K=>K.provider===j3)||{configured:!1}),a(a2(Q));let B=(Q.sandboxes||[]).filter(K=>K.status==="ready");y(B),g(K=>B.some(N=>N.session_id===K)?K:B[0]?.session_id||"")}catch{f("Could not load the Claude Code connection. Are you signed in?")}},[]);(0,It.useEffect)(()=>{h()},[h]);let v=async()=>{if(!(!l.trim()||c)){d(!0),f(null);try{let C=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:j3,credential:l.trim()})});if(!C.ok){let T=await C.json().catch(()=>({}));throw new Error(Array.isArray(T.error)?T.error.join(", "):"Could not save the API key.")}s(!1),u(""),await h(),e?.()}catch(C){f(C.message)}finally{d(!1)}}},x=async()=>{if(await Wr({title:"Remove the Claude Code API key?",message:"Sessions using a sandbox subscription keep their login.",confirmLabel:"Remove key",danger:!0}))try{if(!(await fetch(`/api/provider_keys/${j3}`,{method:"DELETE"})).ok)throw new Error("delete failed");await h(),e?.()}catch{f("Could not disconnect Claude Code.")}},S=t?"text-gray-400":"text-gray-500",_=tX(o,r),w=_.keyForm&&r?.configured,k={success:t?"text-green-400":"text-green-600",error:t?"text-amber-300":"text-amber-700",neutral:S}[_.tone],A=`underline ${t?"text-gray-300":"text-gray-700"}`;return It.default.createElement("div",{className:"space-y-3"},It.default.createElement("div",{className:"flex items-center justify-between"},It.default.createElement("div",{className:"flex items-center space-x-3"},It.default.createElement("span",{className:"font-mono text-sm","aria-hidden":"true"},">_"),It.default.createElement("div",null,It.default.createElement("p",{className:`font-medium ${t?"text-white":"text-gray-900"}`},"Claude Code"),It.default.createElement("p",{className:`text-sm ${k}`},_.status))),_.keyForm&&It.default.createElement("div",{className:"flex items-center space-x-2"},w&&!i&&It.default.createElement("button",{onClick:x,className:`px-3 py-1 text-sm rounded ${t?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},_.view==="sandbox_login"?"Remove API key":"Disconnect"),It.default.createElement("button",{onClick:()=>{s(!i),u(""),f(null)},className:`px-3 py-1 text-sm rounded ${t?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},i?"Cancel":_.view==="sandbox_login"?w?"Update API key":"Add API key":_.needsReplacing?"Replace":w?"Update":"Connect")),_.view==="local_login"&&It.default.createElement("button",{onClick:()=>{f(null),h(),e?.()},className:`px-3 py-1 text-sm rounded ${t?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},"Check again")),_.view==="local_login"&&It.default.createElement("p",{className:`text-xs ${S}`},"Sessions run ",It.default.createElement("code",{className:"font-mono"},"claude")," on this machine with its own login, which the dashboard never reads or stores."," ",_.loginHint&&It.default.createElement(It.default.Fragment,null,"Run ",It.default.createElement("code",{className:"font-mono"},_.loginHint)," on this machine, as the user the dashboard runs as, then check again.")),_.needsReplacing&&!i&&It.default.createElement("p",{className:`text-xs ${t?"text-amber-300":"text-amber-700"}`},"The Claude subscription token stored here is no longer used: Anthropic does not allow third-party apps to hold Claude.ai credentials. Replace it with an Anthropic API key to run Claude Code sessions."),_.keyForm&&i&&It.default.createElement(It.default.Fragment,null,It.default.createElement("div",{className:"flex items-center space-x-2"},It.default.createElement("input",{type:"password","data-aa-secret":"",value:l,onChange:C=>u(C.target.value),onKeyDown:C=>C.key==="Enter"&&v(),placeholder:QY,"aria-label":"Anthropic API key",autoFocus:!0,className:`flex-1 px-3 py-2 border rounded-lg text-sm font-mono ${t?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),It.default.createElement("button",{onClick:v,disabled:!l.trim()||c,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 text-sm"},c?"Saving\u2026":"Save")),It.default.createElement("p",{className:`text-xs ${S}`},"Paste an Anthropic API key from the"," ",It.default.createElement("a",{href:RY,target:"_blank",rel:"noreferrer",className:A},"Claude Console"),". It is encrypted at rest and passed to checkout sandboxes so they can run Claude Code sessions against the repository. Claude subscription logins cannot be stored here (",It.default.createElement("a",{href:eX,target:"_blank",rel:"noreferrer",className:A},"why"),"); to use your own subscription, use the sandbox sign-in below when enabled by this installation.")),_.view==="sandbox_login"&&It.default.createElement("div",{className:"space-y-3"},m.length>0?It.default.createElement(It.default.Fragment,null,It.default.createElement("label",{className:`block text-xs ${S}`},"Sandbox",It.default.createElement("select",{"aria-label":"Claude subscription sandbox",value:b,onChange:C=>g(C.target.value),className:"w-full mt-2 p-2 border rounded",style:{background:"var(--color-background)",color:"var(--color-text-primary)",borderColor:"var(--color-border)"}},m.map(C=>It.default.createElement("option",{key:C.session_id,value:C.session_id},C.repository," \xB7 ",C.session_id.slice(0,8))))),m.find(C=>C.session_id===b)&&It.default.createElement(tf,{key:b,sandbox:m.find(C=>C.session_id===b),onChange:()=>{h(),e?.()}})):It.default.createElement("p",{className:`text-sm ${S}`},"Start a checkout sandbox in ",It.default.createElement("a",{className:"underline",href:et("/projects")},"Projects")," to connect your Claude subscription."),It.default.createElement("p",{className:`text-xs ${S}`},"Each member uses their own sandbox login. Sessions without a personal login use the account\u2019s Anthropic API key when one is connected.")),p&&It.default.createElement("div",{className:`p-3 rounded-lg text-sm border ${t?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`},p))}var Nr=Z(J());function L3({onChange:e}){let{darkMode:t}=ut(),[r,n]=(0,Nr.useState)(null),[o,a]=(0,Nr.useState)(null),[i,s]=(0,Nr.useState)(!1),[l,u]=(0,Nr.useState)(""),[c,d]=(0,Nr.useState)(!1),[p,f]=(0,Nr.useState)(null),m=(0,Nr.useCallback)(async()=>{let[_,w]=await Promise.all([fetch("/api/provider_keys"),fetch("/api/sandboxes?sandbox_type=app_runtime")]);if(!_.ok||!w.ok)throw new Error("Could not load the Codex connection.");let[k,A]=await Promise.all([_.json(),w.json()]);n((k.provider_keys||[]).find(C=>C.provider==="codex")||{configured:!1}),a(i2(A))},[]);(0,Nr.useEffect)(()=>{m().catch(_=>f(_.message))},[m]);let y=async _=>{if(_.preventDefault(),!(c||!l.trim())){d(!0),f(null);try{let w=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:"codex",credential:l.trim()})}),k=await w.json().catch(()=>({}));if(!w.ok)throw new Error(Array.isArray(k.error)?k.error.join(", "):k.error||"Could not save the API key.");u(""),s(!1),await m(),e?.()}catch(w){f(w.message)}finally{d(!1)}}},b=async()=>{if(await Wr({title:"Disconnect Codex?",message:"New Codex sessions will need an API key connected again.",confirmLabel:"Disconnect",danger:!0})){d(!0),f(null);try{if(!(await fetch("/api/provider_keys/codex",{method:"DELETE"})).ok)throw new Error("Could not disconnect Codex.");await m(),e?.()}catch(_){f(_.message)}finally{d(!1)}}},g=async()=>{f(null);try{await m(),e?.()}catch(_){f(_.message)}},h=t?"text-gray-400":"text-gray-500",v=`px-3 py-1 text-sm rounded ${t?"bg-gray-700 text-gray-200":"bg-gray-200 text-gray-800"}`,x=oX(o,r),S={success:t?"text-green-400":"text-green-600",error:t?"text-amber-300":"text-amber-700",neutral:h}[x.tone];return Nr.default.createElement("div",{className:"space-y-3"},Nr.default.createElement("div",{className:"flex items-center justify-between gap-3"},Nr.default.createElement("div",null,Nr.default.createElement("p",{className:`font-medium ${t?"text-white":"text-gray-900"}`},"Codex"),Nr.default.createElement("p",{className:`text-sm ${S}`},x.status)),Nr.default.createElement("div",{className:"flex gap-2"},x.keyForm&&r?.configured&&!i&&Nr.default.createElement("button",{className:v,disabled:c,onClick:b},"Disconnect"),x.keyForm&&Nr.default.createElement("button",{className:v,disabled:c,onClick:()=>{s(!i),u(""),f(null)}},i?"Cancel":r?.configured?"Update":"Connect"),x.view==="local_login"&&Nr.default.createElement("button",{className:v,disabled:c,onClick:g},"Check again"))),x.view==="local_login"?Nr.default.createElement("p",{className:`text-xs ${h}`},"Sessions run ",Nr.default.createElement("code",{className:"font-mono"},"codex")," on this machine with its own login (a ChatGPT plan, or a key the CLI holds), which the dashboard never reads or stores."," ",x.loginHint&&Nr.default.createElement(Nr.default.Fragment,null,"Run ",Nr.default.createElement("code",{className:"font-mono"},x.loginHint)," on this machine, as the user the dashboard runs as, then check again.")):Nr.default.createElement("p",{className:`text-sm ${h}`},"Run Codex in a repository checkout using an OpenAI API key. API usage is billed to that key's project."),x.keyForm&&i&&Nr.default.createElement("form",{onSubmit:y,className:"flex flex-wrap gap-2"},Nr.default.createElement("label",{className:`flex-1 text-sm ${h}`},"OpenAI API key for Codex",Nr.default.createElement("input",{type:"password","data-aa-secret":"",autoComplete:"off",spellCheck:!1,value:l,onChange:_=>u(_.target.value),placeholder:"sk-\u2026",disabled:c,className:`block w-full mt-1 px-3 py-2 border rounded ${t?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),Nr.default.createElement("button",{type:"submit",className:`${v} self-end`,disabled:c||!l.trim()},c?"Saving\u2026":"Save API key")),p&&Nr.default.createElement("p",{role:"alert",className:"text-sm text-red-500"},p))}var XR=Z(J());var wn=Z(J());function z3({provider:e,title:t,description:r,credentialLabel:n,placeholder:o,onChange:a}){let{darkMode:i}=ut(),[s,l]=(0,wn.useState)(null),[u,c]=(0,wn.useState)(!1),[d,p]=(0,wn.useState)(""),[f,m]=(0,wn.useState)(!1),[y,b]=(0,wn.useState)(null),g=(0,wn.useCallback)(async()=>{let _=await fetch("/api/provider_keys");if(!_.ok)throw new Error(`Could not load the ${t} connection.`);let w=await _.json();l((w.provider_keys||[]).find(k=>k.provider===e)||{configured:!1})},[e,t]);(0,wn.useEffect)(()=>{g().catch(_=>b(_.message))},[g]);let h=async _=>{if(_.preventDefault(),!(f||!d.trim())){m(!0),b(null);try{let w=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,credential:d.trim()})}),k=await w.json().catch(()=>({}));if(!w.ok)throw new Error(Array.isArray(k.error)?k.error.join(", "):k.error||`Could not save the ${n}.`);p(""),c(!1),await g(),a?.()}catch(w){b(w.message)}finally{m(!1)}}},v=async()=>{if(await Wr({title:`Disconnect ${t}?`,message:`${t} will need its ${n} connected again.`,confirmLabel:"Disconnect",danger:!0})){m(!0),b(null);try{if(!(await fetch(`/api/provider_keys/${e}`,{method:"DELETE"})).ok)throw new Error(`Could not disconnect ${t}.`);await g(),a?.()}catch(_){b(_.message)}finally{m(!1)}}},x=i?"text-gray-400":"text-gray-500",S=`px-3 py-1 text-sm rounded ${i?"bg-gray-700 text-gray-200":"bg-gray-200 text-gray-800"}`;return wn.default.createElement("div",{className:"space-y-3"},wn.default.createElement("div",{className:"flex items-center justify-between gap-3"},wn.default.createElement("div",null,wn.default.createElement("p",{className:`font-medium ${i?"text-white":"text-gray-900"}`},t),wn.default.createElement("p",{className:`text-sm ${x}`},s==null?"Loading\u2026":s.configured?`Connected \xB7 ${s.hint}`:"Not connected")),wn.default.createElement("div",{className:"flex gap-2"},s?.configured&&!u&&wn.default.createElement("button",{className:S,disabled:f,onClick:v},"Disconnect"),wn.default.createElement("button",{className:S,disabled:f||s==null,onClick:()=>{c(!u),p(""),b(null)}},u?"Cancel":s?.configured?"Update":"Connect"))),wn.default.createElement("p",{className:`text-sm ${x}`},r),u&&wn.default.createElement("form",{onSubmit:h,className:"flex flex-wrap gap-2"},wn.default.createElement("label",{className:`flex-1 text-sm ${x}`},n,wn.default.createElement("input",{type:"password","data-aa-secret":"",autoComplete:"off",spellCheck:!1,value:d,onChange:_=>p(_.target.value),placeholder:o,disabled:f,className:`block w-full mt-1 px-3 py-2 border rounded ${i?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),wn.default.createElement("button",{type:"submit",className:`${S} self-end`,disabled:f||!d.trim()},f?"Saving\u2026":"Save")),y&&wn.default.createElement("p",{role:"alert",className:"text-sm text-red-500"},y))}function B3({onChange:e}){return XR.default.createElement(z3,{provider:"slack",title:"Slack",description:"Agents with the Slack tool list channels, read them and post as this bot. Create a Slack app with the channels:read, channels:history and chat:write scopes, install it, and invite the bot to the channels it should see.",credentialLabel:"Bot User OAuth Token",placeholder:"xoxb-\u2026",onChange:e})}var k2e=["profile","api-keys","integrations","notifications","billing"];function _2e(){let e=new URLSearchParams(window.location.search),t=e.get("tab");return{tab:k2e.includes(t)?t:"profile",github:e.get("github"),githubApp:e.get("github_app")}}function F3({user:e,account:t}){let{darkMode:r,toggleDarkMode:n}=ut(),[o]=(0,Oe.useState)(()=>window.ACTIVE_AGENT_DASHBOARD?.meta?.personalProviderKeys?"personal":void 0),[{tab:a,github:i,githubApp:s}]=(0,Oe.useState)(_2e),[l,u]=(0,Oe.useState)(a),[c,d]=(0,Oe.useState)(0),[p,f]=(0,Oe.useState)([]),[m,y]=(0,Oe.useState)([]),[b,g]=(0,Oe.useState)(!1),[h,v]=(0,Oe.useState)(""),[x,S]=(0,Oe.useState)(!1),[_,w]=(0,Oe.useState)(null),[k,A]=(0,Oe.useState)(!1),[C,T]=(0,Oe.useState)(null),$=(0,Oe.useCallback)(async()=>{try{let[P,j]=await Promise.all([fetch("/api/api_keys"),fetch(iA("/api/provider_keys",o))]);if(!P.ok||!j.ok)throw new Error("Failed to load keys");let M=await P.json(),W=await j.json();f(M.api_keys||[]),y(W.provider_keys||[]),T(null)}catch{T("Could not load API keys. Are you signed in?")}finally{g(!0)}},[o]);(0,Oe.useEffect)(()=>{l==="api-keys"&&!b&&$()},[l,b,$]);let Q=sA({onKeysChanged:$,onError:T,scope:o}),B=async()=>{if(!(!h.trim()||x)){S(!0),T(null);try{let P=await fetch("/api/api_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:h.trim()})});if(!P.ok)throw new Error("create failed");let j=await P.json();w(j.api_key),A(!1),v(""),await $()}catch{T("Could not create the API key.")}finally{S(!1)}}},K=async P=>{if(await Wr({title:"Revoke this API key?",message:"Requests using it stop working immediately. This cannot be undone.",confirmLabel:"Revoke key",danger:!0}))try{if(!(await fetch(`/api/api_keys/${P}`,{method:"DELETE"})).ok)throw new Error("delete failed");_&&_.id===P&&w(null),await $()}catch{T("Could not revoke the API key.")}},N=async P=>{try{await navigator.clipboard.writeText(P),A(!0),setTimeout(()=>A(!1),2e3)}catch{}},O={backgroundColor:r?"#1f1f1f":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"};return Oe.default.createElement("div",{className:"p-6 space-y-6"},Oe.default.createElement("div",null,Oe.default.createElement("h2",{className:`text-2xl font-bold ${r?"text-white":"text-gray-900"}`},"Settings"),Oe.default.createElement("p",{className:`mt-1 ${r?"text-gray-400":"text-gray-500"}`},"Manage your account and preferences")),Oe.default.createElement("div",{className:"border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},Oe.default.createElement("nav",{className:"flex space-x-8"},[{id:"profile",label:"Profile"},{id:"api-keys",label:"API Keys"},{id:"integrations",label:"Integrations"},{id:"notifications",label:"Notifications"},{id:"billing",label:"Billing"}].map(P=>Oe.default.createElement("button",{key:P.id,onClick:()=>u(P.id),className:`py-4 px-1 border-b-2 font-medium text-sm transition-colors ${l===P.id?"border-red-500 text-red-500":`border-transparent ${r?"text-gray-400 hover:text-gray-300":"text-gray-500 hover:text-gray-700"}`}`},P.label)))),l==="profile"&&Oe.default.createElement("div",{className:"space-y-6"},Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Profile Information"),Oe.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4"},Oe.default.createElement("div",null,Oe.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"First Name"),Oe.default.createElement("input",{type:"text",defaultValue:e?.name?.split(" ")[0]||"",className:`w-full px-3 py-2 border rounded-lg ${r?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),Oe.default.createElement("div",null,Oe.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"Last Name"),Oe.default.createElement("input",{type:"text",defaultValue:e?.name?.split(" ")[1]||"",className:`w-full px-3 py-2 border rounded-lg ${r?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),Oe.default.createElement("div",{className:"md:col-span-2"},Oe.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"Email"),Oe.default.createElement("input",{type:"email",defaultValue:e?.email||"",disabled:!0,className:`w-full px-3 py-2 border rounded-lg cursor-not-allowed ${r?"bg-gray-900 border-gray-700 text-gray-500":"bg-gray-100 border-gray-300 text-gray-500"}`}))),Oe.default.createElement("button",{className:"mt-4 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600"},"Save Changes")),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Appearance"),Oe.default.createElement("div",{className:"flex items-center justify-between"},Oe.default.createElement("div",null,Oe.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},"Dark Mode"),Oe.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},"Use dark theme across the dashboard")),Oe.default.createElement("button",{onClick:n,className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${r?"bg-red-500":"bg-gray-300"}`},Oe.default.createElement("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${r?"translate-x-6":"translate-x-1"}`}))))),l==="api-keys"&&Oe.default.createElement("div",{className:"space-y-6"},Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("div",{className:"flex items-center justify-between mb-4"},Oe.default.createElement("h3",{className:`text-lg font-semibold ${r?"text-white":"text-gray-900"}`},"API Keys"),Oe.default.createElement("div",{className:"flex items-center space-x-2"},Oe.default.createElement("input",{type:"text",value:h,onChange:P=>v(P.target.value),onKeyDown:P=>P.key==="Enter"&&B(),placeholder:"Key name (e.g. production)",className:`px-3 py-2 border rounded-lg text-sm ${r?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),Oe.default.createElement("button",{onClick:B,disabled:!h.trim()||x,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 whitespace-nowrap"},x?"Creating\u2026":"+ Create New Key"))),Oe.default.createElement("div",{className:`p-4 rounded-lg mb-4 ${r?"bg-yellow-900/20 border border-yellow-800":"bg-yellow-50 border border-yellow-200"}`},Oe.default.createElement("p",{className:`text-sm ${r?"text-yellow-300":"text-yellow-800"}`},"\u26A0\uFE0F API keys are secrets. Never share them or commit them to version control.")),C&&Oe.default.createElement("div",{className:`p-4 rounded-lg mb-4 text-sm ${r?"bg-red-900/20 border border-red-800 text-red-300":"bg-red-50 border border-red-200 text-red-700"}`},C),_&&Oe.default.createElement("div",{className:`p-4 rounded-lg mb-4 border ${r?"bg-green-900/20 border-green-800":"bg-green-50 border-green-200"}`},Oe.default.createElement("p",{className:`text-sm font-medium mb-2 ${r?"text-green-300":"text-green-800"}`},"Key \u201C",_.name,"\u201D created. Copy it now \u2014 it won't be shown again."),Oe.default.createElement("div",{className:"flex items-center space-x-2"},Oe.default.createElement("code",{"data-aa-secret":"",className:`flex-1 px-3 py-2 rounded text-sm font-mono break-all ${r?"bg-gray-900 text-green-300":"bg-white text-green-800 border border-green-200"}`},_.token),Oe.default.createElement("button",{onClick:()=>N(_.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"}`},k?"Copied!":"Copy"),Oe.default.createElement("button",{onClick:()=>w(null),className:`px-3 py-2 text-sm rounded ${r?"text-gray-400 hover:text-gray-200":"text-gray-500 hover:text-gray-700"}`},"Dismiss"))),p.length===0?Oe.default.createElement("div",{className:`text-center py-8 ${r?"text-gray-400":"text-gray-500"}`},Oe.default.createElement("p",null,b?"No API keys yet":"Loading\u2026"),b&&Oe.default.createElement("p",{className:"text-sm"},"Create your first API key to authenticate requests")):Oe.default.createElement("div",{className:"space-y-2"},p.map(P=>Oe.default.createElement("div",{key:P.id,className:"flex items-center justify-between p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},Oe.default.createElement("div",null,Oe.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},P.name),Oe.default.createElement("p",{className:`text-sm font-mono ${r?"text-gray-400":"text-gray-500"}`},P.masked_token,Oe.default.createElement("span",{className:"font-sans"}," \xB7 created ",new Date(P.created_at).toLocaleDateString(),P.last_used_at?` \xB7 last used ${new Date(P.last_used_at).toLocaleDateString()}`:" \xB7 never used"))),Oe.default.createElement("button",{onClick:()=>K(P.id),className:`px-3 py-1 text-sm rounded ${r?"bg-red-900/40 text-red-300 hover:bg-red-900/60":"bg-red-50 text-red-600 hover:bg-red-100"}`},"Revoke"))))),Oe.default.createElement(ab,{providerKeys:m,editor:Q,scope:o})),l==="integrations"&&Oe.default.createElement("div",{className:"space-y-6"},Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-1 ${r?"text-white":"text-gray-900"}`},"Integrations"),Oe.default.createElement("p",{className:`text-sm mb-4 ${r?"text-gray-400":"text-gray-500"}`},"Connect GitHub to choose which repositories this workspace may use. A sandbox started from one boots that app's own runtime, so agents and evaluations can run with its tools, and Claude Code or Codex can work on the checkout."),Oe.default.createElement(D3,{callbackStatus:i,appCallbackStatus:s,refreshKey:c})),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement($3,{onChange:()=>d(P=>P+1)})),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement(L3,{onChange:()=>d(P=>P+1)})),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement(B3,{onChange:()=>d(P=>P+1)}))),l==="notifications"&&Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Email Notifications"),Oe.default.createElement("div",{className:"space-y-4"},[{label:"Agent execution alerts",desc:"Get notified when agents fail or complete",enabled:!0},{label:"Weekly usage reports",desc:"Summary of traces, costs, and performance",enabled:!0},{label:"Security alerts",desc:"Important security notifications",enabled:!0},{label:"Product updates",desc:"New features and improvements",enabled:!1}].map((P,j)=>Oe.default.createElement("div",{key:j,className:"flex items-center justify-between py-3 border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},Oe.default.createElement("div",null,Oe.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},P.label),Oe.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},P.desc)),Oe.default.createElement("button",{className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${P.enabled?"bg-red-500":r?"bg-gray-700":"bg-gray-300"}`},Oe.default.createElement("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${P.enabled?"translate-x-6":"translate-x-1"}`})))))),l==="billing"&&Oe.default.createElement("div",{className:"space-y-6"},Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Subscription"),Oe.default.createElement("div",{className:"flex items-center justify-between p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},Oe.default.createElement("div",null,Oe.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},"Free Plan"),Oe.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},"Current plan")),Oe.default.createElement("button",{className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600"},"Upgrade to Pro"))),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Payment Method"),Oe.default.createElement("p",{className:`${r?"text-gray-400":"text-gray-500"}`},"No payment method on file"),Oe.default.createElement("button",{className:`mt-4 px-4 py-2 rounded-lg ${r?"bg-gray-700 text-gray-300":"bg-gray-200 text-gray-700"}`},"Add Payment Method")),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Invoices"),Oe.default.createElement("p",{className:`${r?"text-gray-400":"text-gray-500"}`},"No invoices yet"))))}var Xe=Z(J());var C2e=[{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."}],U3={width:"100%",background:"var(--color-card)",color:"var(--color-text-primary)",border:"1px solid var(--color-border-strong)",borderRadius:8,padding:"9px 12px",font:"inherit"},Xs={color:"var(--color-text-muted)",fontSize:12};function ZR(e){let t=e.latest_run?.path||e.path||"";return/^\/evaluations(?:\/\d+\/runs\/\d+\/report)?$/.test(t)?et(t):null}function A2e({card:e,onAsk:t,busy:r}){let n=ZR(e),o=e.type==="demo_candidate",a=e.run_id||e.latest_run?.run_id,i=e.status||e.latest_run?.status;return Xe.default.createElement(Le,{padding:16,testId:"assistant-evidence-card",style:{display:"grid",gap:10}},Xe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Xe.default.createElement(_e,{tone:o?"warning":"info"},o?"Historical pass":"Recorded evaluation"),i&&Xe.default.createElement(_e,{tone:i==="errored"||i==="failed"?"error":"muted"},i),e.check_strength&&Xe.default.createElement("span",{style:Xs},String(e.check_strength).replaceAll("_"," "))),Xe.default.createElement("div",{style:{fontWeight:600,overflowWrap:"anywhere"}},e.recorded_prompt||e.title),Xe.default.createElement("div",{style:{...Xs,fontFamily:U}},[e.provider,e.model,a&&`run ${a}`].filter(Boolean).join(" \xB7 "),e.completed_at&&` \xB7 ${new Date(e.completed_at).toLocaleString()}`),e.output_excerpt&&Xe.default.createElement("div",{style:{fontSize:13,whiteSpace:"pre-wrap",color:"var(--color-text-secondary)"}},e.output_excerpt),(e.error||e.latest_run?.error)&&Xe.default.createElement("div",{style:{fontSize:13,whiteSpace:"pre-wrap",color:"var(--color-error)"}},e.error||e.latest_run.error),e.fault&&Xe.default.createElement("div",{style:Xs},"Fault: ",e.fault.replaceAll("_"," ")),e.samples_evaluated!=null&&Xe.default.createElement("div",{style:Xs},e.samples_passed||0," / ",e.samples_evaluated," scenarios passed"),e.tool_names?.length>0&&Xe.default.createElement("div",{style:Xs},"Tools recorded: ",e.tool_names.join(", ")),Array.isArray(e.caveats)&&e.caveats.length>0&&Xe.default.createElement("details",{style:Xs},Xe.default.createElement("summary",{style:{cursor:"pointer"}},"Evidence limits"),Xe.default.createElement("ul",{style:{paddingLeft:18,marginTop:8}},e.caveats.map((l,u)=>Xe.default.createElement("li",{key:u},l)))),Xe.default.createElement("div",{style:{display:"flex",gap:12,alignItems:"center",flexWrap:"wrap"}},n&&Xe.default.createElement("a",{href:n,target:"_blank",rel:"noopener noreferrer",style:{fontSize:13,color:"var(--color-accent-ui)"}},n===et("/evaluations")?"Open evaluations \u2192":"Open report \u2192"),e.evaluation_id&&a&&Xe.default.createElement(de,{size:"sm",disabled:r,onClick:()=>t(`Read evaluation ${e.evaluation_id}, run ${a}. Explain its results, the strength of its checks, and what needs fixing.`)},"Explain this run")))}function E2e({draft:e,onReview:t}){return Xe.default.createElement(Le,{padding:18,testId:"assistant-agent-draft",style:{display:"grid",gap:12,borderColor:"var(--color-accent-ui)"}},Xe.default.createElement(We,null,"Agent draft \xB7 not saved"),Xe.default.createElement("div",{style:{fontWeight:600,fontSize:18}},e.name),Xe.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)",fontSize:13}},e.description),Xe.default.createElement("div",{style:{...Xs,fontFamily:U}},e.provider," / ",e.model),Xe.default.createElement("details",null,Xe.default.createElement("summary",{style:{cursor:"pointer",fontSize:13}},"Review instructions and tools"),Xe.default.createElement("pre",{style:{whiteSpace:"pre-wrap",fontFamily:"inherit",fontSize:13,maxHeight:280,overflow:"auto"}},e.instructions),Xe.default.createElement("p",{style:Xs},"Tools: ",e.tools?.length?e.tools.join(", "):"None")),Xe.default.createElement(de,{variant:"primary",onClick:()=>t(e),style:{justifySelf:"start"}},"Review in builder \u2192"))}function W3({session:e,onSessionChange:t,onReviewDraft:r,onOpenSettings:n,executionEnabled:o=!0}){let[a,i]=(0,Xe.useState)(null),[s,l]=(0,Xe.useState)(""),[u,c]=(0,Xe.useState)(!1),[d,p]=(0,Xe.useState)(null),[f,m]=(0,Xe.useState)(!1),y=(0,Xe.useRef)(null),b=(0,Xe.useRef)(null),g=(0,Xe.useRef)(e);g.current=e,(0,Xe.useEffect)(()=>{let k=new AbortController;return fetch("/api/dashboard_assistant",{signal:k.signal}).then(async A=>{let C=await A.json();if(!A.ok)throw new Error(C.error||"Could not load assistant configuration.");i(C),g.current.provider||t({...g.current,...C.defaults})}).catch(A=>{A.name!=="AbortError"&&p({message:A.message})}),()=>{k.abort(),y.current?.abort()}},[]);let h=e.messages||[],v=e.provider||a?.defaults?.provider||"",x=e.model||"",S=a?.limits?.message_characters||8e3,_=a?.providers?.find(k=>k.id===v),w=async k=>{let A=k.trim();if(!A||u||!a||!o||!x.trim()||!f)return;let C=h.map(Q=>({role:Q.role,content:Q.content})).slice(-12);for(;C.reduce((Q,B)=>Q+B.content.length,0)>24e3;)C.shift();let T=[...h,{role:"user",content:A}];t({...e,messages:T}),l(""),p(null),c(!0);let $=new AbortController;y.current=$;try{let Q=await fetch("/api/dashboard_assistant",{method:"POST",signal:$.signal,headers:{"Content-Type":"application/json"},body:JSON.stringify({message:A,history:C,provider:v,model:x.trim(),allow_provider_processing:!0})}),B=await Q.json();if(!Q.ok){p({message:typeof B.error=="string"?B.error:"The assistant could not complete this request.",setup:B.setup_required,retry:A}),t({...e,messages:h}),l(A);return}t({...e,messages:[...T,{role:"assistant",content:B.answer,cards:B.cards||[],references:B.references||[],drafts:B.drafts||[],limitations:B.limitations||[]}]})}catch(Q){Q.name!=="AbortError"&&(p({message:"Connection interrupted. No answer was received; the server may still be finishing the request."}),t({...e,messages:h}),l(A))}finally{c(!1)}};return Xe.default.createElement("div",{style:{maxWidth:980,margin:"0 auto",color:"var(--color-text-primary)",display:"grid",gap:22}},Xe.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:16,alignItems:"start"}},Xe.default.createElement("div",null,Xe.default.createElement(We,null,"Workspace assistant"),Xe.default.createElement("h1",{style:{margin:"8px 0",fontSize:30,fontWeight:600,letterSpacing:"-0.035em"}},"Ask ActiveAgents"),Xe.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)",fontSize:14}},"Find evaluation evidence. Understand failures. Build the next agent.")),h.length>0&&Xe.default.createElement(de,{disabled:u,onClick:()=>{t({...e,messages:[]}),p(null),l(""),m(!1)}},"New conversation")),!h.length&&Xe.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:12}},C2e.map(k=>Xe.default.createElement("button",{key:k.label,onClick:()=>{l(k.message),b.current?.querySelector("textarea")?.focus()},style:{textAlign:"left",padding:20,background:"var(--color-card)",color:"var(--color-text-primary)",border:"1px solid var(--color-border)",borderRadius:12,cursor:"pointer"}},Xe.default.createElement("div",{style:{fontSize:14,fontWeight:600,marginBottom:8}},k.label," \u2197"),Xe.default.createElement("div",{style:{fontSize:12,lineHeight:1.6,color:"var(--color-text-secondary)"}},k.message)))),Xe.default.createElement("div",{role:"log","aria-label":"Assistant conversation","aria-live":"polite",style:{display:"grid",gap:20}},h.map((k,A)=>Xe.default.createElement("div",{key:A,style:{display:"grid",gap:12}},Xe.default.createElement(We,{color:k.role==="user"?"var(--color-text-muted)":"var(--color-accent-ui)"},k.role==="user"?"You":"ActiveAgents"),Xe.default.createElement("div",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere",lineHeight:1.7,fontSize:14}},k.content),k.cards?.map(C=>Xe.default.createElement(A2e,{key:C.id,card:C,onAsk:T=>{l(T),b.current?.querySelector("textarea")?.focus()},busy:u})),k.references?.length>0&&Xe.default.createElement("div",{"aria-label":"Evidence references",style:{...Xs,display:"flex",gap:12,flexWrap:"wrap"}},k.references.map(C=>{let T=ZR(C);return T&&Xe.default.createElement("a",{key:C.id,href:T,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--color-accent-ui)"}},C.id)})),k.drafts?.map(C=>Xe.default.createElement(E2e,{key:C.id,draft:C,onReview:r})),k.limitations?.length>0&&Xe.default.createElement("details",{style:Xs},Xe.default.createElement("summary",{style:{cursor:"pointer"}},"Scope of this answer"),Xe.default.createElement("ul",{style:{paddingLeft:18}},k.limitations.map((C,T)=>Xe.default.createElement("li",{key:T},C)))))),u&&Xe.default.createElement("div",{role:"status",style:{color:"var(--color-text-secondary)",fontSize:13}},"Working with your workspace evidence\u2026")),d&&Xe.default.createElement(Le,{padding:16,role:"alert",style:{borderColor:"var(--color-warning)",display:"grid",gap:12}},Xe.default.createElement("div",{style:{fontSize:14}},d.message),d.setup&&Xe.default.createElement(de,{onClick:n,style:{justifySelf:"start"}},"Configure provider \u2192")),Xe.default.createElement(Le,{padding:18},Xe.default.createElement("form",{ref:b,onSubmit:k=>{k.preventDefault(),w(s)},style:{display:"grid",gap:14}},Xe.default.createElement("label",{htmlFor:"assistant-question",style:{fontSize:13,fontWeight:600}},"What would you like to do?"),Xe.default.createElement("textarea",{id:"assistant-question",placeholder:"Ask about your evals, or describe an agent to build\u2026",value:s,onChange:k=>l(k.target.value),maxLength:S,rows:3,disabled:u,style:{...U3,resize:"vertical",boxSizing:"border-box"}}),Xe.default.createElement("div",{style:{display:"flex",gap:12,alignItems:"end",flexWrap:"wrap"}},Xe.default.createElement("label",{style:{display:"grid",gap:5,fontSize:11,flex:"1 1 140px"}},"Provider",Xe.default.createElement("select",{"aria-label":"Assistant provider",value:v,disabled:u||!a,onChange:k=>{let A=a.providers.find(C=>C.id===k.target.value);m(!1),t({...e,provider:A?.id||"",model:A?.default_model||""})},style:U3},Xe.default.createElement("option",{value:""},a?"Choose a provider\u2026":"Loading\u2026"),a?.providers?.map(k=>Xe.default.createElement("option",{key:k.id,value:k.id},k.id,k.configured?"":" \xB7 setup needed")))),Xe.default.createElement("label",{style:{display:"grid",gap:5,fontSize:11,flex:"2 1 200px"}},"Model",Xe.default.createElement("input",{"aria-label":"Assistant model",value:x,disabled:u||!a,maxLength:160,onChange:k=>{m(!1),t({...e,model:k.target.value})},style:U3})),Xe.default.createElement(de,{variant:"primary",type:"submit",disabled:u||!a||!s.trim()||!x.trim()||!o||!f},u?"Working\u2026":"Ask ActiveAgents \u2192")),Xe.default.createElement("label",{style:{display:"flex",gap:9,alignItems:"start",fontSize:12,lineHeight:1.6,color:"var(--color-text-secondary)"}},Xe.default.createElement("input",{type:"checkbox",checked:f,disabled:u||!a,onChange:k=>m(k.target.checked),style:{marginTop:4}}),Xe.default.createElement("span",null,"Allow ",v||"the selected provider"," / ",x||"model"," to process my messages, recent conversation history, and authorized evaluation report excerpts for this conversation.")),Xe.default.createElement("div",{style:{...Xs,lineHeight:1.5}},o?_&&!_.configured?"This provider needs a credential in Settings before the assistant can respond.":"Uses your configured model provider. Agent drafts are reviewed before saving.":"Agent execution is disabled on this dashboard."," ","Reloading or starting a new conversation clears this conversation view. Your provider's data retention settings still apply."))))}var ga=Z(J());var vt=Z(J());var na=Z(J());function N2e(e){let t=e.filter(o=>!o.ok);if(t.length===0)return"ready";let r=t.filter(o=>o.blocking).length,n=`${t.length} ${t.length===1?"item needs":"items need"} action`;return r?`${n} \xB7 ${r} ${r===1?"blocks":"block"} creating a project`:n}function H3({capabilities:e}){let t=e?.items||[],r=t.some(i=>!i.ok&&i.blocking),[n,o]=(0,na.useState)(r),a=N2e(t);return na.default.createElement(en,{title:"Before you start",meta:e?.ready?"ready":"action needed",testId:"project-capabilities"},na.default.createElement("button",{type:"button","data-testid":"capabilities-toggle","aria-expanded":n,onClick:()=>o(!n),style:{display:"flex",width:"100%",alignItems:"center",gap:8,padding:"8px 12px",border:0,background:"transparent",cursor:"pointer",fontSize:13,color:r?"var(--color-error-text)":"var(--color-text-secondary)",textAlign:"left"}},na.default.createElement("span",{"aria-hidden":"true"},n?"\u25BE":"\u25B8"),na.default.createElement("span",{"data-testid":"capabilities-summary"},a),na.default.createElement("span",{style:{marginLeft:"auto",fontSize:12,color:"var(--color-text-muted)"}},n?"Hide":"Show"," checklist")),n&&na.default.createElement("ul",{style:{listStyle:"none",margin:0,padding:0}},t.map(i=>na.default.createElement("li",{key:i.key,"data-testid":`capability-${i.key}`,style:{display:"flex",gap:10,padding:"10px 12px",borderTop:"1px solid var(--color-border-light)"}},na.default.createElement(Na,{kind:i.ok?"pass":i.blocking?"fault":"info"}),na.default.createElement("div",{style:{minWidth:0,flex:1}},na.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"baseline",flexWrap:"wrap"}},na.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},i.label),!i.ok&&i.blocking&&na.default.createElement(We,{color:"var(--color-error-text)"},"blocks creating a project")),i.detail&&na.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)",overflowWrap:"anywhere"}},i.detail),!i.ok&&i.fix&&na.default.createElement("code",{"data-testid":`capability-fix-${i.key}`,style:{display:"block",marginTop:6,padding:"6px 8px",borderRadius:6,fontFamily:U,fontSize:12,background:"var(--color-muted)",color:"var(--color-text-cell)",overflowWrap:"anywhere"}},i.fix))))))}var rn=Z(J());var JR={width:"100%",padding:"6px 10px",borderRadius:6,fontSize:13,fontFamily:U,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"};function ub({rows:e,onChange:t,repository:r}){let[n,o]=(0,rn.useState)(""),a=(s,l)=>t(e.map((u,c)=>c===s?{...u,...l}:u)),i=n?uA(n)||(e.some(s=>s.name===n)?`${n} is already listed.`:null):null;return rn.default.createElement("div",{"data-testid":"project-secrets-form",style:{display:"flex",flexDirection:"column",gap:12}},e.length===0&&rn.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"No environment variables were found in .env.example, .env.sample, .activeagents/sandbox.yml or ENV call sites."),e.map((s,l)=>{let u=uA(s.name),c=s.useOrganizationKey?[]:cA(s.name,s.value);return rn.default.createElement("div",{key:s.name,"data-testid":`secret-row-${s.name}`,style:{borderTop:"1px solid var(--color-border-light)",paddingTop:10}},rn.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},rn.default.createElement("span",{style:{fontFamily:U,fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},s.name),s.required&&rn.default.createElement(_e,{tone:"warning"},"required"),s.set&&rn.default.createElement(_e,{tone:"success"},"set"),s.sources?.length>0&&rn.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},s.sources.join(" \xB7 "))),s.description&&rn.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},s.description),u?rn.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},u):rn.default.createElement(rn.default.Fragment,null,!s.useOrganizationKey&&rn.default.createElement("input",{type:"password",autoComplete:"off",value:s.value,onChange:d=>a(l,{value:d.target.value}),placeholder:s.set?"Leave empty to keep the current value":"Value","aria-label":`${s.name} value`,style:{...JR,marginTop:6}}),s.organizationKey&&rn.default.createElement("label",{style:{display:"flex",gap:6,alignItems:"center",marginTop:6,fontSize:13,color:"var(--color-text-cell)"}},rn.default.createElement("input",{type:"checkbox",checked:s.useOrganizationKey,onChange:d=>a(l,{useOrganizationKey:d.target.checked,consent:!1,value:""})}),"Use the organization's ",s.organizationKey," key"),s.useOrganizationKey&&rn.default.createElement("label",{"data-testid":`secret-consent-${s.name}`,style:{display:"flex",gap:6,alignItems:"flex-start",marginTop:4,fontSize:12,color:"var(--color-warning-text)"}},rn.default.createElement("input",{type:"checkbox",checked:s.consent,onChange:d=>a(l,{consent:d.target.checked})}),"I understand ",r||"the repository","'s code can read the organization's ",s.organizationKey," key. It is read when the sandbox boots and never copied into the project."),c.map(d=>rn.default.createElement("div",{key:d.code,"data-testid":`secret-warning-${d.code}`,style:{marginTop:4,fontSize:12,color:"var(--color-warning-text)"}},d.message))))}),rn.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"flex-start",borderTop:"1px solid var(--color-border-light)",paddingTop:10}},rn.default.createElement("div",{style:{flex:1}},rn.default.createElement(We,{as:"label",htmlFor:"project-secret-new-name"},"Another variable"),rn.default.createElement("input",{id:"project-secret-new-name",type:"text",value:n,onChange:s=>o(s.target.value.trim()),placeholder:"NAME",style:{...JR,marginTop:4}}),i&&rn.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},i)),rn.default.createElement(de,{size:"sm",style:{marginTop:20},disabled:!n||!!i,onClick:()=>{t(NR(e,n)),o("")}},"Add")))}var QR={width:"100%",padding:"6px 10px",borderRadius:6,fontSize:13,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"};function T2e({repository:e,preflight:t}){return t?vt.default.createElement("div",{"data-testid":"project-preflight",style:{display:"flex",flexDirection:"column",gap:6}},vt.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},vt.default.createElement("span",{style:{fontFamily:U,fontSize:13,color:"var(--color-text-primary)"}},e),vt.default.createElement(_e,{tone:dA[t.status]||"muted"},t.summary)),vt.default.createElement("div",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-muted)"}},"Ruby ",t.ruby||"unpinned",t.ruby_source?` (${t.ruby_source})`:""," \xB7 railties ",t.railties||"not locked"," ","\xB7 engine ",t.actionagent||"not bundled"," \xB7 ref ",t.ref),t.reasons?.slice(1).map(r=>vt.default.createElement("div",{key:r,style:{fontSize:13,color:"var(--color-error-text)"}},r)),t.warnings?.map(r=>vt.default.createElement("div",{key:r,style:{fontSize:13,color:"var(--color-warning-text)"}},r))):null}function q3({onCreated:e,onCancel:t}){let[r,n]=(0,vt.useState)(null),[o,a]=(0,vt.useState)(null),[i,s]=(0,vt.useState)(!1),[l,u]=(0,vt.useState)(""),[c,d]=(0,vt.useState)(null),[p,f]=(0,vt.useState)(null),[m,y]=(0,vt.useState)(null),[b,g]=(0,vt.useState)(!1),[h,v]=(0,vt.useState)([]),[x,S]=(0,vt.useState)(""),[_,w]=(0,vt.useState)(!1),[k,A]=(0,vt.useState)("/"),[C,T]=(0,vt.useState)(!1),[$,Q]=(0,vt.useState)(null),B=(0,vt.useCallback)(async()=>{let M=await fetch("/api/projects/capabilities"),W=await M.json().catch(()=>({}));if(!M.ok)throw new Error(ot(W,`Could not check what this dashboard can do (HTTP ${M.status}).`));return n(W),W},[]),K=(0,vt.useCallback)(async()=>{a(null);let M=await fetch("/api/github_connection/repositories"),W=await M.json().catch(()=>({}));if(W.reconnect_required){s(!0);return}if(!M.ok)throw new Error(ot(W,`Could not list repositories (HTTP ${M.status}).`));s(!1),a(W.repositories||[])},[]);(0,vt.useEffect)(()=>{B().then(M=>M.github?.connected?K():null).catch(M=>Q(M.message))},[B,K]);let N=(0,vt.useCallback)(async(M,{typed:W=!1}={})=>{Q(null),f(null),g(!0);try{let Y=`repository=${encodeURIComponent(M)}`,L=await fetch(`/api/projects/preflight?${Y}`),G=await L.json().catch(()=>({}));if(G.reconnect_required){s(!0);return}if(!L.ok){let Me=ot(G,`Could not check ${M} (HTTP ${L.status}).`);W?f(Me):Q(Me);return}if(d(G.repository.full_name),y(G.preflight),S(Me=>TR({name:Me,edited:_,fullName:G.repository.full_name})),v([]),G.preflight.status==="unsupported")return;let q=await fetch(`/api/projects/discover_secrets?${Y}`),oe=await q.json().catch(()=>({}));if(!q.ok)throw new Error(ot(oe,`Could not read ${M}'s environment variables (HTTP ${q.status}).`));v(ib(oe.variables||[]))}catch(Y){Q(Y.message)}finally{g(!1)}},[_]),O=async()=>{T(!0),Q(null);try{let M=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repository:c,name:x,start_url:k,secrets:sb(h)})}),W=await M.json().catch(()=>({}));if(!M.ok)throw new Error(ot(W,`Could not create the project (HTTP ${M.status}).`));e(W.project)}catch(M){Q(M.message)}finally{T(!1)}},D=r?.github,P=OR({github:D,repositories:o,reconnectRequired:i,pendingApproval:D?.pending_approval===!0}),j=b?"Checking the repository\u2026":PR({capabilities:r,preflight:m,secretsProblem:Fh(h)});return vt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"new-project"},vt.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16}},vt.default.createElement("div",{style:{flex:1}},vt.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"New project"),vt.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"Boot a repository in a sandbox, installing the engine there when it does not have it, and evaluate an agent against the running app.")),vt.default.createElement(de,{onClick:t},"Cancel")),$&&vt.default.createElement("div",{style:{padding:"10px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},$),vt.default.createElement(Le,null,vt.default.createElement(We,null,"Repository"),vt.default.createElement("div",{style:{marginTop:8}},vt.default.createElement(kf,{mode:"single",state:P,repositories:o||[],filter:l,onFilterChange:u,selected:c,onSelect:M=>N(M),settingsHref:et("/settings?tab=integrations"),missingRepositoryUrl:D?.access_settings_url,onRefresh:()=>K().catch(M=>Q(M.message)),onTypeName:M=>N(M,{typed:!0}),typedNameError:p})),m&&vt.default.createElement("div",{style:{marginTop:12}},vt.default.createElement(T2e,{repository:c,preflight:m}))),r&&vt.default.createElement(H3,{capabilities:r}),m&&m.status!=="unsupported"&&vt.default.createElement(Le,null,vt.default.createElement(We,null,"Project"),vt.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:12,marginTop:8}},vt.default.createElement("label",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Name",vt.default.createElement("input",{type:"text",value:x,onChange:M=>{S(M.target.value),w(M.target.value!=="")},style:{...QR,marginTop:4}})),vt.default.createElement("label",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Start URL (must not answer 5xx once booted)",vt.default.createElement("input",{type:"text",value:k,onChange:M=>A(M.target.value),style:{...QR,marginTop:4,fontFamily:U}}))),vt.default.createElement("div",{style:{marginTop:16}},vt.default.createElement(We,null,"Secrets the boot needs"),vt.default.createElement("div",{style:{marginTop:8}},vt.default.createElement(ub,{rows:h,onChange:v,repository:c})))),vt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12,justifyContent:"flex-end"}},j&&vt.default.createElement("span",{"data-testid":"create-problem",style:{fontSize:13,color:"var(--color-text-secondary)"}},j),vt.default.createElement(de,{variant:"primary",onClick:O,disabled:!!j||C,testId:"create-project"},C?"Creating\u2026":"Create project")))}var Ve=Z(J());var Lr=Z(J());var O2e={success:"success",error:"error",progress:"info",neutral:"muted"};function K3({project:e}){let[t,r]=(0,Lr.useState)(null),[n,o]=(0,Lr.useState)(null),[a,i]=(0,Lr.useState)(""),[s,l]=(0,Lr.useState)(!1),u=e.sandbox,c=e.sandbox_state==="ready"&&!!u?.session_id,d=(0,Lr.useCallback)(async()=>{let m=await fetch(`/api/interactions?project_id=${e.id}`),y=await m.json().catch(()=>({}));if(!m.ok){o(ot(y,`Could not list the conversations (HTTP ${m.status}).`));return}r(y.interactions||[])},[e.id]);(0,Lr.useEffect)(()=>{d()},[d]);let p=async m=>{m.preventDefault();let y=a.trim();if(!(!y||!c)){l(!0),o(null);try{let b=await fetch(`/api/sandboxes/${encodeURIComponent(u.session_id)}/code_sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:y,origin:"chat"})}),g=await b.json().catch(()=>({}));if(!b.ok)throw new Error(ot(g,`The conversation did not start (HTTP ${b.status}).`));lt(ms(g.code_session.id))}catch(b){o(b.message),l(!1)}}},f={margin:0,fontSize:13,color:"var(--color-text-secondary)"};return Lr.default.createElement("div",{style:{display:"grid",gap:12},"data-testid":"project-sessions"},Lr.default.createElement(Le,null,Lr.default.createElement("form",{onSubmit:p,style:{display:"grid",gap:8}},Lr.default.createElement(We,{as:"label",htmlFor:`project-${e.id}-chat`},"Chat with Claude Code"),Lr.default.createElement("textarea",{id:`project-${e.id}-chat`,value:a,onChange:m=>i(m.target.value),rows:3,disabled:!c,placeholder:c?`What should Claude Code do in ${e.repository}?`:"Boot the sandbox to start a conversation",style:{width:"100%",fontSize:13,padding:8,borderRadius:6,border:"1px solid var(--color-border)",background:"var(--color-surface)",color:"var(--color-text-primary)"}}),Lr.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:8}},Lr.default.createElement("p",{style:f},"It edits the checkout and never commits or pushes. The conversation opens with the sandbox's browser beside it."),Lr.default.createElement(de,{variant:"primary",type:"submit",disabled:!c||s||!a.trim(),testId:"project-start-conversation"},s?"Starting\u2026":"Start")),n&&Lr.default.createElement("p",{role:"alert",style:{...f,color:"var(--color-error-text)"}},n))),Lr.default.createElement(Le,null,Lr.default.createElement(We,null,"Conversations"),t===null&&!n&&Lr.default.createElement("p",{style:f},"Loading\u2026"),t?.length===0&&Lr.default.createElement("p",{style:f},"No conversations yet."),Lr.default.createElement("ul",{style:{listStyle:"none",margin:"8px 0 0",padding:0,display:"grid",gap:8}},(t||[]).map(m=>{let y=fs(m.status),b=ms(Rp(m.id));return Lr.default.createElement("li",{key:m.id},Lr.default.createElement("a",{href:et(b),onClick:g=>{g.preventDefault(),lt(b)},style:{display:"grid",gap:2,textDecoration:"none",color:"var(--color-text-primary)"},"data-testid":"project-conversation"},Lr.default.createElement("span",{style:{display:"flex",gap:8,alignItems:"center"}},Lr.default.createElement(_e,{tone:O2e[y.tone]||"muted"},y.label),Lr.default.createElement("span",{style:{fontSize:13}},m.preview?.input||m.display_name)),Lr.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",fontFamily:U}},l2(m))))}))))}var sr=Z(J());function RR(e){let t=Number(e)||0;return t>0?`Waiting for you: ${t}`:null}function V3(e){return(e?.options||[]).map(t=>{if(t&&typeof t=="object"){let r=String(t.value??t.label??"");return{value:r,label:String(t.label??r)}}return{value:String(t),label:String(t)}})}function eee(e,t){if(!e||e.kind==="confirm")return null;let r=typeof t=="string"?t:"";return r.trim()?e.kind==="secret"&&r.length<8?"A secret is at least 8 characters.":e.kind==="choice"&&!V3(e).some(n=>n.value===r)?"Choose one of the answers.":null:e.kind==="choice"?"Choose an answer.":"Type an answer."}function tee(e,t){return e?.kind==="confirm"?{answer:t===!0}:{answer:t}}function ree(e){return e?e.available?e.last_run?`The setup assistant ${{awaiting_input:"is waiting for you",running:"is working",pending:"is starting",complete:"finished",failed:"failed"}[e.last_run.status]||e.last_run.status}.`:e.auto?"When a boot fails, the setup assistant reads its logs and asks for what is missing.":"The setup assistant starts only when you ask for it.":e.reason||"The setup assistant is not available.":null}function nee(e){return["pending","running","awaiting_input"].includes(e?.setup?.last_run?.status)||G3(e)||(Number(e?.pending_input_requests)||0)>0}var P2e=6e4;function oee(e,t,r=Date.now()){return e?.sandbox_state!=="failed"||e?.setup?.auto===!1||t==null||!e.setup?.claude_code?.available&&!e.setup?.available?!1:r-t[n.name,o]));return Object.keys(e).sort((n,o)=>(r.get(n)??1/0)-(r.get(o)??1/0)||n.localeCompare(o)).map(n=>{let o=(t.find(i=>i.name===n)?.columns||[]).map(i=>i.name),a=i=>[...i].sort((s,l)=>(o.indexOf(s)+1||1/0)-(o.indexOf(l)+1||1/0));return{model:n,filterable:a(e[n].filterable),returns:a(e[n].returns)}})}function uee(e,t=[],r=[]){let n=o=>JSON.stringify(o.map(a=>({model:a.model,filterable:[...a.filterable||[]].sort(),returns:[...a.returns||[]].sort()})).sort((a,i)=>a.model.localeCompare(i.model)));return n(X3(e,r))!==n(t)}function cee(e){return e?e.status==="queued"||e.status==="publishing"?{label:"publishing\u2026",tone:"info"}:e.status==="failed"?e.head_commit&&!e.number?{label:"branch published, pull request not opened",tone:"error"}:{label:"failed",tone:"error"}:e.state==="merged"?{label:"merged",tone:"success"}:e.state==="closed"?{label:"closed",tone:"muted"}:e.number?{label:e.draft?"draft open":"open",tone:"accent"}:{label:"branch published",tone:"warning"}:{label:"not opened",tone:"muted"}}function dee(e){return e?e.status==="queued"||e.status==="publishing"?2e3:e.number&&!["merged","closed"].includes(e.state)?6e4:null:null}function pee(e){let t=e?.status==="queued"||e?.status==="publishing",r=!!e?.number&&!["merged","closed"].includes(e?.state),n=!e||["merged","closed"].includes(e.state)||!e.number&&!e.head_commit&&e.status==="failed",o=null;return!t&&e?.head_commit&&!e.number&&(o=e.status==="draft_refused"?"regular":"draft"),{canOpen:!t&&n,canUpdate:!t&&r,openBranch:o}}function fee(e,t=[],r=""){let n=new URLSearchParams;for(let a of t)n.append("paths[]",a);r&&n.set("title",r);let o=n.toString();return`/api/projects/${e}/install_pull_request/patch${o?`?${o}`:""}`}async function mee(e){return e.json().catch(()=>({}))}function Z3({project:e,onSaved:t,onConfirmationRequired:r}){let[n,o]=(0,sr.useState)(null),[a,i]=(0,sr.useState)({}),[s,l]=(0,sr.useState)(null),[u,c]=(0,sr.useState)(!1),d=e.schema_tools||[],p=(0,sr.useCallback)(async()=>{let m=await fetch(`/api/projects/${e.id}/app_models`),y=await mee(m);if(m.status===409){o(null);return}if(!m.ok)throw new Error(ot(y,`Could not list the app's models (HTTP ${m.status}).`));o(y.models||[]),i(see(y.schema_tools||[]))},[e.id]);(0,sr.useEffect)(()=>{e.app_models_listed&&p().catch(m=>l(m.message))},[p,e.app_models_listed]);let f=async(m,y=!1)=>{c(!0),l(null);try{let b=await fetch(`/api/projects/${e.id}/schema_tools`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({schema_tools:X3(a,n||[]),apply:m,...y?{confirm:!0}:{}})}),g=await mee(b);if(b.status===409&&g.code==="confirmation_required"){r?.(g.confirmation,()=>f(m,!0));return}if(!b.ok)throw new Error(ot(g,`Could not save what the assistant may read (HTTP ${b.status}).`));t?.(g.project)}catch(b){l(b.message)}finally{c(!1)}};return sr.default.createElement(M2e,{listed:e.app_models_listed,models:n,selection:a,changed:n?uee(a,d,n):!1,busy:u,error:s,onToggle:(m,y,b)=>i(g=>lee(g,m,y,b)),onSave:()=>f(!1),onSaveAndRestart:()=>f(!0)})}function M2e({listed:e,models:t,selection:r,changed:n,busy:o,error:a,onToggle:i,onSave:s,onSaveAndRestart:l}){let u=(0,sr.useMemo)(()=>Object.keys(r||{}),[r]);return sr.default.createElement(en,{title:"Choose what the assistant may read",meta:`${u.length} ${u.length===1?"model":"models"}`,testId:"project-assistant-reads"},sr.default.createElement("p",{style:{margin:0,padding:"10px 12px",fontSize:13,color:"var(--color-text-secondary)"}},"Each model you choose gets find, count and get tools that filter on and return only the columns ticked here. Columns that look like secrets are never listed. The tools are written into the sandbox's checkout on every boot, and go into the install pull request."),!e&&sr.default.createElement("p",{style:{margin:0,padding:"0 12px 12px",fontSize:13,color:"var(--color-text-secondary)"}},"Boot the project first: a boot lists the app's models."),a&&sr.default.createElement("div",{style:{padding:"8px 12px",fontSize:13,color:"var(--color-error-text)"}},a),e&&t&&t.length===0&&sr.default.createElement("p",{style:{margin:0,padding:"0 12px 12px",fontSize:13,color:"var(--color-text-secondary)"}},"The app has no models with a table."),(t||[]).map(c=>{let d=r?.[c.name];return sr.default.createElement("details",{key:c.name,open:!!d,"data-testid":`assistant-model-${c.name}`,style:{borderTop:"1px solid var(--color-border-light)",padding:"8px 12px"}},sr.default.createElement("summary",{style:{cursor:"pointer",display:"flex",gap:8,alignItems:"center"}},sr.default.createElement("span",{style:{fontFamily:U,fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},c.name),sr.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-muted)"}},c.table),d&&sr.default.createElement(_e,{tone:"accent"},`${d.filterable.size} filter \xB7 ${d.returns.size} read`)),sr.default.createElement("table",{style:{marginTop:6,borderCollapse:"collapse",fontSize:12}},sr.default.createElement("thead",null,sr.default.createElement("tr",{style:{color:"var(--color-text-muted)",textAlign:"left"}},sr.default.createElement("th",{style:{padding:"2px 12px 2px 0",fontWeight:500}},"Column"),sr.default.createElement("th",{style:{padding:"2px 12px",fontWeight:500}},"Filter on"),sr.default.createElement("th",{style:{padding:"2px 12px",fontWeight:500}},"Read back"))),sr.default.createElement("tbody",null,c.columns.map(p=>sr.default.createElement("tr",{key:p.name},sr.default.createElement("td",{style:{padding:"2px 12px 2px 0",fontFamily:U,color:"var(--color-text-primary)"}},p.name," ",sr.default.createElement("span",{style:{color:"var(--color-text-muted)"}},p.type)),["filterable","returns"].map(f=>sr.default.createElement("td",{key:f,style:{padding:"2px 12px",textAlign:"center"}},sr.default.createElement("input",{type:"checkbox","aria-label":`${f==="filterable"?"Filter on":"Read back"} ${c.name}.${p.name}`,checked:!!d?.[f]?.has(p.name),disabled:o,onChange:()=>i(c.name,f,p.name)}))))))))}),e&&t&&t.length>0&&sr.default.createElement("div",{style:{display:"flex",gap:8,padding:"10px 12px",borderTop:"1px solid var(--color-border-light)"}},sr.default.createElement(de,{size:"sm",onClick:s,disabled:o||!n},"Save"),sr.default.createElement(de,{size:"sm",variant:"primary",onClick:l,disabled:o,testId:"assistant-reads-restart"},o?"Saving\u2026":"Save and restart the sandbox")))}var ei=Z(J());function J3({boot:e,logTail:t,error:r,sandboxState:n,waiting:o}){let a=e?.steps||[];return ei.default.createElement(en,{title:"Boot",meta:RR(o)||n||"none",testId:"project-boot-progress"},a.length===0&&ei.default.createElement("p",{style:{margin:0,padding:12,fontSize:13,color:"var(--color-text-secondary)"}},n==="booting"?"Waiting for the sandbox to report its steps\u2026":"No boot to show yet."),a.length>0&&ei.default.createElement("ol",{style:{listStyle:"none",margin:0,padding:0}},a.map(i=>ei.default.createElement("li",{key:i.name,"data-testid":`boot-step-${i.name}`,style:{display:"grid",gridTemplateColumns:"92px 170px 1fr 80px",gap:10,alignItems:"baseline",padding:"8px 12px",borderTop:"1px solid var(--color-border-light)"}},ei.default.createElement(_e,{tone:DR[i.status]||"muted"},i.status),ei.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-primary)"}},MR(i.name)," ",ei.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},i.name)),ei.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",overflowWrap:"anywhere"}},i.detail||""),ei.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-muted)",textAlign:"right"}},i.status==="pending"?"":IR(i.duration_ms))))),r&&ei.default.createElement("div",{"data-testid":"boot-error",style:{padding:"8px 12px",fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)",whiteSpace:"pre-wrap"}},r),t?.text&&ei.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)"}},ei.default.createElement("div",{style:{padding:"6px 12px",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},t.truncated?"last lines of ":"",t.step,".log"),ei.default.createElement("pre",{"data-testid":"boot-log-tail",style:{margin:0,padding:"8px 12px",maxHeight:280,overflow:"auto",fontFamily:U,fontSize:12,background:"var(--color-muted)",color:"var(--color-text-cell)",whiteSpace:"pre-wrap"}},t.text)))}var Tl=Z(J());var gee="/settings?tab=integrations";function Q3({project:e,modes:t=[],watchOnOpen:r=!1,onChange:n}){let o=e.sandbox,a=e.sandbox_state==="ready"&&!!o?.session_id,i={margin:0,fontSize:13,color:"var(--color-text-secondary)"},s;return t.length===0?s=Tl.default.createElement("p",{style:i},"This dashboard's sandbox backend runs no browsers. The project's agent works through the app's tools."):a?s=Tl.default.createElement(Tl.default.Fragment,null,Tl.default.createElement("p",{style:i},"A browser of the sandbox's own, opened on ",e.repository,"'s running app. Watch it live, take over to click, type and upload files, and hand back. Agent runs reach it as ",Tl.default.createElement("span",{style:{fontFamily:U}},"browser:",o.session_id),"."),Tl.default.createElement(Sf,{key:o.session_id,sandbox:o,modes:t,watchOnOpen:r,onChange:n})):s=Tl.default.createElement("p",{style:i},"Boot the sandbox to start its browser. It opens on the running app, and you can watch it live and take over."),Tl.default.createElement(en,{title:"Browser",meta:Tl.default.createElement(Gr,{href:et(gee),onClick:()=>lt(gee)},"Manage runtimes"),testId:"project-browser",bodyStyle:{padding:12,display:"flex",flexDirection:"column",gap:8}},s)}var Fn=Z(J());var I2e=e=>e?new Date(e).toLocaleString():"\u2014",D2e={entered:()=>"entered",organization_key:e=>`organization's ${e.provider} key`,setup_assistant:()=>"set by the setup assistant, not secret"};function R3({secrets:e,onReplace:t,onDelete:r,error:n}){let[o,a]=(0,Fn.useState)(null),[i,s]=(0,Fn.useState)(""),[l,u]=(0,Fn.useState)(!1),c=o?cA(o,i):[],d=async p=>{u(!0);try{await p()}catch{return}finally{u(!1)}};return Fn.default.createElement(en,{title:"Environment",meta:`${e.length} ${e.length===1?"secret":"secrets"}`,testId:"project-environment"},n&&Fn.default.createElement("div",{style:{padding:"8px 12px",fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},n),e.length===0&&Fn.default.createElement("p",{style:{margin:0,padding:12,fontSize:13,color:"var(--color-text-secondary)"}},"This project sets no environment variables."),Fn.default.createElement("ul",{style:{listStyle:"none",margin:0,padding:0}},e.map(p=>Fn.default.createElement("li",{key:p.name,"data-testid":`environment-${p.name}`,style:{padding:"10px 12px",borderTop:"1px solid var(--color-border-light)"}},Fn.default.createElement("div",{style:{display:"flex",gap:10,alignItems:"center",flexWrap:"wrap"}},Fn.default.createElement("span",{style:{fontFamily:U,fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},p.name),Fn.default.createElement(_e,{tone:p.source==="organization_key"?"info":"muted"},D2e[p.source]?.(p)||"entered"),Fn.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-muted)"}},p.set_by?.name?`set by ${p.set_by.name}`:"set"," \xB7 ",I2e(p.updated_at)),Fn.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:6}},p.source!=="organization_key"&&Fn.default.createElement(de,{size:"sm",onClick:()=>{a(p.name),s("")},disabled:l},"Replace"),Fn.default.createElement(de,{size:"sm",variant:"danger",onClick:()=>d(()=>r(p.name)),disabled:l},"Delete"))),p.source==="setup_assistant"&&typeof p.value=="string"&&Fn.default.createElement("div",{style:{marginTop:4,fontFamily:U,fontSize:12,color:"var(--color-text-secondary)",wordBreak:"break-all"}},p.name,"=",p.value),o===p.name&&Fn.default.createElement("form",{style:{display:"flex",gap:6,marginTop:8,flexWrap:"wrap"},onSubmit:f=>{f.preventDefault(),i&&d(async()=>{await t(p.name,i),a(null),s("")})}},Fn.default.createElement("input",{type:"password",autoComplete:"off",value:i,onChange:f=>s(f.target.value),placeholder:"New value","aria-label":`New value for ${p.name}`,style:{flex:1,minWidth:200,padding:"6px 10px",borderRadius:6,fontFamily:U,fontSize:13,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"}}),Fn.default.createElement(de,{size:"sm",variant:"primary",type:"submit",disabled:!i||l},"Save"),Fn.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>a(null)},"Cancel"),c.map(f=>Fn.default.createElement("div",{key:f.code,style:{width:"100%",fontSize:12,color:"var(--color-warning-text)"}},f.message)))))))}var Un=Z(J());var vd=Z(J());var j2e=["proposed","edited"],rj={answerable:{label:"answerable",tone:"success",title:"Every expected tool is one the agent can call."},needs_tool:{label:"needs a tool",tone:"warning",title:"The agent cannot call every tool a good answer needs."},unverified:{label:"unverified",tone:"muted",title:"The agent's tools could not be read when this was checked."}},gA={pending:"info",running:"info",review:"accent",closed:"success",failed:"error"},hee={minutes:"Minutes",steps:"Browser steps",cost:"Cost"};function vee(e){return e?.status==="pending"||e?.status==="running"}function hA(e){return j2e.includes(e.state)}function nj(e=[],t=null){let r=e.filter(n=>hA(n)&&n.verdict==="answerable").map(n=>n.id);return Number.isInteger(t)&&t>=0?r.slice(0,t):r}function xee(e=[],t=[]){let r=new Set(t.filter(hA).map(n=>n.id));return e.filter(n=>r.has(n))}function yee(e,t){return e==="cost"?`$${Number(t||0).toFixed(2)}`:String(Math.round(Number(t||0)*10)/10)}function bee(e={},t={}){return Object.keys(hee).flatMap(r=>{let n=Number(e?.[r]);if(!Number.isFinite(n)||n<=0)return[];let o=Math.max(Number(t?.[r])||0,0);return[{key:r,label:hee[r],used:o,limit:n,ratio:Math.min(o/n,1),text:`${yee(r,o)} / ${yee(r,n)}`}]})}function wee(e){let t=e?.provenance||{},r=t.recording_id;if(!Number.isInteger(r)||r<=0)return null;let n=t.range||{},o=["from_ms","to_ms"].filter(a=>Number.isInteger(n[a])).map(a=>`${a}=${n[a]}`);return`/replay/${r}${o.length?`?${o.join("&")}`:""}`}function See({evaluation:e=null,candidates:t=[],selectedIds:r=[]}={}){let n=new Set(r),o=t.filter(s=>n.has(s.id)&&!s.scenario_key).length,a=(e?.enabled_scenario_count||0)+o,i=Math.max(e?.model_count||1,1);return{added:o,scenarios:a,models:i,executions:a*i}}function kee(e,t=null){let r=`${e.scenarios} scenario${e.scenarios===1?"":"s"}`,n=`${e.models} model${e.models===1?"":"s"}`,o=`The run uses ${e.executions} execution${e.executions===1?"":"s"} (${r} \xD7 ${n}).`;return Number.isFinite(t)?`${o} ${t} remaining on your plan.`:o}function ej(e){return(e||[]).join(", ")}function tj(e){return String(e||"").split(",").map(t=>t.trim()).filter(Boolean)}function _ee(e){let t=e.expectations||{};return{prompt:e.prompt||"",group:e.group||"",rubric:e.notes||"",tools:ej(t.tools),contains:ej(t.contains),not_contains:ej(t.not_contains)}}function Cee(e){return{prompt:e.prompt.trim(),group:e.group.trim(),rubric:e.rubric.trim(),tools:tj(e.tools),contains:tj(e.contains),not_contains:tj(e.not_contains)}}function yA(e){return`/explorations/${e}`}function vA(e){return{explorationId:String(e||"").match(/^\/explorations\/(\d+)/)?.[1]||null}}function _f({explorations:e,onOpen:t,selectedId:r=null}){return vd.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8},"data-testid":"exploration-list"},e.map(n=>{let o=n.counts||{},a=String(n.id)===String(r);return vd.default.createElement(Le,{key:n.id,padding:12,testId:`exploration-${n.id}`,style:a?{borderColor:"var(--color-accent-ui)"}:void 0},vd.default.createElement("button",{type:"button",onClick:()=>t(n),style:{all:"unset",cursor:"pointer",display:"flex",gap:8,alignItems:"center",width:"100%",flexWrap:"wrap"}},vd.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-primary)"}},"#",n.id),vd.default.createElement(_e,{tone:gA[n.status]||"muted"},n.status),vd.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},n.source),vd.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},o.total||0," found \xB7 ",o.open||0," to review \xB7 ",o.accepted||0," accepted \xB7 ",wo(n.created_at))))}))}var _t=Z(J());var Cf=Z(J());function oj({budget:e,usage:t}){let r=bee(e,t);return r.length===0?null:Cf.default.createElement(en,{title:"Budget",testId:"exploration-budget",bodyStyle:{padding:"10px 12px",display:"flex",flexDirection:"column",gap:8}},r.map(n=>{let o=n.ratio>=1?bo.error:n.ratio>=.8?bo.warning:bo.info;return Cf.default.createElement("div",{key:n.key,"data-testid":`exploration-budget-${n.key}`,style:{display:"flex",alignItems:"center",gap:10}},Cf.default.createElement("span",{style:{width:110,fontSize:12,color:"var(--color-text-secondary)"}},n.label),Cf.default.createElement("span",{style:{flex:1,height:6,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},Cf.default.createElement("span",{style:{display:"block",width:`${Math.round(n.ratio*100)}%`,height:"100%",background:o.strong}})),Cf.default.createElement("span",{style:{fontFamily:U,fontSize:11,minWidth:90,textAlign:"right",color:o.text}},n.text))}))}var Dt=Z(J());var $2e={proposed:"info",edited:"info",accepted:"success",rejected:"muted"},Uh={width:"100%",boxSizing:"border-box",padding:"6px 8px",borderRadius:6,fontSize:13,fontFamily:"inherit",background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"};function Wh({label:e,children:t}){return Dt.default.createElement("label",{style:{display:"flex",flexDirection:"column",gap:4,fontSize:12,color:"var(--color-text-secondary)"}},e,t)}function aj({candidate:e,selected:t,onToggle:r,onSave:n,onState:o,busy:a,problem:i,agentId:s}){let[l,u]=(0,Dt.useState)(null),c=rj[e.verdict]||rj.unverified,d=e.expectations||{},p=new Set(e.missing_tools||[]),f=e.provenance||{},m=wee(e),y=hA(e),b=h=>v=>u({...l,[h]:v.target.value}),g=async()=>{await n(e.id,Cee(l))&&u(null)};return Dt.default.createElement("li",{"data-testid":`exploration-candidate-${e.id}`,style:{listStyle:"none",padding:"12px 0",borderTop:"1px solid var(--color-border-light)",display:"flex",gap:10}},Dt.default.createElement("input",{type:"checkbox","aria-label":`Accept candidate ${e.id}`,checked:t,disabled:!y||a,onChange:()=>r(e.id),style:{marginTop:3,alignSelf:"flex-start"}}),Dt.default.createElement("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:6}},Dt.default.createElement("div",{style:{display:"flex",gap:6,alignItems:"center",flexWrap:"wrap"}},Dt.default.createElement("span",{style:{fontSize:14,fontWeight:600,color:"var(--color-text-primary)"}},e.prompt),Dt.default.createElement(_e,{tone:c.tone,title:c.title,testId:`candidate-verdict-${e.id}`},c.label),Dt.default.createElement(_e,{tone:$2e[e.state]||"muted"},e.state),e.group&&Dt.default.createElement(_e,null,e.group),e.scenario_key&&Dt.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},e.scenario_key)),l?Dt.default.createElement("div",{style:{display:"grid",gap:8},"data-testid":`candidate-edit-${e.id}`},Dt.default.createElement(Wh,{label:"Prompt"},Dt.default.createElement("input",{style:Uh,value:l.prompt,onChange:b("prompt")})),Dt.default.createElement(Wh,{label:"Rubric: what a good answer does (the judge grades against it)"},Dt.default.createElement("textarea",{style:{...Uh,minHeight:60},value:l.rubric,onChange:b("rubric")})),Dt.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(160px, 1fr))",gap:8}},Dt.default.createElement(Wh,{label:"Group"},Dt.default.createElement("input",{style:Uh,value:l.group,onChange:b("group")})),Dt.default.createElement(Wh,{label:"Tools (comma-separated)"},Dt.default.createElement("input",{style:Uh,value:l.tools,onChange:b("tools")})),Dt.default.createElement(Wh,{label:"Contains"},Dt.default.createElement("input",{style:Uh,value:l.contains,onChange:b("contains")})),Dt.default.createElement(Wh,{label:"Does not contain"},Dt.default.createElement("input",{style:Uh,value:l.not_contains,onChange:b("not_contains")}))),Dt.default.createElement("div",{style:{display:"flex",gap:8}},Dt.default.createElement(de,{size:"sm",variant:"primary",onClick:g,disabled:a||!l.prompt.trim()},"Save"),Dt.default.createElement(de,{size:"sm",onClick:()=>u(null),disabled:a},"Cancel"))):Dt.default.createElement(Dt.default.Fragment,null,Dt.default.createElement("div",{style:{fontSize:13,color:e.notes?"var(--color-text-cell)":"var(--color-text-muted)"}},e.notes||"No rubric yet: the judge has nothing to grade the answer against."),(d.tools?.length>0||d.contains?.length>0||d.not_contains?.length>0)&&Dt.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap",alignItems:"center",fontFamily:U,fontSize:11}},(d.tools||[]).map(h=>Dt.default.createElement(_e,{key:h,tone:p.has(h)?"warning":"muted",title:p.has(h)?"The agent cannot call this tool":void 0},p.has(h)?`missing ${h}`:h)),(d.contains||[]).map(h=>Dt.default.createElement(_e,{key:`c-${h}`},"contains \u201C",h,"\u201D")),(d.not_contains||[]).map(h=>Dt.default.createElement(_e,{key:`n-${h}`},"not \u201C",h,"\u201D")))),i&&Dt.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},i),(f.steps?.length>0||f.urls?.length>0||f.screenshots?.length>0||m)&&Dt.default.createElement("details",{style:{fontSize:12,color:"var(--color-text-secondary)"}},Dt.default.createElement("summary",{style:{cursor:"pointer"}},"How it was found"),f.urls?.length>0&&Dt.default.createElement("div",{style:{marginTop:4,fontFamily:U,fontSize:11}},f.urls.join(" \xB7 ")),f.steps?.length>0&&Dt.default.createElement("ol",{style:{margin:"4px 0 0",paddingLeft:18}},f.steps.map((h,v)=>Dt.default.createElement("li",{key:v},h))),f.screenshots?.length>0&&Dt.default.createElement("div",{style:{marginTop:4,fontFamily:U,fontSize:11}},"Screenshots: ",f.screenshots.join(", "))),!l&&Dt.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap"}},m&&Dt.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>lt(m),testId:`candidate-replay-${e.id}`},"Replay"),e.verdict==="needs_tool"&&s&&Dt.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>lt(`/agents/${s}/edit`)},"Give the agent the tool"),e.state!=="rejected"&&Dt.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>u(_ee(e)),disabled:a},"Edit"),y&&Dt.default.createElement(de,{size:"sm",variant:"danger",onClick:()=>o(e.id,"rejected"),disabled:a},"Reject"),e.state==="rejected"&&Dt.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>o(e.id,"proposed"),disabled:a},"Reconsider"))))}var ij={minutes:15,steps:150},Aee={minutes:120,steps:1e3,cost:100},Eee={minutes:"Minutes",steps:"Browser steps",cost:"Cost cap"};function Tee(e={}){let t={};for(let r of["minutes","steps","cost"]){let n=String(e[r]??"").trim();if(n==="")continue;let o=Number(n),a=r!=="cost";if(!Number.isFinite(o)||o<=0||a&&!Number.isInteger(o))return{error:`${Eee[r]} must be a ${a?"whole number":"number"} above 0.`};if(o>Aee[r])return{error:`${Eee[r]} may be at most ${Aee[r]}.`};t[r]=o}return{budget:t}}var Nee={sandbox_not_ready:"Boot the project first: the explorer walks the app its sandbox serves.",exploration_running:"An exploration of this project is already walking the app. Stop it or wait for it to finish.",no_target:"Choose the agent to evaluate first: the explorer proposes questions for that agent.",browser_unavailable:null};function Oee(e,t={}){return e===402?t.message||t.error||"Your plan has no explorations left.":t.code&&Nee[t.code]?Nee[t.code]:t.error||`The exploration did not start (HTTP ${e}).`}var L2e={finished:"The explorer finished.",budget_minutes:"Its time budget ran out.",budget_steps:"Its browser step budget ran out.",budget_cost:"Its cost budget ran out.",budget_context:"Its conversation grew too long for the model.",stopped:"Stopped for review.",error:"It failed."};function Pee(e){return e?L2e[e]||e:null}var z2e={signed_in:"success",failed:"error",unsupported:"warning",error:"error"};function Mee(e){return e?{tone:z2e[e.status]||"muted",text:e.message||e.status}:null}function Iee(e={},{passwordSaved:t=!1}={}){let r={};for(let n of["login_url","login","password","login_field","password_field","submit_field"]){let o=String(e[n]??"").trim();o&&(r[n]=n==="password"?String(e[n]):o)}return!r.password&&!t?{error:"Enter the test account's password."}:r.login_url&&(!r.login_url.startsWith("/")||r.login_url.startsWith("//"))?{error:"The login URL must be a path on the app, such as /users/sign_in."}:{payload:r}}function sj(e=[]){return e.filter(t=>!t.kind||t.kind==="env")}async function Dee(e){return e.json().catch(()=>({}))}var F2e={explorer:"explorer agent",external:"submitted from outside the dashboard"};function Af({explorationId:e,onLoaded:t,scenarioSet:r=null,requireScenarioSet:n=!1,onAccepted:o}){let[a,i]=(0,_t.useState)(null),[s,l]=(0,_t.useState)(null),[u,c]=(0,_t.useState)([]),[d,p]=(0,_t.useState)(!1),[f,m]=(0,_t.useState)(!1),[y,b]=(0,_t.useState)({}),[g,h]=(0,_t.useState)(null),[v,x]=(0,_t.useState)(null),S=(0,_t.useRef)(t);S.current=t;let _=(0,_t.useCallback)(async()=>{let M=await fetch(`/api/explorations/${e}`),W=await Dee(M);if(!M.ok)throw new Error(ot(W,`Could not load the exploration (HTTP ${M.status}).`));return i(W),S.current?.(W),W},[e]);(0,_t.useEffect)(()=>{_().catch(M=>l(M.message))},[_]);let w=a?.candidates||[];(0,_t.useEffect)(()=>{a&&c(M=>d?xee(M,w):nj(w,a.preselect_limit))},[a,d]);let k=vee(a?.exploration);(0,_t.useEffect)(()=>{if(!k)return;let M=setInterval(()=>_().catch(W=>l(W.message)),3e3);return()=>clearInterval(M)},[k,_]),jh("ExplorationChannel",{exploration_id:e},M=>{$h(M)&&_().catch(()=>{})},!!e);let A=async(M,W,Y)=>{m(!0),l(null);try{let L=await fetch(M,{method:W,headers:{"Content-Type":"application/json"},body:JSON.stringify(Y||{})}),G=await Dee(L);return{res:L,data:G}}finally{m(!1)}},C=async(M,W)=>{let{res:Y,data:L}=await A(`/api/explorations/${e}/candidates/${M}`,"PATCH",W);return Y.ok?(b({...y,[M]:null}),await _(),!0):(b({...y,[M]:ot(L,`Could not save the candidate (HTTP ${Y.status}).`)}),!1)},T=async(M,W)=>C(M,{state:W}),$=M=>{p(!0),c(W=>W.includes(M)?W.filter(Y=>Y!==M):[...W,M])},Q=async()=>{let M={candidate_ids:u,...r?{scenario_set_id:r.id}:{}},{res:W,data:Y}=await A(`/api/explorations/${e}/accept`,"POST",M);return W.ok?(b({}),h({accepted:Y.accepted,evaluation:r?null:Y.evaluation,scenarioSet:Y.scenario_set||null}),o?.(Y),p(!1),i(Y),S.current?.(Y),Y):(b(Y.problems||{}),l(ot(Y,`Could not accept the candidates (HTTP ${W.status}).`)),null)},B=async(M,W,{confirm:Y=!1}={})=>{let L=W?`/api/projects/${W.id}/run_evaluation`:`/api/evaluations/${M.id}/run`,{res:G,data:q}=await A(L,"POST",Y?{confirm:!0}:{});if(G.status===409&&q.code==="confirmation_required"){x({question:q.confirmation,evaluation:M,project:W});return}if(!G.ok){l(ot(q,`The scenarios were accepted, but the run did not start (HTTP ${G.status}).`));return}x(null),lt(`/evaluations/${q.run?.evaluation_id||M.id}/runs/${q.run.id}`)},K=async()=>{let M=await Q();M?.evaluation&&await B(M.evaluation,M.project)},N=async()=>{let{res:M,data:W}=await A(`/api/explorations/${e}/stop`,"POST");if(!M.ok&&M.status!==409){l(ot(W,`Could not stop the exploration (HTTP ${M.status}).`));return}await _()};if(!a)return s?_t.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},s):_t.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading the exploration\u2026");let{exploration:O}=a,D=O.counts||{},P=See({evaluation:a.evaluation,candidates:w,selectedIds:u}),j=nj(w);return _t.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12},"data-testid":"exploration-review"},_t.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},_t.default.createElement(We,null,"Exploration ",O.id),_t.default.createElement(_e,{tone:gA[O.status]||"muted",testId:"exploration-status"},O.status),_t.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},F2e[O.source]||O.source," \xB7 ",wo(O.created_at),O.start_url?` \xB7 from ${O.start_url}`:""),k&&_t.default.createElement(de,{size:"sm",onClick:N,disabled:f,style:{marginLeft:"auto"},testId:"exploration-stop"},"Stop and review")),O.stop_reason&&_t.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},Pee(O.stop_reason)),O.error_message&&_t.default.createElement("div",{style:{padding:"8px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},O.error_message),_t.default.createElement(oj,{budget:O.budget,usage:O.usage}),s&&_t.default.createElement("div",{style:{padding:"10px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},s),g&&_t.default.createElement(Le,{padding:12,testId:"exploration-accepted"},_t.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-primary)"}},"Added ",g.accepted?.added?.length||0," and updated ",g.accepted?.updated?.length||0," scenarios in"," ",g.scenarioSet?`${g.scenarioSet.catalog?.name} / ${g.scenarioSet.name}`:g.evaluation?.name,".")," ",g.evaluation&&_t.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>lt(`/evaluations/${g.evaluation.id}`)},"Open evaluation")),v&&_t.default.createElement(Le,{testId:"exploration-run-confirmation",style:{borderColor:"var(--color-warning)"}},_t.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-primary)"}},v.question),_t.default.createElement("div",{style:{display:"flex",gap:8,marginTop:10}},_t.default.createElement(de,{variant:"primary",onClick:()=>B(v.evaluation,v.project,{confirm:!0}),disabled:f},"Run it on this machine"),_t.default.createElement(de,{onClick:()=>x(null)},"Cancel"))),_t.default.createElement(en,{title:"Found so far",meta:`${D.total||0} found \xB7 ${D.answerable||0} answerable \xB7 ${D.accepted||0} accepted`,testId:"exploration-candidates",bodyStyle:{padding:"0 12px"}},w.length===0?_t.default.createElement("div",{style:{padding:"12px 0",fontSize:13,color:"var(--color-text-secondary)"}},k?"Nothing yet. Candidates appear here as they are found.":"This exploration found nothing."):_t.default.createElement("ul",{style:{margin:0,padding:0}},w.map(M=>_t.default.createElement(aj,{key:M.id,candidate:M,selected:u.includes(M.id),onToggle:$,onSave:C,onState:T,busy:f,problem:y?.[M.id]||y?.[String(M.id)],agentId:a.target_agent?.id})))),w.length>0&&_t.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8}},_t.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},_t.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>{p(!0),c(j)},disabled:f},"Select every answerable"),_t.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>{p(!0),c([])},disabled:f},"Clear"),a.preselect_limit!=null&&j.length>a.preselect_limit&&_t.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"Your plan starts with ",a.preselect_limit," selected.")),_t.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},_t.default.createElement(de,{variant:"primary",onClick:Q,disabled:f||u.length===0||n&&!r,testId:"exploration-accept"},"Accept ",u.length,r?` into ${r.label}`:""),!r&&!n&&_t.default.createElement(_t.default.Fragment,null,_t.default.createElement(de,{onClick:K,disabled:f||u.length===0,testId:"exploration-accept-run"},"Accept and run"),_t.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"},"data-testid":"exploration-run-estimate"},kee(P,a.runs_remaining))))))}var ti=Z(J());var U2e={width:90,padding:"6px 8px",borderRadius:6,fontSize:13,fontFamily:U,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"};function cb({projectId:e,sandboxReady:t,onStarted:r}){let[n,o]=(0,ti.useState)({minutes:"",steps:"",cost:""}),[a,i]=(0,ti.useState)(null),[s,l]=(0,ti.useState)(!1),{error:u,budget:c}=Tee(n),d=async()=>{l(!0),i(null);try{let f=await fetch(`/api/projects/${e}/explorations`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({budget:c})}),m=await f.json().catch(()=>({}));if(!f.ok)throw new Error(Oee(f.status,m));r?.(m.exploration)}catch(f){i(f.message)}finally{l(!1)}},p=(f,m,y)=>ti.default.createElement("label",{style:{display:"flex",flexDirection:"column",gap:4}},ti.default.createElement(We,null,m),ti.default.createElement("input",{type:"number",min:"0",value:n[f],placeholder:y,onChange:b=>o({...n,[f]:b.target.value}),"aria-label":m,style:U2e}));return ti.default.createElement(en,{title:"Explore the app",testId:"explorer-start",bodyStyle:{padding:12,display:"flex",flexDirection:"column",gap:10}},ti.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"The explorer walks the app in the sandbox's browser and proposes the questions a user would ask the project's agent, each with a rubric. They wait here for review; nothing reaches the evaluation until you accept it."),ti.default.createElement("div",{style:{display:"flex",gap:12,alignItems:"flex-end",flexWrap:"wrap"}},p("minutes","Minutes",String(ij.minutes)),p("steps","Browser steps",String(ij.steps)),p("cost","Cost cap ($)","none"),ti.default.createElement(de,{variant:"primary",onClick:d,disabled:s||!t||!!u,testId:"explorer-start-button"},s?"Starting\u2026":"Explore the app")),!t&&ti.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"Boot the project first: the explorer walks the app its sandbox serves."),(u||a)&&ti.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"},"data-testid":"explorer-start-error"},u||a))}var Yt=Z(J());var W2e={width:"100%",padding:"6px 10px",borderRadius:6,fontSize:13,fontFamily:U,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"},H2e=[{value:"credentials",label:"Seeded account"},{value:"by_hand",label:"Sign in by hand"},{value:"none",label:"No sign-in"}],jee=e=>e?new Date(e).toLocaleString():"\u2014";async function Ef(e,t,r){let n=await fetch(e,{method:t,headers:{"Content-Type":"application/json"},body:r?JSON.stringify(r):void 0}),o=await n.json().catch(()=>({}));if(!n.ok)throw new Error(ot(o,`The request failed (HTTP ${n.status}).`));return o}function lj({projectId:e,sandboxId:t,sandboxReady:r}){let[n,o]=(0,Yt.useState)(null),[a,i]=(0,Yt.useState)(null),[s,l]=(0,Yt.useState)({login_url:"",login:"",password:"",login_field:"",password_field:"",submit_field:""}),[u,c]=(0,Yt.useState)(null),[d,p]=(0,Yt.useState)(null),[f,m]=(0,Yt.useState)(null),[y,b]=(0,Yt.useState)(!1),g=(0,Yt.useCallback)(async()=>{let B=await Ef(`/api/projects/${e}/sign_in`,"GET");o(B.sign_in);let K=B.sign_in?.credentials;K&&l(N=>({...N,login_url:K.login_url||"",login:K.login||"",...K.fields})),i(N=>N||(K?"credentials":B.sign_in?.storage_state?"by_hand":"none"))},[e]);(0,Yt.useEffect)(()=>{g().catch(B=>p(B.message))},[g]);let h=async B=>{b(!0),p(null),m(null);try{await B()}catch(K){p(K.message)}finally{b(!1)}},v=n?.credentials,{error:x,payload:S}=Iee(s,{passwordSaved:!!v?.password_set}),_=Mee(u),w=()=>h(async()=>{let B=await Ef(`/api/projects/${e}/sign_in`,"PUT",S);o(B.sign_in),l(K=>({...K,password:""})),m(B.warnings?.length?B.warnings.map(K=>K.message).join(" "):"Saved. The explorer signs in with them.")}),k=()=>h(async()=>{let B=await Ef(`/api/projects/${e}/sign_in/check`,"POST");c(B.result),o(B.sign_in)}),A=()=>h(async()=>{await Ef(`/api/sandboxes/${t}/browser`,"POST",{mode:"headed"}),await g(),m("A browser window opened on the app. Sign in there, then save its sign-in.")}),C=()=>h(async()=>{let B=await Ef(`/api/projects/${e}/sign_in/save_browser`,"POST");o(B.sign_in),m("Saved. Every browser of this project now starts signed in.")}),T=()=>h(async()=>{await Ef(`/api/sandboxes/${t}/browser`,"DELETE"),await g()}),$=()=>h(async()=>{let B=await Ef(`/api/projects/${e}/sign_in`,"DELETE");o(B.sign_in),c(null),m("The explorer explores what is reachable without signing in.")}),Q=(B,K,N="text",O="")=>Yt.default.createElement("label",{style:{display:"flex",flexDirection:"column",gap:4,flex:"1 1 200px"}},Yt.default.createElement(We,null,K),Yt.default.createElement("input",{type:N,autoComplete:"off",value:s[B],placeholder:O,onChange:D=>l({...s,[B]:D.target.value}),"aria-label":K,style:W2e}));return Yt.default.createElement(en,{title:"Sign-in",testId:"project-sign-in",bodyStyle:{padding:12,display:"flex",flexDirection:"column",gap:10}},Yt.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"How the explorer and the evaluation's replays sign in to the app. Credentials are typed into the app by the dashboard itself and never reach a model."),Yt.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap",alignItems:"center"}},v&&Yt.default.createElement(_e,{tone:"success"},"credentials saved ",jee(v.updated_at)),n?.storage_state&&Yt.default.createElement(_e,{tone:"success"},"browser sign-in saved ",jee(n.storage_state.updated_at)),!v&&!n?.storage_state&&n&&Yt.default.createElement(_e,null,"no sign-in")),Yt.default.createElement(ps,{options:H2e,value:a||"none",onChange:i}),a==="credentials"&&Yt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8},"data-testid":"sign-in-credentials"},Yt.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},Q("login_url","Login URL","text","/users/sign_in"),Q("login","Login","text","dev@example.com"),Q("password","Password","password",v?.password_set?"Saved; leave empty to keep it":"")),Yt.default.createElement("details",null,Yt.default.createElement("summary",{style:{fontSize:12,color:"var(--color-text-secondary)",cursor:"pointer"}},"Field selectors, when the form's fields are not found"),Yt.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap",marginTop:6}},Q("login_field","Login field","text","#user_email"),Q("password_field","Password field","text","#user_password"),Q("submit_field","Submit button","text","button[type=submit]"))),Yt.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},Yt.default.createElement(de,{variant:"primary",size:"sm",onClick:w,disabled:y||!!x},"Save credentials"),Yt.default.createElement(de,{size:"sm",onClick:k,disabled:y||!v||!r,testId:"sign-in-check"},"Check sign-in"),x&&Yt.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},x))),a==="by_hand"&&Yt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8},"data-testid":"sign-in-by-hand"},Yt.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"Open the sandbox's browser in a window, sign in to the app there, then save its sign-in. Later browsers of this project start with it."),Yt.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},Yt.default.createElement(de,{size:"sm",onClick:A,disabled:y||!r||n?.browser_running},"Open a browser window"),Yt.default.createElement(de,{variant:"primary",size:"sm",onClick:C,disabled:y||!n?.browser_running},"Save the browser's sign-in"),n?.browser_running&&Yt.default.createElement(de,{size:"sm",variant:"ghost",onClick:T,disabled:y},"Stop the browser"))),a==="none"&&(v||n?.storage_state)&&Yt.default.createElement("div",null,Yt.default.createElement(de,{size:"sm",variant:"danger",onClick:$,disabled:y},"Remove the saved sign-in")),_&&Yt.default.createElement("div",{"data-testid":"sign-in-result",style:{fontSize:13,color:bo[_.tone]?.text||"var(--color-text-secondary)"}},_.text),f&&Yt.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},f),d&&Yt.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},d))}function uj({projectId:e,project:t,onCount:r}){let[n,o]=(0,Un.useState)(null),[a,i]=(0,Un.useState)(null),[s,l]=(0,Un.useState)(null),u=(0,Un.useCallback)(async()=>{let f=await fetch(`/api/explorations?project_id=${e}`),m=await f.json().catch(()=>({}));if(!f.ok)throw new Error(ot(m,`Could not list the project's explorations (HTTP ${f.status}).`));o(m.explorations||[]),r?.(m.explorations?.length||0)},[e,r]);(0,Un.useEffect)(()=>{u().catch(f=>l(f.message))},[u]);let c=t?.sandbox_state==="ready",d=Un.default.createElement(Un.default.Fragment,null,Un.default.createElement(cb,{projectId:e,sandboxReady:c,onStarted:f=>{i(f.id),u().catch(m=>l(m.message))}}),Un.default.createElement(lj,{projectId:e,sandboxId:t?.sandbox?.session_id,sandboxReady:c}));if(s)return Un.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},s);if(!n)return Un.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading explorations\u2026");if(n.length===0)return Un.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},d,Un.default.createElement(Le,{testId:"project-explorations-empty"},Un.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-secondary)"}},"No explorations yet. Explore the app above, or have an agent that explores it, such as a coding agent driving a browser, submit the questions it found with the explorations_submit MCP tool. They are reviewed here before any reaches the evaluation.")));let p=a||n[0].id;return Un.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"project-explorations"},d,Un.default.createElement(_f,{explorations:n,selectedId:p,onOpen:f=>i(f.id)}),Un.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end"}},Un.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>lt(yA(p))},"Open on its own page")),Un.default.createElement(Af,{key:p,explorationId:p,onLoaded:()=>u().catch(()=>{})}))}var dr=Z(J());var q2e={text:"question",choice:"choice",confirm:"approval",secret:"secret"};async function $ee(e){return e.json().catch(()=>({}))}function cj({projectId:e,setupAgentId:t,version:r,onSettled:n}){let[o,a]=(0,dr.useState)(null),[i,s]=(0,dr.useState)(null),l=(0,dr.useCallback)(async()=>{let c=await fetch(`/api/projects/${e}/input_requests`),d=await $ee(c);if(!c.ok)throw new Error(ot(d,`Could not list what the project is waiting for (HTTP ${c.status}).`));a(d.input_requests||[])},[e]);(0,dr.useEffect)(()=>{l().catch(c=>s(c.message))},[l,r]);let u=async(c,d,p)=>{let f=await fetch(`/api/input_requests/${c.id}/${d}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(p||{})}),m=await $ee(f);if(!f.ok)throw new Error(ot(m,`Could not send the answer (HTTP ${f.status}).`));await l(),n?.()};return!o?.length&&!i?null:dr.default.createElement(en,{title:"Waiting for you",meta:`${o?.length||0}`,testId:"project-input-requests"},i&&dr.default.createElement("div",{style:{padding:"8px 12px",fontSize:13,color:"var(--color-error-text)"}},i),(o||[]).map(c=>dr.default.createElement(K2e,{key:c.id,request:c,onSettle:u,storesProjectSecret:t!=null&&c.agent?.id===t})))}function K2e({request:e,onSettle:t,storesProjectSecret:r}){let[n,o]=(0,dr.useState)(""),[a,i]=(0,dr.useState)(!1),[s,l]=(0,dr.useState)(null),u=async(c,d)=>{i(!0),l(null);try{await t(e,c,d),o("")}catch(p){l(p.message)}finally{i(!1)}};return dr.default.createElement(V2e,{request:e,storesProjectSecret:r,value:n,onChange:o,busy:a,error:s,onAnswer:c=>u("answer",tee(e,c)),onDecline:()=>u("decline")})}function V2e({request:e,storesProjectSecret:t,value:r,onChange:n,busy:o,error:a,onAnswer:i,onDecline:s}){let l=eee(e,r),u=`project-answer-${e.id}`;return dr.default.createElement("form",{"data-testid":`project-input-request-${e.id}`,style:{padding:"10px 12px",borderTop:"1px solid var(--color-border-light)",display:"flex",flexDirection:"column",gap:8},onSubmit:c=>{c.preventDefault(),e.kind!=="confirm"&&!l&&i(r)}},dr.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},dr.default.createElement(_e,{tone:e.kind==="secret"?"warning":"info"},q2e[e.kind]||e.kind),dr.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-muted)"}},e.agent?.name||"An agent"," asks",e.actor?.name?`, for ${e.actor.name}`:""),dr.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"run ",e.run_id)),dr.default.createElement("label",{htmlFor:u,style:{fontSize:14,color:"var(--color-text-primary)",whiteSpace:"pre-wrap"}},e.prompt),e.kind==="choice"&&dr.default.createElement("select",{id:u,value:r,onChange:c=>n(c.target.value),disabled:o,style:{padding:"6px 8px",borderRadius:6,border:"1px solid var(--color-border-strong)",background:"var(--color-card)",color:"var(--color-text-primary)"}},dr.default.createElement("option",{value:""},"Choose\u2026"),V3(e).map(c=>dr.default.createElement("option",{key:c.value,value:c.value},c.label))),(e.kind==="text"||e.kind==="secret")&&dr.default.createElement("input",{id:u,type:e.kind==="secret"?"password":"text",autoComplete:e.kind==="secret"?"new-password":"off","data-aa-secret":e.kind==="secret"?"":void 0,value:r,onChange:c=>n(c.target.value),disabled:o,style:{padding:"6px 8px",borderRadius:6,border:"1px solid var(--color-border-strong)",background:"var(--color-card)",color:"var(--color-text-primary)",fontFamily:e.kind==="secret"?U:"inherit"}}),e.kind==="secret"&&dr.default.createElement("p",{style:{margin:0,fontSize:12,color:"var(--color-text-secondary)"}},t?"The assistant never sees this value: it is stored as one of the project's secrets.":"The agent never sees this value."),dr.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center"}},e.kind==="confirm"?dr.default.createElement(dr.default.Fragment,null,dr.default.createElement(de,{variant:"primary",size:"sm",onClick:()=>i(!0),disabled:o},"Approve"),dr.default.createElement(de,{size:"sm",onClick:()=>i(!1),disabled:o},"Decline")):dr.default.createElement(dr.default.Fragment,null,dr.default.createElement(de,{variant:"primary",size:"sm",type:"submit",disabled:o||!!l},o?"Sending\u2026":"Answer"),dr.default.createElement(de,{size:"sm",onClick:s,disabled:o},"Decline"),r&&l&&dr.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},l))),a&&dr.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},a))}var Ft=Z(J());async function xA(e){return e.json().catch(()=>({}))}function dj({project:e,onProjectChanged:t,onConfirmationRequired:r}){let n=`/api/projects/${e.id}/install_pull_request`,[o,a]=(0,Ft.useState)(null),[i,s]=(0,Ft.useState)(null),[l,u]=(0,Ft.useState)(null),[c,d]=(0,Ft.useState)(0),[p,f]=(0,Ft.useState)(!1),m=(0,Ft.useCallback)(async()=>{let g=await fetch(n),h=await xA(g);if(!g.ok)throw new Error(ot(h,`Could not read the install pull request (HTTP ${g.status}).`));return h},[n]);(0,Ft.useEffect)(()=>{let g=!1,h=null,v=async()=>{try{let x=await m();if(g)return;a(x),s(null),x.project&&t?.(x.project);let S=dee(x.pull_request);S&&(h=setTimeout(v,S))}catch(x){g||s(x.message)}};return v(),()=>{g=!0,clearTimeout(h)}},[m,c]);let y=async g=>{f(!0),s(null);try{let h=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g?{regular:!0}:{open:!0})}),v=await xA(h);if(!h.ok)throw new Error(ot(v,`Could not open the pull request (HTTP ${h.status}).`));d(x=>x+1)}catch(h){s(h.message)}finally{f(!1)}},b=o?.pull_request||null;return e.install_state==="installed"&&!b?null:Ft.default.createElement(Ft.default.Fragment,null,Ft.default.createElement(G2e,{project:e,pullRequest:b,publishing:o?.publishing,allowlist:o?.allowlist||[],error:i,opening:p,onOpenDialog:u,onOpenBranch:y}),l&&Ft.default.createElement(Y2e,{project:e,base:n,pullRequest:b,mode:l,onConfirmationRequired:r,onClose:()=>u(null),onPublished:()=>{u(null),d(g=>g+1)}}))}function G2e({project:e,pullRequest:t,publishing:r,allowlist:n,error:o,opening:a,onOpenDialog:i,onOpenBranch:s}){let{label:l,tone:u}=cee(t),{canOpen:c,canUpdate:d,openBranch:p}=pee(t);return Ft.default.createElement(Le,{testId:"project-install-pull-request"},Ft.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Ft.default.createElement(We,null,"Install pull request"),Ft.default.createElement(_e,{tone:u},l),t?.url&&Ft.default.createElement("a",{href:t.url,target:"_blank",rel:"noopener noreferrer",style:{fontSize:13,color:"var(--color-info)"}},"#",t.number),Ft.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8}},d&&Ft.default.createElement(de,{size:"sm",onClick:()=>i("update")},"Update draft PR"),c&&e.install_state!=="installed"&&Ft.default.createElement(de,{size:"sm",variant:"primary",onClick:()=>i("create"),testId:"open-install-pr"},"Open install PR"),p&&Ft.default.createElement(de,{size:"sm",onClick:()=>s(p==="regular"),disabled:a,testId:"open-install-branch"},a?"Opening\u2026":p==="regular"?"Open as a regular pull request":"Open the draft PR again"))),Ft.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},e.install_state==="installed"?"The pull request merged: the repository bundles the engine, and boots its own branch.":"Publishes what the sandbox installed as a draft pull request, from this dashboard, after you check the exact diff. Once it exists, every boot checks its branch out."),t?.branch&&Ft.default.createElement("p",{style:{margin:"4px 0 0",fontFamily:U,fontSize:12,color:"var(--color-text-muted)"}},t.branch,t.base_branch?` \u2192 ${t.base_branch}`:""),t?.status==="failed"&&t.error_message&&Ft.default.createElement("p",{style:{margin:"6px 0 0",fontSize:12,color:"var(--color-error-text)"}},t.error_message),r&&!r.available&&r.live&&Ft.default.createElement("p",{style:{margin:"6px 0 0",fontSize:12,color:"var(--color-text-secondary)"}},r.refusal),n.length>0&&Ft.default.createElement("details",{style:{marginTop:6}},Ft.default.createElement("summary",{style:{cursor:"pointer",fontSize:12,color:"var(--color-text-secondary)"}},"What it may publish"),Ft.default.createElement("ul",{style:{margin:"4px 0 0",paddingLeft:18,fontFamily:U,fontSize:12,color:"var(--color-text-secondary)"}},n.map(f=>Ft.default.createElement("li",{key:f},f)))),o&&Ft.default.createElement("p",{style:{margin:"6px 0 0",fontSize:12,color:"var(--color-error-text)"}},o))}function Y2e({project:e,base:t,pullRequest:r,mode:n,onConfirmationRequired:o,onClose:a,onPublished:i}){let s=n==="update",[l,u]=(0,Ft.useState)(null),[c,d]=(0,Ft.useState)(null),[p,f]=(0,Ft.useState)(!0),[m,y]=(0,Ft.useState)(null),[b,g]=(0,Ft.useState)(new Set),[h,v]=(0,Ft.useState)(s?r?.title||"":"Install ActiveAgent"),[x,S]=(0,Ft.useState)(""),[_,w]=(0,Ft.useState)(s&&r?.branch||""),[k,A]=(0,Ft.useState)(T2),[C,T]=(0,Ft.useState)(!1),[$,Q]=(0,Ft.useState)(0);(0,Ft.useEffect)(()=>{let K=!1,N=null;f(!0);let O=async(D=!1)=>{try{let P=await fetch(`${t}/preview`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(D?{confirm:!0}:{})}),j=await xA(P);if(K)return;if(P.status===409&&j.code==="confirmation_required"){o?.(j.confirmation,()=>O(!0));return}if(P.status===202){y(j.error),N=setTimeout(()=>O(),3e3);return}if(!P.ok)throw new Error(ot(j,`Could not read the sandbox's changes (HTTP ${P.status}).`));y(null),u(j.preview),d(j.publishing),g(P2(j.preview.files)),w(M=>M||j.preview.suggested_branch||""),f(!1)}catch(P){K||(y(P.message),f(!1))}};return O(),()=>{K=!0,clearTimeout(N)}},[t,$]);let B=async()=>{T(!0),y(null);try{let K=I2({files:l?.files,selection:b,title:h,body:x,branch:_,message:k,update:s}),N=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(K)}),O=await xA(N);if(!N.ok)throw O2(O.code)&&Q(D=>D+1),new Error(ot(O,`Could not publish (HTTP ${N.status}).`));i(O.pull_request)}catch(K){y(K.message)}finally{T(!1)}};return Ft.default.createElement(bD,{sandbox:{repository:e.repository,repository_ref:e.sandbox?.repository_ref||e.checkout_ref||"its default branch"},preview:l,loading:p,error:m,publishing:c,pullRequest:r,selection:b,onToggle:K=>g(N=>M2(N,K)),fields:{title:h,body:x,branch:_,message:k,allowlist:""},onField:(K,N)=>({title:v,body:S,branch:w,message:A})[K]?.(N),allowlistApplied:!1,mode:s?"update":"create",submitting:C,onSubmit:B,onCancel:a,patchHref:(K,N)=>fee(e.id,K,N)})}var cn=Z(J());var X2e={awaiting_input:"warning",running:"info",pending:"info",complete:"success",failed:"error"},Z2e={progress:"info",success:"success",error:"error",neutral:"muted"};function pj({project:e,busy:t,onAsk:r,onFixWithClaudeCode:n,onToggleAuto:o}){let a=e?.setup;if(!a)return null;let i=a.last_run,s=a.claude_code,l=s?.last_session;return cn.default.createElement(Le,{testId:"project-setup"},cn.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},cn.default.createElement(We,null,"Setup"),cn.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center"}},cn.default.createElement("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:12,color:"var(--color-text-secondary)"}},cn.default.createElement("input",{type:"checkbox",checked:a.auto!==!1,disabled:t,onChange:u=>o(u.target.checked)}),"Start it when a boot fails"))),s&&cn.default.createElement("div",{"data-testid":"project-setup-claude-code",style:{marginTop:10}},cn.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},cn.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},"Claude Code"),!s.available&&!l&&cn.default.createElement(_e,{tone:"muted"},"not used"),l&&cn.default.createElement(_e,{tone:Z2e[fs(l.status).tone]||"muted"},fs(l.status).label),Y3(e)&&n&&cn.default.createElement(de,{size:"sm",variant:"primary",onClick:n,disabled:t,testId:"fix-with-claude-code",style:{marginLeft:"auto"}},"Fix the boot with Claude Code")),cn.default.createElement("p",{"data-testid":"claude-code-status",style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},aee(e)),l?.id&&cn.default.createElement("a",{href:et(ms(l.id)),onClick:u=>{u.preventDefault(),lt(ms(l.id))},"data-testid":"boot-fix-conversation",style:{display:"inline-block",marginTop:4,fontSize:12,color:"var(--color-accent-ui)"}},"Ask Claude Code about this fix \u2192"),l?.sandbox_session_id&&cn.default.createElement(x0,{sandbox:{session_id:l.sandbox_session_id},readOnly:!0,focusSessionId:l.id,title:`Claude Code on ${s.failed_step||"the boot"}`})),cn.default.createElement("div",{style:{marginTop:12}},cn.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},cn.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},"Setup assistant"),!a.available&&cn.default.createElement(_e,{tone:"muted"},"unavailable"),i&&cn.default.createElement(_e,{tone:X2e[i.status]||"muted"},i.status.replace("_"," ")),cn.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center"}},a.agent_id&&i&&cn.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>lt(`/agents/${a.agent_id}/interactions`)},"Open its runs"),iee(e)&&cn.default.createElement(de,{size:"sm",variant:Y3(e)?"secondary":"primary",onClick:r,disabled:t,testId:"ask-setup-assistant"},"Ask the setup assistant"))),cn.default.createElement("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},ree(a),!a.available&&" Set the variables the boot needs in the Environment tab.",a.available&&s?.available&&" Claude Code goes first when a boot fails; the setup assistant is the fallback."),cn.default.createElement("p",{style:{margin:"4px 0 0",fontSize:12,color:"var(--color-text-muted)"}},"It reads the failed step's log, sets variables that are not secret, asks you for secrets, and retries the boot. It runs no commands and reads no files.")))}var Lee="/settings?tab=integrations",J2e={ready:"success",booting:"info",failed:"error",expired:"muted",none:"muted"},Q2e={installed:"bundles the engine",detected:"installs the engine in the sandbox",bootstrapped:"engine installed in the sandbox"};async function Zs(e){return e.json().catch(()=>({}))}function fj({projectId:e,onBack:t,onDeleted:r}){let[n,o]=(0,Ve.useState)(null),[a,i]=(0,Ve.useState)(null),[s,l]=(0,Ve.useState)([]),[u,c]=(0,Ve.useState)(()=>LR(window.location.search)),[d,p]=(0,Ve.useState)(!1),[f,m]=(0,Ve.useState)(null),[y,b]=(0,Ve.useState)(null),[g,h]=(0,Ve.useState)(null),[v,x]=(0,Ve.useState)(!1),[S,_]=(0,Ve.useState)(null),[w,k]=(0,Ve.useState)(null),[A,C]=(0,Ve.useState)(null),T=(0,Ve.useCallback)(async()=>{let z=await fetch(`/api/projects/${e}/boot`),E=await Zs(z);if(!z.ok)throw new Error(ot(E,`Could not load the project (HTTP ${z.status}).`));o(E.project),i(E)},[e]),$=(0,Ve.useCallback)(async()=>{let z=await fetch(`/api/projects/${e}/secrets`),E=await Zs(z);if(!z.ok)throw new Error(ot(E,`Could not list the project's secrets (HTTP ${z.status}).`));l(E.secrets||[])},[e]);(0,Ve.useEffect)(()=>{T().catch(z=>m(z.message)),$().catch(z=>b(z.message))},[T,$]);let Q=z=>{c(z),z!=="browser"&&p(!1);let{pathname:E,search:I}=window.location;window.history.replaceState(window.history.state,"",`${E}${zR(I,z)}`)},B=n?.sandbox_state==="failed",[K,N]=(0,Ve.useState)(null);(0,Ve.useEffect)(()=>{N(B?Date.now():null)},[B,n?.sandbox?.session_id]);let O=jR(n),D=O||nee(n)||oee(n,K);(0,Ve.useEffect)(()=>{if(!D)return;let z=setTimeout(()=>T().catch(E=>m(E.message)),ER);return()=>clearTimeout(z)},[D,a,T]);let P=n?.sandbox?.session_id;jh("SandboxChannel",{session_id:P},z=>{$h(z)&&T().catch(()=>{})},!!P);let j=async(z,{confirm:E=!1,onDone:I}={})=>{x(!0),m(null);try{let V=await fetch(z,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E?{confirm:!0}:{})}),F=await Zs(V);if(V.status===409&&F.code==="confirmation_required")return h({question:F.confirmation,retry:()=>j(z,{confirm:!0,onDone:I})}),null;if(!V.ok)throw new Error(ot(F,`The request failed (HTTP ${V.status}).`));return h(null),F.project&&o(F.project),await T(),I?.(F),F}catch(V){return m(V.message),null}finally{x(!1)}},M=()=>j(`/api/projects/${e}/run_evaluation`,{onDone:z=>{z.run&&_(z.run)}}),W=(z,E)=>h({question:z,retry:E}),Y=async(z,E,I="setup")=>{x(!0),m(null);try{let V=await fetch(`/api/projects/${e}/${I}`,{method:z,headers:{"Content-Type":"application/json"},body:JSON.stringify(E||{})}),F=await Zs(V);if(!V.ok)throw new Error(ot(F,`The setup request failed (HTTP ${V.status}).`));F.project&&o(F.project),await T()}catch(V){m(V.message)}finally{x(!1)}},L=async()=>{m(null);let z=await fetch(`/api/projects/${e}/synced_agents`),E=await Zs(z);if(!z.ok){m(ot(E,`Could not list the checkout's agents (HTTP ${z.status}).`));return}k(E.synced_agents||[])},G=async z=>{x(!0);try{let E=await fetch(`/api/projects/${e}/target`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(z)}),I=await Zs(E);if(!E.ok)throw new Error(ot(I,`Could not choose the agent (HTTP ${E.status}).`));o(I.project),k(null)}catch(E){m(E.message)}finally{x(!1)}},q=async z=>{b(null);let E=await fetch(`/api/projects/${e}/secrets`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({secrets:z})}),I=await Zs(E);return E.ok?(l(I.secrets||[]),!0):(b(ot(I,`Could not save the secrets (HTTP ${E.status}).`)),!1)},oe=async(z,E)=>{b(null);let I=await fetch(`/api/projects/${e}/secrets/${encodeURIComponent(z)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:E})}),V=await Zs(I);if(!I.ok){let F=ot(V,`Could not replace ${z} (HTTP ${I.status}).`);throw b(F),new Error(F)}await $()},Me=async z=>{b(null);let E=await fetch(`/api/projects/${e}/secrets/${encodeURIComponent(z)}`,{method:"DELETE"});if(!E.ok){b(ot(await Zs(E),`Could not delete ${z} (HTTP ${E.status}).`));return}await $()},ge=async()=>{b(null);let z=`repository=${encodeURIComponent(n.repository)}&project_id=${e}${n.default_ref?`&ref=${encodeURIComponent(n.default_ref)}`:""}`,E=await fetch(`/api/projects/discover_secrets?${z}`),I=await Zs(E);if(!E.ok){b(ot(I,`Could not read the repository's environment variables (HTTP ${E.status}).`));return}C(ib(I.variables||[],s))},ue=async()=>{if(!await Wr({title:`Delete ${n.name}?`,message:"Its secrets, agent and evaluation are deleted, and its sandbox is stopped. This cannot be undone.",confirmLabel:"Delete project",danger:!0,requireText:n.name}))return;let z=await fetch(`/api/projects/${e}`,{method:"DELETE"});z.ok?r():m(ot(await Zs(z),`Could not delete the project (HTTP ${z.status}).`))};if(!n)return f?Ve.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},f):Ve.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading the project\u2026");let R=a?.browser_modes||[],te=BR(n,R),Be=z=>{z&&p(!0),Q("browser")},ke=n.target_agent,ee=!ke&&n.install_state==="installed";return Ve.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"project-detail"},Ve.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16,flexWrap:"wrap"}},Ve.default.createElement("div",{style:{flex:1,minWidth:260}},Ve.default.createElement(de,{size:"sm",variant:"ghost",onClick:t,style:{padding:0}},"\u2190 Projects"),Ve.default.createElement("h1",{style:{margin:"4px 0 0",fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},n.name),Ve.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",marginTop:4,flexWrap:"wrap"}},Ve.default.createElement("span",{style:{fontFamily:U,fontSize:13,color:"var(--color-text-secondary)"}},n.repository,n.default_ref?`@${n.default_ref}`:""),Ve.default.createElement(_e,{tone:J2e[n.sandbox_state]||"muted"},"sandbox ",n.sandbox_state),Ve.default.createElement(_e,{tone:dA[n.install_state==="installed"?"supported":"bootstrap"]},Q2e[n.install_state]),Ve.default.createElement(Gr,{href:et(Lee),onClick:()=>lt(Lee),title:"Every sandbox and browser, in Settings \u2192 Integrations"},"Manage runtimes"))),Ve.default.createElement("div",{style:{display:"flex",gap:8}},Ve.default.createElement(de,{onClick:()=>j(`/api/projects/${e}/boot`),disabled:v||O,testId:"boot-project"},n.sandbox_state==="ready"?"Sandbox running":O?"Booting\u2026":"Boot sandbox"),te&&Ve.default.createElement(de,{onClick:()=>Be(te.watch),testId:"project-watch-live"},te.label),Ve.default.createElement(de,{variant:"primary",onClick:()=>M(),disabled:v||!ke,testId:"run-project-evaluation",title:ke?"Boots the sandbox first when it is not running":"Choose the agent to evaluate first"},"Run evaluation"))),g&&Ve.default.createElement(Le,{testId:"local-boot-confirmation",style:{borderColor:"var(--color-warning)"}},Ve.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-primary)"}},g.question),Ve.default.createElement("div",{style:{display:"flex",gap:8,marginTop:10}},Ve.default.createElement(de,{variant:"primary",onClick:()=>{let{retry:z}=g;h(null),z?.()},disabled:v},"Run it on this machine"),Ve.default.createElement(de,{onClick:()=>h(null)},"Cancel"))),f&&Ve.default.createElement("div",{style:{padding:"10px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},f),Ve.default.createElement(ps,{options:[{value:"overview",label:"Overview"},{value:"explorations",label:"Explorations"},{value:"environment",label:`Environment (${sj(s).length})`},...R.length>0||u==="browser"?[{value:"browser",label:n.sandbox?.browser?.status==="running"?"Browser \xB7 live":"Browser"}]:[],{value:"sessions",label:"Sessions"}],value:u,onChange:Q}),u==="overview"&&Ve.default.createElement(Ve.default.Fragment,null,Ve.default.createElement(J3,{boot:a?.boot,logTail:a?.log_tail,error:a?.error,sandboxState:n.sandbox_state,waiting:n.pending_input_requests}),Ve.default.createElement(cj,{projectId:e,setupAgentId:n.setup?.agent_id,version:`${n.pending_input_requests}:${n.setup?.last_run?.id}:${n.setup?.last_run?.status}`,onSettled:()=>T().catch(()=>{})}),Ve.default.createElement(pj,{project:n,busy:v,onAsk:()=>Y("POST"),onFixWithClaudeCode:()=>Y("POST",null,"setup/claude_code"),onToggleAuto:z=>Y("PATCH",{auto:z})}),Ve.default.createElement(Le,null,Ve.default.createElement(We,null,"Agent under evaluation"),ke&&Ve.default.createElement("div",{style:{marginTop:8,display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},Ve.default.createElement("span",{style:{fontSize:14,fontWeight:600,color:"var(--color-text-primary)"}},ke.name),Ve.default.createElement(_e,{tone:"accent"},ke.kind==="app_assistant"?"App assistant":`synced agent ${ke.synced_agent}`),Ve.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>lt(`/agents/${ke.id}/edit`)},"Open agent"),n.evaluation&&Ve.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>lt(`/evaluations/${n.evaluation.id}`)},"Open evaluation"),n.install_state==="installed"&&Ve.default.createElement(de,{size:"sm",onClick:L},"Change")),ee&&!w&&Ve.default.createElement("div",{style:{marginTop:8,fontSize:13,color:"var(--color-text-secondary)"}},"This repository has its own agents. Boot the sandbox, then pick the one to evaluate.",Ve.default.createElement("div",{style:{marginTop:8}},Ve.default.createElement(de,{size:"sm",onClick:L,disabled:n.sandbox_state!=="ready"},"List the checkout's agents"))),w&&Ve.default.createElement("ul",{style:{listStyle:"none",margin:"8px 0 0",padding:0},"data-testid":"synced-agents"},w.length===0&&Ve.default.createElement("li",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"The sandbox serves no agents."),w.map(z=>Ve.default.createElement("li",{key:z.slug,style:{display:"flex",gap:8,alignItems:"center",padding:"6px 0"}},Ve.default.createElement("span",{style:{fontFamily:U,fontSize:13}},z.tool),Ve.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",flex:1}},z.description),Ve.default.createElement(de,{size:"sm",onClick:()=>G({synced_agent:z.slug}),disabled:v},"Evaluate this agent")))),S&&Ve.default.createElement("div",{"data-testid":"project-run",style:{marginTop:10,fontSize:13,color:"var(--color-text-secondary)"}},"Run ",S.id," is ",S.status,O?": it starts once the sandbox is ready":"","."," ",Ve.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>lt(`/evaluations/${S.evaluation_id}/runs/${S.id}`)},"Open run"))),ke?.kind==="app_assistant"&&Ve.default.createElement(Z3,{project:n,onSaved:z=>{z&&o(z),T().catch(()=>{})},onConfirmationRequired:W}),Ve.default.createElement(dj,{project:n,onProjectChanged:z=>o(E=>E&&z.install_state!==E.install_state?z:E),onConfirmationRequired:W}),Ve.default.createElement("div",null,Ve.default.createElement(de,{variant:"danger",size:"sm",onClick:ue},"Delete project"))),u==="explorations"&&Ve.default.createElement(uj,{projectId:e,project:n}),u==="browser"&&Ve.default.createElement(Q3,{project:n,modes:R,watchOnOpen:d,onChange:()=>T().catch(()=>{})}),u==="sessions"&&Ve.default.createElement(K3,{project:n}),u==="environment"&&Ve.default.createElement(Ve.default.Fragment,null,Ve.default.createElement(R3,{secrets:sj(s),onReplace:oe,onDelete:Me,error:y}),A?Ve.default.createElement(Le,null,Ve.default.createElement(We,null,"Add secrets"),Ve.default.createElement("div",{style:{marginTop:8}},Ve.default.createElement(ub,{rows:A,onChange:C,repository:n.repository})),Ve.default.createElement("div",{style:{display:"flex",gap:8,marginTop:12,alignItems:"center"}},Ve.default.createElement(de,{variant:"primary",disabled:!!Fh(A)||sb(A).length===0,onClick:async()=>{await q(sb(A))&&C(null)}},"Save secrets"),Ve.default.createElement(de,{onClick:()=>C(null)},"Cancel"),Fh(A)&&Ve.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},Fh(A)))):Ve.default.createElement("div",null,Ve.default.createElement(de,{size:"sm",onClick:ge},"Add secrets"))))}var ma=Z(J());var R2e={ready:"success",booting:"info",failed:"error",expired:"muted",none:"muted"};function mj({projects:e,onOpen:t,onNew:r}){return ma.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"project-list"},ma.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16}},ma.default.createElement("div",{style:{flex:1}},ma.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Projects"),ma.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"A repository booted in a sandbox, with the secrets it needs and an agent evaluated against the running app.")),ma.default.createElement(de,{variant:"primary",onClick:r,testId:"new-project-button"},"New project")),e.length===0&&ma.default.createElement(Le,null,ma.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-secondary)"}},"No projects yet. Pick a repository to boot it in a sandbox, even one that does not use ActiveAgent.")),e.map(n=>ma.default.createElement(Le,{key:n.id,padding:14,testId:`project-${n.id}`},ma.default.createElement("button",{type:"button",onClick:()=>t(n),style:{all:"unset",cursor:"pointer",display:"flex",gap:10,alignItems:"center",width:"100%",flexWrap:"wrap"}},ma.default.createElement("span",{style:{fontSize:15,fontWeight:600,color:"var(--color-text-primary)"}},n.name),ma.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-muted)"}},n.repository),ma.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:6}},ma.default.createElement(_e,{tone:R2e[n.sandbox_state]||"muted"},"sandbox ",n.sandbox_state),n.target_agent&&ma.default.createElement(_e,{tone:"accent"},n.target_agent.kind==="app_assistant"?"App assistant":n.target_agent.synced_agent))))))}function gj({visit:e=0}){let[t,r]=(0,ga.useState)(()=>lb(Qn())),[n,o]=(0,ga.useState)(null),[a,i]=(0,ga.useState)(null);(0,ga.useEffect)(()=>{r(lb(Qn()))},[e]),(0,ga.useEffect)(()=>{let u=()=>r(lb(Qn()));return window.addEventListener("popstate",u),window.addEventListener("dashboard:navigate",u),()=>{window.removeEventListener("popstate",u),window.removeEventListener("dashboard:navigate",u)}},[]);let s=(0,ga.useCallback)(async()=>{try{let u=await fetch("/api/projects"),c=await u.json().catch(()=>({}));if(!u.ok)throw new Error(ot(c,`Could not list projects (HTTP ${u.status}).`));o(c.projects||[])}catch(u){i(u.message)}},[]);(0,ga.useEffect)(()=>{!t.creating&&!t.projectId&&s()},[t,s]);let l=u=>{ad(u),r(lb(u))};return t.creating?ga.default.createElement(q3,{onCreated:u=>l(wf(u.id)),onCancel:()=>l("/projects")}):t.projectId?ga.default.createElement(fj,{key:t.projectId,projectId:t.projectId,onBack:()=>l("/projects"),onDeleted:()=>l("/projects")}):a?ga.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},a):n?ga.default.createElement(mj,{projects:n,onOpen:u=>l(wf(u.id)),onNew:()=>l(wf(null))}):ga.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading projects\u2026")}var Yr=Z(J());function hj({visit:e=0}){let[t,r]=(0,Yr.useState)(()=>vA(Qn())),[n,o]=(0,Yr.useState)(null),[a,i]=(0,Yr.useState)(null),[s,l]=(0,Yr.useState)(null);(0,Yr.useEffect)(()=>{r(vA(Qn()))},[e]),(0,Yr.useEffect)(()=>{let c=()=>r(vA(Qn()));return window.addEventListener("popstate",c),window.addEventListener("dashboard:navigate",c),()=>{window.removeEventListener("popstate",c),window.removeEventListener("dashboard:navigate",c)}},[]);let u=(0,Yr.useCallback)(async()=>{try{let c=await fetch("/api/explorations"),d=await c.json().catch(()=>({}));if(!c.ok)throw new Error(ot(d,`Could not list explorations (HTTP ${c.status}).`));o(d.explorations||[])}catch(c){l(c.message)}},[]);if((0,Yr.useEffect)(()=>{t.explorationId||u()},[t,u]),t.explorationId){let c=a?.project,d=a?.evaluation;return Yr.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12}},Yr.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},c?Yr.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>lt(wf(c.id)),style:{padding:0}},"\u2190 ",c.name):Yr.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>lt("/explorations"),style:{padding:0}},"\u2190 Explorations"),!c&&d&&Yr.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>lt(`/evaluations/${d.id}`)},"Open ",d.name)),Yr.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Review candidate scenarios"),Yr.default.createElement(Af,{key:t.explorationId,explorationId:t.explorationId,onLoaded:i}))}return Yr.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},Yr.default.createElement("div",null,Yr.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Explorations"),Yr.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"Questions found by walking an app, waiting to be reviewed and accepted into an evaluation.")),s&&Yr.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},s),!s&&!n&&Yr.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading explorations\u2026"),n?.length===0&&Yr.default.createElement(Le,null,Yr.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-secondary)"}},"No explorations yet. An agent that explores a project's app submits what it found with the explorations_submit MCP tool.")),n?.length>0&&Yr.default.createElement(_f,{explorations:n,onOpen:c=>lt(yA(c.id))}))}var xt=Z(J());var he=Z(J());var ri=Z(J());var yj=e=>({padding:"6px 8px",borderRadius:6,border:"1px solid var(--color-border)",background:"var(--color-surface)",color:"var(--color-text-primary)",fontSize:13,fontFamily:e?U:void 0}),zee={display:"flex",flexDirection:"column",gap:4,fontSize:12,color:"var(--color-text-secondary)"},Bee=e=>typeof e=="string"?e:void 0;function Sn({label:e,value:t,onChange:r,placeholder:n,mono:o=!1,multiline:a=!1,rows:i=3,testId:s}){let l=(0,ri.useId)(),u={id:l,value:t,onChange:c=>r(c.target.value),placeholder:n,"aria-label":Bee(e),"data-testid":s};return ri.default.createElement("div",{style:zee},ri.default.createElement("label",{htmlFor:l},e),a?ri.default.createElement("textarea",{...u,rows:i,style:{...yj(o),resize:"vertical"}}):ri.default.createElement("input",{...u,style:yj(o)}))}function xd({label:e,value:t,onChange:r,children:n,testId:o}){let a=(0,ri.useId)();return ri.default.createElement("div",{style:zee},ri.default.createElement("label",{htmlFor:a},e),ri.default.createElement("select",{id:a,value:t,onChange:i=>r(i.target.value),"aria-label":Bee(e),style:yj(!1),"data-testid":o},n))}function db({label:e,checked:t,onChange:r}){return ri.default.createElement("label",{style:{display:"inline-flex",gap:6,alignItems:"center",fontSize:12,color:"var(--color-text-secondary)"}},ri.default.createElement("input",{type:"checkbox",checked:t,onChange:n=>r(n.target.checked)}),e)}function ha({tone:e="info",children:t}){let r=e==="error";return ri.default.createElement("div",{role:r?"alert":"status",style:{fontSize:13,padding:"8px 10px",borderRadius:8,background:r?"var(--color-error-soft)":"transparent",color:r?"var(--color-error-text)":"var(--color-text-secondary)",border:r?"none":"1px solid var(--color-border)"}},t)}async function Rn(e,{method:t="GET",body:r,fallback:n="The request failed"}={}){let o={method:t};r!==void 0&&(o.headers={"Content-Type":"application/json"},o.body=JSON.stringify(r));let a=await fetch(e,o),i=await a.json().catch(()=>({}));if(!a.ok)throw new Error(ot(i,`${n} (HTTP ${a.status}).`));return i}async function Fee(e){let t=await fetch(e);if(!t.ok)throw new Error(`The export failed (HTTP ${t.status}).`);return t.text()}var eAe=["collections","generate","import"],tAe=/^\/(?:scenarios|catalogs)(?:\/(\d+|generate|import))?\/?$/;function vj(e=""){let r=String(e).match(tAe)?.[1];return r?/^\d+$/.test(r)?{tab:"collections",collectionId:Number(r)}:{tab:r,collectionId:null}:{tab:"collections",collectionId:null}}function Uee({tab:e="collections",collectionId:t=null}={}){return t?`/scenarios/${t}`:e==="collections"||!eAe.includes(e)?"/scenarios":`/scenarios/${e}`}function xj(e,{productIds:t=[],setIds:r=[],scenarioIds:n=[]}={},{inline:o=!1}={}){let a=new URLSearchParams;t.length&&a.set("product_ids",t.join(",")),r.length&&a.set("set_ids",r.join(",")),n.length&&a.set("scenario_ids",n.join(",")),o&&a.set("disposition","inline");let i=a.toString();return`/api/scenario_catalogs/${e}/export${i?`?${i}`:""}`}function bA(e){let t=String(e??"").split(/[,\n]/).map(r=>r.trim()).filter(Boolean);return[...new Set(t)]}function Wee(e={}){let t=e.expectations||{};return{key:e.key||"",prompt:e.prompt||"",notes:e.notes||"",tools:(t.tools||[]).join(", "),contains:(t.contains||[]).join(", "),notContains:(t.not_contains||[]).join(", "),tags:(e.tags||[]).join(", "),productionOnly:!!e.production_only,enabled:e.enabled!==!1}}function Hee(e){return{scenario:{key:e.key.trim(),prompt:e.prompt.trim(),notes:e.notes.trim(),expect:{tools:bA(e.tools),contains:bA(e.contains),not_contains:bA(e.notContains)},tags:bA(e.tags),production_only:e.productionOnly,enabled:e.enabled}}}function qee(e){return e.prompt.trim()?e.key.trim()&&!/^[^\s]+$/.test(e.key.trim())?"A key has no spaces.":null:"A scenario needs a prompt."}function Kee(e={}){let t=[];return e.tools?.length&&t.push(`tools ${e.tools.join(", ")}`),e.contains?.length&&t.push(`contains ${e.contains.join(", ")}`),e.not_contains?.length&&t.push(`never ${e.not_contains.join(", ")}`),t.join(" \xB7 ")}var rAe=["create","update","remove","keep"],nAe={create:"New",update:"Overwritten",remove:"Removed",keep:"Kept (not in the document)"};function Vee(e){let t=e?.changes||[];return rAe.map(r=>({action:r,label:nAe[r],changes:t.filter(n=>n.action===r)})).filter(r=>r.changes.length>0)}function Gee(e){if(!e)return"";let t=e.counts||{},r=e.catalog?.action==="create"?"Creates":"Updates",n=[`${t.create||0} new`,`${t.update||0} overwritten`,e.mode==="merge"?`${t.keep||0} kept`:`${t.remove||0} removed`];return`${r} ${e.catalog?.key}: ${n.join(", ")} (${e.scenario_count} scenarios in the document).`}function Yee(e=[]){return e.some(t=>(t.counts?.update||0)+(t.counts?.remove||0)>0)}function Xee(e,t){return e.includes(t)?e.filter(r=>r!==t):[...e,t]}function bj({collectionId:e,agents:t,projects:r,storageAvailable:n,onBack:o,onChanged:a,onDeleted:i}){let[s,l]=(0,he.useState)(null),[u,c]=(0,he.useState)(null),[d,p]=(0,he.useState)(null),[f,m]=(0,he.useState)({productIds:[],setIds:[],scenarioIds:[]}),[y,b]=(0,he.useState)(!1),[g,h]=(0,he.useState)(!1),v=`/api/scenario_catalogs/${e}`,x=(0,he.useCallback)(async()=>{try{let T=await Rn(v,{fallback:"Could not open the collection"});l(T.catalog),c(null)}catch(T){c(T.message)}},[v]);(0,he.useEffect)(()=>{x()},[x]);let S=async(T,$,Q,B)=>{let K=await Rn(`${v}${T}`,{method:$,body:Q,fallback:B});return K.catalog?l(K.catalog):await x(),a?.(),K},_=async T=>{c(null),p(null);try{await T()}catch($){c($.message)}},w=f.productIds.length+f.setIds.length+f.scenarioIds.length,k=(T,$)=>m(Q=>({...Q,[T]:Xee(Q[T],$)})),A=T=>_(async()=>{let $=await Fee(xj(e,T,{inline:!0})),Q=await ld($);p(Q?"YAML copied.":"The browser refused the clipboard; use Download instead.")}),C=T=>window.open(xj(e,T),"_blank");return s?he.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12},"data-testid":"scenario-collection"},he.default.createElement("div",null,he.default.createElement(de,{size:"sm",variant:"ghost",onClick:o,style:{padding:0}},"\u2190 Scenarios")),y?he.default.createElement(oAe,{collection:s,onCancel:()=>b(!1),onSave:async T=>{await S("","PATCH",{catalog:T},"Could not save the collection"),b(!1)}}):he.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:12,flexWrap:"wrap",alignItems:"flex-start"}},he.default.createElement("div",null,he.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},s.name),he.default.createElement("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},he.default.createElement("code",null,s.key),s.source_path?` \xB7 ${s.source_path}`:"",s.description?` \xB7 ${s.description}`:""),he.default.createElement("p",{style:{margin:"4px 0 0",fontSize:12,color:"var(--color-text-secondary)"}},s.scenario_count," scenarios \xB7 digest ",s.digest?s.digest.slice(0,12):"\u2014"," \xB7"," ",s.synced?"synced to storage":n?"not synced to storage":"Active Storage is off for this dashboard")),he.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},he.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>b(!0)},"Rename"),he.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>C({}),testId:"scenarios-export-all"},"Export all"),he.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>A({})},"Copy YAML"),n&&he.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>_(async()=>{await S("/sync","POST",{direction:"push"},"Sync failed"),p("Written to storage.")})},"Write to storage"),he.default.createElement(de,{size:"sm",variant:"danger",onClick:()=>_(async()=>{await Wr({title:`Delete the collection ${s.key}?`,message:"Its products, sets and scenarios are deleted. The evaluations its sets became stay, with their runs.",confirmLabel:"Delete collection",danger:!0,requireText:s.key})&&(await Rn(v,{method:"DELETE",fallback:"Delete failed"}),i?.())})},"Delete"))),u&&he.default.createElement(ha,{tone:"error"},u),d&&he.default.createElement(ha,null,d),w>0&&he.default.createElement(Le,{padding:12,testId:"scenarios-selection-bar",style:{position:"sticky",top:8,zIndex:1}},he.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},he.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-primary)"}},w," selected"),he.default.createElement(de,{size:"sm",onClick:()=>C(f),testId:"scenarios-export-selection"},"Download YAML"),he.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>A(f)},"Copy YAML"),he.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>m({productIds:[],setIds:[],scenarioIds:[]})},"Clear"),he.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"Import it back with \u201CKeep what the document leaves out\u201D to update only these."))),(s.products||[]).length===0&&!g&&he.default.createElement(Le,{testId:"scenarios-collection-empty"},he.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)"}},"No products yet. A product is what its sets run against: an agent, or a project whose booted app the replays reach.")),(s.products||[]).map(T=>he.default.createElement(aAe,{key:T.id,product:T,collection:s,agents:t,projects:r,selection:f,onToggle:k,change:S,act:_,setNotice:p})),g?he.default.createElement(Jee,{agents:t,projects:r,onCancel:()=>h(!1),onSave:async T=>{await S("/products","POST",{product:T},"Could not add the product"),h(!1)}}):he.default.createElement("div",null,he.default.createElement(de,{size:"sm",onClick:()=>h(!0),testId:"scenarios-add-product"},"Add product"))):u?he.default.createElement(ha,{tone:"error"},u):he.default.createElement("p",{style:{color:"var(--color-text-secondary)"}},"Loading the collection\u2026")}function oAe({collection:e,onSave:t,onCancel:r}){let[n,o]=(0,he.useState)(e.name||""),[a,i]=(0,he.useState)(e.description||"");return he.default.createElement(wA,{onSave:()=>t({name:n.trim(),description:a.trim()}),onCancel:r},he.default.createElement(Sn,{label:"Name",value:n,onChange:o}),he.default.createElement(Sn,{label:"Description",value:a,onChange:i}))}function aAe({product:e,collection:t,agents:r,projects:n,selection:o,onToggle:a,change:i,act:s,setNotice:l}){let[u,c]=(0,he.useState)(!1),[d,p]=(0,he.useState)(!1),f=`/products/${e.id}`;return he.default.createElement(Le,{testId:"scenarios-product"},u?he.default.createElement(Jee,{product:e,agents:r,projects:n,onCancel:()=>c(!1),onSave:async m=>{await i(f,"PATCH",{product:m},"Could not save the product"),c(!1)}}):he.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},he.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"flex-start"}},he.default.createElement("input",{type:"checkbox","aria-label":`Select product ${e.key}`,checked:o.productIds.includes(e.id),onChange:()=>a("productIds",e.id),style:{marginTop:4}}),he.default.createElement("div",null,he.default.createElement("div",{style:{fontWeight:600,color:"var(--color-text-primary)"}},e.name),he.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},he.default.createElement("code",null,e.key),e.agent?` \xB7 agent ${e.agent.name}`:e.agent_name?` \xB7 agent ${e.agent_name} (not on this dashboard)`:" \xB7 no agent chosen",e.project?` \xB7 project ${e.project.name}`:""),e.description&&he.default.createElement("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},e.description))),he.default.createElement("div",{style:{display:"flex",gap:6,alignItems:"center",flexWrap:"wrap"}},he.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},e.set_count," sets \xB7 ",e.scenario_count," scenarios"),he.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>c(!0)},"Edit"),he.default.createElement(de,{size:"sm",variant:"danger",onClick:()=>s(async()=>{await Wr({title:`Delete product ${e.key}?`,message:`Its ${e.set_count} sets and their scenarios are deleted.`,confirmLabel:"Delete product",danger:!0})&&await i(f,"DELETE",void 0,"Could not delete the product")})},"Delete"))),he.default.createElement("div",{style:{display:"grid",gap:8,marginTop:12}},(e.sets||[]).map(m=>he.default.createElement(iAe,{key:m.id,set:m,product:e,collection:t,agents:r,projects:n,selection:o,onToggle:a,change:i,act:s,setNotice:l})),d?he.default.createElement(Qee,{onCancel:()=>p(!1),onSave:async m=>{await i(`${f}/sets`,"POST",{set:m},"Could not add the set"),p(!1)}}):he.default.createElement("div",null,he.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>p(!0)},"Add set"))))}function iAe({set:e,product:t,collection:r,agents:n,projects:o,selection:a,onToggle:i,change:s,act:l,setNotice:u}){let[c,d]=(0,he.useState)((e.scenarios||[]).length<=5),[p,f]=(0,he.useState)(!1),[m,y]=(0,he.useState)(null),b=t.project?`project:${t.project.id}`:t.agent?`agent:${t.agent.id}`:"",[g,h]=(0,he.useState)(b),v=`/sets/${e.id}`,x=()=>l(async()=>{let[S,_]=g.split(":"),w=S==="project"?{project_id:Number(_)}:S==="agent"?{agent_id:Number(_)}:{},k=await Rn(`/api/scenario_catalogs/${r.id}${v}/run`,{method:"POST",body:w,fallback:"The run could not start"});u(`Run #${k.run.id} of ${e.name} started; it shows under Evaluations as ${k.evaluation.name}.`)});return he.default.createElement("div",{style:{border:"1px solid var(--color-border)",borderRadius:8,padding:10},"data-testid":"scenarios-set"},p?he.default.createElement(Qee,{set:e,onCancel:()=>f(!1),onSave:async S=>{await s(v,"PATCH",{set:S},"Could not save the set"),f(!1)}}):he.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:10,flexWrap:"wrap",alignItems:"center"}},he.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},he.default.createElement("input",{type:"checkbox","aria-label":`Select set ${e.key}`,checked:a.setIds.includes(e.id),onChange:()=>i("setIds",e.id)}),he.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},e.name),he.default.createElement("code",{style:{fontSize:12,color:"var(--color-text-secondary)"}},e.key),he.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"\xB7 ",e.scenario_count," scenarios"),e.judge?.kind&&he.default.createElement(_e,null,`judge ${e.judge.kind}`),e.evaluation&&he.default.createElement("a",{href:"#",style:{fontSize:12},onClick:S=>{S.preventDefault(),lt(`/evaluations/${e.evaluation.id}`)}},"evaluation",e.latest_run?` (latest run ${e.latest_run.status})`:"")),he.default.createElement("div",{style:{display:"flex",gap:6,alignItems:"center",flexWrap:"wrap"}},he.default.createElement("select",{value:g,onChange:S=>h(S.target.value),style:{fontSize:12,padding:4,borderRadius:6,border:"1px solid var(--color-border)",background:"var(--color-surface)",color:"var(--color-text-primary)"}},he.default.createElement("option",{value:""},"Run against\u2026"),o.length>0&&he.default.createElement("optgroup",{label:"Projects (booted app and browser)"},o.map(S=>he.default.createElement("option",{key:`project-${S.id}`,value:`project:${S.id}`},S.name))),n.length>0&&he.default.createElement("optgroup",{label:"Agents"},n.map(S=>he.default.createElement("option",{key:`agent-${S.id}`,value:`agent:${S.id}`},S.name)))),he.default.createElement(de,{size:"sm",onClick:x,disabled:!g&&!t.agent&&!t.project||e.scenario_count===0},"Run set"),he.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>d(S=>!S)},c?"Hide":"Scenarios"),he.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>f(!0)},"Edit"),he.default.createElement(de,{size:"sm",variant:"danger",onClick:()=>l(async()=>{await Wr({title:`Delete set ${e.key}?`,message:`Its ${e.scenario_count} scenarios are deleted. Its evaluation stays.`,confirmLabel:"Delete set",danger:!0})&&await s(v,"DELETE",void 0,"Could not delete the set")})},"Delete"))),c&&he.default.createElement("ul",{style:{listStyle:"none",margin:"10px 0 0",padding:0,display:"grid",gap:6}},(e.scenarios||[]).map(S=>m===S.id?he.default.createElement("li",{key:S.id},he.default.createElement(Zee,{scenario:S,onCancel:()=>y(null),onSave:async _=>{await s(`${v}/scenarios/${S.id}`,"PATCH",_,"Could not save the scenario"),y(null)}})):he.default.createElement(sAe,{key:S.id,scenario:S,selected:a.scenarioIds.includes(S.id),onToggle:()=>i("scenarioIds",S.id),onEdit:()=>y(S.id),onDelete:()=>l(async()=>{await Wr({title:`Delete scenario ${S.key}?`,confirmLabel:"Delete scenario",danger:!0})&&await s(`${v}/scenarios/${S.id}`,"DELETE",void 0,"Could not delete the scenario")})})),he.default.createElement("li",null,m==="new"?he.default.createElement(Zee,{onCancel:()=>y(null),onSave:async S=>{await s(`${v}/scenarios`,"POST",S,"Could not add the scenario"),y(null)}}):he.default.createElement(de,{size:"sm",variant:"ghost",onClick:()=>{d(!0),y("new")},testId:"scenarios-add-scenario"},"Add scenario"))))}function sAe({scenario:e,selected:t,onToggle:r,onEdit:n,onDelete:o}){let a=Kee(e.expectations);return he.default.createElement("li",{style:{display:"flex",gap:8,alignItems:"flex-start",padding:"6px 8px",borderRadius:6,background:"var(--color-surface)"},"data-testid":"scenarios-scenario"},he.default.createElement("input",{type:"checkbox","aria-label":`Select scenario ${e.key}`,checked:t,onChange:r,style:{marginTop:3}}),he.default.createElement("div",{style:{flex:1,minWidth:0}},he.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-primary)",opacity:e.enabled?1:.6}},he.default.createElement("code",{style:{fontSize:11,color:"var(--color-text-secondary)"}},e.key)," ",e.prompt),(e.notes||a)&&he.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)",marginTop:2}},e.notes,e.notes&&a?" \xB7 ":"",a&&he.default.createElement("span",{style:{fontFamily:U}},a)),he.default.createElement("div",{style:{display:"flex",gap:4,marginTop:2,flexWrap:"wrap"}},(e.tags||[]).map(i=>he.default.createElement(_e,{key:i},i)),e.production_only&&he.default.createElement(_e,{tone:"warning"},"production only"),!e.enabled&&he.default.createElement(_e,null,"disabled"))),he.default.createElement(de,{size:"sm",variant:"ghost",onClick:n},"Edit"),he.default.createElement(de,{size:"sm",variant:"ghost",onClick:o},"Delete"))}function wA({children:e,onSave:t,onCancel:r,problem:n=null,testId:o}){let[a,i]=(0,he.useState)(!1),[s,l]=(0,he.useState)(null);return he.default.createElement("form",{onSubmit:async c=>{if(c.preventDefault(),n){l(n);return}i(!0),l(null);try{await t()}catch(d){l(d.message)}finally{i(!1)}},style:{display:"flex",flexDirection:"column",gap:8,padding:10,border:"1px dashed var(--color-border)",borderRadius:8},"data-testid":o},e,s&&he.default.createElement(ha,{tone:"error"},s),he.default.createElement("div",{style:{display:"flex",gap:8}},he.default.createElement(de,{type:"submit",size:"sm",variant:"primary",disabled:a},a?"Saving\u2026":"Save"),he.default.createElement(de,{size:"sm",variant:"ghost",onClick:r},"Cancel")))}function Jee({product:e=null,agents:t,projects:r,onSave:n,onCancel:o}){let[a,i]=(0,he.useState)(e?.name||""),[s,l]=(0,he.useState)(e?.key||""),[u,c]=(0,he.useState)(e?.description||""),[d,p]=(0,he.useState)(e?.agent?String(e.agent.id):""),[f,m]=(0,he.useState)(e?.project?String(e.project.id):"");return he.default.createElement(wA,{onCancel:o,onSave:()=>n({name:a.trim(),key:s.trim(),description:u.trim(),agent_id:d,project_id:f}),testId:"scenarios-product-form"},he.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},he.default.createElement(Sn,{label:"Name",value:a,onChange:i,placeholder:"Triage"}),he.default.createElement(Sn,{label:"Key",value:s,onChange:l,placeholder:"made from the name when empty",mono:!0}),he.default.createElement(xd,{label:"Agent",value:d,onChange:p},he.default.createElement("option",{value:""},"None"),t.map(y=>he.default.createElement("option",{key:y.id,value:y.id},y.name))),he.default.createElement(xd,{label:"Project",value:f,onChange:m},he.default.createElement("option",{value:""},"None"),r.map(y=>he.default.createElement("option",{key:y.id,value:y.id},y.name)))),he.default.createElement(Sn,{label:"Description",value:u,onChange:c,placeholder:"optional"}))}function Qee({set:e=null,onSave:t,onCancel:r}){let[n,o]=(0,he.useState)(e?.name||""),[a,i]=(0,he.useState)(e?.key||""),[s,l]=(0,he.useState)(e?.description||""),[u,c]=(0,he.useState)(e?.judge?.kind||"");return he.default.createElement(wA,{onCancel:r,onSave:()=>t({name:n.trim(),key:a.trim(),description:s.trim(),...u?{judge:{kind:u}}:{}}),testId:"scenarios-set-form"},he.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},he.default.createElement(Sn,{label:"Name",value:n,onChange:o,placeholder:"Smoke"}),he.default.createElement(Sn,{label:"Key",value:a,onChange:i,placeholder:"made from the name when empty",mono:!0}),he.default.createElement(xd,{label:"Judge",value:u,onChange:c},he.default.createElement("option",{value:""},"The evaluation's default"),he.default.createElement("option",{value:"rules"},"Rules (expectations only)"),he.default.createElement("option",{value:"llm"},"LLM judge (grades against the notes)"))),he.default.createElement(Sn,{label:"Description",value:s,onChange:l,placeholder:"optional"}))}function Zee({scenario:e=null,onSave:t,onCancel:r}){let[n,o]=(0,he.useState)(()=>Wee(e||{})),a=i=>s=>o(l=>({...l,[i]:s}));return he.default.createElement(wA,{onCancel:r,onSave:()=>t(Hee(n)),problem:qee(n),testId:"scenarios-scenario-form"},he.default.createElement(Sn,{label:"Prompt: what a user asks the agent",value:n.prompt,onChange:a("prompt"),multiline:!0,testId:"scenario-prompt"}),he.default.createElement(Sn,{label:"Notes: the rubric, what a good answer does",value:n.notes,onChange:a("notes"),multiline:!0,rows:2}),he.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},he.default.createElement(Sn,{label:"Expected tools",value:n.tools,onChange:a("tools"),placeholder:"lookup_order, refund_order",mono:!0}),he.default.createElement(Sn,{label:"Answer contains",value:n.contains,onChange:a("contains"),placeholder:"comma-separated"}),he.default.createElement(Sn,{label:"Answer never contains",value:n.notContains,onChange:a("notContains"),placeholder:"comma-separated"}),he.default.createElement(Sn,{label:"Tags",value:n.tags,onChange:a("tags"),placeholder:"billing, regression"}),he.default.createElement(Sn,{label:"Key",value:n.key,onChange:a("key"),placeholder:"made from the prompt when empty",mono:!0})),he.default.createElement("div",{style:{display:"flex",gap:16}},he.default.createElement(db,{label:"Enabled",checked:n.enabled,onChange:a("enabled")}),he.default.createElement(db,{label:"Production only",checked:n.productionOnly,onChange:a("productionOnly")})))}var Et=Z(J());function wj({projects:e,collections:t,onAccepted:r}){let[n,o]=(0,Et.useState)(""),[a,i]=(0,Et.useState)(null),[s,l]=(0,Et.useState)(null),[u,c]=(0,Et.useState)({sandbox:null,modes:[]}),[d,p]=(0,Et.useState)([]),[f,m]=(0,Et.useState)(null),[y,b]=(0,Et.useState)({collectionId:"",setId:""}),[g,h]=(0,Et.useState)(null),[v,x]=(0,Et.useState)(null),S=(0,Et.useCallback)(async()=>{if(n)try{let[T,$,Q,B]=await Promise.all([Rn(`/api/projects/${n}`,{fallback:"Could not load the project"}),Rn("/api/projects/capabilities").catch(()=>({})),Rn("/api/sandboxes").catch(()=>({})),Rn(`/api/explorations?project_id=${n}`,{fallback:"Could not list the project's explorations"})]),K=T.project;i(K),l(($.items||[]).find(O=>O.key==="model_credentials")||null);let N=K?.sandbox?.session_id;c({sandbox:(Q.sandboxes||[]).find(O=>O.session_id===N)||null,modes:Q.browser_modes||[]}),p(B.explorations||[]),x(null)}catch(T){x(T.message)}},[n]);(0,Et.useEffect)(()=>{i(null),m(null),S()},[S]),(0,Et.useEffect)(()=>{if(!y.collectionId){h(null);return}Rn(`/api/scenario_catalogs/${y.collectionId}`).then(T=>h(T.catalog)).catch(T=>x(T.message))},[y.collectionId]);let _=(g?.products||[]).flatMap(T=>(T.sets||[]).map($=>({...$,product:T}))),w=_.find(T=>String(T.id)===String(y.setId)),k=async()=>{try{let $=(await Rn("/api/scenario_catalogs",{method:"POST",body:{catalog:{name:a.name}},fallback:"Could not create the collection"})).catalogs[0].id,Q=await Rn(`/api/scenario_catalogs/${$}/products`,{method:"POST",body:{product:{name:a.name,project_id:a.id}},fallback:"Could not add the product"}),B=await Rn(`/api/scenario_catalogs/${$}/products/${Q.product.id}/sets`,{method:"POST",body:{set:{name:"Explored",key:"explored",judge:{kind:"llm"}}},fallback:"Could not add the set"});r?.(),b({collectionId:String($),setId:String(B.set.id)})}catch(T){x(T.message)}},A=a?.sandbox_state==="ready",C=f||d[0]?.id;return Et.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12},"data-testid":"scenarios-generator"},Et.default.createElement(Le,null,Et.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},Et.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"Pick a project. The explorer walks its running app in the sandbox's browser and proposes scenarios, which you edit and accept into a set below. Nothing is added until you accept it."),Et.default.createElement(xd,{label:"Project",value:n,onChange:o,testId:"scenarios-generator-project"},Et.default.createElement("option",{value:""},"Choose a project\u2026"),e.map(T=>Et.default.createElement("option",{key:T.id,value:T.id},T.name))),e.length===0&&Et.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"No projects yet. ",Et.default.createElement("a",{href:"#",onClick:T=>{T.preventDefault(),lt("/projects/new")}},"Create one")," from a repository first."))),v&&Et.default.createElement(ha,{tone:"error"},v),a&&Et.default.createElement(Et.default.Fragment,null,s&&!s.ok&&Et.default.createElement(ha,{tone:"error"},"The explorer runs on a model: ",s.detail||"no provider has credentials","."," ",Et.default.createElement("a",{href:"#",onClick:T=>{T.preventDefault(),lt("/settings?tab=api-keys")}},"Add a provider key"),", then start it."),!A&&Et.default.createElement(ha,null,a.name,"'s sandbox is ",a.sandbox_state||"not booted",". The explorer walks the app the sandbox serves:"," ",Et.default.createElement("a",{href:"#",onClick:T=>{T.preventDefault(),lt(`/projects/${a.id}`)}},"boot it on the project's page"),"."),Et.default.createElement(cb,{projectId:a.id,sandboxReady:A,onStarted:T=>{m(T.id),S()}}),A&&u.sandbox&&u.modes.length>0&&Et.default.createElement(en,{title:"The sandbox's browser",meta:"watch the explorer walk the app",bodyStyle:{padding:12}},Et.default.createElement(Sf,{sandbox:u.sandbox,modes:u.modes})),Et.default.createElement(en,{title:"Accept into",testId:"scenarios-generator-destination",bodyStyle:{padding:12,display:"flex",flexDirection:"column",gap:8}},Et.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))"}},Et.default.createElement(xd,{label:"Collection",value:y.collectionId,onChange:T=>b({collectionId:T,setId:""})},Et.default.createElement("option",{value:""},"Choose a collection\u2026"),t.map(T=>Et.default.createElement("option",{key:T.id,value:T.id},T.name))),Et.default.createElement(xd,{label:"Set",value:y.setId,onChange:T=>b($=>({...$,setId:T}))},Et.default.createElement("option",{value:""},g&&_.length===0?"The collection has no sets yet":"Choose a set\u2026"),_.map(T=>Et.default.createElement("option",{key:T.id,value:T.id},T.product.name," / ",T.name)))),Et.default.createElement("div",null,Et.default.createElement(de,{size:"sm",variant:"ghost",onClick:k},"New collection for ",a.name))),d.length===0?Et.default.createElement(Le,null,Et.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"No explorations of ",a.name," yet. Start the explorer above, or have a coding agent driving a browser submit what it found with the explorations_submit MCP tool.")):Et.default.createElement(Et.default.Fragment,null,Et.default.createElement(_f,{explorations:d,selectedId:C,onOpen:T=>m(T.id)}),!w&&Et.default.createElement(ha,null,"Choose the set to accept into, above."),Et.default.createElement(Af,{key:`${C}-${w?.id||"none"}`,explorationId:C,requireScenarioSet:!0,scenarioSet:w?{id:w.id,label:`${w.product.name} / ${w.name}`}:null,onAccepted:()=>r?.()}))))}var Kt=Z(J());var lAe=[{value:"document",label:"Paste YAML"},{value:"file",label:"Upload a file"},{value:"repository",label:"From a repository"}],uAe=`catalog: support_desk + api_key: <%= ENV["ACTIVEAGENTS_API_KEY"] %>`),Te.default.createElement("div",{className:"flex items-center justify-between gap-3"},Te.default.createElement("div",{className:"min-w-0 flex-1"},Te.default.createElement("p",{className:`text-xs uppercase tracking-wide mb-1 ${o?"text-gray-500":"text-gray-400"}`},"API Key"),Te.default.createElement("code",{"data-testid":"telemetry-key","data-aa-secret":"",className:`block truncate text-sm font-mono px-3 py-2 rounded-lg border ${o?"bg-gray-900 border-gray-700 text-gray-300":"bg-gray-50 border-gray-200 text-gray-700"}`},T?"Not available":u?d.value:"\u2022".repeat(24))),Te.default.createElement("div",{className:"flex gap-2 flex-shrink-0 self-end"},Te.default.createElement("button",{onClick:B,disabled:T||d.status==="loading",className:"px-3 py-2 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},u?"Hide":"Show"),Te.default.createElement("button",{onClick:K,disabled:T||d.status==="loading",className:"px-3 py-2 text-sm bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},s?"Copied!":"Copy"))),d.error&&Te.default.createElement("p",{role:"alert",className:"mt-2 text-sm text-red-500"},d.error)))}var Oe=Z(J());var Ke=Z(J());var b2e=/^[A-Za-z_][A-Za-z0-9_]*$/,w2e=/^(?:PORT|DATABASE_URL|RUBYOPT|RUBYLIB|LD_PRELOAD|PATH|NODE_OPTIONS)$|_DATABASE_URL$|^ACTION_AGENT_SANDBOX_|^DYLD_|^BUNDLE_|^GIT_/,S2e={OPENAI_API_KEY:"openai",ANTHROPIC_API_KEY:"anthropic",OPENROUTER_API_KEY:"openrouter"},k2e=["sk_live_","rk_live_"],NR=8,TR=2e3;function cA(e){return e?b2e.test(e)?w2e.test(e)?`${e} is set by the sandbox or changes how code is loaded, so a project cannot set it.`:null:"Use letters, digits and _ only, not starting with a digit.":"Name the variable."}function dA(e,t){let r=[],n=typeof t=="string"?t:"";return k2e.some(o=>n.startsWith(o))&&r.push({code:"live_credential",message:"This looks like a live-mode key. A sandbox runs the repository's code with it: use a test-mode key."}),n.length>0&&n.lengthn.name));return e.map(n=>({name:n.name,required:!!n.required,sources:n.sources||[],description:n.description||null,organizationKey:n.organization_key||S2e[n.name]||null,set:r.has(n.name)||!!n.set,value:"",useOrganizationKey:!1,consent:!1}))}function OR(e,t){return[...e,...sb([{name:t}])]}function PR({name:e,edited:t,fullName:r}){return t?e:r}function lb(e){return e.flatMap(t=>t.useOrganizationKey?[{name:t.name,source:"organization_key",consent:t.consent===!0}]:t.value?[{name:t.name,value:t.value}]:[])}function Uh(e){for(let t of e){let r=cA(t.name);if(r&&(t.value||t.useOrganizationKey))return r;if(t.useOrganizationKey&&!t.consent)return`Confirm that ${t.name}'s organization key may be read by the repository's code.`}return null}function MR({github:e,repositories:t,reconnectRequired:r=!1,pendingApproval:n=!1}={}){return e?e.mode==="none"?"not_configured":e.connected?r?"reconnect_required":n?"pending_approval":t==null?"loading":t.length===0?"empty":"ready":"not_connected":"loading"}function I3(e){return/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(e||"")}function _2e(e){return(e?.items||[]).filter(t=>t.blocking&&!t.ok)}function IR({capabilities:e,preflight:t,secretsProblem:r}={}){if(!e)return"Checking what this dashboard can do\u2026";let n=_2e(e);return n.length>0?`Fix first: ${n.map(o=>o.label).join(", ")}.`:t?t.status==="unsupported"?t.summary:r||null:"Pick a repository."}var pA={supported:"success",bootstrap:"info",unsupported:"error"};function DR(e){return e==="checkout"?"Checkout":e==="preflight"?"Preflight":e==="setup"?"Setup":/^bundle_/.test(e)?"Bundle":/^(add|install)_/.test(e)?"Install":/_build$/.test(e)?"Assets":e==="db_prepare"?"Database":e==="manifest"?"Manifest":e==="start"||e==="server"?"Start and start URL":"Step"}function jR(e){if(e==null||Number.isNaN(Number(e)))return"\u2014";let t=Number(e);if(t<1e3)return`${Math.round(t)}ms`;if(t<6e4)return`${(t/1e3).toFixed(1)}s`;let r=Math.floor(t/6e4),n=Math.round(t%6e4/1e3);return`${r}m ${String(n).padStart(2,"0")}s`}var $R={succeeded:"success",failed:"error",running:"info",skipped:"muted",pending:"muted"};function LR(e){return e?.sandbox_state==="booting"}function Sf(e){return e==null?"/projects/new":`/projects/${e}`}function ub(e=""){if(/^\/projects\/new\/?$/.test(e))return{creating:!0};let t=e.match(/^\/projects\/(\d+)/);return t?{projectId:t[1]}:{}}var zR=["overview","explorations","environment","browser","sessions"];function BR(e=""){let t=new URLSearchParams(e).get("tab");return zR.includes(t)?t:"overview"}function FR(e="",t="overview"){let r=new URLSearchParams(e);t==="overview"||!zR.includes(t)?r.delete("tab"):r.set("tab",t);let n=r.toString();return n?`?${n}`:""}function fA(e){if(!e?.project?.id)return null;let t=Sf(e.project.id);return e.browser?.status==="running"?`${t}?tab=browser`:t}function UR(e,t=[]){return e?.sandbox_state!=="ready"||!e.sandbox?.session_id||t.length===0?null:e.sandbox.browser?.status==="running"?{label:"Watch live",watch:!0}:{label:"Open browser",watch:!1}}var Mn=Z(J());function kf({sandbox:e,modes:t,watchOnOpen:r=!1,onChange:n}){let{darkMode:o}=ut(),[a,i]=(0,Mn.useState)(e.browser||null),[s,l]=(0,Mn.useState)(!1),[u,c]=(0,Mn.useState)(null),[d,p]=(0,Mn.useState)(null),f=`/api/sandboxes/${encodeURIComponent(e.session_id)}/browser`;(0,Mn.useEffect)(()=>{i(e.browser||null)},[e.browser?.status,e.browser?.started_at,e.browser?.live_url]);let m=async(_,A,C)=>{c(_),p(null);try{let N=await fetch(f,A),L=await N.json().catch(()=>({}));if(L.browser&&(i(L.browser),n?.(L.browser)),!N.ok)throw new Error(L.message||at(L,`${C} (HTTP ${N.status}).`))}catch(N){p(N.message)}finally{c(null)}},y=()=>m("start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(GX({inWindow:s,modes:t}))},"Could not start the browser"),b=()=>m("stop",{method:"DELETE"},"Could not stop the browser"),g=o?"text-gray-400":"text-gray-500",h=o?"text-white":"text-gray-900",v=o?"border-gray-700":"border-gray-200",x=`px-3 py-1 text-sm rounded disabled:opacity-50 ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,S=KX(a),k=VX(a),w=a?.status==="running";return Mn.default.createElement("div",{className:`mt-2 p-3 rounded-lg border space-y-3 ${v}`},Mn.default.createElement("div",{className:"flex flex-wrap items-center justify-between gap-2"},Mn.default.createElement("div",{className:"flex items-center gap-2"},Mn.default.createElement("p",{className:`text-sm font-medium ${h}`},"Browser"),S&&Mn.default.createElement(Ks,{tone:S.tone},S.label)),k?Mn.default.createElement("button",{type:"button",onClick:b,disabled:u!==null,className:x},u==="stop"?"Stopping\u2026":"Stop browser"):Mn.default.createElement("div",{className:"flex items-center gap-3"},t.includes("headed")&&Mn.default.createElement("label",{className:`flex items-center gap-1 text-xs ${g}`},Mn.default.createElement("input",{type:"checkbox",checked:s,onChange:_=>l(_.target.checked),disabled:u!==null}),"Open a window on this machine"),Mn.default.createElement("button",{type:"button",onClick:y,disabled:u!==null,className:x},u==="start"?"Starting\u2026":"Start browser"))),d&&Mn.default.createElement("p",{className:`text-xs ${o?"text-red-400":"text-red-600"}`,role:"alert"},d),!k&&!d&&Mn.default.createElement("p",{className:`text-xs ${g}`},"A browser of this sandbox's own, opened on its app and recorded. Agent runs against the sandbox can drive it."),w&&a.server_key&&Mn.default.createElement("p",{className:`text-xs ${g}`},"Runs against this sandbox reach it as ",Mn.default.createElement("code",{className:"font-mono"},a.server_key),"."),w&&a.live_url&&Mn.default.createElement(S0,{key:a.started_at,sessionId:e.session_id,headed:a.mode==="headed",watchOnOpen:r}),w&&!a.live_url&&Mn.default.createElement("p",{className:`text-xs ${g}`},"This browser has no live view to watch."))}var tr=Z(J());var un=Z(J());function WR(e,t=""){let r=t.toLowerCase();return(e||[]).filter(n=>n.full_name.toLowerCase().includes(r))}function mA(e,t){let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r}var HR={loading:"Loading repositories\u2026",not_configured:"GitHub is not configured on this dashboard.",not_connected:"Connect GitHub to pick a repository.",reconnect_required:"GitHub rejected the stored token. Reconnect GitHub to list repositories again.",pending_approval:"The GitHub installation is waiting for an owner of the account to approve it. Check again once it is approved.",empty:"This GitHub connection reaches no repositories yet."};function _f({repositories:e,selection:t,onToggle:r,filter:n,onFilterChange:o,mode:a="multiple",selected:i=null,onSelect:s,state:l="ready",settingsHref:u,missingRepositoryUrl:c,onRefresh:d,onTypeName:p,typedNameError:f}){let{darkMode:m}=ut(),[y,b]=(0,un.useState)(""),[g,h]=(0,un.useState)(!1),v=m?"text-gray-400":"text-gray-500",x=m?"text-white":"text-gray-900",S={backgroundColor:m?"#252525":"#f9fafb"},k=`w-full px-3 py-2 border rounded-lg text-sm ${m?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`,w=WR(e,n);(0,un.useEffect)(()=>{if(!g||!d)return;let C=()=>{h(!1),d()};return window.addEventListener("focus",C),()=>window.removeEventListener("focus",C)},[g,d]);let _=c?un.default.createElement("a",{href:c,target:"_blank",rel:"noreferrer",onClick:()=>h(!0),className:"text-sm underline","data-testid":"repo-picker-missing"},"Repository not listed?"):null,A=p?un.default.createElement("form",{className:"flex items-center gap-2",onSubmit:C=>{C.preventDefault(),I3(y)&&p(y)}},un.default.createElement("input",{type:"text",value:y,onChange:C=>b(C.target.value.trim()),placeholder:"Type owner/name","aria-label":"Repository owner/name",className:k,"data-testid":"repo-picker-typed-name"}),un.default.createElement("button",{type:"submit",disabled:!I3(y),className:`px-3 py-2 border rounded-lg text-sm ${x}`},"Look up")):null;if(l!=="ready"){let C=["not_connected","reconnect_required"].includes(l)&&u;return un.default.createElement("div",{className:"space-y-2","data-testid":`repo-picker-${l}`},un.default.createElement("p",{className:`text-sm ${v}`},HR[l]||HR.loading),C&&un.default.createElement("a",{href:u,className:"text-sm underline"},l==="reconnect_required"?"Reconnect GitHub":"Connect GitHub"," in Settings \u2192 Integrations"),l==="pending_approval"&&d&&un.default.createElement("button",{type:"button",onClick:d,className:`px-3 py-2 border rounded-lg text-sm ${x}`},"Check again"),l==="empty"&&_,l==="empty"&&A,f&&un.default.createElement("p",{className:"text-sm text-red-500"},f))}return un.default.createElement("div",{className:"space-y-2"},un.default.createElement("input",{type:"text",value:n,onChange:C=>o(C.target.value),placeholder:"Filter repositories",className:k}),un.default.createElement("div",{className:"max-h-80 overflow-y-auto space-y-1"},w.map(C=>un.default.createElement("label",{key:C.id,className:"flex items-center space-x-3 p-2 rounded cursor-pointer",style:S},a==="single"?un.default.createElement("input",{type:"radio",name:"repository",checked:i===C.full_name,onChange:()=>s(C.full_name)}):un.default.createElement("input",{type:"checkbox",checked:t.has(C.full_name),onChange:()=>r(C.full_name)}),un.default.createElement("span",{className:`text-sm font-mono ${x}`},C.full_name),C.private&&un.default.createElement("span",{className:`text-xs ${v}`},"private"))),w.length===0&&un.default.createElement("p",{className:`text-sm ${v}`},"No repositories match.")),(_||A)&&un.default.createElement("div",{className:"space-y-2"},_,A,f&&un.default.createElement("p",{className:"text-sm text-red-500"},f)))}var qR={linked:{tone:"success",text:"GitHub App installation linked. Choose the repositories this workspace may use on it."},pending:{tone:"success",text:"Installation requested. Once an owner of the organization approves it on GitHub, that owner has to link it from this page."},denied:{tone:"error",text:"GitHub authorization was cancelled."},invalid_state:{tone:"error",text:"That GitHub App return expired or was not started here. Try again from this page."},missing_code:{tone:"error",text:"GitHub did not return an authorization code. Try again."},missing_installation:{tone:"error",text:"GitHub did not say which installation to link. Try installing again."},not_found:{tone:"error",text:"Your GitHub account cannot reach that installation, so it was not linked."},not_admin:{tone:"error",text:"Only the account the App is installed on, or an admin of its organization, can link an installation."},taken:{tone:"error",text:"That installation is already linked to another workspace."},not_configured:{tone:"error",text:"No GitHub App is configured on this dashboard."},forbidden:{tone:"error",text:"You do not have permission to change the GitHub App."},manifest_error:{tone:"error",text:"GitHub did not finish creating the App. Try again."},manifest_unavailable:{tone:"error",text:"Creating a GitHub App is not available on this dashboard."},error:{tone:"error",text:"Could not finish linking the GitHub App. Try again."}};function KR(e){let t=e.account_type==="Organization"?"organization":"user";return`@${e.account_login} \xB7 ${t}`}function gA(e){return e.status==="removed"?{label:"Removed from GitHub: reinstall or unlink",tone:"error"}:e.status==="suspended"?{label:"Suspended on GitHub",tone:"warning"}:null}function VR(e){let t=e||[];if(t.length===0)return{text:null,active:0};let r=t.filter(a=>gA(a)).length,n=t.length===1?"GitHub App installation":"GitHub App installations",o=r>0?` (${r} ${r===1?"needs":"need"} attention)`:"";return{text:`${t.length} ${n}${o}`,active:t.length-r}}function GR(e,t){let r=new Map;return(t||[]).forEach(n=>{gA(n)||(n.repositories||[]).forEach(o=>{let a=o.full_name.toLowerCase();r.has(a)||r.set(a,{...o,source:"app",installation:n})})}),(e?.repositories||[]).forEach(n=>{let o=n.full_name.toLowerCase();r.has(o)||r.set(o,{...n,source:"oauth",installation:null})}),[...r.values()]}function YR(e){return e.source==="app"?`GitHub App (@${e.installation.account_login})`:"OAuth"}function XR(e){return/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,38})$/.test(e)}function ZR(e,t,r){let n=e.createElement("form");n.method="post",n.action=t,n.style.display="none";let o=e.createElement("input");return o.type="hidden",o.name="manifest",o.value=JSON.stringify(r),n.appendChild(o),e.body.appendChild(n),n.submit(),n}function D3({app:e,onChanged:t,onError:r,onNotice:n}){let{darkMode:o}=ut(),[a,i]=(0,tr.useState)(null),[s,l]=(0,tr.useState)(null),[u,c]=(0,tr.useState)(new Set),[d,p]=(0,tr.useState)(""),[f,m]=(0,tr.useState)(!1),[y,b]=(0,tr.useState)(null),[g,h]=(0,tr.useState)(""),[v,x]=(0,tr.useState)(!1);if(!e||!e.configured&&!e.manifest_available)return null;let S=o?"text-gray-400":"text-gray-500",k=o?"text-white":"text-gray-900",w={backgroundColor:o?"#252525":"#f9fafb"},_=`px-3 py-1 text-sm rounded ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,A=`px-3 py-1 text-sm rounded ${o?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`,C={error:o?"text-red-400":"text-red-600",warning:o?"text-amber-300":"text-amber-700"},N=async I=>{r(null);try{let P=await fetch(`/api/github_installations/${I.id}/repositories`),j=await P.json().catch(()=>({}));if(!P.ok)throw j.reinstall_required&&t(),new Error(j.error||"Could not list the installation's repositories.");l(j.repositories||[]),c(new Set((I.repositories||[]).map(M=>M.full_name))),p(""),i(I.id)}catch(P){r(P.message)}},L=async I=>{b(I.id),r(null);try{let P=await fetch(`/api/github_installations/${I.id}/repositories`),j=await P.json().catch(()=>({}));if(!P.ok)throw new Error(j.error||"Could not check the installation on GitHub.");n({tone:"success",text:`The installation on @${I.account_login} is active again.`})}catch(P){r(P.message)}finally{b(null),t()}},Q=()=>{i(null),l(null)},B=async()=>{m(!0),r(null);try{let I=await fetch(`/api/github_installations/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({repositories:[...u]})}),P=await I.json().catch(()=>({}));if(!I.ok)throw new Error(P.error||"Could not save the selection.");Q(),n({tone:"success",text:"Repository selection saved."}),t()}catch(I){r(I.message)}finally{m(!1)}},K=async I=>{if(await Wr({title:`Unlink @${I.account_login}?`,message:"New sandboxes can no longer check out its repositories. The App stays installed on GitHub; uninstall it there to remove its access.",confirmLabel:"Unlink",danger:!0})){r(null);try{let P=await fetch(`/api/github_installations/${I.id}`,{method:"DELETE"});if(!P.ok&&P.status!==404)throw new Error("Could not unlink the installation.");a===I.id&&Q(),t()}catch(P){r(P.message)}}},T=async()=>{let I=g.trim();if(I&&!XR(I)){r("Enter the organization's GitHub login, or leave it empty to create the App under your account.");return}x(!0),r(null);try{let P=await fetch("/api/github_app_manifest",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(I?{organization:I}:{})}),j=await P.json().catch(()=>({}));if(!P.ok)throw new Error(j.error||"Could not start creating the GitHub App.");ZR(document,j.url,j.manifest)}catch(P){r(P.message),x(!1)}};if(!e.configured)return tr.default.createElement("div",{className:"p-3 rounded-lg space-y-2",style:w},tr.default.createElement("p",{className:`text-sm font-medium ${k}`},"Use a GitHub App"),tr.default.createElement("p",{className:`text-xs ${S}`},"A GitHub App gives each checkout a one-hour token limited to its one repository. Create one for this dashboard: GitHub registers it, and this page shows its settings once to add to your configuration."),tr.default.createElement("div",{className:"flex items-center gap-2"},tr.default.createElement("input",{type:"text",value:g,onChange:I=>h(I.target.value),placeholder:"Organization (optional)",className:`flex-1 px-3 py-1 border rounded text-sm ${o?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),tr.default.createElement("button",{type:"button",onClick:T,disabled:v,className:`${_} disabled:opacity-50`},v?"Opening GitHub\u2026":"Create GitHub App")));let O=e.installations||[];return tr.default.createElement("div",{className:"space-y-3"},tr.default.createElement("div",{className:"flex items-center justify-between"},tr.default.createElement("div",null,tr.default.createElement("p",{className:`text-sm font-medium ${k}`},"GitHub App"),tr.default.createElement("p",{className:`text-xs ${S}`},"Each checkout gets a one-hour token limited to its repository. When a repository is reachable both ways, the App is used.")),tr.default.createElement("a",{href:Re("/api/github_installations/install"),className:"shrink-0 px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600"},"Install the GitHub App")),O.length===0&&tr.default.createElement("p",{className:`text-sm ${S}`},"No installation is linked yet. Install the App on the repositories this workspace should use."),O.map(I=>{let P=gA(I),j=I.repositories||[];return tr.default.createElement("div",{key:I.id,className:"p-3 rounded-lg space-y-2",style:w},tr.default.createElement("div",{className:"flex items-center justify-between gap-3"},tr.default.createElement("div",{className:"min-w-0"},tr.default.createElement("p",{className:`text-sm font-mono ${k}`},KR(I)),tr.default.createElement("p",{className:`text-xs ${P?C[P.tone]:S}`},P?P.label:`${j.length} selected for sandboxes`)),tr.default.createElement("div",{className:"flex items-center gap-2 shrink-0"},a===I.id?tr.default.createElement(tr.default.Fragment,null,tr.default.createElement("button",{type:"button",onClick:Q,className:_},"Cancel"),tr.default.createElement("button",{type:"button",onClick:B,disabled:f,className:"px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600 disabled:opacity-50"},f?"Saving\u2026":`Save (${u.size})`)):tr.default.createElement(tr.default.Fragment,null,P?tr.default.createElement("button",{type:"button",onClick:()=>L(I),disabled:y===I.id,className:`${_} disabled:opacity-50`},y===I.id?"Checking\u2026":"Check again"):tr.default.createElement("button",{type:"button",onClick:()=>N(I),className:_},"Choose repositories"),I.settings_url&&tr.default.createElement("a",{href:I.settings_url,target:"_blank",rel:"noreferrer",className:_},"Access on GitHub"),tr.default.createElement("button",{type:"button",onClick:()=>K(I),className:A},"Unlink")))),a===I.id&&s&&tr.default.createElement(_f,{repositories:s,selection:u,onToggle:M=>c(W=>mA(W,M)),filter:d,onFilterChange:p}))}))}var A2e={connected:{tone:"success",text:"GitHub connected. Choose the repositories this workspace may use."},denied:{tone:"error",text:"GitHub authorization was cancelled."},invalid_state:{tone:"error",text:"That GitHub sign-in expired or was not started here. Try connecting again."},missing_code:{tone:"error",text:"GitHub did not return an authorization code. Try connecting again."},not_configured:{tone:"error",text:"GitHub OAuth is not configured on this dashboard."},forbidden:{tone:"error",text:"You do not have permission to change the GitHub connection."},error:{tone:"error",text:"Could not finish connecting GitHub. Try again."}};function j3({callbackStatus:e,appCallbackStatus:t,refreshKey:r}){let{darkMode:n}=ut(),[o,a]=(0,Ke.useState)(null),[i,s]=(0,Ke.useState)(null),[l,u]=(0,Ke.useState)(new Set),[c,d]=(0,Ke.useState)(""),[p,f]=(0,Ke.useState)(!1),[m,y]=(0,Ke.useState)(null),[b,g]=(0,Ke.useState)(A2e[e]||qR[t]||null),[h,v]=(0,Ke.useState)([]),[x,S]=(0,Ke.useState)(null),[k,w]=(0,Ke.useState)({}),[_,A]=(0,Ke.useState)(null),[C,N]=(0,Ke.useState)(null),[L,Q]=(0,Ke.useState)(0),[B,K]=(0,Ke.useState)({}),T=(0,Ke.useRef)({}),O=(0,Ke.useCallback)(async()=>{try{let ge=await fetch("/api/github_connection");if(!ge.ok)throw new Error("status failed");let ue=await ge.json();a(ue),u(new Set((ue.connection?.repositories||[]).map(Fe=>Fe.full_name)))}catch{y("Could not load the GitHub connection. Are you signed in?")}},[]);(0,Ke.useEffect)(()=>{O()},[O]);let I=(0,Ke.useCallback)(async()=>{try{let ge=await fetch("/api/sandboxes?sandbox_type=app_runtime"),ue=await ge.json().catch(()=>({}));if(!ge.ok)throw new Error(at(ue,`Could not list your sandboxes (HTTP ${ge.status}).`));v(ue.sandboxes||[]),S({codeSessions:!!ue.code_sessions_supported,claudeCode:{...i2(ue),sandboxes:ue.claude_code_sandboxes||[]},codex:s2(ue),pullRequests:ue.pull_requests_supported===!0,browserModes:Array.isArray(ue.browser_modes)?ue.browser_modes:[]})}catch(ge){y(ge.message)}},[]),P=o!==null,j=!!o?.connected;(0,Ke.useEffect)(()=>{P&&I()},[P,j,I,r]);let M=h.filter(ge=>n2(ge)&&!B[ge.session_id]?.stopped).map(ge=>ge.session_id).join(" ");(0,Ke.useEffect)(()=>{if(!M)return;let ge=!1,ue=setTimeout(async()=>{let Fe=await Promise.all(M.split(" ").map(async ot=>{try{let Tt=await fetch(`/api/sandboxes/${encodeURIComponent(ot)}`);if(Tt.status===404)return{id:ot,gone:!0};let Lt=await Tt.json().catch(()=>({}));return Tt.ok?{id:ot,sandbox:Lt.sandbox||null}:{id:ot,status:Tt.status,error:at(Lt,`Could not check on this sandbox (HTTP ${Tt.status}).`)}}catch{return{id:ot,status:null,error:"Could not reach the dashboard to check on this sandbox."}}}));if(ge)return;let Je={};Fe.forEach(({id:ot,status:Tt,error:Lt})=>{if(!Lt){delete T.current[ot],Je[ot]=null;return}let Hr=(T.current[ot]||0)+1;T.current[ot]=Hr,Je[ot]={message:Lt,stopped:e2(Tt,Hr)}}),K(ot=>Object.entries(Je).reduce((Tt,[Lt,Hr])=>{if(Hr)return{...Tt,[Lt]:Hr};if(!(Lt in Tt))return Tt;let{[Lt]:Io,...vs}=Tt;return vs},ot)),v(ot=>Fe.reduce((Tt,Lt)=>Lt.gone?Tt.filter(Hr=>Hr.session_id!==Lt.id):Lt.sandbox?WY(Tt,Lt.sandbox,"session_id"):Tt,ot)),Q(ot=>ot+1)},2e3);return()=>{ge=!0,clearTimeout(ue)}},[M,L]);let W=ge=>{delete T.current[ge],K(ue=>{let{[ge]:Fe,...Je}=ue;return Je})},Y=(ge,ue)=>{w(Fe=>({...Fe,[ge]:ue}))},z=async()=>{y(null);try{let ge=await fetch("/api/github_connection/repositories"),ue=await ge.json().catch(()=>({}));if(!ge.ok)throw new Error(ue.error||"Could not list repositories.");s(ue.repositories||[])}catch(ge){y(ge.message)}},V=ge=>{u(ue=>mA(ue,ge))},q=async()=>{f(!0),y(null);try{let ge=await fetch("/api/github_connection",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({repositories:[...l]})}),ue=await ge.json().catch(()=>({}));if(!ge.ok)throw new Error(ue.error||"Could not save the selection.");a(Fe=>({...Fe,connection:ue.connection})),s(null),g({tone:"success",text:"Repository selection saved."})}catch(ge){y(ge.message)}finally{f(!1)}},oe=async()=>{if(await Wr({title:"Disconnect GitHub?",message:"New checkout sandboxes can no longer clone its repositories. Sandboxes already running keep running until you stop them or they expire.",confirmLabel:"Disconnect",danger:!0}))try{if(!(await fetch("/api/github_connection",{method:"DELETE"})).ok)throw new Error("disconnect failed");s(null),g(null),await O()}catch{y("Could not disconnect GitHub.")}},Me=async ge=>{A(ge),Y(ge,null);try{let ue=await fetch("/api/sandboxes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox_type:"app_runtime",repository:ge})}),Fe=await ue.json().catch(()=>({}));if(!ue.ok)throw new Error(at(Fe,`Could not start the sandbox (HTTP ${ue.status}).`));v(Je=>sd(Je,Fe.sandbox,"session_id"))}catch(ue){Y(ge,ue.message)}finally{A(null)}},fe=async ge=>{if(!(ge.status!=="failed"&&!await Wr({title:"Stop this sandbox?",message:"Its app stops and its checkout is deleted, including any changes Claude Code made there.",confirmLabel:"Stop sandbox",danger:!0}))){N(ge.session_id),Y(ge.repository,null);try{let ue=await fetch(`/api/sandboxes/${encodeURIComponent(ge.session_id)}`,{method:"DELETE"}),Fe=await ue.json().catch(()=>({}));if(!ue.ok&&ue.status!==404)throw new Error(at(Fe,`Could not stop the sandbox (HTTP ${ue.status}).`));v(Je=>Je.filter(ot=>ot.session_id!==ge.session_id)),W(ge.session_id)}catch(ue){Y(ge.repository,ue.message)}finally{N(null)}}},le=n?"text-gray-400":"text-gray-500",R=n?"text-white":"text-gray-900",te={backgroundColor:n?"#252525":"#f9fafb"},He=`px-3 py-1 text-sm rounded ${n?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,_e=o?.connection,D=_e?.repositories||[],G=o?.app?.configured?o.app.installations||[]:[],E=GR(_e,G),{byRepository:$,others:ee}=qY(h,E.map(ge=>ge.full_name)),F=G.length>0,me=VR(G),et=n?"text-red-400":"text-red-600",rt=(ge,{standalone:ue=!1}={})=>{let{label:Fe,tone:Je}=LY(ge.status),ot=n2(ge),Tt=zY(ge),Lt=Tt?$Y(ge.expires_at):null,Hr=ot?B[ge.session_id]:null;return Ke.default.createElement("div",{key:ge.session_id,className:ue?"p-3 rounded-lg space-y-2":`mt-3 pt-3 border-t space-y-2 ${n?"border-gray-700":"border-gray-200"}`,style:ue?te:void 0},Ke.default.createElement("div",{className:"flex items-center justify-between gap-3"},Ke.default.createElement("div",{className:"flex items-center gap-2 min-w-0 text-xs"},Ke.default.createElement(Ks,{tone:Je},Fe),Ke.default.createElement("span",{className:`font-mono truncate ${le}`},ue?ge.repository:"","@",ge.repository_ref),Lt&&Ke.default.createElement("span",{className:`shrink-0 ${le}`},"\xB7 ",Lt),fA(ge)&&Ke.default.createElement("a",{href:Re(fA(ge)),onClick:Io=>{Io.preventDefault(),lt(fA(ge))},className:`shrink-0 truncate hover:underline ${n?"text-blue-300":"text-blue-600"}`,"data-testid":"sandbox-project-link",title:ge.browser?.status==="running"?"Open the project's page on its browser":"Open the project's page"},"\xB7 ",ge.project.name," \u2192")),Ke.default.createElement("button",{onClick:()=>fe(ge),disabled:C===ge.session_id,className:`shrink-0 px-3 py-1 text-sm rounded disabled:opacity-50 ${n?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},C===ge.session_id?"Stopping\u2026":ge.status==="failed"?"Dismiss":"Stop")),ot&&!Hr?.stopped&&Ke.default.createElement("p",{className:`text-xs ${le}`},"Checking out the repository and booting its app; this can take a few minutes."),Hr&&Ke.default.createElement("p",{className:`text-xs ${et}`},Hr.message," ",Hr.stopped?Ke.default.createElement(Ke.default.Fragment,null,"Stopped checking; its status above may be out of date."," ",Ke.default.createElement("button",{type:"button",onClick:()=>W(ge.session_id),className:"underline"},"Retry")):"Trying again\u2026"),ge.error_message&&Ke.default.createElement("pre",{className:`p-2 rounded text-xs font-mono whitespace-pre-wrap break-words max-h-48 overflow-y-auto border ${n?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`},ge.error_message),ge.runtime_server_key&&Ke.default.createElement("p",{className:`text-xs ${le}`},"Enable ",Ke.default.createElement("code",{className:"font-mono"},ge.runtime_server_key)," in an agent's Tools tab to run it, or evaluate it, with this checkout's tools."),Tt&&x?.codeSessions&&Ke.default.createElement(b0,{sandbox:ge,claudeCode:x.claudeCode?.mode==="sandbox_login"?{...x.claudeCode,connected:!!x.claudeCode.sandboxes.find(Io=>Io.session_id===ge.session_id)?.credential_mode}:x.claudeCode,codex:x.codex,onRecheckConnection:I}),Tt&&x&&!x.codeSessions&&Ke.default.createElement("p",{className:`text-xs ${le}`},"The configured sandbox backend cannot run Claude Code sessions."),Tt&&x?.pullRequests&&Ke.default.createElement(H0,{sandbox:ge}),Tt&&x?.browserModes.length>0&&Ke.default.createElement(kf,{sandbox:ge,modes:x.browserModes}))};return Ke.default.createElement("div",{className:"space-y-4"},Ke.default.createElement("div",{className:"flex items-center justify-between"},Ke.default.createElement("div",{className:"flex items-center space-x-3"},Ke.default.createElement("span",{className:"text-xl"},"\u{1F419}"),Ke.default.createElement("div",null,Ke.default.createElement("p",{className:`font-medium ${R}`},"GitHub"),Ke.default.createElement("p",{className:`text-sm ${o?.connected||me.active>0?n?"text-green-400":"text-green-600":le}`},o?[o.connected?`Connected as @${_e.login}`:null,me.text].filter(Boolean).join(" \xB7 ")||"Not connected":"Loading\u2026"))),o?.connected?Ke.default.createElement("button",{onClick:oe,className:`px-3 py-1 text-sm rounded ${n?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},o.app?.configured?"Disconnect OAuth":"Disconnect"):o?.configured?Ke.default.createElement("a",{href:Re("/api/github_connection/connect"),className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 text-sm"},o.app?.configured?"Connect with OAuth":"Connect GitHub"):null),o&&!o.configured&&!o.connected&&!o.app?.configured&&Ke.default.createElement("p",{className:`text-sm ${le}`},"The operator has not configured a GitHub OAuth app. Set ",Ke.default.createElement("code",null,"ActionAgent.github_client_id")," and"," ",Ke.default.createElement("code",null,"github_client_secret")," (or ",Ke.default.createElement("code",null,"GITHUB_CLIENT_ID")," / ",Ke.default.createElement("code",null,"GITHUB_CLIENT_SECRET"),") and register"," ",Ke.default.createElement("code",null,Re("/api/github_connection/callback"))," as its callback URL."),b&&Ke.default.createElement("div",{className:`p-3 rounded-lg text-sm border ${b.tone==="success"?n?"bg-green-900/20 border-green-800 text-green-300":"bg-green-50 border-green-200 text-green-800":n?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`},b.text),m&&Ke.default.createElement("div",{className:`p-3 rounded-lg text-sm border ${n?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`},m),Ke.default.createElement(D3,{app:o?.app,onChanged:O,onError:y,onNotice:g}),o?.connected&&Ke.default.createElement("div",{className:"space-y-3"},Ke.default.createElement("div",{className:"flex items-center justify-between"},Ke.default.createElement("div",null,Ke.default.createElement("p",{className:`text-sm font-medium ${R}`},"OAuth connection"),Ke.default.createElement("p",{className:`text-xs ${le}`},D.length," selected for sandboxes, cloned with @",_e.login,"'s token.")),i?Ke.default.createElement("div",{className:"flex items-center space-x-2"},Ke.default.createElement("button",{onClick:()=>{s(null),u(new Set(D.map(ge=>ge.full_name)))},className:He},"Cancel"),Ke.default.createElement("button",{onClick:q,disabled:p,className:"px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600 disabled:opacity-50"},p?"Saving\u2026":`Save (${l.size})`)):Ke.default.createElement("button",{onClick:z,className:He},"Choose repositories")),i&&Ke.default.createElement(_f,{repositories:i,selection:l,onToggle:V,filter:c,onFilterChange:d})),(o?.connected||F)&&!i&&Ke.default.createElement("div",{className:"space-y-3"},Ke.default.createElement("p",{className:`text-sm font-medium ${R}`},"Available repositories"),E.length===0?Ke.default.createElement("p",{className:`text-sm ${le}`},"No repositories selected yet. Selected repositories can be checked out into sandboxes."):Ke.default.createElement("div",{className:"space-y-2"},E.map(ge=>{let ue=$[ge.full_name]||[],Fe=ue.some(n2),Je=o.app?.configured?` \xB7 via ${YR(ge)}`:"";return Ke.default.createElement("div",{key:ge.full_name,className:"p-3 rounded-lg",style:te},Ke.default.createElement("div",{className:"flex items-center justify-between"},Ke.default.createElement("div",null,Ke.default.createElement("p",{className:`text-sm font-mono ${R}`},ge.full_name),Ke.default.createElement("p",{className:`text-xs ${le}`},ge.private?"private":"public"," \xB7 ",ge.default_branch,Je)),Ke.default.createElement("button",{onClick:()=>Me(ge.full_name),disabled:_===ge.full_name||Fe,className:`${He} disabled:opacity-50`},_===ge.full_name?"Starting\u2026":Fe?"Booting\u2026":"Start sandbox")),k[ge.full_name]&&Ke.default.createElement("p",{className:`mt-2 text-xs ${et}`},k[ge.full_name]),ue.map(ot=>rt(ot)))}))),!i&&ee.length>0&&Ke.default.createElement("div",{className:"space-y-2"},Ke.default.createElement("p",{className:`text-sm font-medium ${R}`},j||F?"Other sandboxes":"Checkout sandboxes"),Ke.default.createElement("p",{className:`text-xs ${le}`},j||F?"From repositories no longer selected.":"Checked out while GitHub was connected."," ","They keep running until stopped or they expire."),ee.map(ge=>Ke.default.createElement(Ke.default.Fragment,{key:ge.session_id},k[ge.repository]&&Ke.default.createElement("p",{className:`text-xs ${et}`},k[ge.repository]),rt(ge,{standalone:!0})))))}var It=Z(J());var $3="claude_code";function L3({onChange:e}){let{darkMode:t}=ut(),[r,n]=(0,It.useState)(null),[o,a]=(0,It.useState)(null),[i,s]=(0,It.useState)(!1),[l,u]=(0,It.useState)(""),[c,d]=(0,It.useState)(!1),[p,f]=(0,It.useState)(null),[m,y]=(0,It.useState)([]),[b,g]=(0,It.useState)(""),h=(0,It.useCallback)(async()=>{try{let[C,N]=await Promise.all([fetch("/api/provider_keys"),fetch("/api/sandboxes?sandbox_type=app_runtime")]);if(!C.ok||!N.ok)throw new Error("load failed");let[L,Q]=await Promise.all([C.json(),N.json()]);n((L.provider_keys||[]).find(K=>K.provider===$3)||{configured:!1}),a(i2(Q));let B=(Q.sandboxes||[]).filter(K=>K.status==="ready");y(B),g(K=>B.some(T=>T.session_id===K)?K:B[0]?.session_id||"")}catch{f("Could not load the Claude Code connection. Are you signed in?")}},[]);(0,It.useEffect)(()=>{h()},[h]);let v=async()=>{if(!(!l.trim()||c)){d(!0),f(null);try{let C=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:$3,credential:l.trim()})});if(!C.ok){let N=await C.json().catch(()=>({}));throw new Error(Array.isArray(N.error)?N.error.join(", "):"Could not save the API key.")}s(!1),u(""),await h(),e?.()}catch(C){f(C.message)}finally{d(!1)}}},x=async()=>{if(await Wr({title:"Remove the Claude Code API key?",message:"Sessions using a sandbox subscription keep their login.",confirmLabel:"Remove key",danger:!0}))try{if(!(await fetch(`/api/provider_keys/${$3}`,{method:"DELETE"})).ok)throw new Error("delete failed");await h(),e?.()}catch{f("Could not disconnect Claude Code.")}},S=t?"text-gray-400":"text-gray-500",k=nX(o,r),w=k.keyForm&&r?.configured,_={success:t?"text-green-400":"text-green-600",error:t?"text-amber-300":"text-amber-700",neutral:S}[k.tone],A=`underline ${t?"text-gray-300":"text-gray-700"}`;return It.default.createElement("div",{className:"space-y-3"},It.default.createElement("div",{className:"flex items-center justify-between"},It.default.createElement("div",{className:"flex items-center space-x-3"},It.default.createElement("span",{className:"font-mono text-sm","aria-hidden":"true"},">_"),It.default.createElement("div",null,It.default.createElement("p",{className:`font-medium ${t?"text-white":"text-gray-900"}`},"Claude Code"),It.default.createElement("p",{className:`text-sm ${_}`},k.status))),k.keyForm&&It.default.createElement("div",{className:"flex items-center space-x-2"},w&&!i&&It.default.createElement("button",{onClick:x,className:`px-3 py-1 text-sm rounded ${t?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},k.view==="sandbox_login"?"Remove API key":"Disconnect"),It.default.createElement("button",{onClick:()=>{s(!i),u(""),f(null)},className:`px-3 py-1 text-sm rounded ${t?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},i?"Cancel":k.view==="sandbox_login"?w?"Update API key":"Add API key":k.needsReplacing?"Replace":w?"Update":"Connect")),k.view==="local_login"&&It.default.createElement("button",{onClick:()=>{f(null),h(),e?.()},className:`px-3 py-1 text-sm rounded ${t?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},"Check again")),k.view==="local_login"&&It.default.createElement("p",{className:`text-xs ${S}`},"Sessions run ",It.default.createElement("code",{className:"font-mono"},"claude")," on this machine with its own login, which the dashboard never reads or stores."," ",k.loginHint&&It.default.createElement(It.default.Fragment,null,"Run ",It.default.createElement("code",{className:"font-mono"},k.loginHint)," on this machine, as the user the dashboard runs as, then check again.")),k.needsReplacing&&!i&&It.default.createElement("p",{className:`text-xs ${t?"text-amber-300":"text-amber-700"}`},"The Claude subscription token stored here is no longer used: Anthropic does not allow third-party apps to hold Claude.ai credentials. Replace it with an Anthropic API key to run Claude Code sessions."),k.keyForm&&i&&It.default.createElement(It.default.Fragment,null,It.default.createElement("div",{className:"flex items-center space-x-2"},It.default.createElement("input",{type:"password","data-aa-secret":"",value:l,onChange:C=>u(C.target.value),onKeyDown:C=>C.key==="Enter"&&v(),placeholder:eX,"aria-label":"Anthropic API key",autoFocus:!0,className:`flex-1 px-3 py-2 border rounded-lg text-sm font-mono ${t?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),It.default.createElement("button",{onClick:v,disabled:!l.trim()||c,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 text-sm"},c?"Saving\u2026":"Save")),It.default.createElement("p",{className:`text-xs ${S}`},"Paste an Anthropic API key from the"," ",It.default.createElement("a",{href:tX,target:"_blank",rel:"noreferrer",className:A},"Claude Console"),". It is encrypted at rest and passed to checkout sandboxes so they can run Claude Code sessions against the repository. Claude subscription logins cannot be stored here (",It.default.createElement("a",{href:rX,target:"_blank",rel:"noreferrer",className:A},"why"),"); to use your own subscription, use the sandbox sign-in below when enabled by this installation.")),k.view==="sandbox_login"&&It.default.createElement("div",{className:"space-y-3"},m.length>0?It.default.createElement(It.default.Fragment,null,It.default.createElement("label",{className:`block text-xs ${S}`},"Sandbox",It.default.createElement("select",{"aria-label":"Claude subscription sandbox",value:b,onChange:C=>g(C.target.value),className:"w-full mt-2 p-2 border rounded",style:{background:"var(--color-background)",color:"var(--color-text-primary)",borderColor:"var(--color-border)"}},m.map(C=>It.default.createElement("option",{key:C.session_id,value:C.session_id},C.repository," \xB7 ",C.session_id.slice(0,8))))),m.find(C=>C.session_id===b)&&It.default.createElement(rf,{key:b,sandbox:m.find(C=>C.session_id===b),onChange:()=>{h(),e?.()}})):It.default.createElement("p",{className:`text-sm ${S}`},"Start a checkout sandbox in ",It.default.createElement("a",{className:"underline",href:Re("/projects")},"Projects")," to connect your Claude subscription."),It.default.createElement("p",{className:`text-xs ${S}`},"Each member uses their own sandbox login. Sessions without a personal login use the account\u2019s Anthropic API key when one is connected.")),p&&It.default.createElement("div",{className:`p-3 rounded-lg text-sm border ${t?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`},p))}var Nr=Z(J());function z3({onChange:e}){let{darkMode:t}=ut(),[r,n]=(0,Nr.useState)(null),[o,a]=(0,Nr.useState)(null),[i,s]=(0,Nr.useState)(!1),[l,u]=(0,Nr.useState)(""),[c,d]=(0,Nr.useState)(!1),[p,f]=(0,Nr.useState)(null),m=(0,Nr.useCallback)(async()=>{let[k,w]=await Promise.all([fetch("/api/provider_keys"),fetch("/api/sandboxes?sandbox_type=app_runtime")]);if(!k.ok||!w.ok)throw new Error("Could not load the Codex connection.");let[_,A]=await Promise.all([k.json(),w.json()]);n((_.provider_keys||[]).find(C=>C.provider==="codex")||{configured:!1}),a(s2(A))},[]);(0,Nr.useEffect)(()=>{m().catch(k=>f(k.message))},[m]);let y=async k=>{if(k.preventDefault(),!(c||!l.trim())){d(!0),f(null);try{let w=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:"codex",credential:l.trim()})}),_=await w.json().catch(()=>({}));if(!w.ok)throw new Error(Array.isArray(_.error)?_.error.join(", "):_.error||"Could not save the API key.");u(""),s(!1),await m(),e?.()}catch(w){f(w.message)}finally{d(!1)}}},b=async()=>{if(await Wr({title:"Disconnect Codex?",message:"New Codex sessions will need an API key connected again.",confirmLabel:"Disconnect",danger:!0})){d(!0),f(null);try{if(!(await fetch("/api/provider_keys/codex",{method:"DELETE"})).ok)throw new Error("Could not disconnect Codex.");await m(),e?.()}catch(k){f(k.message)}finally{d(!1)}}},g=async()=>{f(null);try{await m(),e?.()}catch(k){f(k.message)}},h=t?"text-gray-400":"text-gray-500",v=`px-3 py-1 text-sm rounded ${t?"bg-gray-700 text-gray-200":"bg-gray-200 text-gray-800"}`,x=iX(o,r),S={success:t?"text-green-400":"text-green-600",error:t?"text-amber-300":"text-amber-700",neutral:h}[x.tone];return Nr.default.createElement("div",{className:"space-y-3"},Nr.default.createElement("div",{className:"flex items-center justify-between gap-3"},Nr.default.createElement("div",null,Nr.default.createElement("p",{className:`font-medium ${t?"text-white":"text-gray-900"}`},"Codex"),Nr.default.createElement("p",{className:`text-sm ${S}`},x.status)),Nr.default.createElement("div",{className:"flex gap-2"},x.keyForm&&r?.configured&&!i&&Nr.default.createElement("button",{className:v,disabled:c,onClick:b},"Disconnect"),x.keyForm&&Nr.default.createElement("button",{className:v,disabled:c,onClick:()=>{s(!i),u(""),f(null)}},i?"Cancel":r?.configured?"Update":"Connect"),x.view==="local_login"&&Nr.default.createElement("button",{className:v,disabled:c,onClick:g},"Check again"))),x.view==="local_login"?Nr.default.createElement("p",{className:`text-xs ${h}`},"Sessions run ",Nr.default.createElement("code",{className:"font-mono"},"codex")," on this machine with its own login (a ChatGPT plan, or a key the CLI holds), which the dashboard never reads or stores."," ",x.loginHint&&Nr.default.createElement(Nr.default.Fragment,null,"Run ",Nr.default.createElement("code",{className:"font-mono"},x.loginHint)," on this machine, as the user the dashboard runs as, then check again.")):Nr.default.createElement("p",{className:`text-sm ${h}`},"Run Codex in a repository checkout using an OpenAI API key. API usage is billed to that key's project."),x.keyForm&&i&&Nr.default.createElement("form",{onSubmit:y,className:"flex flex-wrap gap-2"},Nr.default.createElement("label",{className:`flex-1 text-sm ${h}`},"OpenAI API key for Codex",Nr.default.createElement("input",{type:"password","data-aa-secret":"",autoComplete:"off",spellCheck:!1,value:l,onChange:k=>u(k.target.value),placeholder:"sk-\u2026",disabled:c,className:`block w-full mt-1 px-3 py-2 border rounded ${t?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),Nr.default.createElement("button",{type:"submit",className:`${v} self-end`,disabled:c||!l.trim()},c?"Saving\u2026":"Save API key")),p&&Nr.default.createElement("p",{role:"alert",className:"text-sm text-red-500"},p))}var JR=Z(J());var wn=Z(J());function B3({provider:e,title:t,description:r,credentialLabel:n,placeholder:o,onChange:a}){let{darkMode:i}=ut(),[s,l]=(0,wn.useState)(null),[u,c]=(0,wn.useState)(!1),[d,p]=(0,wn.useState)(""),[f,m]=(0,wn.useState)(!1),[y,b]=(0,wn.useState)(null),g=(0,wn.useCallback)(async()=>{let k=await fetch("/api/provider_keys");if(!k.ok)throw new Error(`Could not load the ${t} connection.`);let w=await k.json();l((w.provider_keys||[]).find(_=>_.provider===e)||{configured:!1})},[e,t]);(0,wn.useEffect)(()=>{g().catch(k=>b(k.message))},[g]);let h=async k=>{if(k.preventDefault(),!(f||!d.trim())){m(!0),b(null);try{let w=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,credential:d.trim()})}),_=await w.json().catch(()=>({}));if(!w.ok)throw new Error(Array.isArray(_.error)?_.error.join(", "):_.error||`Could not save the ${n}.`);p(""),c(!1),await g(),a?.()}catch(w){b(w.message)}finally{m(!1)}}},v=async()=>{if(await Wr({title:`Disconnect ${t}?`,message:`${t} will need its ${n} connected again.`,confirmLabel:"Disconnect",danger:!0})){m(!0),b(null);try{if(!(await fetch(`/api/provider_keys/${e}`,{method:"DELETE"})).ok)throw new Error(`Could not disconnect ${t}.`);await g(),a?.()}catch(k){b(k.message)}finally{m(!1)}}},x=i?"text-gray-400":"text-gray-500",S=`px-3 py-1 text-sm rounded ${i?"bg-gray-700 text-gray-200":"bg-gray-200 text-gray-800"}`;return wn.default.createElement("div",{className:"space-y-3"},wn.default.createElement("div",{className:"flex items-center justify-between gap-3"},wn.default.createElement("div",null,wn.default.createElement("p",{className:`font-medium ${i?"text-white":"text-gray-900"}`},t),wn.default.createElement("p",{className:`text-sm ${x}`},s==null?"Loading\u2026":s.configured?`Connected \xB7 ${s.hint}`:"Not connected")),wn.default.createElement("div",{className:"flex gap-2"},s?.configured&&!u&&wn.default.createElement("button",{className:S,disabled:f,onClick:v},"Disconnect"),wn.default.createElement("button",{className:S,disabled:f||s==null,onClick:()=>{c(!u),p(""),b(null)}},u?"Cancel":s?.configured?"Update":"Connect"))),wn.default.createElement("p",{className:`text-sm ${x}`},r),u&&wn.default.createElement("form",{onSubmit:h,className:"flex flex-wrap gap-2"},wn.default.createElement("label",{className:`flex-1 text-sm ${x}`},n,wn.default.createElement("input",{type:"password","data-aa-secret":"",autoComplete:"off",spellCheck:!1,value:d,onChange:k=>p(k.target.value),placeholder:o,disabled:f,className:`block w-full mt-1 px-3 py-2 border rounded ${i?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),wn.default.createElement("button",{type:"submit",className:`${S} self-end`,disabled:f||!d.trim()},f?"Saving\u2026":"Save")),y&&wn.default.createElement("p",{role:"alert",className:"text-sm text-red-500"},y))}function F3({onChange:e}){return JR.default.createElement(B3,{provider:"slack",title:"Slack",description:"Agents with the Slack tool list channels, read them and post as this bot. Create a Slack app with the channels:read, channels:history and chat:write scopes, install it, and invite the bot to the channels it should see.",credentialLabel:"Bot User OAuth Token",placeholder:"xoxb-\u2026",onChange:e})}var E2e=["profile","api-keys","integrations","notifications","billing"];function N2e(){let e=new URLSearchParams(window.location.search),t=e.get("tab");return{tab:E2e.includes(t)?t:"profile",github:e.get("github"),githubApp:e.get("github_app")}}function U3({user:e,account:t}){let{darkMode:r,toggleDarkMode:n}=ut(),[o]=(0,Oe.useState)(()=>window.ACTIVE_AGENT_DASHBOARD?.meta?.personalProviderKeys?"personal":void 0),[{tab:a,github:i,githubApp:s}]=(0,Oe.useState)(N2e),[l,u]=(0,Oe.useState)(a),[c,d]=(0,Oe.useState)(0),[p,f]=(0,Oe.useState)([]),[m,y]=(0,Oe.useState)([]),[b,g]=(0,Oe.useState)(!1),[h,v]=(0,Oe.useState)(""),[x,S]=(0,Oe.useState)(!1),[k,w]=(0,Oe.useState)(null),[_,A]=(0,Oe.useState)(!1),[C,N]=(0,Oe.useState)(null),L=(0,Oe.useCallback)(async()=>{try{let[P,j]=await Promise.all([fetch("/api/api_keys"),fetch(sA("/api/provider_keys",o))]);if(!P.ok||!j.ok)throw new Error("Failed to load keys");let M=await P.json(),W=await j.json();f(M.api_keys||[]),y(W.provider_keys||[]),N(null)}catch{N("Could not load API keys. Are you signed in?")}finally{g(!0)}},[o]);(0,Oe.useEffect)(()=>{l==="api-keys"&&!b&&L()},[l,b,L]);let Q=lA({onKeysChanged:L,onError:N,scope:o}),B=async()=>{if(!(!h.trim()||x)){S(!0),N(null);try{let P=await fetch("/api/api_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:h.trim()})});if(!P.ok)throw new Error("create failed");let j=await P.json();w(j.api_key),A(!1),v(""),await L()}catch{N("Could not create the API key.")}finally{S(!1)}}},K=async P=>{if(await Wr({title:"Revoke this API key?",message:"Requests using it stop working immediately. This cannot be undone.",confirmLabel:"Revoke key",danger:!0}))try{if(!(await fetch(`/api/api_keys/${P}`,{method:"DELETE"})).ok)throw new Error("delete failed");k&&k.id===P&&w(null),await L()}catch{N("Could not revoke the API key.")}},T=async P=>{try{await navigator.clipboard.writeText(P),A(!0),setTimeout(()=>A(!1),2e3)}catch{}},O={backgroundColor:r?"#1f1f1f":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"};return Oe.default.createElement("div",{className:"p-6 space-y-6"},Oe.default.createElement("div",null,Oe.default.createElement("h2",{className:`text-2xl font-bold ${r?"text-white":"text-gray-900"}`},"Settings"),Oe.default.createElement("p",{className:`mt-1 ${r?"text-gray-400":"text-gray-500"}`},"Manage your account and preferences")),Oe.default.createElement("div",{className:"border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},Oe.default.createElement("nav",{className:"flex space-x-8"},[{id:"profile",label:"Profile"},{id:"api-keys",label:"API Keys"},{id:"integrations",label:"Integrations"},{id:"notifications",label:"Notifications"},{id:"billing",label:"Billing"}].map(P=>Oe.default.createElement("button",{key:P.id,onClick:()=>u(P.id),className:`py-4 px-1 border-b-2 font-medium text-sm transition-colors ${l===P.id?"border-red-500 text-red-500":`border-transparent ${r?"text-gray-400 hover:text-gray-300":"text-gray-500 hover:text-gray-700"}`}`},P.label)))),l==="profile"&&Oe.default.createElement("div",{className:"space-y-6"},Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Profile Information"),Oe.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4"},Oe.default.createElement("div",null,Oe.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"First Name"),Oe.default.createElement("input",{type:"text",defaultValue:e?.name?.split(" ")[0]||"",className:`w-full px-3 py-2 border rounded-lg ${r?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),Oe.default.createElement("div",null,Oe.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"Last Name"),Oe.default.createElement("input",{type:"text",defaultValue:e?.name?.split(" ")[1]||"",className:`w-full px-3 py-2 border rounded-lg ${r?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),Oe.default.createElement("div",{className:"md:col-span-2"},Oe.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"Email"),Oe.default.createElement("input",{type:"email",defaultValue:e?.email||"",disabled:!0,className:`w-full px-3 py-2 border rounded-lg cursor-not-allowed ${r?"bg-gray-900 border-gray-700 text-gray-500":"bg-gray-100 border-gray-300 text-gray-500"}`}))),Oe.default.createElement("button",{className:"mt-4 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600"},"Save Changes")),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Appearance"),Oe.default.createElement("div",{className:"flex items-center justify-between"},Oe.default.createElement("div",null,Oe.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},"Dark Mode"),Oe.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},"Use dark theme across the dashboard")),Oe.default.createElement("button",{onClick:n,className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${r?"bg-red-500":"bg-gray-300"}`},Oe.default.createElement("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${r?"translate-x-6":"translate-x-1"}`}))))),l==="api-keys"&&Oe.default.createElement("div",{className:"space-y-6"},Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("div",{className:"flex items-center justify-between mb-4"},Oe.default.createElement("h3",{className:`text-lg font-semibold ${r?"text-white":"text-gray-900"}`},"API Keys"),Oe.default.createElement("div",{className:"flex items-center space-x-2"},Oe.default.createElement("input",{type:"text",value:h,onChange:P=>v(P.target.value),onKeyDown:P=>P.key==="Enter"&&B(),placeholder:"Key name (e.g. production)",className:`px-3 py-2 border rounded-lg text-sm ${r?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),Oe.default.createElement("button",{onClick:B,disabled:!h.trim()||x,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 whitespace-nowrap"},x?"Creating\u2026":"+ Create New Key"))),Oe.default.createElement("div",{className:`p-4 rounded-lg mb-4 ${r?"bg-yellow-900/20 border border-yellow-800":"bg-yellow-50 border border-yellow-200"}`},Oe.default.createElement("p",{className:`text-sm ${r?"text-yellow-300":"text-yellow-800"}`},"\u26A0\uFE0F API keys are secrets. Never share them or commit them to version control.")),C&&Oe.default.createElement("div",{className:`p-4 rounded-lg mb-4 text-sm ${r?"bg-red-900/20 border border-red-800 text-red-300":"bg-red-50 border border-red-200 text-red-700"}`},C),k&&Oe.default.createElement("div",{className:`p-4 rounded-lg mb-4 border ${r?"bg-green-900/20 border-green-800":"bg-green-50 border-green-200"}`},Oe.default.createElement("p",{className:`text-sm font-medium mb-2 ${r?"text-green-300":"text-green-800"}`},"Key \u201C",k.name,"\u201D created. Copy it now \u2014 it won't be shown again."),Oe.default.createElement("div",{className:"flex items-center space-x-2"},Oe.default.createElement("code",{"data-aa-secret":"",className:`flex-1 px-3 py-2 rounded text-sm font-mono break-all ${r?"bg-gray-900 text-green-300":"bg-white text-green-800 border border-green-200"}`},k.token),Oe.default.createElement("button",{onClick:()=>T(k.token),className:`px-3 py-2 text-sm rounded ${r?"bg-gray-700 text-gray-200 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},_?"Copied!":"Copy"),Oe.default.createElement("button",{onClick:()=>w(null),className:`px-3 py-2 text-sm rounded ${r?"text-gray-400 hover:text-gray-200":"text-gray-500 hover:text-gray-700"}`},"Dismiss"))),p.length===0?Oe.default.createElement("div",{className:`text-center py-8 ${r?"text-gray-400":"text-gray-500"}`},Oe.default.createElement("p",null,b?"No API keys yet":"Loading\u2026"),b&&Oe.default.createElement("p",{className:"text-sm"},"Create your first API key to authenticate requests")):Oe.default.createElement("div",{className:"space-y-2"},p.map(P=>Oe.default.createElement("div",{key:P.id,className:"flex items-center justify-between p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},Oe.default.createElement("div",null,Oe.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},P.name),Oe.default.createElement("p",{className:`text-sm font-mono ${r?"text-gray-400":"text-gray-500"}`},P.masked_token,Oe.default.createElement("span",{className:"font-sans"}," \xB7 created ",new Date(P.created_at).toLocaleDateString(),P.last_used_at?` \xB7 last used ${new Date(P.last_used_at).toLocaleDateString()}`:" \xB7 never used"))),Oe.default.createElement("button",{onClick:()=>K(P.id),className:`px-3 py-1 text-sm rounded ${r?"bg-red-900/40 text-red-300 hover:bg-red-900/60":"bg-red-50 text-red-600 hover:bg-red-100"}`},"Revoke"))))),Oe.default.createElement(ib,{providerKeys:m,editor:Q,scope:o})),l==="integrations"&&Oe.default.createElement("div",{className:"space-y-6"},Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-1 ${r?"text-white":"text-gray-900"}`},"Integrations"),Oe.default.createElement("p",{className:`text-sm mb-4 ${r?"text-gray-400":"text-gray-500"}`},"Connect GitHub to choose which repositories this workspace may use. A sandbox started from one boots that app's own runtime, so agents and evaluations can run with its tools, and Claude Code or Codex can work on the checkout."),Oe.default.createElement(j3,{callbackStatus:i,appCallbackStatus:s,refreshKey:c})),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement(L3,{onChange:()=>d(P=>P+1)})),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement(z3,{onChange:()=>d(P=>P+1)})),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement(F3,{onChange:()=>d(P=>P+1)}))),l==="notifications"&&Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Email Notifications"),Oe.default.createElement("div",{className:"space-y-4"},[{label:"Agent execution alerts",desc:"Get notified when agents fail or complete",enabled:!0},{label:"Weekly usage reports",desc:"Summary of traces, costs, and performance",enabled:!0},{label:"Security alerts",desc:"Important security notifications",enabled:!0},{label:"Product updates",desc:"New features and improvements",enabled:!1}].map((P,j)=>Oe.default.createElement("div",{key:j,className:"flex items-center justify-between py-3 border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},Oe.default.createElement("div",null,Oe.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},P.label),Oe.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},P.desc)),Oe.default.createElement("button",{className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${P.enabled?"bg-red-500":r?"bg-gray-700":"bg-gray-300"}`},Oe.default.createElement("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${P.enabled?"translate-x-6":"translate-x-1"}`})))))),l==="billing"&&Oe.default.createElement("div",{className:"space-y-6"},Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Subscription"),Oe.default.createElement("div",{className:"flex items-center justify-between p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},Oe.default.createElement("div",null,Oe.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},"Free Plan"),Oe.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},"Current plan")),Oe.default.createElement("button",{className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600"},"Upgrade to Pro"))),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Payment Method"),Oe.default.createElement("p",{className:`${r?"text-gray-400":"text-gray-500"}`},"No payment method on file"),Oe.default.createElement("button",{className:`mt-4 px-4 py-2 rounded-lg ${r?"bg-gray-700 text-gray-300":"bg-gray-200 text-gray-700"}`},"Add Payment Method")),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Invoices"),Oe.default.createElement("p",{className:`${r?"text-gray-400":"text-gray-500"}`},"No invoices yet"))))}var Xe=Z(J());var T2e=[{label:"Find demo questions",message:"What demo questions worked in our latest evaluations? Show the evidence and tell me whether they are verified on current main."},{label:"Explain a failed eval",message:"Show my latest evaluation reports and explain which failures need attention."},{label:"Draft an agent",message:"Prepare a read-only support agent that cites available evidence and explains missing information instead of inventing answers."}],W3={width:"100%",background:"var(--color-card)",color:"var(--color-text-primary)",border:"1px solid var(--color-border-strong)",borderRadius:8,padding:"9px 12px",font:"inherit"},Xs={color:"var(--color-text-muted)",fontSize:12};function QR(e){let t=e.latest_run?.path||e.path||"";return/^\/evaluations(?:\/\d+\/runs\/\d+\/report)?$/.test(t)?Re(t):null}function O2e({card:e,onAsk:t,busy:r}){let n=QR(e),o=e.type==="demo_candidate",a=e.run_id||e.latest_run?.run_id,i=e.status||e.latest_run?.status;return Xe.default.createElement(je,{padding:16,testId:"assistant-evidence-card",style:{display:"grid",gap:10}},Xe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Xe.default.createElement(ke,{tone:o?"warning":"info"},o?"Historical pass":"Recorded evaluation"),i&&Xe.default.createElement(ke,{tone:i==="errored"||i==="failed"?"error":"muted"},i),e.check_strength&&Xe.default.createElement("span",{style:Xs},String(e.check_strength).replaceAll("_"," "))),Xe.default.createElement("div",{style:{fontWeight:600,overflowWrap:"anywhere"}},e.recorded_prompt||e.title),Xe.default.createElement("div",{style:{...Xs,fontFamily:U}},[e.provider,e.model,a&&`run ${a}`].filter(Boolean).join(" \xB7 "),e.completed_at&&` \xB7 ${new Date(e.completed_at).toLocaleString()}`),e.output_excerpt&&Xe.default.createElement("div",{style:{fontSize:13,whiteSpace:"pre-wrap",color:"var(--color-text-secondary)"}},e.output_excerpt),(e.error||e.latest_run?.error)&&Xe.default.createElement("div",{style:{fontSize:13,whiteSpace:"pre-wrap",color:"var(--color-error)"}},e.error||e.latest_run.error),e.fault&&Xe.default.createElement("div",{style:Xs},"Fault: ",e.fault.replaceAll("_"," ")),e.samples_evaluated!=null&&Xe.default.createElement("div",{style:Xs},e.samples_passed||0," / ",e.samples_evaluated," scenarios passed"),e.tool_names?.length>0&&Xe.default.createElement("div",{style:Xs},"Tools recorded: ",e.tool_names.join(", ")),Array.isArray(e.caveats)&&e.caveats.length>0&&Xe.default.createElement("details",{style:Xs},Xe.default.createElement("summary",{style:{cursor:"pointer"}},"Evidence limits"),Xe.default.createElement("ul",{style:{paddingLeft:18,marginTop:8}},e.caveats.map((l,u)=>Xe.default.createElement("li",{key:u},l)))),Xe.default.createElement("div",{style:{display:"flex",gap:12,alignItems:"center",flexWrap:"wrap"}},n&&Xe.default.createElement("a",{href:n,target:"_blank",rel:"noopener noreferrer",style:{fontSize:13,color:"var(--color-accent-ui)"}},n===Re("/evaluations")?"Open evaluations \u2192":"Open report \u2192"),e.evaluation_id&&a&&Xe.default.createElement(ce,{size:"sm",disabled:r,onClick:()=>t(`Read evaluation ${e.evaluation_id}, run ${a}. Explain its results, the strength of its checks, and what needs fixing.`)},"Explain this run")))}function P2e({draft:e,onReview:t}){return Xe.default.createElement(je,{padding:18,testId:"assistant-agent-draft",style:{display:"grid",gap:12,borderColor:"var(--color-accent-ui)"}},Xe.default.createElement(Ue,null,"Agent draft \xB7 not saved"),Xe.default.createElement("div",{style:{fontWeight:600,fontSize:18}},e.name),Xe.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)",fontSize:13}},e.description),Xe.default.createElement("div",{style:{...Xs,fontFamily:U}},e.provider," / ",e.model),Xe.default.createElement("details",null,Xe.default.createElement("summary",{style:{cursor:"pointer",fontSize:13}},"Review instructions and tools"),Xe.default.createElement("pre",{style:{whiteSpace:"pre-wrap",fontFamily:"inherit",fontSize:13,maxHeight:280,overflow:"auto"}},e.instructions),Xe.default.createElement("p",{style:Xs},"Tools: ",e.tools?.length?e.tools.join(", "):"None")),Xe.default.createElement(ce,{variant:"primary",onClick:()=>t(e),style:{justifySelf:"start"}},"Review in builder \u2192"))}function H3({session:e,onSessionChange:t,onReviewDraft:r,onOpenSettings:n,executionEnabled:o=!0}){let[a,i]=(0,Xe.useState)(null),[s,l]=(0,Xe.useState)(""),[u,c]=(0,Xe.useState)(!1),[d,p]=(0,Xe.useState)(null),[f,m]=(0,Xe.useState)(!1),y=(0,Xe.useRef)(null),b=(0,Xe.useRef)(null),g=(0,Xe.useRef)(e);g.current=e,(0,Xe.useEffect)(()=>{let _=new AbortController;return fetch("/api/dashboard_assistant",{signal:_.signal}).then(async A=>{let C=await A.json();if(!A.ok)throw new Error(C.error||"Could not load assistant configuration.");i(C),g.current.provider||t({...g.current,...C.defaults})}).catch(A=>{A.name!=="AbortError"&&p({message:A.message})}),()=>{_.abort(),y.current?.abort()}},[]);let h=e.messages||[],v=e.provider||a?.defaults?.provider||"",x=e.model||"",S=a?.limits?.message_characters||8e3,k=a?.providers?.find(_=>_.id===v),w=async _=>{let A=_.trim();if(!A||u||!a||!o||!x.trim()||!f)return;let C=h.map(Q=>({role:Q.role,content:Q.content})).slice(-12);for(;C.reduce((Q,B)=>Q+B.content.length,0)>24e3;)C.shift();let N=[...h,{role:"user",content:A}];t({...e,messages:N}),l(""),p(null),c(!0);let L=new AbortController;y.current=L;try{let Q=await fetch("/api/dashboard_assistant",{method:"POST",signal:L.signal,headers:{"Content-Type":"application/json"},body:JSON.stringify({message:A,history:C,provider:v,model:x.trim(),allow_provider_processing:!0})}),B=await Q.json();if(!Q.ok){p({message:typeof B.error=="string"?B.error:"The assistant could not complete this request.",setup:B.setup_required,retry:A}),t({...e,messages:h}),l(A);return}t({...e,messages:[...N,{role:"assistant",content:B.answer,cards:B.cards||[],references:B.references||[],drafts:B.drafts||[],limitations:B.limitations||[]}]})}catch(Q){Q.name!=="AbortError"&&(p({message:"Connection interrupted. No answer was received; the server may still be finishing the request."}),t({...e,messages:h}),l(A))}finally{c(!1)}};return Xe.default.createElement("div",{style:{maxWidth:980,margin:"0 auto",color:"var(--color-text-primary)",display:"grid",gap:22}},Xe.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:16,alignItems:"start"}},Xe.default.createElement("div",null,Xe.default.createElement(Ue,null,"Workspace assistant"),Xe.default.createElement("h1",{style:{margin:"8px 0",fontSize:30,fontWeight:600,letterSpacing:"-0.035em"}},"Ask ActiveAgents"),Xe.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)",fontSize:14}},"Find evaluation evidence. Understand failures. Build the next agent.")),h.length>0&&Xe.default.createElement(ce,{disabled:u,onClick:()=>{t({...e,messages:[]}),p(null),l(""),m(!1)}},"New conversation")),!h.length&&Xe.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:12}},T2e.map(_=>Xe.default.createElement("button",{key:_.label,onClick:()=>{l(_.message),b.current?.querySelector("textarea")?.focus()},style:{textAlign:"left",padding:20,background:"var(--color-card)",color:"var(--color-text-primary)",border:"1px solid var(--color-border)",borderRadius:12,cursor:"pointer"}},Xe.default.createElement("div",{style:{fontSize:14,fontWeight:600,marginBottom:8}},_.label," \u2197"),Xe.default.createElement("div",{style:{fontSize:12,lineHeight:1.6,color:"var(--color-text-secondary)"}},_.message)))),Xe.default.createElement("div",{role:"log","aria-label":"Assistant conversation","aria-live":"polite",style:{display:"grid",gap:20}},h.map((_,A)=>Xe.default.createElement("div",{key:A,style:{display:"grid",gap:12}},Xe.default.createElement(Ue,{color:_.role==="user"?"var(--color-text-muted)":"var(--color-accent-ui)"},_.role==="user"?"You":"ActiveAgents"),Xe.default.createElement("div",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere",lineHeight:1.7,fontSize:14}},_.content),_.cards?.map(C=>Xe.default.createElement(O2e,{key:C.id,card:C,onAsk:N=>{l(N),b.current?.querySelector("textarea")?.focus()},busy:u})),_.references?.length>0&&Xe.default.createElement("div",{"aria-label":"Evidence references",style:{...Xs,display:"flex",gap:12,flexWrap:"wrap"}},_.references.map(C=>{let N=QR(C);return N&&Xe.default.createElement("a",{key:C.id,href:N,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--color-accent-ui)"}},C.id)})),_.drafts?.map(C=>Xe.default.createElement(P2e,{key:C.id,draft:C,onReview:r})),_.limitations?.length>0&&Xe.default.createElement("details",{style:Xs},Xe.default.createElement("summary",{style:{cursor:"pointer"}},"Scope of this answer"),Xe.default.createElement("ul",{style:{paddingLeft:18}},_.limitations.map((C,N)=>Xe.default.createElement("li",{key:N},C)))))),u&&Xe.default.createElement("div",{role:"status",style:{color:"var(--color-text-secondary)",fontSize:13}},"Working with your workspace evidence\u2026")),d&&Xe.default.createElement(je,{padding:16,role:"alert",style:{borderColor:"var(--color-warning)",display:"grid",gap:12}},Xe.default.createElement("div",{style:{fontSize:14}},d.message),d.setup&&Xe.default.createElement(ce,{onClick:n,style:{justifySelf:"start"}},"Configure provider \u2192")),Xe.default.createElement(je,{padding:18},Xe.default.createElement("form",{ref:b,onSubmit:_=>{_.preventDefault(),w(s)},style:{display:"grid",gap:14}},Xe.default.createElement("label",{htmlFor:"assistant-question",style:{fontSize:13,fontWeight:600}},"What would you like to do?"),Xe.default.createElement("textarea",{id:"assistant-question",placeholder:"Ask about your evals, or describe an agent to build\u2026",value:s,onChange:_=>l(_.target.value),maxLength:S,rows:3,disabled:u,style:{...W3,resize:"vertical",boxSizing:"border-box"}}),Xe.default.createElement("div",{style:{display:"flex",gap:12,alignItems:"end",flexWrap:"wrap"}},Xe.default.createElement("label",{style:{display:"grid",gap:5,fontSize:11,flex:"1 1 140px"}},"Provider",Xe.default.createElement("select",{"aria-label":"Assistant provider",value:v,disabled:u||!a,onChange:_=>{let A=a.providers.find(C=>C.id===_.target.value);m(!1),t({...e,provider:A?.id||"",model:A?.default_model||""})},style:W3},Xe.default.createElement("option",{value:""},a?"Choose a provider\u2026":"Loading\u2026"),a?.providers?.map(_=>Xe.default.createElement("option",{key:_.id,value:_.id},_.id,_.configured?"":" \xB7 setup needed")))),Xe.default.createElement("label",{style:{display:"grid",gap:5,fontSize:11,flex:"2 1 200px"}},"Model",Xe.default.createElement("input",{"aria-label":"Assistant model",value:x,disabled:u||!a,maxLength:160,onChange:_=>{m(!1),t({...e,model:_.target.value})},style:W3})),Xe.default.createElement(ce,{variant:"primary",type:"submit",disabled:u||!a||!s.trim()||!x.trim()||!o||!f},u?"Working\u2026":"Ask ActiveAgents \u2192")),Xe.default.createElement("label",{style:{display:"flex",gap:9,alignItems:"start",fontSize:12,lineHeight:1.6,color:"var(--color-text-secondary)"}},Xe.default.createElement("input",{type:"checkbox",checked:f,disabled:u||!a,onChange:_=>m(_.target.checked),style:{marginTop:4}}),Xe.default.createElement("span",null,"Allow ",v||"the selected provider"," / ",x||"model"," to process my messages, recent conversation history, and authorized evaluation report excerpts for this conversation.")),Xe.default.createElement("div",{style:{...Xs,lineHeight:1.5}},o?k&&!k.configured?"This provider needs a credential in Settings before the assistant can respond.":"Uses your configured model provider. Agent drafts are reviewed before saving.":"Agent execution is disabled on this dashboard."," ","Reloading or starting a new conversation clears this conversation view. Your provider's data retention settings still apply."))))}var ga=Z(J());var vt=Z(J());var na=Z(J());function M2e(e){let t=e.filter(o=>!o.ok);if(t.length===0)return"ready";let r=t.filter(o=>o.blocking).length,n=`${t.length} ${t.length===1?"item needs":"items need"} action`;return r?`${n} \xB7 ${r} ${r===1?"blocks":"block"} creating a project`:n}function q3({capabilities:e}){let t=e?.items||[],r=t.some(i=>!i.ok&&i.blocking),[n,o]=(0,na.useState)(r),a=M2e(t);return na.default.createElement(Zr,{title:"Before you start",meta:e?.ready?"ready":"action needed",testId:"project-capabilities"},na.default.createElement("button",{type:"button","data-testid":"capabilities-toggle","aria-expanded":n,onClick:()=>o(!n),style:{display:"flex",width:"100%",alignItems:"center",gap:8,padding:"8px 12px",border:0,background:"transparent",cursor:"pointer",fontSize:13,color:r?"var(--color-error-text)":"var(--color-text-secondary)",textAlign:"left"}},na.default.createElement("span",{"aria-hidden":"true"},n?"\u25BE":"\u25B8"),na.default.createElement("span",{"data-testid":"capabilities-summary"},a),na.default.createElement("span",{style:{marginLeft:"auto",fontSize:12,color:"var(--color-text-muted)"}},n?"Hide":"Show"," checklist")),n&&na.default.createElement("ul",{style:{listStyle:"none",margin:0,padding:0}},t.map(i=>na.default.createElement("li",{key:i.key,"data-testid":`capability-${i.key}`,style:{display:"flex",gap:10,padding:"10px 12px",borderTop:"1px solid var(--color-border-light)"}},na.default.createElement(wa,{kind:i.ok?"pass":i.blocking?"fault":"info"}),na.default.createElement("div",{style:{minWidth:0,flex:1}},na.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"baseline",flexWrap:"wrap"}},na.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},i.label),!i.ok&&i.blocking&&na.default.createElement(Ue,{color:"var(--color-error-text)"},"blocks creating a project")),i.detail&&na.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)",overflowWrap:"anywhere"}},i.detail),!i.ok&&i.fix&&na.default.createElement("code",{"data-testid":`capability-fix-${i.key}`,style:{display:"block",marginTop:6,padding:"6px 8px",borderRadius:6,fontFamily:U,fontSize:12,background:"var(--color-muted)",color:"var(--color-text-cell)",overflowWrap:"anywhere"}},i.fix))))))}var rn=Z(J());var RR={width:"100%",padding:"6px 10px",borderRadius:6,fontSize:13,fontFamily:U,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"};function cb({rows:e,onChange:t,repository:r}){let[n,o]=(0,rn.useState)(""),a=(s,l)=>t(e.map((u,c)=>c===s?{...u,...l}:u)),i=n?cA(n)||(e.some(s=>s.name===n)?`${n} is already listed.`:null):null;return rn.default.createElement("div",{"data-testid":"project-secrets-form",style:{display:"flex",flexDirection:"column",gap:12}},e.length===0&&rn.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"No environment variables were found in .env.example, .env.sample, .activeagents/sandbox.yml or ENV call sites."),e.map((s,l)=>{let u=cA(s.name),c=s.useOrganizationKey?[]:dA(s.name,s.value);return rn.default.createElement("div",{key:s.name,"data-testid":`secret-row-${s.name}`,style:{borderTop:"1px solid var(--color-border-light)",paddingTop:10}},rn.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},rn.default.createElement("span",{style:{fontFamily:U,fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},s.name),s.required&&rn.default.createElement(ke,{tone:"warning"},"required"),s.set&&rn.default.createElement(ke,{tone:"success"},"set"),s.sources?.length>0&&rn.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},s.sources.join(" \xB7 "))),s.description&&rn.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},s.description),u?rn.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},u):rn.default.createElement(rn.default.Fragment,null,!s.useOrganizationKey&&rn.default.createElement("input",{type:"password",autoComplete:"off",value:s.value,onChange:d=>a(l,{value:d.target.value}),placeholder:s.set?"Leave empty to keep the current value":"Value","aria-label":`${s.name} value`,style:{...RR,marginTop:6}}),s.organizationKey&&rn.default.createElement("label",{style:{display:"flex",gap:6,alignItems:"center",marginTop:6,fontSize:13,color:"var(--color-text-cell)"}},rn.default.createElement("input",{type:"checkbox",checked:s.useOrganizationKey,onChange:d=>a(l,{useOrganizationKey:d.target.checked,consent:!1,value:""})}),"Use the organization's ",s.organizationKey," key"),s.useOrganizationKey&&rn.default.createElement("label",{"data-testid":`secret-consent-${s.name}`,style:{display:"flex",gap:6,alignItems:"flex-start",marginTop:4,fontSize:12,color:"var(--color-warning-text)"}},rn.default.createElement("input",{type:"checkbox",checked:s.consent,onChange:d=>a(l,{consent:d.target.checked})}),"I understand ",r||"the repository","'s code can read the organization's ",s.organizationKey," key. It is read when the sandbox boots and never copied into the project."),c.map(d=>rn.default.createElement("div",{key:d.code,"data-testid":`secret-warning-${d.code}`,style:{marginTop:4,fontSize:12,color:"var(--color-warning-text)"}},d.message))))}),rn.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"flex-start",borderTop:"1px solid var(--color-border-light)",paddingTop:10}},rn.default.createElement("div",{style:{flex:1}},rn.default.createElement(Ue,{as:"label",htmlFor:"project-secret-new-name"},"Another variable"),rn.default.createElement("input",{id:"project-secret-new-name",type:"text",value:n,onChange:s=>o(s.target.value.trim()),placeholder:"NAME",style:{...RR,marginTop:4}}),i&&rn.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},i)),rn.default.createElement(ce,{size:"sm",style:{marginTop:20},disabled:!n||!!i,onClick:()=>{t(OR(e,n)),o("")}},"Add")))}var eee={width:"100%",padding:"6px 10px",borderRadius:6,fontSize:13,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"};function I2e({repository:e,preflight:t}){return t?vt.default.createElement("div",{"data-testid":"project-preflight",style:{display:"flex",flexDirection:"column",gap:6}},vt.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},vt.default.createElement("span",{style:{fontFamily:U,fontSize:13,color:"var(--color-text-primary)"}},e),vt.default.createElement(ke,{tone:pA[t.status]||"muted"},t.summary)),vt.default.createElement("div",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-muted)"}},"Ruby ",t.ruby||"unpinned",t.ruby_source?` (${t.ruby_source})`:""," \xB7 railties ",t.railties||"not locked"," ","\xB7 engine ",t.actionagent||"not bundled"," \xB7 ref ",t.ref),t.reasons?.slice(1).map(r=>vt.default.createElement("div",{key:r,style:{fontSize:13,color:"var(--color-error-text)"}},r)),t.warnings?.map(r=>vt.default.createElement("div",{key:r,style:{fontSize:13,color:"var(--color-warning-text)"}},r))):null}function K3({onCreated:e,onCancel:t}){let[r,n]=(0,vt.useState)(null),[o,a]=(0,vt.useState)(null),[i,s]=(0,vt.useState)(!1),[l,u]=(0,vt.useState)(""),[c,d]=(0,vt.useState)(null),[p,f]=(0,vt.useState)(null),[m,y]=(0,vt.useState)(null),[b,g]=(0,vt.useState)(!1),[h,v]=(0,vt.useState)([]),[x,S]=(0,vt.useState)(""),[k,w]=(0,vt.useState)(!1),[_,A]=(0,vt.useState)("/"),[C,N]=(0,vt.useState)(!1),[L,Q]=(0,vt.useState)(null),B=(0,vt.useCallback)(async()=>{let M=await fetch("/api/projects/capabilities"),W=await M.json().catch(()=>({}));if(!M.ok)throw new Error(at(W,`Could not check what this dashboard can do (HTTP ${M.status}).`));return n(W),W},[]),K=(0,vt.useCallback)(async()=>{a(null);let M=await fetch("/api/github_connection/repositories"),W=await M.json().catch(()=>({}));if(W.reconnect_required){s(!0);return}if(!M.ok)throw new Error(at(W,`Could not list repositories (HTTP ${M.status}).`));s(!1),a(W.repositories||[])},[]);(0,vt.useEffect)(()=>{B().then(M=>M.github?.connected?K():null).catch(M=>Q(M.message))},[B,K]);let T=(0,vt.useCallback)(async(M,{typed:W=!1}={})=>{Q(null),f(null),g(!0);try{let Y=`repository=${encodeURIComponent(M)}`,z=await fetch(`/api/projects/preflight?${Y}`),V=await z.json().catch(()=>({}));if(V.reconnect_required){s(!0);return}if(!z.ok){let Me=at(V,`Could not check ${M} (HTTP ${z.status}).`);W?f(Me):Q(Me);return}if(d(V.repository.full_name),y(V.preflight),S(Me=>PR({name:Me,edited:k,fullName:V.repository.full_name})),v([]),V.preflight.status==="unsupported")return;let q=await fetch(`/api/projects/discover_secrets?${Y}`),oe=await q.json().catch(()=>({}));if(!q.ok)throw new Error(at(oe,`Could not read ${M}'s environment variables (HTTP ${q.status}).`));v(sb(oe.variables||[]))}catch(Y){Q(Y.message)}finally{g(!1)}},[k]),O=async()=>{N(!0),Q(null);try{let M=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repository:c,name:x,start_url:_,secrets:lb(h)})}),W=await M.json().catch(()=>({}));if(!M.ok)throw new Error(at(W,`Could not create the project (HTTP ${M.status}).`));e(W.project)}catch(M){Q(M.message)}finally{N(!1)}},I=r?.github,P=MR({github:I,repositories:o,reconnectRequired:i,pendingApproval:I?.pending_approval===!0}),j=b?"Checking the repository\u2026":IR({capabilities:r,preflight:m,secretsProblem:Uh(h)});return vt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"new-project"},vt.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16}},vt.default.createElement("div",{style:{flex:1}},vt.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"New project"),vt.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"Boot a repository in a sandbox, installing the engine there when it does not have it, and evaluate an agent against the running app.")),vt.default.createElement(ce,{onClick:t},"Cancel")),L&&vt.default.createElement("div",{style:{padding:"10px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},L),vt.default.createElement(je,null,vt.default.createElement(Ue,null,"Repository"),vt.default.createElement("div",{style:{marginTop:8}},vt.default.createElement(_f,{mode:"single",state:P,repositories:o||[],filter:l,onFilterChange:u,selected:c,onSelect:M=>T(M),settingsHref:Re("/settings?tab=integrations"),missingRepositoryUrl:I?.access_settings_url,onRefresh:()=>K().catch(M=>Q(M.message)),onTypeName:M=>T(M,{typed:!0}),typedNameError:p})),m&&vt.default.createElement("div",{style:{marginTop:12}},vt.default.createElement(I2e,{repository:c,preflight:m}))),r&&vt.default.createElement(q3,{capabilities:r}),m&&m.status!=="unsupported"&&vt.default.createElement(je,null,vt.default.createElement(Ue,null,"Project"),vt.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:12,marginTop:8}},vt.default.createElement("label",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Name",vt.default.createElement("input",{type:"text",value:x,onChange:M=>{S(M.target.value),w(M.target.value!=="")},style:{...eee,marginTop:4}})),vt.default.createElement("label",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Start URL (must not answer 5xx once booted)",vt.default.createElement("input",{type:"text",value:_,onChange:M=>A(M.target.value),style:{...eee,marginTop:4,fontFamily:U}}))),vt.default.createElement("div",{style:{marginTop:16}},vt.default.createElement(Ue,null,"Secrets the boot needs"),vt.default.createElement("div",{style:{marginTop:8}},vt.default.createElement(cb,{rows:h,onChange:v,repository:c})))),vt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12,justifyContent:"flex-end"}},j&&vt.default.createElement("span",{"data-testid":"create-problem",style:{fontSize:13,color:"var(--color-text-secondary)"}},j),vt.default.createElement(ce,{variant:"primary",onClick:O,disabled:!!j||C,testId:"create-project"},C?"Creating\u2026":"Create project")))}var Ve=Z(J());var Lr=Z(J());var D2e={success:"success",error:"error",progress:"info",neutral:"muted"};function V3({project:e}){let[t,r]=(0,Lr.useState)(null),[n,o]=(0,Lr.useState)(null),[a,i]=(0,Lr.useState)(""),[s,l]=(0,Lr.useState)(!1),u=e.sandbox,c=e.sandbox_state==="ready"&&!!u?.session_id,d=(0,Lr.useCallback)(async()=>{let m=await fetch(`/api/interactions?project_id=${e.id}`),y=await m.json().catch(()=>({}));if(!m.ok){o(at(y,`Could not list the conversations (HTTP ${m.status}).`));return}r(y.interactions||[])},[e.id]);(0,Lr.useEffect)(()=>{d()},[d]);let p=async m=>{m.preventDefault();let y=a.trim();if(!(!y||!c)){l(!0),o(null);try{let b=await fetch(`/api/sandboxes/${encodeURIComponent(u.session_id)}/code_sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:y,origin:"chat"})}),g=await b.json().catch(()=>({}));if(!b.ok)throw new Error(at(g,`The conversation did not start (HTTP ${b.status}).`));lt(ms(g.code_session.id))}catch(b){o(b.message),l(!1)}}},f={margin:0,fontSize:13,color:"var(--color-text-secondary)"};return Lr.default.createElement("div",{style:{display:"grid",gap:12},"data-testid":"project-sessions"},Lr.default.createElement(je,null,Lr.default.createElement("form",{onSubmit:p,style:{display:"grid",gap:8}},Lr.default.createElement(Ue,{as:"label",htmlFor:`project-${e.id}-chat`},"Chat with Claude Code"),Lr.default.createElement("textarea",{id:`project-${e.id}-chat`,value:a,onChange:m=>i(m.target.value),rows:3,disabled:!c,placeholder:c?`What should Claude Code do in ${e.repository}?`:"Boot the sandbox to start a conversation",style:{width:"100%",fontSize:13,padding:8,borderRadius:6,border:"1px solid var(--color-border)",background:"var(--color-surface)",color:"var(--color-text-primary)"}}),Lr.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:8}},Lr.default.createElement("p",{style:f},"It edits the checkout and never commits or pushes. The conversation opens with the sandbox's browser beside it."),Lr.default.createElement(ce,{variant:"primary",type:"submit",disabled:!c||s||!a.trim(),testId:"project-start-conversation"},s?"Starting\u2026":"Start")),n&&Lr.default.createElement("p",{role:"alert",style:{...f,color:"var(--color-error-text)"}},n))),Lr.default.createElement(je,null,Lr.default.createElement(Ue,null,"Conversations"),t===null&&!n&&Lr.default.createElement("p",{style:f},"Loading\u2026"),t?.length===0&&Lr.default.createElement("p",{style:f},"No conversations yet."),Lr.default.createElement("ul",{style:{listStyle:"none",margin:"8px 0 0",padding:0,display:"grid",gap:8}},(t||[]).map(m=>{let y=fs(m.status),b=ms(ef(m.id));return Lr.default.createElement("li",{key:m.id},Lr.default.createElement("a",{href:Re(b),onClick:g=>{g.preventDefault(),lt(b)},style:{display:"grid",gap:2,textDecoration:"none",color:"var(--color-text-primary)"},"data-testid":"project-conversation"},Lr.default.createElement("span",{style:{display:"flex",gap:8,alignItems:"center"}},Lr.default.createElement(ke,{tone:D2e[y.tone]||"muted"},y.label),Lr.default.createElement("span",{style:{fontSize:13}},m.preview?.input||m.display_name)),Lr.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",fontFamily:U}},u2(m))))}))))}var sr=Z(J());function tee(e){let t=Number(e)||0;return t>0?`Waiting for you: ${t}`:null}function G3(e){return(e?.options||[]).map(t=>{if(t&&typeof t=="object"){let r=String(t.value??t.label??"");return{value:r,label:String(t.label??r)}}return{value:String(t),label:String(t)}})}function ree(e,t){if(!e||e.kind==="confirm")return null;let r=typeof t=="string"?t:"";return r.trim()?e.kind==="secret"&&r.length<8?"A secret is at least 8 characters.":e.kind==="choice"&&!G3(e).some(n=>n.value===r)?"Choose one of the answers.":null:e.kind==="choice"?"Choose an answer.":"Type an answer."}function nee(e,t){return e?.kind==="confirm"?{answer:t===!0}:{answer:t}}function oee(e){return e?e.available?e.last_run?`The setup assistant ${{awaiting_input:"is waiting for you",running:"is working",pending:"is starting",complete:"finished",failed:"failed"}[e.last_run.status]||e.last_run.status}.`:e.auto?"When a boot fails, the setup assistant reads its logs and asks for what is missing.":"The setup assistant starts only when you ask for it.":e.reason||"The setup assistant is not available.":null}function aee(e){return["pending","running","awaiting_input"].includes(e?.setup?.last_run?.status)||Y3(e)||(Number(e?.pending_input_requests)||0)>0}var j2e=6e4;function iee(e,t,r=Date.now()){return e?.sandbox_state!=="failed"||e?.setup?.auto===!1||t==null||!e.setup?.claude_code?.available&&!e.setup?.available?!1:r-t[n.name,o]));return Object.keys(e).sort((n,o)=>(r.get(n)??1/0)-(r.get(o)??1/0)||n.localeCompare(o)).map(n=>{let o=(t.find(i=>i.name===n)?.columns||[]).map(i=>i.name),a=i=>[...i].sort((s,l)=>(o.indexOf(s)+1||1/0)-(o.indexOf(l)+1||1/0));return{model:n,filterable:a(e[n].filterable),returns:a(e[n].returns)}})}function dee(e,t=[],r=[]){let n=o=>JSON.stringify(o.map(a=>({model:a.model,filterable:[...a.filterable||[]].sort(),returns:[...a.returns||[]].sort()})).sort((a,i)=>a.model.localeCompare(i.model)));return n(Z3(e,r))!==n(t)}function pee(e){return e?e.status==="queued"||e.status==="publishing"?{label:"publishing\u2026",tone:"info"}:e.status==="failed"?e.head_commit&&!e.number?{label:"branch published, pull request not opened",tone:"error"}:{label:"failed",tone:"error"}:e.state==="merged"?{label:"merged",tone:"success"}:e.state==="closed"?{label:"closed",tone:"muted"}:e.number?{label:e.draft?"draft open":"open",tone:"accent"}:{label:"branch published",tone:"warning"}:{label:"not opened",tone:"muted"}}function fee(e){return e?e.status==="queued"||e.status==="publishing"?2e3:e.number&&!["merged","closed"].includes(e.state)?6e4:null:null}function mee(e){let t=e?.status==="queued"||e?.status==="publishing",r=!!e?.number&&!["merged","closed"].includes(e?.state),n=!e||["merged","closed"].includes(e.state)||!e.number&&!e.head_commit&&e.status==="failed",o=null;return!t&&e?.head_commit&&!e.number&&(o=e.status==="draft_refused"?"regular":"draft"),{canOpen:!t&&n,canUpdate:!t&&r,openBranch:o}}function gee(e,t=[],r=""){let n=new URLSearchParams;for(let a of t)n.append("paths[]",a);r&&n.set("title",r);let o=n.toString();return`/api/projects/${e}/install_pull_request/patch${o?`?${o}`:""}`}async function hee(e){return e.json().catch(()=>({}))}function J3({project:e,onSaved:t,onConfirmationRequired:r}){let[n,o]=(0,sr.useState)(null),[a,i]=(0,sr.useState)({}),[s,l]=(0,sr.useState)(null),[u,c]=(0,sr.useState)(!1),d=e.schema_tools||[],p=(0,sr.useCallback)(async()=>{let m=await fetch(`/api/projects/${e.id}/app_models`),y=await hee(m);if(m.status===409){o(null);return}if(!m.ok)throw new Error(at(y,`Could not list the app's models (HTTP ${m.status}).`));o(y.models||[]),i(uee(y.schema_tools||[]))},[e.id]);(0,sr.useEffect)(()=>{e.app_models_listed&&p().catch(m=>l(m.message))},[p,e.app_models_listed]);let f=async(m,y=!1)=>{c(!0),l(null);try{let b=await fetch(`/api/projects/${e.id}/schema_tools`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({schema_tools:Z3(a,n||[]),apply:m,...y?{confirm:!0}:{}})}),g=await hee(b);if(b.status===409&&g.code==="confirmation_required"){r?.(g.confirmation,()=>f(m,!0));return}if(!b.ok)throw new Error(at(g,`Could not save what the assistant may read (HTTP ${b.status}).`));t?.(g.project)}catch(b){l(b.message)}finally{c(!1)}};return sr.default.createElement($2e,{listed:e.app_models_listed,models:n,selection:a,changed:n?dee(a,d,n):!1,busy:u,error:s,onToggle:(m,y,b)=>i(g=>cee(g,m,y,b)),onSave:()=>f(!1),onSaveAndRestart:()=>f(!0)})}function $2e({listed:e,models:t,selection:r,changed:n,busy:o,error:a,onToggle:i,onSave:s,onSaveAndRestart:l}){let u=(0,sr.useMemo)(()=>Object.keys(r||{}),[r]);return sr.default.createElement(Zr,{title:"Choose what the assistant may read",meta:`${u.length} ${u.length===1?"model":"models"}`,testId:"project-assistant-reads"},sr.default.createElement("p",{style:{margin:0,padding:"10px 12px",fontSize:13,color:"var(--color-text-secondary)"}},"Each model you choose gets find, count and get tools that filter on and return only the columns ticked here. Columns that look like secrets are never listed. The tools are written into the sandbox's checkout on every boot, and go into the install pull request."),!e&&sr.default.createElement("p",{style:{margin:0,padding:"0 12px 12px",fontSize:13,color:"var(--color-text-secondary)"}},"Boot the project first: a boot lists the app's models."),a&&sr.default.createElement("div",{style:{padding:"8px 12px",fontSize:13,color:"var(--color-error-text)"}},a),e&&t&&t.length===0&&sr.default.createElement("p",{style:{margin:0,padding:"0 12px 12px",fontSize:13,color:"var(--color-text-secondary)"}},"The app has no models with a table."),(t||[]).map(c=>{let d=r?.[c.name];return sr.default.createElement("details",{key:c.name,open:!!d,"data-testid":`assistant-model-${c.name}`,style:{borderTop:"1px solid var(--color-border-light)",padding:"8px 12px"}},sr.default.createElement("summary",{style:{cursor:"pointer",display:"flex",gap:8,alignItems:"center"}},sr.default.createElement("span",{style:{fontFamily:U,fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},c.name),sr.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-muted)"}},c.table),d&&sr.default.createElement(ke,{tone:"accent"},`${d.filterable.size} filter \xB7 ${d.returns.size} read`)),sr.default.createElement("table",{style:{marginTop:6,borderCollapse:"collapse",fontSize:12}},sr.default.createElement("thead",null,sr.default.createElement("tr",{style:{color:"var(--color-text-muted)",textAlign:"left"}},sr.default.createElement("th",{style:{padding:"2px 12px 2px 0",fontWeight:500}},"Column"),sr.default.createElement("th",{style:{padding:"2px 12px",fontWeight:500}},"Filter on"),sr.default.createElement("th",{style:{padding:"2px 12px",fontWeight:500}},"Read back"))),sr.default.createElement("tbody",null,c.columns.map(p=>sr.default.createElement("tr",{key:p.name},sr.default.createElement("td",{style:{padding:"2px 12px 2px 0",fontFamily:U,color:"var(--color-text-primary)"}},p.name," ",sr.default.createElement("span",{style:{color:"var(--color-text-muted)"}},p.type)),["filterable","returns"].map(f=>sr.default.createElement("td",{key:f,style:{padding:"2px 12px",textAlign:"center"}},sr.default.createElement("input",{type:"checkbox","aria-label":`${f==="filterable"?"Filter on":"Read back"} ${c.name}.${p.name}`,checked:!!d?.[f]?.has(p.name),disabled:o,onChange:()=>i(c.name,f,p.name)}))))))))}),e&&t&&t.length>0&&sr.default.createElement("div",{style:{display:"flex",gap:8,padding:"10px 12px",borderTop:"1px solid var(--color-border-light)"}},sr.default.createElement(ce,{size:"sm",onClick:s,disabled:o||!n},"Save"),sr.default.createElement(ce,{size:"sm",variant:"primary",onClick:l,disabled:o,testId:"assistant-reads-restart"},o?"Saving\u2026":"Save and restart the sandbox")))}var ei=Z(J());function Q3({boot:e,logTail:t,error:r,sandboxState:n,waiting:o}){let a=e?.steps||[];return ei.default.createElement(Zr,{title:"Boot",meta:tee(o)||n||"none",testId:"project-boot-progress"},a.length===0&&ei.default.createElement("p",{style:{margin:0,padding:12,fontSize:13,color:"var(--color-text-secondary)"}},n==="booting"?"Waiting for the sandbox to report its steps\u2026":"No boot to show yet."),a.length>0&&ei.default.createElement("ol",{style:{listStyle:"none",margin:0,padding:0}},a.map(i=>ei.default.createElement("li",{key:i.name,"data-testid":`boot-step-${i.name}`,style:{display:"grid",gridTemplateColumns:"92px 170px 1fr 80px",gap:10,alignItems:"baseline",padding:"8px 12px",borderTop:"1px solid var(--color-border-light)"}},ei.default.createElement(ke,{tone:$R[i.status]||"muted"},i.status),ei.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-primary)"}},DR(i.name)," ",ei.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},i.name)),ei.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",overflowWrap:"anywhere"}},i.detail||""),ei.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-muted)",textAlign:"right"}},i.status==="pending"?"":jR(i.duration_ms))))),r&&ei.default.createElement("div",{"data-testid":"boot-error",style:{padding:"8px 12px",fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)",whiteSpace:"pre-wrap"}},r),t?.text&&ei.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)"}},ei.default.createElement("div",{style:{padding:"6px 12px",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},t.truncated?"last lines of ":"",t.step,".log"),ei.default.createElement("pre",{"data-testid":"boot-log-tail",style:{margin:0,padding:"8px 12px",maxHeight:280,overflow:"auto",fontFamily:U,fontSize:12,background:"var(--color-muted)",color:"var(--color-text-cell)",whiteSpace:"pre-wrap"}},t.text)))}var Ol=Z(J());var yee="/settings?tab=integrations";function R3({project:e,modes:t=[],watchOnOpen:r=!1,onChange:n}){let o=e.sandbox,a=e.sandbox_state==="ready"&&!!o?.session_id,i={margin:0,fontSize:13,color:"var(--color-text-secondary)"},s;return t.length===0?s=Ol.default.createElement("p",{style:i},"This dashboard's sandbox backend runs no browsers. The project's agent works through the app's tools."):a?s=Ol.default.createElement(Ol.default.Fragment,null,Ol.default.createElement("p",{style:i},"A browser of the sandbox's own, opened on ",e.repository,"'s running app. Watch it live, take over to click, type and upload files, and hand back. Agent runs reach it as ",Ol.default.createElement("span",{style:{fontFamily:U}},"browser:",o.session_id),"."),Ol.default.createElement(kf,{key:o.session_id,sandbox:o,modes:t,watchOnOpen:r,onChange:n})):s=Ol.default.createElement("p",{style:i},"Boot the sandbox to start its browser. It opens on the running app, and you can watch it live and take over."),Ol.default.createElement(Zr,{title:"Browser",meta:Ol.default.createElement(Gr,{href:Re(yee),onClick:()=>lt(yee)},"Manage runtimes"),testId:"project-browser",bodyStyle:{padding:12,display:"flex",flexDirection:"column",gap:8}},s)}var Un=Z(J());var L2e=e=>e?new Date(e).toLocaleString():"\u2014",z2e={entered:()=>"entered",organization_key:e=>`organization's ${e.provider} key`,setup_assistant:()=>"set by the setup assistant, not secret"};function ej({secrets:e,onReplace:t,onDelete:r,error:n}){let[o,a]=(0,Un.useState)(null),[i,s]=(0,Un.useState)(""),[l,u]=(0,Un.useState)(!1),c=o?dA(o,i):[],d=async p=>{u(!0);try{await p()}catch{return}finally{u(!1)}};return Un.default.createElement(Zr,{title:"Environment",meta:`${e.length} ${e.length===1?"secret":"secrets"}`,testId:"project-environment"},n&&Un.default.createElement("div",{style:{padding:"8px 12px",fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},n),e.length===0&&Un.default.createElement("p",{style:{margin:0,padding:12,fontSize:13,color:"var(--color-text-secondary)"}},"This project sets no environment variables."),Un.default.createElement("ul",{style:{listStyle:"none",margin:0,padding:0}},e.map(p=>Un.default.createElement("li",{key:p.name,"data-testid":`environment-${p.name}`,style:{padding:"10px 12px",borderTop:"1px solid var(--color-border-light)"}},Un.default.createElement("div",{style:{display:"flex",gap:10,alignItems:"center",flexWrap:"wrap"}},Un.default.createElement("span",{style:{fontFamily:U,fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},p.name),Un.default.createElement(ke,{tone:p.source==="organization_key"?"info":"muted"},z2e[p.source]?.(p)||"entered"),Un.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-muted)"}},p.set_by?.name?`set by ${p.set_by.name}`:"set"," \xB7 ",L2e(p.updated_at)),Un.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:6}},p.source!=="organization_key"&&Un.default.createElement(ce,{size:"sm",onClick:()=>{a(p.name),s("")},disabled:l},"Replace"),Un.default.createElement(ce,{size:"sm",variant:"danger",onClick:()=>d(()=>r(p.name)),disabled:l},"Delete"))),p.source==="setup_assistant"&&typeof p.value=="string"&&Un.default.createElement("div",{style:{marginTop:4,fontFamily:U,fontSize:12,color:"var(--color-text-secondary)",wordBreak:"break-all"}},p.name,"=",p.value),o===p.name&&Un.default.createElement("form",{style:{display:"flex",gap:6,marginTop:8,flexWrap:"wrap"},onSubmit:f=>{f.preventDefault(),i&&d(async()=>{await t(p.name,i),a(null),s("")})}},Un.default.createElement("input",{type:"password",autoComplete:"off",value:i,onChange:f=>s(f.target.value),placeholder:"New value","aria-label":`New value for ${p.name}`,style:{flex:1,minWidth:200,padding:"6px 10px",borderRadius:6,fontFamily:U,fontSize:13,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"}}),Un.default.createElement(ce,{size:"sm",variant:"primary",type:"submit",disabled:!i||l},"Save"),Un.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>a(null)},"Cancel"),c.map(f=>Un.default.createElement("div",{key:f.code,style:{width:"100%",fontSize:12,color:"var(--color-warning-text)"}},f.message)))))))}var Wn=Z(J());var xd=Z(J());var B2e=["proposed","edited"],nj={answerable:{label:"answerable",tone:"success",title:"Every expected tool is one the agent can call."},needs_tool:{label:"needs a tool",tone:"warning",title:"The agent cannot call every tool a good answer needs."},unverified:{label:"unverified",tone:"muted",title:"The agent's tools could not be read when this was checked."}},hA={pending:"info",running:"info",review:"accent",closed:"success",failed:"error"},vee={minutes:"Minutes",steps:"Browser steps",cost:"Cost"};function bee(e){return e?.status==="pending"||e?.status==="running"}function yA(e){return B2e.includes(e.state)}function oj(e=[],t=null){let r=e.filter(n=>yA(n)&&n.verdict==="answerable").map(n=>n.id);return Number.isInteger(t)&&t>=0?r.slice(0,t):r}function wee(e=[],t=[]){let r=new Set(t.filter(yA).map(n=>n.id));return e.filter(n=>r.has(n))}function xee(e,t){return e==="cost"?`$${Number(t||0).toFixed(2)}`:String(Math.round(Number(t||0)*10)/10)}function See(e={},t={}){return Object.keys(vee).flatMap(r=>{let n=Number(e?.[r]);if(!Number.isFinite(n)||n<=0)return[];let o=Math.max(Number(t?.[r])||0,0);return[{key:r,label:vee[r],used:o,limit:n,ratio:Math.min(o/n,1),text:`${xee(r,o)} / ${xee(r,n)}`}]})}function kee(e){let t=e?.provenance||{},r=t.recording_id;if(!Number.isInteger(r)||r<=0)return null;let n=t.range||{},o=["from_ms","to_ms"].filter(a=>Number.isInteger(n[a])).map(a=>`${a}=${n[a]}`);return`/replay/${r}${o.length?`?${o.join("&")}`:""}`}function _ee({evaluation:e=null,candidates:t=[],selectedIds:r=[]}={}){let n=new Set(r),o=t.filter(s=>n.has(s.id)&&!s.scenario_key).length,a=(e?.enabled_scenario_count||0)+o,i=Math.max(e?.model_count||1,1);return{added:o,scenarios:a,models:i,executions:a*i}}function Cee(e,t=null){let r=`${e.scenarios} scenario${e.scenarios===1?"":"s"}`,n=`${e.models} model${e.models===1?"":"s"}`,o=`The run uses ${e.executions} execution${e.executions===1?"":"s"} (${r} \xD7 ${n}).`;return Number.isFinite(t)?`${o} ${t} remaining on your plan.`:o}function tj(e){return(e||[]).join(", ")}function rj(e){return String(e||"").split(",").map(t=>t.trim()).filter(Boolean)}function Aee(e){let t=e.expectations||{};return{prompt:e.prompt||"",group:e.group||"",rubric:e.notes||"",tools:tj(t.tools),contains:tj(t.contains),not_contains:tj(t.not_contains)}}function Eee(e){return{prompt:e.prompt.trim(),group:e.group.trim(),rubric:e.rubric.trim(),tools:rj(e.tools),contains:rj(e.contains),not_contains:rj(e.not_contains)}}function vA(e){return`/explorations/${e}`}function xA(e){return{explorationId:String(e||"").match(/^\/explorations\/(\d+)/)?.[1]||null}}function Cf({explorations:e,onOpen:t,selectedId:r=null}){return xd.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8},"data-testid":"exploration-list"},e.map(n=>{let o=n.counts||{},a=String(n.id)===String(r);return xd.default.createElement(je,{key:n.id,padding:12,testId:`exploration-${n.id}`,style:a?{borderColor:"var(--color-accent-ui)"}:void 0},xd.default.createElement("button",{type:"button",onClick:()=>t(n),style:{all:"unset",cursor:"pointer",display:"flex",gap:8,alignItems:"center",width:"100%",flexWrap:"wrap"}},xd.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-primary)"}},"#",n.id),xd.default.createElement(ke,{tone:hA[n.status]||"muted"},n.status),xd.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},n.source),xd.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},o.total||0," found \xB7 ",o.open||0," to review \xB7 ",o.accepted||0," accepted \xB7 ",wo(n.created_at))))}))}var _t=Z(J());var Af=Z(J());function aj({budget:e,usage:t}){let r=See(e,t);return r.length===0?null:Af.default.createElement(Zr,{title:"Budget",testId:"exploration-budget",bodyStyle:{padding:"10px 12px",display:"flex",flexDirection:"column",gap:8}},r.map(n=>{let o=n.ratio>=1?Dn.error:n.ratio>=.8?Dn.warning:Dn.info;return Af.default.createElement("div",{key:n.key,"data-testid":`exploration-budget-${n.key}`,style:{display:"flex",alignItems:"center",gap:10}},Af.default.createElement("span",{style:{width:110,fontSize:12,color:"var(--color-text-secondary)"}},n.label),Af.default.createElement("span",{style:{flex:1,height:6,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},Af.default.createElement("span",{style:{display:"block",width:`${Math.round(n.ratio*100)}%`,height:"100%",background:o.strong}})),Af.default.createElement("span",{style:{fontFamily:U,fontSize:11,minWidth:90,textAlign:"right",color:o.text}},n.text))}))}var Dt=Z(J());var F2e={proposed:"info",edited:"info",accepted:"success",rejected:"muted"},Wh={width:"100%",boxSizing:"border-box",padding:"6px 8px",borderRadius:6,fontSize:13,fontFamily:"inherit",background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"};function Hh({label:e,children:t}){return Dt.default.createElement("label",{style:{display:"flex",flexDirection:"column",gap:4,fontSize:12,color:"var(--color-text-secondary)"}},e,t)}function ij({candidate:e,selected:t,onToggle:r,onSave:n,onState:o,busy:a,problem:i,agentId:s}){let[l,u]=(0,Dt.useState)(null),c=nj[e.verdict]||nj.unverified,d=e.expectations||{},p=new Set(e.missing_tools||[]),f=e.provenance||{},m=kee(e),y=yA(e),b=h=>v=>u({...l,[h]:v.target.value}),g=async()=>{await n(e.id,Eee(l))&&u(null)};return Dt.default.createElement("li",{"data-testid":`exploration-candidate-${e.id}`,style:{listStyle:"none",padding:"12px 0",borderTop:"1px solid var(--color-border-light)",display:"flex",gap:10}},Dt.default.createElement("input",{type:"checkbox","aria-label":`Accept candidate ${e.id}`,checked:t,disabled:!y||a,onChange:()=>r(e.id),style:{marginTop:3,alignSelf:"flex-start"}}),Dt.default.createElement("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:6}},Dt.default.createElement("div",{style:{display:"flex",gap:6,alignItems:"center",flexWrap:"wrap"}},Dt.default.createElement("span",{style:{fontSize:14,fontWeight:600,color:"var(--color-text-primary)"}},e.prompt),Dt.default.createElement(ke,{tone:c.tone,title:c.title,testId:`candidate-verdict-${e.id}`},c.label),Dt.default.createElement(ke,{tone:F2e[e.state]||"muted"},e.state),e.group&&Dt.default.createElement(ke,null,e.group),e.scenario_key&&Dt.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},e.scenario_key)),l?Dt.default.createElement("div",{style:{display:"grid",gap:8},"data-testid":`candidate-edit-${e.id}`},Dt.default.createElement(Hh,{label:"Prompt"},Dt.default.createElement("input",{style:Wh,value:l.prompt,onChange:b("prompt")})),Dt.default.createElement(Hh,{label:"Rubric: what a good answer does (the judge grades against it)"},Dt.default.createElement("textarea",{style:{...Wh,minHeight:60},value:l.rubric,onChange:b("rubric")})),Dt.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(160px, 1fr))",gap:8}},Dt.default.createElement(Hh,{label:"Group"},Dt.default.createElement("input",{style:Wh,value:l.group,onChange:b("group")})),Dt.default.createElement(Hh,{label:"Tools (comma-separated)"},Dt.default.createElement("input",{style:Wh,value:l.tools,onChange:b("tools")})),Dt.default.createElement(Hh,{label:"Contains"},Dt.default.createElement("input",{style:Wh,value:l.contains,onChange:b("contains")})),Dt.default.createElement(Hh,{label:"Does not contain"},Dt.default.createElement("input",{style:Wh,value:l.not_contains,onChange:b("not_contains")}))),Dt.default.createElement("div",{style:{display:"flex",gap:8}},Dt.default.createElement(ce,{size:"sm",variant:"primary",onClick:g,disabled:a||!l.prompt.trim()},"Save"),Dt.default.createElement(ce,{size:"sm",onClick:()=>u(null),disabled:a},"Cancel"))):Dt.default.createElement(Dt.default.Fragment,null,Dt.default.createElement("div",{style:{fontSize:13,color:e.notes?"var(--color-text-cell)":"var(--color-text-muted)"}},e.notes||"No rubric yet: the judge has nothing to grade the answer against."),(d.tools?.length>0||d.contains?.length>0||d.not_contains?.length>0)&&Dt.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap",alignItems:"center",fontFamily:U,fontSize:11}},(d.tools||[]).map(h=>Dt.default.createElement(ke,{key:h,tone:p.has(h)?"warning":"muted",title:p.has(h)?"The agent cannot call this tool":void 0},p.has(h)?`missing ${h}`:h)),(d.contains||[]).map(h=>Dt.default.createElement(ke,{key:`c-${h}`},"contains \u201C",h,"\u201D")),(d.not_contains||[]).map(h=>Dt.default.createElement(ke,{key:`n-${h}`},"not \u201C",h,"\u201D")))),i&&Dt.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},i),(f.steps?.length>0||f.urls?.length>0||f.screenshots?.length>0||m)&&Dt.default.createElement("details",{style:{fontSize:12,color:"var(--color-text-secondary)"}},Dt.default.createElement("summary",{style:{cursor:"pointer"}},"How it was found"),f.urls?.length>0&&Dt.default.createElement("div",{style:{marginTop:4,fontFamily:U,fontSize:11}},f.urls.join(" \xB7 ")),f.steps?.length>0&&Dt.default.createElement("ol",{style:{margin:"4px 0 0",paddingLeft:18}},f.steps.map((h,v)=>Dt.default.createElement("li",{key:v},h))),f.screenshots?.length>0&&Dt.default.createElement("div",{style:{marginTop:4,fontFamily:U,fontSize:11}},"Screenshots: ",f.screenshots.join(", "))),!l&&Dt.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap"}},m&&Dt.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(m),testId:`candidate-replay-${e.id}`},"Replay"),e.verdict==="needs_tool"&&s&&Dt.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/agents/${s}/edit`)},"Give the agent the tool"),e.state!=="rejected"&&Dt.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>u(Aee(e)),disabled:a},"Edit"),y&&Dt.default.createElement(ce,{size:"sm",variant:"danger",onClick:()=>o(e.id,"rejected"),disabled:a},"Reject"),e.state==="rejected"&&Dt.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>o(e.id,"proposed"),disabled:a},"Reconsider"))))}var sj={minutes:15,steps:150},Nee={minutes:120,steps:1e3,cost:100},Tee={minutes:"Minutes",steps:"Browser steps",cost:"Cost cap"};function Pee(e={}){let t={};for(let r of["minutes","steps","cost"]){let n=String(e[r]??"").trim();if(n==="")continue;let o=Number(n),a=r!=="cost";if(!Number.isFinite(o)||o<=0||a&&!Number.isInteger(o))return{error:`${Tee[r]} must be a ${a?"whole number":"number"} above 0.`};if(o>Nee[r])return{error:`${Tee[r]} may be at most ${Nee[r]}.`};t[r]=o}return{budget:t}}var Oee={sandbox_not_ready:"Boot the project first: the explorer walks the app its sandbox serves.",exploration_running:"An exploration of this project is already walking the app. Stop it or wait for it to finish.",no_target:"Choose the agent to evaluate first: the explorer proposes questions for that agent.",browser_unavailable:null};function Mee(e,t={}){return e===402?t.message||t.error||"Your plan has no explorations left.":t.code&&Oee[t.code]?Oee[t.code]:t.error||`The exploration did not start (HTTP ${e}).`}var U2e={finished:"The explorer finished.",budget_minutes:"Its time budget ran out.",budget_steps:"Its browser step budget ran out.",budget_cost:"Its cost budget ran out.",budget_context:"Its conversation grew too long for the model.",stopped:"Stopped for review.",error:"It failed."};function Iee(e){return e?U2e[e]||e:null}var W2e={signed_in:"success",failed:"error",unsupported:"warning",error:"error"};function Dee(e){return e?{tone:W2e[e.status]||"muted",text:e.message||e.status}:null}function jee(e={},{passwordSaved:t=!1}={}){let r={};for(let n of["login_url","login","password","login_field","password_field","submit_field"]){let o=String(e[n]??"").trim();o&&(r[n]=n==="password"?String(e[n]):o)}return!r.password&&!t?{error:"Enter the test account's password."}:r.login_url&&(!r.login_url.startsWith("/")||r.login_url.startsWith("//"))?{error:"The login URL must be a path on the app, such as /users/sign_in."}:{payload:r}}function lj(e=[]){return e.filter(t=>!t.kind||t.kind==="env")}async function $ee(e){return e.json().catch(()=>({}))}var q2e={explorer:"explorer agent",external:"submitted from outside the dashboard"};function Ef({explorationId:e,onLoaded:t,scenarioSet:r=null,requireScenarioSet:n=!1,onAccepted:o}){let[a,i]=(0,_t.useState)(null),[s,l]=(0,_t.useState)(null),[u,c]=(0,_t.useState)([]),[d,p]=(0,_t.useState)(!1),[f,m]=(0,_t.useState)(!1),[y,b]=(0,_t.useState)({}),[g,h]=(0,_t.useState)(null),[v,x]=(0,_t.useState)(null),S=(0,_t.useRef)(t);S.current=t;let k=(0,_t.useCallback)(async()=>{let M=await fetch(`/api/explorations/${e}`),W=await $ee(M);if(!M.ok)throw new Error(at(W,`Could not load the exploration (HTTP ${M.status}).`));return i(W),S.current?.(W),W},[e]);(0,_t.useEffect)(()=>{k().catch(M=>l(M.message))},[k]);let w=a?.candidates||[];(0,_t.useEffect)(()=>{a&&c(M=>d?wee(M,w):oj(w,a.preselect_limit))},[a,d]);let _=bee(a?.exploration);(0,_t.useEffect)(()=>{if(!_)return;let M=setInterval(()=>k().catch(W=>l(W.message)),3e3);return()=>clearInterval(M)},[_,k]),$h("ExplorationChannel",{exploration_id:e},M=>{Lh(M)&&k().catch(()=>{})},!!e);let A=async(M,W,Y)=>{m(!0),l(null);try{let z=await fetch(M,{method:W,headers:{"Content-Type":"application/json"},body:JSON.stringify(Y||{})}),V=await $ee(z);return{res:z,data:V}}finally{m(!1)}},C=async(M,W)=>{let{res:Y,data:z}=await A(`/api/explorations/${e}/candidates/${M}`,"PATCH",W);return Y.ok?(b({...y,[M]:null}),await k(),!0):(b({...y,[M]:at(z,`Could not save the candidate (HTTP ${Y.status}).`)}),!1)},N=async(M,W)=>C(M,{state:W}),L=M=>{p(!0),c(W=>W.includes(M)?W.filter(Y=>Y!==M):[...W,M])},Q=async()=>{let M={candidate_ids:u,...r?{scenario_set_id:r.id}:{}},{res:W,data:Y}=await A(`/api/explorations/${e}/accept`,"POST",M);return W.ok?(b({}),h({accepted:Y.accepted,evaluation:r?null:Y.evaluation,scenarioSet:Y.scenario_set||null}),o?.(Y),p(!1),i(Y),S.current?.(Y),Y):(b(Y.problems||{}),l(at(Y,`Could not accept the candidates (HTTP ${W.status}).`)),null)},B=async(M,W,{confirm:Y=!1}={})=>{let z=W?`/api/projects/${W.id}/run_evaluation`:`/api/evaluations/${M.id}/run`,{res:V,data:q}=await A(z,"POST",Y?{confirm:!0}:{});if(V.status===409&&q.code==="confirmation_required"){x({question:q.confirmation,evaluation:M,project:W});return}if(!V.ok){l(at(q,`The scenarios were accepted, but the run did not start (HTTP ${V.status}).`));return}x(null),lt(`/evaluations/${q.run?.evaluation_id||M.id}/runs/${q.run.id}`)},K=async()=>{let M=await Q();M?.evaluation&&await B(M.evaluation,M.project)},T=async()=>{let{res:M,data:W}=await A(`/api/explorations/${e}/stop`,"POST");if(!M.ok&&M.status!==409){l(at(W,`Could not stop the exploration (HTTP ${M.status}).`));return}await k()};if(!a)return s?_t.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},s):_t.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading the exploration\u2026");let{exploration:O}=a,I=O.counts||{},P=_ee({evaluation:a.evaluation,candidates:w,selectedIds:u}),j=oj(w);return _t.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12},"data-testid":"exploration-review"},_t.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},_t.default.createElement(Ue,null,"Exploration ",O.id),_t.default.createElement(ke,{tone:hA[O.status]||"muted",testId:"exploration-status"},O.status),_t.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},q2e[O.source]||O.source," \xB7 ",wo(O.created_at),O.start_url?` \xB7 from ${O.start_url}`:""),_&&_t.default.createElement(ce,{size:"sm",onClick:T,disabled:f,style:{marginLeft:"auto"},testId:"exploration-stop"},"Stop and review")),O.stop_reason&&_t.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},Iee(O.stop_reason)),O.error_message&&_t.default.createElement("div",{style:{padding:"8px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},O.error_message),_t.default.createElement(aj,{budget:O.budget,usage:O.usage}),s&&_t.default.createElement("div",{style:{padding:"10px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},s),g&&_t.default.createElement(je,{padding:12,testId:"exploration-accepted"},_t.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-primary)"}},"Added ",g.accepted?.added?.length||0," and updated ",g.accepted?.updated?.length||0," scenarios in"," ",g.scenarioSet?`${g.scenarioSet.catalog?.name} / ${g.scenarioSet.name}`:g.evaluation?.name,".")," ",g.evaluation&&_t.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/evaluations/${g.evaluation.id}`)},"Open evaluation")),v&&_t.default.createElement(je,{testId:"exploration-run-confirmation",style:{borderColor:"var(--color-warning)"}},_t.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-primary)"}},v.question),_t.default.createElement("div",{style:{display:"flex",gap:8,marginTop:10}},_t.default.createElement(ce,{variant:"primary",onClick:()=>B(v.evaluation,v.project,{confirm:!0}),disabled:f},"Run it on this machine"),_t.default.createElement(ce,{onClick:()=>x(null)},"Cancel"))),_t.default.createElement(Zr,{title:"Found so far",meta:`${I.total||0} found \xB7 ${I.answerable||0} answerable \xB7 ${I.accepted||0} accepted`,testId:"exploration-candidates",bodyStyle:{padding:"0 12px"}},w.length===0?_t.default.createElement("div",{style:{padding:"12px 0",fontSize:13,color:"var(--color-text-secondary)"}},_?"Nothing yet. Candidates appear here as they are found.":"This exploration found nothing."):_t.default.createElement("ul",{style:{margin:0,padding:0}},w.map(M=>_t.default.createElement(ij,{key:M.id,candidate:M,selected:u.includes(M.id),onToggle:L,onSave:C,onState:N,busy:f,problem:y?.[M.id]||y?.[String(M.id)],agentId:a.target_agent?.id})))),w.length>0&&_t.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8}},_t.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},_t.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>{p(!0),c(j)},disabled:f},"Select every answerable"),_t.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>{p(!0),c([])},disabled:f},"Clear"),a.preselect_limit!=null&&j.length>a.preselect_limit&&_t.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"Your plan starts with ",a.preselect_limit," selected.")),_t.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},_t.default.createElement(ce,{variant:"primary",onClick:Q,disabled:f||u.length===0||n&&!r,testId:"exploration-accept"},"Accept ",u.length,r?` into ${r.label}`:""),!r&&!n&&_t.default.createElement(_t.default.Fragment,null,_t.default.createElement(ce,{onClick:K,disabled:f||u.length===0,testId:"exploration-accept-run"},"Accept and run"),_t.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"},"data-testid":"exploration-run-estimate"},Cee(P,a.runs_remaining))))))}var ti=Z(J());var K2e={width:90,padding:"6px 8px",borderRadius:6,fontSize:13,fontFamily:U,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"};function db({projectId:e,sandboxReady:t,onStarted:r}){let[n,o]=(0,ti.useState)({minutes:"",steps:"",cost:""}),[a,i]=(0,ti.useState)(null),[s,l]=(0,ti.useState)(!1),{error:u,budget:c}=Pee(n),d=async()=>{l(!0),i(null);try{let f=await fetch(`/api/projects/${e}/explorations`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({budget:c})}),m=await f.json().catch(()=>({}));if(!f.ok)throw new Error(Mee(f.status,m));r?.(m.exploration)}catch(f){i(f.message)}finally{l(!1)}},p=(f,m,y)=>ti.default.createElement("label",{style:{display:"flex",flexDirection:"column",gap:4}},ti.default.createElement(Ue,null,m),ti.default.createElement("input",{type:"number",min:"0",value:n[f],placeholder:y,onChange:b=>o({...n,[f]:b.target.value}),"aria-label":m,style:K2e}));return ti.default.createElement(Zr,{title:"Explore the app",testId:"explorer-start",bodyStyle:{padding:12,display:"flex",flexDirection:"column",gap:10}},ti.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"The explorer walks the app in the sandbox's browser and proposes the questions a user would ask the project's agent, each with a rubric. They wait here for review; nothing reaches the evaluation until you accept it."),ti.default.createElement("div",{style:{display:"flex",gap:12,alignItems:"flex-end",flexWrap:"wrap"}},p("minutes","Minutes",String(sj.minutes)),p("steps","Browser steps",String(sj.steps)),p("cost","Cost cap ($)","none"),ti.default.createElement(ce,{variant:"primary",onClick:d,disabled:s||!t||!!u,testId:"explorer-start-button"},s?"Starting\u2026":"Explore the app")),!t&&ti.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"Boot the project first: the explorer walks the app its sandbox serves."),(u||a)&&ti.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"},"data-testid":"explorer-start-error"},u||a))}var Yt=Z(J());var V2e={width:"100%",padding:"6px 10px",borderRadius:6,fontSize:13,fontFamily:U,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"},G2e=[{value:"credentials",label:"Seeded account"},{value:"by_hand",label:"Sign in by hand"},{value:"none",label:"No sign-in"}],Lee=e=>e?new Date(e).toLocaleString():"\u2014";async function Nf(e,t,r){let n=await fetch(e,{method:t,headers:{"Content-Type":"application/json"},body:r?JSON.stringify(r):void 0}),o=await n.json().catch(()=>({}));if(!n.ok)throw new Error(at(o,`The request failed (HTTP ${n.status}).`));return o}function uj({projectId:e,sandboxId:t,sandboxReady:r}){let[n,o]=(0,Yt.useState)(null),[a,i]=(0,Yt.useState)(null),[s,l]=(0,Yt.useState)({login_url:"",login:"",password:"",login_field:"",password_field:"",submit_field:""}),[u,c]=(0,Yt.useState)(null),[d,p]=(0,Yt.useState)(null),[f,m]=(0,Yt.useState)(null),[y,b]=(0,Yt.useState)(!1),g=(0,Yt.useCallback)(async()=>{let B=await Nf(`/api/projects/${e}/sign_in`,"GET");o(B.sign_in);let K=B.sign_in?.credentials;K&&l(T=>({...T,login_url:K.login_url||"",login:K.login||"",...K.fields})),i(T=>T||(K?"credentials":B.sign_in?.storage_state?"by_hand":"none"))},[e]);(0,Yt.useEffect)(()=>{g().catch(B=>p(B.message))},[g]);let h=async B=>{b(!0),p(null),m(null);try{await B()}catch(K){p(K.message)}finally{b(!1)}},v=n?.credentials,{error:x,payload:S}=jee(s,{passwordSaved:!!v?.password_set}),k=Dee(u),w=()=>h(async()=>{let B=await Nf(`/api/projects/${e}/sign_in`,"PUT",S);o(B.sign_in),l(K=>({...K,password:""})),m(B.warnings?.length?B.warnings.map(K=>K.message).join(" "):"Saved. The explorer signs in with them.")}),_=()=>h(async()=>{let B=await Nf(`/api/projects/${e}/sign_in/check`,"POST");c(B.result),o(B.sign_in)}),A=()=>h(async()=>{await Nf(`/api/sandboxes/${t}/browser`,"POST",{mode:"headed"}),await g(),m("A browser window opened on the app. Sign in there, then save its sign-in.")}),C=()=>h(async()=>{let B=await Nf(`/api/projects/${e}/sign_in/save_browser`,"POST");o(B.sign_in),m("Saved. Every browser of this project now starts signed in.")}),N=()=>h(async()=>{await Nf(`/api/sandboxes/${t}/browser`,"DELETE"),await g()}),L=()=>h(async()=>{let B=await Nf(`/api/projects/${e}/sign_in`,"DELETE");o(B.sign_in),c(null),m("The explorer explores what is reachable without signing in.")}),Q=(B,K,T="text",O="")=>Yt.default.createElement("label",{style:{display:"flex",flexDirection:"column",gap:4,flex:"1 1 200px"}},Yt.default.createElement(Ue,null,K),Yt.default.createElement("input",{type:T,autoComplete:"off",value:s[B],placeholder:O,onChange:I=>l({...s,[B]:I.target.value}),"aria-label":K,style:V2e}));return Yt.default.createElement(Zr,{title:"Sign-in",testId:"project-sign-in",bodyStyle:{padding:12,display:"flex",flexDirection:"column",gap:10}},Yt.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"How the explorer and the evaluation's replays sign in to the app. Credentials are typed into the app by the dashboard itself and never reach a model."),Yt.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap",alignItems:"center"}},v&&Yt.default.createElement(ke,{tone:"success"},"credentials saved ",Lee(v.updated_at)),n?.storage_state&&Yt.default.createElement(ke,{tone:"success"},"browser sign-in saved ",Lee(n.storage_state.updated_at)),!v&&!n?.storage_state&&n&&Yt.default.createElement(ke,null,"no sign-in")),Yt.default.createElement(qi,{options:G2e,value:a||"none",onChange:i}),a==="credentials"&&Yt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8},"data-testid":"sign-in-credentials"},Yt.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},Q("login_url","Login URL","text","/users/sign_in"),Q("login","Login","text","dev@example.com"),Q("password","Password","password",v?.password_set?"Saved; leave empty to keep it":"")),Yt.default.createElement("details",null,Yt.default.createElement("summary",{style:{fontSize:12,color:"var(--color-text-secondary)",cursor:"pointer"}},"Field selectors, when the form's fields are not found"),Yt.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap",marginTop:6}},Q("login_field","Login field","text","#user_email"),Q("password_field","Password field","text","#user_password"),Q("submit_field","Submit button","text","button[type=submit]"))),Yt.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},Yt.default.createElement(ce,{variant:"primary",size:"sm",onClick:w,disabled:y||!!x},"Save credentials"),Yt.default.createElement(ce,{size:"sm",onClick:_,disabled:y||!v||!r,testId:"sign-in-check"},"Check sign-in"),x&&Yt.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},x))),a==="by_hand"&&Yt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8},"data-testid":"sign-in-by-hand"},Yt.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"Open the sandbox's browser in a window, sign in to the app there, then save its sign-in. Later browsers of this project start with it."),Yt.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},Yt.default.createElement(ce,{size:"sm",onClick:A,disabled:y||!r||n?.browser_running},"Open a browser window"),Yt.default.createElement(ce,{variant:"primary",size:"sm",onClick:C,disabled:y||!n?.browser_running},"Save the browser's sign-in"),n?.browser_running&&Yt.default.createElement(ce,{size:"sm",variant:"ghost",onClick:N,disabled:y},"Stop the browser"))),a==="none"&&(v||n?.storage_state)&&Yt.default.createElement("div",null,Yt.default.createElement(ce,{size:"sm",variant:"danger",onClick:L,disabled:y},"Remove the saved sign-in")),k&&Yt.default.createElement("div",{"data-testid":"sign-in-result",style:{fontSize:13,color:Dn[k.tone]?.text||"var(--color-text-secondary)"}},k.text),f&&Yt.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},f),d&&Yt.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},d))}function cj({projectId:e,project:t,onCount:r}){let[n,o]=(0,Wn.useState)(null),[a,i]=(0,Wn.useState)(null),[s,l]=(0,Wn.useState)(null),u=(0,Wn.useCallback)(async()=>{let f=await fetch(`/api/explorations?project_id=${e}`),m=await f.json().catch(()=>({}));if(!f.ok)throw new Error(at(m,`Could not list the project's explorations (HTTP ${f.status}).`));o(m.explorations||[]),r?.(m.explorations?.length||0)},[e,r]);(0,Wn.useEffect)(()=>{u().catch(f=>l(f.message))},[u]);let c=t?.sandbox_state==="ready",d=Wn.default.createElement(Wn.default.Fragment,null,Wn.default.createElement(db,{projectId:e,sandboxReady:c,onStarted:f=>{i(f.id),u().catch(m=>l(m.message))}}),Wn.default.createElement(uj,{projectId:e,sandboxId:t?.sandbox?.session_id,sandboxReady:c}));if(s)return Wn.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},s);if(!n)return Wn.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading explorations\u2026");if(n.length===0)return Wn.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},d,Wn.default.createElement(je,{testId:"project-explorations-empty"},Wn.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-secondary)"}},"No explorations yet. Explore the app above, or have an agent that explores it, such as a coding agent driving a browser, submit the questions it found with the explorations_submit MCP tool. They are reviewed here before any reaches the evaluation.")));let p=a||n[0].id;return Wn.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"project-explorations"},d,Wn.default.createElement(Cf,{explorations:n,selectedId:p,onOpen:f=>i(f.id)}),Wn.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end"}},Wn.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(vA(p))},"Open on its own page")),Wn.default.createElement(Ef,{key:p,explorationId:p,onLoaded:()=>u().catch(()=>{})}))}var dr=Z(J());var Y2e={text:"question",choice:"choice",confirm:"approval",secret:"secret"};async function zee(e){return e.json().catch(()=>({}))}function dj({projectId:e,setupAgentId:t,version:r,onSettled:n}){let[o,a]=(0,dr.useState)(null),[i,s]=(0,dr.useState)(null),l=(0,dr.useCallback)(async()=>{let c=await fetch(`/api/projects/${e}/input_requests`),d=await zee(c);if(!c.ok)throw new Error(at(d,`Could not list what the project is waiting for (HTTP ${c.status}).`));a(d.input_requests||[])},[e]);(0,dr.useEffect)(()=>{l().catch(c=>s(c.message))},[l,r]);let u=async(c,d,p)=>{let f=await fetch(`/api/input_requests/${c.id}/${d}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(p||{})}),m=await zee(f);if(!f.ok)throw new Error(at(m,`Could not send the answer (HTTP ${f.status}).`));await l(),n?.()};return!o?.length&&!i?null:dr.default.createElement(Zr,{title:"Waiting for you",meta:`${o?.length||0}`,testId:"project-input-requests"},i&&dr.default.createElement("div",{style:{padding:"8px 12px",fontSize:13,color:"var(--color-error-text)"}},i),(o||[]).map(c=>dr.default.createElement(X2e,{key:c.id,request:c,onSettle:u,storesProjectSecret:t!=null&&c.agent?.id===t})))}function X2e({request:e,onSettle:t,storesProjectSecret:r}){let[n,o]=(0,dr.useState)(""),[a,i]=(0,dr.useState)(!1),[s,l]=(0,dr.useState)(null),u=async(c,d)=>{i(!0),l(null);try{await t(e,c,d),o("")}catch(p){l(p.message)}finally{i(!1)}};return dr.default.createElement(Z2e,{request:e,storesProjectSecret:r,value:n,onChange:o,busy:a,error:s,onAnswer:c=>u("answer",nee(e,c)),onDecline:()=>u("decline")})}function Z2e({request:e,storesProjectSecret:t,value:r,onChange:n,busy:o,error:a,onAnswer:i,onDecline:s}){let l=ree(e,r),u=`project-answer-${e.id}`;return dr.default.createElement("form",{"data-testid":`project-input-request-${e.id}`,style:{padding:"10px 12px",borderTop:"1px solid var(--color-border-light)",display:"flex",flexDirection:"column",gap:8},onSubmit:c=>{c.preventDefault(),e.kind!=="confirm"&&!l&&i(r)}},dr.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},dr.default.createElement(ke,{tone:e.kind==="secret"?"warning":"info"},Y2e[e.kind]||e.kind),dr.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-muted)"}},e.agent?.name||"An agent"," asks",e.actor?.name?`, for ${e.actor.name}`:""),dr.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"run ",e.run_id)),dr.default.createElement("label",{htmlFor:u,style:{fontSize:14,color:"var(--color-text-primary)",whiteSpace:"pre-wrap"}},e.prompt),e.kind==="choice"&&dr.default.createElement("select",{id:u,value:r,onChange:c=>n(c.target.value),disabled:o,style:{padding:"6px 8px",borderRadius:6,border:"1px solid var(--color-border-strong)",background:"var(--color-card)",color:"var(--color-text-primary)"}},dr.default.createElement("option",{value:""},"Choose\u2026"),G3(e).map(c=>dr.default.createElement("option",{key:c.value,value:c.value},c.label))),(e.kind==="text"||e.kind==="secret")&&dr.default.createElement("input",{id:u,type:e.kind==="secret"?"password":"text",autoComplete:e.kind==="secret"?"new-password":"off","data-aa-secret":e.kind==="secret"?"":void 0,value:r,onChange:c=>n(c.target.value),disabled:o,style:{padding:"6px 8px",borderRadius:6,border:"1px solid var(--color-border-strong)",background:"var(--color-card)",color:"var(--color-text-primary)",fontFamily:e.kind==="secret"?U:"inherit"}}),e.kind==="secret"&&dr.default.createElement("p",{style:{margin:0,fontSize:12,color:"var(--color-text-secondary)"}},t?"The assistant never sees this value: it is stored as one of the project's secrets.":"The agent never sees this value."),dr.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center"}},e.kind==="confirm"?dr.default.createElement(dr.default.Fragment,null,dr.default.createElement(ce,{variant:"primary",size:"sm",onClick:()=>i(!0),disabled:o},"Approve"),dr.default.createElement(ce,{size:"sm",onClick:()=>i(!1),disabled:o},"Decline")):dr.default.createElement(dr.default.Fragment,null,dr.default.createElement(ce,{variant:"primary",size:"sm",type:"submit",disabled:o||!!l},o?"Sending\u2026":"Answer"),dr.default.createElement(ce,{size:"sm",onClick:s,disabled:o},"Decline"),r&&l&&dr.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},l))),a&&dr.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},a))}var Ft=Z(J());async function bA(e){return e.json().catch(()=>({}))}function pj({project:e,onProjectChanged:t,onConfirmationRequired:r}){let n=`/api/projects/${e.id}/install_pull_request`,[o,a]=(0,Ft.useState)(null),[i,s]=(0,Ft.useState)(null),[l,u]=(0,Ft.useState)(null),[c,d]=(0,Ft.useState)(0),[p,f]=(0,Ft.useState)(!1),m=(0,Ft.useCallback)(async()=>{let g=await fetch(n),h=await bA(g);if(!g.ok)throw new Error(at(h,`Could not read the install pull request (HTTP ${g.status}).`));return h},[n]);(0,Ft.useEffect)(()=>{let g=!1,h=null,v=async()=>{try{let x=await m();if(g)return;a(x),s(null),x.project&&t?.(x.project);let S=fee(x.pull_request);S&&(h=setTimeout(v,S))}catch(x){g||s(x.message)}};return v(),()=>{g=!0,clearTimeout(h)}},[m,c]);let y=async g=>{f(!0),s(null);try{let h=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g?{regular:!0}:{open:!0})}),v=await bA(h);if(!h.ok)throw new Error(at(v,`Could not open the pull request (HTTP ${h.status}).`));d(x=>x+1)}catch(h){s(h.message)}finally{f(!1)}},b=o?.pull_request||null;return e.install_state==="installed"&&!b?null:Ft.default.createElement(Ft.default.Fragment,null,Ft.default.createElement(J2e,{project:e,pullRequest:b,publishing:o?.publishing,allowlist:o?.allowlist||[],error:i,opening:p,onOpenDialog:u,onOpenBranch:y}),l&&Ft.default.createElement(Q2e,{project:e,base:n,pullRequest:b,mode:l,onConfirmationRequired:r,onClose:()=>u(null),onPublished:()=>{u(null),d(g=>g+1)}}))}function J2e({project:e,pullRequest:t,publishing:r,allowlist:n,error:o,opening:a,onOpenDialog:i,onOpenBranch:s}){let{label:l,tone:u}=pee(t),{canOpen:c,canUpdate:d,openBranch:p}=mee(t);return Ft.default.createElement(je,{testId:"project-install-pull-request"},Ft.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Ft.default.createElement(Ue,null,"Install pull request"),Ft.default.createElement(ke,{tone:u},l),t?.url&&Ft.default.createElement("a",{href:t.url,target:"_blank",rel:"noopener noreferrer",style:{fontSize:13,color:"var(--color-info)"}},"#",t.number),Ft.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8}},d&&Ft.default.createElement(ce,{size:"sm",onClick:()=>i("update")},"Update draft PR"),c&&e.install_state!=="installed"&&Ft.default.createElement(ce,{size:"sm",variant:"primary",onClick:()=>i("create"),testId:"open-install-pr"},"Open install PR"),p&&Ft.default.createElement(ce,{size:"sm",onClick:()=>s(p==="regular"),disabled:a,testId:"open-install-branch"},a?"Opening\u2026":p==="regular"?"Open as a regular pull request":"Open the draft PR again"))),Ft.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},e.install_state==="installed"?"The pull request merged: the repository bundles the engine, and boots its own branch.":"Publishes what the sandbox installed as a draft pull request, from this dashboard, after you check the exact diff. Once it exists, every boot checks its branch out."),t?.branch&&Ft.default.createElement("p",{style:{margin:"4px 0 0",fontFamily:U,fontSize:12,color:"var(--color-text-muted)"}},t.branch,t.base_branch?` \u2192 ${t.base_branch}`:""),t?.status==="failed"&&t.error_message&&Ft.default.createElement("p",{style:{margin:"6px 0 0",fontSize:12,color:"var(--color-error-text)"}},t.error_message),r&&!r.available&&r.live&&Ft.default.createElement("p",{style:{margin:"6px 0 0",fontSize:12,color:"var(--color-text-secondary)"}},r.refusal),n.length>0&&Ft.default.createElement("details",{style:{marginTop:6}},Ft.default.createElement("summary",{style:{cursor:"pointer",fontSize:12,color:"var(--color-text-secondary)"}},"What it may publish"),Ft.default.createElement("ul",{style:{margin:"4px 0 0",paddingLeft:18,fontFamily:U,fontSize:12,color:"var(--color-text-secondary)"}},n.map(f=>Ft.default.createElement("li",{key:f},f)))),o&&Ft.default.createElement("p",{style:{margin:"6px 0 0",fontSize:12,color:"var(--color-error-text)"}},o))}function Q2e({project:e,base:t,pullRequest:r,mode:n,onConfirmationRequired:o,onClose:a,onPublished:i}){let s=n==="update",[l,u]=(0,Ft.useState)(null),[c,d]=(0,Ft.useState)(null),[p,f]=(0,Ft.useState)(!0),[m,y]=(0,Ft.useState)(null),[b,g]=(0,Ft.useState)(new Set),[h,v]=(0,Ft.useState)(s?r?.title||"":"Install ActiveAgent"),[x,S]=(0,Ft.useState)(""),[k,w]=(0,Ft.useState)(s&&r?.branch||""),[_,A]=(0,Ft.useState)(O2),[C,N]=(0,Ft.useState)(!1),[L,Q]=(0,Ft.useState)(0);(0,Ft.useEffect)(()=>{let K=!1,T=null;f(!0);let O=async(I=!1)=>{try{let P=await fetch(`${t}/preview`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(I?{confirm:!0}:{})}),j=await bA(P);if(K)return;if(P.status===409&&j.code==="confirmation_required"){o?.(j.confirmation,()=>O(!0));return}if(P.status===202){y(j.error),T=setTimeout(()=>O(),3e3);return}if(!P.ok)throw new Error(at(j,`Could not read the sandbox's changes (HTTP ${P.status}).`));y(null),u(j.preview),d(j.publishing),g(M2(j.preview.files)),w(M=>M||j.preview.suggested_branch||""),f(!1)}catch(P){K||(y(P.message),f(!1))}};return O(),()=>{K=!0,clearTimeout(T)}},[t,L]);let B=async()=>{N(!0),y(null);try{let K=D2({files:l?.files,selection:b,title:h,body:x,branch:k,message:_,update:s}),T=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(K)}),O=await bA(T);if(!T.ok)throw P2(O.code)&&Q(I=>I+1),new Error(at(O,`Could not publish (HTTP ${T.status}).`));i(O.pull_request)}catch(K){y(K.message)}finally{N(!1)}};return Ft.default.createElement(wD,{sandbox:{repository:e.repository,repository_ref:e.sandbox?.repository_ref||e.checkout_ref||"its default branch"},preview:l,loading:p,error:m,publishing:c,pullRequest:r,selection:b,onToggle:K=>g(T=>I2(T,K)),fields:{title:h,body:x,branch:k,message:_,allowlist:""},onField:(K,T)=>({title:v,body:S,branch:w,message:A})[K]?.(T),allowlistApplied:!1,mode:s?"update":"create",submitting:C,onSubmit:B,onCancel:a,patchHref:(K,T)=>gee(e.id,K,T)})}var cn=Z(J());var R2e={awaiting_input:"warning",running:"info",pending:"info",complete:"success",failed:"error"},eAe={progress:"info",success:"success",error:"error",neutral:"muted"};function fj({project:e,busy:t,onAsk:r,onFixWithClaudeCode:n,onToggleAuto:o}){let a=e?.setup;if(!a)return null;let i=a.last_run,s=a.claude_code,l=s?.last_session;return cn.default.createElement(je,{testId:"project-setup"},cn.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},cn.default.createElement(Ue,null,"Setup"),cn.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center"}},cn.default.createElement("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:12,color:"var(--color-text-secondary)"}},cn.default.createElement("input",{type:"checkbox",checked:a.auto!==!1,disabled:t,onChange:u=>o(u.target.checked)}),"Start it when a boot fails"))),s&&cn.default.createElement("div",{"data-testid":"project-setup-claude-code",style:{marginTop:10}},cn.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},cn.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},"Claude Code"),!s.available&&!l&&cn.default.createElement(ke,{tone:"muted"},"not used"),l&&cn.default.createElement(ke,{tone:eAe[fs(l.status).tone]||"muted"},fs(l.status).label),X3(e)&&n&&cn.default.createElement(ce,{size:"sm",variant:"primary",onClick:n,disabled:t,testId:"fix-with-claude-code",style:{marginLeft:"auto"}},"Fix the boot with Claude Code")),cn.default.createElement("p",{"data-testid":"claude-code-status",style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},see(e)),l?.id&&cn.default.createElement("a",{href:Re(ms(l.id)),onClick:u=>{u.preventDefault(),lt(ms(l.id))},"data-testid":"boot-fix-conversation",style:{display:"inline-block",marginTop:4,fontSize:12,color:"var(--color-accent-ui)"}},"Ask Claude Code about this fix \u2192"),l?.sandbox_session_id&&cn.default.createElement(b0,{sandbox:{session_id:l.sandbox_session_id},readOnly:!0,focusSessionId:l.id,title:`Claude Code on ${s.failed_step||"the boot"}`})),cn.default.createElement("div",{style:{marginTop:12}},cn.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},cn.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},"Setup assistant"),!a.available&&cn.default.createElement(ke,{tone:"muted"},"unavailable"),i&&cn.default.createElement(ke,{tone:R2e[i.status]||"muted"},i.status.replace("_"," ")),cn.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center"}},a.agent_id&&i&&cn.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/agents/${a.agent_id}/interactions`)},"Open its runs"),lee(e)&&cn.default.createElement(ce,{size:"sm",variant:X3(e)?"secondary":"primary",onClick:r,disabled:t,testId:"ask-setup-assistant"},"Ask the setup assistant"))),cn.default.createElement("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},oee(a),!a.available&&" Set the variables the boot needs in the Environment tab.",a.available&&s?.available&&" Claude Code goes first when a boot fails; the setup assistant is the fallback."),cn.default.createElement("p",{style:{margin:"4px 0 0",fontSize:12,color:"var(--color-text-muted)"}},"It reads the failed step's log, sets variables that are not secret, asks you for secrets, and retries the boot. It runs no commands and reads no files.")))}var Bee="/settings?tab=integrations",tAe={ready:"success",booting:"info",failed:"error",expired:"muted",none:"muted"},rAe={installed:"bundles the engine",detected:"installs the engine in the sandbox",bootstrapped:"engine installed in the sandbox"};async function Zs(e){return e.json().catch(()=>({}))}function mj({projectId:e,onBack:t,onDeleted:r}){let[n,o]=(0,Ve.useState)(null),[a,i]=(0,Ve.useState)(null),[s,l]=(0,Ve.useState)([]),[u,c]=(0,Ve.useState)(()=>BR(window.location.search)),[d,p]=(0,Ve.useState)(!1),[f,m]=(0,Ve.useState)(null),[y,b]=(0,Ve.useState)(null),[g,h]=(0,Ve.useState)(null),[v,x]=(0,Ve.useState)(!1),[S,k]=(0,Ve.useState)(null),[w,_]=(0,Ve.useState)(null),[A,C]=(0,Ve.useState)(null),N=(0,Ve.useCallback)(async()=>{let G=await fetch(`/api/projects/${e}/boot`),E=await Zs(G);if(!G.ok)throw new Error(at(E,`Could not load the project (HTTP ${G.status}).`));o(E.project),i(E)},[e]),L=(0,Ve.useCallback)(async()=>{let G=await fetch(`/api/projects/${e}/secrets`),E=await Zs(G);if(!G.ok)throw new Error(at(E,`Could not list the project's secrets (HTTP ${G.status}).`));l(E.secrets||[])},[e]);(0,Ve.useEffect)(()=>{N().catch(G=>m(G.message)),L().catch(G=>b(G.message))},[N,L]);let Q=G=>{c(G),G!=="browser"&&p(!1);let{pathname:E,search:$}=window.location;window.history.replaceState(window.history.state,"",`${E}${FR($,G)}`)},B=n?.sandbox_state==="failed",[K,T]=(0,Ve.useState)(null);(0,Ve.useEffect)(()=>{T(B?Date.now():null)},[B,n?.sandbox?.session_id]);let O=LR(n),I=O||aee(n)||iee(n,K);(0,Ve.useEffect)(()=>{if(!I)return;let G=setTimeout(()=>N().catch(E=>m(E.message)),TR);return()=>clearTimeout(G)},[I,a,N]);let P=n?.sandbox?.session_id;$h("SandboxChannel",{session_id:P},G=>{Lh(G)&&N().catch(()=>{})},!!P);let j=async(G,{confirm:E=!1,onDone:$}={})=>{x(!0),m(null);try{let ee=await fetch(G,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E?{confirm:!0}:{})}),F=await Zs(ee);if(ee.status===409&&F.code==="confirmation_required")return h({question:F.confirmation,retry:()=>j(G,{confirm:!0,onDone:$})}),null;if(!ee.ok)throw new Error(at(F,`The request failed (HTTP ${ee.status}).`));return h(null),F.project&&o(F.project),await N(),$?.(F),F}catch(ee){return m(ee.message),null}finally{x(!1)}},M=()=>j(`/api/projects/${e}/run_evaluation`,{onDone:G=>{G.run&&k(G.run)}}),W=(G,E)=>h({question:G,retry:E}),Y=async(G,E,$="setup")=>{x(!0),m(null);try{let ee=await fetch(`/api/projects/${e}/${$}`,{method:G,headers:{"Content-Type":"application/json"},body:JSON.stringify(E||{})}),F=await Zs(ee);if(!ee.ok)throw new Error(at(F,`The setup request failed (HTTP ${ee.status}).`));F.project&&o(F.project),await N()}catch(ee){m(ee.message)}finally{x(!1)}},z=async()=>{m(null);let G=await fetch(`/api/projects/${e}/synced_agents`),E=await Zs(G);if(!G.ok){m(at(E,`Could not list the checkout's agents (HTTP ${G.status}).`));return}_(E.synced_agents||[])},V=async G=>{x(!0);try{let E=await fetch(`/api/projects/${e}/target`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(G)}),$=await Zs(E);if(!E.ok)throw new Error(at($,`Could not choose the agent (HTTP ${E.status}).`));o($.project),_(null)}catch(E){m(E.message)}finally{x(!1)}},q=async G=>{b(null);let E=await fetch(`/api/projects/${e}/secrets`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({secrets:G})}),$=await Zs(E);return E.ok?(l($.secrets||[]),!0):(b(at($,`Could not save the secrets (HTTP ${E.status}).`)),!1)},oe=async(G,E)=>{b(null);let $=await fetch(`/api/projects/${e}/secrets/${encodeURIComponent(G)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:E})}),ee=await Zs($);if(!$.ok){let F=at(ee,`Could not replace ${G} (HTTP ${$.status}).`);throw b(F),new Error(F)}await L()},Me=async G=>{b(null);let E=await fetch(`/api/projects/${e}/secrets/${encodeURIComponent(G)}`,{method:"DELETE"});if(!E.ok){b(at(await Zs(E),`Could not delete ${G} (HTTP ${E.status}).`));return}await L()},fe=async()=>{b(null);let G=`repository=${encodeURIComponent(n.repository)}&project_id=${e}${n.default_ref?`&ref=${encodeURIComponent(n.default_ref)}`:""}`,E=await fetch(`/api/projects/discover_secrets?${G}`),$=await Zs(E);if(!E.ok){b(at($,`Could not read the repository's environment variables (HTTP ${E.status}).`));return}C(sb($.variables||[],s))},le=async()=>{if(!await Wr({title:`Delete ${n.name}?`,message:"Its secrets, agent and evaluation are deleted, and its sandbox is stopped. This cannot be undone.",confirmLabel:"Delete project",danger:!0,requireText:n.name}))return;let G=await fetch(`/api/projects/${e}`,{method:"DELETE"});G.ok?r():m(at(await Zs(G),`Could not delete the project (HTTP ${G.status}).`))};if(!n)return f?Ve.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},f):Ve.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading the project\u2026");let R=a?.browser_modes||[],te=UR(n,R),He=G=>{G&&p(!0),Q("browser")},_e=n.target_agent,D=!_e&&n.install_state==="installed";return Ve.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"project-detail"},Ve.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16,flexWrap:"wrap"}},Ve.default.createElement("div",{style:{flex:1,minWidth:260}},Ve.default.createElement(ce,{size:"sm",variant:"ghost",onClick:t,style:{padding:0}},"\u2190 Projects"),Ve.default.createElement("h1",{style:{margin:"4px 0 0",fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},n.name),Ve.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",marginTop:4,flexWrap:"wrap"}},Ve.default.createElement("span",{style:{fontFamily:U,fontSize:13,color:"var(--color-text-secondary)"}},n.repository,n.default_ref?`@${n.default_ref}`:""),Ve.default.createElement(ke,{tone:tAe[n.sandbox_state]||"muted"},"sandbox ",n.sandbox_state),Ve.default.createElement(ke,{tone:pA[n.install_state==="installed"?"supported":"bootstrap"]},rAe[n.install_state]),Ve.default.createElement(Gr,{href:Re(Bee),onClick:()=>lt(Bee),title:"Every sandbox and browser, in Settings \u2192 Integrations"},"Manage runtimes"))),Ve.default.createElement("div",{style:{display:"flex",gap:8}},Ve.default.createElement(ce,{onClick:()=>j(`/api/projects/${e}/boot`),disabled:v||O,testId:"boot-project"},n.sandbox_state==="ready"?"Sandbox running":O?"Booting\u2026":"Boot sandbox"),te&&Ve.default.createElement(ce,{onClick:()=>He(te.watch),testId:"project-watch-live"},te.label),Ve.default.createElement(ce,{variant:"primary",onClick:()=>M(),disabled:v||!_e,testId:"run-project-evaluation",title:_e?"Boots the sandbox first when it is not running":"Choose the agent to evaluate first"},"Run evaluation"))),g&&Ve.default.createElement(je,{testId:"local-boot-confirmation",style:{borderColor:"var(--color-warning)"}},Ve.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-primary)"}},g.question),Ve.default.createElement("div",{style:{display:"flex",gap:8,marginTop:10}},Ve.default.createElement(ce,{variant:"primary",onClick:()=>{let{retry:G}=g;h(null),G?.()},disabled:v},"Run it on this machine"),Ve.default.createElement(ce,{onClick:()=>h(null)},"Cancel"))),f&&Ve.default.createElement("div",{style:{padding:"10px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},f),Ve.default.createElement(qi,{options:[{value:"overview",label:"Overview"},{value:"explorations",label:"Explorations"},{value:"environment",label:`Environment (${lj(s).length})`},...R.length>0||u==="browser"?[{value:"browser",label:n.sandbox?.browser?.status==="running"?"Browser \xB7 live":"Browser"}]:[],{value:"sessions",label:"Sessions"}],value:u,onChange:Q}),u==="overview"&&Ve.default.createElement(Ve.default.Fragment,null,Ve.default.createElement(Q3,{boot:a?.boot,logTail:a?.log_tail,error:a?.error,sandboxState:n.sandbox_state,waiting:n.pending_input_requests}),Ve.default.createElement(dj,{projectId:e,setupAgentId:n.setup?.agent_id,version:`${n.pending_input_requests}:${n.setup?.last_run?.id}:${n.setup?.last_run?.status}`,onSettled:()=>N().catch(()=>{})}),Ve.default.createElement(fj,{project:n,busy:v,onAsk:()=>Y("POST"),onFixWithClaudeCode:()=>Y("POST",null,"setup/claude_code"),onToggleAuto:G=>Y("PATCH",{auto:G})}),Ve.default.createElement(je,null,Ve.default.createElement(Ue,null,"Agent under evaluation"),_e&&Ve.default.createElement("div",{style:{marginTop:8,display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},Ve.default.createElement("span",{style:{fontSize:14,fontWeight:600,color:"var(--color-text-primary)"}},_e.name),Ve.default.createElement(ke,{tone:"accent"},_e.kind==="app_assistant"?"App assistant":`synced agent ${_e.synced_agent}`),Ve.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/agents/${_e.id}/edit`)},"Open agent"),n.evaluation&&Ve.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/evaluations/${n.evaluation.id}`)},"Open evaluation"),n.install_state==="installed"&&Ve.default.createElement(ce,{size:"sm",onClick:z},"Change")),D&&!w&&Ve.default.createElement("div",{style:{marginTop:8,fontSize:13,color:"var(--color-text-secondary)"}},"This repository has its own agents. Boot the sandbox, then pick the one to evaluate.",Ve.default.createElement("div",{style:{marginTop:8}},Ve.default.createElement(ce,{size:"sm",onClick:z,disabled:n.sandbox_state!=="ready"},"List the checkout's agents"))),w&&Ve.default.createElement("ul",{style:{listStyle:"none",margin:"8px 0 0",padding:0},"data-testid":"synced-agents"},w.length===0&&Ve.default.createElement("li",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"The sandbox serves no agents."),w.map(G=>Ve.default.createElement("li",{key:G.slug,style:{display:"flex",gap:8,alignItems:"center",padding:"6px 0"}},Ve.default.createElement("span",{style:{fontFamily:U,fontSize:13}},G.tool),Ve.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",flex:1}},G.description),Ve.default.createElement(ce,{size:"sm",onClick:()=>V({synced_agent:G.slug}),disabled:v},"Evaluate this agent")))),S&&Ve.default.createElement("div",{"data-testid":"project-run",style:{marginTop:10,fontSize:13,color:"var(--color-text-secondary)"}},"Run ",S.id," is ",S.status,O?": it starts once the sandbox is ready":"","."," ",Ve.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/evaluations/${S.evaluation_id}/runs/${S.id}`)},"Open run"))),_e?.kind==="app_assistant"&&Ve.default.createElement(J3,{project:n,onSaved:G=>{G&&o(G),N().catch(()=>{})},onConfirmationRequired:W}),Ve.default.createElement(pj,{project:n,onProjectChanged:G=>o(E=>E&&G.install_state!==E.install_state?G:E),onConfirmationRequired:W}),Ve.default.createElement("div",null,Ve.default.createElement(ce,{variant:"danger",size:"sm",onClick:le},"Delete project"))),u==="explorations"&&Ve.default.createElement(cj,{projectId:e,project:n}),u==="browser"&&Ve.default.createElement(R3,{project:n,modes:R,watchOnOpen:d,onChange:()=>N().catch(()=>{})}),u==="sessions"&&Ve.default.createElement(V3,{project:n}),u==="environment"&&Ve.default.createElement(Ve.default.Fragment,null,Ve.default.createElement(ej,{secrets:lj(s),onReplace:oe,onDelete:Me,error:y}),A?Ve.default.createElement(je,null,Ve.default.createElement(Ue,null,"Add secrets"),Ve.default.createElement("div",{style:{marginTop:8}},Ve.default.createElement(cb,{rows:A,onChange:C,repository:n.repository})),Ve.default.createElement("div",{style:{display:"flex",gap:8,marginTop:12,alignItems:"center"}},Ve.default.createElement(ce,{variant:"primary",disabled:!!Uh(A)||lb(A).length===0,onClick:async()=>{await q(lb(A))&&C(null)}},"Save secrets"),Ve.default.createElement(ce,{onClick:()=>C(null)},"Cancel"),Uh(A)&&Ve.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},Uh(A)))):Ve.default.createElement("div",null,Ve.default.createElement(ce,{size:"sm",onClick:fe},"Add secrets"))))}var ma=Z(J());var nAe={ready:"success",booting:"info",failed:"error",expired:"muted",none:"muted"};function gj({projects:e,onOpen:t,onNew:r}){return ma.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"project-list"},ma.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16}},ma.default.createElement("div",{style:{flex:1}},ma.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Projects"),ma.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"A repository booted in a sandbox, with the secrets it needs and an agent evaluated against the running app.")),ma.default.createElement(ce,{variant:"primary",onClick:r,testId:"new-project-button"},"New project")),e.length===0&&ma.default.createElement(je,null,ma.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-secondary)"}},"No projects yet. Pick a repository to boot it in a sandbox, even one that does not use ActiveAgent.")),e.map(n=>ma.default.createElement(je,{key:n.id,padding:14,testId:`project-${n.id}`},ma.default.createElement("button",{type:"button",onClick:()=>t(n),style:{all:"unset",cursor:"pointer",display:"flex",gap:10,alignItems:"center",width:"100%",flexWrap:"wrap"}},ma.default.createElement("span",{style:{fontSize:15,fontWeight:600,color:"var(--color-text-primary)"}},n.name),ma.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-muted)"}},n.repository),ma.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:6}},ma.default.createElement(ke,{tone:nAe[n.sandbox_state]||"muted"},"sandbox ",n.sandbox_state),n.target_agent&&ma.default.createElement(ke,{tone:"accent"},n.target_agent.kind==="app_assistant"?"App assistant":n.target_agent.synced_agent))))))}function hj({visit:e=0}){let[t,r]=(0,ga.useState)(()=>ub(Rn())),[n,o]=(0,ga.useState)(null),[a,i]=(0,ga.useState)(null);(0,ga.useEffect)(()=>{r(ub(Rn()))},[e]),(0,ga.useEffect)(()=>{let u=()=>r(ub(Rn()));return window.addEventListener("popstate",u),window.addEventListener("dashboard:navigate",u),()=>{window.removeEventListener("popstate",u),window.removeEventListener("dashboard:navigate",u)}},[]);let s=(0,ga.useCallback)(async()=>{try{let u=await fetch("/api/projects"),c=await u.json().catch(()=>({}));if(!u.ok)throw new Error(at(c,`Could not list projects (HTTP ${u.status}).`));o(c.projects||[])}catch(u){i(u.message)}},[]);(0,ga.useEffect)(()=>{!t.creating&&!t.projectId&&s()},[t,s]);let l=u=>{id(u),r(ub(u))};return t.creating?ga.default.createElement(K3,{onCreated:u=>l(Sf(u.id)),onCancel:()=>l("/projects")}):t.projectId?ga.default.createElement(mj,{key:t.projectId,projectId:t.projectId,onBack:()=>l("/projects"),onDeleted:()=>l("/projects")}):a?ga.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},a):n?ga.default.createElement(gj,{projects:n,onOpen:u=>l(Sf(u.id)),onNew:()=>l(Sf(null))}):ga.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading projects\u2026")}var Yr=Z(J());function yj({visit:e=0}){let[t,r]=(0,Yr.useState)(()=>xA(Rn())),[n,o]=(0,Yr.useState)(null),[a,i]=(0,Yr.useState)(null),[s,l]=(0,Yr.useState)(null);(0,Yr.useEffect)(()=>{r(xA(Rn()))},[e]),(0,Yr.useEffect)(()=>{let c=()=>r(xA(Rn()));return window.addEventListener("popstate",c),window.addEventListener("dashboard:navigate",c),()=>{window.removeEventListener("popstate",c),window.removeEventListener("dashboard:navigate",c)}},[]);let u=(0,Yr.useCallback)(async()=>{try{let c=await fetch("/api/explorations"),d=await c.json().catch(()=>({}));if(!c.ok)throw new Error(at(d,`Could not list explorations (HTTP ${c.status}).`));o(d.explorations||[])}catch(c){l(c.message)}},[]);if((0,Yr.useEffect)(()=>{t.explorationId||u()},[t,u]),t.explorationId){let c=a?.project,d=a?.evaluation;return Yr.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12}},Yr.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},c?Yr.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(Sf(c.id)),style:{padding:0}},"\u2190 ",c.name):Yr.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt("/explorations"),style:{padding:0}},"\u2190 Explorations"),!c&&d&&Yr.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/evaluations/${d.id}`)},"Open ",d.name)),Yr.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Review candidate scenarios"),Yr.default.createElement(Ef,{key:t.explorationId,explorationId:t.explorationId,onLoaded:i}))}return Yr.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},Yr.default.createElement("div",null,Yr.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Explorations"),Yr.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"Questions found by walking an app, waiting to be reviewed and accepted into an evaluation.")),s&&Yr.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},s),!s&&!n&&Yr.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading explorations\u2026"),n?.length===0&&Yr.default.createElement(je,null,Yr.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-secondary)"}},"No explorations yet. An agent that explores a project's app submits what it found with the explorations_submit MCP tool.")),n?.length>0&&Yr.default.createElement(Cf,{explorations:n,onOpen:c=>lt(vA(c.id))}))}var xt=Z(J());var he=Z(J());var ri=Z(J());var vj=e=>({padding:"6px 8px",borderRadius:6,border:"1px solid var(--color-border)",background:"var(--color-surface)",color:"var(--color-text-primary)",fontSize:13,fontFamily:e?U:void 0}),Fee={display:"flex",flexDirection:"column",gap:4,fontSize:12,color:"var(--color-text-secondary)"},Uee=e=>typeof e=="string"?e:void 0;function Sn({label:e,value:t,onChange:r,placeholder:n,mono:o=!1,multiline:a=!1,rows:i=3,testId:s}){let l=(0,ri.useId)(),u={id:l,value:t,onChange:c=>r(c.target.value),placeholder:n,"aria-label":Uee(e),"data-testid":s};return ri.default.createElement("div",{style:Fee},ri.default.createElement("label",{htmlFor:l},e),a?ri.default.createElement("textarea",{...u,rows:i,style:{...vj(o),resize:"vertical"}}):ri.default.createElement("input",{...u,style:vj(o)}))}function bd({label:e,value:t,onChange:r,children:n,testId:o}){let a=(0,ri.useId)();return ri.default.createElement("div",{style:Fee},ri.default.createElement("label",{htmlFor:a},e),ri.default.createElement("select",{id:a,value:t,onChange:i=>r(i.target.value),"aria-label":Uee(e),style:vj(!1),"data-testid":o},n))}function pb({label:e,checked:t,onChange:r}){return ri.default.createElement("label",{style:{display:"inline-flex",gap:6,alignItems:"center",fontSize:12,color:"var(--color-text-secondary)"}},ri.default.createElement("input",{type:"checkbox",checked:t,onChange:n=>r(n.target.checked)}),e)}function ha({tone:e="info",children:t}){let r=e==="error";return ri.default.createElement("div",{role:r?"alert":"status",style:{fontSize:13,padding:"8px 10px",borderRadius:8,background:r?"var(--color-error-soft)":"transparent",color:r?"var(--color-error-text)":"var(--color-text-secondary)",border:r?"none":"1px solid var(--color-border)"}},t)}async function eo(e,{method:t="GET",body:r,fallback:n="The request failed"}={}){let o={method:t};r!==void 0&&(o.headers={"Content-Type":"application/json"},o.body=JSON.stringify(r));let a=await fetch(e,o),i=await a.json().catch(()=>({}));if(!a.ok)throw new Error(at(i,`${n} (HTTP ${a.status}).`));return i}async function Wee(e){let t=await fetch(e);if(!t.ok)throw new Error(`The export failed (HTTP ${t.status}).`);return t.text()}var oAe=["collections","generate","import"],aAe=/^\/(?:scenarios|catalogs)(?:\/(\d+|generate|import))?\/?$/;function xj(e=""){let r=String(e).match(aAe)?.[1];return r?/^\d+$/.test(r)?{tab:"collections",collectionId:Number(r)}:{tab:r,collectionId:null}:{tab:"collections",collectionId:null}}function Hee({tab:e="collections",collectionId:t=null}={}){return t?`/scenarios/${t}`:e==="collections"||!oAe.includes(e)?"/scenarios":`/scenarios/${e}`}function bj(e,{productIds:t=[],setIds:r=[],scenarioIds:n=[]}={},{inline:o=!1}={}){let a=new URLSearchParams;t.length&&a.set("product_ids",t.join(",")),r.length&&a.set("set_ids",r.join(",")),n.length&&a.set("scenario_ids",n.join(",")),o&&a.set("disposition","inline");let i=a.toString();return`/api/scenario_catalogs/${e}/export${i?`?${i}`:""}`}function wA(e){let t=String(e??"").split(/[,\n]/).map(r=>r.trim()).filter(Boolean);return[...new Set(t)]}function qee(e={}){let t=e.expectations||{};return{key:e.key||"",prompt:e.prompt||"",notes:e.notes||"",tools:(t.tools||[]).join(", "),contains:(t.contains||[]).join(", "),notContains:(t.not_contains||[]).join(", "),tags:(e.tags||[]).join(", "),productionOnly:!!e.production_only,enabled:e.enabled!==!1}}function Kee(e){return{scenario:{key:e.key.trim(),prompt:e.prompt.trim(),notes:e.notes.trim(),expect:{tools:wA(e.tools),contains:wA(e.contains),not_contains:wA(e.notContains)},tags:wA(e.tags),production_only:e.productionOnly,enabled:e.enabled}}}function Vee(e){return e.prompt.trim()?e.key.trim()&&!/^[^\s]+$/.test(e.key.trim())?"A key has no spaces.":null:"A scenario needs a prompt."}function Gee(e={}){let t=[];return e.tools?.length&&t.push(`tools ${e.tools.join(", ")}`),e.contains?.length&&t.push(`contains ${e.contains.join(", ")}`),e.not_contains?.length&&t.push(`never ${e.not_contains.join(", ")}`),t.join(" \xB7 ")}var iAe=["create","update","remove","keep"],sAe={create:"New",update:"Overwritten",remove:"Removed",keep:"Kept (not in the document)"};function Yee(e){let t=e?.changes||[];return iAe.map(r=>({action:r,label:sAe[r],changes:t.filter(n=>n.action===r)})).filter(r=>r.changes.length>0)}function Xee(e){if(!e)return"";let t=e.counts||{},r=e.catalog?.action==="create"?"Creates":"Updates",n=[`${t.create||0} new`,`${t.update||0} overwritten`,e.mode==="merge"?`${t.keep||0} kept`:`${t.remove||0} removed`];return`${r} ${e.catalog?.key}: ${n.join(", ")} (${e.scenario_count} scenarios in the document).`}function Zee(e=[]){return e.some(t=>(t.counts?.update||0)+(t.counts?.remove||0)>0)}function Jee(e,t){return e.includes(t)?e.filter(r=>r!==t):[...e,t]}function wj({collectionId:e,agents:t,projects:r,storageAvailable:n,onBack:o,onChanged:a,onDeleted:i}){let[s,l]=(0,he.useState)(null),[u,c]=(0,he.useState)(null),[d,p]=(0,he.useState)(null),[f,m]=(0,he.useState)({productIds:[],setIds:[],scenarioIds:[]}),[y,b]=(0,he.useState)(!1),[g,h]=(0,he.useState)(!1),v=`/api/scenario_catalogs/${e}`,x=(0,he.useCallback)(async()=>{try{let N=await eo(v,{fallback:"Could not open the collection"});l(N.catalog),c(null)}catch(N){c(N.message)}},[v]);(0,he.useEffect)(()=>{x()},[x]);let S=async(N,L,Q,B)=>{let K=await eo(`${v}${N}`,{method:L,body:Q,fallback:B});return K.catalog?l(K.catalog):await x(),a?.(),K},k=async N=>{c(null),p(null);try{await N()}catch(L){c(L.message)}},w=f.productIds.length+f.setIds.length+f.scenarioIds.length,_=(N,L)=>m(Q=>({...Q,[N]:Jee(Q[N],L)})),A=N=>k(async()=>{let L=await Wee(bj(e,N,{inline:!0})),Q=await ud(L);p(Q?"YAML copied.":"The browser refused the clipboard; use Download instead.")}),C=N=>window.open(bj(e,N),"_blank");return s?he.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12},"data-testid":"scenario-collection"},he.default.createElement("div",null,he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:o,style:{padding:0}},"\u2190 Scenarios")),y?he.default.createElement(lAe,{collection:s,onCancel:()=>b(!1),onSave:async N=>{await S("","PATCH",{catalog:N},"Could not save the collection"),b(!1)}}):he.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:12,flexWrap:"wrap",alignItems:"flex-start"}},he.default.createElement("div",null,he.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},s.name),he.default.createElement("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},he.default.createElement("code",null,s.key),s.source_path?` \xB7 ${s.source_path}`:"",s.description?` \xB7 ${s.description}`:""),he.default.createElement("p",{style:{margin:"4px 0 0",fontSize:12,color:"var(--color-text-secondary)"}},s.scenario_count," scenarios \xB7 digest ",s.digest?s.digest.slice(0,12):"\u2014"," \xB7"," ",s.synced?"synced to storage":n?"not synced to storage":"Active Storage is off for this dashboard")),he.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>b(!0)},"Rename"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>C({}),testId:"scenarios-export-all"},"Export all"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>A({})},"Copy YAML"),n&&he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>k(async()=>{await S("/sync","POST",{direction:"push"},"Sync failed"),p("Written to storage.")})},"Write to storage"),he.default.createElement(ce,{size:"sm",variant:"danger",onClick:()=>k(async()=>{await Wr({title:`Delete the collection ${s.key}?`,message:"Its products, sets and scenarios are deleted. The evaluations its sets became stay, with their runs.",confirmLabel:"Delete collection",danger:!0,requireText:s.key})&&(await eo(v,{method:"DELETE",fallback:"Delete failed"}),i?.())})},"Delete"))),u&&he.default.createElement(ha,{tone:"error"},u),d&&he.default.createElement(ha,null,d),w>0&&he.default.createElement(je,{padding:12,testId:"scenarios-selection-bar",style:{position:"sticky",top:8,zIndex:1}},he.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},he.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-primary)"}},w," selected"),he.default.createElement(ce,{size:"sm",onClick:()=>C(f),testId:"scenarios-export-selection"},"Download YAML"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>A(f)},"Copy YAML"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>m({productIds:[],setIds:[],scenarioIds:[]})},"Clear"),he.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"Import it back with \u201CKeep what the document leaves out\u201D to update only these."))),(s.products||[]).length===0&&!g&&he.default.createElement(je,{testId:"scenarios-collection-empty"},he.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)"}},"No products yet. A product is what its sets run against: an agent, or a project whose booted app the replays reach.")),(s.products||[]).map(N=>he.default.createElement(uAe,{key:N.id,product:N,collection:s,agents:t,projects:r,selection:f,onToggle:_,change:S,act:k,setNotice:p})),g?he.default.createElement(Ree,{agents:t,projects:r,onCancel:()=>h(!1),onSave:async N=>{await S("/products","POST",{product:N},"Could not add the product"),h(!1)}}):he.default.createElement("div",null,he.default.createElement(ce,{size:"sm",onClick:()=>h(!0),testId:"scenarios-add-product"},"Add product"))):u?he.default.createElement(ha,{tone:"error"},u):he.default.createElement("p",{style:{color:"var(--color-text-secondary)"}},"Loading the collection\u2026")}function lAe({collection:e,onSave:t,onCancel:r}){let[n,o]=(0,he.useState)(e.name||""),[a,i]=(0,he.useState)(e.description||"");return he.default.createElement(SA,{onSave:()=>t({name:n.trim(),description:a.trim()}),onCancel:r},he.default.createElement(Sn,{label:"Name",value:n,onChange:o}),he.default.createElement(Sn,{label:"Description",value:a,onChange:i}))}function uAe({product:e,collection:t,agents:r,projects:n,selection:o,onToggle:a,change:i,act:s,setNotice:l}){let[u,c]=(0,he.useState)(!1),[d,p]=(0,he.useState)(!1),f=`/products/${e.id}`;return he.default.createElement(je,{testId:"scenarios-product"},u?he.default.createElement(Ree,{product:e,agents:r,projects:n,onCancel:()=>c(!1),onSave:async m=>{await i(f,"PATCH",{product:m},"Could not save the product"),c(!1)}}):he.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},he.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"flex-start"}},he.default.createElement("input",{type:"checkbox","aria-label":`Select product ${e.key}`,checked:o.productIds.includes(e.id),onChange:()=>a("productIds",e.id),style:{marginTop:4}}),he.default.createElement("div",null,he.default.createElement("div",{style:{fontWeight:600,color:"var(--color-text-primary)"}},e.name),he.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},he.default.createElement("code",null,e.key),e.agent?` \xB7 agent ${e.agent.name}`:e.agent_name?` \xB7 agent ${e.agent_name} (not on this dashboard)`:" \xB7 no agent chosen",e.project?` \xB7 project ${e.project.name}`:""),e.description&&he.default.createElement("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},e.description))),he.default.createElement("div",{style:{display:"flex",gap:6,alignItems:"center",flexWrap:"wrap"}},he.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},e.set_count," sets \xB7 ",e.scenario_count," scenarios"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>c(!0)},"Edit"),he.default.createElement(ce,{size:"sm",variant:"danger",onClick:()=>s(async()=>{await Wr({title:`Delete product ${e.key}?`,message:`Its ${e.set_count} sets and their scenarios are deleted.`,confirmLabel:"Delete product",danger:!0})&&await i(f,"DELETE",void 0,"Could not delete the product")})},"Delete"))),he.default.createElement("div",{style:{display:"grid",gap:8,marginTop:12}},(e.sets||[]).map(m=>he.default.createElement(cAe,{key:m.id,set:m,product:e,collection:t,agents:r,projects:n,selection:o,onToggle:a,change:i,act:s,setNotice:l})),d?he.default.createElement(ete,{onCancel:()=>p(!1),onSave:async m=>{await i(`${f}/sets`,"POST",{set:m},"Could not add the set"),p(!1)}}):he.default.createElement("div",null,he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>p(!0)},"Add set"))))}function cAe({set:e,product:t,collection:r,agents:n,projects:o,selection:a,onToggle:i,change:s,act:l,setNotice:u}){let[c,d]=(0,he.useState)((e.scenarios||[]).length<=5),[p,f]=(0,he.useState)(!1),[m,y]=(0,he.useState)(null),b=t.project?`project:${t.project.id}`:t.agent?`agent:${t.agent.id}`:"",[g,h]=(0,he.useState)(b),v=`/sets/${e.id}`,x=()=>l(async()=>{let[S,k]=g.split(":"),w=S==="project"?{project_id:Number(k)}:S==="agent"?{agent_id:Number(k)}:{},_=await eo(`/api/scenario_catalogs/${r.id}${v}/run`,{method:"POST",body:w,fallback:"The run could not start"});u(`Run #${_.run.id} of ${e.name} started; it shows under Evaluations as ${_.evaluation.name}.`)});return he.default.createElement("div",{style:{border:"1px solid var(--color-border)",borderRadius:8,padding:10},"data-testid":"scenarios-set"},p?he.default.createElement(ete,{set:e,onCancel:()=>f(!1),onSave:async S=>{await s(v,"PATCH",{set:S},"Could not save the set"),f(!1)}}):he.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:10,flexWrap:"wrap",alignItems:"center"}},he.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},he.default.createElement("input",{type:"checkbox","aria-label":`Select set ${e.key}`,checked:a.setIds.includes(e.id),onChange:()=>i("setIds",e.id)}),he.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},e.name),he.default.createElement("code",{style:{fontSize:12,color:"var(--color-text-secondary)"}},e.key),he.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"\xB7 ",e.scenario_count," scenarios"),e.judge?.kind&&he.default.createElement(ke,null,`judge ${e.judge.kind}`),e.evaluation&&he.default.createElement("a",{href:"#",style:{fontSize:12},onClick:S=>{S.preventDefault(),lt(`/evaluations/${e.evaluation.id}`)}},"evaluation",e.latest_run?` (latest run ${e.latest_run.status})`:"")),he.default.createElement("div",{style:{display:"flex",gap:6,alignItems:"center",flexWrap:"wrap"}},he.default.createElement("select",{value:g,onChange:S=>h(S.target.value),style:{fontSize:12,padding:4,borderRadius:6,border:"1px solid var(--color-border)",background:"var(--color-surface)",color:"var(--color-text-primary)"}},he.default.createElement("option",{value:""},"Run against\u2026"),o.length>0&&he.default.createElement("optgroup",{label:"Projects (booted app and browser)"},o.map(S=>he.default.createElement("option",{key:`project-${S.id}`,value:`project:${S.id}`},S.name))),n.length>0&&he.default.createElement("optgroup",{label:"Agents"},n.map(S=>he.default.createElement("option",{key:`agent-${S.id}`,value:`agent:${S.id}`},S.name)))),he.default.createElement(ce,{size:"sm",onClick:x,disabled:!g&&!t.agent&&!t.project||e.scenario_count===0},"Run set"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>d(S=>!S)},c?"Hide":"Scenarios"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>f(!0)},"Edit"),he.default.createElement(ce,{size:"sm",variant:"danger",onClick:()=>l(async()=>{await Wr({title:`Delete set ${e.key}?`,message:`Its ${e.scenario_count} scenarios are deleted. Its evaluation stays.`,confirmLabel:"Delete set",danger:!0})&&await s(v,"DELETE",void 0,"Could not delete the set")})},"Delete"))),c&&he.default.createElement("ul",{style:{listStyle:"none",margin:"10px 0 0",padding:0,display:"grid",gap:6}},(e.scenarios||[]).map(S=>m===S.id?he.default.createElement("li",{key:S.id},he.default.createElement(Qee,{scenario:S,onCancel:()=>y(null),onSave:async k=>{await s(`${v}/scenarios/${S.id}`,"PATCH",k,"Could not save the scenario"),y(null)}})):he.default.createElement(dAe,{key:S.id,scenario:S,selected:a.scenarioIds.includes(S.id),onToggle:()=>i("scenarioIds",S.id),onEdit:()=>y(S.id),onDelete:()=>l(async()=>{await Wr({title:`Delete scenario ${S.key}?`,confirmLabel:"Delete scenario",danger:!0})&&await s(`${v}/scenarios/${S.id}`,"DELETE",void 0,"Could not delete the scenario")})})),he.default.createElement("li",null,m==="new"?he.default.createElement(Qee,{onCancel:()=>y(null),onSave:async S=>{await s(`${v}/scenarios`,"POST",S,"Could not add the scenario"),y(null)}}):he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>{d(!0),y("new")},testId:"scenarios-add-scenario"},"Add scenario"))))}function dAe({scenario:e,selected:t,onToggle:r,onEdit:n,onDelete:o}){let a=Gee(e.expectations);return he.default.createElement("li",{style:{display:"flex",gap:8,alignItems:"flex-start",padding:"6px 8px",borderRadius:6,background:"var(--color-surface)"},"data-testid":"scenarios-scenario"},he.default.createElement("input",{type:"checkbox","aria-label":`Select scenario ${e.key}`,checked:t,onChange:r,style:{marginTop:3}}),he.default.createElement("div",{style:{flex:1,minWidth:0}},he.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-primary)",opacity:e.enabled?1:.6}},he.default.createElement("code",{style:{fontSize:11,color:"var(--color-text-secondary)"}},e.key)," ",e.prompt),(e.notes||a)&&he.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)",marginTop:2}},e.notes,e.notes&&a?" \xB7 ":"",a&&he.default.createElement("span",{style:{fontFamily:U}},a)),he.default.createElement("div",{style:{display:"flex",gap:4,marginTop:2,flexWrap:"wrap"}},(e.tags||[]).map(i=>he.default.createElement(ke,{key:i},i)),e.production_only&&he.default.createElement(ke,{tone:"warning"},"production only"),!e.enabled&&he.default.createElement(ke,null,"disabled"))),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:n},"Edit"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:o},"Delete"))}function SA({children:e,onSave:t,onCancel:r,problem:n=null,testId:o}){let[a,i]=(0,he.useState)(!1),[s,l]=(0,he.useState)(null);return he.default.createElement("form",{onSubmit:async c=>{if(c.preventDefault(),n){l(n);return}i(!0),l(null);try{await t()}catch(d){l(d.message)}finally{i(!1)}},style:{display:"flex",flexDirection:"column",gap:8,padding:10,border:"1px dashed var(--color-border)",borderRadius:8},"data-testid":o},e,s&&he.default.createElement(ha,{tone:"error"},s),he.default.createElement("div",{style:{display:"flex",gap:8}},he.default.createElement(ce,{type:"submit",size:"sm",variant:"primary",disabled:a},a?"Saving\u2026":"Save"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:r},"Cancel")))}function Ree({product:e=null,agents:t,projects:r,onSave:n,onCancel:o}){let[a,i]=(0,he.useState)(e?.name||""),[s,l]=(0,he.useState)(e?.key||""),[u,c]=(0,he.useState)(e?.description||""),[d,p]=(0,he.useState)(e?.agent?String(e.agent.id):""),[f,m]=(0,he.useState)(e?.project?String(e.project.id):"");return he.default.createElement(SA,{onCancel:o,onSave:()=>n({name:a.trim(),key:s.trim(),description:u.trim(),agent_id:d,project_id:f}),testId:"scenarios-product-form"},he.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},he.default.createElement(Sn,{label:"Name",value:a,onChange:i,placeholder:"Triage"}),he.default.createElement(Sn,{label:"Key",value:s,onChange:l,placeholder:"made from the name when empty",mono:!0}),he.default.createElement(bd,{label:"Agent",value:d,onChange:p},he.default.createElement("option",{value:""},"None"),t.map(y=>he.default.createElement("option",{key:y.id,value:y.id},y.name))),he.default.createElement(bd,{label:"Project",value:f,onChange:m},he.default.createElement("option",{value:""},"None"),r.map(y=>he.default.createElement("option",{key:y.id,value:y.id},y.name)))),he.default.createElement(Sn,{label:"Description",value:u,onChange:c,placeholder:"optional"}))}function ete({set:e=null,onSave:t,onCancel:r}){let[n,o]=(0,he.useState)(e?.name||""),[a,i]=(0,he.useState)(e?.key||""),[s,l]=(0,he.useState)(e?.description||""),[u,c]=(0,he.useState)(e?.judge?.kind||"");return he.default.createElement(SA,{onCancel:r,onSave:()=>t({name:n.trim(),key:a.trim(),description:s.trim(),...u?{judge:{kind:u}}:{}}),testId:"scenarios-set-form"},he.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},he.default.createElement(Sn,{label:"Name",value:n,onChange:o,placeholder:"Smoke"}),he.default.createElement(Sn,{label:"Key",value:a,onChange:i,placeholder:"made from the name when empty",mono:!0}),he.default.createElement(bd,{label:"Judge",value:u,onChange:c},he.default.createElement("option",{value:""},"The evaluation's default"),he.default.createElement("option",{value:"rules"},"Rules (expectations only)"),he.default.createElement("option",{value:"llm"},"LLM judge (grades against the notes)"))),he.default.createElement(Sn,{label:"Description",value:s,onChange:l,placeholder:"optional"}))}function Qee({scenario:e=null,onSave:t,onCancel:r}){let[n,o]=(0,he.useState)(()=>qee(e||{})),a=i=>s=>o(l=>({...l,[i]:s}));return he.default.createElement(SA,{onCancel:r,onSave:()=>t(Kee(n)),problem:Vee(n),testId:"scenarios-scenario-form"},he.default.createElement(Sn,{label:"Prompt: what a user asks the agent",value:n.prompt,onChange:a("prompt"),multiline:!0,testId:"scenario-prompt"}),he.default.createElement(Sn,{label:"Notes: the rubric, what a good answer does",value:n.notes,onChange:a("notes"),multiline:!0,rows:2}),he.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},he.default.createElement(Sn,{label:"Expected tools",value:n.tools,onChange:a("tools"),placeholder:"lookup_order, refund_order",mono:!0}),he.default.createElement(Sn,{label:"Answer contains",value:n.contains,onChange:a("contains"),placeholder:"comma-separated"}),he.default.createElement(Sn,{label:"Answer never contains",value:n.notContains,onChange:a("notContains"),placeholder:"comma-separated"}),he.default.createElement(Sn,{label:"Tags",value:n.tags,onChange:a("tags"),placeholder:"billing, regression"}),he.default.createElement(Sn,{label:"Key",value:n.key,onChange:a("key"),placeholder:"made from the prompt when empty",mono:!0})),he.default.createElement("div",{style:{display:"flex",gap:16}},he.default.createElement(pb,{label:"Enabled",checked:n.enabled,onChange:a("enabled")}),he.default.createElement(pb,{label:"Production only",checked:n.productionOnly,onChange:a("productionOnly")})))}var Et=Z(J());function Sj({projects:e,collections:t,onAccepted:r}){let[n,o]=(0,Et.useState)(""),[a,i]=(0,Et.useState)(null),[s,l]=(0,Et.useState)(null),[u,c]=(0,Et.useState)({sandbox:null,modes:[]}),[d,p]=(0,Et.useState)([]),[f,m]=(0,Et.useState)(null),[y,b]=(0,Et.useState)({collectionId:"",setId:""}),[g,h]=(0,Et.useState)(null),[v,x]=(0,Et.useState)(null),S=(0,Et.useCallback)(async()=>{if(n)try{let[N,L,Q,B]=await Promise.all([eo(`/api/projects/${n}`,{fallback:"Could not load the project"}),eo("/api/projects/capabilities").catch(()=>({})),eo("/api/sandboxes").catch(()=>({})),eo(`/api/explorations?project_id=${n}`,{fallback:"Could not list the project's explorations"})]),K=N.project;i(K),l((L.items||[]).find(O=>O.key==="model_credentials")||null);let T=K?.sandbox?.session_id;c({sandbox:(Q.sandboxes||[]).find(O=>O.session_id===T)||null,modes:Q.browser_modes||[]}),p(B.explorations||[]),x(null)}catch(N){x(N.message)}},[n]);(0,Et.useEffect)(()=>{i(null),m(null),S()},[S]),(0,Et.useEffect)(()=>{if(!y.collectionId){h(null);return}eo(`/api/scenario_catalogs/${y.collectionId}`).then(N=>h(N.catalog)).catch(N=>x(N.message))},[y.collectionId]);let k=(g?.products||[]).flatMap(N=>(N.sets||[]).map(L=>({...L,product:N}))),w=k.find(N=>String(N.id)===String(y.setId)),_=async()=>{try{let L=(await eo("/api/scenario_catalogs",{method:"POST",body:{catalog:{name:a.name}},fallback:"Could not create the collection"})).catalogs[0].id,Q=await eo(`/api/scenario_catalogs/${L}/products`,{method:"POST",body:{product:{name:a.name,project_id:a.id}},fallback:"Could not add the product"}),B=await eo(`/api/scenario_catalogs/${L}/products/${Q.product.id}/sets`,{method:"POST",body:{set:{name:"Explored",key:"explored",judge:{kind:"llm"}}},fallback:"Could not add the set"});r?.(),b({collectionId:String(L),setId:String(B.set.id)})}catch(N){x(N.message)}},A=a?.sandbox_state==="ready",C=f||d[0]?.id;return Et.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12},"data-testid":"scenarios-generator"},Et.default.createElement(je,null,Et.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},Et.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"Pick a project. The explorer walks its running app in the sandbox's browser and proposes scenarios, which you edit and accept into a set below. Nothing is added until you accept it."),Et.default.createElement(bd,{label:"Project",value:n,onChange:o,testId:"scenarios-generator-project"},Et.default.createElement("option",{value:""},"Choose a project\u2026"),e.map(N=>Et.default.createElement("option",{key:N.id,value:N.id},N.name))),e.length===0&&Et.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"No projects yet. ",Et.default.createElement("a",{href:"#",onClick:N=>{N.preventDefault(),lt("/projects/new")}},"Create one")," from a repository first."))),v&&Et.default.createElement(ha,{tone:"error"},v),a&&Et.default.createElement(Et.default.Fragment,null,s&&!s.ok&&Et.default.createElement(ha,{tone:"error"},"The explorer runs on a model: ",s.detail||"no provider has credentials","."," ",Et.default.createElement("a",{href:"#",onClick:N=>{N.preventDefault(),lt("/settings?tab=api-keys")}},"Add a provider key"),", then start it."),!A&&Et.default.createElement(ha,null,a.name,"'s sandbox is ",a.sandbox_state||"not booted",". The explorer walks the app the sandbox serves:"," ",Et.default.createElement("a",{href:"#",onClick:N=>{N.preventDefault(),lt(`/projects/${a.id}`)}},"boot it on the project's page"),"."),Et.default.createElement(db,{projectId:a.id,sandboxReady:A,onStarted:N=>{m(N.id),S()}}),A&&u.sandbox&&u.modes.length>0&&Et.default.createElement(Zr,{title:"The sandbox's browser",meta:"watch the explorer walk the app",bodyStyle:{padding:12}},Et.default.createElement(kf,{sandbox:u.sandbox,modes:u.modes})),Et.default.createElement(Zr,{title:"Accept into",testId:"scenarios-generator-destination",bodyStyle:{padding:12,display:"flex",flexDirection:"column",gap:8}},Et.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))"}},Et.default.createElement(bd,{label:"Collection",value:y.collectionId,onChange:N=>b({collectionId:N,setId:""})},Et.default.createElement("option",{value:""},"Choose a collection\u2026"),t.map(N=>Et.default.createElement("option",{key:N.id,value:N.id},N.name))),Et.default.createElement(bd,{label:"Set",value:y.setId,onChange:N=>b(L=>({...L,setId:N}))},Et.default.createElement("option",{value:""},g&&k.length===0?"The collection has no sets yet":"Choose a set\u2026"),k.map(N=>Et.default.createElement("option",{key:N.id,value:N.id},N.product.name," / ",N.name)))),Et.default.createElement("div",null,Et.default.createElement(ce,{size:"sm",variant:"ghost",onClick:_},"New collection for ",a.name))),d.length===0?Et.default.createElement(je,null,Et.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"No explorations of ",a.name," yet. Start the explorer above, or have a coding agent driving a browser submit what it found with the explorations_submit MCP tool.")):Et.default.createElement(Et.default.Fragment,null,Et.default.createElement(Cf,{explorations:d,selectedId:C,onOpen:N=>m(N.id)}),!w&&Et.default.createElement(ha,null,"Choose the set to accept into, above."),Et.default.createElement(Ef,{key:`${C}-${w?.id||"none"}`,explorationId:C,requireScenarioSet:!0,scenarioSet:w?{id:w.id,label:`${w.product.name} / ${w.name}`}:null,onAccepted:()=>r?.()}))))}var Kt=Z(J());var pAe=[{value:"document",label:"Paste YAML"},{value:"file",label:"Upload a file"},{value:"repository",label:"From a repository"}],fAe=`catalog: support_desk products: - key: triage agent: TriageAgent @@ -101,7 +101,7 @@ products: - key: refund prompt: A customer asks for a refund. notes: Looks the order up before answering. - expect: { tools: [lookup_order] }`,cAe={create:"success",update:"warning",remove:"error",keep:"muted"};function Sj({onImported:e}){let[t,r]=(0,Kt.useState)("document"),[n,o]=(0,Kt.useState)(""),[a,i]=(0,Kt.useState)(""),[s,l]=(0,Kt.useState)(""),[u,c]=(0,Kt.useState)(""),[d,p]=(0,Kt.useState)(".activeagents/evals"),[f,m]=(0,Kt.useState)(!0),[y,b]=(0,Kt.useState)(null),[g,h]=(0,Kt.useState)(!1),[v,x]=(0,Kt.useState)(null),S=()=>{let $=f?"merge":"replace";return t==="repository"?{repository:s.trim(),ref:u.trim()||void 0,path:d.trim()||void 0,mode:$}:{document:n,mode:$,...a?{source_path:a}:{}}},_=t==="repository"?!!s.trim():!!n.trim(),w=$=>Q=>{$(Q),b(null)},k=async $=>{h(!0),x(null);try{await $()}catch(Q){x(Q.message)}finally{h(!1)}},A=()=>k(async()=>{let $=await Rn("/api/scenario_catalogs/preview",{method:"POST",body:S(),fallback:"The preview failed"});b($.previews||[])}),C=()=>k(async()=>{let $=await Rn("/api/scenario_catalogs",{method:"POST",body:S(),fallback:"Import refused"});b(null),o(""),i(""),e?.($.catalogs||[])}),T=$=>{if(!$)return;let Q=new FileReader;Q.onload=()=>{i($.name),w(o)(String(Q.result||""))},Q.onerror=()=>x(`Could not read ${$.name}.`),Q.readAsText($)};return Kt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12},"data-testid":"scenarios-import"},Kt.default.createElement(Le,null,Kt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},Kt.default.createElement(ps,{options:lAe,value:t,onChange:$=>{r($),b(null)}}),t==="document"&&Kt.default.createElement(Sn,{label:"YAML",value:n,onChange:w(o),placeholder:uAe,mono:!0,multiline:!0,rows:12,testId:"scenarios-import-yaml"}),t==="file"&&Kt.default.createElement("label",{style:{display:"flex",flexDirection:"column",gap:6,fontSize:12,color:"var(--color-text-secondary)"}},"A .yml or .yaml file, such as one exported from this page",Kt.default.createElement("input",{type:"file",accept:".yml,.yaml,application/x-yaml,text/yaml",onChange:$=>T($.target.files?.[0])}),a&&Kt.default.createElement("span",{style:{fontFamily:U}},a," \xB7 ",n.length," characters")),t==="repository"&&Kt.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},Kt.default.createElement(Sn,{label:"Repository",value:s,onChange:w(l),placeholder:"owner/name",mono:!0}),Kt.default.createElement(Sn,{label:"Ref",value:u,onChange:w(c),placeholder:"the default branch when empty",mono:!0}),Kt.default.createElement(Sn,{label:"Path",value:d,onChange:w(p),placeholder:".activeagents/evals or one .yml file",mono:!0})),Kt.default.createElement(db,{label:"Keep what the document leaves out (merge). Off: the document replaces the collection.",checked:f,onChange:w(m)}),Kt.default.createElement("div",{style:{display:"flex",gap:8}},Kt.default.createElement(de,{onClick:A,disabled:g||!_,testId:"scenarios-import-preview"},g&&!y?"Reading\u2026":"Preview"),Kt.default.createElement(de,{variant:"primary",onClick:C,disabled:g||!y||y.length===0,testId:"scenarios-import-apply"},Yee(y||[])?"Apply, overwriting":"Apply")))),v&&Kt.default.createElement(ha,{tone:"error"},v),y&&y.map($=>Kt.default.createElement(dAe,{key:`${$.catalog?.key}-${$.source_path||""}`,preview:$})))}function dAe({preview:e}){let t=Vee(e);return Kt.default.createElement(Le,{testId:"scenarios-import-preview-result"},Kt.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},Kt.default.createElement(_e,{tone:e.catalog?.action==="create"?"success":"info"},e.catalog?.action==="create"?"new collection":"existing collection"),Kt.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-primary)"}},Gee(e))),e.source_path&&Kt.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)",fontFamily:U,marginTop:4}},e.source_path),t.length===0?Kt.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},"Nothing changes: the collection already holds this document."):Kt.default.createElement("div",{style:{display:"grid",gap:8,marginTop:10}},t.map(r=>Kt.default.createElement("div",{key:r.action},Kt.default.createElement("div",{style:{display:"flex",gap:6,alignItems:"center"}},Kt.default.createElement(_e,{tone:cAe[r.action]},r.label),Kt.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},r.changes.length)),Kt.default.createElement("ul",{style:{margin:"4px 0 0",paddingLeft:18,fontSize:12,fontFamily:U,color:"var(--color-text-secondary)"}},r.changes.slice(0,50).map(n=>Kt.default.createElement("li",{key:`${n.level}-${n.path}`},n.level," ",n.path)),r.changes.length>50&&Kt.default.createElement("li",null,"and ",r.changes.length-50," more"))))))}var pAe=[{value:"collections",label:"Collections"},{value:"generate",label:"Generate"},{value:"import",label:"Import"}];function kj({visit:e=0}){let[t,r]=(0,xt.useState)(()=>vj(Qn())),[n,o]=(0,xt.useState)(null),[a,i]=(0,xt.useState)(!1),[s,l]=(0,xt.useState)({agents:[],projects:[]}),[u,c]=(0,xt.useState)(null),[d,p]=(0,xt.useState)(null),[f,m]=(0,xt.useState)(!1);(0,xt.useEffect)(()=>{let v=()=>r(vj(Qn()));return window.addEventListener("popstate",v),window.addEventListener("dashboard:navigate",v),()=>{window.removeEventListener("popstate",v),window.removeEventListener("dashboard:navigate",v)}},[]);let y=(0,xt.useCallback)(async()=>{try{let v=await Rn("/api/scenario_catalogs",{fallback:"Could not list the collections"});o(v.catalogs||[]),i(v.storage_available===!0),c(null)}catch(v){c(v.message)}},[]),b=(0,xt.useCallback)(async()=>{try{let[v,x]=await Promise.all([Rn("/api/agents").catch(()=>({})),Rn("/api/projects").catch(()=>({}))]);l({agents:(v.agents||[]).filter(S=>!S.observed),projects:x.projects||[]})}catch{}},[]);(0,xt.useEffect)(()=>{y(),b()},[y,b,e]);let g=v=>{p(null),c(null),lt(Uee(v))},h=async v=>{let x=await Rn("/api/scenario_catalogs",{method:"POST",body:{catalog:v},fallback:"Could not create the collection"});m(!1),await y(),g({collectionId:x.catalogs?.[0]?.id})};return t.collectionId?xt.default.createElement(bj,{key:t.collectionId,collectionId:t.collectionId,agents:s.agents,projects:s.projects,storageAvailable:a,onBack:()=>g({}),onChanged:y,onDeleted:async()=>{await y(),g({})}}):xt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"scenarios-view"},xt.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},xt.default.createElement("div",null,xt.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Scenarios"),xt.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"What your agents are evaluated on, by product and set. Write them here, generate them by exploring a project's app, or import and export them as YAML.")),t.tab==="collections"&&xt.default.createElement(de,{variant:"primary",onClick:()=>m(v=>!v),testId:"scenarios-new-collection"},f?"Close":"New collection")),xt.default.createElement(ps,{options:pAe,value:t.tab,onChange:v=>g({tab:v})}),u&&xt.default.createElement(ha,{tone:"error"},u),d&&xt.default.createElement(ha,null,d),t.tab==="generate"&&xt.default.createElement(wj,{projects:s.projects,collections:n||[],onAccepted:y}),t.tab==="import"&&xt.default.createElement(Sj,{onImported:async v=>{await y(),v.length===1?g({collectionId:v[0].id}):p(`Imported ${v.map(x=>x.key).join(", ")||"nothing"}.`)}}),t.tab==="collections"&&xt.default.createElement(xt.default.Fragment,null,f&&xt.default.createElement(fAe,{onCreate:h}),n===null?xt.default.createElement("p",{style:{color:"var(--color-text-secondary)"}},"Loading\u2026"):n.length===0?xt.default.createElement(Le,{testId:"scenarios-empty"},xt.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)"}},"No scenarios yet. Start a new collection, generate scenarios by exploring a project's app, or import YAML, such as the"," ",xt.default.createElement("code",null,".activeagents/evals")," directory of a connected repository.")):xt.default.createElement("div",{style:{display:"grid",gap:12}},n.map(v=>xt.default.createElement(Le,{key:v.id,style:{cursor:"pointer"},onClick:()=>g({collectionId:v.id}),testId:"scenarios-collection-card"},xt.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},xt.default.createElement("div",null,xt.default.createElement("div",{style:{fontWeight:600,color:"var(--color-text-primary)"}},v.name),xt.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},xt.default.createElement("code",null,v.key),v.source_path?` \xB7 ${v.source_path}`:v.source_kind==="api"?" \xB7 written here":` \xB7 ${v.source_kind}`)),xt.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)",textAlign:"right"}},v.product_count," ",v.product_count===1?"product":"products"," \xB7 ",v.scenario_count," scenarios",xt.default.createElement("div",null,v.synced?"synced to storage":a?"not synced":"database only"))))))))}function fAe({onCreate:e}){let[t,r]=(0,xt.useState)(""),[n,o]=(0,xt.useState)(""),[a,i]=(0,xt.useState)(""),[s,l]=(0,xt.useState)(!1),[u,c]=(0,xt.useState)(null);return xt.default.createElement(Le,{testId:"scenarios-new-collection-form"},xt.default.createElement("form",{onSubmit:async p=>{p.preventDefault(),l(!0),c(null);try{await e({name:t.trim(),key:n.trim(),description:a.trim()})}catch(f){c(f.message)}finally{l(!1)}},style:{display:"flex",flexDirection:"column",gap:10}},xt.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))"}},xt.default.createElement(Sn,{label:"Name",value:t,onChange:r,placeholder:"Support desk"}),xt.default.createElement(Sn,{label:"Key",value:n,onChange:o,placeholder:"made from the name when empty",mono:!0})),xt.default.createElement(Sn,{label:"Description",value:a,onChange:i,placeholder:"optional"}),u&&xt.default.createElement(ha,{tone:"error"},u),xt.default.createElement("div",null,xt.default.createElement(de,{type:"submit",variant:"primary",disabled:s||!t.trim()&&!n.trim()},s?"Creating\u2026":"Create collection"))))}var dn=Z(J());var mAe='button:not([disabled]), input:not([disabled]), [href], [tabindex]:not([tabindex="-1"])';function gAe({request:e,onSettle:t}){let[r,n]=(0,dn.useState)(""),o=(0,dn.useRef)(null),a=(0,dn.useRef)(null),i=(0,dn.useId)(),s=(0,dn.useId)(),l=dQ(e,r);(0,dn.useEffect)(()=>{let p=document.activeElement;return e.requireText?a.current?.focus():o.current?.querySelector('[data-testid="confirm-cancel"]')?.focus(),()=>p?.focus?.()},[e]);let u=()=>{l&&t(!0)},c=p=>{if(p.key==="Escape"){p.preventDefault(),t(!1);return}if(p.key!=="Tab")return;let f=[...o.current?.querySelectorAll(mAe)||[]];if(f.length===0)return;let m=f[0],y=f[f.length-1];p.shiftKey&&document.activeElement===m?(p.preventDefault(),y.focus()):!p.shiftKey&&document.activeElement===y&&(p.preventDefault(),m.focus())},d=e.danger?{background:"var(--color-error)",color:"#fff"}:void 0;return dn.default.createElement("div",{"data-testid":"confirm-overlay",onMouseDown:p=>{p.target===p.currentTarget&&t(!1)},style:{position:"fixed",inset:0,zIndex:70,padding:16,background:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center"}},dn.default.createElement("div",{ref:o,role:"alertdialog","aria-modal":"true","aria-labelledby":i,"aria-describedby":s,"data-testid":"confirm-dialog",onKeyDown:c,style:{width:"100%",maxWidth:440,padding:20,borderRadius:12,background:"var(--color-surface)",border:"1px solid var(--color-border)",color:"var(--color-text-primary)",boxShadow:"0 20px 40px rgba(0, 0, 0, 0.25)"}},dn.default.createElement("h2",{id:i,style:{margin:0,fontSize:16,fontWeight:600}},e.title),dn.default.createElement("div",{id:s},e.message&&dn.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,lineHeight:1.5,color:"var(--color-text-secondary)"}},e.message),e.requireText&&dn.default.createElement("label",{style:{display:"block",marginTop:14,fontSize:13,color:"var(--color-text-secondary)"}},"Type ",dn.default.createElement("code",{style:{fontFamily:"var(--font-mono)",color:"var(--color-text-primary)",fontWeight:600}},e.requireText)," to confirm.",dn.default.createElement("input",{ref:a,type:"text",value:r,autoComplete:"off",spellCheck:!1,"data-testid":"confirm-input","aria-label":`Type ${e.requireText} to confirm`,onChange:p=>n(p.target.value),onKeyDown:p=>{p.key==="Enter"&&(p.preventDefault(),u())},style:{display:"block",width:"100%",marginTop:6,padding:"8px 10px",borderRadius:8,boxSizing:"border-box",fontFamily:"var(--font-mono)",fontSize:13,color:"var(--color-text-primary)",background:"var(--color-background-page)",border:"1px solid var(--color-border-strong)"}}))),dn.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:18}},dn.default.createElement(de,{testId:"confirm-cancel",onClick:()=>t(!1)},e.cancelLabel),dn.default.createElement(de,{testId:"confirm-confirm",variant:"primary",onClick:u,disabled:!l,style:d},e.confirmLabel))))}function Ree(){let[e,t]=(0,dn.useState)(uQ());return(0,dn.useEffect)(()=>cQ(t),[]),e?dn.default.createElement(gAe,{key:yAe(e),request:e,onSettle:lQ}):null}var _j=new WeakMap,hAe=0;function yAe(e){return _j.has(e)||_j.set(e,++hAe),_j.get(e)}function vAe({user:e,initialAgents:t=[],meta:r={},account:n=null,subscription:o=null}){let{darkMode:a}=ut(),[i,s]=(0,Nt.useState)(t),[l,u]=(0,Nt.useState)("list"),[c,d]=(0,Nt.useState)(null),[p,f]=(0,Nt.useState)(!1),[m,y]=(0,Nt.useState)(null),[b,g]=(0,Nt.useState)(!1),[h,v]=(0,Nt.useState)("recent"),[x,S]=(0,Nt.useState)({messages:[]}),[_,w]=(0,Nt.useState)(null),k=lY(r),[A,C]=(0,Nt.useState)(null),{requests:T}=JC({refreshKey:l}),[$,Q]=(0,Nt.useState)(0),[B,K]=(0,Nt.useState)(null);(0,Nt.useEffect)(()=>{let ue=()=>{let R=uY(Qn(),k);R.focusServer&&C(R.focusServer),R.sessionId&&K({kind:R.sessionKind,id:R.sessionId}),R.replacePath&&window.history.replaceState({},"",et(R.replacePath)),R.agentId?N(R.agentId,R.view):u(R.view)};return ue(),window.addEventListener("popstate",ue),window.addEventListener("dashboard:navigate",ue),()=>{window.removeEventListener("popstate",ue),window.removeEventListener("dashboard:navigate",ue)}},[]);let N=async(ue,R)=>{f(!0);try{let Be=await(await fetch(`/api/agents/${ue}`)).json();d(Be.agent),u(R)}catch{P("Failed to load agent","error")}finally{f(!1)}},O=async(ue=h)=>{f(!0);try{let te=await(await fetch(`/api/agents?sort=${ue}`)).json();s(te.agents)}catch{P("Failed to refresh agents","error")}finally{f(!1)}},D=ue=>{v(ue),O(ue)},P=(ue,R="info")=>{y({message:ue,type:R}),setTimeout(()=>y(null),3e3)},j=(ue,R=null)=>{let te=YC(ue,{agent:R,features:k});te!==null&&window.history.pushState({},"",et(te))},M=async ue=>{f(!0);try{let R=await fetch("/api/agents",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:ue})});if(R.ok){let ke=await R.json();return s([ke.agent,...i]),d(ke.agent),u("editor"),P("Agent created successfully!","success"),j("editor",ke.agent),null}let te=await R.json().catch(()=>({})),Be={errors:te.errors?.length?te.errors:[te.error||`Failed to create agent (${R.status})`],fieldErrors:te.field_errors||{}};return P(Be.errors.join(", "),"error"),Be}catch{return P("Failed to create agent","error"),{errors:["Failed to create agent: the request did not complete"],fieldErrors:{}}}finally{f(!1)}},W=async(ue,R)=>{f(!0);try{let te=await fetch(`/api/agents/${ue}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:R})});if(te.ok){let Be=await te.json();s(i.map(ke=>ke.id===ue?Be.agent:ke)),d(Be.agent),P("Agent updated!","success")}else{let Be=await te.json();P(Be.errors?.join(", ")||"Failed to update agent","error")}}catch{P("Failed to update agent","error")}finally{f(!1)}},Y=async ue=>{let R=i.find(te=>te.id===ue);if(await Wr({title:R?`Delete ${R.name}?`:"Delete this agent?",message:"Its versions and run history are deleted with it. This cannot be undone.",confirmLabel:"Delete agent",danger:!0,requireText:R?.name})){f(!0);try{(await fetch(`/api/agents/${ue}`,{method:"DELETE"})).ok&&(s(i.filter(Be=>Be.id!==ue)),d(null),u("list"),P("Agent deleted","success"),j("list"))}catch{P("Failed to delete agent","error")}finally{f(!1)}}},L=async ue=>{f(!0);try{let R=await fetch(`/api/agents/${ue}/duplicate`,{method:"POST"});if(R.ok){let te=await R.json();s([te.agent,...i]),P("Agent duplicated!","success")}}catch{P("Failed to duplicate agent","error")}finally{f(!1)}},G=ue=>{s([ue,...i]),g(!1),P("Agent created from template!","success"),oe("editor",ue)},q=["editor","runner","agent-analytics","history"],oe=(ue,R=null)=>{t0(ue,k)&&(Q(te=>te+1),ue==="builder"&&w(null),R?.id&&q.includes(ue)&&R.instructions===void 0?N(R.id,ue):(d(R),u(ue)),j(ue,R))},Me={assistant:()=>Nt.default.createElement(W3,{session:x,onSessionChange:S,executionEnabled:r.executionEnabled!==!1,onOpenSettings:()=>oe("settings"),onReviewDraft:ue=>{w(ue),u("builder"),j("builder")}}),builder:()=>Nt.default.createElement(kT,{key:_?.id||"new-agent",initialDraft:_,meta:r,onSave:M,onCancel:()=>oe(_?"assistant":"list"),isLoading:p}),editor:()=>c?Nt.default.createElement(K2,{key:`editor-${c.id}`,agent:c,meta:r,onSave:ue=>W(c.id,ue),onDelete:()=>Y(c.id),onRun:()=>oe("runner",c),onDuplicate:()=>L(c.id),onRunReport:()=>oe("history",c),onBack:()=>oe("list"),isLoading:p}):null,runner:()=>c?Nt.default.createElement(YD,{key:`runner-${c.id}-${window.location.search}`,agent:c,recorderUrl:r.recorderUrl,freshConversation:new URLSearchParams(window.location.search).has("new"),onBack:()=>oe("editor",c)}):null,"agent-analytics":()=>c?Nt.default.createElement(K2,{key:`agent-analytics-${c.id}`,agent:c,meta:r,initialTab:"metrics",onSave:ue=>W(c.id,ue),onDelete:()=>Y(c.id),onRun:()=>oe("runner",c),onDuplicate:()=>L(c.id),onRunReport:()=>oe("history",c),onBack:()=>oe("list"),isLoading:p}):null,history:()=>c?Nt.default.createElement(ZD,{agent:c,onBack:()=>oe("editor",c)}):null,analytics:()=>Nt.default.createElement(XD,{onSelectAgent:ue=>{N(ue.id,"agent-analytics")}}),traces:()=>Nt.default.createElement(Zp,null),metrics:()=>Nt.default.createElement(u3,null),interactions:()=>Nt.default.createElement(ju,null),tools:()=>Nt.default.createElement(c3,{onOpenServer:ue=>{C(ue),oe("mcp")}}),mcp:()=>Nt.default.createElement(d3,{focusServer:A,onOpenTools:()=>{C(null),oe("tools")}}),evaluations:()=>Nt.default.createElement(K0,null),projects:()=>Nt.default.createElement(gj,{visit:$}),scenarios:()=>Nt.default.createElement(kj,{visit:$}),sessions:()=>Nt.default.createElement(O3,{agents:i,user:e}),exploration:()=>Nt.default.createElement(hj,{visit:$}),replay:()=>B?Nt.default.createElement(C3,{key:`${B.kind}-${B.id}`,kind:B.kind,id:B.id,onHandoff:ue=>{let R=ue?.handoff_state||{};R.url&&window.open(R.url,"_blank","noopener,noreferrer");let te=Object.entries(R.form_values||{}).map(([Be,ke])=>`${Be}: ${ke}`).join(" \xB7 ");P(R.url?`Taking over in a new tab${te?` \u2014 already entered: ${te}`:""}`:"Taking over session...","info")},onBack:()=>hR(window.history.state)?window.history.back():oe("sessions")}):null,sandbox:()=>Nt.default.createElement(y3,{initialType:"playwright_mcp",showAgents:!0,onClose:()=>oe("list")}),organization:()=>Nt.default.createElement(P3,{user:e,account:n,subscription:o,agentCount:i.length}),settings:()=>Nt.default.createElement(F3,{user:e}),list:()=>Nt.default.createElement(mT,{agents:i,meta:r,onSelect:ue=>oe("editor",ue),onNew:()=>oe("builder"),onBrowseTemplates:()=>g(!0),onDuplicate:L,onDelete:Y,onRefresh:O,sort:h,onSortChange:D,isLoading:p})},ge=()=>t0(l,k)?(Me[l]||Me.list)():null;return Nt.default.createElement("div",{className:`aa-dashboard min-h-screen flex${a?" theme-dark":""}`,style:{backgroundColor:a?"#0f0f0f":"#f9fafb"}},Nt.default.createElement(QD,{currentView:cY(l),onNavigate:oe,agentCount:i.length,pendingInputCount:gY(T),account:n,user:e,gemVersion:r.activeagentVersion,features:k}),Nt.default.createElement("div",{className:"flex-1 flex flex-col min-w-0"},Nt.default.createElement(RD,{user:e,account:n}),Nt.default.createElement("main",{className:"flex-1 p-6 overflow-x-clip"},ge())),b&&Nt.default.createElement(JD,{onUseTemplate:G,onClose:()=>g(!1)}),Nt.default.createElement(Ree,null),m&&Nt.default.createElement("div",{className:`fixed bottom-4 right-4 z-[60] px-6 py-3 rounded-lg shadow-lg transition-all transform ${m.type==="error"?"bg-red-500":m.type==="success"?"bg-green-500":"bg-blue-500"} text-white`},m.message),p&&Nt.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-20 flex items-center justify-center z-50"},Nt.default.createElement("div",{className:`rounded-lg p-4 shadow-xl ${a?"bg-gray-800":"bg-white"}`},Nt.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}))))}function Cj(e){return Nt.default.createElement(w6,null,Nt.default.createElement(AG,null,Nt.default.createElement(vAe,{...e})))}var xAe=new Set(["POST","PUT","PATCH","DELETE"]);function bAe(e,t,{base:r="",csrfToken:n,origin:o}){let a;if(typeof e=="string"){if(!e.startsWith("/api/"))return null;a=`${r}${e}`}else if(typeof Request<"u"&&e instanceof Request){let u=new URL(e.url,o);if(u.origin!==o||!u.pathname.startsWith("/api/"))return null;a=`${o}${r}${u.pathname}${u.search}`}else return null;let i=typeof e=="string"?a:new Request(a,e),s=(t?.method||(typeof e=="string"?"GET":e.method)).toUpperCase();if(!xAe.has(s)||!n)return[i,t];let l=new Headers(t?.headers??(typeof e=="string"?void 0:e.headers));return l.has("X-CSRF-Token")||l.set("X-CSRF-Token",n),[i,{...t,headers:l}]}function wAe(e=globalThis.document){return e?.querySelector('meta[name="csrf-token"]')?.content||null}function ete(e,t=globalThis){let r=e.replace(/\/$/,""),n=t.fetch.bind(t);t.fetch=(o,a)=>{let i=bAe(o,a,{base:r,csrfToken:wAe(),origin:t.location.origin});return i?n(...i):n(o,a)}}var SAe="active-agent-dashboard";function tte(){let e=document.getElementById(SAe);if(!e)return;let t=JSON.parse(e.dataset.props||"{}");window.ACTIVE_AGENT_DASHBOARD=t,ete(t.mountPath||"/"),(0,nte.createRoot)(e).render(rte.default.createElement(Cj,{...t}))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",tte):tte(); + expect: { tools: [lookup_order] }`,mAe={create:"success",update:"warning",remove:"error",keep:"muted"};function kj({onImported:e}){let[t,r]=(0,Kt.useState)("document"),[n,o]=(0,Kt.useState)(""),[a,i]=(0,Kt.useState)(""),[s,l]=(0,Kt.useState)(""),[u,c]=(0,Kt.useState)(""),[d,p]=(0,Kt.useState)(".activeagents/evals"),[f,m]=(0,Kt.useState)(!0),[y,b]=(0,Kt.useState)(null),[g,h]=(0,Kt.useState)(!1),[v,x]=(0,Kt.useState)(null),S=()=>{let L=f?"merge":"replace";return t==="repository"?{repository:s.trim(),ref:u.trim()||void 0,path:d.trim()||void 0,mode:L}:{document:n,mode:L,...a?{source_path:a}:{}}},k=t==="repository"?!!s.trim():!!n.trim(),w=L=>Q=>{L(Q),b(null)},_=async L=>{h(!0),x(null);try{await L()}catch(Q){x(Q.message)}finally{h(!1)}},A=()=>_(async()=>{let L=await eo("/api/scenario_catalogs/preview",{method:"POST",body:S(),fallback:"The preview failed"});b(L.previews||[])}),C=()=>_(async()=>{let L=await eo("/api/scenario_catalogs",{method:"POST",body:S(),fallback:"Import refused"});b(null),o(""),i(""),e?.(L.catalogs||[])}),N=L=>{if(!L)return;let Q=new FileReader;Q.onload=()=>{i(L.name),w(o)(String(Q.result||""))},Q.onerror=()=>x(`Could not read ${L.name}.`),Q.readAsText(L)};return Kt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12},"data-testid":"scenarios-import"},Kt.default.createElement(je,null,Kt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},Kt.default.createElement(qi,{options:pAe,value:t,onChange:L=>{r(L),b(null)}}),t==="document"&&Kt.default.createElement(Sn,{label:"YAML",value:n,onChange:w(o),placeholder:fAe,mono:!0,multiline:!0,rows:12,testId:"scenarios-import-yaml"}),t==="file"&&Kt.default.createElement("label",{style:{display:"flex",flexDirection:"column",gap:6,fontSize:12,color:"var(--color-text-secondary)"}},"A .yml or .yaml file, such as one exported from this page",Kt.default.createElement("input",{type:"file",accept:".yml,.yaml,application/x-yaml,text/yaml",onChange:L=>N(L.target.files?.[0])}),a&&Kt.default.createElement("span",{style:{fontFamily:U}},a," \xB7 ",n.length," characters")),t==="repository"&&Kt.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},Kt.default.createElement(Sn,{label:"Repository",value:s,onChange:w(l),placeholder:"owner/name",mono:!0}),Kt.default.createElement(Sn,{label:"Ref",value:u,onChange:w(c),placeholder:"the default branch when empty",mono:!0}),Kt.default.createElement(Sn,{label:"Path",value:d,onChange:w(p),placeholder:".activeagents/evals or one .yml file",mono:!0})),Kt.default.createElement(pb,{label:"Keep what the document leaves out (merge). Off: the document replaces the collection.",checked:f,onChange:w(m)}),Kt.default.createElement("div",{style:{display:"flex",gap:8}},Kt.default.createElement(ce,{onClick:A,disabled:g||!k,testId:"scenarios-import-preview"},g&&!y?"Reading\u2026":"Preview"),Kt.default.createElement(ce,{variant:"primary",onClick:C,disabled:g||!y||y.length===0,testId:"scenarios-import-apply"},Zee(y||[])?"Apply, overwriting":"Apply")))),v&&Kt.default.createElement(ha,{tone:"error"},v),y&&y.map(L=>Kt.default.createElement(gAe,{key:`${L.catalog?.key}-${L.source_path||""}`,preview:L})))}function gAe({preview:e}){let t=Yee(e);return Kt.default.createElement(je,{testId:"scenarios-import-preview-result"},Kt.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},Kt.default.createElement(ke,{tone:e.catalog?.action==="create"?"success":"info"},e.catalog?.action==="create"?"new collection":"existing collection"),Kt.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-primary)"}},Xee(e))),e.source_path&&Kt.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)",fontFamily:U,marginTop:4}},e.source_path),t.length===0?Kt.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},"Nothing changes: the collection already holds this document."):Kt.default.createElement("div",{style:{display:"grid",gap:8,marginTop:10}},t.map(r=>Kt.default.createElement("div",{key:r.action},Kt.default.createElement("div",{style:{display:"flex",gap:6,alignItems:"center"}},Kt.default.createElement(ke,{tone:mAe[r.action]},r.label),Kt.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},r.changes.length)),Kt.default.createElement("ul",{style:{margin:"4px 0 0",paddingLeft:18,fontSize:12,fontFamily:U,color:"var(--color-text-secondary)"}},r.changes.slice(0,50).map(n=>Kt.default.createElement("li",{key:`${n.level}-${n.path}`},n.level," ",n.path)),r.changes.length>50&&Kt.default.createElement("li",null,"and ",r.changes.length-50," more"))))))}var hAe=[{value:"collections",label:"Collections"},{value:"generate",label:"Generate"},{value:"import",label:"Import"}];function _j({visit:e=0}){let[t,r]=(0,xt.useState)(()=>xj(Rn())),[n,o]=(0,xt.useState)(null),[a,i]=(0,xt.useState)(!1),[s,l]=(0,xt.useState)({agents:[],projects:[]}),[u,c]=(0,xt.useState)(null),[d,p]=(0,xt.useState)(null),[f,m]=(0,xt.useState)(!1);(0,xt.useEffect)(()=>{let v=()=>r(xj(Rn()));return window.addEventListener("popstate",v),window.addEventListener("dashboard:navigate",v),()=>{window.removeEventListener("popstate",v),window.removeEventListener("dashboard:navigate",v)}},[]);let y=(0,xt.useCallback)(async()=>{try{let v=await eo("/api/scenario_catalogs",{fallback:"Could not list the collections"});o(v.catalogs||[]),i(v.storage_available===!0),c(null)}catch(v){c(v.message)}},[]),b=(0,xt.useCallback)(async()=>{try{let[v,x]=await Promise.all([eo("/api/agents").catch(()=>({})),eo("/api/projects").catch(()=>({}))]);l({agents:(v.agents||[]).filter(S=>!S.observed),projects:x.projects||[]})}catch{}},[]);(0,xt.useEffect)(()=>{y(),b()},[y,b,e]);let g=v=>{p(null),c(null),lt(Hee(v))},h=async v=>{let x=await eo("/api/scenario_catalogs",{method:"POST",body:{catalog:v},fallback:"Could not create the collection"});m(!1),await y(),g({collectionId:x.catalogs?.[0]?.id})};return t.collectionId?xt.default.createElement(wj,{key:t.collectionId,collectionId:t.collectionId,agents:s.agents,projects:s.projects,storageAvailable:a,onBack:()=>g({}),onChanged:y,onDeleted:async()=>{await y(),g({})}}):xt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"scenarios-view"},xt.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},xt.default.createElement("div",null,xt.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Scenarios"),xt.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"What your agents are evaluated on, by product and set. Write them here, generate them by exploring a project's app, or import and export them as YAML.")),t.tab==="collections"&&xt.default.createElement(ce,{variant:"primary",onClick:()=>m(v=>!v),testId:"scenarios-new-collection"},f?"Close":"New collection")),xt.default.createElement(qi,{options:hAe,value:t.tab,onChange:v=>g({tab:v})}),u&&xt.default.createElement(ha,{tone:"error"},u),d&&xt.default.createElement(ha,null,d),t.tab==="generate"&&xt.default.createElement(Sj,{projects:s.projects,collections:n||[],onAccepted:y}),t.tab==="import"&&xt.default.createElement(kj,{onImported:async v=>{await y(),v.length===1?g({collectionId:v[0].id}):p(`Imported ${v.map(x=>x.key).join(", ")||"nothing"}.`)}}),t.tab==="collections"&&xt.default.createElement(xt.default.Fragment,null,f&&xt.default.createElement(yAe,{onCreate:h}),n===null?xt.default.createElement("p",{style:{color:"var(--color-text-secondary)"}},"Loading\u2026"):n.length===0?xt.default.createElement(je,{testId:"scenarios-empty"},xt.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)"}},"No scenarios yet. Start a new collection, generate scenarios by exploring a project's app, or import YAML, such as the"," ",xt.default.createElement("code",null,".activeagents/evals")," directory of a connected repository.")):xt.default.createElement("div",{style:{display:"grid",gap:12}},n.map(v=>xt.default.createElement(je,{key:v.id,style:{cursor:"pointer"},onClick:()=>g({collectionId:v.id}),testId:"scenarios-collection-card"},xt.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},xt.default.createElement("div",null,xt.default.createElement("div",{style:{fontWeight:600,color:"var(--color-text-primary)"}},v.name),xt.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},xt.default.createElement("code",null,v.key),v.source_path?` \xB7 ${v.source_path}`:v.source_kind==="api"?" \xB7 written here":` \xB7 ${v.source_kind}`)),xt.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)",textAlign:"right"}},v.product_count," ",v.product_count===1?"product":"products"," \xB7 ",v.scenario_count," scenarios",xt.default.createElement("div",null,v.synced?"synced to storage":a?"not synced":"database only"))))))))}function yAe({onCreate:e}){let[t,r]=(0,xt.useState)(""),[n,o]=(0,xt.useState)(""),[a,i]=(0,xt.useState)(""),[s,l]=(0,xt.useState)(!1),[u,c]=(0,xt.useState)(null);return xt.default.createElement(je,{testId:"scenarios-new-collection-form"},xt.default.createElement("form",{onSubmit:async p=>{p.preventDefault(),l(!0),c(null);try{await e({name:t.trim(),key:n.trim(),description:a.trim()})}catch(f){c(f.message)}finally{l(!1)}},style:{display:"flex",flexDirection:"column",gap:10}},xt.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))"}},xt.default.createElement(Sn,{label:"Name",value:t,onChange:r,placeholder:"Support desk"}),xt.default.createElement(Sn,{label:"Key",value:n,onChange:o,placeholder:"made from the name when empty",mono:!0})),xt.default.createElement(Sn,{label:"Description",value:a,onChange:i,placeholder:"optional"}),u&&xt.default.createElement(ha,{tone:"error"},u),xt.default.createElement("div",null,xt.default.createElement(ce,{type:"submit",variant:"primary",disabled:s||!t.trim()&&!n.trim()},s?"Creating\u2026":"Create collection"))))}var dn=Z(J());var vAe='button:not([disabled]), input:not([disabled]), [href], [tabindex]:not([tabindex="-1"])';function xAe({request:e,onSettle:t}){let[r,n]=(0,dn.useState)(""),o=(0,dn.useRef)(null),a=(0,dn.useRef)(null),i=(0,dn.useId)(),s=(0,dn.useId)(),l=fQ(e,r);(0,dn.useEffect)(()=>{let p=document.activeElement;return e.requireText?a.current?.focus():o.current?.querySelector('[data-testid="confirm-cancel"]')?.focus(),()=>p?.focus?.()},[e]);let u=()=>{l&&t(!0)},c=p=>{if(p.key==="Escape"){p.preventDefault(),t(!1);return}if(p.key!=="Tab")return;let f=[...o.current?.querySelectorAll(vAe)||[]];if(f.length===0)return;let m=f[0],y=f[f.length-1];p.shiftKey&&document.activeElement===m?(p.preventDefault(),y.focus()):!p.shiftKey&&document.activeElement===y&&(p.preventDefault(),m.focus())},d=e.danger?{background:"var(--color-error)",color:"#fff"}:void 0;return dn.default.createElement("div",{"data-testid":"confirm-overlay",onMouseDown:p=>{p.target===p.currentTarget&&t(!1)},style:{position:"fixed",inset:0,zIndex:70,padding:16,background:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center"}},dn.default.createElement("div",{ref:o,role:"alertdialog","aria-modal":"true","aria-labelledby":i,"aria-describedby":s,"data-testid":"confirm-dialog",onKeyDown:c,style:{width:"100%",maxWidth:440,padding:20,borderRadius:12,background:"var(--color-surface)",border:"1px solid var(--color-border)",color:"var(--color-text-primary)",boxShadow:"0 20px 40px rgba(0, 0, 0, 0.25)"}},dn.default.createElement("h2",{id:i,style:{margin:0,fontSize:16,fontWeight:600}},e.title),dn.default.createElement("div",{id:s},e.message&&dn.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,lineHeight:1.5,color:"var(--color-text-secondary)"}},e.message),e.requireText&&dn.default.createElement("label",{style:{display:"block",marginTop:14,fontSize:13,color:"var(--color-text-secondary)"}},"Type ",dn.default.createElement("code",{style:{fontFamily:"var(--font-mono)",color:"var(--color-text-primary)",fontWeight:600}},e.requireText)," to confirm.",dn.default.createElement("input",{ref:a,type:"text",value:r,autoComplete:"off",spellCheck:!1,"data-testid":"confirm-input","aria-label":`Type ${e.requireText} to confirm`,onChange:p=>n(p.target.value),onKeyDown:p=>{p.key==="Enter"&&(p.preventDefault(),u())},style:{display:"block",width:"100%",marginTop:6,padding:"8px 10px",borderRadius:8,boxSizing:"border-box",fontFamily:"var(--font-mono)",fontSize:13,color:"var(--color-text-primary)",background:"var(--color-background-page)",border:"1px solid var(--color-border-strong)"}}))),dn.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:18}},dn.default.createElement(ce,{testId:"confirm-cancel",onClick:()=>t(!1)},e.cancelLabel),dn.default.createElement(ce,{testId:"confirm-confirm",variant:"primary",onClick:u,disabled:!l,style:d},e.confirmLabel))))}function tte(){let[e,t]=(0,dn.useState)(dQ());return(0,dn.useEffect)(()=>pQ(t),[]),e?dn.default.createElement(xAe,{key:wAe(e),request:e,onSettle:cQ}):null}var Cj=new WeakMap,bAe=0;function wAe(e){return Cj.has(e)||Cj.set(e,++bAe),Cj.get(e)}function SAe({user:e,initialAgents:t=[],meta:r={},account:n=null,subscription:o=null}){let{darkMode:a}=ut(),[i,s]=(0,Nt.useState)(t),[l,u]=(0,Nt.useState)("list"),[c,d]=(0,Nt.useState)(null),[p,f]=(0,Nt.useState)(!1),[m,y]=(0,Nt.useState)(null),[b,g]=(0,Nt.useState)(!1),[h,v]=(0,Nt.useState)("recent"),[x,S]=(0,Nt.useState)({messages:[]}),[k,w]=(0,Nt.useState)(null),_=cY(r),[A,C]=(0,Nt.useState)(null),{requests:N}=QC({refreshKey:l}),[L,Q]=(0,Nt.useState)(0),[B,K]=(0,Nt.useState)(null);(0,Nt.useEffect)(()=>{let le=()=>{let R=dY(Rn(),_);R.focusServer&&C(R.focusServer),R.sessionId&&K({kind:R.sessionKind,id:R.sessionId}),R.replacePath&&window.history.replaceState({},"",Re(R.replacePath)),R.agentId?T(R.agentId,R.view):u(R.view)};return le(),window.addEventListener("popstate",le),window.addEventListener("dashboard:navigate",le),()=>{window.removeEventListener("popstate",le),window.removeEventListener("dashboard:navigate",le)}},[]);let T=async(le,R)=>{f(!0);try{let He=await(await fetch(`/api/agents/${le}`)).json();d(He.agent),u(R)}catch{P("Failed to load agent","error")}finally{f(!1)}},O=async(le=h)=>{f(!0);try{let te=await(await fetch(`/api/agents?sort=${le}`)).json();s(te.agents)}catch{P("Failed to refresh agents","error")}finally{f(!1)}},I=le=>{v(le),O(le)},P=(le,R="info")=>{y({message:le,type:R}),setTimeout(()=>y(null),3e3)},j=(le,R=null)=>{let te=XC(le,{agent:R,features:_});te!==null&&window.history.pushState({},"",Re(te))},M=async le=>{f(!0);try{let R=await fetch("/api/agents",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:le})});if(R.ok){let _e=await R.json();return s([_e.agent,...i]),d(_e.agent),u("editor"),P("Agent created successfully!","success"),j("editor",_e.agent),null}let te=await R.json().catch(()=>({})),He={errors:te.errors?.length?te.errors:[te.error||`Failed to create agent (${R.status})`],fieldErrors:te.field_errors||{}};return P(He.errors.join(", "),"error"),He}catch{return P("Failed to create agent","error"),{errors:["Failed to create agent: the request did not complete"],fieldErrors:{}}}finally{f(!1)}},W=async(le,R)=>{f(!0);try{let te=await fetch(`/api/agents/${le}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:R})});if(te.ok){let He=await te.json();s(i.map(_e=>_e.id===le?He.agent:_e)),d(He.agent),P("Agent updated!","success")}else{let He=await te.json();P(He.errors?.join(", ")||"Failed to update agent","error")}}catch{P("Failed to update agent","error")}finally{f(!1)}},Y=async le=>{let R=i.find(te=>te.id===le);if(await Wr({title:R?`Delete ${R.name}?`:"Delete this agent?",message:"Its versions and run history are deleted with it. This cannot be undone.",confirmLabel:"Delete agent",danger:!0,requireText:R?.name})){f(!0);try{(await fetch(`/api/agents/${le}`,{method:"DELETE"})).ok&&(s(i.filter(He=>He.id!==le)),d(null),u("list"),P("Agent deleted","success"),j("list"))}catch{P("Failed to delete agent","error")}finally{f(!1)}}},z=async le=>{f(!0);try{let R=await fetch(`/api/agents/${le}/duplicate`,{method:"POST"});if(R.ok){let te=await R.json();s([te.agent,...i]),P("Agent duplicated!","success")}}catch{P("Failed to duplicate agent","error")}finally{f(!1)}},V=le=>{s([le,...i]),g(!1),P("Agent created from template!","success"),oe("editor",le)},q=["editor","runner","agent-analytics","history"],oe=(le,R=null)=>{r0(le,_)&&(Q(te=>te+1),le==="builder"&&w(null),R?.id&&q.includes(le)&&R.instructions===void 0?T(R.id,le):(d(R),u(le)),j(le,R))},Me={assistant:()=>Nt.default.createElement(H3,{session:x,onSessionChange:S,executionEnabled:r.executionEnabled!==!1,onOpenSettings:()=>oe("settings"),onReviewDraft:le=>{w(le),u("builder"),j("builder")}}),builder:()=>Nt.default.createElement(_T,{key:k?.id||"new-agent",initialDraft:k,meta:r,onSave:M,onCancel:()=>oe(k?"assistant":"list"),isLoading:p}),editor:()=>c?Nt.default.createElement(V2,{key:`editor-${c.id}`,agent:c,meta:r,onSave:le=>W(c.id,le),onDelete:()=>Y(c.id),onRun:()=>oe("runner",c),onDuplicate:()=>z(c.id),onRunReport:()=>oe("history",c),onBack:()=>oe("list"),isLoading:p}):null,runner:()=>c?Nt.default.createElement(XD,{key:`runner-${c.id}-${window.location.search}`,agent:c,recorderUrl:r.recorderUrl,freshConversation:new URLSearchParams(window.location.search).has("new"),onBack:()=>oe("editor",c)}):null,"agent-analytics":()=>c?Nt.default.createElement(V2,{key:`agent-analytics-${c.id}`,agent:c,meta:r,initialTab:"metrics",onSave:le=>W(c.id,le),onDelete:()=>Y(c.id),onRun:()=>oe("runner",c),onDuplicate:()=>z(c.id),onRunReport:()=>oe("history",c),onBack:()=>oe("list"),isLoading:p}):null,history:()=>c?Nt.default.createElement(JD,{agent:c,onBack:()=>oe("editor",c)}):null,analytics:()=>Nt.default.createElement(ZD,{onSelectAgent:le=>{T(le.id,"agent-analytics")}}),traces:()=>Nt.default.createElement(Jp,null),metrics:()=>Nt.default.createElement(c3,null),interactions:()=>Nt.default.createElement($u,null),tools:()=>Nt.default.createElement(d3,{onOpenServer:le=>{C(le),oe("mcp")}}),mcp:()=>Nt.default.createElement(p3,{focusServer:A,onOpenTools:()=>{C(null),oe("tools")}}),evaluations:()=>Nt.default.createElement(V0,null),projects:()=>Nt.default.createElement(hj,{visit:L}),scenarios:()=>Nt.default.createElement(_j,{visit:L}),sessions:()=>Nt.default.createElement(P3,{agents:i,user:e}),exploration:()=>Nt.default.createElement(yj,{visit:L}),replay:()=>B?Nt.default.createElement(A3,{key:`${B.kind}-${B.id}`,kind:B.kind,id:B.id,onHandoff:le=>{let R=le?.handoff_state||{};R.url&&window.open(R.url,"_blank","noopener,noreferrer");let te=Object.entries(R.form_values||{}).map(([He,_e])=>`${He}: ${_e}`).join(" \xB7 ");P(R.url?`Taking over in a new tab${te?` \u2014 already entered: ${te}`:""}`:"Taking over session...","info")},onBack:()=>vR(window.history.state)?window.history.back():oe("sessions")}):null,sandbox:()=>Nt.default.createElement(v3,{initialType:"playwright_mcp",showAgents:!0,onClose:()=>oe("list")}),organization:()=>Nt.default.createElement(M3,{user:e,account:n,subscription:o,agentCount:i.length}),settings:()=>Nt.default.createElement(U3,{user:e}),list:()=>Nt.default.createElement(gT,{agents:i,meta:r,onSelect:le=>oe("editor",le),onNew:()=>oe("builder"),onBrowseTemplates:()=>g(!0),onDuplicate:z,onDelete:Y,onRefresh:O,sort:h,onSortChange:I,isLoading:p})},fe=()=>r0(l,_)?(Me[l]||Me.list)():null;return Nt.default.createElement("div",{className:`aa-dashboard min-h-screen flex${a?" theme-dark":""}`,style:{backgroundColor:a?"#0f0f0f":"#f9fafb"}},Nt.default.createElement(RD,{currentView:pY(l),onNavigate:oe,agentCount:i.length,pendingInputCount:yY(N),account:n,user:e,gemVersion:r.activeagentVersion,features:_}),Nt.default.createElement("div",{className:"flex-1 flex flex-col min-w-0"},Nt.default.createElement(e3,{user:e,account:n}),Nt.default.createElement("main",{className:"flex-1 p-6 overflow-x-clip"},fe())),b&&Nt.default.createElement(QD,{onUseTemplate:V,onClose:()=>g(!1)}),Nt.default.createElement(tte,null),m&&Nt.default.createElement("div",{className:`fixed bottom-4 right-4 z-[60] px-6 py-3 rounded-lg shadow-lg transition-all transform ${m.type==="error"?"bg-red-500":m.type==="success"?"bg-green-500":"bg-blue-500"} text-white`},m.message),p&&Nt.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-20 flex items-center justify-center z-50"},Nt.default.createElement("div",{className:`rounded-lg p-4 shadow-xl ${a?"bg-gray-800":"bg-white"}`},Nt.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}))))}function Aj(e){return Nt.default.createElement(S6,null,Nt.default.createElement(NG,null,Nt.default.createElement(SAe,{...e})))}var kAe=new Set(["POST","PUT","PATCH","DELETE"]);function _Ae(e,t,{base:r="",csrfToken:n,origin:o}){let a;if(typeof e=="string"){if(!e.startsWith("/api/"))return null;a=`${r}${e}`}else if(typeof Request<"u"&&e instanceof Request){let u=new URL(e.url,o);if(u.origin!==o||!u.pathname.startsWith("/api/"))return null;a=`${o}${r}${u.pathname}${u.search}`}else return null;let i=typeof e=="string"?a:new Request(a,e),s=(t?.method||(typeof e=="string"?"GET":e.method)).toUpperCase();if(!kAe.has(s)||!n)return[i,t];let l=new Headers(t?.headers??(typeof e=="string"?void 0:e.headers));return l.has("X-CSRF-Token")||l.set("X-CSRF-Token",n),[i,{...t,headers:l}]}function CAe(e=globalThis.document){return e?.querySelector('meta[name="csrf-token"]')?.content||null}function rte(e,t=globalThis){let r=e.replace(/\/$/,""),n=t.fetch.bind(t);t.fetch=(o,a)=>{let i=_Ae(o,a,{base:r,csrfToken:CAe(),origin:t.location.origin});return i?n(...i):n(o,a)}}var AAe="active-agent-dashboard";function nte(){let e=document.getElementById(AAe);if(!e)return;let t=JSON.parse(e.dataset.props||"{}");window.ACTIVE_AGENT_DASHBOARD=t,rte(t.mountPath||"/"),(0,ate.createRoot)(e).render(ote.default.createElement(Aj,{...t}))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",nte):nte(); /*! Bundled license information: react/cjs/react.production.js: diff --git a/actionagent/frontend/components/dashboard/AgentInteractions.jsx b/actionagent/frontend/components/dashboard/AgentInteractions.jsx index 1855b0569..50fe2a41c 100644 --- a/actionagent/frontend/components/dashboard/AgentInteractions.jsx +++ b/actionagent/frontend/components/dashboard/AgentInteractions.jsx @@ -1,4 +1,5 @@ import React, { useState, useEffect, useRef } from 'react'; +import { Badge, statusTone } from './primitives'; import AgentAvatar from '../AgentAvatar'; import { useTimeWindow } from '../../contexts/TimeWindowContext'; import TimeWindowSelector from './TimeWindowSelector'; @@ -252,17 +253,6 @@ export default function AgentInteractions({ agent, onBack }) { return { cohorts, totals }; }; - const getStatusColor = (status) => { - switch (status) { - 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'; - } - }; - const formatDuration = (ms) => { if (!ms) return '-'; if (ms < 1000) return `${ms}ms`; @@ -406,9 +396,7 @@ export default function AgentInteractions({ agent, onBack }) { }`} >
- - {execution.status} - + {execution.status}
{/* The only real difference between these rows. */}
{detailMode === 'run' && selectedRun && ( - - {selectedRun.status} - + {selectedRun.status} )}
diff --git a/actionagent/frontend/components/dashboard/AgentList.jsx b/actionagent/frontend/components/dashboard/AgentList.jsx index 07e54cbbb..550b5eee2 100644 --- a/actionagent/frontend/components/dashboard/AgentList.jsx +++ b/actionagent/frontend/components/dashboard/AgentList.jsx @@ -1,6 +1,7 @@ import React, { useState } from 'react'; import AgentAvatar from '../AgentAvatar'; import AgentStatCard, { rateTone } from './AgentStatCard'; +import { Badge, statusTone } from './primitives'; import { fmtPasses, fmtPercent } from '../../utils/evalFormat.mjs'; // Mirrors Api::AgentsController::LIST_SORTS. Ordering is applied server-side @@ -53,15 +54,6 @@ export default function AgentList({ return date.toLocaleDateString(); }; - const getStatusColor = (status) => { - switch (status) { - 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'; - } - }; - const formatDuration = (ms) => { if (ms == null) return '—'; if (ms < 1000) return `${Math.round(ms)}ms`; @@ -193,11 +185,7 @@ export default function AgentList({ key={agent.id} name={agent.name} subtitle={agent.description || 'No description'} - badge={ - - {agent.status} - - } + badge={{agent.status}} onClick={() => onSelect(agent)} stats={[ { label: `Runs ${stats.window_days || 30}d`, value: stats.runs ?? 0, title: runsTitle }, @@ -228,15 +216,7 @@ export default function AgentList({ footer={ <> - - {agent.provider} - + {agent.provider} {/* Model ids run long (meta-llama/llama-3.3-70b-instruct); truncate rather than wrap the card to three lines. */} ({ margin: 0, }); -export const roleBubble = (role, darkMode) => { - switch (role) { - case 'user': - return darkMode - ? { background: 'rgba(59,130,246,0.15)', color: '#93c5fd', label: 'User' } - : { background: '#eff6ff', color: '#1d4ed8', label: 'User' }; - case 'assistant': - return darkMode - ? { background: 'rgba(239,68,68,0.12)', color: '#fca5a5', label: 'Assistant' } - : { background: '#fef2f2', color: '#b91c1c', label: 'Assistant' }; - case 'tool': - return darkMode - ? { background: 'rgba(245,158,11,0.12)', color: '#fcd34d', label: 'Tool' } - : { background: '#fffbeb', color: '#b45309', label: 'Tool' }; - case 'system': - return darkMode - ? { background: 'rgba(139,92,246,0.15)', color: '#c4b5fd', label: 'System' } - : { background: '#f5f3ff', color: '#6d28d9', label: 'System' }; - case 'developer': - return darkMode - ? { background: 'rgba(20,184,166,0.15)', color: '#5eead4', label: 'Dev' } - : { background: '#f0fdfa', color: '#0f766e', label: 'Dev' }; - default: - return darkMode - ? { background: 'rgba(255,255,255,0.08)', color: 'rgba(255,255,255,0.7)', label: role } - : { background: '#f3f4f6', color: '#374151', label: role }; - } +// The role's badge colors as the shared tones resolve them (the theme is in +// the tokens, so `darkMode` no longer picks a palette; it stays in the +// signature for the callers that pass it). +export const roleBubble = (role, _darkMode) => { + const { tone, label } = roleBadge(role); + const t = TONE[tone] || TONE.muted; + return { background: t.soft, color: t.text, label, tone }; }; // Files a user message carried, as chips: image thumbnails from the @@ -438,13 +419,9 @@ export default function InteractionStream({ messages, darkMode, tools, onUiActio > {(mergedCall ? [assistantTone, toolTone] : [bubble]).map((tone) => ( - + {tone.label} - + ))}
diff --git a/actionagent/frontend/components/dashboard/SandboxRunner.jsx b/actionagent/frontend/components/dashboard/SandboxRunner.jsx index 2ed4b8b31..f918a0423 100644 --- a/actionagent/frontend/components/dashboard/SandboxRunner.jsx +++ b/actionagent/frontend/components/dashboard/SandboxRunner.jsx @@ -1,4 +1,5 @@ import React, { useState, useEffect, useRef, useCallback } from 'react'; +import { Badge, statusTone } from './primitives'; import AgentAvatar from '../AgentAvatar'; import { useActionCable } from '../../hooks/useActionCable'; import { startCheckout } from '../../utils/checkout'; @@ -445,17 +446,6 @@ export default function SandboxRunner({ initialType = 'playwright_mcp', onClose, return `${mins}:${secs.toString().padStart(2, '0')}`; }; - const getStatusColor = (status) => { - switch (status) { - 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'; - } - }; - const canRun = session?.status === 'ready' && session?.runs_count < session?.max_runs && !isRunning; @@ -501,9 +491,7 @@ export default function SandboxRunner({ initialType = 'playwright_mcp', onClose, {/* Session Status */} {session && (
- - {session.status} - + {session.status} {session.runs_count}/{session.max_runs} runs @@ -578,9 +566,7 @@ export default function SandboxRunner({ initialType = 'playwright_mcp', onClose, {comparisonMode && Object.keys(comparisonResults).length > 0 ? 'Comparison Results' : 'Output'} {currentRun && !comparisonMode && ( - - {currentRun.status} - + {currentRun.status} )} {comparisonMode && runningProviders.length > 0 && ( @@ -615,9 +601,7 @@ export default function SandboxRunner({ initialType = 'playwright_mcp', onClose,
{result && (
- - {result.status} - + {result.status} {result.tokens && ( {result.tokens} tokens )} @@ -834,9 +818,7 @@ export default function SandboxRunner({ initialType = 'playwright_mcp', onClose, onClick={() => setCurrentRun(run)} >
- - {run.status || 'completed'} - + {run.status || 'completed'} {run.tokens || 0} tokens diff --git a/actionagent/frontend/components/dashboard/primitives.jsx b/actionagent/frontend/components/dashboard/primitives.jsx index 83e90c37e..b3ccfae38 100644 --- a/actionagent/frontend/components/dashboard/primitives.jsx +++ b/actionagent/frontend/components/dashboard/primitives.jsx @@ -20,8 +20,33 @@ export const TONE = { info: { strong: 'var(--color-info)', soft: 'var(--color-info-soft)', text: 'var(--color-info-text)' }, muted: { strong: 'var(--color-text-muted)', soft: 'var(--color-muted)', text: 'var(--color-text-secondary)' }, accent: { strong: 'var(--color-accent-ui)', soft: 'var(--color-accent-ui-tint)', text: 'var(--color-accent-ui)' }, + system: { strong: 'var(--color-system)', soft: 'var(--color-system-soft)', text: 'var(--color-system-text)' }, + dev: { strong: 'var(--color-dev)', soft: 'var(--color-dev-soft)', text: 'var(--color-dev-text)' }, }; +// The tone a record's status badge takes, the same on an agent card, a +// run, a sandbox session or an evaluation: done is success, waiting is +// warning, in flight is info, broken is error, and the rest is muted. +const STATUS_TONES = { + active: 'success', complete: 'success', completed: 'success', ready: 'success', passed: 'success', + draft: 'warning', pending: 'warning', queued: 'warning', waiting: 'warning', + running: 'info', in_progress: 'info', + failed: 'error', error: 'error', expired: 'error', + archived: 'muted', cancelled: 'muted', canceled: 'muted', skipped: 'muted', +}; +export const statusTone = (status) => STATUS_TONES[String(status || '').toLowerCase()] || 'muted'; + +// The tone and label of a message role's badge, wherever a conversation +// renders: the stream, a run's activity feed, a session preview. +export const ROLE_BADGES = { + user: { tone: 'info', label: 'User' }, + assistant: { tone: 'accent', label: 'Assistant' }, + tool: { tone: 'warning', label: 'Tool' }, + system: { tone: 'system', label: 'System' }, + developer: { tone: 'dev', label: 'Dev' }, +}; +export const roleBadge = (role) => ROLE_BADGES[role] || { tone: 'muted', label: role }; + // The TUI glyph set. `chevron` rotates 90° when `open`. export const GLYPH = { object: '=', diff --git a/actionagent/frontend/test/badgeTones.test.mjs b/actionagent/frontend/test/badgeTones.test.mjs new file mode 100644 index 000000000..a87a74ab1 --- /dev/null +++ b/actionagent/frontend/test/badgeTones.test.mjs @@ -0,0 +1,118 @@ +import assert from 'node:assert/strict'; +import { mkdirSync, rmSync, writeFileSync } from 'node:fs'; +import { dirname } from 'node:path'; +import test, { after, before } from 'node:test'; +import { fileURLToPath, pathToFileURL } from 'node:url'; +import { build } from 'esbuild'; + +// The one badge every status and message role renders through: the shared +// status and role tone maps, the stream's roleBubble over them, and the +// Badge itself, bundled with esbuild and rendered to static markup. + +const root = fileURLToPath(new URL('..', import.meta.url)); +const bundlePath = fileURLToPath(new URL(`../node_modules/.cache/badge-tones-${process.pid}.mjs`, import.meta.url)); + +let api; + +before(async () => { + const { outputFiles } = await build({ + stdin: { + contents: ` + import React from 'react'; + import { renderToStaticMarkup } from 'react-dom/server'; + import { Badge, ROLE_BADGES, roleBadge, statusTone, TONE } from './components/dashboard/primitives.jsx'; + import { roleBubble } from './components/dashboard/InteractionStream.jsx'; + export { ROLE_BADGES, roleBadge, statusTone, TONE, roleBubble }; + export const renderBadge = (props, label) => renderToStaticMarkup(React.createElement(Badge, props, label)); + `, + resolveDir: root, + loader: 'jsx', + }, + bundle: true, + write: false, + format: 'esm', + platform: 'node', + external: ['react', 'react-dom', 'react-dom/server'], + banner: { js: "import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);" }, + logLevel: 'error', + }); + mkdirSync(dirname(bundlePath), { recursive: true }); + writeFileSync(bundlePath, outputFiles[0].text); + api = await import(pathToFileURL(bundlePath).href); +}); + +after(() => { + rmSync(bundlePath, { force: true }); +}); + +// One status map for every record's badge: an agent card, a run, a sandbox +// session and a result read the same tone for the same word. +test('statusTone maps the statuses every surface shows', () => { + const { statusTone } = api; + assert.equal(statusTone('active'), 'success'); + assert.equal(statusTone('complete'), 'success'); + assert.equal(statusTone('completed'), 'success'); + assert.equal(statusTone('ready'), 'success'); + assert.equal(statusTone('draft'), 'warning'); + assert.equal(statusTone('pending'), 'warning'); + assert.equal(statusTone('running'), 'info'); + assert.equal(statusTone('failed'), 'error'); + assert.equal(statusTone('expired'), 'error'); + assert.equal(statusTone('archived'), 'muted'); + assert.equal(statusTone('cancelled'), 'muted'); +}); + +test('statusTone is muted for an unknown or missing status, and ignores case', () => { + const { statusTone } = api; + assert.equal(statusTone('whatever'), 'muted'); + assert.equal(statusTone(undefined), 'muted'); + assert.equal(statusTone(null), 'muted'); + assert.equal(statusTone('Running'), 'info'); +}); + +test('every status tone and role tone is one the Badge can render', () => { + const { ROLE_BADGES, statusTone, TONE } = api; + const tones = new Set(Object.keys(TONE)); + for (const status of ['active', 'draft', 'archived', 'running', 'failed', 'pending', 'complete']) { + assert.ok(tones.has(statusTone(status)), `${status} -> ${statusTone(status)}`); + } + for (const [role, badge] of Object.entries(ROLE_BADGES)) { + assert.ok(tones.has(badge.tone), `${role} -> ${badge.tone}`); + } +}); + +test('roleBadge names the five roles and falls back to the role itself', () => { + const { roleBadge } = api; + assert.deepEqual(roleBadge('user'), { tone: 'info', label: 'User' }); + assert.deepEqual(roleBadge('assistant'), { tone: 'accent', label: 'Assistant' }); + assert.deepEqual(roleBadge('tool'), { tone: 'warning', label: 'Tool' }); + assert.deepEqual(roleBadge('system'), { tone: 'system', label: 'System' }); + assert.deepEqual(roleBadge('developer'), { tone: 'dev', label: 'Dev' }); + assert.deepEqual(roleBadge('function'), { tone: 'muted', label: 'function' }); +}); + +// The stream's roleBubble keeps its shape for the callers that read +// `.color` and `.label`, but its colors are the shared tones now, so a role +// looks the same in the stream, a session preview and a Badge. +test('roleBubble resolves to the shared tones in both themes', () => { + const { roleBubble, TONE } = api; + for (const darkMode of [false, true]) { + const bubble = roleBubble('assistant', darkMode); + assert.equal(bubble.label, 'Assistant'); + assert.equal(bubble.tone, 'accent'); + assert.equal(bubble.background, TONE.accent.soft); + assert.equal(bubble.color, TONE.accent.text); + } + assert.equal(roleBubble('nonsense', false).label, 'nonsense'); + assert.equal(roleBubble('nonsense', false).color, TONE.muted.text); +}); + +test('a status Badge renders its tone colors in mono at radius 4', () => { + const { renderBadge, statusTone } = api; + const html = renderBadge({ tone: statusTone('active') }, 'active'); + assert.match(html, /background:var\(--color-success-soft\)/); + assert.match(html, /color:var\(--color-success-text\)/); + assert.match(html, /border-radius:4px/); + assert.match(html, /font-family:var\(--font-mono\)/); + assert.match(html, />active Date: Thu, 22 Oct 2026 14:02:21 +0000 Subject: [PATCH 2/2] Mirror the system and dev badge tones into the report's design tokens The evaluation report paints with ActiveAgent::Evals::DesignTokens, which the parity test holds equal to the dashboard's tokens.css; the two tones added there for the message roles go here too. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01FVSMckjfmJy2QWSb4wRrGh --- lib/active_agent/evals/design_tokens.rb | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/active_agent/evals/design_tokens.rb b/lib/active_agent/evals/design_tokens.rb index effc824f3..e4b8731b0 100644 --- a/lib/active_agent/evals/design_tokens.rb +++ b/lib/active_agent/evals/design_tokens.rb @@ -58,6 +58,13 @@ module DesignTokens "--color-info" => "#3b82f6", "--color-info-soft" => "#dbeafe", "--color-info-text" => "#1e40af", + # The system and developer message roles: badge tones like the four above. + "--color-system" => "#8b5cf6", + "--color-system-soft" => "#ede9fe", + "--color-system-text" => "#6d28d9", + "--color-dev" => "#14b8a6", + "--color-dev-soft" => "#ccfbf1", + "--color-dev-text" => "#0f766e", # Trace span colors (observability) "--span-root" => "#9ca3af", @@ -111,7 +118,11 @@ module DesignTokens "--color-error-soft" => "rgba(220,38,38,0.15)", "--color-error-text" => "#f87171", "--color-info-soft" => "rgba(59,130,246,0.15)", - "--color-info-text" => "#93c5fd" + "--color-info-text" => "#93c5fd", + "--color-system-soft" => "rgba(139,92,246,0.15)", + "--color-system-text" => "#c4b5fd", + "--color-dev-soft" => "rgba(20,184,166,0.15)", + "--color-dev-text" => "#5eead4" }.freeze # One CSS rule declaring `tokens` as custom properties on `scope`, with