@ahpd/web 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.
Files changed (83) hide show
  1. package/README.md +7 -0
  2. package/dist/app/assets/ActionList-aOUHK9Z9.js +1 -0
  3. package/dist/app/assets/Composer-DpjCaX5G.js +2 -0
  4. package/dist/app/assets/{ContextMenu-D3PBPRRl.js → ContextMenu-qqlGWvJT.js} +1 -1
  5. package/dist/app/assets/{DataTable-DsRcsDHs.js → DataTable-Bv6EG42F.js} +1 -1
  6. package/dist/app/assets/Details-Cymq_tLr.js +1 -0
  7. package/dist/app/assets/DiffPage-CrT1Faon.js +1 -0
  8. package/dist/app/assets/{Edit-DuGIlEIV.js → Edit-KxWRJB1t.js} +1 -1
  9. package/dist/app/assets/Explorer-C4zxSdMF.js +1 -0
  10. package/dist/app/assets/{Explorer-DXZ2epSi.js → Explorer-Cxl5QGRN.js} +1 -1
  11. package/dist/app/assets/Explorer-D9lzbmtd.js +1 -0
  12. package/dist/app/assets/Explorer-h1FYBfP3.js +1 -0
  13. package/dist/app/assets/Explorer-kMkPIrYG.js +1 -0
  14. package/dist/app/assets/{ExplorerList-Cecr_ZQS.js → ExplorerList-Bdp0sfLW.js} +1 -1
  15. package/dist/app/assets/{FilePage-Bo_9WZiQ.js → FilePage-CWjlubpU.js} +1 -1
  16. package/dist/app/assets/{Filter-C9Z9GcBH.js → Filter-y-cAyV5s.js} +1 -1
  17. package/dist/app/assets/{Info-1oWO89--.js → Info-levnJ1pH.js} +1 -1
  18. package/dist/app/assets/{LocaleToggle-CBvJEvFm.js → LocaleToggle-DtU53oIZ.js} +1 -1
  19. package/dist/app/assets/{LogPage-DXOU5UzZ.js → LogPage-QIumryht.js} +1 -1
  20. package/dist/app/assets/{LoginForm-C7ZmFVLz.js → LoginForm-CoxoSwG-.js} +1 -1
  21. package/dist/app/assets/MarkdownPage-CNUmYD-d.js +1 -0
  22. package/dist/app/assets/Modal-BHPfQpzr.js +1 -0
  23. package/dist/app/assets/{MountTitle-DXPuKAFo.js → MountTitle-hWvATFel.js} +1 -1
  24. package/dist/app/assets/{New-DHihaOkV.js → New-CWi2ZODd.js} +2 -2
  25. package/dist/app/assets/Page-BXwzlAyC.js +2 -0
  26. package/dist/app/assets/{Page-BkOqYXfd.js → Page-BlQx3M_Q.js} +1 -1
  27. package/dist/app/assets/{Page-DOVek_br.js → Page-DXYj-sYk.js} +1 -1
  28. package/dist/app/assets/{Pagination-CmWBkMlC.js → Pagination-FSzhBpDU.js} +1 -1
  29. package/dist/app/assets/PortaLock-Dvr-6D1r.js +2 -0
  30. package/dist/app/assets/{Settings-wnbeCcl1.js → Settings--Ciusotp.js} +1 -1
  31. package/dist/app/assets/{SigillumGate-BVebugTV.js → SigillumGate-DoeGhrpT.js} +1 -1
  32. package/dist/app/assets/{SingleLayout-BNVy245Q.js → SingleLayout-CmIAtyIo.js} +1 -1
  33. package/dist/app/assets/{SpatialLayout-Bm8uhLD2.js → SpatialLayout-CacNe1y4.js} +1 -1
  34. package/dist/app/assets/{SplitLayout-BuZpjDyP.js → SplitLayout-BANKBMIh.js} +1 -1
  35. package/dist/app/assets/{StackLayout-CbP6W0Er.js → StackLayout-Cz4zMN4f.js} +1 -1
  36. package/dist/app/assets/{TabLayout-AUuJvVjp.js → TabLayout-BaH8UNpt.js} +1 -1
  37. package/dist/app/assets/{TabPanelLayout-BDz30u7O.js → TabPanelLayout-DkFUNHcz.js} +1 -1
  38. package/dist/app/assets/{TerminalPage-DbF4N79y.js → TerminalPage-C58xO7du.js} +3 -3
  39. package/dist/app/assets/{ThemeModeToggle-B0EIvYRF.js → ThemeModeToggle-CAippEfJ.js} +1 -1
  40. package/dist/app/assets/{ThemePicker-DHw8lqsi.js → ThemePicker-CvnWboZg.js} +1 -1
  41. package/dist/app/assets/Tree-BAAGdT3c.css +1 -0
  42. package/dist/app/assets/Tree-Bb5NwYJ1.js +1 -0
  43. package/dist/app/assets/actions-BQzD99j0.js +1 -0
  44. package/dist/app/assets/changeset-BY8dw-V-.js +1 -0
  45. package/dist/app/assets/{channel-BScxZDq2.js → channel-Cqz_LUS2.js} +1 -1
  46. package/dist/app/assets/clicks-IyfKhKFh.js +1 -0
  47. package/dist/app/assets/composer-commands-Bpp7NX4E.js +2 -0
  48. package/dist/app/assets/{data-BvTv-4oH.js → data-Fkj0LNnG.js} +1 -1
  49. package/dist/app/assets/drag-ruzgQUFW.js +1 -0
  50. package/dist/app/assets/emojis-BOylxma2.js +1 -0
  51. package/dist/app/assets/index-BkzdJo_Y.js +14 -0
  52. package/dist/app/assets/index-CPXMK2aI.css +1 -0
  53. package/dist/app/assets/notify-Bb548jAB.js +1 -0
  54. package/dist/app/assets/sessions-CEccRVtA.js +2 -0
  55. package/dist/app/assets/state-DRVsnGrf.js +1 -0
  56. package/dist/app/assets/state-KGSq646f.js +1 -0
  57. package/dist/app/assets/{terminal-BSweq0Uj.js → terminal-kD0C2LuZ.js} +1 -1
  58. package/dist/app/assets/{text-DJDdwKmv.js → text-CmjM0Nin.js} +1 -1
  59. package/dist/app/assets/useI18n-Bfix5MNN.js +1 -0
  60. package/dist/app/assets/useStoreLabel-m9cem_OG.js +1 -0
  61. package/dist/app/assets/words-BknpHIF3.js +1 -0
  62. package/dist/app/index.html +16 -12
  63. package/package.json +9 -10
  64. package/dist/app/assets/ActionList-DZ9lLGRe.js +0 -1
  65. package/dist/app/assets/Composer-C54KOyHb.js +0 -2
  66. package/dist/app/assets/Details-Bgo6JIBm.js +0 -1
  67. package/dist/app/assets/DiffPage-BFnOf1p9.js +0 -1
  68. package/dist/app/assets/Explorer-BkMOyBlc.js +0 -1
  69. package/dist/app/assets/Explorer-CjLkoKLM.js +0 -1
  70. package/dist/app/assets/Explorer-CwDdWpNn.js +0 -1
  71. package/dist/app/assets/MarkdownPage-8oL61A0c.js +0 -1
  72. package/dist/app/assets/Modal-BPnVnP2R.js +0 -1
  73. package/dist/app/assets/Page-D7hXrdQj.js +0 -2
  74. package/dist/app/assets/Palette-CEQLzNFd.js +0 -1
  75. package/dist/app/assets/PortaLock-CC2pIbs8.js +0 -2
  76. package/dist/app/assets/actions-DTKyI167.js +0 -1
  77. package/dist/app/assets/emojis-XibTG-gy.js +0 -1
  78. package/dist/app/assets/index-Cu7ySznN.js +0 -15
  79. package/dist/app/assets/index-DgTMhxdP.css +0 -1
  80. package/dist/app/assets/link-DK7OzQXZ.js +0 -1
  81. package/dist/app/assets/useI18n-BTsfCYkN.js +0 -1
  82. package/dist/app/assets/useStoreLabel-CK2AU1rh.js +0 -1
  83. package/dist/app/assets/words-CrqnRMW4.js +0 -1
@@ -0,0 +1 @@
1
+ :root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--oo-rgb-white:255 255 255;--oo-rgb-black:17 24 39;--oo-rgb-slate:100 116 139;--oo-rgb-gray:107 114 128;--oo-rgb-zinc:113 113 122;--oo-rgb-neutral:115 115 115;--oo-rgb-stone:120 113 108;--oo-rgb-red:239 68 68;--oo-rgb-orange:249 115 22;--oo-rgb-amber:245 158 11;--oo-rgb-yellow:234 179 8;--oo-rgb-lime:132 204 22;--oo-rgb-green:34 197 94;--oo-rgb-emerald:16 185 129;--oo-rgb-teal:20 184 166;--oo-rgb-cyan:6 182 212;--oo-rgb-sky:14 165 233;--oo-rgb-blue:59 130 246;--oo-rgb-indigo:99 102 241;--oo-rgb-violet:139 92 246;--oo-rgb-purple:168 85 247;--oo-rgb-fuchsia:217 70 239;--oo-rgb-pink:236 72 153;--oo-rgb-rose:244 63 94;--oo-color-white:rgb(var(--oo-rgb-white));--oo-color-black:rgb(var(--oo-rgb-black));--oo-color-slate:rgb(var(--oo-rgb-slate));--oo-color-gray:rgb(var(--oo-rgb-gray));--oo-color-zinc:rgb(var(--oo-rgb-zinc));--oo-color-neutral:rgb(var(--oo-rgb-neutral));--oo-color-stone:rgb(var(--oo-rgb-stone));--oo-color-red:rgb(var(--oo-rgb-red));--oo-color-orange:rgb(var(--oo-rgb-orange));--oo-color-amber:rgb(var(--oo-rgb-amber));--oo-color-yellow:rgb(var(--oo-rgb-yellow));--oo-color-lime:rgb(var(--oo-rgb-lime));--oo-color-green:rgb(var(--oo-rgb-green));--oo-color-emerald:rgb(var(--oo-rgb-emerald));--oo-color-teal:rgb(var(--oo-rgb-teal));--oo-color-cyan:rgb(var(--oo-rgb-cyan));--oo-color-sky:rgb(var(--oo-rgb-sky));--oo-color-blue:rgb(var(--oo-rgb-blue));--oo-color-indigo:rgb(var(--oo-rgb-indigo));--oo-color-violet:rgb(var(--oo-rgb-violet));--oo-color-purple:rgb(var(--oo-rgb-purple));--oo-color-fuchsia:rgb(var(--oo-rgb-fuchsia));--oo-color-pink:rgb(var(--oo-rgb-pink));--oo-color-rose:rgb(var(--oo-rgb-rose));--oo-rgb-canvas:255 255 255;--oo-rgb-panel:248 248 248;--oo-rgb-surface:255 255 255;--oo-rgb-raised:255 255 255;--oo-rgb-titlebar:var(--oo-rgb-panel);--oo-rgb-activitybar:var(--oo-rgb-panel);--oo-rgb-sidebar:var(--oo-rgb-panel);--oo-rgb-statusbar:var(--oo-rgb-panel);--oo-rgb-text:45 53 92;--oo-rgb-muted:152 152 172;--oo-rgb-subtle:170 170 188;--oo-rgb-inverse:255 255 255;--oo-rgb-hover:240 240 240;--oo-rgb-active:232 232 232;--oo-rgb-selected:230 250 246;--oo-rgb-line:185 185 255;--oo-rgb-border:185 185 255;--oo-line-alpha:.25;--oo-border-alpha:.25;--oo-rgb-accent:78 201 176;--oo-rgb-primary:12 112 97;--oo-rgb-danger:204 0 0;--oo-rgb-success:0 170 0;--oo-rgb-warning:204 136 0;--oo-rgb-info:var(--oo-rgb-blue);--oo-color-canvas:rgb(var(--oo-rgb-canvas));--oo-color-panel:rgb(var(--oo-rgb-panel));--oo-color-surface:rgb(var(--oo-rgb-surface));--oo-color-raised:rgb(var(--oo-rgb-raised));--oo-color-surface-root:var(--oo-color-surface);--oo-color-titlebar:rgb(var(--oo-rgb-titlebar));--oo-color-activitybar:rgb(var(--oo-rgb-activitybar));--oo-color-sidebar:rgb(var(--oo-rgb-sidebar));--oo-color-statusbar:rgb(var(--oo-rgb-statusbar));--oo-color-text:rgb(var(--oo-rgb-text));--oo-color-muted:rgb(var(--oo-rgb-muted));--oo-color-subtle:rgb(var(--oo-rgb-subtle));--oo-color-inverse:rgb(var(--oo-rgb-inverse));--oo-color-hover:rgb(var(--oo-rgb-hover));--oo-color-active:rgb(var(--oo-rgb-active));--oo-color-selected:rgb(var(--oo-rgb-selected));--oo-color-line:rgb(var(--oo-rgb-line) / var(--oo-line-alpha));--oo-color-border:rgb(var(--oo-rgb-border) / var(--oo-border-alpha));--oo-color-accent:rgb(var(--oo-rgb-accent));--oo-color-primary:rgb(var(--oo-rgb-primary));--oo-color-danger:rgb(var(--oo-rgb-danger));--oo-color-success:rgb(var(--oo-rgb-success));--oo-color-warning:rgb(var(--oo-rgb-warning));--oo-color-info:rgb(var(--oo-rgb-info));--oo-app-bg:var(--oo-color-canvas);--oo-app-fg:var(--oo-color-text);--oo-titlebar-bg:var(--oo-color-titlebar);--oo-titlebar-fg:var(--oo-color-muted);--oo-activitybar-bg:var(--oo-color-activitybar);--oo-activitybar-fg:var(--oo-color-muted);--oo-activitybar-fg-hover:var(--oo-color-accent);--oo-activitybar-bg-hover:var(--oo-color-hover);--oo-activitybar-fg-active:var(--oo-color-accent);--oo-activitybar-bg-active:var(--oo-color-active);--oo-sidebar-left-bg:var(--oo-color-sidebar);--oo-sidebar-left-fg:var(--oo-color-text);--oo-sidebar-right-bg:var(--oo-color-sidebar);--oo-sidebar-right-fg:var(--oo-color-text);--oo-card-bg:var(--oo-color-surface);--oo-card-fg:var(--oo-color-text);--oo-card-border:var(--oo-color-border);--oo-popup-bg:var(--oo-color-raised);--oo-popup-fg:var(--oo-color-text);--oo-popup-border:var(--oo-color-border);--oo-input-bg:var(--oo-color-surface);--oo-input-fg:var(--oo-color-text);--oo-input-border:var(--oo-color-border);--oo-input-placeholder:var(--oo-color-muted);--oo-spacing-xs:3px;--oo-spacing-sm:6px;--oo-spacing-md:14px;--oo-spacing-lg:22px;--oo-spacing-xl:30px;--oo-row-gap:var(--oo-spacing-md);--oo-column-gap:var(--oo-spacing-md);--oo-list-gap:var(--oo-spacing-sm);--oo-list-padding:0;--oo-radius-xs:3px;--oo-radius-sm:4px;--oo-radius-md:6px;--oo-radius-lg:12px;--oo-radius-xl:18px;--oo-radius-full:999px;--oo-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--oo-font-mono:"SF Mono", Monaco, Consolas, monospace;--oo-font-size-xs:11px;--oo-font-size-sm:13px;--oo-font-size-md:14px;--oo-font-size-lg:16px;--oo-font-size-xl:20px;--oo-line-height:1.5;--oo-shadow-sm:0 1px 2px #00000014;--oo-shadow-md:0 4px 8px #0000001f;--oo-shadow-lg:0 12px 24px #00000029;--oo-z-overlay:1000;--oo-z-popup:9999}[data-theme-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--oo-rgb-canvas:2 6 23;--oo-rgb-panel:15 23 42;--oo-rgb-surface:2 6 23;--oo-rgb-raised:24 32 48;--oo-rgb-titlebar:2 6 23;--oo-rgb-activitybar:15 23 42;--oo-rgb-sidebar:15 23 42;--oo-rgb-statusbar:15 23 42;--oo-rgb-text:203 213 224;--oo-rgb-muted:116 131 154;--oo-rgb-subtle:100 116 139;--oo-rgb-hover:30 41 59;--oo-rgb-active:51 65 85;--oo-rgb-selected:20 83 76;--oo-rgb-line:116 131 154;--oo-rgb-border:98 113 134;--oo-rgb-primary:var(--oo-rgb-accent);--oo-line-alpha:.18;--oo-border-alpha:.22}:root{--oo-activitybar-size:48px;--oo-sidebar-left-size:240px;--oo-sidebar-right-size:280px;--oo-main-size:0px;--oo-panel-bottom-size:200px;--oo-statusbar-size:22px;--oo-overlay-size:0px;--oo-sidebar-left-visible:1;--oo-sidebar-right-visible:0;--oo-panel-bottom-visible:0;--oo-activitybar-visible:1;--oo-statusbar-visible:1}.oo-main-fluid-width{width:calc(100vw - var(--oo-activitybar-size,0px) - var(--oo-sidebar-left-size,0px) * var(--oo-sidebar-left-visible,0) - var(--oo-sidebar-right-size,0px) * var(--oo-sidebar-right-visible,0))}:root{--oo-mono:ui-monospace, "Cascadia Code", "JetBrains Mono", "SF Mono", Consolas, monospace;--oo-sans:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--input-padding-y:var(--oo-spacing-xs);--input-padding-x:var(--oo-spacing-sm);--input-background:var(--oo-color-canvas);--input-color:var(--oo-color-text);--input-border-color:var(--oo-color-border);--input-border-radius:var(--oo-radius-sm);--input-border-width:1px;--textarea-padding-y:var(--input-padding-y);--textarea-padding-x:var(--input-padding-x);--textarea-background:var(--input-background);--textarea-color:var(--input-color);--textarea-border-color:var(--input-border-color);--textarea-border-radius:var(--input-border-radius);--textarea-border-width:var(--input-border-width);--button-background:none;--button-background-hover:rgb(from var(--oo-color-primary) r g b / .88);--button-background-active:var(--oo-color-active);--button-color:inherit;--button-color-hover:var(--oo-color-hover);--button-border:var(--oo-color-border);--button-border-width:1px;--button-border-radius:0;--button-padding-y:var(--oo-spacing-xs);--button-padding-x:var(--oo-spacing-xs);--button-font-size:var(--oo-font-size-sm)}*,:before,:after{box-sizing:border-box}html,body,#root{height:100vh;margin:0;padding:0;overflow:hidden}body{font-family:var(--oo-font-family);font-size:var(--oo-font-size-md);line-height:var(--oo-line-height);color:var(--oo-color-text);background:var(--oo-color-canvas)}a{color:var(--oo-color-primary);cursor:pointer;text-decoration:none}a:hover{text-decoration:underline}a:active{color:var(--oo-color-active)}button{appearance:none;align-items:center;gap:var(--oo-spacing-xs);padding-inline:var(--button-padding-x);padding-block:var(--button-padding-y);border-radius:var(--button-border-radius);border-width:var(--button-border-width);border-style:solid;border-color:var(--button-border);background:var(--button-background);color:var(--button-color);cursor:pointer;font:inherit;font-size:var(--button-font-size);line-height:1;transition:background-color .12s,color .12s,border-color .12s,opacity .12s,filter .12s;display:inline-flex}button[data-variant=primary]{--button-background:none;--button-color:var(--oo-color-primary);--button-border:var(--oo-color-primary);--button-color-hover:var(--oo-color-surface);--button-background-hover:rgb(from var(--oo-color-primary) r g b / .88);--button-background-active:rgb(from var(--oo-color-primary) r g b / .76)}button[data-variant=secondary]{--button-background:none;--button-color:var(--oo-color-text);--button-border:var(--oo-color-border);--button-color-hover:var(--oo-color-surface);--button-background-hover:rgb(from var(--oo-color-text) r g b / .8);--button-background-active:rgb(from var(--oo-color-text) r g b / .76)}button[data-variant=danger]{--button-background:none;--button-color:var(--oo-color-danger);--button-border:var(--oo-color-danger);--button-color-hover:var(--oo-color-surface);--button-background-hover:rgb(from var(--oo-color-danger) r g b / .88);--button-background-active:rgb(from var(--oo-color-danger) r g b / .76)}button[data-variant=ghost]{--button-background:none;--button-color:var(--oo-color-text);--button-color-hover:var(--oo-color-primary);--button-background-hover:none;--button-background-active:none;background:0 0;border:none}button[data-variant=borderless]{--button-background:var(--oo-color-hover);--button-color:var(--oo-color-text);--button-border-width:0;--button-background-hover:var(--oo-color-surface);--button-background-active:var(--oo-color-active)}button[data-selected=true]{color:var(--oo-color-surface);background:var(--oo-color-active)}button:active,button[data-active=true]{background:var(--button-background-active)}button[disabled],button[data-disabled=true]{cursor:not-allowed;opacity:.5;pointer-events:none}button:hover{background:var(--button-background-hover)}button[data-variant]:hover{color:var(--button-color-hover)}code,pre{font-family:var(--oo-font-mono)}select{color:inherit;font:inherit;box-sizing:border-box;padding:var(--oo-spacing-xs) var(--oo-spacing-sm);background:var(--oo-color-canvas);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm)}input{color:var(--input-color);font:inherit;box-sizing:border-box;padding:var(--input-padding-y) var(--input-padding-x);background:var(--input-background);border:var(--input-border-width) solid var(--input-border-color);border-radius:var(--input-border-radius)}textarea{color:var(--textarea-color);font:inherit;box-sizing:border-box;padding:var(--textarea-padding-y) var(--textarea-padding-x);background:var(--textarea-background);border:var(--textarea-border-width) solid var(--textarea-border-color);border-radius:var(--textarea-border-radius)}select:focus,input:focus,textarea:focus{outline:1px solid var(--oo-color-accent);outline-offset:-2px}.oo-mount{display:contents}.oo-loading-dots{justify-content:center;align-items:center;gap:4px;width:100%;height:100%;margin:0 auto;display:inline-flex}.oo-loading-dots span{opacity:.35;background:currentColor;border-radius:999px;width:4px;height:4px;animation:1s ease-in-out infinite dotPulse}.oo-loading-dots span:nth-child(2){animation-delay:.15s}.oo-loading-dots span:nth-child(3){animation-delay:.3s}@keyframes dotPulse{0%,80%,to{opacity:.35;transform:scale(.75)}40%{opacity:1;transform:scale(1)}}html.oo-resizing,html.oo-resizing *{-webkit-user-select:none!important;user-select:none!important}html.oo-resizing *{cursor:inherit!important}.oo-layout--bar{-webkit-user-select:none;user-select:none;background:var(--oo-color-surface);align-items:center;width:100%;height:100%;display:flex}.oo-bar__slot{align-items:center;gap:var(--oo-spacing-xs);height:100%;padding:0 var(--oo-spacing-sm);display:flex}.oo-bar__slot button{border:0;border-radius:0}.oo-bar__slot button[data-active=true]:not(:hover){color:var(--oo-color-active)}.oo-bar__slot--left{flex:none;justify-content:flex-start}.oo-bar__slot--center{flex:auto;justify-content:center;min-width:0}.oo-bar__slot--right{flex:none;justify-content:flex-end}.oo-bar__item{align-items:center;display:flex}.tab-bar{background:var(--oo-color-surface);border-bottom:1px solid var(--oo-color-border);font-size:var(--oo-font-size-xs);min-width:0;min-height:32px;display:flex}.tab-bar__strip{scrollbar-width:thin;flex:auto;min-width:0;display:flex;overflow:auto hidden}.tab-bar__strip::-webkit-scrollbar{height:6px}.tab-bar__strip::-webkit-scrollbar-thumb{background:var(--oo-color-border);border-radius:3px}.tab-bar__tab{border-right:1px solid var(--oo-color-border);color:var(--oo-color-muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;flex:none;align-items:center;gap:4px;padding:4px 12px;display:flex}.tab-bar__tab[data-active=true]{color:var(--oo-color-text);background:var(--oo-color-canvas);border-bottom:2px solid var(--oo-color-accent);margin-bottom:-1px}.tab-bar__tab[data-drag-over=true]{box-shadow:inset 0 2px 0 var(--oo-color-accent)}.tab-bar__tab .close{opacity:.5}.tab-bar__tab:hover .close{opacity:1}.tab-bar__tab .tab__label{text-overflow:ellipsis;max-width:173px;overflow:hidden}.tab-bar__tab .tab__icon{color:var(--tab-color,inherit)}.tab-bar__extras{flex:none;align-items:center;gap:6px;padding:0 8px;display:flex}.tab-bar__extras button{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:3px;padding:2px 8px;font-size:11px}.tab-bar__extras button:hover{background:var(--oo-color-active)}:root{--oo-scrollbar-width:15px;--oo-scrollbar-track-color:rgb(from var(--oo-color-surface) r g b / .25);--oo-scrollbar-border-color:transparent;--oo-scrollbar-border-width:3px;--oo-scrollbar-thumb-radius:15px;--oo-scrollbar-thumb-color:rgb(from var(--oo-color-border) r g b / .35);--oo-scrollbar-thumb-hover:rgb(from var(--oo-color-border) r g b / .5)}::-webkit-scrollbar{width:var(--oo-scrollbar-width,15px);height:var(--oo-scrollbar-width,15px)}::-webkit-scrollbar-track{background:var(--oo-scrollbar-track-color)}::-webkit-scrollbar-thumb{background-color:var(--oo-scrollbar-thumb-color);border-width:var(--oo-scrollbar-border-width,0px);border-style:solid;border-color:var(--oo-scrollbar-border-color,var(--oo-scrollbar-track-color));background-clip:content-box;transition:background-color .16s}::-webkit-scrollbar-thumb:hover{background-color:var(--oo-scrollbar-thumb-hover)}*{scrollbar-width:medium;scrollbar-color:var(--oo-scrollbar-thumb-color) var(--oo-scrollbar-track-color)}.oo-surface{--oo-surface-float-width:17rem;--oo-surface-sheet-height:85%;--oo-surface-bar-size:2.75rem;--oo-surface-overlay-shadow:0 0 28px #00000052}.oo-surface[data-surface-edge=inline-end]{border-inline-end:var(--oo-surface-border-width,0px) solid var(--oo-surface-border,var(--oo-color-border))}.oo-surface[data-surface-edge=inline-start]{border-inline-start:var(--oo-surface-border-width,0px) solid var(--oo-surface-border,var(--oo-color-border))}.oo-surface[data-surface-edge=block-end]{border-block-end:var(--oo-surface-border-width,0px) solid var(--oo-surface-border,var(--oo-color-border))}.oo-surface[data-surface-edge=block-start]{border-block-start:var(--oo-surface-border-width,0px) solid var(--oo-surface-border,var(--oo-color-border))}.oo-surface[data-surface-role=bar]{--oo-color-surface:var(--oo-surface-bar-bg,var(--oo-color-surface-root));background:var(--oo-surface-bar-bg,transparent)}.oo-surface[data-surface-role=panel],.oo-surface[data-surface-role=rail]{--oo-color-surface:var(--oo-surface-panel-bg,var(--oo-color-surface-root));background:var(--oo-surface-panel-bg,transparent)}.oo-surface[data-surface-role=main]{--oo-color-surface:var(--oo-surface-main-bg,var(--oo-color-surface-root));background:var(--oo-surface-main-bg,transparent)}.oo-shell__body{gap:var(--oo-shell-gap,0px);padding-inline:var(--oo-shell-gap,0px)}.oo-shell__center{gap:var(--oo-shell-gap,0px)}.oo-shell__body>.oo-surface[data-presentation=docked],.oo-shell__center>.oo-surface[data-presentation=docked]{border-radius:var(--oo-surface-radius,0px);outline:var(--oo-surface-box-width,0px) solid var(--oo-surface-border,var(--oo-color-border));outline-offset:calc(-1 * var(--oo-surface-box-width,0px));padding:var(--oo-surface-box-width,0px);overflow:clip}.oo-shell__body>.oo-surface[data-surface-role=rail]:has(+.oo-surface[data-surface-role=panel][data-presentation=docked]){border-start-end-radius:0;border-end-end-radius:0}.oo-shell__body>.oo-surface[data-surface-role=rail]+.oo-surface[data-surface-role=panel][data-presentation=docked]{border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:calc(-1 * var(--oo-shell-gap,0px) - var(--oo-surface-box-width,0px))}.oo-surface[data-presentation=floating],.oo-surface[data-presentation=sheet]{border:0}.oo-surface[data-presentation=floating]{z-index:30;width:min(var(--oo-surface-float-width), 86%);box-shadow:var(--oo-surface-overlay-shadow);background:var(--oo-color-surface,var(--oo-color-canvas));position:absolute;top:0;bottom:0}.oo-surface[data-surface-edge=inline-end][data-presentation=floating]{inset-inline-start:0}.oo-surface[data-surface-edge=inline-start][data-presentation=floating]{inset-inline-end:0}.oo-surface--sidebar-left[data-presentation=floating]:not([data-surface-edge]){left:0}.oo-surface--sidebar-right[data-presentation=floating]:not([data-surface-edge]){right:0}.oo-surface[data-presentation=sheet]{z-index:30;height:var(--oo-surface-sheet-height);box-shadow:var(--oo-surface-overlay-shadow);background:var(--oo-color-surface,var(--oo-color-canvas));position:absolute;bottom:0;left:0;right:0}.oo-surface[data-presentation=bar]{z-index:40;width:auto;height:var(--oo-surface-bar-size);background:var(--oo-color-surface,var(--oo-color-canvas));flex:none;position:absolute;inset:auto 0 0}.oo-surface-scrim{z-index:20;background:var(--oo-color-scrim,#00000061);cursor:pointer;border:0;padding:0;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.oo-surface{transition:none}}.oo-surface[data-resize]{position:relative}.oo-surface[data-resize]:after{content:"";z-index:10;opacity:0;transition:opacity .12s;position:absolute}@media (prefers-reduced-motion:reduce){.oo-surface[data-resize]:after{transition:none}}.oo-surface[data-resize=right]:after{cursor:ew-resize;background:linear-gradient(to right, transparent calc(10px - var(--oo-resize-line,3px)), var(--oo-color-accent) calc(10px - var(--oo-resize-line,3px)));width:10px;top:0;bottom:0;right:0}.oo-surface[data-resize=left]:after{cursor:ew-resize;background:linear-gradient(to right, var(--oo-color-accent) var(--oo-resize-line,3px), transparent var(--oo-resize-line,3px));width:10px;top:0;bottom:0;left:0}.oo-surface[data-resize=top]:after{cursor:ns-resize;background:linear-gradient(to bottom, var(--oo-color-accent) var(--oo-resize-line,3px), transparent var(--oo-resize-line,3px));height:10px;top:0;left:0;right:0}.oo-surface[data-resize=bottom]:after{cursor:ns-resize;background:linear-gradient(to bottom, transparent calc(10px - var(--oo-resize-line,3px)), var(--oo-color-accent) calc(10px - var(--oo-resize-line,3px)));height:10px;bottom:0;left:0;right:0}.oo-surface[data-resize][data-resize-state=hot]:after{opacity:.55}.oo-surface[data-resize][data-resize-state=active]:after{opacity:1}.oo-surface-loading{flex:auto;justify-content:center;align-items:center;width:100%;height:100%;min-height:0;display:flex}.oo-surface-loading>span{border:2px solid var(--oo-color-border);border-top-color:var(--oo-color-accent);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite oo-surface-spin}[data-surface-role=overlay] .oo-surface-loading{display:none}@keyframes oo-surface-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.oo-surface-loading>span{animation-duration:2.4s}}.oo-shell:has(.oo-surface--activitybar[data-presentation=bar]) .oo-surface--main{padding-bottom:var(--oo-surface-bar-size);box-sizing:border-box}.web-title{font-weight:600}.web-loading{height:100vh;color:var(--oo-color-muted);background:var(--oo-color-canvas);justify-content:center;align-items:center;display:flex}.web-method{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted)}.web-page{gap:var(--oo-spacing-md);padding:var(--oo-spacing-lg);box-sizing:border-box;flex-direction:column;max-width:72rem;height:100%;display:flex;overflow-y:auto}.web-page__head{gap:var(--oo-spacing-sm);flex-direction:column;display:flex}.web-page__route{align-items:center;gap:var(--oo-spacing-sm);flex-wrap:wrap;display:flex}.web-page__route code{color:var(--oo-color-muted);font-size:var(--oo-font-size-sm)}.web-page__actions{align-items:center;gap:var(--oo-spacing-md);display:flex}.web-result{gap:var(--oo-spacing-sm);flex-direction:column;min-width:0;display:flex}.web-result__bar{gap:2px;display:flex}.web-result__bar button{border:1px solid var(--oo-color-border);color:var(--oo-color-muted);font:inherit;font-size:var(--oo-font-size-xs);padding:2px var(--oo-spacing-sm);border-radius:var(--oo-radius-sm);cursor:pointer;background:0 0}.web-result__bar button[data-active=true]{color:var(--oo-color-text);background:var(--oo-color-selected)}.web-result__json,.web-result__text{padding:var(--oo-spacing-md);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);background:var(--oo-color-panel);font-size:var(--oo-font-size-sm);white-space:pre-wrap;word-break:break-word;margin:0;overflow-x:auto}.web-chat{--web-chat-gutter:max(var(--oo-spacing-lg), calc((100% - 72rem) / 2));--web-composer-gutter:max(calc(var(--oo-spacing-lg) * 2), calc((100% - 56rem) / 2));box-sizing:border-box;flex-direction:column;width:100%;height:100%;display:flex}.web-chat__head{gap:var(--oo-spacing-sm);padding:var(--oo-spacing-lg) var(--web-chat-gutter) var(--oo-spacing-sm);flex-direction:column;display:flex}.web-chat__turns{gap:var(--oo-spacing-lg);min-height:0;padding:var(--oo-spacing-sm) var(--web-chat-gutter);flex-direction:column;flex:1;display:flex;overflow-y:auto}.web-turn{gap:var(--oo-spacing-sm);flex-direction:column;display:flex}.web-turn__ask{white-space:pre-wrap;overflow-wrap:anywhere;max-width:80%;padding:var(--oo-spacing-sm) var(--oo-spacing-md);border-radius:var(--oo-radius-md);background:var(--oo-color-surface-raised,var(--oo-color-surface));border:1px solid var(--oo-color-border);align-self:flex-end}.web-turn__answer{gap:var(--oo-spacing-sm);overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.web-note{color:var(--oo-color-muted);font-size:var(--oo-font-size-sm);margin:0}.web-activity{flex-direction:column;min-width:0;display:flex}.web-activity__line{align-items:baseline;gap:var(--oo-spacing-xs);width:fit-content;max-width:100%;font:inherit;font-size:var(--oo-font-size-sm);color:var(--oo-color-muted);text-align:left;cursor:pointer;background:0 0;border:0;padding:1px 0;display:inline-flex}.web-activity__line:hover,.web-activity__line:focus-visible,.web-activity__line[aria-expanded=true]{color:var(--oo-color-accent);background:0 0}.web-activity__failed{color:var(--oo-color-warning);font-style:italic}.web-activity__chev{font-size:var(--oo-font-size-xs);visibility:hidden}.web-activity__line:hover .web-activity__chev,.web-activity__line:focus-visible .web-activity__chev,.web-activity__line[aria-expanded=true] .web-activity__chev{visibility:visible}.web-activity__steps{flex-direction:column;gap:2px;margin-top:2px;display:flex}.web-tool[data-outcome=thought] .web-tool__mark{color:var(--oo-color-muted)}.web-input{gap:var(--oo-spacing-xs);padding:var(--oo-spacing-sm) var(--oo-spacing-md);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-md);flex-direction:column;display:flex}.web-tool{font-size:var(--oo-font-size-sm);min-width:0}.web-tool__row{align-items:baseline;gap:var(--oo-spacing-sm);width:fit-content;max-width:100%;font:inherit;color:var(--oo-color-muted);text-align:left;cursor:pointer;background:0 0;border:0;padding:1px 0;display:flex}.web-tool__row:hover,.web-tool__row:focus-visible{background:0 0}.web-tool__row:hover .web-tool__line,.web-tool__row[aria-expanded=true] .web-tool__line{color:var(--oo-color-accent)}.web-tool__ref{color:var(--oo-color-accent);text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.web-tool__ref:hover,.web-tool__ref:focus-visible{text-decoration-style:solid}.web-tool__mark{text-align:center;width:1rem;color:var(--oo-color-success);flex:none}.web-tool[data-outcome=approval] .web-tool__mark,.web-tool[data-outcome=review] .web-tool__mark,.web-tool[data-outcome=sign-in] .web-tool__mark{color:var(--oo-color-warning)}.web-tool[data-outcome=failed] .web-tool__mark,.web-tool[data-outcome=failed] .web-tool__state{color:var(--oo-color-danger)}.web-tool[data-outcome=cancelled] .web-tool__mark,.web-tool[data-outcome=preparing] .web-tool__mark{color:var(--oo-color-muted)}.web-tool[data-outcome=running] .web-tool__mark{color:var(--oo-color-info);animation:1.2s ease-in-out infinite web-pulse}@keyframes web-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.web-tool[data-outcome=running] .web-tool__mark{animation:none}}.web-tool__line{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--oo-font-mono,monospace);font-size:var(--oo-font-size-xs);flex:0 auto;overflow:hidden}.web-tool+.web-tool{margin-top:calc(2px - var(--oo-spacing-sm))}.web-tool__state,.web-tool__time{font-size:var(--oo-font-size-xs);flex:none}.web-tool__body{gap:var(--oo-spacing-sm);margin:2px 0 var(--oo-spacing-sm) calc(.5rem - 1px);padding:var(--oo-spacing-xs) 0 var(--oo-spacing-xs) calc(.5rem + var(--oo-spacing-sm));border-left:1px solid var(--oo-color-border);flex-direction:column;display:flex}.web-tool__facts{gap:2px var(--oo-spacing-md);grid-template-columns:max-content 1fr;margin:0;display:grid}.web-tool__facts dt{color:var(--oo-color-muted)}.web-tool__facts dd{overflow-wrap:anywhere;min-width:0;margin:0}.web-tool__block-head{color:var(--oo-color-muted);font-size:var(--oo-font-size-xs);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;display:flex}.web-tool__copy{font:inherit;color:var(--oo-color-accent);cursor:pointer;background:0 0;border:0;padding:0}.web-tool__pre{margin:var(--oo-spacing-xs) 0 0;padding:var(--oo-spacing-sm);white-space:pre-wrap;overflow-wrap:anywhere;max-height:18rem;font-family:var(--oo-font-mono,monospace);font-size:var(--oo-font-size-xs);background:var(--oo-color-canvas);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);overflow:auto}.web-tool__file{gap:var(--oo-spacing-sm);margin:0;display:flex}.web-diff--add{color:var(--oo-color-success)}.web-diff--remove{color:var(--oo-color-danger)}.web-tool__actions{gap:var(--oo-spacing-sm);flex-wrap:wrap;display:flex}.web-input__group{gap:var(--oo-spacing-xs);border:0;flex-direction:column;margin:0;padding:0;display:flex}.web-input__row{align-items:center;gap:var(--oo-spacing-sm);display:flex}.web-input__label{font-weight:600}.web-input__hint{color:var(--oo-color-muted);font-size:var(--oo-font-size-sm)}.web-field{font:inherit;color:inherit;background:var(--oo-color-canvas);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);padding:var(--oo-spacing-sm);box-sizing:border-box;width:100%}.web-composer{padding:0 var(--web-composer-gutter,0) var(--oo-spacing-md);flex:none;position:relative}.web-composer__where{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.web-composer__box,.web-new__composer{border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-md)}.web-composer__box:focus-within,.web-new__composer:focus-within{border-color:var(--oo-color-accent)}.web-composer__picker{bottom:100%;left:var(--web-composer-gutter,0);right:var(--web-composer-gutter,0);z-index:50;border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-md);margin-bottom:var(--oo-spacing-xs);background:var(--oo-popup-bg,var(--oo-color-raised));animation:.12s ease-out web-slide-up;position:absolute;overflow:hidden;box-shadow:0 -6px 20px #00000038}@keyframes web-slide-up{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.web-composer__picker{animation:none}}.web-composer__chips{flex-wrap:wrap;gap:4px;padding:6px 10px 0;display:flex}.web-composer__attached{flex-wrap:wrap;gap:4px;padding:6px 8px 0;display:flex}.web-attachment{border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm,4px);max-width:16rem;color:var(--oo-color-text);font-size:var(--oo-font-size-xs);align-items:center;gap:4px;padding:0 4px 0 6px;line-height:20px;display:inline-flex}.web-attachment__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.web-attachment__icon{color:var(--oo-color-muted)}.web-attachment__remove{color:var(--oo-color-muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 2px}.web-attachment__remove:hover{color:var(--oo-color-text)}.web-chip{border:1px solid var(--oo-color-border);color:var(--oo-color-muted);font:inherit;font-size:var(--oo-font-size-xs);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:3px;max-width:100%;padding:0 6px;line-height:18px;display:inline-flex;overflow:hidden}.web-chip:disabled{cursor:default}.web-chip:not(:disabled):hover{border-color:var(--oo-color-accent)}.web-chip[data-on=true]{border-color:var(--oo-color-accent);background:var(--oo-color-accent);color:var(--oo-color-canvas)}.web-composer__bar{align-items:flex-end;gap:var(--oo-spacing-sm);padding:2px 10px 0;display:flex}.web-composer__text{resize:none;box-sizing:border-box;min-height:34px;max-height:260px;color:inherit;font:inherit;background:0 0;border:0;flex:1;padding:6px 0;line-height:1.4;overflow-y:auto}.web-composer__text:focus{outline:none}.web-composer__actions{align-items:center;gap:var(--oo-spacing-xs);padding:2px 6px 6px;display:flex}.web-composer__foot{align-items:center;gap:4px;padding:2px 6px 6px;display:flex}.web-composer__foot .web-composer__chips{flex:1;min-width:0;padding:0}.web-composer__round{background:var(--oo-color-primary);width:28px;height:28px;color:var(--oo-color-surface);border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;display:inline-flex}.web-composer__round:hover{background:rgb(from var(--oo-color-primary) r g b / .85);color:var(--oo-color-surface)}.web-composer__add{border-radius:var(--oo-radius-sm,4px);width:24px;height:24px;color:var(--oo-color-muted);font:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:0;font-size:18px;line-height:1}.web-composer__add:hover,.web-composer__add:focus-visible{color:var(--oo-color-text);background:var(--oo-color-hover,#7f7f7f26)}.web-composer__hint{min-width:0;color:var(--oo-color-muted);font-size:var(--oo-font-size-xs);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.web-composer__queue{padding:0 0 var(--oo-spacing-xs);gap:var(--oo-spacing-xs);flex-direction:column;margin:0;list-style:none;display:flex}.web-composer__queue li{align-items:center;gap:var(--oo-spacing-sm);font-size:var(--oo-font-size-sm);display:flex}.web-composer__queued{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.web-turn__facts{align-items:center;gap:var(--oo-spacing-sm);color:var(--oo-color-muted);font-size:var(--oo-font-size-xs);flex-wrap:wrap;display:flex}.web-turn__copy{--button-background-hover:none;--button-color-hover:var(--oo-color-text);color:var(--oo-color-muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.web-turn__copy:hover{color:var(--oo-color-text)}.web-turn__attached{margin-top:var(--oo-spacing-xs);white-space:normal;flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.web-turn__attached button.web-attachment{--button-background-hover:none;--button-color-hover:var(--oo-color-text);font:inherit;font-size:var(--oo-font-size-xs);cursor:pointer;background:0 0}.web-turn__attached button.web-attachment:hover{border-color:var(--oo-color-accent)}.web-turn__ended{color:var(--oo-color-warning)}.web-turn__ended[data-state=error]{color:var(--oo-color-danger)}.web-chat__title{align-items:center;gap:var(--oo-spacing-sm);flex-wrap:wrap;display:flex}.web-chat__older{justify-content:center;align-items:center;gap:var(--oo-spacing-sm);display:flex}.web-explorer{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.web-explorer__title{padding:var(--oo-spacing-sm) var(--oo-spacing-sm) var(--oo-spacing-xs) var(--oo-spacing-md);font-size:var(--oo-font-size-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--oo-color-muted);flex:none;justify-content:space-between;align-items:center;font-weight:600;display:flex}.web-explorer__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.web-explorer__actions{gap:2px;display:flex}.web-explorer__action{width:1.6rem;height:1.6rem;font:inherit;font-size:var(--oo-font-size-sm);color:inherit;border-radius:var(--oo-radius-sm);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.web-explorer__action:hover,.web-explorer__action[data-on=true]{color:var(--oo-color-accent);background:color-mix(in srgb, var(--oo-color-accent) 12%, transparent)}.web-explorer__filter{margin:0 var(--oo-spacing-sm) var(--oo-spacing-xs);font:inherit;font-size:var(--oo-font-size-sm);color:inherit;background:var(--oo-color-canvas);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);flex:none;padding:4px 8px}.web-explorer__filter:focus{border-color:var(--oo-color-accent);outline:none}.web-explorer__scroll{flex:1;min-height:0;overflow-y:auto}.web-explorer__notice,.web-explorer__empty{padding:var(--oo-spacing-sm) var(--oo-spacing-md)}.web-explorer__notice>.web-note{margin:0;padding:0}.web-explorer__icon{display:inline-block}.web-explorer__action[data-busy=true]{color:var(--oo-color-accent);cursor:progress}.web-explorer__action[data-busy=true] .web-explorer__icon{animation:.9s linear infinite web-turn}@keyframes web-turn{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.web-explorer__action[data-busy=true] .web-explorer__icon{animation:none}}.web-explorer__list{margin:0;padding:0;list-style:none}.web-row{align-items:flex-start;gap:var(--oo-spacing-sm);padding:6px var(--oo-spacing-md) 6px calc(var(--oo-spacing-md) - 2px);cursor:pointer;border-left:2px solid #0000;display:flex}.web-row:hover{background:color-mix(in srgb, var(--oo-color-accent) 6%, transparent)}.web-row[data-selected=true]{border-left-color:var(--oo-color-accent);background:color-mix(in srgb, var(--oo-color-accent) 12%, transparent)}.web-row:focus-visible{outline:1px solid var(--oo-color-accent);outline-offset:-1px}.web-row__dot{background:var(--oo-color-muted);opacity:.5;border-radius:50%;flex:none;width:8px;height:8px;margin-top:6px}.web-row__dot[data-dot=attention]{background:var(--oo-color-warning);opacity:1}.web-row__dot[data-dot=working]{background:var(--oo-color-info);opacity:1;animation:1.2s ease-in-out infinite web-pulse}.web-row__dot[data-dot=failed]{background:var(--oo-color-danger);opacity:1}.web-row__dot[data-dot=fresh]{background:var(--oo-color-accent);opacity:1}.web-row__dot[data-dot=ok]{background:var(--oo-color-success);opacity:1}.web-row__dot[data-dot=off]{border:1px solid var(--oo-color-muted);box-sizing:border-box;background:0 0}@media (prefers-reduced-motion:reduce){.web-row__dot[data-dot=working]{animation:none}}.web-row__body{flex-direction:column;flex:1;min-width:0;display:flex}.web-row__head{align-items:baseline;gap:var(--oo-spacing-sm);display:flex}.web-row__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--oo-font-size-sm);flex:1;overflow:hidden}.web-row__title[data-strong=true]{font-weight:600}.web-row__time{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);flex:none}.web-row__action{color:var(--oo-color-accent);font-size:var(--oo-font-size-xs);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;padding:0 4px;line-height:1.4}.web-row__action:hover,.web-row__action:focus-visible{background:color-mix(in srgb, var(--oo-color-accent) 18%, transparent)}.web-row__line{text-overflow:ellipsis;white-space:nowrap;font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);overflow:hidden}.web-runs{border-collapse:collapse;width:100%;font-size:var(--oo-font-size-sm)}.web-runs th{text-align:left;font-weight:600;font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);padding:4px var(--oo-spacing-sm);border-bottom:1px solid var(--oo-color-border)}.web-runs td{padding:6px var(--oo-spacing-sm);border-bottom:1px solid var(--oo-color-border);vertical-align:top}.web-runs__actions{white-space:nowrap;text-align:right}.web-automation__message{padding:var(--oo-spacing-sm) var(--oo-spacing-md);border-left:2px solid var(--oo-color-border)}.web-form{max-width:48rem}.web-form__field{flex-direction:column;flex:1;gap:4px;min-width:12rem;display:flex}.web-form__row{gap:var(--oo-spacing-md);flex-wrap:wrap;display:flex}.web-form__message{resize:vertical;font-family:inherit}@media (width<=600px){.web-runs:not(.web-table) th:nth-child(2),.web-runs:not(.web-table) td:nth-child(2),.web-runs:not(.web-table) th:nth-child(5),.web-runs:not(.web-table) td:nth-child(5){display:none}}.web-connection{align-items:center;gap:var(--oo-spacing-sm);padding:0 var(--oo-spacing-sm);font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);white-space:nowrap;display:inline-flex}.web-connection__dot{background:var(--oo-color-warning);border-radius:50%;width:.5rem;height:.5rem}.web-connection[data-status=connected] .web-connection__dot{background:var(--oo-color-success)}.web-connection[data-status=failed] .web-connection__dot,.web-connection[data-status=disconnected] .web-connection__dot{background:var(--oo-color-danger)}.web-connection__host{color:var(--oo-color-text)}.web-connection__uptime{font-variant-numeric:tabular-nums}.web-connection__retry{font:inherit;color:var(--oo-color-accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.web-layout-select{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);align-items:center;gap:4px;display:inline-flex}.web-layout-select select{font:inherit;color:inherit;border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);background:0 0;padding:0 2px}.web-lines{flex-direction:column;display:flex}.web-link{font:inherit;color:var(--oo-color-accent);cursor:pointer;text-align:left;overflow-wrap:anywhere;background:0 0;border:0;padding:0}.web-link:hover{background:0 0;text-decoration:underline}.web-md :not(pre)>code{cursor:pointer}.web-md :not(pre)>code:hover{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.web-file{flex-direction:column;height:100%;min-height:0;display:flex}.web-file__head{align-items:center;gap:var(--oo-spacing-md);padding:var(--oo-spacing-sm) var(--oo-spacing-lg);border-bottom:1px solid var(--oo-color-border);font-size:var(--oo-font-size-sm);flex-wrap:wrap;flex:none;display:flex}.web-file__head code{overflow-wrap:anywhere}.web-file__body{flex:1;min-height:0;overflow:auto}.web-file__doc{max-width:860px;padding:var(--oo-spacing-lg) var(--oo-spacing-xl,24px)}.web-code{border-collapse:collapse;font-family:var(--oo-font-mono,monospace);font-size:var(--oo-font-size-xs);min-width:100%;line-height:1.5}.web-code__number{padding:0 var(--oo-spacing-sm);text-align:right;color:var(--oo-color-muted);-webkit-user-select:none;user-select:none;vertical-align:top;white-space:nowrap;opacity:.7}.web-code__text{padding:0 var(--oo-spacing-md) 0 var(--oo-spacing-sm);white-space:pre}.web-code tr[data-hit=true]{background:color-mix(in srgb, var(--oo-color-warning) 18%, transparent)}.web-diff tr[data-kind=add]{background:color-mix(in srgb, var(--oo-color-success) 14%, transparent)}.web-diff tr[data-kind=del]{background:color-mix(in srgb, var(--oo-color-danger) 14%, transparent)}.web-diff__hunk td{padding:2px var(--oo-spacing-md);color:var(--oo-color-info);background:color-mix(in srgb, var(--oo-color-info) 8%, transparent)}.web-changeset-form{gap:var(--oo-spacing-sm);flex-direction:column;width:min(36rem,100vw - 4rem);display:flex}.web-changeset-form__actions{justify-content:flex-end;gap:var(--oo-spacing-sm);display:flex}.web-changes__bar{align-items:center;gap:var(--oo-spacing-sm);padding:0 var(--oo-spacing-sm) var(--oo-spacing-xs);border-bottom:1px solid var(--oo-color-border);margin-bottom:var(--oo-spacing-xs);flex-wrap:wrap;flex:none;display:flex}.web-changes__totals{text-align:right;white-space:nowrap;color:var(--oo-color-muted);font-size:var(--oo-font-size-xs);flex:auto}.web-segments{border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);flex:none;display:inline-flex;overflow:hidden}.web-segments__item{color:var(--oo-color-muted);font:inherit;font-size:var(--oo-font-size-xs);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:2px 8px}.web-segments__item+.web-segments__item{border-left:1px solid var(--oo-color-border)}.web-segments__item:hover{color:var(--oo-color-text)}.web-segments__item[aria-pressed=true]{color:var(--oo-color-text);background:color-mix(in srgb, var(--oo-color-accent) 14%, transparent);font-weight:600}.web-changes__scope{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);min-width:0;color:var(--oo-color-text);font:inherit;font-size:var(--oo-font-size-xs);cursor:pointer;background:0 0;flex:0 auto;padding:2px 8px;font-weight:600;overflow:hidden}.web-changes__scope--only{cursor:default;border-color:#0000;padding-left:0}.web-changes__scope:not(.web-changes__scope--only):hover{background:color-mix(in srgb, var(--oo-color-accent) 14%, transparent)}.web-segments__item--icon{min-width:1.6rem;padding:2px 4px}.web-explorer__sep{background:var(--oo-color-border);align-self:stretch;width:1px;margin:3px 2px}.web-explorer__action[data-tone=blue]{color:rgb(var(--oo-rgb-blue))}.web-explorer__action[data-tone=yellow]{color:rgb(var(--oo-rgb-yellow))}.web-explorer__action[data-tone=red]{color:var(--oo-color-danger)}.web-chip--choice{position:relative}.web-chip--choice select{opacity:0;cursor:pointer;width:100%;height:100%;font:inherit;position:absolute;inset:0}.web-chip--text input{color:inherit;font:inherit;background:0 0;border:0;outline:none;padding:0}.web-new{gap:var(--oo-spacing-md);width:100%;max-width:52rem;padding:12vh var(--oo-spacing-lg) var(--oo-spacing-lg);box-sizing:border-box;flex-direction:column;height:100%;margin:0 auto;display:flex;overflow-y:auto}.web-new__composer .web-composer__chips{padding-top:var(--oo-spacing-sm)}.web-palette{z-index:1000;background:color-mix(in srgb, var(--oo-color-bg,#000) 40%, transparent);justify-content:center;align-items:flex-start;padding:12vh 16px 16px;display:flex;position:fixed;inset:0}.web-palette__box{background:var(--oo-color-surface);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-md);flex-direction:column;width:min(36rem,100%);max-height:60vh;display:flex;overflow:hidden;box-shadow:0 12px 32px #0000004d}.web-palette__input{width:auto;margin:var(--oo-spacing-sm)}.web-palette__box .oo-action-list{border:0;border-top:1px solid var(--oo-color-border);min-width:0;max-width:none;min-height:0;max-height:none;box-shadow:none;background:0 0;border-radius:0;overflow:auto}.web-details{gap:var(--oo-spacing-xs);padding:var(--oo-spacing-sm) var(--oo-spacing-md);font-size:var(--oo-font-size-sm);flex-direction:column;margin:0;display:flex;overflow:auto}.web-details>div{gap:var(--oo-spacing-sm);grid-template-columns:6rem 1fr;display:grid}.web-details dt{color:var(--oo-color-muted)}.web-details dd{overflow-wrap:anywhere;min-width:0;margin:0}.web-details__list{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.web-details__empty{padding:var(--oo-spacing-sm) var(--oo-spacing-md)}.web-explorer__group button{align-items:center;gap:var(--oo-spacing-xs);width:100%;padding:var(--oo-spacing-sm) var(--oo-spacing-sm) 2px;font:inherit;font-size:var(--oo-font-size-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--oo-color-muted);cursor:pointer;text-align:left;background:0 0;border:0;font-weight:600;display:flex}.web-explorer__group button:hover{color:var(--oo-color-accent)}.web-explorer__fold{flex:none;width:1em}.web-explorer__group-label{text-overflow:ellipsis;white-space:nowrap;text-transform:none;letter-spacing:0;flex:1;min-width:0;overflow:hidden}.web-explorer__count{flex:none;font-weight:400}.web-ask{gap:var(--oo-spacing-sm);padding:var(--oo-spacing-md);border:1px solid color-mix(in srgb, var(--oo-color-warning) 45%, var(--oo-color-border));border-radius:var(--oo-radius-md);background:var(--oo-color-surface);border-left-width:3px;flex-direction:column;display:flex}.web-ask[data-done=true]{border-color:var(--oo-color-border);border-left-color:var(--oo-color-muted)}.web-ask__head{align-items:center;gap:var(--oo-spacing-sm);flex-wrap:wrap;display:flex}.web-ask__title{font-size:var(--oo-font-size-sm);color:var(--oo-color-muted);font-weight:600}.web-ask__steps{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.web-ask__step{border:1px solid var(--oo-color-muted);cursor:pointer;background:0 0;border-radius:50%;width:8px;height:8px;padding:0}.web-ask__step[data-done=true]{background:var(--oo-color-muted)}.web-ask__step[data-here=true]{border-color:var(--oo-color-accent);background:var(--oo-color-accent)}.web-ask__count{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted)}.web-ask__question{gap:var(--oo-spacing-xs);flex-direction:column;display:flex}.web-ask__chip{padding:0 var(--oo-spacing-sm);font-size:var(--oo-font-size-xs);color:var(--oo-color-accent);border:1px solid color-mix(in srgb, var(--oo-color-accent) 45%, transparent);border-radius:999px;align-self:flex-start}.web-ask__text-line{font-weight:600}.web-ask__hint{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted)}.web-ask__options{gap:var(--oo-spacing-xs);margin-top:var(--oo-spacing-xs);flex-direction:column;display:flex}.web-ask__option{align-items:flex-start;gap:var(--oo-spacing-sm);width:100%;padding:var(--oo-spacing-sm);font:inherit;color:inherit;text-align:left;border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);cursor:pointer;box-sizing:border-box;background:0 0;display:flex}.web-ask__option:hover{border-color:color-mix(in srgb, var(--oo-color-accent) 60%, var(--oo-color-border))}.web-ask__option[data-on=true]{border-color:var(--oo-color-accent);background:color-mix(in srgb, var(--oo-color-accent) 10%, transparent)}.web-ask__other{cursor:default;align-items:center}.web-ask__other .web-field{flex:1;min-width:0}.web-ask__mark{border:1.5px solid var(--oo-color-muted);cursor:pointer;box-sizing:border-box;background:0 0;border-radius:50%;flex:none;width:14px;height:14px;margin-top:3px;padding:0}.web-ask__other .web-ask__mark{margin-top:0}.web-ask__mark[data-many=true]{border-radius:3px}[data-on=true]>.web-ask__mark{border-color:var(--oo-color-accent);background:var(--oo-color-accent);box-shadow:inset 0 0 0 2px var(--oo-color-surface)}.web-ask__option-body{flex-direction:column;gap:2px;min-width:0;display:flex}.web-ask__option-label{align-items:baseline;gap:var(--oo-spacing-xs);flex-wrap:wrap;font-weight:500;display:flex}.web-ask__key{font-family:var(--oo-font-mono,monospace);font-size:var(--oo-font-size-xs);color:var(--oo-color-muted)}.web-ask__tag{font-size:var(--oo-font-size-xs);color:var(--oo-color-success)}.web-ask__option-hint{font-size:var(--oo-font-size-sm);color:var(--oo-color-muted)}.web-ask__text{resize:vertical}.web-ask__actions{align-items:center;gap:var(--oo-spacing-sm);display:flex}.web-ask__spacer{flex:1}.web-ask__summary{gap:var(--oo-spacing-xs);font-size:var(--oo-font-size-sm);flex-direction:column;margin:0;display:flex}.web-ask__summary>div{gap:0 var(--oo-spacing-sm);flex-wrap:wrap;display:flex}.web-ask__summary dt{color:var(--oo-color-muted)}.web-ask__summary dd{margin:0;font-weight:500}.web-ask:focus{outline:none}.web-ask__icon{width:16px;height:16px;margin-right:var(--oo-spacing-xs);color:var(--oo-color-surface);background:var(--oo-color-warning);vertical-align:-2px;border-radius:50%;place-items:center;font-size:11px;font-weight:700;display:inline-grid}.web-ask[data-done=true] .web-ask__icon{background:var(--oo-color-muted)}.web-result__ask{align-items:center;gap:var(--oo-spacing-sm);font-size:var(--oo-font-size-sm);flex-wrap:wrap;display:inline-flex}.web-method[data-effect=remove]{color:var(--oo-color-danger)}.web-toasts{z-index:900;gap:var(--oo-spacing-sm);flex-direction:column;width:340px;max-width:calc(100vw - 32px);max-height:calc(100vh - 96px);display:flex;position:fixed;bottom:40px;right:16px;overflow-y:auto}.web-toast{gap:var(--oo-spacing-xs);padding:var(--oo-spacing-sm) var(--oo-spacing-md);font-size:var(--oo-font-size-sm);background:var(--oo-color-surface);border:1px solid var(--oo-color-border);border-left:3px solid var(--web-toast-tone,var(--oo-color-info));border-radius:var(--oo-radius-md);flex-direction:column;animation:.18s cubic-bezier(.22,1,.36,1) both web-toast-slide-up;display:flex;box-shadow:0 8px 24px #00000047}.web-toast[data-tone=success]{--web-toast-tone:var(--oo-color-success)}.web-toast[data-tone=warning]{--web-toast-tone:var(--oo-color-warning)}.web-toast[data-tone=danger]{--web-toast-tone:var(--oo-color-danger)}.web-toast[data-animation=pop]{animation:.22s cubic-bezier(.34,1.56,.64,1) both web-toast-pop}.web-toast__head{align-items:center;gap:var(--oo-spacing-sm);display:flex}.web-toast__icon{color:var(--web-toast-tone,var(--oo-color-info))}.web-toast__title{text-overflow:ellipsis;flex:1;min-width:0;font-weight:600;overflow:hidden}.web-toast__count{color:var(--oo-color-muted);font-variant-numeric:tabular-nums}.web-toast__close,.web-toast__link,.web-toast__more{font:inherit;color:var(--oo-color-muted);cursor:pointer;background:0 0;border:0;padding:0}.web-toast__link,.web-toast__more{font-size:var(--oo-font-size-xs);align-self:flex-start;text-decoration:underline}.web-toast__more{align-self:center}.web-toast__body{color:var(--oo-color-muted);overflow-wrap:anywhere;margin:0}.web-toast__detail{max-height:160px;padding:var(--oo-spacing-sm);font-size:var(--oo-font-size-xs);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--oo-color-canvas);border-radius:var(--oo-radius-sm);margin:0;overflow:auto}.web-toast__actions{gap:var(--oo-spacing-xs);flex-wrap:wrap;display:flex}@keyframes web-toast-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes web-toast-pop{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.web-toast{animation:none}}.web-confirm{z-index:1100;background:color-mix(in srgb, var(--oo-color-bg,#000) 45%, transparent);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.web-confirm__card{gap:var(--oo-spacing-md);width:min(380px,100%);padding:var(--oo-spacing-lg);background:var(--oo-color-surface);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-md);outline:none;flex-direction:column;display:flex;box-shadow:0 16px 48px #0006}.web-confirm__title{margin:0;font-size:14px;font-weight:600}.web-confirm__body{font-size:var(--oo-font-size-sm);color:var(--oo-color-muted);white-space:pre-wrap;margin:0}.web-confirm__buttons{justify-content:flex-end;gap:var(--oo-spacing-sm);display:flex}.web-terminal{background:var(--oo-color-canvas);flex-direction:column;height:100%;min-height:0;display:flex}.web-terminal__note{align-items:center;gap:var(--oo-spacing-sm);padding:var(--oo-spacing-xs) var(--oo-spacing-sm);font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);border-bottom:1px solid var(--oo-color-border);display:flex}.web-terminal__screen{min-height:0;padding:var(--oo-spacing-xs) 0 0 var(--oo-spacing-sm);flex:auto;overflow:hidden}.web-log{flex-direction:column;height:100%;min-height:0;display:flex}.web-log__bar{align-items:center;gap:var(--oo-spacing-xs);padding:var(--oo-spacing-xs) var(--oo-spacing-sm);border-bottom:1px solid var(--oo-color-border);flex-wrap:wrap;display:flex}.web-log__chip{height:24px;font:inherit;font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);border-radius:var(--oo-radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:0 8px;display:inline-flex}.web-log__chip:hover:not(:disabled){background:var(--oo-color-panel)}.web-log__chip[data-on]{color:var(--oo-color-text);background:var(--oo-color-selected);border-color:var(--oo-color-border)}.web-log__chip:disabled{cursor:default;opacity:.6}.web-log__dot{background:currentColor;border-radius:50%;width:7px;height:7px}.web-log__rule{width:1px;height:16px;margin:0 var(--oo-spacing-xs);background:var(--oo-color-border)}.web-log__search{min-width:120px;height:24px;font:inherit;font-size:var(--oo-font-size-xs);color:var(--oo-color-text);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);background:0 0;flex:140px;padding:0 8px}.web-log__icon{font:inherit;font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);cursor:pointer;background:0 0;border:0;padding:2px 6px}.web-log__icon:hover{color:var(--oo-color-text)}.web-log__list{min-height:0;font-family:var(--oo-font-mono);flex:auto;font-size:11.5px;overflow:auto}.web-log__row[data-open]{background:var(--oo-color-selected)}.web-log__line{min-height:22px;padding:0 var(--oo-spacing-sm);cursor:pointer;align-items:center;gap:10px;display:flex}.web-log__row:not([data-open]) .web-log__line:hover{background:var(--oo-color-panel)}.web-log__caret{width:10px;color:var(--oo-color-muted);font-size:10px}.web-log__time{color:var(--oo-color-muted)}.web-log__level{width:44px;color:var(--oo-color-muted)}.web-log__row[data-level=debug] .web-log__level{opacity:.6}.web-log__row[data-level=warn] .web-log__level{color:var(--oo-color-warning)}.web-log__row[data-level=error] .web-log__level,.web-log__row[data-level=error] .web-log__text{color:var(--oo-color-danger)}.web-log__scope{width:84px;color:var(--oo-color-muted);white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.web-log__scope>span{color:var(--oo-color-muted)}.web-log__scope:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.web-log__scope[data-scope=connection],.web-log__dot[data-scope=connection]{color:var(--oo-color-accent)}.web-log__scope[data-scope=session],.web-log__dot[data-scope=session]{color:var(--oo-color-info)}.web-log__scope[data-scope=terminal],.web-log__dot[data-scope=terminal]{color:var(--oo-color-success)}.web-log__text{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--oo-color-text);flex:auto;overflow:hidden}.web-log__row[data-open] .web-log__text{white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;user-select:text}.web-log__link{color:var(--oo-color-accent);cursor:pointer;text-decoration:underline}.web-log__detail{padding:var(--oo-spacing-xs) var(--oo-spacing-sm) var(--oo-spacing-sm) 30px;white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;user-select:text;max-height:320px;margin:0;overflow:auto}.oo-bar__slot .oo-button-bar.web-layout-toggle,.oo-bar__slot .oo-button-bar.web-layout-toggle[data-active]{color:var(--oo-color-muted);background:0 0;font-size:15px;line-height:1}.oo-bar__slot .oo-button-bar.web-layout-toggle[data-active=true],.oo-bar__slot .oo-button-bar.web-layout-toggle:hover{color:var(--oo-color-text)}.web-composer__box[data-drop=attach]{background:#6cbcca14;border-color:#6cbcca}.web-composer__box[data-drop=mention]{background:#f9731614;border-color:#f97316}.web-folders__tag{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted)}.web-change{align-items:baseline;gap:var(--oo-spacing-sm);min-width:0;display:flex}.web-change__name{text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:100%;overflow:hidden}.web-change__dir{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--oo-color-muted);font-size:var(--oo-font-size-xs);flex:auto;overflow:hidden}.web-change[data-reviewed=true] .web-change__name{color:var(--oo-color-muted)}.web-change[data-deleted=true] .web-change__name{text-decoration:line-through}.web-change__group{font-size:var(--oo-font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--oo-color-muted);font-weight:600}.web-change__end{align-items:center;gap:var(--oo-spacing-sm);display:inline-flex}.web-change__counts{white-space:nowrap}.web-change__letter{text-align:center;min-width:1ch;font-weight:600}.web-change__letter[data-letter=M]{color:var(--oo-color-warning)}.web-change__letter[data-letter=A],.web-change__letter[data-letter=U]{color:var(--oo-color-success)}.web-change__letter[data-letter=D]{color:var(--oo-color-danger)}.web-change__actions{gap:2px;display:none}.web-change__action{color:inherit;font:inherit;border-radius:var(--oo-radius-sm);cursor:pointer;background:0 0;border:0;min-width:20px;height:20px;padding:0 3px}.web-change__action:hover{background:var(--oo-color-hover,var(--oo-color-selected))}.web-change__action[aria-pressed=true]{color:var(--oo-color-success)}.web-changes .oo-tree__row:hover .web-change__actions,.web-changes .oo-tree__row:focus-within .web-change__actions,.web-changes .oo-tree__row[data-selected=true] .web-change__actions{display:inline-flex}.web-changes .oo-tree__row:hover .web-change__counts,.web-changes .oo-tree__row:hover .web-change__letter,.web-changes .oo-tree__row:focus-within .web-change__counts,.web-changes .oo-tree__row:focus-within .web-change__letter,.web-changes .oo-tree__row[data-selected=true] .web-change__counts,.web-changes .oo-tree__row[data-selected=true] .web-change__letter{display:none}.web-file__actions{align-items:center;gap:var(--oo-spacing-sm);flex-wrap:wrap;margin-left:auto;display:inline-flex}.web-file__viewed{cursor:pointer;align-items:center;gap:4px;display:inline-flex}.porta-limen{background:var(--oo-color-canvas);width:100%;height:100%;min-height:0;color:inherit;grid-template:"top top top""left center right"1fr"bottom bottom bottom"/auto 1fr auto;display:grid}.porta-limen__top{grid-area:top}.porta-limen__bottom{grid-area:bottom}.porta-limen__left{grid-area:left}.porta-limen__right{grid-area:right}.porta-limen__center{padding:var(--oo-spacing-lg);grid-area:center;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.porta-limen__panel{gap:var(--oo-spacing-md);width:100%;max-width:380px;padding:var(--oo-spacing-lg);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-md);background:var(--oo-color-surface);box-shadow:var(--oo-shadow-md);flex-direction:column;display:flex}.porta-limen__title{font-size:var(--oo-font-size-lg);font-weight:600}.porta-limen__subtitle{color:var(--oo-color-muted);font-size:var(--oo-font-size-sm)}.ahpw-mark__art,.ahpw-mark__echo{transform-box:view-box}@keyframes ahpw-mark-set{0%{transform:scaleY(0)}60%{transform:scaleY(1.06)}to{transform:scaleY(1)}}.ahpw-mark--set .ahpw-mark__art{transform-origin:32px 52px;animation:.75s cubic-bezier(.2,.9,.25,1.06) both ahpw-mark-set}@keyframes ahpw-mark-echo{0%{opacity:.6;transform:scale(1)}75%{opacity:0}to{opacity:0;transform:scale(1.95)}}.ahpw-mark__echo{transform-origin:32px 32px;opacity:0;animation:1.5s cubic-bezier(.25,.6,.3,1) infinite ahpw-mark-echo}.ahpw-mark__echo--second{animation-delay:.5s}.ahpw-mark__echo--third{animation-delay:1s}@media (prefers-reduced-motion:reduce){.ahpw-mark--set .ahpw-mark__art,.ahpw-mark__echo{animation:none}}
@@ -0,0 +1 @@
1
+ import{n as e,t}from"./jsx-runtime-BguD1OXD.js";import{t as n}from"./react-CybPckBe.js";import{t as r,u as i}from"./useStore-BQkzWMs-.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./Button-_R1oktDz.js";import{o as s}from"./data-Fkj0LNnG.js";import{t as c}from"./emojis-BOylxma2.js";import{t as l}from"./ActionList-aOUHK9Z9.js";import{a as u,d,o as f,r as p}from"./terminal-kD0C2LuZ.js";var m=e((e=>{var t=n();function r(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function i(){}var a={d:{f:i,r:function(){throw Error(r(522))},D:i,C:i,L:i,m:i,X:i,S:i,M:i},p:0,findDOMNode:null},o=Symbol.for(`react.portal`),s=Symbol.for(`react.recoverable`),c=Symbol.for(`react.optimistic_key`);function l(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:r==null?null:r===c?c:``+r,children:e,containerInfo:t,implementation:n}}var u=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function d(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,e.browser=function(e){return{$$typeof:s,_reason:e}},e.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(r(299));return l(e,t,null,n)},e.flushSync=function(e){var t=u.T,n=a.p;try{if(u.T=null,a.p=2,e)return e()}finally{u.T=t,a.p=n,a.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,a.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&a.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin),i=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?a.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:i,fetchPriority:o}):n===`script`&&a.d.X(e,{crossOrigin:r,integrity:i,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=d(t.as,t.crossOrigin);a.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}}else t??a.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin);a.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=d(t.as,t.crossOrigin);a.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}else a.d.m(e)}},e.requestFormReset=function(e){a.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return u.H.useFormState(e,t,n)},e.useFormStatus=function(){return u.H.useHostTransitionStatus()},e.version=`19.3.0`})),h=e(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=m()})),g=8e3,_=`$/notify/list`,ee=`$/notify/count`,v=`$/notify/history`;function y(e){return[e.source??``,e.type,e.title,e.description??``].join(` `)}function b(e){let t=new Map,n=new Map,r=new Set,i=[],a=[],o=0;function s(t){i=t,e.set(_,[...i]),e.set(ee,i.length)}function c(t){a=[t,...a.filter(e=>e.id!==t.id)].slice(0,100),e.set(v,[...a])}function l(e){for(let n of t.values())if((n.handles===void 0||n.handles(e))&&n.available())try{n.present(e)}catch{}}function u(e){let t=n.get(e);t!==void 0&&(clearTimeout(t),n.delete(e))}function d(e){u(e.id),!(e.dismissAuto===!1||r.has(e.id))&&n.set(e.id,setTimeout(()=>{n.delete(e.id),f(e.id)},e.dismissTime??2e3))}function f(e){if(u(e),r.delete(e),i.some(t=>t.id===e)){s(i.filter(t=>t.id!==e));for(let n of t.values())n.retract?.(e)}}return{publish(e){let t=e.id===void 0?i.find(t=>y(t)===y(e)):i.find(t=>t.id===e.id);if(t!==void 0){let n={...t,...e,id:t.id,count:t.count+1,at:new Date().toISOString()};return s([n,...i.filter(e=>e.id!==t.id)]),c(n),l(n),d(n),n.id}o+=1;let n={...e,id:e.id??`n${o}`,at:new Date().toISOString(),count:1};return s([n,...i]),c(n),l(n),d(n),n.id},dismiss:f,hold(e){r.add(e),u(e)},release(e){if(!r.delete(e))return;let t=i.find(t=>t.id===e);t!==void 0&&d(t)},update(e,t){let n=i.find(t=>t.id===e);if(n===void 0)return;let r={...n,...t,id:e};s(i.map(t=>t.id===e?r:t)),c(r),l(r),d(r)},list:()=>[...i],history:()=>[...a],forget(){a=[],e.set(v,[])},channels:{register(e){return t.set(e.id,e),{dispose:()=>void t.delete(e.id)}}}}}var x;function te(e){return x??=b(e),x}function ne(){x=void 0}function S(){if(x===void 0)throw Error(`Notifications were read before initNotifications ran.`);return x}function C(e){if(x===void 0)return!1;try{return e(x),!0}catch{return!1}}var w=`$/notify/confirm`,T=`$/notify/confirmStyle`,E=`modal`,D,O=0,k=null;function re(e,t){D=e,e.get(`$/notify/confirmStyle`)===void 0&&e.set(T,t)}function ie(){M(!1),D=void 0}function A(){return D?.get(`$/notify/confirmStyle`)??`modal`}function ae(e){D?.set(T,e)}function j(e){return D===void 0||A()===`native`?Promise.resolve(window.confirm(e.body===void 0?e.title:`${e.title}\n\n${e.body}`)):(M(!1),O+=1,D.set(w,{id:O,title:e.title,...e.body===void 0?{}:{body:e.body},confirmLabel:e.confirmLabel??`Confirm`,cancelLabel:e.cancelLabel??`Cancel`,tone:e.tone??`default`}),new Promise(e=>{k=e}))}function M(e){let t=k;k=null,D?.set(w,null),t?.(e)}var N=new Set([`attention`,`action.finished`,`connection.lost`]),P=6e4;function F(){return typeof window<`u`&&`Notification`in window}function I(){return F()&&window.Notification.permission==="default"}function L(){return F()&&window.Notification.permission===`granted`}async function R(){return F()?window.Notification.requestPermission():`denied`}function z(){let e=typeof document>`u`||document.hasFocus()?null:Date.now(),t=new Map,n=()=>{e??=Date.now()},r=()=>{e=null;for(let e of t.values())e.close();t.clear()};return window.addEventListener(`blur`,n),window.addEventListener(`focus`,r),{id:`browser`,handles:e=>N.has(e.type)&&e.alert!==void 0,available:()=>L()?document.visibilityState===`hidden`||e!==null&&Date.now()-e>=P:!1,present:e=>{let n=e.alert;if(n===void 0)return;let r=new window.Notification(n.title,{...n.body===void 0?{}:{body:n.body},tag:e.source??e.id});r.onclick=()=>{window.focus(),r.close()},t.set(e.id,r)},retract:e=>{t.get(e)?.close(),t.delete(e)},dispose:()=>{window.removeEventListener(`blur`,n),window.removeEventListener(`focus`,r);for(let e of t.values())e.close();t.clear()}}}var B=n(),V=t();function H(){let e=r(w),t=(0,B.useRef)(null),n=e?.id;return(0,B.useEffect)(()=>{if(n===void 0)return;t.current?.focus();let e=e=>{e.key===`Escape`&&(e.stopPropagation(),M(!1))};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[n]),e==null?null:(0,V.jsx)(`div`,{className:`web-confirm`,onClick:()=>M(!1),children:(0,V.jsxs)(`div`,{ref:t,tabIndex:-1,className:`web-confirm__card`,role:`alertdialog`,"aria-modal":`true`,"aria-labelledby":`web-confirm-title`,...e.body===void 0?{}:{"aria-describedby":`web-confirm-body`},onClick:e=>e.stopPropagation(),children:[(0,V.jsx)(`h2`,{id:`web-confirm-title`,className:`web-confirm__title`,children:e.title}),e.body===void 0?null:(0,V.jsx)(`p`,{id:`web-confirm-body`,className:`web-confirm__body`,children:e.body}),(0,V.jsxs)(`div`,{className:`web-confirm__buttons`,children:[(0,V.jsx)(o,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>M(!1),children:e.cancelLabel}),(0,V.jsx)(o,{type:`button`,size:`sm`,variant:e.tone===`danger`?`danger`:`primary`,onClick:()=>M(!0),children:e.confirmLabel})]})]})})}var U={info:c.info,success:c.check,warning:c.warning,danger:c.error},W=4;function G({animation:e=`slide-up`}){let t=r(`$/notify/list`)??[],[n,i]=(0,B.useState)(!1);if(t.length===0)return null;let a=n?t:t.slice(0,W),o=t.length-a.length;return(0,V.jsxs)(`div`,{className:`web-toasts`,role:`region`,"aria-label":`Notifications`,children:[o>0?(0,V.jsx)(`button`,{type:`button`,className:`web-toast__more`,onClick:()=>i(!0),children:`${o} more`}):null,[...a].reverse().map(t=>(0,V.jsx)(K,{notification:t,animation:t.animation??e},t.id))]})}function K({notification:e,animation:t}){let n=a(),[r,i]=(0,B.useState)(!1),s=e.id,l=()=>S().dismiss(s);(0,B.useEffect)(()=>{if(!r)return;let e=S();return e.hold(s),()=>e.release(s)},[s,r]);let u=()=>S().hold(s),d=()=>{r||S().release(s)},f=e=>{n.commands.execute(e.command,e.args),e.dismisses!==!1&&l()};return(0,V.jsxs)(`div`,{className:`web-toast`,"data-tone":e.tone,"data-animation":t,role:e.dismissAuto===!1?`alert`:`status`,onMouseEnter:u,onMouseLeave:d,onFocus:u,onBlur:d,children:[(0,V.jsxs)(`div`,{className:`web-toast__head`,children:[(0,V.jsx)(`span`,{className:`web-toast__icon`,"aria-hidden":`true`,children:e.icon??U[e.tone]}),(0,V.jsx)(`span`,{className:`web-toast__title`,children:e.title}),e.count>1?(0,V.jsx)(`span`,{className:`web-toast__count`,title:`Raised ${e.count} times`,children:`\u{D7}${e.count}`}):null,(0,V.jsx)(`button`,{type:`button`,className:`web-toast__close`,"aria-label":`Dismiss`,onClick:l,children:c.close})]}),e.description===void 0?null:(0,V.jsx)(`p`,{className:`web-toast__body`,children:e.description}),e.detail===void 0?null:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{type:`button`,className:`web-toast__link`,onClick:()=>i(!r),children:r?`Hide details`:`Show details`}),r?(0,V.jsx)(`pre`,{className:`web-toast__detail`,children:e.detail}):null]}),e.actions===void 0||e.actions.length===0?null:(0,V.jsx)(`div`,{className:`web-toast__actions`,children:e.actions.map(e=>(0,V.jsx)(o,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>f(e),children:e.label},e.command))})]})}var q=h(),J=c.terminal;function Y(e,t){let n=f(e.claim,t);return n.kind===`you`?`Yours`:n.kind===`session`?`Held by a session`:`Held by another client`}function oe(e,t){if(!u(e))return Y(e,t);let n=p(e);return`${Y(e,t)}, exited${n===null?``:` with ${n}`}`}function se(e,t){let n=e.store.get(s),r=t.trim().toLowerCase();return(n?.terminals??[]).filter(e=>r===``||`terminal ${d(e)}`.toLowerCase().includes(r)).map(t=>({title:`Terminal: ${d(t)}`,description:oe(t,n?.clientId??null),icon:J,group:`Terminals`,onSelect:n=>{n.closeMenu(),e.commands.execute(`ahp.openTerminal`,{uri:t.resource})}}))}var X=`$/ahp/palette/open`,Z=`ahp:palette`;function Q(){return r(`$/ahp/palette/open`)===!0?(0,q.createPortal)((0,V.jsx)(ce,{}),document.body):null}function ce(){let e=a(),[t,n]=(0,B.useState)(``),i=(0,B.useRef)(null),o=()=>e.store.set(X,!1),c=(0,B.useMemo)(()=>({pushList:()=>void 0,replaceList:()=>void 0,openInline:()=>void 0,openPopover:()=>void 0,back:()=>void 0,closeMenu:o,keepOpen:()=>void 0,insertAtCursor:()=>void 0,replaceActiveToken:()=>void 0,query:``}),[]),u=r(s),d=(0,B.useMemo)(()=>({query:{slot:Z,q:t},extraItems:se(e,t)}),[e,t,u]);return(0,V.jsx)(`div`,{className:`web-palette`,onMouseDown:e=>{e.target===e.currentTarget&&o()},children:(0,V.jsxs)(`div`,{className:`web-palette__box`,role:`dialog`,"aria-label":`Command palette`,onClick:e=>{e.target.closest(`.oo-action-list__row`)!==null&&o()},children:[(0,V.jsx)(`input`,{className:`web-field web-palette__input`,autoFocus:!0,value:t,placeholder:`Type a command or a terminal`,"aria-label":`Command`,onChange:e=>n(e.currentTarget.value),onKeyDown:e=>{if(e.key===`Escape`){e.preventDefault(),o();return}i.current?.handleKey(e)===!0&&e.key===`Enter`&&o()}}),(0,V.jsx)(l,{spec:d,hostCtx:c,manageKeys:!1,ref:i})]})})}function $(e){return{...e.description===void 0?{}:{description:e.description},...e.actions===void 0?{}:{actions:e.actions},...e.source===void 0?{}:{source:e.source},...e.dismissAuto===void 0?{}:{dismissAuto:e.dismissAuto}}}function le(e,t={}){C(n=>{n.publish({type:`action.done`,tone:`success`,icon:t.icon??c.check,title:e,...$(t)})})}function ue(e,t={}){C(n=>{n.publish({type:`attention`,tone:`warning`,icon:t.icon??c.warning,title:e,dismissTime:g,...$(t)})})}function de(e,t,n={}){let r=t instanceof Error?t.message:String(t),i=t instanceof Error?t.stack:void 0;C(t=>{t.publish({type:`action.failed`,tone:`danger`,icon:n.icon??c.warning,title:e,dismissTime:8e3,...$({...n,description:r}),...i===void 0?{}:{detail:i}})})||console.error(e,t)}function fe(e){let t=te(e.store);re(e.store,E);let n=z();return i({dispose:()=>{n.dispose(),ie(),ne()}},e.components.register({component:`Notifications.Toaster`,category:`chrome`,renderer:{kind:`react`,load:async()=>({default:G})}}),e.components.register({component:`Notifications.Confirm`,category:`chrome`,renderer:{kind:`react`,load:async()=>({default:H})}}),t.channels.register({id:`toast`,available:()=>!0,present:()=>void 0}),t.channels.register(n),e.surfaces.mount({surface:`overlay`,key:`notifications:toaster`,resource:{component:`Notifications.Toaster`}}),e.surfaces.mount({surface:`overlay`,key:`notifications:confirm`,resource:{component:`Notifications.Confirm`}}),e.commands.register({id:`notifications.enableAlerts`,title:`Notify me when this tab is in the background`,category:`Notifications`,slots:[Z],run:async()=>{if(L()){t.publish({type:`default`,tone:`success`,title:`Background notifications are already on`});return}if(!I()){t.publish({type:`default`,tone:`warning`,title:`Background notifications are blocked`,description:`The browser will not ask again. Turn them on in the site settings beside the address bar.`,dismissTime:g});return}let e=await R();t.publish({type:`default`,tone:e===`granted`?`success`:`warning`,title:e===`granted`?`Background notifications are on`:`Background notifications were not allowed`})}}),e.commands.register({id:`notifications.confirmStyle`,title:()=>A()===`native`?`Ask in the page's own dialog`:`Ask in the browser's dialog`,category:`Notifications`,slots:[Z],run:()=>ae(A()===`native`?`modal`:`native`)}),e.commands.register({id:`notifications.dismissAll`,title:`Dismiss all notifications`,category:`Notifications`,slots:[Z],run:()=>{for(let e of t.list())t.dismiss(e.id)}}))}export{X as a,J as c,g as d,h as f,ue as i,j as l,le as n,Z as o,de as r,Q as s,fe as t,C as u};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Explorer-C4zxSdMF.js","./jsx-runtime-BguD1OXD.js","./react-CybPckBe.js","./notify-Bb548jAB.js","./useStore-BQkzWMs-.js","./ScenaProvider-6A3TJumQ.js","./mount-context-DZgEFVFG.js","./Button-_R1oktDz.js","./styles-yrzHRgom.js","./_utils-DZVsX11M.js","./Button-CRZ1_3KW.css","./data-Fkj0LNnG.js","./emojis-BOylxma2.js","./ActionList-aOUHK9Z9.js","./colors-BieSUSt7.js","./ActionList-Bawu-Lja.css","./terminal-kD0C2LuZ.js","./words-BknpHIF3.js","./Spinner-B-iOhBZq.js","./Spinner-B56wMtzv.css","./Alert-CHZkhmDE.js","./Icon-CIQ7doud.js","./Icon-BFMW_Ijn.css","./Alert-D6FTUHBY.css","./state-KGSq646f.js","./ExplorerList-Bdp0sfLW.js","./ContextMenu-qqlGWvJT.js","./Page-BXwzlAyC.js","./Badge-BDEW5PFb.js","./Badge-B_GtDNjv.css","./Markdown-BaxWPZc1.js","./Markdown-D4ts0B_q.css","./Composer-DpjCaX5G.js","./composer-commands-Bpp7NX4E.js","./drag-ruzgQUFW.js","./Text-MPtQvYE-.js","./Text-D2KlerVw.css","./turn-BoF7W1h6.js","./channel-Cqz_LUS2.js","./clicks-IyfKhKFh.js","./New-CWi2ZODd.js","./Details-Cymq_tLr.js"])))=>i.map(i=>d[i]);
2
+ import{d as e,o as t,u as n}from"./notify-Bb548jAB.js";import{u as r}from"./useStore-BQkzWMs-.js";import{n as i,t as a}from"./surface-presentation-CT86pw6J.js";import{t as o}from"./preload-helper-BaNbYf_w.js";import{L as s,T as c,c as l}from"./data-Fkj0LNnG.js";import{t as u}from"./emojis-BOylxma2.js";import{s as d}from"./composer-commands-Bpp7NX4E.js";import{t as f}from"./state-KGSq646f.js";var p={"sidebar:left":{xsmall:`sheet`,small:`floating`},"sidebar:right":{xsmall:`floating`,small:`floating`},activitybar:{xsmall:`bar`}},m=e=>`session-alert:${e}`;function h(e,t){return e===void 0||e===t?null:t===`input`?`needs-you`:e!==`running`&&e!==`input`?null:t===`idle`?`finished`:t===`error`?`failed`:null}function g(t,n){let r=t.title===``?`Untitled`:t.title,i=[{label:`Open`,command:`ahp.openSession`,args:{resource:t.resource}}],a={id:m(t.resource),source:m(t.resource),actions:i};return n===`needs-you`?{...a,type:`attention`,tone:`warning`,icon:u.warning,title:`${r} needs you`,dismissAuto:!1,alert:{title:r,body:`Needs you`}}:n===`failed`?{...a,type:`action.finished`,tone:`danger`,icon:u.warning,title:`${r} failed`,dismissTime:e,alert:{title:r,body:`Failed`}}:{...a,type:`action.finished`,tone:`success`,icon:u.check,title:`${r} finished`,dismissTime:e,alert:{title:r,body:`Finished`}}}function _(e,t){return e.store.get(`$/ahp/activeSession`)===t&&document.visibilityState===`visible`&&document.hasFocus()}function v(e){let t=null;return e.store.subscribe(l,()=>{let r=e.store.get(l);if(r===void 0)return;let i=new Map(r.map(e=>[e.resource,s(e.status)])),a=t;if(t=i,a!==null)for(let t of r){let r=i.get(t.resource),o=a.get(t.resource);o===`input`&&r!==`input`&&n(e=>e.dismiss(m(t.resource)));let s=h(o,r);s===null||_(e,t.resource)||n(e=>e.publish(g(t,s)))}})}var y=`$/modus/class`,b=`ahp:sessions`;function x(e,t,n=`sidebar:left`){if(!a(i(n,t,p)))return;let r=e.layout.get().surfaces[n];r?.visible!==!1&&e.layout.setSurface(n,{...r,visible:!1})}function S(e){return r(d(e),v(e),e.components.register({component:`SessionExplorer`,category:`page`,renderer:{kind:`react`,load:()=>o(()=>import(`./Explorer-C4zxSdMF.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]),import.meta.url)}}),e.components.register({component:`SessionPage`,category:`page`,props:{icon:u.sessions},renderer:{kind:`react`,load:()=>o(()=>import(`./Page-BXwzlAyC.js`),__vite__mapDeps([27,1,2,4,5,6,7,8,9,10,11,17,12,28,14,29,18,19,30,31,20,21,22,23,32,3,13,15,16,33,34,35,36,24,37,38,39]),import.meta.url)}}),e.components.register({component:`NewSessionPage`,category:`page`,props:{icon:u.sessions},renderer:{kind:`react`,load:()=>o(()=>import(`./New-CWi2ZODd.js`),__vite__mapDeps([40,1,2,4,5,6,7,8,9,10,11,17,12,20,21,22,23,32,3,13,14,15,16,33,34,35,36]),import.meta.url)}}),e.components.register({component:`SessionDetails`,category:`page`,renderer:{kind:`react`,load:()=>o(()=>import(`./Details-Cymq_tLr.js`),__vite__mapDeps([41,1,2,4,5,6,11,17,16,24,37,38]),import.meta.url)}}),e.commands.register({id:`ahp.showSessions`,title:`Show sessions`,category:`Sessions`,slots:[t],run:e=>e.commands.execute(`sidebar.activate`,{section:b})}),e.commands.register({id:`ahp.newSession`,title:`New session`,category:`Sessions`,slots:[t],run:(e,t)=>{let n=t?.provider;n!==void 0&&e.scena.surfaces.close(`session:new`),e.surfaces.open({surface:`main`,key:`session:new`,resource:{component:`NewSessionPage`,...n===void 0?{}:{provider:n}},props:{title:`New session`}}),x(e.scena,e.store.get(y)??`large`)}}),e.commands.register({id:`ahp.openSession`,title:`Open session`,run:(e,t)=>{let n=t?.resource;n!==void 0&&(e.store.set(f,n),e.surfaces.open({surface:`main`,key:`session:${n}`,resource:{component:`SessionPage`,resource:n},props:{title:{path:c(n)}}}),x(e.scena,e.store.get(y)??`large`),x(e.scena,e.store.get(y)??`large`,`sidebar:right`))}}),e.surfaces.mount({surface:`sidebar:right`,key:`session:details`,resource:{component:`SessionDetails`},props:{title:`Session`}}),e.surfaces.mount({surface:`sidebar:left`,key:`sessions:explorer`,when:`$/layout/surfaces/sidebar:left/section == "${b}"`,resource:{component:`SessionExplorer`}}))}export{p as i,x as n,S as r,b as t};
@@ -0,0 +1 @@
1
+ var e=`$/ahp/activeAgent`;export{e as t};
@@ -0,0 +1 @@
1
+ var e=`$/ahp/activeSession`;export{e as t};
@@ -1 +1 @@
1
- import{K as e}from"./data-BvTv-4oH.js";function t(e){return typeof e==`object`&&e?e:{}}function n(e){return typeof e==`string`&&e!==``?e:null}function r(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function i(e){return e.type===`command`?typeof e.output==`string`?e.output:``:typeof e.value==`string`?e.value:``}function a(e){let t=``;for(let n of e)t+=i(n);return t}function o(e){let i=t(e),a=t(i.lifecycle),o=r(a.exitCode);return{...i,title:n(i.title)??``,content:Array.isArray(i.content)?i.content:[],lifecycle:n(a.status)===`exited`?{status:`exited`,...o===null?{}:{exitCode:o}}:{status:`running`},claim:c(i.claim)?i.claim:l(``)}}function s(t,n){return e(o(t),n)}function c(e){let r=n(t(e).kind);return r===`client`||r===`session`}function l(e){return{kind:`client`,clientId:e}}function u(e,r){let i=t(e);return i.kind===`session`?{kind:`session`,session:n(i.session)??``}:i.kind===`client`&&r!==null&&i.clientId===r?{kind:`you`}:{kind:`another`}}function d(e){return t(e.lifecycle).status===`exited`}function f(e){return r(t(e.lifecycle).exitCode)}var p=0;function m(){return p+=1,`ahp-terminal:/${Date.now().toString(36)}-${p.toString(36)}`}function h(e,t){return t.startsWith(e)?{reset:!1,text:t.slice(e.length)}:{reset:!0,text:t}}function g(e){return e.title!==void 0&&e.title!==``?e.title:`Terminal`}export{d as a,m as c,s as i,o as l,h as n,u as o,f as r,a as s,l as t,g as u};
1
+ import{K as e}from"./data-Fkj0LNnG.js";function t(e){return typeof e==`object`&&e?e:{}}function n(e){return typeof e==`string`&&e!==``?e:null}function r(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function i(e){return e.type===`command`?typeof e.output==`string`?e.output:``:typeof e.value==`string`?e.value:``}function a(e){let t=``;for(let n of e)t+=i(n);return t}function o(e){let i=t(e),a=t(i.lifecycle),o=r(a.exitCode);return{...i,title:n(i.title)??``,content:Array.isArray(i.content)?i.content:[],lifecycle:n(a.status)===`exited`?{status:`exited`,...o===null?{}:{exitCode:o}}:{status:`running`},claim:c(i.claim)?i.claim:l(``)}}function s(t,n){return e(o(t),n)}function c(e){let r=n(t(e).kind);return r===`client`||r===`session`}function l(e){return{kind:`client`,clientId:e}}function u(e,r){let i=t(e);return i.kind===`session`?{kind:`session`,session:n(i.session)??``}:i.kind===`client`&&r!==null&&i.clientId===r?{kind:`you`}:{kind:`another`}}function d(e){return t(e.lifecycle).status===`exited`}function f(e){return r(t(e.lifecycle).exitCode)}var p=0;function m(){return p+=1,`ahp-terminal:/${Date.now().toString(36)}-${p.toString(36)}`}function h(e,t){return t.startsWith(e)?{reset:!1,text:t.slice(e.length)}:{reset:!0,text:t}}function g(e){return e.title!==void 0&&e.title!==``?e.title:`Terminal`}function _(e,t){if(e===void 0)return!1;let n=t.replace(/\/+$/,``);return e.replace(/\/+$/,``)===n||e.startsWith(`${n}/`)}export{d as a,a as c,g as d,s as i,m as l,h as n,u as o,f as r,_ as s,l as t,o as u};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{b as n}from"./data-BvTv-4oH.js";import{n as r}from"./words-CrqnRMW4.js";var i=t(),a=e();function o(e){let[t,r]=(0,i.useState)(null);return(0,i.useEffect)(()=>{if(e===void 0)return;let t=!0;return r(null),n(e).then(e=>{t&&r({text:e.text})}).catch(e=>{t&&r({error:e instanceof Error?e.message:String(e)})}),()=>{t=!1}},[e]),t}function s({uri:e}){let t=r(e);return(0,a.jsxs)(`div`,{className:`web-file__head`,children:[(0,a.jsx)(`code`,{children:t}),(0,a.jsx)(`button`,{type:`button`,className:`web-tool__copy`,onClick:()=>void navigator.clipboard?.writeText(t).catch(()=>void 0),children:`Copy path`})]})}export{o as n,s as t};
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{b as n}from"./data-Fkj0LNnG.js";import{n as r}from"./words-BknpHIF3.js";var i=t(),a=e();function o(e){let[t,r]=(0,i.useState)(null);return(0,i.useEffect)(()=>{if(e===void 0)return;let t=!0;return r(null),n(e).then(e=>{t&&r({text:e.text})}).catch(e=>{t&&r({error:e instanceof Error?e.message:String(e)})}),()=>{t=!1}},[e]),t}function s({uri:e}){let t=r(e);return(0,a.jsxs)(`div`,{className:`web-file__head`,children:[(0,a.jsx)(`code`,{children:t}),(0,a.jsx)(`button`,{type:`button`,className:`web-tool__copy`,onClick:()=>void navigator.clipboard?.writeText(t).catch(()=>void 0),children:`Copy path`})]})}export{o as n,s as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./react-CybPckBe.js";import{C as t,S as n,b as r,v as i,x as a,y as o}from"./index-BkzdJo_Y.js";var s=e();function c(e){let c=(0,s.useSyncExternalStore)(n,i,i);return{t:(0,s.useCallback)((n,r)=>t(e?`${e}/${n}`:n,r),[e,c]),locale:c,info:o(c),locales:r(),setLocale:a}}export{c as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./useStore-BQkzWMs-.js";import{C as t}from"./index-BkzdJo_Y.js";var n=`$/__label__/empty`;function r(r,i=``,a){let o=r&&typeof r==`object`&&`path`in r?r.path:n,s=e(o,a);return typeof r==`string`?r:r?`path`in r?s??i:`t`in r?t(r.t,i):i:i}export{r as t};
@@ -0,0 +1 @@
1
+ function e(){let e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function t(e){let t=e.trim();return/^[a-z][a-z0-9+.-]*:/i.test(t)?t:`file://${t.split(`/`).map(encodeURIComponent).join(`/`)}`}function n(e){let t=e.replace(/\/+$/,``).split(`/`).pop()??``;try{return decodeURIComponent(t)||e}catch{return t||e}}function r(e){if(!e.startsWith(`file://`))return e;try{return decodeURIComponent(e.slice(7))}catch{return e}}function i(e){return e===void 0?``:typeof e==`string`?e:e.markdown}function a(e){let t=Math.max(0,Math.floor(e/1e3)),n=t%60,r=Math.floor(t/60)%60,i=Math.floor(t/3600)%24,a=Math.floor(t/86400);return a>0?`${a}d${i}h`:i>0?`${i}h${r}m`:r>0?`${r}m${n}s`:`${n}s`}export{e as a,t as i,r as n,i as o,n as r,a as t};
@@ -6,28 +6,32 @@
6
6
  <link rel="icon" type="image/svg+xml" href="./ahpw.svg" />
7
7
  <title>ahpw</title>
8
8
  <style>:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--boot-bg:#fff;--boot-muted:#6b7280}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--boot-bg:#020617;--boot-muted:#94a3b8}}html,body{background:var(--boot-bg);height:100%;margin:0}.boot-loading{background:var(--boot-bg);opacity:0;justify-content:center;align-items:center;animation:.35s ease-out .25s forwards boot-in;display:flex;position:fixed;inset:0}.boot-mark{display:block;overflow:visible}.boot-echo{transform-box:view-box;transform-origin:32px 32px;opacity:0;animation:1.5s cubic-bezier(.25,.6,.3,1) infinite boot-echo}.boot-echo--second{animation-delay:.5s}.boot-echo--third{animation-delay:1s}@keyframes boot-echo{0%{opacity:.6;transform:scale(1)}75%{opacity:0}to{opacity:0;transform:scale(1.95)}}@keyframes boot-in{to{opacity:1}}.boot-noscript{color:var(--boot-muted);text-align:center;padding:40px 20px;font:14px/1.5 system-ui,sans-serif}@media (prefers-reduced-motion:reduce){.boot-loading{opacity:1;animation:none}.boot-echo{animation:none}}</style>
9
- <script type="module" crossorigin src="./assets/index-Cu7ySznN.js"></script>
9
+ <script type="module" crossorigin src="./assets/index-BkzdJo_Y.js"></script>
10
10
  <link rel="modulepreload" crossorigin href="./assets/jsx-runtime-BguD1OXD.js">
11
11
  <link rel="modulepreload" crossorigin href="./assets/react-CybPckBe.js">
12
12
  <link rel="modulepreload" crossorigin href="./assets/ScenaProvider-6A3TJumQ.js">
13
13
  <link rel="modulepreload" crossorigin href="./assets/mount-context-DZgEFVFG.js">
14
14
  <link rel="modulepreload" crossorigin href="./assets/useStore-BQkzWMs-.js">
15
- <link rel="modulepreload" crossorigin href="./assets/data-BvTv-4oH.js">
16
- <link rel="modulepreload" crossorigin href="./assets/emojis-XibTG-gy.js">
17
- <link rel="modulepreload" crossorigin href="./assets/colors-BieSUSt7.js">
18
- <link rel="modulepreload" crossorigin href="./assets/ActionList-DZ9lLGRe.js">
19
- <link rel="modulepreload" crossorigin href="./assets/terminal-BSweq0Uj.js">
20
- <link rel="modulepreload" crossorigin href="./assets/Palette-CEQLzNFd.js">
21
15
  <link rel="modulepreload" crossorigin href="./assets/styles-yrzHRgom.js">
16
+ <link rel="modulepreload" crossorigin href="./assets/_utils-DZVsX11M.js">
17
+ <link rel="modulepreload" crossorigin href="./assets/Button-_R1oktDz.js">
18
+ <link rel="modulepreload" crossorigin href="./assets/data-Fkj0LNnG.js">
19
+ <link rel="modulepreload" crossorigin href="./assets/emojis-BOylxma2.js">
20
+ <link rel="modulepreload" crossorigin href="./assets/colors-BieSUSt7.js">
21
+ <link rel="modulepreload" crossorigin href="./assets/ActionList-aOUHK9Z9.js">
22
+ <link rel="modulepreload" crossorigin href="./assets/terminal-kD0C2LuZ.js">
23
+ <link rel="modulepreload" crossorigin href="./assets/notify-Bb548jAB.js">
22
24
  <link rel="modulepreload" crossorigin href="./assets/surface-presentation-CT86pw6J.js">
23
25
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-BaNbYf_w.js">
24
26
  <link rel="modulepreload" crossorigin href="./assets/sigillum-Bev0l9LS.js">
25
- <link rel="modulepreload" crossorigin href="./assets/_utils-DZVsX11M.js">
26
- <link rel="modulepreload" crossorigin href="./assets/Button-_R1oktDz.js">
27
- <link rel="modulepreload" crossorigin href="./assets/words-CrqnRMW4.js">
28
- <link rel="stylesheet" crossorigin href="./assets/ActionList-Bawu-Lja.css">
27
+ <link rel="modulepreload" crossorigin href="./assets/words-BknpHIF3.js">
28
+ <link rel="modulepreload" crossorigin href="./assets/composer-commands-Bpp7NX4E.js">
29
+ <link rel="modulepreload" crossorigin href="./assets/state-KGSq646f.js">
30
+ <link rel="modulepreload" crossorigin href="./assets/sessions-CEccRVtA.js">
31
+ <link rel="modulepreload" crossorigin href="./assets/state-DRVsnGrf.js">
29
32
  <link rel="stylesheet" crossorigin href="./assets/Button-CRZ1_3KW.css">
30
- <link rel="stylesheet" crossorigin href="./assets/index-DgTMhxdP.css">
33
+ <link rel="stylesheet" crossorigin href="./assets/ActionList-Bawu-Lja.css">
34
+ <link rel="stylesheet" crossorigin href="./assets/index-CPXMK2aI.css">
31
35
  </head>
32
36
  <body>
33
37
  <div id="root">
package/package.json CHANGED
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "name": "@ahpd/web",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
- "packageManager": "pnpm@11.21.0",
6
5
  "description": "A web UI for an AHP server, as an ahpd plugin or on its own with ahpw serve",
7
6
  "keywords": [
8
7
  "ahp",
@@ -43,12 +42,6 @@
43
42
  "dist",
44
43
  "README.md"
45
44
  ],
46
- "scripts": {
47
- "dev": "vite",
48
- "build": "tsc -b && vite build && tsc -p tsconfig.plugin.json && tsc -p tsconfig.cli.json && chmod +x dist/cli/main.js",
49
- "typecheck": "tsc -b",
50
- "test": "vitest run"
51
- },
52
45
  "peerDependencies": {
53
46
  "@ahpd/sdk": ">=0.9"
54
47
  },
@@ -60,7 +53,7 @@
60
53
  "devDependencies": {
61
54
  "@ahpd/sdk": "^0.9.0",
62
55
  "@microsoft/agent-host-protocol": "^1.0.0",
63
- "@softov/scena": "^0.5.0",
56
+ "@softov/scena": "^0.5.1",
64
57
  "@types/node": "^22.10.2",
65
58
  "@types/react": "^19.2.18",
66
59
  "@types/react-dom": "^19.2.3",
@@ -83,5 +76,11 @@
83
76
  "@cofold/config": "^0.3.1",
84
77
  "@cofold/remote": "^0.5.0",
85
78
  "@cofold/terminal": "^0.3.0"
79
+ },
80
+ "scripts": {
81
+ "dev": "vite",
82
+ "build": "tsc -b && vite build && tsc -p tsconfig.plugin.json && tsc -p tsconfig.cli.json && chmod +x dist/cli/main.js",
83
+ "typecheck": "tsc -b",
84
+ "test": "vitest run"
86
85
  }
87
- }
86
+ }
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{r as n}from"./colors-BieSUSt7.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";var i=t(),a=e();function o(e,t){return typeof t!=`number`||Number.isNaN(t)?e.length:Math.max(0,Math.min(e.length,Math.floor(t)))}function s(e,t=[`/`,`@`],n){if(!e)return null;let r=o(e,n),i=-1;if(r<e.length&&!/\s/.test(e[r]??``))i=r;else if(r>0&&!/\s/.test(e[r-1]??``))i=r-1;else return null;let a=i;for(;a>0&&!/\s/.test(e[a-1]??``);)--a;let s=i+1;for(;s<e.length&&!/\s/.test(e[s]??``);)s+=1;let c=e.slice(a,s),l=t.find(e=>c.startsWith(e));return l?{token:c,prefix:l,query:c.slice(l.length),start:a,end:s}:null}function c(e,t,n,r=[`/`,`@`]){let i=s(e,r,t);if(!i)return{next:e,caret:o(e,t)};let a=e.slice(0,i.start),c=`${a}${n}${e.slice(i.end)}`;return n===``&&(c=c.replace(/[ \t]+$/g,``)),{next:c,caret:Math.min(a.length+n.length,c.length)}}function l(e,t,n,r=[`/`,`@`]){let i=s(e,r,t);if(i)return{next:`${e.slice(0,i.start)}${n}${e.slice(i.end)}`,caret:i.start+n.length};let a=`${e}${e.length>0&&!/\s$/.test(e)?` `:``}${n}`;return{next:a,caret:a.length}}function u(e,t){if(!t)return e;let n=Array.isArray(t)?t:[t],r=e.toLowerCase();for(let t of n){let n=t.replace(/^[/@]/,``);if(r.startsWith(n.toLowerCase()))return e.slice(n.length).replace(/^[=\s]+/,``)}return e}function d(e,t){if(!t)return!0;let n=Array.isArray(t)?t:[t],r=e.toLowerCase();return n.some(e=>r.startsWith(e.toLowerCase()))}function f(e){if(e)return Array.isArray(e)?e[0]:e}var p=180;function m({spec:e,hostCtx:t,onBack:o,dataContext:s,manageKeys:c=!0,ref:l}){let u=r(),[d,m]=(0,i.useState)(0),[h,g]=(0,i.useState)({kind:`loading`}),[_,v]=(0,i.useState)(!1),y=(0,i.useRef)(h);y.current=h;let b=(0,i.useRef)(null),x=(0,i.useMemo)(()=>({scena:u,store:u.store,surfaces:u.surfaces,commands:u.commands,events:u.events,source:`menu`,dataContext:s}),[u,s]),S=(0,i.useCallback)(e=>e.map(e=>{let t=typeof e.title==`function`?e.title(x):e.title,n=typeof e.description==`function`?e.description(x):e.description,r=e.active?!!e.active(x):void 0,i=e.disabled?!!e.disabled(x):void 0;return{key:`cmd:${e.id}`,title:t,description:n,icon:e.icon,color:e.color,shortcut:f(e.shortcut),keys:f(e.keys),category:e.category,active:r,disabled:i,invoke:t=>{let n=f(e.shortcut);n&&t.replaceActiveToken(n),u.commands.execute(e.id,void 0,{source:`menu`,dataContext:s,host:t})}}}),[u,x,s]),C=(0,i.useCallback)(e=>e.map((e,t)=>{if(`commandId`in e){let n=u.commands.get(e.commandId);if(!n)return{key:`cmd:${e.commandId}:${t}`,title:`[${e.commandId}]`,disabled:!0,invoke:()=>void 0};let r=S([n])[0],i=e.args;return{...r,key:`cmd:${e.commandId}:${t}`,invoke:e=>{u.commands.execute(n.id,i,{source:`menu`,dataContext:s,host:e})}}}return{key:`act:${t}:${e.title}`,title:e.title,description:e.description,icon:e.icon,color:e.color,shortcut:e.shortcut,keys:e.keys,group:e.group,active:e.active,disabled:e.disabled,invoke:e.onSelect}}),[u,S,s]);(0,i.useEffect)(()=>{let n=!1,r=e.extraItems?C(e.extraItems):[];if(e.items)return v(!1),g({kind:`ready`,rows:[...r,...C(e.items)]}),()=>{n=!0};if(e.query){v(!1);let t=e.query.slot,i=e.query.q,a=()=>{let e=u.commands.list({slot:t,q:i,enabled:!0});n||g({kind:`ready`,rows:[...r,...S(e)]})};a();let o=!1;function s(){o||n||(o=!0,requestAnimationFrame(()=>{o=!1,n||a()}))}let c=u.events.on(`scena:registry:changed`,e=>{let t=e.registry;(t===`commands`||t===`components`)&&s()}),l=u.events.on(`scena:store:changed`,()=>{s()});return()=>{n=!0,c.dispose(),l.dispose()}}if(e.provider){let i=e.provider,a=()=>{if(n)return;let e;try{e=i(t)}catch(e){g({kind:`error`,message:e instanceof Error?e.message:String(e)}),v(!1);return}e instanceof Promise?e.then(e=>{n||(g({kind:`ready`,rows:[...r,...C(e)]}),v(!1))}).catch(e=>{n||(g({kind:`error`,message:e instanceof Error?e.message:String(e)}),v(!1))}):(g({kind:`ready`,rows:[...r,...C(e)]}),v(!1))},o=null,s=()=>{n||(v(!0),o&&clearTimeout(o),o=setTimeout(a,p))};y.current.kind===`ready`?s():(g({kind:`loading`}),a());let c=u.events.on(`scena:store:changed`,()=>s());return()=>{n=!0,o&&clearTimeout(o),c.dispose()}}return v(!1),g({kind:`ready`,rows:r}),()=>{n=!0}},[e,t,C,S,u]);let w=(0,i.useMemo)(()=>h.kind===`ready`?h.rows.filter(e=>!e.disabled):[],[h]);(0,i.useEffect)(()=>{m(0)},[w.length]),(0,i.useEffect)(()=>{let e=b.current;if(!e)return;let t=e.querySelector(`[data-selected="true"]`);t&&t.scrollIntoView({block:`nearest`})},[d]);let T=w[d],E=(0,i.useMemo)(()=>{if(h.kind!==`ready`)return[];let t=e.groupOrder??[],n=new Map,r=[];for(let e of h.rows){let t=e.category??e.group??``;n.has(t)||(n.set(t,[]),r.includes(t)||r.push(t)),n.get(t).push(e)}return[...t.filter(e=>n.has(e)),...r.filter(e=>!t.includes(e))].map(e=>({label:e===``?null:e,rows:n.get(e)}))},[h,e.groupOrder]),D=(0,i.useCallback)(e=>{if(w.length===0&&e.key!==`Escape`&&e.key!==`ArrowLeft`)return!1;if(e.key===`ArrowDown`)return e.preventDefault(),m(e=>(e+1)%w.length),!0;if(e.key===`ArrowUp`)return e.preventDefault(),m(e=>(e-1+w.length)%w.length),!0;if(e.key===`Enter`||e.key===`Tab`){e.preventDefault();let n=w[d];return n&&n.invoke(t),!0}return e.key===`Escape`?(e.preventDefault(),t.closeMenu(),!0):e.key===`ArrowLeft`&&o?(e.preventDefault(),o(),!0):!1},[w,d,t,o]);(0,i.useEffect)(()=>{if(!c)return;function e(e){let t={key:e.key,preventDefault:()=>e.preventDefault()};D(t)}return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[D,c]),(0,i.useImperativeHandle)(l,()=>({handleKey:e=>D(e)}),[D]);let O=-1,k=e.rich===!0;function A(e){let r=!e.disabled;r&&(O+=1);let i=r&&O===d,o=O,s=e.color?{"--oo-color":n(e.color)}:void 0;return(0,a.jsxs)(`button`,{className:`oo-action-list__row`,type:`button`,disabled:e.disabled,"data-cmd-group":e.group,"data-cmd-category":e.category,"data-color":e.color,"data-active":e.active?`true`:void 0,"data-disabled":e.disabled?`true`:void 0,"data-selected":i?`true`:void 0,style:s,onMouseEnter:()=>{r&&m(o)},onClick:()=>{r&&e.invoke(t)},children:[(0,a.jsx)(`span`,{className:`oo-icon`,children:e.icon??`·`}),k?(0,a.jsxs)(`span`,{className:`oo-action-list__text`,children:[(0,a.jsx)(`span`,{className:`oo-action-list__title`,children:e.title}),e.description?(0,a.jsx)(`span`,{className:`oo-action-list__subtitle`,children:e.description}):null]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(`span`,{className:`oo-action-list__title`,children:e.title}),e.description?(0,a.jsx)(`span`,{className:`oo-action-list__description`,children:e.description}):null]}),e.active?(0,a.jsx)(`span`,{className:`oo-action-list__check`,children:`✓`}):null,e.shortcut?(0,a.jsx)(`kbd`,{className:`oo-action-list__shortcut`,children:e.shortcut}):null,e.keys?(0,a.jsx)(`kbd`,{className:`oo-action-list__shortcut`,children:e.keys}):null]},e.key)}function j(){return h.kind===`loading`?(0,a.jsx)(`div`,{className:`oo-action-list__loading`,children:`Loading…`}):h.kind===`error`?(0,a.jsx)(`div`,{className:`oo-action-list__error`,children:h.message}):E.length===0||h.rows.length===0?(0,a.jsx)(`div`,{className:`oo-action-list__empty`,children:`No matches`}):(0,a.jsx)(a.Fragment,{children:E.map((e,t)=>(0,a.jsxs)(`div`,{children:[t>0?(0,a.jsx)(`div`,{className:`oo-action-list__divider`}):null,e.label?(0,a.jsx)(`div`,{className:`oo-action-list__group-label`,children:e.label}):null,e.rows.map(A)]},e.label??`__g${t}`))})}let M=e.layout??`list`,N=M===`header-list`&&e.header,P=M===`info-list`&&e.detail;return(0,a.jsxs)(`div`,{className:`oo-action-list`,"data-layout":M,children:[_?(0,a.jsx)(`div`,{className:`oo-action-list__pending`,"aria-hidden":!0,children:`searching…`}):null,o?(0,a.jsxs)(`button`,{type:`button`,className:`oo-action-list__back`,onClick:o,children:[`← `,e.title??`Back`]}):null,e.customHeader?(0,a.jsx)(`div`,{className:`oo-action-list__custom-header`,children:e.customHeader(t)}):null,N?(0,a.jsx)(`div`,{className:`oo-action-list__header`,children:e.header(t)}):null,(0,a.jsxs)(`div`,{className:`oo-action-list__body`,children:[(0,a.jsx)(`div`,{className:`oo-action-list__items`,ref:b,children:j()}),P?(0,a.jsx)(`div`,{className:`oo-action-list__detail`,children:e.detail(t,T)}):null]}),e.footerHints?(0,a.jsxs)(`div`,{className:`oo-action-list__footer`,children:[`↑↓ navigate · ↵ select`,o?` · ← back`:``,` · ⎋ close`]}):null]})}export{l as a,s as i,f as n,u as o,c as r,d as s,m as t};
@@ -1,2 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n,u as r}from"./useStore-BQkzWMs-.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{t as a}from"./Button-_R1oktDz.js";import{g as o,w as s}from"./data-BvTv-4oH.js";import{i as c,n as l}from"./words-CrqnRMW4.js";import{t as u}from"./emojis-XibTG-gy.js";import{a as ee,i as d,n as f,o as te,r as p,s as m,t as h}from"./ActionList-DZ9lLGRe.js";import{A as g,C as _,D as v,E as y,M as b,O as x,S,T as C,_ as w,b as T,k as E,v as D,w as ne,x as O,y as re}from"./index-Cu7ySznN.js";var k=e(),A=t(),j=[`/`,`@`];function ie(e){let{input:t,setInput:n,caretIndex:r,panelDataContext:a,slashSlot:o=`chat:input/`,mentionSlot:s=`chat:input@`,mentionProvider:c,prefixes:l=j,onCaretChange:u}=e,g=i(),[_,v]=(0,A.useState)([]),y=(0,A.useRef)(_);y.current=_;let b=(0,A.useRef)(null),x=(0,A.useMemo)(()=>d(t,l,r),[t,l,r]),S=x!==null,C=(0,A.useCallback)(e=>x?.prefix===`@`?c?{provider:c,footerHints:!0,rich:!0}:{query:{slot:s,q:e},footerHints:!0,rich:!0}:{query:{slot:o,q:e},footerHints:!0,rich:!0},[x?.prefix,c,s,o]);(0,A.useEffect)(()=>{if(!x){y.current.length>0&&v([]);return}let e=y.current[y.current.length-1];if(y.current.length<=1){v([{spec:C(x.query)}]);return}let t=e&&`spec`in e?e.spec:void 0;if(t?.sentinel&&!m(x.token,t.sentinel)){v([{spec:C(x.query)}]);return}t?.query&&v(e=>{let n=e.slice(0,-1);return n.push({spec:{...t,query:{...t.query,q:x.query}}}),n})},[x,C]);let w=(0,A.useMemo)(()=>{let e=_[_.length-1];return e&&`spec`in e?e.spec.sentinel:void 0},[_]),T=(0,A.useMemo)(()=>te(x?.query??``,w),[x,w]),E=(0,A.useMemo)(()=>({pushList:e=>v(t=>[...t,{spec:e}]),replaceList:e=>v(t=>{let n=t.slice(0,-1);return n.push({spec:e}),n}),openInline:e=>v(t=>[...t,{component:(0,k.jsx)(M,{name:e})}]),openPopover:()=>void 0,back:()=>v(e=>e.length>1?e.slice(0,-1):e),closeMenu:()=>{v([]);let e=p(t,r,``,l);n(e.next),u?.(e.caret)},keepOpen:()=>void 0,insertAtCursor:e=>{let i=p(t,r,e,l);n(i.next),u?.(i.caret)},replaceActiveToken:e=>{let i=p(t,r,e,l);n(i.next),u?.(i.caret)},query:T}),[t,r,l,n,T,u]),D=_[_.length-1],ne=(0,A.useCallback)(()=>v(e=>e.slice(0,-1)),[]),O=_.length>1?ne:void 0,re=(0,A.useCallback)(e=>{if(!S)return!1;if(e.key===`Escape`)return e.preventDefault(),E.closeMenu(),!0;if(e.key===`ArrowLeft`&&O){let t=e.target;if(t.selectionStart===t.selectionEnd&&x&&t.selectionStart===x.start+x.prefix.length)return e.preventDefault(),O(),!0}return e.key===`ArrowDown`||e.key===`ArrowUp`||e.key===`Enter`||e.key===`Tab`?b.current?.handleKey(e)??!1:!1},[S,E,O,x]),ie=(0,A.useCallback)(e=>{let i=g.commands.get(e);if(!i)return null;let s=f(i.shortcut),c=null;if(s){let{next:e,caret:i}=ee(t,r,s,l);c=i,n(e),v([{spec:{query:{slot:o,q:s.replace(/^[/@]/,``)},footerHints:!0,rich:!0}}])}return g.commands.execute(e,void 0,{source:`menu`,dataContext:a,host:E}),c},[g,a,t,r,l,E,n,o]),N=(0,A.useCallback)(()=>E.closeMenu(),[E]);return{menuVisible:S,activeSentinel:w,pickerNode:D?`component`in D?D.component:(0,k.jsx)(h,{ref:b,spec:D.spec,hostCtx:E,onBack:O,dataContext:a,manageKeys:!1}):null,handleMenuKeyDown:re,openCommand:ie,closeMenu:N}}function M({name:e}){return(0,k.jsxs)(`div`,{style:{padding:12},children:[`[component: `,e,`]`]})}var N=u.caretDown;function P({label:e,title:t,onOpen:n,on:r}){return(0,k.jsxs)(`button`,{type:`button`,className:`web-chip`,"data-on":r===!0?`true`:`false`,title:t,disabled:n===void 0,onClick:n,...n===void 0?{}:{"aria-haspopup":`menu`},children:[e,n===void 0?null:(0,k.jsx)(`span`,{"aria-hidden":`true`,children:N})]})}function F({label:e,title:t,value:n,options:r,onChange:i}){let a=r.find(e=>e.value===n)?.label??n;return(0,k.jsxs)(`span`,{className:`web-chip web-chip--choice`,title:t??e,children:[`${e}: ${a===``?`default`:a}`,(0,k.jsx)(`span`,{"aria-hidden":`true`,children:N}),(0,k.jsx)(`select`,{"aria-label":e,value:n,onChange:e=>i(e.currentTarget.value),children:r.map(e=>(0,k.jsx)(`option`,{value:e.value,children:e.label},e.value))})]})}function I({label:e,title:t,value:n,onChange:r}){return(0,k.jsx)(`button`,{type:`button`,className:`web-chip`,"data-on":n?`true`:`false`,"aria-pressed":n,title:t??e,onClick:()=>r(!n),children:e})}function L({label:e,title:t,value:n,placeholder:r,onChange:i,width:a}){return(0,k.jsxs)(`span`,{className:`web-chip web-chip--text`,title:t??e,children:[e,(0,k.jsx)(`input`,{"aria-label":e,value:n,placeholder:r??``,style:{width:a??110},onChange:e=>i(e.currentTarget.value)})]})}var ae=`$/ahp/composerFocus`,R=e=>typeof e==`object`&&e?e:{},z=e=>typeof e==`string`&&e!==``?e:void 0;function oe(e){let t=R(e).items;return(Array.isArray(t)?t:[]).map(e=>{let t=R(e),n=R(R(t.attachment)._meta),r=z(t.insertText)??``;return{insert:r,label:z(n.command)??r,detail:z(n.description),hint:z(n.argumentHint)}}).filter(e=>e.insert!==``)}function se(e,t,n){return r(...n.map(n=>e.commands.register({id:`ahp.composer.host.${t}.${n.insert}`,title:n.hint===void 0?n.label:`${n.label} ${n.hint}`,...n.detail===void 0?{}:{description:n.detail},category:`Agent`,shortcut:n.label.startsWith(`/`)?n.label:`/${n.label}`,slots:[w],when:`${ae} == "${t}"`,run:e=>e.host?.replaceActiveToken(`${n.insert} `)})))}var ce=0,B=260,le=[`/`,`@`],ue=800;function de(e){e!==null&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,B)}px`)}function fe(e,t,n){return{text:e,origin:{kind:`user`},...t===void 0?{}:{model:{id:t}},...n.length===0?{}:{attachments:E(e,n)}}}var pe=(0,A.memo)(function({chatUri:e,activeId:t,activeStart:r,queued:ee,steering:d,draft:f,lastModel:te,config:p,summary:m,send:h}){let E=i(),j=(n(`$/ahp/agents`)??[]).find(e=>e.provider===m.provider),M=(0,A.useMemo)(()=>re(e),[e]),[N]=(0,A.useState)(()=>`composer-${++ce}`),F=m.workingDirectories?.[0],[I,L]=(0,A.useState)(()=>f?.text??``),[R,z]=(0,A.useState)(null),[B,pe]=(0,A.useState)(()=>f?.model?.id??te),[V,H]=(0,A.useState)(()=>f?.attachments??[]),U=(0,A.useRef)(null),W=t===void 0?void 0:{id:t,startedAt:r??``},me=ee??[];(0,A.useEffect)(()=>de(U.current),[I]);let G=(0,A.useRef)(!1);(0,A.useEffect)(()=>{if(!G.current)return;let t=window.setTimeout(()=>{let t=I.trim()===``&&V.length===0?void 0:fe(I,B,V);o(e,{type:`chat/draftChanged`,draft:t})},ue);return()=>window.clearTimeout(t)},[I,B,V,e]);let K=(0,A.useCallback)(e=>{z(e),requestAnimationFrame(()=>{let t=U.current;t!==null&&(t.focus(),t.setSelectionRange(e,e))})},[]),q=(0,A.useCallback)(e=>{G.current=!0,H(t=>t.some(t=>x(t,e))?t:[...t,e])},[]),he=(0,A.useRef)(null),ge=(0,A.useCallback)(async e=>{let t=await v(Array.from(e??[]));for(let e of t.attached)q(e);t.refused.length>0&&b(`Not attached`,{description:`Over 5 MB or unreadable: ${t.refused.join(`, `)}`})},[q]),J=(0,A.useRef)(I);J.current=I;let Y=(0,A.useRef)(R);Y.current=R;let _e=(0,A.useCallback)(async()=>{let t=J.current;try{return(await s(`completions`,{kind:`userMessage`,channel:e,text:t,offset:Y.current??t.length})).items.map(e=>{let t=y(e.attachment,F);return{title:e.insertText.replace(/^@/,``),...t===void 0?{}:{description:t},onSelect:t=>{t.replaceActiveToken(`${e.insertText} `),q(g(e.attachment,e.insertText))}}})}catch{return[]}},[e,F,q]),[ve,ye]=(0,A.useState)([]);(0,A.useEffect)(()=>{let t=!0;return s(`completions`,{kind:`userMessage`,channel:e,text:`/`,offset:1}).then(e=>{t&&ye(oe(e))}).catch(()=>{t&&ye([])}),()=>{t=!1}},[e]),(0,A.useEffect)(()=>{let e=se(E,N,ve);return()=>e.dispose()},[E,N,ve]);let X=ie({input:I,setInput:L,caretIndex:R,panelDataContext:M,slashSlot:w,prefixes:le,mentionProvider:_e,onCaretChange:K}),Z=(0,A.useMemo)(()=>Object.entries(p?.schema.properties??{}).filter(([,e])=>e.sessionMutable===!0&&e.readOnly!==!0).map(([e,t])=>({key:e,schema:t,value:p?.values[e]})),[p]),Q=(0,A.useCallback)(()=>{if(t===void 0)return;let e=Date.parse(r??``);h({type:`chat/turnCancelled`,turnId:t,duration:Number.isNaN(e)?0:Math.max(0,Date.now()-e)})},[t,r,h]),be=(0,A.useMemo)(()=>(j?.models??[]).map(e=>({id:e.id,name:e.name})),[j]),$=(0,A.useRef)(null);$.current={models:()=>be,model:()=>B,setModel:e=>{G.current=!0,pe(e)},options:()=>Z,setOption:(e,t)=>{o(m.resource,{type:`session/configChanged`,config:{[e]:t}})},running:()=>W!==void 0,stop:Q,session:()=>m.resource,attach:q,type:e=>{let t=Y.current??J.current.length,n=J.current.slice(0,t),r=e===`/`||n===``||/\s$/.test(n)?``:` `,i=e===`/`&&n.trim()===``?`/${J.current.slice(t)}`:`${n}${r}${e}${J.current.slice(t)}`,a=e===`/`&&n.trim()===``?1:n.length+r.length+1;G.current=!0,L(i),K(a)},upload:()=>he.current?.click()},(0,A.useEffect)(()=>D(M,{models:()=>$.current?.models()??[],model:()=>$.current?.model(),setModel:e=>$.current?.setModel(e),options:()=>$.current?.options()??[],setOption:(e,t)=>$.current?.setOption(e,t),running:()=>$.current?.running()??!1,stop:()=>$.current?.stop(),session:()=>$.current?.session()??``,attach:e=>$.current?.attach(e),type:e=>$.current?.type(e),upload:()=>$.current?.upload()}),[M]);let xe=Z.map(e=>e.key).join(`
2
- `);(0,A.useEffect)(()=>{let e=_(E,Z);return()=>e.dispose()},[E,xe]);function Se(e){let t=X.openCommand(e);K(t??U.current?.value.length??I.length)}function Ce(){L(``),H([]),G.current=!1,o(e,{type:`chat/draftChanged`,draft:void 0})}function we(e){let t=I.trim();if(t===``)return;let n=fe(t,B,V);h(W===void 0?{type:`chat/turnStarted`,turnId:c(),startedAt:new Date().toISOString(),message:n}:e===`steer`?{type:`chat/pendingMessageSet`,kind:`steering`,id:c(),message:n}:{type:`chat/pendingMessageSet`,kind:`queued`,id:c(),message:n}),Ce()}let Te=be.find(e=>e.id===B)?.name??B;return(0,k.jsxs)(`div`,{className:`web-composer`,children:[X.pickerNode===null?null:(0,k.jsx)(`div`,{className:`web-composer__picker`,children:X.pickerNode}),d===void 0&&me.length===0?null:(0,k.jsxs)(`ul`,{className:`web-composer__queue`,children:[d===void 0?null:(0,k.jsxs)(`li`,{children:[(0,k.jsx)(`span`,{className:`web-chip`,"data-on":`true`,children:`Steering`}),(0,k.jsx)(`span`,{className:`web-composer__queued`,children:d.message.text}),(0,k.jsx)(a,{label:`Remove`,size:`sm`,onClick:()=>h({type:`chat/pendingMessageRemoved`,kind:`steering`,id:d.id})})]}),me.map((e,t)=>(0,k.jsxs)(`li`,{children:[(0,k.jsxs)(`span`,{className:`web-chip`,children:[`Next `,t+1]}),(0,k.jsx)(`span`,{className:`web-composer__queued`,children:e.message.text}),(0,k.jsx)(a,{label:`Remove`,size:`sm`,onClick:()=>h({type:`chat/pendingMessageRemoved`,kind:`queued`,id:e.id})})]},e.id))]}),(0,k.jsxs)(`div`,{className:`web-composer__box`,children:[V.length===0?null:(0,k.jsx)(`div`,{className:`web-composer__attached`,children:V.map((e,t)=>(0,k.jsxs)(`span`,{className:`web-attachment`,title:y(e,F)??C(e),children:[(0,k.jsx)(`span`,{className:`web-attachment__icon`,"aria-hidden":`true`,children:ne(e)}),(0,k.jsx)(`span`,{className:`web-attachment__label`,children:C(e)}),(0,k.jsx)(`button`,{type:`button`,className:`web-attachment__remove`,"aria-label":`Remove ${C(e)}`,onClick:()=>{G.current=!0,H(e=>e.filter((e,n)=>n!==t))},children:u.close})]},`${C(e)}-${t}`))}),(0,k.jsx)(`div`,{className:`web-composer__bar`,children:(0,k.jsx)(`textarea`,{ref:U,className:`web-composer__text`,rows:1,value:I,"aria-label":`Message`,placeholder:W===void 0?`Message the agent, / for commands, @ to refer to a file`:`Queue a message for after this turn, or steer it`,onChange:e=>{G.current=!0,L(e.currentTarget.value),z(e.currentTarget.selectionStart)},onFocus:()=>E.store.set(ae,N),onKeyUp:e=>z(e.currentTarget.selectionStart),onClick:e=>z(e.currentTarget.selectionStart),onKeyDown:e=>{if(!X.handleMenuKeyDown(e)){if(e.key===`Escape`&&W!==void 0){e.preventDefault(),Q();return}e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),we(e.altKey?`steer`:`send`))}}})}),(0,k.jsxs)(`div`,{className:`web-composer__foot`,children:[(0,k.jsx)(`button`,{type:`button`,className:`web-composer__add`,"aria-label":`Add context`,title:`Add context`,onClick:()=>Se(`ahp.composer.attach`),children:`+`}),(0,k.jsx)(`input`,{ref:he,type:`file`,multiple:!0,hidden:!0,onChange:e=>{ge(e.currentTarget.files),e.currentTarget.value=``}}),(0,k.jsxs)(`div`,{className:`web-composer__chips`,children:[F===void 0?null:(0,k.jsx)(P,{label:`${u.folder} ${l(F)}`,title:`The folder this session works in`}),(0,k.jsx)(P,{label:`${u.agents} ${j?.displayName??m.provider}`,title:j?.description??`The agent running this session`}),be.length===0?null:(0,k.jsx)(P,{label:`Model: ${Te??`default`}`,title:`The model the next message goes to`,onOpen:()=>Se(`ahp.composer.model`)}),Z.map(e=>(0,k.jsx)(P,{label:`${e.schema.title||e.key}: ${O(e)}`,title:e.schema.description??e.schema.title,...e.schema.type===`boolean`?{on:(e.value??e.schema.default)===!0}:{},...S(e.schema)?{onOpen:()=>Se(T(e.key))}:{}},e.key))]}),W===void 0?null:(0,k.jsx)(a,{label:`Stop`,size:`sm`,onClick:Q}),W===void 0?null:(0,k.jsx)(a,{label:`Steer`,size:`sm`,disabled:I.trim()===``,onClick:()=>we(`steer`)}),(0,k.jsx)(`span`,{title:W===void 0?`Enter sends, Shift+Enter breaks the line`:`Enter queues, Alt+Enter steers, Esc stops`,children:(0,k.jsx)(a,{label:W===void 0?`Send`:`Queue`,variant:`primary`,size:`sm`,disabled:I.trim()===``,onClick:()=>we(`send`)})})]})]})]})});export{L as a,P as i,de as n,I as o,F as r,pe as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{V as r,c as i,q as a}from"./data-BvTv-4oH.js";import{n as o,t as s}from"./words-CrqnRMW4.js";import{g as c}from"./index-Cu7ySznN.js";import{a as l,i as u,r as d}from"./turn-BoF7W1h6.js";import{t as f}from"./channel-BScxZDq2.js";var p=t(),m=e();function h(){let e=n(c),t=n(i)?.find(t=>t.resource===e),h=f(t===void 0?void 0:e,a),g=f(h.state?.defaultChat??t?.defaultChat,r),_=g.state?.turns,v=(0,p.useMemo)(()=>u(_??[]),[_]);if(t===void 0)return(0,m.jsx)(`p`,{className:`web-note web-details__empty`,children:`Open a session to see its details.`});let y=t.workingDirectories?.[0],b=t.changes,x=t.origin,S=h.state?.activeClients.length??0,C=[[`Session`,t.title===``?`Untitled`:t.title],[`Agent`,t.provider]];return v.models.length>0&&C.push([`Model`,v.models.join(`, `)]),y!==void 0&&C.push([`Folder`,(0,m.jsx)(`code`,{children:o(y)},`f`)]),t.project!==void 0&&C.push([`Project`,t.project.displayName]),C.push([`Started`,l(t.createdAt)],[`Changed`,l(t.modifiedAt)]),v.turns>0&&(C.push([`Turns`,`${v.turns}${g.state?.turnsNextCursor===void 0?``:`+`}`]),C.push([`Working`,s(v.working)]),C.push([`Tokens`,`\u{2191}${d(v.input)} \u{2193}${d(v.output)}`]),v.tools>0&&C.push([`Tool calls`,String(v.tools)])),b!==void 0&&(b.additions!==void 0||b.deletions!==void 0)&&C.push([`Changes`,(0,m.jsxs)(`span`,{children:[(0,m.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,b.additions??0]}),` `,(0,m.jsxs)(`span`,{className:`web-diff--remove`,children:[`-`,b.deletions??0]}),b.files===void 0?``:` in ${b.files} files`]},`c`)]),x!==void 0&&String(x.kind)===`automation`&&C.push([`From`,`An automation run`]),S>0&&C.push([`Watching`,String(S)]),(0,m.jsx)(`dl`,{className:`web-details`,children:C.map(([e,t])=>(0,m.jsxs)(`div`,{children:[(0,m.jsx)(`dt`,{children:e}),(0,m.jsx)(`dd`,{children:t})]},e))})}export{h as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./Button-_R1oktDz.js";import{b as i}from"./data-BvTv-4oH.js";import{n as a}from"./words-CrqnRMW4.js";import{t as o}from"./Spinner-B-iOhBZq.js";import{t as s}from"./Alert-CHZkhmDE.js";import{n as c,r as l,t as u}from"./diff-eyYjrmkY.js";var d=t(),f=e(),p=async e=>e===void 0?``:(await i(e)).text;function m({file:e,before:t,after:i}){let m=n(),[h,g]=(0,d.useState)(null);(0,d.useEffect)(()=>{let e=!0;return g(null),Promise.all([p(t),p(i)]).then(([t,n])=>{e&&g({before:t,after:n})}).catch(t=>{e&&g({error:t instanceof Error?t.message:String(t)})}),()=>{e=!1}},[t,i]);let _=(0,d.useMemo)(()=>h===null||`error`in h||h.before===null||h.after===null?[]:c(h.before,h.after),[h]),v=e===void 0?``:a(e),y=u(_),b=(0,f.jsxs)(`div`,{className:`web-file__head`,children:[(0,f.jsx)(`code`,{children:v}),h!==null&&!(`error`in h)?(0,f.jsxs)(`span`,{children:[(0,f.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,y.added]}),` `,(0,f.jsxs)(`span`,{className:`web-diff--remove`,children:[`-`,y.removed]}),t===void 0?` · new file`:i===void 0?` · deleted`:``]}):null,e===void 0||i===void 0?null:(0,f.jsx)(r,{label:`Open file`,size:`sm`,onClick:()=>void m.commands.execute(`ahp.openFile`,{uri:e})})]});return h===null?(0,f.jsxs)(`div`,{className:`web-file`,children:[b,(0,f.jsx)(o,{label:`Reading both sides`})]}):`error`in h?(0,f.jsxs)(`div`,{className:`web-file`,children:[b,(0,f.jsx)(s,{tone:`danger`,title:`Not readable`,message:h.error})]}):h.before===null||h.after===null?(0,f.jsxs)(`div`,{className:`web-file`,children:[b,(0,f.jsx)(`p`,{className:`web-note`,children:`This file is not text.`})]}):_.length===0?(0,f.jsxs)(`div`,{className:`web-file`,children:[b,(0,f.jsx)(`p`,{className:`web-note`,children:`No changes.`})]}):(0,f.jsxs)(`div`,{className:`web-file`,children:[b,(0,f.jsx)(`div`,{className:`web-file__body`,children:(0,f.jsx)(`table`,{className:`web-code web-diff`,children:(0,f.jsx)(`tbody`,{children:_.map((e,t)=>[(0,f.jsx)(`tr`,{className:`web-diff__hunk`,children:(0,f.jsx)(`td`,{colSpan:3,children:l(e)})},`h${t}`),...e.lines.map((e,n)=>(0,f.jsxs)(`tr`,{"data-kind":e.kind,children:[(0,f.jsx)(`td`,{className:`web-code__number`,children:e.before??``}),(0,f.jsx)(`td`,{className:`web-code__number`,children:e.after??``}),(0,f.jsxs)(`td`,{className:`web-code__text`,children:[e.kind===`add`?`+`:e.kind===`del`?`-`:` `,e.text]})]},`${t}:${n}`))])})})})]})}export{m as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{C as i,F as a,L as o,R as s,c,g as l,r as u,w as d,z as f}from"./data-BvTv-4oH.js";import{n as p}from"./words-CrqnRMW4.js";import{t as m}from"./emojis-XibTG-gy.js";import{t as h}from"./Spinner-B-iOhBZq.js";import{t as g}from"./Alert-CHZkhmDE.js";import{N as _,g as v,j as y}from"./index-Cu7ySznN.js";import{t as b}from"./ExplorerList-Cecr_ZQS.js";var x=t(),S=[{id:`none`,label:`No groups`},{id:`folder`,label:`Group by folder`},{id:`status`,label:`Group by status`},{id:`agent`,label:`Group by agent`}],C=[{key:`input`,label:`Needs you`},{key:`running`,label:`Running`},{key:`error`,label:`Failed`},{key:`unread`,label:`Unread`},{key:`idle`,label:`Idle`},{key:`archived`,label:`Archived`}];function w(e){if(s(e.status))return C[5];let t=o(e.status);return t===`idle`&&!f(e.status)?C[3]:C.find(e=>e.key===t)}function T(e,t,n){switch(t){case`none`:return;case`status`:return w(e);case`agent`:return{key:e.provider,label:n(e.provider)};case`folder`:{let t=e.workingDirectories?.[0];return t===void 0?{key:``,label:`No folder`}:{key:t,label:p(t)}}}}function E(e,t,n){if(n===`none`)return[...e];let r=new Map;n===`status`&&C.forEach((e,t)=>r.set(e.key,t));for(let n of e){let e=t(n)?.key??``;r.has(e)||r.set(e,r.size+C.length)}return e.map((e,n)=>({item:e,index:n,rank:r.get(t(e)?.key??``)})).sort((e,t)=>e.rank-t.rank||e.index-t.index).map(e=>e.item)}var D=e(),O=`ahpd-web.session-grouping`;function k(){try{let e=localStorage.getItem(O);return S.some(t=>t.id===e)?e:`none`}catch{return`none`}}function A(e){try{localStorage.setItem(O,e)}catch{}}var j=new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`}),M=new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`});function N(e,t=new Date){let n=new Date(e);return Number.isNaN(n.getTime())?``:(n.toDateString()===t.toDateString()?j:M).format(n)}var P={input:`attention`,running:`working`,error:`failed`,idle:`quiet`},F=e=>p(e).replace(/\/+$/,``).split(`/`).pop()??e;function I(e,t){let n=f(e.status),r=s(e.status),i=t=>l(e.resource,t);return[{title:`Open`,onSelect:e=>{e.closeMenu(),t()}},{title:`Rename`,onSelect:t=>{t.closeMenu();let n=window.prompt(`Rename the session`,e.title)?.trim();n!==void 0&&n!==``&&n!==e.title&&i({type:`session/titleChanged`,title:n})}},{title:n?`Mark as unread`:`Mark as read`,onSelect:e=>{e.closeMenu(),i({type:`session/isReadChanged`,isRead:!n})}},{title:r?`Unarchive`:`Archive`,onSelect:e=>{e.closeMenu(),i({type:`session/isArchivedChanged`,isArchived:!r})}},{title:`Copy link`,group:`more`,onSelect:t=>{t.closeMenu(),navigator.clipboard?.writeText(e.resource).catch(()=>void 0)}},{title:`Delete`,group:`more`,color:`red`,onSelect:t=>{t.closeMenu(),_({title:`Delete "${e.title||`Untitled`}"?`,body:`Its history goes with it.`,confirmLabel:`Delete`,tone:`danger`}).then(t=>{t&&d(`disposeSession`,{channel:e.resource}).catch(e=>y(`The session could not be deleted`,e))})}}]}function L(){let e=r(),t=n(u),l=n(c),d=n(`$/ahp/agents`)??[],p=n(v),[_,y]=(0,x.useState)(!1),[C,w]=(0,x.useState)(k),O=e=>{w(e),A(e)},[j,M]=(0,x.useState)(!1),L=t=>void e.commands.execute(`ahp.openSession`,{resource:t}),R=(0,x.useMemo)(()=>{let e=e=>d.find(t=>t.provider===e)?.displayName??e;return E((l??[]).filter(e=>_||!s(e.status)),t=>T(t,C,e),C).map(t=>{let n=o(t.status),r=n===`idle`&&!f(t.status),i=e(t.provider),c=T(t,C,e),l=t.workingDirectories?.[0],u=[i,l===void 0?void 0:F(l)].filter(e=>e!==void 0).join(` · `),d=t.changes,p=n===`idle`?d!==void 0&&(d.additions??0)+(d.deletions??0)>0?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,d.additions??0]}),` `,(0,D.jsxs)(`span`,{className:`web-diff--remove`,children:[`-`,d.deletions??0]}),d.files===void 0?``:` \u{00B7} ${d.files} files`]}):void 0:`${a[n]}${t.activity===void 0||t.activity===``?``:` \u{00B7} ${t.activity}`}`;return{key:t.resource,dot:s(t.status)?`off`:r?`fresh`:P[n],dotLabel:s(t.status)?`Archived`:r?`Unread`:a[n],title:t.title===``?`Untitled`:t.title,time:N(t.modifiedAt),lines:p===void 0?[u]:[u,p],menu:I(t,()=>L(t.resource)),strong:r,...c===void 0?{}:{group:c}}})},[l,d,_,C]),z=()=>{M(!0),i().catch(()=>void 0).finally(()=>M(!1))},B=t?.status===`failed`?(0,D.jsx)(g,{tone:`danger`,title:`Not connected`,message:t.error??`The daemon refused the connection.`}):t?.status!==`connected`&&l===void 0?(0,D.jsx)(h,{label:`Connecting to the daemon`}):R.length===0?(0,D.jsx)(`p`,{className:`web-note`,children:_?`No sessions.`:`No sessions yet.`}):null;return(0,D.jsx)(b,{title:`Sessions`,actions:[{icon:`+`,label:`New session`,run:()=>void e.commands.execute(`ahp.newSession`)},{icon:m.reload,label:j?`Reloading`:`Reload`,run:z,busy:j},{icon:m.archived,label:_?`Hide archived`:`Show archived`,run:()=>y(!_),on:_},{icon:m.group,label:`Group sessions`,on:C!==`none`,menu:S.map(e=>({title:e.label,...e.id===C?{description:`Current`}:{},onSelect:t=>{t.closeMenu(),O(e.id)}}))}],rows:R,selected:p??null,onOpen:L,notice:B,filterLabel:`Filter sessions`})}export{L as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{J as a,S as o,c as s,g as c,q as l,w as u}from"./data-BvTv-4oH.js";import{a as d,n as f}from"./words-CrqnRMW4.js";import{t as p}from"./emojis-XibTG-gy.js";import{t as m}from"./Spinner-B-iOhBZq.js";import{t as h}from"./Alert-CHZkhmDE.js";import{N as g,g as _,n as v,t as y}from"./index-Cu7ySznN.js";import{t as b}from"./ExplorerList-Cecr_ZQS.js";import{t as x}from"./channel-BScxZDq2.js";var S=t();function C(e){return(e??[]).filter(e=>!e.uriTemplate.includes(`{`)).map(e=>({label:e.label,uri:e.uriTemplate,kind:String(e.changeKind),...e.description===void 0?{}:{description:e.description},review:e.capabilities?.review!==void 0}))}var w=e=>e.find(e=>e.kind===`session`)??e[0];function T(e){let{before:t,after:n,diff:r}=e.edit,i=n?.uri??t?.uri??e.id,a=f(i),o=a.lastIndexOf(`/`);return{id:e.id,file:i,name:o<0?a:a.slice(o+1),dir:o<0?``:a.slice(0,o),status:t===void 0?`added`:n===void 0?`deleted`:`modified`,...r?.added===void 0?{}:{added:r.added},...r?.removed===void 0?{}:{removed:r.removed},reviewed:e.reviewed===!0,...t?.content.uri===void 0?{}:{before:t.content.uri},...n?.content.uri===void 0?{}:{after:n.content.uri}}}function E(e,t){if(t===null)return e;let n=f(t).replace(/\/+$/,``);return e===n?`.`:e.startsWith(`${n}/`)?e.slice(n.length+1):e}var D=e(),O={added:`ok`,modified:`fresh`,deleted:`failed`},k={added:`Added`,modified:`Changed`,deleted:`Deleted`},A=(e,t)=>e.scopes.map(String).includes(t);function j(){let e=r(),t=n(_),f=n(s)?.find(e=>e.resource===t),j=x(t,l),M=(0,S.useMemo)(()=>C(j.state?.changesets),[j.state?.changesets]),[N,P]=(0,S.useState)(void 0),F=M.find(e=>e.uri===N)??w(M),I=x(F?.uri,a),[L,R]=(0,S.useState)(null),z=f?.workingDirectories?.[0]??null;(0,S.useEffect)(()=>R(null),[F?.uri]);let B=async(t,n)=>{if(F===void 0)return;let r=d(t.confirmation);(r===``||await g({title:r,confirmLabel:t.label}))&&(R(null),u(`invokeChangesetOperation`,{channel:F.uri,operationId:t.id,...n===void 0?{}:{target:{kind:`resource`,resource:n.file}}}).then(t=>{let n=t;n?.message!==void 0&&R({tone:`info`,text:d(n.message)}),n?.followUp?.external===void 0?n?.followUp?.content!==void 0&&e.commands.execute(`ahp.openFile`,{uri:n.followUp.content.uri}):window.open(n.followUp.external,`_blank`,`noopener`)}).catch(e=>R({tone:`danger`,text:e instanceof Error?e.message:String(e)})))},V=t=>void e.commands.execute(`ahp.openDiff`,{file:t.file,...t.before===void 0?{}:{before:t.before},...t.after===void 0?{}:{after:t.after}}),H=(0,S.useMemo)(()=>(I.state?.files??[]).map(T),[I.state?.files]),U=I.state?.operations??[],W=(0,S.useMemo)(()=>H.map(t=>{let n=[{title:`Open change`,onSelect:e=>{e.closeMenu(),V(t)}}];t.status!==`deleted`&&(n.push({title:`Open file`,onSelect:n=>{n.closeMenu(),e.commands.execute(`ahp.openFile`,{uri:t.file})}}),n.push(...y(e,t.file,v(e,t.file)[0]?.component??null))),F?.review===!0&&n.push({title:t.reviewed?`Mark as not reviewed`:`Mark as reviewed`,onSelect:e=>{e.closeMenu(),F!==void 0&&c(F.uri,{type:`changeset/filesReviewChanged`,files:[t.id],reviewed:!t.reviewed})}});for(let e of U.filter(e=>A(e,`resource`)))n.push({title:e.label,group:`file`,...e.description===void 0?{}:{description:e.description},onSelect:n=>{n.closeMenu(),B(e,t)}});let r=t.added===void 0&&t.removed===void 0?k[t.status]:(0,D.jsxs)(D.Fragment,{children:[k[t.status],` `,(0,D.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,t.added??0]}),` `,(0,D.jsxs)(`span`,{className:`web-diff--remove`,children:[`-`,t.removed??0]})]});return{key:t.id,dot:t.reviewed?`off`:O[t.status],dotLabel:t.reviewed?`${k[t.status]}, reviewed`:k[t.status],title:t.name,lines:[E(t.dir,z),r],menu:n,strong:!t.reviewed}}),[H,U,F?.uri,F?.review,z]),G=String(I.state?.status??``),K=U.filter(e=>A(e,`changeset`)),q=(0,D.jsxs)(D.Fragment,{children:[t===void 0?(0,D.jsx)(`p`,{className:`web-note web-explorer__empty`,children:`Open a session to see what it changed.`}):null,t!==void 0&&j.state!==void 0&&M.length===0?(0,D.jsx)(`p`,{className:`web-note web-explorer__empty`,children:`This session tracks no changes.`}):null,M.length>1?(0,D.jsx)(`select`,{className:`web-explorer__filter web-changes__scope`,"aria-label":`Which changes`,value:F?.uri??``,onChange:e=>P(e.target.value),children:M.map(e=>(0,D.jsx)(`option`,{value:e.uri,children:e.label},e.uri))}):null,K.length===0?null:(0,D.jsx)(`div`,{className:`web-changes__ops`,children:K.map(e=>(0,D.jsx)(i,{label:String(e.status)===`running`?`${e.label}\u{2026}`:e.label,size:`sm`,disabled:String(e.status)===`running`,onClick:()=>void B(e)},e.id))}),L===null?null:(0,D.jsx)(h,{tone:L.tone,message:L.text}),I.error===null?null:(0,D.jsx)(h,{tone:`danger`,title:`Changes not readable`,message:I.error}),I.state?.error===void 0?null:(0,D.jsx)(h,{tone:`danger`,message:I.state.error.message}),F!==void 0&&(I.state===void 0||G===`computing`)&&I.error===null?(0,D.jsx)(m,{label:`Working out the changes`}):null,I.state!==void 0&&G!==`computing`&&H.length===0?(0,D.jsx)(`p`,{className:`web-note web-explorer__empty`,children:`No changes.`}):null]});return(0,D.jsx)(b,{title:f===void 0?`Changes`:`Changes \u{00B7} ${f.title||`Untitled`}`,actions:F===void 0?[]:[{icon:p.reload,label:`Reload`,run:()=>void o(F.uri)}],rows:W,selected:null,onOpen:e=>{let t=H.find(t=>t.id===e);t!==void 0&&V(t)},notice:q,filterLabel:`Filter files`})}export{j as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{G as i,S as a,d as o,n as s}from"./data-BvTv-4oH.js";import{t as c}from"./emojis-XibTG-gy.js";import{t as l}from"./Spinner-B-iOhBZq.js";import{t as u}from"./Alert-CHZkhmDE.js";import{c as d,d as f,f as p,j as m,l as h,p as g,s as _}from"./index-Cu7ySznN.js";import{t as v}from"./ExplorerList-Cecr_ZQS.js";import{t as y}from"./channel-BScxZDq2.js";import{i as b,n as x}from"./actions-DTKyI167.js";var S=t(),C=e(),w={running:`working`,failed:`failed`,on:`ok`,off:`off`},T={running:`Running`,failed:`Last run failed`,on:`On`,off:`Off`},E={pending:`waiting`,running:`running`,completed:`done`,failed:`failed`,cancelled:`stopped`},D=new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}),O=e=>{if(e===void 0)return``;let t=new Date(e);return Number.isNaN(t.getTime())?``:D.format(t)},k=e=>m(`The automation could not run`,e);function A(){let e=r(),{state:t,error:m}=y(o,i),D=n(s),A=n(g),j=t=>void e.commands.execute(`ahp.openAutomation`,{resource:t}),M=t=>void e.commands.execute(`ahp.editAutomation`,{resource:t}),N=(0,S.useMemo)(()=>[...t?.entries??[]].sort((e,t)=>f(e).localeCompare(f(t))).map(e=>{let t=h(e),n=d(e)[0],r=n===void 0?void 0:_(n),i=e.definition.session.provider,a=e.runCount??e.runs.length;return{key:e.resource,dot:w[t],dotLabel:T[t],title:f(e),...e.nextRunAt===void 0||!e.definition.enabled?{}:{time:O(e.nextRunAt)},lines:[[p(e),i].filter(e=>e!==void 0).join(` · `),r===void 0?`Never run`:`${a} ${a===1?`run`:`runs`} \u{00B7} last ${E[r.status]??r.status} ${O(r.at)}`],menu:x(e,()=>j(e.resource),()=>M(e.resource)),...e.operations.map(String).includes(`run`)?{action:{icon:c.run,label:`Run now`,run:()=>void b(e).catch(k)}}:{}}}),[t]),P=m===null?t===void 0?(0,C.jsx)(l,{label:`Reading the automations`}):N.length===0?(0,C.jsx)(`p`,{className:`web-note web-explorer__empty`,children:`No automations yet.`}):null:(0,C.jsx)(u,{tone:`danger`,title:`No automations`,message:m});return(0,C.jsx)(v,{title:`Automations`,actions:[...D?.create===void 0?[]:[{icon:`+`,label:`New automation`,run:()=>void e.commands.execute(`ahp.newAutomation`)}],{icon:c.reload,label:`Reload`,run:()=>void a(o)}],rows:N,selected:A??null,onOpen:j,notice:P,filterLabel:`Filter automations`})}export{A as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./Spinner-B-iOhBZq.js";import{t as i}from"./Markdown-BaxWPZc1.js";import{t as a}from"./Alert-CHZkhmDE.js";import{n as o,t as s}from"./text-DJDdwKmv.js";import{n as c}from"./link-DK7OzQXZ.js";t();var l=e(),u=e=>e.replace(/\/[^/]*$/,``);function d({uri:e}){let t=n(),d=o(e);if(e===void 0)return(0,l.jsx)(a,{tone:`warning`,message:`No file was named.`});let f=(0,l.jsx)(s,{uri:e});return d===null?(0,l.jsxs)(`div`,{className:`web-file`,children:[f,(0,l.jsx)(r,{label:`Reading the file`})]}):`error`in d?(0,l.jsxs)(`div`,{className:`web-file`,children:[f,(0,l.jsx)(a,{tone:`danger`,title:`Not readable`,message:d.error})]}):d.text===null?(0,l.jsxs)(`div`,{className:`web-file`,children:[f,(0,l.jsx)(`p`,{className:`web-note`,children:`This file is not text.`})]}):(0,l.jsxs)(`div`,{className:`web-file`,children:[f,(0,l.jsx)(`div`,{className:`web-file__body`,children:(0,l.jsx)(`div`,{className:`web-file__doc`,onClick:n=>{let r=n.target.closest(`a`);if(r===null)return;let i=r.getAttribute(`href`)??``;if(i.startsWith(`#`))return;n.preventDefault();let a=c(i,u(e));a===null?/^(https?|mailto):/i.test(i)&&window.open(i,`_blank`,`noopener`):t.commands.execute(`ahp.openFile`,{uri:a.uri,line:a.line,end:a.end})},children:(0,l.jsx)(i,{text:d.text})})})]})}export{d as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{o as n}from"./mount-context-DZgEFVFG.js";import{r}from"./Icon-CIQ7doud.js";var i=e(),a=t();function o({open:e,defaultOpen:t,title:o,child:s,children:c,onClose:l,dismissable:u=!0}){let d=n(`open`),[f,p]=(0,a.useState)(e??t??!1);(0,a.useEffect)(()=>{e!==void 0&&p(t=>t===e?t:e)},[e]);function m(){u&&(p(!1),d(!1),l?.())}if(!f)return null;let h=s??c;return(0,i.jsx)(`div`,{onClick:m,style:{position:`fixed`,inset:0,background:`rgba(0,0,0,0.4)`,display:`flex`,alignItems:`center`,justifyContent:`center`,zIndex:2e3},children:(0,i.jsxs)(`div`,{onClick:e=>e.stopPropagation(),style:{background:`var(--oo-color-canvas, #fff)`,color:`inherit`,border:`1px solid var(--oo-color-border)`,borderRadius:`var(--oo-radius-sm, 4px)`,padding:16,minWidth:320,maxWidth:`80vw`,maxHeight:`80vh`,overflow:`auto`},children:[o?(0,i.jsxs)(`div`,{style:{fontWeight:600,marginBottom:8,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,i.jsx)(`span`,{children:o}),u?(0,i.jsx)(`button`,{type:`button`,onClick:m,style:{background:`transparent`,border:`none`,cursor:`pointer`,font:`inherit`,color:`inherit`},"aria-label":`Close`,children:r.closePanel}):null]}):null,h]})})}export{o as Modal};
@@ -1,2 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{F as a,I as o,L as s,V as c,c as l,g as u,q as d,v as f,w as p,z as m}from"./data-BvTv-4oH.js";import{a as h,n as g,t as _}from"./words-CrqnRMW4.js";import{t as v}from"./emojis-XibTG-gy.js";import{t as y}from"./Badge-BDEW5PFb.js";import{t as b}from"./Spinner-B-iOhBZq.js";import{t as x}from"./Markdown-BaxWPZc1.js";import{t as S}from"./Alert-CHZkhmDE.js";import{t as ee}from"./Composer-C54KOyHb.js";import{t as te}from"./Text-MPtQvYE-.js";import{T as C,g as ne,w}from"./index-Cu7ySznN.js";import{a as T,n as E,r as D,t as O}from"./turn-BoF7W1h6.js";import{t as k}from"./channel-BScxZDq2.js";import{n as A,t as j}from"./link-DK7OzQXZ.js";var M=t(),N=(0,M.createContext)(null),P={picked:[],text:``,other:!1};function F(e){return String(e.kind)===`boolean`?[{id:`yes`,label:`Yes`},{id:`no`,label:`No`}]:`options`in e?e.options:[]}function re(e){let t=String(e.kind);return t===`single-select`||t===`multi-select`||t===`boolean`}function I(e){return`allowFreeformInput`in e&&e.allowFreeformInput===!0}function ie(e,t){let n=String(e.kind),r=t.other?t.text.trim():``,i=e=>({state:`submitted`,value:e});if(n===`text`)return t.text.trim()===``?void 0:i({kind:`text`,value:t.text});if(n===`number`||n===`integer`){let e=Number(t.text);return t.text.trim()===``||Number.isNaN(e)?void 0:i({kind:`number`,value:e})}if(n===`boolean`)return t.picked[0]===void 0?void 0:i({kind:`boolean`,value:t.picked[0]===`yes`});if(n===`multi-select`)return t.picked.length===0&&r===``?void 0:i({kind:`selected-many`,value:t.picked,...r===``?{}:{freeformValues:[r]}});let a=t.picked[0];return a===void 0?r===``?void 0:i({kind:`text`,value:r}):i({kind:`selected`,value:a,...r===``?{}:{freeformValues:[r]}})}function ae(e){let t=e?.value;if(t===void 0)return P;let n=t.freeformValues?.[0],r=e=>n===void 0?e:{...e,text:n,other:!0};switch(t.kind){case`text`:return{picked:[],text:String(t.value??``),other:!0};case`number`:return{...P,text:String(t.value??``)};case`boolean`:return{...P,picked:[t.value===!0?`yes`:`no`]};case`selected`:return r({...P,picked:[String(t.value)]});case`selected-many`:return r({...P,picked:Array.isArray(t.value)?t.value.map(String):[]});default:return P}}function oe(e,t){let n=t?.value;if(n===void 0)return`Skipped`;let r=t=>F(e).find(e=>e.id===t)?.label??t,i=n.freeformValues??[];switch(n.kind){case`boolean`:return n.value===!0?`Yes`:`No`;case`selected`:return[r(String(n.value)),...i].join(`, `);case`selected-many`:return[...Array.isArray(n.value)?n.value.map(e=>r(String(e))):[],...i].join(`, `);default:return String(n.value??``)}}var L=e(),R=new Map,se=`The agent has a question`;function ce(e){let t=String(e.kind),n=[];return t===`single-select`&&n.push(`Pick one`),t===`multi-select`&&n.push(`Pick any`),t===`text`&&n.push(`Type an answer`),(t===`number`||t===`integer`)&&n.push(`Type a number`),I(e)&&n.push(`or write your own`),`${n.join(`, `)}${e.required===!0?``:` (optional)`}`}function le({question:e,draft:t,set:n,next:r}){let i=String(e.kind),a=i===`multi-select`,o=e=>{n(a?{...t,picked:t.picked.includes(e)?t.picked.filter(t=>t!==e):[...t.picked,e]}:{...t,picked:[e],other:!1})},s=e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),r())};return re(e)?(0,L.jsxs)(`div`,{className:`web-ask__options`,role:a?`group`:`radiogroup`,children:[F(e).map((e,n)=>{let r=t.picked.includes(e.id);return(0,L.jsxs)(`button`,{type:`button`,className:`web-ask__option`,role:a?`checkbox`:`radio`,"aria-checked":r,"data-on":r,onClick:()=>o(e.id),children:[(0,L.jsx)(`span`,{className:`web-ask__mark`,"data-many":a,"aria-hidden":`true`}),(0,L.jsxs)(`span`,{className:`web-ask__option-body`,children:[(0,L.jsxs)(`span`,{className:`web-ask__option-label`,children:[(0,L.jsx)(`span`,{className:`web-ask__key`,children:n+1}),e.label,e.recommended===!0?(0,L.jsx)(`span`,{className:`web-ask__tag`,children:`Recommended`}):null]}),e.description===void 0?null:(0,L.jsx)(`span`,{className:`web-ask__option-hint`,children:e.description})]})]},e.id)}),I(e)?(0,L.jsxs)(`div`,{className:`web-ask__option web-ask__other`,"data-on":t.other,children:[(0,L.jsx)(`button`,{type:`button`,className:`web-ask__mark`,"data-many":a,role:a?`checkbox`:`radio`,"aria-checked":t.other,"aria-label":`Other`,onClick:()=>n({...t,other:!t.other||!a,...a?{}:{picked:[]}})}),(0,L.jsx)(`input`,{className:`web-field`,value:t.text,placeholder:`Other: write your own answer`,onFocus:()=>{t.other||n({...t,other:!0,...a?{}:{picked:[]}})},onChange:e=>n({...t,text:e.target.value,other:!0,...a?{}:{picked:[]}}),onKeyDown:s})]}):null]}):i===`number`||i===`integer`?(0,L.jsx)(`input`,{className:`web-field`,type:`number`,autoFocus:!0,value:t.text,onChange:e=>n({...t,text:e.target.value}),onKeyDown:s}):(0,L.jsx)(`textarea`,{className:`web-field web-ask__text`,rows:3,autoFocus:!0,value:t.text,placeholder:`Your answer`,onChange:e=>n({...t,text:e.target.value}),onKeyDown:s})}function z({request:e,send:t,live:n,response:r}){let a=e.questions??[],[o,s]=(0,M.useState)(()=>Object.fromEntries(a.map(t=>[t.id,ae(e.answers?.[t.id])]))),[c,l]=(0,M.useState)(0),[u,d]=(0,M.useState)(()=>R.get(e.id)??null),f=Object.fromEntries(a.flatMap(e=>{let t=ie(e,o[e.id]??P);return t===void 0?[]:[[e.id,t]]})),p=a.filter(e=>e.required===!0&&f[e.id]===void 0),m=e.message!==void 0&&e.message!==se?e.message:void 0,h=n=>{let r={response:n,answers:n===`accept`?f:{}};R.set(e.id,r),d(r),t({type:`chat/inputCompleted`,requestId:e.id,response:n,...n===`accept`&&Object.keys(f).length>0?{answers:f}:{}})},g=r??u?.response;if(g!==void 0||!n){let t=u?.answers??e.answers??{};return(0,L.jsxs)(`div`,{className:`web-ask`,"data-done":`true`,children:[(0,L.jsxs)(`div`,{className:`web-ask__head`,children:[(0,L.jsx)(`span`,{className:`web-ask__title`,children:g===`decline`?`Question declined`:g===void 0?`Question not answered`:`Question answered`}),u!==null&&r===void 0&&n?(0,L.jsx)(`span`,{className:`web-note`,children:`Sending to the agent`}):null]}),g===`accept`?(0,L.jsx)(`dl`,{className:`web-ask__summary`,children:a.map(e=>(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:e.title??e.message}),(0,L.jsx)(`dd`,{children:oe(e,t[e.id])})]},e.id))}):null]})}let _=a[c],v=c>=a.length-1,y=_===void 0?void 0:f[_.id],b=_!==void 0&&_.required===!0&&y===void 0,S=()=>{b||(v?p.length===0&&h(`accept`):l(c+1))};return(0,L.jsxs)(`div`,{className:`web-ask`,tabIndex:-1,onKeyDown:e=>{let t=e.target;if(_===void 0||t.closest(`input, textarea`)!==null||!/^[1-9]$/.test(e.key))return;let n=F(_)[Number(e.key)-1];if(n===void 0)return;let r=o[_.id]??P,i=String(_.kind)===`multi-select`,a=i?r.picked.includes(n.id)?r.picked.filter(e=>e!==n.id):[...r.picked,n.id]:[n.id];s({...o,[_.id]:{...r,picked:a,...i?{}:{other:!1}}})},children:[(0,L.jsxs)(`div`,{className:`web-ask__head`,children:[(0,L.jsxs)(`span`,{className:`web-ask__title`,children:[(0,L.jsx)(`span`,{className:`web-ask__icon`,"aria-hidden":`true`,children:`?`}),m===void 0?`The agent asks`:`The agent asks:`]}),a.length>1?(0,L.jsxs)(`span`,{className:`web-ask__steps`,"aria-label":`Question ${c+1} of ${a.length}`,children:[a.map((e,t)=>(0,L.jsx)(`button`,{type:`button`,className:`web-ask__step`,"data-here":t===c,"data-done":f[e.id]!==void 0,title:e.title??e.message,onClick:()=>l(t)},e.id)),(0,L.jsxs)(`span`,{className:`web-ask__count`,children:[c+1,` of `,a.length]})]}):null]}),m===void 0?null:(0,L.jsx)(`div`,{className:`web-ask__message`,children:(0,L.jsx)(x,{text:m})}),e.url===void 0?null:(0,L.jsx)(`a`,{className:`web-link`,href:e.url,target:`_blank`,rel:`noreferrer`,children:e.url}),_===void 0?null:(0,L.jsxs)(`section`,{className:`web-ask__question`,children:[_.title===void 0?null:(0,L.jsx)(`span`,{className:`web-ask__chip`,children:_.title}),(0,L.jsx)(`div`,{className:`web-ask__text-line`,children:_.message}),(0,L.jsx)(`div`,{className:`web-ask__hint`,children:ce(_)}),(0,L.jsx)(le,{question:_,draft:o[_.id]??P,set:e=>s({...o,[_.id]:e}),next:S})]},_.id),(0,L.jsxs)(`div`,{className:`web-ask__actions`,children:[(0,L.jsx)(i,{label:`Decline`,size:`sm`,onClick:()=>h(`decline`)}),(0,L.jsx)(`span`,{className:`web-ask__spacer`}),c>0?(0,L.jsx)(i,{label:`Back`,size:`sm`,onClick:()=>l(c-1)}):null,v?(0,L.jsx)(i,{label:`Answer`,variant:`primary`,size:`sm`,disabled:p.length>0,onClick:()=>h(`accept`)}):(0,L.jsx)(i,{label:`Next`,variant:`primary`,size:`sm`,disabled:b,onClick:S})]}),v&&p.length>0&&!b?(0,L.jsx)(`p`,{className:`web-note`,children:p.length===1?`One question still needs an answer.`:`${p.length} questions still need an answer.`}):null]})}var ue=[`command`,`file_path`,`path`,`pattern`,`query`,`url`,`description`],de=`ahpd.startedAt`,fe=`ahpd.durationMs`;function B(e){let t=`toolInput`in e?e.toolInput:void 0;if(typeof t==`string`&&t.trim()!==``)try{return JSON.parse(t)}catch{return t}}function pe(e){let t=B(e);return t===void 0?``:typeof t==`string`?t:JSON.stringify(t,null,2)}function me(e){let t=B(e);if(typeof t!=`object`||!t)return``;let n=t;for(let e of ue){let t=n[e];if(typeof t==`string`&&t.trim()!==``)return t.trim().split(`
2
- `)[0]}return``}function he(e){let t=B(e);if(typeof t!=`object`||!t)return;let n=t;for(let e of[`file_path`,`notebook_path`,`path`]){let t=n[e];if(typeof t==`string`&&t.startsWith(`/`))return`file://${t}`}}function ge(e){let t=(e.status===`completed`||e.status===`pending-result-confirmation`?h(e.pastTenseMessage):``)||h(`invocationMessage`in e?e.invocationMessage:void 0)||e.intention||``,n=e.displayName||e.toolName;if(t!==``&&t!==n&&t!==e.toolName)return t;let r=me(e);return r===``?n:`${n} ${r}`}function V(e){let t=e._meta?.[fe];return typeof t==`number`?t:void 0}function _e(e){let t=e._meta?.[de];if(typeof t!=`string`)return;let n=Date.parse(t);return Number.isNaN(n)?void 0:n}var ve={Bash:`terminal`,terminal:`terminal`,shell:`terminal`,Read:`read`,read_file:`read`,NotebookRead:`read`,Glob:`search`,Grep:`search`,WebSearch:`search`,search:`search`,Edit:`edit`,MultiEdit:`edit`,Write:`edit`,NotebookEdit:`edit`,write_file:`edit`,edit_file:`edit`,Task:`subagent`,Agent:`subagent`,WebFetch:`web`,fetch:`web`};function ye(e){let t=e._meta?.toolKind;if(t===`terminal`||t===`read`||t===`search`||t===`subagent`)return t;let n=ve[e.toolName];if(n!==void 0)return n;let r=`content`in e&&Array.isArray(e.content)?e.content:[];return r.some(e=>e.type===`fileEdit`)?`edit`:r.some(e=>e.type===`terminal`)?`terminal`:`other`}function be(e){switch(e.status){case`streaming`:return`preparing`;case`pending-confirmation`:return`approval`;case`running`:return`running`;case`auth-required`:return`sign-in`;case`pending-result-confirmation`:return`review`;case`completed`:return e.success?`done`:`failed`;case`cancelled`:return`cancelled`;default:return`running`}}var xe=e=>e.replace(/\u001b\[[0-9;?]*[ -/]*[@-~]/g,``);function Se(e){let t=`content`in e&&Array.isArray(e.content)?e.content:[],n=[];for(let e of t){let t=String(e.type??``);if(t===`text`&&typeof e.text==`string`&&e.text!==``)n.push({kind:`text`,text:e.text});else if(t===`terminal`){let t=e.result;n.push({kind:`terminal`,title:String(e.title??`Terminal`),text:xe(t?.preview??``),...t?.exitCode===void 0?{}:{exitCode:t.exitCode},truncated:t?.truncated===!0})}else if(t===`fileEdit`){let t=e.before,r=e.after,i=r?.uri??t?.uri??``,a=e.diff;n.push({kind:`file`,path:g(i),file:i,...t?.content?.uri===void 0?{}:{before:t.content.uri},...r?.content?.uri===void 0?{}:{after:r.content.uri},...a?.added===void 0?{}:{added:a.added},...a?.removed===void 0?{}:{removed:a.removed}})}else t===`subagent`?n.push({kind:`note`,text:`Ran ${String(e.agentName??e.title??`a subagent`)}`}):t===`resource`&&n.push({kind:`note`,text:`Read ${g(String(e.uri??``))}`})}if(e.status===`completed`||e.status===`pending-result-confirmation`){let t=e.error?.message.trim(),r=n.some(e=>(e.kind===`text`||e.kind===`terminal`)&&t!==void 0&&e.text.includes(t));t!==void 0&&t!==``&&!r&&n.push({kind:`note`,text:t})}if(e.status===`cancelled`){let t=h(e.reasonMessage)||{denied:`Denied.`,skipped:`Skipped.`,"result-denied":`Result rejected.`}[String(e.reason)]||`Cancelled.`;n.push({kind:`note`,text:t})}return n}var Ce=/\[([^\]]+)\]\(([^)\s]+)\)|`([^`]+)`/g;function we(e,t){let n=[],r=0;for(let t of e.matchAll(Ce))t.index>r&&n.push({text:e.slice(r,t.index)}),t[1]===void 0?n.push({text:t[3],href:t[3],code:!0}):n.push({text:t[1],href:t[2]}),r=t.index+t[0].length;if(n.length>0)return r<e.length&&n.push({text:e.slice(r)}),n;let i=t?.replace(/^file:\/\//,``),a=i===void 0?-1:e.indexOf(i);return i===void 0||a<0?[{text:e}]:[...a>0?[{text:e.slice(0,a)}]:[],{text:i,href:t},...a+i.length<e.length?[{text:e.slice(a+i.length)}]:[]]}var H=`pending-confirmation`,Te=`pending-result-confirmation`,U={preparing:{glyph:v.pending,label:`Preparing`},approval:{glyph:v.waiting,label:`Needs approval`},running:{glyph:v.running,label:`Running`},"sign-in":{glyph:v.waiting,label:`Needs sign-in`},review:{glyph:v.waiting,label:`Review result`},done:{glyph:v.check,label:`Done`},failed:{glyph:v.cross,label:`Failed`},cancelled:{glyph:v.cross,label:`Cancelled`}};function Ee(){let e=r(),t=(0,M.useContext)(N);return n=>{let r=n.target,i=r.closest(`a`);if(i!==null){let r=i.getAttribute(`href`)??``,a=A(r,t);n.preventDefault(),a===null?/^(https?|mailto):/i.test(r)&&window.open(r,`_blank`,`noopener`):e.commands.execute(`ahp.openFile`,{uri:a.uri,line:a.line,end:a.end});return}let a=r.closest(`code`);if(a===null||a.closest(`pre`)!==null)return;let o=j(a.textContent??``,t);o!==null&&f(o.uri).then(t=>{t===`file`&&e.commands.execute(`ahp.openFile`,{uri:o.uri,line:o.line,end:o.end})})}}var De={terminal:v.terminal,read:v.read,search:v.search,edit:v.edit,subagent:v.subagent,web:v.web,other:v.dot};function Oe({line:e,file:t}){let n=r(),i=(0,M.useContext)(N);return(0,L.jsx)(`span`,{className:`web-tool__line`,children:we(e,t).map((e,t)=>{let r=e.href===void 0?null:e.code===!0?j(e.href,i):A(e.href,i);if(r===null)return e.code===!0?(0,L.jsx)(`code`,{children:e.text},t):(0,L.jsx)(`span`,{children:e.text},t);let a=e=>{e.stopPropagation(),e.preventDefault(),n.commands.execute(`ahp.openFile`,{uri:r.uri,line:r.line,end:r.end})};return(0,L.jsx)(`span`,{role:`link`,tabIndex:0,className:`web-tool__ref`,title:`Open ${g(r.uri)}`,onClick:a,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&a(e)},children:e.text},t)})})}function W({title:e,text:t}){let[n,r]=(0,M.useState)(!1);return(0,L.jsxs)(`section`,{className:`web-tool__block`,children:[(0,L.jsxs)(`div`,{className:`web-tool__block-head`,children:[(0,L.jsx)(`span`,{children:e}),(0,L.jsx)(`button`,{type:`button`,className:`web-tool__copy`,onClick:()=>{navigator.clipboard?.writeText(t).then(()=>{r(!0),window.setTimeout(()=>r(!1),1200)}).catch(()=>void 0)},children:n?`Copied`:`Copy`})]}),(0,L.jsx)(`pre`,{className:`web-tool__pre`,children:t})]})}function ke({out:e}){let t=r();switch(e.kind){case`text`:return(0,L.jsx)(W,{title:`Output`,text:e.text});case`terminal`:return(0,L.jsx)(W,{title:`${e.title}${e.exitCode===void 0?``:` \u{00B7} exit ${e.exitCode}`}${e.truncated?` · cut short`:``}`,text:e.text===``?`No output.`:e.text});case`file`:return(0,L.jsxs)(`p`,{className:`web-tool__file`,children:[(0,L.jsx)(`button`,{type:`button`,className:`web-link`,title:e.before===void 0&&e.after===void 0?`Open the file`:`Open the change`,onClick:()=>void(e.before===void 0&&e.after===void 0?t.commands.execute(`ahp.openFile`,{uri:e.file}):t.commands.execute(`ahp.openDiff`,{file:e.file,...e.before===void 0?{}:{before:e.before},...e.after===void 0?{}:{after:e.after}})),children:e.path}),e.added===void 0?null:(0,L.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,e.added]}),e.removed===void 0?null:(0,L.jsxs)(`span`,{className:`web-diff--remove`,children:[`-`,e.removed]})]});case`note`:return(0,L.jsx)(`p`,{className:`web-note`,children:e.text})}}function G({call:e,send:t,live:n,turnId:a}){let o=be(e),s=n&&(o===`approval`||o===`review`||o===`sign-in`),[c,l]=(0,M.useState)(!1),u=c||s,d=V(e),f=pe(e),p=Se(e),m=e.displayName||e.toolName,h=e.status===H?e.riskAssessment:void 0,v=he(e),y=r();return(0,L.jsxs)(`div`,{className:`web-tool`,"data-outcome":o,children:[(0,L.jsxs)(`button`,{type:`button`,className:`web-tool__row`,"aria-expanded":u,title:U[o].label,onClick:()=>l(!c),children:[(0,L.jsx)(`span`,{className:`web-tool__mark`,"aria-label":U[o].label,children:De[ye(e)]}),(0,L.jsx)(Oe,{line:ge(e),file:v}),o===`failed`||o===`cancelled`?(0,L.jsx)(`span`,{className:`web-tool__state`,children:U[o].label}):null,d===void 0||d<1e3?null:(0,L.jsx)(`span`,{className:`web-tool__time`,children:_(d)})]}),u?(0,L.jsxs)(`div`,{className:`web-tool__body`,children:[(0,L.jsxs)(`dl`,{className:`web-tool__facts`,children:[(0,L.jsx)(`dt`,{children:`Tool`}),(0,L.jsxs)(`dd`,{children:[(0,L.jsx)(`code`,{children:e.toolName}),m===e.toolName?null:` (${m})`]}),(0,L.jsx)(`dt`,{children:`Status`}),(0,L.jsx)(`dd`,{children:U[o].label}),v===void 0?null:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`dt`,{children:`File`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(`button`,{type:`button`,className:`web-link`,onClick:()=>void y.commands.execute(`ahp.openFile`,{uri:v}),children:g(v)})})]}),e.intention===void 0?null:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`dt`,{children:`Why`}),(0,L.jsx)(`dd`,{children:e.intention})]}),h===void 0||h.status!==`complete`?null:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`dt`,{children:`Risk`}),(0,L.jsx)(`dd`,{children:`${h.safety}/10 safe \u{00B7} ${h.reason}`})]})]}),f===``?null:(0,L.jsx)(W,{title:`Arguments`,text:f}),p.map((e,t)=>(0,L.jsx)(ke,{out:e},t)),n&&e.status===H?(0,L.jsx)(Ae,{call:e,send:t,turnId:a}):null,n&&e.status===Te?(0,L.jsxs)(`div`,{className:`web-tool__actions`,children:[(0,L.jsx)(i,{label:`Accept result`,variant:`primary`,onClick:()=>t({type:`chat/toolCallResultConfirmed`,turnId:a,toolCallId:e.toolCallId,approved:!0})}),(0,L.jsx)(i,{label:`Reject`,onClick:()=>t({type:`chat/toolCallResultConfirmed`,turnId:a,toolCallId:e.toolCallId,approved:!1})})]}):null]}):null]})}function K({text:e,running:t}){let[n,r]=(0,M.useState)(!1),i=e.replace(/[*_`#>]/g,``).replace(/\s+/g,` `).trim();return(0,L.jsxs)(`div`,{className:`web-tool`,"data-outcome":t?`running`:`thought`,children:[(0,L.jsxs)(`button`,{type:`button`,className:`web-tool__row`,"aria-expanded":n,onClick:()=>r(!n),children:[(0,L.jsx)(`span`,{className:`web-tool__mark`,"aria-hidden":`true`,children:v.thinking}),(0,L.jsxs)(`span`,{className:`web-tool__line`,children:[`Thinking: `,i]})]}),n?(0,L.jsx)(`div`,{className:`web-tool__body web-md`,children:(0,L.jsx)(x,{text:e})}):null]})}function Ae({call:e,send:t,turnId:n}){let r=r=>t({type:`chat/toolCallConfirmed`,turnId:n,toolCallId:e.toolCallId,approved:!0,confirmed:`user-action`,...r===void 0?{}:{selectedOptionId:r}}),a=r=>t({type:`chat/toolCallConfirmed`,turnId:n,toolCallId:e.toolCallId,approved:!1,reason:`denied`,...r===void 0?{}:{selectedOptionId:r}}),o=e.status===H?e.options??[]:[],s=e.status===H?h(e.confirmationTitle):``;return(0,L.jsxs)(`div`,{className:`web-tool__confirm`,children:[s===``?null:(0,L.jsx)(x,{text:s}),(0,L.jsx)(`div`,{className:`web-tool__actions`,children:o.length===0?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(i,{label:`Approve`,variant:`primary`,onClick:()=>r()}),(0,L.jsx)(i,{label:`Deny`,onClick:()=>a()})]}):o.map(e=>(0,L.jsx)(i,{label:e.label,...e.kind===`approve`?{variant:`primary`}:{},onClick:()=>e.kind===`approve`?r(e.id):a(e.id)},e.id))})]})}var je=(0,M.memo)(function({part:e,send:t,live:n,turnId:i}){let a=Ee(),o=r();switch(String(e.kind)){case`markdown`:return`content`in e?(0,L.jsx)(`div`,{className:`web-md`,onClick:a,children:(0,L.jsx)(x,{text:e.content})}):null;case`contentRef`:{let t=`uri`in e?String(e.uri):``;return(0,L.jsx)(`button`,{type:`button`,className:`web-chip`,onClick:()=>void o.commands.execute(`ahp.openFile`,{uri:t}),children:`${v.file} ${g(t).split(`/`).pop()??t}`})}case`reasoning`:return`content`in e&&e.content!==``?(0,L.jsx)(K,{text:e.content,running:!1}):null;case`toolCall`:return`toolCall`in e?(0,L.jsx)(G,{call:e.toolCall,send:t,live:n,turnId:i}):null;case`inputRequest`:return`request`in e?(0,L.jsx)(z,{request:e.request,send:t,live:n,response:`response`in e&&e.response!==void 0?String(e.response):void 0}):null;case`error`:return(0,L.jsx)(S,{tone:`danger`,message:`error`in e&&e.error.message!==``?e.error.message:`The agent reported an error.`});case`systemNotification`:return(0,L.jsx)(`p`,{className:`web-note`,children:`content`in e?h(e.content):``});default:return null}}),Me=new Set([`completed`,`cancelled`]),Ne=new Set([`pending-confirmation`,`pending-result-confirmation`,`auth-required`]);function Pe(e){let t=String(e.kind);if(t===`toolCall`&&`toolCall`in e)return{kind:`tool`,key:e.toolCall.toolCallId,call:e.toolCall};if(t===`reasoning`&&`content`in e){let t=String(e.content);return t.trim()===``?void 0:{kind:`reasoning`,key:`id`in e?String(e.id):``,text:t}}if(!(t===`markdown`&&`content`in e&&String(e.content).trim()===``))return null}function Fe(e,t,n){return e.kind===`tool`?n.ended||Me.has(String(e.call.status)):!(t&&n.live)}function q(e){return e.kind===`tool`&&Ne.has(String(e.call.status))}function Ie(e){return e.kind===`tool`&&`success`in e.call&&e.call.success===!1}function Le(e,t,n){let r=[],i=[],a=[],o=e=>{let n=a[0];if(n!==void 0){let o={kind:`activity`,id:`act:${n.key}`,steps:a,live:e&&t,ended:!t};r.push(o),i.push(o)}a=[]};e.forEach((e,t)=>{let n=Pe(e);if(n!==void 0){if(n!==null){a.push(n);return}o(!1),r.push({kind:`part`,part:e,index:t})}}),o(!0);let s=i.length===1?i[0]:void 0;return s!==void 0&&!t&&n!==void 0&&(s.turnMs=n),r}function Re(e){let t=1/0,n=-1/0;for(let r of e){if(r.kind!==`tool`)continue;let e=_e(r.call),i=V(r.call);if(e===void 0||i===void 0)return;t=Math.min(t,e),n=Math.max(n,e+i)}return n>=t?n-t:void 0}var J=(e,t)=>e===void 0||e<1e3?void 0:t(e);function ze(e,t){let n=[];if(e.done>0){n.push({text:e.done===1?`Completed 1 step`:`Completed ${e.done} steps`}),e.failed>0&&n.push({text:` (${e.failed} failed)`,failed:!0});let r=J(e.took,t);r!==void 0&&n.push({text:` in ${r}`})}let r=e.doing;if(r!==void 0){let e;if(r.what===`thinking`)e=`Thinking`;else{let n=`${r.what===`waiting`?`Waiting on`:`Working on`} ${r.name}`,i=J(r.for,t);e=i===void 0?n:`${n} for ${i}`}n.push({text:n.length>0?` \u{00B7} ${e}`:e})}return n}var Y=new Map,X=new Map;function Z(e,t){t?Y.has(e)||Y.set(e,Date.now()):Y.has(e)&&!X.has(e)&&X.set(e,Date.now())}function Be(e,t){let n=Y.get(e);return n===void 0?void 0:(X.get(e)??t)-n}function Ve(e,t){if(e.kind===`reasoning`)return{what:`thinking`};let n=e.call.displayName||e.call.toolName,r=Be(e.key,t);return{what:q(e)?`waiting`:`working`,name:n,...r===void 0?{}:{for:r}}}function He({group:e,send:t,turnId:n}){let[r,i]=(0,M.useState)(!1),[a,o]=(0,M.useState)(()=>Date.now()),s=e.steps.length-1,c=e.steps.map((t,n)=>Fe(t,n===s,e)),l=c.lastIndexOf(!1),u=l<0?void 0:e.steps[l];Z(e.id,e.live),e.steps.forEach((e,t)=>Z(e.key,!c[t])),(0,M.useEffect)(()=>{if(u===void 0)return;let e=window.setInterval(()=>o(Date.now()),1e3);return()=>window.clearInterval(e)},[u?.key]);let d=e.live&&e.steps.some(q),f=r||d,p=c.filter(Boolean).length,m=u===void 0?a:Y.get(u.key),h=Y.get(e.id),g=e.live?h===void 0||m===void 0?void 0:m-h:Re(e.steps)??Be(e.id,a)??e.turnMs,y=ze({done:p,failed:e.steps.filter(Ie).length,...g===void 0?{}:{took:g},...u===void 0?{}:{doing:Ve(u,a)}},_);return(0,L.jsxs)(`div`,{className:`web-activity`,"data-live":u!==void 0,children:[(0,L.jsxs)(`button`,{type:`button`,className:`web-activity__line`,"aria-expanded":f,onClick:()=>i(!r),children:[(0,L.jsx)(`span`,{children:y.map((e,t)=>e.failed?(0,L.jsx)(`span`,{className:`web-activity__failed`,children:e.text},t):e.text)}),(0,L.jsx)(`span`,{className:`web-activity__chev`,"aria-hidden":`true`,children:f?v.caretDown:v.caretRight})]}),f?(0,L.jsx)(`div`,{className:`web-activity__steps`,children:e.steps.map((r,i)=>r.kind===`tool`?(0,L.jsx)(G,{call:r.call,send:t,live:!e.ended,turnId:n},r.key):(0,L.jsx)(K,{text:r.text,running:!c[i]},r.key))}):null]})}var Ue={cancelled:`Stopped`,error:`Ended with an error`};function We(e){let[t,n]=(0,M.useState)(()=>Date.now());return(0,M.useEffect)(()=>{if(!e)return;let t=window.setInterval(()=>n(Date.now()),1e3);return()=>window.clearInterval(t)},[e]),t}function Ge({text:e}){let[t,n]=(0,M.useState)(!1);return(0,L.jsx)(`button`,{type:`button`,className:`web-turn__copy`,title:t?`Copied`:`Copy`,"aria-label":t?`Copied`:`Copy the reply`,onClick:()=>{navigator.clipboard?.writeText(e).then(()=>{n(!0),window.setTimeout(()=>n(!1),1200)}).catch(()=>void 0)},children:t?v.check:v.copy})}function Ke({facts:e,state:t,live:n,text:r}){let i=We(n),a=n?e.startedAt===void 0?void 0:i-e.startedAt:e.duration,o=[];return e.startedAt!==void 0&&o.push(T(e.startedAt)),a!==void 0&&o.push(n?`${_(a)} so far`:_(a)),(e.input!==void 0||e.output!==void 0)&&o.push(`\u{2191}${D(e.input??0)} \u{2193}${D(e.output??0)}`),e.cacheRead!==void 0&&e.cacheRead>0&&o.push(`${D(e.cacheRead)} cached`),e.model!==void 0&&o.push(e.model),e.tools>0&&o.push(e.tools===1?`1 tool call`:`${e.tools} tool calls`),(0,L.jsxs)(`div`,{className:`web-turn__facts`,children:[n||r===``?null:(0,L.jsx)(Ge,{text:r}),o.join(` · `),t===void 0||Ue[t]===void 0?null:(0,L.jsx)(`span`,{className:`web-turn__ended`,"data-state":t,children:Ue[t]})]})}var Q=[];function qe({attachments:e}){let t=r();return(0,L.jsx)(`div`,{className:`web-turn__attached`,children:e.map((e,n)=>{let r=e,i=typeof r.uri==`string`&&r.displayKind!==`directory`?r.uri:void 0,a=C(e),o=(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`span`,{className:`web-attachment__icon`,children:w(e)}),(0,L.jsx)(`span`,{className:`web-attachment__label`,children:a})]});return i===void 0?(0,L.jsx)(`span`,{className:`web-attachment`,title:a,children:o},n):(0,L.jsx)(`button`,{type:`button`,className:`web-attachment`,title:`Open ${a}`,onClick:()=>void t.commands.execute(`ahp.openFile`,{uri:i}),children:o},n)})})}var $=(0,M.memo)(function({turn:e,live:t,send:n,open:r=Q}){let i=`state`in e?String(e.state):void 0,a=e.responseParts;return(0,L.jsxs)(`article`,{className:`web-turn`,children:[(0,L.jsxs)(`div`,{className:`web-turn__ask`,children:[e.message.text,e.message.attachments===void 0||e.message.attachments.length===0?null:(0,L.jsx)(qe,{attachments:e.message.attachments})]}),(0,L.jsxs)(`div`,{className:`web-turn__answer`,children:[Le(a,t,O(e).duration).map(r=>r.kind===`activity`?(0,L.jsx)(He,{group:r,send:n,turnId:e.id},r.id):(0,L.jsx)(je,{part:r.part,send:n,live:t,turnId:e.id},r.index)),t?r.map(e=>(0,L.jsx)(z,{request:e,send:n,live:!0,response:void 0},e.id)):null,t&&a.length===0?(0,L.jsx)(b,{label:`Working`}):null]}),(0,L.jsx)(Ke,{facts:O(e),...i===void 0?{}:{state:i},live:t,text:E(e)})]})});function Je({chatUri:e,cursor:t}){let[n,r]=(0,M.useState)(!1),[a,o]=(0,M.useState)(null);return(0,L.jsxs)(`div`,{className:`web-chat__older`,children:[(0,L.jsx)(i,{label:n?`Loading`:`Load older turns`,disabled:n,onClick:()=>{r(!0),o(null),p(`fetchTurns`,{channel:e,cursor:t}).catch(e=>o(e instanceof Error?e.message:String(e))).finally(()=>r(!1))}}),a===null?null:(0,L.jsx)(`span`,{className:`web-note`,children:a})]})}function Ye(e,t,n){let r=(0,M.useRef)({turn:void 0,requests:new Map});if(r.current.turn!==n?.id&&(r.current={turn:n?.id,requests:new Map}),n===void 0)return Q;for(let n of e??[])String(n.kind)===`chatInput`&&n.chat===t&&`request`in n&&r.current.requests.set(n.id,n.request);let i=new Set(n.responseParts.flatMap(e=>`request`in e?[e.request.id]:[])),a=[...r.current.requests.values()].filter(e=>!i.has(e.id));return a.length===0?Q:a}function Xe({resource:e}){let t=r(),i=n(l)?.find(t=>t.resource===e),f=k(e,d),p=f.state?.defaultChat??i?.defaultChat,h=k(p,c),g=(0,M.useRef)(null),_=(0,M.useRef)(!0),v=(0,M.useCallback)(e=>{p!==void 0&&u(p,e)},[p]),x=h.state?.turns.length??0,C=Ye(f.state?.inputNeeded,p,h.state?.activeTurn),w=(h.state?.activeTurn?.responseParts??[]).reduce((e,t)=>e+1+(`content`in t&&typeof t.content==`string`?t.content.length:0),0);(0,M.useEffect)(()=>{_.current&&g.current?.scrollIntoView({block:`end`})},[x,w]),(0,M.useEffect)(()=>{e!==void 0&&t.store.get(`$/ahp/activeSession`)===void 0&&t.store.set(ne,e)},[t,e]);let T=i!==void 0&&!m(i.status);if((0,M.useEffect)(()=>{T&&e!==void 0&&u(e,{type:`session/isReadChanged`,isRead:!0})},[T,e,x]),i===void 0)return(0,L.jsx)(S,{tone:`warning`,message:`This session is gone.`});let E=s(i.status),D=String(f.state?.lifecycle??`ready`),O=h.state?.activity??i.activity;return(0,L.jsxs)(`div`,{className:`web-chat`,children:[(0,L.jsx)(`header`,{className:`web-chat__head`,children:(0,L.jsxs)(`div`,{className:`web-chat__title`,children:[(0,L.jsx)(te,{variant:`h2`,text:i.title===``?`Untitled`:i.title}),(0,L.jsx)(y,{tone:o[E],text:a[E]}),O===void 0||O===``?null:(0,L.jsx)(`span`,{className:`web-note`,children:O})]})}),(0,L.jsxs)(`div`,{className:`web-chat__turns`,onScroll:e=>{let t=e.currentTarget;_.current=t.scrollHeight-t.scrollTop-t.clientHeight<48},children:[D===`creating`?(0,L.jsx)(b,{label:`Starting the session`}):null,D===`failed`?(0,L.jsx)(S,{tone:`danger`,title:`The session did not start`,message:f.state?.creationError?.message??`No reason given.`}):null,f.error===null?null:(0,L.jsx)(S,{tone:`danger`,title:`Session not readable`,message:f.error}),h.error===null?null:(0,L.jsx)(S,{tone:`danger`,title:`Chat not readable`,message:h.error}),p!==void 0&&h.state===void 0&&h.error===null?(0,L.jsx)(b,{label:`Reading the chat`}):null,p===void 0||h.state?.turnsNextCursor===void 0?null:(0,L.jsx)(Je,{chatUri:p,cursor:h.state.turnsNextCursor}),(0,L.jsxs)(N.Provider,{value:i.workingDirectories?.[0]??null,children:[h.state?.turns.map(e=>(0,L.jsx)($,{turn:e,live:!1,send:v},e.id)),h.state?.activeTurn===void 0?null:(0,L.jsx)($,{turn:h.state.activeTurn,live:!0,send:v,open:C})]}),h.state!==void 0&&x===0&&h.state.activeTurn===void 0?(0,L.jsx)(`p`,{className:`web-note`,children:`No messages yet.`}):null,(0,L.jsx)(`div`,{ref:g})]}),h.state===void 0||p===void 0?null:(0,L.jsx)(ee,{chatUri:p,activeId:h.state.activeTurn?.id,activeStart:h.state.activeTurn?.startedAt,queued:h.state.queuedMessages,steering:h.state.steeringMessage,draft:h.state.draft,lastModel:h.state.turns.at(-1)?.message.model?.id,config:f.state?.config,summary:i,send:v})]})}export{Xe as default};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./jsx-runtime-BguD1OXD.js";import{t as n}from"./react-CybPckBe.js";import{t as r}from"./useStore-BQkzWMs-.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{o as a}from"./data-BvTv-4oH.js";import{t as o}from"./emojis-XibTG-gy.js";import{t as s}from"./ActionList-DZ9lLGRe.js";import{a as c,o as l,r as u,u as d}from"./terminal-BSweq0Uj.js";var f=e((e=>{var t=n();function r(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function i(){}var a={d:{f:i,r:function(){throw Error(r(522))},D:i,C:i,L:i,m:i,X:i,S:i,M:i},p:0,findDOMNode:null},o=Symbol.for(`react.portal`),s=Symbol.for(`react.recoverable`),c=Symbol.for(`react.optimistic_key`);function l(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:r==null?null:r===c?c:``+r,children:e,containerInfo:t,implementation:n}}var u=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function d(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,e.browser=function(e){return{$$typeof:s,_reason:e}},e.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(r(299));return l(e,t,null,n)},e.flushSync=function(e){var t=u.T,n=a.p;try{if(u.T=null,a.p=2,e)return e()}finally{u.T=t,a.p=n,a.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,a.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&a.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin),i=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?a.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:i,fetchPriority:o}):n===`script`&&a.d.X(e,{crossOrigin:r,integrity:i,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=d(t.as,t.crossOrigin);a.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}}else t??a.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin);a.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=d(t.as,t.crossOrigin);a.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}else a.d.m(e)}},e.requestFormReset=function(e){a.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return u.H.useFormState(e,t,n)},e.useFormStatus=function(){return u.H.useHostTransitionStatus()},e.version=`19.3.0`})),p=e(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=f()})),m=n(),h=p(),g=o.terminal;function _(e,t){let n=l(e.claim,t);return n.kind===`you`?`Yours`:n.kind===`session`?`Held by a session`:`Held by another client`}function v(e,t){if(!c(e))return _(e,t);let n=u(e);return`${_(e,t)}, exited${n===null?``:` with ${n}`}`}function y(e,t){let n=e.store.get(a),r=t.trim().toLowerCase();return(n?.terminals??[]).filter(e=>r===``||`terminal ${d(e)}`.toLowerCase().includes(r)).map(t=>({title:`Terminal: ${d(t)}`,description:v(t,n?.clientId??null),icon:g,group:`Terminals`,onSelect:n=>{n.closeMenu(),e.commands.execute(`ahp.openTerminal`,{uri:t.resource})}}))}var b=t(),x=`$/ahp/palette/open`,S=`ahp:palette`;function C(){return r(`$/ahp/palette/open`)===!0?(0,h.createPortal)((0,b.jsx)(w,{}),document.body):null}function w(){let e=i(),[t,n]=(0,m.useState)(``),o=(0,m.useRef)(null),c=()=>e.store.set(x,!1),l=(0,m.useMemo)(()=>({pushList:()=>void 0,replaceList:()=>void 0,openInline:()=>void 0,openPopover:()=>void 0,back:()=>void 0,closeMenu:c,keepOpen:()=>void 0,insertAtCursor:()=>void 0,replaceActiveToken:()=>void 0,query:``}),[]),u=r(a),d=(0,m.useMemo)(()=>({query:{slot:S,q:t},extraItems:y(e,t)}),[e,t,u]);return(0,b.jsx)(`div`,{className:`web-palette`,onMouseDown:e=>{e.target===e.currentTarget&&c()},children:(0,b.jsxs)(`div`,{className:`web-palette__box`,role:`dialog`,"aria-label":`Command palette`,onClick:e=>{e.target.closest(`.oo-action-list__row`)!==null&&c()},children:[(0,b.jsx)(`input`,{className:`web-field web-palette__input`,autoFocus:!0,value:t,placeholder:`Type a command or a terminal`,"aria-label":`Command`,onChange:e=>n(e.currentTarget.value),onKeyDown:e=>{if(e.key===`Escape`){e.preventDefault(),c();return}o.current?.handleKey(e)===!0&&e.key===`Enter`&&c()}}),(0,b.jsx)(s,{spec:d,hostCtx:l,manageKeys:!1,ref:o})]})})}export{p as a,g as i,S as n,C as r,x as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./LoginForm-C7ZmFVLz.js","./jsx-runtime-BguD1OXD.js","./react-CybPckBe.js","./useStore-BQkzWMs-.js","./ScenaProvider-6A3TJumQ.js","./mount-context-DZgEFVFG.js","./useI18n-BTsfCYkN.js","./index-Cu7ySznN.js","./Palette-CEQLzNFd.js","./data-BvTv-4oH.js","./emojis-XibTG-gy.js","./ActionList-DZ9lLGRe.js","./colors-BieSUSt7.js","./ActionList-Bawu-Lja.css","./terminal-BSweq0Uj.js","./styles-yrzHRgom.js","./surface-presentation-CT86pw6J.js","./preload-helper-BaNbYf_w.js","./sigillum-Bev0l9LS.js","./Button-_R1oktDz.js","./_utils-DZVsX11M.js","./Button-CRZ1_3KW.css","./words-CrqnRMW4.js","./index-DgTMhxdP.css","./LoginForm-BJhoxJyJ.css","./_field-parts-CfQcSJYh.css"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{t as r}from"./preload-helper-BaNbYf_w.js";import{t as i}from"./sigillum-Bev0l9LS.js";import{P as a}from"./index-Cu7ySznN.js";var o=t(),s=e(),c=(0,o.lazy)(()=>r(()=>import(`./LoginForm-C7ZmFVLz.js`).then(e=>({default:e.LoginForm})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]),import.meta.url));function l({permission:e,fallback:t,title:r,child:l,children:u}){let d=n(i.session)??null;return a(d,e)?l??u:(0,s.jsxs)(`div`,{className:`porta-locked`,children:[(0,s.jsx)(`span`,{className:`porta-locked__title`,children:r??(e?`Sign in required (${e})`:`Sign in required`)}),t??(0,s.jsx)(o.Suspense,{fallback:null,children:(0,s.jsx)(c,{})})]})}export{l as PortaLock,l as default};
@@ -1 +0,0 @@
1
- import{d as e,g as t,w as n}from"./data-BvTv-4oH.js";import{i as r}from"./words-CrqnRMW4.js";import{N as i,d as a,j as o}from"./index-Cu7ySznN.js";function s(t){return n(`runAutomation`,{channel:e,automation:t.resource,requestId:`manual-${r()}`})}function c(n,r){t(e,{type:`automation/updateRequested`,resource:n.resource,changes:{enabled:r}})}async function l(n){await i({title:`Delete "${a(n)}"?`,body:`Its run history goes with it.`,confirmLabel:`Delete`,tone:`danger`})&&t(e,{type:`automation/removed`,resource:n.resource})}function u(e){t(e,{type:`automationRun/cancelRequested`})}var d=e=>o(`The automation could not run`,e);function f(e,t,n){let r=t=>e.operations.map(String).includes(t),i=[{title:`Open`,onSelect:e=>{e.closeMenu(),t()}}];return r(`run`)&&i.push({title:`Run now`,onSelect:t=>{t.closeMenu(),s(e).catch(d)}}),r(`update`)&&(i.push({title:e.definition.enabled?`Turn off`:`Turn on`,onSelect:t=>{t.closeMenu(),c(e,!e.definition.enabled)}}),i.push({title:`Edit`,onSelect:e=>{e.closeMenu(),n()}})),i.push({title:`Copy link`,group:`more`,onSelect:t=>{t.closeMenu(),navigator.clipboard?.writeText(e.resource).catch(()=>void 0)}}),r(`remove`)&&i.push({title:`Delete`,group:`more`,color:`red`,onSelect:t=>{t.closeMenu(),l(e)}}),i}export{c as a,s as i,f as n,l as r,u as t};
@@ -1 +0,0 @@
1
- var e=e=>`${e}︎`,t={sessions:e(`💬`),automations:e(`⏰`),agents:e(`🤖`),host:e(`🖥`),settings:e(`⚙`),file:e(`📄`),markdown:e(`📝`),diff:`Δ`,log:`☰`,terminal:`❯`,reload:`↻`,run:e(`▶`),pause:e(`⏸`),trash:e(`🗑`),clear:`⊘`,close:`✕`,copy:`⧉`,more:`⋯`,archived:`▤`,group:`☷`,folder:e(`📁`),attach:e(`📎`),check:`✓`,cross:`✕`,error:e(`✖`),warning:e(`⚠`),info:e(`ℹ`),pending:`◌`,running:`●`,waiting:`◐`,caretRight:`▸`,caretDown:`▾`,read:`≡`,search:`⌕`,edit:`✎`,subagent:`◈`,web:`⊕`,dot:`•`,thinking:`∴`,panelLeft:e(`◧`),panelBottom:e(`⬓`),panelRight:e(`◨`),layoutTabs:`▭`,layoutGroups:`⊞`,layoutSplit:`⊟`,layoutSpatial:`◇`,layoutStack:`☰`,layoutSingle:`□`};export{t};