@claudeye/linux-arm64 1.0.6-beta.0 → 1.0.6-beta.2
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.
- package/assets/standalone/.next/BUILD_ID +1 -1
- package/assets/standalone/.next/build-manifest.json +2 -2
- package/assets/standalone/.next/prerender-manifest.json +3 -3
- package/assets/standalone/.next/server/app/_global-error.html +2 -2
- package/assets/standalone/.next/server/app/_global-error.rsc +1 -1
- package/assets/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/assets/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/assets/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/assets/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/assets/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/assets/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +2 -2
- package/assets/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/assets/standalone/.next/server/app/_not-found.html +2 -2
- package/assets/standalone/.next/server/app/_not-found.rsc +8 -8
- package/assets/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +8 -8
- package/assets/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/assets/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +8 -8
- package/assets/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/assets/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/assets/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/assets/standalone/.next/server/app/dashboard/[viewName]/page/server-reference-manifest.json +5 -5
- package/assets/standalone/.next/server/app/dashboard/[viewName]/page_client-reference-manifest.js +1 -1
- package/assets/standalone/.next/server/app/dashboard/page/server-reference-manifest.json +5 -5
- package/assets/standalone/.next/server/app/dashboard/page_client-reference-manifest.js +1 -1
- package/assets/standalone/.next/server/app/hooks/page/server-reference-manifest.json +4 -4
- package/assets/standalone/.next/server/app/hooks/page_client-reference-manifest.js +1 -1
- package/assets/standalone/.next/server/app/login/page/server-reference-manifest.json +3 -3
- package/assets/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/assets/standalone/.next/server/app/login.html +2 -2
- package/assets/standalone/.next/server/app/login.rsc +9 -9
- package/assets/standalone/.next/server/app/login.segments/_full.segment.rsc +9 -9
- package/assets/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/assets/standalone/.next/server/app/login.segments/_index.segment.rsc +8 -8
- package/assets/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/assets/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/assets/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/assets/standalone/.next/server/app/page/server-reference-manifest.json +2 -2
- package/assets/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/assets/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +2 -2
- package/assets/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
- package/assets/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +1 -1
- package/assets/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +9 -9
- package/assets/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/assets/standalone/.next/server/app/queue/page/server-reference-manifest.json +4 -4
- package/assets/standalone/.next/server/app/queue/page_client-reference-manifest.js +1 -1
- package/assets/standalone/.next/server/chunks/[root-of-the-server]__75048a35._.js +2 -2
- package/assets/standalone/.next/server/chunks/[root-of-the-server]__dd558eee._.js +1 -1
- package/assets/standalone/.next/server/chunks/[root-of-the-server]__f44213d4._.js +1 -1
- package/assets/standalone/.next/server/chunks/_3f3c09bf._.js +2 -2
- package/assets/standalone/.next/server/chunks/_7e07bbd9._.js +1 -1
- package/assets/standalone/.next/server/chunks/_8f856fad._.js +2 -2
- package/assets/standalone/.next/server/chunks/_b8adaa37._.js +2 -2
- package/assets/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7a66d362.js +1 -1
- package/assets/standalone/.next/server/chunks/package_json_4b1b4d6f._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__637abc80._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__6ec938e4._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__82c381fd._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__99f0c371._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__b9492585._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__cb5a5725._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__d015fef5._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__d4e6c42a._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/[root-of-the-server]__fd646815._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/_14858238._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/_1d335924._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/_76ab933f._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/_87e025a1._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/_b14cf8e4._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/_d7159840._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/app_actions_compute-dashboard_ts_fc151dbb._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/app_hooks_hooks-client_tsx_8b8d68a3._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/app_login_page_tsx_ccc0019b._.js +1 -1
- package/assets/standalone/.next/server/chunks/ssr/app_queue_queue-client_tsx_45f040f7._.js +1 -1
- package/assets/standalone/.next/server/pages/404.html +2 -2
- package/assets/standalone/.next/server/pages/500.html +2 -2
- package/assets/standalone/.next/server/server-reference-manifest.js +1 -1
- package/assets/standalone/.next/server/server-reference-manifest.json +18 -18
- package/assets/standalone/.next/static/chunks/{f41dc462580bd41c.js → 23f89e09e12669f5.js} +1 -1
- package/assets/standalone/.next/static/chunks/{9cfed2ee36dcb1ab.js → 30240f9e019e568c.js} +1 -1
- package/assets/standalone/.next/static/chunks/{a8595cb50f9cb3ac.js → 4df27e5998633af2.js} +1 -1
- package/assets/standalone/.next/static/chunks/{031494e77da6f4a2.js → 8ff241ce7ade1747.js} +1 -1
- package/assets/standalone/.next/static/chunks/{a5d65bf781dfb2f0.js → d38612d807c591b5.js} +1 -1
- package/assets/standalone/.next/static/chunks/e1dc040b833dc0ee.css +1 -0
- package/assets/standalone/.next/static/chunks/{a4735a0304ebaca0.js → e85d897078375e2a.js} +1 -1
- package/assets/standalone/.next/static/chunks/{7975c380f829a2b2.js → edf6ac503314d625.js} +1 -1
- package/assets/standalone/README.md +78 -7
- package/assets/standalone/package.json +1 -1
- package/bin/claudeye +0 -0
- package/package.json +1 -1
- package/assets/standalone/.next/static/chunks/c3143abc45f3c5bf.css +0 -1
- /package/assets/standalone/.next/static/{yHwkX5eNzdj4Qd7oC82Jw → rkCRA0loq6mELjzt2HYPQ}/_buildManifest.js +0 -0
- /package/assets/standalone/.next/static/{yHwkX5eNzdj4Qd7oC82Jw → rkCRA0loq6mELjzt2HYPQ}/_clientMiddlewareManifest.json +0 -0
- /package/assets/standalone/.next/static/{yHwkX5eNzdj4Qd7oC82Jw → rkCRA0loq6mELjzt2HYPQ}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@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-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--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-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-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-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--color-red-100:#ffe2e2;--color-red-400:#ff6568;--color-red-500:#fb2c36;--color-red-600:#e40014;--color-red-700:#bf000f;--color-red-900:#82181a;--color-amber-100:#fef3c6;--color-amber-400:#fcbb00;--color-amber-500:#f99c00;--color-amber-700:#b75000;--color-amber-900:#7b3306;--color-yellow-500:#edb200;--color-green-400:#05df72;--color-green-500:#00c758;--color-green-600:#00a544;--color-emerald-400:#00d294;--color-emerald-500:#00bb7f;--color-sky-400:#00bcfe;--color-sky-500:#00a5ef;--color-blue-100:#dbeafe;--color-blue-400:#54a2ff;--color-blue-500:#3080ff;--color-blue-600:#155dfc;--color-blue-700:#1447e6;--color-blue-900:#1c398e;--color-purple-100:#f3e8ff;--color-purple-400:#c07eff;--color-purple-500:#ac4bff;--color-purple-700:#8200da;--color-purple-900:#59168b;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-4xl:56rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-tight:1.25;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:system-ui,-apple-system,sans-serif;--default-mono-font-family:ui-monospace,monospace}@supports (color:lab(0% 0 0)){:root,:host{--color-red-100:lab(92.243% 10.2865 3.83865);--color-red-400:lab(63.7053% 60.745 31.3109);--color-red-500:lab(55.4814% 75.0732 48.8528);--color-red-600:lab(48.4493% 77.4328 61.5452);--color-red-700:lab(40.4273% 67.2623 53.7441);--color-red-900:lab(28.5139% 44.5539 29.0463);--color-amber-100:lab(95.916% -1.21653 23.111);--color-amber-400:lab(80.1641% 16.6016 99.2089);--color-amber-500:lab(72.7183% 31.8672 97.9407);--color-amber-700:lab(47.2709% 42.9082 69.2966);--color-amber-900:lab(31.2288% 30.2627 40.0378);--color-yellow-500:lab(76.3898% 14.5258 98.4589);--color-green-400:lab(78.503% -64.9265 39.7492);--color-green-500:lab(70.5521% -66.5147 45.8073);--color-green-600:lab(59.0978% -58.6621 41.2579);--color-emerald-400:lab(75.0771% -60.7313 19.4147);--color-emerald-500:lab(66.9756% -58.27 19.5419);--color-sky-400:lab(70.687% -23.6078 -45.9483);--color-sky-500:lab(63.3038% -18.433 -51.0407);--color-blue-100:lab(92.0301% -2.24757 -11.6453);--color-blue-400:lab(65.0361% -1.42065 -56.9802);--color-blue-500:lab(54.1736% 13.3369 -74.6839);--color-blue-600:lab(44.0605% 29.0279 -86.0352);--color-blue-700:lab(36.9089% 35.0961 -85.6872);--color-blue-900:lab(26.1542% 15.7545 -51.5504);--color-purple-100:lab(93.3333% 6.97437 -9.83434);--color-purple-400:lab(63.6946% 47.6127 -59.2066);--color-purple-500:lab(52.0183% 66.11 -78.2316);--color-purple-700:lab(36.1758% 69.8525 -80.0381);--color-purple-900:lab(24.9401% 45.2703 -51.2728)}}}@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;-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}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}html{font-size:120%}body{background-color:var(--background);color:var(--foreground);font-family:system-ui,-apple-system,sans-serif}input[type=checkbox]{accent-color:var(--primary)}select{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){select{--lightningcss-light: ;--lightningcss-dark:initial}}.light select{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}select option{background-color:var(--popover);color:var(--popover-foreground)}input[type=date]{position:relative;overflow:visible}input[type=date]::-webkit-calendar-picker-indicator{opacity:0;cursor:pointer;width:0;height:0;display:none;position:absolute;right:0}input[type=date]::-webkit-datetime-edit{align-items:center;gap:0;width:100%;padding:0;display:inline-flex}input[type=date]::-webkit-datetime-edit-text{color:var(--muted-foreground);padding:0 .2rem}input[type=date]::-webkit-datetime-edit-month-field{color:var(--foreground);width:2.5ch;min-width:2.5ch;padding:0 .15rem}input[type=date]::-webkit-datetime-edit-day-field{color:var(--foreground);width:2.5ch;min-width:2.5ch;padding:0 .15rem}input[type=date]::-webkit-datetime-edit-year-field{color:var(--foreground);width:5ch;min-width:5ch;max-width:5ch;padding:0 .15rem;overflow:visible}input[type=date]::-webkit-datetime-edit-month-field:focus{background-color:var(--muted);color:var(--foreground);border-radius:.25rem}input[type=date]::-webkit-datetime-edit-day-field:focus{background-color:var(--muted);color:var(--foreground);border-radius:.25rem}input[type=date]::-webkit-datetime-edit-year-field:focus{background-color:var(--muted);color:var(--foreground);border-radius:.25rem}input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.light input[type=date]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}#__loading{display:none!important}body>*{opacity:1!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.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}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-1{inset-inline:calc(var(--spacing)*1)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-1{top:calc(var(--spacing)*-1)}.top-1{top:calc(var(--spacing)*1)}.top-1\/2{top:50%}.-right-1{right:calc(var(--spacing)*-1)}.right-0{right:calc(var(--spacing)*0)}.right-1{right:calc(var(--spacing)*1)}.right-2{right:calc(var(--spacing)*2)}.right-2\.5{right:calc(var(--spacing)*2.5)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-4{bottom:calc(var(--spacing)*4)}.isolate{isolation:isolate}.z-10{z-index:10}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-auto{margin-inline:auto}.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-8{margin-top:calc(var(--spacing)*8)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.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)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-1\.5{margin-left:calc(var(--spacing)*1.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-7{margin-left:calc(var(--spacing)*7)}.ml-10{margin-left:calc(var(--spacing)*10)}.ml-auto{margin-left:auto}.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{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-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-11{height:calc(var(--spacing)*11)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-24{height:calc(var(--spacing)*24)}.h-\[1\.2rem\]{height:1.2rem}.h-\[2px\]{height:2px}.h-full{height:100%}.h-px{height:1px}.max-h-48{max-height:calc(var(--spacing)*48)}.max-h-60{max-height:calc(var(--spacing)*60)}.max-h-64{max-height:calc(var(--spacing)*64)}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-1\/2{width:50%}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-32{width:calc(var(--spacing)*32)}.w-36{width:calc(var(--spacing)*36)}.w-40{width:calc(var(--spacing)*40)}.w-44{width:calc(var(--spacing)*44)}.w-48{width:calc(var(--spacing)*48)}.w-56{width:calc(var(--spacing)*56)}.w-64{width:calc(var(--spacing)*64)}.w-72{width:calc(var(--spacing)*72)}.w-\[1\.2rem\]{width:1.2rem}.w-\[200px\]{width:200px}.w-\[250px\]{width:250px}.w-full{width:100%}.w-px{width:1px}.max-w-4xl{max-width:var(--container-4xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[80px\]{max-width:80px}.max-w-\[120px\]{max-width:120px}.max-w-\[200px\]{max-width:200px}.max-w-\[240px\]{max-width:240px}.max-w-\[400px\]{max-width:400px}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-4{min-width:calc(var(--spacing)*4)}.min-w-\[2\.5rem\]{min-width:2.5rem}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.-rotate-90{rotate:-90deg}.rotate-0{rotate:none}.rotate-90{rotate:90deg}.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-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[repeat\(auto-fit\,minmax\(200px\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}: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-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-8{-moz-column-gap:calc(var(--spacing)*8);column-gap:calc(var(--spacing)*8)}.gap-y-1{row-gap:calc(var(--spacing)*1)}.gap-y-1\.5{row-gap:calc(var(--spacing)*1.5)}: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-border\/30>:not(:last-child)){border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){:where(.divide-border\/30>:not(:last-child)){border-color:color-mix(in oklab,var(--border)30%,transparent)}}:where(.divide-border\/50>:not(:last-child)){border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){:where(.divide-border\/50>:not(:last-child)){border-color:color-mix(in oklab,var(--border)50%,transparent)}}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-r-lg{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-none{--tw-border-style:none;border-style:none}.border-\[color\:var\(--chart-1\)\]\/30{border-color:var(--chart-1)}@supports (color:color-mix(in lab, red, red)){.border-\[color\:var\(--chart-1\)\]\/30{border-color:color-mix(in oklab,var(--chart-1)30%,transparent)}}.border-\[color\:var\(--chart-2\)\]\/30{border-color:var(--chart-2)}@supports (color:color-mix(in lab, red, red)){.border-\[color\:var\(--chart-2\)\]\/30{border-color:color-mix(in oklab,var(--chart-2)30%,transparent)}}.border-\[color\:var\(--chart-3\)\]\/30{border-color:var(--chart-3)}@supports (color:color-mix(in lab, red, red)){.border-\[color\:var\(--chart-3\)\]\/30{border-color:color-mix(in oklab,var(--chart-3)30%,transparent)}}.border-\[color\:var\(--chart-4\)\]\/30{border-color:var(--chart-4)}@supports (color:color-mix(in lab, red, red)){.border-\[color\:var\(--chart-4\)\]\/30{border-color:color-mix(in oklab,var(--chart-4)30%,transparent)}}.border-\[color\:var\(--chart-5\)\]\/30{border-color:var(--chart-5)}@supports (color:color-mix(in lab, red, red)){.border-\[color\:var\(--chart-5\)\]\/30{border-color:color-mix(in oklab,var(--chart-5)30%,transparent)}}.border-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/20{border-color:color-mix(in oklab,var(--color-amber-500)20%,transparent)}}.border-border,.border-border\/30{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/30{border-color:color-mix(in oklab,var(--border)30%,transparent)}}.border-border\/40{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/40{border-color:color-mix(in oklab,var(--border)40%,transparent)}}.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/50{border-color:color-mix(in oklab,var(--border)50%,transparent)}}.border-destructive\/20{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/20{border-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.border-destructive\/50{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/50{border-color:color-mix(in oklab,var(--destructive)50%,transparent)}}.border-destructive\/60{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/60{border-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/20{border-color:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.border-primary,.border-primary\/20{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\/20{border-color:color-mix(in oklab,var(--primary)20%,transparent)}}.border-primary\/25{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\/25{border-color:color-mix(in oklab,var(--primary)25%,transparent)}}.border-primary\/30{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\/30{border-color:color-mix(in oklab,var(--primary)30%,transparent)}}.border-primary\/50{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\/50{border-color:color-mix(in oklab,var(--primary)50%,transparent)}}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.border-red-500\/20{border-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.border-sky-500\/20{border-color:#00a5ef33}@supports (color:color-mix(in lab, red, red)){.border-sky-500\/20{border-color:color-mix(in oklab,var(--color-sky-500)20%,transparent)}}.border-transparent{border-color:#0000}.border-l-\[color\:var\(--chart-1\)\]{border-left-color:var(--chart-1)}.border-l-\[color\:var\(--chart-2\)\]{border-left-color:var(--chart-2)}.border-l-\[color\:var\(--chart-3\)\]{border-left-color:var(--chart-3)}.border-l-\[color\:var\(--chart-4\)\]{border-left-color:var(--chart-4)}.border-l-\[color\:var\(--chart-5\)\]{border-left-color:var(--chart-5)}.border-l-amber-500\/40{border-left-color:#f99c0066}@supports (color:color-mix(in lab, red, red)){.border-l-amber-500\/40{border-left-color:color-mix(in oklab,var(--color-amber-500)40%,transparent)}}.border-l-primary{border-left-color:var(--primary)}.border-l-red-500\/40{border-left-color:#fb2c3666}@supports (color:color-mix(in lab, red, red)){.border-l-red-500\/40{border-left-color:color-mix(in oklab,var(--color-red-500)40%,transparent)}}.bg-\[color\:var\(--chart-1\)\]\/20{background-color:var(--chart-1)}@supports (color:color-mix(in lab, red, red)){.bg-\[color\:var\(--chart-1\)\]\/20{background-color:color-mix(in oklab,var(--chart-1)20%,transparent)}}.bg-\[color\:var\(--chart-2\)\]\/20{background-color:var(--chart-2)}@supports (color:color-mix(in lab, red, red)){.bg-\[color\:var\(--chart-2\)\]\/20{background-color:color-mix(in oklab,var(--chart-2)20%,transparent)}}.bg-\[color\:var\(--chart-3\)\]\/20{background-color:var(--chart-3)}@supports (color:color-mix(in lab, red, red)){.bg-\[color\:var\(--chart-3\)\]\/20{background-color:color-mix(in oklab,var(--chart-3)20%,transparent)}}.bg-\[color\:var\(--chart-4\)\]\/20{background-color:var(--chart-4)}@supports (color:color-mix(in lab, red, red)){.bg-\[color\:var\(--chart-4\)\]\/20{background-color:color-mix(in oklab,var(--chart-4)20%,transparent)}}.bg-\[color\:var\(--chart-5\)\]\/5{background-color:var(--chart-5)}@supports (color:color-mix(in lab, red, red)){.bg-\[color\:var\(--chart-5\)\]\/5{background-color:color-mix(in oklab,var(--chart-5)5%,transparent)}}.bg-\[color\:var\(--chart-5\)\]\/20{background-color:var(--chart-5)}@supports (color:color-mix(in lab, red, red)){.bg-\[color\:var\(--chart-5\)\]\/20{background-color:color-mix(in oklab,var(--chart-5)20%,transparent)}}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500)10%,transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/15{background-color:color-mix(in oklab,var(--color-amber-500)15%,transparent)}}.bg-amber-500\/\[0\.03\]{background-color:#f99c0008}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/\[0\.03\]{background-color:color-mix(in oklab,var(--color-amber-500)3%,transparent)}}.bg-background{background-color:var(--background)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/15{background-color:#3080ff26}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/15{background-color:color-mix(in oklab,var(--color-blue-500)15%,transparent)}}.bg-border{background-color:var(--border)}.bg-card,.bg-card\/50{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/50{background-color:color-mix(in oklab,var(--card)50%,transparent)}}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/15{background-color:color-mix(in oklab,var(--color-emerald-500)15%,transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-input{background-color:var(--input)}.bg-muted{background-color:var(--muted)}.bg-muted-foreground\/40{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/40{background-color:color-mix(in oklab,var(--muted-foreground)40%,transparent)}}.bg-muted\/10{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/10{background-color:color-mix(in oklab,var(--muted)10%,transparent)}}.bg-muted\/20{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/20{background-color:color-mix(in oklab,var(--muted)20%,transparent)}}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--muted)30%,transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-muted\/\[0\.04\]{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/\[0\.04\]{background-color:color-mix(in oklab,var(--muted)4%,transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.bg-primary\/15{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/15{background-color:color-mix(in oklab,var(--primary)15%,transparent)}}.bg-primary\/20{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--primary)20%,transparent)}}.bg-primary\/30{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/30{background-color:color-mix(in oklab,var(--primary)30%,transparent)}}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-500\/15{background-color:#ac4bff26}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/15{background-color:color-mix(in oklab,var(--color-purple-500)15%,transparent)}}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/15{background-color:color-mix(in oklab,var(--color-red-500)15%,transparent)}}.bg-red-500\/\[0\.03\]{background-color:#fb2c3608}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/\[0\.03\]{background-color:color-mix(in oklab,var(--color-red-500)3%,transparent)}}.bg-sky-500\/10{background-color:#00a5ef1a}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/10{background-color:color-mix(in oklab,var(--color-sky-500)10%,transparent)}}.bg-transparent{background-color:#0000}.bg-yellow-500{background-color:var(--color-yellow-500)}.p-0{padding:calc(var(--spacing)*0)}.p-0\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.px-0{padding-inline:calc(var(--spacing)*0)}.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)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-0{padding-block:calc(var(--spacing)*0)}.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-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-2{padding-top:calc(var(--spacing)*2)}.pr-7{padding-right:calc(var(--spacing)*7)}.pr-8{padding-right:calc(var(--spacing)*8)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-3{padding-left:calc(var(--spacing)*3)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:ui-monospace,monospace}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.6rem\]{font-size:.6rem}.text-\[0\.7rem\]{font-size:.7rem}.text-\[0\.65rem\]{font-size:.65rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[color\:var\(--chart-1\)\]{color:var(--chart-1)}.text-\[color\:var\(--chart-2\)\]{color:var(--chart-2)}.text-\[color\:var\(--chart-3\)\]{color:var(--chart-3)}.text-\[color\:var\(--chart-4\)\]{color:var(--chart-4)}.text-\[color\:var\(--chart-5\)\]{color:var(--chart-5)}.text-amber-400{color:var(--color-amber-400)}.text-amber-500{color:var(--color-amber-500)}.text-amber-700{color:var(--color-amber-700)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-card-foreground{color:var(--card-foreground)}.text-destructive,.text-destructive\/80{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.text-destructive\/80{color:color-mix(in oklab,var(--destructive)80%,transparent)}}.text-emerald-400{color:var(--color-emerald-400)}.text-foreground{color:var(--foreground)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-muted-foreground,.text-muted-foreground\/10{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/10{color:color-mix(in oklab,var(--muted-foreground)10%,transparent)}}.text-muted-foreground\/30{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/30{color:color-mix(in oklab,var(--muted-foreground)30%,transparent)}}.text-muted-foreground\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/50{color:color-mix(in oklab,var(--muted-foreground)50%,transparent)}}.text-muted-foreground\/70{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/70{color:color-mix(in oklab,var(--muted-foreground)70%,transparent)}}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-primary\/70{color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.text-primary\/70{color:color-mix(in oklab,var(--primary)70%,transparent)}}.text-purple-500{color:var(--color-purple-500)}.text-purple-700{color:var(--color-purple-700)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-sky-400{color:var(--color-sky-400)}.text-yellow-500{color:var(--color-yellow-500)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.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{--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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-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-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-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-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.fade-in-0{--tw-enter-opacity:0}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.\[claudeye\:hook\]{claudeye:hook}.\[claudeye\:telemetry\]{claudeye:telemetry}.fade-in{--tw-enter-opacity:0}.running{animation-play-state:running}.slide-in-from-top-1{--tw-enter-translate-y:calc(1*var(--spacing)*-1)}@media (hover:hover){.group-hover\:bg-muted:is(:where(.group):hover *){background-color:var(--muted)}.group-hover\:bg-primary\/20:is(:where(.group):hover *){background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-primary\/20:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--primary)20%,transparent)}}.group-hover\:text-foreground:is(:where(.group):hover *){color:var(--foreground)}.group-hover\:text-primary:is(:where(.group):hover *),.group-hover\:text-primary\/80:is(:where(.group):hover *){color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.group-hover\:text-primary\/80:is(:where(.group):hover *){color:color-mix(in oklab,var(--primary)80%,transparent)}}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-muted-foreground::-moz-placeholder{color:var(--muted-foreground)}.placeholder\:text-muted-foreground\/50::-moz-placeholder{color:var(--muted-foreground)}.placeholder\:text-muted-foreground::placeholder,.placeholder\:text-muted-foreground\/50::placeholder{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-muted-foreground\/50::placeholder{color:color-mix(in oklab,var(--muted-foreground)50%,transparent)}}.first\:pt-0:first-child{padding-top:calc(var(--spacing)*0)}@media (hover:hover){.hover\:border-primary\/40:hover{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/40:hover{border-color:color-mix(in oklab,var(--primary)40%,transparent)}}.hover\:border-primary\/50:hover{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab,var(--primary)50%,transparent)}}.hover\:bg-amber-500\/\[0\.07\]:hover{background-color:#f99c0012}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/\[0\.07\]:hover{background-color:color-mix(in oklab,var(--color-amber-500)7.0%,transparent)}}.hover\:bg-muted:hover,.hover\:bg-muted\/20:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/20:hover{background-color:color-mix(in oklab,var(--muted)20%,transparent)}}.hover\:bg-muted\/30:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/30:hover{background-color:color-mix(in oklab,var(--muted)30%,transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.hover\:bg-muted\/80:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/80:hover{background-color:color-mix(in oklab,var(--muted)80%,transparent)}}.hover\:bg-primary\/10:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.hover\:bg-primary\/20:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab,var(--primary)20%,transparent)}}.hover\:bg-primary\/25:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/25:hover{background-color:color-mix(in oklab,var(--primary)25%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-red-500\/\[0\.07\]:hover{background-color:#fb2c3612}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/\[0\.07\]:hover{background-color:color-mix(in oklab,var(--color-red-500)7.0%,transparent)}}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-primary:hover,.hover\:text-primary\/80:hover{color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:text-primary\/80:hover{color:color-mix(in oklab,var(--primary)80%,transparent)}}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:border-primary:focus,.focus\:border-primary\/40:focus{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.focus\:border-primary\/40:focus{border-color:color-mix(in oklab,var(--primary)40%,transparent)}}.focus\:border-primary\/60:focus{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.focus\:border-primary\/60:focus{border-color:color-mix(in oklab,var(--primary)60%,transparent)}}.focus\:border-transparent:focus{border-color:#0000}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-destructive\/30:focus{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus\:ring-destructive\/30:focus{--tw-ring-color:color-mix(in oklab,var(--destructive)30%,transparent)}}.focus\:ring-primary\/40:focus{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.focus\:ring-primary\/40:focus{--tw-ring-color:color-mix(in oklab,var(--primary)40%,transparent)}}.focus\:ring-primary\/50:focus{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.focus\:ring-primary\/50:focus{--tw-ring-color:color-mix(in oklab,var(--primary)50%,transparent)}}.focus\:ring-ring:focus,.focus\:ring-ring\/40:focus{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus\:ring-ring\/40:focus{--tw-ring-color:color-mix(in oklab,var(--ring)40%,transparent)}}.focus\:ring-offset-0:focus{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.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-ring:focus-visible{--tw-ring-color:var(--ring)}.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-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:scale-\[0\.98\]:active{scale:.98}.active\:bg-primary\/30:active{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.active\:bg-primary\/30:active{background-color:color-mix(in oklab,var(--primary)30%,transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:active\:scale-100:disabled:active{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-\[backdrop-filter\]\:bg-card\/50{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.supports-\[backdrop-filter\]\:bg-card\/50{background-color:color-mix(in oklab,var(--card)50%,transparent)}}}@media (min-width:40rem){.sm\:block{display:block}.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:px-6{padding-inline:calc(var(--spacing)*6)}}@media (min-width:48rem){.md\:table-cell{display:table-cell}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:px-8{padding-inline:calc(var(--spacing)*8)}.lg\:px-10{padding-inline:calc(var(--spacing)*10)}}.dark\:bg-amber-900\/30:is(.dark *){background-color:#7b33064d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-amber-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-amber-900)30%,transparent)}}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1c398e4d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-blue-900)30%,transparent)}}.dark\:bg-purple-900\/30:is(.dark *){background-color:#59168b4d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-purple-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-purple-900)30%,transparent)}}.dark\:bg-red-900\/30:is(.dark *){background-color:#82181a4d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-red-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-red-900)30%,transparent)}}.dark\:text-amber-400:is(.dark *){color:var(--color-amber-400)}.dark\:text-blue-400:is(.dark *){color:var(--color-blue-400)}.dark\:text-green-400:is(.dark *){color:var(--color-green-400)}.dark\:text-purple-400:is(.dark *){color:var(--color-purple-400)}.dark\:text-red-400:is(.dark *){color:var(--color-red-400)}.\[\&\:\:-moz-range-thumb\]\:pointer-events-auto::-moz-range-thumb{pointer-events:auto}.\[\&\:\:-moz-range-thumb\]\:h-4::-moz-range-thumb{height:calc(var(--spacing)*4)}.\[\&\:\:-moz-range-thumb\]\:w-4::-moz-range-thumb{width:calc(var(--spacing)*4)}.\[\&\:\:-moz-range-thumb\]\:cursor-pointer::-moz-range-thumb{cursor:pointer}.\[\&\:\:-moz-range-thumb\]\:appearance-none::-moz-range-thumb{appearance:none}.\[\&\:\:-moz-range-thumb\]\:rounded-full::-moz-range-thumb{border-radius:3.40282e38px}.\[\&\:\:-moz-range-thumb\]\:border-0::-moz-range-thumb{border-style:var(--tw-border-style);border-width:0}.\[\&\:\:-moz-range-thumb\]\:bg-primary::-moz-range-thumb{background-color:var(--primary)}.\[\&\:\:-webkit-slider-thumb\]\:pointer-events-auto::-webkit-slider-thumb{pointer-events:auto}.\[\&\:\:-webkit-slider-thumb\]\:h-4::-webkit-slider-thumb{height:calc(var(--spacing)*4)}.\[\&\:\:-webkit-slider-thumb\]\:w-4::-webkit-slider-thumb{width:calc(var(--spacing)*4)}.\[\&\:\:-webkit-slider-thumb\]\:cursor-pointer::-webkit-slider-thumb{cursor:pointer}.\[\&\:\:-webkit-slider-thumb\]\:appearance-none::-webkit-slider-thumb{appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:rounded-full::-webkit-slider-thumb{border-radius:3.40282e38px}.\[\&\:\:-webkit-slider-thumb\]\:bg-primary::-webkit-slider-thumb{background-color:var(--primary)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--accent:#031035;--accent-light:#0a1a4a;--accent-lighter:#1a2a5a;--accent-lightest:#2a3a6a;--radius:.625rem;--background:#031035;--foreground:#f8fafc;--card:#0a1a4a;--card-foreground:#f8fafc;--popover:#0a1a4a;--popover-foreground:#f8fafc;--primary:#87ceeb;--primary-foreground:#031035;--secondary:#1a2a5a;--secondary-foreground:#f8fafc;--muted:#2a3a6a;--muted-foreground:#94a3b8;--accent-foreground:#f8fafc;--destructive:#ff6b8a;--border:#1a2a5a;--input:#1a2a5a;--ring:#87ceeb;--chart-1:#87ceeb;--chart-2:#66d1b5;--chart-3:#ffed9e;--chart-4:#ff6b8a;--chart-5:#a78bfa;--sidebar:#0a1a4a;--sidebar-foreground:#f8fafc;--sidebar-primary:#87ceeb;--sidebar-primary-foreground:#031035;--sidebar-accent:#1a2a5a;--sidebar-accent-foreground:#f8fafc;--sidebar-border:#1a2a5a;--sidebar-ring:#87ceeb}.light{--background:#fff;--foreground:#031035;--card:#f2f7fb;--card-foreground:#031035;--popover:#fff;--popover-foreground:#031035;--primary:#031035;--primary-foreground:#fff;--secondary:#f1f5f9;--secondary-foreground:#031035;--muted:#f1f5f9;--muted-foreground:#64748b;--accent:#031035;--accent-light:#0a1a4a;--accent-lighter:#1a2a5a;--accent-lightest:#2a3a6a;--accent-foreground:#fff;--destructive:#dc2626;--border:#e2e8f0;--input:#fff;--ring:#87ceeb;--chart-1:#87ceeb;--chart-2:#4ade80;--chart-3:#cca301;--chart-4:#ff6b8a;--chart-5:#a78bfa;--sidebar:#f8fafc;--sidebar-foreground:#031035;--sidebar-primary:#031035;--sidebar-primary-foreground:#fff;--sidebar-accent:#f1f5f9;--sidebar-accent-foreground:#031035;--sidebar-border:#e2e8f0;--sidebar-ring:#87ceeb}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--muted);border-radius:var(--radius)}::-webkit-scrollbar-thumb{background:var(--chart-1);border-radius:var(--radius);transition:background .2s}::-webkit-scrollbar-thumb:hover{background:var(--accent-lightest)}::-webkit-scrollbar-corner{background:var(--muted)}*{scrollbar-width:thin;scrollbar-color:var(--border)var(--muted)}@keyframes entry-highlight{0%{background-color:hsl(var(--primary)/.15)}to{background-color:#0000}}.entry-highlighted{outline:2px solid hsl(var(--primary)/.4);outline-offset:-1px;border-radius:.5rem;animation:3s ease-out forwards entry-highlight}@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-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}@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-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<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}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,63059,e=>{"use strict";let t=(0,e.i(75254).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],63059)},73520,e=>{"use strict";var t=e.i(43476);let r=(0,e.i(75254).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);var s=e.i(63059);function a({currentPage:e,totalPages:a,onPageChange:n}){if(a<=1)return null;let l=e=>`px-3 py-2 text-sm rounded-md transition-colors flex items-center gap-1 bg-muted text-muted-foreground ${e?"opacity-50 cursor-not-allowed":"hover:bg-muted/80"}`;return(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 py-4",children:[(0,t.jsxs)("button",{onClick:()=>n(e-1),disabled:1===e,className:l(1===e),"aria-label":"Previous page",children:[(0,t.jsx)(r,{className:"w-4 h-4"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:"Previous"})]}),(0,t.jsx)("div",{className:"flex items-center gap-1",children:(()=>{if(a<=7)return Array.from({length:a},(e,t)=>t+1);let t=[1],r=Math.max(2,e-1),s=Math.min(a-1,e+1);e<=3&&(s=Math.min(5,a-1)),e>=a-2&&(r=Math.max(2,a-4)),r>2&&t.push("ellipsis-start");for(let e=r;e<=s;e++)t.push(e);return s<a-1&&t.push("ellipsis-end"),t.push(a),t})().map(r=>"string"==typeof r?(0,t.jsx)("span",{className:"px-2 text-muted-foreground",children:"..."},r):(0,t.jsx)("button",{onClick:()=>n(r),className:`min-w-[2.5rem] px-3 py-2 text-sm rounded-md transition-colors ${e===r?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"}`,"aria-label":`Page ${r}`,"aria-current":e===r?"page":void 0,children:r},r))}),(0,t.jsxs)("button",{onClick:()=>n(e+1),disabled:e===a,className:l(e===a),"aria-label":"Next page",children:[(0,t.jsx)("span",{className:"hidden sm:inline",children:"Next"}),(0,t.jsx)(s.ChevronRight,{className:"w-4 h-4"})]})]})}e.s(["default",()=>a],73520)},80060,2711,e=>{"use strict";var t=e.i(18566),r=e.i(71645);function s(){let e=(0,t.useSearchParams)(),s=(0,t.useRouter)(),a=(0,t.usePathname)(),n=(0,r.useRef)(null),l=(0,r.useCallback)(t=>e.get(t),[e]),o=(0,r.useCallback)(()=>new URLSearchParams(e.toString()),[e]),i=(0,r.useCallback)(t=>{n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{let r=new URLSearchParams(e.toString());for(let[e,s]of Object.entries(t))void 0===s||""===s?r.delete(e):r.set(e,s);let n=r.toString(),l=n?`${a}?${n}`:a;s.replace(l,{scroll:!1})},150)},[e,a,s]);return(0,r.useEffect)(()=>()=>{n.current&&clearTimeout(n.current)},[]),{get:l,getAll:o,setAll:i}}function a(e){return"all"===e?void 0:e}function n(e){return e&&["all","last-hour","today","last-7-days","last-30-days","custom"].includes(e)?e:"all"}function l(e){let t={};return e.from&&(t.from=p(e.from)),e.to&&(t.to=p(e.to)),t}function o(e,t){return{from:h(e),to:h(t)}}function i(e){if(0!==e.length)return e.map(e=>encodeURIComponent(e)).join(",")}function d(e){return e?e.split(",").map(e=>decodeURIComponent(e.trim())).filter(e=>e.length>0):[]}function c(e){return e<=1?void 0:String(e)}function u(e){if(!e)return 1;let t=parseInt(e,10);return Number.isFinite(t)&&t>=1?t:1}function m(e,t){switch(e.type){case"boolean":return"all"===t?void 0:t;case"number":if(t.min===e.min&&t.max===e.max)return;return`${t.min}~${t.max}`;case"string":if(t.size===e.values.length)return;return Array.from(t).map(e=>encodeURIComponent(e)).join(",");case"date":if(!t.from&&!t.to)return;return`${t.from??""},${t.to??""}`}}function x(e,t){if(null===t||""===t)return null;switch(e.type){case"boolean":if("true"===t||"false"===t)return t;return null;case"number":{let e=t.split("~");if(2!==e.length)return null;let r=parseFloat(e[0]),s=parseFloat(e[1]);if(!Number.isFinite(r)||!Number.isFinite(s))return null;return{min:r,max:s}}case"string":{let r=t.split(",").map(e=>decodeURIComponent(e.trim())).filter(t=>e.values.includes(t));if(0===r.length)return null;return new Set(r)}case"date":{let e=t.split(",");if(2!==e.length)return null;let r=e[0]||null,s=e[1]||null;if(!r&&!s||r&&!f(r)||s&&!f(s))return null;return{from:r,to:s}}}}function p(e){let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${s}`}function h(e){if(!e||!f(e))return null;let[t,r,s]=e.split("-").map(Number);return new Date(t,r-1,s,12,0,0)}function f(e){return/^\d{4}-\d{2}-\d{2}$/.test(e)&&!isNaN(Date.parse(e))}e.s(["useUrlParams",()=>s],80060),e.s(["activeFilterToParam",()=>m,"dateRangeToParams",()=>l,"keywordsToParam",()=>i,"pageToParam",()=>c,"paramToActiveFilter",()=>x,"paramToKeywords",()=>d,"paramToPage",()=>u,"paramToPreset",()=>n,"paramsToDateRange",()=>o,"presetToParam",()=>a],2711)},1742,e=>{"use strict";let t=(0,e.i(75254).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",()=>t],1742)},71689,e=>{"use strict";let t=(0,e.i(75254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",()=>t],71689)},64439,e=>{"use strict";var t=e.i(43476),r=e.i(71645),s=e.i(22016),a=e.i(71689);let n=(0,e.i(75254).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);var l=e.i(1742),o=e.i(16715),i=e.i(73520),d=e.i(95187);let c=(0,d.createServerReference)("40e99e994c9c95aa79066a1d6757d501e063437d44",d.callServer,void 0,d.findSourceMapURL,"getCompletedHistoryAction"),u=(0,d.createServerReference)("6078659c53034096f479f06f53b48c882308730e14",d.callServer,void 0,d.findSourceMapURL,"searchCompletedHistoryAction");var m=e.i(85881),x=e.i(80060),p=e.i(2711);function h(e){let t=Math.floor((Date.now()-e)/1e3);if(t<60)return`${t}s ago`;let r=Math.floor(t/60);if(r<60)return`${r}m ago`;let s=Math.floor(r/60);return`${s}h ago`}function f({type:e}){let r="eval"===e?"bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400":"action"===e?"bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400":"bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-400";return(0,t.jsx)("span",{className:`inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-medium ${r}`,children:e.toUpperCase()})}function g({priority:e}){let r=e<=0;return(0,t.jsx)("span",{className:`text-[0.6rem] font-medium px-1.5 py-0.5 rounded ${r?"bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400":"bg-muted text-muted-foreground"}`,children:r?"HIGH":"LOW"})}function b({projectName:e,sessionId:r}){return(0,t.jsx)(s.default,{href:`/project/${encodeURIComponent(e)}/session/${encodeURIComponent(r)}`,className:"text-blue-600 dark:text-blue-400 hover:underline truncate block max-w-[200px]",children:r})}function y(){let e,d,{intervalSec:y}=(0,m.useAutoRefresh)(),j=(0,x.useUrlParams)(),N=(0,r.useRef)(!1),[v,k]=(0,r.useState)(null),[w,S]=(0,r.useState)(null),[C,$]=(0,r.useState)(()=>{let e=j.get("tab");return"pending"===e||"processing"===e||"completed"===e?e:"processing"}),[P,R]=(0,r.useState)(()=>(0,p.paramToPage)(j.get("page"))),[T,I]=(0,r.useState)(null),A=(0,r.useRef)(C),[U,E]=(0,r.useState)(()=>{let e=j.get("type");return"eval"===e||"enrichment"===e||"action"===e?e:""}),[F,M]=(0,r.useState)(()=>j.get("item")??""),[L,D]=(0,r.useState)(()=>j.get("session")??""),z=(0,r.useRef)(null),H=(0,r.useRef)({filterType:U,filterItem:F,filterSession:L});H.current={filterType:U,filterItem:F,filterSession:L},(0,r.useEffect)(()=>{if(!N.current){N.current=!0;return}j.setAll({tab:"processing"===C?void 0:C,type:U||void 0,item:F||void 0,session:L||void 0,page:"completed"===C?(0,p.pageToParam)(P):void 0})},[C,U,F,L,P]);let q=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/queue-status",{cache:"no-store"});if(e.ok){let t=await e.json();k(t),S(null)}else S(`Failed to fetch: ${e.status}`)}catch{S("Network error")}},[]),O=(0,r.useCallback)(async e=>{try{let t,{filterType:r,filterItem:s,filterSession:a}=H.current;t=""!==r||""!==s||""!==a?await u({type:r||void 0,itemName:s||void 0,sessionId:a||void 0},e):await c(e),I(t)}catch{}},[]);(0,r.useEffect)(()=>{q();let e=setInterval(q,y>0?1e3*y:5e3);return()=>clearInterval(e)},[q,y]),(0,r.useEffect)(()=>{"completed"===C&&"completed"!==A.current&&(R(1),O(1)),A.current=C},[C,O]),(0,r.useEffect)(()=>{if("completed"===C)return z.current&&clearTimeout(z.current),z.current=setTimeout(()=>{R(1),O(1)},300),()=>{z.current&&clearTimeout(z.current)}},[U,F,L]),(0,r.useEffect)(()=>{if("completed"!==C)return;O(P);let e=setInterval(()=>O(P),y>0?1e3*y:5e3);return()=>clearInterval(e)},[P,C,O,y]),(0,r.useEffect)(()=>{"completed"===C&&y>0&&1===P&&T&&0===T.entries.length&&T.totalPages>1&&R(2)},[C,y,P,T]);let B=[{key:"pending",label:"In Queue",count:v?.pending.length??0},{key:"processing",label:"Processing",count:v?.processing.length??0},{key:"completed",label:"Processed"}];return(0,t.jsxs)("div",{className:"min-h-screen bg-background p-6 max-w-4xl mx-auto",children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsxs)(s.default,{href:"/",className:"inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground transition-colors",children:[(0,t.jsx)(a.ArrowLeft,{className:"h-4 w-4"}),"Back"]}),(0,t.jsx)("h1",{className:"text-2xl font-bold text-foreground mt-2",children:"Queue Details"})]}),w&&!v&&(0,t.jsxs)("div",{className:"bg-card border border-border rounded-lg p-4 text-center",children:[(0,t.jsx)("p",{className:"text-sm text-destructive mb-2",children:w}),(0,t.jsx)("button",{onClick:q,className:"text-xs text-primary hover:underline",children:"Retry"})]}),!v&&!w&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading..."}),v&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)("div",{className:"flex gap-1 border-b border-border",children:B.map(e=>(0,t.jsxs)("button",{onClick:()=>$(e.key),className:`px-4 py-2 text-sm font-medium border-b-2 transition-colors ${C===e.key?"border-primary text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,children:[e.label,null!=e.count&&(0,t.jsxs)("span",{className:"ml-1.5 text-xs text-muted-foreground",children:["(",e.count,")"]})]},e.key))}),(0,t.jsxs)("div",{className:"bg-card border border-border rounded-lg overflow-hidden",children:["pending"===C&&(0===v.pending.length?(0,t.jsx)("p",{className:"px-4 py-8 text-xs text-muted-foreground text-center",children:"No items in queue."}):(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full text-xs",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"text-left text-muted-foreground border-b border-border bg-muted/30",children:[(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Type"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Item"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Session"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Priority"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium text-right",children:"Queued"})]})}),(0,t.jsx)("tbody",{className:"divide-y divide-border/50",children:v.pending.map(e=>(0,t.jsxs)("tr",{className:"hover:bg-muted/20",children:[(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(f,{type:e.type})}),(0,t.jsx)("td",{className:"px-3 py-2 font-mono text-foreground",children:e.itemName}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(b,{projectName:e.projectName,sessionId:e.sessionId})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(g,{priority:e.priority})}),(0,t.jsx)("td",{className:"px-3 py-2 text-right text-muted-foreground",children:h(e.addedAt)})]},e.key))})]})})),"processing"===C&&(0===v.processing.length?(0,t.jsx)("p",{className:"px-4 py-8 text-xs text-muted-foreground text-center",children:"No items currently processing."}):(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full text-xs",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"text-left text-muted-foreground border-b border-border bg-muted/30",children:[(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Type"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Item"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Session"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Priority"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium text-right",children:"Started"})]})}),(0,t.jsx)("tbody",{className:"divide-y divide-border/50",children:v.processing.map(e=>(0,t.jsxs)("tr",{className:"hover:bg-muted/20",children:[(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(f,{type:e.type})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)(o.RefreshCw,{className:"w-3 h-3 text-blue-500 animate-spin flex-shrink-0"}),(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.itemName})]})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(b,{projectName:e.projectName,sessionId:e.sessionId})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(g,{priority:e.priority})}),(0,t.jsx)("td",{className:"px-3 py-2 text-right text-muted-foreground",children:h(e.startedAt)})]},e.key))})]})})),"completed"===C&&(e=T?.entries??v.completed,d=T?.totalPages??1,(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-border bg-muted/30",children:[(0,t.jsxs)("select",{value:U,onChange:e=>E(e.target.value),className:"h-7 rounded border border-border bg-background px-2 text-xs text-foreground",children:[(0,t.jsx)("option",{value:"",children:"All Types"}),(0,t.jsx)("option",{value:"eval",children:"Eval"}),(0,t.jsx)("option",{value:"enrichment",children:"Enrichment"}),(0,t.jsx)("option",{value:"action",children:"Action"})]}),(0,t.jsx)("input",{type:"text",value:F,onChange:e=>M(e.target.value),placeholder:"Filter by item...",className:"h-7 rounded border border-border bg-background px-2 text-xs text-foreground placeholder:text-muted-foreground w-40"}),(0,t.jsx)("input",{type:"text",value:L,onChange:e=>D(e.target.value),placeholder:"Filter by session...",className:"h-7 rounded border border-border bg-background px-2 text-xs text-foreground placeholder:text-muted-foreground w-40"})]}),0===e.length?(0,t.jsx)("p",{className:"px-4 py-8 text-xs text-muted-foreground text-center",children:"No completed items."}):(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full text-xs",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"text-left text-muted-foreground border-b border-border bg-muted/30",children:[(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Type"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Item"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Session"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Duration"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Status"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium text-right",children:"Completed"})]})}),(0,t.jsx)("tbody",{className:"divide-y divide-border/50",children:e.map((e,r)=>(0,t.jsxs)("tr",{className:"hover:bg-muted/20",children:[(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(f,{type:e.type})}),(0,t.jsx)("td",{className:"px-3 py-2 font-mono text-foreground",children:e.itemName}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(b,{projectName:e.projectName,sessionId:e.sessionId})}),(0,t.jsx)("td",{className:"px-3 py-2 text-muted-foreground",children:function(e){if(e<1e3)return`${e}ms`;let t=(e/1e3).toFixed(1);return`${t}s`}(e.durationMs)}),(0,t.jsx)("td",{className:"px-3 py-2",children:e.success?(0,t.jsx)(n,{className:"h-3.5 w-3.5 text-green-600 dark:text-green-400"}):(0,t.jsx)(l.XCircle,{className:"h-3.5 w-3.5 text-red-600 dark:text-red-400"})}),(0,t.jsx)("td",{className:"px-3 py-2 text-right text-muted-foreground",children:new Date(e.completedAt).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})})]},`${e.key}-${e.completedAt}-${r}`))})]})}),(0,t.jsx)(i.default,{currentPage:P,totalPages:d,onPageChange:R})]}))]}),v.recentErrors.length>0&&(0,t.jsxs)("section",{className:"bg-card border border-border rounded-lg p-4",children:[(0,t.jsxs)("h2",{className:"text-sm font-semibold text-foreground mb-2",children:["Recent Errors",(0,t.jsxs)("span",{className:"ml-2 text-xs font-normal text-muted-foreground",children:["(",v.recentErrors.length,")"]})]}),(0,t.jsx)("div",{className:"space-y-1",children:v.recentErrors.map((e,r)=>(0,t.jsxs)("div",{className:"text-xs bg-muted/30 rounded px-2 py-1 flex items-start gap-2",children:[(0,t.jsx)("span",{className:"font-mono text-muted-foreground shrink-0",children:e.key}),(0,t.jsx)("span",{className:"text-red-500 break-all",children:e.error}),(0,t.jsx)("span",{className:"text-muted-foreground shrink-0 ml-auto",children:h(e.at)})]},`${e.key}-${e.at}-${r}`))})]})]})]})}e.s(["default",()=>y],64439)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,63059,e=>{"use strict";let t=(0,e.i(75254).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],63059)},73520,e=>{"use strict";var t=e.i(43476);let r=(0,e.i(75254).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);var s=e.i(63059);function a({currentPage:e,totalPages:a,onPageChange:n}){if(a<=1)return null;let l=e=>`px-3 py-2 text-sm rounded-md transition-colors flex items-center gap-1 bg-muted text-muted-foreground ${e?"opacity-50 cursor-not-allowed":"hover:bg-muted/80"}`;return(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 py-4",children:[(0,t.jsxs)("button",{onClick:()=>n(e-1),disabled:1===e,className:l(1===e),"aria-label":"Previous page",children:[(0,t.jsx)(r,{className:"w-4 h-4"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:"Previous"})]}),(0,t.jsx)("div",{className:"flex items-center gap-1",children:(()=>{if(a<=7)return Array.from({length:a},(e,t)=>t+1);let t=[1],r=Math.max(2,e-1),s=Math.min(a-1,e+1);e<=3&&(s=Math.min(5,a-1)),e>=a-2&&(r=Math.max(2,a-4)),r>2&&t.push("ellipsis-start");for(let e=r;e<=s;e++)t.push(e);return s<a-1&&t.push("ellipsis-end"),t.push(a),t})().map(r=>"string"==typeof r?(0,t.jsx)("span",{className:"px-2 text-muted-foreground",children:"..."},r):(0,t.jsx)("button",{onClick:()=>n(r),className:`min-w-[2.5rem] px-3 py-2 text-sm rounded-md transition-colors ${e===r?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"}`,"aria-label":`Page ${r}`,"aria-current":e===r?"page":void 0,children:r},r))}),(0,t.jsxs)("button",{onClick:()=>n(e+1),disabled:e===a,className:l(e===a),"aria-label":"Next page",children:[(0,t.jsx)("span",{className:"hidden sm:inline",children:"Next"}),(0,t.jsx)(s.ChevronRight,{className:"w-4 h-4"})]})]})}e.s(["default",()=>a],73520)},80060,2711,e=>{"use strict";var t=e.i(18566),r=e.i(71645);function s(){let e=(0,t.useSearchParams)(),s=(0,t.useRouter)(),a=(0,t.usePathname)(),n=(0,r.useRef)(null),l=(0,r.useCallback)(t=>e.get(t),[e]),o=(0,r.useCallback)(()=>new URLSearchParams(e.toString()),[e]),i=(0,r.useCallback)(t=>{n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{let r=new URLSearchParams(e.toString());for(let[e,s]of Object.entries(t))void 0===s||""===s?r.delete(e):r.set(e,s);let n=r.toString(),l=n?`${a}?${n}`:a;s.replace(l,{scroll:!1})},150)},[e,a,s]);return(0,r.useEffect)(()=>()=>{n.current&&clearTimeout(n.current)},[]),{get:l,getAll:o,setAll:i}}function a(e){return"all"===e?void 0:e}function n(e){return e&&["all","last-hour","today","last-7-days","last-30-days","custom"].includes(e)?e:"all"}function l(e){let t={};return e.from&&(t.from=p(e.from)),e.to&&(t.to=p(e.to)),t}function o(e,t){return{from:h(e),to:h(t)}}function i(e){if(0!==e.length)return e.map(e=>encodeURIComponent(e)).join(",")}function d(e){return e?e.split(",").map(e=>decodeURIComponent(e.trim())).filter(e=>e.length>0):[]}function c(e){return e<=1?void 0:String(e)}function u(e){if(!e)return 1;let t=parseInt(e,10);return Number.isFinite(t)&&t>=1?t:1}function m(e,t){switch(e.type){case"boolean":return"all"===t?void 0:t;case"number":if(t.min===e.min&&t.max===e.max)return;return`${t.min}~${t.max}`;case"string":if(t.size===e.values.length)return;return Array.from(t).map(e=>encodeURIComponent(e)).join(",");case"date":if(!t.from&&!t.to)return;return`${t.from??""},${t.to??""}`}}function x(e,t){if(null===t||""===t)return null;switch(e.type){case"boolean":if("true"===t||"false"===t)return t;return null;case"number":{let e=t.split("~");if(2!==e.length)return null;let r=parseFloat(e[0]),s=parseFloat(e[1]);if(!Number.isFinite(r)||!Number.isFinite(s))return null;return{min:r,max:s}}case"string":{let r=t.split(",").map(e=>decodeURIComponent(e.trim())).filter(t=>e.values.includes(t));if(0===r.length)return null;return new Set(r)}case"date":{let e=t.split(",");if(2!==e.length)return null;let r=e[0]||null,s=e[1]||null;if(!r&&!s||r&&!f(r)||s&&!f(s))return null;return{from:r,to:s}}}}function p(e){let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${s}`}function h(e){if(!e||!f(e))return null;let[t,r,s]=e.split("-").map(Number);return new Date(t,r-1,s,12,0,0)}function f(e){return/^\d{4}-\d{2}-\d{2}$/.test(e)&&!isNaN(Date.parse(e))}e.s(["useUrlParams",()=>s],80060),e.s(["activeFilterToParam",()=>m,"dateRangeToParams",()=>l,"keywordsToParam",()=>i,"pageToParam",()=>c,"paramToActiveFilter",()=>x,"paramToKeywords",()=>d,"paramToPage",()=>u,"paramToPreset",()=>n,"paramsToDateRange",()=>o,"presetToParam",()=>a],2711)},1742,e=>{"use strict";let t=(0,e.i(75254).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",()=>t],1742)},71689,e=>{"use strict";let t=(0,e.i(75254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",()=>t],71689)},64439,e=>{"use strict";var t=e.i(43476),r=e.i(71645),s=e.i(22016),a=e.i(71689);let n=(0,e.i(75254).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);var l=e.i(1742),o=e.i(16715),i=e.i(73520),d=e.i(95187);let c=(0,d.createServerReference)("4075b085a08ad47f7101728857c3de9754f7bc523a",d.callServer,void 0,d.findSourceMapURL,"getCompletedHistoryAction"),u=(0,d.createServerReference)("6015e71aca2ee5feba0b854a0a0a855014cfb501ef",d.callServer,void 0,d.findSourceMapURL,"searchCompletedHistoryAction");var m=e.i(85881),x=e.i(80060),p=e.i(2711);function h(e){let t=Math.floor((Date.now()-e)/1e3);if(t<60)return`${t}s ago`;let r=Math.floor(t/60);if(r<60)return`${r}m ago`;let s=Math.floor(r/60);return`${s}h ago`}function f({type:e}){let r="eval"===e?"bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400":"action"===e?"bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400":"bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-400";return(0,t.jsx)("span",{className:`inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-medium ${r}`,children:e.toUpperCase()})}function g({priority:e}){let r=e<=0;return(0,t.jsx)("span",{className:`text-[0.6rem] font-medium px-1.5 py-0.5 rounded ${r?"bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400":"bg-muted text-muted-foreground"}`,children:r?"HIGH":"LOW"})}function b({projectName:e,sessionId:r}){return(0,t.jsx)(s.default,{href:`/project/${encodeURIComponent(e)}/session/${encodeURIComponent(r)}`,className:"text-blue-600 dark:text-blue-400 hover:underline truncate block max-w-[200px]",children:r})}function y(){let e,d,{intervalSec:y}=(0,m.useAutoRefresh)(),j=(0,x.useUrlParams)(),N=(0,r.useRef)(!1),[v,k]=(0,r.useState)(null),[w,S]=(0,r.useState)(null),[C,$]=(0,r.useState)(()=>{let e=j.get("tab");return"pending"===e||"processing"===e||"completed"===e?e:"processing"}),[P,R]=(0,r.useState)(()=>(0,p.paramToPage)(j.get("page"))),[T,I]=(0,r.useState)(null),A=(0,r.useRef)(C),[U,E]=(0,r.useState)(()=>{let e=j.get("type");return"eval"===e||"enrichment"===e||"action"===e?e:""}),[F,M]=(0,r.useState)(()=>j.get("item")??""),[L,D]=(0,r.useState)(()=>j.get("session")??""),z=(0,r.useRef)(null),H=(0,r.useRef)({filterType:U,filterItem:F,filterSession:L});H.current={filterType:U,filterItem:F,filterSession:L},(0,r.useEffect)(()=>{if(!N.current){N.current=!0;return}j.setAll({tab:"processing"===C?void 0:C,type:U||void 0,item:F||void 0,session:L||void 0,page:"completed"===C?(0,p.pageToParam)(P):void 0})},[C,U,F,L,P]);let q=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/queue-status",{cache:"no-store"});if(e.ok){let t=await e.json();k(t),S(null)}else S(`Failed to fetch: ${e.status}`)}catch{S("Network error")}},[]),O=(0,r.useCallback)(async e=>{try{let t,{filterType:r,filterItem:s,filterSession:a}=H.current;t=""!==r||""!==s||""!==a?await u({type:r||void 0,itemName:s||void 0,sessionId:a||void 0},e):await c(e),I(t)}catch{}},[]);(0,r.useEffect)(()=>{q();let e=setInterval(q,y>0?1e3*y:5e3);return()=>clearInterval(e)},[q,y]),(0,r.useEffect)(()=>{"completed"===C&&"completed"!==A.current&&(R(1),O(1)),A.current=C},[C,O]),(0,r.useEffect)(()=>{if("completed"===C)return z.current&&clearTimeout(z.current),z.current=setTimeout(()=>{R(1),O(1)},300),()=>{z.current&&clearTimeout(z.current)}},[U,F,L]),(0,r.useEffect)(()=>{if("completed"!==C)return;O(P);let e=setInterval(()=>O(P),y>0?1e3*y:5e3);return()=>clearInterval(e)},[P,C,O,y]),(0,r.useEffect)(()=>{"completed"===C&&y>0&&1===P&&T&&0===T.entries.length&&T.totalPages>1&&R(2)},[C,y,P,T]);let B=[{key:"pending",label:"In Queue",count:v?.pending.length??0},{key:"processing",label:"Processing",count:v?.processing.length??0},{key:"completed",label:"Processed"}];return(0,t.jsxs)("div",{className:"min-h-screen bg-background p-6 max-w-4xl mx-auto",children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsxs)(s.default,{href:"/",className:"inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground transition-colors",children:[(0,t.jsx)(a.ArrowLeft,{className:"h-4 w-4"}),"Back"]}),(0,t.jsx)("h1",{className:"text-2xl font-bold text-foreground mt-2",children:"Queue Details"})]}),w&&!v&&(0,t.jsxs)("div",{className:"bg-card border border-border rounded-lg p-4 text-center",children:[(0,t.jsx)("p",{className:"text-sm text-destructive mb-2",children:w}),(0,t.jsx)("button",{onClick:q,className:"text-xs text-primary hover:underline",children:"Retry"})]}),!v&&!w&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading..."}),v&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)("div",{className:"flex gap-1 border-b border-border",children:B.map(e=>(0,t.jsxs)("button",{onClick:()=>$(e.key),className:`px-4 py-2 text-sm font-medium border-b-2 transition-colors ${C===e.key?"border-primary text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,children:[e.label,null!=e.count&&(0,t.jsxs)("span",{className:"ml-1.5 text-xs text-muted-foreground",children:["(",e.count,")"]})]},e.key))}),(0,t.jsxs)("div",{className:"bg-card border border-border rounded-lg overflow-hidden",children:["pending"===C&&(0===v.pending.length?(0,t.jsx)("p",{className:"px-4 py-8 text-xs text-muted-foreground text-center",children:"No items in queue."}):(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full text-xs",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"text-left text-muted-foreground border-b border-border bg-muted/30",children:[(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Type"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Item"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Session"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Priority"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium text-right",children:"Queued"})]})}),(0,t.jsx)("tbody",{className:"divide-y divide-border/50",children:v.pending.map(e=>(0,t.jsxs)("tr",{className:"hover:bg-muted/20",children:[(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(f,{type:e.type})}),(0,t.jsx)("td",{className:"px-3 py-2 font-mono text-foreground",children:e.itemName}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(b,{projectName:e.projectName,sessionId:e.sessionId})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(g,{priority:e.priority})}),(0,t.jsx)("td",{className:"px-3 py-2 text-right text-muted-foreground",children:h(e.addedAt)})]},e.key))})]})})),"processing"===C&&(0===v.processing.length?(0,t.jsx)("p",{className:"px-4 py-8 text-xs text-muted-foreground text-center",children:"No items currently processing."}):(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full text-xs",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"text-left text-muted-foreground border-b border-border bg-muted/30",children:[(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Type"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Item"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Session"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Priority"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium text-right",children:"Started"})]})}),(0,t.jsx)("tbody",{className:"divide-y divide-border/50",children:v.processing.map(e=>(0,t.jsxs)("tr",{className:"hover:bg-muted/20",children:[(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(f,{type:e.type})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)(o.RefreshCw,{className:"w-3 h-3 text-blue-500 animate-spin flex-shrink-0"}),(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.itemName})]})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(b,{projectName:e.projectName,sessionId:e.sessionId})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(g,{priority:e.priority})}),(0,t.jsx)("td",{className:"px-3 py-2 text-right text-muted-foreground",children:h(e.startedAt)})]},e.key))})]})})),"completed"===C&&(e=T?.entries??v.completed,d=T?.totalPages??1,(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-border bg-muted/30",children:[(0,t.jsxs)("select",{value:U,onChange:e=>E(e.target.value),className:"h-7 rounded border border-border bg-background px-2 text-xs text-foreground",children:[(0,t.jsx)("option",{value:"",children:"All Types"}),(0,t.jsx)("option",{value:"eval",children:"Eval"}),(0,t.jsx)("option",{value:"enrichment",children:"Enrichment"}),(0,t.jsx)("option",{value:"action",children:"Action"})]}),(0,t.jsx)("input",{type:"text",value:F,onChange:e=>M(e.target.value),placeholder:"Filter by item...",className:"h-7 rounded border border-border bg-background px-2 text-xs text-foreground placeholder:text-muted-foreground w-40"}),(0,t.jsx)("input",{type:"text",value:L,onChange:e=>D(e.target.value),placeholder:"Filter by session...",className:"h-7 rounded border border-border bg-background px-2 text-xs text-foreground placeholder:text-muted-foreground w-40"})]}),0===e.length?(0,t.jsx)("p",{className:"px-4 py-8 text-xs text-muted-foreground text-center",children:"No completed items."}):(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full text-xs",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"text-left text-muted-foreground border-b border-border bg-muted/30",children:[(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Type"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Item"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Session"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Duration"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium",children:"Status"}),(0,t.jsx)("th",{className:"px-3 py-2 font-medium text-right",children:"Completed"})]})}),(0,t.jsx)("tbody",{className:"divide-y divide-border/50",children:e.map((e,r)=>(0,t.jsxs)("tr",{className:"hover:bg-muted/20",children:[(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(f,{type:e.type})}),(0,t.jsx)("td",{className:"px-3 py-2 font-mono text-foreground",children:e.itemName}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(b,{projectName:e.projectName,sessionId:e.sessionId})}),(0,t.jsx)("td",{className:"px-3 py-2 text-muted-foreground",children:function(e){if(e<1e3)return`${e}ms`;let t=(e/1e3).toFixed(1);return`${t}s`}(e.durationMs)}),(0,t.jsx)("td",{className:"px-3 py-2",children:e.success?(0,t.jsx)(n,{className:"h-3.5 w-3.5 text-green-600 dark:text-green-400"}):(0,t.jsx)(l.XCircle,{className:"h-3.5 w-3.5 text-red-600 dark:text-red-400"})}),(0,t.jsx)("td",{className:"px-3 py-2 text-right text-muted-foreground",children:new Date(e.completedAt).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})})]},`${e.key}-${e.completedAt}-${r}`))})]})}),(0,t.jsx)(i.default,{currentPage:P,totalPages:d,onPageChange:R})]}))]}),v.recentErrors.length>0&&(0,t.jsxs)("section",{className:"bg-card border border-border rounded-lg p-4",children:[(0,t.jsxs)("h2",{className:"text-sm font-semibold text-foreground mb-2",children:["Recent Errors",(0,t.jsxs)("span",{className:"ml-2 text-xs font-normal text-muted-foreground",children:["(",v.recentErrors.length,")"]})]}),(0,t.jsx)("div",{className:"space-y-1",children:v.recentErrors.map((e,r)=>(0,t.jsxs)("div",{className:"text-xs bg-muted/30 rounded px-2 py-1 flex items-start gap-2",children:[(0,t.jsx)("span",{className:"font-mono text-muted-foreground shrink-0",children:e.key}),(0,t.jsx)("span",{className:"text-red-500 break-all",children:e.error}),(0,t.jsx)("span",{className:"text-muted-foreground shrink-0 ml-auto",children:h(e.at)})]},`${e.key}-${e.at}-${r}`))})]})]})]})}e.s(["default",()=>y],64439)}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,63059,e=>{"use strict";let t=(0,e.i(75254).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],63059)},73520,e=>{"use strict";var t=e.i(43476);let r=(0,e.i(75254).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);var s=e.i(63059);function n({currentPage:e,totalPages:n,onPageChange:a}){if(n<=1)return null;let o=e=>`px-3 py-2 text-sm rounded-md transition-colors flex items-center gap-1 bg-muted text-muted-foreground ${e?"opacity-50 cursor-not-allowed":"hover:bg-muted/80"}`;return(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 py-4",children:[(0,t.jsxs)("button",{onClick:()=>a(e-1),disabled:1===e,className:o(1===e),"aria-label":"Previous page",children:[(0,t.jsx)(r,{className:"w-4 h-4"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:"Previous"})]}),(0,t.jsx)("div",{className:"flex items-center gap-1",children:(()=>{if(n<=7)return Array.from({length:n},(e,t)=>t+1);let t=[1],r=Math.max(2,e-1),s=Math.min(n-1,e+1);e<=3&&(s=Math.min(5,n-1)),e>=n-2&&(r=Math.max(2,n-4)),r>2&&t.push("ellipsis-start");for(let e=r;e<=s;e++)t.push(e);return s<n-1&&t.push("ellipsis-end"),t.push(n),t})().map(r=>"string"==typeof r?(0,t.jsx)("span",{className:"px-2 text-muted-foreground",children:"..."},r):(0,t.jsx)("button",{onClick:()=>a(r),className:`min-w-[2.5rem] px-3 py-2 text-sm rounded-md transition-colors ${e===r?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"}`,"aria-label":`Page ${r}`,"aria-current":e===r?"page":void 0,children:r},r))}),(0,t.jsxs)("button",{onClick:()=>a(e+1),disabled:e===n,className:o(e===n),"aria-label":"Next page",children:[(0,t.jsx)("span",{className:"hidden sm:inline",children:"Next"}),(0,t.jsx)(s.ChevronRight,{className:"w-4 h-4"})]})]})}e.s(["default",()=>n],73520)},80060,2711,e=>{"use strict";var t=e.i(18566),r=e.i(71645);function s(){let e=(0,t.useSearchParams)(),s=(0,t.useRouter)(),n=(0,t.usePathname)(),a=(0,r.useRef)(null),o=(0,r.useCallback)(t=>e.get(t),[e]),l=(0,r.useCallback)(()=>new URLSearchParams(e.toString()),[e]),i=(0,r.useCallback)(t=>{a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{let r=new URLSearchParams(e.toString());for(let[e,s]of Object.entries(t))void 0===s||""===s?r.delete(e):r.set(e,s);let a=r.toString(),o=a?`${n}?${a}`:n;s.replace(o,{scroll:!1})},150)},[e,n,s]);return(0,r.useEffect)(()=>()=>{a.current&&clearTimeout(a.current)},[]),{get:o,getAll:l,setAll:i}}function n(e){return"all"===e?void 0:e}function a(e){return e&&["all","last-hour","today","last-7-days","last-30-days","custom"].includes(e)?e:"all"}function o(e){let t={};return e.from&&(t.from=p(e.from)),e.to&&(t.to=p(e.to)),t}function l(e,t){return{from:h(e),to:h(t)}}function i(e){if(0!==e.length)return e.map(e=>encodeURIComponent(e)).join(",")}function d(e){return e?e.split(",").map(e=>decodeURIComponent(e.trim())).filter(e=>e.length>0):[]}function c(e){return e<=1?void 0:String(e)}function u(e){if(!e)return 1;let t=parseInt(e,10);return Number.isFinite(t)&&t>=1?t:1}function m(e,t){switch(e.type){case"boolean":return"all"===t?void 0:t;case"number":if(t.min===e.min&&t.max===e.max)return;return`${t.min}~${t.max}`;case"string":if(t.size===e.values.length)return;return Array.from(t).map(e=>encodeURIComponent(e)).join(",");case"date":if(!t.from&&!t.to)return;return`${t.from??""},${t.to??""}`}}function x(e,t){if(null===t||""===t)return null;switch(e.type){case"boolean":if("true"===t||"false"===t)return t;return null;case"number":{let e=t.split("~");if(2!==e.length)return null;let r=parseFloat(e[0]),s=parseFloat(e[1]);if(!Number.isFinite(r)||!Number.isFinite(s))return null;return{min:r,max:s}}case"string":{let r=t.split(",").map(e=>decodeURIComponent(e.trim())).filter(t=>e.values.includes(t));if(0===r.length)return null;return new Set(r)}case"date":{let e=t.split(",");if(2!==e.length)return null;let r=e[0]||null,s=e[1]||null;if(!r&&!s||r&&!f(r)||s&&!f(s))return null;return{from:r,to:s}}}}function p(e){let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${s}`}function h(e){if(!e||!f(e))return null;let[t,r,s]=e.split("-").map(Number);return new Date(t,r-1,s,12,0,0)}function f(e){return/^\d{4}-\d{2}-\d{2}$/.test(e)&&!isNaN(Date.parse(e))}e.s(["useUrlParams",()=>s],80060),e.s(["activeFilterToParam",()=>m,"dateRangeToParams",()=>o,"keywordsToParam",()=>i,"pageToParam",()=>c,"paramToActiveFilter",()=>x,"paramToKeywords",()=>d,"paramToPage",()=>u,"paramToPreset",()=>a,"paramsToDateRange",()=>l,"presetToParam",()=>n],2711)},74886,43531,e=>{"use strict";var t=e.i(75254);let r=(0,t.default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>r],74886);let s=(0,t.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",()=>s],43531)},71689,e=>{"use strict";let t=(0,e.i(75254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",()=>t],71689)},93938,e=>{"use strict";var t=e.i(43476),r=e.i(71645),s=e.i(22016),n=e.i(71689),a=e.i(75254);let o=(0,a.default)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),l=(0,a.default)("shield-x",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]),i=(0,a.default)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);var d=e.i(98919),c=e.i(64659),u=e.i(74886),m=e.i(43531),x=e.i(73520),p=e.i(95187);let h=(0,p.createServerReference)("40e87c81d95c5d252392da647533ff7d92fc1a5282",p.callServer,void 0,p.findSourceMapURL,"getHookActivityAction"),f=(0,p.createServerReference)("608e8bf08e8be168029e53262e1534ce1d7f188bbc",p.callServer,void 0,p.findSourceMapURL,"searchHookActivityAction");var g=e.i(85881),b=e.i(80060),y=e.i(2711);function v({decision:e}){return"deny"===e?(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[0.65rem] font-semibold tracking-wide uppercase bg-red-500/10 text-red-400 border border-red-500/20",children:[(0,t.jsx)(l,{className:"h-3 w-3"}),"Deny"]}):"instruct"===e?(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[0.65rem] font-semibold tracking-wide uppercase bg-amber-500/10 text-amber-400 border border-amber-500/20",children:[(0,t.jsx)(i,{className:"h-3 w-3"}),"Instruct"]}):(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[0.65rem] font-semibold tracking-wide uppercase bg-emerald-500/10 text-emerald-400 border border-emerald-500/20",children:[(0,t.jsx)(o,{className:"h-3 w-3"}),"Allow"]})}function j({eventType:e}){return(0,t.jsx)("span",{className:"inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-medium bg-muted text-muted-foreground border border-border/50",children:e})}function N({mode:e}){let r="default"===e;return(0,t.jsx)("span",{className:`inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-medium border ${r?"bg-sky-500/10 text-sky-400 border-sky-500/20":"bg-amber-500/10 text-amber-400 border-amber-500/20"}`,children:e})}function w({ms:e}){return(0,t.jsx)("span",{className:`font-mono text-[0.7rem] ${e>500?"text-red-400":e>100?"text-amber-400":"text-muted-foreground"}`,children:e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`})}function k({text:e}){let[s,n]=(0,r.useState)(!1),a=async t=>{t.stopPropagation();try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1500)}catch{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),n(!0),setTimeout(()=>n(!1),1500)}};return(0,t.jsx)("button",{onClick:a,className:"inline-flex items-center justify-center h-5 w-5 rounded hover:bg-muted/50 text-muted-foreground hover:text-foreground transition-colors",title:"Copy",children:s?(0,t.jsx)(m.Check,{className:"h-3 w-3 text-emerald-400"}):(0,t.jsx)(u.Copy,{className:"h-3 w-3"})})}function C({value:e,onChange:r}){return(0,t.jsx)("div",{className:"inline-flex items-center rounded-md border border-border bg-muted/30 p-0.5",children:[{label:"All",value:""},{label:"Allow",value:"allow"},{label:"Instruct",value:"instruct"},{label:"Deny",value:"deny"}].map(s=>(0,t.jsx)("button",{onClick:()=>r(s.value),className:`px-2.5 py-1 text-[0.65rem] font-medium rounded transition-all ${e===s.value?"deny"===s.value?"bg-red-500/15 text-red-400 shadow-sm":"allow"===s.value?"bg-emerald-500/15 text-emerald-400 shadow-sm":"instruct"===s.value?"bg-amber-500/15 text-amber-400 shadow-sm":"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:s.label},s.value))})}function S({stats:e}){let r=e.totalEvents>0?(e.denyCount/e.totalEvents*100).toFixed(0):"0";return(0,t.jsxs)("div",{className:"flex items-center gap-6 text-[0.7rem] text-muted-foreground",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-foreground font-mono font-semibold",children:e.totalEvents})," total events"]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("span",{className:`font-mono font-semibold ${e.denyCount>0?"text-red-400":"text-foreground"}`,children:[r,"%"]})," ","deny rate"]}),(0,t.jsxs)("div",{className:"hidden sm:block",children:["top policy:"," ",(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.topPolicy??"—"})]})]})}function P({item:e}){return(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:10,className:"px-0 py-0",children:(0,t.jsxs)("div",{className:"px-6 py-3 bg-muted/20 border-t border-border/30 space-y-2 text-xs animate-in fade-in slide-in-from-top-1 duration-150",children:[(0,t.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-x-8 gap-y-1.5",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"Session ID: "}),(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.sessionId??"—"}),e.sessionId&&(0,t.jsx)(k,{text:e.sessionId})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"CWD: "}),(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.cwd??"—"}),e.cwd&&(0,t.jsx)(k,{text:e.cwd})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"Transcript: "}),(0,t.jsx)("span",{className:"font-mono text-foreground break-all",children:e.transcriptPath??"—"})]})]}),e.reason&&(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"Full reason: "}),(0,t.jsx)("span",{className:"text-foreground",children:e.reason})]})]})})})}function T(){let{intervalSec:e}=(0,g.useAutoRefresh)(),a=(0,b.useUrlParams)(),o=(0,r.useRef)(!1),[l,i]=(0,r.useState)(()=>(0,y.paramToPage)(a.get("page"))),[u,m]=(0,r.useState)(null),[p,k]=(0,r.useState)(null),[T,$]=(0,r.useState)(()=>{let e=a.get("decision");return"allow"===e||"deny"===e||"instruct"===e?e:""}),[R,M]=(0,r.useState)(()=>a.get("event")??""),[A,U]=(0,r.useState)(()=>a.get("policy")??""),I=(0,r.useRef)(null),D=(0,r.useRef)({filterDecision:T,filterEventType:R,filterPolicy:A});D.current={filterDecision:T,filterEventType:R,filterPolicy:A},(0,r.useEffect)(()=>{if(!o.current){o.current=!0;return}a.setAll({decision:T||void 0,event:R||void 0,policy:A||void 0,page:(0,y.pageToParam)(l)})},[T,R,A,l]);let E=""!==T||""!==R||""!==A,F=(0,r.useCallback)(async e=>{try{let t,{filterDecision:r,filterEventType:s,filterPolicy:n}=D.current;t=""!==r||""!==s||""!==n?await f({decision:r||void 0,eventType:s||void 0,policyName:n||void 0},e):await h(e),m(t)}catch{}},[]);(0,r.useEffect)(()=>{F(l);let t=setInterval(()=>F(l),e>0?1e3*e:5e3);return()=>clearInterval(t)},[l,F,e]),(0,r.useEffect)(()=>(I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{i(1),k(null),F(1)},300),()=>{I.current&&clearTimeout(I.current)}),[T,R,A]);let z=u?.entries??[],L=u?.totalPages??1;return(0,t.jsxs)("div",{className:"min-h-screen bg-background px-4 py-6 sm:px-6 lg:px-10",children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsxs)(s.default,{href:"/",className:"inline-flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,t.jsx)(n.ArrowLeft,{className:"h-3.5 w-3.5"}),"Back"]}),(0,t.jsxs)("div",{className:"flex items-center gap-3 mt-3",children:[(0,t.jsx)("h1",{className:"text-2xl font-bold text-foreground tracking-tight",children:"Hook Activity"}),(0,t.jsxs)("span",{className:"relative flex h-2.5 w-2.5 mt-0.5",children:[(0,t.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-emerald-400 opacity-75"}),(0,t.jsx)("span",{className:"relative inline-flex rounded-full h-2.5 w-2.5 bg-emerald-500"})]})]}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground mt-1",children:"Policy evaluations from Claude Code hook events"}),u?.stats&&u.stats.totalEvents>0&&(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)(S,{stats:u.stats})})]}),(0,t.jsxs)("div",{className:"bg-card border border-border rounded-lg overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3 px-4 py-2.5 border-b border-border bg-muted/20",children:[(0,t.jsx)(C,{value:T,onChange:$}),(0,t.jsxs)("select",{value:R,onChange:e=>M(e.target.value),className:"h-7 rounded-md border border-border bg-background px-2 text-xs text-foreground focus:outline-none focus:ring-2 focus:ring-primary/40 focus:border-primary/40 transition-shadow",children:[(0,t.jsx)("option",{value:"",children:"All Events"}),(0,t.jsx)("option",{value:"PreToolUse",children:"PreToolUse"}),(0,t.jsx)("option",{value:"PostToolUse",children:"PostToolUse"}),(0,t.jsx)("option",{value:"SessionStart",children:"SessionStart"}),(0,t.jsx)("option",{value:"SessionEnd",children:"SessionEnd"}),(0,t.jsx)("option",{value:"UserPromptSubmit",children:"UserPromptSubmit"}),(0,t.jsx)("option",{value:"PermissionRequest",children:"PermissionRequest"})]}),(0,t.jsx)("div",{className:"relative",children:(0,t.jsx)("input",{type:"text",value:A,onChange:e=>U(e.target.value),placeholder:"Filter by policy\\u2026",className:"h-7 rounded-md border border-border bg-background px-2.5 text-xs text-foreground placeholder:text-muted-foreground w-44 focus:outline-none focus:ring-2 focus:ring-primary/40 focus:border-primary/40 transition-shadow"})})]}),0===z.length?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 px-4",children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(d.Shield,{className:"h-12 w-12 text-muted-foreground/30"}),(0,t.jsx)("span",{className:"absolute inset-0 animate-ping",children:(0,t.jsx)(d.Shield,{className:"h-12 w-12 text-muted-foreground/10"})})]}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground mt-4",children:E?"No matching activity.":"Waiting for hook events…"})]}):(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full text-xs",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"text-left text-muted-foreground border-b border-border bg-muted/30",children:[(0,t.jsx)("th",{className:"px-4 py-2.5 font-medium w-6"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Decision"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Event"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Tool"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Policy"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Reason"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Duration"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Session"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Mode"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium text-right",children:"Time"})]})}),(0,t.jsx)("tbody",{className:"divide-y divide-border/30",children:z.map((e,s)=>{var n,a;let o,l="deny"===e.decision,i=p===s,d="instruct"===e.decision;return(0,t.jsxs)(r.default.Fragment,{children:[(0,t.jsxs)("tr",{onClick:()=>{k(e=>e===s?null:s)},className:`cursor-pointer transition-colors ${l?"bg-red-500/[0.03] hover:bg-red-500/[0.07] border-l-2 border-l-red-500/40":d?"bg-amber-500/[0.03] hover:bg-amber-500/[0.07] border-l-2 border-l-amber-500/40":s%2==0?"hover:bg-muted/30":"bg-muted/[0.04] hover:bg-muted/30"} ${i?"bg-muted/20":""}`,children:[(0,t.jsx)("td",{className:"px-4 py-2",children:(0,t.jsx)(c.ChevronDown,{className:`h-3.5 w-3.5 text-muted-foreground transition-transform duration-150 ${i?"rotate-0":"-rotate-90"}`})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(v,{decision:e.decision})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(j,{eventType:e.eventType})}),(0,t.jsx)("td",{className:"px-3 py-2 font-mono text-foreground",children:e.toolName??"—"}),(0,t.jsx)("td",{className:"px-3 py-2 font-mono text-foreground",children:e.policyName??"—"}),(0,t.jsx)("td",{className:"px-3 py-2 text-muted-foreground truncate max-w-[240px]",title:e.reason??"",children:e.reason??"—"}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(w,{ms:e.durationMs})}),(0,t.jsx)("td",{className:"px-3 py-2 font-mono text-muted-foreground",title:e.sessionId??"",children:(n=e.sessionId)?n.slice(0,8):"—"}),(0,t.jsx)("td",{className:"px-3 py-2",children:e.permissionMode?(0,t.jsx)(N,{mode:e.permissionMode}):"—"}),(0,t.jsx)("td",{className:"px-3 py-2 text-right text-muted-foreground whitespace-nowrap",title:new Date(e.timestamp).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"}),children:(a=e.timestamp,(o=Date.now()-a)<6e4?`${Math.max(1,Math.floor(o/1e3))}s ago`:o<36e5?`${Math.floor(o/6e4)}m ago`:o<864e5?`${Math.floor(o/36e5)}h ago`:`${Math.floor(o/864e5)}d ago`)})]}),i&&(0,t.jsx)(P,{item:e})]},`${e.timestamp}-${s}`)})})]})}),(0,t.jsx)(x.default,{currentPage:l,totalPages:L,onPageChange:e=>{i(e),k(null)}})]})]})}e.s(["default",()=>T],93938)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,63059,e=>{"use strict";let t=(0,e.i(75254).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],63059)},73520,e=>{"use strict";var t=e.i(43476);let r=(0,e.i(75254).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);var s=e.i(63059);function n({currentPage:e,totalPages:n,onPageChange:a}){if(n<=1)return null;let o=e=>`px-3 py-2 text-sm rounded-md transition-colors flex items-center gap-1 bg-muted text-muted-foreground ${e?"opacity-50 cursor-not-allowed":"hover:bg-muted/80"}`;return(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 py-4",children:[(0,t.jsxs)("button",{onClick:()=>a(e-1),disabled:1===e,className:o(1===e),"aria-label":"Previous page",children:[(0,t.jsx)(r,{className:"w-4 h-4"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:"Previous"})]}),(0,t.jsx)("div",{className:"flex items-center gap-1",children:(()=>{if(n<=7)return Array.from({length:n},(e,t)=>t+1);let t=[1],r=Math.max(2,e-1),s=Math.min(n-1,e+1);e<=3&&(s=Math.min(5,n-1)),e>=n-2&&(r=Math.max(2,n-4)),r>2&&t.push("ellipsis-start");for(let e=r;e<=s;e++)t.push(e);return s<n-1&&t.push("ellipsis-end"),t.push(n),t})().map(r=>"string"==typeof r?(0,t.jsx)("span",{className:"px-2 text-muted-foreground",children:"..."},r):(0,t.jsx)("button",{onClick:()=>a(r),className:`min-w-[2.5rem] px-3 py-2 text-sm rounded-md transition-colors ${e===r?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"}`,"aria-label":`Page ${r}`,"aria-current":e===r?"page":void 0,children:r},r))}),(0,t.jsxs)("button",{onClick:()=>a(e+1),disabled:e===n,className:o(e===n),"aria-label":"Next page",children:[(0,t.jsx)("span",{className:"hidden sm:inline",children:"Next"}),(0,t.jsx)(s.ChevronRight,{className:"w-4 h-4"})]})]})}e.s(["default",()=>n],73520)},80060,2711,e=>{"use strict";var t=e.i(18566),r=e.i(71645);function s(){let e=(0,t.useSearchParams)(),s=(0,t.useRouter)(),n=(0,t.usePathname)(),a=(0,r.useRef)(null),o=(0,r.useCallback)(t=>e.get(t),[e]),l=(0,r.useCallback)(()=>new URLSearchParams(e.toString()),[e]),i=(0,r.useCallback)(t=>{a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{let r=new URLSearchParams(e.toString());for(let[e,s]of Object.entries(t))void 0===s||""===s?r.delete(e):r.set(e,s);let a=r.toString(),o=a?`${n}?${a}`:n;s.replace(o,{scroll:!1})},150)},[e,n,s]);return(0,r.useEffect)(()=>()=>{a.current&&clearTimeout(a.current)},[]),{get:o,getAll:l,setAll:i}}function n(e){return"all"===e?void 0:e}function a(e){return e&&["all","last-hour","today","last-7-days","last-30-days","custom"].includes(e)?e:"all"}function o(e){let t={};return e.from&&(t.from=p(e.from)),e.to&&(t.to=p(e.to)),t}function l(e,t){return{from:h(e),to:h(t)}}function i(e){if(0!==e.length)return e.map(e=>encodeURIComponent(e)).join(",")}function d(e){return e?e.split(",").map(e=>decodeURIComponent(e.trim())).filter(e=>e.length>0):[]}function c(e){return e<=1?void 0:String(e)}function u(e){if(!e)return 1;let t=parseInt(e,10);return Number.isFinite(t)&&t>=1?t:1}function m(e,t){switch(e.type){case"boolean":return"all"===t?void 0:t;case"number":if(t.min===e.min&&t.max===e.max)return;return`${t.min}~${t.max}`;case"string":if(t.size===e.values.length)return;return Array.from(t).map(e=>encodeURIComponent(e)).join(",");case"date":if(!t.from&&!t.to)return;return`${t.from??""},${t.to??""}`}}function x(e,t){if(null===t||""===t)return null;switch(e.type){case"boolean":if("true"===t||"false"===t)return t;return null;case"number":{let e=t.split("~");if(2!==e.length)return null;let r=parseFloat(e[0]),s=parseFloat(e[1]);if(!Number.isFinite(r)||!Number.isFinite(s))return null;return{min:r,max:s}}case"string":{let r=t.split(",").map(e=>decodeURIComponent(e.trim())).filter(t=>e.values.includes(t));if(0===r.length)return null;return new Set(r)}case"date":{let e=t.split(",");if(2!==e.length)return null;let r=e[0]||null,s=e[1]||null;if(!r&&!s||r&&!f(r)||s&&!f(s))return null;return{from:r,to:s}}}}function p(e){let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${s}`}function h(e){if(!e||!f(e))return null;let[t,r,s]=e.split("-").map(Number);return new Date(t,r-1,s,12,0,0)}function f(e){return/^\d{4}-\d{2}-\d{2}$/.test(e)&&!isNaN(Date.parse(e))}e.s(["useUrlParams",()=>s],80060),e.s(["activeFilterToParam",()=>m,"dateRangeToParams",()=>o,"keywordsToParam",()=>i,"pageToParam",()=>c,"paramToActiveFilter",()=>x,"paramToKeywords",()=>d,"paramToPage",()=>u,"paramToPreset",()=>a,"paramsToDateRange",()=>l,"presetToParam",()=>n],2711)},74886,43531,e=>{"use strict";var t=e.i(75254);let r=(0,t.default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>r],74886);let s=(0,t.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",()=>s],43531)},71689,e=>{"use strict";let t=(0,e.i(75254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",()=>t],71689)},93938,e=>{"use strict";var t=e.i(43476),r=e.i(71645),s=e.i(22016),n=e.i(71689),a=e.i(75254);let o=(0,a.default)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),l=(0,a.default)("shield-x",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]),i=(0,a.default)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);var d=e.i(98919),c=e.i(64659),u=e.i(74886),m=e.i(43531),x=e.i(73520),p=e.i(95187);let h=(0,p.createServerReference)("40bf6ce5f0a6ea66988ee52de8e412666d4c6a0c05",p.callServer,void 0,p.findSourceMapURL,"getHookActivityAction"),f=(0,p.createServerReference)("6096fbf29aac364ce12776e85e75da5f7623b3621d",p.callServer,void 0,p.findSourceMapURL,"searchHookActivityAction");var g=e.i(85881),b=e.i(80060),y=e.i(2711);function v({decision:e}){return"deny"===e?(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[0.65rem] font-semibold tracking-wide uppercase bg-red-500/10 text-red-400 border border-red-500/20",children:[(0,t.jsx)(l,{className:"h-3 w-3"}),"Deny"]}):"instruct"===e?(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[0.65rem] font-semibold tracking-wide uppercase bg-amber-500/10 text-amber-400 border border-amber-500/20",children:[(0,t.jsx)(i,{className:"h-3 w-3"}),"Instruct"]}):(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[0.65rem] font-semibold tracking-wide uppercase bg-emerald-500/10 text-emerald-400 border border-emerald-500/20",children:[(0,t.jsx)(o,{className:"h-3 w-3"}),"Allow"]})}function j({eventType:e}){return(0,t.jsx)("span",{className:"inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-medium bg-muted text-muted-foreground border border-border/50",children:e})}function N({mode:e}){let r="default"===e;return(0,t.jsx)("span",{className:`inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-medium border ${r?"bg-sky-500/10 text-sky-400 border-sky-500/20":"bg-amber-500/10 text-amber-400 border-amber-500/20"}`,children:e})}function w({ms:e}){return(0,t.jsx)("span",{className:`font-mono text-[0.7rem] ${e>500?"text-red-400":e>100?"text-amber-400":"text-muted-foreground"}`,children:e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`})}function k({text:e}){let[s,n]=(0,r.useState)(!1),a=async t=>{t.stopPropagation();try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1500)}catch{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),n(!0),setTimeout(()=>n(!1),1500)}};return(0,t.jsx)("button",{onClick:a,className:"inline-flex items-center justify-center h-5 w-5 rounded hover:bg-muted/50 text-muted-foreground hover:text-foreground transition-colors",title:"Copy",children:s?(0,t.jsx)(m.Check,{className:"h-3 w-3 text-emerald-400"}):(0,t.jsx)(u.Copy,{className:"h-3 w-3"})})}function C({value:e,onChange:r}){return(0,t.jsx)("div",{className:"inline-flex items-center rounded-md border border-border bg-muted/30 p-0.5",children:[{label:"All",value:""},{label:"Allow",value:"allow"},{label:"Instruct",value:"instruct"},{label:"Deny",value:"deny"}].map(s=>(0,t.jsx)("button",{onClick:()=>r(s.value),className:`px-2.5 py-1 text-[0.65rem] font-medium rounded transition-all ${e===s.value?"deny"===s.value?"bg-red-500/15 text-red-400 shadow-sm":"allow"===s.value?"bg-emerald-500/15 text-emerald-400 shadow-sm":"instruct"===s.value?"bg-amber-500/15 text-amber-400 shadow-sm":"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:s.label},s.value))})}function S({stats:e}){let r=e.totalEvents>0?(e.denyCount/e.totalEvents*100).toFixed(0):"0";return(0,t.jsxs)("div",{className:"flex items-center gap-6 text-[0.7rem] text-muted-foreground",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-foreground font-mono font-semibold",children:e.totalEvents})," total events"]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("span",{className:`font-mono font-semibold ${e.denyCount>0?"text-red-400":"text-foreground"}`,children:[r,"%"]})," ","deny rate"]}),(0,t.jsxs)("div",{className:"hidden sm:block",children:["top policy:"," ",(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.topPolicy??"—"})]})]})}function P({item:e}){return(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:10,className:"px-0 py-0",children:(0,t.jsxs)("div",{className:"px-6 py-3 bg-muted/20 border-t border-border/30 space-y-2 text-xs animate-in fade-in slide-in-from-top-1 duration-150",children:[(0,t.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-x-8 gap-y-1.5",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"Session ID: "}),(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.sessionId??"—"}),e.sessionId&&(0,t.jsx)(k,{text:e.sessionId})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"CWD: "}),(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.cwd??"—"}),e.cwd&&(0,t.jsx)(k,{text:e.cwd})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"Transcript: "}),(0,t.jsx)("span",{className:"font-mono text-foreground break-all",children:e.transcriptPath??"—"})]})]}),e.reason&&(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"Full reason: "}),(0,t.jsx)("span",{className:"text-foreground",children:e.reason})]})]})})})}function T(){let{intervalSec:e}=(0,g.useAutoRefresh)(),a=(0,b.useUrlParams)(),o=(0,r.useRef)(!1),[l,i]=(0,r.useState)(()=>(0,y.paramToPage)(a.get("page"))),[u,m]=(0,r.useState)(null),[p,k]=(0,r.useState)(null),[T,$]=(0,r.useState)(()=>{let e=a.get("decision");return"allow"===e||"deny"===e||"instruct"===e?e:""}),[R,M]=(0,r.useState)(()=>a.get("event")??""),[A,U]=(0,r.useState)(()=>a.get("policy")??""),I=(0,r.useRef)(null),D=(0,r.useRef)({filterDecision:T,filterEventType:R,filterPolicy:A});D.current={filterDecision:T,filterEventType:R,filterPolicy:A},(0,r.useEffect)(()=>{if(!o.current){o.current=!0;return}a.setAll({decision:T||void 0,event:R||void 0,policy:A||void 0,page:(0,y.pageToParam)(l)})},[T,R,A,l]);let E=""!==T||""!==R||""!==A,F=(0,r.useCallback)(async e=>{try{let t,{filterDecision:r,filterEventType:s,filterPolicy:n}=D.current;t=""!==r||""!==s||""!==n?await f({decision:r||void 0,eventType:s||void 0,policyName:n||void 0},e):await h(e),m(t)}catch{}},[]);(0,r.useEffect)(()=>{F(l);let t=setInterval(()=>F(l),e>0?1e3*e:5e3);return()=>clearInterval(t)},[l,F,e]),(0,r.useEffect)(()=>(I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{i(1),k(null),F(1)},300),()=>{I.current&&clearTimeout(I.current)}),[T,R,A]);let z=u?.entries??[],L=u?.totalPages??1;return(0,t.jsxs)("div",{className:"min-h-screen bg-background px-4 py-6 sm:px-6 lg:px-10",children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsxs)(s.default,{href:"/",className:"inline-flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,t.jsx)(n.ArrowLeft,{className:"h-3.5 w-3.5"}),"Back"]}),(0,t.jsxs)("div",{className:"flex items-center gap-3 mt-3",children:[(0,t.jsx)("h1",{className:"text-2xl font-bold text-foreground tracking-tight",children:"Hook Activity"}),(0,t.jsxs)("span",{className:"relative flex h-2.5 w-2.5 mt-0.5",children:[(0,t.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-emerald-400 opacity-75"}),(0,t.jsx)("span",{className:"relative inline-flex rounded-full h-2.5 w-2.5 bg-emerald-500"})]})]}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground mt-1",children:"Policy evaluations from Claude Code hook events"}),u?.stats&&u.stats.totalEvents>0&&(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)(S,{stats:u.stats})})]}),(0,t.jsxs)("div",{className:"bg-card border border-border rounded-lg overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3 px-4 py-2.5 border-b border-border bg-muted/20",children:[(0,t.jsx)(C,{value:T,onChange:$}),(0,t.jsxs)("select",{value:R,onChange:e=>M(e.target.value),className:"h-7 rounded-md border border-border bg-background px-2 text-xs text-foreground focus:outline-none focus:ring-2 focus:ring-primary/40 focus:border-primary/40 transition-shadow",children:[(0,t.jsx)("option",{value:"",children:"All Events"}),(0,t.jsx)("option",{value:"PreToolUse",children:"PreToolUse"}),(0,t.jsx)("option",{value:"PostToolUse",children:"PostToolUse"}),(0,t.jsx)("option",{value:"SessionStart",children:"SessionStart"}),(0,t.jsx)("option",{value:"SessionEnd",children:"SessionEnd"}),(0,t.jsx)("option",{value:"UserPromptSubmit",children:"UserPromptSubmit"}),(0,t.jsx)("option",{value:"PermissionRequest",children:"PermissionRequest"})]}),(0,t.jsx)("div",{className:"relative",children:(0,t.jsx)("input",{type:"text",value:A,onChange:e=>U(e.target.value),placeholder:"Filter by policy\\u2026",className:"h-7 rounded-md border border-border bg-background px-2.5 text-xs text-foreground placeholder:text-muted-foreground w-44 focus:outline-none focus:ring-2 focus:ring-primary/40 focus:border-primary/40 transition-shadow"})})]}),0===z.length?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 px-4",children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(d.Shield,{className:"h-12 w-12 text-muted-foreground/30"}),(0,t.jsx)("span",{className:"absolute inset-0 animate-ping",children:(0,t.jsx)(d.Shield,{className:"h-12 w-12 text-muted-foreground/10"})})]}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground mt-4",children:E?"No matching activity.":"Waiting for hook events…"})]}):(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full text-xs",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"text-left text-muted-foreground border-b border-border bg-muted/30",children:[(0,t.jsx)("th",{className:"px-4 py-2.5 font-medium w-6"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Decision"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Event"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Tool"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Policy"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Reason"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Duration"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Session"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Mode"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium text-right",children:"Time"})]})}),(0,t.jsx)("tbody",{className:"divide-y divide-border/30",children:z.map((e,s)=>{var n,a;let o,l="deny"===e.decision,i=p===s,d="instruct"===e.decision;return(0,t.jsxs)(r.default.Fragment,{children:[(0,t.jsxs)("tr",{onClick:()=>{k(e=>e===s?null:s)},className:`cursor-pointer transition-colors ${l?"bg-red-500/[0.03] hover:bg-red-500/[0.07] border-l-2 border-l-red-500/40":d?"bg-amber-500/[0.03] hover:bg-amber-500/[0.07] border-l-2 border-l-amber-500/40":s%2==0?"hover:bg-muted/30":"bg-muted/[0.04] hover:bg-muted/30"} ${i?"bg-muted/20":""}`,children:[(0,t.jsx)("td",{className:"px-4 py-2",children:(0,t.jsx)(c.ChevronDown,{className:`h-3.5 w-3.5 text-muted-foreground transition-transform duration-150 ${i?"rotate-0":"-rotate-90"}`})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(v,{decision:e.decision})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(j,{eventType:e.eventType})}),(0,t.jsx)("td",{className:"px-3 py-2 font-mono text-foreground",children:e.toolName??"—"}),(0,t.jsx)("td",{className:"px-3 py-2 font-mono text-foreground",children:e.policyName??"—"}),(0,t.jsx)("td",{className:"px-3 py-2 text-muted-foreground truncate max-w-[240px]",title:e.reason??"",children:e.reason??"—"}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(w,{ms:e.durationMs})}),(0,t.jsx)("td",{className:"px-3 py-2 font-mono text-muted-foreground",title:e.sessionId??"",children:(n=e.sessionId)?n.slice(0,8):"—"}),(0,t.jsx)("td",{className:"px-3 py-2",children:e.permissionMode?(0,t.jsx)(N,{mode:e.permissionMode}):"—"}),(0,t.jsx)("td",{className:"px-3 py-2 text-right text-muted-foreground whitespace-nowrap",title:new Date(e.timestamp).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"}),children:(a=e.timestamp,(o=Date.now()-a)<6e4?`${Math.max(1,Math.floor(o/1e3))}s ago`:o<36e5?`${Math.floor(o/6e4)}m ago`:o<864e5?`${Math.floor(o/36e5)}h ago`:`${Math.floor(o/864e5)}d ago`)})]}),i&&(0,t.jsx)(P,{item:e})]},`${e.timestamp}-${s}`)})})]})}),(0,t.jsx)(x.default,{currentPage:l,totalPages:L,onPageChange:e=>{i(e),k(null)}})]})]})}e.s(["default",()=>T],93938)}]);
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
|
|
73
73
|
Claudeye is an oversight and observability tool for Claude Code agents (CLI and Agents SDK).
|
|
74
74
|
|
|
75
|
-
AI agents execute shell commands, read files, and make changes autonomously — without guardrails, they can `rm -rf /`, read your `.env` secrets, `sudo` install packages, or force-push to main. Claudeye ships **
|
|
75
|
+
AI agents execute shell commands, read files, and make changes autonomously — without guardrails, they can `rm -rf /`, read your `.env` secrets, `sudo` install packages, or force-push to main. Claudeye ships **20 built-in hook policies** (free, with more added every update) that block dangerous actions in real time, before they execute. Beyond protection, it gives you full session replay, custom evals, enrichments, and a local-first dashboard. One command and you're in:
|
|
76
76
|
|
|
77
77
|
## Quick Start
|
|
78
78
|
|
|
@@ -110,7 +110,7 @@ AI agents can execute arbitrary shell commands. Without guardrails, Claude can a
|
|
|
110
110
|
# Install with interactive policy selector (Enter to toggle, S to submit)
|
|
111
111
|
claudeye --install-hooks
|
|
112
112
|
|
|
113
|
-
# Or install all
|
|
113
|
+
# Or install all 26 policies at once
|
|
114
114
|
claudeye --install-hooks all
|
|
115
115
|
|
|
116
116
|
# Install specific policies
|
|
@@ -128,23 +128,36 @@ claudeye --remove-hooks
|
|
|
128
128
|
|
|
129
129
|
### Available Policies
|
|
130
130
|
|
|
131
|
-
| Policy | Default | What it blocks |
|
|
131
|
+
| Policy | Default | What it blocks / warns |
|
|
132
132
|
|--------|:-------:|----------------|
|
|
133
133
|
| `sanitize-jwt` | On | Scrubs JWT tokens (`eyJ...`) from tool output before Claude sees them |
|
|
134
|
+
| `sanitize-api-keys` | On | Scrubs API keys from tool output (OpenAI, Anthropic, GitHub, AWS, Stripe, Google) |
|
|
135
|
+
| `sanitize-connection-strings` | On | Scrubs database connection strings with embedded credentials (`postgresql://user:pass@host`) from tool output |
|
|
136
|
+
| `sanitize-private-key-content` | On | Scrubs PEM private key blocks (`-----BEGIN PRIVATE KEY-----`) from tool output |
|
|
137
|
+
| `sanitize-bearer-tokens` | On | Scrubs `Authorization: Bearer <token>` headers from tool output |
|
|
134
138
|
| `protect-env-vars` | On | `env`, `printenv`, `echo $SECRET`, `export API_KEY=...` |
|
|
135
139
|
| `block-env-files` | On | Reading or writing `.env`, `.env.local`, `.env.production` |
|
|
136
140
|
| `block-sudo` | On | Any `sudo` command |
|
|
137
141
|
| `block-curl-pipe-sh` | On | `curl ... \| sh`, `wget ... \| bash` — remote code execution |
|
|
138
142
|
| `block-push-master` | On | `git push origin main`, `git push origin master` |
|
|
143
|
+
| `block-claudeye-commands` | On | Direct `claudeye` CLI invocations and `npm/bun/yarn/pnpm uninstall claudeye` |
|
|
139
144
|
| `block-rm-rf` | Off | `rm -rf /`, `rm -rf ~`, `rm -rf /*` — catastrophic deletions |
|
|
140
145
|
| `block-force-push` | Off | `git push --force`, `git push -f` |
|
|
141
146
|
| `block-secrets-write` | Off | Writing to `.pem`, `.key`, `id_rsa`, `credentials` files |
|
|
142
147
|
| `block-read-outside-cwd` | Off | Read/Glob/Grep/Bash read commands targeting files outside session CWD (`~/.claude/` allowed except `settings*.json` files) |
|
|
143
148
|
| `block-work-on-main` | Off | `git commit`, `git merge`, `git rebase`, `git cherry-pick` when current branch is `main` or `master` |
|
|
144
|
-
| `
|
|
149
|
+
| `warn-destructive-sql` | Off | Warns before `DROP TABLE/DATABASE`, `TRUNCATE`, or `DELETE FROM` (without `WHERE`) via `psql`, `mysql`, `sqlite3`, etc. |
|
|
150
|
+
| `warn-large-file-write` | Off | Warns when a Write tool payload exceeds 100KB (catches runaway generation loops) |
|
|
151
|
+
| `warn-package-publish` | Off | Warns before `npm publish`, `cargo publish`, `gem push`, `poetry publish`, and similar |
|
|
145
152
|
| `warn-repeated-tool-calls` | Off | Detects 3+ identical tool calls in session transcript; warns Claude to try a different approach |
|
|
153
|
+
| `warn-git-amend` | Off | Warns before `git commit --amend`, which rewrites history and can diverge shared branches |
|
|
154
|
+
| `warn-git-stash-drop` | Off | Warns before `git stash drop` or `git stash clear`, which permanently deletes stashed changes |
|
|
155
|
+
| `warn-all-files-staged` | Off | Warns before `git add -A`, `git add --all`, or `git add .`, which may stage unintended files |
|
|
156
|
+
| `warn-schema-alteration` | Off | Warns before `ALTER TABLE` with column or rename operations via `psql`, `mysql`, `sqlite3`, etc. |
|
|
157
|
+
| `warn-global-package-install` | Off | Warns before `npm install -g`, `cargo install`, `yarn global add`, and similar global installs |
|
|
158
|
+
| `warn-background-process` | Off | Warns before `nohup`, `screen -d`, `tmux new -d`, or commands backgrounded with `&` |
|
|
146
159
|
|
|
147
|
-
Selection is saved to `~/.claudeye/hooks-config.json`. In non-TTY environments (CI/piped), the
|
|
160
|
+
Selection is saved to `~/.claudeye/hooks-config.json`. In non-TTY environments (CI/piped), the 11 default policies are used automatically. Re-running `--install-hooks` re-opens the selector with your current choices pre-loaded.
|
|
148
161
|
|
|
149
162
|
### Scoped Installation
|
|
150
163
|
|
|
@@ -207,6 +220,60 @@ Every policy evaluation is logged to `~/.claudeye/cache/hook-activity/` and disp
|
|
|
207
220
|
|
|
208
221
|
Deny events are also reported to anonymous telemetry (if enabled) so you can track how often policies fire across machines.
|
|
209
222
|
|
|
223
|
+
### Hook Logging
|
|
224
|
+
|
|
225
|
+
Hook processes write structured log output to **stderr**, controlled by two environment variables:
|
|
226
|
+
|
|
227
|
+
| Variable | Purpose | Values | Default |
|
|
228
|
+
|----------|---------|--------|---------|
|
|
229
|
+
| `CLAUDEYE_LOG_LEVEL` | Log level threshold for both stderr and file output | `info`, `warn`, `error` | `warn` |
|
|
230
|
+
| `CLAUDEYE_HOOK_LOG_FILE` | Enable file logging | unset/empty = off, `1` or `true` = `~/.claudeye/logs/`, or a custom directory path | disabled |
|
|
231
|
+
|
|
232
|
+
#### What gets logged
|
|
233
|
+
|
|
234
|
+
| Level | What is logged |
|
|
235
|
+
|-------|---------------|
|
|
236
|
+
| `info` | Event type, enabled policy count, matched policies, evaluation result (decision, policy name, duration), deny/instruct reasons |
|
|
237
|
+
| `warn` | Stdin read failures, JSON payload parse failures, activity persistence failures |
|
|
238
|
+
| `error` | Critical failures |
|
|
239
|
+
|
|
240
|
+
Stderr output format: `[claudeye:hook] LEVEL message`
|
|
241
|
+
|
|
242
|
+
#### Stderr-only logging (default)
|
|
243
|
+
|
|
244
|
+
Set `CLAUDEYE_LOG_LEVEL` in your shell environment before launching Claude Code:
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
# See all hook activity in Claude Code's stderr
|
|
248
|
+
CLAUDEYE_LOG_LEVEL=info claude
|
|
249
|
+
|
|
250
|
+
# Only see warnings and errors (default behavior)
|
|
251
|
+
CLAUDEYE_LOG_LEVEL=warn claude
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
#### File logging (opt-in)
|
|
255
|
+
|
|
256
|
+
Enable persistent log files via `CLAUDEYE_HOOK_LOG_FILE`:
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
# Enable file logging to default directory (~/.claudeye/logs/)
|
|
260
|
+
CLAUDEYE_HOOK_LOG_FILE=1 CLAUDEYE_LOG_LEVEL=info claude
|
|
261
|
+
|
|
262
|
+
# Enable file logging to a custom directory
|
|
263
|
+
CLAUDEYE_HOOK_LOG_FILE=/var/log/claudeye CLAUDEYE_LOG_LEVEL=info claude
|
|
264
|
+
|
|
265
|
+
# In .bashrc or .zshrc for persistent config
|
|
266
|
+
export CLAUDEYE_LOG_LEVEL=info
|
|
267
|
+
export CLAUDEYE_HOOK_LOG_FILE=1
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
File logging details:
|
|
271
|
+
- **Active log file:** `hooks.log` in the log directory
|
|
272
|
+
- **Rotation:** Size-based at 500 KB — when `hooks.log` exceeds this, it is renamed to `hooks-{timestamp}.log` and a fresh `hooks.log` is created
|
|
273
|
+
- **Format:** `[ISO timestamp] LEVEL message` (plain text, human-readable)
|
|
274
|
+
- **Write mode:** Synchronous (hook processes are short-lived)
|
|
275
|
+
- **Failure handling:** File logging is best-effort — if writes fail, the hook still completes normally
|
|
276
|
+
|
|
210
277
|
### Using Hook Policies with Claude Agents SDK
|
|
211
278
|
|
|
212
279
|
Claudeye hook policies work with both **Claude Code** and the **Claude Agents SDK** (Python and TypeScript). The same `claudeye --install-hooks` installation works for both — the difference is how the SDK discovers the hooks.
|
|
@@ -347,6 +414,7 @@ The free tier ships 13 built-in policies with more added in every update. For te
|
|
|
347
414
|
|
|
348
415
|
- **Hook security policies** - 13 built-in policies (free, with more every update) that block dangerous commands (`sudo`, `rm -rf /`, `.env` reads, `curl | sh`, force-pushes, commits on main, and more) in real time via Claude Code's hook system — before they execute
|
|
349
416
|
- **Hook activity dashboard** - see every policy check at `/hooks`: what was allowed, what was blocked, with filters by decision, event type, and policy name
|
|
417
|
+
- **Hook logging** - structured stderr output for every hook invocation (event type, policy count, decision, duration), plus opt-in file logging with automatic rotation via `CLAUDEYE_HOOK_LOG_FILE`
|
|
350
418
|
- **Custom enrichments** - compute metadata (token counts, quality signals, labels) as key-value pairs
|
|
351
419
|
- **Custom actions** - on-demand tasks triggered from the dashboard via `app.action()` — generate summaries, export metrics, or run side-effects with full access to eval and enrichment results
|
|
352
420
|
- **Alerts** - register callbacks via `app.alert()` that fire after all evals and enrichments complete (Slack webhooks, CI notifications, logging)
|
|
@@ -373,7 +441,7 @@ The free tier ships 13 built-in policies with more added in every update. For te
|
|
|
373
441
|
| `--queue-concurrency <num>` | Max parallel items per batch | `2` |
|
|
374
442
|
| `--queue-history-ttl <secs>` | Seconds to keep completed items | `3600` |
|
|
375
443
|
| `--max-queue-items <num>` | Max items to enqueue per scan (0=unlimited) | `500` |
|
|
376
|
-
| `--logging <level>` | Log level: `info`, `warn`, `error` | `warn` |
|
|
444
|
+
| `--logging <level>` | Log level: `info`, `warn`, `error` (applies to dashboard server; hooks read `CLAUDEYE_LOG_LEVEL` env var) | `warn` |
|
|
377
445
|
| `--disable-telemetry` | Disable anonymous usage analytics | enabled |
|
|
378
446
|
| `--install-hooks [policies]` | Install hooks (interactive, or: `all`, `name1 name2 ...`) | - |
|
|
379
447
|
| `--remove-hooks [policies]` | Remove hooks (all, or: `name1 name2 ...` to disable specific) | - |
|
|
@@ -2269,10 +2337,13 @@ All views auto-refresh and self-hide when there's no queue activity.
|
|
|
2269
2337
|
| `CLAUDEYE_QUEUE_CONCURRENCY` | Max parallel items per batch | `2` |
|
|
2270
2338
|
| `CLAUDEYE_QUEUE_HISTORY_TTL` | Seconds to keep completed items | `3600` |
|
|
2271
2339
|
| `CLAUDEYE_QUEUE_MAX_ITEMS` | Max items to enqueue per scan (0=unlimited) | `500` |
|
|
2272
|
-
| `CLAUDEYE_LOG_LEVEL` | Log verbosity: `info`, `warn`, `error` | `warn` |
|
|
2340
|
+
| `CLAUDEYE_LOG_LEVEL` | Log verbosity for both dashboard server and hook processes: `info`, `warn`, `error` | `warn` |
|
|
2341
|
+
| `CLAUDEYE_HOOK_LOG_FILE` | Enable hook file logging: `1` or `true` for default dir (`~/.claudeye/logs/`), or an absolute path for a custom directory | disabled |
|
|
2273
2342
|
|
|
2274
2343
|
At `info` level, all log lines (including `ACTIVITY` lines for user actions) are emitted. At `warn` (default), only warnings and errors appear. At `error`, only errors are shown.
|
|
2275
2344
|
|
|
2345
|
+
**Hook logging:** `CLAUDEYE_LOG_LEVEL` controls the verbosity of hook stderr output (event type, policy count, evaluation result at `info`; failures at `warn`). When `CLAUDEYE_HOOK_LOG_FILE` is additionally set, hooks write to persistent log files with automatic size-based rotation at 500 KB. See the [Hook Logging](#hook-logging) section for details and examples.
|
|
2346
|
+
|
|
2276
2347
|
---
|
|
2277
2348
|
|
|
2278
2349
|
## Caching
|
package/bin/claudeye
CHANGED
|
Binary file
|