@aku11i/phantom 6.3.0-0 → 6.3.0-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/app/server/app-xJWxEPI1.mjs +28734 -0
  2. package/app/server/app-xJWxEPI1.mjs.map +1 -0
  3. package/app/server/index.mjs +2 -0
  4. package/app/server/start.mjs +520 -0
  5. package/app/server/start.mjs.map +1 -0
  6. package/app/web/assets/index-BnKWip-y.js +52 -0
  7. package/app/web/assets/index-CVk_aJfU.css +2 -0
  8. package/app/web/index.html +16 -0
  9. package/package.json +1 -1
  10. package/phantom.js +60 -32
  11. package/app/.output/nitro.json +0 -17
  12. package/app/.output/public/assets/index-CI6IWFKa.css +0 -2
  13. package/app/.output/public/assets/index-DHMHkew5.js +0 -12
  14. package/app/.output/public/assets/jsx-runtime-CUBmso4R.js +0 -1
  15. package/app/.output/public/assets/routes-Boii8-De.js +0 -1
  16. package/app/.output/server/__23tanstack-start-plugin-adapters-y_fshQDY.mjs +0 -5
  17. package/app/.output/server/_chunks/ssr-renderer.mjs +0 -15
  18. package/app/.output/server/_libs/@tanstack/react-router+[...].mjs +0 -14637
  19. package/app/.output/server/_libs/h3+rou3+srvx.mjs +0 -1210
  20. package/app/.output/server/_libs/hookable.mjs +0 -41
  21. package/app/.output/server/_libs/lucide-react.mjs +0 -351
  22. package/app/.output/server/_libs/tanstack__history.mjs +0 -342
  23. package/app/.output/server/_libs/tanstack__router-core.mjs +0 -6
  24. package/app/.output/server/_libs/ufo.mjs +0 -64
  25. package/app/.output/server/_libs/zod.mjs +0 -3745
  26. package/app/.output/server/_runtime.mjs +0 -26
  27. package/app/.output/server/_ssr/router-C0zvMxvt.mjs +0 -3475
  28. package/app/.output/server/_ssr/routes-DpnTz1lw.mjs +0 -1450
  29. package/app/.output/server/_ssr/ssr.mjs +0 -5174
  30. package/app/.output/server/_ssr/start-DaFzyN3q.mjs +0 -4
  31. package/app/.output/server/_tanstack-start-manifest_v-CWxREUaR.mjs +0 -35
  32. package/app/.output/server/index.mjs +0 -326
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-rose-500:oklch(64.5% .246 16.439);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-2xl:42rem;--font-weight-medium:500;--font-weight-semibold:600;--leading-tight:1.25;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,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}}@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-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-right-3{right:calc(var(--spacing) * -3)}.right-4{right:calc(var(--spacing) * 4)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-0{left:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-auto{margin-right:auto}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-7{margin-left:calc(var(--spacing) * 7)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.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-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.h-svh{height:100svh}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-\[calc\(var\(--layout-topbar-height\)-24px\)\]{min-height:calc(var(--layout-topbar-height) - 24px)}.min-h-\[var\(--layout-topbar-height\)\]{min-height:var(--layout-topbar-height)}.min-h-svh{min-height:100svh}.w-2\/3{width:66.6667%}.w-6{width:calc(var(--spacing) * 6)}.w-20{width:calc(var(--spacing) * 20)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-64{width:calc(var(--spacing) * 64)}.w-\[min\(78\%\,34rem\)\]{width:min(78%,34rem)}.w-\[min\(82\%\,42rem\)\]{width:min(82%,42rem)}.w-\[min\(360px\,calc\(100vw-2rem\)\)\]{width:min(360px,100vw - 2rem)}.w-\[var\(--layout-sidebar-width\)\]{width:var(--layout-sidebar-width)}.w-\[var\(--sidebar-width\)\]{width:var(--sidebar-width)}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-28{max-width:calc(var(--spacing) * 28)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-52{max-width:calc(var(--spacing) * 52)}.max-w-\[78\%\]{max-width:78%}.max-w-\[82\%\]{max-width:82%}.max-w-\[var\(--layout-max-content-width\)\]{max-width:var(--layout-max-content-width)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-40{min-width:calc(var(--spacing) * 40)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.list-none{list-style-type:none}.grid-cols-\[1rem_minmax\(0\,1fr\)\]{grid-template-columns:1rem minmax(0,1fr)}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[auto_auto_minmax\(0\,auto\)_minmax\(0\,1fr\)_auto\]{grid-template-columns:auto auto minmax(0,auto) minmax(0,1fr) auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.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-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-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)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\[var\(--radius-lg\)\]{border-radius:var(--radius-lg)}.rounded-\[var\(--radius-md\)\]{border-radius:var(--radius-md)}.rounded-\[var\(--radius-sm\)\]{border-radius:var(--radius-sm)}.rounded-\[var\(--radius-xs\)\]{border-radius:var(--radius-xs)}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[var\(--border-divider\)\]{border-color:var(--border-divider)}.border-\[var\(--border-subtle\)\]{border-color:var(--border-subtle)}.border-\[var\(--semantic-danger-border\)\]{border-color:var(--semantic-danger-border)}.border-\[var\(--semantic-info-border\)\]{border-color:var(--semantic-info-border)}.border-\[var\(--semantic-success-border\)\]{border-color:var(--semantic-success-border)}.border-\[var\(--semantic-warning-border\)\]{border-color:var(--semantic-warning-border)}.border-border{border-color:var(--border)}.border-current\/20{border-color:currentColor}@supports (color:color-mix(in lab, red, red)){.border-current\/20{border-color:color-mix(in oklab, currentcolor 20%, transparent)}}.border-input{border-color:var(--input)}.border-sidebar-border{border-color:var(--sidebar-border)}.border-transparent{border-color:#0000}.bg-\[var\(--border-divider\)\]{background-color:var(--border-divider)}.bg-\[var\(--brand-mark-bg\)\]{background-color:var(--brand-mark-bg)}.bg-\[var\(--chat-user-bg\)\]{background-color:var(--chat-user-bg)}.bg-\[var\(--chat-user-skeleton-bg\)\]{background-color:var(--chat-user-skeleton-bg)}.bg-\[var\(--semantic-danger-bg\)\]{background-color:var(--semantic-danger-bg)}.bg-\[var\(--semantic-danger-fg\)\]{background-color:var(--semantic-danger-fg)}.bg-\[var\(--semantic-info-bg\)\]{background-color:var(--semantic-info-bg)}.bg-\[var\(--semantic-info-fg\)\]{background-color:var(--semantic-info-fg)}.bg-\[var\(--semantic-success-bg\)\]{background-color:var(--semantic-success-bg)}.bg-\[var\(--semantic-warning-bg\)\]{background-color:var(--semantic-warning-bg)}.bg-\[var\(--semantic-warning-fg\)\]{background-color:var(--semantic-warning-fg)}.bg-\[var\(--skeleton-bg\)\]{background-color:var(--skeleton-bg)}.bg-\[var\(--state-selected-bg\)\]{background-color:var(--state-selected-bg)}.bg-\[var\(--status-archived-dot\)\]{background-color:var(--status-archived-dot)}.bg-\[var\(--status-idle-dot\)\]{background-color:var(--status-idle-dot)}.bg-\[var\(--surface-card\)\]{background-color:var(--surface-card)}.bg-\[var\(--surface-code\)\]{background-color:var(--surface-code)}.bg-\[var\(--surface-floating\)\]{background-color:var(--surface-floating)}.bg-\[var\(--surface-input\)\]{background-color:var(--surface-input)}.bg-\[var\(--surface-overlay\)\]{background-color:var(--surface-overlay)}.bg-\[var\(--surface-panel\)\]{background-color:var(--surface-panel)}.bg-\[var\(--surface-window\)\]{background-color:var(--surface-window)}.bg-background{background-color:var(--background)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-accent{background-color:var(--sidebar-accent)}.bg-transparent{background-color:#0000}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.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-5{padding-inline:calc(var(--spacing) * 5)}.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)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-\[length\:var\(--font-size-lg\)\]{font-size:var(--font-size-lg)}.text-\[length\:var\(--font-size-md\)\]{font-size:var(--font-size-md)}.text-\[length\:var\(--font-size-sm\)\]{font-size:var(--font-size-sm)}.text-\[length\:var\(--font-size-xl\)\]{font-size:var(--font-size-xl)}.text-\[length\:var\(--font-size-xs\)\]{font-size:var(--font-size-xs)}.leading-\[var\(--line-height-relaxed\)\]{--tw-leading:var(--line-height-relaxed);line-height:var(--line-height-relaxed)}.leading-none{--tw-leading:1;line-height:1}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[var\(--brand-mark-fg\)\]{color:var(--brand-mark-fg)}.text-\[var\(--chat-user-fg\)\]{color:var(--chat-user-fg)}.text-\[var\(--icon-color-active\)\]{color:var(--icon-color-active)}.text-\[var\(--icon-color-default\)\]{color:var(--icon-color-default)}.text-\[var\(--icon-color-muted\)\]{color:var(--icon-color-muted)}.text-\[var\(--semantic-danger-fg\)\]{color:var(--semantic-danger-fg)}.text-\[var\(--semantic-info-fg\)\]{color:var(--semantic-info-fg)}.text-\[var\(--semantic-success-fg\)\]{color:var(--semantic-success-fg)}.text-\[var\(--semantic-warning-fg\)\]{color:var(--semantic-warning-fg)}.text-\[var\(--text-primary\)\]{color:var(--text-primary)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.text-\[var\(--text-tertiary\)\]{color:var(--text-tertiary)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive-foreground{color:var(--destructive-foreground)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-accent-foreground{color:var(--sidebar-accent-foreground)}.text-sidebar-foreground{color:var(--sidebar-foreground)}.italic{font-style:italic}.accent-\[var\(--button-primary-bg\)\]{accent-color:var(--button-primary-bg)}.accent-\[var\(--semantic-danger-fg\)\]{accent-color:var(--semantic-danger-fg)}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow-\[var\(--shadow-lg\)\]{--tw-shadow:var(--shadow-lg);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--shadow-md\)\]{--tw-shadow:var(--shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--shadow-xs\)\]{--tw-shadow:var(--shadow-xs);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;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}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.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-\[border-color\,box-shadow\]{transition-property:border-color,box-shadow;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-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-\[var\(--motion-duration-fast\)\]{--tw-duration:var(--motion-duration-fast);transition-duration:var(--motion-duration-fast)}.duration-\[var\(--motion-duration-normal\)\]{--tw-duration:var(--motion-duration-normal);transition-duration:var(--motion-duration-normal)}.ease-\[var\(--motion-ease-standard\)\]{--tw-ease:var(--motion-ease-standard);transition-timing-function:var(--motion-ease-standard)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}.group-data-\[state\=collapsed\]\/sidebar\:hidden:is(:where(.group\/sidebar)[data-state=collapsed] *){display:none}.group-data-\[state\=collapsed\]\/sidebar\:flex-none:is(:where(.group\/sidebar)[data-state=collapsed] *){flex:none}.group-data-\[state\=collapsed\]\/sidebar\:justify-center:is(:where(.group\/sidebar)[data-state=collapsed] *){justify-content:center}:where(.group-data-\[state\=collapsed\]\/sidebar\:space-y-2:is(:where(.group\/sidebar)[data-state=collapsed] *)>: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)))}.group-data-\[state\=collapsed\]\/sidebar\:px-0:is(:where(.group\/sidebar)[data-state=collapsed] *){padding-inline:calc(var(--spacing) * 0)}.group-data-\[state\=collapsed\]\/sidebar\:px-2:is(:where(.group\/sidebar)[data-state=collapsed] *){padding-inline:calc(var(--spacing) * 2)}.placeholder\:text-\[var\(--text-tertiary\)\]::placeholder{color:var(--text-tertiary)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-px:after{content:var(--tw-content);width:1px}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:bg-\[var\(--button-destructive-hover-bg\)\]:hover{background-color:var(--button-destructive-hover-bg)}.hover\:bg-\[var\(--button-primary-hover-bg\)\]:hover{background-color:var(--button-primary-hover-bg)}.hover\:bg-\[var\(--button-secondary-hover-bg\)\]:hover{background-color:var(--button-secondary-hover-bg)}.hover\:bg-\[var\(--state-hover-bg\)\]:hover{background-color:var(--state-hover-bg)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.hover\:text-\[var\(--icon-color-active\)\]:hover{color:var(--icon-color-active)}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:var(--sidebar-border)}}.focus\:bg-\[var\(--semantic-danger-bg\)\]:focus{background-color:var(--semantic-danger-bg)}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-\[var\(--semantic-danger-fg\)\]:focus{color:var(--semantic-danger-fg)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:shadow-\[var\(--state-focus-ring\)\]:focus-visible{--tw-shadow:var(--state-focus-ring);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\:shadow-none:focus-visible{--tw-shadow:0 0 #0000;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-\[var\(--semantic-danger-border\)\]\/40:focus-visible{--tw-ring-color:var(--semantic-danger-border)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-\[var\(--semantic-danger-border\)\]\/40:focus-visible{--tw-ring-color:color-mix(in oklab, var(--semantic-danger-border) 40%, transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-\[var\(--opacity-disabled\)\]:disabled{opacity:var(--opacity-disabled)}.has-\[\[data-variant\=inset\]\]\:bg-background:has([data-variant=inset]){background-color:var(--background)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-\[var\(--opacity-disabled\)\][data-disabled]{opacity:var(--opacity-disabled)}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}@media (width>=40rem){.sm\:flex{display:flex}.sm\:w-40{width:calc(var(--spacing) * 40)}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:opacity-0{opacity:0}.sm\:opacity-100,.sm\:group-focus-within\/chat\:opacity-100:is(:where(.group\/chat):focus-within *),.sm\:group-focus-within\/project\:opacity-100:is(:where(.group\/project):focus-within *),.sm\:group-focus-within\/worktree\:opacity-100:is(:where(.group\/worktree):focus-within *){opacity:1}@media (hover:hover){.sm\:group-hover\/chat\:opacity-100:is(:where(.group\/chat):hover *),.sm\:group-hover\/project\:opacity-100:is(:where(.group\/project):hover *),.sm\:group-hover\/worktree\:opacity-100:is(:where(.group\/worktree):hover *){opacity:1}}}@media (width>=48rem){.md\:relative{position:relative}.md\:z-auto{z-index:auto}.md\:block{display:block}.md\:hidden{display:none}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}}:root{--color-white:#fdfdfd;--color-gray-50:#f7f8fa;--color-gray-75:#f3f4f7;--color-gray-100:#f0f1f5;--color-gray-150:#edeef0;--color-gray-200:#e5e7ec;--color-gray-250:#dadde5;--color-gray-300:#c9ccd6;--color-gray-400:#aeb1bb;--color-gray-500:#8d909b;--color-gray-600:#747783;--color-gray-700:#565a66;--color-gray-800:#343844;--color-gray-900:#1f2330;--color-green-50:#e7f0ea;--color-green-100:#dde7df;--color-green-500:#2f7a4e;--color-rose-50:#f0e1e7;--color-rose-100:#e8d7df;--color-rose-500:#9b3f5a;--color-yellow-50:#f3ead2;--color-yellow-100:#eadcad;--color-yellow-600:#8a6a1d;--color-blue-50:#e4e9f7;--color-blue-100:#d8e0f3;--color-blue-600:#4d5f9e;--surface-window:#f0f1f5;--surface-sidebar:#edeef0;--surface-panel:#f3f4f7;--surface-card:#f7f8fa;--surface-code:#f1f2f6;--surface-input:#f3f4f7;--surface-floating:#ffffffb8;--surface-overlay:#1f23305c;--text-primary:#2c303a;--text-secondary:#5f636f;--text-tertiary:#8a8e99;--text-muted:#a9adb6;--text-disabled:#c4c7cf;--text-link:#4d5f9e;--text-success:#2f7a4e;--text-danger:#9b3f5a;--text-warning:#8a6a1d;--border-subtle:#e0e2e8;--border-default:#d5d8e0;--border-strong:#c4c8d2;--border-focus:#aeb7d8;--border-divider:#1f233014;--semantic-success-bg:#e7f0ea;--semantic-success-fg:#2f7a4e;--semantic-success-border:#8ec7a2;--semantic-danger-bg:#f0e1e7;--semantic-danger-fg:#9b3f5a;--semantic-danger-border:#d18ba0;--semantic-warning-bg:#f3ead2;--semantic-warning-fg:#8a6a1d;--semantic-warning-border:#d7bc73;--semantic-info-bg:#e4e9f7;--semantic-info-fg:#4d5f9e;--semantic-info-border:#a8b7e0;--diff-added-bg:#dde7df;--diff-added-bg-soft:#e7f0ea;--diff-added-fg:#2f7a4e;--diff-added-border:#8ec7a2;--diff-removed-bg:#e8d7df;--diff-removed-bg-soft:#f0e1e7;--diff-removed-fg:#9b3f5a;--diff-removed-border:#d18ba0;--diff-hunk-bg:#e9e7f5;--diff-hunk-fg:#6b61a8;--diff-hunk-border:#c8c2ea;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", sans-serif;--font-mono:"SF Mono", "Menlo", "Monaco", "Consolas", "Liberation Mono", monospace;--font-size-2xs:10px;--font-size-xs:11px;--font-size-sm:12px;--font-size-md:13px;--font-size-lg:14px;--font-size-xl:16px;--font-size-2xl:20px;--line-height-tight:1.25;--line-height-normal:1.45;--line-height-relaxed:1.6;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--space-0:0;--space-0_5:2px;--space-1:4px;--space-1_5:6px;--space-2:8px;--space-2_5:10px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:9999px;--shadow-xs:0 1px 2px #1f23300f;--shadow-sm:0 2px 6px #1f233014;--shadow-md:0 8px 24px #1f23301f;--shadow-lg:0 16px 48px #1f233029;--motion-duration-fast:.12s;--motion-duration-normal:.18s;--motion-duration-slow:.24s;--motion-ease-standard:cubic-bezier(.2, 0, 0, 1);--motion-ease-out:cubic-bezier(0, 0, .2, 1);--motion-ease-in:cubic-bezier(.4, 0, 1, 1);--state-hover-bg:#1f23300d;--state-pressed-bg:#1f233017;--state-selected-bg:#1f233012;--state-focus-ring:0 0 0 3px #6874b438;--opacity-disabled:.42;--opacity-muted:.64;--layout-sidebar-width:320px;--layout-topbar-height:56px;--layout-panel-min-width:320px;--layout-max-content-width:1200px;--safe-area-inset-top:env(safe-area-inset-top,0px);--safe-area-inset-right:env(safe-area-inset-right,0px);--safe-area-inset-bottom:env(safe-area-inset-bottom,0px);--safe-area-inset-left:env(safe-area-inset-left,0px);--icon-size-xs:12px;--icon-size-sm:14px;--icon-size-md:16px;--icon-size-lg:20px;--icon-color-default:#747783;--icon-color-muted:#a9adb6;--icon-color-active:#343844;--button-primary-bg:var(--color-gray-900);--button-primary-fg:var(--color-white);--button-primary-hover-bg:var(--color-gray-800);--button-secondary-bg:var(--color-gray-100);--button-secondary-fg:var(--text-primary);--button-secondary-hover-bg:var(--color-gray-150);--button-destructive-bg:var(--semantic-danger-fg);--button-destructive-fg:var(--color-white);--button-destructive-hover-bg:var(--color-rose-500);--brand-mark-bg:var(--color-gray-900);--brand-mark-fg:var(--color-white);--chat-user-bg:var(--color-gray-900);--chat-user-fg:var(--color-white);--chat-user-skeleton-bg:#1f23301a;--skeleton-bg:var(--color-gray-200);--scrollbar-thumb:var(--color-gray-300);--scrollbar-thumb-hover:var(--color-gray-400);--status-archived-dot:var(--color-gray-400);--status-idle-dot:var(--color-gray-500);--background:var(--surface-window);--foreground:var(--text-primary);--card:var(--surface-card);--card-foreground:var(--text-primary);--popover:var(--surface-floating);--popover-foreground:var(--text-primary);--primary:var(--button-primary-bg);--primary-foreground:var(--button-primary-fg);--secondary:var(--button-secondary-bg);--secondary-foreground:var(--button-secondary-fg);--muted:var(--surface-panel);--muted-foreground:var(--text-secondary);--accent:var(--state-hover-bg);--accent-foreground:var(--text-primary);--destructive:var(--button-destructive-bg);--destructive-foreground:var(--button-destructive-fg);--border:var(--border-default);--input:var(--border-default);--ring:var(--border-focus);--sidebar:var(--surface-sidebar);--sidebar-foreground:var(--text-primary);--sidebar-accent:var(--state-selected-bg);--sidebar-accent-foreground:var(--text-primary);--sidebar-border:var(--border-divider);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-sans);background:var(--surface-window);color:var(--text-primary)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--surface-window:#15171b;--surface-sidebar:#1a1c21;--surface-panel:#181a1f;--surface-card:#20232a;--surface-code:#1d2026;--surface-input:#20232a;--surface-floating:#20232adb;--surface-overlay:#04060a9e;--text-primary:#e6e8ee;--text-secondary:#b3b7c1;--text-tertiary:#858b98;--text-muted:#686f7c;--text-disabled:#565c67;--text-link:#9aa9df;--text-success:#85c59b;--text-danger:#d58ba2;--text-warning:#d5bd70;--border-subtle:#292d35;--border-default:#353a45;--border-strong:#444a56;--border-focus:#697493;--border-divider:#e6e8ee14;--semantic-success-bg:#1c2a22;--semantic-success-fg:#85c59b;--semantic-success-border:#3f7b54;--semantic-danger-bg:#2e2026;--semantic-danger-fg:#d58ba2;--semantic-danger-border:#8f5164;--semantic-warning-bg:#2d271a;--semantic-warning-fg:#d5bd70;--semantic-warning-border:#8e7536;--semantic-info-bg:#202537;--semantic-info-fg:#9aa9df;--semantic-info-border:#586a9c;--diff-added-bg:#233129;--diff-added-bg-soft:#1c2a22;--diff-added-fg:#85c59b;--diff-added-border:#3f7b54;--diff-removed-bg:#34252b;--diff-removed-bg-soft:#2e2026;--diff-removed-fg:#d58ba2;--diff-removed-border:#8f5164;--diff-hunk-bg:#28263a;--diff-hunk-fg:#b7abe7;--diff-hunk-border:#645b92;--shadow-xs:0 1px 2px #04060a3d;--shadow-sm:0 2px 8px #04060a47;--shadow-md:0 10px 28px #04060a5c;--shadow-lg:0 18px 54px #04060a7a;--state-hover-bg:#e6e8ee0f;--state-pressed-bg:#e6e8ee1a;--state-selected-bg:#e6e8ee14;--state-focus-ring:0 0 0 3px #8495d242;--icon-color-default:#9aa0ac;--icon-color-muted:#717987;--icon-color-active:#eef0f4;--button-primary-bg:#d9dde6;--button-primary-fg:#171a20;--button-primary-hover-bg:#c8ceda;--button-secondary-bg:#242832;--button-secondary-fg:var(--text-primary);--button-secondary-hover-bg:#2b303a;--button-destructive-bg:#8f5164;--button-destructive-fg:#fdfdfd;--button-destructive-hover-bg:#a96678;--brand-mark-bg:#d9dde6;--brand-mark-fg:#171a20;--chat-user-bg:#d9dde6;--chat-user-fg:#171a20;--chat-user-skeleton-bg:#d9dde624;--skeleton-bg:#2b3039;--scrollbar-thumb:#3f4653;--scrollbar-thumb-hover:#525b6a;--status-archived-dot:#747b89;--status-idle-dot:#9aa0ac;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark],[data-theme=dark]{--surface-window:#15171b;--surface-sidebar:#1a1c21;--surface-panel:#181a1f;--surface-card:#20232a;--surface-code:#1d2026;--surface-input:#20232a;--surface-floating:#20232adb;--surface-overlay:#04060a9e;--text-primary:#e6e8ee;--text-secondary:#b3b7c1;--text-tertiary:#858b98;--text-muted:#686f7c;--text-disabled:#565c67;--text-link:#9aa9df;--text-success:#85c59b;--text-danger:#d58ba2;--text-warning:#d5bd70;--border-subtle:#292d35;--border-default:#353a45;--border-strong:#444a56;--border-focus:#697493;--border-divider:#e6e8ee14;--semantic-success-bg:#1c2a22;--semantic-success-fg:#85c59b;--semantic-success-border:#3f7b54;--semantic-danger-bg:#2e2026;--semantic-danger-fg:#d58ba2;--semantic-danger-border:#8f5164;--semantic-warning-bg:#2d271a;--semantic-warning-fg:#d5bd70;--semantic-warning-border:#8e7536;--semantic-info-bg:#202537;--semantic-info-fg:#9aa9df;--semantic-info-border:#586a9c;--diff-added-bg:#233129;--diff-added-bg-soft:#1c2a22;--diff-added-fg:#85c59b;--diff-added-border:#3f7b54;--diff-removed-bg:#34252b;--diff-removed-bg-soft:#2e2026;--diff-removed-fg:#d58ba2;--diff-removed-border:#8f5164;--diff-hunk-bg:#28263a;--diff-hunk-fg:#b7abe7;--diff-hunk-border:#645b92;--shadow-xs:0 1px 2px #04060a3d;--shadow-sm:0 2px 8px #04060a47;--shadow-md:0 10px 28px #04060a5c;--shadow-lg:0 18px 54px #04060a7a;--state-hover-bg:#e6e8ee0f;--state-pressed-bg:#e6e8ee1a;--state-selected-bg:#e6e8ee14;--state-focus-ring:0 0 0 3px #8495d242;--icon-color-default:#9aa0ac;--icon-color-muted:#717987;--icon-color-active:#eef0f4;--button-primary-bg:#d9dde6;--button-primary-fg:#171a20;--button-primary-hover-bg:#c8ceda;--button-secondary-bg:#242832;--button-secondary-fg:var(--text-primary);--button-secondary-hover-bg:#2b303a;--button-destructive-bg:#8f5164;--button-destructive-fg:#fdfdfd;--button-destructive-hover-bg:#a96678;--brand-mark-bg:#d9dde6;--brand-mark-fg:#171a20;--chat-user-bg:#d9dde6;--chat-user-fg:#171a20;--chat-user-skeleton-bg:#d9dde624;--skeleton-bg:#2b3039;--scrollbar-thumb:#3f4653;--scrollbar-thumb-hover:#525b6a;--status-archived-dot:#747b89;--status-idle-dot:#9aa0ac;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--surface-window);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--font-size-md);line-height:var(--line-height-normal);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0}.app-shell{height:100dvh;min-height:0;padding-block-start:var(--safe-area-inset-top);padding-inline-start:var(--safe-area-inset-left);padding-inline-end:var(--safe-area-inset-right);overflow:hidden}.chat-composer{padding-block-start:var(--space-3);padding-block-end:calc(var(--space-3) + var(--safe-area-inset-bottom));padding-inline:var(--space-3);flex-shrink:0}.markdown-message{overflow-wrap:anywhere;color:var(--text-primary);font-size:var(--font-size-md);line-height:var(--line-height-relaxed)}.markdown-message>:first-child{margin-block-start:0}.markdown-message>:last-child{margin-block-end:0}.markdown-message p,.markdown-message blockquote,.markdown-message ul,.markdown-message ol,.markdown-message pre,.markdown-message table{margin-block:0 .75em}.markdown-message h1,.markdown-message h2,.markdown-message h3,.markdown-message h4,.markdown-message h5,.markdown-message h6{color:var(--text-primary);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin-block:1em .45em}.markdown-message h1{font-size:var(--font-size-2xl)}.markdown-message h2{font-size:var(--font-size-xl)}.markdown-message h3,.markdown-message h4,.markdown-message h5,.markdown-message h6{font-size:var(--font-size-lg)}.markdown-message a{color:var(--text-link);text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px}.markdown-message blockquote{border-inline-start:2px solid var(--border-strong);color:var(--text-secondary);padding-inline-start:var(--space-3)}.markdown-message ul,.markdown-message ol{padding-inline-start:1.35rem}.markdown-message li+li{margin-block-start:.25em}.markdown-message code{border-radius:var(--radius-xs);background:var(--surface-code);font-family:var(--font-mono);padding:.08em .28em;font-size:.92em}.markdown-message pre{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-code);padding:var(--space-3);overflow-x:auto}.markdown-message pre code{white-space:pre;background:0 0;border-radius:0;padding:0;display:block}.markdown-message table{border-collapse:collapse;max-width:100%;display:block;overflow-x:auto}.markdown-message th,.markdown-message td{border:1px solid var(--border-subtle);padding:var(--space-1_5) var(--space-2);text-align:start;vertical-align:top}.markdown-message th{background:var(--surface-panel);font-weight:var(--font-weight-semibold)}.markdown-message hr{border:0;border-block-start:1px solid var(--border-divider);margin-block:var(--space-4)}@media (width<=767px){aside[data-variant]{top:var(--safe-area-inset-top);bottom:var(--safe-area-inset-bottom);left:var(--safe-area-inset-left);height:calc(100dvh - var(--safe-area-inset-top) - var(--safe-area-inset-bottom))}}@supports not (height:100dvh){.app-shell{height:100vh}}button,input,textarea{font:inherit}::selection{background:var(--semantic-info-bg);color:var(--text-primary)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-pill);background-clip:padding-box;border:3px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);background-clip:padding-box;border:3px solid #0000}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
@@ -0,0 +1,16 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta
6
+ name="viewport"
7
+ content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"
8
+ />
9
+ <title>Phantom Serve</title>
10
+ <script type="module" crossorigin src="/assets/index-BnKWip-y.js"></script>
11
+ <link rel="stylesheet" crossorigin href="/assets/index-CVk_aJfU.css">
12
+ </head>
13
+ <body>
14
+ <div id="root"></div>
15
+ </body>
16
+ </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aku11i/phantom",
3
- "version": "6.3.0-0",
3
+ "version": "6.3.0-1",
4
4
  "description": "A powerful CLI tool for managing Git worktrees for parallel development",
5
5
  "keywords": [
6
6
  "git",
package/phantom.js CHANGED
@@ -4551,8 +4551,8 @@ async function listWorktrees$1(gitRoot) {
4551
4551
  const fullBranch = line.substring(7);
4552
4552
  currentWorktree.branch = fullBranch.startsWith("refs/heads/") ? fullBranch.substring(11) : fullBranch;
4553
4553
  } else if (line === "detached") currentWorktree.branch = "(detached HEAD)";
4554
- else if (line === "locked") currentWorktree.isLocked = true;
4555
- else if (line === "prunable") currentWorktree.isPrunable = true;
4554
+ else if (line.startsWith("locked")) currentWorktree.isLocked = true;
4555
+ else if (line.startsWith("prunable")) currentWorktree.isPrunable = true;
4556
4556
  if (currentWorktree.path) worktrees.push(currentWorktree);
4557
4557
  return worktrees;
4558
4558
  }
@@ -4795,11 +4795,12 @@ async function getWorktreeStatus(worktreePath) {
4795
4795
  async function listWorktrees(gitRoot, options = {}) {
4796
4796
  try {
4797
4797
  const gitWorktrees = await listWorktrees$1(gitRoot);
4798
+ const availableGitWorktrees = options.includePrunable ?? true ? gitWorktrees : gitWorktrees.filter((worktree) => !worktree.isPrunable);
4798
4799
  const excludeDefault = options.excludeDefault ?? false;
4799
- const filteredWorktrees = excludeDefault ? gitWorktrees.filter((worktree) => worktree.path !== gitRoot) : gitWorktrees;
4800
+ const filteredWorktrees = excludeDefault ? availableGitWorktrees.filter((worktree) => worktree.path !== gitRoot) : availableGitWorktrees;
4800
4801
  if (filteredWorktrees.length === 0) return ok({
4801
4802
  worktrees: [],
4802
- message: excludeDefault && gitWorktrees.length > 0 ? "No sub worktrees found" : "No worktrees found"
4803
+ message: excludeDefault && availableGitWorktrees.length > 0 ? "No sub worktrees found" : "No worktrees found"
4803
4804
  });
4804
4805
  return ok({ worktrees: await Promise.all(filteredWorktrees.map(async (gitWorktree) => {
4805
4806
  const shortHead = gitWorktree.head?.slice(0, 7) ?? "HEAD";
@@ -4822,9 +4823,10 @@ async function listWorktrees(gitRoot, options = {}) {
4822
4823
  //#endregion
4823
4824
  //#region ../core/src/worktree/validate.ts
4824
4825
  async function validateWorktreeExists(gitRoot, _worktreeDirectory, name, options = {}) {
4825
- const worktreesResult = await listWorktrees(gitRoot, options);
4826
+ const { expectedPath, ...listOptions } = options;
4827
+ const worktreesResult = await listWorktrees(gitRoot, listOptions);
4826
4828
  if (isErr(worktreesResult)) return err(new WorktreeNotFoundError(name));
4827
- const worktree = worktreesResult.value.worktrees.find((wt) => wt.name === name);
4829
+ const worktree = worktreesResult.value.worktrees.find((wt) => wt.name === name && (!expectedPath || wt.path === expectedPath));
4828
4830
  if (!worktree) return err(new WorktreeNotFoundError(name));
4829
4831
  return ok({ path: worktree.path });
4830
4832
  }
@@ -7395,15 +7397,15 @@ const repoInfoSchema = object$1({
7395
7397
  owner: string(),
7396
7398
  repo: string()
7397
7399
  });
7398
- async function getGitHubRepoInfo() {
7400
+ async function getGitHubRepoInfo(options = {}) {
7399
7401
  try {
7400
7402
  const { stdout } = await execFileAsync("gh", [
7401
7403
  "repo",
7402
7404
  "view",
7403
7405
  "--json",
7404
7406
  "owner,name"
7405
- ]);
7406
- const data = JSON.parse(stdout);
7407
+ ], options.cwd ? { cwd: options.cwd } : void 0);
7408
+ const data = JSON.parse(stdout.toString());
7407
7409
  return repoInfoSchema.parse({
7408
7410
  owner: data.owner.login,
7409
7411
  repo: data.name
@@ -8533,9 +8535,9 @@ async function runCreateWorktree(options) {
8533
8535
  }
8534
8536
  //#endregion
8535
8537
  //#region ../core/src/github/checkout/issue.ts
8536
- async function checkoutIssue(issue, base) {
8538
+ async function checkoutIssue(issue, base, options = {}) {
8537
8539
  if (isPullRequest(issue)) return err(/* @__PURE__ */ new Error(`#${issue.number} is a pull request, not an issue. Cannot checkout as an issue.`));
8538
- const context = await createContext(await getGitRoot());
8540
+ const context = await createContext(await getGitRoot({ cwd: options.cwd }));
8539
8541
  const worktreeName = `issues/${issue.number}`;
8540
8542
  const branchName = `issues/${issue.number}`;
8541
8543
  const existsResult = await validateWorktreeExists(context.gitRoot, context.worktreesDirectory, worktreeName);
@@ -8543,7 +8545,8 @@ async function checkoutIssue(issue, base) {
8543
8545
  message: `Issue #${issue.number} is already checked out`,
8544
8546
  worktree: worktreeName,
8545
8547
  path: existsResult.value.path,
8546
- alreadyExists: true
8548
+ alreadyExists: true,
8549
+ createdBranch: false
8547
8550
  });
8548
8551
  const result = await createWorktree(context.gitRoot, context.worktreesDirectory, worktreeName, {
8549
8552
  branch: branchName,
@@ -8553,7 +8556,8 @@ async function checkoutIssue(issue, base) {
8553
8556
  return ok({
8554
8557
  message: result.value.message,
8555
8558
  worktree: worktreeName,
8556
- path: result.value.path
8559
+ path: result.value.path,
8560
+ createdBranch: true
8557
8561
  });
8558
8562
  }
8559
8563
  //#endregion
@@ -8628,8 +8632,8 @@ function getForkWorktreeName(pullRequest) {
8628
8632
  if (!owner) return pullRequest.head.ref;
8629
8633
  return `${owner}/${pullRequest.head.ref}`;
8630
8634
  }
8631
- async function checkoutPullRequest(pullRequest, worktreeName = pullRequest.isFromFork ? getForkWorktreeName(pullRequest) : pullRequest.head.ref) {
8632
- const gitRoot = await getGitRoot();
8635
+ async function checkoutPullRequest(pullRequest, worktreeName = pullRequest.isFromFork ? getForkWorktreeName(pullRequest) : pullRequest.head.ref, options = {}) {
8636
+ const gitRoot = await getGitRoot({ cwd: options.cwd });
8633
8637
  const context = await createContext(gitRoot);
8634
8638
  const localBranch = worktreeName;
8635
8639
  const existsResult = await validateWorktreeExists(context.gitRoot, context.worktreesDirectory, worktreeName);
@@ -8637,10 +8641,17 @@ async function checkoutPullRequest(pullRequest, worktreeName = pullRequest.isFro
8637
8641
  message: `PR #${pullRequest.number} is already checked out`,
8638
8642
  worktree: worktreeName,
8639
8643
  path: existsResult.value.path,
8640
- alreadyExists: true
8644
+ alreadyExists: true,
8645
+ createdBranch: false
8641
8646
  });
8647
+ const branchExistsResult = await branchExists(context.gitRoot, localBranch);
8648
+ if (isErr(branchExistsResult)) return err(branchExistsResult.error);
8649
+ const createdBranch = !branchExistsResult.value;
8642
8650
  const upstream = pullRequest.isFromFork ? `origin/pull/${pullRequest.number}/head` : `origin/${pullRequest.head.ref}`;
8643
- const fetchResult = await fetch({ refspec: `${upstream.replace("origin/", "")}:${localBranch}` });
8651
+ const fetchResult = await fetch({
8652
+ cwd: gitRoot,
8653
+ refspec: `${upstream.replace("origin/", "")}:${localBranch}`
8654
+ });
8644
8655
  if (isErr(fetchResult)) return err(/* @__PURE__ */ new Error(`Failed to fetch PR #${pullRequest.number}: ${fetchResult.error.message}`));
8645
8656
  const setUpstreamResult = await setUpstreamBranch(gitRoot, localBranch, upstream);
8646
8657
  if (isErr(setUpstreamResult)) console.warn(`Warning: Could not set upstream branch: ${setUpstreamResult.error.message}`);
@@ -8649,21 +8660,22 @@ async function checkoutPullRequest(pullRequest, worktreeName = pullRequest.isFro
8649
8660
  return ok({
8650
8661
  message: pullRequest.isFromFork ? `Checked out PR #${pullRequest.number} from fork ${pullRequest.head.repo.full_name}` : `Checked out PR #${pullRequest.number} from branch ${pullRequest.head.ref}`,
8651
8662
  worktree: worktreeName,
8652
- path: attachResult.value
8663
+ path: attachResult.value,
8664
+ createdBranch
8653
8665
  });
8654
8666
  }
8655
8667
  //#endregion
8656
8668
  //#region ../core/src/github/checkout.ts
8657
8669
  async function githubCheckout(options) {
8658
- const { number, base } = options;
8659
- const { owner, repo } = await getGitHubRepoInfo();
8670
+ const { number, base, cwd } = options;
8671
+ const { owner, repo } = cwd ? await getGitHubRepoInfo({ cwd }) : await getGitHubRepoInfo();
8660
8672
  const issue = await fetchIssue(owner, repo, number);
8661
8673
  if (!issue) return err(/* @__PURE__ */ new Error(`GitHub issue or pull request #${number} not found or you don't have permission to access it.`));
8662
8674
  if (isPullRequest(issue)) {
8663
8675
  if (base) return err(/* @__PURE__ */ new Error(`The --base option cannot be used with pull requests. Pull request #${number} already has a branch '${issue.pullRequest.head.ref}'.`));
8664
- return await checkoutPullRequest(issue.pullRequest);
8676
+ return cwd ? await checkoutPullRequest(issue.pullRequest, void 0, { cwd }) : await checkoutPullRequest(issue.pullRequest);
8665
8677
  }
8666
- return await checkoutIssue(issue, base);
8678
+ return cwd ? await checkoutIssue(issue, base, { cwd }) : await checkoutIssue(issue, base);
8667
8679
  }
8668
8680
  //#endregion
8669
8681
  //#region ../core/src/worktree/current.ts
@@ -8733,9 +8745,12 @@ async function deleteBranch(gitRoot, branchName) {
8733
8745
  async function deleteWorktree(gitRoot, worktreeDirectory, name, options, preDeleteCommands) {
8734
8746
  const { force = false } = options || {};
8735
8747
  const keepBranch = options?.keepBranch ?? false;
8736
- const validation = await validateWorktreeExists(gitRoot, worktreeDirectory, name, { excludeDefault: true });
8748
+ const validateOptions = { excludeDefault: true };
8749
+ if (options?.path) validateOptions.expectedPath = options.path;
8750
+ const validation = await validateWorktreeExists(gitRoot, worktreeDirectory, name, validateOptions);
8737
8751
  if (isErr(validation)) return err(validation.error);
8738
8752
  const worktreePath = validation.value.path;
8753
+ if (!isPathInsideDirectory(worktreePath, worktreeDirectory)) return err(new WorktreeError(`Worktree '${name}' is not managed by Phantom and cannot be deleted.`));
8739
8754
  const status = await getWorktreeChangesStatus(worktreePath);
8740
8755
  if (status.hasUncommittedChanges && !force) return err(new WorktreeError(`Worktree '${name}' has uncommitted changes (${status.changedFiles} files). Use --force to delete anyway.`));
8741
8756
  if (preDeleteCommands && preDeleteCommands.length > 0) {
@@ -8771,10 +8786,17 @@ async function deleteWorktree(gitRoot, worktreeDirectory, name, options, preDele
8771
8786
  return err(new WorktreeError(`worktree remove failed: ${error instanceof Error ? error.message : String(error)}`));
8772
8787
  }
8773
8788
  }
8789
+ function isPathInsideDirectory(path, directory) {
8790
+ const relativePath = relative(directory, path);
8791
+ return Boolean(relativePath && !relativePath.startsWith("..") && !isAbsolute(relativePath));
8792
+ }
8774
8793
  //#endregion
8775
8794
  //#region ../core/src/worktree/select.ts
8776
8795
  async function selectWorktreeWithFzf(gitRoot, options = {}) {
8777
- const listResult = await listWorktrees(gitRoot, { excludeDefault: options.excludeDefault });
8796
+ const listResult = await listWorktrees(gitRoot, {
8797
+ excludeDefault: options.excludeDefault,
8798
+ includePrunable: false
8799
+ });
8778
8800
  if (isErr(listResult)) return listResult;
8779
8801
  const { worktrees } = listResult.value;
8780
8802
  if (worktrees.length === 0) return {
@@ -10199,7 +10221,10 @@ async function listHandler(args = []) {
10199
10221
  if (isErr(selectResult)) exitWithError(selectResult.error.message, exitCodes.generalError);
10200
10222
  if (selectResult.value) output.log(selectResult.value.name);
10201
10223
  } else {
10202
- const result = await listWorktrees(gitRoot, { excludeDefault });
10224
+ const result = await listWorktrees(gitRoot, {
10225
+ excludeDefault,
10226
+ includePrunable: false
10227
+ });
10203
10228
  if (isErr(result)) exitWithError("Failed to list worktrees", exitCodes.generalError);
10204
10229
  const { worktrees, message } = result.value;
10205
10230
  if (worktrees.length === 0) {
@@ -24657,7 +24682,7 @@ var StdioServerTransport = class {
24657
24682
  };
24658
24683
  //#endregion
24659
24684
  //#region ../mcp/package.json
24660
- var version$1 = "6.3.0-0";
24685
+ var version$1 = "6.3.0-1";
24661
24686
  const createWorktreeTool = {
24662
24687
  name: "phantom_create_worktree",
24663
24688
  description: "Create a new Git worktree (phantom)",
@@ -24738,7 +24763,7 @@ const listWorktreesTool = {
24738
24763
  description: "List all Git worktrees (phantoms)",
24739
24764
  inputSchema: object$1({}),
24740
24765
  handler: async () => {
24741
- const result = await listWorktrees(await getGitRoot());
24766
+ const result = await listWorktrees(await getGitRoot(), { includePrunable: false });
24742
24767
  if (!isOk(result)) throw new Error("Failed to list worktrees");
24743
24768
  return { content: [{
24744
24769
  type: "text",
@@ -25099,12 +25124,12 @@ const serveHelp = {
25099
25124
  }],
25100
25125
  notes: [
25101
25126
  "Experimental: this command and its runtime behavior may change without notice.",
25102
- "The server runs the bundled TanStack Start application shipped with Phantom.",
25127
+ "The server runs the bundled Hono API and Vite web application shipped with Phantom.",
25103
25128
  "The default host is 127.0.0.1.",
25104
25129
  "The default port is 9640.",
25105
25130
  "The Codex executable defaults to codex.",
25106
- "The bundled app assets must exist under packages/cli/dist/app/.output.",
25107
- "The underlying Nitro server also respects HOST/PORT and NITRO_HOST/NITRO_PORT."
25131
+ "The bundled app assets must exist under packages/cli/dist/app/server and packages/cli/dist/app/web.",
25132
+ "The underlying Hono server respects HOST/PORT."
25108
25133
  ]
25109
25134
  };
25110
25135
  //#endregion
@@ -25166,7 +25191,10 @@ async function serveHandler(args = []) {
25166
25191
  process.env.NITRO_PORT = port;
25167
25192
  process.env.PHANTOM_SERVE_CODEX_BIN = codexBin;
25168
25193
  if (values["data-dir"]) process.env.PHANTOM_SERVE_DATA_DIR = values["data-dir"];
25169
- const serverEntry = join(dirname(fileURLToPath(import.meta.url)), "app", ".output", "server", "index.mjs");
25194
+ const bundledEntrypoint = fileURLToPath(import.meta.url);
25195
+ const serverEntry = join(dirname(bundledEntrypoint), "app", "server", "start.mjs");
25196
+ const webDistDirectory = join(dirname(bundledEntrypoint), "app", "web");
25197
+ process.env.PHANTOM_WEB_DIST_DIR = webDistDirectory;
25170
25198
  try {
25171
25199
  await access(serverEntry);
25172
25200
  } catch {
@@ -25253,7 +25281,7 @@ async function shellHandler(args) {
25253
25281
  }
25254
25282
  //#endregion
25255
25283
  //#region package.json
25256
- var version = "6.3.0-0";
25284
+ var version = "6.3.0-1";
25257
25285
  //#endregion
25258
25286
  //#region src/version.ts
25259
25287
  function getVersion() {
@@ -1,17 +0,0 @@
1
- {
2
- "date": "2026-04-26T12:51:44.433Z",
3
- "preset": "node-server",
4
- "framework": {
5
- "name": "nitro",
6
- "version": "3.0.260311-beta"
7
- },
8
- "versions": {
9
- "nitro": "3.0.260311-beta"
10
- },
11
- "serverEntry": "server/index.mjs",
12
- "publicDir": "public",
13
- "commands": {
14
- "preview": "node ./server/index.mjs"
15
- },
16
- "config": {}
17
- }
@@ -1,2 +0,0 @@
1
- /*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
2
- @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-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-rose-500:oklch(64.5% .246 16.439);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-xl:36rem;--font-weight-medium:500;--font-weight-semibold:600;--leading-tight:1.25;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-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}}@layer components;@layer utilities{.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}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-full{top:100%}.-right-3{right:calc(var(--spacing) * -3)}.right-0{right:calc(var(--spacing) * 0)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-auto{margin-right:auto}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-full{height:100%}.h-screen{height:100vh}.h-svh{height:100svh}.max-h-64{max-height:calc(var(--spacing) * 64)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-\[var\(--layout-topbar-height\)\]{min-height:var(--layout-topbar-height)}.min-h-svh{min-height:100svh}.w-6{width:calc(var(--spacing) * 6)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-80{width:calc(var(--spacing) * 80)}.w-\[var\(--sidebar-width\)\]{width:var(--sidebar-width)}.w-full{width:100%}.w-px{width:1px}.max-w-24{max-width:calc(var(--spacing) * 24)}.max-w-44{max-width:calc(var(--spacing) * 44)}.max-w-52{max-width:calc(var(--spacing) * 52)}.max-w-\[78\%\]{max-width:78%}.max-w-\[82\%\]{max-width:82%}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-\[var\(--layout-max-content-width\)\]{max-width:var(--layout-max-content-width)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.resize-none{resize:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}.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-\[var\(--radius-lg\)\]{border-radius:var(--radius-lg)}.rounded-\[var\(--radius-md\)\]{border-radius:var(--radius-md)}.rounded-\[var\(--radius-sm\)\]{border-radius:var(--radius-sm)}.rounded-\[var\(--radius-xs\)\]{border-radius:var(--radius-xs)}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[var\(--border-divider\)\]{border-color:var(--border-divider)}.border-\[var\(--semantic-danger-border\)\]{border-color:var(--semantic-danger-border)}.border-\[var\(--semantic-info-border\)\]{border-color:var(--semantic-info-border)}.border-\[var\(--semantic-success-border\)\]{border-color:var(--semantic-success-border)}.border-\[var\(--semantic-warning-border\)\]{border-color:var(--semantic-warning-border)}.border-border{border-color:var(--border)}.border-input{border-color:var(--input)}.border-sidebar-border{border-color:var(--sidebar-border)}.border-transparent{border-color:#0000}.bg-\[var\(--border-divider\)\]{background-color:var(--border-divider)}.bg-\[var\(--color-gray-400\)\]{background-color:var(--color-gray-400)}.bg-\[var\(--color-gray-500\)\]{background-color:var(--color-gray-500)}.bg-\[var\(--color-gray-900\)\]{background-color:var(--color-gray-900)}.bg-\[var\(--semantic-danger-bg\)\]{background-color:var(--semantic-danger-bg)}.bg-\[var\(--semantic-danger-fg\)\]{background-color:var(--semantic-danger-fg)}.bg-\[var\(--semantic-info-bg\)\]{background-color:var(--semantic-info-bg)}.bg-\[var\(--semantic-info-fg\)\]{background-color:var(--semantic-info-fg)}.bg-\[var\(--semantic-success-bg\)\]{background-color:var(--semantic-success-bg)}.bg-\[var\(--semantic-warning-bg\)\]{background-color:var(--semantic-warning-bg)}.bg-\[var\(--semantic-warning-fg\)\]{background-color:var(--semantic-warning-fg)}.bg-\[var\(--state-selected-bg\)\]{background-color:var(--state-selected-bg)}.bg-\[var\(--surface-card\)\]{background-color:var(--surface-card)}.bg-\[var\(--surface-code\)\]{background-color:var(--surface-code)}.bg-\[var\(--surface-floating\)\]{background-color:var(--surface-floating)}.bg-\[var\(--surface-input\)\]{background-color:var(--surface-input)}.bg-\[var\(--surface-overlay\)\]{background-color:var(--surface-overlay)}.bg-\[var\(--surface-panel\)\]{background-color:var(--surface-panel)}.bg-background{background-color:var(--background)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-accent{background-color:var(--sidebar-accent)}.bg-transparent{background-color:#0000}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-1{padding-inline:calc(var(--spacing) * 1)}.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-5{padding-inline:calc(var(--spacing) * 5)}.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-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)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pl-2{padding-left:calc(var(--spacing) * 2)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-\[length\:var\(--font-size-lg\)\]{font-size:var(--font-size-lg)}.text-\[length\:var\(--font-size-md\)\]{font-size:var(--font-size-md)}.text-\[length\:var\(--font-size-sm\)\]{font-size:var(--font-size-sm)}.text-\[length\:var\(--font-size-xl\)\]{font-size:var(--font-size-xl)}.text-\[length\:var\(--font-size-xs\)\]{font-size:var(--font-size-xs)}.leading-\[var\(--line-height-relaxed\)\]{--tw-leading:var(--line-height-relaxed);line-height:var(--line-height-relaxed)}.leading-none{--tw-leading:1;line-height:1}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[var\(--icon-color-active\)\]{color:var(--icon-color-active)}.text-\[var\(--icon-color-default\)\]{color:var(--icon-color-default)}.text-\[var\(--icon-color-muted\)\]{color:var(--icon-color-muted)}.text-\[var\(--semantic-danger-fg\)\]{color:var(--semantic-danger-fg)}.text-\[var\(--semantic-info-fg\)\]{color:var(--semantic-info-fg)}.text-\[var\(--semantic-success-fg\)\]{color:var(--semantic-success-fg)}.text-\[var\(--semantic-warning-fg\)\]{color:var(--semantic-warning-fg)}.text-\[var\(--text-primary\)\]{color:var(--text-primary)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.text-\[var\(--text-tertiary\)\]{color:var(--text-tertiary)}.text-card-foreground{color:var(--card-foreground)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-accent-foreground{color:var(--sidebar-accent-foreground)}.text-sidebar-foreground{color:var(--sidebar-foreground)}.opacity-0{opacity:0}.shadow-\[var\(--shadow-lg\)\]{--tw-shadow:var(--shadow-lg);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--shadow-md\)\]{--tw-shadow:var(--shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--shadow-xs\)\]{--tw-shadow:var(--shadow-xs);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;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-\[border-color\,box-shadow\]{transition-property:border-color,box-shadow;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-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-\[var\(--motion-duration-fast\)\]{--tw-duration:var(--motion-duration-fast);transition-duration:var(--motion-duration-fast)}.duration-\[var\(--motion-duration-normal\)\]{--tw-duration:var(--motion-duration-normal);transition-duration:var(--motion-duration-normal)}.ease-\[var\(--motion-ease-standard\)\]{--tw-ease:var(--motion-ease-standard);transition-timing-function:var(--motion-ease-standard)}.outline-none{--tw-outline-style:none;outline-style:none}.group-data-\[state\=collapsed\]\/sidebar\:hidden:is(:where(.group\/sidebar)[data-state=collapsed] *){display:none}.group-data-\[state\=collapsed\]\/sidebar\:flex-none:is(:where(.group\/sidebar)[data-state=collapsed] *){flex:none}.group-data-\[state\=collapsed\]\/sidebar\:justify-center:is(:where(.group\/sidebar)[data-state=collapsed] *){justify-content:center}:where(.group-data-\[state\=collapsed\]\/sidebar\:space-y-2:is(:where(.group\/sidebar)[data-state=collapsed] *)>: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)))}.group-data-\[state\=collapsed\]\/sidebar\:px-0:is(:where(.group\/sidebar)[data-state=collapsed] *){padding-inline:calc(var(--spacing) * 0)}.group-data-\[state\=collapsed\]\/sidebar\:px-2:is(:where(.group\/sidebar)[data-state=collapsed] *){padding-inline:calc(var(--spacing) * 2)}.placeholder\:text-\[var\(--text-tertiary\)\]::placeholder{color:var(--text-tertiary)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-px:after{content:var(--tw-content);width:1px}@media (hover:hover){.hover\:bg-\[var\(--color-gray-150\)\]:hover{background-color:var(--color-gray-150)}.hover\:bg-\[var\(--color-gray-800\)\]:hover{background-color:var(--color-gray-800)}.hover\:bg-\[var\(--color-rose-500\)\]:hover{background-color:var(--color-rose-500)}.hover\:bg-\[var\(--state-hover-bg\)\]:hover{background-color:var(--state-hover-bg)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.hover\:text-\[var\(--icon-color-active\)\]:hover{color:var(--icon-color-active)}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:var(--sidebar-border)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:shadow-\[var\(--state-focus-ring\)\]:focus-visible{--tw-shadow:var(--state-focus-ring);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\:shadow-none:focus-visible{--tw-shadow:0 0 #0000;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-\[var\(--semantic-danger-border\)\]\/40:focus-visible{--tw-ring-color:var(--semantic-danger-border)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-\[var\(--semantic-danger-border\)\]\/40:focus-visible{--tw-ring-color:color-mix(in oklab, var(--semantic-danger-border) 40%, transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-\[var\(--opacity-disabled\)\]:disabled{opacity:var(--opacity-disabled)}.has-\[\[data-variant\=inset\]\]\:bg-background:has([data-variant=inset]){background-color:var(--background)}@media (width>=40rem){.sm\:flex{display:flex}.sm\:w-40{width:calc(var(--spacing) * 40)}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}}@media (width>=48rem){.md\:relative{position:relative}.md\:z-auto{z-index:auto}.md\:hidden{display:none}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}}:root{--color-white:#fdfdfd;--color-gray-50:#f7f8fa;--color-gray-75:#f3f4f7;--color-gray-100:#f0f1f5;--color-gray-150:#edeef0;--color-gray-200:#e5e7ec;--color-gray-250:#dadde5;--color-gray-300:#c9ccd6;--color-gray-400:#aeb1bb;--color-gray-500:#8d909b;--color-gray-600:#747783;--color-gray-700:#565a66;--color-gray-800:#343844;--color-gray-900:#1f2330;--color-green-50:#e7f0ea;--color-green-100:#dde7df;--color-green-500:#2f7a4e;--color-rose-50:#f0e1e7;--color-rose-100:#e8d7df;--color-rose-500:#9b3f5a;--color-yellow-50:#f3ead2;--color-yellow-100:#eadcad;--color-yellow-600:#8a6a1d;--color-blue-50:#e4e9f7;--color-blue-100:#d8e0f3;--color-blue-600:#4d5f9e;--surface-window:#f0f1f5;--surface-sidebar:#edeef0;--surface-panel:#f3f4f7;--surface-card:#f7f8fa;--surface-code:#f1f2f6;--surface-input:#f3f4f7;--surface-floating:#ffffffb8;--surface-overlay:#1f23305c;--text-primary:#2c303a;--text-secondary:#5f636f;--text-tertiary:#8a8e99;--text-muted:#a9adb6;--text-disabled:#c4c7cf;--text-link:#4d5f9e;--text-success:#2f7a4e;--text-danger:#9b3f5a;--text-warning:#8a6a1d;--border-subtle:#e0e2e8;--border-default:#d5d8e0;--border-strong:#c4c8d2;--border-focus:#aeb7d8;--border-divider:#1f233014;--semantic-success-bg:#e7f0ea;--semantic-success-fg:#2f7a4e;--semantic-success-border:#8ec7a2;--semantic-danger-bg:#f0e1e7;--semantic-danger-fg:#9b3f5a;--semantic-danger-border:#d18ba0;--semantic-warning-bg:#f3ead2;--semantic-warning-fg:#8a6a1d;--semantic-warning-border:#d7bc73;--semantic-info-bg:#e4e9f7;--semantic-info-fg:#4d5f9e;--semantic-info-border:#a8b7e0;--diff-added-bg:#dde7df;--diff-added-bg-soft:#e7f0ea;--diff-added-fg:#2f7a4e;--diff-added-border:#8ec7a2;--diff-removed-bg:#e8d7df;--diff-removed-bg-soft:#f0e1e7;--diff-removed-fg:#9b3f5a;--diff-removed-border:#d18ba0;--diff-hunk-bg:#e9e7f5;--diff-hunk-fg:#6b61a8;--diff-hunk-border:#c8c2ea;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", sans-serif;--font-mono:"SF Mono", "Menlo", "Monaco", "Consolas", "Liberation Mono", monospace;--font-size-2xs:10px;--font-size-xs:11px;--font-size-sm:12px;--font-size-md:13px;--font-size-lg:14px;--font-size-xl:16px;--font-size-2xl:20px;--line-height-tight:1.25;--line-height-normal:1.45;--line-height-relaxed:1.6;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--space-0:0;--space-0_5:2px;--space-1:4px;--space-1_5:6px;--space-2:8px;--space-2_5:10px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:9999px;--shadow-xs:0 1px 2px #1f23300f;--shadow-sm:0 2px 6px #1f233014;--shadow-md:0 8px 24px #1f23301f;--shadow-lg:0 16px 48px #1f233029;--motion-duration-fast:.12s;--motion-duration-normal:.18s;--motion-duration-slow:.24s;--motion-ease-standard:cubic-bezier(.2, 0, 0, 1);--motion-ease-out:cubic-bezier(0, 0, .2, 1);--motion-ease-in:cubic-bezier(.4, 0, 1, 1);--state-hover-bg:#1f23300d;--state-pressed-bg:#1f233017;--state-selected-bg:#1f233012;--state-focus-ring:0 0 0 3px #6874b438;--opacity-disabled:.42;--opacity-muted:.64;--layout-sidebar-width:320px;--layout-topbar-height:56px;--layout-panel-min-width:320px;--layout-max-content-width:1200px;--icon-size-xs:12px;--icon-size-sm:14px;--icon-size-md:16px;--icon-size-lg:20px;--icon-color-default:#747783;--icon-color-muted:#a9adb6;--icon-color-active:#343844;--background:var(--surface-window);--foreground:var(--text-primary);--card:var(--surface-card);--card-foreground:var(--text-primary);--popover:var(--surface-floating);--popover-foreground:var(--text-primary);--primary:var(--color-gray-900);--primary-foreground:var(--color-white);--secondary:var(--color-gray-100);--secondary-foreground:var(--text-primary);--muted:var(--surface-panel);--muted-foreground:var(--text-secondary);--accent:var(--state-hover-bg);--accent-foreground:var(--text-primary);--destructive:var(--semantic-danger-fg);--destructive-foreground:var(--color-white);--border:var(--border-default);--input:var(--border-default);--ring:var(--border-focus);--sidebar:var(--surface-sidebar);--sidebar-foreground:var(--text-primary);--sidebar-accent:var(--state-selected-bg);--sidebar-accent-foreground:var(--text-primary);--sidebar-border:var(--border-divider);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-sans);background:var(--surface-window);color:var(--text-primary)}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--surface-window);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--font-size-md);line-height:var(--line-height-normal);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0}button,input,textarea{font:inherit}::selection{background:var(--semantic-info-bg);color:var(--text-primary)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--radius-pill);background-clip:padding-box;border:3px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400);background-clip:padding-box;border:3px solid #0000}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}