@ahpd/web 0.4.0 → 0.5.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.
- package/dist/app/assets/{ActivityBarItem-DNjVAT_E.js → ActivityBarItem-ai2cgVXn.js} +1 -1
- package/dist/app/assets/{AudioPage-CTBMdEWh.js → AudioPage-g-XDUEDw.js} +1 -1
- package/dist/app/assets/Bood-Dg-XtOTh.js +1 -0
- package/dist/app/assets/BotLayer-DBe4Fyhe.js +1 -0
- package/dist/app/assets/CommandPalette-G86xI_6j.js +1 -0
- package/dist/app/assets/Composer-DYocj0Ot.js +2 -0
- package/dist/app/assets/{ContextMenu-DYnWIBAF.js → ContextMenu-DlF_3KO_.js} +1 -1
- package/dist/app/assets/{CopyButton-Dqp4FT7R.js → CopyButton-BSesWpVW.js} +1 -1
- package/dist/app/assets/{DataTable-Di749duh.js → DataTable-BwoG_VY8.js} +1 -1
- package/dist/app/assets/Details-CH_RhTnb.js +1 -0
- package/dist/app/assets/DiffPage-BWZV83j-.js +3 -0
- package/dist/app/assets/Edit-C2ayFdz3.js +1 -0
- package/dist/app/assets/Edit-nBofGkbp.js +1 -0
- package/dist/app/assets/Explorer-8HHRQU3j.js +1 -0
- package/dist/app/assets/Explorer-B4eWCDt-.js +1 -0
- package/dist/app/assets/Explorer-CcJsHUFk.js +1 -0
- package/dist/app/assets/Explorer-D4cvjXRf.js +1 -0
- package/dist/app/assets/Explorer-D5NpZ_El.js +1 -0
- package/dist/app/assets/Explorer-D5UOVCR4.js +1 -0
- package/dist/app/assets/Explorer-Dbqg4t3H.js +1 -0
- package/dist/app/assets/Explorer-Dg4dz1Y8.js +1 -0
- package/dist/app/assets/Explorer-Dy6T9Nil.js +1 -0
- package/dist/app/assets/Explorer-DzRNgpV9.js +1 -0
- package/dist/app/assets/ExplorerList-DU80dY_f.js +1 -0
- package/dist/app/assets/Field-jnYjqqvV.js +1 -0
- package/dist/app/assets/FilePage-Cqa5Gu-X.js +1 -0
- package/dist/app/assets/{HeaderAction-Vq-h0k1X.js → HeaderAction-Bs-AE__U.js} +1 -1
- package/dist/app/assets/HostLines-CtIqw3A0.js +1 -0
- package/dist/app/assets/HostSwitcher-CBjT2TTb.js +1 -0
- package/dist/app/assets/{ImagePage-iB_X7JK-.js → ImagePage-C0fdIV7s.js} +1 -1
- package/dist/app/assets/Info-DPV0HZOg.js +1 -0
- package/dist/app/assets/LogPage-C3fGac0t.js +1 -0
- package/dist/app/assets/LoginForm-DxyP1mZO.js +1 -0
- package/dist/app/assets/MarkdownPage-qhogl5sV.js +1 -0
- package/dist/app/assets/NamedPage-CoZEwEtx.js +1 -0
- package/dist/app/assets/New-BiFpU6ut.js +4 -0
- package/dist/app/assets/New-GW4BjzMj.js +1 -0
- package/dist/app/assets/OpenEditors-DN3NPzWo.js +1 -0
- package/dist/app/assets/Page-1jvuUZH2.js +1 -0
- package/dist/app/assets/Page-B1rQUqL-.js +1 -0
- package/dist/app/assets/Page-By2cWeM8.js +3 -0
- package/dist/app/assets/Page-DKXwLUAx.css +1 -0
- package/dist/app/assets/Page-JyFk5XMA.js +1 -0
- package/dist/app/assets/Page-fKKaK_Dn.js +1 -0
- package/dist/app/assets/PoolPage-cZ6yGgGG.js +1 -0
- package/dist/app/assets/PortaLock-DD-lS5R3.js +2 -0
- package/dist/app/assets/RolePage-C4v5v12n.js +3 -0
- package/dist/app/assets/{Settings-D7Fa-31J.js → Settings-CAzrumeA.js} +1 -1
- package/dist/app/assets/SigillumGate-CXCvctfp.js +1 -0
- package/dist/app/assets/{SingleLayout-DrZzqh9e.js → SingleLayout-Bi4nK6CY.js} +1 -1
- package/dist/app/assets/{SpatialLayout-DZfRmqF0.js → SpatialLayout-QbjNYiGj.js} +1 -1
- package/dist/app/assets/{SplitLayout-Bytjyrrj.js → SplitLayout-tQayoihg.js} +1 -1
- package/dist/app/assets/{StackLayout-BCyRY0nG.js → StackLayout-B0qUSU7d.js} +1 -1
- package/dist/app/assets/Start-NxBne1u6.js +1 -0
- package/dist/app/assets/{TabLayout-Czi2A6i3.js → TabLayout-B_pbKMRi.js} +1 -1
- package/dist/app/assets/{TabPanelLayout-B_7L0Dyp.js → TabPanelLayout-DKamepPL.js} +1 -1
- package/dist/app/assets/TerminalPage-AG2B5hHZ.js +18 -0
- package/dist/app/assets/ThemeModeToggle-DmEp0Qr8.js +1 -0
- package/dist/app/assets/ThemePicker-Bj_ObpXS.js +1 -0
- package/dist/app/assets/{Tree-BvNPcfhW.js → Tree-DoJ8zO-u.js} +1 -1
- package/dist/app/assets/UserPage-C0Vk5NUV.js +1 -0
- package/dist/app/assets/VideoPage-CKx-gxgb.js +1 -0
- package/dist/app/assets/actions-CFnmwNqb.js +1 -0
- package/dist/app/assets/actions-CkDFjYZd.js +1 -0
- package/dist/app/assets/changeset-FRFDlNj7.js +1 -0
- package/dist/app/assets/channel-BWOXaftf.js +3 -0
- package/dist/app/assets/{clicks-Doh5a3f9.js → clicks-BeeNCvCP.js} +1 -1
- package/dist/app/assets/composer-commands-CzjP_L_C.js +2 -0
- package/dist/app/assets/data-DsJQo1Qk.js +3 -0
- package/dist/app/assets/drag-CxTqzQcr.js +1 -0
- package/dist/app/assets/emojis-B4zHbUyk.js +1 -0
- package/dist/app/assets/form-Bw0484oP.js +2 -0
- package/dist/app/assets/grouping-BZNQYyEm.js +1 -0
- package/dist/app/assets/hosts-A0gEDScb.js +3 -0
- package/dist/app/assets/index-DJ3IEy30.css +1 -0
- package/dist/app/assets/index-ddqm5vYD.js +19 -0
- package/dist/app/assets/locales-DOA2j2AT.js +3 -0
- package/dist/app/assets/media-BFQqiLAd.js +1 -0
- package/dist/app/assets/notify-B2F6UAgq.js +1 -0
- package/dist/app/assets/pick-CEYUa4kK.js +1 -0
- package/dist/app/assets/pins-DhjQhJuu.js +1 -0
- package/dist/app/assets/save-file-CirO0l-u.js +1 -0
- package/dist/app/assets/save-zwMG_vNN.js +1 -0
- package/dist/app/assets/sessions-DxQFcZ2M.js +2 -0
- package/dist/app/assets/state-DQKzjLgu.js +1 -0
- package/dist/app/assets/{terminal-_7S7Eyr-.js → terminal-Ctk6FYnN.js} +1 -1
- package/dist/app/assets/text-D6GxOCYM.js +1 -0
- package/dist/app/assets/trust-ask-ewG_CvW8.js +1 -0
- package/dist/app/assets/viewers--ctbhTPt.js +1 -0
- package/dist/app/assets/{words-DF1J9CaQ.js → words-1m-GRHoT.js} +1 -1
- package/dist/app/assets/words-D8X2_Vc_.js +1 -0
- package/dist/app/index.html +23 -16
- package/dist/embed/index.d.ts +17 -4
- package/dist/embed/index.js +4 -0
- package/package.json +2 -1
- package/dist/app/assets/CommandPalette-wYX5XXUP.js +0 -1
- package/dist/app/assets/Composer-DHrV5Yeq.js +0 -2
- package/dist/app/assets/Details-DD3vmkCl.js +0 -1
- package/dist/app/assets/DiffPage-BId8ozv7.js +0 -3
- package/dist/app/assets/Edit-jFXpMjZc.js +0 -1
- package/dist/app/assets/Explorer-COyfGhcR.js +0 -1
- package/dist/app/assets/Explorer-Cau0IyIv.js +0 -1
- package/dist/app/assets/Explorer-DV3iMW_H.js +0 -1
- package/dist/app/assets/Explorer-Dfcbd81k.js +0 -1
- package/dist/app/assets/Explorer-gCfiH4Xy.js +0 -1
- package/dist/app/assets/ExplorerList-0duzRsX6.js +0 -1
- package/dist/app/assets/FilePage-C2oyHqAU.js +0 -1
- package/dist/app/assets/HostSwitcher-CpnK8XaS.js +0 -1
- package/dist/app/assets/Info-zs1cf5D4.js +0 -1
- package/dist/app/assets/LogPage-BksXBBRH.js +0 -1
- package/dist/app/assets/LoginForm-C83NjSZc.js +0 -1
- package/dist/app/assets/MarkdownPage-B3Uf-uhF.js +0 -1
- package/dist/app/assets/New-DSGbzxwy.js +0 -4
- package/dist/app/assets/OpenEditors-FoK0L7cG.js +0 -1
- package/dist/app/assets/Page-C__t0LNx.js +0 -1
- package/dist/app/assets/Page-D2Aojkph.js +0 -2
- package/dist/app/assets/Page-D_hX82GR.js +0 -1
- package/dist/app/assets/PortaLock-Q4MlsHWm.js +0 -2
- package/dist/app/assets/SigillumGate-B75RU_FM.js +0 -1
- package/dist/app/assets/Start-DX8T0ii8.js +0 -1
- package/dist/app/assets/TerminalPage-BOIBCy2W.js +0 -18
- package/dist/app/assets/ThemeModeToggle-CFpNVcU1.js +0 -1
- package/dist/app/assets/ThemePicker-CqnA9Que.js +0 -1
- package/dist/app/assets/VideoPage-v3zVSos7.js +0 -1
- package/dist/app/assets/actions-CIzLn0YN.js +0 -1
- package/dist/app/assets/changeset-IbJWvDqP.js +0 -1
- package/dist/app/assets/channel-C6Ss9Aem.js +0 -1
- package/dist/app/assets/composer-commands-BOXuqfcP.js +0 -2
- package/dist/app/assets/data-DPJ4OTLn.js +0 -2
- package/dist/app/assets/drag-ruzgQUFW.js +0 -1
- package/dist/app/assets/emojis-DanG-8fr.js +0 -1
- package/dist/app/assets/folder-path-CJJ4uFfN.js +0 -1
- package/dist/app/assets/grouping-DtiUUpdw.js +0 -1
- package/dist/app/assets/index-BiJaGB50.css +0 -1
- package/dist/app/assets/index-xynK_AEL.js +0 -14
- package/dist/app/assets/locales-Dnk_Y338.js +0 -1
- package/dist/app/assets/media-Da9OmSvb.js +0 -1
- package/dist/app/assets/notify-BmjJL_fx.js +0 -1
- package/dist/app/assets/sessions-CLjdYeF3.js +0 -2
- package/dist/app/assets/state-CKNqusrK.js +0 -1
- package/dist/app/assets/text-D_lQQGN1.js +0 -1
- package/dist/app/assets/viewers-Vk4T9IkZ.js +0 -1
- package/dist/app/assets/words-T8-D0K4W.js +0 -1
- /package/dist/app/{ahpw.svg → assets/ahpw-FhxegLNr.svg} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./useI18n-T3BwAm0z.js";import{t as n}from"./Button-_R1oktDz.js";import{r}from"./data-DsJQo1Qk.js";import{_ as i,g as a,m as o,v as s,y as c}from"./hosts-A0gEDScb.js";var l=e();function u({host:e}){let{t:n}=t(),i=a(),[s]=o([r(e).connection]),[u]=o([r(e).refused]),d=c(s,u);return(0,l.jsxs)(`span`,{className:`web-host-tag`,"data-state":d,title:n(`hosts/state/${d}`),children:[(0,l.jsx)(`span`,{className:`web-host-line__dot`,"aria-hidden":`true`}),i(e)]})}function d(){let{t:e}=t(),u=i(),d=a(),f=o(u.map(e=>r(e).connection)),p=o(u.map(e=>r(e).refused)),m=u.map((e,t)=>({host:e,state:c(f[t],p[t])})).filter(e=>e.state!==`connected`);return m.length===0?null:(0,l.jsx)(`ul`,{className:`web-host-lines`,children:m.map(({host:t,state:r})=>(0,l.jsxs)(`li`,{className:`web-host-line`,"data-state":r,children:[(0,l.jsx)(`span`,{className:`web-host-line__dot`,"aria-hidden":`true`}),(0,l.jsx)(`span`,{className:`web-host-line__name`,children:d(t)}),(0,l.jsx)(`span`,{className:`web-host-line__state`,children:e(`hosts/state/${r}`)}),r===`connecting`?null:(0,l.jsx)(n,{size:`sm`,variant:`ghost`,label:e(r===`refused`?`hosts/signIn`:`hosts/retry`),onClick:()=>s(t,r)})]},t))})}export{u as n,d as t};
|
|
@@ -0,0 +1 @@
|
|
|
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{t as r}from"./useI18n-T3BwAm0z.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{$ as a,r as o}from"./data-DsJQo1Qk.js";import{f as s,m as c,v as l,y as u}from"./hosts-A0gEDScb.js";import{t as d}from"./emojis-B4zHbUyk.js";import{t as f}from"./ContextMenu-DlF_3KO_.js";var p=t(),m=e(),h={connected:0,connecting:1,down:2};function g({embedder:e}){let{t}=r(),g=i(),_=a()===`multi`,v=n(`$/ahp/hostFilter`)??null,[y,b]=(0,p.useState)(null),[x,S]=(0,p.useState)([]),[C,w]=(0,p.useState)({}),[T,E]=(0,p.useState)(!1),[D,O]=(0,p.useState)(null),k=(0,p.useRef)(null);(0,p.useEffect)(()=>{let t=!0;e.host().then(e=>t&&b(e)),e.hosts().then(e=>t&&S(e)),e.statuses().then(e=>t&&w(e));let n=[e.onHosts(e=>{S(e),b(t=>e.find(e=>e.id===t?.id)??t)}),e.onStatuses(w)];return()=>{t=!1;for(let e of n)e()}},[e]),(0,p.useEffect)(()=>{if(!T)return;let e=e=>{k.current?.contains(e.target)||E(!1)},t=e=>{e.key===`Escape`&&E(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[T]);let A=c(_?x.map(e=>o(e.id).connection):[]),j=c(_?x.map(e=>o(e.id).refused):[]),M=e=>{if(!_)return C[e]??`connecting`;let t=x.findIndex(t=>t.id===e),n=u(A[t],j[t]);return n===`connected`||n===`connecting`?n:`down`},N=e=>(0,m.jsx)(`span`,{className:`embed-dot embed-dot--${e}`,"aria-label":t(`shell/embed/status/${e}`)}),P=e=>N(M(e)),F=_&&v?.length===1?x.find(e=>e.id===v[0])??null:null,I=_?F:y,L=x.reduce((e,t)=>{let n=M(t.id);return h[n]>h[e]?n:e},`connected`),R=t=>{E(!1),_?s(g.store,t===null?null:[t]):t!==null&&t!==y?.id&&e.switchHost(t)};return(0,m.jsxs)(`div`,{className:`embed-host`,ref:k,children:[(0,m.jsxs)(`button`,{type:`button`,className:`embed-host__button`,"aria-haspopup":`menu`,"aria-expanded":T,onClick:()=>E(!T),children:[I===null?_?N(L):null:P(I.id),(0,m.jsx)(`span`,{className:`embed-host__name`,children:I?.name??(_?t(`hosts/every`):`…`)}),(0,m.jsx)(`svg`,{width:`8`,height:`8`,viewBox:`0 0 8 8`,"aria-hidden":`true`,children:(0,m.jsx)(`path`,{d:`M1 2.5l3 3 3-3`,fill:`none`,stroke:`currentColor`})})]}),T&&(0,m.jsxs)(`div`,{className:`embed-host__menu`,role:`menu`,children:[_?(0,m.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`embed-host__item`,"aria-current":F===null,onClick:()=>R(null),children:[N(L),(0,m.jsx)(`span`,{className:`embed-host__name`,children:t(`hosts/every`)})]}):null,x.map(e=>(0,m.jsxs)(`div`,{className:`embed-host__row`,children:[(0,m.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`embed-host__item`,"aria-current":e.id===I?.id,onClick:()=>R(e.id),children:[P(e.id),(0,m.jsx)(`span`,{className:`embed-host__name`,children:e.name}),(0,m.jsx)(`span`,{className:`embed-host__url`,title:e.url,children:e.url.replace(/^ws:\/\//i,``)})]}),_?(0,m.jsx)(`button`,{type:`button`,className:`embed-host__more`,"aria-label":t(`shell/embed/hostOptions`,{host:e.name}),title:t(`shell/embed/hostOptions`,{host:e.name}),onClick:t=>{let n=t.currentTarget.getBoundingClientRect();E(!1),O({id:e.id,x:n.right,y:n.bottom})},children:d.more}):null]},e.id)),(0,m.jsx)(`div`,{className:`embed-host__line`,role:`separator`}),(0,m.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`embed-host__item embed-host__action`,onClick:()=>{E(!1),e.manageHosts()},children:[(0,m.jsx)(`span`,{"aria-hidden":`true`,children:`☰`}),(0,m.jsx)(`span`,{className:`embed-host__name`,children:t(`shell/embed/manageHosts`)})]}),(0,m.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`embed-host__item embed-host__action`,onClick:()=>{E(!1),e.manageHosts({add:!0})},children:[(0,m.jsx)(`span`,{"aria-hidden":`true`,children:`+`}),(0,m.jsx)(`span`,{className:`embed-host__name`,children:t(`shell/embed/addHost`)})]})]}),D===null?null:(0,m.jsx)(f,{spec:{items:z(D.id)},x:D.x,y:D.y,onClose:()=>O(null)})]});function z(n){let r=x.findIndex(e=>e.id===n),i=u(A[r],j[r]),a=(e,t,n)=>({title:e,icon:t,onSelect:e=>{e.closeMenu(),O(null),n()}});return[a(t(`shell/embed/info`),d.info,()=>void g.commands.execute(`ahp.openHostInfo`,{host:n})),a(t(`shell/embed/settings`),d.settings,()=>void g.commands.execute(`ahp.openSettings`,{host:n})),...i===`down`||i===`refused`?[a(t(i===`refused`?`hosts/signIn`:`hosts/retry`),d.reload,()=>l(n,i))]:[],a(t(`shell/embed/manage`),d.edit,()=>void e.manageHosts({edit:n}))]}}export{g as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useI18n-T3BwAm0z.js";import{t as r}from"./media-
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useI18n-T3BwAm0z.js";import{t as r}from"./media-BFQqiLAd.js";var i=t();function a(e,t,n){return Math.round(n>0&&t>0?t*e*100/n:e*100)}var o=e(),s=1,c=20,l=1.25;function u({url:e,alt:t}){let{t:r}=n(),u=(0,i.useRef)(null),d=(0,i.useRef)(null),[f,p]=(0,i.useState)(s),[m,h]=(0,i.useState)({fitted:0,natural:0}),[g,_]=(0,i.useState)({x:0,y:0}),[v,y]=(0,i.useState)(!1),b=(0,i.useRef)(null),x=()=>{p(s),_({x:0,y:0})};(0,i.useEffect)(x,[e]);let S=(e,t=0,n=0)=>{let r=Math.min(c,Math.max(s,e));if(r===f)return;let i=r/f;_(r===s?{x:0,y:0}:e=>({x:t-(t-e.x)*i,y:n-(n-e.y)*i})),p(r)},C=e=>{let t=u.current?.getBoundingClientRect();t!==void 0&&S(f*Math.exp(-e.deltaY*.0015),e.clientX-t.left-t.width/2,e.clientY-t.top-t.height/2)},w=()=>{let e=d.current;e!==null&&h({fitted:e.offsetWidth,natural:e.naturalWidth})};(0,i.useEffect)(()=>{let e=u.current;if(e===null||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(w);return t.observe(e),()=>t.disconnect()},[]);let T=e=>{f<=s||(b.current={x:e.clientX,y:e.clientY,ox:g.x,oy:g.y},y(!0),e.currentTarget.setPointerCapture(e.pointerId))},E=e=>{let t=b.current;t!==null&&_({x:t.ox+e.clientX-t.x,y:t.oy+e.clientY-t.y})},D=()=>{b.current=null,y(!1)};(0,i.useEffect)(()=>{let e=u.current,t=e=>e.preventDefault();return e?.addEventListener(`wheel`,t,{passive:!1}),()=>e?.removeEventListener(`wheel`,t)},[]);let O=f>s;return(0,o.jsxs)(`div`,{className:`web-image__view`,children:[(0,o.jsxs)(`div`,{className:`web-image__bar`,role:`toolbar`,"aria-label":r(`files/image/zoom`),children:[(0,o.jsx)(`button`,{type:`button`,className:`web-image__step`,title:r(`files/image/zoomOut`),"aria-label":r(`files/image/zoomOut`),disabled:!O,onClick:()=>S(f/l),children:`−`}),(0,o.jsxs)(`button`,{type:`button`,className:`web-image__step web-image__percent`,title:r(`files/image/fit`),"aria-label":r(`files/image/fit`),disabled:!O,onClick:x,children:[a(f,m.fitted,m.natural),`%`]}),(0,o.jsx)(`button`,{type:`button`,className:`web-image__step`,title:r(`files/image/zoomIn`),"aria-label":r(`files/image/zoomIn`),disabled:f>=c,onClick:()=>S(f*l),children:`+`})]}),(0,o.jsx)(`div`,{ref:u,className:`web-image`,"data-zoomed":O?`true`:`false`,"data-dragging":v?`true`:`false`,onWheel:C,onPointerDown:T,onPointerMove:E,onPointerUp:D,onPointerCancel:D,onDoubleClick:x,children:(0,o.jsx)(`img`,{ref:d,src:e,alt:t,draggable:!1,onLoad:w,style:{transform:`translate(${g.x}px, ${g.y}px) scale(${f})`}})})]})}var d=e=>decodeURIComponent(e.split(`/`).pop()??e);function f({host:e,uri:t}){return(0,o.jsx)(r,{host:e,uri:t,children:e=>(0,o.jsx)(u,{url:e,alt:d(t??``)})})}export{f as default};
|
|
@@ -0,0 +1 @@
|
|
|
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{t as r}from"./useI18n-T3BwAm0z.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{t as a}from"./Button-_R1oktDz.js";import{a as o}from"./locales-DOA2j2AT.js";import{F as s,I as c,O as l,P as u,j as d,k as f,r as p,s as m}from"./data-DsJQo1Qk.js";import{r as h}from"./notify-B2F6UAgq.js";import{t as g}from"./Badge-BDEW5PFb.js";import{t as _}from"./Alert-BhdRA0LL.js";import{t as v}from"./Text-MPtQvYE-.js";import{t as y}from"./DetailList-Yalgw0YM.js";import{Pt as b}from"./index-ddqm5vYD.js";import{n as x}from"./trust-ask-ewG_CvW8.js";import{a as S}from"./turn-z1TPlA5Q.js";var C=t(),w=e();function T({host:e}){let t=i(),{t:o}=r(),s=n(d(e))??f(e),p=Object.entries(s),m=(n,r)=>{let i=u(s,n);if(!r){l(t.store,e,i);return}x(t.store,e,i).catch(e=>h(o(`trust/host/notForgotten`),e))};return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(v,{variant:`h3`,text:o(`trust/host/title`)}),(0,w.jsx)(`p`,{className:`web-note`,children:o(`trust/host/hint`)}),p.length===0?(0,w.jsx)(`p`,{className:`web-note`,children:o(`trust/host/none`)}):(0,w.jsxs)(`table`,{className:`web-runs web-table web-trust`,children:[(0,w.jsx)(`thead`,{children:(0,w.jsxs)(`tr`,{children:[(0,w.jsx)(`th`,{children:o(`trust/host/folder`)}),(0,w.jsx)(`th`,{children:o(`trust/host/answer`)}),(0,w.jsx)(`th`,{"aria-label":o(`trust/host/forget`)})]})}),(0,w.jsx)(`tbody`,{children:p.map(([e,t])=>(0,w.jsxs)(`tr`,{children:[(0,w.jsx)(`td`,{children:(0,w.jsx)(`code`,{children:c(e)})}),(0,w.jsx)(`td`,{children:o(t?`trust/host/trusted`:`trust/host/untrusted`)}),(0,w.jsx)(`td`,{className:`web-trust__forget`,children:(0,w.jsx)(a,{label:o(`trust/host/forget`),size:`sm`,onClick:()=>m(e,t)})})]},e))})]})]})}var E={connected:{tone:`success`,word:`connected`},connecting:{tone:`info`,word:`connecting`},reconnecting:{tone:`warning`,word:`reconnecting`},disconnected:{tone:`default`,word:`disconnected`},failed:{tone:`danger`,word:`failed`}};function D(e){let[t,n]=(0,C.useState)(null),[r,i]=(0,C.useState)(null);return(0,C.useEffect)(()=>{n(null),i(null)},[e]),{status:t,error:r}}function O(){let[e,t]=(0,C.useState)(()=>Date.now());return(0,C.useEffect)(()=>{let e=window.setInterval(()=>t(Date.now()),1e3);return()=>window.clearInterval(e)},[]),e}function k({host:e}){let t=i(),{t:l}=r(),u=n(p(e).connection),d=n(p(e).host),f=n(p(e).agents)??[],h=n(p(e).defaultDirectory),x=n(p(e).automationCaps),{status:C,error:k}=D(u?.generation??0),A=O(),j=E[u?.status??`disconnected`]??E.disconnected,M=l(`bridges/state/${j.word}`),N=C?.startedAt===void 0?NaN:Date.parse(C.startedAt),P=[{label:l(`host/info/status`),value:M}];d!=null&&(P.push({label:l(`host/info/host`),value:d.label}),d.protocolVersion!==null&&P.push({label:l(`host/info/protocol`),value:d.protocolVersion}),d.connectedAt!==null&&P.push({label:l(`host/info/connected`),value:l(`host/info/connectedValue`,{when:S(d.connectedAt),elapsed:s(A-d.connectedAt)})}),P.push({label:l(`host/info/client`),value:(0,w.jsx)(`code`,{children:d.clientId})},{label:l(`host/info/serverSeq`),value:String(d.serverSeq)},{label:l(`host/info/following`),value:o(`host/info/channels`,d.subscriptions)})),u?.error!==null&&u?.error!==void 0&&P.push({label:l(`host/info/lastError`),value:u.error});let F=[];C!==null&&(Number.isNaN(N)||F.push({label:l(`host/info/started`),value:l(`host/info/startedValue`,{when:S(N),elapsed:s(A-N)})}),C.pid!==void 0&&F.push({label:l(`host/info/process`),value:String(C.pid)}),C.url!==void 0&&F.push({label:l(`host/info/address`),value:(0,w.jsx)(`code`,{children:C.url})}),C.automations!==void 0&&F.push({label:l(`host/info/automationsKeptIn`),value:C.automations}),(C.paths??[]).length>0&&F.push({label:l(`host/info/sessionsKeptIn`),value:(0,w.jsx)(`span`,{className:`web-lines`,children:C.paths.map(e=>(0,w.jsx)(`code`,{children:e},e))})}));let I=[{label:l(`host/info/agents`),value:(0,w.jsx)(`button`,{type:`button`,className:`web-link`,onClick:()=>void t.commands.execute(`sidebar.activate`,{section:b}),children:f.length===0?l(`host/info/none`):f.map(e=>e.displayName).join(`, `)})},{label:l(`host/info/defaultFolder`),value:h==null?l(`host/info/none`):(0,w.jsx)(`code`,{children:c(h)})}];d?.activeSessions!==null&&d?.activeSessions!==void 0&&I.push({label:l(`host/info/activeSessions`),value:String(d.activeSessions)}),I.push({label:l(`host/info/automations`),value:x==null?l(`host/info/automationsNotOffered`):[x.create===void 0?l(`host/info/automationsReadOnly`):l(`host/info/automationsCreate`),x.schedules?.minIntervalMinutes===void 0?void 0:o(`host/info/automationsInterval`,x.schedules.minIntervalMinutes),x.runCancellation===void 0?void 0:l(`host/info/automationsStoppable`)].filter(e=>e!==void 0).join(`, `)});let L=d?.terminals??[];return(0,w.jsxs)(`div`,{className:`web-page`,children:[(0,w.jsxs)(`div`,{className:`web-page__head`,children:[(0,w.jsxs)(`div`,{className:`web-chat__title`,children:[(0,w.jsx)(v,{variant:`h2`,text:l(`host/title`)}),(0,w.jsx)(g,{tone:j.tone,text:M})]}),(0,w.jsxs)(`div`,{className:`web-page__actions`,children:[u?.status===`connected`?null:(0,w.jsx)(a,{label:l(`bridges/reconnectNow`),variant:`primary`,onClick:()=>void m(e).reconnect()}),(0,w.jsx)(a,{label:l(`host/info/settings`),onClick:()=>void t.commands.execute(`ahp.openSettings`,{host:e})})]})]}),(0,w.jsx)(v,{variant:`h3`,text:l(`host/info/connection`)}),(0,w.jsx)(y,{items:P,columns:2}),C===null&&k===null?null:(0,w.jsx)(v,{variant:`h3`,text:l(`host/info/daemon`)}),k===null?null:(0,w.jsx)(_,{tone:`warning`,message:l(`host/info/statusUnreadable`,{error:k})}),F.length===0?null:(0,w.jsx)(y,{items:F,columns:2}),(0,w.jsx)(v,{variant:`h3`,text:l(`host/info/offers`)}),(0,w.jsx)(y,{items:I,columns:2}),(0,w.jsx)(T,{host:e}),(0,w.jsx)(v,{variant:`h3`,text:l(`host/info/terminals`)}),L.length===0?(0,w.jsx)(`p`,{className:`web-note`,children:l(`host/info/noTerminals`)}):(0,w.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,w.jsx)(`thead`,{children:(0,w.jsxs)(`tr`,{children:[(0,w.jsx)(`th`,{children:l(`host/info/terminalTitle`)}),(0,w.jsx)(`th`,{children:l(`host/info/terminalState`)})]})}),(0,w.jsx)(`tbody`,{children:L.map(e=>{let t=e.lifecycle;return(0,w.jsxs)(`tr`,{children:[(0,w.jsx)(`td`,{children:e.title}),(0,w.jsx)(`td`,{children:t.status===`exited`?t.exitCode===void 0?l(`host/info/exited`):l(`host/info/exitedCode`,{code:t.exitCode}):l(`host/info/running`)})]},e.resource)})})]})]})}export{k as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{l as n,t as r}from"./useI18n-T3BwAm0z.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{_ as a,d as o,f as s,g as c,h as l,m as u,r as d,v as f,y as p}from"./data-DsJQo1Qk.js";import{i as m}from"./hosts-A0gEDScb.js";import{t as h}from"./emojis-B4zHbUyk.js";var g=t(),_=e(),v=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.platform)?`log/follow/mac`:`log/follow/other`;function y(e,t){let r=m(e.store);if(t.startsWith(`ahp-terminal:`)){let i=r.find(n=>e.store.get(d(n).host)?.terminals.some(e=>e.resource===t))??r[0];return{tip:n(`log/follow/terminal`),run:()=>void e.commands.execute(`ahp.openTerminal`,{host:i,uri:t})}}let i=r.find(n=>(e.store.get(d(n).sessions)??[]).some(e=>e.resource===t));return i===void 0?t.startsWith(`file:`)?{tip:n(`log/follow/file`),run:()=>void e.commands.execute(`ahp.openFile`,{uri:t})}:/^https?:/i.test(t)?{tip:n(`log/follow/page`),run:()=>void window.open(t,`_blank`,`noopener`)}:null:{tip:n(`log/follow/session`),run:()=>void e.commands.execute(`ahp.openSession`,{host:i,resource:t})}}function b(e){if(typeof e==`string`)try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}return JSON.stringify(e,null,2)??String(e)}var x=e=>void navigator.clipboard?.writeText(e).catch(()=>void 0),S=(0,g.memo)(function({entry:e,open:t,onToggle:n}){let a=i(),{t:o}=r(),s=f(e.text).map((e,t)=>{if(e.kind===`text`)return(0,_.jsx)(`span`,{children:e.text},t);let n=y(a,e.text);return n===null?(0,_.jsx)(`span`,{children:e.text},t):(0,_.jsx)(`a`,{className:`web-log__link`,title:o(`log/follow/link`,{tip:n.tip,how:o(v)}),onClick:e=>{(e.ctrlKey||e.metaKey)&&(e.stopPropagation(),n.run())},children:e.text},t)});return(0,_.jsxs)(`div`,{className:`web-log__row`,"data-open":t||void 0,"data-level":e.level,children:[(0,_.jsxs)(`div`,{className:`web-log__line`,role:`button`,tabIndex:0,"aria-expanded":t,onClick:()=>n(e.id),onKeyDown:t=>{t.key===`Enter`&&n(e.id)},children:[(0,_.jsx)(`span`,{className:`web-log__caret`,children:t?h.caretDown:h.caretRight}),(0,_.jsx)(`span`,{className:`web-log__time`,children:u(e.at)}),(0,_.jsx)(`span`,{className:`web-log__level`,children:e.level.toUpperCase()}),(0,_.jsx)(`span`,{className:`web-log__scope`,"data-scope":e.scope,children:(0,_.jsx)(`span`,{children:o(`log/scopes/${e.scope}`)})}),(0,_.jsx)(`span`,{className:`web-log__text`,children:s}),t?(0,_.jsx)(`button`,{type:`button`,className:`web-log__icon`,title:o(`log/copyLine`),onClick:t=>{t.stopPropagation(),x(c(e))},children:h.copy}):null]}),t&&e.detail!==void 0?(0,_.jsx)(`pre`,{className:`web-log__detail`,children:b(e.detail)}):null]})});function C(){let{t:e}=r(),t=p(),[n,i]=(0,g.useState)([]),[c,u]=(0,g.useState)(`info`),[d,f]=(0,g.useState)(``),[m,v]=(0,g.useState)(new Set),y=(0,g.useMemo)(()=>l(t,{scopes:n.length===0?s.filter(e=>e!==`traffic`):n,minLevel:n.includes(`traffic`)?`debug`:c,query:d}),[t,n,c,d]),b=(0,g.useCallback)(e=>{v(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),C=e=>i(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),w=()=>u(o[(o.indexOf(c)+1)%o.length]??`info`),T=(0,g.useRef)(null),E=(0,g.useRef)(!0);return(0,g.useEffect)(()=>{let e=T.current;if(e===null)return;let t=()=>{E.current=e.scrollHeight-e.scrollTop-e.clientHeight<24};return e.addEventListener(`scroll`,t,{passive:!0}),()=>e.removeEventListener(`scroll`,t)},[]),(0,g.useLayoutEffect)(()=>{let e=T.current;e!==null&&E.current&&(e.scrollTop=e.scrollHeight)},[y]),(0,_.jsxs)(`div`,{className:`web-log`,children:[(0,_.jsxs)(`div`,{className:`web-log__bar`,children:[(0,_.jsx)(`button`,{type:`button`,className:`web-log__chip`,"data-on":n.length===0||void 0,onClick:()=>i([]),children:e(`log/all`)}),s.map(t=>(0,_.jsxs)(`button`,{type:`button`,className:`web-log__chip`,"data-on":n.includes(t)||void 0,onClick:()=>C(t),children:[(0,_.jsx)(`span`,{className:`web-log__dot`,"data-scope":t}),e(`log/scopes/${t}`)]},t)),(0,_.jsx)(`span`,{className:`web-log__rule`}),(0,_.jsx)(`button`,{type:`button`,className:`web-log__chip`,title:e(`log/levelTip`),disabled:n.includes(`traffic`),onClick:w,children:e(`log/minLevel`,{level:n.includes(`traffic`)?`debug`:c})}),(0,_.jsx)(`input`,{className:`web-log__search`,type:`search`,placeholder:e(`log/filter`),value:d,onChange:e=>f(e.target.value)}),(0,_.jsx)(`button`,{type:`button`,className:`web-log__icon`,title:e(`log/copyShown`),onClick:()=>x(a(y)),children:h.copy})]}),(0,_.jsxs)(`div`,{className:`web-log__list`,ref:T,children:[y.length===0?(0,_.jsx)(`p`,{className:`web-note`,children:e(t.length===0?`log/empty`:`log/noMatch`)}):null,y.map(e=>(0,_.jsx)(S,{entry:e,open:m.has(e.id),onToggle:b},e.id))]})]})}export{C as default};
|
|
@@ -0,0 +1 @@
|
|
|
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{t as r}from"./useI18n-T3BwAm0z.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{t as a}from"./sigillum-Bev0l9LS.js";import{t as o}from"./Button-_R1oktDz.js";/* empty css */import{Lt as s}from"./index-ddqm5vYD.js";var c=t(),l=e();function u(e){return e&&typeof e==`object`&&`path`in e?e.path:void 0}function d(e,t=``){let r=n(u(e));return u(e)?r??t:(typeof e==`string`?e:void 0)??t}function f({provider:e,pending:t,fire:n,t:r}){let i=d(e.label,e.id);return(0,l.jsx)(o,{label:`${e.icon?`${e.icon} `:``}${r(`auth/providerLabel`,{provider:i,fallback:`Continue with {provider}`})}`,disabled:t,onClick:()=>n(`sigillum.signin`,{providerId:e.id,credentials:{}})})}function p({field:e}){let t=e.label&&typeof e.label==`object`&&`path`in e.label?u(e.label):void 0,r=n(t);return t?(0,l.jsx)(l.Fragment,{children:r??``}):(0,l.jsx)(l.Fragment,{children:typeof e.label==`string`?e.label:``})}function m({providers:e,allowSignup:t=!1,allowForgotPassword:u=!1,onSignup:m,onForgotPassword:_}){let v=i(),y=s(),{t:b}=r(),x=!!n(a.pending),S=n(a.error)??null,C=n(a.challenge)??null,w=(0,c.useMemo)(()=>e?y.providers.filter(t=>e.includes(t.id)):y.providers,[y.providers,e]),T=w.filter(e=>e.kind===`oauth-button`),E=w.filter(e=>e.kind===`form-fields`),D=w.filter(e=>e.kind===`otp`),O=w.filter(e=>e.kind===`magic-link`),k=(0,c.useMemo)(()=>{let e=[],t=new Set;for(let n of E)for(let r of n.fields??[])t.has(r.name)||(t.add(r.name),e.push({field:r,ownerId:n.id}));return e},[E]),[A,j]=(0,c.useState)({});function M(e,t){j(n=>({...n,[e]:t}))}function N(e,t){v.commands.execute(e,t)}function P(e){if(e.preventDefault(),E.length===0)return;let t=E.find(e=>e.id===`password`)??E[0];t&&N(`sigillum.signin`,{providerId:t.id,credentials:A})}let F=k.length>0||D.length>0||O.length>0,I=d((E.find(e=>e.id===`password`)??E[0])?.label,b(`auth/signIn`,`Sign in`));return(0,l.jsxs)(`form`,{className:`porta-form`,onSubmit:P,children:[T.length>0?(0,l.jsx)(`div`,{className:`porta-form__oauth`,children:T.map(e=>(0,l.jsx)(f,{provider:e,pending:x,fire:N,t:b},e.id))}):null,T.length>0&&F?(0,l.jsx)(`div`,{className:`porta-form__divider`,children:`or`}):null,k.length>0?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(`div`,{className:`porta-form__fields`,children:k.map(({field:e})=>(0,l.jsxs)(`label`,{className:`oo-field`,children:[(0,l.jsx)(`span`,{className:`oo-field__label`,children:e.label&&typeof e.label==`object`&&`t`in e.label?b(e.label.t,{...e.label.args,fallback:`???`}):(0,l.jsx)(p,{field:e})}),(0,l.jsx)(`input`,{className:`oo-input`,type:e.type,name:e.name,autoComplete:e.autoComplete,required:e.required,placeholder:e.placeholder,value:A[e.name]??``,onChange:t=>M(e.name,t.currentTarget.value)})]},e.name))}),(0,l.jsx)(o,{type:`submit`,variant:`primary`,label:I,disabled:x})]}):null,D.map(e=>(0,l.jsx)(h,{provider:e,challenge:C,pending:x,fire:N},e.id)),O.map(e=>(0,l.jsx)(g,{provider:e,challenge:C,pending:x,fire:N},e.id)),(0,l.jsxs)(`div`,{className:`porta-form__footer`,children:[(0,l.jsxs)(`span`,{children:[x?(0,l.jsx)(`span`,{className:`porta-form__pending`,children:`Working…`}):null,S?(0,l.jsx)(`span`,{className:`porta-form__error`,children:S}):null]}),(0,l.jsxs)(`div`,{className:`porta-form__aux`,children:[u?(0,l.jsx)(`button`,{type:`button`,onClick:_,children:b(`auth/forgotPassword`,`Forgot password?`)}):null,t?(0,l.jsx)(`button`,{type:`button`,onClick:m,children:b(`auth/createAccount`,`Create account`)}):null]})]})]})}function h({provider:e,challenge:t,pending:n,fire:i}){let{t:a}=r(`auth`),s=d(e.label,e.id),u=t?.providerId===e.id,f=e.otp?.digits??6,[p,m]=(0,c.useState)(``),[h,g]=(0,c.useState)(``);return(0,l.jsxs)(`div`,{className:`porta-form__two-step`,children:[(0,l.jsxs)(`span`,{className:`porta-form__two-step-label`,children:[e.icon?`${e.icon} `:``,s]}),u?(0,l.jsxs)(`div`,{className:`porta-form__two-step-row`,children:[(0,l.jsx)(_,{digits:f,value:h,onChange:g}),(0,l.jsx)(o,{label:`Verify`,variant:`primary`,disabled:n||h.length!==f,onClick:()=>i(`sigillum.verifyOtp`,{providerId:e.id,code:h})})]}):(0,l.jsxs)(`div`,{className:`porta-form__two-step-row`,children:[(0,l.jsxs)(`label`,{className:`oo-field`,children:[(0,l.jsx)(`span`,{className:`oo-field__label`,children:e.otp?.channel===`sms`?a(`phoneLabel`,`Phone number`):a(`emailLabel`,`Email address`)}),(0,l.jsx)(`input`,{className:`oo-input`,type:e.otp?.channel===`sms`?`tel`:`email`,value:p,placeholder:e.otp?.channel===`sms`?`+1 555 …`:`you@example.com`,onChange:e=>m(e.currentTarget.value)})]}),(0,l.jsx)(o,{label:e.otp?.sendLabel??a(`sendCode`,`Send code`),disabled:n||!p,onClick:()=>i(`sigillum.requestOtp`,{providerId:e.id,value:p})})]})]})}function g({provider:e,challenge:t,pending:n,fire:i}){let{t:a}=r(`auth`),s=d(e.label,e.id),u=t?.providerId===e.id,[f,p]=(0,c.useState)(``);return(0,l.jsxs)(`div`,{className:`porta-form__two-step`,children:[(0,l.jsxs)(`span`,{className:`porta-form__two-step-label`,children:[e.icon?`${e.icon} `:``,s]}),u?(0,l.jsxs)(`span`,{className:`porta-form__pending`,children:[`Check your `,e.magicLink?.channel??`inbox`,` for the link.`]}):(0,l.jsxs)(`div`,{className:`porta-form__two-step-row`,children:[(0,l.jsxs)(`label`,{className:`oo-field`,children:[(0,l.jsx)(`span`,{className:`oo-field__label`,children:e.magicLink?.channel===`sms`?a(`phoneLabel`,`Phone number`):a(`emailLabel`,`Email address`)}),(0,l.jsx)(`input`,{className:`oo-input`,type:e.magicLink?.channel===`sms`?`tel`:`email`,value:f,placeholder:e.magicLink?.channel===`sms`?`+1 555 …`:`you@example.com`,onChange:e=>p(e.currentTarget.value)})]}),(0,l.jsx)(o,{label:e.magicLink?.sendLabel??a(`sendLink`,`Send link`),disabled:n||!f,onClick:()=>i(`sigillum.requestOtp`,{providerId:e.id,value:f})})]})]})}function _({digits:e,value:t,onChange:n}){let r=(0,c.useRef)([]);(0,c.useEffect)(()=>{r.current=r.current.slice(0,e)},[e]);let i=t.padEnd(e,` `).slice(0,e).split(``);function a(t,a){let o=i.slice();o[t]=a.slice(-1)||` `,n(o.join(``).trimEnd()),a&&t+1<e&&r.current[t+1]?.focus()}return(0,l.jsx)(`div`,{className:`porta-form__otp-digits`,children:Array.from({length:e}).map((e,t)=>(0,l.jsx)(`input`,{ref:e=>{r.current[t]=e},className:`porta-form__otp-digit`,inputMode:`numeric`,maxLength:1,value:i[t]?.trim()??``,onChange:e=>a(t,e.currentTarget.value),onKeyDown:e=>{e.key===`Backspace`&&!i[t]?.trim()&&t>0&&r.current[t-1]?.focus()}},t))})}export{m as LoginForm,m as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./useI18n-T3BwAm0z.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./Spinner-CBEPv0eM.js";import{t as i}from"./Markdown-_Awuh7Ku.js";import{t as a}from"./Alert-BhdRA0LL.js";import{r as o,t as s}from"./clicks-BeeNCvCP.js";import{n as c,t as l}from"./text-D6GxOCYM.js";import{t as u}from"./PageAlert-B8ulCXV4.js";import{n as d}from"./media-BFQqiLAd.js";var f=e();function p({host:e,src:t,alt:n,base:r}){let i=/^(https?|data):/i.test(t)?null:o(t,r),a=d(e,i?.uri);return i===null?(0,f.jsx)(`img`,{src:t,alt:n}):a!==null&&`url`in a?(0,f.jsx)(`img`,{src:a.url,alt:n}):(0,f.jsx)(`span`,{className:`web-md__image`,title:i.uri,"data-state":a===null?`reading`:`missing`,children:n})}var m=(e,t)=>(n,r)=>(0,f.jsx)(p,{host:e,src:n,alt:r,base:t}),h=e=>e.replace(/\/[^/]*$/,``);function g({host:e,uri:o}){let d=n(),{t:p}=t(),g=c(e,o);if(o===void 0)return(0,f.jsx)(u,{tone:`warning`,message:p(`files/noFile`)});let _=(0,f.jsx)(l,{uri:o});return g===null?(0,f.jsxs)(`div`,{className:`web-file`,children:[_,(0,f.jsx)(r,{label:p(`files/reading`)})]}):`error`in g?(0,f.jsxs)(`div`,{className:`web-file`,children:[_,(0,f.jsx)(a,{tone:`danger`,title:p(`files/notReadable`),message:g.error})]}):g.text===null?(0,f.jsxs)(`div`,{className:`web-file`,children:[_,(0,f.jsx)(`p`,{className:`web-note`,children:p(`files/notText`)})]}):(0,f.jsxs)(`div`,{className:`web-file`,children:[_,(0,f.jsx)(`div`,{className:`web-file__body`,children:(0,f.jsx)(`div`,{className:`web-file__doc web-md`,onClick:s(d,e,h(o)),children:(0,f.jsx)(i,{text:g.text,image:m(e,h(o))})})})]})}export{g as default};
|
|
@@ -0,0 +1 @@
|
|
|
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{t as r}from"./useI18n-T3BwAm0z.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{t as a}from"./Button-_R1oktDz.js";import{J as o,r as ee}from"./data-DsJQo1Qk.js";import{r as s}from"./notify-B2F6UAgq.js";import{t as c}from"./Spinner-CBEPv0eM.js";import{t as l}from"./Text-MPtQvYE-.js";import{B as te,D as ne,F as u,H as d,L as f,P as p,R as m,V as h,j as g,z as _}from"./index-ddqm5vYD.js";import{t as v}from"./PageAlert-B8ulCXV4.js";import{t as y}from"./channel-BWOXaftf.js";import{t as b}from"./Field-jnYjqqvV.js";import{t as x}from"./form-Bw0484oP.js";var S=t(),C=e(),w={teams:f(`teams`),projects:f(`projects`)},re=f(`users`),T=f(`teams`);function E({host:e,domain:t,person:f}){let E=i(),{t:D}=r(),O=f===void 0,k=t===`teams`?`team`:`project`,A=n(ee(e).offers)??o,j=y(e,g[t].channel,w[t]),M=y(e,!O&&_(A,`users`)?g.users.channel:void 0,re),ie=y(e,!O&&t===`projects`?g.teams.channel:void 0,T),[N,P]=(0,S.useState)(null),[F,I]=(0,S.useState)({user:``,team:``}),[L,R]=(0,S.useState)(!1),[z,B]=(0,S.useState)(null);if(j.error!==null)return(0,C.jsx)(v,{tone:`danger`,title:D(`teams/notices/none`),message:j.error});if(j.state===void 0)return(0,C.jsx)(c,{label:D(`teams/notices/reading`)});let V=O?void 0:j.state.records.find(e=>e.id===f)?.record;if(!O&&V===void 0)return(0,C.jsx)(v,{tone:`warning`,message:D(`teams/${k}/gone`)});let H={id:f??``,title:V?.title??``},U=N??H,W=e=>P(t=>({...t??H,...e})),G=d(A,t),K=d(A,`users`),q=N!==null&&JSON.stringify(N)!==JSON.stringify(H),J=G&&!L&&(O?x(U.id):q),Y=ne(t,e,f),X=M.state?.records.map(e=>e.record)??[],Z=O?[]:p(t,f,X),Q=X.filter(e=>!Z.some(t=>t.user===e.id)),ae=ie.state?.records.map(e=>e.id)??[],oe=async()=>{R(!0),B(null);let n=U.id.trim();try{await m(e,A,t,n,{title:U.title.trim()},O),P(null),O&&(E.surfaces.close(Y),E.commands.execute(t===`teams`?`ahp.openTeam`:`ahp.openProject`,{host:e,id:n}))}catch(e){B(e instanceof Error?e.message:String(e))}finally{R(!1)}},$=(t,n)=>{let r=h(t),i=n.includes(r.primary)?r.primary:``;m(e,A,`users`,t.id,te({...r,memberships:n,primary:i}),!1).catch(e=>s(D(`teams/actions/failed`),e))},se=()=>{let e=X.find(e=>e.id===F.user);if(e===void 0||f===void 0)return;let n=t===`teams`?u(f):u(F.team,f);$(e,[...e.memberships??[],n]),I({user:``,team:``})},ce=F.user!==``&&(t===`teams`||F.team!==``);return(0,C.jsxs)(`div`,{className:`web-page web-form`,children:[(0,C.jsx)(l,{variant:`h2`,text:O?D(t===`teams`?`teams/commands/newTeam`:`teams/commands/newProject`):V?.title||f}),G?null:(0,C.jsx)(`p`,{className:`web-note`,children:D(`teams/notices/readOnly`)}),O?(0,C.jsx)(b,{label:D(`teams/named/id`),hint:D(`teams/${k}/idHint`),children:(0,C.jsx)(`input`,{className:`web-field`,value:U.id,autoFocus:!0,onChange:e=>W({id:e.target.value})})}):null,(0,C.jsx)(b,{label:D(`teams/named/title`),hint:D(`teams/named/titleHint`),children:(0,C.jsx)(`input`,{className:`web-field`,value:U.title,readOnly:!G,onChange:e=>W({title:e.target.value})})}),z===null?null:(0,C.jsx)(v,{tone:`danger`,message:z}),G?(0,C.jsxs)(`div`,{className:`web-page__actions`,children:[(0,C.jsx)(a,{label:D(O?`teams/${k}/create`:`teams/named/save`),variant:`primary`,disabled:!J,onClick:()=>void oe()}),O?(0,C.jsx)(a,{label:D(`teams/actions/cancel`),onClick:()=>E.surfaces.close(Y)}):(0,C.jsxs)(C.Fragment,{children:[q?(0,C.jsx)(a,{label:D(`teams/actions/discard`),onClick:()=>P(null)}):null,(0,C.jsx)(a,{label:D(`teams/actions/delete`),variant:`danger`,onClick:()=>void E.commands.execute(t===`teams`?`ahp.deleteTeam`:`ahp.deleteProject`,{host:e,id:f})})]})]}):null,O||!_(A,`users`)?null:(0,C.jsxs)(`section`,{className:`web-people__members`,"aria-label":D(`teams/named/members`),children:[(0,C.jsx)(l,{variant:`h3`,text:D(`teams/named/members`)}),(0,C.jsx)(`p`,{className:`web-note`,children:D(`teams/${k}/membersHint`)}),M.state===void 0?(0,C.jsx)(c,{label:D(`users/notices/reading`)}):Z.length===0?(0,C.jsx)(`p`,{className:`web-note`,children:D(`teams/named/noMembers`)}):(0,C.jsx)(`ul`,{className:`web-people__member-list`,children:Z.map(t=>{let n=X.find(e=>e.id===t.user);return(0,C.jsxs)(`li`,{className:`web-people__member`,children:[(0,C.jsx)(`button`,{type:`button`,className:`web-people__member-name`,onClick:()=>void E.commands.execute(`ahp.openUser`,{host:e,id:t.user}),children:t.user}),(0,C.jsx)(`span`,{className:`web-people__chips`,children:t.through.map(e=>(0,C.jsxs)(`span`,{className:`web-chip`,"data-on":n.primary===e?`true`:void 0,title:n.primary===e?D(`teams/named/primary`):void 0,children:[e,K?(0,C.jsx)(`button`,{type:`button`,className:`web-people__chip-drop`,"aria-label":D(`users/user/dropMembership`,{membership:e}),title:D(`users/user/dropMembership`,{membership:e}),onClick:()=>$(n,(n.memberships??[]).filter(t=>t!==e)),children:`×`}):null]},e))})]},t.user)})}),K&&Q.length>0?(0,C.jsxs)(`div`,{className:`web-people__add`,children:[(0,C.jsxs)(`select`,{className:`web-field`,value:F.user,"aria-label":D(`teams/named/addWho`),onChange:e=>I({...F,user:e.target.value}),children:[(0,C.jsx)(`option`,{value:``,children:D(`teams/named/addWho`)}),Q.map(e=>(0,C.jsx)(`option`,{value:e.id,children:e.id},e.id))]}),t===`projects`?(0,C.jsxs)(`select`,{className:`web-field`,value:F.team,"aria-label":D(`teams/named/through`),onChange:e=>I({...F,team:e.target.value}),children:[(0,C.jsx)(`option`,{value:``,children:D(`teams/named/through`)}),ae.map(e=>(0,C.jsx)(`option`,{value:e,children:e},e))]}):null,(0,C.jsx)(a,{label:D(`teams/named/add`),disabled:!ce,onClick:se})]}):null]})]})}export{E as default};
|
|
@@ -0,0 +1,4 @@
|
|
|
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{l as r,t as i}from"./useI18n-T3BwAm0z.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./useCloseGuard-B4qJKmaF.js";import{t as s}from"./Button-_R1oktDz.js";import{$ as c,I as l,K as u,R as ee,U as d,V as f,W as p,et as te,l as ne,n as m,r as h,s as g,z as re}from"./data-DsJQo1Qk.js";import{a as ie,g as ae,r as oe,y as se}from"./hosts-A0gEDScb.js";import{t as _}from"./emojis-B4zHbUyk.js";import{i as ce}from"./notify-B2F6UAgq.js";import{t as le}from"./Alert-BhdRA0LL.js";import{_ as ue,a as de,c as fe,d as pe,f as me,g as he,h as v,i as ge,l as _e,m as ve,n as ye,o as be,p as xe,r as Se,s as Ce}from"./Composer-DYocj0Ot.js";import{t as we}from"./Text-MPtQvYE-.js";import{S as Te,a as y,c as b,d as Ee,f as x,l as S,n as C,p as De,r as Oe,s as w,v as ke,w as T,x as E}from"./composer-commands-CzjP_L_C.js";import{n as Ae,o as je}from"./pick-CEYUa4kK.js";import{gt as Me,ht as Ne,mt as Pe}from"./index-ddqm5vYD.js";import{t as Fe}from"./trust-ask-ewG_CvW8.js";import{o as Ie}from"./words-1m-GRHoT.js";var D=t(),O=50;function Le(e,t){return/(?:^|\s)@([^\s@]*)$/.exec(e.slice(0,t))?.[1]??null}var Re=e=>e.startsWith(`/`)||/^[A-Za-z]:\//.test(e);async function ze(e,t,n){let r=n.replace(/\\/g,`/`),i=r.lastIndexOf(`/`),a=r.slice(0,i+1),o=r.slice(i+1).toLowerCase(),s=Re(a)?ee(a):a.split(`/`).filter(e=>e!==``).reduce(d,t),c=l(s).replace(/\/+$/,``),u=await g(e).request(`resourceList`,{channel:m,uri:s});return p(u.entries).filter(e=>e.name.toLowerCase().startsWith(o)).slice(0,O).map(e=>{let t=`${c}/${e.name}`;if(e.type===`directory`)return{title:`${e.name}/`,insert:`@${t}/`,folder:!0};let n=`@${t}`;return{title:e.name,insert:n,folder:!1,attachment:T(E(d(s,e.name),!1),n)}})}function k(e,t,n,r=8){let i=n==null?null:f(n),a=new Map;for(let t of e){let e=t.workingDirectories?.[0];if(e===void 0||e===``)continue;let n=f(e);a.set(n,(a.get(n)??0)+1)}let o=[...a].sort((e,t)=>t[1]-e[1]);for(let e of t)a.has(f(e))||o.push([f(e),0]);return o.filter(([e])=>e!==i).slice(0,r).map(([e,t])=>({path:l(e),sessions:t}))}var A=e=>e.replace(/[\\/]+$/,``).split(/[\\/]/).pop()||e;function Be(e,t){let n=e.trim()===``?``:A(e);return t===null?n:`${n} [${t}]`}function Ve(e,t){return t.flatMap(t=>{let n=e.get(h(t).defaultDirectory)??null,r=k(e.get(h(t).sessions)??[],e.get(je(t))??[],n);return[...n===null?[]:[{host:t,path:l(n).replace(/\/+$/,``),sessions:0}],...r.map(e=>({host:t,path:e.path,sessions:e.sessions}))]})}var j=[{keys:`/`,message:`sessions/tips/slash`,needsCommands:!0},{keys:`@`,message:`sessions/tips/mention`},{keys:`+`,message:`sessions/tips/add`},{keys:`Enter`,message:`sessions/tips/enter`},{keys:`Shift+Enter`,message:`sessions/tips/shiftEnter`}],He=e=>j.filter(t=>e||t.needsCommands!==!0),Ue=(e,t)=>e[t%e.length],M=`ahpd-web.new-tip`;function We(){try{let e=Number(window.localStorage.getItem(M));return Number.isInteger(e)&&e>=0?e:0}catch{return 0}}function Ge(e){try{window.localStorage.setItem(M,String(e))}catch{}}var N=u(`ahpd-web.new-tray`);function Ke(){try{return window.localStorage.getItem(N)!==`closed`}catch{return!0}}function qe(e){try{window.localStorage.setItem(N,e?`open`:`closed`)}catch{}}var P=e(),Je=[`/`,`@`],Ye=y(`new`,`session:new`),Xe=`session:new`,Ze=300,Qe=`ahp.new.agent`,$e=`ahp.new.where`;function et({option:e,set:t,open:n}){let{t:r}=i(),{key:a,schema:o,value:s}=e,c=o.title||a,l=o.description===void 0?{}:{title:o.description};if(S(o))return(0,P.jsx)(v,{...ve(e),...l,...o.type===`boolean`?{on:(s??o.default)===!0}:{},onOpen:()=>n(w(a))});if(o.type===`string`||o.type===`number`){let e=s??o.default;return(0,P.jsx)(he,{label:c,...l,value:e==null?``:String(e),onChange:e=>t(o.type===`string`?e:e===``?void 0:Number(e))})}return x(e)?(0,P.jsx)(v,{label:r(`sessions/pills/setting`,{name:c,value:b(e)}),...l}):null}function tt({provider:e,host:t}){let u=a(),{t:d}=i(),f=c()===`multi`,p=n(oe),[he,ve]=(0,D.useState)(()=>t??Pe()),y=f?Ne((p??[]).map(e=>e.id),he)??``:ne(),b=ae(),x=n(h(y).agents)??[],S=n(h(y).defaultDirectory),[w,T]=(0,D.useState)(e??``),[E,je]=(0,D.useState)(``),[O,Re]=(0,D.useState)(``),[k,A]=(0,D.useState)(``),[j,M]=(0,D.useState)({}),[N,tt]=(0,D.useState)(null),[F,nt]=(0,D.useState)({}),[rt,it]=(0,D.useState)(!1),[at,ot]=(0,D.useState)(null),[st,I]=(0,D.useState)(null),[L,ct]=(0,D.useState)([]),R=(0,D.useRef)(null);o(()=>k.trim()!==``||L.length>0?d(`sessions/new/unsent`):null),(0,D.useEffect)(()=>{w===``&&x[0]!==void 0&&T(x[0].provider)},[x,w]),(0,D.useEffect)(()=>{E===``&&S!=null&&je(l(S))},[S,E]),(0,D.useEffect)(()=>ye(R.current),[k]);let z=E.trim()===``?void 0:ee(E),lt=JSON.stringify([w,z,j]);(0,D.useEffect)(()=>{if(w===``)return;let e=!0,t=window.setTimeout(()=>{g(y).request(`resolveSessionConfig`,{channel:m,provider:w,...z===void 0?{}:{workingDirectory:z},config:j}).then(t=>{if(!e)return;let n=t;tt({schema:n.schema.properties,values:n.values})}).catch(()=>{e&&tt(null)})},Ze);return()=>{e=!1,window.clearTimeout(t)}},[lt]);let ut=Object.entries(N?.schema??{}).filter(([,e])=>e.enumDynamic===!0).map(([e])=>e).join(`
|
|
2
|
+
`);(0,D.useEffect)(()=>{if(ut===``)return;let e=!0;for(let t of ut.split(`
|
|
3
|
+
`))g(y).request(`sessionConfigCompletions`,{channel:m,provider:w,...z===void 0?{}:{workingDirectory:z},config:j,property:t}).then(n=>{let r=n.items;e&&nt(e=>({...e,[t]:r.map(e=>({value:e.value,label:e.label}))}))}).catch(()=>void 0);return()=>{e=!1}},[ut,w,z]);let B=x.find(e=>e.provider===w),dt=(0,D.useMemo)(()=>de(Ie(B?.customizations)),[B]),[ft]=(0,D.useState)(We);(0,D.useEffect)(()=>Ge(ft+1),[ft]);let pt=Ue(He(dt.length>0),ft),[mt,ht]=(0,D.useState)(Ke),gt=e=>{ht(e),qe(e)},_t=E.replace(/[\/]+$/,``).split(/[\/]/).pop()??``;(0,D.useEffect)(()=>{let e=be(u,Xe,dt,C);return()=>e.dispose()},[u,dt]);let V=(0,D.useCallback)(e=>{I(e),requestAnimationFrame(()=>{let t=R.current;t!==null&&(t.focus(),t.setSelectionRange(e,e))})},[]),H=(0,D.useCallback)(e=>{ct(t=>t.some(t=>Te(t,e))?t:[...t,e])},[]),vt=(0,D.useRef)(null),U=(0,D.useCallback)(async e=>{let t=await ke(Array.from(e??[]));for(let e of t.attached)H(e);t.refused.length>0&&ce(d(`sessions/upload/notAttached`),{description:d(`sessions/upload/refused`,{names:t.refused.join(`, `)})})},[H,d]),W=(0,D.useRef)(k);W.current=k;let G=(0,D.useRef)(st);G.current=st;let yt=(0,D.useCallback)(e=>{let t=G.current??W.current.length,n=W.current.slice(0,t),r=n===``||/\s$/.test(n)?``:` `;A(`${n}${r}${e}${W.current.slice(t)}`),V(n.length+r.length+e.length)},[V]),K=Ce({host:y,attach:H,insert:yt,upload:e=>void U(e)}),bt=(0,D.useCallback)(async()=>{let e=Le(W.current,G.current??W.current.length);if(e===null||z===void 0)return[];try{return(await ze(y,z,e)).map(e=>({title:e.title,onSelect:t=>{if(e.folder){t.replaceActiveToken(e.insert);return}t.replaceActiveToken(`${e.insert} `),e.attachment!==void 0&&H(e.attachment)}}))}catch{return[]}},[z,H]),[xt,St]=(0,D.useState)(!1),q=ue({input:k,setInput:A,caretIndex:st,panelDataContext:Ye,slashSlot:C,prefixes:Je,mentionProvider:bt,onCaretChange:V}),Ct=(0,D.useMemo)(()=>Object.entries(N?.schema??{}).filter(([e,t])=>t.readOnly!==!0&&e!==`model`),[N]),J=N?.schema.model,Y=(0,D.useMemo)(()=>J===void 0?(B?.models??[]).map(e=>({id:e.id,name:e.name})):(F.model??(J.enum??[]).map((e,t)=>({value:String(e),label:J.enumLabels?.[t]??String(e)}))).map(e=>({id:e.value,name:e.label})),[J,F,B]),wt=Y.find(e=>e.id===O)?.name??O,Tt=pe(B?.models.find(e=>e.id===O),void 0),Et=e=>(0,P.jsx)(et,{option:e,set:t=>M(n=>({...n,[e.key]:t})),open:$},e.key),X=(0,D.useMemo)(()=>Ct.map(([e,t])=>{let n=F[e];return{key:e,schema:n===void 0?t:{...t,enum:n.map(e=>e.value),enumLabels:n.map(e=>e.label)},value:j[e]??N?.values[e]}}),[Ct,F,j,N]),Dt=X.map(e=>e.key).join(`
|
|
4
|
+
`);(0,D.useEffect)(()=>{let e=Ee(u,X);return()=>e.dispose()},[u,Dt]);let Z=(0,D.useCallback)(e=>{T(e),Re(``),M({}),nt({})},[]),Ot=(0,D.useCallback)((e,t)=>{e!==Q.current.host&&(ve(e),Me(e),Z(``)),je(t)},[Z]),Q=(0,D.useRef)({attach:H,upload:U,focusCaret:V,models:Y,model:O,options:X,pickAgent:Z,agents:x,provider:w,pickWhere:Ot,host:y,folder:E,hostList:p,hostName:b});Q.current={attach:H,upload:U,focusCaret:V,models:Y,model:O,options:X,pickAgent:Z,agents:x,provider:w,pickWhere:Ot,host:y,folder:E,hostList:p,hostName:b},(0,D.useEffect)(()=>u.commands.register({id:$e,title:()=>r(`sessions/new/where`),description:()=>r(`sessions/new/whereHint`),category:`Session`,slots:[C],run:e=>{let t=Q.current,n=c()===`multi`,i=n?(t.hostList??[]).map(e=>e.id):[t.host],a=i.filter(t=>se(e.store.get(h(t).connection),e.store.get(h(t).refused))===`connected`),o=t=>{let n=e.store.get(h(t).defaultDirectory)??null,i=n===null?null:l(n).replace(/\/+$/,``);Ae({host:t,title:r(`sessions/new/where`),start:i===null?`/`:`${i}/`,home:i}).then(e=>{e!==null&&Q.current.pickWhere(t,e.replace(/[\\/]+$/,``)||e)})};e.host?.pushList({title:r(`sessions/new/where`),items:[...Ve(e.store,a).map(e=>({title:Be(e.path,n?t.hostName(e.host):null),description:e.path,icon:_.folder,group:r(`sessions/new/recent`),active:e.host===t.host&&e.path===t.folder.replace(/[\\/]+$/,``),onSelect:n=>{n.closeMenu(),t.pickWhere(e.host,e.path)}})),...a.map(e=>({title:n?r(`sessions/new/folders`,{host:t.hostName(e)}):r(`sessions/new/openFolder`),icon:n?_.host:_.open,group:r(`sessions/new/browse`),onSelect:t=>{t.closeMenu(),o(e)}})),...n&&te!==void 0?[{title:r(`sessions/new/remote`),icon:_.host,group:r(`sessions/new/hosts`),onSelect:t=>{t.pushList({title:r(`sessions/new/remote`),items:[...i.map(t=>({title:ie(e.store,t),icon:_.host,description:r(`sessions/new/manageHost`),onSelect:e=>{e.closeMenu(),te?.manageHosts({edit:t})}})),{title:r(`sessions/new/addHost`),icon:`+`,onSelect:e=>{e.closeMenu(),te?.manageHosts({add:!0})}}]})}}]:[]]})}}).dispose,[u]),(0,D.useEffect)(()=>u.commands.register({id:Qe,title:()=>r(`sessions/new/agent`),description:()=>r(`sessions/new/agentHint`),category:`Session`,shortcut:`/agent`,slots:[C],run:e=>{let t=Q.current;e.host?.pushList({title:r(`sessions/new/agent`),sentinel:`/agent`,items:t.agents.map(e=>({title:e.displayName,active:e.provider===t.provider,onSelect:n=>{t.pickAgent(e.provider),n.closeMenu()}}))})}}).dispose,[u]),(0,D.useEffect)(()=>Oe(Ye,{models:()=>Q.current.models,model:()=>Q.current.model===``?void 0:Q.current.model,setModel:e=>Re(e??``),options:()=>Q.current.options,setOption:(e,t)=>M(n=>({...n,[e]:t})),running:()=>!1,stop:()=>void 0,session:()=>``,host:()=>Q.current.host,attach:e=>Q.current.attach(e),type:e=>{let t=De(W.current,G.current??W.current.length,e);A(t.text),Q.current.focusCaret(t.caret)},upload:()=>vt.current?.click(),changed:()=>[]}),[]);function $(e){let t=q.openCommand(e);V(t??R.current?.value.length??k.length)}let kt=async()=>{if(w===``)return;it(!0),ot(null);let e=`${w}:/${re()}`,t=k.trim(),{model:n,...r}=j;try{if(z!==void 0&&await Fe(u.store,y,z)===`closed`)return;if(await g(y).request(`createSession`,{channel:e,provider:w,...z===void 0?{}:{workingDirectories:[z]},...Object.keys(r).length===0?{}:{config:r}}),Me(y),await u.commands.execute(`ahp.openSession`,{host:y,resource:e}),u.surfaces.close(`session:new`),t!==``||L.length>0){let n=(await g(y).readOnce(e))?.defaultChat;if(n!==void 0){let e=Se(t,O===``?void 0:O,L);g(y).dispatch(n,{type:`chat/turnStarted`,turnId:re(),startedAt:new Date().toISOString(),message:e})}}}catch(e){ot(e instanceof Error?e.message:String(e))}finally{it(!1)}},At=(0,P.jsx)(v,{label:E.trim()===``?d(`sessions/new/where`):Be(E,f?b(y):null),title:d(`sessions/new/whereHint`),onOpen:()=>$($e)});if(x.length===0)return(0,P.jsxs)(`div`,{className:`web-new`,children:[f?At:null,(0,P.jsx)(le,{tone:`warning`,message:d(`sessions/new/noAgent`)})]});let jt=d(`sessions/new/agentPill`,{name:B?.displayName??w});return(0,P.jsxs)(`div`,{className:`web-new`,children:[(0,P.jsx)(we,{variant:`h2`,text:d(`sessions/commands/newSession`)}),B?.description===void 0||B.description===``?null:(0,P.jsx)(`p`,{className:`web-note`,children:B.description}),(0,P.jsxs)(`div`,{className:`web-composer web-new__composer`,children:[q.pickerNode===null||xt?null:(0,P.jsx)(`div`,{className:`web-composer__picker`,children:q.pickerNode}),mt?(0,P.jsxs)(`div`,{className:`web-composer__where web-new__tray`,children:[At,(0,P.jsx)(v,{label:jt,title:d(`sessions/new/agentHint`),onOpen:()=>$(Qe)}),(0,P.jsx)(`button`,{type:`button`,className:`web-new__tray-fold`,"aria-expanded":!0,"aria-label":d(`sessions/new/fold`),title:d(`sessions/new/fold`),onClick:()=>gt(!1),children:_.caretDown})]}):(0,P.jsx)(`div`,{className:`web-composer__where web-new__tray`,children:(0,P.jsxs)(`button`,{type:`button`,className:`web-chip web-new__tray-head`,"aria-expanded":!1,title:d(`sessions/new/unfold`),onClick:()=>gt(!0),children:[(0,P.jsx)(`span`,{"aria-hidden":`true`,children:_.caretRight}),jt,_t===``?null:` · ${_t}`]})}),(0,P.jsxs)(`div`,{className:`web-composer__box`,"data-drop":K.dropping??void 0,onDragOver:K.onDragOver,onDragLeave:K.onDragLeave,onDrop:K.onDrop,onPaste:K.onPaste,children:[(0,P.jsx)(_e,{attachments:L,folder:z,onRemove:e=>ct(t=>t.filter((t,n)=>n!==e))}),(0,P.jsx)(`div`,{className:`web-composer__bar`,children:(0,P.jsx)(`textarea`,{ref:R,className:`web-composer__text`,rows:3,value:k,"aria-label":d(`sessions/new/firstMessage`),placeholder:d(`sessions/composer/placeholder`),onChange:e=>{A(e.currentTarget.value),I(e.currentTarget.selectionStart)},onFocus:()=>u.store.set(ge,Xe),onKeyUp:e=>I(e.currentTarget.selectionStart),onClick:e=>I(e.currentTarget.selectionStart),onKeyDown:e=>{q.handleMenuKeyDown(e)||e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),kt())}})}),(0,P.jsxs)(`div`,{className:`web-composer__foot`,children:[(0,P.jsx)(fe,{host:y,path:Ye,onOpenChange:St}),(0,P.jsx)(`input`,{ref:vt,type:`file`,multiple:!0,hidden:!0,onChange:e=>{U(e.currentTarget.files),e.currentTarget.value=``}}),(0,P.jsxs)(`div`,{className:`web-composer__chips web-composer__chips--left`,children:[X.filter(e=>me(e)===`left`).map(Et),N===null&&w!==``?(0,P.jsx)(v,{label:d(`sessions/new/readingSettings`)}):null]}),(0,P.jsxs)(`div`,{className:`web-composer__chips web-composer__chips--right`,children:[Y.length===0?null:(0,P.jsx)(v,{...xe(wt===``?d(`sessions/values/default`):wt),title:d(`sessions/new/modelHint`),onOpen:()=>$(`ahp.composer.model`)}),X.filter(e=>me(e)===`right`).map(Et),Tt===null?null:(0,P.jsx)(`span`,{className:`web-composer__context`,title:Tt.title,children:Tt.text})]}),(0,P.jsx)(s,{label:rt?d(`sessions/new/starting`):k.trim()===``&&L.length===0?d(`sessions/new/create`):d(`sessions/new/start`),variant:`primary`,size:`sm`,title:d(`sessions/new/startHint`),disabled:rt||w===``,onClick:()=>void kt()})]})]})]}),(0,P.jsxs)(`p`,{className:`web-new__tip`,children:[(0,P.jsx)(`kbd`,{children:pt.keys}),` `,d(pt.message)]}),at===null?null:(0,P.jsx)(le,{tone:`danger`,title:d(`sessions/new/notCreated`),message:at})]})}export{tt as default};
|
|
@@ -0,0 +1 @@
|
|
|
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{t as r}from"./useI18n-T3BwAm0z.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{t as a}from"./Button-_R1oktDz.js";import{$ as o,J as s,r as c}from"./data-DsJQo1Qk.js";import{_ as l,g as u}from"./hosts-A0gEDScb.js";import{t as d}from"./Text-MPtQvYE-.js";import{t as f}from"./SchemaForm-uhkLDWDC.js";import{ct as p,gt as m,nt as h,pt as g,rt as _}from"./index-ddqm5vYD.js";import{t as v}from"./PageAlert-B8ulCXV4.js";import{n as y}from"./actions-CFnmwNqb.js";var b=t();function x(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function S(e){let t={};for(let[n,r]of Object.entries(x(e?.properties)??{})){let e=x(r);if(e===null||Array.isArray(e.enum)&&e.enum.length===1)continue;let{"x-choices":i,...a}=e;t[n]=Array.isArray(i)?{...a,"x-enumOptions":i.map(x).filter(e=>e!==null&&typeof e.value==`string`).map(e=>({value:e.value,label:typeof e.title==`string`?e.title:e.value,...typeof e.description==`string`?{description:e.description}:{}}))}:a}return{type:`object`,properties:t}}function C(e){let t={};for(let[n,r]of Object.entries(e))if(typeof r==`string`)r.trim()!==``&&(t[n]=r.trim());else if(Array.isArray(r)){let e=r.filter(e=>typeof e!=`string`||e.trim()!==``).map(e=>typeof e==`string`?e.trim():e);e.length>0&&(t[n]=e)}else r!=null&&(t[n]=r);return t}function w(e){let t=e.trim();if(t===``)return`nameEmpty`;if(/[\\/?]/.test(t))return`nameSlash`;if(t===`.`||t===`..`)return`nameDots`}var T=e();function E({host:e}){let t=i(),{t:x}=r(),E=g(l(),h),D=u(),[O,k]=(0,b.useState)(e),A=n(c(O).offers)??s,j=A.providers[_]?.manifest,M=o()===`multi`&&E.length>1,N=(0,b.useMemo)(()=>({type:`object`,properties:{...M?{host:{type:`string`,title:x(`computers/new/host`),enum:E,"x-enumOptions":E.map(e=>({value:e,label:D(e)}))}}:{},name:{type:`string`,title:x(`computers/new/name`),description:x(`computers/new/nameHint`)},...S(j).properties}}),[M,E,D,j,x]),[P,F]=(0,b.useState)({host:e}),I=typeof P.name==`string`?P.name:``,L=e=>{if(typeof e.host==`string`&&e.host!==O){k(e.host),m(e.host),F({host:e.host,name:e.name});return}F(e)},[R,z]=(0,b.useState)(!1),[B,V]=(0,b.useState)(null);if(!y(A,`write`))return(0,T.jsx)(v,{tone:`warning`,message:x(`computers/new/noCreate`)});let H=w(I);return(0,T.jsxs)(`div`,{className:`web-page web-form`,children:[(0,T.jsx)(d,{variant:`h2`,text:x(`computers/commands/new`)}),(0,T.jsx)(f,{schema:N,value:P,onChange:L,errors:H===void 0||H===`nameEmpty`?{}:{name:x(`computers/new/${H}`)},jsonTextRoot:!1}),B===null?null:(0,T.jsx)(v,{tone:`danger`,message:B}),(0,T.jsxs)(`div`,{className:`web-page__actions`,children:[(0,T.jsx)(a,{label:x(`computers/new/create`),variant:`primary`,disabled:H!==void 0||R,onClick:()=>{z(!0),V(null);let e=I.trim(),{name:n,host:r,...i}=P;p(O,A,e,C(i)).then(()=>{t.surfaces.close(`computer:new`),t.commands.execute(`ahp.openComputer`,{host:O,id:e})},e=>{V(e instanceof Error?e.message:String(e)),z(!1)})}}),(0,T.jsx)(a,{label:x(`computers/new/cancel`),onClick:()=>t.surfaces.close(`computer:new`)})]})]})}export{E as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./useI18n-T3BwAm0z.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./Tree-DoJ8zO-u.js";import{Bt as i,Rt as a,zt as o}from"./index-ddqm5vYD.js";var s=e();function c({mount:e}){let t=n(),r=a(e.props?.title??t.components.get(e.component.component)?.props?.title);return(0,s.jsx)(`span`,{title:r,children:r||e.key})}function l(){let e=n(),{t:a}=t(),l=o(`main`),u=i().surfaces.main?.activeContainerKey??null,d=l.map(t=>{let n=t.props?.icon??e.components.get(t.component.component)?.props?.icon;return{key:t.key,label:(0,s.jsx)(c,{mount:t}),...n===void 0?{}:{icon:n},data:t,trailing:(0,s.jsx)(`button`,{type:`button`,className:`web-open-editors__close`,title:a(`folders/openEditors/close`),"aria-label":a(`folders/openEditors/close`),onClick:n=>{n.stopPropagation(),e.surfaces.requestClose(t.key)},children:`✕`})}});return(0,s.jsx)(r,{nodes:d,selectedKey:u,onSelect:t=>e.surfaces.focus(t.key),emptyState:(0,s.jsx)(`p`,{className:`web-note web-explorer__empty`,children:a(`folders/openEditors/empty`)})})}export{l as default};
|
|
@@ -0,0 +1 @@
|
|
|
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{l as r,t as i}from"./useI18n-T3BwAm0z.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./Button-_R1oktDz.js";import{a as s}from"./locales-DOA2j2AT.js";import{$ as c,F as l,I as u,it as d,r as f,s as p,t as m}from"./data-DsJQo1Qk.js";import{t as h}from"./Badge-BDEW5PFb.js";import{t as g}from"./Spinner-CBEPv0eM.js";import{t as _}from"./Markdown-_Awuh7Ku.js";import{t as v}from"./Alert-BhdRA0LL.js";import{t as y}from"./Text-MPtQvYE-.js";import{t as b}from"./DetailList-Yalgw0YM.js";import{Ct as x,St as S,Tt as C,_t as w,wt as T,xt as E}from"./index-ddqm5vYD.js";import{n as D}from"./HostLines-CtIqw3A0.js";import{r as O}from"./turn-z1TPlA5Q.js";import{t as k}from"./PageAlert-B8ulCXV4.js";import{t as A}from"./channel-BWOXaftf.js";import{a as j,i as M,r as N,t as P}from"./actions-CkDFjYZd.js";var F=t(),I=e(),L={running:`info`,failed:`danger`,on:`success`,off:`default`},R={pending:`default`,running:`info`,completed:`success`,failed:`danger`,cancelled:`default`};function z(e){let t=e;if(String(t.kind)!==`trigger`)return r(`automations/origin/byHand`);let n=t.catchUp===!0?`catchUp`:`scheduled`;return t.scheduledFor===void 0?r(`automations/origin/${n}`):r(`automations/origin/${n}For`,{time:T(t.scheduledFor)})}var B=e=>(0,I.jsx)(`span`,{className:`web-lines`,children:e.map((e,t)=>(0,I.jsx)(`span`,{children:e},t))});function V(e,t){let{definition:n}=t,i=n.session,a=i.workingDirectories??[],o=n.triggers.filter(e=>`schedule`in e),l=n.triggers.filter(e=>!(`schedule`in e)),d=(n.disableConditions??[]).map(e=>`max`in e?s(`automations/facts/afterRuns`,e.max):r(`automations/facts/afterDate`,{date:T(e.date)})),f=[...c()===`multi`?[{label:r(`common/host`),value:(0,I.jsx)(D,{host:e})}]:[],{label:r(`automations/facts/agent`),value:i.provider??r(`automations/defaults/host`)},{label:r(`automations/facts/model`),value:i.model?.id??r(`automations/defaults/agent`)}];a.length>0&&f.push({label:r(`automations/facts/folder`),value:B(a.map(u))}),i.config!==void 0&&Object.keys(i.config).length>0&&f.push({label:r(`automations/facts/settings`),value:B(Object.entries(i.config).map(([e,t])=>`${e}: ${String(t)}`))});for(let e of o)`schedule`in e&&(f.push({label:r(`automations/facts/schedule`),value:B([w(e.schedule.expression),(0,I.jsx)(`span`,{className:`web-method`,children:`${e.schedule.expression} \u{00B7} ${e.schedule.timeZone}`},`raw`)])}),f.push({label:r(`automations/facts/missedRuns`),value:r(String(e.misfirePolicy)===`runOnce`?`automations/facts/runOnce`:`automations/facts/skipped`)}));o.length===0&&l.length===0&&f.push({label:r(`automations/facts/schedule`),value:r(`automations/facts/byHandOnly`)});for(let e of l)`schedule`in e||f.push({label:r(`automations/facts/event`),value:`${e.title}${e.events.length===0?``:`: ${e.events.map(e=>e.title).join(`, `)}`}`});return d.length>0&&f.push({label:r(`automations/facts/turnsOff`),value:B(d)}),t.nextRunAt!==void 0&&n.enabled&&f.push({label:r(`automations/facts/nextRun`),value:T(t.nextRunAt)}),f.push({label:r(`automations/facts/runs`),value:String(t.runCount??t.runs.length)}),(t.customizations?.length??0)>0&&f.push({label:r(`automations/facts/customizations`),value:String(t.customizations?.length)}),f.push({label:r(`automations/facts/created`),value:T(t.createdAt)},{label:r(`automations/facts/changed`),value:T(t.modifiedAt)}),f}function H({host:e,resource:t}){let r=a(),{t:s}=i(),{state:c,error:u}=A(e,m,d),w=n(f(e).automationCaps),[D,B]=(0,F.useState)(null);if(u!==null)return(0,I.jsx)(k,{tone:`danger`,title:s(`automations/notices/none`),message:u});if(c===void 0)return(0,I.jsx)(g,{label:s(`automations/notices/reading`)});let H=c.entries.find(e=>e.resource===t);if(H===void 0)return(0,I.jsx)(k,{tone:`warning`,message:s(`automations/notices/gone`)});let U=e=>H.operations.map(String).includes(e),W=x(H),G=S(H),K=e=>B(e instanceof Error?e.message:String(e));return(0,I.jsxs)(`div`,{className:`web-page`,children:[(0,I.jsxs)(`div`,{className:`web-page__head`,children:[(0,I.jsxs)(`div`,{className:`web-chat__title`,children:[(0,I.jsx)(y,{variant:`h2`,text:C(H)}),(0,I.jsx)(h,{tone:L[W],text:s(`automations/state/${W}`)})]}),(0,I.jsxs)(`div`,{className:`web-page__actions`,children:[U(`run`)?(0,I.jsx)(o,{label:s(`automations/actions/runNow`),variant:`primary`,onClick:()=>void M(e,H).catch(K)}):null,U(`update`)?(0,I.jsx)(o,{label:s(H.definition.enabled?`automations/actions/turnOff`:`automations/actions/turnOn`),onClick:()=>j(e,H,!H.definition.enabled)}):null,U(`update`)?(0,I.jsx)(o,{label:s(`automations/actions/edit`),onClick:()=>void r.commands.execute(`ahp.editAutomation`,{host:e,resource:H.resource})}):null,U(`remove`)?(0,I.jsx)(o,{label:s(`automations/actions/delete`),onClick:()=>void N(e,H)}):null]})]}),D===null?null:(0,I.jsx)(v,{tone:`danger`,message:D}),(0,I.jsx)(b,{items:V(e,H),columns:2}),(0,I.jsx)(y,{variant:`h3`,text:s(`automations/page/message`)}),(0,I.jsx)(`div`,{className:`web-automation__message`,children:(0,I.jsx)(_,{text:H.definition.message.text})}),(0,I.jsx)(y,{variant:`h3`,text:s(`automations/page/runs`)}),G.length===0?(0,I.jsx)(`p`,{className:`web-note`,children:s(`automations/page/noRuns`)}):(0,I.jsxs)(`table`,{className:`web-runs`,children:[(0,I.jsx)(`thead`,{children:(0,I.jsxs)(`tr`,{children:[(0,I.jsx)(`th`,{children:s(`automations/page/columns/status`)}),(0,I.jsx)(`th`,{children:s(`automations/page/columns/how`)}),(0,I.jsx)(`th`,{children:s(`automations/page/columns/started`)}),(0,I.jsx)(`th`,{children:s(`automations/page/columns/took`)}),(0,I.jsx)(`th`,{children:s(`automations/page/columns/tokens`)}),(0,I.jsx)(`th`,{})]})}),(0,I.jsx)(`tbody`,{children:G.map(t=>{let n=E(t),i=R[n.status],a=i===void 0?{tone:`default`,text:n.status}:{tone:i,text:s(`automations/run/${n.status}`)},c=n.status===`running`||n.status===`pending`;return(0,I.jsxs)(`tr`,{children:[(0,I.jsxs)(`td`,{children:[(0,I.jsx)(h,{tone:a.tone,text:a.text}),n.error===void 0?null:(0,I.jsx)(`div`,{className:`web-note`,children:n.error})]}),(0,I.jsx)(`td`,{children:z(t.origin)}),(0,I.jsx)(`td`,{children:T(n.at)}),(0,I.jsx)(`td`,{children:n.took===void 0?``:l(n.took)}),(0,I.jsx)(`td`,{children:n.input===void 0&&n.output===void 0?``:`\u{2191}${O(n.input??0)} \u{2193}${O(n.output??0)}`}),(0,I.jsxs)(`td`,{className:`web-runs__actions`,children:[t.primarySession===void 0?null:(0,I.jsx)(o,{label:s(`automations/page/openSession`),size:`sm`,onClick:()=>void r.commands.execute(`ahp.openSession`,{host:e,resource:t.primarySession})}),c&&w?.runCancellation!==void 0?(0,I.jsx)(o,{label:s(`automations/page/stop`),size:`sm`,onClick:()=>P(e,t.resource)}):null]})]},t.resource)})})]}),H.runsNextCursor===void 0?null:(0,I.jsx)(o,{label:s(`automations/page/loadOlder`),onClick:()=>void p(e).request(`fetchAutomationRuns`,{channel:m,automation:H.resource,cursor:H.runsNextCursor}).catch(K)})]})}export{H as default};
|
|
@@ -0,0 +1 @@
|
|
|
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{r}from"./colors-BieSUSt7.js";import{l as i,t as a}from"./useI18n-T3BwAm0z.js";import{t as o}from"./Button-_R1oktDz.js";import{$ as s,J as c,r as l,s as u}from"./data-DsJQo1Qk.js";import{t as d}from"./Badge-BDEW5PFb.js";import{t as f}from"./Spinner-CBEPv0eM.js";import{t as p}from"./Text-MPtQvYE-.js";import{t as m}from"./DetailList-Yalgw0YM.js";import{at as h,lt as g,ot as _,st as v,tt as y,ut as b,wt as x}from"./index-ddqm5vYD.js";import{n as S}from"./HostLines-CtIqw3A0.js";import{t as C}from"./PageAlert-B8ulCXV4.js";import{t as w}from"./channel-BWOXaftf.js";import{n as T,t as E}from"./actions-CFnmwNqb.js";var D=e();function O({value:e=0,max:t=100,label:n,display:i,color:a,indeterminate:o,height:s,style:c,className:l}){let u=t>0?t:100,d=Math.max(0,Math.min(100,e/u*100)),f={"--oo-progress-color":a?r(a):`var(--oo-color-accent-rgb, 0 102 204)`,"--oo-progress-height":s?`${s}px`:void 0,...c},p=i===`value`?`${e} / ${u}`:i===`percent`?`${Math.round(d)}%`:i;return(0,D.jsxs)(`div`,{className:[`oo-progress`,l].filter(Boolean).join(` `),style:f,children:[n||p?(0,D.jsxs)(`div`,{className:`oo-progress__head`,children:[n?(0,D.jsx)(`span`,{className:`oo-progress__label`,children:n}):null,p?(0,D.jsx)(`span`,{className:`oo-progress__value`,children:p}):null]}):null,(0,D.jsx)(`div`,{className:`oo-progress__track`,role:`progressbar`,"aria-valuenow":o?void 0:e,"aria-valuemin":0,"aria-valuemax":u,"aria-valuetext":n,children:o?(0,D.jsx)(`div`,{className:`oo-progress__bar oo-progress__bar--indet`}):(0,D.jsx)(`div`,{className:`oo-progress__bar`,style:{width:`${d}%`}})})]})}var k=t();function A(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}var j=e=>typeof e==`number`&&Number.isFinite(e)?e:void 0;function M(e){let t;try{t=A(e===null?null:JSON.parse(e))}catch{return null}if(t===null||t.running!==!0)return null;let n=A(t.cpu),r=A(t.memory),i=j(r?.used),a=j(r?.limit);if(i===void 0||a===void 0)return null;let o=A(t.network),s=A(t.block),c=j(o?.rx),l=j(o?.tx),u=j(s?.read),d=j(s?.write),f=j(n?.cores),p=j(t.pids);return{cpu:{percent:j(n?.percent)??0,...f===void 0?{}:{cores:f}},memory:{used:i,limit:a,percent:j(r?.percent)??(a===0?0:i/a*100)},...p===void 0?{}:{pids:p},...c===void 0||l===void 0?{}:{network:{rx:c,tx:l}},...u===void 0||d===void 0?{}:{block:{read:u,write:d}}}}var N=[`B`,`KiB`,`MiB`,`GiB`,`TiB`];function P(e){let t=e,n=0;for(;t>=1024&&n<N.length-1;)t/=1024,n+=1;return`${n===0||t>=10?Math.round(t):t.toFixed(1)} ${N[n]}`}var F={running:`success`,problem:`danger`,stopped:`default`},I=5e3;function L(e,t){let n=s()===`multi`?[{label:i(`common/host`),value:(0,D.jsx)(S,{host:e})}]:[],r=(e,t)=>{t!==void 0&&n.push({label:i(`computers/facts/${e}`),value:t})};return r(`image`,t.image),r(`destination`,t.destination),r(`command`,t.command),r(`workdir`,t.workdir),r(`network`,t.network),r(`cores`,t.cores===void 0?void 0:String(t.cores)),r(`memoryLimit`,t.memoryLimit===void 0?void 0:P(t.memoryLimit)),r(`exitCode`,t.running||t.exitCode===void 0?void 0:String(t.exitCode)),r(`started`,t.startedAt===void 0?void 0:x(t.startedAt)),r(`created`,t.created===void 0?void 0:x(t.created)),r(`container`,t.containerId?.slice(0,12)),r(`pid`,t.pid===void 0?void 0:String(t.pid)),n}function R({usage:e}){let{t}=a(),n=[];e.pids!==void 0&&n.push({label:t(`computers/usage/pids`),value:String(e.pids)}),e.network!==void 0&&n.push({label:t(`computers/usage/network`),value:`\u{2193} ${P(e.network.rx)} \u{00B7} \u{2191} ${P(e.network.tx)}`}),e.block!==void 0&&n.push({label:t(`computers/usage/disk`),value:`\u{2193} ${P(e.block.read)} \u{00B7} \u{2191} ${P(e.block.write)}`});let r=Math.round(e.cpu.percent),i=Math.round(e.memory.percent);return(0,D.jsxs)(`div`,{className:`web-usage`,children:[(0,D.jsxs)(`div`,{className:`web-usage__meter`,children:[(0,D.jsx)(`span`,{className:`web-usage__label`,children:e.cpu.cores===void 0?t(`computers/usage/cpu`,{percent:r}):t(`computers/usage/cpuOf`,{percent:r,cores:e.cpu.cores})}),(0,D.jsx)(O,{value:Math.min(r,100),max:100,color:r>=85?`red`:r>=65?`orange`:`blue`})]}),(0,D.jsxs)(`div`,{className:`web-usage__meter`,children:[(0,D.jsx)(`span`,{className:`web-usage__label`,children:t(`computers/usage/memory`,{used:P(e.memory.used),limit:P(e.memory.limit),percent:i})}),(0,D.jsx)(O,{value:Math.min(i,100),max:100,color:i>=85?`red`:i>=65?`orange`:`blue`})]}),n.length===0?null:(0,D.jsx)(m,{items:n,columns:3})]})}function z({host:e,machine:t}){let{t:r}=a(),{state:i,error:s}=w(e,y,_),x=n(l(e).offers)??c,S=i?.records.find(e=>e.id===t),O=S!==void 0&&g(S.record).running,[A,j]=(0,k.useState)(null);if((0,k.useEffect)(()=>{if(!O||t===void 0){j(null);return}let n=`${h(v(x),t)}/stats`,r=!0,i=()=>{u(e).readText(n).then(({text:e})=>{r&&j(M(e))},()=>{r&&j(null)})};i();let a=window.setInterval(i,I);return()=>{r=!1,window.clearInterval(a)}},[e,t,O,x]),s!==null)return(0,D.jsx)(C,{tone:`danger`,title:r(`computers/notices/none`),message:s});if(i===void 0)return(0,D.jsx)(f,{label:r(`computers/notices/reading`)});if(S===void 0||t===void 0)return(0,D.jsx)(C,{tone:`warning`,message:r(`computers/notices/gone`)});let N=g(S.record),P=b(N),z=N.controlled&&T(x,`write`);return(0,D.jsxs)(`div`,{className:`web-page`,children:[(0,D.jsxs)(`div`,{className:`web-page__head`,children:[(0,D.jsxs)(`div`,{className:`web-chat__title`,children:[(0,D.jsx)(p,{variant:`h2`,text:t}),(0,D.jsx)(d,{tone:F[P],text:N.oomKilled?r(`computers/standing/oom`):r(`computers/standing/${P}`)})]}),(0,D.jsxs)(`div`,{className:`web-page__actions`,children:[z?N.running?(0,D.jsx)(o,{label:r(`computers/actions/stop`),onClick:()=>void E(e,x,t,`stop`)}):(0,D.jsx)(o,{label:r(`computers/actions/start`),variant:`primary`,onClick:()=>void E(e,x,t,`start`)}):null,z&&N.running?(0,D.jsx)(o,{label:r(`computers/actions/restart`),onClick:()=>void E(e,x,t,`restart`)}):null,N.controlled&&T(x,`delete`)?(0,D.jsx)(o,{label:r(`computers/actions/remove`),onClick:()=>void E(e,x,t,`remove`)}):null]})]}),N.oomKilled?(0,D.jsx)(C,{tone:`warning`,message:r(`computers/notices/oom`)}):null,(0,D.jsx)(m,{items:L(e,N),columns:2}),A===null?null:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(p,{variant:`h3`,text:r(`computers/page/usage`)}),(0,D.jsx)(R,{usage:A})]}),N.mounts.length===0?null:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(p,{variant:`h3`,text:r(`computers/page/mounts`)}),(0,D.jsx)(`ul`,{className:`web-mounts`,children:N.mounts.map(e=>(0,D.jsxs)(`li`,{children:[(0,D.jsx)(`span`,{className:`web-method`,children:e.source}),` → `,(0,D.jsx)(`span`,{className:`web-method`,children:e.target}),e.readOnly?(0,D.jsx)(d,{tone:`default`,text:r(`computers/page/readOnly`)}):null]},`${e.source}\u{0000}${e.target}`))})]}),(0,D.jsxs)(`details`,{className:`web-record`,children:[(0,D.jsx)(`summary`,{children:r(`computers/page/record`)}),(0,D.jsx)(`pre`,{children:JSON.stringify(S.record.status,null,2)})]})]})}export{z as default};
|
|
@@ -0,0 +1,3 @@
|
|
|
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{l as r,t as i}from"./useI18n-T3BwAm0z.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./Button-_R1oktDz.js";import{a as s}from"./locales-DOA2j2AT.js";import{B as c,C as l,F as u,I as d,Q as f,S as p,T as m,b as h,ot as g,r as _,s as v,u as y}from"./data-DsJQo1Qk.js";import{t as b}from"./emojis-B4zHbUyk.js";import{t as x}from"./ContextMenu-DlF_3KO_.js";import{t as S}from"./Badge-BDEW5PFb.js";import{t as C}from"./Spinner-CBEPv0eM.js";import{t as w}from"./Markdown-_Awuh7Ku.js";import{t as T}from"./Alert-BhdRA0LL.js";import{t as E,u as D}from"./Composer-DYocj0Ot.js";import{t as O}from"./Text-MPtQvYE-.js";import{s as k}from"./terminal-Ctk6FYnN.js";import{b as A,h as ee,m as j,y as te}from"./composer-commands-CzjP_L_C.js";import{t as ne}from"./state-DQKzjLgu.js";import{t as re}from"./save-file-CirO0l-u.js";import{a as M,n as N,r as P,t as F}from"./turn-z1TPlA5Q.js";import{t as I}from"./CopyButton-BSesWpVW.js";import{n as L,r as R,t as ie}from"./clicks-BeeNCvCP.js";import{t as ae}from"./PageAlert-B8ulCXV4.js";import{t as oe}from"./channel-BWOXaftf.js";import{o as se,t as z}from"./Bood-Dg-XtOTh.js";var B=t(),V=(0,B.createContext)(null),H=(0,B.createContext)(null);function U(){let e=(0,B.useContext)(H);if(e===null)throw Error(`A transcript part is drawn outside a session page.`);return e}var W={picked:[],text:``,other:!1};function G(e){return String(e.kind)===`boolean`?[{id:`yes`,label:r(`sessions/question/yes`)},{id:`no`,label:r(`sessions/question/no`)}]:`options`in e?e.options:[]}function ce(e){let t=String(e.kind);return t===`single-select`||t===`multi-select`||t===`boolean`}function le(e){return`allowFreeformInput`in e&&e.allowFreeformInput===!0}function ue(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 de(e){let t=e?.value;if(t===void 0)return W;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{...W,text:String(t.value??``)};case`boolean`:return{...W,picked:[t.value===!0?`yes`:`no`]};case`selected`:return r({...W,picked:[String(t.value)]});case`selected-many`:return r({...W,picked:Array.isArray(t.value)?t.value.map(String):[]});default:return W}}function fe(e,t){let n=t?.value;if(n===void 0)return r(`sessions/question/skipped`);let i=t=>G(e).find(e=>e.id===t)?.label??t,a=n.freeformValues??[];switch(n.kind){case`boolean`:return r(n.value===!0?`sessions/question/yes`:`sessions/question/no`);case`selected`:return[i(String(n.value)),...a].join(`, `);case`selected-many`:return[...Array.isArray(n.value)?n.value.map(e=>i(String(e))):[],...a].join(`, `);default:return String(n.value??``)}}var K=e(),q=new Map;function pe(e,t){return q.has(`${e}\u0000${t}`)}var me=`The agent has a question`,he={"single-select":`single`,"multi-select":`multi`,text:`text`,number:`number`,integer:`number`};function ge(e){let t=he[String(e.kind)],n=le(e),i=t===void 0?n?`other`:void 0:n?`${t}Other`:t;if(i===void 0)return e.required===!0?``:r(`sessions/question/hint/optional`);let a=r(`sessions/question/hint/${i}`);return e.required===!0?a:r(`sessions/question/hint/withOptional`,{hint:a})}function _e({question:e,draft:t,set:n,next:r}){let{t:a}=i(),o=String(e.kind),s=o===`multi-select`,c=e=>{n(s?{...t,picked:t.picked.includes(e)?t.picked.filter(t=>t!==e):[...t.picked,e]}:{...t,picked:[e],other:!1})},l=e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),r())};return ce(e)?(0,K.jsxs)(`div`,{className:`web-ask__options`,role:s?`group`:`radiogroup`,children:[G(e).map((e,n)=>{let r=t.picked.includes(e.id);return(0,K.jsxs)(`button`,{type:`button`,className:`web-ask__option`,role:s?`checkbox`:`radio`,"aria-checked":r,"data-on":r,onClick:()=>c(e.id),children:[(0,K.jsx)(`span`,{className:`web-ask__mark`,"data-many":s,"aria-hidden":`true`}),(0,K.jsxs)(`span`,{className:`web-ask__option-body`,children:[(0,K.jsxs)(`span`,{className:`web-ask__option-label`,children:[(0,K.jsx)(`span`,{className:`web-ask__key`,children:n+1}),e.label,e.recommended===!0?(0,K.jsx)(`span`,{className:`web-ask__tag`,children:a(`sessions/question/recommended`)}):null]}),e.description===void 0?null:(0,K.jsx)(`span`,{className:`web-ask__option-hint`,children:e.description})]})]},e.id)}),le(e)?(0,K.jsxs)(`div`,{className:`web-ask__option web-ask__other`,"data-on":t.other,children:[(0,K.jsx)(`button`,{type:`button`,className:`web-ask__mark`,"data-many":s,role:s?`checkbox`:`radio`,"aria-checked":t.other,"aria-label":a(`sessions/question/other`),onClick:()=>n({...t,other:!t.other||!s,...s?{}:{picked:[]}})}),(0,K.jsx)(`input`,{className:`web-field`,value:t.text,placeholder:a(`sessions/question/otherPlaceholder`),onFocus:()=>{t.other||n({...t,other:!0,...s?{}:{picked:[]}})},onChange:e=>n({...t,text:e.target.value,other:!0,...s?{}:{picked:[]}}),onKeyDown:l})]}):null]}):o===`number`||o===`integer`?(0,K.jsx)(`input`,{className:`web-field`,type:`number`,autoFocus:!0,value:t.text,onChange:e=>n({...t,text:e.target.value}),onKeyDown:l}):(0,K.jsx)(`textarea`,{className:`web-field web-ask__text`,rows:3,autoFocus:!0,value:t.text,placeholder:a(`sessions/question/yourAnswer`),onChange:e=>n({...t,text:e.target.value}),onKeyDown:l})}function ve({request:e,send:t,live:n,response:r}){let{t:a}=i(),c=`${U()}\u0000${e.id}`,l=e.questions??[],[u,d]=(0,B.useState)(()=>Object.fromEntries(l.map(t=>[t.id,de(e.answers?.[t.id])]))),[f,p]=(0,B.useState)(0),[m,h]=(0,B.useState)(()=>q.get(c)??null),g=Object.fromEntries(l.flatMap(e=>{let t=ue(e,u[e.id]??W);return t===void 0?[]:[[e.id,t]]})),_=l.filter(e=>e.required===!0&&g[e.id]===void 0),v=e.message!==void 0&&e.message!==me?e.message:void 0,y=n=>{let r={response:n,answers:n===`accept`?g:{}};q.set(c,r),h(r),t({type:`chat/inputCompleted`,requestId:e.id,response:n,...n===`accept`&&Object.keys(g).length>0?{answers:g}:{}})},b=r??m?.response;if(b!==void 0||!n){let t=m?.answers??e.answers??{},i=m!==null&&r===void 0&&n;return(0,K.jsxs)(`div`,{className:`web-ask`,"data-done":`true`,children:[(0,K.jsxs)(`div`,{className:`web-ask__head`,children:[(0,K.jsx)(`span`,{className:`web-ask__title`,children:a(b===`decline`?`sessions/question/declined`:b===void 0?`sessions/question/unanswered`:`sessions/question/answered`)}),i?(0,K.jsx)(`span`,{className:`web-note`,children:a(`sessions/question/sending`)}):null]}),b===`accept`?(0,K.jsx)(`dl`,{className:`web-ask__summary`,children:l.map(e=>(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{children:e.title??e.message}),(0,K.jsx)(`dd`,{children:fe(e,t[e.id])})]},e.id))}):null]})}let x=l[f],S=f>=l.length-1,C=x===void 0?void 0:g[x.id],T=x!==void 0&&x.required===!0&&C===void 0,E=()=>{T||(S?_.length===0&&y(`accept`):p(f+1))};return(0,K.jsxs)(`div`,{className:`web-ask`,tabIndex:-1,onKeyDown:e=>{let t=e.target;if(x===void 0||t.closest(`input, textarea`)!==null||!/^[1-9]$/.test(e.key))return;let n=G(x)[Number(e.key)-1];if(n===void 0)return;let r=u[x.id]??W,i=String(x.kind)===`multi-select`,a=i?r.picked.includes(n.id)?r.picked.filter(e=>e!==n.id):[...r.picked,n.id]:[n.id];d({...u,[x.id]:{...r,picked:a,...i?{}:{other:!1}}})},children:[(0,K.jsxs)(`div`,{className:`web-ask__head`,children:[(0,K.jsxs)(`span`,{className:`web-ask__title`,children:[(0,K.jsx)(`span`,{className:`web-ask__icon`,"aria-hidden":`true`,children:`?`}),a(v===void 0?`sessions/question/asks`:`sessions/question/asksColon`)]}),l.length>1?(0,K.jsxs)(`span`,{className:`web-ask__steps`,"aria-label":a(`sessions/question/step`,{page:f+1,total:l.length}),children:[l.map((e,t)=>(0,K.jsx)(`button`,{type:`button`,className:`web-ask__step`,"data-here":t===f,"data-done":g[e.id]!==void 0,title:e.title??e.message,onClick:()=>p(t)},e.id)),(0,K.jsx)(`span`,{className:`web-ask__count`,children:a(`sessions/question/count`,{page:f+1,total:l.length})})]}):null]}),v===void 0?null:(0,K.jsx)(`div`,{className:`web-ask__message`,children:(0,K.jsx)(w,{text:v})}),e.url===void 0?null:(0,K.jsx)(`a`,{className:`web-link`,href:e.url,target:`_blank`,rel:`noreferrer`,children:e.url}),x===void 0?null:(0,K.jsxs)(`section`,{className:`web-ask__question`,children:[x.title===void 0?null:(0,K.jsx)(`span`,{className:`web-ask__chip`,children:x.title}),(0,K.jsx)(`div`,{className:`web-ask__text-line`,children:x.message}),(0,K.jsx)(`div`,{className:`web-ask__hint`,children:ge(x)}),(0,K.jsx)(_e,{question:x,draft:u[x.id]??W,set:e=>d({...u,[x.id]:e}),next:E})]},x.id),(0,K.jsxs)(`div`,{className:`web-ask__actions`,children:[(0,K.jsx)(o,{label:a(`sessions/question/decline`),size:`sm`,onClick:()=>y(`decline`)}),(0,K.jsx)(`span`,{className:`web-ask__spacer`}),f>0?(0,K.jsx)(o,{label:a(`sessions/question/back`),size:`sm`,onClick:()=>p(f-1)}):null,S?(0,K.jsx)(o,{label:a(`sessions/question/answer`),variant:`primary`,size:`sm`,disabled:_.length>0,onClick:()=>y(`accept`)}):(0,K.jsx)(o,{label:a(`sessions/question/next`),variant:`primary`,size:`sm`,disabled:T,onClick:E})]}),S&&_.length>0&&!T?(0,K.jsx)(`p`,{className:`web-note`,children:s(`sessions/question/missing`,_.length)}):null]})}var ye=[`command`,`file_path`,`path`,`pattern`,`query`,`url`,`description`],be=`ahpd.startedAt`,xe=`ahpd.durationMs`;function Se(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 Ce(e){let t=Se(e);return t===void 0?``:typeof t==`string`?t:JSON.stringify(t,null,2)}function we(e){let t=Se(e);if(typeof t!=`object`||!t)return``;let n=t;for(let e of ye){let t=n[e];if(typeof t==`string`&&t.trim()!==``)return t.trim().split(`
|
|
2
|
+
`)[0]}return``}function Te(e){let t=Se(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 Ee(e){let t=(e.status===`completed`||e.status===`pending-result-confirmation`?c(e.pastTenseMessage):``)||c(`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=we(e);return r===``?n:`${n} ${r}`}function De(e){let t=e._meta?.[xe];return typeof t==`number`?t:void 0}function Oe(e){let t=e._meta?.[be];if(typeof t!=`string`)return;let n=Date.parse(t);return Number.isNaN(n)?void 0:n}var ke={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 Ae(e){let t=e._meta?.toolKind;if(t===`terminal`||t===`read`||t===`search`||t===`subagent`)return t;let n=ke[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 je(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 Me=e=>e.replace(/\u001b\[[0-9;?]*[ -/]*[@-~]/g,``);function Ne(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??r(`sessions/details/terminal`)),text:Me(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:d(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 if(t===`subagent`){let t=e.agentName??e.title;n.push({kind:`note`,text:t==null?r(`sessions/tool/ranSubagent`):r(`sessions/tool/ran`,{name:String(t)})})}else t===`resource`&&n.push({kind:`note`,text:r(`sessions/tool/read`,{path:d(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={denied:`denied`,skipped:`skipped`,"result-denied":`resultDenied`}[String(e.reason)]??`cancelledNote`;n.push({kind:`note`,text:c(e.reasonMessage)||r(`sessions/tool/${t}`)})}return n}var Pe=/\[([^\]]+)\]\(([^)\s]+)\)|`([^`]+)`/g;function Fe(e,t){let n=[],r=0;for(let t of e.matchAll(Pe))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 J=`pending-confirmation`,Ie=`pending-result-confirmation`,Y={preparing:{glyph:b.pending,label:`sessions/tool/preparing`},approval:{glyph:b.waiting,label:`sessions/tool/approval`},running:{glyph:b.running,label:`sessions/tool/running`},"sign-in":{glyph:b.waiting,label:`sessions/tool/signIn`},review:{glyph:b.waiting,label:`sessions/tool/review`},done:{glyph:b.check,label:`sessions/tool/done`},failed:{glyph:b.cross,label:`sessions/tool/failed`},cancelled:{glyph:b.cross,label:`sessions/tool/cancelled`}};function Le(){return ie(a(),U(),(0,B.useContext)(V))}var Re={terminal:b.terminal,read:b.read,search:b.search,edit:b.edit,subagent:b.subagent,web:b.web,other:b.dot};function ze({line:e,file:t}){let n=a(),{t:r}=i(),o=(0,B.useContext)(V);return(0,K.jsx)(`span`,{className:`web-tool__line`,children:Fe(e,t).map((e,t)=>{let i=e.href===void 0?null:e.code===!0?L(e.href,o):R(e.href,o);if(i===null)return e.code===!0?(0,K.jsx)(`code`,{children:e.text},t):(0,K.jsx)(`span`,{children:e.text},t);let a=e=>{e.stopPropagation(),e.preventDefault(),n.commands.execute(`ahp.openFile`,{uri:i.uri,line:i.line,end:i.end})};return(0,K.jsx)(`span`,{role:`link`,tabIndex:0,className:`web-tool__ref`,title:r(`sessions/attachments/open`,{name:d(i.uri)}),onClick:a,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&a(e)},children:e.text},t)})})}function X({title:e,text:t}){return(0,K.jsxs)(`section`,{className:`web-tool__block`,children:[(0,K.jsxs)(`div`,{className:`web-tool__block-head`,children:[(0,K.jsx)(`span`,{children:e}),(0,K.jsx)(I,{text:t})]}),(0,K.jsx)(`pre`,{className:`web-tool__pre`,children:t})]})}function Be({out:e}){let t=a(),{t:n}=i();switch(e.kind){case`text`:return(0,K.jsx)(X,{title:n(`sessions/tool/output`),text:e.text});case`terminal`:{let t=e.exitCode===void 0?``:` \u{00B7} ${n(`sessions/tool/exit`,{code:e.exitCode})}`;return(0,K.jsx)(X,{title:`${e.title}${t}${e.truncated?` \u{00B7} ${n(`sessions/tool/cutShort`)}`:``}`,text:e.text===``?n(`sessions/tool/noOutput`):e.text})}case`file`:return(0,K.jsxs)(`p`,{className:`web-tool__file`,children:[(0,K.jsx)(`button`,{type:`button`,className:`web-link`,title:e.before===void 0&&e.after===void 0?n(`sessions/tool/openFile`):n(`sessions/tool/openChange`),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,K.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,e.added]}),e.removed===void 0?null:(0,K.jsxs)(`span`,{className:`web-diff--remove`,children:[`-`,e.removed]})]});case`note`:return(0,K.jsx)(`p`,{className:`web-note`,children:e.text})}}function Ve({call:e,send:t,live:n,turnId:r}){let s=je(e),c=n&&(s===`approval`||s===`review`||s===`sign-in`),[l,f]=(0,B.useState)(!1),p=l||c,m=De(e),h=Ce(e),g=Ne(e),_=e.displayName||e.toolName,v=e.status===J?e.riskAssessment:void 0,y=Te(e),b=a(),{t:x}=i(),S=x(Y[s].label);return(0,K.jsxs)(`div`,{className:`web-tool`,"data-outcome":s,children:[(0,K.jsxs)(`button`,{type:`button`,className:`web-tool__row`,"aria-expanded":p,title:S,onClick:()=>f(!l),children:[(0,K.jsx)(`span`,{className:`web-tool__mark`,"aria-label":S,children:Re[Ae(e)]}),(0,K.jsx)(ze,{line:Ee(e),file:y}),s===`failed`||s===`cancelled`?(0,K.jsx)(`span`,{className:`web-tool__state`,children:S}):null,m===void 0||m<1e3?null:(0,K.jsx)(`span`,{className:`web-tool__time`,children:u(m)})]}),p?(0,K.jsxs)(`div`,{className:`web-tool__body`,children:[(0,K.jsxs)(`dl`,{className:`web-tool__facts`,children:[(0,K.jsx)(`dt`,{children:x(`sessions/tool/tool`)}),(0,K.jsxs)(`dd`,{children:[(0,K.jsx)(`code`,{children:e.toolName}),_===e.toolName?null:` (${_})`]}),(0,K.jsx)(`dt`,{children:x(`sessions/tool/status`)}),(0,K.jsx)(`dd`,{children:S}),y===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:x(`sessions/tool/file`)}),(0,K.jsx)(`dd`,{children:(0,K.jsx)(`button`,{type:`button`,className:`web-link`,onClick:()=>void b.commands.execute(`ahp.openFile`,{uri:y}),children:d(y)})})]}),e.intention===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:x(`sessions/tool/why`)}),(0,K.jsx)(`dd`,{children:e.intention})]}),v===void 0||v.status!==`complete`?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:x(`sessions/tool/risk`)}),(0,K.jsx)(`dd`,{children:`${x(`sessions/tool/safety`,{safety:v.safety})} \u{00B7} ${v.reason}`})]})]}),h===``?null:(0,K.jsx)(X,{title:x(`sessions/tool/arguments`),text:h}),g.map((e,t)=>(0,K.jsx)(Be,{out:e},t)),n&&e.status===J?(0,K.jsx)(Ue,{call:e,send:t,turnId:r}):null,n&&e.status===Ie?(0,K.jsxs)(`div`,{className:`web-tool__actions`,children:[(0,K.jsx)(o,{label:x(`sessions/tool/acceptResult`),variant:`primary`,onClick:()=>t({type:`chat/toolCallResultConfirmed`,turnId:r,toolCallId:e.toolCallId,approved:!0})}),(0,K.jsx)(o,{label:x(`sessions/tool/reject`),onClick:()=>t({type:`chat/toolCallResultConfirmed`,turnId:r,toolCallId:e.toolCallId,approved:!1})})]}):null]}):null]})}function He({text:e,running:t}){let{t:n}=i(),[r,a]=(0,B.useState)(!1),o=e.replace(/[*_`#>]/g,``).replace(/\s+/g,` `).trim();return(0,K.jsxs)(`div`,{className:`web-tool`,"data-outcome":t?`running`:`thought`,children:[(0,K.jsxs)(`button`,{type:`button`,className:`web-tool__row`,"aria-expanded":r,onClick:()=>a(!r),children:[(0,K.jsx)(`span`,{className:`web-tool__mark`,"aria-hidden":`true`,children:b.thinking}),(0,K.jsx)(`span`,{className:`web-tool__line`,children:r?n(`sessions/activity/thinking`):n(`sessions/tool/thinkingAbout`,{text:o})})]}),r?(0,K.jsx)(`div`,{className:`web-tool__body web-md`,children:(0,K.jsx)(w,{text:e})}):null]})}function Ue({call:e,send:t,turnId:n}){let{t:r}=i(),a=r=>t({type:`chat/toolCallConfirmed`,turnId:n,toolCallId:e.toolCallId,approved:!0,confirmed:`user-action`,...r===void 0?{}:{selectedOptionId:r}}),s=r=>t({type:`chat/toolCallConfirmed`,turnId:n,toolCallId:e.toolCallId,approved:!1,reason:`denied`,...r===void 0?{}:{selectedOptionId:r}}),l=e.status===J?e.options??[]:[],u=e.status===J?c(e.confirmationTitle):``;return(0,K.jsxs)(`div`,{className:`web-tool__confirm`,children:[u===``?null:(0,K.jsx)(w,{text:u}),(0,K.jsx)(`div`,{className:`web-tool__actions`,children:l.length===0?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(o,{label:r(`sessions/tool/approve`),variant:`primary`,onClick:()=>a()}),(0,K.jsx)(o,{label:r(`sessions/tool/deny`),onClick:()=>s()})]}):l.map(e=>(0,K.jsx)(o,{label:e.label,...e.kind===`approve`?{variant:`primary`}:{},onClick:()=>e.kind===`approve`?a(e.id):s(e.id)},e.id))})]})}var We=(0,B.memo)(function({part:e,send:t,live:n,turnId:r}){let o=Le(),s=a(),{t:l}=i();switch(String(e.kind)){case`markdown`:return`content`in e?(0,K.jsx)(`div`,{className:`web-md`,onClick:o,children:(0,K.jsx)(w,{text:e.content})}):null;case`contentRef`:{let t=`uri`in e?String(e.uri):``;return(0,K.jsx)(`button`,{type:`button`,className:`web-chip`,onClick:()=>void s.commands.execute(`ahp.openFile`,{uri:t}),children:`${b.file} ${d(t).split(`/`).pop()??t}`})}case`reasoning`:return`content`in e&&e.content!==``?(0,K.jsx)(He,{text:e.content,running:!1}):null;case`toolCall`:return`toolCall`in e?(0,K.jsx)(Ve,{call:e.toolCall,send:t,live:n,turnId:r}):null;case`inputRequest`:return`request`in e?(0,K.jsx)(ve,{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,K.jsx)(T,{tone:`danger`,message:`error`in e&&e.error.message!==``?e.error.message:l(`sessions/tool/agentError`)});case`systemNotification`:return(0,K.jsx)(`p`,{className:`web-note`,children:`content`in e?c(e.content):``});default:return null}}),Ge=60,Ke=e=>typeof e==`object`&&!!e;function qe(e){return typeof e==`string`?JSON.stringify(e):Array.isArray(e)?`[…]`:Ke(e)?`{…}`:String(e)}function Je(e,t=Ge){let n=Array.isArray(e)?e.map(qe):Object.entries(e).map(([e,t])=>`${e}: ${qe(t)}`),[r,i]=Array.isArray(e)?[`(${String(e.length)}) [`,`]`]:[`{`,`}`],a=``;for(let e of n){let n=a===``?e:`${a}, ${e}`;if(n.length>t)return`${r}${a===``?e.slice(0,t):a}, …${i}`;a=n}return`${r}${a}${i}`}var Ye=e=>e===null?`null`:typeof e;function Xe({name:e,value:t,depth:n}){let[r,i]=(0,B.useState)(n===0),a=e===null?null:(0,K.jsx)(`span`,{className:`web-json__key`,children:e});if(!Ke(t))return(0,K.jsxs)(`li`,{className:`web-json__row`,children:[a,a===null?null:`: `,(0,K.jsx)(`span`,{className:`web-json__leaf`,"data-kind":Ye(t),children:qe(t)})]});let o=Array.isArray(t)?t.map((e,t)=>[String(t),e]):Object.entries(t);return(0,K.jsxs)(`li`,{className:`web-json__row`,children:[(0,K.jsxs)(`button`,{type:`button`,className:`web-json__branch`,"aria-expanded":r,onClick:()=>i(!r),children:[(0,K.jsx)(`span`,{className:`web-json__caret`,"aria-hidden":`true`,children:r?`▾`:`▸`}),a,a===null?null:`: `,(0,K.jsx)(`span`,{className:`web-json__preview`,children:Je(t)})]}),r?(0,K.jsx)(`ul`,{className:`web-json__children`,children:o.map(([e,t])=>(0,K.jsx)(Xe,{name:e,value:t,depth:n+1},e))}):null]})}function Ze({value:e}){return(0,K.jsx)(`ul`,{className:`web-json`,children:(0,K.jsx)(Xe,{name:null,value:e,depth:0})})}function Qe(e){let t=e;switch(String(e.kind)){case`markdown`:case`reasoning`:{let n=typeof t.content==`string`?t.content:``;return n.trim()===``?null:{kind:String(e.kind)===`markdown`?`text`:`reasoning`,text:n}}case`toolCall`:{let e=t.toolCall;return{kind:`tool`,text:Ee(e),call:e}}case`inputRequest`:{let e=t.request;return{kind:`question`,text:e?.message??e?.questions?.[0]?.message??``}}case`error`:return{kind:`error`,text:t.error?.message??``};case`contentRef`:return{kind:`file`,text:typeof t.uri==`string`?t.uri:``};default:return{kind:`note`,text:c(t.content??``)}}}function $e(e,t,n){let{responseParts:r,...i}=e,a=[{id:`${e.id}:1`,kind:`message`,step:1,text:e.message.text,source:e.message}];for(let t of r){let n=Qe(t);if(n===null)continue;let r=a.length+1;a.push({id:`${e.id}:${String(r)}`,step:r,source:t,...n})}return{id:e.id,index:t,live:n,facts:F(e),source:i,steps:a}}function et(e,t){let n=e.map((e,t)=>$e(e,t+1,!1));return t===void 0?n:[...n,$e(t,e.length+1,!0)]}function tt(e,t,n){return t===`all`?[...e]:e.filter(e=>e.call!==void 0&&(t===`tools`||n.has(e.call.toolCallId)))}var nt={message:b.send,text:b.markdown,reasoning:b.thinking,question:b.waiting,error:b.cross,note:b.dot,file:b.file},rt=[`all`,`tools`,`subagents`],it=e=>{try{return JSON.stringify(e,null,2)??String(e)}catch{return String(e)}};function at(e,t){let{startedAt:n,duration:r,model:i,input:a,output:o}=e.facts;return[n===void 0?void 0:M(n),r===void 0?void 0:u(r),i,a===void 0&&o===void 0?void 0:t(`sessions/raw/tokens`,{input:P(a??0),output:P(o??0)}),e.live?t(`sessions/raw/live`):void 0].filter(e=>e!==void 0).join(` · `)}function ot({view:e,setView:t,source:n}){let{t:r}=i();return(0,K.jsxs)(`div`,{className:`web-raw__views`,role:`radiogroup`,"aria-label":r(`sessions/raw/view`),children:[[`formatted`,`raw`,`json`].map((n,i)=>(0,K.jsxs)(`span`,{className:`web-raw__view-item`,children:[i===0?null:(0,K.jsx)(`span`,{className:`web-raw__view-gap`,"aria-hidden":`true`,children:`/`}),(0,K.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":e===n,className:`web-raw__view`,"data-on":e===n?`true`:void 0,onClick:()=>t(n),children:r(`sessions/raw/views/${n}`)})]},n)),(0,K.jsx)(I,{text:it(n)})]})}function st({view:e,source:t}){return e===`raw`?(0,K.jsx)(`pre`,{className:`web-tool__pre`,children:it(t)}):(0,K.jsx)(`div`,{className:`web-raw__tree`,children:(0,K.jsx)(Ze,{value:t})})}function ct({turn:e,view:t,setView:n}){let{t:r}=i(),[a,o]=(0,B.useState)(!1),{startedAt:s,duration:c,model:l,input:d,output:f,cacheRead:p,tools:m}=e.facts;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`button`,{type:`button`,className:`web-raw__turn-head`,"aria-expanded":a,onClick:()=>o(!a),children:[(0,K.jsx)(`span`,{className:`web-raw__turn-title`,children:r(`sessions/raw/turn`,{n:e.index})}),(0,K.jsx)(`span`,{className:`web-note`,children:at(e,r)})]}),a?(0,K.jsxs)(`div`,{className:`web-raw__body`,children:[(0,K.jsx)(ot,{view:t,setView:n,source:e.source}),t===`formatted`?(0,K.jsxs)(`dl`,{className:`web-tool__facts`,children:[s===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:r(`sessions/raw/started`)}),(0,K.jsx)(`dd`,{children:M(s)})]}),c===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:r(`sessions/raw/took`)}),(0,K.jsx)(`dd`,{children:u(c)})]}),l===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:r(`sessions/raw/model`)}),(0,K.jsx)(`dd`,{children:l})]}),d===void 0&&f===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:r(`sessions/raw/tokenLabel`)}),(0,K.jsx)(`dd`,{children:r(`sessions/raw/tokens`,{input:P(d??0),output:P(f??0)})})]}),p===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:r(`sessions/raw/cacheRead`)}),(0,K.jsx)(`dd`,{children:P(p)})]}),(0,K.jsx)(`dt`,{children:r(`sessions/raw/stepCount`)}),(0,K.jsx)(`dd`,{children:e.steps.length}),(0,K.jsx)(`dt`,{children:r(`sessions/raw/toolCount`)}),(0,K.jsx)(`dd`,{children:m})]}):(0,K.jsx)(st,{view:t,source:e.source})]}):null]})}function lt({step:e,turn:t,subagent:n,onOpenChat:r,view:a,setView:o}){let{t:s}=i(),[c,l]=(0,B.useState)(!1),d=e.call,f=d===void 0?void 0:je(d),p=d===void 0?void 0:De(d),m=d===void 0?void 0:Oe(d),h=d===void 0?``:Ce(d),g=d===void 0?nt[e.kind]:Re[Ae(d)],_=e.text.replace(/\s+/g,` `).trim();return(0,K.jsxs)(`li`,{className:`web-raw__step`,"data-kind":e.kind,...f===void 0?{}:{"data-outcome":f},children:[(0,K.jsxs)(`button`,{type:`button`,className:`web-raw__row`,"aria-expanded":c,onClick:()=>l(!c),children:[(0,K.jsx)(`span`,{className:`web-raw__n`,children:e.step}),(0,K.jsx)(`span`,{className:`web-raw__icon`,"aria-hidden":`true`,children:g}),d===void 0?(0,K.jsx)(`span`,{className:`web-raw__line`,children:_===``?s(`sessions/raw/kind/${e.kind}`):_}):(0,K.jsx)(ze,{line:e.text,file:Te(d)}),f===void 0?null:(0,K.jsx)(`span`,{className:`web-raw__state`,title:s(Y[f].label),children:Y[f].glyph}),p===void 0?null:(0,K.jsx)(`span`,{className:`web-raw__time`,children:u(p)})]}),c?(0,K.jsxs)(`div`,{className:`web-raw__body`,children:[(0,K.jsx)(ot,{view:a,setView:o,source:e.source}),a===`formatted`?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`dl`,{className:`web-tool__facts`,children:[(0,K.jsx)(`dt`,{children:s(`sessions/raw/kindLabel`)}),(0,K.jsx)(`dd`,{children:s(`sessions/raw/kind/${e.kind}`)}),(0,K.jsx)(`dt`,{children:s(`sessions/raw/place`)}),(0,K.jsx)(`dd`,{children:s(`sessions/raw/placeValue`,{turn:t.index,step:e.step})}),d===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:s(`sessions/tool/tool`)}),(0,K.jsxs)(`dd`,{children:[(0,K.jsx)(`code`,{children:d.toolName}),d.displayName&&d.displayName!==d.toolName?` (${d.displayName})`:null]}),(0,K.jsx)(`dt`,{children:s(`sessions/tool/status`)}),(0,K.jsx)(`dd`,{children:s(Y[f].label)}),m===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:s(`sessions/raw/started`)}),(0,K.jsx)(`dd`,{children:M(m)})]}),p===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:s(`sessions/raw/took`)}),(0,K.jsx)(`dd`,{children:u(p)})]})]})]}),d===void 0?e.text===``?null:(0,K.jsx)(X,{title:s(`sessions/raw/kind/${e.kind}`),text:e.text}):(0,K.jsxs)(K.Fragment,{children:[h===``?null:(0,K.jsx)(X,{title:s(`sessions/tool/arguments`),text:h}),Ne(d).map((e,t)=>(0,K.jsx)(Be,{out:e},t))]}),n===void 0?null:(0,K.jsx)(`button`,{type:`button`,className:`web-link`,onClick:()=>r(n),children:s(`sessions/raw/openSubagent`)})]}):(0,K.jsx)(st,{view:a,source:e.source})]}):null]})}function ut({turns:e,filter:t,onFilter:n,spawned:r,onOpenChat:a}){let{t:o}=i(),[s,c]=(0,B.useState)(`formatted`),l=e.map(e=>({turn:e,steps:tt(e.steps,t,r)})).filter(e=>e.steps.length>0);return(0,K.jsxs)(`div`,{className:`web-raw`,children:[(0,K.jsx)(`div`,{className:`web-raw__filters`,role:`radiogroup`,"aria-label":o(`sessions/raw/filter`),children:rt.map(e=>(0,K.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":t===e,className:`web-chip`,"data-on":t===e?`true`:void 0,onClick:()=>n(e),children:o(`sessions/raw/filters/${e}`)},e))}),l.length===0?(0,K.jsx)(`p`,{className:`web-note`,children:o(`sessions/raw/none`)}):l.map(({turn:e,steps:t})=>(0,K.jsxs)(`section`,{className:`web-raw__turn`,children:[(0,K.jsx)(ct,{turn:e,view:s,setView:c}),(0,K.jsx)(`ol`,{className:`web-raw__steps`,children:t.map(t=>(0,K.jsx)(lt,{step:t,turn:e,subagent:t.call===void 0?void 0:r.get(t.call.toolCallId),onOpenChat:a,view:s,setView:c},t.id))})]},e.id))]})}function dt(e,t){return e.filter(e=>String(e.claim.kind)===`session`&&e.claim.session===t).map(e=>e.resource)}function ft(e){return e.filter(e=>String(e.origin?.kind)===`tool`&&String(e.interactivity??`full`)!==`hidden`)}function pt(e){let t=l(e.status);return t===`running`||t===`input`}function mt(e){let t=(`content`in e&&Array.isArray(e.content)?e.content:[]).find(e=>e.type===`subagent`&&typeof e.resource==`string`)?.resource;if(typeof t==`string`)return t;let n=e._meta?.subagentChatUri;return typeof n==`string`&&n!==``?n:void 0}var ht=[`preparing`,`running`,`approval`,`sign-in`,`review`];function gt(e,t){return(t===void 0?e:[...e,t]).flatMap(e=>e.responseParts.flatMap(n=>String(n.kind)===`toolCall`&&`toolCall`in n?[{call:n.toolCall,live:e===t}]:[]))}function _t(e,t,n){let r=new Map;for(let{call:n,live:i}of gt(e,t)){let e=mt(n);if(e===void 0)continue;let t=r.get(e),a=i&&ht.includes(je(n));r.set(e,{chat:e,title:t?.title??n.displayName??n.toolName,running:(t?.running??!1)||a})}for(let e of ft(n)){let t=r.get(e.resource);r.set(e.resource,{chat:e.resource,title:e.title===``?t?.title??``:e.title,running:(t?.running??!1)||pt(e)})}return[...r.values()]}function vt(e,t,n,r){let i=new Map;for(let{call:n}of gt(e,t)){let e=mt(n);e!==void 0&&i.set(n.toolCallId,e)}for(let e of ft(n)){let t=e.origin;t?.chat===r&&t?.toolCallId!==void 0&&!i.has(t.toolCallId)&&i.set(t.toolCallId,e.resource)}return i}function yt(e,t,r){let i=n(_(e).host)?.terminals??[],a=dt(i,t),o=i.map(e=>e.resource).filter(e=>!a.includes(e)),s=o.join(`
|
|
3
|
+
`),[c,l]=(0,B.useState)([]);return(0,B.useEffect)(()=>{if(r===void 0||o.length===0){l([]);return}let t=!0;return Promise.all(o.map(t=>v(e).readOnce(t).then(e=>k(e?.cwd,r)?t:null,()=>null))).then(e=>{t&&l(e.filter(e=>e!==null))}),()=>{t=!1}},[e,s,r]),[...a,...c]}function bt({host:e,summary:t,session:n,chat:r,chatUri:o,onChat:c,onSubagent:l,raw:u,onRaw:d,calls:f}){let p=a(),{t:m}=i(),[h,g]=(0,B.useState)(null),_=t.changes,v=yt(e,t.resource,t.workingDirectories?.[0]),y=n?.chats??[],S=_t(r?.turns??[],r?.activeTurn,y),C=S.filter(e=>e.running).length,w=ft(y),T=y.filter(e=>!w.includes(e)),E=T.findIndex(e=>e.resource===o),D=w.some(e=>e.resource===o),O=(e,t)=>{p.commands.execute(e,t)},k=(e,t)=>{let n=e.currentTarget.getBoundingClientRect();g({x:n.left,y:n.bottom,items:t})};return(0,K.jsxs)(`div`,{className:`web-chat__tools`,children:[_?.files===void 0||_.files===0?null:(0,K.jsxs)(`button`,{type:`button`,className:`web-chat__tool`,title:s(`sessions/header/files`,_.files),onClick:()=>O(`ahp.showRight.changes:explorer`),children:[(0,K.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,_.additions??0]}),(0,K.jsxs)(`span`,{className:`web-diff--remove`,children:[`−`,_.deletions??0]})]}),v.length===0?null:(0,K.jsx)(`button`,{type:`button`,className:`web-chat__tool`,title:s(`sessions/header/terminals`,v.length),onClick:()=>v.length===1?O(`ahp.openTerminal`,{uri:v[0]}):O(`ahp.showRight.session:details`),children:`${b.terminal} ${String(v.length)}`}),S.length===0?null:(0,K.jsx)(`button`,{type:`button`,className:`web-chat__tool`,"data-live":C>0?`true`:void 0,"data-on":D?`true`:void 0,title:C>0?m(`sessions/header/subagentsRunning`,{running:C,total:S.length}):s(`sessions/header/subagents`,S.length),"aria-haspopup":`menu`,onClick:e=>k(e,S.map((e,t)=>({title:e.title===``?m(`sessions/header/subagentN`,{n:t+1}):e.title,...e.running?{description:m(`sessions/header/subagentRunning`)}:{},active:e.chat===o,onSelect:t=>{t.closeMenu(),l(e.chat)}}))),children:`${b.subagent} ${C>0?`${String(C)}/${String(S.length)}`:String(S.length)}`}),D&&T[0]!==void 0?(0,K.jsx)(`button`,{type:`button`,className:`web-chat__tool`,title:m(`sessions/header/backToChat`),onClick:()=>c(n?.defaultChat??T[0].resource),children:`↩`}):null,T.length<2?null:(0,K.jsx)(`button`,{type:`button`,className:`web-chat__tool`,title:m(`sessions/header/chats`),"aria-haspopup":`menu`,onClick:e=>k(e,T.map((e,t)=>({title:e.title===``?m(`sessions/header/chatN`,{n:t+1}):e.title,active:e.resource===o,onSelect:t=>{t.closeMenu(),c(e.resource)}}))),children:`${E<0?`–`:String(E+1)}/${String(T.length)} \u{25BE}`}),f?.hidden===!0?(0,K.jsx)(`button`,{type:`button`,className:`web-chat__tool`,"data-on":`true`,title:m(`sessions/header/showCalls`),onClick:()=>f.onHidden(!1),children:b.callsHidden}):null,u?(0,K.jsx)(`button`,{type:`button`,className:`web-chat__tool`,"data-on":`true`,title:m(`sessions/raw/back`),onClick:()=>d(!1),children:b.data}):null,(0,K.jsx)(`button`,{type:`button`,className:`web-chat__tool`,title:m(`sessions/header/view`),"aria-haspopup":`menu`,onClick:e=>k(e,[{title:m(`sessions/raw/button`),icon:b.data,active:u,onSelect:()=>d(!u)},...f===void 0?[]:[{title:m(`sessions/header/hideCalls`),icon:b.callsHidden,active:f.hidden,onSelect:()=>f.onHidden(!f.hidden)}]]),children:b.more}),h===null?null:(0,K.jsx)(x,{spec:{items:h.items},x:h.x,y:h.y,onClose:()=>g(null)})]})}var xt=new Set([`completed`,`cancelled`]),St=new Set([`pending-confirmation`,`pending-result-confirmation`,`auth-required`]);function Ct(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 wt(e,t,n){return e.kind===`tool`?n.ended||xt.has(String(e.call.status)):!(t&&n.live)}function Tt(e){return e.kind===`tool`&&St.has(String(e.call.status))}function Et(e){return e.kind===`tool`&&`success`in e.call&&e.call.success===!1}function Dt(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=Ct(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 Ot(e){let t=1/0,n=-1/0;for(let r of e){if(r.kind!==`tool`)continue;let e=Oe(r.call),i=De(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 kt=(e,t)=>e===void 0||e<1e3?void 0:t(e);function At(e,t){let n=[];if(e.done>0){n.push({text:s(`sessions/activity/completed`,e.done)}),e.failed>0&&n.push({text:` (${r(`sessions/activity/failed`,{count:e.failed})})`,failed:!0});let i=kt(e.took,t);i!==void 0&&n.push({text:` ${r(`sessions/activity/took`,{time:i})}`})}let i=e.doing;if(i!==void 0){let e;if(i.what===`thinking`)e=r(`sessions/activity/thinking`);else{let n=kt(i.for,t);e=n===void 0?r(`sessions/activity/${i.what}`,{name:i.name}):r(`sessions/activity/${i.what}For`,{name:i.name,time:n})}n.push({text:n.length>0?` \u{00B7} ${e}`:e})}return n}var Z=new Map,jt=new Map,Q=(e,t)=>`${e}\u0000${t}`;function Mt(e,t){t?Z.has(e)||Z.set(e,Date.now()):Z.has(e)&&!jt.has(e)&&jt.set(e,Date.now())}function Nt(e,t){let n=Z.get(e);return n===void 0?void 0:(jt.get(e)??t)-n}function Pt(e,t,n){if(t.kind===`reasoning`)return{what:`thinking`};let r=t.call.displayName||t.call.toolName,i=Nt(Q(e,t.key),n);return{what:Tt(t)?`waiting`:`working`,name:r,...i===void 0?{}:{for:i}}}function Ft({group:e,send:t,turnId:n}){i();let r=U(),[a,o]=(0,B.useState)(!1),[s,c]=(0,B.useState)(()=>Date.now()),l=e.steps.length-1,d=e.steps.map((t,n)=>wt(t,n===l,e)),f=d.lastIndexOf(!1),p=f<0?void 0:e.steps[f];Mt(Q(r,e.id),e.live),e.steps.forEach((e,t)=>Mt(Q(r,e.key),!d[t])),(0,B.useEffect)(()=>{if(p===void 0)return;let e=window.setInterval(()=>c(Date.now()),1e3);return()=>window.clearInterval(e)},[p?.key]);let m=e.live&&e.steps.some(Tt),h=a||m,g=d.filter(Boolean).length,_=p===void 0?s:Z.get(Q(r,p.key)),v=Z.get(Q(r,e.id)),y=e.live?v===void 0||_===void 0?void 0:_-v:Ot(e.steps)??Nt(Q(r,e.id),s)??e.turnMs,x=At({done:g,failed:e.steps.filter(Et).length,...y===void 0?{}:{took:y},...p===void 0?{}:{doing:Pt(r,p,s)}},u);return(0,K.jsxs)(`div`,{className:`web-activity`,"data-live":p!==void 0,children:[(0,K.jsxs)(`button`,{type:`button`,className:`web-activity__line`,"aria-expanded":h,onClick:()=>o(!a),children:[(0,K.jsx)(`span`,{children:x.map((e,t)=>e.failed?(0,K.jsx)(`span`,{className:`web-activity__failed`,children:e.text},t):e.text)}),(0,K.jsx)(`span`,{className:`web-activity__chev`,"aria-hidden":`true`,children:h?b.caretDown:b.caretRight})]}),h?(0,K.jsx)(`div`,{className:`web-activity__steps`,children:e.steps.map((r,i)=>r.kind===`tool`?(0,K.jsx)(Ve,{call:r.call,send:t,live:!e.ended,turnId:n},r.key):(0,K.jsx)(He,{text:r.text,running:!d[i]},r.key))}):null]})}function It(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}var $=e=>typeof e==`string`&&e!==``?e:void 0;function Lt(e){let t=It(e),n=$(t?.bot);if(t===null||n===void 0)return;let r=$(t.color);return{bot:n,name:$(t.name)??n,...r===void 0?{}:{color:r},labels:Array.isArray(t.labels)?t.labels.filter(e=>typeof e==`string`):[],body:$(t.body)??`robot`,kind:$(t.kind)??`direct`}}var Rt=e=>decodeURIComponent(e.replace(/[?#].*$/,``).replace(/\/+$/,``).split(`/`).pop()??e)||e;function zt(e,t){let n=[];e.message.text!==``&&n.push({kind:`said`,text:e.message.text});let r=null,i=()=>(r===null&&(r={kind:`reply`,texts:[],files:[],asks:[]},n.push(r)),r);for(let t of e.responseParts)switch(String(t.kind)){case`markdown`:{let e=`content`in t&&typeof t.content==`string`?t.content:``;e.trim()!==``&&i().texts.push(e);break}case`contentRef`:{let e=`uri`in t?String(t.uri):``;e!==``&&i().files.push({uri:e,name:Rt(e),...`contentType`in t&&typeof t.contentType==`string`?{contentType:t.contentType}:{}});break}case`inputRequest`:`request`in t&&i().asks.push(t);break;case`toolCall`:`toolCall`in t&&t.toolCall.status===`pending-confirmation`&&i().asks.push(t);break;case`systemNotification`:{let e=`content`in t?t.content:``,i=typeof e==`string`?e:It(e)?.markdown;typeof i==`string`&&i!==``&&n.push({kind:`notice`,text:i,tone:`quiet`}),r=null;break}case`error`:{let e=`error`in t?t.error.message:``;e!==``&&n.push({kind:`notice`,text:e,tone:`danger`}),r=null;break}}return!t&&!n.some(e=>e.kind===`reply`||e.kind===`notice`)&&n.push({kind:`noReply`}),n}function Bt({host:e,file:t}){let{t:n}=i(),[r,a]=(0,B.useState)(null);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`button`,{type:`button`,className:`web-botchat__file`,title:n(`bots/chat/download`,{name:t.name}),onClick:()=>{a(null),v(e).readBlob(t.uri,t.contentType??`application/octet-stream`).then(e=>re(t.name,e),e=>a(e instanceof Error?e.message:String(e)))},children:[(0,K.jsx)(`span`,{"aria-hidden":`true`,children:b.download}),(0,K.jsx)(`span`,{className:`web-botchat__file-name`,children:t.name})]}),r===null?null:(0,K.jsx)(`p`,{className:`web-botchat__failure`,children:r})]})}function Vt({host:e,mark:t,item:n,send:r,live:a,turnId:o}){let{t:s}=i();switch(n.kind){case`said`:return(0,K.jsx)(`div`,{className:`web-botchat__said`,children:n.text});case`reply`:return(0,K.jsxs)(`div`,{className:`web-botchat__reply`,children:[(0,K.jsx)(z,{body:t.body,color:t.color,width:28,still:!0}),(0,K.jsxs)(`div`,{className:`web-botchat__bubble`,children:[(0,K.jsx)(`span`,{className:`web-botchat__name`,style:{color:se(t.color)},children:t.name}),n.texts.map((e,t)=>(0,K.jsx)(`div`,{className:`web-md`,children:(0,K.jsx)(w,{text:e})},t)),n.files.map(t=>(0,K.jsx)(Bt,{host:e,file:t},t.uri)),n.asks.map((e,t)=>(0,K.jsx)(We,{part:e,send:r,live:a,turnId:o},t))]})]});case`notice`:return(0,K.jsx)(`p`,{className:`web-botchat__notice`,"data-tone":n.tone,children:n.text});case`noReply`:return(0,K.jsx)(`p`,{className:`web-botchat__notice`,"data-tone":`quiet`,children:s(`bots/chat/noReply`,{name:t.name})})}}function Ht({host:e,mark:t,summary:n,session:r,chat:a,chatUri:o,send:s,tools:c,rawView:u}){let{t:d}=i(),f=(0,B.useRef)(null),p=(0,B.useRef)(!0),m=a.state?.turns??[],h=a.state?.activeTurn,g=(h?.responseParts.length??0)+m.length,_=(0,B.useRef)(null);(0,B.useEffect)(()=>{p.current&&f.current?.scrollIntoView({block:`end`})},[g]),(0,B.useEffect)(()=>{let e=_.current;if(e===null)return;let t=new ResizeObserver(()=>{p.current&&f.current?.scrollIntoView({block:`end`})});return t.observe(e),()=>t.disconnect()},[]);let v=l(n.status),y=v===`running`||v===`input`,b=a.state?.activity??n.activity;return(0,K.jsxs)(`div`,{className:`web-chat web-botchat`,children:[(0,K.jsxs)(`header`,{className:`web-botchat__head`,children:[(0,K.jsx)(z,{body:t.body,color:t.color,width:36}),(0,K.jsx)(`h2`,{className:`web-botchat__title`,children:t.name}),c]}),(0,K.jsxs)(`div`,{ref:_,className:`web-botchat__turns`,onScroll:e=>{let t=e.currentTarget;p.current=t.scrollHeight-t.scrollTop-t.clientHeight<48},children:[r.error===null?null:(0,K.jsx)(T,{tone:`danger`,message:r.error}),a.error===null?null:(0,K.jsx)(T,{tone:`danger`,message:a.error}),o!==void 0&&a.state===void 0&&a.error===null?(0,K.jsx)(C,{label:d(`bots/chat/reading`)}):null,u??(0,K.jsxs)(K.Fragment,{children:[m.map(n=>zt(n,!1).map((r,i)=>(0,K.jsx)(Vt,{host:e,mark:t,item:r,send:s,live:!1,turnId:n.id},`${n.id}:${i}`))),h===void 0?null:zt(h,!0).map((n,r)=>(0,K.jsx)(Vt,{host:e,mark:t,item:n,send:s,live:!0,turnId:h.id},`${h.id}:${r}`))]}),a.state!==void 0&&m.length===0&&h===void 0?(0,K.jsx)(`p`,{className:`web-botchat__notice`,"data-tone":`quiet`,children:d(`bots/chat/empty`,{name:t.name})}):null,(0,K.jsx)(`div`,{ref:f})]}),y?(0,K.jsxs)(`p`,{className:`web-botchat__status`,children:[(0,K.jsx)(`span`,{className:`web-botchat__pulse`,"aria-hidden":`true`}),d(`bots/chat/working`,{name:t.name}),b==null||b===``?null:(0,K.jsx)(`span`,{className:`web-note`,children:` \u{00B7} ${b}`})]}):null,a.state===void 0||o===void 0?null:(0,K.jsx)(E,{host:e,chatUri:o,activeId:h?.id,activeStart:h?.startedAt,queued:a.state.queuedMessages,steering:a.state.steeringMessage,draft:a.state.draft,lastModel:m.at(-1)?.message.model?.id,lastUsage:m.at(-1)?.usage,config:r.state?.config,changesets:r.state?.changesets,summary:n,send:s,placeholder:d(`bots/chat/message`,{name:t.name}),steers:!0})]})}var Ut={cancelled:`sessions/turn/stopped`,error:`sessions/turn/failed`};function Wt(e){let[t,n]=(0,B.useState)(()=>Date.now());return(0,B.useEffect)(()=>{if(!e)return;let t=window.setInterval(()=>n(Date.now()),1e3);return()=>window.clearInterval(t)},[e]),t}function Gt({facts:e,state:t,live:n,text:r}){let{t:a}=i(),o=Wt(n),c=n?e.startedAt===void 0?void 0:o-e.startedAt:e.duration,l=[];e.startedAt!==void 0&&l.push(M(e.startedAt)),c!==void 0&&l.push(n?a(`sessions/turn/soFar`,{time:u(c)}):u(c)),(e.input!==void 0||e.output!==void 0)&&l.push(`\u{2191}${P(e.input??0)} \u{2193}${P(e.output??0)}`),e.cacheRead!==void 0&&e.cacheRead>0&&l.push(a(`sessions/turn/cached`,{tokens:P(e.cacheRead)})),e.model!==void 0&&l.push(e.model),e.tools>0&&l.push(s(`sessions/turn/toolCalls`,e.tools));let d=t===void 0?void 0:Ut[t];return(0,K.jsxs)(`div`,{className:`web-turn__facts`,children:[n||r===``?null:(0,K.jsx)(I,{text:r,label:a(`sessions/turn/copyReply`)}),l.join(` · `),d===void 0?null:(0,K.jsx)(`span`,{className:`web-turn__ended`,"data-state":t,children:a(d)})]})}var Kt=[];function qt({attachments:e}){let t=a(),{t:n}=i(),[r,o]=(0,B.useState)(null);return(0,K.jsxs)(`div`,{className:`web-turn__attached`,children:[e.map((e,r)=>{let i=e,a=typeof i.uri==`string`&&i.displayKind!==`directory`?i.uri:void 0,s=ee(e),c=(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{className:`web-attachment__icon`,children:j(e)}),(0,K.jsx)(`span`,{className:`web-attachment__label`,children:s})]});return te(e)?(0,K.jsx)(`button`,{type:`button`,className:`web-attachment`,title:n(`sessions/attachments/see`,{name:s}),onClick:()=>o(A(e)),children:c},r):a===void 0?(0,K.jsx)(`span`,{className:`web-attachment`,title:s,children:c},r):(0,K.jsx)(`button`,{type:`button`,className:`web-attachment`,title:n(`sessions/attachments/open`,{name:s}),onClick:()=>void t.commands.execute(`ahp.openFile`,{uri:a}),children:c},r)}),r===null?null:(0,K.jsx)(D,{preview:r,onClose:()=>o(null)})]})}var Jt=(0,B.memo)(function({turn:e,live:t,send:n,open:r=Kt,hideCalls:a=!1}){let{t:o}=i(),s=`state`in e?String(e.state):void 0,c=e.responseParts;return(0,K.jsxs)(`article`,{className:`web-turn`,children:[(0,K.jsxs)(`div`,{className:`web-turn__ask`,children:[e.message.text,e.message.attachments===void 0||e.message.attachments.length===0?null:(0,K.jsx)(qt,{attachments:e.message.attachments})]}),(0,K.jsxs)(`div`,{className:`web-turn__answer`,children:[Dt(c,t,F(e).duration).map(r=>r.kind===`activity`?a&&(r.ended||!r.steps.some(Tt))?null:(0,K.jsx)(Ft,{group:r,send:n,turnId:e.id},r.id):(0,K.jsx)(We,{part:r.part,send:n,live:t,turnId:e.id},r.index)),t?r.map(e=>(0,K.jsx)(ve,{request:e,send:n,live:!0,response:void 0},e.id)):null,t&&c.length===0?(0,K.jsx)(C,{label:o(`sessions/turn/working`)}):null]}),(0,K.jsx)(Gt,{facts:F(e),...s===void 0?{}:{state:s},live:t,text:N(e)})]})});function Yt({host:e,chatUri:t,cursor:n}){let{t:r}=i(),[a,s]=(0,B.useState)(!1),[c,l]=(0,B.useState)(null);return(0,K.jsxs)(`div`,{className:`web-chat__older`,children:[(0,K.jsx)(o,{label:r(a?`sessions/chat/loading`:`sessions/chat/older`),disabled:a,onClick:()=>{s(!0),l(null),v(e).request(`fetchTurns`,{channel:t,cursor:n}).catch(e=>l(e instanceof Error?e.message:String(e))).finally(()=>s(!1))}}),c===null?null:(0,K.jsx)(`span`,{className:`web-note`,children:c})]})}function Xt(e,t,n,r){let i=(0,B.useRef)({turn:void 0,requests:new Map});if(i.current.turn!==r?.id&&(i.current={turn:r?.id,requests:new Map}),r===void 0)return Kt;let a=new Set;for(let e of t??[])String(e.kind)===`chatInput`&&e.chat===n&&`request`in e&&(i.current.requests.set(e.id,e.request),a.add(e.id));for(let t of[...i.current.requests.keys()])!a.has(t)&&!pe(e,t)&&i.current.requests.delete(t);let o=new Set(r.responseParts.flatMap(e=>`request`in e?[e.request.id]:[])),s=[...i.current.requests.values()].filter(e=>!o.has(e.id));return s.length===0?Kt:s}function Zt({host:e,resource:t}){let r=a(),{t:o}=i(),s=n(_(e).sessions)?.find(e=>e.resource===t),c=oe(e,t,g),[u,d]=(0,B.useState)(void 0),b=(u!==void 0&&(c.state?.chats??[]).some(e=>e.resource===u)?u:void 0)??c.state?.defaultChat??s?.defaultChat,[x,w]=(0,B.useState)(!1),[D,k]=(0,B.useState)(`all`),[A,ee]=(0,B.useState)(!1),j=oe(e,b,f),te=(0,B.useRef)(null),re=(0,B.useRef)(!0),M=(0,B.useCallback)(t=>{b!==void 0&&v(e).dispatch(b,t)},[b]),N=j.state?.turns.length??0,P=Xt(e,c.state?.inputNeeded,b,j.state?.activeTurn),F=(j.state?.activeTurn?.responseParts??[]).reduce((e,t)=>e+1+(`content`in t&&typeof t.content==`string`?t.content.length:0),0);(0,B.useEffect)(()=>{re.current&&te.current?.scrollIntoView({block:`end`})},[N,F]),(0,B.useEffect)(()=>{t!==void 0&&r.store.get(`$/ahp/activeSession`)===void 0&&r.store.set(ne,{host:e,resource:t})},[r,e,t]);let I=s!==void 0&&!m(s.status);if((0,B.useEffect)(()=>{I&&t!==void 0&&v(e).dispatch(t,{type:`session/isReadChanged`,isRead:!0})},[I,t,N]),s===void 0)return(0,K.jsx)(ae,{tone:`warning`,message:o(`sessions/chat/gone`)});let L=t=>{if((c.state?.chats??[]).some(e=>e.resource===t)){d(t);return}let n=y(t);n!==null&&r.commands.execute(`ahp.openSession`,{host:e,resource:n})},R=Lt(s._meta)??Lt(c.state?._meta),ie=(0,K.jsx)(bt,{host:e,summary:s,session:c.state,chat:j.state,chatUri:b,onChat:d,onSubagent:L,raw:x,onRaw:w,...R===void 0?{calls:{hidden:A,onHidden:ee}}:{}}),se=x&&j.state!==void 0?(0,K.jsx)(ut,{turns:et(j.state.turns,j.state.activeTurn),filter:D,onFilter:k,spawned:vt(j.state.turns,j.state.activeTurn,c.state?.chats??[],b),onOpenChat:L}):null;if(R!==void 0)return(0,K.jsx)(H.Provider,{value:e,children:(0,K.jsx)(V.Provider,{value:s.workingDirectories?.[0]??null,children:(0,K.jsx)(Ht,{host:e,mark:R,summary:s,session:c,chat:j,chatUri:b,send:M,tools:ie,rawView:se})})});let z=l(s.status),U=String(c.state?.lifecycle??`ready`),W=j.state?.activity??s.activity;return(0,K.jsxs)(`div`,{className:`web-chat`,children:[(0,K.jsxs)(`header`,{className:`web-chat__head`,children:[(0,K.jsxs)(`div`,{className:`web-chat__head-row`,children:[(0,K.jsxs)(`div`,{className:`web-chat__title`,children:[(0,K.jsx)(O,{variant:`h2`,text:s.title===``?o(`sessions/untitled`):s.title}),(0,K.jsx)(S,{tone:h[z],text:p(z)})]}),ie]}),W===void 0||W===``?null:(0,K.jsx)(`span`,{className:`web-note web-chat__doing`,children:W})]}),(0,K.jsxs)(`div`,{className:`web-chat__turns`,onScroll:e=>{let t=e.currentTarget;re.current=t.scrollHeight-t.scrollTop-t.clientHeight<48},children:[U===`creating`?(0,K.jsx)(C,{label:o(`sessions/chat/starting`)}):null,U===`failed`?(0,K.jsx)(T,{tone:`danger`,title:o(`sessions/chat/notStarted`),message:c.state?.creationError?.message??o(`sessions/chat/noReason`)}):null,c.error===null?null:(0,K.jsx)(T,{tone:`danger`,title:o(`sessions/chat/sessionUnreadable`),message:c.error}),j.error===null?null:(0,K.jsx)(T,{tone:`danger`,title:o(`sessions/chat/chatUnreadable`),message:j.error}),b!==void 0&&j.state===void 0&&j.error===null?(0,K.jsx)(C,{label:o(`sessions/chat/reading`)}):null,b===void 0||j.state?.turnsNextCursor===void 0?null:(0,K.jsx)(Yt,{host:e,chatUri:b,cursor:j.state.turnsNextCursor}),(0,K.jsx)(H.Provider,{value:e,children:(0,K.jsx)(V.Provider,{value:s.workingDirectories?.[0]??null,children:se??(0,K.jsxs)(K.Fragment,{children:[j.state?.turns.map(e=>(0,K.jsx)(Jt,{turn:e,live:!1,send:M,hideCalls:A},e.id)),j.state?.activeTurn===void 0?null:(0,K.jsx)(Jt,{turn:j.state.activeTurn,live:!0,send:M,open:P,hideCalls:A})]})})}),j.state!==void 0&&N===0&&j.state.activeTurn===void 0?(0,K.jsx)(`p`,{className:`web-note`,children:o(`sessions/chat/empty`)}):null,(0,K.jsx)(`div`,{ref:te})]}),j.state===void 0||b===void 0?null:(0,K.jsx)(E,{host:e,chatUri:b,activeId:j.state.activeTurn?.id,activeStart:j.state.activeTurn?.startedAt,queued:j.state.queuedMessages,steering:j.state.steeringMessage,draft:j.state.draft,lastModel:j.state.turns.at(-1)?.message.model?.id,lastUsage:j.state.turns.at(-1)?.usage,config:c.state?.config,changesets:c.state?.changesets,summary:s,send:M})]})}export{Zt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.oo-progress{flex-direction:column;gap:4px;width:100%;display:flex}.oo-progress__head{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);justify-content:space-between;display:flex}.oo-progress__label{font-weight:500}.oo-progress__value{font-family:var(--oo-font-mono)}.oo-progress__track{width:100%;height:var(--oo-progress-height,6px);background:var(--oo-color-border);border-radius:9999px;overflow:hidden}.oo-progress__bar{background:rgb(var(--oo-progress-color));border-radius:9999px;height:100%;transition:width .3s}.oo-progress__bar--indet{width:30%;animation:1.4s linear infinite oo-progress-indet}@keyframes oo-progress-indet{0%{transform:translate(-100%)}to{transform:translate(400%)}}
|
|
@@ -0,0 +1 @@
|
|
|
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{t as r}from"./useI18n-T3BwAm0z.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{t as a}from"./Button-_R1oktDz.js";import{$ as o,r as s}from"./data-DsJQo1Qk.js";import{t as c}from"./emojis-B4zHbUyk.js";import{t as l}from"./Badge-BDEW5PFb.js";import{t as u}from"./StatusDot-CC7gdsot.js";import{t as d}from"./Spinner-CBEPv0eM.js";import{t as f}from"./Markdown-_Awuh7Ku.js";import{t as p}from"./Tree-DoJ8zO-u.js";import{t as m}from"./Text-MPtQvYE-.js";import{t as h}from"./DetailList-Yalgw0YM.js";import{t as g}from"./Modal-xWzwLA8s.js";import{i as _}from"./viewers--ctbhTPt.js";import{n as v}from"./HostLines-CtIqw3A0.js";import{a as y,i as b,n as x,r as S,s as C,t as w}from"./words-1m-GRHoT.js";import{t as T}from"./CopyButton-BSesWpVW.js";import{t as E}from"./clicks-BeeNCvCP.js";import{n as D}from"./text-D6GxOCYM.js";import{t as O}from"./PageAlert-B8ulCXV4.js";var k=t(),A=e(),j={plugin:c.plugin,directory:c.folder,mcpServer:c.mcpServer};function M(e){if(e!==void 0)return e.tone===`busy`?(0,A.jsx)(d,{size:12,label:e.text}):(0,A.jsx)(u,{tone:e.tone,label:e.text,className:`web-custom__state`})}function N({name:e,description:t,className:n}){let{t:i}=r();return(0,A.jsxs)(`span`,{className:n,onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:[(0,A.jsx)(T,{text:e,label:i(`agents/customizations/copyName`)}),t===``?null:(0,A.jsx)(T,{text:t,label:i(`agents/customizations/copyDescription`),icon:c.copyText})]})}function P(e,t){let n=M(t.state);return{key:`${e}/${t.id}`,label:(0,A.jsxs)(`span`,{className:`web-custom`,"data-enabled":t.enabled?`true`:`false`,title:t.line===``?t.label:`${t.label}: ${t.line}`,children:[(0,A.jsx)(`span`,{className:`web-custom__name`,children:t.label}),t.line===``?null:(0,A.jsx)(`span`,{className:`web-custom__line`,children:t.line}),t.flags.map(e=>(0,A.jsx)(`span`,{className:`web-custom__flag`,children:e},e)),(0,A.jsx)(N,{name:t.label,description:t.description,className:`web-custom__copies`})]}),...n===void 0?{}:{trailing:n},data:{name:t.label,copies:!0,description:t.description,flags:t.flags,...t.open===void 0?{}:{open:t.open}}}}function F(e){let t=M(e.state);return{key:e.id,icon:j[e.type]??c.dot,label:(0,A.jsxs)(`span`,{className:`web-custom`,"data-enabled":e.enabled?`true`:`false`,title:`${e.kind}: ${e.path}`,children:[(0,A.jsx)(`span`,{className:`web-custom__name`,children:e.name}),(0,A.jsx)(`span`,{className:`web-custom__line`,children:e.path}),e.meta.map(e=>(0,A.jsx)(`span`,{className:`web-custom__flag`,children:e},e))]}),...t===void 0?{}:{trailing:t},data:{name:e.name,copies:!1,description:e.path,flags:e.meta,...e.open===void 0?{}:{open:e.open}},...e.children.length===0?{}:{children:e.children.map(t=>P(e.id,t))}}}var I=e=>e.replace(/\/[^/]*$/,``);function L({host:e,uri:t}){let n=i(),{t:a}=r(),o=D(e,t);return o===null?(0,A.jsx)(d,{label:a(`agents/customizations/readingFile`)}):`error`in o||o.text===null?(0,A.jsx)(`p`,{className:`web-note`,children:a(`agents/customizations/unreadable`)}):(0,A.jsx)(`div`,{className:`web-md`,onClick:E(n,e,I(t)),children:(0,A.jsx)(f,{text:C(o.text)})})}function R({host:e,detail:t,onClose:n}){let o=i(),{t:s}=r(),c=t.open,l=c!==void 0&&(_(c.uri)===`md`||_(c.uri)===`markdown`);return(0,A.jsx)(g,{open:!0,title:t.name,onClose:n,children:(0,A.jsxs)(`div`,{className:`web-custom-detail`,children:[t.copies?(0,A.jsx)(N,{name:t.name,description:t.description,className:`web-custom-detail__copies`}):null,t.flags.length===0?null:(0,A.jsx)(`p`,{className:`web-custom-detail__flags`,children:t.flags.join(` · `)}),t.description===``?null:(0,A.jsx)(`p`,{children:t.description}),c===void 0?null:l?(0,A.jsx)(L,{host:e,uri:c.uri}):(0,A.jsx)(a,{label:s(`agents/customizations/openFile`),onClick:()=>{n(),o.commands.execute(`ahp.openFile`,{host:e,uri:c.uri,line:c.line})}})]})})}function z({host:e,items:t}){r();let[n,i]=(0,k.useState)(new Set),[a,o]=(0,k.useState)(null),[s,c]=(0,k.useState)(null);return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(p,{className:`web-customs`,nodes:x(t).map(F),selectedKey:a,expanded:n,onExpandedChange:i,onSelect:e=>{if(o(e.key),e.children!==void 0){let t=new Set(n);t.delete(e.key)||t.add(e.key),i(t)}else e.data!==void 0&&c(e.data)}}),s===null?null:(0,A.jsx)(R,{host:e,detail:s,onClose:()=>c(null)})]})}var B=new Set([`disabled`,`unconfigured`]);function V({host:e,provider:t}){let c=i(),{t:u}=r(),d=n(s(e).agents)??[],p=n(s(e).sessions)??[],g=d.find(e=>e.provider===t);if(g===void 0)return(0,A.jsx)(O,{tone:`warning`,message:u(`agents/page/gone`)});let _=w(g),x=y(g),C=p.filter(e=>e.provider===g.provider).length,T=[...o()===`multi`?[{label:u(`common/host`),value:(0,A.jsx)(v,{host:e})}]:[],{label:u(`agents/page/facts/provider`),value:(0,A.jsx)(`code`,{children:g.provider})},{label:u(`agents/page/facts/models`),value:b(g)},{label:u(`agents/page/facts/sessions`),value:String(C)},{label:u(`agents/page/facts/can`),value:_.length===0?u(`agents/page/oneChat`):_.join(`; `)}];return(0,A.jsxs)(`div`,{className:`web-page`,children:[(0,A.jsxs)(`div`,{className:`web-page__head`,children:[(0,A.jsxs)(`div`,{className:`web-chat__title`,children:[(0,A.jsx)(m,{variant:`h2`,text:g.displayName}),x.some(e=>e.required)?(0,A.jsx)(l,{tone:`warning`,text:u(`agents/page/needsSignIn`)}):null]}),(0,A.jsx)(`div`,{className:`web-page__actions`,children:(0,A.jsx)(a,{label:u(`agents/newSession`),variant:`primary`,onClick:()=>void c.commands.execute(`ahp.newSession`,{provider:g.provider})})})]}),g.description===``?null:(0,A.jsx)(f,{text:g.description}),(0,A.jsx)(h,{items:T,columns:2}),(0,A.jsx)(m,{variant:`h3`,text:u(`agents/page/models`)}),g.models.length===0?(0,A.jsx)(`p`,{className:`web-note`,children:u(`agents/page/noModels`)}):(0,A.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,A.jsx)(`thead`,{children:(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`th`,{children:u(`agents/page/columns/name`)}),(0,A.jsx)(`th`,{children:u(`agents/page/columns/id`)}),(0,A.jsx)(`th`,{children:u(`agents/page/columns/limits`)}),(0,A.jsx)(`th`,{})]})}),(0,A.jsx)(`tbody`,{children:g.models.map(e=>(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`td`,{children:e.name}),(0,A.jsx)(`td`,{children:(0,A.jsx)(`code`,{children:e.id})}),(0,A.jsx)(`td`,{children:S(e)}),(0,A.jsx)(`td`,{children:e.policyState!==void 0&&B.has(String(e.policyState))?u(`agents/page/policy/${String(e.policyState)}`):``})]},e.id))})]}),(g.customizations??[]).length===0?null:(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(m,{variant:`h3`,text:u(`agents/page/customizations`)}),(0,A.jsx)(z,{host:e,items:g.customizations})]}),x.length===0?null:(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(m,{variant:`h3`,text:u(`agents/page/signIn`)}),(0,A.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,A.jsx)(`thead`,{children:(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`th`,{children:u(`agents/page/columns/resource`)}),(0,A.jsx)(`th`,{children:u(`agents/page/columns/scopes`)}),(0,A.jsx)(`th`,{})]})}),(0,A.jsx)(`tbody`,{children:x.map(e=>(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`td`,{children:e.name}),(0,A.jsx)(`td`,{children:e.scopes}),(0,A.jsx)(`td`,{children:u(e.required?`agents/page/required`:`agents/page/optional`)})]},e.name))})]})]})]})}export{V as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./useStore-BQkzWMs-.js";import{t as n}from"./useI18n-T3BwAm0z.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{$ as a}from"./data-DsJQo1Qk.js";import{c as o}from"./hosts-A0gEDScb.js";import{t as s}from"./Spinner-CBEPv0eM.js";import{t as c}from"./Text-MPtQvYE-.js";import{t as l}from"./DetailList-Yalgw0YM.js";import{G as u,W as d,q as f,wt as p}from"./index-ddqm5vYD.js";import{n as m}from"./HostLines-CtIqw3A0.js";import{t as h}from"./PageAlert-B8ulCXV4.js";import{t as g}from"./channel-BWOXaftf.js";import{t as _}from"./Bood-Dg-XtOTh.js";var v=e();function y({host:e,slug:y}){let b=r(),{t:x}=n(),{state:S,error:C}=g(e,u,f),w=t(d)===o(e,y??``);if(C!==null)return(0,v.jsx)(h,{tone:`danger`,title:x(`bots/notices/none`),message:C});if(S===void 0)return(0,v.jsx)(s,{label:x(`bots/notices/reading`)});let T=S.bots.find(e=>e.id===y);if(T===void 0)return(0,v.jsx)(h,{tone:`warning`,message:x(`bots/notices/gone`)});let E=[...a()===`multi`?[{label:x(`common/host`),value:(0,v.jsx)(m,{host:e})}]:[],...T.labels.length===0?[]:[{label:x(`bots/facts/labels`),value:T.labels.join(`, `)}],{label:x(`bots/facts/owner`),value:T.owner},...T.harness===void 0?[]:[{label:x(`bots/facts/agent`),value:T.harness}],...T.model===void 0?[]:[{label:x(`bots/facts/model`),value:T.model}],...T.computer===void 0?[]:[{label:x(`bots/facts/computer`),value:T.computer}],{label:x(`bots/facts/workspace`),value:(0,v.jsx)(`span`,{className:`web-method`,children:T.workspace})},{label:x(`bots/facts/created`),value:p(T.createdAt)},{label:x(`bots/facts/changed`),value:p(T.updatedAt)}],D=t=>void b.commands.execute(t,{host:e,slug:T.id});return(0,v.jsxs)(`div`,{className:`web-page`,children:[(0,v.jsxs)(`div`,{className:`web-bot`,children:[(0,v.jsx)(_,{body:T.body,color:T.color,width:120}),(0,v.jsxs)(`div`,{className:`web-bot__words`,children:[(0,v.jsx)(c,{variant:`h2`,text:T.name}),(T.description??``).trim()===``?null:(0,v.jsx)(`p`,{className:`web-bot__description`,children:T.description}),(0,v.jsxs)(`div`,{className:`web-page__actions`,children:[(0,v.jsx)(i,{label:x(w?`bots/chat/opening`:`bots/actions/chat`),variant:`primary`,disabled:w,onClick:()=>D(`ahp.chatWithBot`)}),(0,v.jsx)(i,{label:x(`bots/actions/edit`),onClick:()=>D(`ahp.editBot`)}),(0,v.jsx)(i,{label:x(`bots/actions/delete`),onClick:()=>D(`ahp.deleteBot`)})]})]})]}),(0,v.jsx)(l,{items:E,columns:2}),(T.instructions??``).trim()===``?null:(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(c,{variant:`h3`,text:x(`bots/facts/instructions`)}),(0,v.jsx)(`p`,{className:`web-bot__instructions`,children:T.instructions})]})]})}export{y as default};
|
|
@@ -0,0 +1 @@
|
|
|
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,t as i}from"./useI18n-T3BwAm0z.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./Button-_R1oktDz.js";import{$ as s,J as c,r as l}from"./data-DsJQo1Qk.js";import{t as u}from"./Spinner-CBEPv0eM.js";import{t as d}from"./Text-MPtQvYE-.js";import{t as f}from"./DetailList-Yalgw0YM.js";import{S as p,T as m,_ as h,b as g,w as _,wt as v}from"./index-ddqm5vYD.js";import{n as y}from"./HostLines-CtIqw3A0.js";import{t as b}from"./PageAlert-B8ulCXV4.js";import{i as x,r as S,t as C}from"./words-D8X2_Vc_.js";var w=t(),T=e();function E(e){if(e.kind===`computer`)return C(e.seconds/3600);let{input:t=0,output:n=0,cache:r}=e.model;return S(t+n+(r?.read??0)+(r?.write??0))}function D(e){return e.cost?.currency.toLowerCase()===`usd`?g({usd:e.cost.amount},r()).cost:void 0}function O({host:e,pool:t}){let r=a(),{t:g}=i(),S=n(l(e).offers)??c,C=n(`$/ahp/usage/asked`)??0,[O,k]=(0,w.useState)(()=>h(new Date)),[A,j]=(0,w.useState)(null),[M,N]=(0,w.useState)(null),[P,F]=(0,w.useState)(null),I=e=>e instanceof Error?e.message:String(e);if((0,w.useEffect)(()=>{let n=!0;return p(e,S,t).then(e=>{n&&j(e)},e=>{n&&F(I(e))}),()=>{n=!1}},[e,S,t,C]),(0,w.useEffect)(()=>{let n=!0;return N(null),Promise.all([_(e,S,t,O),m(e,S,t,O)]).then(([e,t])=>{n&&N({total:e,records:t})},e=>{n&&F(I(e))}),()=>{n=!1}},[e,S,t,O,C]),P!==null)return(0,T.jsx)(b,{tone:`danger`,title:g(`usage/notices/none`),message:P});if(A===null)return(0,T.jsx)(u,{label:g(`usage/notices/reading`)});let L=g(`usage/explorer/nothing`);return(0,T.jsxs)(`div`,{className:`web-page`,children:[(0,T.jsx)(d,{variant:`h2`,text:A.name||t}),(0,T.jsx)(`p`,{className:`web-note`,children:t}),(0,T.jsx)(f,{items:[...s()===`multi`?[{label:g(`common/host`),value:(0,T.jsx)(y,{host:e}),span:!0}]:[],...[`day`,`week`,`month`].map(e=>({label:g(`usage/period/${e}`),value:x(A[e])||L}))]}),(0,T.jsx)(d,{variant:`h3`,text:g(`usage/pool/range`)}),(0,T.jsxs)(`div`,{className:`web-spend__range`,children:[(0,T.jsx)(`input`,{className:`web-field`,type:`date`,value:O.from,max:O.until,"aria-label":g(`usage/range/from`),onChange:e=>{e.target.value!==``&&k({...O,from:e.target.value})}}),(0,T.jsx)(`span`,{"aria-hidden":`true`,children:`–`}),(0,T.jsx)(`input`,{className:`web-field`,type:`date`,value:O.until,min:O.from,"aria-label":g(`usage/range/until`),onChange:e=>{e.target.value!==``&&k({...O,until:e.target.value})}})]}),M===null?(0,T.jsx)(u,{label:g(`usage/notices/reading`)}):(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`p`,{children:x(M.total)||L}),(0,T.jsx)(d,{variant:`h3`,text:g(`usage/pool/records`)}),M.records.length===0?(0,T.jsx)(`p`,{className:`web-note`,children:g(`usage/pool/noRecords`)}):(0,T.jsx)(`ul`,{className:`web-spend__records`,children:M.records.map((t,n)=>{let i=D(t),a=t.kind===`model`?t.model.name:t.computer;return(0,T.jsxs)(`li`,{className:`web-spend__record`,children:[(0,T.jsx)(`span`,{className:`web-spend__when`,children:v(t.at)}),(0,T.jsx)(`span`,{className:`web-spend__what`,title:a,children:a}),(0,T.jsx)(`span`,{className:`web-spend__measure`,children:E(t)}),(0,T.jsx)(`span`,{className:`web-spend__cost`,children:i??``}),t.session===void 0?(0,T.jsx)(`span`,{}):(0,T.jsx)(o,{label:g(`usage/pool/openSession`),size:`sm`,onClick:()=>void r.commands.execute(`ahp.openSession`,{host:e,resource:t.session})})]},`${t.at}\u{0000}${String(n)}`)})})]})]})}export{O as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./LoginForm-DxyP1mZO.js","./jsx-runtime-BguD1OXD.js","./react-CybPckBe.js","./useStore-BQkzWMs-.js","./ScenaProvider-6A3TJumQ.js","./mount-context-DZgEFVFG.js","./useI18n-T3BwAm0z.js","./sigillum-Bev0l9LS.js","./Button-_R1oktDz.js","./styles-yrzHRgom.js","./_utils-DZVsX11M.js","./Button-CRZ1_3KW.css","./index-ddqm5vYD.js","./surface-presentation-CT86pw6J.js","./preload-helper-BaNbYf_w.js","./sessions-DxQFcZ2M.js","./label-hTY0RCEf.js","./locales-DOA2j2AT.js","./data-DsJQo1Qk.js","./hosts-A0gEDScb.js","./emojis-B4zHbUyk.js","./notify-B2F6UAgq.js","./CommandPalette-G86xI_6j.js","./ActionList-QwhYPQiB.js","./colors-BieSUSt7.js","./ActionList-Bc-jZDaT.css","./terminal-Ctk6FYnN.js","./composer-commands-CzjP_L_C.js","./state-DQKzjLgu.js","./pins-DhjQhJuu.js","./grouping-BZNQYyEm.js","./TextField-DnSHrmJM.js","./_field-parts-BuPjFCuf.js","./_field-parts-DannIEUW.css","./_field-parts-CfQcSJYh.css","./DateTimeInput-x1XGuNl0.css","./state-DRVsnGrf.js","./save-file-CirO0l-u.js","./pick-CEYUa4kK.js","./viewers--ctbhTPt.js","./index-DJ3IEy30.css","./LoginForm-BJhoxJyJ.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{It as a}from"./index-ddqm5vYD.js";var o=t(),s=e(),c=(0,o.lazy)(()=>r(()=>import(`./LoginForm-DxyP1mZO.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,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41]),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};
|
|
@@ -0,0 +1,3 @@
|
|
|
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{t as r}from"./useI18n-T3BwAm0z.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{t as a}from"./Button-_R1oktDz.js";import{J as o,r as s}from"./data-DsJQo1Qk.js";import{t as c}from"./Spinner-CBEPv0eM.js";import{t as l}from"./Text-MPtQvYE-.js";import{A as u,H as d,L as f,R as p,j as m,k as h}from"./index-ddqm5vYD.js";import{t as g}from"./PageAlert-B8ulCXV4.js";import{t as _}from"./channel-BWOXaftf.js";import{t as v}from"./Field-jnYjqqvV.js";import{n as y,t as b}from"./form-Bw0484oP.js";var x=t(),S=e(),C=f(`roles`);function w({host:e,person:t}){let f=i(),{t:w}=r(),T=t===void 0,E=n(s(e).offers)??o,D=_(e,m.roles.channel,C),[O,k]=(0,x.useState)(null),[A,j]=(0,x.useState)(!1),[M,N]=(0,x.useState)(null);if(D.error!==null)return(0,S.jsx)(g,{tone:`danger`,title:w(`users/notices/none`),message:D.error});if(D.state===void 0)return(0,S.jsx)(c,{label:w(`users/notices/reading`)});let P=T?void 0:D.state.records.find(e=>e.id===t)?.record,F=!T&&P===void 0&&Object.hasOwn(u,t)?u[t]:void 0;if(!T&&P===void 0&&F===void 0)return(0,S.jsx)(g,{tone:`warning`,message:w(`users/role/gone`)});let I=P!==void 0&&t!==void 0&&Object.hasOwn(u,t),L={id:t??``,grants:(P?.grants??F??[]).join(`
|
|
2
|
+
`)},R=O??L,z=e=>k(t=>({...t??L,...e})),B=d(E,`roles`),V=y(R.grants),H=O!==null&&JSON.stringify(O)!==JSON.stringify(L),U=B&&!A&&V.problems.length===0&&(T?b(R.id):H),W=h(`roles`,e,t),G=async()=>{j(!0),N(null);let t=R.id.trim();try{await p(e,E,`roles`,t,{grants:V.grants},T),k(null),T&&(f.surfaces.close(W),f.commands.execute(`ahp.openRole`,{host:e,id:t}))}catch(e){N(e instanceof Error?e.message:String(e))}finally{j(!1)}};return(0,S.jsxs)(`div`,{className:`web-page web-form`,children:[(0,S.jsx)(l,{variant:`h2`,text:T?w(`users/commands/newRole`):t}),B?null:(0,S.jsx)(`p`,{className:`web-note`,children:w(`users/notices/readOnly`)}),F===void 0?null:(0,S.jsx)(`p`,{className:`web-note`,children:w(`users/role/builtInNote`)}),I?(0,S.jsx)(`p`,{className:`web-note`,children:w(`users/role/replacesNote`)}):null,T?(0,S.jsx)(v,{label:w(`users/role/id`),hint:w(`users/role/idHint`),children:(0,S.jsx)(`input`,{className:`web-field`,value:R.id,autoFocus:!0,onChange:e=>z({id:e.target.value})})}):null,(0,S.jsx)(v,{label:w(`users/role/grants`),hint:w(`users/role/grantsHint`),children:(0,S.jsx)(`textarea`,{className:`web-field web-people__grants`,rows:Math.max(6,R.grants.split(`
|
|
3
|
+
`).length+1),spellCheck:!1,value:R.grants,readOnly:!B,onChange:e=>z({grants:e.target.value})})}),V.problems.map(e=>(0,S.jsx)(`p`,{className:`web-people__problem`,children:w(`users/role/badGrant`,{line:e.line,text:e.text})},e.line)),M===null?null:(0,S.jsx)(g,{tone:`danger`,message:M}),B?(0,S.jsxs)(`div`,{className:`web-page__actions`,children:[(0,S.jsx)(a,{label:w(T?`users/role/create`:`users/role/save`),variant:`primary`,disabled:!U,onClick:()=>void G()}),T?(0,S.jsx)(a,{label:w(`users/actions/cancel`),onClick:()=>f.surfaces.close(W)}):(0,S.jsxs)(S.Fragment,{children:[H?(0,S.jsx)(a,{label:w(`users/actions/discard`),onClick:()=>k(null)}):null,F===void 0?(0,S.jsx)(a,{label:w(`users/actions/delete`),variant:`danger`,onClick:()=>void f.commands.execute(`ahp.deleteRole`,{host:e,id:t})}):null]})]}):null]})}export{w as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useI18n-T3BwAm0z.js";import{t as r}from"./Button-_R1oktDz.js";import{f as i,ot as a,v as o}from"./data-DPJ4OTLn.js";import{t as s}from"./Spinner-CBEPv0eM.js";import{t as c}from"./Text-MPtQvYE-.js";import{t as l}from"./SchemaForm-uhkLDWDC.js";import{$ as u,F as d,H as f,I as p,K as m,N as h,P as g,Y as _,et as v,ft as y,gt as b,ht as x,j as S,lt as C,pt as ee,tt as w,xt as T}from"./dist-BvY_obDK.js";import{t as te}from"./CodeEditor-C-ygqVsY.js";import{n as ne}from"./dist-DxvAUGwy.js";import{t as E}from"./PageAlert-B8ulCXV4.js";import{t as re}from"./channel-C6Ss9Aem.js";var D=t();function ie(e,t){return Object.fromEntries(Object.entries(t).filter(([t,n])=>JSON.stringify(n)!==JSON.stringify(e[t])))}var O=class{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}},k=class e{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(t,n,r){let i=r.facet(R).markerFilter;i&&(t=i(t,r));let a=t.slice().sort((e,t)=>e.from-t.from||e.to-t.to),o=new ee,s=[],c=0,l=r.doc.iter(),u=0,d=r.doc.length;for(let e=0;;){let t=e==a.length?null:a[e];if(!t&&!s.length)break;let n,r;if(s.length)n=c,r=s.reduce((e,t)=>Math.min(e,t.to),t&&t.from>n?t.from:1e8);else{if(n=t.from,n>d)break;r=t.to,s.push(t),e++}for(;e<a.length;){let t=a[e];if(t.from==n&&(t.to>t.from||t.to==n))s.push(t),e++,r=Math.min(t.to,r);else{r=Math.min(t.from,r);break}}r=Math.min(r,d);let i=!1;if(s.some(e=>e.from==n&&(e.to==r||r==d))&&(i=n==r,!i&&r-n<10)){let e=n-(u+l.value.length);e>0&&(l.next(e),u=n);for(let e=n;;){if(e>=r){i=!0;break}if(!l.lineBreak&&u+l.value.length>e)break;e=u+l.value.length,u+=l.value.length,l.next()}}let f=K(s);if(i)o.add(n,n,S.widget({widget:new fe(f),diagnostics:s.slice()}));else{let e=s.reduce((e,t)=>t.markClass?e+` `+t.markClass:e,``);o.add(n,r,S.mark({class:`cm-lintRange cm-lintRange-`+f+e,diagnostics:s.slice(),inclusiveEnd:s.some(e=>e.to>r)}))}if(c=r,c==d)break;for(let e=0;e<s.length;e++)s[e].to<=c&&s.splice(e--,1)}let f=o.finish();return new e(f,n,A(f))}};function A(e,t=null,n=0){let r=null;return e.between(n,1e9,(e,n,{spec:i})=>{if(!(t&&i.diagnostics.indexOf(t)<0)){if(!r)r=new O(e,n,t||i.diagnostics[0]);else if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;else r=new O(r.from,n,r.diagnostic)}}),r}function j(e,t){let n=t.pos,r=t.end||n,i=e.state.facet(R).hideOn(e,n,r);if(i!=null)return i;let a=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(e=>e.is(M))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function ae(e,t){return e.field(F,!1)?t:t.concat(x.appendConfig.of(Z))}function oe(e,t){return{effects:ae(e,[M.of(t)])}}var M=x.define(),N=x.define(),P=x.define(),F=b.define({create(){return new k(S.none,null,null)},update(e,t){if(t.docChanged&&e.diagnostics.size){let n=e.diagnostics.map(t.changes),r=null,i=e.panel;if(e.selected){let i=t.changes.mapPos(e.selected.from,1);r=A(n,e.selected.diagnostic,i)||A(n,null,i)}!n.size&&i&&t.state.facet(R).autoPanel&&(i=null),e=new k(n,i,r)}for(let n of t.effects)if(n.is(M)){let r=t.state.facet(R).autoPanel?n.value.length?U.open:null:e.panel;e=k.init(n.value,r,t.state)}else n.is(N)?e=new k(e.diagnostics,n.value?U.open:null,e.selected):n.is(P)&&(e=new k(e.diagnostics,e.panel,n.value));return e},provide:e=>[u.from(e,e=>e.panel),h.decorations.from(e,e=>e.diagnostics)]}),se=S.mark({class:`cm-lintRange cm-lintRange-active`});function ce(e,t,n){let{diagnostics:r}=e.state.field(F),i,a=-1,o=-1;r.between(t-+(n<0),t+ +(n>0),(e,r,{spec:s})=>{if(t>=e&&t<=r&&(e==r||(t>e||n>0)&&(t<r||n<0)))return i=s.diagnostics,a=e,o=r,!1});let s=e.state.facet(R).tooltipFilter;return i&&s&&(i=s(i,e.state)),i?{pos:a,end:o,above:!0,create(){return{dom:I(e,i)}}}:null}function I(e,t){return w(`ul`,{class:`cm-tooltip-lint`},t.map(t=>V(e,t,!1)))}var L=e=>{let t=e.state.field(F,!1);return!t||!t.panel?!1:(e.dispatch({effects:N.of(!1)}),!0)},le=d.fromClass(class{constructor(e){this.view=e,this.timeout=-1,this.set=!0;let{delay:t}=e.state.facet(R);this.lintTime=Date.now()+t,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,t)}run(){clearTimeout(this.timeout);let e=Date.now();if(e<this.lintTime-10)this.timeout=setTimeout(this.run,this.lintTime-e);else{this.set=!1;let{state:e}=this.view,{sources:t}=e.facet(R);t.length&&ue(t.map(e=>Promise.resolve(e(this.view))),t=>{this.view.state.doc==e.doc&&this.view.dispatch(oe(this.view.state,t.reduce((e,t)=>e.concat(t))))},e=>{_(this.view.state,e)})}}update(e){let t=e.state.facet(R);(e.docChanged||t!=e.startState.facet(R)||t.needsRefresh&&t.needsRefresh(e))&&(this.lintTime=Date.now()+t.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,t.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function ue(e,t,n){let r=[],i=-1;for(let a of e)a.then(n=>{r.push(n),clearTimeout(i),r.length==e.length?t(r):i=setTimeout(()=>t(r),200)},n)}var R=C.define({combine(e){return{sources:e.map(e=>e.source).filter(e=>e!=null),...T(e.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:z,tooltipFilter:z,needsRefresh:(e,t)=>e?t?n=>e(n)||t(n):e:t,hideOn:(e,t)=>e?t?(n,r,i)=>e(n,r,i)||t(n,r,i):e:t,autoPanel:(e,t)=>e||t})}}});function z(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function de(e,t={}){return[R.of({source:e,config:t}),le,Z]}function B(e){let t=[];if(e)actions:for(let{name:n}of e){for(let e=0;e<n.length;e++){let r=n[e];if(/[a-zA-Z]/.test(r)&&!t.some(e=>e.toLowerCase()==r.toLowerCase())){t.push(r);continue actions}}t.push(``)}return t}function V(e,t,n){let r=n?B(t.actions):[];return w(`li`,{class:`cm-diagnostic cm-diagnostic-`+t.severity},w(`span`,{class:`cm-diagnosticText`},t.renderMessage?t.renderMessage(e):t.message),t.actions?.map((n,i)=>{let a=!1,o=r=>{if(r.preventDefault(),a)return;a=!0;let i=A(e.state.field(F).diagnostics,t);i&&n.apply(e,i.from,i.to)},{name:s}=n,c=r[i]?s.indexOf(r[i]):-1,l=c<0?s:[s.slice(0,c),w(`u`,s.slice(c,c+1)),s.slice(c+1)],u=n.markClass?` `+n.markClass:``;return w(`button`,{type:`button`,class:`cm-diagnosticAction`+u,onclick:o,onmousedown:o,"aria-label":` Action: ${s}${c<0?``:` (access key "${r[i]})"`}.`},l)}),t.source&&w(`div`,{class:`cm-diagnosticSource`},t.source))}var fe=class extends p{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return w(`span`,{class:`cm-lintPoint cm-lintPoint-`+this.sev})}},H=class{constructor(e,t){this.diagnostic=t,this.id=`item_`+Math.floor(Math.random()*4294967295).toString(16),this.dom=V(e,t,!0),this.dom.id=this.id,this.dom.setAttribute(`role`,`option`)}},U=class e{constructor(e){this.view=e,this.items=[];let t=t=>{if(!(t.ctrlKey||t.altKey||t.metaKey)){if(t.keyCode==27)L(this.view),this.view.focus();else if(t.keyCode==38||t.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(t.keyCode==40||t.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(t.keyCode==36)this.moveSelection(0);else if(t.keyCode==35)this.moveSelection(this.items.length-1);else if(t.keyCode==13)this.view.focus();else if(t.keyCode>=65&&t.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:n}=this.items[this.selectedIndex],r=B(n.actions);for(let i=0;i<r.length;i++)if(r[i].toUpperCase().charCodeAt(0)==t.keyCode){let t=A(this.view.state.field(F).diagnostics,n);t&&n.actions[i].apply(e,t.from,t.to)}}else return;t.preventDefault()}},n=e=>{for(let t=0;t<this.items.length;t++)this.items[t].dom.contains(e.target)&&this.moveSelection(t)};this.list=w(`ul`,{tabIndex:0,role:`listbox`,"aria-label":this.view.state.phrase(`Diagnostics`),onkeydown:t,onclick:n}),this.dom=w(`div`,{class:`cm-panel-lint`},this.list,w(`button`,{type:`button`,name:`close`,"aria-label":this.view.state.phrase(`close`),onclick:()=>L(this.view)},`×`)),this.update()}get selectedIndex(){let e=this.view.state.field(F).selected;if(!e)return-1;for(let t=0;t<this.items.length;t++)if(this.items[t].diagnostic==e.diagnostic)return t;return-1}update(){let{diagnostics:e,selected:t}=this.view.state.field(F),n=0,r=!1,i=null,a=new Set;for(e.between(0,this.view.state.doc.length,(e,o,{spec:s})=>{for(let e of s.diagnostics){if(a.has(e))continue;a.add(e);let o=-1,s;for(let t=n;t<this.items.length;t++)if(this.items[t].diagnostic==e){o=t;break}o<0?(s=new H(this.view,e),this.items.splice(n,0,s),r=!0):(s=this.items[o],o>n&&(this.items.splice(n,o-n),r=!0)),t&&s.diagnostic==t.diagnostic?s.dom.hasAttribute(`aria-selected`)||(s.dom.setAttribute(`aria-selected`,`true`),i=s):s.dom.hasAttribute(`aria-selected`)&&s.dom.removeAttribute(`aria-selected`),n++}});n<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)r=!0,this.items.pop();this.items.length==0&&(this.items.push(new H(this.view,{from:-1,to:-1,severity:`info`,message:this.view.state.phrase(`No diagnostics`)})),r=!0),i?(this.list.setAttribute(`aria-activedescendant`,i.id),this.view.requestMeasure({key:this,read:()=>({sel:i.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:e,panel:t})=>{let n=t.height/this.list.offsetHeight;e.top<t.top?this.list.scrollTop-=(t.top-e.top)/n:e.bottom>t.bottom&&(this.list.scrollTop+=(e.bottom-t.bottom)/n)}})):this.selectedIndex<0&&this.list.removeAttribute(`aria-activedescendant`),r&&this.sync()}sync(){let e=this.list.firstChild;function t(){let t=e;e=t.nextSibling,t.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=A(this.view.state.field(F).diagnostics,this.items[e].diagnostic);t&&this.view.dispatch({selection:{anchor:t.from,head:t.to},scrollIntoView:!0,effects:P.of(t)})}static open(t){return new e(t)}};function W(e,t=`viewBox="0 0 40 40"`){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${t}>${encodeURIComponent(e)}</svg>')`}function G(e){return W(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${e}" fill="none" stroke-width=".7"/>`,`width="6" height="3"`)}var pe=h.baseTheme({".cm-diagnostic":{padding:`3px 6px 3px 8px`,marginLeft:`-1px`,display:`block`,whiteSpace:`pre-wrap`},".cm-diagnostic-error":{borderLeft:`5px solid #d11`},".cm-diagnostic-warning":{borderLeft:`5px solid orange`},".cm-diagnostic-info":{borderLeft:`5px solid #999`},".cm-diagnostic-hint":{borderLeft:`5px solid #66d`},".cm-diagnosticAction":{font:`inherit`,border:`none`,padding:`2px 4px`,backgroundColor:`#444`,color:`white`,borderRadius:`3px`,marginLeft:`8px`,cursor:`pointer`},".cm-diagnosticSource":{fontSize:`70%`,opacity:.7},".cm-lintRange":{backgroundPosition:`left bottom`,backgroundRepeat:`repeat-x`,paddingBottom:`0.7px`},".cm-lintRange-error":{backgroundImage:G(`#f11`)},".cm-lintRange-warning":{backgroundImage:G(`orange`)},".cm-lintRange-info":{backgroundImage:G(`#999`)},".cm-lintRange-hint":{backgroundImage:G(`#66d`)},".cm-lintRange-active":{backgroundColor:`#ffdd9980`},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:`relative`,"&:after":{content:`""`,position:`absolute`,bottom:0,left:`-2px`,borderLeft:`3px solid transparent`,borderRight:`3px solid transparent`,borderBottom:`4px solid #d11`}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:`orange`}},".cm-lintPoint-info":{"&:after":{borderBottomColor:`#999`}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:`#66d`}},".cm-panel.cm-panel-lint":{position:`relative`,"& ul":{maxHeight:`100px`,overflowY:`auto`,"& [aria-selected]":{backgroundColor:`#ddd`,"& u":{textDecoration:`underline`}},"&:focus [aria-selected]":{background_fallback:`#bdf`,backgroundColor:`Highlight`,color_fallback:`white`,color:`HighlightText`},"& u":{textDecoration:`none`},padding:0,margin:0},"& [name=close]":{position:`absolute`,top:`0`,right:`2px`,background:`inherit`,border:`none`,font:`inherit`,padding:0,margin:0}},"&dark .cm-lintRange-active":{backgroundColor:`#86714a80`},"&dark .cm-panel.cm-panel-lint ul":{"& [aria-selected]":{backgroundColor:`#2e343e`}}});function me(e){return e==`error`?4:e==`warning`?3:e==`info`?2:1}function K(e){let t=`hint`,n=1;for(let r of e){let e=me(r.severity);e>n&&(n=e,t=r.severity)}return t}var q=class extends g{constructor(e){super(),this.diagnostics=e,this.severity=K(e)}toDOM(e){let t=document.createElement(`div`);t.className=`cm-lint-marker cm-lint-marker-`+this.severity;let n=this.diagnostics,r=e.state.facet(Q).tooltipFilter;return r&&(n=r(n,e.state)),n.length&&(t.onmouseover=()=>ge(e,t,n)),t}};function he(e,t){let n=r=>{let i=t.getBoundingClientRect();if(!(r.clientX>i.left-10&&r.clientX<i.right+10&&r.clientY>i.top-10&&r.clientY<i.bottom+10)){for(let e=r.target;e;e=e.parentNode)if(e.nodeType==1&&e.classList.contains(`cm-tooltip-lint`))return;window.removeEventListener(`mousemove`,n),e.state.field(X)&&e.dispatch({effects:Y.of(null)})}};window.addEventListener(`mousemove`,n)}function ge(e,t,n){function r(){let r=e.elementAtHeight(t.getBoundingClientRect().top+5-e.documentTop);e.coordsAtPos(r.from)&&e.dispatch({effects:Y.of({pos:r.from,above:!1,clip:!1,create(){return{dom:I(e,n),getCoords:()=>t.getBoundingClientRect()}}})}),t.onmouseout=t.onmousemove=null,he(e,t)}let{hoverTime:i}=e.state.facet(Q),a=setTimeout(r,i);t.onmouseout=()=>{clearTimeout(a),t.onmouseout=t.onmousemove=null},t.onmousemove=()=>{clearTimeout(a),a=setTimeout(r,i)}}function _e(e,t){let n=Object.create(null);for(let r of t){let t=e.lineAt(r.from);(n[t.from]||(n[t.from]=[])).push(r)}let r=[];for(let e in n)r.push(new q(n[e]).range(+e));return y.of(r,!0)}var ve=f({class:`cm-gutter-lint`,markers:e=>e.state.field(J),widgetMarker:(e,t,n)=>{let r=[];return e.state.field(J).between(n.from,n.to,(e,t,i)=>{e>n.from&&e<n.to&&r.push(...i.diagnostics)}),r.length?new q(r):null}}),J=b.define({create(){return y.empty},update(e,t){e=e.map(t.changes);let n=t.state.facet(Q).markerFilter;for(let r of t.effects)if(r.is(M)){let i=r.value;n&&(i=n(i||[],t.state)),e=_e(t.state.doc,i.slice(0))}return e}}),Y=x.define(),X=b.define({create(){return null},update(e,t){return e&&t.docChanged&&(e=j(t,e)?null:{...e,pos:t.changes.mapPos(e.pos)}),t.effects.reduce((e,t)=>t.is(Y)?t.value:e,e)},provide:e=>v.from(e)}),ye=h.baseTheme({".cm-gutter-lint":{width:`1.4em`,"& .cm-gutterElement":{padding:`.2em`}},".cm-lint-marker":{width:`1em`,height:`1em`},".cm-lint-marker-info":{content:W(`<path fill="#aaf" stroke="#77e" stroke-width="6" stroke-linejoin="round" d="M5 5L35 5L35 35L5 35Z"/>`)},".cm-lint-marker-warning":{content:W(`<path fill="#fe8" stroke="#fd7" stroke-width="6" stroke-linejoin="round" d="M20 6L37 35L3 35Z"/>`)},".cm-lint-marker-error":{content:W(`<circle cx="20" cy="20" r="15" fill="#f87" stroke="#f43" stroke-width="6"/>`)}}),be=m(ce,{hideOn:j}),Z=[F,h.decorations.compute([F],e=>{let{selected:t,panel:n}=e.field(F);return!t||!n||t.from==t.to?S.none:S.set([se.range(t.from,t.to)])}),be,pe],Q=C.define({combine(e){return T(e,{hoverTime:300,markerFilter:null,tooltipFilter:null})}});function xe(e={}){return[Q.of(e),J,ve,ye,X]}var $=e(),Se=[de(ne(),{delay:250}),xe()];function Ce({value:e,onChange:t}){return(0,$.jsx)(te,{value:e,language:`json`,onChange:t,extensions:Se})}function we(){let{t:e}=n(),{state:t,error:u}=re(i,a),d=t?.config,[f,p]=(0,D.useState)({}),[m,h]=(0,D.useState)(!1),[g,_]=(0,D.useState)(!0),v=(0,D.useMemo)(()=>d?.values??{},[d]);if((0,D.useEffect)(()=>{p(v)},[v]),u!==null)return(0,$.jsx)(E,{tone:`danger`,title:e(`host/settings/unreadable`),message:u});if(t===void 0)return(0,$.jsx)(s,{label:e(`host/settings/reading`)});if(d===void 0)return(0,$.jsx)(E,{tone:`info`,message:e(`host/settings/none`)});let y=ie(v,f),b=Object.keys(y).length>0,x=()=>{o(i,{type:`root/configChanged`,config:y}),h(!0)};return(0,$.jsxs)(`div`,{className:`web-page`,children:[(0,$.jsx)(c,{variant:`h2`,text:e(`host/settings/title`)}),(0,$.jsx)(l,{schema:d.schema,value:f,onChange:e=>{p(e),h(!1)},baseline:v,jsonEditor:Ce,onJsonValidChange:_}),(0,$.jsxs)(`div`,{className:`web-page__actions`,children:[(0,$.jsx)(r,{label:e(`host/settings/save`),variant:`primary`,disabled:!b||!g,...g?{}:{title:e(`host/settings/fixJson`)},onClick:x}),(0,$.jsx)(r,{label:e(`host/settings/reset`),disabled:!b,onClick:()=>p(v)}),m&&!b?(0,$.jsx)(`span`,{className:`web-note`,children:e(`host/settings/saved`)}):null]})]})}export{we as default};
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useI18n-T3BwAm0z.js";import{t as r}from"./Button-_R1oktDz.js";import{ct as i,n as a,s as o}from"./data-DsJQo1Qk.js";import{t as s}from"./Spinner-CBEPv0eM.js";import{t as c}from"./Text-MPtQvYE-.js";import{t as l}from"./SchemaForm-uhkLDWDC.js";import{$ as u,F as d,H as f,I as p,K as m,N as h,P as g,Y as _,et as v,ft as y,gt as b,ht as x,j as S,lt as C,pt as ee,tt as w,xt as T}from"./dist-BvY_obDK.js";import{t as te}from"./CodeEditor-C-ygqVsY.js";import{n as ne}from"./dist-DxvAUGwy.js";import{t as E}from"./PageAlert-B8ulCXV4.js";import{t as re}from"./channel-BWOXaftf.js";var D=t();function ie(e,t){return Object.fromEntries(Object.entries(t).filter(([t,n])=>JSON.stringify(n)!==JSON.stringify(e[t])))}var O=class{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}},k=class e{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(t,n,r){let i=r.facet(R).markerFilter;i&&(t=i(t,r));let a=t.slice().sort((e,t)=>e.from-t.from||e.to-t.to),o=new ee,s=[],c=0,l=r.doc.iter(),u=0,d=r.doc.length;for(let e=0;;){let t=e==a.length?null:a[e];if(!t&&!s.length)break;let n,r;if(s.length)n=c,r=s.reduce((e,t)=>Math.min(e,t.to),t&&t.from>n?t.from:1e8);else{if(n=t.from,n>d)break;r=t.to,s.push(t),e++}for(;e<a.length;){let t=a[e];if(t.from==n&&(t.to>t.from||t.to==n))s.push(t),e++,r=Math.min(t.to,r);else{r=Math.min(t.from,r);break}}r=Math.min(r,d);let i=!1;if(s.some(e=>e.from==n&&(e.to==r||r==d))&&(i=n==r,!i&&r-n<10)){let e=n-(u+l.value.length);e>0&&(l.next(e),u=n);for(let e=n;;){if(e>=r){i=!0;break}if(!l.lineBreak&&u+l.value.length>e)break;e=u+l.value.length,u+=l.value.length,l.next()}}let f=K(s);if(i)o.add(n,n,S.widget({widget:new fe(f),diagnostics:s.slice()}));else{let e=s.reduce((e,t)=>t.markClass?e+` `+t.markClass:e,``);o.add(n,r,S.mark({class:`cm-lintRange cm-lintRange-`+f+e,diagnostics:s.slice(),inclusiveEnd:s.some(e=>e.to>r)}))}if(c=r,c==d)break;for(let e=0;e<s.length;e++)s[e].to<=c&&s.splice(e--,1)}let f=o.finish();return new e(f,n,A(f))}};function A(e,t=null,n=0){let r=null;return e.between(n,1e9,(e,n,{spec:i})=>{if(!(t&&i.diagnostics.indexOf(t)<0)){if(!r)r=new O(e,n,t||i.diagnostics[0]);else if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;else r=new O(r.from,n,r.diagnostic)}}),r}function j(e,t){let n=t.pos,r=t.end||n,i=e.state.facet(R).hideOn(e,n,r);if(i!=null)return i;let a=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(e=>e.is(M))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function ae(e,t){return e.field(F,!1)?t:t.concat(x.appendConfig.of(Z))}function oe(e,t){return{effects:ae(e,[M.of(t)])}}var M=x.define(),N=x.define(),P=x.define(),F=b.define({create(){return new k(S.none,null,null)},update(e,t){if(t.docChanged&&e.diagnostics.size){let n=e.diagnostics.map(t.changes),r=null,i=e.panel;if(e.selected){let i=t.changes.mapPos(e.selected.from,1);r=A(n,e.selected.diagnostic,i)||A(n,null,i)}!n.size&&i&&t.state.facet(R).autoPanel&&(i=null),e=new k(n,i,r)}for(let n of t.effects)if(n.is(M)){let r=t.state.facet(R).autoPanel?n.value.length?U.open:null:e.panel;e=k.init(n.value,r,t.state)}else n.is(N)?e=new k(e.diagnostics,n.value?U.open:null,e.selected):n.is(P)&&(e=new k(e.diagnostics,e.panel,n.value));return e},provide:e=>[u.from(e,e=>e.panel),h.decorations.from(e,e=>e.diagnostics)]}),se=S.mark({class:`cm-lintRange cm-lintRange-active`});function ce(e,t,n){let{diagnostics:r}=e.state.field(F),i,a=-1,o=-1;r.between(t-+(n<0),t+ +(n>0),(e,r,{spec:s})=>{if(t>=e&&t<=r&&(e==r||(t>e||n>0)&&(t<r||n<0)))return i=s.diagnostics,a=e,o=r,!1});let s=e.state.facet(R).tooltipFilter;return i&&s&&(i=s(i,e.state)),i?{pos:a,end:o,above:!0,create(){return{dom:I(e,i)}}}:null}function I(e,t){return w(`ul`,{class:`cm-tooltip-lint`},t.map(t=>V(e,t,!1)))}var L=e=>{let t=e.state.field(F,!1);return!t||!t.panel?!1:(e.dispatch({effects:N.of(!1)}),!0)},le=d.fromClass(class{constructor(e){this.view=e,this.timeout=-1,this.set=!0;let{delay:t}=e.state.facet(R);this.lintTime=Date.now()+t,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,t)}run(){clearTimeout(this.timeout);let e=Date.now();if(e<this.lintTime-10)this.timeout=setTimeout(this.run,this.lintTime-e);else{this.set=!1;let{state:e}=this.view,{sources:t}=e.facet(R);t.length&&ue(t.map(e=>Promise.resolve(e(this.view))),t=>{this.view.state.doc==e.doc&&this.view.dispatch(oe(this.view.state,t.reduce((e,t)=>e.concat(t))))},e=>{_(this.view.state,e)})}}update(e){let t=e.state.facet(R);(e.docChanged||t!=e.startState.facet(R)||t.needsRefresh&&t.needsRefresh(e))&&(this.lintTime=Date.now()+t.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,t.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function ue(e,t,n){let r=[],i=-1;for(let a of e)a.then(n=>{r.push(n),clearTimeout(i),r.length==e.length?t(r):i=setTimeout(()=>t(r),200)},n)}var R=C.define({combine(e){return{sources:e.map(e=>e.source).filter(e=>e!=null),...T(e.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:z,tooltipFilter:z,needsRefresh:(e,t)=>e?t?n=>e(n)||t(n):e:t,hideOn:(e,t)=>e?t?(n,r,i)=>e(n,r,i)||t(n,r,i):e:t,autoPanel:(e,t)=>e||t})}}});function z(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function de(e,t={}){return[R.of({source:e,config:t}),le,Z]}function B(e){let t=[];if(e)actions:for(let{name:n}of e){for(let e=0;e<n.length;e++){let r=n[e];if(/[a-zA-Z]/.test(r)&&!t.some(e=>e.toLowerCase()==r.toLowerCase())){t.push(r);continue actions}}t.push(``)}return t}function V(e,t,n){let r=n?B(t.actions):[];return w(`li`,{class:`cm-diagnostic cm-diagnostic-`+t.severity},w(`span`,{class:`cm-diagnosticText`},t.renderMessage?t.renderMessage(e):t.message),t.actions?.map((n,i)=>{let a=!1,o=r=>{if(r.preventDefault(),a)return;a=!0;let i=A(e.state.field(F).diagnostics,t);i&&n.apply(e,i.from,i.to)},{name:s}=n,c=r[i]?s.indexOf(r[i]):-1,l=c<0?s:[s.slice(0,c),w(`u`,s.slice(c,c+1)),s.slice(c+1)],u=n.markClass?` `+n.markClass:``;return w(`button`,{type:`button`,class:`cm-diagnosticAction`+u,onclick:o,onmousedown:o,"aria-label":` Action: ${s}${c<0?``:` (access key "${r[i]})"`}.`},l)}),t.source&&w(`div`,{class:`cm-diagnosticSource`},t.source))}var fe=class extends p{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return w(`span`,{class:`cm-lintPoint cm-lintPoint-`+this.sev})}},H=class{constructor(e,t){this.diagnostic=t,this.id=`item_`+Math.floor(Math.random()*4294967295).toString(16),this.dom=V(e,t,!0),this.dom.id=this.id,this.dom.setAttribute(`role`,`option`)}},U=class e{constructor(e){this.view=e,this.items=[];let t=t=>{if(!(t.ctrlKey||t.altKey||t.metaKey)){if(t.keyCode==27)L(this.view),this.view.focus();else if(t.keyCode==38||t.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(t.keyCode==40||t.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(t.keyCode==36)this.moveSelection(0);else if(t.keyCode==35)this.moveSelection(this.items.length-1);else if(t.keyCode==13)this.view.focus();else if(t.keyCode>=65&&t.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:n}=this.items[this.selectedIndex],r=B(n.actions);for(let i=0;i<r.length;i++)if(r[i].toUpperCase().charCodeAt(0)==t.keyCode){let t=A(this.view.state.field(F).diagnostics,n);t&&n.actions[i].apply(e,t.from,t.to)}}else return;t.preventDefault()}},n=e=>{for(let t=0;t<this.items.length;t++)this.items[t].dom.contains(e.target)&&this.moveSelection(t)};this.list=w(`ul`,{tabIndex:0,role:`listbox`,"aria-label":this.view.state.phrase(`Diagnostics`),onkeydown:t,onclick:n}),this.dom=w(`div`,{class:`cm-panel-lint`},this.list,w(`button`,{type:`button`,name:`close`,"aria-label":this.view.state.phrase(`close`),onclick:()=>L(this.view)},`×`)),this.update()}get selectedIndex(){let e=this.view.state.field(F).selected;if(!e)return-1;for(let t=0;t<this.items.length;t++)if(this.items[t].diagnostic==e.diagnostic)return t;return-1}update(){let{diagnostics:e,selected:t}=this.view.state.field(F),n=0,r=!1,i=null,a=new Set;for(e.between(0,this.view.state.doc.length,(e,o,{spec:s})=>{for(let e of s.diagnostics){if(a.has(e))continue;a.add(e);let o=-1,s;for(let t=n;t<this.items.length;t++)if(this.items[t].diagnostic==e){o=t;break}o<0?(s=new H(this.view,e),this.items.splice(n,0,s),r=!0):(s=this.items[o],o>n&&(this.items.splice(n,o-n),r=!0)),t&&s.diagnostic==t.diagnostic?s.dom.hasAttribute(`aria-selected`)||(s.dom.setAttribute(`aria-selected`,`true`),i=s):s.dom.hasAttribute(`aria-selected`)&&s.dom.removeAttribute(`aria-selected`),n++}});n<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)r=!0,this.items.pop();this.items.length==0&&(this.items.push(new H(this.view,{from:-1,to:-1,severity:`info`,message:this.view.state.phrase(`No diagnostics`)})),r=!0),i?(this.list.setAttribute(`aria-activedescendant`,i.id),this.view.requestMeasure({key:this,read:()=>({sel:i.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:e,panel:t})=>{let n=t.height/this.list.offsetHeight;e.top<t.top?this.list.scrollTop-=(t.top-e.top)/n:e.bottom>t.bottom&&(this.list.scrollTop+=(e.bottom-t.bottom)/n)}})):this.selectedIndex<0&&this.list.removeAttribute(`aria-activedescendant`),r&&this.sync()}sync(){let e=this.list.firstChild;function t(){let t=e;e=t.nextSibling,t.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=A(this.view.state.field(F).diagnostics,this.items[e].diagnostic);t&&this.view.dispatch({selection:{anchor:t.from,head:t.to},scrollIntoView:!0,effects:P.of(t)})}static open(t){return new e(t)}};function W(e,t=`viewBox="0 0 40 40"`){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${t}>${encodeURIComponent(e)}</svg>')`}function G(e){return W(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${e}" fill="none" stroke-width=".7"/>`,`width="6" height="3"`)}var pe=h.baseTheme({".cm-diagnostic":{padding:`3px 6px 3px 8px`,marginLeft:`-1px`,display:`block`,whiteSpace:`pre-wrap`},".cm-diagnostic-error":{borderLeft:`5px solid #d11`},".cm-diagnostic-warning":{borderLeft:`5px solid orange`},".cm-diagnostic-info":{borderLeft:`5px solid #999`},".cm-diagnostic-hint":{borderLeft:`5px solid #66d`},".cm-diagnosticAction":{font:`inherit`,border:`none`,padding:`2px 4px`,backgroundColor:`#444`,color:`white`,borderRadius:`3px`,marginLeft:`8px`,cursor:`pointer`},".cm-diagnosticSource":{fontSize:`70%`,opacity:.7},".cm-lintRange":{backgroundPosition:`left bottom`,backgroundRepeat:`repeat-x`,paddingBottom:`0.7px`},".cm-lintRange-error":{backgroundImage:G(`#f11`)},".cm-lintRange-warning":{backgroundImage:G(`orange`)},".cm-lintRange-info":{backgroundImage:G(`#999`)},".cm-lintRange-hint":{backgroundImage:G(`#66d`)},".cm-lintRange-active":{backgroundColor:`#ffdd9980`},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:`relative`,"&:after":{content:`""`,position:`absolute`,bottom:0,left:`-2px`,borderLeft:`3px solid transparent`,borderRight:`3px solid transparent`,borderBottom:`4px solid #d11`}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:`orange`}},".cm-lintPoint-info":{"&:after":{borderBottomColor:`#999`}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:`#66d`}},".cm-panel.cm-panel-lint":{position:`relative`,"& ul":{maxHeight:`100px`,overflowY:`auto`,"& [aria-selected]":{backgroundColor:`#ddd`,"& u":{textDecoration:`underline`}},"&:focus [aria-selected]":{background_fallback:`#bdf`,backgroundColor:`Highlight`,color_fallback:`white`,color:`HighlightText`},"& u":{textDecoration:`none`},padding:0,margin:0},"& [name=close]":{position:`absolute`,top:`0`,right:`2px`,background:`inherit`,border:`none`,font:`inherit`,padding:0,margin:0}},"&dark .cm-lintRange-active":{backgroundColor:`#86714a80`},"&dark .cm-panel.cm-panel-lint ul":{"& [aria-selected]":{backgroundColor:`#2e343e`}}});function me(e){return e==`error`?4:e==`warning`?3:e==`info`?2:1}function K(e){let t=`hint`,n=1;for(let r of e){let e=me(r.severity);e>n&&(n=e,t=r.severity)}return t}var q=class extends g{constructor(e){super(),this.diagnostics=e,this.severity=K(e)}toDOM(e){let t=document.createElement(`div`);t.className=`cm-lint-marker cm-lint-marker-`+this.severity;let n=this.diagnostics,r=e.state.facet(Q).tooltipFilter;return r&&(n=r(n,e.state)),n.length&&(t.onmouseover=()=>ge(e,t,n)),t}};function he(e,t){let n=r=>{let i=t.getBoundingClientRect();if(!(r.clientX>i.left-10&&r.clientX<i.right+10&&r.clientY>i.top-10&&r.clientY<i.bottom+10)){for(let e=r.target;e;e=e.parentNode)if(e.nodeType==1&&e.classList.contains(`cm-tooltip-lint`))return;window.removeEventListener(`mousemove`,n),e.state.field(X)&&e.dispatch({effects:Y.of(null)})}};window.addEventListener(`mousemove`,n)}function ge(e,t,n){function r(){let r=e.elementAtHeight(t.getBoundingClientRect().top+5-e.documentTop);e.coordsAtPos(r.from)&&e.dispatch({effects:Y.of({pos:r.from,above:!1,clip:!1,create(){return{dom:I(e,n),getCoords:()=>t.getBoundingClientRect()}}})}),t.onmouseout=t.onmousemove=null,he(e,t)}let{hoverTime:i}=e.state.facet(Q),a=setTimeout(r,i);t.onmouseout=()=>{clearTimeout(a),t.onmouseout=t.onmousemove=null},t.onmousemove=()=>{clearTimeout(a),a=setTimeout(r,i)}}function _e(e,t){let n=Object.create(null);for(let r of t){let t=e.lineAt(r.from);(n[t.from]||(n[t.from]=[])).push(r)}let r=[];for(let e in n)r.push(new q(n[e]).range(+e));return y.of(r,!0)}var ve=f({class:`cm-gutter-lint`,markers:e=>e.state.field(J),widgetMarker:(e,t,n)=>{let r=[];return e.state.field(J).between(n.from,n.to,(e,t,i)=>{e>n.from&&e<n.to&&r.push(...i.diagnostics)}),r.length?new q(r):null}}),J=b.define({create(){return y.empty},update(e,t){e=e.map(t.changes);let n=t.state.facet(Q).markerFilter;for(let r of t.effects)if(r.is(M)){let i=r.value;n&&(i=n(i||[],t.state)),e=_e(t.state.doc,i.slice(0))}return e}}),Y=x.define(),X=b.define({create(){return null},update(e,t){return e&&t.docChanged&&(e=j(t,e)?null:{...e,pos:t.changes.mapPos(e.pos)}),t.effects.reduce((e,t)=>t.is(Y)?t.value:e,e)},provide:e=>v.from(e)}),ye=h.baseTheme({".cm-gutter-lint":{width:`1.4em`,"& .cm-gutterElement":{padding:`.2em`}},".cm-lint-marker":{width:`1em`,height:`1em`},".cm-lint-marker-info":{content:W(`<path fill="#aaf" stroke="#77e" stroke-width="6" stroke-linejoin="round" d="M5 5L35 5L35 35L5 35Z"/>`)},".cm-lint-marker-warning":{content:W(`<path fill="#fe8" stroke="#fd7" stroke-width="6" stroke-linejoin="round" d="M20 6L37 35L3 35Z"/>`)},".cm-lint-marker-error":{content:W(`<circle cx="20" cy="20" r="15" fill="#f87" stroke="#f43" stroke-width="6"/>`)}}),be=m(ce,{hideOn:j}),Z=[F,h.decorations.compute([F],e=>{let{selected:t,panel:n}=e.field(F);return!t||!n||t.from==t.to?S.none:S.set([se.range(t.from,t.to)])}),be,pe],Q=C.define({combine(e){return T(e,{hoverTime:300,markerFilter:null,tooltipFilter:null})}});function xe(e={}){return[Q.of(e),J,ve,ye,X]}var $=e(),Se=[de(ne(),{delay:250}),xe()];function Ce({value:e,onChange:t}){return(0,$.jsx)(te,{value:e,language:`json`,onChange:t,extensions:Se})}function we({host:e}){let{t}=n(),{state:u,error:d}=re(e,a,i),f=u?.config,[p,m]=(0,D.useState)({}),[h,g]=(0,D.useState)(!1),[_,v]=(0,D.useState)(!0),y=(0,D.useMemo)(()=>f?.values??{},[f]);if((0,D.useEffect)(()=>{m(y)},[y]),d!==null)return(0,$.jsx)(E,{tone:`danger`,title:t(`host/settings/unreadable`),message:d});if(u===void 0)return(0,$.jsx)(s,{label:t(`host/settings/reading`)});if(f===void 0)return(0,$.jsx)(E,{tone:`info`,message:t(`host/settings/none`)});let b=ie(y,p),x=Object.keys(b).length>0,S=()=>{o(e).dispatch(a,{type:`root/configChanged`,config:b}),g(!0)};return(0,$.jsxs)(`div`,{className:`web-page`,children:[(0,$.jsx)(c,{variant:`h2`,text:t(`host/settings/title`)}),(0,$.jsx)(l,{schema:f.schema,value:p,onChange:e=>{m(e),g(!1)},baseline:y,jsonEditor:Ce,onJsonValidChange:v}),(0,$.jsxs)(`div`,{className:`web-page__actions`,children:[(0,$.jsx)(r,{label:t(`host/settings/save`),variant:`primary`,disabled:!x||!_,..._?{}:{title:t(`host/settings/fixJson`)},onClick:S}),(0,$.jsx)(r,{label:t(`host/settings/reset`),disabled:!x,onClick:()=>m(y)}),h&&!x?(0,$.jsx)(`span`,{className:`web-note`,children:t(`host/settings/saved`)}):null]})]})}export{we as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./useStore-BQkzWMs-.js";import{t}from"./sigillum-Bev0l9LS.js";import{It as n}from"./index-ddqm5vYD.js";function r({permission:r,fallback:i=null,child:a,children:o}){let s=e(t.session)??null;return n(s,r)?a??o:i}export{r as Sigillum,r as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./label-hTY0RCEf.js";import{l as r,t as i}from"./useI18n-T3BwAm0z.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./ContextMenu-
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./label-hTY0RCEf.js";import{l as r,t as i}from"./useI18n-T3BwAm0z.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./ContextMenu-DlF_3KO_.js";import{n as s,r as c,t as l}from"./HeaderAction-Bs-AE__U.js";import{r as u}from"./MountTitle-BYR1nX0U.js";var d=e(),f=t();function p({title:e,icon:t,color:u,actions:p=[]}){let h=a(),{t:g}=i(),[_,v]=(0,f.useState)(null),y=e=>void h.commands.execute(e),b=e=>n(e,{get:e=>h.store.get(e),translate:r}),x=e=>b(e.label),S=b(e);function C(e){e.stopPropagation();let t=e.currentTarget.getBoundingClientRect();v({x:t.right,y:t.bottom+2})}return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(`div`,{className:`oo-section-header`,"data-color":u,style:m,children:[(0,d.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:6,minWidth:0},children:[t?(0,d.jsx)(`span`,{className:`oo-section-header__icon`,"aria-hidden":!0,children:t}):null,(0,d.jsx)(`span`,{className:`oo-section-header__title`,style:{overflow:`hidden`,textOverflow:`ellipsis`},children:S})]}),(0,d.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:2},children:[p.map(e=>(0,d.jsx)(l,{action:e,text:x(e),run:y},e.command)),p.length?(0,d.jsx)(`button`,{className:`oo-btn oo-btn--icon`,"data-variant":`ghost`,type:`button`,title:g(`common/moreActions`,`More actions`),"aria-label":g(`common/moreActions`,`More actions`),onClick:C,style:s,children:`⋯`}):null]})]}),_?(0,d.jsx)(o,{x:_.x,y:_.y,onClose:()=>v(null),spec:{footerHints:!0,items:p.filter(e=>c(h,e)).map(e=>({title:x(e)||e.command,icon:e.icon,...e.active===void 0?{}:{active:h.when.evaluate(e.active)},onSelect:t=>{if(e.menu!==void 0){t.pushList({title:x(e)||e.command,query:{slot:e.menu}});return}y(e.command),t.closeMenu()}}))}}):null]})}var m={flex:`0 0 auto`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`var(--oo-spacing-xs) var(--oo-spacing-sm)`,background:`var(--oo-color-surface)`,borderBottom:`1px solid var(--oo-color-border)`,fontSize:`var(--oo-font-size-xs)`,textTransform:`uppercase`,letterSpacing:`0.06em`,userSelect:`none`,minWidth:0,minHeight:32};function h({mounts:e,state:t,renderMount:n,renderEmpty:r}){let i=a(),o=e.find(e=>e.key===t.activeContainerKey)??e[e.length-1],s=o?i.components.get(o.component.component)?.props:void 0,c=o?.props?.title??s?.title,l=u(o,``),f=o?.props?.icon??s?.icon,m=o?.props?.color??s?.color,h=o?.props?.actions??s?.actions,g=!!(c||h&&h.length);return(0,d.jsxs)(`div`,{className:`oo-layout oo-layout--single`,style:{height:`100%`,width:`100%`,display:`flex`,flexDirection:`column`,minHeight:0},children:[g?(0,d.jsx)(p,{title:l||o?.key||``,icon:f,color:m,actions:h}):null,(0,d.jsx)(`div`,{style:{flex:1,minHeight:0,position:`relative`},children:e.length===0?r?.()??null:e.map(e=>(0,d.jsx)(`div`,{className:`oo-layout__mount`,"data-active":e===o||void 0,style:{position:`absolute`,inset:0,overflow:`auto`,display:e===o?`block`:`none`},children:n(e)},e.key))})]})}export{h as SingleLayout};
|