@copilotkit/web-inspector 1.69.1 → 1.69.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/index.cjs +1221 -994
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +30 -46
  4. package/dist/index.d.cts.map +1 -1
  5. package/dist/index.d.mts +30 -46
  6. package/dist/index.d.mts.map +1 -1
  7. package/dist/index.mjs +1223 -994
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/index.umd.js +1304 -1644
  10. package/dist/index.umd.js.map +1 -1
  11. package/dist/lib/inspector-nav.cjs +0 -1
  12. package/dist/lib/inspector-nav.cjs.map +1 -1
  13. package/dist/lib/inspector-nav.mjs +0 -1
  14. package/dist/lib/inspector-nav.mjs.map +1 -1
  15. package/dist/lib/telemetry.cjs +1 -19
  16. package/dist/lib/telemetry.cjs.map +1 -1
  17. package/dist/lib/telemetry.d.cts.map +1 -1
  18. package/dist/lib/telemetry.d.mts.map +1 -1
  19. package/dist/lib/telemetry.mjs +2 -18
  20. package/dist/lib/telemetry.mjs.map +1 -1
  21. package/dist/package.cjs +1 -1
  22. package/dist/package.mjs +1 -1
  23. package/dist/styles/generated.cjs +1 -1
  24. package/dist/styles/generated.cjs.map +1 -1
  25. package/dist/styles/generated.mjs +1 -1
  26. package/dist/styles/generated.mjs.map +1 -1
  27. package/package.json +3 -3
  28. package/dist/lib/event-snippets.cjs +0 -559
  29. package/dist/lib/event-snippets.cjs.map +0 -1
  30. package/dist/lib/event-snippets.d.cts +0 -61
  31. package/dist/lib/event-snippets.d.cts.map +0 -1
  32. package/dist/lib/event-snippets.d.mts +0 -61
  33. package/dist/lib/event-snippets.d.mts.map +0 -1
  34. package/dist/lib/event-snippets.mjs +0 -537
  35. package/dist/lib/event-snippets.mjs.map +0 -1
  36. package/dist/lib/inspector-nav.d.cts +0 -11
  37. package/dist/lib/inspector-nav.d.cts.map +0 -1
  38. package/dist/lib/inspector-nav.d.mts +0 -11
  39. package/dist/lib/inspector-nav.d.mts.map +0 -1
package/dist/index.umd.js CHANGED
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
7
7
 
8
8
  //#region src/styles/generated.css
9
- var generated_default = "/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n@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-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,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-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--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-green-100:oklch(96.2% .044 156.743);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--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-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-100:oklch(95.1% .026 236.824);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-700:oklch(50% .134 242.749);--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-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-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-violet-800:oklch(43.2% .232 292.759);--color-violet-950:oklch(28.3% .141 291.089);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-700:oklch(49.6% .265 301.924);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-700:oklch(51.8% .253 323.949);--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-700:oklch(51.4% .222 16.935);--color-rose-800:oklch(45.5% .188 13.697);--color-rose-950:oklch(27.1% .105 12.094);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--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-xs:20rem;--container-md:28rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-md:12px;--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,ui-sans-serif,system-ui,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{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}:host{font-family:var(--font-sans);color:var(--color-slate-900);background-color:#0000;display:block}}@layer components;@layer utilities{.\\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.m-0{margin:calc(var(--spacing)*0)}.mx-3{margin-inline:calc(var(--spacing)*3)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-3{margin-block:calc(var(--spacing)*3)}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.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-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mr-auto{margin-right:auto}.mb-0\\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.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-1\\.5{height:calc(var(--spacing)*1.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-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-20{height:calc(var(--spacing)*20)}.h-24{height:calc(var(--spacing)*24)}.h-40{height:calc(var(--spacing)*40)}.h-\\[28rem\\]{height:28rem}.h-full{height:100%}.max-h-32{max-height:calc(var(--spacing)*32)}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-7{min-height:calc(var(--spacing)*7)}.min-h-\\[20rem\\]{min-height:20rem}.min-h-\\[40px\\]{min-height:40px}.min-h-\\[420px\\]{min-height:420px}.w-1\\.5{width:calc(var(--spacing)*1.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-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-40{width:calc(var(--spacing)*40)}.w-auto{width:auto}.w-full{width:100%}.w-px{width:1px}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\\[80\\%\\]{max-width:80%}.max-w-\\[200px\\]{max-width:200px}.max-w-\\[240px\\]{max-width:240px}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\\[200px\\]{min-width:200px}.flex-1{flex:1}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.translate-x-0\\.5{--tw-translate-x:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-\\[2px\\]{--tw-translate-y:calc(2px*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.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)}.cursor-col-resize{cursor:col-resize}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-nesw-resize{cursor:nesw-resize}.cursor-not-allowed{cursor:not-allowed}.cursor-nwse-resize{cursor:nwse-resize}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.list-none{list-style-type:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.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}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*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-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(.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-200>:not(:last-child)){border-color:var(--color-gray-200)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[16px\\]{border-radius:16px}.rounded-\\[28px\\]{border-radius:28px}.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)}.border{border-style:var(--tw-border-style);border-width:1px}.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-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-200{border-color:var(--color-blue-200)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-fuchsia-200{border-color:var(--color-fuchsia-200)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-purple-200{border-color:var(--color-purple-200)}.border-rose-200{border-color:var(--color-rose-200)}.border-rose-300{border-color:var(--color-rose-300)}.border-sky-200{border-color:var(--color-sky-200)}.border-slate-200{border-color:var(--color-slate-200)}.border-violet-200{border-color:var(--color-violet-200)}.border-white\\/20{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.border-white\\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.bg-\\[\\#00000014\\]{background-color:#00000014}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.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-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-fuchsia-50{background-color:var(--color-fuchsia-50)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-50\\/50{background-color:#f9fafb80}@supports (color:color-mix(in lab, red, red)){.bg-gray-50\\/50{background-color:color-mix(in oklab,var(--color-gray-50)50%,transparent)}}.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-800{background-color:var(--color-gray-800)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-100{background-color:var(--color-green-100)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-500{background-color:var(--color-rose-500)}.bg-sky-50{background-color:var(--color-sky-50)}.bg-sky-100{background-color:var(--color-sky-100)}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-950\\/95{background-color:#020618f2}@supports (color:color-mix(in lab, red, red)){.bg-slate-950\\/95{background-color:color-mix(in oklab,var(--color-slate-950)95%,transparent)}}.bg-transparent{background-color:#0000}.bg-violet-50{background-color:var(--color-violet-50)}.bg-violet-100{background-color:var(--color-violet-100)}.bg-white{background-color:var(--color-white)}.bg-white\\/95{background-color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.bg-white\\/95{background-color:color-mix(in oklab,var(--color-white)95%,transparent)}}.p-0\\.5{padding:calc(var(--spacing)*.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.py-10{padding-block:calc(var(--spacing)*10)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-1\\.5{padding-top:calc(var(--spacing)*1.5)}.pt-8{padding-top:calc(var(--spacing)*8)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-5{padding-bottom:calc(var(--spacing)*5)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--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-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[13px\\]{font-size:13px}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-\\[22px\\]{--tw-leading:22px;line-height:22px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[rgb\\(13\\,13\\,13\\)\\]{color:#0d0d0d}.text-amber-600{color:var(--color-amber-600)}.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-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-800{color:var(--color-emerald-800)}.text-fuchsia-700{color:var(--color-fuchsia-700)}.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-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-purple-700{color:var(--color-purple-700)}.text-rose-700{color:var(--color-rose-700)}.text-rose-800{color:var(--color-rose-800)}.text-rose-950{color:var(--color-rose-950)}.text-sky-700{color:var(--color-sky-700)}.text-slate-500{color:var(--color-slate-500)}.text-slate-800{color:var(--color-slate-800)}.text-violet-500{color:var(--color-violet-500)}.text-violet-600{color:var(--color-violet-600)}.text-violet-700{color:var(--color-violet-700)}.text-violet-950{color:var(--color-violet-950)}.text-white{color:var(--color-white)}.italic{font-style:italic}.underline{text-decoration-line:underline}.decoration-violet-300{-webkit-text-decoration-color:var(--color-violet-300);-webkit-text-decoration-color:var(--color-violet-300);text-decoration-color:var(--color-violet-300)}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-80{opacity:.8}.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-\\[0_4px_4px_0_\\#0000000a\\,0_0_1px_0_\\#0000009e\\]{--tw-shadow:0 4px 4px 0 var(--tw-shadow-color,#0000000a),0 0 1px 0 var(--tw-shadow-color,#0000009e);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-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px 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)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + 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-black\\/5{--tw-ring-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.ring-black\\/5{--tw-ring-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.ring-transparent{--tw-ring-color:transparent}.ring-white\\/10{--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.ring-white\\/10{--tw-ring-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.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-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-shadow{transition-property:box-shadow;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))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-gray-500::placeholder{color:var(--color-gray-500)}.focus-within\\:shadow-\\[0_6px_18px_0_\\#00000014\\,0_0_1px_0_\\#0000009e\\]:focus-within{--tw-shadow:0 6px 18px 0 var(--tw-shadow-color,#00000014),0 0 1px 0 var(--tw-shadow-color,#0000009e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media (hover:hover){.hover\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\\:border-white\\/30:hover{border-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.hover\\:border-white\\/30:hover{border-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.hover\\:bg-blue-50\\/50:hover{background-color:#eff6ff80}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-blue-50\\/50:hover{background-color:color-mix(in oklab,var(--color-blue-50)50%,transparent)}}.hover\\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\\:bg-gray-400:hover{background-color:var(--color-gray-400)}.hover\\:bg-gray-800:hover{background-color:var(--color-gray-800)}.hover\\:bg-rose-100:hover{background-color:var(--color-rose-100)}.hover\\:bg-slate-900\\/95:hover{background-color:#0f172bf2}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-slate-900\\/95:hover{background-color:color-mix(in oklab,var(--color-slate-900)95%,transparent)}}.hover\\:bg-violet-100:hover{background-color:var(--color-violet-100)}.hover\\:text-gray-900:hover{color:var(--color-gray-900)}.hover\\:text-violet-800:hover{color:var(--color-violet-800)}.hover\\:decoration-violet-700:hover{-webkit-text-decoration-color:var(--color-violet-700);-webkit-text-decoration-color:var(--color-violet-700);text-decoration-color:var(--color-violet-700)}.hover\\:opacity-70:hover{opacity:.7}}.focus\\:border-gray-300:focus{border-color:var(--color-gray-300)}.focus\\:border-violet-400:focus{border-color:var(--color-violet-400)}.focus\\:bg-gray-50:focus{background-color:var(--color-gray-50)}.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-gray-200:focus{--tw-ring-color:var(--color-gray-200)}.focus\\:ring-violet-100:focus{--tw-ring-color:var(--color-violet-100)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\\:rounded:focus-visible{border-radius:.25rem}.focus-visible\\:rounded-sm:focus-visible{border-radius:var(--radius-sm)}.focus-visible\\:ring-2:focus-visible{--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-visible\\:ring-rose-300:focus-visible{--tw-ring-color:var(--color-rose-300)}.focus-visible\\:ring-violet-300:focus-visible{--tw-ring-color:var(--color-violet-300)}.focus-visible\\:ring-violet-400:focus-visible{--tw-ring-color:var(--color-violet-400)}.focus-visible\\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\\:outline-\\[\\#BEC2FF\\]:focus-visible{outline-color:#bec2ff}.focus-visible\\:outline-gray-300:focus-visible{outline-color:var(--color-gray-300)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\\:opacity-60:active{opacity:.6}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:text-gray-500:disabled{color:var(--color-gray-500)}.disabled\\:opacity-50:disabled{opacity:.5}.disabled\\:opacity-60:disabled{opacity:.6}@media (min-width:48rem){.md\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\\[\\&\\>svg\\]\\:\\!h-8>svg{height:calc(var(--spacing)*8)!important}.\\[\\&\\>svg\\]\\:h-3>svg{height:calc(var(--spacing)*3)}.\\[\\&\\>svg\\]\\:h-3\\.5>svg{height:calc(var(--spacing)*3.5)}.\\[\\&\\>svg\\]\\:h-\\[18px\\]>svg{height:18px}.\\[\\&\\>svg\\]\\:\\!w-8>svg{width:calc(var(--spacing)*8)!important}.\\[\\&\\>svg\\]\\:w-3>svg{width:calc(var(--spacing)*3)}.\\[\\&\\>svg\\]\\:w-3\\.5>svg{width:calc(var(--spacing)*3.5)}.\\[\\&\\>svg\\]\\:w-\\[18px\\]>svg{width:18px}.\\[\\&\\>svg\\]\\:animate-spin>svg{animation:var(--animate-spin)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}.cpk-json-block{white-space:pre-wrap;word-break:break-all;color:#57575b;margin:0;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:11px;line-height:1.8;overflow:auto}.inspector-account-strip{border-bottom:1px solid #d8d8e8;width:100%;min-width:0;color:#010507!important;background:linear-gradient(90deg,#fff 0%,#f3f1ff 58%,#eefbf7 100%)!important}.inspector-account-logo{filter:none}.inspector-account-brand{position:relative}.inspector-account-logo-accent{clip-path:inset(0 0 0 80%);pointer-events:none;display:none;position:absolute;inset:0}.inspector-account-cta{isolation:isolate;color:#3f176f;white-space:nowrap;cursor:pointer;background-color:#eee6fe;border:0;border-radius:5px;flex:none;justify-content:center;align-items:center;gap:7px;min-height:32px;padding:7px 10px;font-size:11px;font-weight:700;line-height:1;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.inspector-account-cta:after{z-index:0;content:\"\";opacity:0;pointer-events:none;background:linear-gradient(105deg,#0000 0%,#ffffff14 32%,#ffffffad 50%,#ffffff14 68%,#0000 100%);width:68%;animation:3.8s cubic-bezier(.16,1,.3,1) infinite inspector-account-cta-shimmer;position:absolute;inset:0;transform:translate(-180%)skew(-14deg)}.inspector-account-cta>*{z-index:1;position:relative}.inspector-account-cta[data-motion-paused=true]:after{animation-play-state:paused}@keyframes inspector-account-cta-shimmer{0%{opacity:0;transform:translate(-180%)skew(-14deg)}12%{opacity:1}82%{opacity:.8}to{opacity:0;transform:translate(280%)skew(-14deg)}}.inspector-account-cta:hover{color:#32105d;background-color:#e4d8fc}.inspector-account-cta svg{width:14px;height:14px}@media (prefers-reduced-motion:reduce){.inspector-account-cta:after{animation:none}}.inspector-window-layout{position:relative}.inspector-window-layout-menu{z-index:60;color:#010507;background-color:#fff;border:1px solid #d8d8e8;border-radius:5px;width:188px;padding:4px;display:grid;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 10px 24px #1f173924}.inspector-window-layout-menu button{min-height:34px;color:inherit;text-align:left;cursor:pointer;background-color:#0000;border:0;border-radius:4px;align-items:center;gap:9px;padding:7px 9px;font-size:12px;font-weight:600;display:flex}.inspector-window-layout-menu button:hover,.inspector-window-layout-menu button:focus-visible{color:#3f176f;background-color:#eee6fe;outline:none}.inspector-window-layout-menu button span:first-child{flex:none;display:inline-flex}.inspector-agent-placeholder{color:#68686e;border-color:#c8c8d8}.inspector-primary-navigation,.inspector-child-navigation{display:none}.inspector-shell{background-color:#f7f6fd;flex:auto;min-height:0;display:flex}.inspector-sidebar{z-index:20;background-color:#f7f6fd;border-right:1px solid #d8d8e8;flex-direction:column;flex:none;gap:8px;width:224px;min-width:224px;padding:12px 10px;transition:width .22s,min-width .22s,padding .22s;display:flex;position:relative;overflow:visible}.inspector-snippet-sidebar{background-color:#f7f6fd;flex-direction:column;gap:8px;padding:12px 10px;display:flex;overflow:auto}.inspector-sidebar[data-icon-rail=true]{width:56px;min-width:56px;padding:10px 6px}.inspector-sidebar-agent-scope{border-bottom:1px solid #d8d8e8;flex:none;min-width:0;padding-bottom:10px}.inspector-sidebar .inspector-agent-selector{width:100%;min-width:0}.inspector-sidebar .inspector-agent-selector>[data-context-dropdown-root=true]>button{background-color:#fff;border-radius:5px;max-width:none;min-height:34px;padding:6px 8px}.inspector-context-dropdown-icon{color:#68686e;display:inline-flex}.inspector-context-dropdown-icon svg,.inspector-context-dropdown-chevron svg{width:14px;height:14px}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-agent-scope{padding-bottom:8px}.inspector-sidebar[data-icon-rail=true] .inspector-agent-selector>[data-context-dropdown-root=true]>button{justify-content:center;width:100%;min-height:34px;padding:6px 0}.inspector-sidebar[data-icon-rail=true] .inspector-context-dropdown-label,.inspector-sidebar[data-icon-rail=true] .inspector-context-dropdown-chevron,.inspector-sidebar[data-icon-rail=true] .inspector-agent-placeholder span:last-child{display:none}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-agent-scope [data-context-dropdown-root=true]>div{margin-top:0;top:0;left:calc(100% + 8px)}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-section+.inspector-sidebar-section{border-top:1px solid #dbdbe5;margin-top:4px;padding-top:10px}.inspector-sidebar-nav{cursor:default;flex-direction:column;flex:auto;gap:14px;min-height:0;display:flex;overflow:hidden auto}.inspector-sidebar-section{flex-direction:column;gap:4px;display:flex}.inspector-sidebar-label{color:#838389;letter-spacing:.02em;text-align:left;text-transform:none;background:0 0;border:0;width:100%;margin:0 0 2px;padding:0 8px;font-size:11px;font-weight:600;display:block}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-label,.inspector-sidebar[data-icon-rail=true] .inspector-nav-label{display:none}.inspector-sidebar-rail-tooltip{z-index:60;color:#fff;pointer-events:none;white-space:nowrap;background-color:#242331;border-radius:6px;max-width:220px;padding:6px 9px;font-size:11px;font-weight:600;line-height:1.2;position:absolute;left:calc(100% + 8px);transform:translateY(-50%);box-shadow:0 7px 18px #1a172a2e}.inspector-sidebar-control{justify-content:flex-start;width:100%;min-height:36px;display:flex;position:relative}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-control,.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-toggle,.inspector-sidebar[data-icon-rail=true] .inspector-nav-control{justify-content:center;align-items:center;gap:0;padding:6px 0;overflow:hidden}.inspector-home-badge{background-color:#fa5f67;border-radius:999px;width:7px;height:7px;position:absolute;top:8px;right:8px}.inspector-sidebar[data-icon-rail=true] .inspector-home-badge{top:6px;right:8px}.inspector-sidebar-toggle{color:#57575b;width:100%;min-height:32px;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;flex:none;justify-content:flex-start;align-items:center;gap:6px;padding:6px 9px;font-size:12px;font-weight:600;display:flex}.inspector-sidebar-toggle:hover{color:#010507;background-color:#f0f0f4}.inspector-sidebar-footer{flex-direction:column;flex:none;gap:6px;padding:2px 0 18px;display:flex}.inspector-sidebar-status-list{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.inspector-sidebar-status-card{color:#2b2b2b;background-color:#fff;border:1px solid #d8d8e8;border-radius:7px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:52px;padding:9px 10px;display:grid;position:relative}.inspector-sidebar-status-copy{flex-direction:column;gap:2px;min-width:0;line-height:1.25;display:flex}.inspector-sidebar-status-copy strong{color:#010507;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700;overflow:hidden}.inspector-sidebar-status-copy>span{color:#57575b;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.inspector-sidebar-status-card[data-state=disconnected] .inspector-sidebar-status-copy>span{color:#68686e}.inspector-sidebar-status-action{color:#3f176f;white-space:nowrap;background-color:#0000;border:0;border-radius:5px;justify-content:center;align-items:center;gap:0;width:28px;height:28px;padding:0;font-size:10px;font-weight:700;text-decoration:none;display:inline-flex}.inspector-sidebar-status-action:hover{color:#6430ab;background-color:#eee7f8;text-decoration:none}.inspector-sidebar-status-action svg{width:12px;height:12px}.inspector-sidebar-status-action-label{display:none}.inspector-sidebar-intelligence-setup{color:#3f176f;cursor:pointer;background-color:#eee7f8;border-color:#bba5df;text-decoration:none;transition:border-color .12s,background-color .12s,box-shadow .3s;animation:3.2s ease-in-out infinite inspector-sidebar-intelligence-setup-glow}@keyframes inspector-sidebar-intelligence-setup-glow{0%,to{box-shadow:0 0 #6430ab00}50%{box-shadow:0 0 16px 2px #6430ab26}}.inspector-sidebar-intelligence-setup:hover{background-color:#e4d9f4;border-color:#8e6fc0}.inspector-sidebar-intelligence-setup .inspector-sidebar-status-copy strong{color:#3f176f}.inspector-sidebar-setup-arrow{background-color:#6430ab1a;border-radius:5px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.inspector-sidebar-setup-arrow svg{width:13px;height:13px}.inspector-main{background-color:#fff;flex-direction:column;flex:auto;min-width:0;display:flex;position:relative}.cpk-memory-locked{background-color:#fff;justify-content:center;align-items:center;height:100%;padding:32px;display:flex;position:relative;overflow:hidden}.cpk-locked-preview{opacity:.58;pointer-events:none;grid-template-columns:minmax(180px,28%) 1fr;display:grid;position:absolute;inset:0;overflow:hidden}.cpk-locked-preview-sidebar{background-color:#fafafa;border-right:1px solid #dbdbe5;flex-direction:column;gap:12px;padding:28px 24px;display:flex}.cpk-locked-preview-row{background-color:#fff;border-radius:10px;padding:12px;box-shadow:inset 0 0 0 1px #eeeef4}.cpk-locked-preview-row[data-accent=true]{background-color:#eee6fe}.cpk-locked-preview-bar{background-color:#d7d7df;border-radius:999px}.cpk-locked-preview-row-title{width:var(--preview-width);height:8px}.cpk-locked-preview-row[data-accent=true] .cpk-locked-preview-row-title{background-color:#a984f5}.cpk-locked-preview-row-line{background-color:#e3e3eb;width:88%;height:6px;margin-top:10px}.cpk-locked-preview-row-line:last-child{background-color:#e8e8ef;width:62%;margin-top:7px}.cpk-locked-preview-main{background-color:#fff;min-width:0;padding:42px 48px}.cpk-locked-preview-heading{width:180px;height:10px}.cpk-locked-preview-copy{background-color:#e3e3eb;width:min(520px,58%);height:8px;margin-top:28px}.cpk-locked-preview-copy+.cpk-locked-preview-copy{background-color:#e8e8ef;width:min(430px,48%);margin-top:12px}.cpk-locked-preview-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:620px;margin-top:30px;display:grid}.cpk-locked-preview-card{background-color:#f5f5f8;border-radius:10px;height:116px;box-shadow:inset 0 0 0 1px #eeeef4}.cpk-locked-preview-footer-line{background-color:#e3e3eb;width:min(680px,74%);height:10px;margin-top:34px}.cpk-locked-preview-footer-line+.cpk-locked-preview-footer-line{background-color:#e8e8ef;width:min(560px,60%);margin-top:14px}.cpk-memory-locked-scrim{pointer-events:none;background:radial-gradient(circle,#ffffffe6 0,#ffffffc7 24%,#ffffff57 48%,#ffffff8f 100%);position:absolute;inset:0}.cpk-memory-locked-content{z-index:1;color:#57575b;text-align:center;max-width:440px;position:relative}.cpk-memory-locked-icon-wrap{justify-content:center;margin:0 auto 18px;display:flex}.cpk-memory-locked-icon{color:#57575b;background-color:#eee6fe;border:1px solid #dfd6fb;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;display:flex;box-shadow:0 8px 18px #57575b24}.cpk-memory-locked-title{color:#010507;margin:0 0 8px;font-size:16px;font-weight:600;line-height:1.35}.cpk-memory-locked-copy{color:#57575b;max-width:380px;margin:0 auto 18px;font-size:13px;line-height:1.55}.cpk-memory-locked-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.cpk-memory-locked-action{color:#fff;background-color:#6430ab;border:1px solid #6430ab;border-radius:5px;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:8px 12px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.cpk-memory-locked-action:hover{background-color:#4e238c;border-color:#4e238c}.cpk-memory-locked-action-secondary{color:#57575b;background-color:#fff;border-color:#dbdbe5}.cpk-memory-locked-action-secondary:hover{background-color:#f7f7f9;border-color:#afafb7}.inspector-home{background-color:#fff;min-height:100%;padding:30px 32px 40px;position:relative;overflow:auto}.inspector-home:before{display:none}.inspector-home>*{width:min(100%,960px);margin-left:auto;margin-right:auto}.inspector-settings{color:#010507;background-color:#fff;min-height:100%;padding:28px 28px 36px;overflow:auto}.inspector-settings-header{border-bottom:1px solid #d5d3e4;max-width:70ch;padding-bottom:22px}.inspector-settings-title{color:#010507;margin:0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:28px;font-weight:600;line-height:1.15}.inspector-settings-subtitle{color:#57575b;max-width:60ch;margin:10px 0 0;font-size:14px;line-height:1.5}.inspector-settings-section{grid-template-columns:minmax(138px,168px) minmax(0,1fr);gap:30px;max-width:820px;margin-top:28px;display:grid}.inspector-settings-section-heading{align-items:flex-start;gap:10px;display:flex}.inspector-settings-section-icon{color:#3f176f;background-color:#eee6fe;border:1px solid #bec2ff;border-radius:5px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.inspector-settings-section-icon svg{width:16px;height:16px}.inspector-settings-section-heading h2,.inspector-settings-status-row h3{color:#010507;margin:0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-weight:600}.inspector-settings-section-heading h2{font-size:15px;line-height:1.3}.inspector-settings-section-heading p{color:#68686e;margin:5px 0 0;font-size:11px;line-height:1.45}.inspector-settings-privacy{border-top:1px solid #d5d3e4;border-bottom:1px solid #d5d3e4;padding:20px 0 22px}.inspector-settings-status-row{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.inspector-settings-status-row h3{font-size:16px;line-height:1.3}.inspector-settings-status-row p{color:#57575b;max-width:56ch;margin:8px 0 0;font-size:13px;line-height:1.55}.inspector-settings-status{color:#087653;background-color:#e5f7f1;border:1px solid #85d3bb;border-radius:999px;flex:none;align-items:center;min-height:24px;padding:3px 8px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.inspector-settings-privacy[data-state=disabled] .inspector-settings-status{color:#7d4d0a;background-color:#fff5df;border-color:#dfc08f}.inspector-settings-private-content{border-top:1px solid #e4e4ec;margin-top:20px;padding-top:18px}.inspector-settings-private-content strong{color:#010507;font-size:13px;font-weight:700}.inspector-settings-private-content>p{color:#68686e;margin:4px 0 0;font-size:11px;line-height:1.45}.inspector-settings-private-content ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:12px 0 0;display:grid}.inspector-settings-private-content li{color:#3e3d48;align-items:center;gap:7px;min-width:0;font-size:12px;line-height:1.35;display:flex}.inspector-settings-private-content li span{color:#087653;flex:none;display:inline-flex}.inspector-settings-private-content li svg{width:14px;height:14px}.inspector-settings-policy-link{color:#3f176f;text-underline-offset:3px;outline-offset:2px;outline:2px solid #0000;align-items:center;gap:6px;min-height:32px;margin-top:20px;font-size:12px;font-weight:700;text-decoration:underline;text-decoration-thickness:1px;display:inline-flex}.inspector-settings-policy-link:hover{color:#6430ab}.inspector-settings-policy-link:focus-visible{outline-color:#6430ab}.inspector-settings-policy-link svg{width:14px;height:14px}@media (max-width:720px){.inspector-settings{padding:24px 20px 32px}.inspector-settings-section{grid-template-columns:1fr;gap:18px}.inspector-settings-section-heading p{max-width:42ch}}@media (max-width:480px){.inspector-settings-status-row{flex-direction:column;gap:12px}.inspector-settings-private-content ul{grid-template-columns:1fr}}.inspector-home-card,.inspector-home-story{background-color:#ffffffd1;border:1px solid #deddea;border-radius:5px;padding:18px 18px 16px;position:relative}.inspector-home-eyebrow,.inspector-home-card-label,.inspector-home-meta{color:#57575b;margin:0;font-size:12px;font-weight:600}.inspector-home-title,.inspector-home-section-title,.inspector-home-card-title{color:#010507;margin:8px 0 0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:28px;font-weight:600;line-height:1.15}.inspector-home-section-title{letter-spacing:-.015em;margin:0 0 14px;font-size:17px}.inspector-home-card-title{font-size:16px}.inspector-home-body,.inspector-home-card-copy{color:#57575b;max-width:52ch;margin:10px 0 0;font-size:15px;line-height:1.5}.inspector-home-section{margin-top:24px;position:relative}.inspector-home>.inspector-home-section:first-child{margin-top:0}.inspector-whats-new-preview+.inspector-home-section{margin-top:20px}.inspector-home-section-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.inspector-home-section-header .inspector-home-section-title{margin-bottom:0}.inspector-home-section-header>span{color:#68686e;font-size:11px;font-weight:600;line-height:1.35}.inspector-system-health-header>span[data-tone=success]{color:#087653}.inspector-system-health-header>span[data-tone=checking]{color:#8a5900}.inspector-system-health-header>span[data-tone=offline],.inspector-system-health-header>span[data-tone=error]{color:#b32d3b}.inspector-system-health-section{background-color:#f7f4fe;border:1px solid #c8c6e6;border-radius:5px;overflow:hidden}.inspector-system-health-section .inspector-system-health-header{background-color:#f7f4fe;border-bottom:1px solid #d5d3e4;align-items:center;min-height:76px;margin:0;padding:18px}.inspector-system-health-heading{min-width:0}.inspector-system-health-heading .inspector-home-section-title{color:#010507;letter-spacing:-.025em;font-size:18px}.inspector-system-health-state,.inspector-intelligence-hud-state{color:#087653;background-color:#e5f7f1;border:1px solid #85d3bb;border-radius:999px;flex:none;align-items:center;gap:6px;min-height:24px;padding:4px 8px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.inspector-system-health-state>span,.inspector-intelligence-hud-state>span{background-color:currentColor;border-radius:999px;width:6px;height:6px}.inspector-system-health-state[data-tone=checking],.inspector-intelligence-hud-state[data-tone=checking]{background-color:#fff5df;border-color:#dfc08f;color:#7d4d0a!important}.inspector-system-health-state[data-tone=offline],.inspector-system-health-state[data-tone=error],.inspector-intelligence-hud-state[data-tone=offline],.inspector-intelligence-hud-state[data-tone=error]{background-color:#fff0f1;border-color:#e7a7ac;color:#b32d3b!important}.inspector-system-health-state[data-tone=unavailable],.inspector-intelligence-hud-state[data-tone=unavailable]{background-color:#f0f0f4;border-color:#c8c8d2;color:#57575b!important}.inspector-system-health{background-color:#d5d3e4;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.inspector-system-health-signal{background-color:#fff;grid-template-columns:minmax(0,1fr);align-items:start;min-width:0;min-height:84px;padding:15px 16px 14px;display:grid}.inspector-system-health-copy{flex-direction:column;min-width:0;display:flex}.inspector-system-health-signal dt{color:#68686e;letter-spacing:.035em;text-transform:uppercase;font-size:10px;font-weight:700;line-height:1.3}.inspector-system-health-signal dd{color:#010507;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:5px 0 0;font-size:15px;font-weight:700;overflow:hidden}.inspector-system-health-signal small{color:#68686e;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-top:4px;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;line-height:1.4;overflow:hidden}small.inspector-system-health-detail{letter-spacing:0;font-family:inherit;font-size:11px;font-weight:500;line-height:1.4}.inspector-system-health-url{cursor:help;outline:none;position:relative;overflow:visible!important}.inspector-system-health-url>span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.inspector-system-health-url:after{z-index:30;color:#f3f4f8;content:attr(data-full-value);opacity:0;overflow-wrap:anywhere;pointer-events:none;white-space:normal;background-color:#15171e;border:1px solid #3a3d49;border-radius:4px;width:max-content;max-width:min(360px,70vw);padding:7px 9px;font-size:10px;font-weight:500;line-height:1.45;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 7px);left:0;transform:translateY(3px);box-shadow:0 8px 20px #0105072e}.inspector-system-health-url:hover:after,.inspector-system-health-url:focus-visible:after{opacity:1;transform:translateY(0)}.inspector-system-health-url:focus-visible>span{outline-offset:2px;border-radius:3px;outline:2px solid #6430ab}.inspector-system-health-signal[data-tone=success] dd{color:#087653}.inspector-system-health-signal[data-tone=active] dd{color:#8a5900}.inspector-system-health-event-link{width:100%;min-width:0;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0;display:block}.inspector-system-health-event-link>span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.inspector-system-health-event-link>.inspector-system-health-event-type{color:#57575b;letter-spacing:.025em;background-color:#f1f1f3;border-radius:999px;align-items:center;width:fit-content;max-width:100%;padding:3px 6px;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;font-weight:700;line-height:1.25;display:inline-flex}.inspector-system-health-event-link>small{color:#68686e;align-items:center;gap:6px;margin:5px 0 0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:10px;font-weight:500;line-height:1.25;display:flex}.inspector-system-health-event-meta strong{color:#6430ab;text-underline-offset:3px;font-weight:700;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.inspector-system-health-signal[data-tone=error] .inspector-system-health-event-type{color:#b32d3b;background-color:#fff0f1}.inspector-system-health-signal[data-tone=success] .inspector-system-health-event-type{color:#087653;background-color:#e3f5ee}.inspector-system-health-signal[data-tone=active] .inspector-system-health-event-type{color:#8a5900;background-color:#fff5df}.inspector-system-health-event-link:hover .inspector-system-health-event-meta strong{text-decoration-color:currentColor}.inspector-system-health-event-link:focus-visible{outline-offset:3px;border-radius:3px;outline:2px solid #6430ab}.inspector-intelligence-hud{background-color:#f7f4fe;border:1px solid #c8c6e6;border-radius:5px;overflow:hidden}.inspector-intelligence-hud-header{justify-content:space-between;align-items:center;gap:24px;padding:18px;display:flex}.inspector-intelligence-hud[data-state=disconnected]{border-color:#bba5df}.inspector-intelligence-hud[data-state=disconnected] .inspector-intelligence-hud-header{align-items:center;min-height:132px;padding:22px}.inspector-intelligence-hud[data-state=disconnected] .inspector-intelligence-hud-header-actions{flex-direction:column;align-items:flex-end;gap:10px}.inspector-intelligence-hud-heading{min-width:0}.inspector-intelligence-hud-header-actions{flex:none;align-items:center;gap:8px;display:flex}.inspector-intelligence-hud-heading .inspector-home-section-title{margin:0;font-size:18px}.inspector-intelligence-hud-description{color:#4f4f55;max-width:64ch;margin:10px 0 0;font-size:12px;line-height:1.55}.inspector-intelligence-hud-action{color:#fff;background-color:#6430ab;border:1px solid #6430ab;border-radius:4px;flex:none;justify-content:center;align-items:center;gap:7px;min-height:34px;padding:8px 11px;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:11px;font-weight:700;text-decoration:none;display:inline-flex}.inspector-intelligence-hud-action:hover{background-color:#4e238c;border-color:#4e238c}.inspector-intelligence-hud-action svg{width:13px;height:13px}.inspector-intelligence-hud-connect-action{min-height:38px;padding:10px 14px;font-size:12px}.inspector-intelligence-hud-details{background-color:#d5d3e4;border-top:1px solid #d5d3e4;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:1px;display:grid}.inspector-intelligence-hud-details>section{background-color:#fff;min-width:0;padding:15px 18px 17px}.inspector-intelligence-hud-detail-label{color:#68686e;font-size:11px;font-weight:600;display:block}.inspector-intelligence-hud-detail-value{color:#010507;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:5px 0 0;font-size:14px;font-weight:700;display:block;overflow:hidden}.inspector-intelligence-hud-detail-subvalue{color:#68686e;text-transform:capitalize;margin-top:3px;font-size:10px;font-weight:500;display:block}.inspector-intelligence-hud-plan{grid-template-columns:minmax(0,1fr) minmax(120px,1fr);align-items:start;gap:24px;display:grid}.inspector-intelligence-hud-usage{min-width:0}.inspector-intelligence-hud-plan-action{color:#6430ab;text-underline-offset:3px;background-color:#0000;border:0;border-radius:0;gap:4px;min-height:auto;margin-top:9px;padding:0;font-size:10px;font-weight:700;line-height:1.2;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px}.inspector-intelligence-hud-plan-action:hover{color:#4e238c;background-color:#0000;border-color:#0000;text-decoration-color:currentColor}.inspector-intelligence-hud-plan-action svg{width:11px;height:11px}.inspector-home-usage-bar{background-color:#dbdbe5;border-radius:999px;width:min(160px,100%);height:5px;margin-top:8px;display:block;overflow:hidden}.inspector-home-usage-bar>span{background-color:#bec2ff;height:100%;display:block}.inspector-home-feature-groups{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));align-items:start;gap:12px;display:grid}.inspector-home-feature-group{background-color:#fff;border:1px solid #d5d3e4;border-radius:5px;overflow:hidden}.inspector-home-feature-group-header{color:#57575b;background-color:#f7f7f9;border-bottom:1px solid #e4e4ec;justify-content:space-between;align-items:center;gap:12px;min-height:40px;padding:9px 12px;display:flex}.inspector-home-feature-group-header strong{font-size:12px;font-weight:700}.inspector-home-feature-group-header>span{background-color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:22px;min-height:20px;padding:2px 6px;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;font-weight:700;display:inline-flex}.inspector-home-feature-group[data-feature-state-group=active] .inspector-home-feature-group-header{color:#087653;background-color:#e5f7f1;border-color:#b9e3d6}.inspector-home-feature-list{background-color:#fff;flex-direction:column;margin:0;display:flex}.inspector-home-feature{color:#010507;background-color:#fff;grid-template-columns:minmax(0,1fr) auto 14px;align-items:center;gap:8px;min-width:0;min-height:43px;padding:10px 12px;font-size:12px;font-weight:600;text-decoration:none;display:grid}.inspector-home-feature+.inspector-home-feature{border-top:1px solid #ececf1}.inspector-home-feature-group-empty{color:#68686e;margin:0;padding:15px 12px;font-size:11px}.inspector-home-feature:hover{background-color:#f7f7f9}.inspector-home-feature-arrow svg{width:12px;height:12px}.inspector-home-feature small{color:#087653;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;font-weight:700}.inspector-home-feature[data-state=off],.inspector-home-feature[data-state=off] small,.inspector-home-feature-arrow{color:#68686e}.inspector-home-features-empty{color:#57575b;border-top:1px solid #deddea;border-bottom:1px solid #deddea;margin:14px 0 0;padding:16px 0;font-size:12px}.inspector-home-news{gap:12px;display:grid}.inspector-whats-new-preview{color:#010507;background-color:#f7f4fe;border:1px solid #c8c6e6;border-radius:5px;align-items:stretch;width:100%;min-height:64px;display:flex;position:relative;overflow:hidden;container-type:inline-size}.inspector-whats-new-preview:has(.inspector-whats-new-preview-body:hover){background-color:#f1ebfc;border-color:#8f91d7}.inspector-whats-new-preview-body{min-width:0;color:inherit;text-align:left;cursor:pointer;background-color:#0000;border:0;flex:auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.inspector-whats-new-preview-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.inspector-whats-new-preview-title{align-items:center;gap:8px;min-width:0;display:flex}.inspector-whats-new-preview-copy strong{text-overflow:ellipsis;white-space:nowrap;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:13px;line-height:1.25;overflow:hidden}.inspector-whats-new-preview-copy>span:last-child{color:#4e4c63;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.4;overflow:hidden}.inspector-whats-new-preview-action{color:#3f176f;white-space:nowrap;flex:none;align-items:center;gap:6px;font-size:11px;font-weight:700;display:inline-flex}.inspector-whats-new-preview-action svg{width:15px;height:15px}@container (max-width:640px){.inspector-whats-new-preview-body{grid-template-columns:minmax(0,1fr)}.inspector-whats-new-preview-action{display:none}}.inspector-whats-new-preview-dismiss{color:#68686e;cursor:pointer;background-color:#0000;border:0;border-radius:5px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.inspector-whats-new-preview-dismiss:hover{color:#3f176f;background-color:#6430ab1a}.inspector-whats-new-preview-dismiss svg{width:14px;height:14px}@media (max-width:720px){.inspector-account-cta{width:32px;padding-inline:0}.inspector-account-cta-label{display:none}.inspector-home{padding:24px 22px 34px}.inspector-intelligence-hud-header{flex-wrap:wrap}.inspector-intelligence-hud-details{grid-template-columns:1fr}.inspector-intelligence-hud-plan{grid-template-columns:repeat(2,minmax(0,1fr))}.inspector-whats-new-preview-action{display:none}}@media (max-width:600px){.inspector-system-health{grid-template-columns:1fr}}@media (max-width:480px){.inspector-system-health-section .inspector-system-health-header{align-items:flex-start}.inspector-intelligence-hud-header{flex-direction:column;align-items:stretch}.inspector-intelligence-hud-header-actions{justify-content:space-between}.inspector-intelligence-hud-header-actions .inspector-intelligence-hud-action,.inspector-intelligence-hud-plan{width:100%}.inspector-intelligence-hud-plan{grid-template-columns:1fr;align-items:stretch}.inspector-intelligence-hud-plan-action{justify-self:start}.inspector-whats-new-header{align-items:center;gap:16px;width:calc(100% - 24px);padding:24px 22px}.inspector-whats-new-document,.inspector-whats-new-empty{padding:20px 22px 36px}.inspector-whats-new-document .announcement-content h1+p{font-size:16px}}.inspector-whats-new-header{background:#f8f7ff;border:1px solid #d8d8e8;border-radius:5px;justify-content:space-between;align-items:center;gap:24px;width:calc(100% - 44px);max-width:calc(70ch - 44px);padding:30px 32px 28px;display:flex;box-shadow:0 12px 28px #26224e0f}.inspector-whats-new-header .inspector-home-title{letter-spacing:-.035em;margin:0;font-size:clamp(27px,3.6vw,36px)}.inspector-whats-new-updated{color:#6c687c;letter-spacing:.01em;white-space:nowrap;flex:none;margin:0;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:11px;font-weight:600}.inspector-whats-new .inspector-home-news{max-width:70ch;margin-top:0}.inspector-whats-new-document,.inspector-whats-new-empty{max-width:70ch;padding:22px 32px 52px}.inspector-whats-new-document .announcement-content{color:#2b2b39;font-size:15px;line-height:1.72}.inspector-whats-new-document .announcement-content h1{color:#15131d;letter-spacing:-.032em;max-width:24ch;margin:0 0 16px;font-size:clamp(26px,3.2vw,34px);line-height:1.1}.inspector-whats-new-document .announcement-content h1+p{color:#504d61;max-width:58ch;margin-top:0;font-size:18px;line-height:1.58}.inspector-whats-new-document .announcement-content>hr:first-child{display:none}.inspector-whats-new-document .announcement-content h2:first-of-type{border-top:0;margin-top:14px;padding-top:0}.inspector-whats-new-document .announcement-content h2{color:#1b1924;letter-spacing:-.024em;border-top:1px solid #dfdeea;margin:44px 0 14px;padding-top:24px;font-size:21px;line-height:1.2}.inspector-whats-new-document .announcement-content p{max-width:70ch;margin:.85rem 0}.inspector-whats-new-document .announcement-content ul,.inspector-whats-new-document .announcement-content ol{max-width:68ch;margin:1.25rem 0 1.5rem;padding-left:1.4rem}.inspector-whats-new-document .announcement-content li+li{margin-top:.7rem}.inspector-whats-new-document .announcement-content a{color:#4e46a5;text-underline-offset:4px;font-weight:600;text-decoration-color:#4e46a56b;text-decoration-thickness:1px;transition:color .16s,text-decoration-color .16s}.inspector-whats-new-document .announcement-content a:hover{color:#312879;text-decoration-color:currentColor}.inspector-whats-new-empty{color:#5e5b70}.inspector-whats-new-empty .inspector-home-card-title{color:#1b1924;margin:0}.inspector-whats-new-empty .inspector-home-card-copy{max-width:48ch;margin:8px 0 0}.inspector-home-story-featured{padding:22px}.inspector-home-story-link{color:inherit;cursor:pointer;text-decoration:none;display:block}.inspector-home-story-link:hover{background-color:#fff;border-color:#8f91d7}.inspector-home-story[data-unread=true]{border-color:#bec2ff;padding-right:64px;box-shadow:0 0 0 1px #6430ab}.inspector-home-story-unread{color:#fff;letter-spacing:.04em;text-transform:uppercase;background-color:#6430ab;border-radius:999px;align-items:center;min-height:18px;padding:0 7px;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;font-weight:700;display:inline-flex}.inspector-nav-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;transition:opacity .18s,width .22s;overflow:hidden}.inspector-nav-control{color:#57575b;min-height:32px;font:inherit;text-align:left;outline-offset:-2px;cursor:pointer;background-color:#0000;border:1px solid #0000;border-radius:5px;outline:2px solid #0000;flex:none;justify-content:flex-start;align-items:center;gap:6px;padding:6px 9px;font-size:12px;font-weight:600;line-height:1.25;display:flex}.inspector-nav-control:hover{color:#010507;background-color:#f0f0f4}.inspector-nav-control-active{color:#3f176f;background-color:#eee6fe;border-color:#bec2ff}.inspector-nav-icon{flex:none;align-items:center;display:inline-flex}.inspector-nav-icon svg{width:15px;height:15px}.inspector-nav-control:focus-visible,.inspector-account-control:focus-visible,[data-inspector-thread-cta]:focus-visible,[data-inspector-sidebar-intelligence-action]:focus-visible,[data-inspector-whats-new-preview]:focus-visible,[data-inspector-whats-new-dismiss]:focus-visible,[data-inspector-home-intelligence-action]:focus-visible,.inspector-home-feature:focus-visible,[data-inspector-action-placement=threads-footer]:focus-visible{outline-offset:2px;outline:2px solid #6430ab!important}.inspector-sidebar .inspector-nav-control:focus-visible,.inspector-sidebar .inspector-sidebar-label:focus-visible,.inspector-sidebar [data-inspector-thread-cta]:focus-visible{outline-offset:-2px!important}.inspector-account-control{color:#57575b;font:inherit;outline-offset:2px;cursor:pointer;background-color:#0000;border:1px solid #0000;outline:2px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.inspector-account-control:hover,.inspector-account-control-active{color:#3f176f;background-color:#6430ab17}:host ::selection{color:#010507;background-color:#cfd2ff}:host *{scrollbar-color:#aaa9c1 transparent;scrollbar-width:thin}:host ::-webkit-scrollbar{width:8px;height:8px}:host ::-webkit-scrollbar-thumb{background:#aaa9c1 padding-box padding-box;border:2px solid #0000;border-radius:999px}.inspector-account-control-icon{flex:none;justify-content:center;align-items:center;display:inline-flex}.inspector-account-control-icon svg{width:15px;height:15px}[data-inspector-thread-cta],[data-inspector-account-strip] button,[data-inspector-account-strip] a{cursor:pointer}@media (prefers-reduced-motion:reduce){.inspector-sidebar,.inspector-nav-label{transition:none}}[data-inspector-threads-setup-prompt],[data-inspector-threads-setup-link]{min-height:34px;font:inherit;outline-offset:2px;cursor:pointer;border:1px solid #dbdbe5;border-radius:7px;outline:2px solid #0000;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}[data-inspector-threads-setup-prompt]{color:#fff;background-color:#010507;border-color:#010507}[data-inspector-threads-setup-prompt]:hover{background-color:#2b2b2b;border-color:#2b2b2b}[data-inspector-threads-setup-link]{color:#57575b;background-color:#fff}[data-inspector-threads-setup-link]:hover{color:#010507;background-color:#f7f7f9;border-color:#afafb7}[data-inspector-threads-setup-prompt]:focus-visible,[data-inspector-threads-setup-link]:focus-visible{outline-offset:2px;outline:2px solid #6430ab}.inspector-threads-footer{color:#57575b;background-color:#f7f7f9;border-top:1px solid #dbdbe5;flex:none;gap:10px;padding:12px;font-size:11px;line-height:1.35;display:grid}.inspector-threads-usage{gap:6px;display:grid}[data-inspector-thread-count]{color:#010507;font-weight:600}[data-inspector-thread-expiry]{color:#57575b}.inspector-thread-progress{--inspector-thread-progress-color:#189370;width:100%;height:6px;accent-color:var(--inspector-thread-progress-color);border-radius:999px;overflow:hidden}.inspector-thread-progress[data-inspector-thread-capacity=warning]{--inspector-thread-progress-color:#b45309}.inspector-thread-progress[data-inspector-thread-capacity=critical]{--inspector-thread-progress-color:#be123c}.inspector-thread-progress::-webkit-progress-bar{background-color:#dbdbe5;border-radius:999px}.inspector-thread-progress::-webkit-progress-value{background-color:var(--inspector-thread-progress-color);border-radius:999px}.inspector-thread-progress::-moz-progress-bar{background-color:var(--inspector-thread-progress-color);border-radius:999px}[data-inspector-action-placement=threads-footer]{color:#57575b;outline-offset:2px;cursor:pointer;background-color:#0000;border:1px solid #d5d3e4;border-radius:5px;outline:2px solid #0000;justify-content:center;align-items:center;width:100%;min-height:32px;padding:6px 9px;font-size:11px;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}[data-inspector-action-placement=threads-footer][data-inspector-action-intent=upgrade]{color:#fff;background-color:#6430ab;border-color:#6430ab}[data-inspector-action-placement=threads-footer][data-inspector-action-intent=upgrade]:hover{color:#fff;background-color:#3f176f;border-color:#3f176f}[data-inspector-action-placement=threads-footer]:hover{color:#010507;background-color:#f7f4fe;border-color:#c8c6e6}.cpk-threads-overview-video{opacity:0;transition:opacity .22s}.cpk-threads-overview{background-color:#f7f7f9;flex:1;justify-content:center;align-items:center;min-width:0;padding:32px;display:flex}.cpk-threads-overview-content{color:#57575b;width:100%;max-width:440px}.cpk-threads-overview-title{color:#010507;margin:0 0 10px;font-size:20px;font-weight:600;line-height:1.25}.cpk-threads-overview-copy{color:#57575b;margin:0 0 16px;font-size:13px;line-height:1.55}.cpk-threads-overview-actions{flex-wrap:wrap;gap:8px;display:flex}.cpk-threads-overview-action{outline-offset:2px;border:1px solid #0000;border-radius:7px;outline:2px solid #0000;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:8px 12px;font-size:12px;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}.cpk-threads-overview-action-primary{color:#fff;background-color:#010507;border-color:#010507}.cpk-threads-overview-action-primary:hover{background-color:#2b2b2b;border-color:#2b2b2b}.cpk-threads-overview-action-secondary{color:#010507;background-color:#fff;border-color:#dbdbe5}.cpk-threads-overview-action-secondary:hover{background-color:#fff;border-color:#afafb7}.cpk-threads-overview-video[data-loaded=true]{opacity:1}.cpk-threads-overview-video-control{color:#3f176f;min-height:32px;font:inherit;outline-offset:2px;cursor:pointer;background-color:#fff;border:1px solid #dbdbe5;border-radius:5px;outline:2px solid #0000;justify-content:center;align-items:center;margin:0 0 14px;padding:6px 10px;font-size:12px;font-weight:600;line-height:1.25;display:inline-flex}.cpk-threads-overview-video-control:hover{color:#010507;background-color:#f7f7f9;border-color:#afafb7}.cpk-threads-overview-video-control:focus-visible{outline-offset:2px;outline:2px solid #6430ab}.cpk-threads-overview-video-fallback{color:#57575b;max-width:440px;margin:-4px 0 14px;font-size:12px;line-height:1.5}.cpk-threads-tour-launch{z-index:2;color:#57575b;outline-offset:2px;cursor:pointer;background-color:#fff;border:1px solid #dbdbe5;border-radius:7px;outline:2px solid #0000;padding:7px 10px;font-size:12px;font-weight:600;position:absolute;bottom:16px;right:16px;box-shadow:0 8px 18px #01050714}.cpk-threads-tour{z-index:3;color:#57575b;background-color:#fff;border:1px solid #dbdbe5;border-radius:10px;width:min(340px,100% - 32px);padding:14px;position:absolute;bottom:16px;right:16px;box-shadow:0 16px 36px #01050724}.cpk-threads-tour-step{color:#087653;text-transform:uppercase;margin-bottom:8px;font-family:Spline Sans Mono,monospace;font-size:10px;font-weight:600}.cpk-threads-tour-title{color:#010507;margin-bottom:6px;font-size:14px;font-weight:600;line-height:1.35}.cpk-threads-tour-copy{color:#57575b;font-size:12px;line-height:1.5}.cpk-threads-tour-actions{justify-content:space-between;gap:8px;margin-top:14px;display:flex}.cpk-threads-tour-nav{gap:8px;display:flex}.cpk-threads-tour-skip,.cpk-threads-tour-button{font:inherit;outline-offset:2px;cursor:pointer;border-radius:7px;outline:2px solid #0000;padding:7px 10px;font-size:12px;font-weight:600}.cpk-threads-overview-action:focus-visible,.cpk-threads-tour-launch:focus-visible,.cpk-threads-tour-skip:focus-visible,.cpk-threads-tour-button:focus-visible{outline-color:#6430ab}.cpk-threads-tour-skip{color:#68686e;background-color:#0000;border:0;padding-inline:0}.cpk-threads-tour-button-secondary{color:#57575b;background-color:#fff;border:1px solid #dbdbe5}.cpk-threads-tour-button-primary{color:#fff;background-color:#010507;border:1px solid #010507}.cpk-threads-tour-button:disabled{cursor:not-allowed;opacity:.45}@media (max-width:720px){.cpk-threads-overview{padding:24px}}@media (prefers-reduced-motion:reduce){.cpk-threads-overview-video{transition:none}}.inspector-window[data-color-scheme=dark]{color-scheme:dark;color:#f3f4f8!important;background-color:#111319!important;border-color:#7b7d89!important}.inspector-window[data-color-scheme=dark]>div,.inspector-window[data-color-scheme=dark] .inspector-shell,.inspector-window[data-color-scheme=dark] .inspector-main,.inspector-window[data-color-scheme=dark] #cpk-main-scroll{color:#f3f4f8!important;background-color:#111319!important}.inspector-window[data-color-scheme=dark] .drag-handle,.inspector-window[data-color-scheme=dark] .inspector-account-strip{color:#f3f4f8!important;background:#171a22!important;border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .inspector-account-logo{filter:brightness(0)invert();clip-path:inset(0 20% 0 0)}.inspector-window[data-color-scheme=dark] .inspector-account-logo-accent{filter:none;display:block}.inspector-window[data-color-scheme=dark] .inspector-agent-placeholder{color:#b8bbc7!important;border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .inspector-account-control{color:#b8bbc7!important;border:0!important}.inspector-window[data-color-scheme=dark] .inspector-account-control:hover,.inspector-window[data-color-scheme=dark] .inspector-account-control-active{color:#d8d9ff!important;background-color:#292c38!important}.inspector-window[data-color-scheme=dark] .inspector-account-cta{color:#d8d9ff;background-color:#292b43}.inspector-window[data-color-scheme=dark] .inspector-account-cta:hover{color:#fff;background-color:#353854}.inspector-window[data-color-scheme=dark] .inspector-window-layout-menu{color:#f3f4f8;background-color:#191c24;border-color:#464957;box-shadow:0 12px 28px #00000052}.inspector-window[data-color-scheme=dark] .inspector-window-layout-menu button:hover,.inspector-window[data-color-scheme=dark] .inspector-window-layout-menu button:focus-visible{color:#d8d9ff;background-color:#292b43}.inspector-window[data-color-scheme=dark] .inspector-sidebar .inspector-agent-selector>[data-context-dropdown-root=true]>button{color:#f3f4f8!important;background-color:#20232c!important;border-color:#464957!important}.inspector-window[data-color-scheme=dark] .inspector-sidebar .inspector-agent-selector>[data-context-dropdown-root=true]>button:hover{background-color:#292c38!important;border-color:#777aae!important}.inspector-window[data-color-scheme=dark] .inspector-sidebar .inspector-agent-selector>[data-context-dropdown-root=true]>button>span:last-child{color:#aeb1bd!important}.inspector-window[data-color-scheme=dark] [data-context-dropdown-root=true]>div{color:#f3f4f8!important;box-shadow:none!important;background-color:#191c24!important;border-color:#464957!important}.inspector-window[data-color-scheme=dark] [data-context-dropdown-root=true]>div button:hover,.inspector-window[data-color-scheme=dark] [data-context-dropdown-root=true]>div button:focus{color:#f3f4f8!important;background-color:#343746!important}.inspector-window[data-color-scheme=dark] .inspector-sidebar,.inspector-window[data-color-scheme=dark] .inspector-snippet-sidebar{color:#f3f4f8;background-color:#15171e;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-sidebar-label{color:#8f93a1}.inspector-window[data-color-scheme=dark] .inspector-sidebar-rail-tooltip{color:#191c24;background-color:#e9e9f1;box-shadow:0 7px 18px #00000047}.inspector-window[data-color-scheme=dark] .inspector-nav-control,.inspector-window[data-color-scheme=dark] .inspector-sidebar-toggle{color:#b8bbc7}.inspector-window[data-color-scheme=dark] .inspector-nav-control:hover,.inspector-window[data-color-scheme=dark] .inspector-sidebar-toggle:hover{color:#fff;background-color:#22252f}.inspector-window[data-color-scheme=dark] .inspector-nav-control-active{color:#d8d9ff;background-color:#292b43;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .inspector-sidebar-agent-scope{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-card{background-color:#191c24;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-copy strong{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-copy>span,.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-card[data-state=disconnected] .inspector-sidebar-status-copy>span{color:#9da1af}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-action{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-action:hover{color:#fff;background-color:#292b43}.inspector-window[data-color-scheme=dark] .inspector-sidebar-intelligence-setup{color:#d8d9ff;background-color:#292b43;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .inspector-sidebar-intelligence-setup:hover{background-color:#343653;border-color:#777aae}.inspector-window[data-color-scheme=dark] .inspector-sidebar-intelligence-setup .inspector-sidebar-status-copy strong{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-sidebar-setup-arrow{background-color:#caccff1f}@media (prefers-reduced-motion:reduce){.inspector-sidebar-intelligence-setup{animation:none}}.inspector-window[data-color-scheme=dark] .inspector-home{background-color:#111319}.inspector-window[data-color-scheme=dark] .inspector-settings{color:#f3f4f8;background-color:#111319}.inspector-window[data-color-scheme=dark] .inspector-settings-header,.inspector-window[data-color-scheme=dark] .inspector-settings-privacy,.inspector-window[data-color-scheme=dark] .inspector-settings-private-content{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-settings-title,.inspector-window[data-color-scheme=dark] .inspector-settings-section-heading h2,.inspector-window[data-color-scheme=dark] .inspector-settings-status-row h3,.inspector-window[data-color-scheme=dark] .inspector-settings-private-content strong{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-settings-subtitle,.inspector-window[data-color-scheme=dark] .inspector-settings-section-heading p,.inspector-window[data-color-scheme=dark] .inspector-settings-status-row p,.inspector-window[data-color-scheme=dark] .inspector-settings-private-content>p{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-settings-section-icon{color:#d8d9ff;background-color:#292b43;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .inspector-settings-private-content li{color:#c9ccd6}.inspector-window[data-color-scheme=dark] .inspector-settings-private-content li span{color:#75d8b9}.inspector-window[data-color-scheme=dark] .inspector-settings-status{color:#8ce1c5;background-color:#173b32;border-color:#347d69}.inspector-window[data-color-scheme=dark] .inspector-settings-privacy[data-state=disabled] .inspector-settings-status{color:#f2cf8f;background-color:#342916;border-color:#866932}.inspector-window[data-color-scheme=dark] .inspector-settings-policy-link{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-settings-policy-link:hover{color:#fff}.inspector-window[data-color-scheme=dark] .inspector-home-card,.inspector-window[data-color-scheme=dark] .inspector-home-story,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud,.inspector-window[data-color-scheme=dark] .inspector-home-feature-list,.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview{color:#f3f4f8;background:#191c24;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud[data-state=disconnected]{background-color:#1d1e2b;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud[data-state=disconnected] .inspector-intelligence-hud-description{color:#c5c7d0}.inspector-window[data-color-scheme=dark] .inspector-system-health,.inspector-window[data-color-scheme=dark] .inspector-system-health-section{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-system-health-section{background-color:#191c24}.inspector-window[data-color-scheme=dark] .inspector-system-health-section .inspector-system-health-header{background-color:#191c24;border-bottom-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-system-health{background-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal{background-color:#191c24}.inspector-window[data-color-scheme=dark] .inspector-system-health-event-link>small{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-system-health-header>span[data-tone=success]{color:#8ce1c5}.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=success],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=success]{background-color:#173b32;border-color:#347d69;color:#8ce1c5!important}.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=checking],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=checking]{background-color:#342916;border-color:#866932;color:#f2cf8f!important}.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=offline],.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=error],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=offline],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=error]{background-color:#3b1c22;border-color:#87424a;color:#ff9aa0!important}.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=unavailable],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=unavailable]{background-color:#242731;border-color:#464957;color:#aeb1bd!important}.inspector-window[data-color-scheme=dark] .inspector-system-health-header>span[data-tone=checking]{color:#f2cf8f}.inspector-window[data-color-scheme=dark] .inspector-system-health-header>span[data-tone=offline],.inspector-window[data-color-scheme=dark] .inspector-system-health-header>span[data-tone=error]{color:#ff9aa0}.inspector-window[data-color-scheme=dark] .inspector-home-story-link:hover,.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview:has(.inspector-whats-new-preview-body:hover){background:#242131;border-color:#777aae}.inspector-window[data-color-scheme=dark] .inspector-home-title,.inspector-window[data-color-scheme=dark] .inspector-home-section-title,.inspector-window[data-color-scheme=dark] .inspector-home-card-title,.inspector-window[data-color-scheme=dark] .inspector-system-health-signal dd,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details .inspector-intelligence-hud-detail-value,.inspector-window[data-color-scheme=dark] .inspector-home-feature{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-home-eyebrow,.inspector-window[data-color-scheme=dark] .inspector-home-card-label,.inspector-window[data-color-scheme=dark] .inspector-home-meta,.inspector-window[data-color-scheme=dark] .inspector-home-body,.inspector-window[data-color-scheme=dark] .inspector-home-card-copy,.inspector-window[data-color-scheme=dark] .inspector-system-health-signal dt,.inspector-window[data-color-scheme=dark] .inspector-system-health-signal small,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-heading p,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details .inspector-intelligence-hud-detail-label,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details .inspector-intelligence-hud-detail-subvalue,.inspector-window[data-color-scheme=dark] .inspector-home-section-header>span,.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview-copy>span:last-child{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details{background-color:#3a3d49;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details>section{background-color:#15171e}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-plan-action{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-plan-action:hover{color:#fff;background-color:#0000;border-color:#0000}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal+.inspector-system-health-signal,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details>section+section,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details,.inspector-window[data-color-scheme=dark] .inspector-home-features-empty{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=success] dd,.inspector-window[data-color-scheme=dark] .inspector-home-feature small{color:#8ce1c5}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=active] dd{color:#f2cf8f}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=error] .inspector-system-health-event-type{color:#ff9aa0;background-color:#3b1c22}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=success] .inspector-system-health-event-type{color:#8ce1c5;background-color:#173b32}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=active] .inspector-system-health-event-type{color:#f2cf8f;background-color:#342916}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group{background-color:#191c24;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group-header{color:#c9ccd6;background-color:#20232d;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group-header>span{color:#c9ccd6;background-color:#191c24}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group[data-feature-state-group=active] .inspector-home-feature-group-header{color:#8ce1c5;background-color:#173b32;border-color:#347d69}.inspector-window[data-color-scheme=dark] .inspector-home-feature{background-color:#191c24}.inspector-window[data-color-scheme=dark] .inspector-home-feature:hover{background-color:#20232d}.inspector-window[data-color-scheme=dark] .inspector-home-feature+.inspector-home-feature{border-color:#2f323d}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group-empty{color:#9da1af}.inspector-window[data-color-scheme=dark] .inspector-home-feature[data-state=off]{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-home-feature[data-state=off] small,.inspector-window[data-color-scheme=dark] .inspector-home-feature-arrow{color:#9da1af}.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview-dismiss{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview-dismiss:hover{color:#fff;background-color:#302a40}.inspector-window[data-color-scheme=dark] .inspector-home-usage-bar{background-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-thread-progress::-webkit-progress-bar{background-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-whats-new-header{box-shadow:none;background-color:#1d1e2b;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-whats-new-updated,.inspector-window[data-color-scheme=dark] .inspector-whats-new-empty{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview-action{color:#d8d9ff}.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview:hover .inspector-whats-new-preview-action{color:#fff}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document,.inspector-window[data-color-scheme=dark] .inspector-whats-new-empty{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content{color:#c9ccd6}.inspector-window[data-color-scheme=dark] .inspector-whats-new-empty .inspector-home-card-title{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h1+p{color:#c9ccd6}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h2{border-top-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h1,.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h2,.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h3,.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content strong{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content a{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-threads-footer{color:#aeb1bd;background-color:#15171e;border-color:#343742}.inspector-window[data-color-scheme=dark] [data-inspector-thread-count]{color:#f3f4f8}.inspector-window[data-color-scheme=dark] [data-inspector-thread-expiry]{color:#aeb1bd}.inspector-window[data-color-scheme=dark] [data-inspector-action-placement=threads-footer]{color:#d8d9ff;background-color:#191c24;border-color:#464957}.inspector-window[data-color-scheme=dark] [data-inspector-action-placement=threads-footer]:hover{color:#fff;background-color:#20232d;border-color:#777aae}.inspector-window[data-color-scheme=dark] .cpk-threads-overview{background-color:#111319}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-content,.inspector-window[data-color-scheme=dark] .cpk-threads-overview-copy,.inspector-window[data-color-scheme=dark] .cpk-threads-overview-video-fallback,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-copy{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-title,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-title{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-video-frame{background:linear-gradient(135deg,#666a9e3d,#347d6929),#191c24;border-color:#3a3d49;box-shadow:0 8px 20px #00000038}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-video-control,.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action-secondary,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-launch,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button-secondary{color:#d8d9ff;background-color:#191c24;border-color:#464957}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-video-control:hover,.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action-secondary:hover,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-launch:hover,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button-secondary:hover{color:#fff;background-color:#242731;border-color:#777aae}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action-primary,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button-primary{color:#171823;background-color:#caccff;border-color:#caccff}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action-primary:hover,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button-primary:hover{background-color:#d8d9ff;border-color:#d8d9ff}.inspector-window[data-color-scheme=dark] .cpk-threads-tour{color:#aeb1bd;background-color:#191c24;border-color:#464957;box-shadow:0 16px 36px #00000052}.inspector-window[data-color-scheme=dark] .cpk-threads-tour-step{color:#8ce1c5}.inspector-window[data-color-scheme=dark] .cpk-threads-tour-skip{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action:focus-visible,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-launch:focus-visible,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-skip:focus-visible,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button:focus-visible{outline-color:#bec2ff}.inspector-window[data-color-scheme=dark] .cpk-memory-locked{color:#f3f4f8;background-color:#111319}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-sidebar{background-color:#15171e;border-color:#2f323d}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-main{background-color:#111319}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row{background-color:#191c24;box-shadow:inset 0 0 0 1px #2f323d}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row[data-accent=true]{background-color:#292b43}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-bar{background-color:#333641}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row[data-accent=true] .cpk-locked-preview-row-title{background-color:#777aae}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row-line,.inspector-window[data-color-scheme=dark] .cpk-locked-preview-copy,.inspector-window[data-color-scheme=dark] .cpk-locked-preview-footer-line{background-color:#2f323d}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row-line:last-child,.inspector-window[data-color-scheme=dark] .cpk-locked-preview-copy+.cpk-locked-preview-copy,.inspector-window[data-color-scheme=dark] .cpk-locked-preview-footer-line+.cpk-locked-preview-footer-line{background-color:#292c36}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-card{background-color:#191c24;box-shadow:inset 0 0 0 1px #2f323d}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-scrim{background:radial-gradient(circle,#111319f0 0,#111319d6 24%,#11131975 48%,#111319ad 100%)}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-content,.inspector-window[data-color-scheme=dark] .cpk-memory-locked-copy{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-title{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-icon{color:#d8d9ff;box-shadow:none;background-color:#292b43;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-action-secondary{color:#d8d9ff;background-color:#191c24;border-color:#464957}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-action-secondary:hover{color:#fff;background-color:#242731;border-color:#777aae}.inspector-window[data-color-scheme=dark] .cpk-agent-overview,.inspector-window[data-color-scheme=dark] .cpk-section-card{background-color:#191c24!important;border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .cpk-section-header{background-color:#242731!important;border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .cpk-section-header h4{color:#f3f4f8!important}.inspector-window[data-color-scheme=dark] .cpk-agent-icon{color:#d8d9ff!important;background-color:#292b43!important}.inspector-window[data-color-scheme=dark] .cpk-stat-card{background-color:#191c24!important;border-color:#464957!important}.inspector-window[data-color-scheme=dark] button.cpk-stat-card:hover{background-color:#20232d!important}.inspector-window[data-color-scheme=dark] .cpk-agent-view .divide-gray-200>:not([hidden])~:not([hidden]){border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .cpk-json-block{color:#c9ccd6}.inspector-window[data-color-scheme=dark] [class*=bg-emerald-50],.inspector-window[data-color-scheme=dark] [class*=bg-green-100]{color:#8ce1c5!important;background-color:#173b32!important}.inspector-window[data-color-scheme=dark] [class*=bg-rose-50]{color:#ff9aa0!important;background-color:#3b1c22!important}.inspector-window[data-color-scheme=dark] [data-cpk-event-error] p,.inspector-window[data-color-scheme=dark] [data-playground-error] p{color:inherit!important}.inspector-window[data-color-scheme=dark] [class*=bg-amber-50],.inspector-window[data-color-scheme=dark] [class*=bg-amber-100]{color:#f2cf8f!important;background-color:#342916!important}.inspector-window[data-color-scheme=dark] [class*=bg-blue-50],.inspector-window[data-color-scheme=dark] [class*=bg-blue-100],.inspector-window[data-color-scheme=dark] [class*=bg-sky-50],.inspector-window[data-color-scheme=dark] [class*=bg-violet-50],.inspector-window[data-color-scheme=dark] [class*=bg-purple-50],.inspector-window[data-color-scheme=dark] [class*=bg-fuchsia-50]{color:#d8d9ff!important;background-color:#292b43!important}.inspector-window[data-color-scheme=dark] [class*=bg-white]{background-color:#191c24!important}.inspector-window[data-color-scheme=dark] [class*=bg-gray-50],.inspector-window[data-color-scheme=dark] [class*=bg-slate-50],.inspector-window[data-color-scheme=dark] [class*=bg-gray-100],.inspector-window[data-color-scheme=dark] [class*=bg-slate-100]{background-color:#171a22!important}.inspector-window[data-color-scheme=dark] [class*=text-gray-900],.inspector-window[data-color-scheme=dark] [class*=text-slate-900],.inspector-window[data-color-scheme=dark] [class*=text-gray-800],.inspector-window[data-color-scheme=dark] [class*=text-slate-800],.inspector-window[data-color-scheme=dark] [class*=text-gray-700],.inspector-window[data-color-scheme=dark] [class*=text-slate-700]{color:#f3f4f8!important}.inspector-window[data-color-scheme=dark] [class*=text-gray-600],.inspector-window[data-color-scheme=dark] [class*=text-slate-600],.inspector-window[data-color-scheme=dark] [class*=text-gray-500],.inspector-window[data-color-scheme=dark] [class*=text-slate-500],.inspector-window[data-color-scheme=dark] [class*=text-gray-400],.inspector-window[data-color-scheme=dark] [class*=text-slate-400]{color:#aeb1bd!important}.inspector-window[data-color-scheme=dark] [class*=border-gray-100],.inspector-window[data-color-scheme=dark] [class*=border-slate-100],.inspector-window[data-color-scheme=dark] [class*=border-gray-200],.inspector-window[data-color-scheme=dark] [class*=border-slate-200],.inspector-window[data-color-scheme=dark] [class*=border-gray-300],.inspector-window[data-color-scheme=dark] [class*=border-slate-300]{border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] input,.inspector-window[data-color-scheme=dark] select,.inspector-window[data-color-scheme=dark] textarea{color:#f3f4f8!important;background-color:#191c24!important;border-color:#464957!important}.inspector-window[data-color-scheme=dark] input::placeholder,.inspector-window[data-color-scheme=dark] textarea::placeholder{color:#858996}.inspector-window[data-color-scheme=dark] ::selection{color:#fff;background-color:#5b5f92}@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-divide-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{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:\"<percentage>\";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:\"<percentage>\";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:\"<length>\";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:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@property --tw-scale-x{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-y{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-z{syntax:\"*\";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}";
9
+ var generated_default = "/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n@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-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,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-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-green-100:oklch(96.2% .044 156.743);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-500:oklch(69.6% .17 162.48);--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-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-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-violet-800:oklch(43.2% .232 292.759);--color-violet-950:oklch(28.3% .141 291.089);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-200:oklch(90.2% .063 306.703);--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-700:oklch(51.4% .222 16.935);--color-rose-800:oklch(45.5% .188 13.697);--color-rose-950:oklch(27.1% .105 12.094);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--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-xs:20rem;--container-md:28rem;--container-3xl:48rem;--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);--font-weight-medium:500;--font-weight-semibold:600;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--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,ui-sans-serif,system-ui,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{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}:host{font-family:var(--font-sans);color:var(--color-slate-900);background-color:#0000;display:block}}@layer components;@layer utilities{.\\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.mx-3{margin-inline:calc(var(--spacing)*3)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-3{margin-block:calc(var(--spacing)*3)}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.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-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mr-auto{margin-right:auto}.mb-0\\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.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-1\\.5{height:calc(var(--spacing)*1.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-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-\\[28rem\\]{height:28rem}.h-full{height:100%}.max-h-32{max-height:calc(var(--spacing)*32)}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-7{min-height:calc(var(--spacing)*7)}.min-h-\\[20rem\\]{min-height:20rem}.min-h-\\[40px\\]{min-height:40px}.min-h-\\[420px\\]{min-height:420px}.w-1\\.5{width:calc(var(--spacing)*1.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-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-40{width:calc(var(--spacing)*40)}.w-auto{width:auto}.w-full{width:100%}.w-px{width:1px}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\\[80\\%\\]{max-width:80%}.max-w-\\[200px\\]{max-width:200px}.max-w-\\[240px\\]{max-width:240px}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\\[200px\\]{min-width:200px}.flex-1{flex:1}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.translate-x-0\\.5{--tw-translate-x:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-\\[2px\\]{--tw-translate-y:calc(2px*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.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)}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.cursor-nwse-resize{cursor:nwse-resize}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.list-none{list-style-type:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.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}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*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-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)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[16px\\]{border-radius:16px}.rounded-\\[28px\\]{border-radius:28px}.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)}.border{border-style:var(--tw-border-style);border-width:1px}.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-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-200{border-color:var(--color-blue-200)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-gray-200{border-color:var(--color-gray-200)}.border-purple-200{border-color:var(--color-purple-200)}.border-rose-200{border-color:var(--color-rose-200)}.border-rose-300{border-color:var(--color-rose-300)}.border-slate-200{border-color:var(--color-slate-200)}.border-violet-200{border-color:var(--color-violet-200)}.bg-\\[\\#00000014\\]{background-color:#00000014}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.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-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-50\\/50{background-color:#f9fafb80}@supports (color:color-mix(in lab, red, red)){.bg-gray-50\\/50{background-color:color-mix(in oklab,var(--color-gray-50)50%,transparent)}}.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-800{background-color:var(--color-gray-800)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-100{background-color:var(--color-green-100)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-500{background-color:var(--color-rose-500)}.bg-slate-900{background-color:var(--color-slate-900)}.bg-transparent{background-color:#0000}.bg-violet-50{background-color:var(--color-violet-50)}.bg-white{background-color:var(--color-white)}.bg-white\\/95{background-color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.bg-white\\/95{background-color:color-mix(in oklab,var(--color-white)95%,transparent)}}.p-0\\.5{padding:calc(var(--spacing)*.5)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.py-10{padding-block:calc(var(--spacing)*10)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-1\\.5{padding-top:calc(var(--spacing)*1.5)}.pt-8{padding-top:calc(var(--spacing)*8)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-5{padding-bottom:calc(var(--spacing)*5)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.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-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[13px\\]{font-size:13px}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-\\[22px\\]{--tw-leading:22px;line-height:22px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[rgb\\(13\\,13\\,13\\)\\]{color:#0d0d0d}.text-amber-600{color:var(--color-amber-600)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.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-700{color:var(--color-emerald-700)}.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-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-purple-700{color:var(--color-purple-700)}.text-rose-700{color:var(--color-rose-700)}.text-rose-800{color:var(--color-rose-800)}.text-rose-950{color:var(--color-rose-950)}.text-slate-500{color:var(--color-slate-500)}.text-slate-800{color:var(--color-slate-800)}.text-violet-500{color:var(--color-violet-500)}.text-violet-600{color:var(--color-violet-600)}.text-violet-950{color:var(--color-violet-950)}.text-white{color:var(--color-white)}.italic{font-style:italic}.underline{text-decoration-line:underline}.decoration-violet-300{-webkit-text-decoration-color:var(--color-violet-300);-webkit-text-decoration-color:var(--color-violet-300);text-decoration-color:var(--color-violet-300)}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-80{opacity:.8}.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-\\[0_4px_4px_0_\\#0000000a\\,0_0_1px_0_\\#0000009e\\]{--tw-shadow:0 4px 4px 0 var(--tw-shadow-color,#0000000a),0 0 1px 0 var(--tw-shadow-color,#0000009e);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-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px 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)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + 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-transparent{--tw-ring-color:transparent}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.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-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-shadow{transition-property:box-shadow;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))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-gray-500::placeholder{color:var(--color-gray-500)}.focus-within\\:shadow-\\[0_6px_18px_0_\\#00000014\\,0_0_1px_0_\\#0000009e\\]:focus-within{--tw-shadow:0 6px 18px 0 var(--tw-shadow-color,#00000014),0 0 1px 0 var(--tw-shadow-color,#0000009e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media (hover:hover){.hover\\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\\:bg-blue-50\\/50:hover{background-color:#eff6ff80}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-blue-50\\/50:hover{background-color:color-mix(in oklab,var(--color-blue-50)50%,transparent)}}.hover\\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\\:bg-gray-800:hover{background-color:var(--color-gray-800)}.hover\\:bg-rose-100:hover{background-color:var(--color-rose-100)}.hover\\:bg-violet-100:hover{background-color:var(--color-violet-100)}.hover\\:text-gray-900:hover{color:var(--color-gray-900)}.hover\\:text-violet-800:hover{color:var(--color-violet-800)}.hover\\:decoration-violet-700:hover{-webkit-text-decoration-color:var(--color-violet-700);-webkit-text-decoration-color:var(--color-violet-700);text-decoration-color:var(--color-violet-700)}.hover\\:opacity-70:hover{opacity:.7}}.focus\\:border-gray-300:focus{border-color:var(--color-gray-300)}.focus\\:border-violet-400:focus{border-color:var(--color-violet-400)}.focus\\:bg-gray-50:focus{background-color:var(--color-gray-50)}.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-gray-200:focus{--tw-ring-color:var(--color-gray-200)}.focus\\:ring-violet-100:focus{--tw-ring-color:var(--color-violet-100)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\\:rounded:focus-visible{border-radius:.25rem}.focus-visible\\:rounded-sm:focus-visible{border-radius:var(--radius-sm)}.focus-visible\\:ring-2:focus-visible{--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-visible\\:ring-rose-300:focus-visible{--tw-ring-color:var(--color-rose-300)}.focus-visible\\:ring-violet-300:focus-visible{--tw-ring-color:var(--color-violet-300)}.focus-visible\\:ring-violet-400:focus-visible{--tw-ring-color:var(--color-violet-400)}.focus-visible\\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\\:outline-\\[\\#BEC2FF\\]:focus-visible{outline-color:#bec2ff}.focus-visible\\:outline-gray-300:focus-visible{outline-color:var(--color-gray-300)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\\:opacity-60:active{opacity:.6}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:text-gray-500:disabled{color:var(--color-gray-500)}.disabled\\:opacity-50:disabled{opacity:.5}.disabled\\:opacity-60:disabled{opacity:.6}@media (min-width:48rem){.md\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\\[\\&\\>svg\\]\\:\\!h-8>svg{height:calc(var(--spacing)*8)!important}.\\[\\&\\>svg\\]\\:h-3>svg{height:calc(var(--spacing)*3)}.\\[\\&\\>svg\\]\\:h-3\\.5>svg{height:calc(var(--spacing)*3.5)}.\\[\\&\\>svg\\]\\:h-\\[18px\\]>svg{height:18px}.\\[\\&\\>svg\\]\\:\\!w-8>svg{width:calc(var(--spacing)*8)!important}.\\[\\&\\>svg\\]\\:w-3>svg{width:calc(var(--spacing)*3)}.\\[\\&\\>svg\\]\\:w-3\\.5>svg{width:calc(var(--spacing)*3.5)}.\\[\\&\\>svg\\]\\:w-\\[18px\\]>svg{width:18px}.\\[\\&\\>svg\\]\\:animate-spin>svg{animation:var(--animate-spin)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}.cpk-json-block{white-space:pre-wrap;word-break:break-all;color:#57575b;margin:0;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:11px;line-height:1.8;overflow:auto}.inspector-account-strip{border-bottom:1px solid #d8d8e8;width:100%;min-width:0;color:#010507!important;background:linear-gradient(90deg,#fff 0%,#f3f1ff 58%,#eefbf7 100%)!important}.inspector-account-logo{filter:none}.inspector-account-brand{position:relative}.inspector-account-logo-accent{clip-path:inset(0 0 0 80%);pointer-events:none;display:none;position:absolute;inset:0}.inspector-account-cta{isolation:isolate;color:#3f176f;white-space:nowrap;cursor:pointer;background-color:#eee6fe;border:0;border-radius:5px;flex:none;justify-content:center;align-items:center;gap:7px;min-height:32px;padding:7px 10px;font-size:11px;font-weight:700;line-height:1;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.inspector-account-cta:after{z-index:0;content:\"\";opacity:0;pointer-events:none;background:linear-gradient(105deg,#0000 0%,#ffffff14 32%,#ffffffad 50%,#ffffff14 68%,#0000 100%);width:68%;animation:3.8s cubic-bezier(.16,1,.3,1) infinite inspector-account-cta-shimmer;position:absolute;inset:0;transform:translate(-180%)skew(-14deg)}.inspector-account-cta>*{z-index:1;position:relative}.inspector-account-cta[data-motion-paused=true]:after{animation-play-state:paused}@keyframes inspector-account-cta-shimmer{0%{opacity:0;transform:translate(-180%)skew(-14deg)}12%{opacity:1}82%{opacity:.8}to{opacity:0;transform:translate(280%)skew(-14deg)}}.inspector-account-cta:hover{color:#32105d;background-color:#e4d8fc}.inspector-account-cta svg{width:14px;height:14px}@media (prefers-reduced-motion:reduce){.inspector-account-cta:after{animation:none}}.inspector-window-layout{position:relative}.inspector-window-layout-menu{z-index:60;color:#010507;background-color:#fff;border:1px solid #d8d8e8;border-radius:5px;width:188px;padding:4px;display:grid;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 10px 24px #1f173924}.inspector-window-layout-menu button{min-height:34px;color:inherit;text-align:left;cursor:pointer;background-color:#0000;border:0;border-radius:4px;align-items:center;gap:9px;padding:7px 9px;font-size:12px;font-weight:600;display:flex}.inspector-window-layout-menu button:hover,.inspector-window-layout-menu button:focus-visible{color:#3f176f;background-color:#eee6fe;outline:none}.inspector-window-layout-menu button span:first-child{flex:none;display:inline-flex}.inspector-agent-placeholder{color:#68686e;border-color:#c8c8d8}.inspector-primary-navigation,.inspector-child-navigation{display:none}.inspector-shell{background-color:#f7f6fd;flex:auto;min-height:0;display:flex}.inspector-sidebar{z-index:20;background-color:#f7f6fd;border-right:1px solid #d8d8e8;flex-direction:column;flex:none;gap:8px;width:224px;min-width:224px;padding:12px 10px;transition:width .22s,min-width .22s,padding .22s;display:flex;position:relative;overflow:visible}.inspector-sidebar[data-icon-rail=true]{align-items:center;width:52px;min-width:52px;padding:8px}.inspector-sidebar-agent-scope{border-bottom:1px solid #d8d8e8;flex:none;min-width:0;padding-bottom:10px}.inspector-sidebar .inspector-agent-selector{width:100%;min-width:0}.inspector-sidebar .inspector-agent-selector>[data-context-dropdown-root=true]>button{background-color:#fff;border-radius:5px;max-width:none;min-height:34px;padding:6px 8px}.inspector-context-dropdown-icon{color:#68686e;display:inline-flex}.inspector-context-dropdown-icon svg,.inspector-context-dropdown-chevron svg{width:14px;height:14px}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-agent-scope{padding-bottom:8px}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-agent-scope,.inspector-sidebar[data-icon-rail=true] .inspector-agent-selector,.inspector-sidebar[data-icon-rail=true] .inspector-agent-selector>[data-context-dropdown-root=true],.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-footer{flex:none;justify-content:center;align-items:center;width:36px;min-width:36px;max-width:36px;display:flex}.inspector-sidebar[data-icon-rail=true] .inspector-agent-selector>[data-context-dropdown-root=true]>button,.inspector-sidebar[data-icon-rail=true] .inspector-agent-placeholder{box-sizing:border-box;justify-content:center;align-items:center;gap:0;width:36px;min-width:36px;max-width:36px;height:36px;min-height:36px;padding:0;transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s;display:flex;overflow:visible}.inspector-sidebar[data-icon-rail=true] .inspector-context-dropdown-label,.inspector-sidebar[data-icon-rail=true] .inspector-context-dropdown-chevron,.inspector-sidebar[data-icon-rail=true] .inspector-agent-placeholder span:last-child{display:none}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-agent-scope [data-context-dropdown-root=true]>div{margin-top:0;top:0;left:calc(100% + 8px)}.inspector-icon-rail-menu{transform-origin:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s,transform .18s,visibility .18s;transform:translate(-8px)scale(.96)}.inspector-icon-rail-menu[data-open=true]{opacity:1;visibility:visible;pointer-events:auto;transform:translate(0)scale(1)}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-section+.inspector-sidebar-section{border-top:1px solid #dbdbe5;margin-top:4px;padding-top:10px}.inspector-sidebar-nav{cursor:default;flex-direction:column;flex:auto;gap:14px;min-height:0;display:flex;overflow:hidden auto}.inspector-sidebar-section{flex-direction:column;gap:4px;display:flex}.inspector-sidebar-label{color:#838389;letter-spacing:.02em;text-align:left;text-transform:none;background:0 0;border:0;width:100%;margin:0 0 2px;padding:0 8px;font-size:11px;font-weight:600;display:block}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-label,.inspector-sidebar[data-icon-rail=true] .inspector-nav-label{display:none}.inspector-sidebar-rail-tooltip{z-index:60;color:#fff;pointer-events:none;white-space:nowrap;background-color:#242331;border-radius:6px;max-width:220px;padding:6px 9px;font-size:11px;font-weight:600;line-height:1.2;position:absolute;left:calc(100% + 8px);transform:translateY(-50%);box-shadow:0 7px 18px #1a172a2e}.inspector-sidebar-control{justify-content:flex-start;width:100%;min-height:36px;display:flex;position:relative}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-nav{overflow:visible}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-control,.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-toggle,.inspector-sidebar[data-icon-rail=true] .inspector-nav-control{box-sizing:border-box;justify-content:center;align-items:center;gap:0;width:36px;min-width:36px;height:36px;min-height:36px;padding:0;overflow:visible}.inspector-sidebar[data-icon-rail=true] .inspector-nav-icon,.inspector-sidebar[data-icon-rail=true] .inspector-nav-icon svg,.inspector-sidebar[data-icon-rail=true] .inspector-context-dropdown-icon,.inspector-sidebar[data-icon-rail=true] .inspector-context-dropdown-icon svg{width:18px;height:18px;overflow:visible}.inspector-home-badge{background-color:#fa5f67;border-radius:999px;width:7px;height:7px;position:absolute;top:8px;right:8px}.inspector-sidebar[data-icon-rail=true] .inspector-home-badge{top:6px;right:8px}.inspector-sidebar-toggle{color:#57575b;width:100%;min-height:32px;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;flex:none;justify-content:flex-start;align-items:center;gap:6px;padding:6px 9px;font-size:12px;font-weight:600;display:flex}.inspector-sidebar-toggle:hover{color:#010507;background-color:#f0f0f4}.inspector-sidebar-footer{flex-direction:column;flex:none;gap:6px;padding:2px 0 0;display:flex}.inspector-sidebar-status-list{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.inspector-sidebar-status-card{color:#2b2b2b;background-color:#fff;border:1px solid #d8d8e8;border-radius:7px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:52px;padding:9px 10px;display:grid;position:relative}.inspector-sidebar-status-copy{flex-direction:column;gap:2px;min-width:0;line-height:1.25;display:flex}.inspector-sidebar-status-copy strong{color:#010507;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700;overflow:hidden}.inspector-sidebar-status-copy>span{color:#57575b;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.inspector-sidebar-status-card[data-state=disconnected] .inspector-sidebar-status-copy>span{color:#68686e}.inspector-sidebar-status-action{color:#3f176f;white-space:nowrap;background-color:#0000;border:0;border-radius:5px;justify-content:center;align-items:center;gap:0;width:28px;height:28px;padding:0;font-size:10px;font-weight:700;text-decoration:none;display:inline-flex}.inspector-sidebar-status-action:hover{color:#6430ab;background-color:#eee7f8;text-decoration:none}.inspector-sidebar-status-action svg{width:12px;height:12px}.inspector-sidebar-status-action-label{display:none}.inspector-sidebar-intelligence-setup{color:#3f176f;cursor:pointer;background-color:#eee7f8;border-color:#bba5df;text-decoration:none;transition:border-color .12s,background-color .12s,box-shadow .3s;animation:3.2s ease-in-out infinite inspector-sidebar-intelligence-setup-glow}@keyframes inspector-sidebar-intelligence-setup-glow{0%,to{box-shadow:0 0 #6430ab00}50%{box-shadow:0 0 16px 2px #6430ab26}}.inspector-sidebar-intelligence-setup:hover{background-color:#e4d9f4;border-color:#8e6fc0}.inspector-sidebar-intelligence-setup .inspector-sidebar-status-copy strong{color:#3f176f}.inspector-sidebar-setup-arrow{background-color:#6430ab1a;border-radius:5px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.inspector-sidebar-setup-arrow svg{width:13px;height:13px}.inspector-main{background-color:#fff;flex-direction:column;flex:auto;min-width:0;display:flex;position:relative}.cpk-memory-locked{background-color:#fff;justify-content:center;align-items:center;height:100%;padding:32px;display:flex;position:relative;overflow:hidden}.cpk-locked-preview{opacity:.58;pointer-events:none;grid-template-columns:minmax(180px,28%) 1fr;display:grid;position:absolute;inset:0;overflow:hidden}.cpk-locked-preview-sidebar{background-color:#fafafa;border-right:1px solid #dbdbe5;flex-direction:column;gap:12px;padding:28px 24px;display:flex}.cpk-locked-preview-row{background-color:#fff;border-radius:10px;padding:12px;box-shadow:inset 0 0 0 1px #eeeef4}.cpk-locked-preview-row[data-accent=true]{background-color:#eee6fe}.cpk-locked-preview-bar{background-color:#d7d7df;border-radius:999px}.cpk-locked-preview-row-title{width:var(--preview-width);height:8px}.cpk-locked-preview-row[data-accent=true] .cpk-locked-preview-row-title{background-color:#a984f5}.cpk-locked-preview-row-line{background-color:#e3e3eb;width:88%;height:6px;margin-top:10px}.cpk-locked-preview-row-line:last-child{background-color:#e8e8ef;width:62%;margin-top:7px}.cpk-locked-preview-main{background-color:#fff;min-width:0;padding:42px 48px}.cpk-locked-preview-heading{width:180px;height:10px}.cpk-locked-preview-copy{background-color:#e3e3eb;width:min(520px,58%);height:8px;margin-top:28px}.cpk-locked-preview-copy+.cpk-locked-preview-copy{background-color:#e8e8ef;width:min(430px,48%);margin-top:12px}.cpk-locked-preview-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:620px;margin-top:30px;display:grid}.cpk-locked-preview-card{background-color:#f5f5f8;border-radius:10px;height:116px;box-shadow:inset 0 0 0 1px #eeeef4}.cpk-locked-preview-footer-line{background-color:#e3e3eb;width:min(680px,74%);height:10px;margin-top:34px}.cpk-locked-preview-footer-line+.cpk-locked-preview-footer-line{background-color:#e8e8ef;width:min(560px,60%);margin-top:14px}.cpk-memory-locked-scrim{pointer-events:none;background:radial-gradient(circle,#ffffffe6 0,#ffffffc7 24%,#ffffff57 48%,#ffffff8f 100%);position:absolute;inset:0}.cpk-memory-locked-content{z-index:1;color:#57575b;text-align:center;max-width:440px;position:relative}.cpk-memory-locked-icon-wrap{justify-content:center;margin:0 auto 18px;display:flex}.cpk-memory-locked-icon{color:#57575b;background-color:#eee6fe;border:1px solid #dfd6fb;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;display:flex;box-shadow:0 8px 18px #57575b24}.cpk-memory-locked-title{color:#010507;margin:0 0 8px;font-size:16px;font-weight:600;line-height:1.35}.cpk-memory-locked-copy{color:#57575b;max-width:380px;margin:0 auto 18px;font-size:13px;line-height:1.55}.cpk-memory-locked-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.cpk-memory-locked-action{color:#fff;background-color:#6430ab;border:1px solid #6430ab;border-radius:5px;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:8px 12px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.cpk-memory-locked-action:hover{background-color:#4e238c;border-color:#4e238c}.cpk-memory-locked-action-secondary{color:#57575b;background-color:#fff;border-color:#dbdbe5}.cpk-memory-locked-action-secondary:hover{background-color:#f7f7f9;border-color:#afafb7}.inspector-home{background-color:#fff;min-height:100%;padding:30px 32px 40px;position:relative;overflow:auto}.inspector-home:before{display:none}.inspector-home>*{width:min(100%,960px);margin-left:auto;margin-right:auto}.inspector-settings{color:#010507;background-color:#fff;min-height:100%;padding:28px 28px 36px;overflow:auto}.inspector-settings-header{max-width:70ch;padding-bottom:22px}.inspector-settings-title{color:#010507;margin:0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:28px;font-weight:600;line-height:1.15}.inspector-settings-subtitle{color:#57575b;max-width:60ch;margin:10px 0 0;font-size:14px;line-height:1.5}.inspector-settings-section{grid-template-columns:minmax(138px,168px) minmax(0,1fr);gap:30px;max-width:820px;margin-top:28px;display:grid}.inspector-settings-section-heading{align-items:flex-start;gap:10px;display:flex}.inspector-settings-section-icon{color:#3f176f;background-color:#eee6fe;border:1px solid #bec2ff;border-radius:5px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.inspector-settings-section-icon svg{width:16px;height:16px}.inspector-settings-section-heading h2,.inspector-settings-status-row h3{color:#010507;margin:0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-weight:600}.inspector-settings-section-heading h2{font-size:15px;line-height:1.3}.inspector-settings-section-heading p{color:#68686e;margin:5px 0 0;font-size:11px;line-height:1.45}.inspector-settings-privacy{border-bottom:1px solid #d5d3e4;padding:0 0 22px}.inspector-settings-status-row{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.inspector-settings-status-row h3{font-size:16px;line-height:1.3}.inspector-settings-status-row p{color:#57575b;max-width:56ch;margin:8px 0 0;font-size:13px;line-height:1.55}.inspector-settings-status{color:#087653;background-color:#e5f7f1;border:1px solid #85d3bb;border-radius:999px;flex:none;align-items:center;min-height:24px;padding:3px 8px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.inspector-settings-privacy[data-state=disabled] .inspector-settings-status{color:#7d4d0a;background-color:#fff5df;border-color:#dfc08f}.inspector-settings-private-content{border-top:1px solid #e4e4ec;margin-top:20px;padding-top:18px}.inspector-settings-private-content strong{color:#010507;font-size:13px;font-weight:700}.inspector-settings-private-content>p{color:#68686e;margin:4px 0 0;font-size:11px;line-height:1.45}.inspector-settings-private-content ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:12px 0 0;display:grid}.inspector-settings-private-content li{color:#3e3d48;align-items:center;gap:7px;min-width:0;font-size:12px;line-height:1.35;display:flex}.inspector-settings-private-content li span{color:#087653;flex:none;display:inline-flex}.inspector-settings-private-content li svg{width:14px;height:14px}.inspector-settings-policy-link{color:#3f176f;text-underline-offset:3px;outline-offset:2px;outline:2px solid #0000;align-items:center;gap:6px;min-height:32px;margin-top:20px;font-size:12px;font-weight:700;text-decoration:underline;text-decoration-thickness:1px;display:inline-flex}.inspector-settings-policy-link:hover{color:#6430ab}.inspector-settings-policy-link:focus-visible{outline-color:#6430ab}.inspector-settings-policy-link svg{width:14px;height:14px}@media (max-width:720px){.inspector-settings{padding:24px 20px 32px}.inspector-settings-section{grid-template-columns:1fr;gap:18px}.inspector-settings-section-heading p{max-width:42ch}}@media (max-width:480px){.inspector-settings-status-row{flex-direction:column;gap:12px}.inspector-settings-private-content ul{grid-template-columns:1fr}}.inspector-home-card,.inspector-home-story{background-color:#ffffffd1;border:1px solid #deddea;border-radius:5px;padding:18px 18px 16px;position:relative}.inspector-home-eyebrow,.inspector-home-card-label,.inspector-home-meta{color:#57575b;margin:0;font-size:12px;font-weight:600}.inspector-home-title,.inspector-home-section-title,.inspector-home-card-title{color:#010507;margin:8px 0 0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:28px;font-weight:600;line-height:1.15}.inspector-home-section-title{letter-spacing:-.015em;margin:0 0 14px;font-size:17px}.inspector-home-card-title{font-size:16px}.inspector-home-body,.inspector-home-card-copy{color:#57575b;max-width:52ch;margin:10px 0 0;font-size:15px;line-height:1.5}.inspector-home-section{margin-top:24px;position:relative}.inspector-home>.inspector-home-section:first-child{margin-top:0}.inspector-whats-new-preview+.inspector-home-section{margin-top:20px}.inspector-home-section-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.inspector-home-section-header .inspector-home-section-title{margin-bottom:0}.inspector-home-section-header>span{color:#68686e;font-size:11px;font-weight:600;line-height:1.35}.inspector-system-health-header>span[data-tone=success]{color:#087653}.inspector-system-health-header>span[data-tone=checking]{color:#8a5900}.inspector-system-health-header>span[data-tone=offline],.inspector-system-health-header>span[data-tone=error]{color:#b32d3b}.inspector-system-health-section{background-color:#f7f4fe;border:1px solid #c8c6e6;border-radius:5px;overflow:hidden}.inspector-system-health-section .inspector-system-health-header{background-color:#f7f4fe;border-bottom:1px solid #d5d3e4;align-items:center;min-height:76px;margin:0;padding:18px}.inspector-system-health-heading{min-width:0}.inspector-system-health-heading .inspector-home-section-title{color:#010507;letter-spacing:-.025em;font-size:18px}.inspector-system-health-state,.inspector-intelligence-hud-state{color:#087653;background-color:#e5f7f1;border:1px solid #85d3bb;border-radius:999px;flex:none;align-items:center;gap:6px;min-height:24px;padding:4px 8px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.inspector-system-health-state>span,.inspector-intelligence-hud-state>span{background-color:currentColor;border-radius:999px;width:6px;height:6px}.inspector-system-health-state[data-tone=checking],.inspector-intelligence-hud-state[data-tone=checking]{background-color:#fff5df;border-color:#dfc08f;color:#7d4d0a!important}.inspector-system-health-state[data-tone=offline],.inspector-system-health-state[data-tone=error],.inspector-intelligence-hud-state[data-tone=offline],.inspector-intelligence-hud-state[data-tone=error]{background-color:#fff0f1;border-color:#e7a7ac;color:#b32d3b!important}.inspector-system-health-state[data-tone=unavailable],.inspector-intelligence-hud-state[data-tone=unavailable]{background-color:#f0f0f4;border-color:#c8c8d2;color:#57575b!important}.inspector-system-health{background-color:#d5d3e4;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.inspector-system-health-signal{background-color:#fff;grid-template-columns:minmax(0,1fr);align-items:start;min-width:0;min-height:84px;padding:15px 16px 14px;display:grid}.inspector-system-health-copy{flex-direction:column;min-width:0;display:flex}.inspector-system-health-signal dt{color:#68686e;letter-spacing:.035em;text-transform:uppercase;font-size:10px;font-weight:700;line-height:1.3}.inspector-system-health-signal dd{color:#010507;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:5px 0 0;font-size:15px;font-weight:700;overflow:hidden}.inspector-system-health-signal small{color:#68686e;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-top:4px;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;line-height:1.4;overflow:hidden}small.inspector-system-health-detail{letter-spacing:0;font-family:inherit;font-size:11px;font-weight:500;line-height:1.4}.inspector-system-health-url{cursor:help;outline:none;position:relative;overflow:visible!important}.inspector-system-health-url>span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.inspector-system-health-url:after{z-index:30;color:#f3f4f8;content:attr(data-full-value);opacity:0;overflow-wrap:anywhere;pointer-events:none;white-space:normal;background-color:#15171e;border:1px solid #3a3d49;border-radius:4px;width:max-content;max-width:min(360px,70vw);padding:7px 9px;font-size:10px;font-weight:500;line-height:1.45;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 7px);left:0;transform:translateY(3px);box-shadow:0 8px 20px #0105072e}.inspector-system-health-url:hover:after,.inspector-system-health-url:focus-visible:after{opacity:1;transform:translateY(0)}.inspector-system-health-url:focus-visible>span{outline-offset:2px;border-radius:3px;outline:2px solid #6430ab}.inspector-system-health-signal[data-tone=success] dd{color:#087653}.inspector-system-health-signal[data-tone=active] dd{color:#8a5900}.inspector-system-health-event-link{width:100%;min-width:0;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0;display:block}.inspector-system-health-event-link>span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.inspector-system-health-event-link>.inspector-system-health-event-type{color:#57575b;letter-spacing:.025em;background-color:#f1f1f3;border-radius:999px;align-items:center;width:fit-content;max-width:100%;padding:3px 6px;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;font-weight:700;line-height:1.25;display:inline-flex}.inspector-system-health-event-link>small{color:#68686e;align-items:center;gap:6px;margin:5px 0 0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:10px;font-weight:500;line-height:1.25;display:flex}.inspector-system-health-event-meta strong{color:#6430ab;text-underline-offset:3px;font-weight:700;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.inspector-system-health-signal[data-tone=error] .inspector-system-health-event-type{color:#b32d3b;background-color:#fff0f1}.inspector-system-health-signal[data-tone=success] .inspector-system-health-event-type{color:#087653;background-color:#e3f5ee}.inspector-system-health-signal[data-tone=active] .inspector-system-health-event-type{color:#8a5900;background-color:#fff5df}.inspector-system-health-event-link:hover .inspector-system-health-event-meta strong{text-decoration-color:currentColor}.inspector-system-health-event-link:focus-visible{outline-offset:3px;border-radius:3px;outline:2px solid #6430ab}.inspector-intelligence-hud{background-color:#f7f4fe;border:1px solid #c8c6e6;border-radius:5px;overflow:hidden}.inspector-intelligence-hud-header{justify-content:space-between;align-items:center;gap:24px;padding:18px;display:flex}.inspector-intelligence-hud[data-state=disconnected]{border-color:#bba5df}.inspector-intelligence-hud[data-state=disconnected] .inspector-intelligence-hud-header{align-items:center;min-height:132px;padding:22px}.inspector-intelligence-hud[data-state=disconnected] .inspector-intelligence-hud-header-actions{flex-direction:column;align-items:flex-end;gap:10px}.inspector-intelligence-hud-heading{min-width:0}.inspector-intelligence-hud-header-actions{flex:none;align-items:center;gap:8px;display:flex}.inspector-intelligence-hud-heading .inspector-home-section-title{margin:0;font-size:18px}.inspector-intelligence-hud-description{color:#4f4f55;max-width:64ch;margin:10px 0 0;font-size:12px;line-height:1.55}.inspector-intelligence-hud-action{color:#fff;background-color:#6430ab;border:1px solid #6430ab;border-radius:4px;flex:none;justify-content:center;align-items:center;gap:7px;min-height:34px;padding:8px 11px;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:11px;font-weight:700;text-decoration:none;display:inline-flex}.inspector-intelligence-hud-action:hover{background-color:#4e238c;border-color:#4e238c}.inspector-intelligence-hud-action svg{width:13px;height:13px}.inspector-intelligence-hud-connect-action{min-height:38px;padding:10px 14px;font-size:12px}.inspector-intelligence-hud-details{background-color:#d5d3e4;border-top:1px solid #d5d3e4;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:1px;display:grid}.inspector-intelligence-hud-details>section{background-color:#fff;min-width:0;padding:15px 18px 17px}.inspector-intelligence-hud-detail-label{color:#68686e;font-size:11px;font-weight:600;display:block}.inspector-intelligence-hud-detail-value{color:#010507;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:5px 0 0;font-size:14px;font-weight:700;display:block;overflow:hidden}.inspector-intelligence-hud-detail-subvalue{color:#68686e;text-transform:capitalize;margin-top:3px;font-size:10px;font-weight:500;display:block}.inspector-intelligence-hud-plan{grid-template-columns:minmax(0,1fr) minmax(120px,1fr);align-items:start;gap:24px;display:grid}.inspector-intelligence-hud-usage{min-width:0}.inspector-intelligence-hud-plan-action{color:#6430ab;text-underline-offset:3px;background-color:#0000;border:0;border-radius:0;gap:4px;min-height:auto;margin-top:9px;padding:0;font-size:10px;font-weight:700;line-height:1.2;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px}.inspector-intelligence-hud-plan-action:hover{color:#4e238c;background-color:#0000;border-color:#0000;text-decoration-color:currentColor}.inspector-intelligence-hud-plan-action svg{width:11px;height:11px}.inspector-home-usage-bar{background-color:#dbdbe5;border-radius:999px;width:min(160px,100%);height:5px;margin-top:8px;display:block;overflow:hidden}.inspector-home-usage-bar>span{background-color:#bec2ff;height:100%;display:block}.inspector-home-feature-groups{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));align-items:start;gap:12px;display:grid}.inspector-home-feature-group{background-color:#fff;border:1px solid #d5d3e4;border-radius:5px;overflow:hidden}.inspector-home-feature-group-header{color:#57575b;background-color:#f7f7f9;border-bottom:1px solid #e4e4ec;justify-content:space-between;align-items:center;gap:12px;min-height:40px;padding:9px 12px;display:flex}.inspector-home-feature-group-header strong{font-size:12px;font-weight:700}.inspector-home-feature-group-header>span{background-color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:22px;min-height:20px;padding:2px 6px;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;font-weight:700;display:inline-flex}.inspector-home-feature-group[data-feature-state-group=active] .inspector-home-feature-group-header{color:#087653;background-color:#e5f7f1;border-color:#b9e3d6}.inspector-home-feature-list{background-color:#fff;flex-direction:column;margin:0;display:flex}.inspector-home-feature{color:#010507;background-color:#fff;grid-template-columns:minmax(0,1fr) auto 14px;align-items:center;gap:8px;min-width:0;min-height:43px;padding:10px 12px;font-size:12px;font-weight:600;text-decoration:none;display:grid}.inspector-home-feature+.inspector-home-feature{border-top:1px solid #ececf1}.inspector-home-feature-group-empty{color:#68686e;margin:0;padding:15px 12px;font-size:11px}.inspector-home-feature:hover{background-color:#f7f7f9}.inspector-home-feature-arrow svg{width:12px;height:12px}.inspector-home-feature small{color:#087653;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;font-weight:700}.inspector-home-feature[data-state=off],.inspector-home-feature[data-state=off] small,.inspector-home-feature-arrow{color:#68686e}.inspector-home-features-empty{color:#57575b;border-top:1px solid #deddea;border-bottom:1px solid #deddea;margin:14px 0 0;padding:16px 0;font-size:12px}.inspector-home-news{gap:12px;display:grid}.inspector-whats-new-preview{color:#010507;background-color:#f7f4fe;border:1px solid #c8c6e6;border-radius:5px;align-items:stretch;width:100%;min-height:64px;display:flex;position:relative;overflow:hidden;container-type:inline-size}.inspector-whats-new-preview:has(.inspector-whats-new-preview-body:hover){background-color:#f1ebfc;border-color:#8f91d7}.inspector-whats-new-preview-body{min-width:0;color:inherit;text-align:left;cursor:pointer;background-color:#0000;border:0;flex:auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.inspector-whats-new-preview-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.inspector-whats-new-preview-title{align-items:center;gap:8px;min-width:0;display:flex}.inspector-whats-new-preview-copy strong{text-overflow:ellipsis;white-space:nowrap;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:13px;line-height:1.25;overflow:hidden}.inspector-whats-new-preview-copy>span:last-child{color:#4e4c63;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.4;overflow:hidden}.inspector-whats-new-preview-action{color:#3f176f;white-space:nowrap;flex:none;align-items:center;gap:6px;font-size:11px;font-weight:700;display:inline-flex}.inspector-whats-new-preview-action svg{width:15px;height:15px}@container (max-width:640px){.inspector-whats-new-preview-body{grid-template-columns:minmax(0,1fr)}.inspector-whats-new-preview-action{display:none}}.inspector-whats-new-preview-dismiss{color:#68686e;cursor:pointer;background-color:#0000;border:0;border-radius:5px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.inspector-whats-new-preview-dismiss:hover{color:#3f176f;background-color:#6430ab1a}.inspector-whats-new-preview-dismiss svg{width:14px;height:14px}@media (max-width:720px){.inspector-account-cta{width:32px;padding-inline:0}.inspector-account-cta-label{display:none}.inspector-home{padding:24px 22px 34px}.inspector-intelligence-hud-header{flex-wrap:wrap}.inspector-intelligence-hud-details{grid-template-columns:1fr}.inspector-intelligence-hud-plan{grid-template-columns:repeat(2,minmax(0,1fr))}.inspector-whats-new-preview-action{display:none}}@media (max-width:600px){.inspector-system-health{grid-template-columns:1fr}}@media (max-width:480px){.inspector-system-health-section .inspector-system-health-header{align-items:flex-start}.inspector-intelligence-hud-header{flex-direction:column;align-items:stretch}.inspector-intelligence-hud-header-actions{justify-content:space-between}.inspector-intelligence-hud-header-actions .inspector-intelligence-hud-action,.inspector-intelligence-hud-plan{width:100%}.inspector-intelligence-hud-plan{grid-template-columns:1fr;align-items:stretch}.inspector-intelligence-hud-plan-action{justify-self:start}.inspector-whats-new-header{align-items:center;gap:16px;width:calc(100% - 24px);padding:24px 22px}.inspector-whats-new-document,.inspector-whats-new-empty{padding:20px 22px 36px}.inspector-whats-new-document .announcement-content h1+p{font-size:16px}}.inspector-whats-new-header{background:#f8f7ff;border:1px solid #d8d8e8;border-radius:5px;justify-content:space-between;align-items:center;gap:24px;width:calc(100% - 44px);max-width:calc(70ch - 44px);padding:30px 32px 28px;display:flex;box-shadow:0 12px 28px #26224e0f}.inspector-whats-new-header .inspector-home-title{letter-spacing:-.035em;margin:0;font-size:clamp(27px,3.6vw,36px)}.inspector-whats-new-updated{color:#6c687c;letter-spacing:.01em;white-space:nowrap;flex:none;margin:0;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:11px;font-weight:600}.inspector-whats-new .inspector-home-news{max-width:70ch;margin-top:0}.inspector-whats-new-document,.inspector-whats-new-empty{max-width:70ch;padding:22px 32px 52px}.inspector-whats-new-document .announcement-content{color:#2b2b39;font-size:15px;line-height:1.72}.inspector-whats-new-document .announcement-content h1{color:#15131d;letter-spacing:-.032em;max-width:24ch;margin:0 0 16px;font-size:clamp(26px,3.2vw,34px);line-height:1.1}.inspector-whats-new-document .announcement-content h1+p{color:#504d61;max-width:58ch;margin-top:0;font-size:18px;line-height:1.58}.inspector-whats-new-document .announcement-content>hr:first-child{display:none}.inspector-whats-new-document .announcement-content h2:first-of-type{border-top:0;margin-top:14px;padding-top:0}.inspector-whats-new-document .announcement-content h2{color:#1b1924;letter-spacing:-.024em;border-top:1px solid #dfdeea;margin:44px 0 14px;padding-top:24px;font-size:21px;line-height:1.2}.inspector-whats-new-document .announcement-content p{max-width:70ch;margin:.85rem 0}.inspector-whats-new-document .announcement-content ul,.inspector-whats-new-document .announcement-content ol{max-width:68ch;margin:1.25rem 0 1.5rem;padding-left:1.4rem}.inspector-whats-new-document .announcement-content li+li{margin-top:.7rem}.inspector-whats-new-document .announcement-content a{color:#4e46a5;text-underline-offset:4px;font-weight:600;text-decoration-color:#4e46a56b;text-decoration-thickness:1px;transition:color .16s,text-decoration-color .16s}.inspector-whats-new-document .announcement-content a:hover{color:#312879;text-decoration-color:currentColor}.inspector-whats-new-empty{color:#5e5b70}.inspector-whats-new-empty .inspector-home-card-title{color:#1b1924;margin:0}.inspector-whats-new-empty .inspector-home-card-copy{max-width:48ch;margin:8px 0 0}.inspector-home-story-featured{padding:22px}.inspector-home-story-link{color:inherit;cursor:pointer;text-decoration:none;display:block}.inspector-home-story-link:hover{background-color:#fff;border-color:#8f91d7}.inspector-home-story[data-unread=true]{border-color:#bec2ff;padding-right:64px;box-shadow:0 0 0 1px #6430ab}.inspector-home-story-unread{color:#fff;letter-spacing:.04em;text-transform:uppercase;background-color:#6430ab;border-radius:999px;align-items:center;min-height:18px;padding:0 7px;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;font-weight:700;display:inline-flex}.inspector-nav-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;transition:opacity .18s,width .22s;overflow:hidden}.inspector-nav-control{color:#57575b;min-height:32px;font:inherit;text-align:left;outline-offset:-2px;cursor:pointer;background-color:#0000;border:1px solid #0000;border-radius:5px;outline:2px solid #0000;flex:none;justify-content:flex-start;align-items:center;gap:6px;padding:6px 9px;font-size:12px;font-weight:600;line-height:1.25;display:flex}.inspector-nav-control:hover{color:#010507;background-color:#f0f0f4}.inspector-nav-control-active{color:#3f176f;background-color:#eee6fe;border-color:#bec2ff}.inspector-nav-icon{flex:none;align-items:center;display:inline-flex}.inspector-nav-icon svg{width:15px;height:15px}.inspector-nav-control:focus-visible,.inspector-account-control:focus-visible,[data-inspector-thread-cta]:focus-visible,[data-inspector-sidebar-intelligence-action]:focus-visible,[data-inspector-whats-new-preview]:focus-visible,[data-inspector-whats-new-dismiss]:focus-visible,[data-inspector-home-intelligence-action]:focus-visible,.inspector-home-feature:focus-visible,[data-inspector-action-placement=threads-footer]:focus-visible{outline-offset:2px;outline:2px solid #6430ab!important}.inspector-sidebar .inspector-nav-control:focus-visible,.inspector-sidebar .inspector-sidebar-label:focus-visible,.inspector-sidebar [data-inspector-thread-cta]:focus-visible{outline-offset:-2px!important}.inspector-account-control{color:#57575b;font:inherit;outline-offset:2px;cursor:pointer;background-color:#0000;border:1px solid #0000;outline:2px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.inspector-account-control:hover,.inspector-account-control-active{color:#3f176f;background-color:#6430ab17}:host ::selection{color:#010507;background-color:#cfd2ff}:host *{scrollbar-color:#aaa9c1 transparent;scrollbar-width:thin}:host ::-webkit-scrollbar{width:8px;height:8px}:host ::-webkit-scrollbar-thumb{background:#aaa9c1 padding-box padding-box;border:2px solid #0000;border-radius:999px}.inspector-account-control-icon{flex:none;justify-content:center;align-items:center;display:inline-flex}.inspector-account-control-icon svg{width:15px;height:15px}[data-inspector-thread-cta],[data-inspector-account-strip] button,[data-inspector-account-strip] a{cursor:pointer}@media (prefers-reduced-motion:reduce){.inspector-sidebar,.inspector-nav-label,.inspector-sidebar[data-icon-rail=true] .inspector-agent-selector>[data-context-dropdown-root=true]>button{transition:none}.inspector-icon-rail-menu{transition:none;animation:none}}[data-inspector-threads-setup-prompt],[data-inspector-threads-setup-link]{min-height:34px;font:inherit;outline-offset:2px;cursor:pointer;border:1px solid #dbdbe5;border-radius:7px;outline:2px solid #0000;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}[data-inspector-threads-setup-prompt]{color:#fff;background-color:#010507;border-color:#010507}[data-inspector-threads-setup-prompt]:hover{background-color:#2b2b2b;border-color:#2b2b2b}[data-inspector-threads-setup-link]{color:#57575b;background-color:#fff}[data-inspector-threads-setup-link]:hover{color:#010507;background-color:#f7f7f9;border-color:#afafb7}[data-inspector-threads-setup-prompt]:focus-visible,[data-inspector-threads-setup-link]:focus-visible{outline-offset:2px;outline:2px solid #6430ab}.inspector-threads-footer{color:#57575b;background-color:#f7f7f9;border-top:1px solid #dbdbe5;flex:none;gap:10px;padding:12px;font-size:11px;line-height:1.35;display:grid}.inspector-threads-usage{gap:6px;display:grid}[data-inspector-thread-count]{color:#010507;font-weight:600}[data-inspector-thread-expiry]{color:#57575b}.inspector-thread-progress{--inspector-thread-progress-color:#189370;width:100%;height:6px;accent-color:var(--inspector-thread-progress-color);border-radius:999px;overflow:hidden}.inspector-thread-progress[data-inspector-thread-capacity=warning]{--inspector-thread-progress-color:#b45309}.inspector-thread-progress[data-inspector-thread-capacity=critical]{--inspector-thread-progress-color:#be123c}.inspector-thread-progress::-webkit-progress-bar{background-color:#dbdbe5;border-radius:999px}.inspector-thread-progress::-webkit-progress-value{background-color:var(--inspector-thread-progress-color);border-radius:999px}.inspector-thread-progress::-moz-progress-bar{background-color:var(--inspector-thread-progress-color);border-radius:999px}[data-inspector-action-placement=threads-footer]{color:#57575b;outline-offset:2px;cursor:pointer;background-color:#0000;border:1px solid #d5d3e4;border-radius:5px;outline:2px solid #0000;justify-content:center;align-items:center;width:100%;min-height:32px;padding:6px 9px;font-size:11px;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}[data-inspector-action-placement=threads-footer][data-inspector-action-intent=upgrade]{color:#fff;background-color:#6430ab;border-color:#6430ab}[data-inspector-action-placement=threads-footer][data-inspector-action-intent=upgrade]:hover{color:#fff;background-color:#3f176f;border-color:#3f176f}[data-inspector-action-placement=threads-footer]:hover{color:#010507;background-color:#f7f4fe;border-color:#c8c6e6}.cpk-threads-overview-video{opacity:0;transition:opacity .22s}.cpk-threads-overview{background-color:#f7f7f9;flex:1;justify-content:center;align-items:center;min-width:0;padding:32px;display:flex}.cpk-threads-overview-content{color:#57575b;width:100%;max-width:440px}.cpk-threads-overview-title{color:#010507;margin:0 0 10px;font-size:20px;font-weight:600;line-height:1.25}.cpk-threads-overview-copy{color:#57575b;margin:0 0 16px;font-size:13px;line-height:1.55}.cpk-threads-overview-actions{flex-wrap:wrap;gap:8px;display:flex}.cpk-threads-overview-action{outline-offset:2px;border:1px solid #0000;border-radius:7px;outline:2px solid #0000;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:8px 12px;font-size:12px;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}.cpk-threads-overview-action-primary{color:#fff;background-color:#010507;border-color:#010507}.cpk-threads-overview-action-primary:hover{background-color:#2b2b2b;border-color:#2b2b2b}.cpk-threads-overview-action-secondary{color:#010507;background-color:#fff;border-color:#dbdbe5}.cpk-threads-overview-action-secondary:hover{background-color:#fff;border-color:#afafb7}.cpk-threads-overview-video[data-loaded=true]{opacity:1}.cpk-threads-overview-video-control{color:#3f176f;min-height:32px;font:inherit;outline-offset:2px;cursor:pointer;background-color:#fff;border:1px solid #dbdbe5;border-radius:5px;outline:2px solid #0000;justify-content:center;align-items:center;margin:0 0 14px;padding:6px 10px;font-size:12px;font-weight:600;line-height:1.25;display:inline-flex}.cpk-threads-overview-video-control:hover{color:#010507;background-color:#f7f7f9;border-color:#afafb7}.cpk-threads-overview-video-control:focus-visible{outline-offset:2px;outline:2px solid #6430ab}.cpk-threads-overview-video-fallback{color:#57575b;max-width:440px;margin:-4px 0 14px;font-size:12px;line-height:1.5}.cpk-threads-tour-launch{z-index:2;color:#57575b;outline-offset:2px;cursor:pointer;background-color:#fff;border:1px solid #dbdbe5;border-radius:7px;outline:2px solid #0000;padding:7px 10px;font-size:12px;font-weight:600;position:absolute;bottom:16px;right:16px;box-shadow:0 8px 18px #01050714}.cpk-threads-tour{z-index:3;color:#57575b;background-color:#fff;border:1px solid #dbdbe5;border-radius:10px;width:min(340px,100% - 32px);padding:14px;position:absolute;bottom:16px;right:16px;box-shadow:0 16px 36px #01050724}.cpk-threads-tour-step{color:#087653;text-transform:uppercase;margin-bottom:8px;font-family:Spline Sans Mono,monospace;font-size:10px;font-weight:600}.cpk-threads-tour-title{color:#010507;margin-bottom:6px;font-size:14px;font-weight:600;line-height:1.35}.cpk-threads-tour-copy{color:#57575b;font-size:12px;line-height:1.5}.cpk-threads-tour-actions{justify-content:space-between;gap:8px;margin-top:14px;display:flex}.cpk-threads-tour-nav{gap:8px;display:flex}.cpk-threads-tour-skip,.cpk-threads-tour-button{font:inherit;outline-offset:2px;cursor:pointer;border-radius:7px;outline:2px solid #0000;padding:7px 10px;font-size:12px;font-weight:600}.cpk-threads-overview-action:focus-visible,.cpk-threads-tour-launch:focus-visible,.cpk-threads-tour-skip:focus-visible,.cpk-threads-tour-button:focus-visible{outline-color:#6430ab}.cpk-threads-tour-skip{color:#68686e;background-color:#0000;border:0;padding-inline:0}.cpk-threads-tour-button-secondary{color:#57575b;background-color:#fff;border:1px solid #dbdbe5}.cpk-threads-tour-button-primary{color:#fff;background-color:#010507;border:1px solid #010507}.cpk-threads-tour-button:disabled{cursor:not-allowed;opacity:.45}@media (max-width:720px){.cpk-threads-overview{padding:24px}}@media (prefers-reduced-motion:reduce){.cpk-threads-overview-video{transition:none}}.inspector-window[data-color-scheme=dark]{color-scheme:dark;background-color:var(--cpk-inspector-surface-dark)!important;color:#f3f4f8!important;border-color:#7b7d89!important}.inspector-window[data-color-scheme=dark] .inspector-shell,.inspector-window[data-color-scheme=dark] .inspector-main,.inspector-window[data-color-scheme=dark] #cpk-main-scroll{color:#f3f4f8!important;background-color:#111319!important}.inspector-window[data-color-scheme=dark] .resize-handle,.inspector-window[data-color-scheme=dark] .edge-resize-handle,.inspector-window[data-color-scheme=dark] .dock-resize-handle{background:0 0!important}.inspector-window[data-color-scheme=dark] .drag-handle,.inspector-window[data-color-scheme=dark] .inspector-account-strip{color:#f3f4f8!important;background:#171a22!important;border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .inspector-account-logo{filter:brightness(0)invert();clip-path:inset(0 20% 0 0)}.inspector-window[data-color-scheme=dark] .inspector-account-logo-accent{filter:none;display:block}.inspector-window[data-color-scheme=dark] .inspector-agent-placeholder{color:#b8bbc7!important;border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .inspector-account-control{color:#b8bbc7!important;border:0!important}.inspector-window[data-color-scheme=dark] .inspector-account-control:hover,.inspector-window[data-color-scheme=dark] .inspector-account-control-active{color:#d8d9ff!important;background-color:#292c38!important}.inspector-window[data-color-scheme=dark] .inspector-account-cta{color:#d8d9ff;background-color:#292b43}.inspector-window[data-color-scheme=dark] .inspector-account-cta:hover{color:#fff;background-color:#353854}.inspector-window[data-color-scheme=dark] .inspector-window-layout-menu{box-shadow:0 12px 28px #00000052;color:#f3f4f8!important;background-color:#111319!important;border-color:#5c6173!important}.inspector-window[data-color-scheme=dark] .inspector-window-layout-menu button,.inspector-window[data-color-scheme=dark] .inspector-window-layout-menu button span{color:#f3f4f8!important}.inspector-window[data-color-scheme=dark] .inspector-window-layout-menu button:hover,.inspector-window[data-color-scheme=dark] .inspector-window-layout-menu button:focus-visible,.inspector-window[data-color-scheme=dark] .inspector-window-layout-menu button:hover span,.inspector-window[data-color-scheme=dark] .inspector-window-layout-menu button:focus-visible span{color:#fff!important;background-color:#3a3f52!important}.inspector-window[data-color-scheme=dark] .inspector-sidebar .inspector-agent-selector>[data-context-dropdown-root=true]>button{color:#f3f4f8!important;background-color:#20232c!important;border-color:#464957!important}.inspector-window[data-color-scheme=dark] .inspector-sidebar .inspector-agent-selector>[data-context-dropdown-root=true]>button:hover{background-color:#292c38!important;border-color:#777aae!important}.inspector-window[data-color-scheme=dark] .inspector-sidebar .inspector-agent-selector>[data-context-dropdown-root=true]>button>span:last-child{color:#aeb1bd!important}.inspector-window[data-color-scheme=dark] .inspector-context-dropdown-icon{color:#f3f4f8!important}.inspector-window[data-color-scheme=dark] .inspector-sidebar[data-icon-rail=true] .inspector-agent-selector>[data-context-dropdown-root=true]>button{color:#fff!important;background-color:#2f3340!important;border-color:#8b90a5!important}.inspector-window[data-color-scheme=dark] .inspector-sidebar[data-icon-rail=true] .inspector-context-dropdown-icon,.inspector-window[data-color-scheme=dark] .inspector-sidebar[data-icon-rail=true] .inspector-agent-placeholder{color:#fff!important}.inspector-window[data-color-scheme=dark] [data-context-dropdown-root=true]>div{color:#f3f4f8!important;box-shadow:none!important;background-color:#191c24!important;border-color:#464957!important}.inspector-window[data-color-scheme=dark] [data-context-dropdown-root=true]>div button:hover,.inspector-window[data-color-scheme=dark] [data-context-dropdown-root=true]>div button:focus{color:#f3f4f8!important;background-color:#343746!important}.inspector-window[data-color-scheme=dark] .inspector-sidebar{color:#f3f4f8;background-color:#15171e;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-sidebar-label{color:#8f93a1}.inspector-window[data-color-scheme=dark] .inspector-sidebar-rail-tooltip{color:#191c24;background-color:#e9e9f1;box-shadow:0 7px 18px #00000047}.inspector-window[data-color-scheme=dark] .inspector-nav-control,.inspector-window[data-color-scheme=dark] .inspector-sidebar-toggle{color:#b8bbc7}.inspector-window[data-color-scheme=dark] .inspector-nav-control:hover,.inspector-window[data-color-scheme=dark] .inspector-sidebar-toggle:hover{color:#fff;background-color:#22252f}.inspector-window[data-color-scheme=dark] .inspector-nav-control-active{color:#d8d9ff;background-color:#292b43;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .inspector-sidebar-agent-scope{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-card{background-color:#191c24;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-copy strong{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-copy>span,.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-card[data-state=disconnected] .inspector-sidebar-status-copy>span{color:#9da1af}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-action{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-action:hover{color:#fff;background-color:#292b43}.inspector-window[data-color-scheme=dark] .inspector-sidebar-intelligence-setup{color:#d8d9ff;background-color:#292b43;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .inspector-sidebar-intelligence-setup:hover{background-color:#343653;border-color:#777aae}.inspector-window[data-color-scheme=dark] .inspector-sidebar-intelligence-setup .inspector-sidebar-status-copy strong{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-sidebar-setup-arrow{background-color:#caccff1f}@media (prefers-reduced-motion:reduce){.inspector-sidebar-intelligence-setup{animation:none}}.inspector-window[data-color-scheme=dark] .inspector-home{background-color:#111319}.inspector-window[data-color-scheme=dark] .inspector-settings{color:#f3f4f8;background-color:#111319}.inspector-window[data-color-scheme=dark] .inspector-settings-header,.inspector-window[data-color-scheme=dark] .inspector-settings-privacy,.inspector-window[data-color-scheme=dark] .inspector-settings-private-content{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-settings-title,.inspector-window[data-color-scheme=dark] .inspector-settings-section-heading h2,.inspector-window[data-color-scheme=dark] .inspector-settings-status-row h3,.inspector-window[data-color-scheme=dark] .inspector-settings-private-content strong{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-settings-subtitle,.inspector-window[data-color-scheme=dark] .inspector-settings-section-heading p,.inspector-window[data-color-scheme=dark] .inspector-settings-status-row p,.inspector-window[data-color-scheme=dark] .inspector-settings-private-content>p{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-settings-section-icon{color:#d8d9ff;background-color:#292b43;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .inspector-settings-private-content li{color:#c9ccd6}.inspector-window[data-color-scheme=dark] .inspector-settings-private-content li span{color:#75d8b9}.inspector-window[data-color-scheme=dark] .inspector-settings-status{color:#8ce1c5;background-color:#173b32;border-color:#347d69}.inspector-window[data-color-scheme=dark] .inspector-settings-privacy[data-state=disabled] .inspector-settings-status{color:#f2cf8f;background-color:#342916;border-color:#866932}.inspector-window[data-color-scheme=dark] .inspector-settings-policy-link{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-settings-policy-link:hover{color:#fff}.inspector-window[data-color-scheme=dark] .inspector-home-card,.inspector-window[data-color-scheme=dark] .inspector-home-story,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud,.inspector-window[data-color-scheme=dark] .inspector-home-feature-list,.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview{color:#f3f4f8;background:#191c24;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud[data-state=disconnected]{background-color:#1d1e2b;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud[data-state=disconnected] .inspector-intelligence-hud-description{color:#c5c7d0}.inspector-window[data-color-scheme=dark] .inspector-system-health,.inspector-window[data-color-scheme=dark] .inspector-system-health-section{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-system-health-section{background-color:#191c24}.inspector-window[data-color-scheme=dark] .inspector-system-health-section .inspector-system-health-header{background-color:#191c24;border-bottom-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-system-health{background-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal{background-color:#191c24}.inspector-window[data-color-scheme=dark] .inspector-system-health-event-link>small{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-system-health-header>span[data-tone=success]{color:#8ce1c5}.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=success],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=success]{background-color:#173b32;border-color:#347d69;color:#8ce1c5!important}.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=checking],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=checking]{background-color:#342916;border-color:#866932;color:#f2cf8f!important}.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=offline],.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=error],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=offline],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=error]{background-color:#3b1c22;border-color:#87424a;color:#ff9aa0!important}.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=unavailable],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=unavailable]{background-color:#242731;border-color:#464957;color:#aeb1bd!important}.inspector-window[data-color-scheme=dark] .inspector-system-health-header>span[data-tone=checking]{color:#f2cf8f}.inspector-window[data-color-scheme=dark] .inspector-system-health-header>span[data-tone=offline],.inspector-window[data-color-scheme=dark] .inspector-system-health-header>span[data-tone=error]{color:#ff9aa0}.inspector-window[data-color-scheme=dark] .inspector-home-story-link:hover,.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview:has(.inspector-whats-new-preview-body:hover){background:#242131;border-color:#777aae}.inspector-window[data-color-scheme=dark] .inspector-home-title,.inspector-window[data-color-scheme=dark] .inspector-home-section-title,.inspector-window[data-color-scheme=dark] .inspector-home-card-title,.inspector-window[data-color-scheme=dark] .inspector-system-health-signal dd,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details .inspector-intelligence-hud-detail-value,.inspector-window[data-color-scheme=dark] .inspector-home-feature{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-home-eyebrow,.inspector-window[data-color-scheme=dark] .inspector-home-card-label,.inspector-window[data-color-scheme=dark] .inspector-home-meta,.inspector-window[data-color-scheme=dark] .inspector-home-body,.inspector-window[data-color-scheme=dark] .inspector-home-card-copy,.inspector-window[data-color-scheme=dark] .inspector-system-health-signal dt,.inspector-window[data-color-scheme=dark] .inspector-system-health-signal small,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-heading p,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details .inspector-intelligence-hud-detail-label,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details .inspector-intelligence-hud-detail-subvalue,.inspector-window[data-color-scheme=dark] .inspector-home-section-header>span,.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview-copy>span:last-child{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details{background-color:#3a3d49;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details>section{background-color:#15171e}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-plan-action{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-plan-action:hover{color:#fff;background-color:#0000;border-color:#0000}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal+.inspector-system-health-signal,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details>section+section,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details,.inspector-window[data-color-scheme=dark] .inspector-home-features-empty{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=success] dd,.inspector-window[data-color-scheme=dark] .inspector-home-feature small{color:#8ce1c5}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=active] dd{color:#f2cf8f}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=error] .inspector-system-health-event-type{color:#ff9aa0;background-color:#3b1c22}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=success] .inspector-system-health-event-type{color:#8ce1c5;background-color:#173b32}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=active] .inspector-system-health-event-type{color:#f2cf8f;background-color:#342916}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group{background-color:#191c24;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group-header{color:#c9ccd6;background-color:#20232d;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group-header>span{color:#c9ccd6;background-color:#191c24}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group[data-feature-state-group=active] .inspector-home-feature-group-header{color:#8ce1c5;background-color:#173b32;border-color:#347d69}.inspector-window[data-color-scheme=dark] .inspector-home-feature{background-color:#191c24}.inspector-window[data-color-scheme=dark] .inspector-home-feature:hover{background-color:#20232d}.inspector-window[data-color-scheme=dark] .inspector-home-feature+.inspector-home-feature{border-color:#2f323d}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group-empty{color:#9da1af}.inspector-window[data-color-scheme=dark] .inspector-home-feature[data-state=off]{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-home-feature[data-state=off] small,.inspector-window[data-color-scheme=dark] .inspector-home-feature-arrow{color:#9da1af}.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview-dismiss{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview-dismiss:hover{color:#fff;background-color:#302a40}.inspector-window[data-color-scheme=dark] .inspector-home-usage-bar{background-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-thread-progress::-webkit-progress-bar{background-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-whats-new-header{box-shadow:none;background-color:#1d1e2b;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-whats-new-updated,.inspector-window[data-color-scheme=dark] .inspector-whats-new-empty{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview-action{color:#d8d9ff}.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview:hover .inspector-whats-new-preview-action{color:#fff}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document,.inspector-window[data-color-scheme=dark] .inspector-whats-new-empty{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content{color:#c9ccd6}.inspector-window[data-color-scheme=dark] .inspector-whats-new-empty .inspector-home-card-title{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h1+p{color:#c9ccd6}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h2{border-top-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h1,.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h2,.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h3,.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content strong{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content a{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-threads-footer{color:#aeb1bd;background-color:#15171e;border-color:#343742}.inspector-window[data-color-scheme=dark] [data-inspector-thread-count]{color:#f3f4f8}.inspector-window[data-color-scheme=dark] [data-inspector-thread-expiry]{color:#aeb1bd}.inspector-window[data-color-scheme=dark] [data-inspector-action-placement=threads-footer]{color:#d8d9ff;background-color:#191c24;border-color:#464957}.inspector-window[data-color-scheme=dark] [data-inspector-action-placement=threads-footer]:hover{color:#fff;background-color:#20232d;border-color:#777aae}.inspector-window[data-color-scheme=dark] .cpk-threads-overview{background-color:#111319}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-content,.inspector-window[data-color-scheme=dark] .cpk-threads-overview-copy,.inspector-window[data-color-scheme=dark] .cpk-threads-overview-video-fallback,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-copy{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-title,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-title{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-video-frame{background:linear-gradient(135deg,#666a9e3d,#347d6929),#191c24;border-color:#3a3d49;box-shadow:0 8px 20px #00000038}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-video-control,.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action-secondary,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-launch,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button-secondary{color:#d8d9ff;background-color:#191c24;border-color:#464957}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-video-control:hover,.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action-secondary:hover,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-launch:hover,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button-secondary:hover{color:#fff;background-color:#242731;border-color:#777aae}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action-primary,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button-primary{color:#171823;background-color:#caccff;border-color:#caccff}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action-primary:hover,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button-primary:hover{background-color:#d8d9ff;border-color:#d8d9ff}.inspector-window[data-color-scheme=dark] .cpk-threads-tour{color:#aeb1bd;background-color:#191c24;border-color:#464957;box-shadow:0 16px 36px #00000052}.inspector-window[data-color-scheme=dark] .cpk-threads-tour-step{color:#8ce1c5}.inspector-window[data-color-scheme=dark] .cpk-threads-tour-skip{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action:focus-visible,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-launch:focus-visible,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-skip:focus-visible,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button:focus-visible{outline-color:#bec2ff}.inspector-window[data-color-scheme=dark] .cpk-memory-locked{color:#f3f4f8;background-color:#111319}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-sidebar{background-color:#15171e;border-color:#2f323d}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-main{background-color:#111319}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row{background-color:#191c24;box-shadow:inset 0 0 0 1px #2f323d}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row[data-accent=true]{background-color:#292b43}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-bar{background-color:#333641}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row[data-accent=true] .cpk-locked-preview-row-title{background-color:#777aae}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row-line,.inspector-window[data-color-scheme=dark] .cpk-locked-preview-copy,.inspector-window[data-color-scheme=dark] .cpk-locked-preview-footer-line{background-color:#2f323d}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row-line:last-child,.inspector-window[data-color-scheme=dark] .cpk-locked-preview-copy+.cpk-locked-preview-copy,.inspector-window[data-color-scheme=dark] .cpk-locked-preview-footer-line+.cpk-locked-preview-footer-line{background-color:#292c36}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-card{background-color:#191c24;box-shadow:inset 0 0 0 1px #2f323d}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-scrim{background:radial-gradient(circle,#111319f0 0,#111319d6 24%,#11131975 48%,#111319ad 100%)}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-content,.inspector-window[data-color-scheme=dark] .cpk-memory-locked-copy{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-title{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-icon{color:#d8d9ff;box-shadow:none;background-color:#292b43;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-action-secondary{color:#d8d9ff;background-color:#191c24;border-color:#464957}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-action-secondary:hover{color:#fff;background-color:#242731;border-color:#777aae}.inspector-window[data-color-scheme=dark] .cpk-agent-overview,.inspector-window[data-color-scheme=dark] .cpk-section-card{background-color:#191c24!important;border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .cpk-section-header{background-color:#242731!important;border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .cpk-section-header h4{color:#f3f4f8!important}.inspector-window[data-color-scheme=dark] .cpk-agent-icon{color:#d8d9ff!important;background-color:#292b43!important}.inspector-window[data-color-scheme=dark] .cpk-stat-card{background-color:#191c24!important;border-color:#464957!important}.inspector-window[data-color-scheme=dark] button.cpk-stat-card:hover{background-color:#20232d!important}.cpk-agent-messages-head{border-bottom:1px solid #e4e4ec}.cpk-agent-message-row+.cpk-agent-message-row{border-top:1px solid #e4e4ec}.inspector-window[data-color-scheme=dark] .cpk-agent-messages-head,.inspector-window[data-color-scheme=dark] .cpk-agent-message-row+.cpk-agent-message-row,.inspector-window[data-color-scheme=dark] .cpk-agent-view .divide-gray-200>:not([hidden])~:not([hidden]),.inspector-window[data-color-scheme=dark] .cpk-agent-view .divide-y>*{border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .cpk-json-block{color:#c9ccd6}.inspector-window[data-color-scheme=dark] [class*=bg-emerald-50],.inspector-window[data-color-scheme=dark] [class*=bg-green-100]{color:#8ce1c5!important;background-color:#173b32!important}.inspector-window[data-color-scheme=dark] [class*=bg-rose-50]{color:#ff9aa0!important;background-color:#3b1c22!important}.inspector-window[data-color-scheme=dark] [data-cpk-event-error] p,.inspector-window[data-color-scheme=dark] [data-playground-error] p{color:inherit!important}.inspector-window[data-color-scheme=dark] [class*=bg-amber-50],.inspector-window[data-color-scheme=dark] [class*=bg-amber-100]{color:#f2cf8f!important;background-color:#342916!important}.inspector-window[data-color-scheme=dark] [class*=bg-blue-50],.inspector-window[data-color-scheme=dark] [class*=bg-blue-100],.inspector-window[data-color-scheme=dark] [class*=bg-sky-50],.inspector-window[data-color-scheme=dark] [class*=bg-violet-50],.inspector-window[data-color-scheme=dark] [class*=bg-purple-50],.inspector-window[data-color-scheme=dark] [class*=bg-fuchsia-50]{color:#d8d9ff!important;background-color:#292b43!important}.inspector-window[data-color-scheme=dark] [class*=bg-white]{background-color:#191c24!important}.inspector-window[data-color-scheme=dark] [class*=bg-gray-50],.inspector-window[data-color-scheme=dark] [class*=bg-slate-50],.inspector-window[data-color-scheme=dark] [class*=bg-gray-100],.inspector-window[data-color-scheme=dark] [class*=bg-slate-100]{background-color:#171a22!important}.inspector-window[data-color-scheme=dark] [class*=text-gray-900],.inspector-window[data-color-scheme=dark] [class*=text-slate-900],.inspector-window[data-color-scheme=dark] [class*=text-gray-800],.inspector-window[data-color-scheme=dark] [class*=text-slate-800],.inspector-window[data-color-scheme=dark] [class*=text-gray-700],.inspector-window[data-color-scheme=dark] [class*=text-slate-700]{color:#f3f4f8!important}.inspector-window[data-color-scheme=dark] [class*=text-gray-600],.inspector-window[data-color-scheme=dark] [class*=text-slate-600],.inspector-window[data-color-scheme=dark] [class*=text-gray-500],.inspector-window[data-color-scheme=dark] [class*=text-slate-500],.inspector-window[data-color-scheme=dark] [class*=text-gray-400],.inspector-window[data-color-scheme=dark] [class*=text-slate-400]{color:#aeb1bd!important}.inspector-window[data-color-scheme=dark] [class*=border-gray-100],.inspector-window[data-color-scheme=dark] [class*=border-slate-100],.inspector-window[data-color-scheme=dark] [class*=border-gray-200],.inspector-window[data-color-scheme=dark] [class*=border-slate-200],.inspector-window[data-color-scheme=dark] [class*=border-gray-300],.inspector-window[data-color-scheme=dark] [class*=border-slate-300]{border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] input,.inspector-window[data-color-scheme=dark] select,.inspector-window[data-color-scheme=dark] textarea{color:#f3f4f8!important;background-color:#191c24!important;border-color:#464957!important}.inspector-window[data-color-scheme=dark] input::placeholder,.inspector-window[data-color-scheme=dark] textarea::placeholder{color:#858996}.inspector-window[data-color-scheme=dark] .cpk-playground-composer{background-color:#2f3340!important;box-shadow:0 0 0 1px #6d7285!important}.inspector-window[data-color-scheme=dark] .cpk-playground-composer:focus-within{box-shadow:0 0 0 1px #c5c8de!important}.inspector-window[data-color-scheme=dark] .cpk-playground-input{color:#f3f4f8!important;caret-color:#f3f4f8!important;background-color:#0000!important}.inspector-window[data-color-scheme=dark] .cpk-playground-input::placeholder{color:#e4e6ef!important;opacity:1!important}.inspector-window[data-color-scheme=dark] .cpk-playground-send:not(:disabled){color:#111319!important;opacity:1!important;background-color:#f3f4f8!important}.inspector-window[data-color-scheme=dark] .cpk-playground-send:disabled{color:#f3f4f8!important;background-color:#f3f4f833!important}.inspector-window[data-color-scheme=dark] ::selection{color:#fff;background-color:#5b5f92}@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-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{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:\"<percentage>\";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:\"<percentage>\";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:\"<length>\";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:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}";
10
10
 
11
11
  //#endregion
12
12
  //#region src/assets/inspector-logo.svg
@@ -714,7 +714,6 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
714
714
  inspect: [
715
715
  "agents",
716
716
  "ag-ui-events",
717
- "event-snippets",
718
717
  "frontend-tools",
719
718
  "capabilities",
720
719
  "agent-context"
@@ -788,552 +787,9 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
788
787
  return (_sort$0$id = (_sort$ = [...input.threads].sort(compareVisibleThreads)[0]) === null || _sort$ === void 0 ? void 0 : _sort$.id) !== null && _sort$0$id !== void 0 ? _sort$0$id : null;
789
788
  }
790
789
 
791
- //#endregion
792
- //#region src/lib/event-snippets.ts
793
- const EVENT_SNIPPETS_STORAGE_KEY = "cpk:inspector:event-snippets";
794
- const SNIPPET_RECIPES = [
795
- "tool-call",
796
- "reasoning",
797
- "text",
798
- "activity",
799
- "raw"
800
- ];
801
- const ACTIVITY_STARTERS = ["a2ui-surface", "open-generative-ui"];
802
- function isSnippetRecipe(value) {
803
- return typeof value === "string" && SNIPPET_RECIPES.some((recipe) => recipe === value);
804
- }
805
- function createSnippetId() {
806
- if (typeof crypto !== "undefined" && "randomUUID" in crypto) return crypto.randomUUID();
807
- return `cpk-snippet-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
808
- }
809
- function autoSnippetName(recipe, label) {
810
- const time = (/* @__PURE__ */ new Date()).toLocaleTimeString([], {
811
- hour: "2-digit",
812
- minute: "2-digit"
813
- });
814
- return `${label.trim() || recipeLabel(recipe)} - ${time}`;
815
- }
816
- function recipeLabel(recipe) {
817
- switch (recipe) {
818
- case "tool-call": return "Tool call";
819
- case "reasoning": return "Reasoning";
820
- case "text": return "Assistant text";
821
- case "activity": return "Activity";
822
- case "raw": return "Raw events";
823
- }
824
- }
825
- const GENERATE_SANDBOXED_UI_TOOL_NAME = "generateSandboxedUi";
826
- const OPEN_GENERATIVE_UI_ACTIVITY_TYPE = "open-generative-ui";
827
- function recipeIconName(recipe) {
828
- switch (recipe) {
829
- case "tool-call": return "Hammer";
830
- case "reasoning": return "Brain";
831
- case "text": return "MessageSquare";
832
- case "activity": return "LayoutDashboard";
833
- case "raw": return "Code";
834
- }
835
- }
836
- function recipeIconWrapClass(recipe) {
837
- switch (recipe) {
838
- case "tool-call": return "bg-amber-100 text-amber-700";
839
- case "reasoning": return "bg-violet-100 text-violet-700";
840
- case "text": return "bg-sky-100 text-sky-700";
841
- case "activity": return "bg-emerald-100 text-emerald-700";
842
- case "raw": return "bg-gray-200 text-gray-700";
843
- }
844
- }
845
- function groupEventSnippets(snippets) {
846
- return SNIPPET_RECIPES.flatMap((recipe) => {
847
- const items = snippets.filter((snippet) => snippet.recipe === recipe);
848
- if (items.length === 0) return [];
849
- return [{
850
- recipe,
851
- label: recipeLabel(recipe),
852
- snippets: items
853
- }];
854
- });
855
- }
856
- function snippetJsonIsRunnable(raw) {
857
- try {
858
- return parseSnippetEvents(raw).length > 0;
859
- } catch (_unused) {
860
- return false;
861
- }
862
- }
863
- function expandSnippetEventsForRun(events) {
864
- const next = [...events];
865
- const hasOpenGenUi = next.some((event) => event.type === "ACTIVITY_SNAPSHOT" && event.activityType === OPEN_GENERATIVE_UI_ACTIVITY_TYPE);
866
- const toolCallIds = [];
867
- for (const event of next) if (event.type === "TOOL_CALL_START" && event.toolCallName === GENERATE_SANDBOXED_UI_TOOL_NAME && typeof event.toolCallId === "string") toolCallIds.push(event.toolCallId);
868
- if (toolCallIds.length === 0) return next;
869
- const argParts = /* @__PURE__ */ new Map();
870
- for (const event of next) if (event.type === "TOOL_CALL_ARGS" && typeof event.toolCallId === "string" && typeof event.delta === "string") {
871
- var _argParts$get;
872
- const parts = (_argParts$get = argParts.get(event.toolCallId)) !== null && _argParts$get !== void 0 ? _argParts$get : [];
873
- parts.push(event.delta);
874
- argParts.set(event.toolCallId, parts);
875
- }
876
- const extras = [];
877
- for (const toolCallId of toolCallIds) {
878
- let addedSnapshot = false;
879
- if (!hasOpenGenUi) {
880
- var _argParts$get2;
881
- const snapshot = activitySnapshotFromSandboxedUiArgs(toolCallId, ((_argParts$get2 = argParts.get(toolCallId)) !== null && _argParts$get2 !== void 0 ? _argParts$get2 : []).join(""));
882
- if (snapshot) {
883
- extras.push(snapshot);
884
- addedSnapshot = true;
885
- }
886
- }
887
- if (!hasOpenGenUi && !addedSnapshot) continue;
888
- if (!next.some((event) => event.type === "TOOL_CALL_RESULT" && event.toolCallId === toolCallId)) extras.push({
889
- type: "TOOL_CALL_RESULT",
890
- toolCallId,
891
- messageId: `${toolCallId}-result`,
892
- role: "tool",
893
- content: "UI generated"
894
- });
895
- }
896
- if (extras.length === 0) return next;
897
- const finishIndex = next.findIndex((event) => event.type === "RUN_FINISHED");
898
- if (finishIndex === -1) return [...next, ...extras];
899
- return [
900
- ...next.slice(0, finishIndex),
901
- ...extras,
902
- ...next.slice(finishIndex)
903
- ];
904
- }
905
- function activitySnapshotFromSandboxedUiArgs(toolCallId, rawArgs) {
906
- let args;
907
- try {
908
- const parsed = JSON.parse(snippetArgsJson(rawArgs));
909
- if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return null;
910
- args = parsed;
911
- } catch (_unused2) {
912
- return null;
913
- }
914
- const html = sandboxedUiHtmlChunks(args.html);
915
- const css = typeof args.css === "string" ? args.css : void 0;
916
- const jsFunctions = typeof args.jsFunctions === "string" ? args.jsFunctions : void 0;
917
- const jsExpressions = Array.isArray(args.jsExpressions) ? args.jsExpressions.filter((item) => typeof item === "string") : void 0;
918
- if (html.length === 0 && css === void 0 && jsFunctions === void 0 && (jsExpressions === void 0 || jsExpressions.length === 0)) return null;
919
- return {
920
- type: "ACTIVITY_SNAPSHOT",
921
- messageId: `${toolCallId}-activity`,
922
- activityType: OPEN_GENERATIVE_UI_ACTIVITY_TYPE,
923
- content: {
924
- initialHeight: typeof args.initialHeight === "number" ? args.initialHeight : void 0,
925
- generating: false,
926
- css,
927
- cssComplete: true,
928
- html,
929
- htmlComplete: true,
930
- jsFunctions,
931
- jsFunctionsComplete: true,
932
- jsExpressions,
933
- jsExpressionsComplete: true
934
- },
935
- replace: true
936
- };
937
- }
938
- function sandboxedUiHtmlChunks(html) {
939
- if (typeof html === "string" && html.length > 0) return [html];
940
- if (Array.isArray(html)) return html.filter((item) => typeof item === "string");
941
- return [];
942
- }
943
- function snippetContainsToolCall(events) {
944
- return events.some((event) => typeof event.type === "string" && event.type.startsWith("TOOL_CALL"));
945
- }
946
- function ensureRunEnvelope(events, ids) {
947
- const next = [...events];
948
- const hasStart = next.some((event) => event.type === "RUN_STARTED");
949
- const hasFinish = next.some((event) => event.type === "RUN_FINISHED");
950
- if (!hasStart) next.unshift({
951
- type: "RUN_STARTED",
952
- threadId: ids.threadId,
953
- runId: ids.runId
954
- });
955
- if (!hasFinish) next.push({
956
- type: "RUN_FINISHED",
957
- threadId: ids.threadId,
958
- runId: ids.runId
959
- });
960
- return next;
961
- }
962
- function snippetArgsJson(value) {
963
- if (value && typeof value === "object") return JSON.stringify(value);
964
- if (typeof value !== "string") return "{}";
965
- const trimmed = value.trim() || "{}";
966
- try {
967
- return JSON.stringify(JSON.parse(trimmed));
968
- } catch (_unused3) {
969
- const recovered = firstJsonValue(trimmed);
970
- if (recovered !== void 0) return JSON.stringify(recovered);
971
- throw new Error("Tool args JSON is invalid.");
972
- }
973
- }
974
- function firstJsonValue(raw) {
975
- const start = raw.indexOf("{");
976
- if (start === -1) return;
977
- let depth = 0;
978
- let inString = false;
979
- let escaped = false;
980
- for (let index = start; index < raw.length; index += 1) {
981
- const char = raw[index];
982
- if (inString) {
983
- if (escaped) escaped = false;
984
- else if (char === "\\") escaped = true;
985
- else if (char === "\"") inString = false;
986
- continue;
987
- }
988
- if (char === "\"") inString = true;
989
- else if (char === "{") depth += 1;
990
- else if (char === "}") {
991
- depth -= 1;
992
- if (depth === 0) try {
993
- return JSON.parse(raw.slice(start, index + 1));
994
- } catch (_unused4) {
995
- return;
996
- }
997
- }
998
- }
999
- }
1000
- function compileToolCallRecipe(input) {
1001
- var _input$parentMessageI, _input$toolCallId;
1002
- const toolName = input.toolName.trim();
1003
- if (!toolName) throw new Error("Tool name is required.");
1004
- const argsJson = snippetArgsJson(input.argsJson);
1005
- parseObjectJson(argsJson, "Tool args");
1006
- const parentMessageId = (_input$parentMessageI = input.parentMessageId) !== null && _input$parentMessageI !== void 0 ? _input$parentMessageI : createSnippetId();
1007
- const toolCallId = (_input$toolCallId = input.toolCallId) !== null && _input$toolCallId !== void 0 ? _input$toolCallId : createSnippetId();
1008
- return ensureRunEnvelope([
1009
- {
1010
- type: "TOOL_CALL_START",
1011
- toolCallId,
1012
- toolCallName: toolName,
1013
- parentMessageId
1014
- },
1015
- {
1016
- type: "TOOL_CALL_ARGS",
1017
- toolCallId,
1018
- delta: argsJson
1019
- },
1020
- {
1021
- type: "TOOL_CALL_END",
1022
- toolCallId
1023
- }
1024
- ], input);
1025
- }
1026
- function compileReasoningRecipe(input) {
1027
- const text = input.text.trim();
1028
- if (!text) throw new Error("Reasoning text is required.");
1029
- const messageId = createSnippetId();
1030
- return ensureRunEnvelope([
1031
- {
1032
- type: "REASONING_START",
1033
- messageId
1034
- },
1035
- {
1036
- type: "REASONING_MESSAGE_START",
1037
- messageId,
1038
- role: "reasoning"
1039
- },
1040
- {
1041
- type: "REASONING_MESSAGE_CONTENT",
1042
- messageId,
1043
- delta: text
1044
- },
1045
- {
1046
- type: "REASONING_MESSAGE_END",
1047
- messageId
1048
- },
1049
- {
1050
- type: "REASONING_END",
1051
- messageId
1052
- }
1053
- ], input);
1054
- }
1055
- function compileTextRecipe(input) {
1056
- var _input$messageId;
1057
- const text = input.text.trim();
1058
- if (!text) throw new Error("Assistant text is required.");
1059
- const messageId = (_input$messageId = input.messageId) !== null && _input$messageId !== void 0 ? _input$messageId : createSnippetId();
1060
- return ensureRunEnvelope([
1061
- {
1062
- type: "TEXT_MESSAGE_START",
1063
- messageId,
1064
- role: "assistant"
1065
- },
1066
- {
1067
- type: "TEXT_MESSAGE_CONTENT",
1068
- messageId,
1069
- delta: text
1070
- },
1071
- {
1072
- type: "TEXT_MESSAGE_END",
1073
- messageId
1074
- }
1075
- ], input);
1076
- }
1077
- function compileActivityRecipe(input) {
1078
- var _input$messageId2;
1079
- const activityType = input.activityType.trim();
1080
- if (!activityType) throw new Error("Activity type is required.");
1081
- const content = parseObjectJson(input.contentJson, "Activity content");
1082
- return ensureRunEnvelope([{
1083
- type: "ACTIVITY_SNAPSHOT",
1084
- messageId: (_input$messageId2 = input.messageId) !== null && _input$messageId2 !== void 0 ? _input$messageId2 : createSnippetId(),
1085
- activityType,
1086
- content,
1087
- replace: true
1088
- }], input);
1089
- }
1090
- function emptyRecipeDraft() {
1091
- return {
1092
- toolName: "",
1093
- toolArgs: "{}",
1094
- reasoningText: "",
1095
- textContent: "",
1096
- activityType: "a2ui-surface",
1097
- activityContent: "{}"
1098
- };
1099
- }
1100
- function compileChatSnippet(input) {
1101
- switch (input.kind) {
1102
- case "text": return {
1103
- recipe: "text",
1104
- events: compileTextRecipe({
1105
- text: input.content,
1106
- threadId: input.threadId,
1107
- runId: input.runId,
1108
- messageId: input.messageId
1109
- }),
1110
- name: autoSnippetName("text", snippetLabelFromText(input.content))
1111
- };
1112
- case "reasoning": return {
1113
- recipe: "reasoning",
1114
- events: compileReasoningRecipe({
1115
- text: input.content,
1116
- threadId: input.threadId,
1117
- runId: input.runId
1118
- }),
1119
- name: autoSnippetName("reasoning", snippetLabelFromText(input.content))
1120
- };
1121
- case "tool-call": return {
1122
- recipe: "tool-call",
1123
- events: compileToolCallRecipe({
1124
- toolName: input.toolName,
1125
- argsJson: snippetArgsJson(input.argsJson),
1126
- threadId: input.threadId,
1127
- runId: input.runId,
1128
- parentMessageId: input.messageId,
1129
- toolCallId: input.toolCallId
1130
- }),
1131
- name: autoSnippetName("tool-call", input.toolName)
1132
- };
1133
- case "activity":
1134
- var _input$content;
1135
- return {
1136
- recipe: "activity",
1137
- events: compileActivityRecipe({
1138
- activityType: input.activityType,
1139
- contentJson: JSON.stringify((_input$content = input.content) !== null && _input$content !== void 0 ? _input$content : {}),
1140
- threadId: input.threadId,
1141
- runId: input.runId,
1142
- messageId: input.messageId
1143
- }),
1144
- name: autoSnippetName("activity", input.activityType)
1145
- };
1146
- }
1147
- }
1148
- function editorStateFromSnippet(snippet) {
1149
- return {
1150
- recipe: snippet.recipe,
1151
- name: snippet.name,
1152
- json: JSON.stringify(snippet.events, null, 2),
1153
- draft: recipeDraftFromEvents(snippet.events)
1154
- };
1155
- }
1156
- function recipeDraftFromEvents(events) {
1157
- const draft = emptyRecipeDraft();
1158
- const textParts = [];
1159
- const reasoningParts = [];
1160
- const argParts = [];
1161
- for (const event of events) {
1162
- if (event.type === "TEXT_MESSAGE_CONTENT") {
1163
- const delta = readEventString(event, "delta");
1164
- if (delta) textParts.push(delta);
1165
- }
1166
- if (event.type === "REASONING_MESSAGE_CONTENT") {
1167
- const delta = readEventString(event, "delta");
1168
- if (delta) reasoningParts.push(delta);
1169
- }
1170
- if (event.type === "TOOL_CALL_START") {
1171
- const toolName = readEventString(event, "toolCallName");
1172
- if (toolName) draft.toolName = toolName;
1173
- }
1174
- if (event.type === "TOOL_CALL_ARGS") {
1175
- const delta = readEventString(event, "delta");
1176
- if (delta) argParts.push(delta);
1177
- }
1178
- if (event.type === "ACTIVITY_SNAPSHOT") {
1179
- var _event$content;
1180
- const activityType = readEventString(event, "activityType");
1181
- if (activityType) draft.activityType = activityType;
1182
- draft.activityContent = prettyJson((_event$content = event.content) !== null && _event$content !== void 0 ? _event$content : {});
1183
- }
1184
- }
1185
- draft.textContent = textParts.join("");
1186
- draft.reasoningText = reasoningParts.join("");
1187
- if (argParts.length > 0) draft.toolArgs = prettyJson(argParts.join(""));
1188
- return draft;
1189
- }
1190
- function compileFromActivityMessage(input) {
1191
- return compileChatSnippet({
1192
- kind: "activity",
1193
- messageId: input.message.id,
1194
- activityType: input.message.activityType,
1195
- content: input.message.content,
1196
- threadId: input.threadId,
1197
- runId: input.runId
1198
- });
1199
- }
1200
- function parseSnippetEvents(raw) {
1201
- let parsed;
1202
- try {
1203
- parsed = JSON.parse(raw);
1204
- } catch (_unused5) {
1205
- throw new Error("Snippet JSON is invalid.");
1206
- }
1207
- if (!Array.isArray(parsed)) throw new Error("Snippet JSON must be an array of events.");
1208
- const events = [];
1209
- for (const item of parsed) {
1210
- if (!item || typeof item !== "object" || Array.isArray(item)) throw new Error("Each event must be an object with a string type.");
1211
- const record = item;
1212
- if (typeof record.type !== "string" || record.type.length === 0) throw new Error("Each event must have a string type.");
1213
- events.push(item);
1214
- }
1215
- return events;
1216
- }
1217
- function loadEventSnippets(storage = defaultStorage()) {
1218
- if (!storage) return [];
1219
- try {
1220
- const raw = storage.getItem(EVENT_SNIPPETS_STORAGE_KEY);
1221
- if (!raw) return [];
1222
- const parsed = JSON.parse(raw);
1223
- if (!Array.isArray(parsed)) return [];
1224
- return parsed.flatMap((item) => {
1225
- const snippet = parseStoredSnippet(item);
1226
- return snippet ? [snippet] : [];
1227
- });
1228
- } catch (_unused6) {
1229
- return [];
1230
- }
1231
- }
1232
- function saveEventSnippets(snippets, storage = defaultStorage()) {
1233
- if (!storage) throw new Error("Snippet storage is not available.");
1234
- storage.setItem(EVENT_SNIPPETS_STORAGE_KEY, JSON.stringify(snippets));
1235
- }
1236
- function upsertEventSnippet(snippet, storage = defaultStorage()) {
1237
- const current = loadEventSnippets(storage);
1238
- const index = current.findIndex((item) => item.id === snippet.id);
1239
- const next = index === -1 ? [...current, snippet] : current.map((item, itemIndex) => itemIndex === index ? snippet : item);
1240
- saveEventSnippets(next, storage);
1241
- return next;
1242
- }
1243
- function deleteEventSnippet(id, storage = defaultStorage()) {
1244
- const next = loadEventSnippets(storage).filter((item) => item.id !== id);
1245
- saveEventSnippets(next, storage);
1246
- return next;
1247
- }
1248
- function exportEventSnippetsJson(snippets) {
1249
- return JSON.stringify(snippets, null, 2);
1250
- }
1251
- function importEventSnippets(raw, storage = defaultStorage()) {
1252
- let parsed;
1253
- try {
1254
- parsed = JSON.parse(raw);
1255
- } catch (_unused7) {
1256
- throw new Error("Import JSON is invalid.");
1257
- }
1258
- const incoming = Array.isArray(parsed) ? parsed : [parsed];
1259
- const imported = [];
1260
- for (const item of incoming) {
1261
- const snippet = parseStoredSnippet(item);
1262
- if (!snippet) throw new Error("Import JSON is not a valid snippet list.");
1263
- imported.push({
1264
- ...snippet,
1265
- id: createSnippetId(),
1266
- createdAt: (/* @__PURE__ */ new Date()).toISOString(),
1267
- updatedAt: (/* @__PURE__ */ new Date()).toISOString()
1268
- });
1269
- }
1270
- if (imported.length === 0) throw new Error("Import JSON is not a valid snippet list.");
1271
- const next = [...loadEventSnippets(storage), ...imported];
1272
- saveEventSnippets(next, storage);
1273
- return next;
1274
- }
1275
- function snippetLabelFromText(text) {
1276
- const compact = text.trim().replace(/\s+/g, " ");
1277
- if (compact.length <= 40) return compact;
1278
- return `${compact.slice(0, 37)}...`;
1279
- }
1280
- function parseObjectJson(raw, label) {
1281
- try {
1282
- return JSON.parse(raw);
1283
- } catch (_unused8) {
1284
- throw new Error(`${label} JSON is invalid.`);
1285
- }
1286
- }
1287
- function readEventString(event, key) {
1288
- const value = event[key];
1289
- return typeof value === "string" && value.length > 0 ? value : null;
1290
- }
1291
- function prettyJson(value) {
1292
- if (typeof value === "string") try {
1293
- return JSON.stringify(JSON.parse(value), null, 2);
1294
- } catch (_unused9) {
1295
- return value;
1296
- }
1297
- try {
1298
- return JSON.stringify(value !== null && value !== void 0 ? value : {}, null, 2);
1299
- } catch (_unused10) {
1300
- return "{}";
1301
- }
1302
- }
1303
- function parseStoredSnippet(value) {
1304
- if (!value || typeof value !== "object" || Array.isArray(value)) return null;
1305
- const record = value;
1306
- if (typeof record.id !== "string" || record.id.length === 0) return null;
1307
- if (typeof record.name !== "string") return null;
1308
- if (!isSnippetRecipe(record.recipe)) return null;
1309
- if (!Array.isArray(record.events)) return null;
1310
- const events = [];
1311
- for (const event of record.events) {
1312
- if (!event || typeof event !== "object" || Array.isArray(event)) return null;
1313
- if (typeof event.type !== "string") return null;
1314
- events.push(event);
1315
- }
1316
- return {
1317
- id: record.id,
1318
- name: record.name,
1319
- recipe: record.recipe,
1320
- events,
1321
- createdAt: typeof record.createdAt === "string" ? record.createdAt : (/* @__PURE__ */ new Date()).toISOString(),
1322
- updatedAt: typeof record.updatedAt === "string" ? record.updatedAt : (/* @__PURE__ */ new Date()).toISOString()
1323
- };
1324
- }
1325
- function defaultStorage() {
1326
- if (typeof window === "undefined") return null;
1327
- try {
1328
- return window.localStorage;
1329
- } catch (_unused11) {
1330
- return null;
1331
- }
1332
- }
1333
-
1334
790
  //#endregion
1335
791
  //#region package.json
1336
- var version = "1.69.1";
792
+ var version = "1.69.3";
1337
793
 
1338
794
  //#endregion
1339
795
  //#region src/lib/telemetry.ts
@@ -1361,9 +817,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
1361
817
  homeViewed: "oss.inspector.home_viewed",
1362
818
  homeCtaClicked: "oss.inspector.home_cta_clicked",
1363
819
  metadataModuleViewed: "oss.inspector.metadata_module_viewed",
1364
- metadataActionClicked: "oss.inspector.metadata_action_clicked",
1365
- eventSnippetsRun: "oss.inspector.event_snippets_run",
1366
- eventSnippetsSaved: "oss.inspector.event_snippets_saved"
820
+ metadataActionClicked: "oss.inspector.metadata_action_clicked"
1367
821
  };
1368
822
  const TELEMETRY_INGEST_URL = "https://telemetry.copilotkit.ai/ingest";
1369
823
  const TELEMETRY_DOCS_URL = "https://docs.copilotkit.ai/telemetry";
@@ -1610,20 +1064,6 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
1610
1064
  ...metadataCoarseProperties(props)
1611
1065
  });
1612
1066
  }
1613
- function trackEventSnippetsRun(props) {
1614
- track(TELEMETRY_EVENTS.eventSnippetsRun, {
1615
- recipe: props.recipe,
1616
- source: props.source,
1617
- success: props.success
1618
- });
1619
- }
1620
- function trackEventSnippetsSaved(props) {
1621
- track(TELEMETRY_EVENTS.eventSnippetsSaved, {
1622
- recipe: props.recipe,
1623
- source: props.source,
1624
- success: props.success
1625
- });
1626
- }
1627
1067
  /**
1628
1068
  * Returns the inspector's anonymous distinct-ID for cross-domain
1629
1069
  * propagation onto outbound announcement-CTA links, or `null` when the user
@@ -1914,6 +1354,21 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
1914
1354
  const EDGE_MARGIN = 16;
1915
1355
  /** HUD card plus the hover bridge. Used to pick left vs right. */
1916
1356
  const LAUNCHER_HUD_WIDTH = 248;
1357
+ /**
1358
+ * One page-load preview of the launcher's feature HUD.
1359
+ *
1360
+ * The card arrives after the host page has had a beat to settle. Its four rows
1361
+ * then come online in order, stay readable, and leave together. Nothing is
1362
+ * persisted: a new Inspector element means a new preview.
1363
+ */
1364
+ const LAUNCHER_HUD_INTRO_MS = {
1365
+ delay: 500,
1366
+ duration: 3400,
1367
+ rowStart: 180,
1368
+ rowStagger: 170,
1369
+ rowDuration: 300,
1370
+ blockedRetry: 250
1371
+ };
1917
1372
  const DRAG_THRESHOLD = 6;
1918
1373
  const MIN_WINDOW_WIDTH = 880;
1919
1374
  const MIN_WINDOW_WIDTH_DOCKED_LEFT = 640;
@@ -2020,6 +1475,29 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2020
1475
  "ACTIVITY_SNAPSHOT",
2021
1476
  "ACTIVITY_DELTA"
2022
1477
  ];
1478
+ const EMPTY_INSPECTOR_MESSAGES = [];
1479
+ function textFromUnknownContent(content) {
1480
+ if (typeof content === "string") return content;
1481
+ if (Array.isArray(content)) {
1482
+ const parts = [];
1483
+ for (const part of content) {
1484
+ if (typeof part === "string") {
1485
+ parts.push(part);
1486
+ continue;
1487
+ }
1488
+ if (typeof part === "object" && part !== null && "text" in part) {
1489
+ const text = part.text;
1490
+ if (typeof text === "string") parts.push(text);
1491
+ }
1492
+ }
1493
+ return parts.join("");
1494
+ }
1495
+ if (typeof content === "object" && content !== null && "text" in content) {
1496
+ const text = content.text;
1497
+ if (typeof text === "string") return text;
1498
+ }
1499
+ return "";
1500
+ }
2023
1501
  /**
2024
1502
  * Map core.tools (the registry INCLUDING disabled tools) into Capabilities-tab
2025
1503
  * frontend-tool rows. Pure: no DOM, no `this`. Reads current on/off state from
@@ -2281,13 +1759,6 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2281
1759
  const cached = highlightedJsonCache.get(obj);
2282
1760
  if (cached !== void 0) return cached;
2283
1761
  }
2284
- const colors = {
2285
- key: "#5558B2",
2286
- str: "#087653",
2287
- num: "#8a5900",
2288
- bool: "#c0333a",
2289
- nil: "#68686e"
2290
- };
2291
1762
  const json = JSON.stringify(obj, null, 2);
2292
1763
  if (!json) return "";
2293
1764
  const parts = [];
@@ -2297,11 +1768,11 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2297
1768
  while ((match = re.exec(json)) !== null) {
2298
1769
  parts.push(escapeHtml(json.slice(lastIndex, match.index)));
2299
1770
  const m = match[0];
2300
- let color = colors.num;
2301
- if (m.startsWith("\"")) color = m.trimEnd().endsWith(":") ? colors.key : colors.str;
2302
- else if (m === "true" || m === "false") color = colors.bool;
2303
- else if (m === "null") color = colors.nil;
2304
- parts.push(`<span style="color:${color}">${escapeHtml(m)}</span>`);
1771
+ let token = "num";
1772
+ if (m.startsWith("\"")) token = m.trimEnd().endsWith(":") ? "key" : "str";
1773
+ else if (m === "true" || m === "false") token = "bool";
1774
+ else if (m === "null") token = "nil";
1775
+ parts.push(`<span class="cpk-json-token cpk-json-token--${token}">${escapeHtml(m)}</span>`);
2305
1776
  lastIndex = match.index + m.length;
2306
1777
  }
2307
1778
  parts.push(escapeHtml(json.slice(lastIndex)));
@@ -2326,31 +1797,23 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2326
1797
  ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
2327
1798
  >`;
2328
1799
  }
2329
- function eventColors(type) {
2330
- if (type.startsWith("TEXT_MESSAGE")) return {
2331
- bg: "#EEE6FE",
2332
- fg: "#57575B"
2333
- };
2334
- if (type.startsWith("TOOL_CALL")) return {
2335
- bg: "rgba(133,236,206,0.15)",
2336
- fg: "#087653"
2337
- };
2338
- if (type.startsWith("STATE")) return {
2339
- bg: "rgba(190,194,255,0.102)",
2340
- fg: "#5558B2"
2341
- };
2342
- if (type === "RUN_ERROR" || type === "ERROR") return {
2343
- bg: "rgba(250,95,103,0.13)",
2344
- fg: "#c0333a"
2345
- };
2346
- if (type.startsWith("RUN_") || type.startsWith("STEP_")) return {
2347
- bg: "rgba(255,172,77,0.2)",
2348
- fg: "#8a5900"
2349
- };
2350
- return {
2351
- bg: "#F7F7F9",
2352
- fg: "#68686e"
2353
- };
1800
+ function humanizeEventType(type) {
1801
+ const words = type.trim().split(/[_\s]+/).filter(Boolean).map((word) => word.toLowerCase());
1802
+ if (words.length === 0) return "Event";
1803
+ const [first = "event", ...rest] = words;
1804
+ return [`${first.charAt(0).toUpperCase()}${first.slice(1)}`, ...rest].join(" ");
1805
+ }
1806
+ function messageTitle(role) {
1807
+ const normalized = role.trim() || "message";
1808
+ return `${`${normalized.charAt(0).toUpperCase()}${normalized.slice(1).toLowerCase()}`} message`;
1809
+ }
1810
+ function eventCategory(type) {
1811
+ if (type === "RUN_ERROR" || type === "ERROR") return "error";
1812
+ if (type.startsWith("TEXT_MESSAGE")) return "message";
1813
+ if (type.startsWith("TOOL_CALL")) return "tool";
1814
+ if (type.startsWith("STATE") || type.startsWith("MESSAGES")) return "state";
1815
+ if (type.startsWith("RUN_") || type.startsWith("STEP_")) return "run";
1816
+ return "event";
2354
1817
  }
2355
1818
  function formatTimestamp(ts) {
2356
1819
  const date = typeof ts === "number" ? new Date(ts) : new Date(ts);
@@ -2755,6 +2218,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
2755
2218
  this.threadInspectionAvailable = false;
2756
2219
  this.agentStateInput = null;
2757
2220
  this.agentEventsInput = [];
2221
+ this.agentMessagesInput = EMPTY_INSPECTOR_MESSAGES;
2758
2222
  this.liveMessageVersion = 0;
2759
2223
  this.viewInAppMode = "hidden";
2760
2224
  this.viewInAppError = null;
@@ -2912,7 +2376,8 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
2912
2376
  if (this.canFetchEvents()) {
2913
2377
  this._eventsFetched = true;
2914
2378
  this.fetchEvents(this.threadId);
2915
- } else this.fetchMessages(this.threadId);
2379
+ }
2380
+ if (this.canFetchMessages()) this.fetchMessages(this.threadId);
2916
2381
  } else {
2917
2382
  this._fetchedMetadata = null;
2918
2383
  this._conversation = [];
@@ -2924,7 +2389,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
2924
2389
  this._messagesAbort = null;
2925
2390
  this.fetchMessages(this.threadId, true);
2926
2391
  }
2927
- const focusedContentChanged = _changed.has("_fetchedEvents") || _changed.has("agentEventsInput") || _changed.has("_conversation");
2392
+ const focusedContentChanged = _changed.has("_fetchedEvents") || _changed.has("agentEventsInput") || _changed.has("agentMessagesInput") || _changed.has("_conversation");
2928
2393
  if (this.focusMessageId && (this.focusRequestId > this._scrolledFocusRequestId || focusedContentChanged)) {
2929
2394
  if (this._tab !== "timeline") {
2930
2395
  this._activatedTabs = new Set([...this._activatedTabs, "timeline"]);
@@ -3092,18 +2557,14 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3092
2557
  if (result.status === "not-available") {
3093
2558
  this._eventsNotAvailable = true;
3094
2559
  this._fetchedEvents = [];
3095
- if (this.canFetchMessages()) this.fetchMessages(threadId);
3096
2560
  return;
3097
2561
  }
3098
- const mappedEvents = this.mapApiEvents(result.events);
3099
- this._fetchedEvents = mappedEvents;
3100
- if (mappedEvents.length === 0 && this.canFetchMessages()) this.fetchMessages(threadId);
2562
+ this._fetchedEvents = this.mapApiEvents(result.events);
3101
2563
  } catch (err) {
3102
2564
  if (err instanceof Error && err.name === "AbortError") return;
3103
2565
  if (this.threadId !== threadId) return;
3104
2566
  this._eventsError = err instanceof Error ? err.message : "Failed to load events";
3105
2567
  this._fetchedEvents = [];
3106
- if (this.canFetchMessages()) this.fetchMessages(threadId);
3107
2568
  } finally {
3108
2569
  if (!controller.signal.aborted && this.threadId === threadId) this._loadingEvents = false;
3109
2570
  }
@@ -3180,13 +2641,15 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3180
2641
  mapMessages(messages) {
3181
2642
  const items = [];
3182
2643
  const toolCallMap = /* @__PURE__ */ new Map();
3183
- for (const msg of messages) if (msg.role === "user" && msg.content) items.push({
3184
- id: msg.id,
3185
- type: "user",
3186
- content: msg.content,
3187
- createdAt: ""
3188
- });
3189
- else if (msg.role === "assistant") {
2644
+ for (const msg of messages) if (msg.role === "user") {
2645
+ const content = textFromUnknownContent(msg.content);
2646
+ if (content) items.push({
2647
+ id: msg.id,
2648
+ type: "user",
2649
+ content,
2650
+ createdAt: ""
2651
+ });
2652
+ } else if (msg.role === "assistant") {
3190
2653
  var _msg$toolCalls;
3191
2654
  if ((_msg$toolCalls = msg.toolCalls) === null || _msg$toolCalls === void 0 ? void 0 : _msg$toolCalls.length) for (const tc of msg.toolCalls) {
3192
2655
  let args = {};
@@ -3216,10 +2679,11 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3216
2679
  toolCallMap.set(tc.id, item);
3217
2680
  items.push(item);
3218
2681
  }
3219
- if (msg.content) items.push({
2682
+ const assistantContent = textFromUnknownContent(msg.content);
2683
+ if (assistantContent) items.push({
3220
2684
  id: msg.id,
3221
2685
  type: "assistant",
3222
- content: msg.content,
2686
+ content: assistantContent,
3223
2687
  createdAt: ""
3224
2688
  });
3225
2689
  } else if (msg.role === "activity") {
@@ -3271,14 +2735,89 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3271
2735
  }
3272
2736
  timelineItemsForEvents(events) {
3273
2737
  var _this$_timelineItemsC;
3274
- if (((_this$_timelineItemsC = this._timelineItemsCache) === null || _this$_timelineItemsC === void 0 ? void 0 : _this$_timelineItemsC.events) === events) return this._timelineItemsCache.items;
3275
- const items = this.timelineItemsFromEvents(events);
2738
+ const conversation = this._conversation;
2739
+ const agentMessages = this.agentMessagesInput;
2740
+ if (((_this$_timelineItemsC = this._timelineItemsCache) === null || _this$_timelineItemsC === void 0 ? void 0 : _this$_timelineItemsC.events) === events && this._timelineItemsCache.conversation === conversation && this._timelineItemsCache.agentMessages === agentMessages) return this._timelineItemsCache.items;
2741
+ const items = this.mergeUserMessagesIntoTimeline(this.timelineItemsFromEvents(events));
3276
2742
  this._timelineItemsCache = {
3277
2743
  events,
2744
+ conversation,
2745
+ agentMessages,
3278
2746
  items
3279
2747
  };
3280
2748
  return items;
3281
2749
  }
2750
+ conversationUsers() {
2751
+ const users = [];
2752
+ const seenIds = /* @__PURE__ */ new Set();
2753
+ const seenBodies = /* @__PURE__ */ new Set();
2754
+ const push = (user) => {
2755
+ const body = user.content.trim();
2756
+ if (!body) return;
2757
+ if (seenIds.has(user.id) || seenBodies.has(body)) return;
2758
+ seenIds.add(user.id);
2759
+ seenBodies.add(body);
2760
+ users.push(user);
2761
+ };
2762
+ for (const item of this._conversation) if (item.type === "user") push(item);
2763
+ this.agentMessagesInput.forEach((message, index) => {
2764
+ var _message$id;
2765
+ if (message.role !== "user") return;
2766
+ push({
2767
+ id: (_message$id = message.id) !== null && _message$id !== void 0 ? _message$id : `live-user-${index}`,
2768
+ type: "user",
2769
+ content: message.contentText,
2770
+ createdAt: ""
2771
+ });
2772
+ });
2773
+ return users;
2774
+ }
2775
+ mergeUserMessagesIntoTimeline(items) {
2776
+ if (items.length === 0) return items;
2777
+ const users = this.conversationUsers();
2778
+ if (users.length === 0) return items;
2779
+ const shownIds = /* @__PURE__ */ new Set();
2780
+ const shownBodies = /* @__PURE__ */ new Set();
2781
+ for (const item of items) {
2782
+ var _item$body;
2783
+ if (item.kind !== "message") continue;
2784
+ if (!item.title.toLowerCase().startsWith("user")) continue;
2785
+ if (item.messageId) shownIds.add(item.messageId);
2786
+ const body = (_item$body = item.body) === null || _item$body === void 0 ? void 0 : _item$body.trim();
2787
+ if (body) shownBodies.add(body);
2788
+ }
2789
+ const missing = users.filter((user) => {
2790
+ if (shownIds.has(user.id)) return false;
2791
+ if (shownBodies.has(user.content.trim())) return false;
2792
+ return true;
2793
+ });
2794
+ if (missing.length === 0) return items;
2795
+ const insertAt = [];
2796
+ for (let index = 0; index < items.length; index++) {
2797
+ const item = items[index];
2798
+ if (item.kind === "run" && item.title === "Run started") insertAt.push(index);
2799
+ }
2800
+ if (insertAt.length === 0) for (let index = 0; index < items.length; index++) {
2801
+ const item = items[index];
2802
+ if (item.kind === "message" && item.title.toLowerCase().includes("assistant")) insertAt.push(index);
2803
+ }
2804
+ const merged = [...items];
2805
+ for (let index = missing.length - 1; index >= 0; index--) {
2806
+ var _insertAt$index;
2807
+ const user = missing[index];
2808
+ const row = {
2809
+ id: `conversation-user-${user.id}`,
2810
+ messageId: user.id,
2811
+ kind: "message",
2812
+ title: "User message",
2813
+ body: user.content,
2814
+ timestamp: user.createdAt || 0,
2815
+ sourceIndex: 0
2816
+ };
2817
+ merged.splice((_insertAt$index = insertAt[index]) !== null && _insertAt$index !== void 0 ? _insertAt$index : 0, 0, row);
2818
+ }
2819
+ return merged;
2820
+ }
3282
2821
  timelineItemsFromEvents(events) {
3283
2822
  if (events.length === 0) return [];
3284
2823
  const items = [];
@@ -3321,7 +2860,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3321
2860
  id: `message-${key}`,
3322
2861
  messageId: key,
3323
2862
  kind: "message",
3324
- title: `${role || "message"} message`,
2863
+ title: messageTitle(role || "message"),
3325
2864
  body: "",
3326
2865
  timestamp: event.timestamp,
3327
2866
  sourceIndex
@@ -3414,9 +2953,9 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3414
2953
  continue;
3415
2954
  }
3416
2955
  if (type === "TEXT_MESSAGE_CONTENT") {
3417
- var _readString6, _item$body, _readString7;
2956
+ var _readString6, _item$body2, _readString7;
3418
2957
  const item = ensureMessage(event, (_readString6 = readString(payload, ["role"])) !== null && _readString6 !== void 0 ? _readString6 : "assistant");
3419
- item.body = `${(_item$body = item.body) !== null && _item$body !== void 0 ? _item$body : ""}${(_readString7 = readString(payload, [
2958
+ item.body = `${(_item$body2 = item.body) !== null && _item$body2 !== void 0 ? _item$body2 : ""}${(_readString7 = readString(payload, [
3420
2959
  "delta",
3421
2960
  "content",
3422
2961
  "text"
@@ -3477,7 +3016,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3477
3016
  items.push({
3478
3017
  id: `${type}-${sourceIndex}`,
3479
3018
  kind: "state",
3480
- title: type === "STATE_SNAPSHOT" ? "State snapshot captured" : "State delta captured",
3019
+ title: type === "STATE_SNAPSHOT" ? "State snapshot" : "State delta",
3481
3020
  timestamp: event.timestamp,
3482
3021
  sourceIndex,
3483
3022
  details: payload
@@ -3487,7 +3026,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3487
3026
  items.push({
3488
3027
  id: `event-${sourceIndex}`,
3489
3028
  kind: "event",
3490
- title: type,
3029
+ title: humanizeEventType(type),
3491
3030
  timestamp: event.timestamp,
3492
3031
  sourceIndex,
3493
3032
  details: payload
@@ -3630,6 +3169,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3630
3169
  });
3631
3170
  }
3632
3171
  render() {
3172
+ const viewInApp = this.renderViewInAppAction();
3633
3173
  return lit.html`
3634
3174
  <div class="cpk-td">
3635
3175
  <!-- ── Left area: tabs + content ─────────────────────────────────── -->
@@ -3657,6 +3197,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3657
3197
  </button>
3658
3198
  `)}
3659
3199
  </div>
3200
+ ${viewInApp !== lit.nothing ? lit.html`<div class="cpk-td__chrome-actions">${viewInApp}</div>` : lit.nothing}
3660
3201
  ${this.renderPanelToggle()}
3661
3202
  </div>
3662
3203
  ${this.renderMetadataStrip()}
@@ -3712,8 +3253,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3712
3253
  value: (_ref5 = (_metadata$name = metadata === null || metadata === void 0 ? void 0 : metadata.name) !== null && _metadata$name !== void 0 ? _metadata$name : (_this$thread = this.thread) === null || _this$thread === void 0 ? void 0 : _this$thread.name) !== null && _ref5 !== void 0 ? _ref5 : "Untitled"
3713
3254
  }, {
3714
3255
  label: "ID",
3715
- value: (_ref6 = (_metadata$id = metadata === null || metadata === void 0 ? void 0 : metadata.id) !== null && _metadata$id !== void 0 ? _metadata$id : this.threadId) !== null && _ref6 !== void 0 ? _ref6 : "—",
3716
- wrap: true
3256
+ value: (_ref6 = (_metadata$id = metadata === null || metadata === void 0 ? void 0 : metadata.id) !== null && _metadata$id !== void 0 ? _metadata$id : this.threadId) !== null && _ref6 !== void 0 ? _ref6 : "—"
3717
3257
  }];
3718
3258
  for (const fact of [
3719
3259
  {
@@ -3735,7 +3275,6 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3735
3275
  value: fact.label === "Created" || fact.label === "Updated" ? this.fmtTime(fact.value) : fact.value
3736
3276
  });
3737
3277
  }
3738
- const bulkControls = this.renderActiveBulkControls();
3739
3278
  return lit.html`
3740
3279
  <div
3741
3280
  class="cpk-td__metadata-strip"
@@ -3758,8 +3297,6 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3758
3297
  </span>
3759
3298
  `)}
3760
3299
  </div>
3761
- ${this.renderViewInAppAction()}
3762
- ${bulkControls}
3763
3300
  </div>
3764
3301
  `;
3765
3302
  }
@@ -3786,10 +3323,8 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3786
3323
  >` : lit.nothing}
3787
3324
  `;
3788
3325
  }
3789
- renderActiveBulkControls() {
3326
+ renderTimelineBulkControls() {
3790
3327
  if (this._eventsNotAvailable) return lit.nothing;
3791
- if (this._tab === "raw-events") return this.renderRawEventBulkControls();
3792
- if (this._tab !== "timeline") return lit.nothing;
3793
3328
  const detailIds = this.timelineItemsForEvents(this.activeEvents).filter((item) => item.details).map((item) => item.id);
3794
3329
  if (detailIds.length <= 1) return lit.nothing;
3795
3330
  return lit.html`<div class="cpk-td__timeline-toolbar">
@@ -3864,7 +3399,12 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3864
3399
  `;
3865
3400
  }
3866
3401
  const events = this.activeEvents;
3867
- const cachedTimeline = this.getCachedPanelTpl("timeline", [events, this._expandedTimelineDetails]);
3402
+ const cachedTimeline = this.getCachedPanelTpl("timeline", [
3403
+ events,
3404
+ this._conversation,
3405
+ this.agentMessagesInput,
3406
+ this._expandedTimelineDetails
3407
+ ]);
3868
3408
  if (cachedTimeline) return cachedTimeline;
3869
3409
  const timelineItems = this.timelineItemsForEvents(events);
3870
3410
  if (timelineItems.length === 0) {
@@ -3880,15 +3420,29 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3880
3420
  </div>
3881
3421
  `;
3882
3422
  }
3883
- return this.cachedPanelTpl("timeline", [events, this._expandedTimelineDetails], () => lit.html`${timelineItems.map((item) => this.renderTimelineItem(item))}`);
3423
+ return this.cachedPanelTpl("timeline", [
3424
+ events,
3425
+ this._conversation,
3426
+ this.agentMessagesInput,
3427
+ this._expandedTimelineDetails
3428
+ ], () => lit.html`${this.renderTimelineBulkControls()}${timelineItems.map((item) => this.renderTimelineItem(item))}`);
3429
+ }
3430
+ timelineItemClass(item) {
3431
+ const classes = ["cpk-td__timeline-item", `cpk-td__timeline-item--${item.kind}`];
3432
+ if (item.kind === "warning" || item.severity === "error") classes.push("cpk-td__timeline-item--warning");
3433
+ if (item.kind === "message") {
3434
+ const title = item.title.toLowerCase();
3435
+ if (title.startsWith("user")) classes.push("cpk-td__timeline-item--user");
3436
+ else if (title.includes("assistant")) classes.push("cpk-td__timeline-item--assistant");
3437
+ }
3438
+ return classes.join(" ");
3884
3439
  }
3885
3440
  renderTimelineItem(item) {
3886
3441
  var _item$messageId;
3887
- const isWarning = item.kind === "warning";
3888
3442
  const detailsExpanded = this._expandedTimelineDetails.has(item.id);
3889
3443
  return lit.html`
3890
3444
  <div
3891
- class="cpk-td__timeline-item ${isWarning ? "cpk-td__timeline-item--warning" : ""}"
3445
+ class=${this.timelineItemClass(item)}
3892
3446
  data-message-id=${(_item$messageId = item.messageId) !== null && _item$messageId !== void 0 ? _item$messageId : lit.nothing}
3893
3447
  >
3894
3448
  <div class="cpk-td__timeline-header">
@@ -3896,13 +3450,15 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3896
3450
  >${item.severity === "error" ? "error" : item.kind}</span
3897
3451
  >
3898
3452
  <span class="cpk-td__timeline-title">${item.title}</span>
3899
- <button
3900
- type="button"
3901
- class="cpk-td__source-link"
3902
- @click=${() => this.revealSourceEvent(item.sourceIndex)}
3903
- >
3904
- Source event #${item.sourceIndex}
3905
- </button>
3453
+ ${item.sourceIndex ? lit.html`
3454
+ <button
3455
+ type="button"
3456
+ class="cpk-td__source-link"
3457
+ @click=${() => this.revealSourceEvent(item.sourceIndex)}
3458
+ >
3459
+ Source event #${item.sourceIndex}
3460
+ </button>
3461
+ ` : lit.nothing}
3906
3462
  <span class="cpk-td__timeline-time"
3907
3463
  >${formatTimestamp(item.timestamp)}</span
3908
3464
  >
@@ -3939,9 +3495,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
3939
3495
  <span>${detailsExpanded ? "Hide details" : "Show details"}</span>
3940
3496
  </button>` : lit.nothing}
3941
3497
  ${item.body ? lit.html`<div class="cpk-td__timeline-body">${item.body}</div>` : lit.nothing}
3942
- ${item.details && detailsExpanded ? lit.html`<pre class="cpk-td__timeline-body">
3943
- ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(item.details))}</pre
3944
- >` : lit.nothing}
3498
+ ${item.details && detailsExpanded ? renderHighlightedJsonBlock(item.details) : lit.nothing}
3945
3499
  </div>
3946
3500
  `;
3947
3501
  }
@@ -4071,9 +3625,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(item.details))}<
4071
3625
  ${expanded ? lit.html`
4072
3626
  <div class="cpk-td__tool-body">
4073
3627
  <div class="cpk-td__tool-section-label">Arguments</div>
4074
- <pre class="cpk-td__tool-pre">
4075
- ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(item.arguments))}</pre
4076
- >
3628
+ ${renderHighlightedJsonBlock(item.arguments)}
4077
3629
  ${item.result ? lit.html`
4078
3630
  <div
4079
3631
  class="cpk-td__tool-section-label"
@@ -4081,9 +3633,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(item.arguments))
4081
3633
  >
4082
3634
  Result
4083
3635
  </div>
4084
- <pre class="cpk-td__tool-pre">
4085
- ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(item.result))}</pre
4086
- >
3636
+ ${renderHighlightedJsonBlock(item.result)}
4087
3637
  ` : lit.nothing}
4088
3638
  </div>
4089
3639
  ` : lit.nothing}
@@ -4198,16 +3748,18 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(item.result))}</
4198
3748
  </div>
4199
3749
  `;
4200
3750
  return this.cachedPanelTpl("raw-events", [events, this._expandedRawEvents], () => {
4201
- return lit.html`${events.map((event) => {
3751
+ return lit.html`${this.renderRawEventBulkControls()}${events.map((event) => {
4202
3752
  var _event$rawEvent;
4203
- const { bg, fg } = eventColors(event.type);
4204
3753
  const eventId = this.rawEventId(event);
4205
3754
  const detailsExpanded = this._expandedRawEvents.has(eventId);
4206
3755
  return lit.html`
4207
- <div class="cpk-td__event" data-source-index=${event.sourceIndex}>
4208
- <div class="cpk-td__event-header" style="background:${bg}">
4209
- <span class="cpk-td__event-type" style="color:${fg}"
4210
- >${event.type}</span
3756
+ <div
3757
+ class="cpk-td__event cpk-td__event--${eventCategory(event.type)}"
3758
+ data-source-index=${event.sourceIndex}
3759
+ >
3760
+ <div class="cpk-td__event-header">
3761
+ <span class="cpk-td__event-type" title=${event.type}
3762
+ >${humanizeEventType(event.type)}</span
4211
3763
  >
4212
3764
  <span class="cpk-td__event-time"
4213
3765
  >${formatTimestamp(event.timestamp)}</span
@@ -4246,9 +3798,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(item.result))}</
4246
3798
  >${detailsExpanded ? "Hide details" : "Show details"}</span
4247
3799
  >
4248
3800
  </button>
4249
- ${detailsExpanded ? lit.html`<pre class="cpk-td__event-payload">
4250
- ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent = event.rawEvent) !== null && _event$rawEvent !== void 0 ? _event$rawEvent : event))}</pre
4251
- >` : lit.nothing}
3801
+ ${detailsExpanded ? renderHighlightedJsonBlock((_event$rawEvent = event.rawEvent) !== null && _event$rawEvent !== void 0 ? _event$rawEvent : event) : lit.nothing}
4252
3802
  </div>
4253
3803
  `;
4254
3804
  })}`;
@@ -4367,6 +3917,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
4367
3917
  threadInspectionAvailable: { attribute: false },
4368
3918
  agentStateInput: { attribute: false },
4369
3919
  agentEventsInput: { attribute: false },
3920
+ agentMessagesInput: { attribute: false },
4370
3921
  liveMessageVersion: { attribute: false },
4371
3922
  viewInAppMode: { attribute: false },
4372
3923
  viewInAppError: { attribute: false },
@@ -4420,6 +3971,11 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
4420
3971
  display: flex;
4421
3972
  flex-direction: row;
4422
3973
  overflow: hidden;
3974
+ --cpk-json-key: #3d408f;
3975
+ --cpk-json-str: #0b6b4c;
3976
+ --cpk-json-num: #8a5900;
3977
+ --cpk-json-bool: #c0333a;
3978
+ --cpk-json-nil: #57575b;
4423
3979
  }
4424
3980
 
4425
3981
  .cpk-td {
@@ -4544,11 +4100,25 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
4544
4100
  flex-shrink: 0;
4545
4101
  }
4546
4102
 
4547
- .cpk-td__metadata-strip {
4103
+ .cpk-td__chrome-actions {
4104
+ margin-inline-start: auto;
4548
4105
  display: flex;
4106
+ flex-wrap: wrap;
4549
4107
  align-items: center;
4108
+ justify-content: flex-end;
4550
4109
  gap: 6px;
4551
- flex-wrap: wrap;
4110
+ padding-inline: 8px;
4111
+ min-width: 0;
4112
+ }
4113
+
4114
+ .cpk-td__chrome-actions + .cpk-td__panel-toggle {
4115
+ margin-inline-start: 0;
4116
+ }
4117
+
4118
+ .cpk-td__metadata-strip {
4119
+ display: flex;
4120
+ flex-direction: column;
4121
+ gap: 8px;
4552
4122
  padding: 10px 16px;
4553
4123
  border-bottom: 1px solid #e9e9ef;
4554
4124
  background: #fbfbfd;
@@ -4557,19 +4127,22 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
4557
4127
 
4558
4128
  .cpk-td__metadata-pills {
4559
4129
  display: flex;
4130
+ align-items: center;
4560
4131
  gap: 6px;
4561
- flex: 1;
4562
- flex-wrap: wrap;
4132
+ width: 100%;
4563
4133
  min-width: 0;
4134
+ flex-wrap: nowrap;
4564
4135
  }
4565
4136
 
4566
4137
  .cpk-td__metadata-pill {
4567
4138
  display: inline-flex;
4568
4139
  align-items: center;
4569
- gap: 5px;
4570
- max-width: 220px;
4571
- padding: 3px 7px;
4572
- border: 1px solid #e9e9ef;
4140
+ gap: 6px;
4141
+ flex: 1 1 0;
4142
+ min-width: 0;
4143
+ height: 24px;
4144
+ padding: 0 8px;
4145
+ border: 1px solid #dbdbe5;
4573
4146
  border-radius: 6px;
4574
4147
  background: #ffffff;
4575
4148
  color: #57575b;
@@ -4585,20 +4158,17 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
4585
4158
  }
4586
4159
 
4587
4160
  .cpk-td__metadata-value {
4161
+ min-width: 0;
4588
4162
  overflow: hidden;
4589
4163
  text-overflow: ellipsis;
4164
+ white-space: nowrap;
4590
4165
  }
4591
4166
 
4167
+ .cpk-td__metadata-value--wrap,
4592
4168
  .cpk-td__metadata-pill--wrap {
4593
- max-width: 100%;
4594
- white-space: normal;
4595
- }
4596
-
4597
- .cpk-td__metadata-value--wrap {
4598
- overflow: visible;
4599
- text-overflow: clip;
4600
- white-space: normal;
4601
- overflow-wrap: anywhere;
4169
+ overflow: hidden;
4170
+ text-overflow: ellipsis;
4171
+ white-space: nowrap;
4602
4172
  }
4603
4173
 
4604
4174
  .cpk-td__view-in-app {
@@ -4609,11 +4179,18 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
4609
4179
  border-radius: 6px;
4610
4180
  background: #5558b2;
4611
4181
  color: #ffffff;
4612
- font-family: "Plus Jakarta Sans", sans-serif;
4613
- font-size: 11px;
4182
+ font-family: "Spline Sans Mono", monospace;
4183
+ font-size: 10px;
4614
4184
  font-weight: 600;
4615
- padding: 5px 10px;
4185
+ line-height: 1.2;
4186
+ min-height: 24px;
4187
+ padding: 3px 8px;
4616
4188
  cursor: pointer;
4189
+ transition:
4190
+ transform 160ms cubic-bezier(0.23, 1, 0.32, 1),
4191
+ background 120ms ease,
4192
+ color 120ms ease,
4193
+ border-color 120ms ease;
4617
4194
  }
4618
4195
 
4619
4196
  .cpk-td__view-in-app:focus-visible {
@@ -4621,6 +4198,10 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
4621
4198
  outline-offset: 2px;
4622
4199
  }
4623
4200
 
4201
+ .cpk-td__view-in-app:active {
4202
+ transform: scale(0.96);
4203
+ }
4204
+
4624
4205
  .cpk-td__view-in-app--stop {
4625
4206
  background: #ffffff;
4626
4207
  color: #5558b2;
@@ -4632,6 +4213,16 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
4632
4213
  font-size: 11px;
4633
4214
  }
4634
4215
 
4216
+ @media (prefers-reduced-motion: reduce) {
4217
+ .cpk-td__view-in-app {
4218
+ transition: none;
4219
+ }
4220
+
4221
+ .cpk-td__view-in-app:active {
4222
+ transform: none;
4223
+ }
4224
+ }
4225
+
4635
4226
  /*
4636
4227
  * Each tab's content is wrapped in this panel so the keep-mounted
4637
4228
  * inactive panels can be hidden via display:none without disturbing
@@ -4828,15 +4419,16 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
4828
4419
  .cpk-td__tool-pre {
4829
4420
  margin: 0;
4830
4421
  font-family: "Spline Sans Mono", monospace;
4831
- font-size: 10px;
4422
+ font-size: 12px;
4832
4423
  background: #f7f7f9;
4833
- padding: 6px 8px;
4834
- border-radius: 5px;
4424
+ padding: 10px 12px;
4425
+ border-radius: 6px;
4835
4426
  overflow-x: auto;
4836
4427
  white-space: pre-wrap;
4837
- word-break: break-all;
4428
+ overflow-wrap: anywhere;
4429
+ word-break: normal;
4838
4430
  color: #010507;
4839
- line-height: 1.6;
4431
+ line-height: 1.65;
4840
4432
  }
4841
4433
 
4842
4434
  /* ── Tool call group ─────────────────────────────────────────────── */
@@ -4889,12 +4481,31 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
4889
4481
 
4890
4482
  /* ── Interaction timeline ───────────────────────────────────────── */
4891
4483
  .cpk-td__timeline-item {
4892
- border: 1px solid #e9e9ef;
4893
- border-radius: 7px;
4894
- background: #ffffff;
4484
+ border: 1px solid transparent;
4485
+ border-radius: 10px;
4486
+ background: transparent;
4895
4487
  overflow: hidden;
4896
4488
  }
4897
4489
 
4490
+ .cpk-td__timeline-item--run,
4491
+ .cpk-td__timeline-item--state,
4492
+ .cpk-td__timeline-item--event,
4493
+ .cpk-td__timeline-item--tool,
4494
+ .cpk-td__event--run,
4495
+ .cpk-td__event--event,
4496
+ .cpk-td__event--state,
4497
+ .cpk-td__event--message,
4498
+ .cpk-td__event--tool {
4499
+ border-color: #dbdbe5;
4500
+ background: #ffffff;
4501
+ }
4502
+
4503
+ .cpk-td__timeline-item--message {
4504
+ border-color: #dbdbe5;
4505
+ background: #ffffff;
4506
+ box-shadow: 0 1px 2px #0105070d;
4507
+ }
4508
+
4898
4509
  .cpk-td__timeline-item--warning {
4899
4510
  border-color: rgba(250, 95, 103, 0.35);
4900
4511
  background: rgba(250, 95, 103, 0.04);
@@ -4904,29 +4515,72 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
4904
4515
  display: flex;
4905
4516
  align-items: center;
4906
4517
  gap: 8px;
4907
- padding: 7px 10px;
4518
+ padding: 6px 10px;
4519
+ background: transparent;
4520
+ }
4521
+
4522
+ .cpk-td__timeline-item--message .cpk-td__timeline-header {
4523
+ padding: 10px 12px;
4908
4524
  background: #f7f7f9;
4909
4525
  }
4910
4526
 
4527
+ .cpk-td__timeline-item--user .cpk-td__timeline-header {
4528
+ background: #bec2ff1a;
4529
+ }
4530
+
4531
+ .cpk-td__timeline-item--assistant .cpk-td__timeline-header {
4532
+ background: #85ecce1a;
4533
+ }
4534
+
4911
4535
  .cpk-td__timeline-kind {
4536
+ display: inline-flex;
4537
+ align-items: center;
4538
+ padding: 4px 8px;
4539
+ border-radius: 999px;
4540
+ background: #f0f0f4;
4541
+ color: #57575b;
4912
4542
  font-family: "Spline Sans Mono", monospace;
4913
- font-size: 9px;
4543
+ font-size: 10px;
4914
4544
  font-weight: 600;
4545
+ letter-spacing: 0.04em;
4546
+ line-height: 1.2;
4915
4547
  text-transform: uppercase;
4916
- color: #5558b2;
4548
+ flex-shrink: 0;
4549
+ }
4550
+
4551
+ .cpk-td__timeline-item--message .cpk-td__timeline-kind {
4552
+ background: #bec2ff33;
4553
+ color: #010507;
4554
+ }
4555
+
4556
+ .cpk-td__timeline-item--assistant .cpk-td__timeline-kind {
4557
+ background: #85ecce4d;
4558
+ color: #010507;
4559
+ }
4560
+
4561
+ .cpk-td__timeline-item--warning .cpk-td__timeline-kind {
4562
+ background: rgba(250, 95, 103, 0.16);
4563
+ color: #c0333a;
4917
4564
  }
4918
4565
 
4919
4566
  .cpk-td__timeline-title {
4920
4567
  flex: 1;
4921
4568
  min-width: 0;
4569
+ font-family: "Plus Jakarta Sans", sans-serif;
4922
4570
  font-size: 12px;
4923
4571
  font-weight: 500;
4924
- color: #010507;
4572
+ color: #57575b;
4925
4573
  overflow: hidden;
4926
4574
  text-overflow: ellipsis;
4927
4575
  white-space: nowrap;
4928
4576
  }
4929
4577
 
4578
+ .cpk-td__timeline-item--message .cpk-td__timeline-title {
4579
+ font-size: 13px;
4580
+ font-weight: 600;
4581
+ color: #010507;
4582
+ }
4583
+
4930
4584
  .cpk-td__timeline-time {
4931
4585
  font-family: "Spline Sans Mono", monospace;
4932
4586
  font-size: 9px;
@@ -4937,6 +4591,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
4937
4591
  .cpk-td__timeline-body {
4938
4592
  margin: 0;
4939
4593
  padding: 0 10px 9px;
4594
+ font-family: "Plus Jakarta Sans", sans-serif;
4940
4595
  font-size: 12px;
4941
4596
  line-height: 1.55;
4942
4597
  color: #57575b;
@@ -4944,21 +4599,26 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
4944
4599
  word-break: break-word;
4945
4600
  }
4946
4601
 
4602
+ .cpk-td__timeline-item--message .cpk-td__timeline-body {
4603
+ padding: 0 12px 12px;
4604
+ font-size: 13px;
4605
+ color: #010507;
4606
+ }
4607
+
4947
4608
  .cpk-td__timeline-toolbar {
4948
4609
  display: flex;
4949
4610
  gap: 6px;
4950
- margin-left: auto;
4951
4611
  }
4952
4612
 
4953
4613
  .cpk-td__timeline-bulk-toggle {
4954
4614
  margin: 0;
4955
- padding: 4px 8px;
4956
- border: 1px solid #dcdce8;
4957
- border-radius: 7px;
4615
+ padding: 6px 10px;
4616
+ border: 1px solid #dbdbe5;
4617
+ border-radius: 8px;
4958
4618
  background: #ffffff;
4959
4619
  color: #36363a;
4960
4620
  cursor: pointer;
4961
- font-family: "Inter", sans-serif;
4621
+ font-family: "Spline Sans Mono", monospace;
4962
4622
  font-size: 11px;
4963
4623
  font-weight: 600;
4964
4624
  line-height: 1.2;
@@ -5033,84 +4693,6 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
5033
4693
  }
5034
4694
  }
5035
4695
 
5036
- @keyframes cpk-playground-message-enter {
5037
- from {
5038
- opacity: 0;
5039
- filter: blur(2px);
5040
- transform: translateY(4px);
5041
- }
5042
- to {
5043
- opacity: 1;
5044
- filter: blur(0);
5045
- transform: translateY(0);
5046
- }
5047
- }
5048
-
5049
- @keyframes cpk-playground-thinking {
5050
- 0%,
5051
- 60%,
5052
- 100% {
5053
- opacity: 0.28;
5054
- transform: translateY(0);
5055
- }
5056
- 30% {
5057
- opacity: 1;
5058
- transform: translateY(-2px);
5059
- }
5060
- }
5061
-
5062
- .cpk-playground-root {
5063
- container-type: inline-size;
5064
- }
5065
-
5066
- .cpk-playground-message-enter {
5067
- animation: cpk-playground-message-enter 0.24s cubic-bezier(0.16, 1, 0.3, 1)
5068
- both;
5069
- }
5070
-
5071
- .cpk-playground-thinking-dot {
5072
- animation: cpk-playground-thinking 1.2s ease-in-out infinite;
5073
- }
5074
-
5075
- .cpk-playground-thinking-dot:nth-child(2) {
5076
- animation-delay: 0.12s;
5077
- }
5078
-
5079
- .cpk-playground-thinking-dot:nth-child(3) {
5080
- animation-delay: 0.24s;
5081
- }
5082
-
5083
- .cpk-playground-reasoning summary::-webkit-details-marker {
5084
- display: none;
5085
- }
5086
-
5087
- .cpk-playground-reasoning[open] .cpk-playground-reasoning-chevron {
5088
- transform: rotate(90deg);
5089
- }
5090
-
5091
- @container (max-width: 560px) {
5092
- .cpk-playground-header {
5093
- align-items: stretch;
5094
- }
5095
-
5096
- .cpk-playground-actions {
5097
- width: 100%;
5098
- }
5099
-
5100
- .cpk-playground-thread-select {
5101
- min-width: 0;
5102
- max-width: none;
5103
- flex: 1;
5104
- }
5105
- }
5106
-
5107
- @media (prefers-reduced-motion: reduce) {
5108
- .cpk-playground-message-enter,
5109
- .cpk-playground-thinking-dot {
5110
- animation: none;
5111
- }
5112
- }
5113
-
5114
4696
  .cpk-td__genui {
5115
4697
  display: flex;
5116
4698
  flex-direction: column;
@@ -5152,8 +4734,9 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
5152
4734
  /* ── AG-UI Events ────────────────────────────────────────────────── */
5153
4735
  .cpk-td__event {
5154
4736
  flex-shrink: 0;
5155
- border: 1px solid #e9e9ef;
5156
- border-radius: 7px;
4737
+ border: 1px solid #dbdbe5;
4738
+ border-radius: 10px;
4739
+ background: #ffffff;
5157
4740
  overflow: hidden;
5158
4741
  /*
5159
4742
  * content-visibility: auto lets the browser skip layout + paint for
@@ -5169,48 +4752,89 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
5169
4752
  contain-intrinsic-size: 0 80px;
5170
4753
  }
5171
4754
 
4755
+ .cpk-td__event--error {
4756
+ border-color: rgba(250, 95, 103, 0.35);
4757
+ background: rgba(250, 95, 103, 0.04);
4758
+ }
4759
+
5172
4760
  .cpk-td__event-header {
5173
4761
  display: flex;
5174
- justify-content: space-between;
5175
4762
  align-items: center;
5176
- padding: 5px 10px;
4763
+ gap: 8px;
4764
+ padding: 6px 10px;
4765
+ background: transparent;
5177
4766
  }
5178
4767
 
5179
4768
  .cpk-td__event-type {
4769
+ display: inline-flex;
4770
+ align-items: center;
4771
+ padding: 4px 8px;
4772
+ border-radius: 999px;
4773
+ background: #f0f0f4;
4774
+ color: #010507;
5180
4775
  font-family: "Spline Sans Mono", monospace;
5181
- font-size: 9px;
5182
- font-weight: 500;
5183
- text-transform: uppercase;
4776
+ font-size: 10px;
4777
+ font-weight: 600;
4778
+ letter-spacing: 0.02em;
4779
+ line-height: 1.2;
4780
+ }
4781
+
4782
+ .cpk-td__event--message .cpk-td__event-type {
4783
+ background: #bec2ff33;
4784
+ }
4785
+
4786
+ .cpk-td__event--tool .cpk-td__event-type {
4787
+ background: #85ecce4d;
4788
+ }
4789
+
4790
+ .cpk-td__event--error .cpk-td__event-type {
4791
+ background: rgba(250, 95, 103, 0.16);
4792
+ color: #c0333a;
5184
4793
  }
5185
4794
 
5186
4795
  .cpk-td__event-time {
4796
+ margin-inline-start: auto;
5187
4797
  font-family: "Spline Sans Mono", monospace;
5188
4798
  font-size: 9px;
5189
4799
  color: #68686e;
4800
+ flex-shrink: 0;
5190
4801
  }
5191
4802
 
5192
- .cpk-td__event-payload {
5193
- margin: 0;
5194
- font-family: "Spline Sans Mono", monospace;
5195
- font-size: 10px;
5196
- line-height: 1.6;
5197
- white-space: pre-wrap;
5198
- word-break: break-all;
5199
- color: #57575b;
5200
- padding: 8px 10px;
5201
- border-top: 1px solid #e9e9ef;
5202
- }
5203
-
5204
- /* ── JSON block (agent state) ────────────────────────────────────── */
4803
+ .cpk-td__event-payload,
5205
4804
  .cpk-td__json-block,
5206
4805
  .cpk-json-block {
5207
4806
  margin: 0;
4807
+ padding: 10px 12px;
4808
+ border-top: 1px solid #dbdbe5;
4809
+ background: #f7f7f9;
5208
4810
  font-family: "Spline Sans Mono", monospace;
5209
- font-size: 11px;
5210
- line-height: 1.8;
4811
+ font-size: 12px;
4812
+ line-height: 1.65;
5211
4813
  white-space: pre-wrap;
5212
- word-break: break-all;
5213
- color: #57575b;
4814
+ overflow-wrap: anywhere;
4815
+ word-break: normal;
4816
+ color: #010507;
4817
+ overflow: auto;
4818
+ }
4819
+
4820
+ .cpk-json-token--key {
4821
+ color: var(--cpk-json-key);
4822
+ }
4823
+
4824
+ .cpk-json-token--str {
4825
+ color: var(--cpk-json-str);
4826
+ }
4827
+
4828
+ .cpk-json-token--num {
4829
+ color: var(--cpk-json-num);
4830
+ }
4831
+
4832
+ .cpk-json-token--bool {
4833
+ color: var(--cpk-json-bool);
4834
+ }
4835
+
4836
+ .cpk-json-token--nil {
4837
+ color: var(--cpk-json-nil);
5214
4838
  }
5215
4839
 
5216
4840
  /* ── Resize divider ──────────────────────────────────────────────── */
@@ -5309,6 +4933,11 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
5309
4933
 
5310
4934
  :host([data-color-scheme="dark"]) {
5311
4935
  color-scheme: dark;
4936
+ --cpk-json-key: #bec2ff;
4937
+ --cpk-json-str: #85ecce;
4938
+ --cpk-json-num: #ffac4d;
4939
+ --cpk-json-bool: #fa5f67;
4940
+ --cpk-json-nil: #afafb7;
5312
4941
  }
5313
4942
 
5314
4943
  :host([data-color-scheme="dark"]) .cpk-td {
@@ -5349,11 +4978,15 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
5349
4978
  }
5350
4979
 
5351
4980
  :host([data-color-scheme="dark"]) .cpk-td__timeline-header,
5352
- :host([data-color-scheme="dark"]) .cpk-td__tool-body,
5353
- :host([data-color-scheme="dark"]) .cpk-td__tool-pre {
4981
+ :host([data-color-scheme="dark"]) .cpk-td__tool-body {
5354
4982
  background: #171a22;
5355
4983
  }
5356
4984
 
4985
+ :host([data-color-scheme="dark"]) .cpk-td__tool-pre {
4986
+ background: #111319;
4987
+ color: #f3f4f8;
4988
+ }
4989
+
5357
4990
  :host([data-color-scheme="dark"]) .cpk-td__panel-toggle:hover,
5358
4991
  :host([data-color-scheme="dark"]) .cpk-td__tool-header:hover,
5359
4992
  :host([data-color-scheme="dark"]) .cpk-td__timeline-bulk-toggle:hover,
@@ -5363,12 +4996,115 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
5363
4996
 
5364
4997
  :host([data-color-scheme="dark"]) .cpk-td__panel-toggle--active,
5365
4998
  :host([data-color-scheme="dark"]) .cpk-td__inline-chip,
5366
- :host([data-color-scheme="dark"]) .cpk-td__timeline-kind,
5367
4999
  :host([data-color-scheme="dark"]) .cpk-td__genui-badge {
5368
5000
  background: #302b43;
5369
5001
  color: #d8d9ff;
5370
5002
  }
5371
5003
 
5004
+ :host([data-color-scheme="dark"]) .cpk-td__timeline-item--message {
5005
+ background: #191c24;
5006
+ border-color: #343742;
5007
+ box-shadow: none;
5008
+ }
5009
+
5010
+ :host([data-color-scheme="dark"])
5011
+ .cpk-td__timeline-item--user
5012
+ .cpk-td__timeline-header {
5013
+ background: #bec2ff1a;
5014
+ }
5015
+
5016
+ :host([data-color-scheme="dark"])
5017
+ .cpk-td__timeline-item--assistant
5018
+ .cpk-td__timeline-header {
5019
+ background: #85ecce1a;
5020
+ }
5021
+
5022
+ :host([data-color-scheme="dark"])
5023
+ .cpk-td__timeline-item--message
5024
+ .cpk-td__timeline-kind {
5025
+ background: #302b43;
5026
+ color: #d8d9ff;
5027
+ }
5028
+
5029
+ :host([data-color-scheme="dark"])
5030
+ .cpk-td__timeline-item--assistant
5031
+ .cpk-td__timeline-kind {
5032
+ background: #1a3a32;
5033
+ color: #85ecce;
5034
+ }
5035
+
5036
+ :host([data-color-scheme="dark"]) .cpk-td__timeline-item--run,
5037
+ :host([data-color-scheme="dark"]) .cpk-td__timeline-item--event,
5038
+ :host([data-color-scheme="dark"]) .cpk-td__timeline-item--state,
5039
+ :host([data-color-scheme="dark"]) .cpk-td__timeline-item--tool,
5040
+ :host([data-color-scheme="dark"]) .cpk-td__event--run,
5041
+ :host([data-color-scheme="dark"]) .cpk-td__event--event,
5042
+ :host([data-color-scheme="dark"]) .cpk-td__event--state,
5043
+ :host([data-color-scheme="dark"]) .cpk-td__event--message,
5044
+ :host([data-color-scheme="dark"]) .cpk-td__event--tool {
5045
+ background: #191c24;
5046
+ border-color: #343742;
5047
+ }
5048
+
5049
+ :host([data-color-scheme="dark"])
5050
+ .cpk-td__timeline-item--run
5051
+ .cpk-td__timeline-header,
5052
+ :host([data-color-scheme="dark"])
5053
+ .cpk-td__timeline-item--event
5054
+ .cpk-td__timeline-header,
5055
+ :host([data-color-scheme="dark"])
5056
+ .cpk-td__timeline-item--state
5057
+ .cpk-td__timeline-header {
5058
+ background: transparent;
5059
+ }
5060
+
5061
+ :host([data-color-scheme="dark"]) .cpk-td__timeline-kind {
5062
+ background: #20232d;
5063
+ color: #aeb1bd;
5064
+ }
5065
+
5066
+ :host([data-color-scheme="dark"])
5067
+ .cpk-td__timeline-item--run
5068
+ .cpk-td__timeline-title,
5069
+ :host([data-color-scheme="dark"])
5070
+ .cpk-td__timeline-item--event
5071
+ .cpk-td__timeline-title,
5072
+ :host([data-color-scheme="dark"])
5073
+ .cpk-td__timeline-item--state
5074
+ .cpk-td__timeline-title {
5075
+ color: #aeb1bd;
5076
+ }
5077
+
5078
+ :host([data-color-scheme="dark"]) .cpk-td__event-header {
5079
+ background: transparent;
5080
+ }
5081
+
5082
+ :host([data-color-scheme="dark"]) .cpk-td__event-type {
5083
+ background: #20232d;
5084
+ color: #f3f4f8;
5085
+ }
5086
+
5087
+ :host([data-color-scheme="dark"]) .cpk-td__event--message .cpk-td__event-type {
5088
+ background: #302b43;
5089
+ color: #d8d9ff;
5090
+ }
5091
+
5092
+ :host([data-color-scheme="dark"]) .cpk-td__event--tool .cpk-td__event-type {
5093
+ background: #1a3a32;
5094
+ color: #85ecce;
5095
+ }
5096
+
5097
+ :host([data-color-scheme="dark"]) .cpk-td__event--error .cpk-td__event-type {
5098
+ background: rgba(250, 95, 103, 0.2);
5099
+ color: #fa5f67;
5100
+ }
5101
+
5102
+ :host([data-color-scheme="dark"])
5103
+ .cpk-td__timeline-item--message
5104
+ .cpk-td__timeline-body {
5105
+ color: #f3f4f8;
5106
+ }
5107
+
5372
5108
  :host([data-color-scheme="dark"]) .cpk-td__tab,
5373
5109
  :host([data-color-scheme="dark"]) .cpk-td__panel-toggle,
5374
5110
  :host([data-color-scheme="dark"]) .cpk-td__metadata-label,
@@ -5395,7 +5131,9 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
5395
5131
  :host([data-color-scheme="dark"]) .cpk-td__event-payload,
5396
5132
  :host([data-color-scheme="dark"]) .cpk-td__json-block,
5397
5133
  :host([data-color-scheme="dark"]) .cpk-json-block {
5398
- color: #c7c9d2;
5134
+ background: #111319;
5135
+ border-top-color: #343742;
5136
+ color: #f3f4f8;
5399
5137
  }
5400
5138
 
5401
5139
  :host([data-color-scheme="dark"]) .cpk-tdp__divider {
@@ -6108,26 +5846,6 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6108
5846
  inspect: "ag-ui-events"
6109
5847
  };
6110
5848
  this.lastScrolledAgentNavigationLayout = null;
6111
- this.eventSnippets = [];
6112
- this.selectedSnippetId = null;
6113
- this.snippetRecipe = "tool-call";
6114
- this.snippetName = "";
6115
- this.snippetJson = "[]";
6116
- this.snippetToolName = "";
6117
- this.snippetToolArgs = "{}";
6118
- this.snippetReasoningText = "";
6119
- this.snippetTextContent = "";
6120
- this.snippetActivityType = "a2ui-surface";
6121
- this.snippetActivityContent = "{}";
6122
- this.snippetError = null;
6123
- this.snippetBanner = null;
6124
- this.snippetConfirmOpen = false;
6125
- this.lastInject = null;
6126
- this.snippetListWidth = 200;
6127
- this.snippetDividerResizing = false;
6128
- this.snippetDividerPointerId = -1;
6129
- this.snippetDividerStartX = 0;
6130
- this.snippetDividerStartWidth = 0;
6131
5849
  this.selectedThreadId = null;
6132
5850
  this.inAppThreadId = null;
6133
5851
  this.inAppAgentId = null;
@@ -6168,6 +5886,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6168
5886
  this.threadCapabilityEnabled = null;
6169
5887
  this.threadCapabilityGeneration = 0;
6170
5888
  this.contextMenuOpen = false;
5889
+ this.iconRailContextCloseTimer = null;
6171
5890
  this.layoutMenuOpen = false;
6172
5891
  this.dockMode = "floating";
6173
5892
  this.popOut = null;
@@ -6229,6 +5948,9 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6229
5948
  this.launcherHudSide = "left";
6230
5949
  this.launcherHudHelp = null;
6231
5950
  this.launcherHudCloseTimer = null;
5951
+ this.launcherHudIntro = false;
5952
+ this.launcherHudIntroStartTimer = null;
5953
+ this.launcherHudIntroEndTimer = null;
6232
5954
  this.hudLandingMenu = null;
6233
5955
  this.pillOutcome = null;
6234
5956
  this.viewedNewsSignalIds = /* @__PURE__ */ new Set();
@@ -6313,6 +6035,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6313
6035
  this.openInspector("floating_button");
6314
6036
  };
6315
6037
  this.handleLauncherHudEnter = () => {
6038
+ this.cancelLauncherHudIntro();
6316
6039
  this.openLauncherHud();
6317
6040
  };
6318
6041
  this.handleLauncherHudLeave = () => {
@@ -6323,6 +6046,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6323
6046
  }, 160);
6324
6047
  };
6325
6048
  this.handleLauncherHudFocusIn = () => {
6049
+ this.cancelLauncherHudIntro();
6326
6050
  this.openLauncherHud();
6327
6051
  };
6328
6052
  this.handleLauncherHudFocusOut = (event) => {
@@ -6741,20 +6465,6 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6741
6465
  var _this$playgroundAgent;
6742
6466
  (_this$playgroundAgent = this.playgroundAgent) === null || _this$playgroundAgent === void 0 || _this$playgroundAgent.abortRun();
6743
6467
  };
6744
- this.handleSnippetImportChange = async (event) => {
6745
- var _input$files;
6746
- const input = event.target;
6747
- const file = (_input$files = input.files) === null || _input$files === void 0 ? void 0 : _input$files[0];
6748
- input.value = "";
6749
- if (!file) return;
6750
- try {
6751
- this.eventSnippets = importEventSnippets(await file.text());
6752
- this.snippetError = null;
6753
- } catch (error) {
6754
- this.snippetError = error instanceof Error ? error.message : "Import failed.";
6755
- }
6756
- this.requestUpdate();
6757
- };
6758
6468
  this.handleInspectorMetadataActionClick = (action, placement) => {
6759
6469
  var _this$core;
6760
6470
  if (!this.isOpen || this.runtimeStatus !== _copilotkit_core.CopilotKitCoreRuntimeConnectionStatus.Connected || ((_this$core = this.core) === null || _this$core === void 0 ? void 0 : _this$core.telemetryDisabled)) return;
@@ -6786,26 +6496,6 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6786
6496
  if ((_this$core4 = this.core) === null || _this$core4 === void 0 ? void 0 : _this$core4.telemetryDisabled) return;
6787
6497
  trackThreadsTalkToEngineerClicked(this.getThreadsCtaTelemetryProps("talk_to_engineer", "threads_locked"));
6788
6498
  };
6789
- this.handleSnippetListDividerPointerDown = (event) => {
6790
- this.snippetDividerResizing = true;
6791
- this.snippetDividerPointerId = event.pointerId;
6792
- this.snippetDividerStartX = event.clientX;
6793
- this.snippetDividerStartWidth = this.snippetListWidth;
6794
- event.currentTarget.setPointerCapture(event.pointerId);
6795
- event.preventDefault();
6796
- };
6797
- this.handleSnippetListDividerPointerMove = (event) => {
6798
- if (!this.snippetDividerResizing || this.snippetDividerPointerId !== event.pointerId) return;
6799
- const delta = event.clientX - this.snippetDividerStartX;
6800
- this.snippetListWidth = Math.max(160, Math.min(360, this.snippetDividerStartWidth + delta));
6801
- this.requestUpdate();
6802
- };
6803
- this.handleSnippetListDividerPointerUp = (event) => {
6804
- if (this.snippetDividerPointerId !== event.pointerId) return;
6805
- const target = event.currentTarget;
6806
- if (target.hasPointerCapture(this.snippetDividerPointerId)) target.releasePointerCapture(this.snippetDividerPointerId);
6807
- this.snippetDividerResizing = false;
6808
- };
6809
6499
  this.handleThreadDividerPointerDown = (event) => {
6810
6500
  this.threadDividerResizing = true;
6811
6501
  this.threadDividerPointerId = event.pointerId;
@@ -6920,15 +6610,21 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6920
6610
  this.requestUpdate();
6921
6611
  };
6922
6612
  this.handleIconRailContextPointerEnter = (event) => {
6923
- if (event.pointerType === "touch" || this.contextMenuOpen) return;
6613
+ if (event.pointerType === "touch") return;
6614
+ this.clearIconRailContextCloseTimer();
6615
+ if (this.contextMenuOpen) return;
6924
6616
  this.layoutMenuOpen = false;
6925
6617
  this.contextMenuOpen = true;
6926
6618
  this.requestUpdate();
6927
6619
  };
6928
6620
  this.handleIconRailContextPointerLeave = () => {
6929
6621
  if (!this.contextMenuOpen) return;
6930
- this.contextMenuOpen = false;
6931
- this.requestUpdate();
6622
+ this.clearIconRailContextCloseTimer();
6623
+ this.iconRailContextCloseTimer = setTimeout(() => {
6624
+ this.iconRailContextCloseTimer = null;
6625
+ this.contextMenuOpen = false;
6626
+ this.requestUpdate();
6627
+ }, 180);
6932
6628
  };
6933
6629
  this.handleIconRailContextPointerDown = (event) => {
6934
6630
  if (event.pointerType === "touch") {
@@ -6939,6 +6635,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6939
6635
  event.stopPropagation();
6940
6636
  };
6941
6637
  this.handleIconRailContextFocusIn = () => {
6638
+ this.clearIconRailContextCloseTimer();
6942
6639
  if (this.contextMenuOpen) return;
6943
6640
  this.layoutMenuOpen = false;
6944
6641
  this.contextMenuOpen = true;
@@ -7055,11 +6752,6 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
7055
6752
  label: "AG-UI Events",
7056
6753
  icon: "Zap"
7057
6754
  },
7058
- {
7059
- key: "event-snippets",
7060
- label: "Event Snippets",
7061
- icon: "Code"
7062
- },
7063
6755
  {
7064
6756
  key: "agents",
7065
6757
  label: "Agent",
@@ -7938,7 +7630,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
7938
7630
  const messages = this.normalizeAgentMessages(agent.messages);
7939
7631
  if (messages) this.agentMessages.set(agent.agentId, messages);
7940
7632
  else this.agentMessages.delete(agent.agentId);
7941
- const runThreadId = agent.threadId;
7633
+ const runThreadId = this.readAgentThreadId(agent);
7942
7634
  if (runThreadId) {
7943
7635
  var _this$liveMessageVers;
7944
7636
  this.liveMessageVersion.set(runThreadId, ((_this$liveMessageVers = this.liveMessageVersion.get(runThreadId)) !== null && _this$liveMessageVers !== void 0 ? _this$liveMessageVers : 0) + 1);
@@ -8029,19 +7721,6 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
8029
7721
  this.persistState();
8030
7722
  this.requestUpdate();
8031
7723
  }
8032
- focusEventSnippets(options) {
8033
- this.pendingPersistedMenu = null;
8034
- this.selectedMenu = "event-snippets";
8035
- this.settingsOpen = false;
8036
- this.lastSelectedMenuByGroup.inspect = "event-snippets";
8037
- this.contextMenuOpen = false;
8038
- this.layoutMenuOpen = false;
8039
- this.reloadEventSnippets();
8040
- if (options.snippetId) this.selectEventSnippet(options.snippetId);
8041
- if (options.agentId && this.contextOptions.some((option) => option.key === options.agentId)) this.selectedContext = options.agentId;
8042
- this.persistState();
8043
- this.requestUpdate();
8044
- }
8045
7724
  filterEvents(events) {
8046
7725
  const query = this.eventFilterText.trim().toLowerCase();
8047
7726
  return events.filter((event) => {
@@ -8065,6 +7744,21 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
8065
7744
  const messages = this.agentMessages.get(agentId);
8066
7745
  return messages !== null && messages !== void 0 ? messages : null;
8067
7746
  }
7747
+ readAgentThreadId(agent) {
7748
+ if (!("threadId" in agent)) return void 0;
7749
+ const threadId = agent.threadId;
7750
+ return typeof threadId === "string" ? threadId : void 0;
7751
+ }
7752
+ getLiveAgentMessagesForThread(thread) {
7753
+ var _this$agentMessages$g;
7754
+ const messages = (_this$agentMessages$g = this.agentMessages.get(thread.agentId)) !== null && _this$agentMessages$g !== void 0 ? _this$agentMessages$g : EMPTY_INSPECTOR_MESSAGES;
7755
+ const core = this._core;
7756
+ if (!core || typeof core.getAgent !== "function") return messages;
7757
+ const agent = core.getAgent(thread.agentId);
7758
+ if (!agent) return EMPTY_INSPECTOR_MESSAGES;
7759
+ if (this.readAgentThreadId(agent) !== thread.id) return EMPTY_INSPECTOR_MESSAGES;
7760
+ return messages;
7761
+ }
8068
7762
  getAgentStatus(agentId) {
8069
7763
  var _this$agentEvents$get4;
8070
7764
  const events = (_this$agentEvents$get4 = this.agentEvents.get(agentId)) !== null && _this$agentEvents$get4 !== void 0 ? _this$agentEvents$get4 : [];
@@ -8098,7 +7792,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
8098
7792
  return lit.html`
8099
7793
  <div class="mt-2 space-y-2">
8100
7794
  ${toolCalls.map((call, index) => {
8101
- var _ref9, _call$function$name, _call$function, _call$function2;
7795
+ var _ref9, _call$function$name, _call$function, _call$function2, _call$function3;
8102
7796
  const functionName = (_ref9 = (_call$function$name = (_call$function = call.function) === null || _call$function === void 0 ? void 0 : _call$function.name) !== null && _call$function$name !== void 0 ? _call$function$name : call.toolName) !== null && _ref9 !== void 0 ? _ref9 : "Unknown function";
8103
7797
  const callId = typeof (call === null || call === void 0 ? void 0 : call.id) === "string" ? call.id : `tool-call-${index + 1}`;
8104
7798
  const argsString = this.formatToolCallArguments((_call$function2 = call.function) === null || _call$function2 === void 0 ? void 0 : _call$function2.arguments);
@@ -8117,11 +7811,9 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
8117
7811
  ${isFailedCall && (toolError === null || toolError === void 0 ? void 0 : toolError.message) ? lit.html`<p class="mt-2 break-words leading-relaxed text-gray-800">
8118
7812
  ${toolError.message}
8119
7813
  </p>` : lit.nothing}
8120
- ${argsString ? lit.html`<pre
8121
- class="mt-2 overflow-auto rounded bg-white p-2 text-[11px] leading-relaxed text-gray-800"
8122
- >
8123
- ${argsString}</pre
8124
- >` : lit.nothing}
7814
+ ${argsString ? lit.html`<div class="mt-2">
7815
+ ${renderHighlightedJsonBlock(coerceJsonValue((_call$function3 = call.function) === null || _call$function3 === void 0 ? void 0 : _call$function3.arguments))}
7816
+ </div>` : lit.nothing}
8125
7817
  </div>
8126
7818
  `;
8127
7819
  })}
@@ -8173,15 +7865,14 @@ ${argsString}</pre
8173
7865
  return String(state);
8174
7866
  }
8175
7867
  getEventBadgeClasses(type) {
8176
- const base = "font-mono text-[10px] font-medium inline-flex items-center rounded-sm px-1.5 py-0.5 border";
8177
- if (type === "RUN_ERROR") return `${base} bg-rose-50 text-rose-700 border-rose-200`;
8178
- if (type.startsWith("RUN_")) return `${base} bg-blue-50 text-blue-700 border-blue-200`;
8179
- if (type.startsWith("TEXT_MESSAGE")) return `${base} bg-emerald-50 text-emerald-700 border-emerald-200`;
8180
- if (type.startsWith("TOOL_CALL")) return `${base} bg-amber-50 text-amber-700 border-amber-200`;
8181
- if (type.startsWith("REASONING")) return `${base} bg-fuchsia-50 text-fuchsia-700 border-fuchsia-200`;
8182
- if (type.startsWith("STATE")) return `${base} bg-violet-50 text-violet-700 border-violet-200`;
8183
- if (type.startsWith("MESSAGES")) return `${base} bg-sky-50 text-sky-700 border-sky-200`;
8184
- return `${base} bg-gray-100 text-gray-600 border-gray-200`;
7868
+ const base = "font-mono text-[10px] font-semibold inline-flex items-center rounded-sm px-1.5 py-0.5 border";
7869
+ if (type === "RUN_ERROR") return `${base} bg-rose-50 text-rose-800 border-rose-200`;
7870
+ if (type.startsWith("TEXT_MESSAGE")) return `${base} bg-violet-50 text-gray-900 border-violet-200`;
7871
+ if (type.startsWith("TOOL_CALL")) return `${base} bg-emerald-50 text-gray-900 border-emerald-200`;
7872
+ if (type.startsWith("RUN_") || type.startsWith("STEP_")) return `${base} bg-gray-100 text-gray-900 border-gray-200`;
7873
+ if (type.startsWith("REASONING")) return `${base} bg-violet-50 text-gray-900 border-violet-200`;
7874
+ if (type.startsWith("STATE") || type.startsWith("MESSAGES")) return `${base} bg-violet-50 text-gray-900 border-violet-200`;
7875
+ return `${base} bg-gray-100 text-gray-900 border-gray-200`;
8185
7876
  }
8186
7877
  stringifyPayload(payload, pretty) {
8187
7878
  try {
@@ -8270,6 +7961,7 @@ ${argsString}</pre
8270
7961
  clearTimeout(this.transitionTimeoutId);
8271
7962
  this.transitionTimeoutId = null;
8272
7963
  }
7964
+ this.clearIconRailContextCloseTimer();
8273
7965
  this.unsubscribeFromInspectorThreadBridge();
8274
7966
  this.threadsSetupPromptCopyGeneration += 1;
8275
7967
  if (this.threadsSetupPromptCopyResetTimeoutId !== null) {
@@ -8279,6 +7971,7 @@ ${argsString}</pre
8279
7971
  this.threadsSetupPromptCopyState = "idle";
8280
7972
  this.stopSignalPulse();
8281
7973
  this.cancelGestureTail();
7974
+ this.cancelLauncherHudIntro();
8282
7975
  this.cancelThreadRefreshDebounce();
8283
7976
  this.clearInspectorUsageRefresh();
8284
7977
  this.cleanupThreadsExampleOverviewVideo();
@@ -8315,6 +8008,7 @@ ${argsString}</pre
8315
8008
  else this.centerContext("window");
8316
8009
  this.ensureAnnouncementLoading();
8317
8010
  this.updateHostTransform(this.isOpen ? "window" : "button");
8011
+ this.scheduleLauncherHudIntro();
8318
8012
  }
8319
8013
  render() {
8320
8014
  return this.isOpen ? lit.html`
@@ -8375,18 +8069,9 @@ ${argsString}</pre
8375
8069
  "justify-center",
8376
8070
  "rounded-full",
8377
8071
  "border",
8378
- "border-white/20",
8379
- "bg-slate-950/95",
8380
8072
  "text-xs",
8381
8073
  "font-medium",
8382
8074
  "text-white",
8383
- "ring-1",
8384
- "ring-white/10",
8385
- "backdrop-blur-md",
8386
- "transition",
8387
- "hover:border-white/30",
8388
- "hover:bg-slate-900/95",
8389
- "hover:scale-105",
8390
8075
  "focus-visible:outline",
8391
8076
  "focus-visible:outline-2",
8392
8077
  "focus-visible:outline-offset-2",
@@ -8508,6 +8193,41 @@ ${argsString}</pre
8508
8193
  isLauncherHudBlocked() {
8509
8194
  return this.gestureSignal !== null;
8510
8195
  }
8196
+ scheduleLauncherHudIntro(delay = LAUNCHER_HUD_INTRO_MS.delay) {
8197
+ if (this.launcherHudIntroStartTimer !== null) clearTimeout(this.launcherHudIntroStartTimer);
8198
+ this.launcherHudIntroStartTimer = setTimeout(() => {
8199
+ this.launcherHudIntroStartTimer = null;
8200
+ if (!this.isConnected || this.isOpen) return;
8201
+ if (this.isLauncherHudBlocked()) {
8202
+ this.scheduleLauncherHudIntro(LAUNCHER_HUD_INTRO_MS.blockedRetry);
8203
+ return;
8204
+ }
8205
+ this.resolveLauncherHudSide();
8206
+ this.launcherHudIntro = true;
8207
+ this.launcherHudOpen = true;
8208
+ this.requestUpdate();
8209
+ this.launcherHudIntroEndTimer = setTimeout(() => {
8210
+ this.launcherHudIntroEndTimer = null;
8211
+ this.launcherHudIntro = false;
8212
+ this.launcherHudOpen = false;
8213
+ this.launcherHudHelp = null;
8214
+ this.requestUpdate();
8215
+ }, LAUNCHER_HUD_INTRO_MS.duration);
8216
+ }, delay);
8217
+ }
8218
+ cancelLauncherHudIntro() {
8219
+ if (this.launcherHudIntroStartTimer !== null) {
8220
+ clearTimeout(this.launcherHudIntroStartTimer);
8221
+ this.launcherHudIntroStartTimer = null;
8222
+ }
8223
+ if (this.launcherHudIntroEndTimer !== null) {
8224
+ clearTimeout(this.launcherHudIntroEndTimer);
8225
+ this.launcherHudIntroEndTimer = null;
8226
+ }
8227
+ if (!this.launcherHudIntro) return;
8228
+ this.launcherHudIntro = false;
8229
+ if (this.isConnected) this.requestUpdate();
8230
+ }
8511
8231
  resolveLauncherHudSide() {
8512
8232
  if (typeof window === "undefined") {
8513
8233
  this.launcherHudSide = "left";
@@ -8536,6 +8256,7 @@ ${argsString}</pre
8536
8256
  this.requestUpdate();
8537
8257
  }
8538
8258
  closeLauncherHud() {
8259
+ this.cancelLauncherHudIntro();
8539
8260
  if (this.launcherHudCloseTimer !== null) {
8540
8261
  clearTimeout(this.launcherHudCloseTimer);
8541
8262
  this.launcherHudCloseTimer = null;
@@ -8573,6 +8294,10 @@ ${argsString}</pre
8573
8294
  class="cpk-launcher-hud__row"
8574
8295
  data-cpk-hud-row=${args.id}
8575
8296
  data-cpk-hud-help=${helpOpen ? "open" : lit.nothing}
8297
+ style=${(0, lit_directives_style_map_js.styleMap)({
8298
+ "--cpk-hud-row-index": `${args.introIndex}`,
8299
+ "--cpk-hud-row-delay": `${LAUNCHER_HUD_INTRO_MS.rowStart + args.introIndex * LAUNCHER_HUD_INTRO_MS.rowStagger}ms`
8300
+ })}
8576
8301
  @click=${(event) => this.handleHudRowClick(event, args.id)}
8577
8302
  >
8578
8303
  <button
@@ -8601,25 +8326,32 @@ ${argsString}</pre
8601
8326
  `;
8602
8327
  }
8603
8328
  renderLauncherHud() {
8604
- var _this$_core6;
8605
8329
  if (!this.launcherHudOpen) return lit.nothing;
8606
- const threadsOn = this.areThreadEndpointsAvailable();
8607
- const intelligenceOn = Boolean((_this$_core6 = this._core) === null || _this$_core6 === void 0 ? void 0 : _this$_core6.intelligence);
8608
- const learningOn = intelligenceOn && this._memoriesAvailable;
8330
+ const homeModel = this.getHomeModel();
8331
+ const threadsOn = homeModel.services.some((service) => service.id === "threads" && service.enabled);
8332
+ const learningOn = homeModel.services.some((service) => service.id === "memory" && service.enabled);
8333
+ const intelligenceOn = homeModel.hero.connection === "connected";
8609
8334
  return lit.html`
8610
8335
  <div
8611
8336
  class="cpk-launcher-hud"
8612
8337
  id="cpk-launcher-hud"
8613
8338
  data-cpk-launcher-hud
8614
8339
  data-cpk-hud-side=${this.launcherHudSide}
8340
+ data-cpk-hud-intro=${this.launcherHudIntro ? "true" : lit.nothing}
8341
+ data-color-scheme=${this.colorScheme}
8342
+ style=${(0, lit_directives_style_map_js.styleMap)({
8343
+ "--cpk-launcher-hud-intro-duration": `${LAUNCHER_HUD_INTRO_MS.duration}ms`,
8344
+ "--cpk-launcher-hud-row-duration": `${LAUNCHER_HUD_INTRO_MS.rowDuration}ms`
8345
+ })}
8615
8346
  >
8347
+ <span class="cpk-launcher-hud__arrow" aria-hidden="true"></span>
8616
8348
  <div class="cpk-launcher-hud__card">
8617
- <span class="cpk-launcher-hud__arrow" aria-hidden="true"></span>
8618
8349
  <ul class="cpk-launcher-hud__list" role="list">
8619
8350
  ${this.renderHudRow({
8620
8351
  id: "inspector",
8621
8352
  label: HUD_OPEN_INSPECTOR_LABEL,
8622
- detail: HUD_OPEN_INSPECTOR_DETAIL
8353
+ detail: HUD_OPEN_INSPECTOR_DETAIL,
8354
+ introIndex: 0
8623
8355
  })}
8624
8356
  </ul>
8625
8357
  <ul class="cpk-launcher-hud__list" role="list">
@@ -8627,19 +8359,22 @@ ${argsString}</pre
8627
8359
  id: "threads",
8628
8360
  label: threadsOn ? HUD_THREADS_ON_LABEL : HUD_THREADS_OFF_LABEL,
8629
8361
  detail: threadsOn ? HUD_THREADS_ON_DETAIL : HUD_THREADS_OFF_DETAIL,
8630
- connected: threadsOn
8362
+ connected: threadsOn,
8363
+ introIndex: 1
8631
8364
  })}
8632
8365
  ${this.renderHudRow({
8633
8366
  id: "intelligence",
8634
8367
  label: intelligenceOn ? HUD_INTELLIGENCE_ON_LABEL : HUD_INTELLIGENCE_OFF_LABEL,
8635
8368
  detail: intelligenceOn ? HUD_INTELLIGENCE_ON_DETAIL : HUD_INTELLIGENCE_OFF_DETAIL,
8636
- connected: intelligenceOn
8369
+ connected: intelligenceOn,
8370
+ introIndex: 2
8637
8371
  })}
8638
8372
  ${this.renderHudRow({
8639
8373
  id: "learning",
8640
8374
  label: learningOn ? HUD_LEARNING_ON_LABEL : HUD_LEARNING_OFF_LABEL,
8641
8375
  detail: learningOn ? HUD_LEARNING_ON_DETAIL : HUD_LEARNING_OFF_DETAIL,
8642
- connected: learningOn
8376
+ connected: learningOn,
8377
+ introIndex: 3
8643
8378
  })}
8644
8379
  </ul>
8645
8380
  </div>
@@ -8743,34 +8478,34 @@ ${argsString}</pre
8743
8478
  })}
8744
8479
  </nav>
8745
8480
  ${automaticallyCollapsed ? lit.nothing : lit.html`
8746
- <button
8747
- type="button"
8748
- class="inspector-sidebar-toggle"
8749
- data-inspector-sidebar-toggle
8750
- aria-label=${iconRail ? "Expand sidebar" : "Collapse sidebar"}
8751
- aria-expanded=${iconRail ? "false" : "true"}
8752
- data-inspector-tooltip=${iconRail ? "Expand sidebar" : lit.nothing}
8753
- title=${iconRail ? lit.nothing : "Collapse sidebar"}
8754
- style=${INTERACTIVE_FOCUS_BASE_STYLE}
8755
- @pointerenter=${iconRail ? this.handleSidebarRailTooltipShow : lit.nothing}
8756
- @pointerleave=${iconRail ? this.handleSidebarRailTooltipHide : lit.nothing}
8757
- @focus=${iconRail ? this.handleSidebarRailTooltipShow : lit.nothing}
8758
- @blur=${iconRail ? this.handleSidebarRailTooltipHide : lit.nothing}
8759
- @click=${this.handleSidebarToggle}
8760
- >
8761
- <span class="inspector-nav-icon" aria-hidden="true">
8762
- ${this.renderIcon(iconRail ? "ChevronRight" : "ChevronLeft")}
8763
- </span>
8764
- <span class="inspector-nav-label"
8765
- >${iconRail ? "Expand" : "Collapse"}</span
8766
- >
8767
- </button>
8768
- `}
8769
- ${iconRail ? lit.nothing : lit.html`
8770
8481
  <div class="inspector-sidebar-footer">
8771
- <div class="inspector-sidebar-status-list">
8772
- ${this.renderSidebarIntelligenceStatus(homeModel)}
8773
- </div>
8482
+ ${iconRail ? lit.nothing : lit.html`
8483
+ <div class="inspector-sidebar-status-list">
8484
+ ${this.renderSidebarIntelligenceStatus(homeModel)}
8485
+ </div>
8486
+ `}
8487
+ <button
8488
+ type="button"
8489
+ class="inspector-sidebar-toggle"
8490
+ data-inspector-sidebar-toggle
8491
+ aria-label=${iconRail ? "Expand sidebar" : "Collapse sidebar"}
8492
+ aria-expanded=${iconRail ? "false" : "true"}
8493
+ data-inspector-tooltip=${iconRail ? "Expand sidebar" : lit.nothing}
8494
+ title=${iconRail ? lit.nothing : "Collapse sidebar"}
8495
+ style=${INTERACTIVE_FOCUS_BASE_STYLE}
8496
+ @pointerenter=${iconRail ? this.handleSidebarRailTooltipShow : lit.nothing}
8497
+ @pointerleave=${iconRail ? this.handleSidebarRailTooltipHide : lit.nothing}
8498
+ @focus=${iconRail ? this.handleSidebarRailTooltipShow : lit.nothing}
8499
+ @blur=${iconRail ? this.handleSidebarRailTooltipHide : lit.nothing}
8500
+ @click=${this.handleSidebarToggle}
8501
+ >
8502
+ <span class="inspector-nav-icon" aria-hidden="true">
8503
+ ${this.renderIcon(iconRail ? "ChevronRight" : "ChevronLeft")}
8504
+ </span>
8505
+ <span class="inspector-nav-label"
8506
+ >${iconRail ? "Expand" : "Collapse"}</span
8507
+ >
8508
+ </button>
8774
8509
  </div>
8775
8510
  `}
8776
8511
  </aside>
@@ -8851,13 +8586,13 @@ ${argsString}</pre
8851
8586
  `;
8852
8587
  }
8853
8588
  getHomeModel() {
8854
- var _this$_core7, _this$_core8, _this$_core9, _this$_core10, _this$_core11, _this$_core12, _this$_core13, _this$announcementPre, _this$announcementMar, _this$announcementHtm;
8589
+ var _this$_core6, _this$_core7, _this$_core8, _this$_core9, _this$_core10, _this$_core11, _this$_core12, _this$announcementPre, _this$announcementMar, _this$announcementHtm;
8855
8590
  const lastRuntimeEvent = this.flattenedEvents[0];
8856
8591
  return buildHomeModel({
8857
- intelligenceConnected: Boolean((_this$_core7 = this._core) === null || _this$_core7 === void 0 ? void 0 : _this$_core7.intelligence),
8592
+ intelligenceConnected: Boolean((_this$_core6 = this._core) === null || _this$_core6 === void 0 ? void 0 : _this$_core6.intelligence),
8858
8593
  threadsAvailable: this.areThreadEndpointsAvailable(),
8859
8594
  metadata: this.inspectorMetadataProjection,
8860
- runtimeUrl: (_this$_core8 = this._core) === null || _this$_core8 === void 0 ? void 0 : _this$_core8.runtimeUrl,
8595
+ runtimeUrl: (_this$_core7 = this._core) === null || _this$_core7 === void 0 ? void 0 : _this$_core7.runtimeUrl,
8861
8596
  runtimeConnectionState: this.getCoreStatusSummary().state,
8862
8597
  lastRuntimeEvent: lastRuntimeEvent ? {
8863
8598
  id: lastRuntimeEvent.id,
@@ -8866,11 +8601,11 @@ ${argsString}</pre
8866
8601
  timestamp: lastRuntimeEvent.timestamp
8867
8602
  } : void 0,
8868
8603
  memoriesOn: this._memoriesAvailable,
8869
- a2uiOn: ((_this$_core9 = this._core) === null || _this$_core9 === void 0 ? void 0 : _this$_core9.a2uiEnabled) === true,
8870
- openGenUiOn: ((_this$_core10 = this._core) === null || _this$_core10 === void 0 ? void 0 : _this$_core10.openGenerativeUIEnabled) === true,
8871
- suggestionsOn: ((_this$_core11 = this._core) === null || _this$_core11 === void 0 ? void 0 : _this$_core11.suggestions) === true,
8872
- audioOn: ((_this$_core12 = this._core) === null || _this$_core12 === void 0 ? void 0 : _this$_core12.audioFileTranscriptionEnabled) === true,
8873
- websocketUrl: (_this$_core13 = this._core) === null || _this$_core13 === void 0 || (_this$_core13 = _this$_core13.intelligence) === null || _this$_core13 === void 0 ? void 0 : _this$_core13.wsUrl,
8604
+ a2uiOn: ((_this$_core8 = this._core) === null || _this$_core8 === void 0 ? void 0 : _this$_core8.a2uiEnabled) === true,
8605
+ openGenUiOn: ((_this$_core9 = this._core) === null || _this$_core9 === void 0 ? void 0 : _this$_core9.openGenerativeUIEnabled) === true,
8606
+ suggestionsOn: ((_this$_core10 = this._core) === null || _this$_core10 === void 0 ? void 0 : _this$_core10.suggestions) === true,
8607
+ audioOn: ((_this$_core11 = this._core) === null || _this$_core11 === void 0 ? void 0 : _this$_core11.audioFileTranscriptionEnabled) === true,
8608
+ websocketUrl: (_this$_core12 = this._core) === null || _this$_core12 === void 0 || (_this$_core12 = _this$_core12.intelligence) === null || _this$_core12 === void 0 ? void 0 : _this$_core12.wsUrl,
8874
8609
  announcementPreviewText: (_this$announcementPre = this.announcementPreviewText) !== null && _this$announcementPre !== void 0 ? _this$announcementPre : void 0,
8875
8610
  announcementMarkdown: (_this$announcementMar = this.announcementMarkdown) !== null && _this$announcementMar !== void 0 ? _this$announcementMar : void 0,
8876
8611
  announcementHtml: (_this$announcementHtm = this.announcementHtml) !== null && _this$announcementHtm !== void 0 ? _this$announcementHtm : void 0,
@@ -9545,16 +9280,6 @@ ${argsString}</pre
9545
9280
  @pointerup=${this.handleResizePointerUp}
9546
9281
  @pointercancel=${this.handleResizePointerCancel}
9547
9282
  ></div>
9548
- <div
9549
- class="resize-handle pointer-events-auto absolute bottom-0 left-0 flex h-7 w-7 cursor-nesw-resize items-center justify-center text-gray-600 transition hover:text-gray-900"
9550
- data-resize-edge="sw"
9551
- role="presentation"
9552
- aria-hidden="true"
9553
- @pointerdown=${this.handleResizePointerDown}
9554
- @pointermove=${this.handleResizePointerMove}
9555
- @pointerup=${this.handleResizePointerUp}
9556
- @pointercancel=${this.handleResizePointerCancel}
9557
- ></div>
9558
9283
  `}
9559
9284
  <div
9560
9285
  class="resize-handle pointer-events-auto absolute bottom-0 right-0 flex h-7 w-7 cursor-nwse-resize items-center justify-center text-gray-600 transition hover:text-gray-900"
@@ -9971,8 +9696,7 @@ ${argsString}</pre
9971
9696
  this.draggedDuringInteraction = false;
9972
9697
  }
9973
9698
  openInspector(source, options = {}) {
9974
- if (options.snippetId || options.menu === "event-snippets") this.focusEventSnippets(options);
9975
- else if (options.threadId) this.focusThread(options);
9699
+ if (options.threadId) this.focusThread(options);
9976
9700
  if (this.isPoppedOut) return;
9977
9701
  if (this.isOpen) return;
9978
9702
  const hadUnseenAnnouncement = this.newsSignalArmed;
@@ -10156,11 +9880,8 @@ ${argsString}</pre
10156
9880
  return this.sanitizeForLogging(payload);
10157
9881
  }
10158
9882
  normalizeMessageContent(content) {
10159
- if (typeof content === "string") return content;
10160
- if (content && typeof content === "object" && "text" in content) {
10161
- const maybeText = content.text;
10162
- if (typeof maybeText === "string") return maybeText;
10163
- }
9883
+ const extracted = textFromUnknownContent(content);
9884
+ if (extracted) return extracted;
10164
9885
  if (content === null || content === void 0) return "";
10165
9886
  if (typeof content === "object") try {
10166
9887
  return JSON.stringify(this.sanitizeForLogging(content));
@@ -10274,8 +9995,8 @@ ${argsString}</pre
10274
9995
  };
10275
9996
  }
10276
9997
  resolvePlaygroundAgentId(preferredAgentId) {
10277
- var _this$_core$agents, _this$_core14, _Object$keys$;
10278
- const agents = (_this$_core$agents = (_this$_core14 = this._core) === null || _this$_core14 === void 0 ? void 0 : _this$_core14.agents) !== null && _this$_core$agents !== void 0 ? _this$_core$agents : {};
9998
+ var _this$_core$agents, _this$_core13, _Object$keys$;
9999
+ const agents = (_this$_core$agents = (_this$_core13 = this._core) === null || _this$_core13 === void 0 ? void 0 : _this$_core13.agents) !== null && _this$_core$agents !== void 0 ? _this$_core$agents : {};
10279
10000
  if (preferredAgentId && preferredAgentId !== "all-agents" && agents[preferredAgentId]) return preferredAgentId;
10280
10001
  return (_Object$keys$ = Object.keys(agents)[0]) !== null && _Object$keys$ !== void 0 ? _Object$keys$ : null;
10281
10002
  }
@@ -10304,13 +10025,13 @@ ${argsString}</pre
10304
10025
  });
10305
10026
  }
10306
10027
  startPlaygroundSession(showEphemeralNotice, seedMessages = [], seedState = {}, preferredAgentId) {
10307
- var _this$_core15, _this$_core16, _this$_core17;
10028
+ var _this$_core14, _this$_core15, _this$_core16;
10308
10029
  const agentId = this.resolvePlaygroundAgentId(preferredAgentId !== null && preferredAgentId !== void 0 ? preferredAgentId : this.selectedContext);
10309
- const sourceAgent = agentId ? typeof ((_this$_core15 = this._core) === null || _this$_core15 === void 0 ? void 0 : _this$_core15.getAgent) === "function" ? this._core.getAgent(agentId) : (_this$_core16 = this._core) === null || _this$_core16 === void 0 ? void 0 : _this$_core16.agents[agentId] : void 0;
10030
+ const sourceAgent = agentId ? typeof ((_this$_core14 = this._core) === null || _this$_core14 === void 0 ? void 0 : _this$_core14.getAgent) === "function" ? this._core.getAgent(agentId) : (_this$_core15 = this._core) === null || _this$_core15 === void 0 ? void 0 : _this$_core15.agents[agentId] : void 0;
10310
10031
  this.teardownPlaygroundAgent();
10311
10032
  this.playgroundError = null;
10312
10033
  this.playgroundSourceThreadId = null;
10313
- this.playgroundShowEphemeralNotice = showEphemeralNotice && ((_this$_core17 = this._core) === null || _this$_core17 === void 0 ? void 0 : _this$_core17.runtimeMode) !== "intelligence";
10034
+ this.playgroundShowEphemeralNotice = showEphemeralNotice && ((_this$_core16 = this._core) === null || _this$_core16 === void 0 ? void 0 : _this$_core16.runtimeMode) !== "intelligence";
10314
10035
  if (!agentId || !sourceAgent) {
10315
10036
  this.requestUpdate();
10316
10037
  return;
@@ -10392,7 +10113,7 @@ ${argsString}</pre
10392
10113
  const sendDisabled = !agentId || this.playgroundIsLoadingThread || !this.playgroundIsRunning && !this.playgroundInput.trim();
10393
10114
  return lit.html`
10394
10115
  <form
10395
- class=${centered ? "mt-5 w-full" : "bg-white px-3 pb-3 pt-1.5"}
10116
+ class=${centered ? "cpk-playground-form mt-5 w-full" : "cpk-playground-form bg-white px-3 pb-3 pt-1.5"}
10396
10117
  @submit=${this.handlePlaygroundSubmit}
10397
10118
  >
10398
10119
  ${this.playgroundError ? lit.html`<div
@@ -10421,587 +10142,34 @@ ${argsString}</pre
10421
10142
  ` : lit.nothing}
10422
10143
  </div>` : lit.nothing}
10423
10144
  <div
10424
- class="mx-auto flex max-w-3xl items-end gap-1.5 rounded-[28px] bg-white px-2.5 py-1.5 shadow-[0_4px_4px_0_#0000000a,0_0_1px_0_#0000009e] transition-shadow duration-200 focus-within:shadow-[0_6px_18px_0_#00000014,0_0_1px_0_#0000009e]"
10145
+ class="cpk-playground-composer mx-auto flex max-w-3xl items-end gap-1.5 rounded-[28px] bg-white px-2.5 py-1.5 shadow-[0_4px_4px_0_#0000000a,0_0_1px_0_#0000009e] transition-shadow duration-200 focus-within:shadow-[0_6px_18px_0_#00000014,0_0_1px_0_#0000009e]"
10425
10146
  >
10426
10147
  <textarea
10427
- class="min-h-[40px] max-h-32 flex-1 resize-none bg-transparent px-2.5 py-2.5 text-[13px] leading-5 text-gray-900 outline-none placeholder:text-gray-500 disabled:cursor-not-allowed disabled:opacity-60"
10428
- rows="1"
10429
- placeholder=${placeholder}
10430
- aria-label="Playground message"
10431
- .value=${this.playgroundInput}
10432
- ?disabled=${!agentId || busy}
10433
- @input=${this.handlePlaygroundInput}
10434
- @keydown=${this.handlePlaygroundKeyDown}
10435
- ></textarea>
10436
- <button
10437
- type=${this.playgroundIsRunning ? "button" : "submit"}
10438
- class=${`mb-0.5 flex h-9 w-9 shrink-0 items-center justify-center rounded-full transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-violet-400 focus-visible:ring-offset-2 [&>svg]:h-[18px] [&>svg]:w-[18px] ${sendDisabled ? "cursor-not-allowed bg-[#00000014] text-[rgb(13,13,13)] opacity-50" : "cursor-pointer bg-black text-white hover:opacity-70 active:opacity-60"}`}
10439
- aria-label=${this.playgroundIsRunning ? "Stop agent" : "Send playground message"}
10440
- ?disabled=${sendDisabled}
10441
- @click=${this.playgroundIsRunning ? this.handlePlaygroundStop : lit.nothing}
10442
- >
10443
- ${this.renderIcon(this.playgroundIsRunning ? "Square" : "ArrowUp")}
10444
- </button>
10445
- </div>
10446
- <p
10447
- class="mx-auto max-w-3xl px-3 py-2 text-center text-[10px] leading-4 text-gray-500"
10448
- >
10449
- AI can make mistakes. Please verify important information.
10450
- </p>
10451
- </form>
10452
- `;
10453
- }
10454
- reloadEventSnippets() {
10455
- this.eventSnippets = loadEventSnippets();
10456
- }
10457
- renderSnippetImportControl() {
10458
- return lit.html`
10459
- <label
10460
- class="inline-flex shrink-0 cursor-pointer items-center rounded-md border border-gray-300 bg-white px-3 py-1.5 text-[11px] text-gray-700"
10461
- data-testid="cpk-snippet-import"
10462
- >
10463
- Import
10464
- <input
10465
- type="file"
10466
- accept="application/json"
10467
- class="hidden"
10468
- @change=${this.handleSnippetImportChange}
10469
- />
10470
- </label>
10471
- `;
10472
- }
10473
- selectEventSnippet(id) {
10474
- const snippet = this.eventSnippets.find((item) => item.id === id);
10475
- this.selectedSnippetId = id;
10476
- if (!snippet) {
10477
- this.requestUpdate();
10478
- return;
10479
- }
10480
- const editor = editorStateFromSnippet(snippet);
10481
- this.snippetRecipe = editor.recipe;
10482
- this.snippetName = editor.name;
10483
- this.snippetJson = editor.json;
10484
- this.snippetToolName = editor.draft.toolName;
10485
- this.snippetToolArgs = editor.draft.toolArgs;
10486
- this.snippetReasoningText = editor.draft.reasoningText;
10487
- this.snippetTextContent = editor.draft.textContent;
10488
- this.snippetActivityType = editor.draft.activityType;
10489
- this.snippetActivityContent = editor.draft.activityContent;
10490
- this.snippetError = null;
10491
- this.requestUpdate();
10492
- }
10493
- compileSnippetDraft() {
10494
- switch (this.snippetRecipe) {
10495
- case "tool-call": return compileToolCallRecipe({
10496
- toolName: this.snippetToolName,
10497
- argsJson: this.snippetToolArgs,
10498
- threadId: this.getSnippetThreadId(),
10499
- runId: this.getSnippetRunId()
10500
- });
10501
- case "reasoning": return compileReasoningRecipe({
10502
- text: this.snippetReasoningText,
10503
- threadId: this.getSnippetThreadId(),
10504
- runId: this.getSnippetRunId()
10505
- });
10506
- case "text": return compileTextRecipe({
10507
- text: this.snippetTextContent,
10508
- threadId: this.getSnippetThreadId(),
10509
- runId: this.getSnippetRunId()
10510
- });
10511
- case "activity": return compileActivityRecipe({
10512
- activityType: this.snippetActivityType,
10513
- contentJson: this.snippetActivityContent,
10514
- threadId: this.getSnippetThreadId(),
10515
- runId: this.getSnippetRunId()
10516
- });
10517
- case "raw": return parseSnippetEvents(this.snippetJson);
10518
- }
10519
- }
10520
- getSnippetThreadId() {
10521
- var _this$selectedThreadI;
10522
- return (_this$selectedThreadI = this.selectedThreadId) !== null && _this$selectedThreadI !== void 0 ? _this$selectedThreadI : "inspector-snippet";
10523
- }
10524
- getSnippetRunId() {
10525
- return `inspector-snippet-${Date.now()}`;
10526
- }
10527
- getSnippetTargetAgent() {
10528
- var _core$getAgent2;
10529
- const core = this._core;
10530
- if (!core) return null;
10531
- const selected = this.selectedContext !== "all-agents" ? this.selectedContext : null;
10532
- if (selected) {
10533
- var _core$getAgent;
10534
- return (_core$getAgent = core.getAgent(selected)) !== null && _core$getAgent !== void 0 ? _core$getAgent : null;
10535
- }
10536
- const first = this.contextOptions.find((option) => option.key !== "all-agents");
10537
- return first ? (_core$getAgent2 = core.getAgent(first.key)) !== null && _core$getAgent2 !== void 0 ? _core$getAgent2 : null : null;
10538
- }
10539
- applyRecipeToEditor() {
10540
- try {
10541
- const events = this.compileSnippetDraft();
10542
- this.snippetJson = JSON.stringify(events, null, 2);
10543
- this.snippetError = null;
10544
- } catch (error) {
10545
- this.snippetError = error instanceof Error ? error.message : "Could not compile recipe.";
10546
- }
10547
- this.requestUpdate();
10548
- }
10549
- handleSnippetRecipeChange(event) {
10550
- const value = event.target.value;
10551
- if (value === "tool-call" || value === "reasoning" || value === "text" || value === "activity" || value === "raw") {
10552
- this.snippetRecipe = value;
10553
- if (value !== "raw") this.applyRecipeToEditor();
10554
- else this.requestUpdate();
10555
- }
10556
- }
10557
- saveCurrentSnippet(source) {
10558
- try {
10559
- var _this$selectedSnippet, _this$eventSnippets$f, _this$eventSnippets$f2, _this$core14;
10560
- const events = parseSnippetEvents(this.snippetJson);
10561
- const now = (/* @__PURE__ */ new Date()).toISOString();
10562
- const snippet = {
10563
- id: (_this$selectedSnippet = this.selectedSnippetId) !== null && _this$selectedSnippet !== void 0 ? _this$selectedSnippet : createSnippetId(),
10564
- name: this.snippetName.trim() || recipeLabel(this.snippetRecipe),
10565
- recipe: this.snippetRecipe,
10566
- events,
10567
- createdAt: (_this$eventSnippets$f = (_this$eventSnippets$f2 = this.eventSnippets.find((item) => item.id === this.selectedSnippetId)) === null || _this$eventSnippets$f2 === void 0 ? void 0 : _this$eventSnippets$f2.createdAt) !== null && _this$eventSnippets$f !== void 0 ? _this$eventSnippets$f : now,
10568
- updatedAt: now
10569
- };
10570
- this.eventSnippets = upsertEventSnippet(snippet);
10571
- this.selectedSnippetId = snippet.id;
10572
- this.snippetBanner = "Snippet saved.";
10573
- this.snippetError = null;
10574
- if (!((_this$core14 = this.core) === null || _this$core14 === void 0 ? void 0 : _this$core14.telemetryDisabled)) trackEventSnippetsSaved({
10575
- recipe: this.snippetRecipe,
10576
- source,
10577
- success: true
10578
- });
10579
- } catch (error) {
10580
- var _this$core15;
10581
- this.snippetError = error instanceof Error ? error.message : "Could not save snippet.";
10582
- if (!((_this$core15 = this.core) === null || _this$core15 === void 0 ? void 0 : _this$core15.telemetryDisabled)) trackEventSnippetsSaved({
10583
- recipe: this.snippetRecipe,
10584
- source,
10585
- success: false
10586
- });
10587
- }
10588
- this.requestUpdate();
10589
- }
10590
- async runCurrentSnippet() {
10591
- this.snippetError = null;
10592
- this.snippetBanner = null;
10593
- let events;
10594
- try {
10595
- events = expandSnippetEventsForRun(parseSnippetEvents(this.snippetJson));
10596
- } catch (error) {
10597
- this.snippetError = error instanceof Error ? error.message : "Snippet JSON is invalid.";
10598
- this.requestUpdate();
10599
- return;
10600
- }
10601
- if (snippetContainsToolCall(events) && !this.snippetConfirmOpen) {
10602
- this.snippetConfirmOpen = true;
10603
- this.requestUpdate();
10604
- return;
10605
- }
10606
- this.snippetConfirmOpen = false;
10607
- const core = this._core;
10608
- const agent = this.getSnippetTargetAgent();
10609
- if (!core || !agent) {
10610
- this.snippetError = "No agent is available to inject into.";
10611
- this.requestUpdate();
10612
- return;
10613
- }
10614
- if (agent.isRunning) {
10615
- this.snippetError = "The agent is running. Wait for the current run to end.";
10616
- this.requestUpdate();
10617
- return;
10618
- }
10619
- try {
10620
- var _this$selectedSnippet2, _agent$agentId, _this$core16;
10621
- const result = await (0, _copilotkit_core.ɵinjectInspectorEvents)({
10622
- core,
10623
- agent,
10624
- events
10625
- });
10626
- this.lastInject = {
10627
- snippetId: (_this$selectedSnippet2 = this.selectedSnippetId) !== null && _this$selectedSnippet2 !== void 0 ? _this$selectedSnippet2 : "unsaved",
10628
- agentId: (_agent$agentId = agent.agentId) !== null && _agent$agentId !== void 0 ? _agent$agentId : "default",
10629
- runId: this.getSnippetRunId(),
10630
- messageIds: result.messageIds
10631
- };
10632
- this.snippetBanner = "Inspector injected these events into the live thread.";
10633
- if (!((_this$core16 = this.core) === null || _this$core16 === void 0 ? void 0 : _this$core16.telemetryDisabled)) trackEventSnippetsRun({
10634
- recipe: this.snippetRecipe,
10635
- source: "pane",
10636
- success: true
10637
- });
10638
- } catch (error) {
10639
- var _this$core17;
10640
- this.snippetError = error instanceof Error ? error.message : "Could not run snippet.";
10641
- if (!((_this$core17 = this.core) === null || _this$core17 === void 0 ? void 0 : _this$core17.telemetryDisabled)) trackEventSnippetsRun({
10642
- recipe: this.snippetRecipe,
10643
- source: "pane",
10644
- success: false
10645
- });
10646
- }
10647
- this.requestUpdate();
10648
- }
10649
- resetLastSnippetRun() {
10650
- const last = this.lastInject;
10651
- const core = this._core;
10652
- if (!last || !core) return;
10653
- const agent = core.getAgent(last.agentId);
10654
- if (!agent) {
10655
- this.snippetError = "The injected agent is no longer available.";
10656
- this.requestUpdate();
10657
- return;
10658
- }
10659
- (0, _copilotkit_core.ɵresetInspectorInject)({
10660
- agent,
10661
- messageIds: last.messageIds
10662
- });
10663
- this.lastInject = null;
10664
- this.snippetBanner = "Last inject was removed from the thread. App state from a tool handler was not undone.";
10665
- this.requestUpdate();
10666
- }
10667
- renderEventSnippetsView() {
10668
- var _this$_core$tools, _this$_core18;
10669
- if (this.eventSnippets.length === 0 && this.selectedSnippetId === null) this.reloadEventSnippets();
10670
- const agent = this.getSnippetTargetAgent();
10671
- const runBlocked = (agent === null || agent === void 0 ? void 0 : agent.isRunning) === true;
10672
- const canRunJson = snippetJsonIsRunnable(this.snippetJson);
10673
- const canRun = canRunJson && !!agent && !runBlocked;
10674
- const canSave = canRunJson;
10675
- const canDelete = this.selectedSnippetId !== null;
10676
- const canExport = this.eventSnippets.length > 0;
10677
- const canReset = this.lastInject !== null;
10678
- const snippetGroups = groupEventSnippets(this.eventSnippets);
10679
- const tools = (_this$_core$tools = (_this$_core18 = this._core) === null || _this$_core18 === void 0 ? void 0 : _this$_core18.tools) !== null && _this$_core$tools !== void 0 ? _this$_core$tools : [];
10680
- return lit.html`
10681
- <div class="flex h-full min-h-0 flex-col bg-white">
10682
- <div
10683
- class="flex items-center justify-between gap-4 border-b border-gray-200 px-4 py-3"
10684
- >
10685
- <div class="min-w-0">
10686
- <h2 class="text-sm font-semibold text-gray-900">Event Snippets</h2>
10687
- <p class="mt-1 text-[11px] text-gray-500">
10688
- Compile AG-UI events, run them on the live agent, and save them
10689
- for later. Tool-call runs use the real frontend-tool handler.
10690
- </p>
10691
- </div>
10692
- ${this.renderSnippetImportControl()}
10693
- </div>
10694
- ${this.snippetBanner ? lit.html`<div
10695
- class="border-b border-emerald-200 bg-emerald-50 px-4 py-2 text-[11px] text-emerald-800"
10696
- role="status"
10697
- >
10698
- ${this.snippetBanner}
10699
- </div>` : lit.nothing}
10700
- ${this.snippetError ? lit.html`<div
10701
- class="border-b border-rose-200 bg-rose-50 px-4 py-2 text-[11px] text-rose-800"
10702
- role="alert"
10703
- >
10704
- ${this.snippetError}
10705
- </div>` : lit.nothing}
10706
- ${this.snippetConfirmOpen ? lit.html`<div
10707
- class="border-b border-amber-200 bg-amber-50 px-4 py-2 text-[11px] text-amber-900"
10708
- role="alertdialog"
10709
- aria-label="Confirm tool-call run"
10710
- >
10711
- <p>
10712
- This snippet contains a tool call. Run will execute the real
10713
- handler on the live thread.
10714
- </p>
10715
- <div class="mt-2 flex gap-2">
10716
- <button
10717
- type="button"
10718
- class="rounded-md bg-gray-900 px-2 py-1 text-[11px] text-white"
10719
- data-testid="cpk-snippet-run-handler"
10720
- @click=${() => {
10721
- this.snippetConfirmOpen = true;
10722
- this.runCurrentSnippet();
10723
- }}
10724
- >
10725
- Run handler
10726
- </button>
10727
- <button
10728
- type="button"
10729
- class="rounded-md border border-gray-300 bg-white px-2 py-1 text-[11px]"
10730
- @click=${() => {
10731
- this.snippetConfirmOpen = false;
10732
- this.requestUpdate();
10733
- }}
10734
- >
10735
- Cancel
10736
- </button>
10737
- </div>
10738
- </div>` : lit.nothing}
10739
- <div class="flex min-h-0 flex-1">
10740
- <div
10741
- class="inspector-snippet-sidebar shrink-0"
10742
- style="width:${this.snippetListWidth}px"
10743
- data-testid="cpk-snippet-list"
10744
- >
10745
- ${snippetGroups.length === 0 ? lit.html`
10746
- <p class="px-2 py-2 text-[11px] text-gray-500">No saved snippets yet.</p>
10747
- ` : lit.html`
10748
- <nav class="inspector-sidebar-nav" aria-label="Saved snippets">
10749
- ${snippetGroups.map((group) => lit.html`
10750
- <div class="inspector-sidebar-section">
10751
- <div
10752
- class="inspector-sidebar-label"
10753
- data-testid="cpk-snippet-category"
10754
- data-recipe=${group.recipe}
10755
- >
10756
- ${group.label}
10757
- </div>
10758
- ${group.snippets.map((snippet) => {
10759
- const isSelected = snippet.id === this.selectedSnippetId;
10760
- return lit.html`
10761
- <button
10762
- type="button"
10763
- class="inspector-nav-control inspector-sidebar-control ${isSelected ? "inspector-nav-control-active" : ""}"
10764
- data-testid="cpk-snippet-item"
10765
- data-recipe=${snippet.recipe}
10766
- aria-current=${isSelected ? "page" : lit.nothing}
10767
- aria-label="${recipeLabel(snippet.recipe)}: ${snippet.name}"
10768
- style=${INTERACTIVE_FOCUS_BASE_STYLE}
10769
- @click=${() => this.selectEventSnippet(snippet.id)}
10770
- >
10771
- <span
10772
- class="inspector-nav-icon"
10773
- aria-hidden="true"
10774
- >
10775
- <span
10776
- class="flex h-6 w-6 items-center justify-center rounded-md ${recipeIconWrapClass(snippet.recipe)}"
10777
- >
10778
- ${this.renderIcon(recipeIconName(snippet.recipe))}
10779
- </span>
10780
- </span>
10781
- <span class="inspector-nav-label"
10782
- >${snippet.name}</span
10783
- >
10784
- </button>
10785
- `;
10786
- })}
10787
- </div>
10788
- `)}
10789
- </nav>
10790
- `}
10791
- </div>
10792
- <div
10793
- class="w-1.5 shrink-0 cursor-col-resize bg-gray-200 hover:bg-gray-400"
10794
- role="separator"
10795
- aria-orientation="vertical"
10796
- aria-label="Resize snippet list"
10797
- title="Drag to resize"
10798
- data-testid="cpk-snippet-list-resize"
10799
- style="touch-action:none"
10800
- @pointerdown=${this.handleSnippetListDividerPointerDown}
10801
- @pointermove=${this.handleSnippetListDividerPointerMove}
10802
- @pointerup=${this.handleSnippetListDividerPointerUp}
10803
- @pointercancel=${this.handleSnippetListDividerPointerUp}
10804
- ></div>
10805
- <div class="flex min-h-0 min-w-0 flex-1 flex-col gap-2 overflow-auto p-4">
10806
- <label class="text-[11px] text-gray-600">
10807
- Name
10808
- <input
10809
- class="mt-1 w-full rounded-md border border-gray-200 px-2 py-1 text-[11px]"
10810
- data-testid="cpk-snippet-name"
10811
- .value=${this.snippetName}
10812
- @input=${(event) => {
10813
- this.snippetName = event.target.value;
10814
- }}
10815
- />
10816
- </label>
10817
- <label class="text-[11px] text-gray-600">
10818
- Recipe
10819
- <select
10820
- class="mt-1 w-full rounded-md border border-gray-200 px-2 py-1 text-[11px]"
10821
- data-testid="cpk-snippet-recipe"
10822
- .value=${this.snippetRecipe}
10823
- @change=${this.handleSnippetRecipeChange}
10824
- >
10825
- ${[
10826
- "tool-call",
10827
- "reasoning",
10828
- "text",
10829
- "activity",
10830
- "raw"
10831
- ].map((recipe) => lit.html`<option
10832
- value=${recipe}
10833
- ?selected=${recipe === this.snippetRecipe}
10834
- >
10835
- ${recipeLabel(recipe)}
10836
- </option>`)}
10837
- </select>
10838
- </label>
10839
- ${this.snippetRecipe === "tool-call" ? lit.html`
10840
- <label class="text-[11px] text-gray-600">
10841
- Tool
10842
- <input
10843
- list="cpk-snippet-tools"
10844
- class="mt-1 w-full rounded-md border border-gray-200 px-2 py-1 text-[11px]"
10845
- data-testid="cpk-snippet-tool-name"
10846
- .value=${this.snippetToolName}
10847
- @input=${(event) => {
10848
- this.snippetToolName = event.target.value;
10849
- this.applyRecipeToEditor();
10850
- }}
10851
- />
10852
- <datalist id="cpk-snippet-tools">
10853
- ${tools.map((tool) => lit.html`<option value=${tool.name}></option>`)}
10854
- </datalist>
10855
- </label>
10856
- <label class="text-[11px] text-gray-600">
10857
- Args JSON
10858
- <textarea
10859
- class="mt-1 h-20 w-full rounded-md border border-gray-200 px-2 py-1 font-mono text-[11px]"
10860
- data-testid="cpk-snippet-tool-args"
10861
- .value=${this.snippetToolArgs}
10862
- @input=${(event) => {
10863
- this.snippetToolArgs = event.target.value;
10864
- this.applyRecipeToEditor();
10865
- }}
10866
- ></textarea>
10867
- </label>
10868
- ` : lit.nothing}
10869
- ${this.snippetRecipe === "reasoning" ? lit.html`<label class="text-[11px] text-gray-600">
10870
- Reasoning
10871
- <textarea
10872
- class="mt-1 h-20 w-full rounded-md border border-gray-200 px-2 py-1 text-[11px]"
10873
- data-testid="cpk-snippet-reasoning"
10874
- .value=${this.snippetReasoningText}
10875
- @input=${(event) => {
10876
- this.snippetReasoningText = event.target.value;
10877
- this.applyRecipeToEditor();
10878
- }}
10879
- ></textarea>
10880
- </label>` : lit.nothing}
10881
- ${this.snippetRecipe === "text" ? lit.html`<label class="text-[11px] text-gray-600">
10882
- Assistant text
10883
- <textarea
10884
- class="mt-1 h-20 w-full rounded-md border border-gray-200 px-2 py-1 text-[11px]"
10885
- data-testid="cpk-snippet-text"
10886
- .value=${this.snippetTextContent}
10887
- @input=${(event) => {
10888
- this.snippetTextContent = event.target.value;
10889
- this.applyRecipeToEditor();
10890
- }}
10891
- ></textarea>
10892
- </label>` : lit.nothing}
10893
- ${this.snippetRecipe === "activity" ? lit.html`
10894
- <label class="text-[11px] text-gray-600">
10895
- Activity type
10896
- <input
10897
- list="cpk-snippet-activity"
10898
- class="mt-1 w-full rounded-md border border-gray-200 px-2 py-1 text-[11px]"
10899
- data-testid="cpk-snippet-activity-type"
10900
- .value=${this.snippetActivityType}
10901
- @input=${(event) => {
10902
- this.snippetActivityType = event.target.value;
10903
- this.applyRecipeToEditor();
10904
- }}
10905
- />
10906
- <datalist id="cpk-snippet-activity">
10907
- ${ACTIVITY_STARTERS.map((type) => lit.html`<option value=${type}></option>`)}
10908
- </datalist>
10909
- </label>
10910
- <label class="text-[11px] text-gray-600">
10911
- Content JSON
10912
- <textarea
10913
- class="mt-1 h-24 w-full rounded-md border border-gray-200 px-2 py-1 font-mono text-[11px]"
10914
- data-testid="cpk-snippet-activity-content"
10915
- .value=${this.snippetActivityContent}
10916
- @input=${(event) => {
10917
- this.snippetActivityContent = event.target.value;
10918
- this.applyRecipeToEditor();
10919
- }}
10920
- ></textarea>
10921
- </label>
10922
- ` : lit.nothing}
10923
- <label class="text-[11px] text-gray-600">
10924
- Events JSON
10925
- <textarea
10926
- class="mt-1 h-40 w-full rounded-md border border-gray-200 px-2 py-1 font-mono text-[11px]"
10927
- data-testid="cpk-snippet-json"
10928
- .value=${this.snippetJson}
10929
- @input=${(event) => {
10930
- this.snippetJson = event.target.value;
10931
- this.requestUpdate();
10932
- }}
10933
- ></textarea>
10934
- </label>
10935
- <div class="flex flex-wrap gap-2">
10936
- <button
10937
- type="button"
10938
- class="rounded-md bg-gray-900 px-3 py-1.5 text-[11px] text-white disabled:opacity-50"
10939
- data-testid="cpk-snippet-run"
10940
- ?disabled=${!canRun}
10941
- title=${runBlocked ? "The agent is running. Wait for the current run to end." : !agent ? "No agent is available to inject into." : !canRunJson ? "Events JSON must be a non-empty event array." : "Run snippet"}
10942
- @click=${() => void this.runCurrentSnippet()}
10943
- >
10944
- ${runBlocked ? "Agent running" : "Run"}
10945
- </button>
10946
- <button
10947
- type="button"
10948
- class="rounded-md border border-gray-300 bg-white px-3 py-1.5 text-[11px] disabled:opacity-50"
10949
- data-testid="cpk-snippet-save"
10950
- ?disabled=${!canSave}
10951
- title=${canSave ? "Save snippet" : "Events JSON must be a non-empty event array."}
10952
- @click=${() => this.saveCurrentSnippet("pane")}
10953
- >
10954
- Save
10955
- </button>
10956
- <button
10957
- type="button"
10958
- class="rounded-md border border-gray-300 bg-white px-3 py-1.5 text-[11px] disabled:opacity-50"
10959
- data-testid="cpk-snippet-reset"
10960
- ?disabled=${!canReset}
10961
- title=${canReset ? "Remove the last inject from the thread" : "No Inspector inject to reset."}
10962
- @click=${() => this.resetLastSnippetRun()}
10963
- >
10964
- Reset last run
10965
- </button>
10966
- <button
10967
- type="button"
10968
- class="rounded-md border border-gray-300 bg-white px-3 py-1.5 text-[11px] disabled:opacity-50"
10969
- data-testid="cpk-snippet-delete"
10970
- ?disabled=${!canDelete}
10971
- title=${canDelete ? "Delete this snippet" : "Select a snippet to delete."}
10972
- @click=${() => {
10973
- if (!this.selectedSnippetId) return;
10974
- if (!window.confirm("Delete this snippet?")) return;
10975
- this.eventSnippets = deleteEventSnippet(this.selectedSnippetId);
10976
- this.selectedSnippetId = null;
10977
- this.requestUpdate();
10978
- }}
10979
- >
10980
- Delete
10981
- </button>
10982
- <button
10983
- type="button"
10984
- class="rounded-md border border-gray-300 bg-white px-3 py-1.5 text-[11px] disabled:opacity-50"
10985
- data-testid="cpk-snippet-export"
10986
- ?disabled=${!canExport}
10987
- title=${canExport ? "Export snippets" : "Save a snippet before you export."}
10988
- @click=${() => {
10989
- if (!canExport) return;
10990
- const blob = new Blob([exportEventSnippetsJson(this.eventSnippets)], { type: "application/json" });
10991
- const url = URL.createObjectURL(blob);
10992
- const link = document.createElement("a");
10993
- link.href = url;
10994
- link.download = "event-snippets.json";
10995
- link.click();
10996
- URL.revokeObjectURL(url);
10997
- }}
10998
- >
10999
- Export
11000
- </button>
11001
- </div>
11002
- </div>
10148
+ class="cpk-playground-input min-h-[40px] max-h-32 flex-1 resize-none bg-transparent px-2.5 py-2.5 text-[13px] leading-5 text-gray-900 outline-none placeholder:text-gray-500 disabled:cursor-not-allowed disabled:opacity-60"
10149
+ rows="1"
10150
+ placeholder=${placeholder}
10151
+ aria-label="Playground message"
10152
+ .value=${this.playgroundInput}
10153
+ ?disabled=${!agentId || busy}
10154
+ @input=${this.handlePlaygroundInput}
10155
+ @keydown=${this.handlePlaygroundKeyDown}
10156
+ ></textarea>
10157
+ <button
10158
+ type=${this.playgroundIsRunning ? "button" : "submit"}
10159
+ class=${`cpk-playground-send mb-0.5 flex h-9 w-9 shrink-0 items-center justify-center rounded-full transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-violet-400 focus-visible:ring-offset-2 [&>svg]:h-[18px] [&>svg]:w-[18px] ${sendDisabled ? "cursor-not-allowed bg-[#00000014] text-[rgb(13,13,13)] opacity-50" : "cursor-pointer bg-black text-white hover:opacity-70 active:opacity-60"}`}
10160
+ aria-label=${this.playgroundIsRunning ? "Stop agent" : "Send playground message"}
10161
+ ?disabled=${sendDisabled}
10162
+ @click=${this.playgroundIsRunning ? this.handlePlaygroundStop : lit.nothing}
10163
+ >
10164
+ ${this.renderIcon(this.playgroundIsRunning ? "Square" : "ArrowUp")}
10165
+ </button>
11003
10166
  </div>
11004
- </div>
10167
+ <p
10168
+ class="mx-auto max-w-3xl px-3 py-2 text-center text-[10px] leading-4 text-gray-500"
10169
+ >
10170
+ AI can make mistakes. Please verify important information.
10171
+ </p>
10172
+ </form>
11005
10173
  `;
11006
10174
  }
11007
10175
  renderMainContent() {
@@ -11017,7 +10185,6 @@ ${argsString}</pre
11017
10185
  </div>
11018
10186
  `;
11019
10187
  if (this.selectedMenu === "playground") return this.renderPlaygroundView();
11020
- if (this.selectedMenu === "event-snippets") return this.renderEventSnippetsView();
11021
10188
  if (this.selectedMenu === "agents") return this.renderAgentsView();
11022
10189
  if (this.selectedMenu === "frontend-tools") return this.renderToolsView();
11023
10190
  if (this.selectedMenu === "capabilities") return this.renderCapabilitiesView();
@@ -11027,13 +10194,13 @@ ${argsString}</pre
11027
10194
  return lit.nothing;
11028
10195
  }
11029
10196
  renderPlaygroundView() {
11030
- var _this$playgroundAgent4, _this$playgroundAgent5, _this$_core$runtimeMo, _this$_core19, _this$_core$runtimeUr, _this$_core20, _this$playgroundSourc;
10197
+ var _this$playgroundAgent4, _this$playgroundAgent5, _this$_core$runtimeMo, _this$_core17, _this$_core$runtimeUr, _this$_core18, _this$playgroundSourc;
11031
10198
  const agentId = this.resolvePlaygroundAgentId(this.selectedContext);
11032
10199
  const sourceThreads = this._threads.filter((thread) => !agentId || thread.agentId === agentId);
11033
10200
  const visibleMessages = this.playgroundMessages.filter((message) => message.role === "user" || message.role === "assistant" || message.role === "reasoning" || message.role === "activity");
11034
10201
  const hasRetry = (_this$playgroundAgent4 = (_this$playgroundAgent5 = this.playgroundAgent) === null || _this$playgroundAgent5 === void 0 ? void 0 : _this$playgroundAgent5.messages.some((message) => message.role === "user")) !== null && _this$playgroundAgent4 !== void 0 ? _this$playgroundAgent4 : false;
11035
- const runtimeMode = (_this$_core$runtimeMo = (_this$_core19 = this._core) === null || _this$_core19 === void 0 ? void 0 : _this$_core19.runtimeMode) !== null && _this$_core$runtimeMo !== void 0 ? _this$_core$runtimeMo : "sse";
11036
- const runtimeLabel = (_this$_core$runtimeUr = (_this$_core20 = this._core) === null || _this$_core20 === void 0 ? void 0 : _this$_core20.runtimeUrl) !== null && _this$_core$runtimeUr !== void 0 ? _this$_core$runtimeUr : "Self-managed agent";
10202
+ const runtimeMode = (_this$_core$runtimeMo = (_this$_core17 = this._core) === null || _this$_core17 === void 0 ? void 0 : _this$_core17.runtimeMode) !== null && _this$_core$runtimeMo !== void 0 ? _this$_core$runtimeMo : "sse";
10203
+ const runtimeLabel = (_this$_core$runtimeUr = (_this$_core18 = this._core) === null || _this$_core18 === void 0 ? void 0 : _this$_core18.runtimeUrl) !== null && _this$_core$runtimeUr !== void 0 ? _this$_core$runtimeUr : "Self-managed agent";
11037
10204
  const busy = this.playgroundIsRunning || this.playgroundIsLoadingThread;
11038
10205
  const suggestions = agentId && this._core ? this._core.getSuggestions(agentId).suggestions : [];
11039
10206
  const lastAssistantIndex = visibleMessages.reduce((last, message, index) => message.role === "assistant" ? index : last, -1);
@@ -11153,9 +10320,9 @@ ${argsString}</pre
11153
10320
  </div>
11154
10321
  ` : visibleMessages.length === 0 ? lit.html`
11155
10322
  <div
11156
- class="mx-auto flex h-full w-full max-w-3xl flex-col items-center justify-center text-center"
10323
+ class="cpk-playground-welcome mx-auto flex h-full w-full flex-col items-center justify-center text-center"
11157
10324
  >
11158
- <p class="text-base font-medium tracking-tight text-gray-900">
10325
+ <p class="cpk-playground-welcome-title">
11159
10326
  How can I help you today?
11160
10327
  </p>
11161
10328
  ${this.renderPlaygroundComposer(agentId, busy, hasRetry, true)}
@@ -11163,7 +10330,7 @@ ${argsString}</pre
11163
10330
  ` : lit.html`
11164
10331
  <div class="mx-auto flex max-w-3xl flex-col pb-5">
11165
10332
  ${visibleMessages.map((message, index) => {
11166
- var _message$activityType, _message$id;
10333
+ var _message$activityType, _message$id2;
11167
10334
  const isUser = message.role === "user";
11168
10335
  const isReasoning = message.role === "reasoning";
11169
10336
  const isActivity = message.role === "activity";
@@ -11225,7 +10392,7 @@ ${argsString}</pre
11225
10392
  `;
11226
10393
  }
11227
10394
  const isMultiline = content.includes("\n") || content.length > 72;
11228
- const copyKey = `playground-message-${(_message$id = message.id) !== null && _message$id !== void 0 ? _message$id : index}`;
10395
+ const copyKey = `playground-message-${(_message$id2 = message.id) !== null && _message$id2 !== void 0 ? _message$id2 : index}`;
11229
10396
  const showToolbar = !isUser && !isActivity && Boolean(content) && !(this.playgroundIsRunning && index === lastAssistantIndex);
11230
10397
  return lit.html`
11231
10398
  <article
@@ -11328,8 +10495,8 @@ ${argsString}</pre
11328
10495
  `;
11329
10496
  }
11330
10497
  renderSettingsPanel() {
11331
- var _this$core$telemetryD, _this$core18;
11332
- const optedOut = (_this$core$telemetryD = (_this$core18 = this.core) === null || _this$core18 === void 0 ? void 0 : _this$core18.telemetryDisabled) !== null && _this$core$telemetryD !== void 0 ? _this$core$telemetryD : false;
10498
+ var _this$core$telemetryD, _this$core14;
10499
+ const optedOut = (_this$core$telemetryD = (_this$core14 = this.core) === null || _this$core14 === void 0 ? void 0 : _this$core14.telemetryDisabled) !== null && _this$core$telemetryD !== void 0 ? _this$core$telemetryD : false;
11333
10500
  return lit.html`
11334
10501
  <div
11335
10502
  class="inspector-settings"
@@ -11408,16 +10575,16 @@ ${argsString}</pre
11408
10575
  `;
11409
10576
  }
11410
10577
  trackOpened(source, hadUnseenAnnouncement, firstOpen = false, activeSignal = null) {
11411
- var _this$core19, _this$core$licenseSta2, _this$core20, _this$core$runtimeMod2, _this$core21, _this$core22;
11412
- if ((_this$core19 = this.core) === null || _this$core19 === void 0 ? void 0 : _this$core19.telemetryDisabled) return;
10578
+ var _this$core15, _this$core$licenseSta2, _this$core16, _this$core$runtimeMod2, _this$core17, _this$core18;
10579
+ if ((_this$core15 = this.core) === null || _this$core15 === void 0 ? void 0 : _this$core15.telemetryDisabled) return;
11413
10580
  const errorSignal = activeSignal !== null && isErrorSignalKey(activeSignal) ? activeSignal : null;
11414
10581
  trackInspectorOpened({
11415
10582
  open_source: source,
11416
10583
  ...this.runtimeStatus === "connected" ? {
11417
- license_status: (_this$core$licenseSta2 = (_this$core20 = this.core) === null || _this$core20 === void 0 ? void 0 : _this$core20.licenseStatus) !== null && _this$core$licenseSta2 !== void 0 ? _this$core$licenseSta2 : void 0,
11418
- runtime_mode: (_this$core$runtimeMod2 = (_this$core21 = this.core) === null || _this$core21 === void 0 ? void 0 : _this$core21.runtimeMode) !== null && _this$core$runtimeMod2 !== void 0 ? _this$core$runtimeMod2 : void 0
10584
+ license_status: (_this$core$licenseSta2 = (_this$core16 = this.core) === null || _this$core16 === void 0 ? void 0 : _this$core16.licenseStatus) !== null && _this$core$licenseSta2 !== void 0 ? _this$core$licenseSta2 : void 0,
10585
+ runtime_mode: (_this$core$runtimeMod2 = (_this$core17 = this.core) === null || _this$core17 === void 0 ? void 0 : _this$core17.runtimeMode) !== null && _this$core$runtimeMod2 !== void 0 ? _this$core$runtimeMod2 : void 0
11419
10586
  } : {},
11420
- runtime_url_type: getRuntimeUrlType((_this$core22 = this.core) === null || _this$core22 === void 0 ? void 0 : _this$core22.runtimeUrl),
10587
+ runtime_url_type: getRuntimeUrlType((_this$core18 = this.core) === null || _this$core18 === void 0 ? void 0 : _this$core18.runtimeUrl),
11421
10588
  has_unseen_announcement: hadUnseenAnnouncement,
11422
10589
  has_error_signal: errorSignal !== null,
11423
10590
  ...errorSignal === null ? {} : { error_signal_source: errorSignal },
@@ -11460,8 +10627,8 @@ ${argsString}</pre
11460
10627
  } catch (_unused16) {}
11461
10628
  }
11462
10629
  maybeTrackInspectorMetadataViews() {
11463
- var _this$core23, _telemetryContext$gro, _telemetryContext$lea;
11464
- if (!this.isOpen || this.runtimeStatus !== _copilotkit_core.CopilotKitCoreRuntimeConnectionStatus.Connected || ((_this$core23 = this.core) === null || _this$core23 === void 0 ? void 0 : _this$core23.telemetryDisabled)) return;
10630
+ var _this$core19, _telemetryContext$gro, _telemetryContext$lea;
10631
+ if (!this.isOpen || this.runtimeStatus !== _copilotkit_core.CopilotKitCoreRuntimeConnectionStatus.Connected || ((_this$core19 = this.core) === null || _this$core19 === void 0 ? void 0 : _this$core19.telemetryDisabled)) return;
11465
10632
  const { identity, plan } = this.inspectorMetadataProjection;
11466
10633
  const license_bucket = this.inspectorMetadataProjection.licenseState;
11467
10634
  const telemetryContext = this.getMetadataTelemetryContext();
@@ -11513,8 +10680,8 @@ ${argsString}</pre
11513
10680
  } else this.metadataTelemetryFingerprints.delete("action");
11514
10681
  }
11515
10682
  trackWhatsNewClickedOnce(opts) {
11516
- var _this$core24, _this$announcementCta;
11517
- if (this.runtimeStatus !== _copilotkit_core.CopilotKitCoreRuntimeConnectionStatus.Connected || ((_this$core24 = this.core) === null || _this$core24 === void 0 ? void 0 : _this$core24.telemetryDisabled)) return;
10683
+ var _this$core20, _this$announcementCta;
10684
+ if (this.runtimeStatus !== _copilotkit_core.CopilotKitCoreRuntimeConnectionStatus.Connected || ((_this$core20 = this.core) === null || _this$core20 === void 0 ? void 0 : _this$core20.telemetryDisabled)) return;
11518
10685
  const id = this.announcementTimestamp;
11519
10686
  if (!id) return;
11520
10687
  const key = `${id}:${opts.cta}`;
@@ -11527,8 +10694,8 @@ ${argsString}</pre
11527
10694
  });
11528
10695
  }
11529
10696
  trackThreadsViewStateOnce(state) {
11530
- var _this$core25;
11531
- if ((_this$core25 = this.core) === null || _this$core25 === void 0 ? void 0 : _this$core25.telemetryDisabled) return;
10697
+ var _this$core21;
10698
+ if ((_this$core21 = this.core) === null || _this$core21 === void 0 ? void 0 : _this$core21.telemetryDisabled) return;
11532
10699
  const key = `${state}:${this.getThreadServiceStatus()}`;
11533
10700
  if (this.viewedThreadsTelemetryStates.has(key)) return;
11534
10701
  this.viewedThreadsTelemetryStates.add(key);
@@ -11575,8 +10742,8 @@ ${argsString}</pre
11575
10742
  return provider;
11576
10743
  }
11577
10744
  trackThreadsExampleViewedOnce() {
11578
- var _this$core26;
11579
- if ((_this$core26 = this.core) === null || _this$core26 === void 0 ? void 0 : _this$core26.telemetryDisabled) return;
10745
+ var _this$core22;
10746
+ if ((_this$core22 = this.core) === null || _this$core22 === void 0 ? void 0 : _this$core22.telemetryDisabled) return;
11580
10747
  for (const thread of THREADS_EXAMPLE_THREADS) {
11581
10748
  const exampleKind = getExampleKind(thread.id);
11582
10749
  if (!exampleKind || this.viewedExampleKinds.has(exampleKind)) continue;
@@ -11588,8 +10755,8 @@ ${argsString}</pre
11588
10755
  }
11589
10756
  }
11590
10757
  trackThreadsExampleSelectedOnce(threadId) {
11591
- var _this$core27;
11592
- if ((_this$core27 = this.core) === null || _this$core27 === void 0 ? void 0 : _this$core27.telemetryDisabled) return;
10758
+ var _this$core23;
10759
+ if ((_this$core23 = this.core) === null || _this$core23 === void 0 ? void 0 : _this$core23.telemetryDisabled) return;
11593
10760
  const exampleKind = getExampleKind(threadId);
11594
10761
  if (!exampleKind || this.selectedExampleKinds.has(exampleKind)) return;
11595
10762
  this.selectedExampleKinds.add(exampleKind);
@@ -11655,8 +10822,8 @@ ${argsString}</pre
11655
10822
  };
11656
10823
  }
11657
10824
  trackThreadsExampleTourStepViewedOnce() {
11658
- var _this$core28;
11659
- if (((_this$core28 = this.core) === null || _this$core28 === void 0 ? void 0 : _this$core28.telemetryDisabled) || !this.selectedThreadId) return;
10825
+ var _this$core24;
10826
+ if (((_this$core24 = this.core) === null || _this$core24 === void 0 ? void 0 : _this$core24.telemetryDisabled) || !this.selectedThreadId) return;
11660
10827
  const props = this.getCurrentExampleTourProps();
11661
10828
  if (!props) return;
11662
10829
  const key = `${props.example_kind}:${props.tour_step}`;
@@ -11675,18 +10842,18 @@ ${argsString}</pre
11675
10842
  });
11676
10843
  }
11677
10844
  startExampleTour(autoStarted) {
11678
- var _this$core30;
10845
+ var _this$core26;
11679
10846
  if (!this.selectedThreadId) return;
11680
10847
  this.exampleTourActive = true;
11681
10848
  this.exampleTourStep = 0;
11682
10849
  if (autoStarted) {
11683
- var _this$core29;
10850
+ var _this$core25;
11684
10851
  this.exampleTourAutoShown = true;
11685
- if (!((_this$core29 = this.core) === null || _this$core29 === void 0 ? void 0 : _this$core29.telemetryDisabled)) {
10852
+ if (!((_this$core25 = this.core) === null || _this$core25 === void 0 ? void 0 : _this$core25.telemetryDisabled)) {
11686
10853
  const props = this.getCurrentExampleTourProps();
11687
10854
  if (props) trackThreadsExampleTourStarted(props);
11688
10855
  }
11689
- } else if (!((_this$core30 = this.core) === null || _this$core30 === void 0 ? void 0 : _this$core30.telemetryDisabled)) {
10856
+ } else if (!((_this$core26 = this.core) === null || _this$core26 === void 0 ? void 0 : _this$core26.telemetryDisabled)) {
11690
10857
  const props = this.getCurrentExampleTourProps();
11691
10858
  if (props) trackThreadsExampleTourReopened(props);
11692
10859
  }
@@ -11702,12 +10869,12 @@ ${argsString}</pre
11702
10869
  this.requestUpdate();
11703
10870
  }
11704
10871
  dismissExampleTour(method) {
11705
- var _this$core31;
10872
+ var _this$core27;
11706
10873
  if (!this.selectedThreadId) return;
11707
10874
  this.exampleTourActive = false;
11708
10875
  this.exampleTourDismissed = true;
11709
10876
  this.writeThreadsExampleTourDismissed();
11710
- if (!((_this$core31 = this.core) === null || _this$core31 === void 0 ? void 0 : _this$core31.telemetryDisabled)) {
10877
+ if (!((_this$core27 = this.core) === null || _this$core27 === void 0 ? void 0 : _this$core27.telemetryDisabled)) {
11711
10878
  const currentProps = this.getCurrentExampleTourProps();
11712
10879
  if (currentProps) {
11713
10880
  const props = {
@@ -12208,8 +11375,8 @@ ${argsString}</pre
12208
11375
  `;
12209
11376
  }
12210
11377
  renderMemoriesView() {
12211
- var _this$core32;
12212
- if (!((_this$core32 = this.core) === null || _this$core32 === void 0 ? void 0 : _this$core32.intelligence) || !this._memoriesAvailable) return lit.html`
11378
+ var _this$core28;
11379
+ if (!((_this$core28 = this.core) === null || _this$core28 === void 0 ? void 0 : _this$core28.intelligence) || !this._memoriesAvailable) return lit.html`
12213
11380
  <div class="cpk-memory-locked">
12214
11381
  ${this.renderThreadsLockedBackgroundMockup()}
12215
11382
  <div aria-hidden="true" class="cpk-memory-locked-scrim"></div>
@@ -12456,7 +11623,7 @@ ${argsString}</pre
12456
11623
  `;
12457
11624
  }
12458
11625
  renderThreadsView() {
12459
- var _visibleThreads$find, _this$_core$runtimeUr2, _this$_core21, _this$_core$headers, _this$_core22, _this$_core23, _this$liveMessageVers2, _this$agentEvents$get6;
11626
+ var _visibleThreads$find, _this$_core$runtimeUr2, _this$_core19, _this$_core$headers, _this$_core20, _this$_core21, _this$liveMessageVers2, _this$agentEvents$get6;
12460
11627
  const locked = !this.areThreadEndpointsAvailable();
12461
11628
  const { displayThreads, threadsErrorMessage, threadsLoading } = this.getActiveThreadsState();
12462
11629
  const loadingWithoutRows = !locked && threadsLoading && !threadsErrorMessage && displayThreads.length === 0;
@@ -12547,9 +11714,9 @@ ${argsString}</pre
12547
11714
  .threadId=${selectedThread.id}
12548
11715
  .thread=${selectedThread}
12549
11716
  .provider=${selectedThreadIsLocalExample ? this.getExampleThreadProvider(selectedThread.id) : null}
12550
- .runtimeUrl=${selectedThreadIsLocalExample ? "" : (_this$_core$runtimeUr2 = (_this$_core21 = this._core) === null || _this$_core21 === void 0 ? void 0 : _this$_core21.runtimeUrl) !== null && _this$_core$runtimeUr2 !== void 0 ? _this$_core$runtimeUr2 : ""}
12551
- .headers=${(_this$_core$headers = (_this$_core22 = this._core) === null || _this$_core22 === void 0 ? void 0 : _this$_core22.headers) !== null && _this$_core$headers !== void 0 ? _this$_core$headers : {}}
12552
- .threadInspectionAvailable=${selectedThreadIsLocalExample || this.areThreadEndpointsAvailable() && ((_this$_core23 = this._core) === null || _this$_core23 === void 0 || (_this$_core23 = _this$_core23.threadEndpoints) === null || _this$_core23 === void 0 ? void 0 : _this$_core23.inspect) !== false}
11717
+ .runtimeUrl=${selectedThreadIsLocalExample ? "" : (_this$_core$runtimeUr2 = (_this$_core19 = this._core) === null || _this$_core19 === void 0 ? void 0 : _this$_core19.runtimeUrl) !== null && _this$_core$runtimeUr2 !== void 0 ? _this$_core$runtimeUr2 : ""}
11718
+ .headers=${(_this$_core$headers = (_this$_core20 = this._core) === null || _this$_core20 === void 0 ? void 0 : _this$_core20.headers) !== null && _this$_core$headers !== void 0 ? _this$_core$headers : {}}
11719
+ .threadInspectionAvailable=${selectedThreadIsLocalExample || this.areThreadEndpointsAvailable() && ((_this$_core21 = this._core) === null || _this$_core21 === void 0 || (_this$_core21 = _this$_core21.threadEndpoints) === null || _this$_core21 === void 0 ? void 0 : _this$_core21.inspect) !== false}
12553
11720
  .liveMessageVersion=${(_this$liveMessageVers2 = this.liveMessageVersion.get(selectedThread.id)) !== null && _this$liveMessageVers2 !== void 0 ? _this$liveMessageVers2 : 0}
12554
11721
  .viewInAppMode=${this.getViewInAppMode(selectedThread, selectedThreadIsLocalExample)}
12555
11722
  .viewInAppError=${this.viewInAppError}
@@ -12559,6 +11726,7 @@ ${argsString}</pre
12559
11726
  .focusRequestId=${this.threadFocusRequestId}
12560
11727
  .agentStateInput=${this.getLatestStateForAgent(selectedThread.agentId)}
12561
11728
  .agentEventsInput=${(_this$agentEvents$get6 = this.agentEvents.get(selectedThread.agentId)) !== null && _this$agentEvents$get6 !== void 0 ? _this$agentEvents$get6 : []}
11729
+ .agentMessagesInput=${selectedThreadIsLocalExample ? EMPTY_INSPECTOR_MESSAGES : this.getLiveAgentMessagesForThread(selectedThread)}
12562
11730
  ></cpk-thread-details>
12563
11731
  ${selectedThreadIsLocalExample ? this.renderThreadsExampleTour() : lit.nothing}` : showingExamples ? this.renderThreadsExampleOverview(locked) : lit.html`
12564
11732
  <div
@@ -12800,11 +11968,7 @@ ${argsString}</pre
12800
11968
  >
12801
11969
  ${isExpanded ? lit.html`
12802
11970
  <div class="group relative">
12803
- <pre
12804
- class="m-0 whitespace-pre-wrap break-words text-[10px] font-mono text-gray-600"
12805
- >
12806
- ${prettyEvent}</pre
12807
- >
11971
+ ${renderHighlightedJsonBlock(extractedEvent)}
12808
11972
  <button
12809
11973
  class="absolute right-0 top-0 cursor-pointer rounded px-2 py-1 text-[10px] opacity-0 transition group-hover:opacity-100 ${this.copiedEvents.has(event.id) ? "bg-green-100 text-green-700" : "bg-gray-100 text-gray-600 hover:bg-gray-200 hover:text-gray-900"}"
12810
11974
  @click=${(e) => {
@@ -13031,7 +12195,7 @@ ${prettyEvent}</pre
13031
12195
  <div class="overflow-auto">
13032
12196
  ${messages && messages.length > 0 ? lit.html`
13033
12197
  <div class="w-full text-xs">
13034
- <div class="flex bg-gray-50">
12198
+ <div class="cpk-agent-messages-head flex bg-gray-50">
13035
12199
  <div
13036
12200
  class="w-40 shrink-0 px-4 py-2 font-medium text-gray-700"
13037
12201
  >
@@ -13041,7 +12205,7 @@ ${prettyEvent}</pre
13041
12205
  Content
13042
12206
  </div>
13043
12207
  </div>
13044
- <div class="divide-y divide-gray-200">
12208
+ <div class="cpk-agent-messages-rows">
13045
12209
  ${messages.map((msg) => {
13046
12210
  var _msg$contentText, _msg$toolCalls2;
13047
12211
  const role = msg.role || "unknown";
@@ -13060,7 +12224,7 @@ ${prettyEvent}</pre
13060
12224
  const isFailedResult = role === "tool" && (toolError === null || toolError === void 0 ? void 0 : toolError.toolCallId) !== void 0 && toolError.toolCallId === msg.toolCallId;
13061
12225
  return lit.html`
13062
12226
  <div
13063
- class=${isFailedResult ? "flex items-start bg-rose-50" : "flex items-start"}
12227
+ class=${isFailedResult ? "cpk-agent-message-row flex items-start bg-rose-50" : "cpk-agent-message-row flex items-start"}
13064
12228
  data-cpk-failed-tool-result=${isFailedResult ? msg.toolCallId : lit.nothing}
13065
12229
  >
13066
12230
  <div class="w-40 shrink-0 px-4 py-2">
@@ -13143,10 +12307,12 @@ ${prettyEvent}</pre
13143
12307
  >${this.renderIcon("ChevronDown")}</span
13144
12308
  >
13145
12309
  </button>
13146
- ${this.contextMenuOpen ? lit.html`
12310
+ ${iconRail || this.contextMenuOpen ? lit.html`
13147
12311
  <div
13148
- class="absolute left-0 z-50 mt-1.5 w-40 rounded-md border border-gray-200 bg-white py-1 shadow-md ring-1 ring-black/5"
12312
+ class="absolute left-0 z-50 mt-1.5 w-40 rounded-md border border-gray-200 bg-white py-1 shadow-md ring-1 ring-black/5${iconRail ? " inspector-icon-rail-menu" : ""}"
13149
12313
  data-context-dropdown-root="true"
12314
+ data-open=${this.contextMenuOpen ? "true" : "false"}
12315
+ aria-hidden=${this.contextMenuOpen ? "false" : "true"}
13150
12316
  >
13151
12317
  ${filteredOptions.map((option) => lit.html`
13152
12318
  <button
@@ -13262,18 +12428,17 @@ ${prettyEvent}</pre
13262
12428
  if (this.contextOptions.filter((opt) => opt.key !== "all-agents").length > 1) this.selectedContext = "all-agents";
13263
12429
  }
13264
12430
  if (key === "threads") {
13265
- var _this$core33;
13266
- if (previousMenu !== "threads" && !((_this$core33 = this.core) === null || _this$core33 === void 0 ? void 0 : _this$core33.telemetryDisabled)) trackThreadsTabClicked(this.getThreadsTelemetryProps());
12431
+ var _this$core29;
12432
+ if (previousMenu !== "threads" && !((_this$core29 = this.core) === null || _this$core29 === void 0 ? void 0 : _this$core29.telemetryDisabled)) trackThreadsTabClicked(this.getThreadsTelemetryProps());
13267
12433
  this.autoSelectLatestThread();
13268
12434
  }
13269
12435
  if (key === "playground" && !this.playgroundAgent) this.startPlaygroundSession(false);
13270
12436
  if (key === "memories") {
13271
- var _this$core34;
12437
+ var _this$core30;
13272
12438
  this.ensureMemorySubscription();
13273
- if (previousMenu !== "memories" && !((_this$core34 = this.core) === null || _this$core34 === void 0 ? void 0 : _this$core34.telemetryDisabled)) trackMemoriesTabClicked(this.getMemoriesTelemetryProps());
12439
+ if (previousMenu !== "memories" && !((_this$core30 = this.core) === null || _this$core30 === void 0 ? void 0 : _this$core30.telemetryDisabled)) trackMemoriesTabClicked(this.getMemoriesTelemetryProps());
13274
12440
  }
13275
12441
  if (key === "home" && previousMenu !== "home") this.homeViewedThisOpen = false;
13276
- if (key === "event-snippets") this.reloadEventSnippets();
13277
12442
  if (key === "ag-ui-events" || key === "agents") {
13278
12443
  if (!(this.pendingScrollToEventId !== null || this.pendingScrollToToolCallId !== null)) requestAnimationFrame(() => {
13279
12444
  const scroller = this.activeRoot.querySelector("#cpk-main-scroll");
@@ -13292,8 +12457,14 @@ ${prettyEvent}</pre
13292
12457
  this.contextMenuOpen = !this.contextMenuOpen;
13293
12458
  this.requestUpdate();
13294
12459
  }
12460
+ clearIconRailContextCloseTimer() {
12461
+ if (this.iconRailContextCloseTimer === null) return;
12462
+ clearTimeout(this.iconRailContextCloseTimer);
12463
+ this.iconRailContextCloseTimer = null;
12464
+ }
13295
12465
  handleContextOptionSelect(key) {
13296
12466
  if (!this.contextOptions.some((option) => option.key === key)) return;
12467
+ this.clearIconRailContextCloseTimer();
13297
12468
  if (this.selectedContext !== key) {
13298
12469
  this.selectedContext = key;
13299
12470
  this.expandedRows.clear();
@@ -13465,10 +12636,10 @@ ${prettyEvent}</pre
13465
12636
  `;
13466
12637
  }
13467
12638
  extractToolsFromAgents() {
13468
- var _this$_core$tools2;
12639
+ var _this$_core$tools;
13469
12640
  if (!this._core) return [];
13470
12641
  const tools = [];
13471
- for (const coreTool of (_this$_core$tools2 = this._core.tools) !== null && _this$_core$tools2 !== void 0 ? _this$_core$tools2 : []) {
12642
+ for (const coreTool of (_this$_core$tools = this._core.tools) !== null && _this$_core$tools !== void 0 ? _this$_core$tools : []) {
13472
12643
  var _coreTool$agentId;
13473
12644
  tools.push({
13474
12645
  agentId: (_coreTool$agentId = coreTool.agentId) !== null && _coreTool$agentId !== void 0 ? _coreTool$agentId : "",
@@ -13797,23 +12968,25 @@ ${prettyEvent}</pre
13797
12968
  </button>
13798
12969
 
13799
12970
  ${isExpanded ? lit.html`
13800
- <div class="border-t border-gray-200 bg-gray-50/50 px-4 py-3">
12971
+ <div class="border-t border-gray-200 px-4 py-3">
13801
12972
  <div class="mb-3">
13802
- <h5 class="mb-1 text-xs font-semibold text-gray-700">ID</h5>
13803
- <code
13804
- class="font-mono text-xs font-medium text-gray-800 flex-1 truncate min-w-0"
13805
- >${id}</code
13806
- >
13807
- <button
13808
- type="button"
13809
- class="cpk-copy-btn"
13810
- @click=${(e) => {
12973
+ <div class="mb-1 flex items-center justify-between gap-2">
12974
+ <h5 class="text-xs font-semibold text-gray-700">ID</h5>
12975
+ <button
12976
+ type="button"
12977
+ class="cpk-copy-btn"
12978
+ @click=${(e) => {
13811
12979
  e.stopPropagation();
13812
12980
  this.copyContextValue(id, `${id}:id`, e);
13813
12981
  }}
12982
+ >
12983
+ ${this.copiedContextItems.has(`${id}:id`) ? "Copied" : "Copy"}
12984
+ </button>
12985
+ </div>
12986
+ <code
12987
+ class="block min-w-0 truncate font-mono text-xs font-medium text-gray-800"
12988
+ >${id}</code
13814
12989
  >
13815
- ${this.copiedContextItems.has(`${id}:id`) ? "✓" : "Copy"}
13816
- </button>
13817
12990
  </div>
13818
12991
  ${hasValue ? lit.html`
13819
12992
  <div class="mb-2 flex items-center justify-between gap-2">
@@ -14349,13 +13522,13 @@ ${prettyEvent}</pre
14349
13522
  * opt-out inside `track`, and the runtime's flag once it is known.
14350
13523
  */
14351
13524
  maybeTrackErrorSignalViewed() {
14352
- var _this$core35, _this$pillOutcome;
13525
+ var _this$core31, _this$pillOutcome;
14353
13526
  if (this.isOpen || typeof document === "undefined" || document.visibilityState !== "visible") return;
14354
13527
  const active = this.getActiveLauncherSignal();
14355
13528
  if (active === null || !isErrorSignalKey(active)) return;
14356
13529
  if (this.errorSignalViewedSources.has(active)) return;
14357
13530
  if (this.pillOutcome === null && LAUNCHER_SIGNALS[active].pillLabel !== void 0) return;
14358
- if ((_this$core35 = this.core) === null || _this$core35 === void 0 ? void 0 : _this$core35.telemetryDisabled) return;
13531
+ if ((_this$core31 = this.core) === null || _this$core31 === void 0 ? void 0 : _this$core31.telemetryDisabled) return;
14359
13532
  this.errorSignalViewedSources.add(active);
14360
13533
  trackErrorSignalViewed({
14361
13534
  source: active,
@@ -14434,9 +13607,9 @@ ${prettyEvent}</pre
14434
13607
  this.flushPendingWhatsNewTelemetry();
14435
13608
  }
14436
13609
  flushPendingWhatsNewTelemetry() {
14437
- var _this$core36;
13610
+ var _this$core32;
14438
13611
  if (this.pendingBannerViewed.length === 0 && !this.pendingNewsSignalViewed) return;
14439
- if ((_this$core36 = this.core) === null || _this$core36 === void 0 ? void 0 : _this$core36.telemetryDisabled) {
13612
+ if ((_this$core32 = this.core) === null || _this$core32 === void 0 ? void 0 : _this$core32.telemetryDisabled) {
14440
13613
  this.pendingBannerViewed = [];
14441
13614
  this.pendingNewsSignalViewed = null;
14442
13615
  return;
@@ -14518,11 +13691,11 @@ ${prettyEvent}</pre
14518
13691
  }
14519
13692
  appendRefParam(href, ref = "cpk-inspector") {
14520
13693
  try {
14521
- var _this$core37;
13694
+ var _this$core33;
14522
13695
  const isRootRelative = href.startsWith("/") && !href.startsWith("//");
14523
13696
  const url = new URL(href, typeof window !== "undefined" ? window.location.href : "https://copilotkit.ai");
14524
13697
  if (!url.searchParams.has("ref")) url.searchParams.append("ref", ref);
14525
- if (!url.searchParams.has("posthog_distinct_id") && this.runtimeStatus === _copilotkit_core.CopilotKitCoreRuntimeConnectionStatus.Connected && !((_this$core37 = this.core) === null || _this$core37 === void 0 ? void 0 : _this$core37.telemetryDisabled) && this.isCopilotKitDestination(url)) {
13698
+ if (!url.searchParams.has("posthog_distinct_id") && this.runtimeStatus === _copilotkit_core.CopilotKitCoreRuntimeConnectionStatus.Connected && !((_this$core33 = this.core) === null || _this$core33 === void 0 ? void 0 : _this$core33.telemetryDisabled) && this.isCopilotKitDestination(url)) {
14526
13699
  const distinctId = getTelemetryDistinctIdForUrl();
14527
13700
  if (distinctId) url.searchParams.append("posthog_distinct_id", distinctId);
14528
13701
  }
@@ -14550,6 +13723,13 @@ ${prettyEvent}</pre
14550
13723
  };
14551
13724
  WebInspectorElement.styles = [(0, lit.unsafeCSS)(generated_default), lit.css`
14552
13725
  :host {
13726
+ --cpk-inspector-shell-radius: 5px;
13727
+ --cpk-inspector-surface-dark: #111319;
13728
+ --cpk-json-key: #3d408f;
13729
+ --cpk-json-str: #0b6b4c;
13730
+ --cpk-json-num: #8a5900;
13731
+ --cpk-json-bool: #c0333a;
13732
+ --cpk-json-nil: #57575b;
14553
13733
  position: fixed;
14554
13734
  top: 0;
14555
13735
  left: 0;
@@ -14559,6 +13739,191 @@ ${prettyEvent}</pre
14559
13739
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
14560
13740
  }
14561
13741
 
13742
+ :host([data-color-scheme="dark"]),
13743
+ .inspector-window[data-color-scheme="dark"] {
13744
+ --cpk-json-key: #bec2ff;
13745
+ --cpk-json-str: #85ecce;
13746
+ --cpk-json-num: #ffac4d;
13747
+ --cpk-json-bool: #fa5f67;
13748
+ --cpk-json-nil: #afafb7;
13749
+ }
13750
+
13751
+ .cpk-json-token--key {
13752
+ color: var(--cpk-json-key);
13753
+ }
13754
+
13755
+ .cpk-json-token--str {
13756
+ color: var(--cpk-json-str);
13757
+ }
13758
+
13759
+ .cpk-json-token--num {
13760
+ color: var(--cpk-json-num);
13761
+ }
13762
+
13763
+ .cpk-json-token--bool {
13764
+ color: var(--cpk-json-bool);
13765
+ }
13766
+
13767
+ .cpk-json-token--nil {
13768
+ color: var(--cpk-json-nil);
13769
+ }
13770
+
13771
+ .cpk-json-block {
13772
+ margin: 0;
13773
+ padding: 10px 12px;
13774
+ border: 1px solid #dbdbe5;
13775
+ border-radius: 8px;
13776
+ background: #f7f7f9;
13777
+ font-family: "Spline Sans Mono", monospace;
13778
+ font-size: 12px;
13779
+ line-height: 1.65;
13780
+ white-space: pre-wrap;
13781
+ overflow-wrap: anywhere;
13782
+ word-break: normal;
13783
+ color: #010507;
13784
+ overflow: auto;
13785
+ }
13786
+
13787
+ :host([data-color-scheme="dark"]) .cpk-json-block,
13788
+ .inspector-window[data-color-scheme="dark"] .cpk-json-block {
13789
+ background: #111319;
13790
+ border-color: #343742;
13791
+ color: #f3f4f8;
13792
+ }
13793
+
13794
+ @keyframes cpk-playground-message-enter {
13795
+ from {
13796
+ opacity: 0;
13797
+ filter: blur(2px);
13798
+ transform: translateY(4px);
13799
+ }
13800
+ to {
13801
+ opacity: 1;
13802
+ filter: blur(0);
13803
+ transform: translateY(0);
13804
+ }
13805
+ }
13806
+
13807
+ @keyframes cpk-playground-thinking {
13808
+ 0%,
13809
+ 60%,
13810
+ 100% {
13811
+ opacity: 0.28;
13812
+ transform: translateY(0);
13813
+ }
13814
+ 30% {
13815
+ opacity: 1;
13816
+ transform: translateY(-2px);
13817
+ }
13818
+ }
13819
+
13820
+ .cpk-playground-root {
13821
+ container-type: inline-size;
13822
+ background: #fbfbfd !important;
13823
+ }
13824
+
13825
+ .cpk-playground-header {
13826
+ min-height: 58px;
13827
+ background: #f7f6fd !important;
13828
+ }
13829
+
13830
+ .cpk-playground-welcome {
13831
+ max-width: 560px;
13832
+ padding: 24px;
13833
+ }
13834
+
13835
+ .cpk-playground-welcome-title {
13836
+ color: #24242b;
13837
+ font-size: 15px;
13838
+ font-weight: 600;
13839
+ letter-spacing: -0.015em;
13840
+ }
13841
+
13842
+ .cpk-playground-composer {
13843
+ border: 1px solid #dcdce8;
13844
+ box-shadow: 0 8px 22px rgba(31, 23, 57, 0.08),
13845
+ 0 1px 2px rgba(31, 23, 57, 0.1);
13846
+ }
13847
+
13848
+ .cpk-playground-composer:focus-within {
13849
+ border-color: #aaa4d4;
13850
+ box-shadow: 0 10px 26px rgba(86, 53, 155, 0.13),
13851
+ 0 0 0 3px rgba(190, 194, 255, 0.3);
13852
+ }
13853
+
13854
+ .inspector-window[data-color-scheme="dark"] .cpk-playground-root,
13855
+ .inspector-window[data-color-scheme="dark"] .cpk-playground-header {
13856
+ background: #15171e !important;
13857
+ }
13858
+
13859
+ .inspector-window[data-color-scheme="dark"]
13860
+ .cpk-playground-welcome-title {
13861
+ color: #f3f4f8 !important;
13862
+ }
13863
+
13864
+ .inspector-window[data-color-scheme="dark"] .cpk-playground-composer {
13865
+ border-color: #464957;
13866
+ background: #15171e !important;
13867
+ box-shadow: 0 8px 22px rgba(0, 0, 0, 0.26),
13868
+ 0 1px 2px rgba(0, 0, 0, 0.36);
13869
+ }
13870
+
13871
+ .inspector-window[data-color-scheme="dark"]
13872
+ .cpk-playground-composer:focus-within {
13873
+ border-color: #777aae;
13874
+ box-shadow: 0 10px 26px rgba(0, 0, 0, 0.34),
13875
+ 0 0 0 3px rgba(102, 106, 158, 0.3);
13876
+ }
13877
+
13878
+ .cpk-playground-message-enter {
13879
+ animation: cpk-playground-message-enter 0.24s cubic-bezier(0.16, 1, 0.3, 1)
13880
+ both;
13881
+ }
13882
+
13883
+ .cpk-playground-thinking-dot {
13884
+ animation: cpk-playground-thinking 1.2s ease-in-out infinite;
13885
+ }
13886
+
13887
+ .cpk-playground-thinking-dot:nth-child(2) {
13888
+ animation-delay: 0.12s;
13889
+ }
13890
+
13891
+ .cpk-playground-thinking-dot:nth-child(3) {
13892
+ animation-delay: 0.24s;
13893
+ }
13894
+
13895
+ .cpk-playground-reasoning summary::-webkit-details-marker {
13896
+ display: none;
13897
+ }
13898
+
13899
+ .cpk-playground-reasoning[open]
13900
+ .cpk-playground-reasoning-chevron {
13901
+ transform: rotate(90deg);
13902
+ }
13903
+
13904
+ @container (max-width: 560px) {
13905
+ .cpk-playground-header {
13906
+ align-items: stretch;
13907
+ }
13908
+
13909
+ .cpk-playground-actions {
13910
+ width: 100%;
13911
+ }
13912
+
13913
+ .cpk-playground-thread-select {
13914
+ min-width: 0;
13915
+ max-width: none;
13916
+ flex: 1;
13917
+ }
13918
+ }
13919
+
13920
+ @media (prefers-reduced-motion: reduce) {
13921
+ .cpk-playground-message-enter,
13922
+ .cpk-playground-thinking-dot {
13923
+ animation: none;
13924
+ }
13925
+ }
13926
+
14562
13927
  .rounded-sm {
14563
13928
  border-radius: 3px;
14564
13929
  }
@@ -14594,8 +13959,8 @@ ${prettyEvent}</pre
14594
13959
  the two cannot drift apart. A dark grey rather than near-black: the
14595
13960
  launcher sits on a customer's page, and 1,5,7 against white is a
14596
13961
  harder edge than this surface needs. */
14597
- --cpk-launcher-face: rgba(28, 31, 36, 0.95);
14598
- --cpk-launcher-face-solid: rgb(28, 31, 36);
13962
+ --cpk-launcher-face: rgba(24, 28, 31, 0.95);
13963
+ --cpk-launcher-face-solid: rgb(24, 28, 31);
14599
13964
  --cpk-launcher-edge: rgba(190, 194, 255, 0.25);
14600
13965
  /* The launcher's own size, exposed so the signal dot can be placed
14601
13966
  against the OUTER rim with a length rather than a percentage.
@@ -14618,6 +13983,10 @@ ${prettyEvent}</pre
14618
13983
  box-sizing: border-box;
14619
13984
  transition:
14620
13985
  transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1),
13986
+ scale 300ms cubic-bezier(0.34, 1.56, 0.64, 1),
13987
+ background-color 200ms ease,
13988
+ border-color 200ms ease,
13989
+ box-shadow 200ms ease,
14621
13990
  opacity 160ms ease;
14622
13991
  }
14623
13992
 
@@ -14645,6 +14014,7 @@ ${prettyEvent}</pre
14645
14014
  touch-action: none;
14646
14015
  user-select: none;
14647
14016
  z-index: 60;
14017
+ background: transparent;
14648
14018
  }
14649
14019
 
14650
14020
  .edge-resize-handle {
@@ -14779,18 +14149,77 @@ ${prettyEvent}</pre
14779
14149
  flex-shrink: 0;
14780
14150
  transition:
14781
14151
  background-color 0.15s,
14782
- border-color 0.15s;
14152
+ border-color 0.15s,
14153
+ color 0.15s;
14783
14154
  }
14784
14155
  .cpk-copy-btn:hover {
14785
14156
  background-color: #f0f0f4;
14786
14157
  border-color: #afafb7;
14787
14158
  }
14788
14159
 
14160
+ .inspector-window[data-color-scheme="dark"] .cpk-copy-btn {
14161
+ background: #191c24;
14162
+ border-color: #3a3d49;
14163
+ color: #f3f4f8;
14164
+ }
14165
+
14166
+ .inspector-window[data-color-scheme="dark"] .cpk-copy-btn:hover {
14167
+ background: #20232d;
14168
+ border-color: #57575b;
14169
+ }
14170
+
14171
+ .inspector-sidebar[data-icon-rail="true"]
14172
+ .inspector-sidebar-agent-scope
14173
+ [data-context-dropdown-root="true"]
14174
+ > div {
14175
+ left: 100%;
14176
+ margin-inline-start: 8px;
14177
+ }
14178
+
14179
+ .inspector-icon-rail-menu {
14180
+ transform-origin: left center;
14181
+ opacity: 0;
14182
+ visibility: hidden;
14183
+ pointer-events: none;
14184
+ transform: translateX(-8px) scale(0.96);
14185
+ transition:
14186
+ opacity 180ms ease,
14187
+ transform 180ms ease,
14188
+ visibility 180ms ease;
14189
+ }
14190
+
14191
+ .inspector-icon-rail-menu[data-open="true"] {
14192
+ opacity: 1;
14193
+ visibility: visible;
14194
+ pointer-events: auto;
14195
+ transform: translateX(0) scale(1);
14196
+ }
14197
+
14198
+ @media (prefers-reduced-motion: reduce) {
14199
+ .inspector-icon-rail-menu {
14200
+ transition: none;
14201
+ }
14202
+ }
14203
+
14204
+ .inspector-sidebar[data-icon-rail="true"]
14205
+ .inspector-sidebar-agent-scope
14206
+ [data-context-dropdown-root="true"]
14207
+ > div::before {
14208
+ content: "";
14209
+ position: absolute;
14210
+ inset-block: 0;
14211
+ inset-inline-end: 100%;
14212
+ width: 12px;
14213
+ }
14214
+
14789
14215
  .cpk-section-header {
14790
14216
  background: #e8edf5;
14791
14217
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
14792
14218
  padding: 10px 16px;
14793
14219
  }
14220
+ .inspector-window[data-color-scheme="dark"] .cpk-section-header {
14221
+ border-bottom-color: #3a3d49;
14222
+ }
14794
14223
  .cpk-section-header h4 {
14795
14224
  font-size: 11px;
14796
14225
  font-weight: 600;
@@ -15015,13 +14444,29 @@ ${prettyEvent}</pre
15015
14444
  .console-button {
15016
14445
  background-color: var(--cpk-launcher-face) !important;
15017
14446
  border-color: var(--cpk-launcher-edge) !important;
14447
+ /* One hairline, not two. The border above is it; a second ring used to
14448
+ sit 1px outside as a box-shadow and hardcoded the lilac instead of
14449
+ reading the --cpk-launcher-edge token, so it could not follow it.
14450
+ What replaces it is a one-pixel light edge along the top, which is
14451
+ what keeps the face from reading flat without drawing a frame.
14452
+
14453
+ The border is not decoration: the face is #181C1F, which against a
14454
+ dark host page (GitHub dark 1.10:1, Tailwind slate-900 1.04:1) is
14455
+ indistinguishable from the page. It is the only thing that gives the
14456
+ launcher an outline there, so it stays. */
15018
14457
  box-shadow:
15019
- 0 0 0 1px rgba(190, 194, 255, 0.15),
14458
+ inset 0 1px 0 rgba(255, 255, 255, 0.07),
15020
14459
  0 4px 14px rgba(1, 5, 7, 0.28) !important;
14460
+ /* Promotes the launcher to its own compositing layer, which the
14461
+ backdrop-filter this replaces used to do as a side effect. Without
14462
+ a layer the hover scale re-rasterises the mark every frame and it
14463
+ visibly jitters; with one, the compositor scales it as a texture. */
14464
+ will-change: transform;
15021
14465
  }
15022
14466
  .console-button:hover {
15023
14467
  background-color: var(--cpk-launcher-face-solid) !important;
15024
14468
  border-color: rgba(190, 194, 255, 0.45) !important;
14469
+ transform: scale(1.05);
15025
14470
  }
15026
14471
  .console-button:focus-visible {
15027
14472
  outline-color: #bec2ff !important;
@@ -15143,8 +14588,23 @@ ${prettyEvent}</pre
15143
14588
  width: 19%;
15144
14589
  height: 19%;
15145
14590
  border-radius: 50%;
15146
- background: var(--cpk-launcher-signal);
15147
- box-shadow: 0 0 0 1.5px var(--cpk-launcher-face);
14591
+ /* Lit from the upper left and shaded at the lower right, so the dot
14592
+ reads as a lens rather than a flat disc. Both stops are derived from
14593
+ the signal colour, so a new tone needs no new values. */
14594
+ background: radial-gradient(
14595
+ circle at 32% 28%,
14596
+ color-mix(in srgb, var(--cpk-launcher-signal), white 40%) 0%,
14597
+ var(--cpk-launcher-signal) 60%,
14598
+ color-mix(in srgb, var(--cpk-launcher-signal), black 20%) 100%
14599
+ );
14600
+ /* Replaces an opaque 1.5px collar in the launcher's own face. That
14601
+ collar was 21% of the dot's footprint, and because the dot's centre
14602
+ sits *on* the rim, its outer half painted a hard dark crescent onto
14603
+ the host page rather than onto the launcher. A hairline plus a soft
14604
+ drop does the same separating job without the hard edge. */
14605
+ box-shadow:
14606
+ 0 0 0 0.5px rgba(1, 5, 7, 0.4),
14607
+ 0 1px 2.5px rgba(1, 5, 7, 0.5);
15148
14608
  }
15149
14609
 
15150
14610
  /* ── Launcher pill: the launcher opens sideways and says what ─── */
@@ -15355,6 +14815,12 @@ ${prettyEvent}</pre
15355
14815
  .cpk-launcher-signal-wash {
15356
14816
  animation: none !important;
15357
14817
  }
14818
+ .console-button {
14819
+ transition: opacity 160ms ease;
14820
+ }
14821
+ .console-button:hover {
14822
+ transform: none;
14823
+ }
15358
14824
  }
15359
14825
 
15360
14826
  /* ── Launcher HUD: hover menu, quieter than the error island ── */
@@ -15366,6 +14832,9 @@ ${prettyEvent}</pre
15366
14832
  }
15367
14833
 
15368
14834
  .cpk-launcher-hud {
14835
+ --hud-fill: var(--cpk-inspector-surface-dark);
14836
+ --hud-line: rgb(190 194 255 / 0.5);
14837
+ --hud-blur: blur(12px) saturate(1.2);
15369
14838
  position: absolute;
15370
14839
  top: 0;
15371
14840
  z-index: 4;
@@ -15399,38 +14868,47 @@ ${prettyEvent}</pre
15399
14868
  }
15400
14869
 
15401
14870
  .cpk-launcher-hud__card {
15402
- --hud-fill: rgb(28 31 36 / 0.88);
15403
- --hud-line: rgb(190 194 255 / 0.5);
15404
14871
  position: relative;
15405
14872
  width: 228px;
15406
14873
  padding: 4px;
15407
14874
  border: 1px dotted var(--hud-line);
15408
- border-radius: 10px;
14875
+ border-radius: var(--cpk-inspector-shell-radius);
15409
14876
  background: var(--hud-fill);
15410
14877
  color: #fff;
15411
- backdrop-filter: blur(12px) saturate(1.2);
14878
+ backdrop-filter: var(--hud-blur);
14879
+ -webkit-backdrop-filter: var(--hud-blur);
15412
14880
  box-shadow: 0 8px 20px rgb(1 5 7 / 0.18);
15413
14881
  }
15414
14882
 
14883
+ .cpk-launcher-hud[data-color-scheme="light"] {
14884
+ --hud-fill: #fff;
14885
+ --hud-line: #d8d8e8;
14886
+ }
14887
+
14888
+ .cpk-launcher-hud[data-color-scheme="light"] .cpk-launcher-hud__card {
14889
+ color: #010507;
14890
+ }
14891
+
15415
14892
  .cpk-launcher-hud__arrow {
15416
14893
  position: absolute;
15417
14894
  top: calc(var(--cpk-launcher-size) / 2);
14895
+ z-index: 1;
15418
14896
  width: 10px;
15419
14897
  height: 10px;
15420
- background: var(--hud-fill);
14898
+ border: 0;
14899
+ /* The card frosts the page behind it, so it reads lighter than the
14900
+ raw fill. Mix a little white so the arrow matches the glass card
14901
+ without going lighter than the HUD. */
14902
+ background: color-mix(in srgb, var(--hud-fill) 88%, white 12%);
15421
14903
  transform: translateY(-50%) rotate(45deg);
15422
14904
  }
15423
14905
 
15424
14906
  .cpk-launcher-hud[data-cpk-hud-side="left"] .cpk-launcher-hud__arrow {
15425
- right: -5px;
15426
- border-top: 1px solid var(--hud-line);
15427
- border-right: 1px solid var(--hud-line);
14907
+ right: 9px;
15428
14908
  }
15429
14909
 
15430
14910
  .cpk-launcher-hud[data-cpk-hud-side="right"] .cpk-launcher-hud__arrow {
15431
- left: -5px;
15432
- border-bottom: 1px solid var(--hud-line);
15433
- border-left: 1px solid var(--hud-line);
14911
+ left: 9px;
15434
14912
  }
15435
14913
 
15436
14914
  .cpk-launcher-hud__list {
@@ -15464,6 +14942,12 @@ ${prettyEvent}</pre
15464
14942
  background: rgb(255 255 255 / 0.06);
15465
14943
  }
15466
14944
 
14945
+ .cpk-launcher-hud[data-color-scheme="light"] .cpk-launcher-hud__row:hover,
14946
+ .cpk-launcher-hud[data-color-scheme="light"] .cpk-launcher-hud__row:focus-within,
14947
+ .cpk-launcher-hud[data-color-scheme="light"] .cpk-launcher-hud__row[data-cpk-hud-help="open"] {
14948
+ background: #f0f0f4;
14949
+ }
14950
+
15467
14951
  .cpk-launcher-hud__action {
15468
14952
  display: flex;
15469
14953
  gap: 8px;
@@ -15481,6 +14965,10 @@ ${prettyEvent}</pre
15481
14965
  cursor: pointer;
15482
14966
  }
15483
14967
 
14968
+ .cpk-launcher-hud[data-color-scheme="light"] .cpk-launcher-hud__action {
14969
+ color: #010507;
14970
+ }
14971
+
15484
14972
  /* Stretch the row action over the whole tab, including the detail
15485
14973
  copy. The help mark sits above this layer. */
15486
14974
  .cpk-launcher-hud__action::after {
@@ -15524,6 +15012,10 @@ ${prettyEvent}</pre
15524
15012
  line-height: 1;
15525
15013
  }
15526
15014
 
15015
+ .cpk-launcher-hud[data-color-scheme="light"] .cpk-launcher-hud__help {
15016
+ color: #68686e;
15017
+ }
15018
+
15527
15019
  .cpk-launcher-hud__help:focus-visible,
15528
15020
  .cpk-launcher-hud__action:focus-visible {
15529
15021
  outline: 2px solid #bec2ff;
@@ -15550,6 +15042,10 @@ ${prettyEvent}</pre
15550
15042
  padding-bottom 200ms cubic-bezier(0.16, 1, 0.3, 1);
15551
15043
  }
15552
15044
 
15045
+ .cpk-launcher-hud[data-color-scheme="light"] .cpk-launcher-hud__detail {
15046
+ color: #68686e;
15047
+ }
15048
+
15553
15049
  .cpk-launcher-hud__row:hover .cpk-launcher-hud__detail,
15554
15050
  .cpk-launcher-hud__row:focus-within .cpk-launcher-hud__detail,
15555
15051
  .cpk-launcher-hud__row[data-cpk-hud-help="open"] .cpk-launcher-hud__detail {
@@ -15566,6 +15062,103 @@ ${prettyEvent}</pre
15566
15062
  }
15567
15063
  }
15568
15064
 
15065
+ /*
15066
+ * On mount, borrow the hover HUD for one short introduction. The card
15067
+ * establishes the destination first; its rows then resolve in order so
15068
+ * the eye can count the available features instead of receiving one
15069
+ * undifferentiated block. Only opacity and transform move.
15070
+ */
15071
+ @keyframes cpk-launcher-hud-intro {
15072
+ 0% {
15073
+ opacity: 0;
15074
+ transform: translateX(8px);
15075
+ }
15076
+ 8%,
15077
+ 88% {
15078
+ opacity: 1;
15079
+ transform: none;
15080
+ }
15081
+ 100% {
15082
+ opacity: 0;
15083
+ transform: translateX(4px);
15084
+ }
15085
+ }
15086
+
15087
+ @keyframes cpk-launcher-hud-intro-right {
15088
+ 0% {
15089
+ opacity: 0;
15090
+ transform: translateX(-8px);
15091
+ }
15092
+ 8%,
15093
+ 88% {
15094
+ opacity: 1;
15095
+ transform: none;
15096
+ }
15097
+ 100% {
15098
+ opacity: 0;
15099
+ transform: translateX(-4px);
15100
+ }
15101
+ }
15102
+
15103
+ @keyframes cpk-launcher-hud-row-online {
15104
+ from {
15105
+ opacity: 0;
15106
+ transform: translateY(4px);
15107
+ }
15108
+ to {
15109
+ opacity: 1;
15110
+ transform: none;
15111
+ }
15112
+ }
15113
+
15114
+ @keyframes cpk-launcher-hud-check-online {
15115
+ from {
15116
+ opacity: 0;
15117
+ transform: scale(0.65);
15118
+ }
15119
+ to {
15120
+ opacity: 1;
15121
+ transform: scale(1);
15122
+ }
15123
+ }
15124
+
15125
+ .cpk-launcher-hud[data-cpk-hud-intro="true"] {
15126
+ animation: cpk-launcher-hud-intro
15127
+ var(--cpk-launcher-hud-intro-duration)
15128
+ cubic-bezier(0.16, 1, 0.3, 1) both;
15129
+ }
15130
+
15131
+ .cpk-launcher-hud[data-cpk-hud-intro="true"][data-cpk-hud-side="right"] {
15132
+ animation-name: cpk-launcher-hud-intro-right;
15133
+ }
15134
+
15135
+ .cpk-launcher-hud[data-cpk-hud-intro="true"]
15136
+ .cpk-launcher-hud__row {
15137
+ animation: cpk-launcher-hud-row-online
15138
+ var(--cpk-launcher-hud-row-duration)
15139
+ cubic-bezier(0.16, 1, 0.3, 1) both;
15140
+ animation-delay: var(--cpk-hud-row-delay);
15141
+ }
15142
+
15143
+ .cpk-launcher-hud[data-cpk-hud-intro="true"]
15144
+ .cpk-launcher-hud__check {
15145
+ animation: cpk-launcher-hud-check-online 220ms
15146
+ cubic-bezier(0.16, 1, 0.3, 1) both;
15147
+ animation-delay: calc(var(--cpk-hud-row-delay) + 90ms);
15148
+ }
15149
+
15150
+ @media (prefers-reduced-motion: reduce) {
15151
+ .cpk-launcher-hud[data-cpk-hud-intro="true"],
15152
+ .cpk-launcher-hud[data-cpk-hud-intro="true"]
15153
+ .cpk-launcher-hud__row,
15154
+ .cpk-launcher-hud[data-cpk-hud-intro="true"]
15155
+ .cpk-launcher-hud__check {
15156
+ animation: none !important;
15157
+ opacity: 1;
15158
+ transform: none;
15159
+ }
15160
+ }
15161
+
15569
15162
  /*
15570
15163
  * Marker on the navigation entry, which is what keeps a signal alive
15571
15164
  * once the panel is open and the launcher is hidden. Static by design:
@@ -15592,7 +15185,7 @@ ${prettyEvent}</pre
15592
15185
  /* ── Inspector window ────────────────────────────────────────── */
15593
15186
  .inspector-window {
15594
15187
  border: 1px solid #d8d8e8 !important;
15595
- border-radius: 5px !important;
15188
+ border-radius: var(--cpk-inspector-shell-radius) !important;
15596
15189
  box-shadow: none !important;
15597
15190
  }
15598
15191
 
@@ -15708,10 +15301,69 @@ ${prettyEvent}</pre
15708
15301
  .inspector-sidebar[data-icon-rail="true"] .inspector-nav-control,
15709
15302
  .inspector-sidebar[data-icon-rail="true"] .inspector-sidebar-control,
15710
15303
  .inspector-sidebar[data-icon-rail="true"] .inspector-sidebar-toggle {
15304
+ box-sizing: border-box !important;
15305
+ width: 36px !important;
15306
+ height: 36px !important;
15307
+ min-width: 36px !important;
15308
+ min-height: 36px !important;
15711
15309
  justify-content: center !important;
15712
15310
  align-items: center !important;
15713
15311
  gap: 0 !important;
15714
- padding-inline: 0 !important;
15312
+ padding: 0 !important;
15313
+ overflow: visible !important;
15314
+ }
15315
+ .inspector-sidebar[data-icon-rail="true"] .inspector-nav-icon,
15316
+ .inspector-sidebar[data-icon-rail="true"] .inspector-nav-icon svg,
15317
+ .inspector-sidebar[data-icon-rail="true"]
15318
+ .inspector-context-dropdown-icon,
15319
+ .inspector-sidebar[data-icon-rail="true"]
15320
+ .inspector-context-dropdown-icon
15321
+ svg,
15322
+ .inspector-sidebar[data-icon-rail="true"] .inspector-agent-placeholder svg {
15323
+ width: 18px !important;
15324
+ height: 18px !important;
15325
+ overflow: visible !important;
15326
+ }
15327
+ .inspector-sidebar[data-icon-rail="true"]
15328
+ .inspector-agent-selector
15329
+ > [data-context-dropdown-root="true"] {
15330
+ display: flex !important;
15331
+ flex: none !important;
15332
+ width: 36px !important;
15333
+ min-width: 36px !important;
15334
+ max-width: 36px !important;
15335
+ justify-content: center !important;
15336
+ align-items: center !important;
15337
+ }
15338
+ .inspector-sidebar[data-icon-rail="true"]
15339
+ .inspector-agent-selector
15340
+ > [data-context-dropdown-root="true"]
15341
+ > button,
15342
+ .inspector-sidebar[data-icon-rail="true"] .inspector-agent-placeholder {
15343
+ display: flex !important;
15344
+ width: 36px !important;
15345
+ height: 36px !important;
15346
+ min-width: 36px !important;
15347
+ min-height: 36px !important;
15348
+ max-width: 36px !important;
15349
+ align-items: center !important;
15350
+ justify-content: center !important;
15351
+ gap: 0 !important;
15352
+ padding: 0 !important;
15353
+ transition:
15354
+ background-color 180ms ease,
15355
+ border-color 180ms ease,
15356
+ color 180ms ease !important;
15357
+ }
15358
+ .inspector-sidebar[data-icon-rail="true"]
15359
+ .inspector-context-dropdown-label,
15360
+ .inspector-sidebar[data-icon-rail="true"]
15361
+ .inspector-context-dropdown-chevron {
15362
+ display: none !important;
15363
+ width: 0 !important;
15364
+ min-width: 0 !important;
15365
+ flex: none !important;
15366
+ overflow: hidden !important;
15715
15367
  }
15716
15368
  .inspector-sidebar[data-icon-rail="true"] .inspector-nav-label,
15717
15369
  .inspector-sidebar[data-icon-rail="true"] .inspector-sidebar-label {
@@ -15907,6 +15559,16 @@ ${prettyEvent}</pre
15907
15559
  defineElementOnce(registry, "cpk-memory-list", CpkMemoryList);
15908
15560
  defineElementOnce(registry, WEB_INSPECTOR_TAG, WebInspectorElement);
15909
15561
  }
15562
+ /**
15563
+ * Bind a host-owned core before an Inspector is connected to the DOM. Disabling
15564
+ * auto-attachment first prevents `connectedCallback` from briefly selecting a
15565
+ * different global core.
15566
+ */
15567
+ function configureWebInspectorElement(inspector, core) {
15568
+ inspector.autoAttachCore = false;
15569
+ inspector.core = core;
15570
+ return inspector;
15571
+ }
15910
15572
  defineWebInspector();
15911
15573
 
15912
15574
  //#endregion
@@ -15914,10 +15576,8 @@ exports.CpkThreadInspector = CpkThreadInspector;
15914
15576
  exports.THREAD_INSPECTOR_TAG = THREAD_INSPECTOR_TAG;
15915
15577
  exports.WEB_INSPECTOR_TAG = WEB_INSPECTOR_TAG;
15916
15578
  exports.WebInspectorElement = WebInspectorElement;
15917
- exports.compileChatSnippet = compileChatSnippet;
15918
- exports.compileFromActivityMessage = compileFromActivityMessage;
15579
+ exports.configureWebInspectorElement = configureWebInspectorElement;
15919
15580
  exports.defineWebInspector = defineWebInspector;
15920
- exports.upsertEventSnippet = upsertEventSnippet;
15921
15581
  exports.ɵCpkThreadDetails = ɵCpkThreadDetails;
15922
15582
  exports.ɵbuildCapabilityRows = buildCapabilityRows;
15923
15583
  exports.ɵmaxRecallScore = maxRecallScore;