@ahpd/web 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/README.md +18 -0
  2. package/dist/app/assets/ActionList-aOUHK9Z9.js +1 -0
  3. package/dist/app/assets/AudioPage-BCuwTLKN.js +1 -0
  4. package/dist/app/assets/Composer-Crdqrcjj.js +2 -0
  5. package/dist/app/assets/ContextMenu-BV1gdog0.js +1 -0
  6. package/dist/app/assets/CopyButton-DWmFc5fw.js +1 -0
  7. package/dist/app/assets/{DataTable-DsRcsDHs.js → DataTable-D9RxuuR3.js} +1 -1
  8. package/dist/app/assets/Details-BhWMrDPk.js +1 -0
  9. package/dist/app/assets/DiffPage-D8wjIu2g.js +3 -0
  10. package/dist/app/assets/Edit-B12zsW3c.js +1 -0
  11. package/dist/app/assets/Explorer-BR0vyz4x.js +1 -0
  12. package/dist/app/assets/Explorer-C2wZaZN2.js +1 -0
  13. package/dist/app/assets/{Explorer-DXZ2epSi.js → Explorer-CViecqG_.js} +1 -1
  14. package/dist/app/assets/Explorer-DLH41MqT.js +1 -0
  15. package/dist/app/assets/Explorer-z4mktaMi.js +1 -0
  16. package/dist/app/assets/{ExplorerList-Cecr_ZQS.js → ExplorerList-DfesRs43.js} +1 -1
  17. package/dist/app/assets/FilePage-CErxqbDp.js +3 -0
  18. package/dist/app/assets/Filter-DohSRUkD.js +1 -0
  19. package/dist/app/assets/HostSwitcher-BuSTjyO6.js +1 -0
  20. package/dist/app/assets/ImagePage-B-n1btEA.js +1 -0
  21. package/dist/app/assets/{Info-1oWO89--.js → Info-BbyvhG4Q.js} +1 -1
  22. package/dist/app/assets/LocaleToggle-CETgRIRf.js +1 -0
  23. package/dist/app/assets/{LogPage-DXOU5UzZ.js → LogPage-C_h99NtQ.js} +1 -1
  24. package/dist/app/assets/LoginForm-p7rsv-LJ.js +1 -0
  25. package/dist/app/assets/Markdown-_Awuh7Ku.js +4 -0
  26. package/dist/app/assets/MarkdownPage-Cv5UyfVY.js +1 -0
  27. package/dist/app/assets/Modal-BHPfQpzr.js +1 -0
  28. package/dist/app/assets/MountTitle-Bx_Vo8tF.js +1 -0
  29. package/dist/app/assets/New-D0REy_20.js +3 -0
  30. package/dist/app/assets/Page-B3UbQqyT.js +1 -0
  31. package/dist/app/assets/Page-TDRLt015.js +2 -0
  32. package/dist/app/assets/Page-cKDPN7cD.js +1 -0
  33. package/dist/app/assets/Pagination-v2fHA8Hf.js +1 -0
  34. package/dist/app/assets/PortaLock-ieoqUizB.js +2 -0
  35. package/dist/app/assets/{SchemaForm-D6mGj6Xh.js → SchemaForm-DKxGZpnK.js} +1 -1
  36. package/dist/app/assets/Settings-BP67xLx9.js +1 -0
  37. package/dist/app/assets/{SigillumGate-BVebugTV.js → SigillumGate-DNRuVdn4.js} +1 -1
  38. package/dist/app/assets/SingleLayout-D0y3xoJg.js +1 -0
  39. package/dist/app/assets/{SpatialLayout-Bm8uhLD2.js → SpatialLayout-CKZCVibM.js} +1 -1
  40. package/dist/app/assets/{SplitLayout-BuZpjDyP.js → SplitLayout-7EOWfDlZ.js} +1 -1
  41. package/dist/app/assets/{StackLayout-CbP6W0Er.js → StackLayout-1wBXKLKy.js} +1 -1
  42. package/dist/app/assets/StatusDot-CC7gdsot.js +1 -0
  43. package/dist/app/assets/{TabLayout-AUuJvVjp.js → TabLayout-ClrRSvj1.js} +1 -1
  44. package/dist/app/assets/{TabPanelLayout-BDz30u7O.js → TabPanelLayout-YGvLy1cR.js} +1 -1
  45. package/dist/app/assets/{TerminalPage-DbF4N79y.js → TerminalPage-BaFThhYG.js} +3 -3
  46. package/dist/app/assets/{ThemeModeToggle-B0EIvYRF.js → ThemeModeToggle-D1kTZNm_.js} +1 -1
  47. package/dist/app/assets/{ThemePicker-DHw8lqsi.js → ThemePicker-BIFeJU_m.js} +1 -1
  48. package/dist/app/assets/Tree-BAAGdT3c.css +1 -0
  49. package/dist/app/assets/Tree-BqFzA5wp.js +1 -0
  50. package/dist/app/assets/VideoPage-DbVVXi0p.js +1 -0
  51. package/dist/app/assets/WindowControls-BWi1hOPh.js +1 -0
  52. package/dist/app/assets/actions-BmFc5yoR.js +1 -0
  53. package/dist/app/assets/changeset-BgSW341C.js +1 -0
  54. package/dist/app/assets/{channel-BScxZDq2.js → channel-8aIcEm3f.js} +1 -1
  55. package/dist/app/assets/clicks-B3stbczh.js +1 -0
  56. package/dist/app/assets/clike-pnxEhJ5P.js +1 -0
  57. package/dist/app/assets/composer-commands-AmOY6XGO.js +2 -0
  58. package/dist/app/assets/data-CBWyZN_H.js +2 -0
  59. package/dist/app/assets/dist-1MAn9CBM.js +1 -0
  60. package/dist/app/assets/dist-33oU5N7i.js +1 -0
  61. package/dist/app/assets/dist-B9NMd4es.js +2 -0
  62. package/dist/app/assets/dist-BDH0Q8eg.js +13 -0
  63. package/dist/app/assets/dist-BfGIsxxP.js +1 -0
  64. package/dist/app/assets/dist-BnQxBrCW.js +11 -0
  65. package/dist/app/assets/dist-Bq_hlZV8.js +1 -0
  66. package/dist/app/assets/dist-C5-Hv917.js +1 -0
  67. package/dist/app/assets/dist-CEr2uR4w.js +6 -0
  68. package/dist/app/assets/dist-CYq92lOO.js +1 -0
  69. package/dist/app/assets/dist-CxEuuaKq.js +1 -0
  70. package/dist/app/assets/dist-D9412h7o.js +1 -0
  71. package/dist/app/assets/dist-DYPX2Ybv.js +23 -0
  72. package/dist/app/assets/dist-IR189dk6.js +1 -0
  73. package/dist/app/assets/dist-drsoOe-s.js +9 -0
  74. package/dist/app/assets/dist-rmKzqdIO.js +1 -0
  75. package/dist/app/assets/dockerfile-BDePf5PZ.js +1 -0
  76. package/dist/app/assets/drag-ruzgQUFW.js +1 -0
  77. package/dist/app/assets/emojis-7RT6GvLa.js +1 -0
  78. package/dist/app/assets/folder-path-CmVXGhKI.js +1 -0
  79. package/dist/app/assets/index-BQcTkW2q.css +1 -0
  80. package/dist/app/assets/index-DBKNxflN.js +14 -0
  81. package/dist/app/assets/lua-DPCEkfD_.js +1 -0
  82. package/dist/app/assets/media-C3ferCB3.js +1 -0
  83. package/dist/app/assets/notify-CJo-T9e2.js +1 -0
  84. package/dist/app/assets/registry-iidw4F1W.js +1 -0
  85. package/dist/app/assets/ruby-ChfNwlCY.js +1 -0
  86. package/dist/app/assets/sessions-BcRKb9k7.js +2 -0
  87. package/dist/app/assets/shell-DwuoZtxw.js +1 -0
  88. package/dist/app/assets/state-DRVsnGrf.js +1 -0
  89. package/dist/app/assets/state-KGSq646f.js +1 -0
  90. package/dist/app/assets/swift-DKB6_1j6.js +1 -0
  91. package/dist/app/assets/terminal-BMZxY-St.js +1 -0
  92. package/dist/app/assets/text-B601jRcP.js +1 -0
  93. package/dist/app/assets/toml-BPTmHmyx.js +1 -0
  94. package/dist/app/assets/useCloseGuard-B4qJKmaF.js +1 -0
  95. package/dist/app/assets/useStoreLabel-BuZT1So6.js +1 -0
  96. package/dist/app/assets/viewers-MssMDn0e.js +1 -0
  97. package/dist/app/assets/words-CyqfIDyJ.js +2 -0
  98. package/dist/app/assets/words-T8-D0K4W.js +1 -0
  99. package/dist/app/index.html +24 -12
  100. package/dist/embed/index.d.ts +56 -0
  101. package/dist/embed/index.js +11 -0
  102. package/dist/plugin/index.js +14 -1
  103. package/dist/plugin/index.js.map +1 -1
  104. package/dist/plugin/static.js +3 -2
  105. package/dist/plugin/static.js.map +1 -1
  106. package/package.json +35 -10
  107. package/dist/app/assets/ActionList-DZ9lLGRe.js +0 -1
  108. package/dist/app/assets/Composer-C54KOyHb.js +0 -2
  109. package/dist/app/assets/ContextMenu-D3PBPRRl.js +0 -1
  110. package/dist/app/assets/Details-Bgo6JIBm.js +0 -1
  111. package/dist/app/assets/DiffPage-BFnOf1p9.js +0 -1
  112. package/dist/app/assets/Edit-DuGIlEIV.js +0 -1
  113. package/dist/app/assets/Explorer-BkMOyBlc.js +0 -1
  114. package/dist/app/assets/Explorer-CjLkoKLM.js +0 -1
  115. package/dist/app/assets/Explorer-CwDdWpNn.js +0 -1
  116. package/dist/app/assets/FilePage-Bo_9WZiQ.js +0 -1
  117. package/dist/app/assets/Filter-C9Z9GcBH.js +0 -1
  118. package/dist/app/assets/LocaleToggle-CBvJEvFm.js +0 -1
  119. package/dist/app/assets/LoginForm-C7ZmFVLz.js +0 -1
  120. package/dist/app/assets/Markdown-BaxWPZc1.js +0 -4
  121. package/dist/app/assets/MarkdownPage-8oL61A0c.js +0 -1
  122. package/dist/app/assets/Modal-BPnVnP2R.js +0 -1
  123. package/dist/app/assets/MountTitle-DXPuKAFo.js +0 -1
  124. package/dist/app/assets/New-DHihaOkV.js +0 -3
  125. package/dist/app/assets/Page-BkOqYXfd.js +0 -1
  126. package/dist/app/assets/Page-D7hXrdQj.js +0 -2
  127. package/dist/app/assets/Page-DOVek_br.js +0 -1
  128. package/dist/app/assets/Pagination-CmWBkMlC.js +0 -1
  129. package/dist/app/assets/Palette-CEQLzNFd.js +0 -1
  130. package/dist/app/assets/PortaLock-CC2pIbs8.js +0 -2
  131. package/dist/app/assets/Settings-wnbeCcl1.js +0 -1
  132. package/dist/app/assets/SingleLayout-BNVy245Q.js +0 -1
  133. package/dist/app/assets/StatusDot-BwqhMthP.js +0 -1
  134. package/dist/app/assets/actions-DTKyI167.js +0 -1
  135. package/dist/app/assets/data-BvTv-4oH.js +0 -2
  136. package/dist/app/assets/diff-eyYjrmkY.js +0 -3
  137. package/dist/app/assets/emojis-XibTG-gy.js +0 -1
  138. package/dist/app/assets/index-Cu7ySznN.js +0 -15
  139. package/dist/app/assets/index-DgTMhxdP.css +0 -1
  140. package/dist/app/assets/link-DK7OzQXZ.js +0 -1
  141. package/dist/app/assets/terminal-BSweq0Uj.js +0 -1
  142. package/dist/app/assets/text-DJDdwKmv.js +0 -1
  143. package/dist/app/assets/useI18n-BTsfCYkN.js +0 -1
  144. package/dist/app/assets/useStoreLabel-CK2AU1rh.js +0 -1
  145. package/dist/app/assets/words-BMjqrsOT.js +0 -1
  146. package/dist/app/assets/words-CrqnRMW4.js +0 -1
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./useStore-BQkzWMs-.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./useI18n-BTsfCYkN.js";var i=e();function a({namespace:e,fields:a}){let d=n(),{t:f}=r(`query`),p=t(`$/${e}/query`),m=p?.where??[],h=t=>d.store.set(`$/${e}/query`,{...p??{page:1,pageSize:50},...t,page:1}),g=e=>e.value??!0,_=e=>m.some(t=>t.field===e.field&&t.value===g(e)),v=e=>{let t=m.filter(t=>t.field!==e.field),n=_(e)?t:[...t,{field:e.field,op:e.op??`eq`,value:g(e)}];h({where:n})};return(0,i.jsxs)(`div`,{style:o,children:[(0,i.jsx)(`input`,{style:s,placeholder:f(`search`,`Search…`),value:p?.q??``,onChange:e=>h({q:e.currentTarget.value})}),a?.length?(0,i.jsx)(`div`,{style:c,children:a.map(e=>(0,i.jsx)(`button`,{type:`button`,style:{...l,..._(e)?u:{}},onClick:()=>v(e),children:e.label??e.field},e.field))}):null]})}var o={display:`flex`,flexDirection:`column`,gap:6,padding:8},s={boxSizing:`border-box`,width:`100%`,padding:`6px 8px`,background:`var(--oo-color-canvas, #16181d)`,border:`1px solid var(--oo-color-border, #2b2f37)`,borderRadius:4,outline:`none`,fontSize:13,color:`var(--oo-color-text, #e6e8eb)`},c={display:`flex`,flexWrap:`wrap`,gap:4},l={appearance:`none`,border:`1px solid var(--oo-color-border, #2b2f37)`,background:`none`,borderRadius:999,padding:`2px 8px`,fontSize:11,cursor:`pointer`,color:`var(--oo-color-muted, #8a8f98)`},u={color:`#fff`,background:`var(--oo-color-accent, #4c7fff)`,borderColor:`var(--oo-color-accent, #4c7fff)`};export{a as Filter};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useI18n-BTsfCYkN.js";var r=t(),i=e();function a({display:e=`text`,locales:t,separator:a=`|`,className:s,style:c}){let{locale:l,locales:u,setLocale:d}=n(),f=t?t.map(e=>u.find(t=>t.locale===e)).filter(Boolean):u;return(0,i.jsx)(`div`,{className:[`oo-locale-toggle`,s].filter(Boolean).join(` `),style:c,role:`group`,children:f.map((t,n)=>(0,i.jsxs)(r.Fragment,{children:[n>0&&a!=null?(0,i.jsx)(`span`,{className:`oo-locale-toggle__sep`,"aria-hidden":`true`,children:a}):null,(0,i.jsx)(`button`,{type:`button`,className:`oo-locale-toggle__item`+(t.locale===l?` oo-locale-toggle__item--active`:``),"aria-pressed":t.locale===l,title:t.name??t.locale,onClick:()=>d(t.locale),children:o(t,e)})]},t.locale))})}function o(e,t){let n=(e.language??e.locale).toUpperCase();return t===`emoji`?e.emoji??n:t===`both`&&e.emoji?`${e.emoji} ${n}`:n}export{a as LocaleToggle};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./useI18n-BTsfCYkN.js";import{t as a}from"./sigillum-Bev0l9LS.js";import{t as o}from"./Button-_R1oktDz.js";/* empty css */import{F as s}from"./index-Cu7ySznN.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=r(),y=s(),{t:b}=i(),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:r}){let{t:a}=i(`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:()=>r(`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:()=>r(`sigillum.requestOtp`,{providerId:e.id,value:p})})]})]})}function g({provider:e,challenge:t,pending:n,fire:r}){let{t:a}=i(`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:()=>r(`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};
@@ -1,4 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";var n=t(),r=e();function i({text:e=``,style:t,className:n}){let i=new Map,a=_(e.split(/\r?\n/),i),o=[],s={notes:i,order:o},c=a.map((e,t)=>b(e,t,s));return(0,r.jsxs)(`div`,{className:[`oo-markdown`,n].filter(Boolean).join(` `),style:t,children:[c,o.length===0?null:(0,r.jsx)(`ol`,{className:`oo-markdown__notes`,children:o.map(e=>(0,r.jsx)(`li`,{id:x(e),children:D(i.get(e)??``,s)},e))})]})}var a=/^ {0,3}(#{1,6})\s+(.*?)(?:\s+#+)?\s*$/,o=/^ {0,3}(`{3,}|~{3,})\s*([^`\s]*)/,s=/^ {0,3}([-*_])(?:\s*\1){2,}\s*$/,c=/^ {0,3}>/,l=/^(\s*)([-*+]|\d{1,9}[.)])\s+(.*)$/,u=/^\[\^([^\]]+)\]:\s*(.*)$/,d=/^\s*\|?\s*:?-+:?\s*(\|\s*:?-+:?\s*)*\|?\s*$/;function f(e,t){return a.test(e)||o.test(e)||s.test(e)||c.test(e)||l.test(e)||e.includes(`|`)&&t!==void 0&&d.test(t)}function p(e){let t=0;for(let n of e)if(n===` `)t+=1;else if(n===` `)t+=4;else break;return t}function m(e,t){let n=0,r=0;for(;n<e.length&&r<t;){if(e[n]===` `)r+=1;else if(e[n]===` `)r+=4;else break;n+=1}return e.slice(n)}function h(e){let t=e.trim();t.startsWith(`|`)&&(t=t.slice(1)),t.endsWith(`|`)&&!t.endsWith(`\\|`)&&(t=t.slice(0,-1));let n=[],r=``,i=!1;for(let e=0;e<t.length;e+=1){let a=t[e];if(a===`\\`&&t[e+1]===`|`){r+=`|`,e+=1;continue}if(a==="`"&&(i=!i),a===`|`&&!i){n.push(r.trim()),r=``;continue}r+=a}return n.push(r.trim()),n}function g(e){let t=e.startsWith(`:`),n=e.endsWith(`:`);return t&&n?`center`:n?`right`:t?`left`:null}function _(e,t){let n=[],r=0;for(;r<e.length;){let i=e[r]??``;if(i.trim()===``){r+=1;continue}let v=o.exec(i);if(v){let t=v[1]??"```",a=p(i),o=[];for(r+=1;r<e.length;){let n=e[r]??``,i=/^ {0,3}(`{3,}|~{3,})\s*$/.exec(n);if(i&&i[1][0]===t[0]&&i[1].length>=t.length)break;o.push(m(n,a)),r+=1}r+=1,n.push({kind:`code`,lang:(v[2]??``).toLowerCase(),body:o.join(`
2
- `)});continue}let y=a.exec(i);if(y){n.push({kind:`h`,level:y[1].length,text:y[2]??``}),r+=1;continue}if(s.test(i)){n.push({kind:`hr`}),r+=1;continue}if(c.test(i)){let i=[];for(;r<e.length&&(e[r]??``).trim()!==``;){let t=e[r]??``;i.push(c.test(t)?t.replace(/^ {0,3}> ?/,``):t),r+=1}n.push({kind:`quote`,blocks:_(i,t)});continue}let b=u.exec(i);if(b){let n=[b[2]??``];for(r+=1;r<e.length&&p(e[r]??``)>=2&&(e[r]??``).trim()!==``;)n.push((e[r]??``).trim()),r+=1;t.set(b[1],n.join(` `));continue}let x=l.exec(i);if(x){let a=p(i),o=/\d/.test(x[2][0]),s=o?parseInt(x[2],10):1,c=[];for(;r<e.length;){let n=l.exec(e[r]??``);if(!n||p(e[r]??``)!==a||/\d/.test(n[2][0])!==o)break;let i=a+n[2].length+1,s=n[3]??``,u=null,d=/^\[([ xX])\]\s+(.*)$/.exec(s);d&&(u=d[1]!==` `,s=d[2]??``);let h=[s];for(r+=1;r<e.length;){let t=e[r]??``;if(t.trim()===``){let t=e[r+1];if(t!==void 0&&t.trim()!==``&&p(t)>=i){h.push(``),r+=1;continue}break}let n=p(t);if(n>a&&n>=Math.min(i,a+2)){h.push(m(t,Math.min(n,i))),r+=1;continue}if(n<=a&&!f(t,e[r+1])){h.push(t.trim()),r+=1;continue}break}c.push({checked:u,blocks:_(h,t)});let g=r;for(;g<e.length&&(e[g]??``).trim()===``;)g+=1;let v=l.exec(e[g]??``);g>r&&v&&p(e[g]??``)===a&&/\d/.test(v[2][0])===o&&(r=g)}n.push({kind:`list`,ordered:o,start:s,items:c});continue}let S=e[r+1];if(i.includes(`|`)&&S!==void 0&&d.test(S)){let t=h(i),a=h(S).map(g),o=[];for(r+=2;r<e.length&&(e[r]??``).trim()!==``&&(e[r]??``).includes(`|`)&&!f(e[r]??``,void 0);)o.push(h(e[r]??``)),r+=1;n.push({kind:`table`,head:t,align:a,rows:o});continue}let C=[i];for(r+=1;r<e.length&&(e[r]??``).trim()!==``&&!f(e[r]??``,e[r+1])&&!u.test(e[r]??``);)C.push(e[r]??``),r+=1;n.push({kind:`p`,lines:C.map(e=>e.trim())})}return n}function v(e,t){let[n,...i]=e.blocks,a=n?.kind===`p`?y(n.lines,t):n===void 0?null:b(n,0,t);return(0,r.jsxs)(r.Fragment,{children:[e.checked===null?null:(0,r.jsx)(`input`,{type:`checkbox`,checked:e.checked,disabled:!0,readOnly:!0,className:`oo-markdown__task`}),a,i.map((e,n)=>b(e,n+1,t))]})}function y(e,t){return e.map((i,a)=>(0,r.jsxs)(n.Fragment,{children:[D(i,t),a<e.length-1?(0,r.jsx)(`br`,{}):null]},a))}function b(e,t,n){switch(e.kind){case`h`:{let i=`h${e.level}`;return(0,r.jsx)(i,{children:D(e.text,n)},t)}case`p`:return(0,r.jsx)(`p`,{children:y(e.lines,n)},t);case`hr`:return(0,r.jsx)(`hr`,{},t);case`quote`:return(0,r.jsx)(`blockquote`,{children:e.blocks.map((e,t)=>b(e,t,n))},t);case`list`:{let i=e.items.map((e,t)=>(0,r.jsx)(`li`,{"data-task":e.checked===null?void 0:`true`,children:v(e,n)},t));return e.ordered?(0,r.jsx)(`ol`,{start:e.start===1?void 0:e.start,children:i},t):(0,r.jsx)(`ul`,{children:i},t)}case`code`:return(0,r.jsx)(`pre`,{"data-lang":e.lang||void 0,children:(0,r.jsx)(`code`,{children:j(e.lang,e.body)})},t);case`table`:{let i=e.head.length,a=(e,t)=>e[t]??``,o=t=>{let n=e.align[t];return n?{textAlign:n}:void 0};return(0,r.jsx)(`div`,{className:`oo-markdown__table`,children:(0,r.jsxs)(`table`,{children:[(0,r.jsx)(`thead`,{children:(0,r.jsx)(`tr`,{children:e.head.map((e,t)=>(0,r.jsx)(`th`,{style:o(t),children:D(e,n)},t))})}),(0,r.jsx)(`tbody`,{children:e.rows.map((e,t)=>(0,r.jsx)(`tr`,{children:Array.from({length:i},(t,i)=>(0,r.jsx)(`td`,{style:o(i),children:D(a(e,i),n)},i))},t))})]})},t)}}}var x=e=>`oo-fn-${e.replace(/[^\w-]/g,`_`)}`;function S(e){let t=e.trim(),n=/^([a-z][a-z0-9+.-]*):/i.exec(t);return n===null||/^(https?|mailto|file|vscode|ahp[a-z-]*)$/i.test(n[1])?t:null}var C=e=>/^(https?|mailto):/i.test(e)?`web`:`local`;function w(e,t,n,r){let i=0;for(let a=t;a<e.length;a+=1){if(e[a]===`\\`){a+=1;continue}if(e[a]===n)i+=1;else if(e[a]===r&&(--i,i===0))return a}return-1}var T=/[!-/:-@[-`{-~]/,E=/[\p{L}\p{N}]/u;function D(e,t){let i=[],a=0,o=``,s=0;function c(){o&&=(i.push(o),``)}function l(e){c(),i.push((0,r.jsx)(n.Fragment,{children:e},s++))}function u(t){if(e.slice(a,a+t.length)!==t)return null;let n=e[a+t.length];if(n===void 0||n===` `||n===t[0]||t[0]===`_`&&a>0&&E.test(e[a-1]))return null;let r=a+t.length+1;for(;r<=e.length;){let n=e.indexOf(t,r);if(n<0)return null;let i=e[n-1],o=e[n+t.length];if(i!==` `&&!(t[0]===`_`&&o!==void 0&&E.test(o))&&o!==t[0])return{inner:e.slice(a+t.length,n),end:n+t.length};r=n+1}return null}for(;a<e.length;){let n=e[a];if(n===`\\`&&a+1<e.length&&T.test(e[a+1])){o+=e[a+1],a+=2;continue}if(n==="`"){let t=1;for(;e[a+t]==="`";)t+=1;let n="`".repeat(t),i=e.indexOf(n,a+t);if(i>0){let n=e.slice(a+t,i);n.startsWith(` `)&&n.endsWith(` `)&&n.trim()!==``&&(n=n.slice(1,-1)),l((0,r.jsx)(`code`,{children:n})),a=i+t;continue}o+=n,a+=t;continue}if(n===`[`&&e[a+1]===`^`){let n=e.indexOf(`]`,a+2),i=n>0?e.slice(a+2,n):``;if(i!==``&&t.notes.has(i)){t.order.includes(i)||t.order.push(i);let e=t.order.indexOf(i)+1;l((0,r.jsx)(`sup`,{className:`oo-markdown__ref`,title:t.notes.get(i),children:e})),a=n+1;continue}}if(n===`[`||n===`!`&&e[a+1]===`[`){let i=n===`!`,o=i?a+1:a,s=w(e,o,`[`,`]`);if(s>0&&e[s+1]===`(`){let n=w(e,s+1,`(`,`)`);if(n>0){let c=e.slice(o+1,s),u=S(e.slice(s+2,n).trim().replace(/\s+"[^"]*"$/,``).replace(/^<(.*)>$/,`$1`));if(i)l(u===null?c:(0,r.jsx)(`img`,{src:u,alt:c}));else if(u===null)l(D(c,t));else{let e=C(u);l((0,r.jsx)(`a`,{href:u,"data-kind":e,...e===`web`?{target:`_blank`,rel:`noreferrer noopener`}:{},children:D(c,t)}))}a=n+1;continue}}}if(n===`<`){let t=/^<((?:https?|mailto):[^\s<>]+)>/i.exec(e.slice(a));if(t){l((0,r.jsx)(`a`,{href:t[1],"data-kind":`web`,target:`_blank`,rel:`noreferrer noopener`,children:t[1]})),a+=t[0].length;continue}}if((n===`h`||n===`H`)&&(a===0||!E.test(e[a-1]))){let t=/^https?:\/\/[^\s<>]*[^\s<>.,;:!?'")\]*_~]/i.exec(e.slice(a));if(t){l((0,r.jsx)(`a`,{href:t[0],"data-kind":`web`,target:`_blank`,rel:`noreferrer noopener`,children:t[0]})),a+=t[0].length;continue}}let i=u(`**`)??u(`__`);if(i){l((0,r.jsx)(`strong`,{children:D(i.inner,t)})),a=i.end;continue}let s=u(`~~`);if(s){l((0,r.jsx)(`del`,{children:D(s.inner,t)})),a=s.end;continue}let c=u(`*`)??u(`_`);if(c){l((0,r.jsx)(`em`,{children:D(c.inner,t)})),a=c.end;continue}o+=n,a+=1}return c(),i}var O={js:`c`,jsx:`c`,ts:`c`,tsx:`c`,mjs:`c`,cjs:`c`,javascript:`c`,typescript:`c`,java:`c`,kotlin:`c`,kt:`c`,scala:`c`,swift:`c`,dart:`c`,c:`c`,h:`c`,cpp:`c`,"c++":`c`,cc:`c`,hpp:`c`,cs:`c`,csharp:`c`,"objective-c":`c`,objc:`c`,go:`c`,golang:`c`,rust:`c`,rs:`c`,php:`c`,zig:`c`,groovy:`c`,proto:`c`,py:`hash`,python:`hash`,rb:`hash`,ruby:`hash`,sh:`hash`,bash:`hash`,zsh:`hash`,shell:`hash`,console:`hash`,yaml:`hash`,yml:`hash`,toml:`hash`,ini:`hash`,conf:`hash`,perl:`hash`,pl:`hash`,r:`hash`,make:`hash`,makefile:`hash`,dockerfile:`hash`,docker:`hash`,nix:`hash`,powershell:`hash`,ps1:`hash`,sql:`sql`,psql:`sql`,mysql:`sql`,sqlite:`sql`,lua:`sql`,haskell:`sql`,hs:`sql`,css:`css`,scss:`css`,less:`css`,html:`markup`,xml:`markup`,svg:`markup`,vue:`markup`,json:`json`,jsonc:`json`,json5:`json`,diff:`diff`,patch:`diff`},k=new Set(`abstract and as assert async await break case catch class const continue def default defer del do elif else enum except export extends extern false final finally fn for foreach from func function go goto if impl implements import in instanceof interface is lambda let loop match mod module mut namespace new nil none None not null or override package pass private protected pub public raise readonly return self Self static struct super switch then this throw throws trait true True False try type typeof undefined union unless unsafe until use using var void when where while with yield fi esac done local echo export select insert update delete into values set create table alter drop index primary key references join left right inner outer on group by order having limit begin end local function nil elseif repeat`.split(` `));function A(e){let t=String.raw`"(?:\\.|[^"\\\n])*"|'(?:\\.|[^'\\\n])*'`,n=String.raw`\b(?:0[xXbBoO][\da-fA-F_]+|\d[\d_]*(?:\.\d+)?(?:[eE][+-]?\d+)?)\b`,r=String.raw`[A-Za-z_$][\w$]*`;switch(e){case`c`:return new RegExp(String.raw`(\/\/[^\n]*|\/\*[\s\S]*?\*\/)|(${t}|\x60(?:\\.|[^\x60\\])*\x60)|(${n})|(${r})`,`g`);case`hash`:return new RegExp(String.raw`((?:^|(?<=\s))#[^\n]*)|(${t})|(${n})|(${r})`,`g`);case`sql`:return new RegExp(String.raw`(--[^\n]*|\/\*[\s\S]*?\*\/)|(${t})|(${n})|(${r})`,`g`);case`css`:return new RegExp(String.raw`(\/\*[\s\S]*?\*\/)|(${t})|(#[\da-fA-F]{3,8}\b|-?\d+(?:\.\d+)?(?:px|em|rem|%|vh|vw|s|ms|deg)?)|(@[\w-]+|!important)`,`g`);case`markup`:return new RegExp(String.raw`(<!--[\s\S]*?-->)|(${t})|()(<\/?[\w:-]+|\/?>)`,`g`);case`json`:return new RegExp(String.raw`()("(?:\\.|[^"\\\n])*")|(-?${n})|(\b(?:true|false|null)\b)`,`g`);case`diff`:return null}}function j(e,t){let n=O[e];if(n===void 0)return t;if(n===`diff`)return t.split(`
3
- `).map((e,t,n)=>{let i=/^(\+\+\+|---|@@|diff |index )/.test(e)?`meta`:e.startsWith(`+`)?`add`:e.startsWith(`-`)?`del`:null,a=t<n.length-1?`
4
- `:``;return i===null?e+a:(0,r.jsxs)(`span`,{className:`oo-tok-${i}`,children:[e,a]},t)});let i=A(n);if(i===null)return t;let a=[],o=0,s=0;for(let e of t.matchAll(i)){let i=e.index??0,[,c,l,u,d]=e,f=null;if(c)f=`comment`;else if(l)f=`string`;else if(u)f=`number`;else if(d){let e=n===`c`||n===`hash`||n===`sql`,t=k.has(d)||n===`sql`&&k.has(d.toLowerCase());f=!e||t?`keyword`:null}f!==null&&(i>o&&a.push(t.slice(o,i)),a.push((0,r.jsx)(`span`,{className:`oo-tok-${f}`,children:e[0]},s++)),o=i+e[0].length)}return o<t.length&&a.push(t.slice(o)),a}export{i as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./Spinner-B-iOhBZq.js";import{t as i}from"./Markdown-BaxWPZc1.js";import{t as a}from"./Alert-CHZkhmDE.js";import{n as o,t as s}from"./text-DJDdwKmv.js";import{n as c}from"./link-DK7OzQXZ.js";t();var l=e(),u=e=>e.replace(/\/[^/]*$/,``);function d({uri:e}){let t=n(),d=o(e);if(e===void 0)return(0,l.jsx)(a,{tone:`warning`,message:`No file was named.`});let f=(0,l.jsx)(s,{uri:e});return d===null?(0,l.jsxs)(`div`,{className:`web-file`,children:[f,(0,l.jsx)(r,{label:`Reading the file`})]}):`error`in d?(0,l.jsxs)(`div`,{className:`web-file`,children:[f,(0,l.jsx)(a,{tone:`danger`,title:`Not readable`,message:d.error})]}):d.text===null?(0,l.jsxs)(`div`,{className:`web-file`,children:[f,(0,l.jsx)(`p`,{className:`web-note`,children:`This file is not text.`})]}):(0,l.jsxs)(`div`,{className:`web-file`,children:[f,(0,l.jsx)(`div`,{className:`web-file__body`,children:(0,l.jsx)(`div`,{className:`web-file__doc`,onClick:n=>{let r=n.target.closest(`a`);if(r===null)return;let i=r.getAttribute(`href`)??``;if(i.startsWith(`#`))return;n.preventDefault();let a=c(i,u(e));a===null?/^(https?|mailto):/i.test(i)&&window.open(i,`_blank`,`noopener`):t.commands.execute(`ahp.openFile`,{uri:a.uri,line:a.line,end:a.end})},children:(0,l.jsx)(i,{text:d.text})})})]})}export{d as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{o as n}from"./mount-context-DZgEFVFG.js";import{r}from"./Icon-CIQ7doud.js";var i=e(),a=t();function o({open:e,defaultOpen:t,title:o,child:s,children:c,onClose:l,dismissable:u=!0}){let d=n(`open`),[f,p]=(0,a.useState)(e??t??!1);(0,a.useEffect)(()=>{e!==void 0&&p(t=>t===e?t:e)},[e]);function m(){u&&(p(!1),d(!1),l?.())}if(!f)return null;let h=s??c;return(0,i.jsx)(`div`,{onClick:m,style:{position:`fixed`,inset:0,background:`rgba(0,0,0,0.4)`,display:`flex`,alignItems:`center`,justifyContent:`center`,zIndex:2e3},children:(0,i.jsxs)(`div`,{onClick:e=>e.stopPropagation(),style:{background:`var(--oo-color-canvas, #fff)`,color:`inherit`,border:`1px solid var(--oo-color-border)`,borderRadius:`var(--oo-radius-sm, 4px)`,padding:16,minWidth:320,maxWidth:`80vw`,maxHeight:`80vh`,overflow:`auto`},children:[o?(0,i.jsxs)(`div`,{style:{fontWeight:600,marginBottom:8,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,i.jsx)(`span`,{children:o}),u?(0,i.jsx)(`button`,{type:`button`,onClick:m,style:{background:`transparent`,border:`none`,cursor:`pointer`,font:`inherit`,color:`inherit`},"aria-label":`Close`,children:r.closePanel}):null]}):null,h]})})}export{o as Modal};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{c as t}from"./useStore-BQkzWMs-.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./useStoreLabel-CK2AU1rh.js";import{V as i}from"./index-Cu7ySznN.js";var a=e();function o(e,t=``){let i=n(),a=e?i.components.get(e.component.component)?.props:void 0;return r(e?.props?.title??a?.title,``,e?.dataContext)||t}function s({mount:e,fallback:t,iconClassName:i,titleClassName:o,style:s}){let c=n(),l=e?c.components.get(e.component.component)?.props:void 0,u=r(e?.props?.title??l?.title,``,e?.dataContext)||(t??``),d=e?.props?.icon??l?.icon;return(0,a.jsxs)(`span`,{title:u,style:{display:`inline-flex`,alignItems:`center`,gap:6,minWidth:0,...s},children:[d?(0,a.jsx)(`span`,{className:i,"aria-hidden":!0,children:d}):null,(0,a.jsx)(`span`,{className:o,style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:u})]})}function c(e,n){let r=e.components.get(n.component.component)?.props,a=n.props?.title??r?.title;if(a==null)return n.key;if(typeof a==`string`)return a;if(`t`in a)return i(a.t);let o=t(e.store,n.dataContext,a.path);return o==null?n.key:String(o)}export{c as n,o as r,s as t};
@@ -1,3 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{f as a,g as o,i as s,w as c,y as l}from"./data-BvTv-4oH.js";import{i as u,n as d,r as f}from"./words-CrqnRMW4.js";import{t as p}from"./emojis-XibTG-gy.js";import{t as m}from"./Alert-CHZkhmDE.js";import{a as h,i as g,n as _,o as v,r as y}from"./Composer-C54KOyHb.js";import{t as b}from"./Text-MPtQvYE-.js";var x=t(),S=e(),C=300;function w({name:e,schema:t,value:n,choices:r,set:i}){let a=t.title||e,o=n??t.default;if(t.type===`boolean`)return(0,S.jsx)(v,{label:a,...t.description===void 0?{}:{title:t.description},value:o===!0,onChange:i});let s=r??(t.enum??[]).map((e,n)=>({value:String(e),label:t.enumLabels?.[n]??String(e)}));if(s.length>0){let e=s.some(e=>e.value===String(o??``))?s:[{value:String(o??``),label:o===void 0?`default`:String(o)},...s];return(0,S.jsx)(y,{label:a,...t.description===void 0?{}:{title:t.description},value:String(o??``),options:e,onChange:e=>i(t.type===`number`?Number(e):e)})}return(0,S.jsx)(h,{label:a,...t.description===void 0?{}:{title:t.description},value:o==null?``:String(o),onChange:e=>i(t.type===`number`?e===``?void 0:Number(e):e)})}function T({provider:e}){let t=r(),v=n(`$/ahp/agents`)??[],T=n(s),[E,D]=(0,x.useState)(e??``),[O,k]=(0,x.useState)(``),[A,j]=(0,x.useState)(``),[M,N]=(0,x.useState)(``),[P,F]=(0,x.useState)({}),[I,L]=(0,x.useState)(null),[R,z]=(0,x.useState)({}),[B,V]=(0,x.useState)(!1),[H,U]=(0,x.useState)(null),W=(0,x.useRef)(null);(0,x.useEffect)(()=>{E===``&&v[0]!==void 0&&D(v[0].provider)},[v,E]),(0,x.useEffect)(()=>{O===``&&T!=null&&k(d(T))},[T,O]),(0,x.useEffect)(()=>_(W.current),[M]);let G=O.trim()===``?void 0:f(O),K=JSON.stringify([E,G,P]);(0,x.useEffect)(()=>{if(E===``)return;let e=!0,t=window.setTimeout(()=>{c(`resolveSessionConfig`,{channel:a,provider:E,...G===void 0?{}:{workingDirectory:G},config:P}).then(t=>{if(!e)return;let n=t;L({schema:n.schema.properties,values:n.values})}).catch(()=>{e&&L(null)})},C);return()=>{e=!1,window.clearTimeout(t)}},[K]);let q=Object.entries(I?.schema??{}).filter(([,e])=>e.enumDynamic===!0).map(([e])=>e).join(`
2
- `);(0,x.useEffect)(()=>{if(q===``)return;let e=!0;for(let t of q.split(`
3
- `))c(`sessionConfigCompletions`,{channel:a,provider:E,...G===void 0?{}:{workingDirectory:G},config:P,property:t}).then(n=>{let r=n.items;e&&z(e=>({...e,[t]:r.map(e=>({value:e.value,label:e.label}))}))}).catch(()=>void 0);return()=>{e=!1}},[q,E,G]);let J=v.find(e=>e.provider===E),Y=(0,x.useMemo)(()=>Object.entries(I?.schema??{}).filter(([e,t])=>t.readOnly!==!0&&e!==`model`),[I]),X=I?.schema.model,Z=X===void 0?(J?.models??[]).map(e=>({value:e.id,label:e.name})):R.model??(X.enum??[]).map((e,t)=>({value:String(e),label:X.enumLabels?.[t]??String(e)})),Q=async()=>{if(E===``)return;V(!0),U(null);let e=`${E}:/${u()}`,n=M.trim(),{model:r,...i}=P;try{if(await c(`createSession`,{channel:e,provider:E,...G===void 0?{}:{workingDirectories:[G]},...Object.keys(i).length===0?{}:{config:i}}),await t.commands.execute(`ahp.openSession`,{resource:e}),t.surfaces.close(`session:new`),n!==``){let t=(await l(e))?.defaultChat;if(t!==void 0){let e={text:n,origin:{kind:`user`},...A===``?{}:{model:{id:A}}};o(t,{type:`chat/turnStarted`,turnId:u(),startedAt:new Date().toISOString(),message:e})}}}catch(e){U(e instanceof Error?e.message:String(e))}finally{V(!1)}};return v.length===0?(0,S.jsx)(m,{tone:`warning`,message:`This daemon offers no agent.`}):(0,S.jsxs)(`div`,{className:`web-new`,children:[(0,S.jsx)(b,{variant:`h2`,text:`New session`}),J?.description===void 0||J.description===``?null:(0,S.jsx)(`p`,{className:`web-note`,children:J.description}),(0,S.jsxs)(`div`,{className:`web-composer web-new__composer`,children:[(0,S.jsxs)(`div`,{className:`web-composer__chips`,children:[(0,S.jsx)(y,{label:`Agent`,value:E,options:v.map(e=>({value:e.provider,label:e.displayName})),onChange:e=>{D(e),j(``),F({}),z({})}}),Z.length===0?null:(0,S.jsx)(y,{label:`Model`,value:A,options:[{value:``,label:`default`},...Z],onChange:j}),(0,S.jsx)(h,{label:p.folder,title:`A folder on the daemon's machine`,value:O,placeholder:`/path/to/project`,width:220,onChange:k}),Y.map(([e,t])=>(0,S.jsx)(w,{name:e,schema:t,value:P[e]??I?.values[e],choices:R[e],set:t=>F(n=>({...n,[e]:t}))},e)),I===null&&E!==``?(0,S.jsx)(g,{label:`Reading settings`}):null]}),(0,S.jsx)(`div`,{className:`web-composer__bar`,children:(0,S.jsx)(`textarea`,{ref:W,className:`web-composer__text`,rows:3,value:M,"aria-label":`First message`,placeholder:`What should it do? Enter starts the session; leave it empty to start without a message.`,onChange:e=>N(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),Q())}})}),(0,S.jsxs)(`div`,{className:`web-composer__actions`,children:[(0,S.jsx)(`span`,{className:`web-composer__hint`,children:`Enter starts, Shift+Enter breaks the line`}),(0,S.jsx)(i,{label:B?`Starting`:M.trim()===``?`Create`:`Start`,variant:`primary`,size:`sm`,disabled:B||E===``,onClick:()=>void Q()})]})]}),H===null?null:(0,S.jsx)(m,{tone:`danger`,title:`Not created`,message:H})]})}export{T as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{G as a,d as o,n as s,w as c}from"./data-BvTv-4oH.js";import{n as l,t as u}from"./words-CrqnRMW4.js";import{t as d}from"./Badge-BDEW5PFb.js";import{t as f}from"./Spinner-B-iOhBZq.js";import{t as p}from"./Markdown-BaxWPZc1.js";import{t as m}from"./Alert-CHZkhmDE.js";import{t as h}from"./Text-MPtQvYE-.js";import{t as g}from"./DetailList-Yalgw0YM.js";import{c as _,d as v,l as y,r as b,s as x,u as S}from"./index-Cu7ySznN.js";import{r as C}from"./turn-BoF7W1h6.js";import{t as w}from"./channel-BScxZDq2.js";import{a as T,i as E,r as D,t as O}from"./actions-DTKyI167.js";var k=t(),A=e(),j={running:{tone:`info`,text:`Running`},failed:{tone:`danger`,text:`Last run failed`},on:{tone:`success`,text:`On`},off:{tone:`default`,text:`Off`}},M={pending:{tone:`default`,text:`Waiting`},running:{tone:`info`,text:`Running`},completed:{tone:`success`,text:`Done`},failed:{tone:`danger`,text:`Failed`},cancelled:{tone:`default`,text:`Stopped`}};function N(e){let t=e;if(String(t.kind)!==`trigger`)return`By hand`;let n=t.scheduledFor===void 0?``:` for ${S(t.scheduledFor)}`;return`${t.catchUp===!0?`Catch-up`:`Scheduled`}${n}`}var P=e=>(0,A.jsx)(`span`,{className:`web-lines`,children:e.map((e,t)=>(0,A.jsx)(`span`,{children:e},t))});function F(e){let{definition:t}=e,n=t.session,r=n.workingDirectories??[],i=t.triggers.filter(e=>`schedule`in e),a=t.triggers.filter(e=>!(`schedule`in e)),o=(t.disableConditions??[]).map(e=>`max`in e?`After ${e.max} runs`:`After ${S(e.date)}`),s=[{label:`Agent`,value:n.provider??`The host default`},{label:`Model`,value:n.model?.id??`The agent default`}];r.length>0&&s.push({label:`Folder`,value:P(r.map(l))}),n.config!==void 0&&Object.keys(n.config).length>0&&s.push({label:`Settings`,value:P(Object.entries(n.config).map(([e,t])=>`${e}: ${String(t)}`))});for(let e of i)`schedule`in e&&(s.push({label:`Schedule`,value:P([b(e.schedule.expression),(0,A.jsx)(`span`,{className:`web-method`,children:`${e.schedule.expression} \u{00B7} ${e.schedule.timeZone}`},`raw`)])}),s.push({label:`Missed runs`,value:String(e.misfirePolicy)===`runOnce`?`Run once when back`:`Skipped`}));i.length===0&&a.length===0&&s.push({label:`Schedule`,value:`Run by hand only`});for(let e of a)`schedule`in e||s.push({label:`Event`,value:`${e.title}${e.events.length===0?``:`: ${e.events.map(e=>e.title).join(`, `)}`}`});return o.length>0&&s.push({label:`Turns off`,value:P(o)}),e.nextRunAt!==void 0&&t.enabled&&s.push({label:`Next run`,value:S(e.nextRunAt)}),s.push({label:`Runs`,value:String(e.runCount??e.runs.length)}),(e.customizations?.length??0)>0&&s.push({label:`Customizations`,value:String(e.customizations?.length)}),s.push({label:`Created`,value:S(e.createdAt)},{label:`Changed`,value:S(e.modifiedAt)}),s}function I({resource:e}){let t=r(),{state:l,error:b}=w(o,a),P=n(s),[I,L]=(0,k.useState)(null);if(b!==null)return(0,A.jsx)(m,{tone:`danger`,title:`No automations`,message:b});if(l===void 0)return(0,A.jsx)(f,{label:`Reading the automations`});let R=l.entries.find(t=>t.resource===e);if(R===void 0)return(0,A.jsx)(m,{tone:`warning`,message:`This automation is gone.`});let z=e=>R.operations.map(String).includes(e),B=j[y(R)],V=_(R),H=e=>L(e instanceof Error?e.message:String(e));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)(h,{variant:`h2`,text:v(R)}),(0,A.jsx)(d,{tone:B.tone,text:B.text})]}),(0,A.jsxs)(`div`,{className:`web-page__actions`,children:[z(`run`)?(0,A.jsx)(i,{label:`Run now`,variant:`primary`,onClick:()=>void E(R).catch(H)}):null,z(`update`)?(0,A.jsx)(i,{label:R.definition.enabled?`Turn off`:`Turn on`,onClick:()=>T(R,!R.definition.enabled)}):null,z(`update`)?(0,A.jsx)(i,{label:`Edit`,onClick:()=>void t.commands.execute(`ahp.editAutomation`,{resource:R.resource})}):null,z(`remove`)?(0,A.jsx)(i,{label:`Delete`,onClick:()=>void D(R)}):null]})]}),I===null?null:(0,A.jsx)(m,{tone:`danger`,message:I}),(0,A.jsx)(g,{items:F(R),columns:2}),(0,A.jsx)(h,{variant:`h3`,text:`Message`}),(0,A.jsx)(`div`,{className:`web-automation__message`,children:(0,A.jsx)(p,{text:R.definition.message.text})}),(0,A.jsx)(h,{variant:`h3`,text:`Runs`}),V.length===0?(0,A.jsx)(`p`,{className:`web-note`,children:`No runs yet.`}):(0,A.jsxs)(`table`,{className:`web-runs`,children:[(0,A.jsx)(`thead`,{children:(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`th`,{children:`Status`}),(0,A.jsx)(`th`,{children:`How`}),(0,A.jsx)(`th`,{children:`Started`}),(0,A.jsx)(`th`,{children:`Took`}),(0,A.jsx)(`th`,{children:`Tokens`}),(0,A.jsx)(`th`,{})]})}),(0,A.jsx)(`tbody`,{children:V.map(e=>{let n=x(e),r=M[n.status]??{tone:`default`,text:n.status},a=n.status===`running`||n.status===`pending`;return(0,A.jsxs)(`tr`,{children:[(0,A.jsxs)(`td`,{children:[(0,A.jsx)(d,{tone:r.tone,text:r.text}),n.error===void 0?null:(0,A.jsx)(`div`,{className:`web-note`,children:n.error})]}),(0,A.jsx)(`td`,{children:N(e.origin)}),(0,A.jsx)(`td`,{children:S(n.at)}),(0,A.jsx)(`td`,{children:n.took===void 0?``:u(n.took)}),(0,A.jsx)(`td`,{children:n.input===void 0&&n.output===void 0?``:`\u{2191}${C(n.input??0)} \u{2193}${C(n.output??0)}`}),(0,A.jsxs)(`td`,{className:`web-runs__actions`,children:[e.primarySession===void 0?null:(0,A.jsx)(i,{label:`Open session`,size:`sm`,onClick:()=>void t.commands.execute(`ahp.openSession`,{resource:e.primarySession})}),a&&P?.runCancellation!==void 0?(0,A.jsx)(i,{label:`Stop`,size:`sm`,onClick:()=>O(e.resource)}):null]})]},e.resource)})})]}),R.runsNextCursor===void 0?null:(0,A.jsx)(i,{label:`Load older runs`,onClick:()=>void c(`fetchAutomationRuns`,{channel:o,automation:R.resource,cursor:R.runsNextCursor}).catch(H)})]})}export{I as default};
@@ -1,2 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{F as a,I as o,L as s,V as c,c as l,g as u,q as d,v as f,w as p,z as m}from"./data-BvTv-4oH.js";import{a as h,n as g,t as _}from"./words-CrqnRMW4.js";import{t as v}from"./emojis-XibTG-gy.js";import{t as y}from"./Badge-BDEW5PFb.js";import{t as b}from"./Spinner-B-iOhBZq.js";import{t as x}from"./Markdown-BaxWPZc1.js";import{t as S}from"./Alert-CHZkhmDE.js";import{t as ee}from"./Composer-C54KOyHb.js";import{t as te}from"./Text-MPtQvYE-.js";import{T as C,g as ne,w}from"./index-Cu7ySznN.js";import{a as T,n as E,r as D,t as O}from"./turn-BoF7W1h6.js";import{t as k}from"./channel-BScxZDq2.js";import{n as A,t as j}from"./link-DK7OzQXZ.js";var M=t(),N=(0,M.createContext)(null),P={picked:[],text:``,other:!1};function F(e){return String(e.kind)===`boolean`?[{id:`yes`,label:`Yes`},{id:`no`,label:`No`}]:`options`in e?e.options:[]}function re(e){let t=String(e.kind);return t===`single-select`||t===`multi-select`||t===`boolean`}function I(e){return`allowFreeformInput`in e&&e.allowFreeformInput===!0}function ie(e,t){let n=String(e.kind),r=t.other?t.text.trim():``,i=e=>({state:`submitted`,value:e});if(n===`text`)return t.text.trim()===``?void 0:i({kind:`text`,value:t.text});if(n===`number`||n===`integer`){let e=Number(t.text);return t.text.trim()===``||Number.isNaN(e)?void 0:i({kind:`number`,value:e})}if(n===`boolean`)return t.picked[0]===void 0?void 0:i({kind:`boolean`,value:t.picked[0]===`yes`});if(n===`multi-select`)return t.picked.length===0&&r===``?void 0:i({kind:`selected-many`,value:t.picked,...r===``?{}:{freeformValues:[r]}});let a=t.picked[0];return a===void 0?r===``?void 0:i({kind:`text`,value:r}):i({kind:`selected`,value:a,...r===``?{}:{freeformValues:[r]}})}function ae(e){let t=e?.value;if(t===void 0)return P;let n=t.freeformValues?.[0],r=e=>n===void 0?e:{...e,text:n,other:!0};switch(t.kind){case`text`:return{picked:[],text:String(t.value??``),other:!0};case`number`:return{...P,text:String(t.value??``)};case`boolean`:return{...P,picked:[t.value===!0?`yes`:`no`]};case`selected`:return r({...P,picked:[String(t.value)]});case`selected-many`:return r({...P,picked:Array.isArray(t.value)?t.value.map(String):[]});default:return P}}function oe(e,t){let n=t?.value;if(n===void 0)return`Skipped`;let r=t=>F(e).find(e=>e.id===t)?.label??t,i=n.freeformValues??[];switch(n.kind){case`boolean`:return n.value===!0?`Yes`:`No`;case`selected`:return[r(String(n.value)),...i].join(`, `);case`selected-many`:return[...Array.isArray(n.value)?n.value.map(e=>r(String(e))):[],...i].join(`, `);default:return String(n.value??``)}}var L=e(),R=new Map,se=`The agent has a question`;function ce(e){let t=String(e.kind),n=[];return t===`single-select`&&n.push(`Pick one`),t===`multi-select`&&n.push(`Pick any`),t===`text`&&n.push(`Type an answer`),(t===`number`||t===`integer`)&&n.push(`Type a number`),I(e)&&n.push(`or write your own`),`${n.join(`, `)}${e.required===!0?``:` (optional)`}`}function le({question:e,draft:t,set:n,next:r}){let i=String(e.kind),a=i===`multi-select`,o=e=>{n(a?{...t,picked:t.picked.includes(e)?t.picked.filter(t=>t!==e):[...t.picked,e]}:{...t,picked:[e],other:!1})},s=e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),r())};return re(e)?(0,L.jsxs)(`div`,{className:`web-ask__options`,role:a?`group`:`radiogroup`,children:[F(e).map((e,n)=>{let r=t.picked.includes(e.id);return(0,L.jsxs)(`button`,{type:`button`,className:`web-ask__option`,role:a?`checkbox`:`radio`,"aria-checked":r,"data-on":r,onClick:()=>o(e.id),children:[(0,L.jsx)(`span`,{className:`web-ask__mark`,"data-many":a,"aria-hidden":`true`}),(0,L.jsxs)(`span`,{className:`web-ask__option-body`,children:[(0,L.jsxs)(`span`,{className:`web-ask__option-label`,children:[(0,L.jsx)(`span`,{className:`web-ask__key`,children:n+1}),e.label,e.recommended===!0?(0,L.jsx)(`span`,{className:`web-ask__tag`,children:`Recommended`}):null]}),e.description===void 0?null:(0,L.jsx)(`span`,{className:`web-ask__option-hint`,children:e.description})]})]},e.id)}),I(e)?(0,L.jsxs)(`div`,{className:`web-ask__option web-ask__other`,"data-on":t.other,children:[(0,L.jsx)(`button`,{type:`button`,className:`web-ask__mark`,"data-many":a,role:a?`checkbox`:`radio`,"aria-checked":t.other,"aria-label":`Other`,onClick:()=>n({...t,other:!t.other||!a,...a?{}:{picked:[]}})}),(0,L.jsx)(`input`,{className:`web-field`,value:t.text,placeholder:`Other: write your own answer`,onFocus:()=>{t.other||n({...t,other:!0,...a?{}:{picked:[]}})},onChange:e=>n({...t,text:e.target.value,other:!0,...a?{}:{picked:[]}}),onKeyDown:s})]}):null]}):i===`number`||i===`integer`?(0,L.jsx)(`input`,{className:`web-field`,type:`number`,autoFocus:!0,value:t.text,onChange:e=>n({...t,text:e.target.value}),onKeyDown:s}):(0,L.jsx)(`textarea`,{className:`web-field web-ask__text`,rows:3,autoFocus:!0,value:t.text,placeholder:`Your answer`,onChange:e=>n({...t,text:e.target.value}),onKeyDown:s})}function z({request:e,send:t,live:n,response:r}){let a=e.questions??[],[o,s]=(0,M.useState)(()=>Object.fromEntries(a.map(t=>[t.id,ae(e.answers?.[t.id])]))),[c,l]=(0,M.useState)(0),[u,d]=(0,M.useState)(()=>R.get(e.id)??null),f=Object.fromEntries(a.flatMap(e=>{let t=ie(e,o[e.id]??P);return t===void 0?[]:[[e.id,t]]})),p=a.filter(e=>e.required===!0&&f[e.id]===void 0),m=e.message!==void 0&&e.message!==se?e.message:void 0,h=n=>{let r={response:n,answers:n===`accept`?f:{}};R.set(e.id,r),d(r),t({type:`chat/inputCompleted`,requestId:e.id,response:n,...n===`accept`&&Object.keys(f).length>0?{answers:f}:{}})},g=r??u?.response;if(g!==void 0||!n){let t=u?.answers??e.answers??{};return(0,L.jsxs)(`div`,{className:`web-ask`,"data-done":`true`,children:[(0,L.jsxs)(`div`,{className:`web-ask__head`,children:[(0,L.jsx)(`span`,{className:`web-ask__title`,children:g===`decline`?`Question declined`:g===void 0?`Question not answered`:`Question answered`}),u!==null&&r===void 0&&n?(0,L.jsx)(`span`,{className:`web-note`,children:`Sending to the agent`}):null]}),g===`accept`?(0,L.jsx)(`dl`,{className:`web-ask__summary`,children:a.map(e=>(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:e.title??e.message}),(0,L.jsx)(`dd`,{children:oe(e,t[e.id])})]},e.id))}):null]})}let _=a[c],v=c>=a.length-1,y=_===void 0?void 0:f[_.id],b=_!==void 0&&_.required===!0&&y===void 0,S=()=>{b||(v?p.length===0&&h(`accept`):l(c+1))};return(0,L.jsxs)(`div`,{className:`web-ask`,tabIndex:-1,onKeyDown:e=>{let t=e.target;if(_===void 0||t.closest(`input, textarea`)!==null||!/^[1-9]$/.test(e.key))return;let n=F(_)[Number(e.key)-1];if(n===void 0)return;let r=o[_.id]??P,i=String(_.kind)===`multi-select`,a=i?r.picked.includes(n.id)?r.picked.filter(e=>e!==n.id):[...r.picked,n.id]:[n.id];s({...o,[_.id]:{...r,picked:a,...i?{}:{other:!1}}})},children:[(0,L.jsxs)(`div`,{className:`web-ask__head`,children:[(0,L.jsxs)(`span`,{className:`web-ask__title`,children:[(0,L.jsx)(`span`,{className:`web-ask__icon`,"aria-hidden":`true`,children:`?`}),m===void 0?`The agent asks`:`The agent asks:`]}),a.length>1?(0,L.jsxs)(`span`,{className:`web-ask__steps`,"aria-label":`Question ${c+1} of ${a.length}`,children:[a.map((e,t)=>(0,L.jsx)(`button`,{type:`button`,className:`web-ask__step`,"data-here":t===c,"data-done":f[e.id]!==void 0,title:e.title??e.message,onClick:()=>l(t)},e.id)),(0,L.jsxs)(`span`,{className:`web-ask__count`,children:[c+1,` of `,a.length]})]}):null]}),m===void 0?null:(0,L.jsx)(`div`,{className:`web-ask__message`,children:(0,L.jsx)(x,{text:m})}),e.url===void 0?null:(0,L.jsx)(`a`,{className:`web-link`,href:e.url,target:`_blank`,rel:`noreferrer`,children:e.url}),_===void 0?null:(0,L.jsxs)(`section`,{className:`web-ask__question`,children:[_.title===void 0?null:(0,L.jsx)(`span`,{className:`web-ask__chip`,children:_.title}),(0,L.jsx)(`div`,{className:`web-ask__text-line`,children:_.message}),(0,L.jsx)(`div`,{className:`web-ask__hint`,children:ce(_)}),(0,L.jsx)(le,{question:_,draft:o[_.id]??P,set:e=>s({...o,[_.id]:e}),next:S})]},_.id),(0,L.jsxs)(`div`,{className:`web-ask__actions`,children:[(0,L.jsx)(i,{label:`Decline`,size:`sm`,onClick:()=>h(`decline`)}),(0,L.jsx)(`span`,{className:`web-ask__spacer`}),c>0?(0,L.jsx)(i,{label:`Back`,size:`sm`,onClick:()=>l(c-1)}):null,v?(0,L.jsx)(i,{label:`Answer`,variant:`primary`,size:`sm`,disabled:p.length>0,onClick:()=>h(`accept`)}):(0,L.jsx)(i,{label:`Next`,variant:`primary`,size:`sm`,disabled:b,onClick:S})]}),v&&p.length>0&&!b?(0,L.jsx)(`p`,{className:`web-note`,children:p.length===1?`One question still needs an answer.`:`${p.length} questions still need an answer.`}):null]})}var ue=[`command`,`file_path`,`path`,`pattern`,`query`,`url`,`description`],de=`ahpd.startedAt`,fe=`ahpd.durationMs`;function B(e){let t=`toolInput`in e?e.toolInput:void 0;if(typeof t==`string`&&t.trim()!==``)try{return JSON.parse(t)}catch{return t}}function pe(e){let t=B(e);return t===void 0?``:typeof t==`string`?t:JSON.stringify(t,null,2)}function me(e){let t=B(e);if(typeof t!=`object`||!t)return``;let n=t;for(let e of ue){let t=n[e];if(typeof t==`string`&&t.trim()!==``)return t.trim().split(`
2
- `)[0]}return``}function he(e){let t=B(e);if(typeof t!=`object`||!t)return;let n=t;for(let e of[`file_path`,`notebook_path`,`path`]){let t=n[e];if(typeof t==`string`&&t.startsWith(`/`))return`file://${t}`}}function ge(e){let t=(e.status===`completed`||e.status===`pending-result-confirmation`?h(e.pastTenseMessage):``)||h(`invocationMessage`in e?e.invocationMessage:void 0)||e.intention||``,n=e.displayName||e.toolName;if(t!==``&&t!==n&&t!==e.toolName)return t;let r=me(e);return r===``?n:`${n} ${r}`}function V(e){let t=e._meta?.[fe];return typeof t==`number`?t:void 0}function _e(e){let t=e._meta?.[de];if(typeof t!=`string`)return;let n=Date.parse(t);return Number.isNaN(n)?void 0:n}var ve={Bash:`terminal`,terminal:`terminal`,shell:`terminal`,Read:`read`,read_file:`read`,NotebookRead:`read`,Glob:`search`,Grep:`search`,WebSearch:`search`,search:`search`,Edit:`edit`,MultiEdit:`edit`,Write:`edit`,NotebookEdit:`edit`,write_file:`edit`,edit_file:`edit`,Task:`subagent`,Agent:`subagent`,WebFetch:`web`,fetch:`web`};function ye(e){let t=e._meta?.toolKind;if(t===`terminal`||t===`read`||t===`search`||t===`subagent`)return t;let n=ve[e.toolName];if(n!==void 0)return n;let r=`content`in e&&Array.isArray(e.content)?e.content:[];return r.some(e=>e.type===`fileEdit`)?`edit`:r.some(e=>e.type===`terminal`)?`terminal`:`other`}function be(e){switch(e.status){case`streaming`:return`preparing`;case`pending-confirmation`:return`approval`;case`running`:return`running`;case`auth-required`:return`sign-in`;case`pending-result-confirmation`:return`review`;case`completed`:return e.success?`done`:`failed`;case`cancelled`:return`cancelled`;default:return`running`}}var xe=e=>e.replace(/\u001b\[[0-9;?]*[ -/]*[@-~]/g,``);function Se(e){let t=`content`in e&&Array.isArray(e.content)?e.content:[],n=[];for(let e of t){let t=String(e.type??``);if(t===`text`&&typeof e.text==`string`&&e.text!==``)n.push({kind:`text`,text:e.text});else if(t===`terminal`){let t=e.result;n.push({kind:`terminal`,title:String(e.title??`Terminal`),text:xe(t?.preview??``),...t?.exitCode===void 0?{}:{exitCode:t.exitCode},truncated:t?.truncated===!0})}else if(t===`fileEdit`){let t=e.before,r=e.after,i=r?.uri??t?.uri??``,a=e.diff;n.push({kind:`file`,path:g(i),file:i,...t?.content?.uri===void 0?{}:{before:t.content.uri},...r?.content?.uri===void 0?{}:{after:r.content.uri},...a?.added===void 0?{}:{added:a.added},...a?.removed===void 0?{}:{removed:a.removed}})}else t===`subagent`?n.push({kind:`note`,text:`Ran ${String(e.agentName??e.title??`a subagent`)}`}):t===`resource`&&n.push({kind:`note`,text:`Read ${g(String(e.uri??``))}`})}if(e.status===`completed`||e.status===`pending-result-confirmation`){let t=e.error?.message.trim(),r=n.some(e=>(e.kind===`text`||e.kind===`terminal`)&&t!==void 0&&e.text.includes(t));t!==void 0&&t!==``&&!r&&n.push({kind:`note`,text:t})}if(e.status===`cancelled`){let t=h(e.reasonMessage)||{denied:`Denied.`,skipped:`Skipped.`,"result-denied":`Result rejected.`}[String(e.reason)]||`Cancelled.`;n.push({kind:`note`,text:t})}return n}var Ce=/\[([^\]]+)\]\(([^)\s]+)\)|`([^`]+)`/g;function we(e,t){let n=[],r=0;for(let t of e.matchAll(Ce))t.index>r&&n.push({text:e.slice(r,t.index)}),t[1]===void 0?n.push({text:t[3],href:t[3],code:!0}):n.push({text:t[1],href:t[2]}),r=t.index+t[0].length;if(n.length>0)return r<e.length&&n.push({text:e.slice(r)}),n;let i=t?.replace(/^file:\/\//,``),a=i===void 0?-1:e.indexOf(i);return i===void 0||a<0?[{text:e}]:[...a>0?[{text:e.slice(0,a)}]:[],{text:i,href:t},...a+i.length<e.length?[{text:e.slice(a+i.length)}]:[]]}var H=`pending-confirmation`,Te=`pending-result-confirmation`,U={preparing:{glyph:v.pending,label:`Preparing`},approval:{glyph:v.waiting,label:`Needs approval`},running:{glyph:v.running,label:`Running`},"sign-in":{glyph:v.waiting,label:`Needs sign-in`},review:{glyph:v.waiting,label:`Review result`},done:{glyph:v.check,label:`Done`},failed:{glyph:v.cross,label:`Failed`},cancelled:{glyph:v.cross,label:`Cancelled`}};function Ee(){let e=r(),t=(0,M.useContext)(N);return n=>{let r=n.target,i=r.closest(`a`);if(i!==null){let r=i.getAttribute(`href`)??``,a=A(r,t);n.preventDefault(),a===null?/^(https?|mailto):/i.test(r)&&window.open(r,`_blank`,`noopener`):e.commands.execute(`ahp.openFile`,{uri:a.uri,line:a.line,end:a.end});return}let a=r.closest(`code`);if(a===null||a.closest(`pre`)!==null)return;let o=j(a.textContent??``,t);o!==null&&f(o.uri).then(t=>{t===`file`&&e.commands.execute(`ahp.openFile`,{uri:o.uri,line:o.line,end:o.end})})}}var De={terminal:v.terminal,read:v.read,search:v.search,edit:v.edit,subagent:v.subagent,web:v.web,other:v.dot};function Oe({line:e,file:t}){let n=r(),i=(0,M.useContext)(N);return(0,L.jsx)(`span`,{className:`web-tool__line`,children:we(e,t).map((e,t)=>{let r=e.href===void 0?null:e.code===!0?j(e.href,i):A(e.href,i);if(r===null)return e.code===!0?(0,L.jsx)(`code`,{children:e.text},t):(0,L.jsx)(`span`,{children:e.text},t);let a=e=>{e.stopPropagation(),e.preventDefault(),n.commands.execute(`ahp.openFile`,{uri:r.uri,line:r.line,end:r.end})};return(0,L.jsx)(`span`,{role:`link`,tabIndex:0,className:`web-tool__ref`,title:`Open ${g(r.uri)}`,onClick:a,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&a(e)},children:e.text},t)})})}function W({title:e,text:t}){let[n,r]=(0,M.useState)(!1);return(0,L.jsxs)(`section`,{className:`web-tool__block`,children:[(0,L.jsxs)(`div`,{className:`web-tool__block-head`,children:[(0,L.jsx)(`span`,{children:e}),(0,L.jsx)(`button`,{type:`button`,className:`web-tool__copy`,onClick:()=>{navigator.clipboard?.writeText(t).then(()=>{r(!0),window.setTimeout(()=>r(!1),1200)}).catch(()=>void 0)},children:n?`Copied`:`Copy`})]}),(0,L.jsx)(`pre`,{className:`web-tool__pre`,children:t})]})}function ke({out:e}){let t=r();switch(e.kind){case`text`:return(0,L.jsx)(W,{title:`Output`,text:e.text});case`terminal`:return(0,L.jsx)(W,{title:`${e.title}${e.exitCode===void 0?``:` \u{00B7} exit ${e.exitCode}`}${e.truncated?` · cut short`:``}`,text:e.text===``?`No output.`:e.text});case`file`:return(0,L.jsxs)(`p`,{className:`web-tool__file`,children:[(0,L.jsx)(`button`,{type:`button`,className:`web-link`,title:e.before===void 0&&e.after===void 0?`Open the file`:`Open the change`,onClick:()=>void(e.before===void 0&&e.after===void 0?t.commands.execute(`ahp.openFile`,{uri:e.file}):t.commands.execute(`ahp.openDiff`,{file:e.file,...e.before===void 0?{}:{before:e.before},...e.after===void 0?{}:{after:e.after}})),children:e.path}),e.added===void 0?null:(0,L.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,e.added]}),e.removed===void 0?null:(0,L.jsxs)(`span`,{className:`web-diff--remove`,children:[`-`,e.removed]})]});case`note`:return(0,L.jsx)(`p`,{className:`web-note`,children:e.text})}}function G({call:e,send:t,live:n,turnId:a}){let o=be(e),s=n&&(o===`approval`||o===`review`||o===`sign-in`),[c,l]=(0,M.useState)(!1),u=c||s,d=V(e),f=pe(e),p=Se(e),m=e.displayName||e.toolName,h=e.status===H?e.riskAssessment:void 0,v=he(e),y=r();return(0,L.jsxs)(`div`,{className:`web-tool`,"data-outcome":o,children:[(0,L.jsxs)(`button`,{type:`button`,className:`web-tool__row`,"aria-expanded":u,title:U[o].label,onClick:()=>l(!c),children:[(0,L.jsx)(`span`,{className:`web-tool__mark`,"aria-label":U[o].label,children:De[ye(e)]}),(0,L.jsx)(Oe,{line:ge(e),file:v}),o===`failed`||o===`cancelled`?(0,L.jsx)(`span`,{className:`web-tool__state`,children:U[o].label}):null,d===void 0||d<1e3?null:(0,L.jsx)(`span`,{className:`web-tool__time`,children:_(d)})]}),u?(0,L.jsxs)(`div`,{className:`web-tool__body`,children:[(0,L.jsxs)(`dl`,{className:`web-tool__facts`,children:[(0,L.jsx)(`dt`,{children:`Tool`}),(0,L.jsxs)(`dd`,{children:[(0,L.jsx)(`code`,{children:e.toolName}),m===e.toolName?null:` (${m})`]}),(0,L.jsx)(`dt`,{children:`Status`}),(0,L.jsx)(`dd`,{children:U[o].label}),v===void 0?null:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`dt`,{children:`File`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(`button`,{type:`button`,className:`web-link`,onClick:()=>void y.commands.execute(`ahp.openFile`,{uri:v}),children:g(v)})})]}),e.intention===void 0?null:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`dt`,{children:`Why`}),(0,L.jsx)(`dd`,{children:e.intention})]}),h===void 0||h.status!==`complete`?null:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`dt`,{children:`Risk`}),(0,L.jsx)(`dd`,{children:`${h.safety}/10 safe \u{00B7} ${h.reason}`})]})]}),f===``?null:(0,L.jsx)(W,{title:`Arguments`,text:f}),p.map((e,t)=>(0,L.jsx)(ke,{out:e},t)),n&&e.status===H?(0,L.jsx)(Ae,{call:e,send:t,turnId:a}):null,n&&e.status===Te?(0,L.jsxs)(`div`,{className:`web-tool__actions`,children:[(0,L.jsx)(i,{label:`Accept result`,variant:`primary`,onClick:()=>t({type:`chat/toolCallResultConfirmed`,turnId:a,toolCallId:e.toolCallId,approved:!0})}),(0,L.jsx)(i,{label:`Reject`,onClick:()=>t({type:`chat/toolCallResultConfirmed`,turnId:a,toolCallId:e.toolCallId,approved:!1})})]}):null]}):null]})}function K({text:e,running:t}){let[n,r]=(0,M.useState)(!1),i=e.replace(/[*_`#>]/g,``).replace(/\s+/g,` `).trim();return(0,L.jsxs)(`div`,{className:`web-tool`,"data-outcome":t?`running`:`thought`,children:[(0,L.jsxs)(`button`,{type:`button`,className:`web-tool__row`,"aria-expanded":n,onClick:()=>r(!n),children:[(0,L.jsx)(`span`,{className:`web-tool__mark`,"aria-hidden":`true`,children:v.thinking}),(0,L.jsxs)(`span`,{className:`web-tool__line`,children:[`Thinking: `,i]})]}),n?(0,L.jsx)(`div`,{className:`web-tool__body web-md`,children:(0,L.jsx)(x,{text:e})}):null]})}function Ae({call:e,send:t,turnId:n}){let r=r=>t({type:`chat/toolCallConfirmed`,turnId:n,toolCallId:e.toolCallId,approved:!0,confirmed:`user-action`,...r===void 0?{}:{selectedOptionId:r}}),a=r=>t({type:`chat/toolCallConfirmed`,turnId:n,toolCallId:e.toolCallId,approved:!1,reason:`denied`,...r===void 0?{}:{selectedOptionId:r}}),o=e.status===H?e.options??[]:[],s=e.status===H?h(e.confirmationTitle):``;return(0,L.jsxs)(`div`,{className:`web-tool__confirm`,children:[s===``?null:(0,L.jsx)(x,{text:s}),(0,L.jsx)(`div`,{className:`web-tool__actions`,children:o.length===0?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(i,{label:`Approve`,variant:`primary`,onClick:()=>r()}),(0,L.jsx)(i,{label:`Deny`,onClick:()=>a()})]}):o.map(e=>(0,L.jsx)(i,{label:e.label,...e.kind===`approve`?{variant:`primary`}:{},onClick:()=>e.kind===`approve`?r(e.id):a(e.id)},e.id))})]})}var je=(0,M.memo)(function({part:e,send:t,live:n,turnId:i}){let a=Ee(),o=r();switch(String(e.kind)){case`markdown`:return`content`in e?(0,L.jsx)(`div`,{className:`web-md`,onClick:a,children:(0,L.jsx)(x,{text:e.content})}):null;case`contentRef`:{let t=`uri`in e?String(e.uri):``;return(0,L.jsx)(`button`,{type:`button`,className:`web-chip`,onClick:()=>void o.commands.execute(`ahp.openFile`,{uri:t}),children:`${v.file} ${g(t).split(`/`).pop()??t}`})}case`reasoning`:return`content`in e&&e.content!==``?(0,L.jsx)(K,{text:e.content,running:!1}):null;case`toolCall`:return`toolCall`in e?(0,L.jsx)(G,{call:e.toolCall,send:t,live:n,turnId:i}):null;case`inputRequest`:return`request`in e?(0,L.jsx)(z,{request:e.request,send:t,live:n,response:`response`in e&&e.response!==void 0?String(e.response):void 0}):null;case`error`:return(0,L.jsx)(S,{tone:`danger`,message:`error`in e&&e.error.message!==``?e.error.message:`The agent reported an error.`});case`systemNotification`:return(0,L.jsx)(`p`,{className:`web-note`,children:`content`in e?h(e.content):``});default:return null}}),Me=new Set([`completed`,`cancelled`]),Ne=new Set([`pending-confirmation`,`pending-result-confirmation`,`auth-required`]);function Pe(e){let t=String(e.kind);if(t===`toolCall`&&`toolCall`in e)return{kind:`tool`,key:e.toolCall.toolCallId,call:e.toolCall};if(t===`reasoning`&&`content`in e){let t=String(e.content);return t.trim()===``?void 0:{kind:`reasoning`,key:`id`in e?String(e.id):``,text:t}}if(!(t===`markdown`&&`content`in e&&String(e.content).trim()===``))return null}function Fe(e,t,n){return e.kind===`tool`?n.ended||Me.has(String(e.call.status)):!(t&&n.live)}function q(e){return e.kind===`tool`&&Ne.has(String(e.call.status))}function Ie(e){return e.kind===`tool`&&`success`in e.call&&e.call.success===!1}function Le(e,t,n){let r=[],i=[],a=[],o=e=>{let n=a[0];if(n!==void 0){let o={kind:`activity`,id:`act:${n.key}`,steps:a,live:e&&t,ended:!t};r.push(o),i.push(o)}a=[]};e.forEach((e,t)=>{let n=Pe(e);if(n!==void 0){if(n!==null){a.push(n);return}o(!1),r.push({kind:`part`,part:e,index:t})}}),o(!0);let s=i.length===1?i[0]:void 0;return s!==void 0&&!t&&n!==void 0&&(s.turnMs=n),r}function Re(e){let t=1/0,n=-1/0;for(let r of e){if(r.kind!==`tool`)continue;let e=_e(r.call),i=V(r.call);if(e===void 0||i===void 0)return;t=Math.min(t,e),n=Math.max(n,e+i)}return n>=t?n-t:void 0}var J=(e,t)=>e===void 0||e<1e3?void 0:t(e);function ze(e,t){let n=[];if(e.done>0){n.push({text:e.done===1?`Completed 1 step`:`Completed ${e.done} steps`}),e.failed>0&&n.push({text:` (${e.failed} failed)`,failed:!0});let r=J(e.took,t);r!==void 0&&n.push({text:` in ${r}`})}let r=e.doing;if(r!==void 0){let e;if(r.what===`thinking`)e=`Thinking`;else{let n=`${r.what===`waiting`?`Waiting on`:`Working on`} ${r.name}`,i=J(r.for,t);e=i===void 0?n:`${n} for ${i}`}n.push({text:n.length>0?` \u{00B7} ${e}`:e})}return n}var Y=new Map,X=new Map;function Z(e,t){t?Y.has(e)||Y.set(e,Date.now()):Y.has(e)&&!X.has(e)&&X.set(e,Date.now())}function Be(e,t){let n=Y.get(e);return n===void 0?void 0:(X.get(e)??t)-n}function Ve(e,t){if(e.kind===`reasoning`)return{what:`thinking`};let n=e.call.displayName||e.call.toolName,r=Be(e.key,t);return{what:q(e)?`waiting`:`working`,name:n,...r===void 0?{}:{for:r}}}function He({group:e,send:t,turnId:n}){let[r,i]=(0,M.useState)(!1),[a,o]=(0,M.useState)(()=>Date.now()),s=e.steps.length-1,c=e.steps.map((t,n)=>Fe(t,n===s,e)),l=c.lastIndexOf(!1),u=l<0?void 0:e.steps[l];Z(e.id,e.live),e.steps.forEach((e,t)=>Z(e.key,!c[t])),(0,M.useEffect)(()=>{if(u===void 0)return;let e=window.setInterval(()=>o(Date.now()),1e3);return()=>window.clearInterval(e)},[u?.key]);let d=e.live&&e.steps.some(q),f=r||d,p=c.filter(Boolean).length,m=u===void 0?a:Y.get(u.key),h=Y.get(e.id),g=e.live?h===void 0||m===void 0?void 0:m-h:Re(e.steps)??Be(e.id,a)??e.turnMs,y=ze({done:p,failed:e.steps.filter(Ie).length,...g===void 0?{}:{took:g},...u===void 0?{}:{doing:Ve(u,a)}},_);return(0,L.jsxs)(`div`,{className:`web-activity`,"data-live":u!==void 0,children:[(0,L.jsxs)(`button`,{type:`button`,className:`web-activity__line`,"aria-expanded":f,onClick:()=>i(!r),children:[(0,L.jsx)(`span`,{children:y.map((e,t)=>e.failed?(0,L.jsx)(`span`,{className:`web-activity__failed`,children:e.text},t):e.text)}),(0,L.jsx)(`span`,{className:`web-activity__chev`,"aria-hidden":`true`,children:f?v.caretDown:v.caretRight})]}),f?(0,L.jsx)(`div`,{className:`web-activity__steps`,children:e.steps.map((r,i)=>r.kind===`tool`?(0,L.jsx)(G,{call:r.call,send:t,live:!e.ended,turnId:n},r.key):(0,L.jsx)(K,{text:r.text,running:!c[i]},r.key))}):null]})}var Ue={cancelled:`Stopped`,error:`Ended with an error`};function We(e){let[t,n]=(0,M.useState)(()=>Date.now());return(0,M.useEffect)(()=>{if(!e)return;let t=window.setInterval(()=>n(Date.now()),1e3);return()=>window.clearInterval(t)},[e]),t}function Ge({text:e}){let[t,n]=(0,M.useState)(!1);return(0,L.jsx)(`button`,{type:`button`,className:`web-turn__copy`,title:t?`Copied`:`Copy`,"aria-label":t?`Copied`:`Copy the reply`,onClick:()=>{navigator.clipboard?.writeText(e).then(()=>{n(!0),window.setTimeout(()=>n(!1),1200)}).catch(()=>void 0)},children:t?v.check:v.copy})}function Ke({facts:e,state:t,live:n,text:r}){let i=We(n),a=n?e.startedAt===void 0?void 0:i-e.startedAt:e.duration,o=[];return e.startedAt!==void 0&&o.push(T(e.startedAt)),a!==void 0&&o.push(n?`${_(a)} so far`:_(a)),(e.input!==void 0||e.output!==void 0)&&o.push(`\u{2191}${D(e.input??0)} \u{2193}${D(e.output??0)}`),e.cacheRead!==void 0&&e.cacheRead>0&&o.push(`${D(e.cacheRead)} cached`),e.model!==void 0&&o.push(e.model),e.tools>0&&o.push(e.tools===1?`1 tool call`:`${e.tools} tool calls`),(0,L.jsxs)(`div`,{className:`web-turn__facts`,children:[n||r===``?null:(0,L.jsx)(Ge,{text:r}),o.join(` · `),t===void 0||Ue[t]===void 0?null:(0,L.jsx)(`span`,{className:`web-turn__ended`,"data-state":t,children:Ue[t]})]})}var Q=[];function qe({attachments:e}){let t=r();return(0,L.jsx)(`div`,{className:`web-turn__attached`,children:e.map((e,n)=>{let r=e,i=typeof r.uri==`string`&&r.displayKind!==`directory`?r.uri:void 0,a=C(e),o=(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`span`,{className:`web-attachment__icon`,children:w(e)}),(0,L.jsx)(`span`,{className:`web-attachment__label`,children:a})]});return i===void 0?(0,L.jsx)(`span`,{className:`web-attachment`,title:a,children:o},n):(0,L.jsx)(`button`,{type:`button`,className:`web-attachment`,title:`Open ${a}`,onClick:()=>void t.commands.execute(`ahp.openFile`,{uri:i}),children:o},n)})})}var $=(0,M.memo)(function({turn:e,live:t,send:n,open:r=Q}){let i=`state`in e?String(e.state):void 0,a=e.responseParts;return(0,L.jsxs)(`article`,{className:`web-turn`,children:[(0,L.jsxs)(`div`,{className:`web-turn__ask`,children:[e.message.text,e.message.attachments===void 0||e.message.attachments.length===0?null:(0,L.jsx)(qe,{attachments:e.message.attachments})]}),(0,L.jsxs)(`div`,{className:`web-turn__answer`,children:[Le(a,t,O(e).duration).map(r=>r.kind===`activity`?(0,L.jsx)(He,{group:r,send:n,turnId:e.id},r.id):(0,L.jsx)(je,{part:r.part,send:n,live:t,turnId:e.id},r.index)),t?r.map(e=>(0,L.jsx)(z,{request:e,send:n,live:!0,response:void 0},e.id)):null,t&&a.length===0?(0,L.jsx)(b,{label:`Working`}):null]}),(0,L.jsx)(Ke,{facts:O(e),...i===void 0?{}:{state:i},live:t,text:E(e)})]})});function Je({chatUri:e,cursor:t}){let[n,r]=(0,M.useState)(!1),[a,o]=(0,M.useState)(null);return(0,L.jsxs)(`div`,{className:`web-chat__older`,children:[(0,L.jsx)(i,{label:n?`Loading`:`Load older turns`,disabled:n,onClick:()=>{r(!0),o(null),p(`fetchTurns`,{channel:e,cursor:t}).catch(e=>o(e instanceof Error?e.message:String(e))).finally(()=>r(!1))}}),a===null?null:(0,L.jsx)(`span`,{className:`web-note`,children:a})]})}function Ye(e,t,n){let r=(0,M.useRef)({turn:void 0,requests:new Map});if(r.current.turn!==n?.id&&(r.current={turn:n?.id,requests:new Map}),n===void 0)return Q;for(let n of e??[])String(n.kind)===`chatInput`&&n.chat===t&&`request`in n&&r.current.requests.set(n.id,n.request);let i=new Set(n.responseParts.flatMap(e=>`request`in e?[e.request.id]:[])),a=[...r.current.requests.values()].filter(e=>!i.has(e.id));return a.length===0?Q:a}function Xe({resource:e}){let t=r(),i=n(l)?.find(t=>t.resource===e),f=k(e,d),p=f.state?.defaultChat??i?.defaultChat,h=k(p,c),g=(0,M.useRef)(null),_=(0,M.useRef)(!0),v=(0,M.useCallback)(e=>{p!==void 0&&u(p,e)},[p]),x=h.state?.turns.length??0,C=Ye(f.state?.inputNeeded,p,h.state?.activeTurn),w=(h.state?.activeTurn?.responseParts??[]).reduce((e,t)=>e+1+(`content`in t&&typeof t.content==`string`?t.content.length:0),0);(0,M.useEffect)(()=>{_.current&&g.current?.scrollIntoView({block:`end`})},[x,w]),(0,M.useEffect)(()=>{e!==void 0&&t.store.get(`$/ahp/activeSession`)===void 0&&t.store.set(ne,e)},[t,e]);let T=i!==void 0&&!m(i.status);if((0,M.useEffect)(()=>{T&&e!==void 0&&u(e,{type:`session/isReadChanged`,isRead:!0})},[T,e,x]),i===void 0)return(0,L.jsx)(S,{tone:`warning`,message:`This session is gone.`});let E=s(i.status),D=String(f.state?.lifecycle??`ready`),O=h.state?.activity??i.activity;return(0,L.jsxs)(`div`,{className:`web-chat`,children:[(0,L.jsx)(`header`,{className:`web-chat__head`,children:(0,L.jsxs)(`div`,{className:`web-chat__title`,children:[(0,L.jsx)(te,{variant:`h2`,text:i.title===``?`Untitled`:i.title}),(0,L.jsx)(y,{tone:o[E],text:a[E]}),O===void 0||O===``?null:(0,L.jsx)(`span`,{className:`web-note`,children:O})]})}),(0,L.jsxs)(`div`,{className:`web-chat__turns`,onScroll:e=>{let t=e.currentTarget;_.current=t.scrollHeight-t.scrollTop-t.clientHeight<48},children:[D===`creating`?(0,L.jsx)(b,{label:`Starting the session`}):null,D===`failed`?(0,L.jsx)(S,{tone:`danger`,title:`The session did not start`,message:f.state?.creationError?.message??`No reason given.`}):null,f.error===null?null:(0,L.jsx)(S,{tone:`danger`,title:`Session not readable`,message:f.error}),h.error===null?null:(0,L.jsx)(S,{tone:`danger`,title:`Chat not readable`,message:h.error}),p!==void 0&&h.state===void 0&&h.error===null?(0,L.jsx)(b,{label:`Reading the chat`}):null,p===void 0||h.state?.turnsNextCursor===void 0?null:(0,L.jsx)(Je,{chatUri:p,cursor:h.state.turnsNextCursor}),(0,L.jsxs)(N.Provider,{value:i.workingDirectories?.[0]??null,children:[h.state?.turns.map(e=>(0,L.jsx)($,{turn:e,live:!1,send:v},e.id)),h.state?.activeTurn===void 0?null:(0,L.jsx)($,{turn:h.state.activeTurn,live:!0,send:v,open:C})]}),h.state!==void 0&&x===0&&h.state.activeTurn===void 0?(0,L.jsx)(`p`,{className:`web-note`,children:`No messages yet.`}):null,(0,L.jsx)(`div`,{ref:g})]}),h.state===void 0||p===void 0?null:(0,L.jsx)(ee,{chatUri:p,activeId:h.state.activeTurn?.id,activeStart:h.state.activeTurn?.startedAt,queued:h.state.queuedMessages,steering:h.state.steeringMessage,draft:h.state.draft,lastModel:h.state.turns.at(-1)?.message.model?.id,config:f.state?.config,summary:i,send:v})]})}export{Xe as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./useStore-BQkzWMs-.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./Button-_R1oktDz.js";import"./data-BvTv-4oH.js";import{t as i}from"./Badge-BDEW5PFb.js";import{t as a}from"./Markdown-BaxWPZc1.js";import{t as o}from"./Alert-CHZkhmDE.js";import{t as s}from"./Text-MPtQvYE-.js";import{t as c}from"./DetailList-Yalgw0YM.js";import{a as l,i as u,n as d,r as f,t as p}from"./words-BMjqrsOT.js";var m=e(),h={disabled:`Turned off by policy`,unconfigured:`Not set up`};function g({provider:e}){let g=n(),_=t(`$/ahp/agents`)??[],v=t(`$/ahp/sessions`)??[],y=_.find(t=>t.provider===e);if(y===void 0)return(0,m.jsx)(o,{tone:`warning`,message:`This daemon no longer offers this agent.`});let b=p(y),x=(y.customizations??[]).map(d),S=l(y),C=v.filter(e=>e.provider===y.provider).length,w=[{label:`Provider`,value:(0,m.jsx)(`code`,{children:y.provider})},{label:`Models`,value:u(y)},{label:`Sessions`,value:String(C)},{label:`Can`,value:b.length===0?`One chat in one folder per session`:b.join(`; `)}];return(0,m.jsxs)(`div`,{className:`web-page`,children:[(0,m.jsxs)(`div`,{className:`web-page__head`,children:[(0,m.jsxs)(`div`,{className:`web-chat__title`,children:[(0,m.jsx)(s,{variant:`h2`,text:y.displayName}),S.some(e=>e.required)?(0,m.jsx)(i,{tone:`warning`,text:`Needs sign-in`}):null]}),(0,m.jsx)(`div`,{className:`web-page__actions`,children:(0,m.jsx)(r,{label:`New session`,variant:`primary`,onClick:()=>void g.commands.execute(`ahp.newSession`,{provider:y.provider})})})]}),y.description===``?null:(0,m.jsx)(a,{text:y.description}),(0,m.jsx)(c,{items:w,columns:2}),(0,m.jsx)(s,{variant:`h3`,text:`Models`}),y.models.length===0?(0,m.jsx)(`p`,{className:`web-note`,children:`This agent lists no models; it picks its own.`}):(0,m.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,m.jsx)(`thead`,{children:(0,m.jsxs)(`tr`,{children:[(0,m.jsx)(`th`,{children:`Name`}),(0,m.jsx)(`th`,{children:`Id`}),(0,m.jsx)(`th`,{children:`Limits`}),(0,m.jsx)(`th`,{})]})}),(0,m.jsx)(`tbody`,{children:y.models.map(e=>(0,m.jsxs)(`tr`,{children:[(0,m.jsx)(`td`,{children:e.name}),(0,m.jsx)(`td`,{children:(0,m.jsx)(`code`,{children:e.id})}),(0,m.jsx)(`td`,{children:f(e)}),(0,m.jsx)(`td`,{children:e.policyState===void 0?``:h[String(e.policyState)]??``})]},e.id))})]}),x.length===0?null:(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(s,{variant:`h3`,text:`Customizations`}),(0,m.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,m.jsx)(`thead`,{children:(0,m.jsxs)(`tr`,{children:[(0,m.jsx)(`th`,{children:`Name`}),(0,m.jsx)(`th`,{children:`Kind`}),(0,m.jsx)(`th`,{children:`State`})]})}),(0,m.jsx)(`tbody`,{children:x.map((e,t)=>(0,m.jsxs)(`tr`,{children:[(0,m.jsx)(`td`,{children:e.name}),(0,m.jsx)(`td`,{children:e.kind}),(0,m.jsx)(`td`,{children:e.state})]},t))})]})]}),S.length===0?null:(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(s,{variant:`h3`,text:`Sign-in`}),(0,m.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,m.jsx)(`thead`,{children:(0,m.jsxs)(`tr`,{children:[(0,m.jsx)(`th`,{children:`Resource`}),(0,m.jsx)(`th`,{children:`Scopes`}),(0,m.jsx)(`th`,{})]})}),(0,m.jsx)(`tbody`,{children:S.map(e=>(0,m.jsxs)(`tr`,{children:[(0,m.jsx)(`td`,{children:e.name}),(0,m.jsx)(`td`,{children:e.scopes}),(0,m.jsx)(`td`,{children:e.required?`Required`:`Optional`})]},e.name))})]})]})]})}export{g as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./useStore-BQkzWMs-.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./useI18n-BTsfCYkN.js";var i=e();function a({namespace:e,count:a=`items`,pageSizes:l,always:u=!1}){let d=n(),{t:f}=r(`query`),p=t(`$/${e}/view`),m=t(`$/${e}/query`),h=p?.total??0,g=m?.pageSize??50,_=Math.max(1,Math.ceil(h/g)),v=Math.min(Math.max(1,m?.page??1),_);if(h<=g&&!u&&!l?.length)return null;let y=h===0?0:(v-1)*g+1,b=Math.min(v*g,h),x=t=>d.store.set(`$/${e}/query`,{...m,...t}),S=e=>x({page:Math.min(_,Math.max(1,e))}),C=a===`pages`?f(`pageOf`,{page:v,pages:_,fallback:`{page} / {pages}`}):h===0?f(`noItems`,{fallback:`nothing`}):f(`itemRange`,{first:y,last:b,total:h,fallback:`{first} – {last} of {total}`});return(0,i.jsxs)(`div`,{style:o,children:[(0,i.jsx)(`button`,{style:s,disabled:v<=1,onClick:()=>S(v-1),"aria-label":`Previous`,children:`‹`}),(0,i.jsx)(`span`,{style:{fontSize:12,color:`var(--oo-color-muted, #8a8f98)`,fontVariantNumeric:`tabular-nums`},"aria-live":`polite`,children:C}),(0,i.jsx)(`button`,{style:s,disabled:v>=_,onClick:()=>S(v+1),"aria-label":`Next`,children:`›`}),l&&l.length>0?(0,i.jsx)(`select`,{style:c,value:g,"aria-label":f(`perPage`,{fallback:`Rows per page`}),onChange:e=>x({page:1,pageSize:Number(e.currentTarget.value)}),children:[...new Set([...l,g])].sort((e,t)=>e-t).map(e=>(0,i.jsx)(`option`,{value:e,children:f(`perPageOption`,{size:e,fallback:`{size} / page`})},e))}):null]})}var o={display:`flex`,alignItems:`center`,justifyContent:`center`,gap:10,padding:`6px 8px`,borderTop:`1px solid var(--oo-color-border, #2b2f37)`},s={appearance:`none`,background:`none`,border:`1px solid var(--oo-color-border, #2b2f37)`,borderRadius:4,color:`var(--oo-color-text, #e6e8eb)`,cursor:`pointer`,width:24,height:24,lineHeight:`20px`},c={appearance:`none`,background:`var(--oo-color-canvas, #14171c)`,border:`1px solid var(--oo-color-border, #2b2f37)`,borderRadius:4,color:`var(--oo-color-muted, #8a8f98)`,cursor:`pointer`,font:`inherit`,fontSize:11,padding:`2px 4px`};export{a as Pagination};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./jsx-runtime-BguD1OXD.js";import{t as n}from"./react-CybPckBe.js";import{t as r}from"./useStore-BQkzWMs-.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{o as a}from"./data-BvTv-4oH.js";import{t as o}from"./emojis-XibTG-gy.js";import{t as s}from"./ActionList-DZ9lLGRe.js";import{a as c,o as l,r as u,u as d}from"./terminal-BSweq0Uj.js";var f=e((e=>{var t=n();function r(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function i(){}var a={d:{f:i,r:function(){throw Error(r(522))},D:i,C:i,L:i,m:i,X:i,S:i,M:i},p:0,findDOMNode:null},o=Symbol.for(`react.portal`),s=Symbol.for(`react.recoverable`),c=Symbol.for(`react.optimistic_key`);function l(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:r==null?null:r===c?c:``+r,children:e,containerInfo:t,implementation:n}}var u=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function d(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,e.browser=function(e){return{$$typeof:s,_reason:e}},e.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(r(299));return l(e,t,null,n)},e.flushSync=function(e){var t=u.T,n=a.p;try{if(u.T=null,a.p=2,e)return e()}finally{u.T=t,a.p=n,a.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,a.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&a.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin),i=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?a.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:i,fetchPriority:o}):n===`script`&&a.d.X(e,{crossOrigin:r,integrity:i,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=d(t.as,t.crossOrigin);a.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}}else t??a.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin);a.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=d(t.as,t.crossOrigin);a.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}else a.d.m(e)}},e.requestFormReset=function(e){a.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return u.H.useFormState(e,t,n)},e.useFormStatus=function(){return u.H.useHostTransitionStatus()},e.version=`19.3.0`})),p=e(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=f()})),m=n(),h=p(),g=o.terminal;function _(e,t){let n=l(e.claim,t);return n.kind===`you`?`Yours`:n.kind===`session`?`Held by a session`:`Held by another client`}function v(e,t){if(!c(e))return _(e,t);let n=u(e);return`${_(e,t)}, exited${n===null?``:` with ${n}`}`}function y(e,t){let n=e.store.get(a),r=t.trim().toLowerCase();return(n?.terminals??[]).filter(e=>r===``||`terminal ${d(e)}`.toLowerCase().includes(r)).map(t=>({title:`Terminal: ${d(t)}`,description:v(t,n?.clientId??null),icon:g,group:`Terminals`,onSelect:n=>{n.closeMenu(),e.commands.execute(`ahp.openTerminal`,{uri:t.resource})}}))}var b=t(),x=`$/ahp/palette/open`,S=`ahp:palette`;function C(){return r(`$/ahp/palette/open`)===!0?(0,h.createPortal)((0,b.jsx)(w,{}),document.body):null}function w(){let e=i(),[t,n]=(0,m.useState)(``),o=(0,m.useRef)(null),c=()=>e.store.set(x,!1),l=(0,m.useMemo)(()=>({pushList:()=>void 0,replaceList:()=>void 0,openInline:()=>void 0,openPopover:()=>void 0,back:()=>void 0,closeMenu:c,keepOpen:()=>void 0,insertAtCursor:()=>void 0,replaceActiveToken:()=>void 0,query:``}),[]),u=r(a),d=(0,m.useMemo)(()=>({query:{slot:S,q:t},extraItems:y(e,t)}),[e,t,u]);return(0,b.jsx)(`div`,{className:`web-palette`,onMouseDown:e=>{e.target===e.currentTarget&&c()},children:(0,b.jsxs)(`div`,{className:`web-palette__box`,role:`dialog`,"aria-label":`Command palette`,onClick:e=>{e.target.closest(`.oo-action-list__row`)!==null&&c()},children:[(0,b.jsx)(`input`,{className:`web-field web-palette__input`,autoFocus:!0,value:t,placeholder:`Type a command or a terminal`,"aria-label":`Command`,onChange:e=>n(e.currentTarget.value),onKeyDown:e=>{if(e.key===`Escape`){e.preventDefault(),c();return}o.current?.handleKey(e)===!0&&e.key===`Enter`&&c()}}),(0,b.jsx)(s,{spec:d,hostCtx:l,manageKeys:!1,ref:o})]})})}export{p as a,g as i,S as n,C as r,x as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./LoginForm-C7ZmFVLz.js","./jsx-runtime-BguD1OXD.js","./react-CybPckBe.js","./useStore-BQkzWMs-.js","./ScenaProvider-6A3TJumQ.js","./mount-context-DZgEFVFG.js","./useI18n-BTsfCYkN.js","./index-Cu7ySznN.js","./Palette-CEQLzNFd.js","./data-BvTv-4oH.js","./emojis-XibTG-gy.js","./ActionList-DZ9lLGRe.js","./colors-BieSUSt7.js","./ActionList-Bawu-Lja.css","./terminal-BSweq0Uj.js","./styles-yrzHRgom.js","./surface-presentation-CT86pw6J.js","./preload-helper-BaNbYf_w.js","./sigillum-Bev0l9LS.js","./Button-_R1oktDz.js","./_utils-DZVsX11M.js","./Button-CRZ1_3KW.css","./words-CrqnRMW4.js","./index-DgTMhxdP.css","./LoginForm-BJhoxJyJ.css","./_field-parts-CfQcSJYh.css"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{t as r}from"./preload-helper-BaNbYf_w.js";import{t as i}from"./sigillum-Bev0l9LS.js";import{P as a}from"./index-Cu7ySznN.js";var o=t(),s=e(),c=(0,o.lazy)(()=>r(()=>import(`./LoginForm-C7ZmFVLz.js`).then(e=>({default:e.LoginForm})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]),import.meta.url));function l({permission:e,fallback:t,title:r,child:l,children:u}){let d=n(i.session)??null;return a(d,e)?l??u:(0,s.jsxs)(`div`,{className:`porta-locked`,children:[(0,s.jsx)(`span`,{className:`porta-locked__title`,children:r??(e?`Sign in required (${e})`:`Sign in required`)}),t??(0,s.jsx)(o.Suspense,{fallback:null,children:(0,s.jsx)(c,{})})]})}export{l as PortaLock,l as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./Button-_R1oktDz.js";import{Y as r,f as i,g as a}from"./data-BvTv-4oH.js";import{t as o}from"./Spinner-B-iOhBZq.js";import{t as s}from"./Alert-CHZkhmDE.js";import{t as c}from"./Text-MPtQvYE-.js";import{t as l}from"./SchemaForm-D6mGj6Xh.js";import{t as u}from"./channel-BScxZDq2.js";var d=t();function f(e,t){return Object.fromEntries(Object.entries(t).filter(([t,n])=>JSON.stringify(n)!==JSON.stringify(e[t])))}var p=e();function m(){let{state:e,error:t}=u(i,r),m=e?.config,[h,g]=(0,d.useState)({}),[_,v]=(0,d.useState)(!1),y=(0,d.useMemo)(()=>m?.values??{},[m]);if((0,d.useEffect)(()=>{g(y)},[y]),t!==null)return(0,p.jsx)(s,{tone:`danger`,title:`Settings not readable`,message:t});if(e===void 0)return(0,p.jsx)(o,{label:`Reading the settings`});if(m===void 0)return(0,p.jsx)(s,{tone:`info`,message:`This host publishes no settings.`});let b=f(y,h),x=Object.keys(b).length>0;return(0,p.jsxs)(`div`,{className:`web-page`,children:[(0,p.jsx)(c,{variant:`h2`,text:`Host settings`}),(0,p.jsx)(l,{schema:m.schema,value:h,onChange:e=>{g(e),v(!1)},baseline:y}),(0,p.jsxs)(`div`,{className:`web-page__actions`,children:[(0,p.jsx)(n,{label:`Save`,variant:`primary`,disabled:!x,onClick:()=>{a(i,{type:`root/configChanged`,config:b}),v(!0)}}),(0,p.jsx)(n,{label:`Reset`,disabled:!x,onClick:()=>g(y)}),_&&!x?(0,p.jsx)(`span`,{className:`web-note`,children:`Saved.`}):null]})]})}export{m as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./useI18n-BTsfCYkN.js";import{t as i}from"./ContextMenu-D3PBPRRl.js";import{r as a}from"./MountTitle-DXPuKAFo.js";import{V as o}from"./index-Cu7ySznN.js";var s=t();function c(e,t){if(e==null)return``;if(typeof e==`string`)return e;if(`t`in e)return t.translate(e.t);if(`path`in e){let n=t.get(e.path);return n==null?``:String(n)}return``}var l=e();function u({title:e,icon:t,color:a,actions:u=[]}){let p=n();r();let[m,h]=(0,s.useState)(null),g=e=>void p.commands.execute(e),_=e=>c(e,{get:e=>p.store.get(e),translate:o}),v=e=>_(e.label),y=_(e);function b(e){e.stopPropagation();let t=e.currentTarget.getBoundingClientRect();h({x:t.right,y:t.bottom+2})}return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(`div`,{className:`oo-section-header`,"data-color":a,style:d,children:[(0,l.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:6,minWidth:0},children:[t?(0,l.jsx)(`span`,{className:`oo-section-header__icon`,"aria-hidden":!0,children:t}):null,(0,l.jsx)(`span`,{className:`oo-section-header__title`,style:{overflow:`hidden`,textOverflow:`ellipsis`},children:y})]}),(0,l.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:2},children:[u.map(e=>{let t=v(e);return(0,l.jsx)(`button`,{className:`oo-btn oo-btn--icon`,"data-variant":`ghost`,type:`button`,title:t,"aria-label":t,onClick:()=>g(e.command),style:f,children:e.icon??t??`•`},e.command)}),u.length?(0,l.jsx)(`button`,{className:`oo-btn oo-btn--icon`,"data-variant":`ghost`,type:`button`,title:`More actions`,"aria-label":`More actions`,onClick:b,style:f,children:`⋯`}):null]})]}),m?(0,l.jsx)(i,{x:m.x,y:m.y,onClose:()=>h(null),spec:{footerHints:!0,items:u.map(e=>({title:v(e)||e.command,icon:e.icon,onSelect:t=>{g(e.command),t.closeMenu()}}))}}):null]})}var d={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},f={background:`transparent`,border:`none`,font:`inherit`,fontSize:`var(--oo-font-size-sm)`,lineHeight:1,padding:`2px 5px`,borderRadius:4};function p({mounts:e,state:t,renderMount:r}){let i=n(),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,d=a(o,``),f=o?.props?.icon??s?.icon,p=o?.props?.color??s?.color,m=o?.props?.actions??s?.actions,h=!!(c||m&&m.length);return(0,l.jsxs)(`div`,{className:`oo-layout oo-layout--single`,style:{height:`100%`,width:`100%`,display:`flex`,flexDirection:`column`,minHeight:0},children:[h?(0,l.jsx)(u,{title:d||o?.key||``,icon:f,color:p,actions:m}):null,(0,l.jsx)(`div`,{style:{flex:1,minHeight:0,position:`relative`},children:e.length===0?(0,l.jsx)(`div`,{style:{padding:24,color:`var(--oo-color-muted)`},children:`Nothing open.`}):e.map(e=>(0,l.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:r(e)},e.key))})]})}export{p as SingleLayout};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{r as t}from"./colors-BieSUSt7.js";var n=e();function r({tone:e,color:r,label:i,children:a,tint:o,outline:s,size:c,title:l,style:u,className:d}){let f=i??a,p={...r?{"--oo-color":t(r)}:{},...c?{"--oo-status-dot-size":`${c}px`}:{}},m=(0,n.jsx)(`span`,{className:[`oo-status-dot`,f==null?d:void 0].filter(Boolean).join(` `),"data-tone":r?void 0:e??`default`,"data-outline":s?`true`:void 0,title:l??(f==null?void 0:String(f)),style:f==null?{...p,...u}:p});return f==null?m:(0,n.jsxs)(`span`,{className:[`oo-status-dot-wrap`,d].filter(Boolean).join(` `),"data-tint":o?`true`:void 0,style:{...p,...u},children:[m,(0,n.jsx)(`span`,{className:`oo-status-dot-label`,children:f})]})}export{r as StatusDot};
@@ -1 +0,0 @@
1
- import{d as e,g as t,w as n}from"./data-BvTv-4oH.js";import{i as r}from"./words-CrqnRMW4.js";import{N as i,d as a,j as o}from"./index-Cu7ySznN.js";function s(t){return n(`runAutomation`,{channel:e,automation:t.resource,requestId:`manual-${r()}`})}function c(n,r){t(e,{type:`automation/updateRequested`,resource:n.resource,changes:{enabled:r}})}async function l(n){await i({title:`Delete "${a(n)}"?`,body:`Its run history goes with it.`,confirmLabel:`Delete`,tone:`danger`})&&t(e,{type:`automation/removed`,resource:n.resource})}function u(e){t(e,{type:`automationRun/cancelRequested`})}var d=e=>o(`The automation could not run`,e);function f(e,t,n){let r=t=>e.operations.map(String).includes(t),i=[{title:`Open`,onSelect:e=>{e.closeMenu(),t()}}];return r(`run`)&&i.push({title:`Run now`,onSelect:t=>{t.closeMenu(),s(e).catch(d)}}),r(`update`)&&(i.push({title:e.definition.enabled?`Turn off`:`Turn on`,onSelect:t=>{t.closeMenu(),c(e,!e.definition.enabled)}}),i.push({title:`Edit`,onSelect:e=>{e.closeMenu(),n()}})),i.push({title:`Copy link`,group:`more`,onSelect:t=>{t.closeMenu(),navigator.clipboard?.writeText(e.resource).catch(()=>void 0)}}),r(`remove`)&&i.push({title:`Delete`,group:`more`,color:`red`,onSelect:t=>{t.closeMenu(),l(e)}}),i}export{c as a,s as i,f as n,l as r,u as t};
@@ -1,2 +0,0 @@
1
- import{t as e}from"./react-CybPckBe.js";var t=class{buffer=[];base=0;cursors=new Set;closed=!1;bufferLimit;constructor(e=4096){this.bufferLimit=e}get isClosed(){return this.closed}get hasReaders(){return this.cursors.size>0}publish(e){if(this.closed)return;if(this.buffer.push(e),this.buffer.length>this.bufferLimit){let e=this.buffer.length-this.bufferLimit;this.buffer.splice(0,e),this.base+=e;for(let e of this.cursors)e.position<this.base&&(e.position=this.base)}let t=this.base+this.buffer.length-1;for(let e of this.cursors)if(e.waiter&&e.position<=t){let t=e.position-this.base,n=this.buffer[t];e.position+=1;let r=e.waiter;e.waiter=null,r.resolve({value:n,done:!1})}this.trim()}close(){if(!this.closed){this.closed=!0;for(let e of this.cursors)if(e.waiter&&e.position-this.base>=this.buffer.length){let t=e.waiter;e.waiter=null,t.resolve({value:void 0,done:!0})}}}reader(){let e={position:this.base+this.buffer.length,waiter:null,detached:this.closed};this.closed||this.cursors.add(e);let t=this,n=()=>{e.detached||(e.detached=!0,t.cursors.delete(e),t.trim())};return{[Symbol.asyncIterator](){return this},next(){if(e.detached)return Promise.resolve({value:void 0,done:!0});let n=e.position-t.base;if(n>=0&&n<t.buffer.length){let r=t.buffer[n];return e.position+=1,t.trim(),Promise.resolve({value:r,done:!1})}return t.closed?Promise.resolve({value:void 0,done:!0}):new Promise(t=>{e.waiter={resolve:t}})},return(){return n(),Promise.resolve({value:void 0,done:!0})}}}[Symbol.asyncIterator](){return this.reader()}trim(){if(this.cursors.size===0){let e=this.buffer.length;e>0&&(this.buffer=[],this.base+=e);return}let e=1/0;for(let t of this.cursors)t.position<e&&(e=t.position);let t=e-this.base;t>0&&(this.buffer.splice(0,t),this.base+=t)}},n=class extends Error{constructor(e,t){super(e,t),this.name=`AhpClientError`}},r=class extends n{code;data;constructor(e,t,n){super(`RPC error ${e}: ${t}`),this.name=`RpcError`,this.code=e,this.data=n}},i=class extends n{method;timeoutMs;constructor(e,t){super(`Request "${e}" timed out after ${t}ms`),this.name=`RpcTimeoutError`,this.method=e,this.timeoutMs=t}},a=class extends n{kind;constructor(e,t,n){super(t,n),this.name=`TransportError`,this.kind=e}},o=class extends n{constructor(e=`client shut down`){super(e),this.name=`ClientClosedError`}};function s(e,t){let n=Math.max(1,Math.floor(t));switch(e.kind){case`immediate`:return 0;case`constant`:return Math.max(0,e.delayMs);case`exponential`:{let t=Math.max(1,e.multiplier),r=n-1,i=e.initialMs*t**+r;return Math.min(Math.max(0,i),e.maxMs)}}}function c(e,t,n){let r=s(e.backoff,t);if(e.jitter<=0||r===0)return r;let i=Math.min(1,Math.max(0,e.jitter)),a=1+(Math.min(1,Math.max(0,n))*2-1)*i;return Math.max(0,r*a)}function l(e,t){return e.maxAttempts!==null&&t>e.maxAttempts}function u(){return{backoff:{kind:`exponential`,initialMs:250,maxMs:3e4,multiplier:2},jitter:.25,maxAttempts:null,resetOnSuccess:!0}}function d(){return u()}var ee=`ahp-root://`;function f(e){return{id:e.id,label:e.label,clientId:e.clientId??null,initialSubscriptions:e.initialSubscriptions?[...e.initialSubscriptions]:[ee],clientConfig:e.clientConfig??{},transportFactory:e.transportFactory,reconnectPolicy:e.reconnectPolicy??d()}}function p(e,t){return{hostId:e,channel:t.channel,event:t.event}}var m=class extends n{constructor(e,t){super(e,t),this.name=`HostMultiError`}},h=class extends m{hostId;constructor(e){super(`no host registered with id "${e}"`),this.name=`UnknownHostError`,this.hostId=e}},g=class extends m{hostId;constructor(e){super(`a host with id "${e}" is already registered`),this.name=`DuplicateHostError`,this.hostId=e}},_=class extends m{hostId;handleGeneration;currentGeneration;constructor(e,t,n){super(`host "${e}" reconnected (generation ${t} -> ${n}); request a fresh client handle`),this.name=`HostReconnectedError`,this.hostId=e,this.handleGeneration=t,this.currentGeneration=n}},te=class extends m{hostId;constructor(e){super(`host "${e}" runtime is no longer active`),this.name=`HostShutDownError`,this.hostId=e}},ne=class extends m{hostId;constructor(e){super(`host "${e}" is not currently connected`),this.name=`HostNotConnectedError`,this.hostId=e}},re=class extends m{hostId;constructor(e,t,n){super(`client id store error for host "${e}": ${t}`,n),this.name=`ClientIdStoreError`,this.hostId=e}};function ie(){let e=globalThis.crypto;if(e&&typeof e.randomUUID==`function`)return e.randomUUID();let t=new Uint8Array(16);if(e&&typeof e.getRandomValues==`function`)e.getRandomValues(t);else for(let e=0;e<16;e++)t[e]=Math.floor(Math.random()*256);t[6]=t[6]&15|64,t[8]=t[8]&63|128;let n=Array.from(t,e=>e.toString(16).padStart(2,`0`)).join(``);return`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`}var ae=class{hostId;generation;source;client;constructor(e,t,n){this.source=e,this.hostId=e.hostId,this.generation=t,this.client=n}checkAlive(){if(this.source.shutdownReason!==null)throw new te(this.hostId);if(this.source.generation!==this.generation)throw new _(this.hostId,this.generation,this.source.generation)}dispatch(e,t,n){return this.checkAlive(),this.client.dispatch(e,t,n)}async request(e,t){return this.checkAlive(),this.client.request(e,t)}rawClient(){return this.checkAlive(),this.client}},oe;(function(e){e.Replay=`replay`,e.Snapshot=`snapshot`})(oe||={});var se;(function(e){e.Base64=`base64`,e.Utf8=`utf-8`})(se||={});var ce;(function(e){e.Truncate=`truncate`,e.Append=`append`,e.Insert=`insert`})(ce||={});var le;(function(e){e.File=`file`,e.Directory=`directory`,e.Symlink=`symlink`})(le||={});var v;(function(e){e.RootAgentsChanged=`root/agentsChanged`,e.RootActiveSessionsChanged=`root/activeSessionsChanged`,e.SessionReady=`session/ready`,e.SessionCreationFailed=`session/creationFailed`,e.SessionChatAdded=`session/chatAdded`,e.SessionChatRemoved=`session/chatRemoved`,e.SessionChatUpdated=`session/chatUpdated`,e.SessionChatsReordered=`session/chatsReordered`,e.SessionDefaultChatChanged=`session/defaultChatChanged`,e.ChatTurnStarted=`chat/turnStarted`,e.ChatDelta=`chat/delta`,e.ChatResponsePart=`chat/responsePart`,e.ChatToolCallStart=`chat/toolCallStart`,e.ChatToolCallDelta=`chat/toolCallDelta`,e.ChatToolCallReady=`chat/toolCallReady`,e.ChatToolCallConfirmed=`chat/toolCallConfirmed`,e.ChatToolCallComplete=`chat/toolCallComplete`,e.ChatToolCallResultConfirmed=`chat/toolCallResultConfirmed`,e.ChatToolCallContentChanged=`chat/toolCallContentChanged`,e.ChatToolCallAuthRequired=`chat/toolCallAuthRequired`,e.ChatToolCallAuthResolved=`chat/toolCallAuthResolved`,e.ChatTurnComplete=`chat/turnComplete`,e.ChatTurnCancelled=`chat/turnCancelled`,e.ChatError=`chat/error`,e.ChatTurnResume=`chat/turnResume`,e.ChatActivityChanged=`chat/activityChanged`,e.ChatBackgroundWorkSet=`chat/backgroundWorkSet`,e.ChatBackgroundWorkRemoved=`chat/backgroundWorkRemoved`,e.ChatMovableChanged=`chat/movableChanged`,e.ChatChangesetsChanged=`chat/changesetsChanged`,e.ChatCanvasesChanged=`chat/canvasesChanged`,e.CanvasStateChanged=`canvas/stateChanged`,e.ChatWorkingDirectorySet=`chat/workingDirectorySet`,e.ChatWorkingDirectoryRemoved=`chat/workingDirectoryRemoved`,e.SessionTitleChanged=`session/titleChanged`,e.ChatUsage=`chat/usage`,e.ChatReasoning=`chat/reasoning`,e.SessionServerToolsChanged=`session/serverToolsChanged`,e.SessionActiveClientSet=`session/activeClientSet`,e.SessionActiveClientRemoved=`session/activeClientRemoved`,e.SessionWorkingDirectorySet=`session/workingDirectorySet`,e.SessionWorkingDirectoryRemoved=`session/workingDirectoryRemoved`,e.SessionWorkingDirectoryReplaced=`session/workingDirectoryReplaced`,e.SessionInputNeededSet=`session/inputNeededSet`,e.SessionInputNeededRemoved=`session/inputNeededRemoved`,e.ChatPendingMessageSet=`chat/pendingMessageSet`,e.ChatPendingMessageRemoved=`chat/pendingMessageRemoved`,e.ChatQueuedMessagesReordered=`chat/queuedMessagesReordered`,e.ChatDraftChanged=`chat/draftChanged`,e.ChatIsReadChanged=`chat/isReadChanged`,e.ChatIsArchivedChanged=`chat/isArchivedChanged`,e.ChatInputRequested=`chat/inputRequested`,e.ChatInputAnswerChanged=`chat/inputAnswerChanged`,e.ChatInputCompleted=`chat/inputCompleted`,e.SessionCustomizationsChanged=`session/customizationsChanged`,e.SessionCustomizationToggled=`session/customizationToggled`,e.SessionCustomizationUpdated=`session/customizationUpdated`,e.SessionCustomizationRemoved=`session/customizationRemoved`,e.SessionMcpServerStateChanged=`session/mcpServerStateChanged`,e.SessionMcpServerStartRequested=`session/mcpServerStartRequested`,e.SessionMcpServerStopRequested=`session/mcpServerStopRequested`,e.SessionMcpServerBackgroundRequested=`session/mcpServerBackgroundRequested`,e.ChatTruncated=`chat/truncated`,e.ChatTurnsLoaded=`chat/turnsLoaded`,e.SessionIsReadChanged=`session/isReadChanged`,e.SessionIsArchivedChanged=`session/isArchivedChanged`,e.SessionActivityChanged=`session/activityChanged`,e.SessionChangesetsChanged=`session/changesetsChanged`,e.SessionConfigChanged=`session/configChanged`,e.SessionMetaChanged=`session/metaChanged`,e.ChangesetStatusChanged=`changeset/statusChanged`,e.ChangesetFileSet=`changeset/fileSet`,e.ChangesetFileRemoved=`changeset/fileRemoved`,e.ChangesetFilesReviewChanged=`changeset/filesReviewChanged`,e.ChangesetContentChanged=`changeset/contentChanged`,e.ChangesetOperationsChanged=`changeset/operationsChanged`,e.ChangesetOperationStatusChanged=`changeset/operationStatusChanged`,e.ChangesetCleared=`changeset/cleared`,e.AnnotationsSet=`annotations/set`,e.AnnotationsUpdated=`annotations/updated`,e.AnnotationsRemoved=`annotations/removed`,e.AnnotationsEntrySet=`annotations/entrySet`,e.AnnotationsEntryRemoved=`annotations/entryRemoved`,e.RootTerminalsChanged=`root/terminalsChanged`,e.RootConfigChanged=`root/configChanged`,e.TerminalData=`terminal/data`,e.TerminalInput=`terminal/input`,e.TerminalResized=`terminal/resized`,e.TerminalClaimed=`terminal/claimed`,e.TerminalTitleChanged=`terminal/titleChanged`,e.TerminalCwdChanged=`terminal/cwdChanged`,e.TerminalExited=`terminal/exited`,e.TerminalCleared=`terminal/cleared`,e.TerminalCommandDetectionAvailable=`terminal/commandDetectionAvailable`,e.TerminalCommandExecuted=`terminal/commandExecuted`,e.TerminalCommandFinished=`terminal/commandFinished`,e.ResourceWatchChanged=`resourceWatch/changed`,e.AutomationCreateRequested=`automation/createRequested`,e.AutomationUpdateRequested=`automation/updateRequested`,e.AutomationSet=`automation/set`,e.AutomationRemoved=`automation/removed`,e.AutomationRunLifecycleChanged=`automationRun/lifecycleChanged`,e.AutomationRunSessionSet=`automationRun/sessionSet`,e.AutomationRunSessionRemoved=`automationRun/sessionRemoved`,e.AutomationRunPrimarySessionChanged=`automationRun/primarySessionChanged`,e.AutomationRunCancelRequested=`automationRun/cancelRequested`})(v||={});var ue=`1.0.0`,de=Object.freeze([`1.0.0`,`0.9.0`]);v.RootAgentsChanged,v.RootActiveSessionsChanged,v.SessionReady,v.SessionCreationFailed,v.SessionChatAdded,v.SessionChatRemoved,v.SessionChatUpdated,v.SessionChatsReordered,v.SessionDefaultChatChanged,v.SessionTitleChanged,v.SessionServerToolsChanged,v.SessionActiveClientSet,v.SessionActiveClientRemoved,v.SessionWorkingDirectorySet,v.SessionWorkingDirectoryRemoved,v.SessionWorkingDirectoryReplaced,v.SessionInputNeededSet,v.SessionInputNeededRemoved,v.SessionCustomizationsChanged,v.SessionCustomizationToggled,v.SessionCustomizationUpdated,v.SessionCustomizationRemoved,v.SessionMcpServerStateChanged,v.SessionMcpServerStartRequested,v.SessionMcpServerStopRequested,v.SessionMcpServerBackgroundRequested,v.SessionIsReadChanged,v.SessionIsArchivedChanged,v.SessionActivityChanged,v.SessionChangesetsChanged,v.SessionConfigChanged,v.SessionMetaChanged,v.ChatTurnStarted,v.ChatDelta,v.ChatResponsePart,v.ChatToolCallStart,v.ChatToolCallDelta,v.ChatToolCallReady,v.ChatToolCallConfirmed,v.ChatToolCallComplete,v.ChatToolCallResultConfirmed,v.ChatToolCallContentChanged,v.ChatToolCallAuthRequired,v.ChatToolCallAuthResolved,v.ChatTurnComplete,v.ChatTurnCancelled,v.ChatError,v.ChatTurnResume,v.ChatActivityChanged,v.ChatBackgroundWorkSet,v.ChatBackgroundWorkRemoved,v.ChatMovableChanged,v.ChatChangesetsChanged,v.ChatCanvasesChanged,v.CanvasStateChanged,v.ChatWorkingDirectorySet,v.ChatWorkingDirectoryRemoved,v.ChatUsage,v.ChatReasoning,v.ChatPendingMessageSet,v.ChatPendingMessageRemoved,v.ChatQueuedMessagesReordered,v.ChatDraftChanged,v.ChatIsReadChanged,v.ChatIsArchivedChanged,v.ChatInputRequested,v.ChatInputAnswerChanged,v.ChatInputCompleted,v.ChatTruncated,v.ChatTurnsLoaded,v.ChangesetStatusChanged,v.ChangesetFileSet,v.ChangesetFileRemoved,v.ChangesetFilesReviewChanged,v.ChangesetContentChanged,v.ChangesetOperationsChanged,v.ChangesetOperationStatusChanged,v.ChangesetCleared,v.AnnotationsSet,v.AnnotationsUpdated,v.AnnotationsRemoved,v.AnnotationsEntrySet,v.AnnotationsEntryRemoved,v.RootTerminalsChanged,v.RootConfigChanged,v.TerminalData,v.TerminalInput,v.TerminalResized,v.TerminalClaimed,v.TerminalTitleChanged,v.TerminalCwdChanged,v.TerminalExited,v.TerminalCleared,v.TerminalCommandDetectionAvailable,v.TerminalCommandExecuted,v.TerminalCommandFinished,v.ResourceWatchChanged,v.AutomationCreateRequested,v.AutomationUpdateRequested,v.AutomationSet,v.AutomationRemoved,v.AutomationRunLifecycleChanged,v.AutomationRunSessionSet,v.AutomationRunSessionRemoved,v.AutomationRunPrimarySessionChanged,v.AutomationRunCancelRequested;var fe={ParseError:-32700,InvalidRequest:-32600,MethodNotFound:-32601,InvalidParams:-32602,InternalError:-32603};function pe(e){return JSON.stringify(e)}function me(e){try{return JSON.parse(e)}catch(e){throw new a(`protocol`,`invalid JSON: ${e.message}`,{cause:e})}}var he=3e4,ge=4096;function y(){}var _e=class{uri;inner;constructor(e,t){this.uri=e,this.inner=t}next(){return this.inner.next()}return(){return this.inner.return?this.inner.return():Promise.resolve({value:void 0,done:!0})}[Symbol.asyncIterator](){return this}async close(){await this.return()}};function ve(e){return(async(t,n)=>{let i=e[t];if(!i)throw new r(fe.MethodNotFound,`no handler for server method "${t}"`);return i(n)})}var ye=class{transport;requestTimeoutMs;subscriptionBuffer;pending=new Map;subscriptions=new Map;allEvents=new t;stateQueue=new t;nextRequestId=1;nextClientSeq=1;state={status:`idle`};receiveLoop=null;serverRequestHandler=null;constructor(e,t={}){this.transport=e;let n=t.requestTimeoutMs??he;this.requestTimeoutMs=n>0?n:0;let r=t.subscriptionBuffer??ge;this.subscriptionBuffer=r>=1?Math.floor(r):1}get connectionState(){return this.state}stateChanges(){return this.stateQueue.reader()}events(){return this.allEvents.reader()}setServerRequestHandler(e){this.serverRequestHandler=e}setResourceRequestHandlers(e){this.setServerRequestHandler(e?ve(e):null)}connect(){this.receiveLoop||=(this.setState({status:`connected`}),this.driveTransport())}async shutdown(){if(this.state.status!==`closing`&&this.state.status!==`closed`){this.setState({status:`closing`}),this.tearDown({type:`shutdown`});try{await this.transport.close()}catch{}if(this.receiveLoop)try{await this.receiveLoop}catch{}}}async initialize(e){let t={channel:`ahp-root://`,clientId:e.clientId,protocolVersions:[...e.protocolVersions],...e.initialSubscriptions&&e.initialSubscriptions.length>0?{initialSubscriptions:[...e.initialSubscriptions]}:{},...e.locale===void 0?{}:{locale:e.locale}};return this.request(`initialize`,t)}async reconnect(e){let t={channel:`ahp-root://`,clientId:e.clientId,lastSeenServerSeq:e.lastSeenServerSeq,subscriptions:[...e.subscriptions]};return this.request(`reconnect`,t)}async subscribe(e,t={}){let n=this.attachSubscription(e);try{let r={channel:e,...t.delivery?{delivery:t.delivery}:{},...t.view?{view:t.view}:{}};return{result:await this.request(`subscribe`,r),subscription:n}}catch(e){throw await n.close(),e}}attachSubscription(e){this.assertOpen();let n=this.subscriptions.get(e);return n||(n=new t(this.subscriptionBuffer),this.subscriptions.set(e,n)),new _e(e,n.reader())}async unsubscribe(e){if(this.isClosed())return;let t=this.subscriptions.get(e);t&&(this.subscriptions.delete(e),t.close());let n={channel:e};return this.notify(`unsubscribe`,n),Promise.resolve()}dispatch(e,t,n){this.assertOpen();let r=n??this.nextClientSeq;(n===void 0||r+1>this.nextClientSeq)&&(this.nextClientSeq=r+1);let i={channel:e,clientSeq:r,action:t};return this.notify(`dispatchAction`,i),{clientSeq:r}}async ping(){await this.request(`ping`,{channel:`ahp-root://`})}async resourceRead(e){return this.request(`resourceRead`,{...e,channel:`ahp-root://`})}async resourceWrite(e){return this.request(`resourceWrite`,{...e,channel:`ahp-root://`})}async resourceList(e){return this.request(`resourceList`,{...e,channel:`ahp-root://`})}async resourceCopy(e){return this.request(`resourceCopy`,{...e,channel:`ahp-root://`})}async resourceDelete(e){return this.request(`resourceDelete`,{...e,channel:`ahp-root://`})}async resourceMove(e){return this.request(`resourceMove`,{...e,channel:`ahp-root://`})}async resourceResolve(e){return this.request(`resourceResolve`,{...e,channel:`ahp-root://`})}async resourceMkdir(e){return this.request(`resourceMkdir`,{...e,channel:`ahp-root://`})}async resourceRequest(e){return this.request(`resourceRequest`,{...e,channel:`ahp-root://`})}async createResourceWatch(e){return this.request(`createResourceWatch`,{...e,channel:`ahp-root://`})}async completions(e){return this.request(`completions`,e)}async sessionConfigCompletions(e){return this.request(`sessionConfigCompletions`,{...e,channel:`ahp-root://`})}async request(e,t){this.assertOpen();let n=this.nextRequestId++,r={jsonrpc:`2.0`,id:n,method:e,params:t};return new Promise((t,a)=>{let o={resolve:e=>t(e),reject:a,method:e,timer:null};this.pending.set(n,o),this.requestTimeoutMs>0&&(o.timer=setTimeout(()=>{this.pending.delete(n)&&a(new i(e,this.requestTimeoutMs))},this.requestTimeoutMs)),this.sendMessage(r).catch(e=>{this.pending.delete(n)&&(o.timer&&clearTimeout(o.timer),a(e))})})}notify(e,t){this.assertOpen();let n={jsonrpc:`2.0`,method:e,params:t};this.sendMessage(n).catch(y)}isClosed(){return this.state.status===`closing`||this.state.status===`closed`}assertOpen(){if(this.isClosed())throw new o}async sendMessage(e){try{await this.transport.send(e)}catch(e){let t=e instanceof a?e:new a(`io`,`transport send failed: ${e.message}`,{cause:e});throw this.tearDown({type:`transport`,error:t}),t}}setState(e){this.state=e,this.stateQueue.publish(e)}tearDown(e){if(this.state.status===`closed`)return;this.setState({status:`closed`,reason:e});let t=e.type===`shutdown`?new o:e.error;for(let[e,n]of this.pending){n.timer&&clearTimeout(n.timer);try{n.reject(t)}catch{}this.pending.delete(e)}for(let e of this.subscriptions.values())e.close();this.subscriptions.clear(),this.allEvents.close(),this.stateQueue.close()}async driveTransport(){try{for(;this.state.status===`connected`;){let e=await this.transport.recv();if(e===null){this.tearDown({type:`transport`,error:new a(`closed`,`transport closed`)});return}this.handleFrame(e)}}catch(e){let t=e instanceof a?e:new a(`io`,`transport recv failed: ${e.message}`,{cause:e});this.tearDown({type:`transport`,error:t})}}handleFrame(e){let t;try{switch(e.kind){case`parsed`:t=e.message;break;case`text`:t=me(e.text);break;case`binary`:t=me(new TextDecoder(`utf-8`).decode(e.data))}}catch(e){console.warn(`AhpClient: malformed inbound frame: ${e.message}`);return}this.dispatchInbound(t)}dispatchInbound(e){if(`id`in e&&`result`in e){let t=e,n=this.pending.get(t.id);n&&(this.pending.delete(t.id),n.timer&&clearTimeout(n.timer),n.resolve(t.result));return}if(`id`in e&&`error`in e){let t=e,n=this.pending.get(t.id);n&&(this.pending.delete(t.id),n.timer&&clearTimeout(n.timer),n.reject(new r(t.error.code,t.error.message,t.error.data)));return}if(`id`in e&&`method`in e){this.handleServerRequest(e);return}if(`method`in e){this.handleNotification(e);return}}async handleServerRequest(e){if(this.serverRequestHandler){try{let t=this.serverRequestHandler,n=await t(e.method,e.params),r={jsonrpc:`2.0`,id:e.id,result:n};this.sendMessage(r).catch(y)}catch(t){let n=t instanceof r?t.code:fe.InternalError,i=t instanceof Error?t.message:String(t),a=t instanceof r?t.data:void 0,o={jsonrpc:`2.0`,id:e.id,error:a===void 0?{code:n,message:i}:{code:n,message:i,data:a}};this.sendMessage(o).catch(y)}return}let t={jsonrpc:`2.0`,id:e.id,error:{code:fe.MethodNotFound,message:`no handler for server method "${e.method}"`}};this.sendMessage(t).catch(y)}handleNotification(e){switch((e.params??{}).channel,e.method){case`action`:{let t=e.params;this.fanOut(t.channel,{type:`action`,params:t});break}case`root/sessionAdded`:{let t=e.params;this.fanOut(t.channel,{type:`sessionAdded`,params:t});break}case`root/sessionRemoved`:{let t=e.params;this.fanOut(t.channel,{type:`sessionRemoved`,params:t});break}case`root/sessionSummaryChanged`:{let t=e.params;this.fanOut(t.channel,{type:`sessionSummaryChanged`,params:t});break}case`auth/required`:{let t=e.params;this.fanOut(t.channel,{type:`authRequired`,params:t});break}}}fanOut(e,t){let n=this.subscriptions.get(e);n&&n.publish(t),this.allEvents.publish({channel:e,event:t})}};v.RootAgentsChanged,v.RootActiveSessionsChanged,v.RootTerminalsChanged,v.RootConfigChanged,v.SessionReady,v.SessionCreationFailed,v.SessionChatAdded,v.SessionChatRemoved,v.SessionChatUpdated,v.SessionChatsReordered,v.SessionDefaultChatChanged,v.SessionTitleChanged,v.SessionServerToolsChanged,v.SessionActiveClientSet,v.SessionActiveClientRemoved,v.SessionWorkingDirectorySet,v.SessionWorkingDirectoryRemoved,v.SessionWorkingDirectoryReplaced,v.SessionInputNeededSet,v.SessionInputNeededRemoved,v.SessionCustomizationsChanged,v.SessionCustomizationToggled,v.SessionCustomizationUpdated,v.SessionCustomizationRemoved,v.SessionMcpServerStateChanged,v.SessionMcpServerStartRequested,v.SessionMcpServerStopRequested,v.SessionMcpServerBackgroundRequested,v.SessionIsReadChanged,v.SessionIsArchivedChanged,v.SessionActivityChanged,v.SessionChangesetsChanged,v.SessionConfigChanged,v.SessionMetaChanged,v.ChatTurnStarted,v.ChatDelta,v.ChatResponsePart,v.ChatToolCallStart,v.ChatToolCallDelta,v.ChatToolCallReady,v.ChatToolCallConfirmed,v.ChatToolCallComplete,v.ChatToolCallResultConfirmed,v.ChatToolCallContentChanged,v.ChatToolCallAuthRequired,v.ChatToolCallAuthResolved,v.ChatTurnComplete,v.ChatTurnCancelled,v.ChatError,v.ChatTurnResume,v.ChatActivityChanged,v.ChatBackgroundWorkSet,v.ChatBackgroundWorkRemoved,v.ChatMovableChanged,v.ChatChangesetsChanged,v.ChatCanvasesChanged,v.CanvasStateChanged,v.ChatWorkingDirectorySet,v.ChatWorkingDirectoryRemoved,v.ChatUsage,v.ChatReasoning,v.ChatPendingMessageSet,v.ChatPendingMessageRemoved,v.ChatQueuedMessagesReordered,v.ChatDraftChanged,v.ChatIsReadChanged,v.ChatIsArchivedChanged,v.ChatInputRequested,v.ChatInputAnswerChanged,v.ChatInputCompleted,v.ChatTruncated,v.ChatTurnsLoaded,v.ChangesetStatusChanged,v.ChangesetFileSet,v.ChangesetFileRemoved,v.ChangesetFilesReviewChanged,v.ChangesetContentChanged,v.ChangesetOperationsChanged,v.ChangesetOperationStatusChanged,v.ChangesetCleared,v.AnnotationsSet,v.AnnotationsUpdated,v.AnnotationsRemoved,v.AnnotationsEntrySet,v.AnnotationsEntryRemoved,v.TerminalData,v.TerminalInput,v.TerminalResized,v.TerminalClaimed,v.TerminalTitleChanged,v.TerminalCwdChanged,v.TerminalExited,v.TerminalCleared,v.TerminalCommandDetectionAvailable,v.TerminalCommandExecuted,v.TerminalCommandFinished,v.ResourceWatchChanged,v.AutomationCreateRequested,v.AutomationUpdateRequested,v.AutomationSet,v.AutomationRemoved,v.AutomationRunLifecycleChanged,v.AutomationRunSessionSet,v.AutomationRunSessionRemoved,v.AutomationRunPrimarySessionChanged,v.AutomationRunCancelRequested;function b(e,t){let n=`Unhandled action type: ${JSON.stringify(e)}`;(t??console.warn)(n)}function be(e,t,n){switch(t.type){case v.RootAgentsChanged:return{...e,agents:t.agents};case v.RootActiveSessionsChanged:return{...e,activeSessions:t.activeSessions};case v.RootTerminalsChanged:return{...e,terminals:t.terminals};case v.RootConfigChanged:return e.config?{...e,config:{...e.config,values:t.replace?{...t.config}:{...e.config.values,...t.config}}}:e;default:return b(t,n),e}}function xe(e,t){return{id:e.id,label:e.label,clientId:t,state:{status:`disconnected`},lastError:null,lastConnectedAt:null,protocolVersion:null,serverSeq:0,defaultDirectory:null,automations:null,rootState:{agents:[]},subscriptions:[...e.initialSubscriptions],completionTriggerCharacters:[],sessionSummaries:new Map,generation:0,currentClient:null,shutdownReason:null}}function Se(e){return{id:e.id,label:e.label,clientId:e.clientId,state:e.state,lastError:e.lastError,lastConnectedAt:e.lastConnectedAt,protocolVersion:e.protocolVersion,serverSeq:e.serverSeq,defaultDirectory:e.defaultDirectory,automations:e.automations,agents:[...e.rootState.agents],activeSessions:e.rootState.activeSessions??null,terminals:e.rootState.terminals?[...e.rootState.terminals]:null,subscriptions:[...e.subscriptions],completionTriggerCharacters:[...e.completionTriggerCharacters],sessionSummaries:Array.from(e.sessionSummaries.values()),generation:e.generation}}var x=Symbol(`aborted`);function S(e,t){return e.then(void 0,()=>void 0),t.aborted?Promise.resolve(x):new Promise((n,r)=>{let i=()=>{t.removeEventListener(`abort`,i),n(x)};t.addEventListener(`abort`,i,{once:!0}),e.then(e=>{t.removeEventListener(`abort`,i),n(e)},e=>{t.removeEventListener(`abort`,i),r(e)})})}function Ce(e,...t){return e<=0?Promise.resolve(!0):t.some(e=>e.aborted)?Promise.resolve(!1):new Promise(n=>{let r=[],i=setTimeout(()=>{for(let e of r)e();n(!0)},e);for(let e of t){let t=()=>{clearTimeout(i);for(let e of r)e();n(!1)};e.addEventListener(`abort`,t,{once:!0}),r.push(()=>e.removeEventListener(`abort`,t))}})}function we(...e){return e.some(e=>e.aborted)?Promise.resolve():new Promise(t=>{let n=[];for(let r of e){let e=()=>{for(let e of n)e();t()};r.addEventListener(`abort`,e,{once:!0}),n.push(()=>r.removeEventListener(`abort`,e))}})}function Te(...e){let t=new AbortController;if(e.some(e=>e.aborted))return t.abort(),{signal:t.signal,dispose:()=>void 0};let n=[],r=()=>{for(let e of n)e();n.length=0,t.abort()};for(let t of e)t.addEventListener(`abort`,r,{once:!0}),n.push(()=>t.removeEventListener(`abort`,r));return{signal:t.signal,dispose:()=>{for(let e of n)e();n.length=0}}}var Ee={agents:[]},De=class{config;shared;handleSource;fanOut;hostEvents;shutdownController=new AbortController;manualReconnectController=new AbortController;supervisorPromise=null;reconnectAck=null;constructor(e,t,n,r){this.config=e,this.fanOut=n,this.hostEvents=r,this.shared=xe(e,t),this.handleSource={hostId:this.shared.id,generation:this.shared.generation,currentClient:this.shared.currentClient,shutdownReason:this.shared.shutdownReason}}start(){this.supervisorPromise===null&&(this.hostEvents.publish({type:`added`,hostId:this.shared.id}),this.supervisorPromise=this.runSupervisor().catch(e=>{console.error(`HostRuntime[${this.shared.id}] supervisor crashed:`,e)}))}async reconnect(){if(this.shared.shutdownReason!==null)return;let e=this.reconnectAck??this.makeReconnectAck();this.reconnectAck=e,this.manualReconnectController.abort(),await e.promise}async shutdown(e=`removed`){if(this.shared.shutdownReason!==null){this.supervisorPromise&&await this.supervisorPromise;return}this.shared.shutdownReason=e,this.handleSource.shutdownReason=e,this.shutdownController.abort(),this.reconnectAck?.resolve(),this.supervisorPromise&&await this.supervisorPromise}async subscribe(e){if(this.shared.shutdownReason!==null)throw new te(this.shared.id);let t=this.shared.currentClient;if(!t)throw this.trackSubscription(e),new ne(this.shared.id);let{result:n}=await t.subscribe(e);return this.trackSubscription(e),n}async unsubscribe(e){if(this.shared.shutdownReason!==null){this.untrackSubscription(e);return}let t=this.shared.currentClient;this.untrackSubscription(e),t&&await t.unsubscribe(e)}dispatch(e,t,n){if(this.shared.shutdownReason!==null)throw new te(this.shared.id);let r=this.shared.currentClient;if(!r)throw new ne(this.shared.id);return r.dispatch(e,t,n)}async runSupervisor(){let e=this.config.reconnectPolicy,t=0;for(;this.shared.shutdownReason===null;){t+=1,this.transitionTo(t===1?{status:`connecting`}:{status:`reconnecting`,attempt:t-1},null);let n=this.reconnectAck;this.reconnectAck=null,n?.resolve();let r=null;try{r=await this.connectOnce()}catch(e){if(this.shared.shutdownReason!==null)break;if(this.manualReconnectController.signal.aborted){this.resetManualReconnectController(),t=0;continue}let n=Oe(e);this.shared.lastError=n,console.warn(`HostRuntime[${this.shared.id}] connect attempt ${t} failed:`,n)}if(r===null){if(this.shared.shutdownReason!==null)break;if(l(e,t)){let e=this.shared.lastError??Error(`connect failed`);if(this.transitionTo({status:`failed`,error:e},e),!await this.waitForManualReconnectOrShutdown())break;this.resetManualReconnectController(),t=0;continue}if(!await Ce(c(e,t,Math.random()),this.shutdownController.signal,this.manualReconnectController.signal)){if(this.shared.shutdownReason!==null)break;this.resetManualReconnectController(),t=0}continue}e.resetOnSuccess&&(t=0);let i=await this.runConnection(r.events);if(await this.tearDownClient(),i===`shutdown`)break;if(i===`manualReconnect`){this.resetManualReconnectController(),t=0;continue}}this.handleSource.currentClient=null,this.handleSource.generation=this.shared.generation}async connectOnce(){let e=this.shutdownController.signal,t=this.manualReconnectController.signal,n=Te(e,t),i=n.signal;try{let e=await S(this.config.transportFactory(this.shared.id,i),i);if(e===x)throw Error(`connect aborted`);let t=new ye(e,this.config.clientConfig);t.connect();let n=t.events(),a=!1;try{let e={serverSeq:this.shared.serverSeq,subscriptions:[...this.shared.subscriptions]},o=e.serverSeq>0&&e.subscriptions.length>0,s=null,c=null,l=e.serverSeq,u=null,d=null,f=this.shared.automations,p=[];if(o)try{let n=await S(t.reconnect({clientId:this.shared.clientId,lastSeenServerSeq:e.serverSeq,subscriptions:e.subscriptions}),i);if(n===x)throw Error(`reconnect aborted`);s=n}catch(n){if(this.shared.shutdownReason!==null||i.aborted||!(n instanceof r))throw n;let a=await S(t.initialize({clientId:this.shared.clientId,protocolVersions:[ue],initialSubscriptions:e.subscriptions}),i);if(a===x)throw Error(`initialize aborted`);c=a.snapshots,l=a.serverSeq,u=a.protocolVersion,d=a.defaultDirectory??null,f=a.automations??null,p=a.completionTriggerCharacters??[]}else{let n=await S(t.initialize({clientId:this.shared.clientId,protocolVersions:[ue],initialSubscriptions:e.subscriptions}),i);if(n===x)throw Error(`initialize aborted`);c=n.snapshots,l=n.serverSeq,u=n.protocolVersion,d=n.defaultDirectory??null,f=n.automations??null,p=n.completionTriggerCharacters??[]}let m=null;try{let e=await S(t.request(`listSessions`,{channel:ee}),i);e!==x&&(m=e)}catch{}if(i.aborted)throw Error(`connect aborted`);let h=null,g=[],_=null;if(s!==null){if(s.type===oe.Replay){for(let e of s.actions)g.push(e);if(s.missing.length>0){let e=new Set(s.missing);h=this.shared.subscriptions.filter(t=>!e.has(t))}}else{let t=new Set(s.snapshots.map(e=>e.resource)),n=new Set(e.subscriptions);_=this.shared.subscriptions.filter(e=>t.has(e)||!n.has(e));for(let e of s.snapshots)e.fromSeq>l&&(l=e.fromSeq),e.resource===`ahp-root://`&&(this.shared.rootState=e.state??Ee)}}if(this.shared.generation+=1,this.shared.currentClient=t,this.shared.lastConnectedAt=Date.now(),this.shared.lastError=null,this.shared.serverSeq<l&&(this.shared.serverSeq=l),c!==null){let e=c.find(e=>e.resource===ee);e&&(this.shared.rootState=e.state??Ee),u&&(this.shared.protocolVersion=u),this.shared.defaultDirectory=d,this.shared.automations=f,this.shared.completionTriggerCharacters=[...p]}if(m!==null){this.shared.sessionSummaries.clear();for(let e of m.items)this.shared.sessionSummaries.set(e.resource,e)}h===null?_!==null&&(this.shared.subscriptions=_):this.shared.subscriptions=h,this.handleSource.generation=this.shared.generation,this.handleSource.currentClient=t;for(let e of g)this.applyEnvelopeLocally(e),this.fanOut.publish({hostId:this.shared.id,channel:e.channel,event:{type:`action`,params:e}});return this.transitionTo({status:`connected`},null),this.hostEvents.publish({type:`connected`,hostId:this.shared.id,generation:this.shared.generation}),a=!0,{client:t,events:n}}finally{if(!a)try{await t.shutdown()}catch{}}}finally{n.dispose()}}async runConnection(e){let t=this.shutdownController.signal,n=this.manualReconnectController.signal;for(;;){if(t.aborted)return`shutdown`;if(n.aborted)return`manualReconnect`;let r=e.next(),i=we(t,n),a=await Promise.race([r.then(e=>({kind:`event`,value:e})),i.then(()=>({kind:`aborted`}))]);if(a.kind===`aborted`)return t.aborted?`shutdown`:`manualReconnect`;let o=a.value;if(o.done)return`disconnected`;this.handleEvent(o.value)}}async waitForManualReconnectOrShutdown(){return await we(this.shutdownController.signal,this.manualReconnectController.signal),!this.shutdownController.signal.aborted}async tearDownClient(){let e=this.shared.currentClient;if(this.shared.currentClient=null,this.handleSource.currentClient=null,e)try{await e.shutdown()}catch{}}handleEvent(e){switch(e.event.type){case`action`:this.applyEnvelopeLocally(e.event.params);break;case`sessionAdded`:{let t=e.event.params.summary;this.shared.sessionSummaries.set(t.resource,t);break}case`sessionRemoved`:this.shared.sessionSummaries.delete(e.event.params.session);break;case`sessionSummaryChanged`:ke(this.shared.sessionSummaries,e.event.params)}this.fanOut.publish(p(this.shared.id,e))}applyEnvelopeLocally(e){e.serverSeq>this.shared.serverSeq&&(this.shared.serverSeq=e.serverSeq),e.channel===`ahp-root://`&&(this.shared.rootState=be(this.shared.rootState,e.action))}trackSubscription(e){this.shared.subscriptions.includes(e)||this.shared.subscriptions.push(e)}untrackSubscription(e){this.shared.subscriptions=this.shared.subscriptions.filter(t=>t!==e)}transitionTo(e,t){this.shared.state=e,t!==null&&(this.shared.lastError=t),this.hostEvents.publish({type:`stateChanged`,hostId:this.shared.id,state:e,lastError:t??this.shared.lastError})}resetManualReconnectController(){this.manualReconnectController=new AbortController}makeReconnectAck(){let e;return{promise:new Promise(t=>{e=t}),resolve:e}}};function Oe(e){return e instanceof Error?e:Error(String(e))}function ke(e,t){let n=e.get(t.session);if(!n)return;let r={...n},i=t.changes;i.title!==void 0&&(r.title=i.title),i.status!==void 0&&(r.status=i.status),i.activity!==void 0&&(r.activity=i.activity),i.origin!==void 0&&(r.origin=i.origin),i.modifiedAt!==void 0&&(r.modifiedAt=i.modifiedAt),i.project!==void 0&&(r.project=i.project),i.workingDirectories!==void 0&&(r.workingDirectories=i.workingDirectories),i._meta!==void 0&&(r._meta=i._meta),i.chats!==void 0&&(r.chats=i.chats),e.set(t.session,r)}var Ae=class{inner=new Map;load(e){return Promise.resolve(this.inner.get(e)??null)}store(e,t){return this.inner.set(e,t),Promise.resolve()}},je=1024,Me=class e{hosts=new Map;pendingHostIds=new Set;fanOut;hostEventsQueue;clientIdStore;shutdownController=new AbortController;shutDown=!1;constructor(e={}){this.clientIdStore=e.clientIdStore??new Ae;let n=e.eventBuffer??je;this.fanOut=new t(n),this.hostEventsQueue=new t(n)}static async single(t,n={}){let r=new e(n);return{multi:r,host:await r.addHost(t)}}async addHost(e){this.assertOpen();let t=e.id;if(this.hosts.has(t)||this.pendingHostIds.has(t))throw new g(t);this.pendingHostIds.add(t);try{let n=f(e),r=await this.resolveClientId(t,n.clientId);if(this.assertOpen(),this.hosts.has(t))throw new g(t);let i=new De(n,r,this.fanOut,this.hostEventsQueue);return this.hosts.set(t,i),i.start(),Se(i.shared)}finally{this.pendingHostIds.delete(t)}}async removeHost(e){let t=this.hosts.get(e);if(!t)throw new h(e);this.hosts.delete(e),await t.shutdown(`removed`),this.hostEventsQueue.publish({type:`removed`,hostId:e})}async reconnectHost(e){let t=this.hosts.get(e);if(!t)throw new h(e);await t.reconnect()}async reconnectAllUnavailable(){let e=[];for(let[t,n]of this.hosts){let r=n.shared.state.status;r!==`connected`&&r!==`connecting`&&e.push({id:t,runtime:n})}if(e.length===0)return new Map;let t=new Map;return await Promise.all(e.map(async({id:e,runtime:n})=>{try{await n.reconnect()}catch(n){t.set(e,n instanceof Error?n:Error(String(n)))}})),t}host(e){let t=this.hosts.get(e);return t?Se(t.shared):void 0}hostsSnapshot(){return Array.from(this.hosts.values(),e=>Se(e.shared))}client(e){let t=this.hosts.get(e);if(!t)return;let n=t.shared.currentClient;if(n)return new ae(t.handleSource,t.shared.generation,n)}async subscribe(e,t){let n=this.hosts.get(e);if(!n)throw new h(e);return n.subscribe(t)}async unsubscribe(e,t){let n=this.hosts.get(e);if(!n)throw new h(e);await n.unsubscribe(t)}dispatch(e,t,n,r){let i=this.hosts.get(e);if(!i)throw new h(e);return i.dispatch(t,n,r)}events(){return this.fanOut.reader()}hostEvents(){return this.hostEventsQueue.reader()}aggregatedSessions(){let e=[];for(let t of this.hosts.values()){let{id:n,label:r,sessionSummaries:i}=t.shared;for(let t of i.values())e.push({hostId:n,hostLabel:r,summary:t})}return e.sort((e,t)=>e.summary.modifiedAt<t.summary.modifiedAt?1:e.summary.modifiedAt>t.summary.modifiedAt?-1:0),e}aggregatedAgents(){let e=[];for(let t of this.hosts.values()){let{id:n,label:r,rootState:i}=t.shared;for(let t of i.agents)e.push({hostId:n,hostLabel:r,agent:t})}return e}async shutdown(){if(this.shutDown)return;this.shutDown=!0,this.shutdownController.abort();let e=Array.from(this.hosts.values());this.hosts.clear(),await Promise.all(e.map(e=>e.shutdown(`shutdown`))),this.fanOut.close(),this.hostEventsQueue.close()}assertOpen(){if(this.shutDown)throw new te(`<multi-host client>`)}async resolveClientId(e,t){let n=this.shutdownController.signal;if(t!==null){try{await this.clientIdStore.store(e,t,n)}catch(t){throw new re(e,t.message??String(t),{cause:t})}return t}let r;try{r=await this.clientIdStore.load(e,n)}catch(t){throw new re(e,t.message??String(t),{cause:t})}let i=r??ie();try{await this.clientIdStore.store(e,i,n)}catch(t){throw new re(e,t.message??String(t),{cause:t})}return i}},Ne;(function(e){e.Computing=`computing`,e.Recomputing=`recomputing`,e.Ready=`ready`,e.Error=`error`})(Ne||={});var Pe;(function(e){e.Idle=`idle`,e.Running=`running`,e.Error=`error`,e.Disabled=`disabled`})(Pe||={});var Fe;(function(e){e.Changeset=`changeset`,e.Resource=`resource`,e.Range=`range`})(Fe||={});function Ie(e,t,n){switch(t.type){case v.ChangesetStatusChanged:{if(t.status===Ne.Error)return{...e,status:t.status,error:t.error};let{error:n,...r}=e;return{...r,status:t.status}}case v.ChangesetFileSet:{let n=e.files.findIndex(e=>e.id===t.file.id);if(n<0)return{...e,files:[...e.files,t.file]};let r=[...e.files];return r[n]=t.file,{...e,files:r}}case v.ChangesetFileRemoved:{let n=e.files.findIndex(e=>e.id===t.fileId);if(n<0)return e;let r=[...e.files];return r.splice(n,1),{...e,files:r}}case v.ChangesetFilesReviewChanged:{let n=!1,r=new Set(t.files),i=e.files.map(e=>!r.has(e.id)||e.reviewed===t.reviewed?e:(n=!0,{...e,reviewed:t.reviewed}));return n?{...e,files:i}:e}case v.ChangesetContentChanged:return t.operations===void 0?{...e,files:t.files}:{...e,files:t.files,operations:t.operations};case v.ChangesetOperationsChanged:if(t.operations===void 0){let{operations:t,...n}=e;return n}return{...e,operations:t.operations};case v.ChangesetOperationStatusChanged:{if(e.operations===void 0)return e;let n=e.operations.findIndex(e=>e.id===t.operationId);if(n<0)return e;let r=e.operations[n],i;if(t.status===Pe.Error)i={...r,status:t.status,error:t.error};else{let{error:e,...n}=r;i={...n,status:t.status}}let a=[...e.operations];return a[n]=i,{...e,operations:a}}case v.ChangesetCleared:return e.files.length===0?e:{...e,files:[]};default:return b(t,n),e}}var Le;(function(e){e.Creating=`creating`,e.Ready=`ready`,e.Failed=`failed`})(Le||={});var C;(function(e){e[e.Idle=1]=`Idle`,e[e.Error=2]=`Error`,e[e.InProgress=8]=`InProgress`,e[e.InputNeeded=24]=`InputNeeded`,e[e.IsRead=32]=`IsRead`,e[e.IsArchived=64]=`IsArchived`})(C||={});var Re;(function(e){e.Automation=`automation`})(Re||={});var ze;(function(e){e.ChatInput=`chatInput`,e.ToolConfirmation=`toolConfirmation`,e.ToolClientExecution=`toolClientExecution`,e.ToolAuthentication=`toolAuthentication`})(ze||={});var w;(function(e){e.Plugin=`plugin`,e.Directory=`directory`,e.Agent=`agent`,e.Skill=`skill`,e.Prompt=`prompt`,e.Rule=`rule`,e.Hook=`hook`,e.McpServer=`mcpServer`})(w||={});var Be;(function(e){e.Global=`global`,e.Workspace=`workspace`,e.Session=`session`})(Be||={});var Ve;(function(e){e.Loading=`loading`,e.Loaded=`loaded`,e.Degraded=`degraded`,e.Error=`error`})(Ve||={});var T;(function(e){e.Starting=`starting`,e.Ready=`ready`,e.AuthRequired=`authRequired`,e.Error=`error`,e.Stopped=`stopped`})(T||={});var He;(function(e){e.Required=`required`,e.Expired=`expired`,e.InsufficientScope=`insufficientScope`})(He||={});function Ue(e,t,n){return n?e|t:e&~t}function We(e){return e.kind!==ze.ToolClientExecution}function Ge(e,t){return t.some(We)?e&-32|C.InputNeeded:e&~(C.InputNeeded&~C.InProgress)}function E(e,t,n){let r=e.customizations;if(!r)return e;let i=r.findIndex(e=>e.id===t);if(i>=0){let t=r[i];if(t.type!==w.McpServer)return e;let a=r.slice();return a[i]=n(t),{...e,customizations:a}}let a=!1,o=r.map(e=>{if(e.type===w.McpServer)return e;let r=e.children;if(!r)return e;let i=r.findIndex(e=>e.id===t);if(i<0)return e;let o=r[i];if(o.type!==w.McpServer)return e;a=!0;let s=r.slice();return s[i]=n(o),{...e,children:s}});return a?{...e,customizations:o}:e}function Ke(e,t){switch(e.type){case w.Plugin:case w.McpServer:{if(t.length>0)return{...e,enablement:[...t]};let{enablement:n,...r}=e;return r}default:return{...e,enabled:t[0]?.enabled??!0}}}function qe(e,t,n){switch(t.type){case v.SessionReady:return{...e,lifecycle:Le.Ready};case v.SessionCreationFailed:return{...e,lifecycle:Le.Failed,creationError:t.error};case v.SessionChatAdded:{let n=e.chats,r=n.findIndex(e=>e.resource===t.summary.resource);if(r<0)return{...e,chats:[...n,t.summary]};let i=n.slice();return i[r]=t.summary,{...e,chats:i}}case v.SessionChatRemoved:{let n=e.chats,r=n.findIndex(e=>e.resource===t.chat);if(r<0)return e;let i=n.slice();i.splice(r,1);let a={...e,chats:i};return e.defaultChat===t.chat&&delete a.defaultChat,a}case v.SessionChatUpdated:{let n=e.chats,r=n.findIndex(e=>e.resource===t.chat);if(r<0)return e;let{resource:i,...a}=t.changes,o=n.slice();return o[r]={...n[r],...a},{...e,chats:o}}case v.SessionChatsReordered:{let n=e.chats;if(t.chats.length!==n.length||new Set(t.chats).size!==n.length)return e;let r=new Map(n.map(e=>[e.resource,e])),i=[];for(let n of t.chats){let t=r.get(n);if(!t)return e;i.push(t)}return i.every((e,t)=>e===n[t])?e:{...e,chats:i}}case v.SessionDefaultChatChanged:return{...e,defaultChat:t.defaultChat};case v.SessionTitleChanged:return{...e,title:t.title};case v.SessionIsReadChanged:return{...e,status:Ue(e.status,C.IsRead,t.isRead)};case v.SessionIsArchivedChanged:return{...e,status:Ue(e.status,C.IsArchived,t.isArchived)};case v.SessionActivityChanged:return{...e,activity:t.activity};case v.SessionChangesetsChanged:{let{changesets:n,...r}=e;return t.changesets?{...r,changesets:t.changesets}:r}case v.SessionConfigChanged:return e.config?{...e,config:{...e.config,values:t.replace?{...t.config}:{...e.config.values,...t.config}}}:e;case v.SessionMetaChanged:return{...e,_meta:t._meta};case v.SessionServerToolsChanged:return{...e,serverTools:t.tools};case v.SessionActiveClientSet:{let n=e.activeClients,r=n.findIndex(e=>e.clientId===t.activeClient.clientId);if(r<0)return{...e,activeClients:[...n,t.activeClient]};let i=n.slice();return i[r]=t.activeClient,{...e,activeClients:i}}case v.SessionActiveClientRemoved:{let n=e.activeClients,r=n.findIndex(e=>e.clientId===t.clientId);if(r<0)return e;let i=n.slice();return i.splice(r,1),{...e,activeClients:i}}case v.SessionWorkingDirectorySet:{let n=e.workingDirectories??[];return n.includes(t.directory)?e:{...e,workingDirectories:[...n,t.directory]}}case v.SessionWorkingDirectoryRemoved:{let n=e.workingDirectories;if(!n)return e;let r=n.indexOf(t.directory);if(r<0)return e;let i=n.slice();return i.splice(r,1),{...e,workingDirectories:i}}case v.SessionWorkingDirectoryReplaced:{let n=e.workingDirectories;if(!n)return e;let r=n.indexOf(t.directory);if(r<0)return e;let i=n.indexOf(t.replacement);return i>=0&&i<r?{...e,workingDirectories:n.filter((e,t)=>t!==r)}:{...e,workingDirectories:n.map((e,n)=>n===r?t.replacement:e).filter((e,n)=>n===r||e!==t.replacement)}}case v.SessionInputNeededSet:{let n=e.inputNeeded??[],r=n.findIndex(e=>e.id===t.request.id),i=r<0?[...n,t.request]:n.slice();return r>=0&&(i[r]=t.request),{...e,inputNeeded:i,status:Ge(e.status,i)}}case v.SessionInputNeededRemoved:{let n=e.inputNeeded;if(!n)return e;let r=n.findIndex(e=>e.id===t.id);if(r<0)return e;let i=n.slice();i.splice(r,1);let a={...e,status:Ge(e.status,i)};return i.length>0?a.inputNeeded=i:delete a.inputNeeded,a}case v.SessionCustomizationsChanged:return{...e,customizations:t.customizations};case v.SessionCustomizationToggled:{let n=e.customizations;if(!n)return e;let r=n.findIndex(e=>e.id===t.id);if(r>=0){let i=n.slice();return i[r]=Ke(n[r],t.enablement),{...e,customizations:i}}for(let r=0;r<n.length;r++){let i=n[r];if(i.type===w.McpServer)continue;let a=i.children;if(!a)continue;let o=a.findIndex(e=>e.id===t.id);if(o<0)continue;let s=a.slice();s[o]=Ke(a[o],t.enablement);let c=n.slice();return c[r]={...i,children:s},{...e,customizations:c}}return e}case v.SessionCustomizationUpdated:{let n=e.customizations??[],r=n.findIndex(e=>e.id===t.customization.id);if(r<0)return{...e,customizations:[...n,t.customization]};let i=[...n];return i[r]=t.customization,{...e,customizations:i}}case v.SessionCustomizationRemoved:{let n=e.customizations;if(!n)return e;let r=n.findIndex(e=>e.id===t.id);if(r>=0){let t=n.slice();return t.splice(r,1),{...e,customizations:t}}let i=!1,a=n.map(e=>{if(e.type===w.McpServer)return e;let n=e.children;if(!n)return e;let r=n.findIndex(e=>e.id===t.id);if(r<0)return e;i=!0;let a=n.slice();return a.splice(r,1),{...e,children:a}});return i?{...e,customizations:a}:e}case v.SessionMcpServerStateChanged:return E(e,t.id,e=>({...e,state:t.state,channel:t.channel}));case v.SessionMcpServerStartRequested:return E(e,t.id,e=>({...e,state:{kind:T.Starting},channel:void 0}));case v.SessionMcpServerBackgroundRequested:return E(e,t.id,e=>e.state.kind===T.Starting&&e.state.blocking?{...e,state:{...e.state,blocking:!1}}:e);case v.SessionMcpServerStopRequested:return E(e,t.id,e=>({...e,state:{kind:T.Stopped},channel:void 0}));default:return b(t,n),e}}var Je;(function(e){e.Running=`running`,e.Exited=`exited`})(Je||={});var Ye;(function(e){e.Client=`client`,e.Session=`session`})(Ye||={});function Xe(e,t,n){switch(t.type){case v.TerminalData:{let n=[...e.content],r=n.length>0?n[n.length-1]:void 0;return r&&r.type===`command`&&!r.isComplete?n[n.length-1]={...r,output:r.output+t.data}:r&&r.type===`unclassified`?n[n.length-1]={...r,value:r.value+t.data}:n.push({type:`unclassified`,value:t.data}),{...e,content:n}}case v.TerminalInput:return e;case v.TerminalResized:return{...e,cols:t.cols,rows:t.rows};case v.TerminalClaimed:return{...e,claim:t.claim};case v.TerminalTitleChanged:return{...e,title:t.title};case v.TerminalCwdChanged:return{...e,cwd:t.cwd};case v.TerminalExited:return{...e,lifecycle:{status:Je.Exited,exitCode:t.exitCode}};case v.TerminalCleared:return{...e,content:[]};case v.TerminalCommandDetectionAvailable:return{...e,supportsCommandDetection:!0};case v.TerminalCommandExecuted:{let n={type:`command`,commandId:t.commandId,commandLine:t.commandLine,output:``,timestamp:t.timestamp,isComplete:!1};return{...e,content:[...e.content,n],supportsCommandDetection:!0}}case v.TerminalCommandFinished:{let n=e.content.map(e=>e.type===`command`&&e.commandId===t.commandId?{...e,isComplete:!0,exitCode:t.exitCode,durationMs:t.durationMs}:e);return{...e,content:n}}default:return b(t,n),e}}function Ze(e,t,n){switch(t.type){case v.AutomationCreateRequested:case v.AutomationUpdateRequested:return e;case v.AutomationSet:{let n=e.entries.findIndex(e=>e.resource===t.automation.resource);if(n<0)return{...e,entries:[...e.entries,t.automation]};let r=e.entries.slice();return r[n]=t.automation,{...e,entries:r}}case v.AutomationRemoved:{let n=e.entries.findIndex(e=>e.resource===t.resource);if(n<0)return e;let r=e.entries.slice();return r.splice(n,1),{...e,entries:r}}default:return b(t,n),e}}var Qe=class e{socket;inbox=[];waiters=[];closeInfo=null;error=null;closed=!1;static connect(t,n={}){return new Promise((r,i)=>{let o=globalThis.WebSocket;if(!o){i(new a(`io`,`global WebSocket is not available; install or polyfill it`));return}let s;try{s=n.protocols===void 0?new o(t):new o(t,n.protocols)}catch(e){i(new a(`io`,`failed to construct WebSocket: ${e.message}`,{cause:e}));return}let c=()=>{s.removeEventListener(`open`,l),s.removeEventListener(`error`,u),s.removeEventListener(`close`,d)},l=()=>{c(),r(new e(s))},u=()=>{c(),i(new a(`io`,`websocket failed to open`))},d=e=>{c(),i(new a(`closed`,`websocket closed before open (code=${e.code})`))};s.addEventListener(`open`,l),s.addEventListener(`error`,u),s.addEventListener(`close`,d)})}static fromSocket(t){if(t.readyState!==t.OPEN)throw new a(`io`,`socket is not OPEN`);return new e(t)}constructor(e){this.socket=e,e.binaryType=`arraybuffer`,e.addEventListener(`message`,e=>{let t=e.data;if(typeof t==`string`)this.deliver({kind:`text`,text:t});else if(t instanceof ArrayBuffer)this.deliver({kind:`binary`,data:new Uint8Array(t)});else if(t instanceof Uint8Array)this.deliver({kind:`binary`,data:t});else{let e=new a(`protocol`,`unsupported WebSocket message payload (expected string or ArrayBuffer)`);this.error=e,this.drainWithError(e)}}),e.addEventListener(`error`,()=>{this.error=new a(`io`,`websocket error`),this.drainWithError(this.error)}),e.addEventListener(`close`,e=>{if(this.closeInfo={code:e.code,reason:e.reason,wasClean:e.wasClean},this.closed=!0,e.wasClean)this.drainWithNull();else{let t=new a(`closed`,`websocket closed abnormally (code=${e.code})`);this.error=t,this.drainWithError(t)}})}get bufferedAmount(){return this.socket.bufferedAmount}get lastClose(){return this.closeInfo}send(e){if(this.closed)throw new a(`closed`,`transport closed`);if(this.error)throw this.error;let t=typeof e==`string`?e:pe(e);try{this.socket.send(t)}catch(e){throw new a(`io`,`websocket send failed: ${e.message}`,{cause:e})}}recv(){if(this.error)return Promise.reject(this.error);if(this.inbox.length>0){let e=this.inbox.shift()??null;return Promise.resolve(e)}return this.closed?Promise.resolve(null):new Promise((e,t)=>{this.waiters.push({resolve:e,reject:t})})}close(){if(this.socket.readyState===this.socket.OPEN||this.socket.readyState===this.socket.CONNECTING)try{this.socket.close()}catch{}return Promise.resolve()}deliver(e){if(this.waiters.length>0){let t=this.waiters.shift();t&&t.resolve(e);return}this.inbox.push(e)}drainWithError(e){let t=this.waiters;this.waiters=[];for(let n of t)n.reject(e)}drainWithNull(){let e=this.waiters;this.waiters=[];for(let t of e)t.resolve(null)}},$e=`ahpd-web.token`;function et(){try{let e=window.localStorage.getItem($e)?.trim();return e===void 0||e===``?null:e}catch{return null}}function tt(e){try{e===null?window.localStorage.removeItem($e):window.localStorage.setItem($e,e)}catch{}}var D=!1;function nt(){return D}async function rt(){try{let e=await fetch(`./ahpw.json`,{headers:{accept:`application/json`},cache:`no-store`});if(!e.ok||!(e.headers.get(`content-type`)??``).includes(`application/json`))return!1;D=(await e.json()).tokenHeld===!0}catch{D=!1}return D}var it;(function(e){e.Enabled=`enabled`,e.Disabled=`disabled`,e.Unconfigured=`unconfigured`})(it||={});var at;(function(e){e.Shell=`shell`,e.Subagent=`subagent`})(at||={});var ot;(function(e){e.User=`user`,e.Fork=`fork`,e.SideChat=`sideChat`,e.Tool=`tool`})(ot||={});var st;(function(e){e.Full=`full`,e.ReadOnly=`read-only`,e.Hidden=`hidden`})(st||={});var ct;(function(e){e.Steering=`steering`,e.Queued=`queued`})(ct||={});var lt;(function(e){e.Accept=`accept`,e.Decline=`decline`,e.Cancel=`cancel`})(lt||={});var ut;(function(e){e.Text=`text`,e.Number=`number`,e.Integer=`integer`,e.Boolean=`boolean`,e.SingleSelect=`single-select`,e.MultiSelect=`multi-select`})(ut||={});var dt;(function(e){e.Text=`text`,e.Number=`number`,e.Boolean=`boolean`,e.Selected=`selected`,e.SelectedMany=`selected-many`})(dt||={});var ft;(function(e){e.Draft=`draft`,e.Submitted=`submitted`,e.Skipped=`skipped`})(ft||={});var O;(function(e){e.Complete=`complete`,e.Cancelled=`cancelled`,e.Error=`error`})(O||={});var pt;(function(e){e.Simple=`simple`,e.EmbeddedResource=`embeddedResource`,e.Resource=`resource`,e.Annotations=`annotations`,e.Chat=`chat`})(pt||={});var mt;(function(e){e.User=`user`,e.Agent=`agent`,e.Tool=`tool`,e.Automation=`automation`,e.SystemNotification=`systemNotification`})(mt||={});var k;(function(e){e.Markdown=`markdown`,e.ContentRef=`contentRef`,e.ToolCall=`toolCall`,e.Reasoning=`reasoning`,e.SystemNotification=`systemNotification`,e.InputRequest=`inputRequest`,e.Error=`error`})(k||={});var A;(function(e){e.Streaming=`streaming`,e.PendingConfirmation=`pending-confirmation`,e.Running=`running`,e.AuthRequired=`auth-required`,e.PendingResultConfirmation=`pending-result-confirmation`,e.Completed=`completed`,e.Cancelled=`cancelled`})(A||={});var ht;(function(e){e.NotNeeded=`not-needed`,e.UserAction=`user-action`,e.Setting=`setting`})(ht||={});var gt;(function(e){e.Judge=`judge`})(gt||={});var _t;(function(e){e.Loading=`loading`,e.Complete=`complete`})(_t||={});var vt;(function(e){e.Denied=`denied`,e.Skipped=`skipped`,e.ResultDenied=`result-denied`})(vt||={});var yt;(function(e){e.Approve=`approve`,e.Deny=`deny`})(yt||={});var j;(function(e){e.Client=`client`,e.MCP=`mcp`})(j||={});var bt;(function(e){e.Text=`text`,e.EmbeddedResource=`embeddedResource`,e.Resource=`resource`,e.FileEdit=`fileEdit`,e.Terminal=`terminal`,e.Subagent=`subagent`})(bt||={});var xt;(function(e){e.Added=`added`,e.Updated=`updated`,e.Deleted=`deleted`})(xt||={});var St;(function(e){e.Update=`update`,e.Remove=`remove`,e.Run=`run`})(St||={});var Ct;(function(e){e.Skip=`skip`,e.RunOnce=`runOnce`})(Ct||={});var wt;(function(e){e.Schedule=`schedule`,e.Event=`event`})(wt||={});var Tt;(function(e){e.AfterRuns=`afterRuns`,e.AfterDate=`afterDate`})(Tt||={});var Et;(function(e){e.Pending=`pending`,e.Running=`running`,e.Completed=`completed`,e.Failed=`failed`,e.Cancelled=`cancelled`})(Et||={});var Dt;(function(e){e.Manual=`manual`,e.Trigger=`trigger`})(Dt||={});var Ot;(function(e){e.UserMessage=`userMessage`})(Ot||={});var kt;(function(e){e.Fork=`fork`,e.SideChat=`sideChat`})(kt||={});var At;(function(e){e.Session=`session`,e.NewSession=`newSession`})(At||={});var jt;(function(e){e.Resource=`resource`,e.Range=`range`})(jt||={});var Mt;(function(e){e.Required=`required`,e.Expired=`expired`})(Mt||={});function Nt(e,t){return new Date(Date.parse(e)+t).toISOString()}function Pt(e){return{toolCallId:e.toolCallId,toolName:e.toolName,displayName:e.displayName,intention:e.intention,contributor:e.contributor,_meta:e._meta}}function M(e,t){return{...Pt(e),_meta:t??e._meta}}function Ft(e,t,n){return t?e?.kind===j.Client?t.kind===j.Client&&t.clientId===e.clientId?t:(n?.(`Ignoring contributor change for client tool call from '${e.clientId}'`),e):t.kind===j.Client?(n?.(`Ignoring late client contributor '${t.clientId}' because client execution ownership must be established at tool call start`),e):t:e}function It(e,t){if(t&&e)return e.find(e=>e.id===t)}function Lt(e){return e.activeTurn?e.activeTurn.responseParts.some(e=>e.kind===k.ToolCall&&(e.toolCall.status===A.PendingConfirmation||e.toolCall.status===A.PendingResultConfirmation||e.toolCall.status===A.AuthRequired)):!1}function Rt(e){return e.activeTurn?.responseParts.some(e=>e.kind===k.InputRequest&&e.response===void 0)??!1}function zt(e,t){let n=e.findIndex(e=>e.kind===k.InputRequest&&e.response===void 0&&e.request.id===t);if(n<0)return;let r=e[n];return r.kind===k.InputRequest?{index:n,part:r}:void 0}function Bt(e){let t=e.responseParts[e.responseParts.length-1];return t?.kind===k.Error&&t.resumable===!0}function Vt(e){return e.kind===k.Error}function N(e,t,n){return n?e|t:e&~t}function P(e,t){let n;return n=t||(Rt(e)||Lt(e)?C.InputNeeded:e.activeTurn?C.InProgress:C.Idle),e.status&-32|n}function F(e){let t=P(e);return t===e.status?e:{...e,status:t}}function Ht(e,t,n,r,i,a){if(!e.activeTurn||e.activeTurn.id!==t)return e;let o=e.activeTurn,s=o.responseParts.map(e=>{if(e.kind!==k.ToolCall)return e;let t=e.toolCall;return t.status===A.Completed||t.status===A.Cancelled?e:{kind:k.ToolCall,toolCall:{status:A.Cancelled,...Pt(t),invocationMessage:t.status===A.Streaming?t.invocationMessage??``:t.invocationMessage,toolInput:t.status===A.Streaming?void 0:t.toolInput,reason:vt.Skipped}}});a&&s.push(a);let c={id:o.id,startedAt:o.startedAt,duration:Math.max(0,r),message:o.message,responseParts:s,usage:o.usage,state:n},l={...e,turns:[...e.turns,c],activeTurn:void 0,modifiedAt:Nt(o.startedAt,c.duration??0)};return{...l,status:P(l,i)}}function Ut(e,t){let n=e.activeTurn;if(!n)return e;let r=zt(n.responseParts,t.id),i=[...n.responseParts],a={kind:k.InputRequest,request:t};r?(a.request={...t,answers:t.answers??r.part.request.answers},i[r.index]=a):i.push(a);let o={...e,activeTurn:{...n,responseParts:i}};return{...o,status:N(P(o),C.IsRead,!1)}}function I(e,t,n,r){let i=e.activeTurn;if(!i||i.id!==t)return e;let a=!1,o=i.responseParts.map(e=>{if(e.kind===k.ToolCall&&e.toolCall.toolCallId===n){let t=r(e.toolCall);return t===e.toolCall?e:(a=!0,{...e,toolCall:t})}return e});return a?{...e,activeTurn:{...i,responseParts:o}}:e}function Wt(e,t,n,r){let i=e.activeTurn;if(!i||i.id!==t)return e;let a=!1,o=i.responseParts.map(e=>!a&&(e.kind===k.ToolCall?e.toolCall.toolCallId:`id`in e?e.id:void 0)===n?(a=!0,r(e)):e);return a?{...e,activeTurn:{...i,responseParts:o}}:e}function Gt(e,t,n){switch(t.type){case v.ChatTurnStarted:{let n={...e,activeTurn:{id:t.turnId,startedAt:t.startedAt,message:t.message,responseParts:[],usage:void 0}};if(n={...n,status:N(P(n),C.IsRead,!1),modifiedAt:t.startedAt},t.queuedMessageId&&(n.steeringMessage?.id===t.queuedMessageId&&(n={...n,steeringMessage:void 0}),n.queuedMessages)){let e=n.queuedMessages.filter(e=>e.id!==t.queuedMessageId);n={...n,queuedMessages:e.length>0?e:void 0}}return n}case v.ChatDelta:return Wt(e,t.turnId,t.partId,e=>e.kind===k.Markdown?{...e,content:e.content+t.content}:e);case v.ChatResponsePart:return!e.activeTurn||e.activeTurn.id!==t.turnId||Vt(t.part)?e:{...e,activeTurn:{...e.activeTurn,responseParts:[...e.activeTurn.responseParts,t.part]}};case v.ChatTurnComplete:return Ht(e,t.turnId,O.Complete,t.duration);case v.ChatTurnCancelled:return Ht(e,t.turnId,O.Cancelled,t.duration);case v.ChatError:return Ht(e,t.turnId,O.Error,t.duration,C.Error,t.part);case v.ChatTurnResume:{if(e.activeTurn)return e;let n=e.turns.length-1,r=e.turns[n];if(!r||r.id!==t.turnId||r.state!==O.Error||!Bt(r))return e;let i=e.turns.slice();i.splice(n,1);let a={...e,turns:i,activeTurn:{id:r.id,startedAt:r.startedAt??e.modifiedAt,message:r.message,responseParts:r.responseParts,usage:r.usage}};return{...a,status:N(P(a),C.IsRead,!1)}}case v.ChatActivityChanged:return{...e,activity:t.activity};case v.ChatBackgroundWorkSet:{let n=e.backgroundWork??[],r=n.findIndex(e=>e.id===t.work.id),i=n.slice();return r<0?i.push(t.work):i[r]=t.work,{...e,backgroundWork:i}}case v.ChatBackgroundWorkRemoved:{let n=e.backgroundWork??[],r=n.findIndex(e=>e.id===t.id);if(r<0)return e;let i=n.slice();return i.splice(r,1),{...e,backgroundWork:i}}case v.ChatMovableChanged:return{...e,movable:t.movable};case v.ChatChangesetsChanged:{let{changesets:n,...r}=e;return t.changesets?{...r,changesets:t.changesets}:r}case v.ChatCanvasesChanged:{let{canvases:n,...r}=e;return t.canvases?{...r,canvases:t.canvases}:r}case v.ChatWorkingDirectorySet:{let n=e.workingDirectories??[];return n.includes(t.directory)?e:{...e,workingDirectories:[...n,t.directory]}}case v.ChatWorkingDirectoryRemoved:{let n=e.workingDirectories;if(!n)return e;let r=n.indexOf(t.directory);if(r<0)return e;let i=n.slice();return i.splice(r,1),{...e,workingDirectories:i}}case v.ChatToolCallStart:return!e.activeTurn||e.activeTurn.id!==t.turnId?e:{...e,activeTurn:{...e.activeTurn,responseParts:[...e.activeTurn.responseParts,{kind:k.ToolCall,toolCall:{toolCallId:t.toolCallId,toolName:t.toolName,displayName:t.displayName,intention:t.intention,contributor:t.contributor,_meta:t._meta,status:A.Streaming}}]}};case v.ChatToolCallDelta:return I(e,t.turnId,t.toolCallId,e=>e.status===A.Streaming?{...e,...t._meta===void 0?{}:{_meta:t._meta},...t.content===void 0?{}:{partialInput:(e.partialInput??``)+t.content},invocationMessage:t.invocationMessage??e.invocationMessage}:e);case v.ChatToolCallReady:return F(I(e,t.turnId,t.toolCallId,e=>{if(e.status!==A.Streaming&&e.status!==A.Running&&e.status!==A.PendingConfirmation)return e;let r={...M(e,t._meta),contributor:Ft(e.contributor,t.contributor,n),intention:t.intention??e.intention},i=t.toolInput??(e.status===A.Streaming?void 0:e.toolInput);if(t.confirmed)return{status:A.Running,...r,invocationMessage:t.invocationMessage,toolInput:i,confirmed:t.confirmed};let a=e.status===A.PendingConfirmation?e:void 0,o=t.options??a?.options;return{status:A.PendingConfirmation,...r,invocationMessage:t.invocationMessage,toolInput:i,confirmationTitle:t.confirmationTitle??a?.confirmationTitle,riskAssessment:t.riskAssessment??a?.riskAssessment,edits:t.edits??a?.edits,editable:t.editable??a?.editable,...o?{options:o}:{}}}));case v.ChatToolCallConfirmed:return F(I(e,t.turnId,t.toolCallId,e=>{if(e.status!==A.PendingConfirmation)return e;let n=M(e,t._meta),r=It(e.options,t.selectedOptionId);if(t.approved){let i=t.editedToolInput!==void 0&&typeof e.toolInput==`string`?t.editedToolInput:e.toolInput;return{status:A.Running,...n,invocationMessage:e.invocationMessage,toolInput:i,confirmed:t.confirmed,...r?{selectedOption:r}:{}}}return{status:A.Cancelled,...n,invocationMessage:e.invocationMessage,toolInput:e.toolInput,reason:t.reason,reasonMessage:t.reasonMessage,userSuggestion:t.userSuggestion,...r?{selectedOption:r}:{}}}));case v.ChatToolCallComplete:return F(I(e,t.turnId,t.toolCallId,e=>{if(e.status!==A.Running&&e.status!==A.PendingConfirmation&&e.status!==A.AuthRequired||e.status===A.AuthRequired&&t.result.success)return e;let n=M(e,t._meta),r=e.status===A.Running||e.status===A.AuthRequired?e.confirmed:ht.NotNeeded,i=e.status===A.Running||e.status===A.AuthRequired?e.selectedOption:void 0,a=e.status===A.AuthRequired?e.content:void 0;return t.requiresResultConfirmation&&e.status!==A.AuthRequired?{status:A.PendingResultConfirmation,...n,invocationMessage:e.invocationMessage,toolInput:e.toolInput,confirmed:r,...i?{selectedOption:i}:{},...a?{content:a}:{},...t.result}:{status:A.Completed,...n,invocationMessage:e.invocationMessage,toolInput:e.toolInput,confirmed:r,...i?{selectedOption:i}:{},...a?{content:a}:{},...t.result}}));case v.ChatToolCallResultConfirmed:return F(I(e,t.turnId,t.toolCallId,e=>{if(e.status!==A.PendingResultConfirmation)return e;let n=M(e,t._meta);return t.approved?{status:A.Completed,...n,invocationMessage:e.invocationMessage,toolInput:e.toolInput,confirmed:e.confirmed,...e.selectedOption?{selectedOption:e.selectedOption}:{},success:e.success,pastTenseMessage:e.pastTenseMessage,content:e.content,structuredContent:e.structuredContent,error:e.error}:{status:A.Cancelled,...n,invocationMessage:e.invocationMessage,toolInput:e.toolInput,reason:vt.ResultDenied,...e.selectedOption?{selectedOption:e.selectedOption}:{}}}));case v.ChatToolCallContentChanged:return I(e,t.turnId,t.toolCallId,e=>e.status===A.Running?{...e,...t._meta===void 0?{}:{_meta:t._meta},content:t.content}:e);case v.ChatToolCallAuthRequired:return F(I(e,t.turnId,t.toolCallId,e=>{if(e.status!==A.Running||!e.contributor||e.contributor.kind!==j.MCP)return e;let n=M(e,t._meta);return{status:A.AuthRequired,...n,contributor:e.contributor,invocationMessage:e.invocationMessage,toolInput:e.toolInput,confirmed:e.confirmed,...e.selectedOption?{selectedOption:e.selectedOption}:{},...e.content?{content:e.content}:{},auth:t.auth}}));case v.ChatToolCallAuthResolved:return F(I(e,t.turnId,t.toolCallId,e=>{if(e.status!==A.AuthRequired)return e;let n=M(e,t._meta);return{status:A.Running,...n,invocationMessage:e.invocationMessage,toolInput:e.toolInput,confirmed:e.confirmed,...e.selectedOption?{selectedOption:e.selectedOption}:{},...e.content?{content:e.content}:{}}}));case v.ChatUsage:return!e.activeTurn||e.activeTurn.id!==t.turnId?e:{...e,activeTurn:{...e.activeTurn,usage:t.usage}};case v.ChatReasoning:return Wt(e,t.turnId,t.partId,e=>e.kind===k.Reasoning?{...e,content:e.content+t.content}:e);case v.ChatTruncated:{let n;if(t.turnId===void 0)n=[];else{let r=e.turns.findIndex(e=>e.id===t.turnId);if(r<0)return e;n=e.turns.slice(0,r+1)}let r={...e,turns:n,activeTurn:void 0};return t.turnId===void 0&&delete r.turnsNextCursor,{...r,status:P(r)}}case v.ChatTurnsLoaded:{let n=new Set(e.turns.map(e=>e.id)),r=t.turns.filter(e=>!n.has(e.id));return{...e,turns:[...r,...e.turns],turnsNextCursor:t.turnsNextCursor}}case v.ChatInputRequested:return Ut(e,t.request);case v.ChatInputAnswerChanged:{let n=e.activeTurn,r=n?zt(n.responseParts,t.requestId):void 0;if(!n||!r)return e;let{index:i,part:a}=r,o=a.request,s={...o.answers??{}};t.answer===void 0?delete s[t.questionId]:s[t.questionId]=t.answer;let c=[...n.responseParts];return c[i]={...a,request:{...o,answers:Object.keys(s).length>0?s:void 0}},{...e,activeTurn:{...n,responseParts:c}}}case v.ChatInputCompleted:{let n=e.activeTurn,r=n?zt(n.responseParts,t.requestId):void 0;if(!n||!r)return e;let{index:i,part:a}=r,o={...a.request.answers??{},...t.answers??{}},s=[...n.responseParts];s[i]={...a,request:{...a.request,answers:Object.keys(o).length>0?o:void 0},response:t.response};let c={...e,activeTurn:{...n,responseParts:s}};return{...c,status:P(c)}}case v.ChatPendingMessageSet:{let n={id:t.id,message:t.message};if(t.kind===ct.Steering)return{...e,steeringMessage:n};let r=e.queuedMessages??[],i=r.findIndex(e=>e.id===t.id);if(i>=0){let t=[...r];return t[i]=n,{...e,queuedMessages:t}}return{...e,queuedMessages:[...r,n]}}case v.ChatPendingMessageRemoved:{if(t.kind===ct.Steering)return!e.steeringMessage||e.steeringMessage.id!==t.id?e:{...e,steeringMessage:void 0};let n=e.queuedMessages;if(!n)return e;let r=n.filter(e=>e.id!==t.id);return r.length===n.length?e:{...e,queuedMessages:r.length>0?r:void 0}}case v.ChatQueuedMessagesReordered:{let n=e.queuedMessages;if(!n)return e;let r=new Map(n.map(e=>[e.id,e])),i=new Set,a=t.order.filter(e=>r.has(e)&&!i.has(e)?(i.add(e),!0):!1).map(e=>r.get(e));for(let e of n)i.has(e.id)||a.push(e);return{...e,queuedMessages:a}}case v.ChatDraftChanged:return{...e,draft:t.draft};case v.ChatIsReadChanged:return{...e,status:N(e.status,C.IsRead,t.isRead)};case v.ChatIsArchivedChanged:return{...e,status:N(e.status,C.IsArchived,t.isArchived)};default:return b(t,n),e}}var Kt=`0.10.0`,qt=Object.freeze(de.flatMap(e=>e===`1.0.0`?[e,Kt]:e===`0.10.0`?[]:[e]));function Jt(e){let t=Yt(typeof e==`string`?Xt(e):e);if(t?.method!==`initialize`)return e;let n={...Yt(t.params),protocolVersions:[...qt]},r={...t,params:n};return typeof e==`string`?JSON.stringify(r):r}function Yt(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function Xt(e){try{return JSON.parse(e)}catch{return null}}function Zt(e){return{send:t=>e.send(Jt(t)),close:()=>e.close(),recv:()=>e.recv()}}function Qt(e){let t=en(en(en(typeof e==`string`?tn(e):e)?.result)?.serverInfo);return t===null||typeof t.name!=`string`||t.name===``?null:{name:t.name,version:typeof t.version==`string`&&t.version!==``?t.version:null}}var $t=e=>e.version===null?e.name:`${e.name} ${e.version}`;function en(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function tn(e){try{return JSON.parse(e)}catch{return null}}function nn(e,t){return{send:t=>e.send(t),close:()=>e.close(),async recv(){let n=await e.recv(),r=n?.kind===`text`?Qt(n.text):n?.kind===`parsed`?Qt(n.message):null;return r!==null&&t(r),n}}}var rn=`/ahp`;function an(e,t,n){let r=t.protocol===`https:`?`wss:`:`ws:`,i=n?rn:`/`;return`${r}//${t.host}${i}${e===null?``:`?tkn=${encodeURIComponent(e)}`}`}var on=2,sn=8,cn=24,ln=32,un=64;function dn(e){return(e&cn)===cn?`input`:(e&sn)===0?(e&on)===0?`idle`:`error`:`running`}function fn(e){return(e&ln)!==0}function pn(e){return(e&un)!==0}var mn={input:`Needs you`,running:`Running`,error:`Failed`,idle:`Idle`},hn={input:`warning`,running:`info`,error:`danger`,idle:`default`};function gn(e){let t=0,n=0;for(let r of e){if(pn(r))continue;let e=dn(r);e===`idle`&&!fn(r)&&(t+=1),(e===`running`||e===`input`)&&(n+=1)}return{unread:t,working:n}}var _n=e(),vn=[`connection`,`session`,`terminal`,`traffic`],yn=[`debug`,`info`,`warn`,`error`],bn=2e3,xn=1024,L=[],R=[],z=null,Sn=0,Cn=new Set,wn=!1;function Tn(){z=null,!wn&&(wn=!0,setTimeout(()=>{wn=!1;for(let e of Cn)e()},50))}function B(e){Sn+=1;let t={...e,id:`l${Sn}`,at:e.at??Date.now()};t.scope===`traffic`?R=R.length>=1024?[...R.slice(R.length-xn+1),t]:[...R,t]:L=L.length>=2e3?[...L.slice(L.length-bn+1),t]:[...L,t],Tn()}function En(){L=[],R=[],Tn()}function Dn(){return z===null&&(z=[...L,...R].sort((e,t)=>e.at-t.at||Number(e.id.slice(1))-Number(t.id.slice(1)))),z}function On(e){return Cn.add(e),()=>{Cn.delete(e)}}function kn(){return(0,_n.useSyncExternalStore)(On,Dn,Dn)}function An(e,t){let n=yn.indexOf(t.minLevel),r=t.query.split(/\s+/).filter(e=>e!==``&&e!==`!`),i=r.filter(e=>!e.startsWith(`!`)).map(e=>e.toLowerCase()),a=r.filter(e=>e.startsWith(`!`)).map(e=>e.slice(1).toLowerCase());return e.filter(e=>{if(t.scopes.length>0&&!t.scopes.includes(e.scope)||yn.indexOf(e.level)<n)return!1;if(i.length===0&&a.length===0)return!0;let r=e.text.toLowerCase();return i.every(e=>r.includes(e))&&!a.some(e=>r.includes(e))})}var jn=/\b[a-z][a-z0-9+.-]*:\/{1,3}[^\s"'`<>()[\]{},]+/gi;function Mn(e){let t=[],n=0;for(let r of e.matchAll(jn)){let i=r.index,a=r[0].replace(/[.:;]+$/,``);i>n&&t.push({kind:`text`,text:e.slice(n,i)}),t.push({kind:`uri`,text:a}),n=i+a.length}return n<e.length&&t.push({kind:`text`,text:e.slice(n)}),t}function Nn(e){let t=new Date(e),n=e=>String(e).padStart(2,`0`);return`${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}.${String(t.getMilliseconds()).padStart(3,`0`)}`}var Pn=e=>`${new Date(e.at).toISOString().replace(`T`,` `).replace(`Z`,``)} [${e.level}] [${e.scope}] ${e.text}`,Fn=e=>e.map(Pn).join(`
2
- `),In=65536;function V(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function H(e){return typeof e==`string`&&e!==``?e:null}var U=new Map,Ln=null;function Rn(e){if(!e.startsWith(`ahp-chat:`))return null;let t=e.split(`/`).pop()??``;try{let e=atob(t.replace(/-/g,`+`).replace(/_/g,`/`));return/^[a-z][a-z0-9+.-]*:/i.test(e)?e:null}catch{return null}}function zn(e,t){let n=`${e} ${H(t.resource)??``} ${H(t.channel)??``}`.toLowerCase();return n.includes(`terminal`)?`terminal`:n.includes(`session`)||n.includes(`chat`)||H(t.session)!==null?`session`:`connection`}function Bn(e,t){let n=e===`sent`?`→`:`←`,r=H(t.method),i=V(t.params);if(r===`action`)return`${n} ${H(V(i.action).type)??`action`} ${H(i.channel)??``}`.trim();if(r!==null){let e=H(i.resource)??H(i.channel)??H(i.session)??``;return`${n} ${r}${t.id===void 0?``:` #${String(t.id)}`} ${e}`.trim()}return t.error===void 0?`${n} result #${String(t.id)}`:`${n} error #${String(t.id)} ${H(V(t.error).message)??``}`.trim()}function Vn(e){let t=V(e.action),n=H(t.type)??``,r=H(e.channel)??``,i=Rn(r)??(r.includes(`session`)?r:null),a=(t,n,r)=>B({scope:t,level:n,text:r,detail:e}),o=H(e.rejectionReason);if(o!==null){a(n.startsWith(`terminal/`)?`terminal`:`session`,`warn`,`${n} rejected: ${o} · ${r}`);return}switch(n){case`session/ready`:a(`session`,`info`,`ready ${i??r}`);return;case`session/creationFailed`:a(`session`,`error`,`creation failed: ${H(V(t.error).message)??H(t.message)??``} ${i??r}`);return;case`session/titleChanged`:a(`session`,`info`,`title "${H(t.title)??``}" ${i??r}`);return;case`chat/turnStarted`:a(`session`,`info`,`turn started ${i??r}`);return;case`chat/turnComplete`:a(`session`,`info`,`turn complete ${i??r}`);return;case`chat/turnCancelled`:a(`session`,`warn`,`turn cancelled ${i??r}`);return;case`chat/error`:a(`session`,`error`,`${H(V(t.error).message)??H(t.message)??`error`} ${i??r}`);return;case`terminal/commandExecuted`:a(`terminal`,`info`,`$ ${H(t.commandLine)??``} · ${r}`);return;case`terminal/commandFinished`:{let e=typeof t.exitCode==`number`?t.exitCode:null;a(`terminal`,e!==null&&e!==0?`warn`:`info`,`command finished${e===null?``:` · exit ${e}`} · ${r}`);return}case`terminal/exited`:{let e=typeof t.exitCode==`number`?t.exitCode:null;a(`terminal`,`info`,`exited${e===null?``:` ${e}`} · ${r}`);return}case`terminal/claimed`:{let e=V(t.claim);a(`terminal`,`info`,`claimed by ${H(e.session)??(e.kind===`client`?`client ${H(e.clientId)??``}`:``)} · ${r}`);return}case`root/terminalsChanged`:{let e=new Map;for(let n of Array.isArray(t.terminals)?t.terminals:[]){let t=V(n),r=H(t.resource);r!==null&&e.set(r,H(t.title)??``)}let n=Ln;if(Ln=e,n===null)return;for(let[t,r]of e)n.has(t)||a(`terminal`,`info`,`opened ${r===``?``:`${r} `}${t}`);for(let[t,r]of n)e.has(t)||a(`terminal`,`info`,`closed ${r===``?``:`${r} `}${t}`);return}}}var Hn=`••••••`;function Un(e){let t=V(e.params);return e.method!==`authenticate`||typeof t.token!=`string`?e:{...e,params:{...t,token:Hn}}}function Wn(e,t){let n;try{n=V(JSON.parse(t))}catch{B({scope:`traffic`,level:`debug`,text:`${e===`sent`?`→`:`←`} ${t.slice(0,120)}`,detail:t.slice(0,In)});return}let r=Un(n);r!==n&&(n=r,t=JSON.stringify(r)),B({scope:`traffic`,level:`debug`,text:Bn(e,n),detail:t.length>In?t.slice(0,In):t});let i=n.id===void 0||n.id===null?null:String(n.id),a=H(n.method);if(e===`sent`){i!==null&&a!==null&&U.set(i,{method:a,params:V(n.params)});return}if(a===`action`){Vn(V(n.params));return}if(i===null||a!==null)return;let o=U.get(i);if(U.delete(i),n.error===void 0)return;let s=V(n.error),c=o===void 0?`#${i}`:`${o.method} ${H(o.params.resource)??H(o.params.channel)??``}`.trim();B({scope:o===void 0?`connection`:zn(o.method,o.params),level:`error`,text:`${c} refused: ${H(s.message)??`error`}${typeof s.code==`number`?` (${s.code})`:``}`,detail:{request:o??null,error:n.error}})}function Gn(){U.clear()}function Kn(e){return{send:t=>(Wn(`sent`,typeof t==`string`?t:JSON.stringify(t)),e.send(t)),close:()=>e.close(),async recv(){let t=await e.recv();return t?.kind===`text`?Wn(`received`,t.text):t?.kind===`parsed`&&Wn(`received`,JSON.stringify(t.message)),t}}}var W=`$/ahp/connection`,qn=`$/ahp/sessions`,Jn=`$/ahp/agents`,Yn=`$/ahp/defaultDirectory`,G=e=>`$/ahp/channels/${encodeURIComponent(e)}`,Xn=`$/ahp/automationCaps`,Zn=`$/ahp/sessionCounts/unread`,Qn=`$/ahp/sessionCounts/working`,$n=`$/ahp/host`,er=`$/ahp/server`,tr=`$/ahp/terminals/detached`,K=e=>`$/ahp/titles/${encodeURIComponent(e)}`,nr=e=>`$/ahp/channelErrors/${encodeURIComponent(e)}`,q=ee,rr=`ahp-automations://`,J=`daemon`;function ir(e){return[...e].sort((e,t)=>t.modifiedAt.localeCompare(e.modifiedAt))}var ar=2e3,Y,X,Z=new Map,or=e=>e instanceof Error?e.message:String(e);async function sr(e){let t=Y,n=X;if(t!==void 0&&n!==void 0)try{let r=await t.subscribe(J,e);if(!Z.has(e))return;r.snapshot!==void 0&&(Q.delete(G(e)),n.set(G(e),r.snapshot.state)),n.set(nr(e),null)}catch(t){n.set(nr(e),or(t))}}function cr(e,t){let n=Z.get(e);n===void 0?(Z.set(e,{count:1,reducer:t}),Y?.host(J)?.state.status===`connected`&&sr(e)):(n.count+=1,clearTimeout(n.release),delete n.release);let r=!1;return()=>{if(r)return;r=!0;let t=Z.get(e);t!==void 0&&(--t.count,!(t.count>0||e===q)&&(t.release=setTimeout(()=>{Z.get(e)!==t||t.count>0||(Z.delete(e),Y?.unsubscribe(J,e).catch(()=>void 0))},ar)))}}async function lr(e){Z.has(e)&&await sr(e)}async function ur(){let e=X;if(e===void 0)return;let t=await hr(`listSessions`,{channel:q});e.set(qn,ir(t.items));for(let n of t.items)e.set(K(n.resource),n.title===``?`Untitled`:n.title)}async function dr(e){let t=Y;if(t===void 0)throw Error(`Not connected to the daemon.`);let n=await t.subscribe(J,e);return Z.has(e)||t.unsubscribe(J,e).catch(()=>void 0),n.snapshot?.state}async function fr(e){let t=await hr(`resourceRead`,{channel:q,uri:e,encoding:`utf-8`});return{text:String(t.encoding)===`utf-8`?t.data:null,...t.contentType===void 0?{}:{contentType:t.contentType}}}async function pr(e){try{return(await hr(`resourceResolve`,{channel:q,uri:e})).type}catch{return null}}function mr(e,t){Y?.dispatch(J,e,t)}async function hr(e,t){let n=Y?.client(J)?.rawClient();if(n===void 0)throw Error(`Not connected to the daemon.`);return n.request(e,t)}function gr(e,t,n){e.get(t)!==n&&e.set(t,n)}function _r(e,t){let n=ir(t.aggregatedSessions().map(e=>e.summary));e.set(qn,n);for(let t of n)gr(e,K(t.resource),t.title===``?`Untitled`:t.title);let r=gn(n.map(e=>e.status));gr(e,Zn,r.unread),gr(e,Qn,r.working);let i=t.host(J);e.set(Jn,i?.agents??[]),e.set(Yn,i?.defaultDirectory??null),e.set(Xn,i?.automations??null);for(let t of i?.terminals??[])gr(e,K(t.resource),t.title===``?`Terminal`:t.title);e.set($n,i===void 0?null:{label:i.label,clientId:i.clientId,protocolVersion:i.protocolVersion,serverSeq:i.serverSeq,connectedAt:i.lastConnectedAt,activeSessions:i.activeSessions,terminals:i.terminals??[],subscriptions:i.subscriptions.length})}function vr(e){e.status!==`connected`&&Gn(),e.status===`failed`?B({scope:`connection`,level:`error`,text:`failed: ${e.error.message}`}):e.status===`reconnecting`?B({scope:`connection`,level:`warn`,text:`reconnecting (attempt ${e.attempt})`}):B({scope:`connection`,level:`info`,text:e.status})}async function yr(e,t){let n=0;for await(let r of t.hostEvents()){if(r.type===`stateChanged`){let t=r.state;vr(t),e.set(W,{status:t.status,error:t.status===`failed`?t.error.message:r.lastError?.message??null,generation:n,...t.status===`reconnecting`?{attempt:t.attempt}:{}})}if(r.type===`connected`){n=r.generation,e.set(W,{status:`connected`,error:null,generation:n}),_r(e,t);for(let e of Z.keys())sr(e)}}}var Q=new Map,$=!1,br;function xr(e,t){if(br=void 0,X===e){for(let[t,n]of Q)e.set(t,n);Q.clear(),$&&($=!1,_r(e,t))}}function Sr(e,t){br===void 0&&(br=document.hidden?window.setTimeout(()=>xr(e,t),100):window.requestAnimationFrame(()=>xr(e,t)))}async function Cr(e,t){for await(let n of t.events()){let r=n.event;if(r.type===`sessionAdded`||r.type===`sessionRemoved`||r.type===`sessionSummaryChanged`){$=!0,Sr(e,t);continue}if(r.type!==`action`)continue;let{channel:i,action:a}=r.params;i===q&&($=!0,Sr(e,t));let o=Z.get(i);if(o===void 0)continue;let s=G(i),c=Q.has(s)?Q.get(s):e.get(s);if(c!==void 0)try{Q.set(s,o.reducer(c,a)),Sr(e,t)}catch{}}}async function wr(e,t){try{await t.addHost({id:J,label:window.location.host,transportFactory:async()=>nn(Zt(Kn(await Qe.connect(an(nt()?null:et(),window.location,!1)))),t=>e.set(er,t))})}catch(t){e.set(W,{status:`failed`,error:or(t),generation:0})}}async function Tr(){let e=Y,t=X;if(e!==void 0&&t!==void 0){if(e.host(J)===void 0){await wr(t,e);return}t.set(W,{...t.get(W),status:`connecting`}),await e.reconnectHost(J).catch(()=>void 0)}}function Er(){if(document.visibilityState!==`visible`)return;let e=Y?.host(J)?.state.status;(e===void 0||e===`reconnecting`||e===`failed`||e===`disconnected`)&&Tr()}var Dr={namespace:`ahp`,load:`eager`,provider:{async load(e){let t=new Me;Y=t,X=e,e.set(W,{status:`connecting`,error:null,generation:0}),yr(e,t),Cr(e,t),window.addEventListener(`online`,Er),document.addEventListener(`visibilitychange`,Er),await wr(e,t)},async unload(e){window.removeEventListener(`online`,Er),document.removeEventListener(`visibilitychange`,Er);let t=Y;Y=void 0,X=void 0;for(let e of Z.values())clearTimeout(e.release);Z.clear(),Q.clear(),$=!1,e.clearNamespace(`ahp`),await t?.shutdown()}}};export{An as A,$t as B,ur as C,vn as D,yn as E,mn as F,Ze as G,rt as H,hn as I,Ie as J,Xe as K,dn as L,Fn as M,Mn as N,En as O,kn as P,pn as R,lr as S,K as T,et as U,Gt as V,tt as W,be as Y,cr as _,tr as a,fr as b,qn as c,rr as d,q as f,mr as g,G as h,Yn as i,Pn as j,Nn as k,Zn as l,nr as m,Xn as n,$n as o,Dr as p,qe as q,W as r,er as s,Jn as t,Qn as u,pr as v,hr as w,Tr as x,dr as y,fn as z};
@@ -1,3 +0,0 @@
1
- function e(e){return e===``?[]:(e.endsWith(`
2
- `)?e.slice(0,-1):e).split(`
3
- `)}function t(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function n(e){if(e.length===0)return[];let t=[],n=Array(e.length).fill(-1);for(let r=0;r<e.length;r+=1){let i=e[r],a=0,o=t.length;for(;a<o;){let n=a+o>>1;e[t[n]]<i?a=n+1:o=n}n[r]=a>0?t[a-1]:-1,t[a]=r}let r=[],i=t.length>0?t[t.length-1]:-1;for(;i>=0;)r.push(i),i=n[i];return r.reverse()}function r(e,t){let n=new Map;for(let t of e)n.set(t,(n.get(t)??0)+1);let r=new Map;for(let e of t)r.set(e,(r.get(e)??0)+1);let i=new Map;t.forEach((e,t)=>{n.get(e)===1&&r.get(e)===1&&i.set(e,t)});let a=[];return e.forEach((e,t)=>{let n=i.get(e);n!==void 0&&a.push({a:t,b:n})}),a}function i(e,t,n,r){let i=[];return e.forEach((e,t)=>i.push({kind:`del`,before:n+t+1,after:null,text:e})),t.forEach((e,t)=>i.push({kind:`add`,before:null,after:r+t+1,text:e})),i}function a(e,o,s,c,l){if(e.length===0&&o.length===0)return[];if(t(e,o))return e.map((e,t)=>({kind:`context`,before:s+t+1,after:c+t+1,text:e}));if(e.length===0||o.length===0||l>=24)return i(e,o,s,c);let u=r(e,o);if(u.length===0)return i(e,o,s,c);let d=n(u.map(e=>e.b)).map(e=>u[e]);if(d.length===0)return i(e,o,s,c);let f=[],p=0,m=0;for(let t of d)f.push(...a(e.slice(p,t.a),o.slice(m,t.b),s+p,c+m,l+1)),f.push({kind:`context`,before:s+t.a+1,after:c+t.b+1,text:e[t.a]}),p=t.a+1,m=t.b+1;return f.push(...a(e.slice(p),o.slice(m),s+p,c+m,l+1)),f}function o(t,n,r=3){let i=a(e(t),e(n),0,0,0),o=i.map((e,t)=>e.kind===`context`?-1:t).filter(e=>e>=0);if(o.length===0)return[];let s=[];for(let e of o){let t=s[s.length-1];t!==void 0&&e-t.to<=r*2?t.to=e:s.push({from:e,to:e})}return s.map(e=>{let t=Math.max(0,e.from-r),n=Math.min(i.length-1,e.to+r),a=i.slice(t,n+1),o=a[0],s=o.before??o.after??1,c=o.after??o.before??1;return{beforeStart:a.some(e=>e.before!==null)?s:0,beforeCount:a.filter(e=>e.kind!==`add`).length,afterStart:a.some(e=>e.after!==null)?c:0,afterCount:a.filter(e=>e.kind!==`del`).length,lines:a}})}function s(e){return`@@ -${e.beforeCount===1?`${e.beforeStart}`:`${e.beforeStart},${e.beforeCount}`} +${e.afterCount===1?`${e.afterStart}`:`${e.afterStart},${e.afterCount}`} @@`}function c(e){let t=0,n=0;for(let r of e)for(let e of r.lines)e.kind===`add`?t+=1:e.kind===`del`&&(n+=1);return{added:t,removed:n}}export{e as i,o as n,s as r,c as t};
@@ -1 +0,0 @@
1
- var e=e=>`${e}︎`,t={sessions:e(`💬`),automations:e(`⏰`),agents:e(`🤖`),host:e(`🖥`),settings:e(`⚙`),file:e(`📄`),markdown:e(`📝`),diff:`Δ`,log:`☰`,terminal:`❯`,reload:`↻`,run:e(`▶`),pause:e(`⏸`),trash:e(`🗑`),clear:`⊘`,close:`✕`,copy:`⧉`,more:`⋯`,archived:`▤`,group:`☷`,folder:e(`📁`),attach:e(`📎`),check:`✓`,cross:`✕`,error:e(`✖`),warning:e(`⚠`),info:e(`ℹ`),pending:`◌`,running:`●`,waiting:`◐`,caretRight:`▸`,caretDown:`▾`,read:`≡`,search:`⌕`,edit:`✎`,subagent:`◈`,web:`⊕`,dot:`•`,thinking:`∴`,panelLeft:e(`◧`),panelBottom:e(`⬓`),panelRight:e(`◨`),layoutTabs:`▭`,layoutGroups:`⊞`,layoutSplit:`⊟`,layoutSpatial:`◇`,layoutStack:`☰`,layoutSingle:`□`};export{t};