session-steward 0.1.0 → 0.2.0

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.
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.3.3 | 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-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-sans:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-100:oklch(96.2% .059 95.617);--color-amber-300:oklch(87.9% .169 91.605);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-950:oklch(26.2% .051 172.552);--color-sky-400:oklch(74.6% .16 232.661);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-neutral-100:oklch(97% 0 none);--color-neutral-200:oklch(92.2% 0 none);--color-neutral-300:oklch(87% 0 none);--color-neutral-400:oklch(70.8% 0 none);--color-neutral-500:oklch(55.6% 0 none);--color-neutral-600:oklch(43.9% 0 none);--color-neutral-700:oklch(37.1% 0 none);--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mb-1{margin-bottom:var(--spacing)}.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-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.size-1{width:var(--spacing);height:var(--spacing)}.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-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-9{height:calc(var(--spacing) * 9)}.h-12{height:calc(var(--spacing) * 12)}.h-\[76px\]{height:76px}.h-full{height:100%}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-\[60px\]{min-height:60px}.min-h-\[340px\]{min-height:340px}.min-h-\[360px\]{min-height:360px}.min-h-screen{min-height:100vh}.w-16{width:calc(var(--spacing) * 16)}.w-32{width:calc(var(--spacing) * 32)}.w-\[min\(50\%\,20rem\)\]{width:min(50%,20rem)}.w-\[min\(75\%\,30rem\)\]{width:min(75%,30rem)}.max-w-\[230px\]{max-width:230px}.max-w-\[1380px\]{max-width:1380px}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-40{min-width:calc(var(--spacing) * 40)}.shrink-0{flex-shrink:0}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[18px_minmax\(0\,1fr\)\]{grid-template-columns:18px minmax(0,1fr)}.grid-cols-\[32px_minmax\(0\,1fr\)_80px\]{grid-template-columns:32px minmax(0,1fr) 80px}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-white\/\[\.055\]>:not(:last-child)){border-color:#ffffff0e}@supports (color:color-mix(in lab, red, red)){:where(.divide-white\/\[\.055\]>:not(:last-child)){border-color:color-mix(in oklab, var(--color-white) 5.5%, transparent)}}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-amber-300\/15{border-color:#ffd23626}@supports (color:color-mix(in lab, red, red)){.border-amber-300\/15{border-color:color-mix(in oklab, var(--color-amber-300) 15%, transparent)}}.border-amber-300\/20{border-color:#ffd23633}@supports (color:color-mix(in lab, red, red)){.border-amber-300\/20{border-color:color-mix(in oklab, var(--color-amber-300) 20%, transparent)}}.border-emerald-300{border-color:var(--color-emerald-300)}.border-rose-300\/20{border-color:#ffa2ae33}@supports (color:color-mix(in lab, red, red)){.border-rose-300\/20{border-color:color-mix(in oklab, var(--color-rose-300) 20%, transparent)}}.border-rose-400\/20{border-color:#ff667f33}@supports (color:color-mix(in lab, red, red)){.border-rose-400\/20{border-color:color-mix(in oklab, var(--color-rose-400) 20%, transparent)}}.border-white\/15{border-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.border-white\/15{border-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.border-white\/\[\.06\]{border-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.border-white\/\[\.06\]{border-color:color-mix(in oklab, var(--color-white) 6%, transparent)}}.border-white\/\[\.07\]{border-color:#ffffff12}@supports (color:color-mix(in lab, red, red)){.border-white\/\[\.07\]{border-color:color-mix(in oklab, var(--color-white) 7.0%, transparent)}}.border-white\/\[\.08\]{border-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.border-white\/\[\.08\]{border-color:color-mix(in oklab, var(--color-white) 8%, transparent)}}.border-white\/\[\.055\]{border-color:#ffffff0e}@supports (color:color-mix(in lab, red, red)){.border-white\/\[\.055\]{border-color:color-mix(in oklab, var(--color-white) 5.5%, transparent)}}.bg-amber-300{background-color:var(--color-amber-300)}.bg-amber-300\/\[\.06\]{background-color:#ffd2360f}@supports (color:color-mix(in lab, red, red)){.bg-amber-300\/\[\.06\]{background-color:color-mix(in oklab, var(--color-amber-300) 6%, transparent)}}.bg-amber-300\/\[\.045\]{background-color:#ffd2360b}@supports (color:color-mix(in lab, red, red)){.bg-amber-300\/\[\.045\]{background-color:color-mix(in oklab, var(--color-amber-300) 4.5%, transparent)}}.bg-emerald-300{background-color:var(--color-emerald-300)}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-rose-300\/\[\.06\]{background-color:#ffa2ae0f}@supports (color:color-mix(in lab, red, red)){.bg-rose-300\/\[\.06\]{background-color:color-mix(in oklab, var(--color-rose-300) 6%, transparent)}}.bg-rose-400{background-color:var(--color-rose-400)}.bg-rose-400\/\[\.07\]{background-color:#ff667f12}@supports (color:color-mix(in lab, red, red)){.bg-rose-400\/\[\.07\]{background-color:color-mix(in oklab, var(--color-rose-400) 7.0%, transparent)}}.bg-sky-400{background-color:var(--color-sky-400)}.bg-white\/\[\.03\]{background-color:#ffffff08}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[\.03\]{background-color:color-mix(in oklab, var(--color-white) 3%, transparent)}}.bg-white\/\[\.07\]{background-color:#ffffff12}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[\.07\]{background-color:color-mix(in oklab, var(--color-white) 7.0%, transparent)}}.bg-white\/\[\.012\]{background-color:#ffffff03}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[\.012\]{background-color:color-mix(in oklab, var(--color-white) 1.2%, transparent)}}.bg-white\/\[\.025\]{background-color:#ffffff06}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[\.025\]{background-color:color-mix(in oklab, var(--color-white) 2.5%, transparent)}}.bg-white\/\[\.035\]{background-color:#ffffff09}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[\.035\]{background-color:color-mix(in oklab, var(--color-white) 3.5%, transparent)}}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-7{padding:calc(var(--spacing) * 7)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.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-5{padding-block:calc(var(--spacing) * 5)}.py-\[1\.15rem\]{padding-block:1.15rem}.pt-4{padding-top:calc(var(--spacing) * 4)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-\.035em\]{--tw-tracking:-.035em;letter-spacing:-.035em}.tracking-\[\.1em\]{--tw-tracking:.1em;letter-spacing:.1em}.tracking-\[\.11em\]{--tw-tracking:.11em;letter-spacing:.11em}.tracking-\[\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-amber-100{color:var(--color-amber-100)}.text-amber-100\/75{color:#fef3c6bf}@supports (color:color-mix(in lab, red, red)){.text-amber-100\/75{color:color-mix(in oklab, var(--color-amber-100) 75%, transparent)}}.text-amber-100\/80{color:#fef3c6cc}@supports (color:color-mix(in lab, red, red)){.text-amber-100\/80{color:color-mix(in oklab, var(--color-amber-100) 80%, transparent)}}.text-amber-300{color:var(--color-amber-300)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-950{color:var(--color-emerald-950)}.text-neutral-100{color:var(--color-neutral-100)}.text-neutral-200{color:var(--color-neutral-200)}.text-neutral-300{color:var(--color-neutral-300)}.text-neutral-400{color:var(--color-neutral-400)}.text-neutral-500{color:var(--color-neutral-500)}.text-neutral-600{color:var(--color-neutral-600)}.text-neutral-700{color:var(--color-neutral-700)}.text-rose-100{color:var(--color-rose-100)}.text-rose-100\/75{color:#ffe4e6bf}@supports (color:color-mix(in lab, red, red)){.text-rose-100\/75{color:color-mix(in oklab, var(--color-rose-100) 75%, transparent)}}.text-rose-200{color:var(--color-rose-200)}.text-rose-300{color:var(--color-rose-300)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:text-neutral-400:is(:where(.group):hover *){color:var(--color-neutral-400)}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:pb-0:last-child{padding-bottom:0}@media (width>=40rem){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:px-5{padding-inline:calc(var(--spacing) * 5)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:py-8{padding-block:calc(var(--spacing) * 8)}.sm\:text-\[1\.75rem\]{font-size:1.75rem}}@media (width>=64rem){.lg\:hidden{display:none}.lg\:grid-cols-\[minmax\(0\,1fr\)_320px\]{grid-template-columns:minmax(0,1fr) 320px}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}}@media (width>=80rem){.xl\:grid-cols-\[minmax\(0\,1fr\)_340px\]{grid-template-columns:minmax(0,1fr) 340px}}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}body{background:#0a0a0a;min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #34d399}::selection{color:#fff;background:#34d39947}.app-shell{--gray-100:#f5f5f5;--gray-200:#e5e5e5;--gray-300:#d4d4d4;--gray-400:#a3a3a3;--gray-500:#737373;--gray-550:#626262;--gray-600:#525252;--gray-700:#404040;--canvas:#0a0a0a;--surface:#171717;--field:#0a0a0ab8;--field-focus:#0a0a0aeb;--popover:#0a0a0afa;--dialog-start:#171717;--dialog-end:#0a0a0a;background:radial-gradient(circle at 50% -12rem, #10b98109, transparent 28rem), var(--canvas);position:relative;overflow-x:hidden}.app-shell:before{pointer-events:none;content:"";background:linear-gradient(90deg,#0000,#34d39947,#0000);height:1px;position:fixed;top:0;left:0;right:0}.surface{background:var(--surface);border:1px solid #ffffff13;border-radius:1rem;box-shadow:inset 0 1px #ffffff06,0 14px 40px #0000001f}.provider-context{border-bottom:1px solid #fff1;margin:-.15rem .2rem .85rem;padding:0 .15rem .8rem}.provider-context-editing{background:#ffffff05;border:1px solid #ffffff13;border-radius:.85rem;margin-left:0;margin-right:0;padding:.8rem}.provider-context-row{min-width:0;display:block}.provider-context-main{min-width:0;color:var(--gray-500);gap:.25rem;display:grid}.provider-context-heading{flex-wrap:wrap;align-items:center;gap:.3rem .5rem;display:flex}.provider-context-label{color:var(--gray-400);flex:none;font-size:.71rem;font-weight:650}.provider-context code{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--gray-500);padding-left:1.2rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;overflow:hidden}.provider-context-actions{flex:none;align-items:center;gap:.3rem;display:flex}.compact-action{min-height:1.8rem;color:var(--gray-400);background:0 0;border:0;border-radius:.5rem;padding:.3rem .5rem;font-size:.69rem;font-weight:650;transition:background .15s,color .15s}.compact-action:hover:not(:disabled){color:var(--gray-300);background:#ffffff0b}.compact-action:disabled{opacity:.42}.provider-context-form{border-top:1px solid #ffffff0f;margin-top:.8rem;padding-top:.8rem}.overview-strip{border-bottom:1px solid #fff1;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:1rem;display:grid}.overview-item{color:#3f8f72;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.55rem;min-width:0;padding:.35rem .7rem .8rem;display:grid}.overview-item:nth-child(odd){border-right:1px solid #ffffff0e}.overview-item:nth-child(-n+4){border-bottom:1px solid #ffffff0e}.overview-item:last-child{border-right:0}.overview-label{text-overflow:ellipsis;white-space:nowrap;color:var(--gray-550);font-size:.67rem;font-weight:600;line-height:.95rem;overflow:hidden}.overview-value{letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap;color:var(--gray-300);margin-top:.08rem;font-size:1rem;font-weight:650;line-height:1.25rem;overflow:hidden}.brand-mark{color:#6ee7b7;background:linear-gradient(145deg,#34d39926,#10b9810b);border:1px solid #34d3992e;border-radius:.9rem;flex:none;place-items:center;width:2.8rem;height:2.8rem;display:grid;box-shadow:0 0 30px #10b9810f}.icon-tile{width:2.4rem;height:2.4rem;color:var(--gray-400);background:#ffffff09;border:1px solid #ffffff14;border-radius:.75rem;flex:none;place-items:center;display:grid}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--gray-400);font-size:.72rem;font-weight:700;line-height:1rem}.source-badge,.selection-count{color:var(--gray-400);background:#ffffff0a;border:1px solid #ffffff14;border-radius:999px;font-size:.69rem;font-weight:650}.source-badge{padding:.15rem .45rem}.selection-count{text-align:center;min-width:4.75rem;color:var(--gray-300);padding:.42rem .65rem}.selection-count-hidden{visibility:hidden}.button{border:1px solid #0000;border-radius:.68rem;justify-content:center;align-items:center;gap:.45rem;min-height:2.35rem;padding:.55rem .8rem;font-size:.78rem;font-weight:650;line-height:1rem;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.button:disabled{opacity:.42}.button.secondary{color:var(--gray-200);background:#ffffff0e;border-color:#ffffff14}.button.secondary:hover:not(:disabled){background:#ffffff17;border-color:#ffffff21}.button.ghost{color:var(--gray-400);background:0 0;border-color:#fff1}.button.ghost:hover:not(:disabled){color:var(--gray-200);background:#ffffff0a;border-color:#ffffff1f}.button.primary{color:#fff;background:#059669;border-color:#34d39940;box-shadow:0 8px 24px #05966921}.button.primary:hover:not(:disabled){background:#10b981}.button.danger{color:#fff;background:#dc2626d6;border-color:#f8717133;box-shadow:0 8px 24px #7f1d1d26}.button.danger:hover:not(:disabled){background:#dc2626}.icon-button{width:2rem;height:2rem;color:var(--gray-500);background:0 0;border:1px solid #0000;border-radius:.55rem;flex:none;place-items:center;transition:all .15s;display:grid}.icon-button:hover:not(:disabled){color:var(--gray-200);background:#ffffff0d;border-color:#ffffff14}.field{letter-spacing:.025em;color:var(--gray-400);gap:.45rem;font-size:.74rem;font-weight:650;display:grid}.field>span{align-items:center;gap:.35rem;display:flex}.field input,.field select,.input-wrap{background:var(--field);width:100%;min-height:2.55rem;color:var(--gray-100);border:1px solid #ffffff17;border-radius:.7rem;transition:border-color .15s,background .15s,box-shadow .15s}.field>input{padding:.65rem .75rem}.field select{appearance:none;text-overflow:ellipsis;white-space:nowrap;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .8rem center;background-repeat:no-repeat;background-size:.85rem;padding:.65rem 2.5rem .65rem .75rem;overflow:hidden}.field input::placeholder{color:var(--gray-600)}.field input:hover,.field select:hover,.input-wrap:hover{border-color:#ffffff24}.field input:focus,.field select:focus,.input-wrap:focus-within{background-color:var(--field-focus);border-color:#34d3998c;box-shadow:0 0 0 3px #34d39912}.input-wrap{color:var(--gray-600);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;padding:0 .75rem;display:grid}.input-wrap input{min-height:auto;box-shadow:none;background:0 0;border:0;border-radius:0;outline:0;padding:.65rem .6rem}.input-wrap button{color:var(--gray-500);background:0 0;border:0;place-items:center;display:grid}.filter-grid{gap:1rem;display:grid}.session-filters{background:#ffffff02;border-bottom:1px solid #fff1}.session-filters-main{padding:.85rem 1rem}.filter-footer{background:#00000014;border-top:1px solid #ffffff0f;flex-direction:column;gap:1rem;padding:.7rem 1rem;display:flex}.clear-filters{min-height:2.15rem;color:var(--gray-400);background:#ffffff06;border:1px solid #ffffff13;border-radius:.65rem;align-items:center;gap:.4rem;padding:.4rem .55rem .4rem .65rem;font-size:.71rem;font-weight:650;transition:all .15s;display:inline-flex}.clear-filters:hover{color:var(--gray-200);background:#ffffff0d;border-color:#ffffff24}.clear-filters span{color:#a7f3d0;background:#34d3991a;border-radius:999px;place-items:center;min-width:1.2rem;height:1.2rem;font-size:.62rem;display:grid}.toggle{cursor:pointer;min-height:2.15rem;color:var(--gray-400);background:#ffffff06;border:1px solid #ffffff13;border-radius:.65rem;align-items:center;gap:.45rem;padding:.4rem .62rem;font-size:.72rem;font-weight:600;transition:all .15s;display:inline-flex}.toggle:hover{color:var(--gray-300);border-color:#ffffff21}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle-track{background:var(--gray-700);border-radius:999px;width:1.55rem;height:.9rem;transition:all .15s;position:relative}.toggle-track span{background:var(--gray-400);border-radius:999px;width:.6rem;height:.6rem;transition:all .15s;position:absolute;top:.15rem;left:.15rem}.toggle-active{color:#a7f3d0;background:#10b98113;border-color:#34d39933}.toggle-active .toggle-track{background:#059669}.toggle-active .toggle-track span{background:#fff;left:.8rem}.selection-control{cursor:pointer;color:var(--gray-300);align-items:center;gap:.55rem;font-size:.74rem;font-weight:600;display:inline-flex}.selection-control input,.session-checkbox input{accent-color:#10b981;width:1rem;height:1rem;margin:0}.session-row{grid-template-columns:32px minmax(0,1fr) auto auto;align-items:center;gap:.45rem;min-height:76px;padding:.8rem 1rem;transition:background .15s,box-shadow .15s;display:grid;position:relative}.session-row:hover{background:#ffffff06}.session-row-inspected{box-shadow:3px 0 0 var(--gray-500) inset;background:#ffffff07}.session-row-selected{background:#10b98107}.session-row-inspected.session-row-selected{background:#10b9810e;box-shadow:inset 3px 0 #34d399}.session-checkbox{cursor:pointer;border-radius:.65rem;place-items:center;width:2.5rem;height:2.5rem;margin:-.25rem;transition:background .15s,box-shadow .15s;display:grid}.session-checkbox:hover{background:#ffffff0b}.session-checkbox:focus-within{background:#10b98112;box-shadow:0 0 0 2px #34d3992e}.session-row>button{color:inherit;background:0 0;border:0;padding:.2rem 0}.session-workspace{min-width:0;color:var(--gray-500);align-items:center;gap:.375rem;margin-top:.375rem;font-size:.75rem;display:flex}.archive-tag{color:var(--gray-400);background:#ffffff09;border:1px solid #ffffff14;border-radius:999px;flex:none;align-items:center;gap:.25rem;padding:.12rem .38rem;font-size:.62rem;font-weight:600;display:inline-flex}.inspector,.inspector-backdrop{display:none}@media (width<=1023px){.inspector-open{z-index:40;max-height:min(36rem,100vh - 3rem);display:block;position:fixed;bottom:.75rem;left:.75rem;right:.75rem;overflow-y:auto;box-shadow:0 28px 90px #0000009e}.inspector-backdrop-open{z-index:39;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000094;border:0;width:100%;height:100%;display:block;position:fixed;inset:0}}@media (width>=1024px){.inspector{display:block;position:sticky;top:1.5rem}}.time-badge,.kind-label{white-space:nowrap;align-items:center;gap:.3rem;display:inline-flex}.time-badge{color:var(--gray-400);background:#ffffff07;border:1px solid #fff1;border-radius:999px;padding:.25rem .48rem;font-size:.63rem;font-weight:600}.kind-label{color:var(--gray-500);font-size:.68rem}.page-button{min-width:2rem;height:2rem;color:var(--gray-500);background:0 0;border:1px solid #0000;border-radius:.55rem;place-items:center;padding:0 .42rem;font-size:.7rem;transition:all .15s;display:grid}.page-button:hover:not(:disabled){color:var(--gray-200);background:#ffffff0b;border-color:#ffffff14}.page-button[aria-current=page]{color:#a7f3d0;background:#10b9811a;border-color:#34d39933}.page-button:disabled{opacity:.28}.status-pill{border:1px solid;border-radius:999px;align-items:center;gap:.5rem;min-height:2.25rem;padding:.48rem .7rem;font-size:.69rem;font-weight:650;transition:filter .15s;display:inline-flex}.status-pill:hover{filter:brightness(1.12)}.status-pill>span{background:currentColor;border-radius:999px;width:.42rem;height:.42rem;box-shadow:0 0 10px}.status-ready{color:#a7f3d0;background:#10b98114;border-color:#34d39938}.status-warning{color:#fde68a;background:#f59e0b14;border-color:#fbbf2438}.status-error{color:#fecdd3;background:#e11d4814;border-color:#fb718538}.compatibility-popover{z-index:30;background:var(--popover);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid #ffffff17;border-radius:.9rem;width:min(25rem,100vw - 2rem);padding:1rem;position:absolute;top:calc(100% + .55rem);right:0;box-shadow:0 24px 70px #0000008c,inset 0 1px #ffffff09}.alert{border:1px solid;border-radius:.8rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;margin-bottom:1.25rem;padding:.75rem .85rem;font-size:.78rem;display:grid}.alert button{color:currentColor;opacity:.65;background:0 0;border:0;place-items:center;display:grid}.alert-success{color:#a7f3d0;background:#10b98112;border-color:#34d39933}.alert-warning{color:#fde68a;background:#f59e0b12;border-color:#fbbf2433}.alert-error{color:#fecdd3;background:#e11d4812;border-color:#fb718533}.dialog-backdrop{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000c7;place-items:center;padding:1rem;display:grid;position:fixed;inset:0;overflow-y:auto}.dialog-panel{background:linear-gradient(145deg, var(--dialog-start), var(--dialog-end));border:1px solid #ffffff1a;border-radius:1.15rem;width:100%;max-width:39rem;max-height:calc(100vh - 2rem);padding:1.4rem;overflow-y:auto;box-shadow:0 35px 100px #000000a6,inset 0 1px #ffffff0a}.scope-card{text-align:left;background:#ffffff05;border:1px solid #ffffff14;border-radius:.85rem;padding:.9rem;transition:all .15s}.scope-card:hover:not(:disabled){background:#ffffff08;border-color:#ffffff26}.scope-card-active{background:#10b98112;border-color:#34d39959;box-shadow:inset 0 0 0 1px #34d3990d}.skeleton{background:linear-gradient(90deg,#ffffff09,#ffffff13,#ffffff09) 0 0/200% 100%;animation:1.5s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width>=640px){.session-row{padding-left:1.25rem;padding-right:1.25rem}.dialog-panel{padding:1.65rem}.filter-grid{grid-template-columns:minmax(0,1fr) minmax(12rem,.7fr)}.session-filters-main{padding-left:1.25rem;padding-right:1.25rem}.filter-footer{flex-direction:row;justify-content:space-between;align-items:center;padding-left:1.25rem;padding-right:1.25rem}}@media (width>=900px){.overview-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-item{border-bottom:1px solid #ffffff0e;border-right:1px solid #ffffff0e;padding-top:.15rem}.overview-item:nth-child(3n){border-right:0}.overview-item:nth-child(n+4){border-bottom:0}}@media (width>=1180px){.overview-strip{grid-template-columns:repeat(5,minmax(0,1fr))}.overview-item{border-bottom:0;border-right:1px solid #ffffff0e}.overview-item:nth-child(3n){border-right:1px solid #ffffff0e}.overview-item:last-child{border-right:0}.filter-grid{grid-template-columns:minmax(18rem,1fr) minmax(12rem,.65fr) minmax(10rem,.5fr);align-items:end}}@media (width>=1320px){.filter-grid{grid-template-columns:minmax(15rem,1fr) minmax(11rem,.7fr) minmax(9rem,.48fr) minmax(8rem,.42fr) minmax(8rem,.42fr)}}@media (width<=639px){.surface{border-radius:.85rem}.provider-context{margin-bottom:.7rem}.provider-context code{width:100%}.session-list-actions{margin-left:auto}.session-row{grid-template-columns:32px minmax(0,1fr) auto;gap:.35rem}.session-row>div{max-width:5.2rem}.kind-label{display:none}.time-badge{background:0 0;border:0;padding-right:0}.compatibility-popover{width:auto;position:fixed;top:5.25rem;left:1rem;right:1rem}.dialog-backdrop{align-items:end;padding:0}.dialog-panel{border-bottom:0;border-left:0;border-right:0;border-radius:1.15rem 1.15rem 0 0;max-height:92vh}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-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}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
package/dist/index.html CHANGED
@@ -1,3 +1,3 @@
1
- <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><title>Session Steward</title> <script type="module" crossorigin src="/assets/index-DGVNvKX8.js"></script>
2
- <link rel="stylesheet" crossorigin href="/assets/index-DTDZWQb9.css">
1
+ <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><title>Session Steward</title> <script type="module" crossorigin src="/assets/index-kZ4XDVk-.js"></script>
2
+ <link rel="stylesheet" crossorigin href="/assets/index-pzaccjP4.css">
3
3
  </head><body><div id="root"></div></body></html>
package/lib/cli.mjs CHANGED
@@ -17,10 +17,18 @@ const {
17
17
  } = getProvider("codex");
18
18
 
19
19
  const PAGE_SIZE = 20;
20
+ const ALLOWED_INACTIVE_DAYS = new Set([30, 60, 90]);
21
+ const ALLOWED_ARCHIVE_STATUSES = new Set(["all", "active", "archived"]);
20
22
  const HELP_TEXT = `
21
23
  Commands
22
24
  search <text> Set the active search filter
23
25
  search Clear the active search filter
26
+ workspace <path> Show one exact workspace
27
+ workspace Clear the workspace filter
28
+ inactive <30|60|90> Show sessions last active that many days ago
29
+ inactive Clear the inactivity filter
30
+ archive <all|active|archived> Filter sessions by archive status
31
+ archive Clear the archive filter
24
32
  sort <updated|created|name|cwd>
25
33
  Change sort order
26
34
  inspect <index|id-prefix> Show session details
@@ -40,6 +48,23 @@ Selectors
40
48
  delete 1 4-6 019dd26c
41
49
  `.trim();
42
50
 
51
+ const CLI_HELP_TEXT = `
52
+ Usage: session-steward-cli [options]
53
+
54
+ Options
55
+ --codex-home <path> Use another Codex session folder for this run
56
+ --json Print sessions as JSON
57
+ --include-internals Include subagent sessions
58
+ --search <text> Search names, workspaces, and session IDs
59
+ --workspace <path> Show one exact workspace
60
+ --inactive-days <30|60|90> Show sessions last active at least this long ago
61
+ --archive-status <status> Show all, active, or archived sessions
62
+ --sort <updated|created|name|cwd>
63
+ Choose the session order
64
+ --limit <number> Limit JSON results
65
+ -h, --help Show this help
66
+ `.trim();
67
+
43
68
  function truncate(value, maxLength) {
44
69
  if (value.length <= maxLength) {
45
70
  return value;
@@ -138,7 +163,7 @@ function getMarkerText(record) {
138
163
  return markers.join(", ");
139
164
  }
140
165
 
141
- function printScreen({ codexHome, result, search, showInternals, sort }) {
166
+ function printScreen({ archiveStatus, codexHome, inactiveDays, result, search, showInternals, sort, workspace }) {
142
167
  if (output.isTTY) {
143
168
  output.write("\x1Bc");
144
169
  }
@@ -151,7 +176,10 @@ function printScreen({ codexHome, result, search, showInternals, sort }) {
151
176
  `Sort: ${sort} | Search: ${search || "-"} | Internals: ${showInternals ? "shown" : "hidden"}\n`,
152
177
  );
153
178
  output.write(
154
- "Commands: search | sort | inspect | delete | page | next | prev | internals | refresh | help | quit\n\n",
179
+ `Last active: ${inactiveDays ? `${inactiveDays}+ days ago` : "any time"} | Workspace: ${workspace || "all"} | Status: ${archiveStatus}\n`,
180
+ );
181
+ output.write(
182
+ "Commands: search | workspace | inactive | archive | sort | inspect | delete | page | next | prev | internals | refresh | help | quit\n\n",
155
183
  );
156
184
 
157
185
  output.write(
@@ -306,14 +334,45 @@ function validateSort(value) {
306
334
  : "updated";
307
335
  }
308
336
 
337
+ function validateInactiveDays(value) {
338
+ if (value === undefined || value === null || value === "") {
339
+ return null;
340
+ }
341
+
342
+ const days = Number(value);
343
+
344
+ if (!ALLOWED_INACTIVE_DAYS.has(days)) {
345
+ throw new Error("Inactive days must be 30, 60, or 90.");
346
+ }
347
+
348
+ return days;
349
+ }
350
+
351
+ function validateArchiveStatus(value) {
352
+ const status = value || "all";
353
+
354
+ if (!ALLOWED_ARCHIVE_STATUSES.has(status)) {
355
+ throw new Error("Archive status must be all, active, or archived.");
356
+ }
357
+
358
+ return status;
359
+ }
360
+
361
+ function getInactiveBeforeMs(days) {
362
+ return days === null ? null : Date.now() - days * 24 * 60 * 60 * 1000;
363
+ }
364
+
309
365
  async function refreshPage(state) {
310
366
  state.result = await listSessions({
367
+ archiveStatus: state.archiveStatus,
311
368
  codexHome: state.codexHome,
369
+ inactiveBeforeMs: getInactiveBeforeMs(state.inactiveDays),
312
370
  includeInternals: state.showInternals,
313
371
  page: state.page,
314
372
  pageSize: PAGE_SIZE,
315
373
  search: state.search,
316
374
  sort: state.sort,
375
+ workspace: state.workspace,
317
376
  });
318
377
  state.page = state.result.page;
319
378
  }
@@ -323,6 +382,8 @@ async function printJson(options) {
323
382
  if (!output.write(chunk)) await once(output, "drain");
324
383
  };
325
384
  const limit = Number.isFinite(options.limit) && options.limit > 0 ? options.limit : Infinity;
385
+ const inactiveBeforeMs = getInactiveBeforeMs(validateInactiveDays(options.inactiveDays));
386
+ const archiveStatus = validateArchiveStatus(options.archiveStatus);
326
387
  let page = 1;
327
388
  let written = 0;
328
389
  let first = true;
@@ -330,12 +391,15 @@ async function printJson(options) {
330
391
 
331
392
  while (written < limit) {
332
393
  const result = await listSessions({
394
+ archiveStatus,
333
395
  codexHome: options.codexHome,
396
+ inactiveBeforeMs,
334
397
  includeInternals: Boolean(options.includeInternals),
335
398
  page,
336
399
  pageSize: Math.min(100, limit - written),
337
400
  search: options.search || "",
338
401
  sort: validateSort(options.sort || "updated"),
402
+ workspace: options.workspace,
339
403
  });
340
404
 
341
405
  for (const record of result.records) {
@@ -362,11 +426,14 @@ async function runInteractive(state) {
362
426
  while (true) {
363
427
  await refreshPage(state);
364
428
  printScreen({
429
+ archiveStatus: state.archiveStatus,
365
430
  codexHome: state.codexHome,
431
+ inactiveDays: state.inactiveDays,
366
432
  result: state.result,
367
433
  search: state.search,
368
434
  showInternals: state.showInternals,
369
435
  sort: state.sort,
436
+ workspace: state.workspace,
370
437
  });
371
438
 
372
439
  const commandInput = await rl.question("\nsession-steward> ");
@@ -403,6 +470,34 @@ async function runInteractive(state) {
403
470
  continue;
404
471
  }
405
472
 
473
+ if (["workspace", "cwd"].includes(command.name)) {
474
+ state.workspace = command.args.length > 0 ? command.args.join(" ") : undefined;
475
+ state.page = 1;
476
+ continue;
477
+ }
478
+
479
+ if (["inactive", "inactive-days"].includes(command.name)) {
480
+ try {
481
+ state.inactiveDays = validateInactiveDays(command.args[0]);
482
+ state.page = 1;
483
+ } catch (error) {
484
+ output.write(`\n${error instanceof Error ? error.message : String(error)}\n`);
485
+ await pause(rl);
486
+ }
487
+ continue;
488
+ }
489
+
490
+ if (["archive", "archive-status"].includes(command.name)) {
491
+ try {
492
+ state.archiveStatus = validateArchiveStatus(command.args[0]);
493
+ state.page = 1;
494
+ } catch (error) {
495
+ output.write(`\n${error instanceof Error ? error.message : String(error)}\n`);
496
+ await pause(rl);
497
+ }
498
+ continue;
499
+ }
500
+
406
501
  if (command.name === "sort") {
407
502
  state.sort = validateSort(command.args[0] ?? "updated");
408
503
  state.page = 1;
@@ -555,9 +650,7 @@ async function runInteractive(state) {
555
650
 
556
651
  export async function runCli(options) {
557
652
  if (options.help) {
558
- output.write(
559
- "Usage: session-steward-cli [--codex-home <path>] [--json] [--include-internals] [--search <text>] [--sort <updated|created|name|cwd>] [--limit <n>]\n",
560
- );
653
+ output.write(`${CLI_HELP_TEXT}\n`);
561
654
  return;
562
655
  }
563
656
 
@@ -567,12 +660,15 @@ export async function runCli(options) {
567
660
  }
568
661
 
569
662
  const state = {
663
+ archiveStatus: validateArchiveStatus(options.archiveStatus),
570
664
  codexHome: path.resolve(options.codexHome),
665
+ inactiveDays: validateInactiveDays(options.inactiveDays),
571
666
  page: 1,
572
667
  result: null,
573
668
  search: options.search || "",
574
669
  showInternals: Boolean(options.includeInternals),
575
670
  sort: validateSort(options.sort || "updated"),
671
+ workspace: options.workspace,
576
672
  };
577
673
 
578
674
  await runInteractive(state);
@@ -1,10 +1,12 @@
1
1
  import {
2
2
  assertDeepCleanupSupported,
3
3
  diagnoseStorageCompatibility,
4
+ deleteSessionDeletionBackup,
4
5
  executeSessionDeletion,
5
6
  fingerprintSessionDeletion,
6
7
  filterAndSortSessions,
7
8
  formatSessionForJson,
9
+ getSessionOverview,
8
10
  getSessionRecord,
9
11
  listSessions,
10
12
  loadDeletionStore,
@@ -20,10 +22,12 @@ export const codexProvider = Object.freeze({
20
22
  displayName: "Codex",
21
23
  assertDeepCleanupSupported,
22
24
  diagnoseStorageCompatibility,
25
+ deleteSessionDeletionBackup,
23
26
  executeSessionDeletion,
24
27
  fingerprintSessionDeletion,
25
28
  filterAndSortSessions,
26
29
  formatSessionForJson,
30
+ getSessionOverview,
27
31
  getSessionRecord,
28
32
  listSessions,
29
33
  loadDeletionStore,