@ahpd/web 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/dist/app/assets/{ActivityBarItem-DNjVAT_E.js → ActivityBarItem-ai2cgVXn.js} +1 -1
  2. package/dist/app/assets/{AudioPage-CTBMdEWh.js → AudioPage-g-XDUEDw.js} +1 -1
  3. package/dist/app/assets/Bood-Dg-XtOTh.js +1 -0
  4. package/dist/app/assets/BotLayer-DBe4Fyhe.js +1 -0
  5. package/dist/app/assets/CommandPalette-G86xI_6j.js +1 -0
  6. package/dist/app/assets/Composer-DYocj0Ot.js +2 -0
  7. package/dist/app/assets/{ContextMenu-DYnWIBAF.js → ContextMenu-DlF_3KO_.js} +1 -1
  8. package/dist/app/assets/{CopyButton-Dqp4FT7R.js → CopyButton-BSesWpVW.js} +1 -1
  9. package/dist/app/assets/{DataTable-Di749duh.js → DataTable-BwoG_VY8.js} +1 -1
  10. package/dist/app/assets/Details-CH_RhTnb.js +1 -0
  11. package/dist/app/assets/DiffPage-BWZV83j-.js +3 -0
  12. package/dist/app/assets/Edit-C2ayFdz3.js +1 -0
  13. package/dist/app/assets/Edit-nBofGkbp.js +1 -0
  14. package/dist/app/assets/Explorer-8HHRQU3j.js +1 -0
  15. package/dist/app/assets/Explorer-B4eWCDt-.js +1 -0
  16. package/dist/app/assets/Explorer-CcJsHUFk.js +1 -0
  17. package/dist/app/assets/Explorer-D4cvjXRf.js +1 -0
  18. package/dist/app/assets/Explorer-D5NpZ_El.js +1 -0
  19. package/dist/app/assets/Explorer-D5UOVCR4.js +1 -0
  20. package/dist/app/assets/Explorer-Dbqg4t3H.js +1 -0
  21. package/dist/app/assets/Explorer-Dg4dz1Y8.js +1 -0
  22. package/dist/app/assets/Explorer-Dy6T9Nil.js +1 -0
  23. package/dist/app/assets/Explorer-DzRNgpV9.js +1 -0
  24. package/dist/app/assets/ExplorerList-DU80dY_f.js +1 -0
  25. package/dist/app/assets/Field-jnYjqqvV.js +1 -0
  26. package/dist/app/assets/FilePage-Cqa5Gu-X.js +1 -0
  27. package/dist/app/assets/{HeaderAction-Vq-h0k1X.js → HeaderAction-Bs-AE__U.js} +1 -1
  28. package/dist/app/assets/HostLines-CtIqw3A0.js +1 -0
  29. package/dist/app/assets/HostSwitcher-CBjT2TTb.js +1 -0
  30. package/dist/app/assets/{ImagePage-iB_X7JK-.js → ImagePage-C0fdIV7s.js} +1 -1
  31. package/dist/app/assets/Info-DPV0HZOg.js +1 -0
  32. package/dist/app/assets/LogPage-C3fGac0t.js +1 -0
  33. package/dist/app/assets/LoginForm-DxyP1mZO.js +1 -0
  34. package/dist/app/assets/MarkdownPage-qhogl5sV.js +1 -0
  35. package/dist/app/assets/NamedPage-CoZEwEtx.js +1 -0
  36. package/dist/app/assets/New-BiFpU6ut.js +4 -0
  37. package/dist/app/assets/New-GW4BjzMj.js +1 -0
  38. package/dist/app/assets/OpenEditors-DN3NPzWo.js +1 -0
  39. package/dist/app/assets/Page-1jvuUZH2.js +1 -0
  40. package/dist/app/assets/Page-B1rQUqL-.js +1 -0
  41. package/dist/app/assets/Page-By2cWeM8.js +3 -0
  42. package/dist/app/assets/Page-DKXwLUAx.css +1 -0
  43. package/dist/app/assets/Page-JyFk5XMA.js +1 -0
  44. package/dist/app/assets/Page-fKKaK_Dn.js +1 -0
  45. package/dist/app/assets/PoolPage-cZ6yGgGG.js +1 -0
  46. package/dist/app/assets/PortaLock-DD-lS5R3.js +2 -0
  47. package/dist/app/assets/RolePage-C4v5v12n.js +3 -0
  48. package/dist/app/assets/{Settings-D7Fa-31J.js → Settings-CAzrumeA.js} +1 -1
  49. package/dist/app/assets/SigillumGate-CXCvctfp.js +1 -0
  50. package/dist/app/assets/{SingleLayout-DrZzqh9e.js → SingleLayout-Bi4nK6CY.js} +1 -1
  51. package/dist/app/assets/{SpatialLayout-DZfRmqF0.js → SpatialLayout-QbjNYiGj.js} +1 -1
  52. package/dist/app/assets/{SplitLayout-Bytjyrrj.js → SplitLayout-tQayoihg.js} +1 -1
  53. package/dist/app/assets/{StackLayout-BCyRY0nG.js → StackLayout-B0qUSU7d.js} +1 -1
  54. package/dist/app/assets/Start-NxBne1u6.js +1 -0
  55. package/dist/app/assets/{TabLayout-Czi2A6i3.js → TabLayout-B_pbKMRi.js} +1 -1
  56. package/dist/app/assets/{TabPanelLayout-B_7L0Dyp.js → TabPanelLayout-DKamepPL.js} +1 -1
  57. package/dist/app/assets/TerminalPage-AG2B5hHZ.js +18 -0
  58. package/dist/app/assets/ThemeModeToggle-DmEp0Qr8.js +1 -0
  59. package/dist/app/assets/ThemePicker-Bj_ObpXS.js +1 -0
  60. package/dist/app/assets/{Tree-BvNPcfhW.js → Tree-DoJ8zO-u.js} +1 -1
  61. package/dist/app/assets/UserPage-C0Vk5NUV.js +1 -0
  62. package/dist/app/assets/VideoPage-CKx-gxgb.js +1 -0
  63. package/dist/app/assets/actions-CFnmwNqb.js +1 -0
  64. package/dist/app/assets/actions-CkDFjYZd.js +1 -0
  65. package/dist/app/assets/changeset-FRFDlNj7.js +1 -0
  66. package/dist/app/assets/channel-BWOXaftf.js +3 -0
  67. package/dist/app/assets/{clicks-Doh5a3f9.js → clicks-BeeNCvCP.js} +1 -1
  68. package/dist/app/assets/composer-commands-CzjP_L_C.js +2 -0
  69. package/dist/app/assets/data-DsJQo1Qk.js +3 -0
  70. package/dist/app/assets/drag-CxTqzQcr.js +1 -0
  71. package/dist/app/assets/emojis-B4zHbUyk.js +1 -0
  72. package/dist/app/assets/form-Bw0484oP.js +2 -0
  73. package/dist/app/assets/grouping-BZNQYyEm.js +1 -0
  74. package/dist/app/assets/hosts-A0gEDScb.js +3 -0
  75. package/dist/app/assets/index-DJ3IEy30.css +1 -0
  76. package/dist/app/assets/index-ddqm5vYD.js +19 -0
  77. package/dist/app/assets/locales-DOA2j2AT.js +3 -0
  78. package/dist/app/assets/media-BFQqiLAd.js +1 -0
  79. package/dist/app/assets/notify-B2F6UAgq.js +1 -0
  80. package/dist/app/assets/pick-CEYUa4kK.js +1 -0
  81. package/dist/app/assets/pins-DhjQhJuu.js +1 -0
  82. package/dist/app/assets/save-file-CirO0l-u.js +1 -0
  83. package/dist/app/assets/save-zwMG_vNN.js +1 -0
  84. package/dist/app/assets/sessions-DxQFcZ2M.js +2 -0
  85. package/dist/app/assets/state-DQKzjLgu.js +1 -0
  86. package/dist/app/assets/{terminal-_7S7Eyr-.js → terminal-Ctk6FYnN.js} +1 -1
  87. package/dist/app/assets/text-D6GxOCYM.js +1 -0
  88. package/dist/app/assets/trust-ask-ewG_CvW8.js +1 -0
  89. package/dist/app/assets/viewers--ctbhTPt.js +1 -0
  90. package/dist/app/assets/{words-DF1J9CaQ.js → words-1m-GRHoT.js} +1 -1
  91. package/dist/app/assets/words-D8X2_Vc_.js +1 -0
  92. package/dist/app/index.html +23 -16
  93. package/dist/embed/index.d.ts +17 -4
  94. package/dist/embed/index.js +4 -0
  95. package/package.json +2 -1
  96. package/dist/app/assets/CommandPalette-wYX5XXUP.js +0 -1
  97. package/dist/app/assets/Composer-DHrV5Yeq.js +0 -2
  98. package/dist/app/assets/Details-DD3vmkCl.js +0 -1
  99. package/dist/app/assets/DiffPage-BId8ozv7.js +0 -3
  100. package/dist/app/assets/Edit-jFXpMjZc.js +0 -1
  101. package/dist/app/assets/Explorer-COyfGhcR.js +0 -1
  102. package/dist/app/assets/Explorer-Cau0IyIv.js +0 -1
  103. package/dist/app/assets/Explorer-DV3iMW_H.js +0 -1
  104. package/dist/app/assets/Explorer-Dfcbd81k.js +0 -1
  105. package/dist/app/assets/Explorer-gCfiH4Xy.js +0 -1
  106. package/dist/app/assets/ExplorerList-0duzRsX6.js +0 -1
  107. package/dist/app/assets/FilePage-C2oyHqAU.js +0 -1
  108. package/dist/app/assets/HostSwitcher-CpnK8XaS.js +0 -1
  109. package/dist/app/assets/Info-zs1cf5D4.js +0 -1
  110. package/dist/app/assets/LogPage-BksXBBRH.js +0 -1
  111. package/dist/app/assets/LoginForm-C83NjSZc.js +0 -1
  112. package/dist/app/assets/MarkdownPage-B3Uf-uhF.js +0 -1
  113. package/dist/app/assets/New-DSGbzxwy.js +0 -4
  114. package/dist/app/assets/OpenEditors-FoK0L7cG.js +0 -1
  115. package/dist/app/assets/Page-C__t0LNx.js +0 -1
  116. package/dist/app/assets/Page-D2Aojkph.js +0 -2
  117. package/dist/app/assets/Page-D_hX82GR.js +0 -1
  118. package/dist/app/assets/PortaLock-Q4MlsHWm.js +0 -2
  119. package/dist/app/assets/SigillumGate-B75RU_FM.js +0 -1
  120. package/dist/app/assets/Start-DX8T0ii8.js +0 -1
  121. package/dist/app/assets/TerminalPage-BOIBCy2W.js +0 -18
  122. package/dist/app/assets/ThemeModeToggle-CFpNVcU1.js +0 -1
  123. package/dist/app/assets/ThemePicker-CqnA9Que.js +0 -1
  124. package/dist/app/assets/VideoPage-v3zVSos7.js +0 -1
  125. package/dist/app/assets/actions-CIzLn0YN.js +0 -1
  126. package/dist/app/assets/changeset-IbJWvDqP.js +0 -1
  127. package/dist/app/assets/channel-C6Ss9Aem.js +0 -1
  128. package/dist/app/assets/composer-commands-BOXuqfcP.js +0 -2
  129. package/dist/app/assets/data-DPJ4OTLn.js +0 -2
  130. package/dist/app/assets/drag-ruzgQUFW.js +0 -1
  131. package/dist/app/assets/emojis-DanG-8fr.js +0 -1
  132. package/dist/app/assets/folder-path-CJJ4uFfN.js +0 -1
  133. package/dist/app/assets/grouping-DtiUUpdw.js +0 -1
  134. package/dist/app/assets/index-BiJaGB50.css +0 -1
  135. package/dist/app/assets/index-xynK_AEL.js +0 -14
  136. package/dist/app/assets/locales-Dnk_Y338.js +0 -1
  137. package/dist/app/assets/media-Da9OmSvb.js +0 -1
  138. package/dist/app/assets/notify-BmjJL_fx.js +0 -1
  139. package/dist/app/assets/sessions-CLjdYeF3.js +0 -2
  140. package/dist/app/assets/state-CKNqusrK.js +0 -1
  141. package/dist/app/assets/text-D_lQQGN1.js +0 -1
  142. package/dist/app/assets/viewers-Vk4T9IkZ.js +0 -1
  143. package/dist/app/assets/words-T8-D0K4W.js +0 -1
  144. /package/dist/app/{ahpw.svg → assets/ahpw-FhxegLNr.svg} +0 -0
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{n as t,t as n}from"./useStore-BQkzWMs-.js";import{t as r}from"./useI18n-T3BwAm0z.js";import{Ht as i}from"./index-ddqm5vYD.js";var a=e(),o=[`light`,`dark`,`system`],s={light:`☀︎`,dark:`☾︎`,system:`◐︎`},c={light:`Light`,dark:`Dark`,system:`Follow system`};function l({modes:e=o,display:l=`icon`,className:u,style:d}){let{t:f}=r(),p=e=>f(`theme/mode/${e}`,c[e]),m=n(`$/ui/theme/mode`)??`system`,h=t(),g=e[(e.indexOf(m)+1)%e.length]??e[0];return(0,a.jsxs)(`button`,{type:`button`,className:[`oo-theme-mode-toggle`,u].filter(Boolean).join(` `),style:d,"data-mode":m,title:f(`theme/mode/next`,{mode:p(m),next:p(g),fallback:`{mode}, click for {next}`}),"aria-label":f(`theme/mode/label`,{mode:p(m),fallback:`Theme mode: {mode}`}),onClick:()=>h(i,g),children:[l===`text`?null:(0,a.jsx)(`span`,{"aria-hidden":`true`,children:s[m]}),l===`icon`?null:(0,a.jsx)(`span`,{children:p(m)})]})}export{l as ThemeModeToggle,l as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{n as t,t as n}from"./useStore-BQkzWMs-.js";import{r}from"./styles-yrzHRgom.js";import{t as i}from"./useI18n-T3BwAm0z.js";import{Vt as a}from"./index-ddqm5vYD.js";var o=e();function s({themes:e,label:s,compact:c=!1,className:l,style:u}){let{t:d}=i(),f=s??d(`theme/label`,`Theme`),p=n(`$/ui/theme/id`)??`default`,m=t(),h=r(),g=e?e.map(e=>h.find(t=>t.id===e)).filter(e=>e!==void 0):h;return g.length<2?null:(0,o.jsxs)(`label`,{className:[`oo-theme-picker`,l].filter(Boolean).join(` `),style:u,title:f,children:[c?null:(0,o.jsx)(`span`,{className:`oo-theme-picker__label`,children:f}),(0,o.jsx)(`select`,{className:`oo-theme-picker__select`,value:p,"aria-label":f,onChange:e=>m(a,e.currentTarget.value),children:g.map(e=>(0,o.jsx)(`option`,{value:e.id,children:e.label},e.id))})]})}export{s as ThemePicker,s as default};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{r as n}from"./colors-BieSUSt7.js";import{t as r}from"./useI18n-T3BwAm0z.js";import{t as i}from"./ContextMenu-DYnWIBAF.js";var a=t(),o=e();function s(e,t,n=0,r=null,i=[]){for(let a of e){let e=a.children!==void 0,o=e&&t.has(a.key);i.push({node:a,depth:n,hasChildren:e,expanded:o,parentKey:r}),o&&a.children&&s(a.children,t,n+1,a.key,i)}return i}function c({nodes:e,title:t,toolbar:n,selectedKey:c,onSelect:d,onActivate:f,expanded:p,defaultExpanded:m,onExpandedChange:h,renderItem:g,contextMenuSlot:_,contextFor:v,contextDataContext:y,contextExtraItems:b,onDragStart:x,onDragOver:S,onDragEnd:C,onDrop:w,onCopy:T,onPaste:E,emptyState:D,className:O,style:k}){let{t:A}=r(),[j,M]=(0,a.useState)(()=>new Set(m??[])),N=p??j,P=(0,a.useCallback)(e=>{h&&h(e),p===void 0&&M(e)},[p,h]),F=(0,a.useMemo)(()=>s(e,N),[e,N]),[I,L]=(0,a.useState)(null),[R,z]=(0,a.useState)(null);function B(e,t){S?.(e,t),t.dropAccepting&&z(t.key)}function V(e,t){e.currentTarget.contains(e.relatedTarget)||z(e=>e===t.key?null:e)}function H(e,t){z(null),w?.(e,t)}let U=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(!c||!U.current)return;let e=U.current.querySelector(`[data-key="${u(c)}"]`);e&&e.scrollIntoView({block:`nearest`})},[c]);function W(e){let t=new Set(N);t.has(e)?t.delete(e):t.add(e),P(t)}let G=c?F.findIndex(e=>e.node.key===c):-1;function K(e){if(F.length===0)return;let t=G>=0?G:0,n=F[t];switch(e.key){case`ArrowDown`:{e.preventDefault();let n=F[Math.min(F.length-1,t+1)];n&&d?.(n.node);return}case`ArrowUp`:{e.preventDefault();let n=F[Math.max(0,t-1)];n&&d?.(n.node);return}case`ArrowRight`:if(e.preventDefault(),!n)return;if(n.hasChildren&&!n.expanded)W(n.node.key);else if(n.hasChildren&&n.expanded){let e=F[t+1];e&&d?.(e.node)}return;case`ArrowLeft`:if(e.preventDefault(),!n)return;if(n.hasChildren&&n.expanded)W(n.node.key);else if(n.parentKey){let e=F.find(e=>e.node.key===n.parentKey);e&&d?.(e.node)}return;case`Enter`:case` `:if(e.preventDefault(),!n)return;n.hasChildren?W(n.node.key):f?.(n.node);return}}function q(e,t){_&&(e.preventDefault(),e.stopPropagation(),d?.(t),L({x:e.clientX,y:e.clientY,node:t}))}function J(e){let t=c?F.find(e=>e.node.key===c)?.node??null:null;T?.(e,t)}function Y(e){let t=c?F.find(e=>e.node.key===c)?.node??null:null;E?.(e,t)}return(0,o.jsxs)(`div`,{ref:U,role:`tree`,tabIndex:0,className:[`oo-tree`,O].filter(Boolean).join(` `),style:k,onKeyDown:K,onCopy:T?J:void 0,onPaste:E?Y:void 0,onDragEnd:()=>z(null),children:[t||n?(0,o.jsxs)(`header`,{className:`oo-tree__header`,children:[t?(0,o.jsx)(`h2`,{className:`oo-tree__title`,children:t}):null,n]}):null,F.length===0?D==null?null:(0,o.jsx)(`div`,{className:`oo-tree__empty`,children:D}):(0,o.jsx)(`div`,{className:`oo-tree__rows`,role:`presentation`,children:F.map(e=>{let{node:t,depth:n,hasChildren:r,expanded:i}=e,a=t.key===c;return(0,o.jsxs)(`div`,{role:`treeitem`,"aria-level":n+1,"aria-expanded":r?i:void 0,"aria-selected":a,"data-key":t.key,"data-selected":a?`true`:void 0,"data-drag-over":t.key===R?`true`:void 0,tabIndex:-1,draggable:t.draggable??!1,className:`oo-tree__row ${t.draggable?`oo-draggable`:``}`,style:{paddingLeft:n*14+6},onClick:()=>d?.(t),onDoubleClick:()=>{r?W(t.key):f?.(t)},onContextMenu:e=>q(e,t),onDragStart:x?e=>x(e,t):void 0,onDragOver:S?e=>B(e,t):void 0,onDragLeave:S?e=>V(e,t):void 0,onDragEnd:C?e=>C(e,t):void 0,onDrop:w?e=>H(e,t):void 0,children:[r?(0,o.jsx)(`button`,{type:`button`,"aria-label":i?A(`tree/collapse`,`Collapse`):A(`tree/expand`,`Expand`),className:`oo-tree__twisty`,"data-expanded":i?`true`:void 0,onClick:e=>{e.stopPropagation(),W(t.key)},children:`▸`}):(0,o.jsx)(`span`,{className:`oo-tree__twisty oo-tree__twisty--leaf`}),g?g(t,{selected:a,expanded:i,depth:n}):(0,o.jsx)(l,{node:t})]},t.key)})}),I&&_?(0,o.jsx)(i,{x:I.x,y:I.y,onClose:()=>L(null),spec:{query:{slot:_},extraItems:b?b(I.node):void 0,footerHints:!0},context:v?v(I.node):void 0,dataContext:y}):null]})}function l({node:e}){let t=e.color?{"--oo-color":n(e.color)}:void 0;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`span`,{className:`oo-icon oo-tree__icon`,style:t,children:e.icon??`·`}),(0,o.jsx)(`span`,{className:`oo-tree__label`,children:e.label}),e.trailing?(0,o.jsx)(`span`,{className:`oo-tree__trailing`,children:e.trailing}):null]})}function u(e){return e.replace(/(["\\\]])/g,`\\$1`)}export{c as t};
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{r as n}from"./colors-BieSUSt7.js";import{t as r}from"./useI18n-T3BwAm0z.js";import{t as i}from"./ContextMenu-DlF_3KO_.js";var a=t(),o=e();function s(e,t,n=0,r=null,i=[]){for(let a of e){let e=a.children!==void 0,o=e&&t.has(a.key);i.push({node:a,depth:n,hasChildren:e,expanded:o,parentKey:r}),o&&a.children&&s(a.children,t,n+1,a.key,i)}return i}function c({nodes:e,title:t,toolbar:n,selectedKey:c,onSelect:d,onActivate:f,expanded:p,defaultExpanded:m,onExpandedChange:h,renderItem:g,contextMenuSlot:_,contextFor:v,contextDataContext:y,contextExtraItems:b,onDragStart:x,onDragOver:S,onDragEnd:C,onDrop:w,onCopy:T,onPaste:E,emptyState:D,className:O,style:k}){let{t:A}=r(),[j,M]=(0,a.useState)(()=>new Set(m??[])),N=p??j,P=(0,a.useCallback)(e=>{h&&h(e),p===void 0&&M(e)},[p,h]),F=(0,a.useMemo)(()=>s(e,N),[e,N]),[I,L]=(0,a.useState)(null),[R,z]=(0,a.useState)(null);function B(e,t){S?.(e,t),t.dropAccepting&&z(t.key)}function V(e,t){e.currentTarget.contains(e.relatedTarget)||z(e=>e===t.key?null:e)}function H(e,t){z(null),w?.(e,t)}let U=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(!c||!U.current)return;let e=U.current.querySelector(`[data-key="${u(c)}"]`);e&&e.scrollIntoView({block:`nearest`})},[c]);function W(e){let t=new Set(N);t.has(e)?t.delete(e):t.add(e),P(t)}let G=c?F.findIndex(e=>e.node.key===c):-1;function K(e){if(F.length===0)return;let t=G>=0?G:0,n=F[t];switch(e.key){case`ArrowDown`:{e.preventDefault();let n=F[Math.min(F.length-1,t+1)];n&&d?.(n.node);return}case`ArrowUp`:{e.preventDefault();let n=F[Math.max(0,t-1)];n&&d?.(n.node);return}case`ArrowRight`:if(e.preventDefault(),!n)return;if(n.hasChildren&&!n.expanded)W(n.node.key);else if(n.hasChildren&&n.expanded){let e=F[t+1];e&&d?.(e.node)}return;case`ArrowLeft`:if(e.preventDefault(),!n)return;if(n.hasChildren&&n.expanded)W(n.node.key);else if(n.parentKey){let e=F.find(e=>e.node.key===n.parentKey);e&&d?.(e.node)}return;case`Enter`:case` `:if(e.preventDefault(),!n)return;n.hasChildren?W(n.node.key):f?.(n.node);return}}function q(e,t){_&&(e.preventDefault(),e.stopPropagation(),d?.(t),L({x:e.clientX,y:e.clientY,node:t}))}function J(e){let t=c?F.find(e=>e.node.key===c)?.node??null:null;T?.(e,t)}function Y(e){let t=c?F.find(e=>e.node.key===c)?.node??null:null;E?.(e,t)}return(0,o.jsxs)(`div`,{ref:U,role:`tree`,tabIndex:0,className:[`oo-tree`,O].filter(Boolean).join(` `),style:k,onKeyDown:K,onCopy:T?J:void 0,onPaste:E?Y:void 0,onDragEnd:()=>z(null),children:[t||n?(0,o.jsxs)(`header`,{className:`oo-tree__header`,children:[t?(0,o.jsx)(`h2`,{className:`oo-tree__title`,children:t}):null,n]}):null,F.length===0?D==null?null:(0,o.jsx)(`div`,{className:`oo-tree__empty`,children:D}):(0,o.jsx)(`div`,{className:`oo-tree__rows`,role:`presentation`,children:F.map(e=>{let{node:t,depth:n,hasChildren:r,expanded:i}=e,a=t.key===c;return(0,o.jsxs)(`div`,{role:`treeitem`,"aria-level":n+1,"aria-expanded":r?i:void 0,"aria-selected":a,"data-key":t.key,"data-selected":a?`true`:void 0,"data-drag-over":t.key===R?`true`:void 0,tabIndex:-1,draggable:t.draggable??!1,className:`oo-tree__row ${t.draggable?`oo-draggable`:``}`,style:{paddingLeft:n*14+6},onClick:()=>d?.(t),onDoubleClick:()=>{r?W(t.key):f?.(t)},onContextMenu:e=>q(e,t),onDragStart:x?e=>x(e,t):void 0,onDragOver:S?e=>B(e,t):void 0,onDragLeave:S?e=>V(e,t):void 0,onDragEnd:C?e=>C(e,t):void 0,onDrop:w?e=>H(e,t):void 0,children:[r?(0,o.jsx)(`button`,{type:`button`,"aria-label":i?A(`tree/collapse`,`Collapse`):A(`tree/expand`,`Expand`),className:`oo-tree__twisty`,"data-expanded":i?`true`:void 0,onClick:e=>{e.stopPropagation(),W(t.key)},children:`▸`}):(0,o.jsx)(`span`,{className:`oo-tree__twisty oo-tree__twisty--leaf`}),g?g(t,{selected:a,expanded:i,depth:n}):(0,o.jsx)(l,{node:t})]},t.key)})}),I&&_?(0,o.jsx)(i,{x:I.x,y:I.y,onClose:()=>L(null),spec:{query:{slot:_},extraItems:b?b(I.node):void 0,footerHints:!0},context:v?v(I.node):void 0,dataContext:y}):null]})}function l({node:e}){let t=e.color?{"--oo-color":n(e.color)}:void 0;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`span`,{className:`oo-icon oo-tree__icon`,style:t,children:e.icon??`·`}),(0,o.jsx)(`span`,{className:`oo-tree__label`,children:e.label}),e.trailing?(0,o.jsx)(`span`,{className:`oo-tree__trailing`,children:e.trailing}):null]})}function u(e){return e.replace(/(["\\\]])/g,`\\$1`)}export{c as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{t as r}from"./useI18n-T3BwAm0z.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{t as a}from"./Button-_R1oktDz.js";import{J as o,r as s}from"./data-DsJQo1Qk.js";import{o as ee}from"./notify-B2F6UAgq.js";import{t as c}from"./Spinner-CBEPv0eM.js";import{t as l}from"./Text-MPtQvYE-.js";import{A as u,B as d,H as f,I as p,L as m,R as h,V as g,j as _,k as v,z as y}from"./index-ddqm5vYD.js";import{t as b}from"./PageAlert-B8ulCXV4.js";import{t as x}from"./channel-BWOXaftf.js";import{t as S}from"./Field-jnYjqqvV.js";import{t as C}from"./form-Bw0484oP.js";var w=t(),T=e(),E=m(`users`),D=m(`roles`),O=m(`teams`),k=m(`projects`),A=`admin`;function j({host:e,person:t}){let m=i(),{t:j}=r(),M=t===void 0,N=n(s(e).offers)??o,P=x(e,_.users.channel,E),F=x(e,y(N,`roles`)?_.roles.channel:void 0,D),I=x(e,y(N,`teams`)?_.teams.channel:void 0,O),L=x(e,y(N,`projects`)?_.projects.channel:void 0,k),[R,z]=(0,w.useState)(null),[B,V]=(0,w.useState)(!1),[H,U]=(0,w.useState)(null);if(P.error!==null)return(0,T.jsx)(b,{tone:`danger`,title:j(`users/notices/none`),message:P.error});if(P.state===void 0)return(0,T.jsx)(c,{label:j(`users/notices/reading`)});let W=M?void 0:P.state.records.find(e=>e.id===t)?.record;if(!M&&W===void 0)return(0,T.jsx)(b,{tone:`warning`,message:j(`users/user/gone`)});let G={id:t??``,...g(W)},K=R??G,q=e=>z(t=>({...t??G,...e})),J=f(N,`users`),Y=R!==null&&JSON.stringify(R)!==JSON.stringify(G),X=[...new Set([...F.state?.records.map(e=>e.id)??[],...Object.keys(u),...K.roles])].sort(),Z=p(I.state?.records.map(e=>e.id)??[],L.state?.records.map(e=>e.id)??[]).filter(e=>!K.memberships.includes(e)),Q=J&&!B&&(M?C(K.id):Y),$=v(`users`,e,t),te=N.principal===`user:${t??``}`,ne=(e,t)=>q({roles:t?[...K.roles,e]:K.roles.filter(t=>t!==e)}),re=e=>q({memberships:K.memberships.filter(t=>t!==e),...K.primary===e?{primary:``}:{}}),ie=async()=>{if(te&&G.roles.includes(A)&&!K.roles.includes(A)&&!await ee({title:j(`users/user/dropAdminTitle`),body:j(`users/user/dropAdminBody`),confirmLabel:j(`users/user/save`),tone:`danger`}))return;V(!0),U(null);let t=K.id.trim();try{await h(e,N,`users`,t,d(K),M),z(null),M&&(m.surfaces.close($),m.commands.execute(`ahp.openUser`,{host:e,id:t}))}catch(e){U(e instanceof Error?e.message:String(e))}finally{V(!1)}};return(0,T.jsxs)(`div`,{className:`web-page web-form`,children:[(0,T.jsx)(l,{variant:`h2`,text:M?j(`users/commands/newUser`):t}),J?null:(0,T.jsx)(`p`,{className:`web-note`,children:j(`users/notices/readOnly`)}),M?(0,T.jsx)(S,{label:j(`users/user/id`),hint:j(`users/user/idHint`),children:(0,T.jsx)(`input`,{className:`web-field`,value:K.id,autoFocus:!0,onChange:e=>q({id:e.target.value})})}):null,(0,T.jsxs)(`div`,{className:`web-form__field`,role:`group`,"aria-label":j(`users/user/roles`),children:[(0,T.jsx)(`span`,{className:`web-input__label`,children:j(`users/user/roles`)}),X.length===0?(0,T.jsx)(`span`,{className:`web-input__hint`,children:j(`users/user/noRoles`)}):X.map(e=>(0,T.jsxs)(`label`,{className:`web-input__row`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:K.roles.includes(e),disabled:!J,onChange:t=>ne(e,t.target.checked)}),(0,T.jsx)(`span`,{children:e})]},e))]}),(0,T.jsxs)(`div`,{className:`web-form__field`,role:`group`,"aria-label":j(`users/user/memberships`),children:[(0,T.jsx)(`span`,{className:`web-input__label`,children:j(`users/user/memberships`)}),(0,T.jsx)(`div`,{className:`web-people__chips`,children:K.memberships.length===0?(0,T.jsx)(`span`,{className:`web-input__hint`,children:j(`users/user/noMemberships`)}):K.memberships.map(e=>(0,T.jsxs)(`span`,{className:`web-chip`,children:[e,J?(0,T.jsx)(`button`,{type:`button`,className:`web-people__chip-drop`,"aria-label":j(`users/user/dropMembership`,{membership:e}),title:j(`users/user/dropMembership`,{membership:e}),onClick:()=>re(e),children:`×`}):null]},e))}),J&&Z.length>0?(0,T.jsxs)(`select`,{className:`web-field`,value:``,"aria-label":j(`users/user/addMembership`),onChange:e=>{e.target.value!==``&&q({memberships:[...K.memberships,e.target.value]})},children:[(0,T.jsx)(`option`,{value:``,children:j(`users/user/addMembership`)}),Z.map(e=>(0,T.jsx)(`option`,{value:e,children:e},e))]}):null,(0,T.jsx)(`span`,{className:`web-input__hint`,children:j(`users/user/membershipsHint`)})]}),(0,T.jsx)(S,{label:j(`users/user/primary`),hint:j(`users/user/primaryHint`),children:(0,T.jsxs)(`select`,{className:`web-field`,value:K.primary,disabled:!J,onChange:e=>q({primary:e.target.value}),children:[(0,T.jsx)(`option`,{value:``,children:j(`users/user/noPrimary`)}),K.memberships.map(e=>(0,T.jsx)(`option`,{value:e,children:e},e))]})}),(0,T.jsx)(S,{label:j(`users/user/issuer`),hint:j(`users/user/issuerHint`),children:(0,T.jsx)(`input`,{className:`web-field`,value:K.issuer,readOnly:!J,onChange:e=>q({issuer:e.target.value})})}),(0,T.jsx)(S,{label:j(`users/user/rolesFrom`),hint:j(`users/user/rolesFromHint`),children:(0,T.jsx)(`input`,{className:`web-field`,value:K.rolesFrom,readOnly:!J,onChange:e=>q({rolesFrom:e.target.value})})}),(0,T.jsx)(`p`,{className:`web-note`,children:j(`users/user/token`,{id:K.id.trim()===``?`<id>`:K.id.trim()})}),H===null?null:(0,T.jsx)(b,{tone:`danger`,message:H}),J?(0,T.jsxs)(`div`,{className:`web-page__actions`,children:[(0,T.jsx)(a,{label:j(M?`users/user/create`:`users/user/save`),variant:`primary`,disabled:!Q,onClick:()=>void ie()}),M?(0,T.jsx)(a,{label:j(`users/actions/cancel`),onClick:()=>m.surfaces.close($)}):(0,T.jsxs)(T.Fragment,{children:[Y?(0,T.jsx)(a,{label:j(`users/actions/discard`),onClick:()=>z(null)}):null,(0,T.jsx)(a,{label:j(`users/actions/delete`),variant:`danger`,onClick:()=>void m.commands.execute(`ahp.deleteUser`,{host:e,id:t})})]})]}):null]})}export{j as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./media-BFQqiLAd.js";var n=e();function r({host:e,uri:r}){return(0,n.jsx)(t,{host:e,uri:r,children:e=>(0,n.jsx)(`video`,{className:`web-video`,src:e,controls:!0,preload:`metadata`})})}export{r as default};
@@ -0,0 +1 @@
1
+ import{l as e}from"./useI18n-T3BwAm0z.js";import{Y as t}from"./data-DsJQo1Qk.js";import{o as n,r}from"./notify-B2F6UAgq.js";import{it as i,rt as a}from"./index-ddqm5vYD.js";var o=t=>r(e(`computers/actions/failed`),t);async function s(t,r,a,s){(s!==`remove`||await n({title:e(`computers/actions/removeTitle`,{name:a}),body:e(`computers/actions/removeBody`),confirmLabel:e(`computers/actions/remove`),tone:`danger`}))&&await i(t,r,a,s).catch(o)}function c(e,n){let r=e.providers[a];return r!==void 0&&t(r,n)}function l(t,n,r,i,a,o){let l=(e,t,n={})=>({title:e,onSelect:e=>{e.closeMenu(),t()},...n}),u=[l(e(`computers/actions/open`),o)];return a&&c(n,`write`)&&(u.push(i===`running`?l(e(`computers/actions/stop`),()=>void s(t,n,r,`stop`)):l(e(`computers/actions/start`),()=>void s(t,n,r,`start`))),i===`running`&&u.push(l(e(`computers/actions/restart`),()=>void s(t,n,r,`restart`)))),u.push(l(e(`computers/actions/copyName`),()=>void navigator.clipboard?.writeText(r).catch(()=>void 0),{group:`more`})),a&&c(n,`delete`)&&u.push(l(e(`computers/actions/remove`),()=>void s(t,n,r,`remove`),{group:`more`,color:`red`})),u}export{c as n,l as r,s as t};
@@ -0,0 +1 @@
1
+ import{l as e}from"./useI18n-T3BwAm0z.js";import{s as t,t as n,z as r}from"./data-DsJQo1Qk.js";import{o as i,r as a}from"./notify-B2F6UAgq.js";import{Tt as o}from"./index-ddqm5vYD.js";function s(e,i){return t(e).request(`runAutomation`,{channel:n,automation:i.resource,requestId:`manual-${r()}`})}function c(e,r,i){t(e).dispatch(n,{type:`automation/updateRequested`,resource:r.resource,changes:{enabled:i}})}async function l(r,a){await i({title:e(`automations/actions/deleteTitle`,{title:o(a)}),body:e(`automations/actions/deleteBody`),confirmLabel:e(`automations/actions/delete`),tone:`danger`})&&t(r).dispatch(n,{type:`automation/removed`,resource:a.resource})}function u(e,n){t(e).dispatch(n,{type:`automationRun/cancelRequested`})}var d=t=>a(e(`automations/actions/couldNotRun`),t);function f(t,n,r,i){let a=e=>n.operations.map(String).includes(e),o=[{title:e(`automations/actions/open`),onSelect:e=>{e.closeMenu(),r()}}];return a(`run`)&&o.push({title:e(`automations/actions/runNow`),onSelect:e=>{e.closeMenu(),s(t,n).catch(d)}}),a(`update`)&&(o.push({title:e(n.definition.enabled?`automations/actions/turnOff`:`automations/actions/turnOn`),onSelect:e=>{e.closeMenu(),c(t,n,!n.definition.enabled)}}),o.push({title:e(`automations/actions/edit`),onSelect:e=>{e.closeMenu(),i()}})),o.push({title:e(`automations/actions/copyLink`),group:`more`,onSelect:e=>{e.closeMenu(),navigator.clipboard?.writeText(n.resource).catch(()=>void 0)}}),a(`remove`)&&o.push({title:e(`automations/actions/delete`),group:`more`,color:`red`,onSelect:e=>{e.closeMenu(),l(t,n)}}),o}export{c as a,s as i,f as n,l as r,u as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./react-CybPckBe.js";import{l as t}from"./useI18n-T3BwAm0z.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{B as r,I as i,X as a,s as o,st as s}from"./data-DsJQo1Qk.js";import{t as c}from"./emojis-B4zHbUyk.js";import{o as l}from"./notify-B2F6UAgq.js";import{t as u}from"./channel-BWOXaftf.js";var d=e();function f(e){return(e??[]).filter(e=>!e.uriTemplate.includes(`{`)).map(e=>({label:e.label,uri:e.uriTemplate,kind:String(e.changeKind),...e.description===void 0?{}:{description:e.description},review:e.capabilities?.review!==void 0}))}var p=e=>e[0];function m(e){let{before:t,after:n,diff:r}=e.edit,o=n?.uri??t?.uri??e.id,s=i(o),c=s.lastIndexOf(`/`);return{id:e.id,file:o,name:c<0?s:s.slice(c+1),dir:c<0?``:s.slice(0,c),status:t===void 0?`added`:n===void 0?`deleted`:`modified`,...r?.added===void 0?{}:{added:r.added},...r?.removed===void 0?{}:{removed:r.removed},reviewed:e.reviewed===!0,staged:a(e._meta,`staged`)===!0,unstaged:a(e._meta,`unstaged`)===!0,...t?.content.uri===void 0?{}:{before:t.content.uri},...n?.content.uri===void 0?{}:{after:n.content.uri}}}function h(e,t){if(t===null)return e;let n=i(t).replace(/\/+$/,``);return e===n?`.`:e.startsWith(`${n}/`)?e.slice(n.length+1):e}function g(e){return e.status===`added`?!e.staged&&e.unstaged?`U`:`A`:e.status===`deleted`?`D`:`M`}function _(e,n){return(n===`review`?[{key:`unreviewed`,label:t(`changes/groups/unreviewed`),changes:e.filter(e=>!e.reviewed)},{key:`reviewed`,label:t(`changes/groups/reviewed`),changes:e.filter(e=>e.reviewed)}]:n===`staging`?[{key:`staged`,label:t(`changes/groups/staged`),changes:e.filter(e=>e.staged)},{key:`unstaged`,label:t(`changes/groups/changes`),changes:e.filter(e=>!e.staged||e.unstaged)}]:[{key:`all`,label:t(`changes/groups/changes`),changes:[...e]}]).filter(e=>e.changes.length>0)}function v(e,t){let n={path:``,name:``,folders:[],changes:[]};for(let r of e){let e=h(r.dir,t),i=n;for(let t of e===`.`?[]:e.split(`/`).filter(e=>e!==``)){let e=i.path===``?t:`${i.path}/${t}`,n=i.folders.find(t=>t.path===e);n===void 0&&(n={path:e,name:t,folders:[],changes:[]},i.folders.push(n)),i=n}i.changes.push(r)}let r=e=>{let t=e;for(;t.changes.length===0&&t.folders.length===1&&t.folders[0]!==void 0;){let e=t.folders[0];t={...e,name:`${t.name}/${e.name}`}}return{...t,folders:t.folders.map(r)}};return{...n,folders:n.folders.map(r)}}function y(e){return typeof e==`object`&&e?e:{}}function b(e){return typeof e==`string`&&e!==``?e:null}function x(e){let t=y(y(e).content);return{uri:b(t.uri),contentType:b(t.contentType)}}function S(e){if(!e.startsWith(`data:`))return null;let t=e.indexOf(`,`);if(t<0)return null;let n=e.slice(5,t).split(`;`),r=e.slice(t+1);try{let e=n.includes(`base64`)?new TextDecoder().decode(Uint8Array.from(atob(r.replace(/\s+/g,``)),e=>e.charCodeAt(0))):decodeURIComponent(r);return{contentType:n[0]===``?null:n[0]??null,text:e}}catch{return null}}var C={title:``,description:``,branchName:null,baseBranchName:null,repository:null,context:void 0};function w(e){if(y(e).external===!0)return null;let{uri:t,contentType:n}=x(e);if(t===null)return null;let r=S(t);if(r===null||n!==null&&!n.includes(`json`)&&r.contentType?.includes(`json`)!==!0)return null;let i;try{i=JSON.parse(r.text)}catch{return null}let a=y(i),o=b(a.title);return o===null||!(`context`in a)?null:{title:o,description:b(a.description)??b(a.body)??``,branchName:b(a.branchName),baseBranchName:b(a.baseBranchName),repository:b(a.repository),context:a.context}}function T(e){return y(e).external===!0?x(e).uri:null}function E(e,t){return{"vscode.pullRequest":{title:e.title,description:e.description,draft:t,...e.context===void 0?{}:{expectedContext:e.context}}}}function D(e){return{"ahpd.commit":{message:e}}}function O(e){return e.id===`commit`?`commit`:e.id===`create-pr`||e.id===`prepare-pull-request`?`pull-request`:null}var k=(e,t)=>e.scopes.map(String).includes(t),A={add:`+`,remove:`−`,discard:`↶`,check:c.check,trash:c.trash,"git-commit":c.commit,"git-pull-request":c.pullRequest,"git-pull-request-create":c.pullRequest};function j(e){let t=e.icon??``;return t===`git-commit`?`blue`:t.startsWith(`git-pull-request`)?`yellow`:e.confirmation===void 0?null:`red`}var M=e=>A[e.icon??``]??e.label.charAt(0);function N(e,t,n,r,i){e.commands.execute(`ahp.openDiff`,{host:t,file:n.file,...n.before===void 0?{}:{before:n.before},...n.after===void 0?{}:{after:n.after},...r===void 0?{}:{changeset:r,change:n.id,review:i}})}function P(e,t){let i=n(),a=u(e,t,s),[c,f]=(0,d.useState)(null),[p,h]=(0,d.useState)(null);(0,d.useEffect)(()=>{f(null),h(null)},[t]);let g=(0,d.useMemo)(()=>(a.state?.files??[]).map(m),[a.state?.files]),_=a.state?.operations??[],v=async(n,i,a)=>{if(t!==void 0){f(null);try{let s=await o(e).request(`invokeChangesetOperation`,{channel:t,operationId:n.id,...i===void 0?{}:{target:{kind:`resource`,resource:i.file}},...a===void 0?{}:{_meta:a}});return s?.message!==void 0&&f({tone:`info`,text:r(s.message)}),{followUp:s?.followUp}}catch(e){f({tone:`danger`,text:e instanceof Error?e.message:String(e)});return}}},y=t=>{let n=T(t);if(n!==null){window.open(n,`_blank`,`noopener`);return}let r=t?.content?.uri;typeof r==`string`&&!r.startsWith(`data:`)&&i.commands.execute(`ahp.openFile`,{host:e,uri:r})},b=async e=>{let t=_.find(e=>e.id===`create-pr`)??(e.id===`create-pr`?e:null),n=_.find(e=>e.id===`prepare-pull-request`)??(e.id===`prepare-pull-request`?e:null);if(h({kind:`pull-request`,create:t,draft:C,preparing:n!==null}),n===null)return;let r=await v(n);if(r===void 0){h(null);return}let i=w(r.followUp);f(null),h(e=>e?.kind===`pull-request`?{...e,preparing:!1,draft:i??e.draft}:e)};return{state:a.state,error:a.error,files:g,operations:_,said:c,form:p,run:async(e,n)=>{if(t===void 0)return;let i=n===void 0?O(e):null;if(i===`commit`){h({kind:`commit`,operation:e});return}let a=r(e.confirmation);if(a!==``&&!await l({title:a,confirmLabel:e.label,tone:`danger`}))return;if(i===`pull-request`){await b(e);return}let o=await v(e,n);o!==void 0&&y(o.followUp)},commit:e=>{if(p?.kind!==`commit`)return;let{operation:t}=p;h(null),v(t,void 0,D(e)).then(e=>{e!==void 0&&y(e.followUp)})},pullRequest:(e,t)=>{if(p?.kind!==`pull-request`||p.create===null)return;let{create:n}=p;h(null),v(n,void 0,E(e,t)).then(e=>{e!==void 0&&y(e.followUp)})},closeForm:()=>h(null),review:(n,r)=>{t!==void 0&&n.length>0&&o(e).dispatch(t,{type:`changeset/filesReviewChanged`,files:n.map(e=>e.id),reviewed:r})}}}export{P as a,_ as c,f as d,j as i,g as l,N as n,p as o,k as r,v as s,M as t,h as u};
@@ -0,0 +1,3 @@
1
+ import{t as e}from"./react-CybPckBe.js";import{t}from"./useStore-BQkzWMs-.js";import{a as n,o as r,s as i}from"./data-DsJQo1Qk.js";import{m as a}from"./hosts-A0gEDScb.js";var o=e();function s(e,a,s){(0,o.useEffect)(()=>a===void 0?void 0:i(e).follow(a,s),[e,a,s]);let c=t(r(e,a??``)),l=t(n(e,a??``));return{state:a===void 0?void 0:c,error:l??null}}function c(e,t,s){let c=e.join(`
2
+ `);return(0,o.useEffect)(()=>{let e=c===``?[]:c.split(`
3
+ `).map(e=>i(e).follow(t,s));return()=>{for(let t of e)t()}},[c,t,s]),{states:a(e.map(e=>r(e,t))),errors:a(e.map(e=>n(e,t))).map(e=>e??null)}}export{c as n,s as t};
@@ -1 +1 @@
1
- import{x as e}from"./data-DPJ4OTLn.js";function t(e){let t=[];for(let n of e.split(`/`))n!==``&&n!==`.`&&(n===`..`?t.pop():t.push(n));return`${e.startsWith(`/`)?`/`:``}${t.join(`/`)}`}function n(e,n){let r=e.trim();if(r===``||r.startsWith(`#`))return null;let i=/^([a-z][a-z0-9+.-]*):(?!\d)/i.exec(r);if(i!==null&&i[1]?.toLowerCase()!==`file`)return null;let a=r.indexOf(`#`),o=a<0?r:r.slice(0,a),s=a<0?``:r.slice(a+1),c=/^L(\d+)(?:-L?(\d+))?$/i.exec(s),l;try{l=decodeURIComponent(o.replace(/^file:\/\//i,``).replace(/\?.*$/,``))}catch{return null}let u=c===null?/^(.+?):(\d+)(?::\d+)?$/.exec(l):null;if(u!==null&&(l=u[1]??l),l===``)return null;if(!l.startsWith(`/`)){if(n===null)return null;l=`${n.replace(/^file:\/\//i,``).replace(/\/+$/,``)}/${l}`}l=t(l);let d=l.split(`/`).pop()??l;if(d===``)return null;let f=c===null?u===null?null:Number(u[2]):Number(c[1]),p=c===null||c[2]===void 0?null:Number(c[2]);return{uri:`file://${l}`,name:d,line:f,end:p!==null&&f!==null&&p>f?p:null}}function r(e,t){let r=e.trim();if(r.length<2||r.length>240||/[\s"'`<>(){}[\],;=*|$]/.test(r)||r.startsWith(`-`))return null;let i=/^(.*?):(\d+)(?::\d+)?$/.exec(r),a=i===null?r:i[1]??r;return!(a.includes(`/`)||/^[\w.@+-]+\.[\w]+$/.test(a))||/^\d+$/.test(a)||/^[a-z][a-z0-9+.-]*:/i.test(a)||/^\d+(\.\d+)+$/.test(a)?null:n(i===null?a:`${a}#L${i[2]}`,t)}async function i(t,n,r){let i=await e(n.uri);i===`directory`?t.commands.execute(`ahp.revealFolder`,{uri:n.uri}):(i!==null||r===`open`)&&t.commands.execute(`ahp.openFile`,{uri:n.uri,line:n.line,end:n.end})}function a(e,t){return a=>{let o=a.target,s=o.closest(`a`);if(s!==null){let r=s.getAttribute(`href`)??``;if(r.startsWith(`#`))return;a.preventDefault();let o=n(r,t);o===null?/^(https?|mailto):/i.test(r)&&window.open(r,`_blank`,`noopener`):i(e,o,`open`);return}let c=o.closest(`code`);if(c===null||c.closest(`pre`)!==null)return;let l=r(c.textContent??``,t);l!==null&&i(e,l,`skip`)}}export{r as n,n as r,a as t};
1
+ import{s as e}from"./data-DsJQo1Qk.js";function t(e){let t=[];for(let n of e.split(`/`))n!==``&&n!==`.`&&(n===`..`?t.pop():t.push(n));return`${e.startsWith(`/`)?`/`:``}${t.join(`/`)}`}function n(e,n){let r=e.trim();if(r===``||r.startsWith(`#`))return null;let i=/^([a-z][a-z0-9+.-]*):(?!\d)/i.exec(r);if(i!==null&&i[1]?.toLowerCase()!==`file`)return null;let a=r.indexOf(`#`),o=a<0?r:r.slice(0,a),s=a<0?``:r.slice(a+1),c=/^L(\d+)(?:-L?(\d+))?$/i.exec(s),l;try{l=decodeURIComponent(o.replace(/^file:\/\//i,``).replace(/\?.*$/,``))}catch{return null}let u=c===null?/^(.+?):(\d+)(?::\d+)?$/.exec(l):null;if(u!==null&&(l=u[1]??l),l===``)return null;if(!l.startsWith(`/`)){if(n===null)return null;l=`${n.replace(/^file:\/\//i,``).replace(/\/+$/,``)}/${l}`}l=t(l);let d=l.split(`/`).pop()??l;if(d===``)return null;let f=c===null?u===null?null:Number(u[2]):Number(c[1]),p=c===null||c[2]===void 0?null:Number(c[2]);return{uri:`file://${l}`,name:d,line:f,end:p!==null&&f!==null&&p>f?p:null}}function r(e,t){let r=e.trim();if(r.length<2||r.length>240||/[\s"'`<>(){}[\],;=*|$]/.test(r)||r.startsWith(`-`))return null;let i=/^(.*?):(\d+)(?::\d+)?$/.exec(r),a=i===null?r:i[1]??r;return!(a.includes(`/`)||/^[\w.@+-]+\.[\w]+$/.test(a))||/^\d+$/.test(a)||/^[a-z][a-z0-9+.-]*:/i.test(a)||/^\d+(\.\d+)+$/.test(a)?null:n(i===null?a:`${a}#L${i[2]}`,t)}async function i(t,n,r,i){let a=await e(n).kindOfResource(r.uri);a===`directory`?t.commands.execute(`ahp.revealFolder`,{host:n,uri:r.uri}):(a!==null||i===`open`)&&t.commands.execute(`ahp.openFile`,{host:n,uri:r.uri,line:r.line,end:r.end})}function a(e,t,a){return o=>{let s=o.target,c=s.closest(`a`);if(c!==null){let r=c.getAttribute(`href`)??``;if(r.startsWith(`#`))return;o.preventDefault();let s=n(r,a);s===null?/^(https?|mailto):/i.test(r)&&window.open(r,`_blank`,`noopener`):i(e,t,s,`open`);return}let l=s.closest(`code`);if(l===null||l.closest(`pre`)!==null)return;let u=r(l.textContent??``,a);u!==null&&i(e,t,u,`skip`)}}export{r as n,n as r,a as t};
@@ -0,0 +1,2 @@
1
+ import{u as e}from"./useStore-BQkzWMs-.js";import{l as t}from"./useI18n-T3BwAm0z.js";import{a as n}from"./locales-DOA2j2AT.js";import{I as r,r as i}from"./data-DsJQo1Qk.js";import{t as a}from"./emojis-B4zHbUyk.js";import{i as o}from"./ActionList-QwhYPQiB.js";var s=e=>typeof e==`object`&&e?e:{},c=e=>typeof e==`string`?e:void 0;function l(e){let t=``;for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return btoa(t)}function u(e,t,n){return{type:`embeddedResource`,label:e,data:t,contentType:n,displayKind:n.startsWith(`image/`)?`image`:`document`}}function d(e,t){let n=r(e).replace(/\/+$/,``);return{type:`resource`,label:n.slice(n.lastIndexOf(`/`)+1)||n,uri:e,displayKind:t?`directory`:`document`}}function f(e){return{type:`chat`,label:e.title===``?t(`sessions/untitled`):e.title,resource:e.defaultChat}}async function p(e){let t=[],n=[];for(let r of e){if(r.size>5242880){n.push(r.name);continue}try{t.push(u(r.name,l(new Uint8Array(await r.arrayBuffer())),r.type||`application/octet-stream`))}catch{n.push(r.name)}}return{attached:t,refused:n}}async function m(e=globalThis.navigator?.clipboard){if(typeof e?.read!=`function`)return t(`sessions/clipboard/insecure`);let n;try{n=await e.read()}catch{return t(`sessions/clipboard/refused`)}for(let e of n){let n=e.types.find(e=>e.startsWith(`image/`));if(n===void 0)continue;let r=await e.getType(n);return r.size>5242880?t(`sessions/clipboard/tooBig`):new File([r],`clipboard.${n.slice(6).split(`+`)[0]}`,{type:n})}return t(`sessions/clipboard/empty`)}function h(e){let t=s(e);return t.type===`chat`?a.sessions:t.displayKind===`directory`?a.folder:t.type===`embeddedResource`?a.attach:a.file}function g(e,t){let n=s(e);return{...n,_meta:{...s(n._meta),token:t}}}function _(e,t){let n=s(e),r=s(t);return n.type===r.type?typeof n.uri==`string`?n.uri===r.uri:typeof n.resource==`string`?n.resource===r.resource:n.label===r.label&&n.data===r.data:!1}var v=2e5;function y(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(1)} MB`}function b(e){let t=s(e);return t.type===`embeddedResource`&&typeof t.data==`string`}function x(e){let t=s(e),n=c(t.data);if(!b(e)||n===void 0)return null;let r=c(t.contentType)??`application/octet-stream`,i=atob(n),a={label:S(e),meta:`${r} · ${y(i.length)}`};if(r.startsWith(`image/`))return{...a,image:`data:${r};base64,${n}`};if(r.startsWith(`text/`)||/\b(json|xml|javascript|typescript|yaml|x-sh)\b/.test(r)){let e=Uint8Array.from(i.slice(0,v*4),e=>e.charCodeAt(0));return{...a,text:new TextDecoder().decode(e).slice(0,v)}}return a}var S=e=>c(s(e).label)??t(`sessions/attachments/unnamed`);function C(e,t){let n=c(s(e).uri);if(n===void 0)return;let i=r(n),a=t===void 0?void 0:r(t).replace(/\/+$/,``);return a!==void 0&&i.startsWith(`${a}/`)?i.slice(a.length+1):i}function w(e,t){let n=e.slice(0,t),r=n.match(/\r\n|\r|\n/g),i=Math.max(n.lastIndexOf(`
2
+ `),n.lastIndexOf(`\r`))+1;return{line:r===null?0:r.length,character:t-i}}function T(e,t){return t.map(t=>{let n=s(t),{token:r,...i}=s(n._meta),{_meta:a,...o}=n,c={...o};if(Object.keys(i).length>0&&(c._meta=i),typeof r==`string`){delete c.range;let t=e.indexOf(r);t>=0&&(c.range={start:w(e,t),end:w(e,t+r.length)})}return c})}var E=`ahp:input/`,D=`ahp:new/`,O=(e,t)=>`$/ahp/composers/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,k=new Map;function A(e,t){return k.set(e,t),()=>{k.get(e)===t&&k.delete(e)}}var j=e=>e.dataContext===void 0?void 0:k.get(e.dataContext),M=e=>k.get(e);function N(e,t,n){let r=o(e,[`/`,`@`],t);if(r!==null)return{text:`${e.slice(0,r.start)}${n}${e.slice(r.end)}`,caret:r.start+1};let i=e.slice(0,t);if(n===`/`&&i.trim()===``)return{text:`/${e.slice(t)}`,caret:1};let a=i===``||/\s$/.test(i)?``:` `;return{text:`${i}${a}${n}${e.slice(t)}`,caret:i.length+a.length+1}}function P(e,n,r){let i=e=>t=>{t.closeMenu(),e()},o=n.filter(t=>t.resource!==e.session()&&t.defaultChat!==void 0);return[{title:`${a.file} ${t(`sessions/context/files`)}`,description:t(`sessions/context/filesHint`),onSelect:i(()=>e.type(`@`))},{title:`${a.attach} ${t(`sessions/context/upload`)}`,description:t(`sessions/context/uploadHint`),onSelect:i(()=>e.upload())},typeof r==`string`?{title:`${a.image} ${t(`sessions/context/image`)}`,description:r,disabled:!0,onSelect:()=>void 0}:{title:`${a.image} ${t(`sessions/context/image`)}`,description:t(`sessions/context/imageHint`),onSelect:i(()=>void p([r]).then(t=>t.attached.forEach(t=>e.attach(t))))},{title:`${a.sessions} ${t(`sessions/context/sessions`)}`,description:t(o.length===0?`sessions/context/noSessions`:`sessions/context/sessionsHint`),disabled:o.length===0,onSelect:n=>n.pushList({title:t(`sessions/context/sessions`),items:o.map(n=>({title:n.title===``?t(`sessions/untitled`):n.title,onSelect:i(()=>e.attach(f(n)))}))})},{title:`${a.terminal} ${t(`sessions/context/commands`)}`,description:t(`sessions/context/commandsHint`),onSelect:i(()=>e.type(`/`))},...e.changed().map(t=>({title:t.title,description:t.description,group:`changed`,onSelect:i(()=>e.attach(t.attachment))}))]}var F=new Map;function I(e,t){let n=F.get(t.id);n===void 0?F.set(t.id,{count:1,registration:e.commands.register(t)}):n.count+=1;let r=!1;return{dispose(){if(r)return;r=!0;let e=F.get(t.id);e!==void 0&&(--e.count,!(e.count>0)&&(F.delete(t.id),e.registration.dispose()))}}}var L=e=>`/${e.trim().toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``)}`;function R(e){if(e==null)return t(`sessions/values/default`);if(Array.isArray(e))return e.length===0?t(`sessions/values/none`):e.length<=2&&e.every(e=>typeof e==`string`)?e.join(`, `):n(`sessions/values/items`,e.length);if(typeof e==`object`){let n=Object.entries(e).filter(([,e])=>e!==void 0&&!(Array.isArray(e)&&e.length===0));return n.length===0?t(`sessions/values/none`):n.map(([e,t])=>`${e} ${R(t)}`).join(`, `)}return String(e)}function z(e){let{schema:n,value:r}=e,i=r??n.default;if(n.type===`boolean`)return t(i===!0?`sessions/values/on`:`sessions/values/off`);let a=n.enum?.findIndex(e=>e===i)??-1;return a>=0?n.enumLabels?.[a]??String(i):R(i)}var B=e=>e.type===`boolean`||(e.enum?.length??0)>0,V=e=>B(e.schema)||z(e)!==t(`sessions/values/none`),H=e=>`ahp.composer.option.${e}`;function U(e,t){let n=L(t.title||e);return{id:H(e),title:t.title||e,...t.description===void 0?{}:{description:t.description},category:`Settings`,shortcut:n,slots:[E,D],disabled:t=>j(t)?.options().some(t=>t.key===e)!==!0,run:t=>{let r=j(t),i=r?.options().find(t=>t.key===e);if(r===void 0||i===void 0)return;if(i.schema.type===`boolean`){r.setOption(e,!(i.value??i.schema.default??!1)),t.host?.closeMenu();return}let a=i.value??i.schema.default,o=(i.schema.enum??[]).map((t,n)=>({title:i.schema.enumLabels?.[n]??String(t),...i.schema.enumDescriptions?.[n]===void 0?{}:{description:i.schema.enumDescriptions[n]},active:t===a,onSelect:n=>{r.setOption(e,t),n.closeMenu()}}));t.host?.pushList({title:i.schema.title||e,items:o,sentinel:n})}}}function W(t,n){return e(...n.filter(e=>B(e.schema)).map(e=>I(t,U(e.key,e.schema))))}function G(n){return e(I(n,{id:`ahp.composer.model`,title:()=>t(`sessions/commands/model`),description:()=>t(`sessions/commands/modelHint`),category:`Settings`,shortcut:`/model`,slots:[E,D],disabled:e=>(j(e)?.models().length??0)===0,run:e=>{let n=j(e);if(n===void 0)return;let r=n.model(),i=e=>t=>{n.setModel(e),t.closeMenu()};e.host?.pushList({title:t(`sessions/commands/model`),sentinel:`/model`,items:[{title:t(`sessions/commands/agentDefault`),active:r===void 0,onSelect:i(void 0)},...n.models().map(e=>({title:e.name,description:e.id,active:e.id===r,onSelect:i(e.id)}))]})}}),I(n,{id:`ahp.composer.attach`,title:()=>t(`sessions/context/title`),description:()=>t(`sessions/context/hint`),category:`Session`,shortcut:`/attach`,slots:[E,D],run:async e=>{let n=j(e);if(n===void 0)return;let r=await m();e.host?.pushList({title:t(`sessions/context/title`),sentinel:`/attach`,items:P(n,e.store.get(i(n.host()).sessions)??[],r)})}}),I(n,{id:`ahp.composer.stop`,title:()=>t(`sessions/commands/stop`),description:()=>t(`sessions/commands/stopHint`),category:`Session`,shortcut:`/stop`,slots:[E],disabled:e=>j(e)?.running()!==!0,run:e=>{j(e)?.stop(),e.host?.closeMenu()}}),I(n,{id:`ahp.composer.new`,title:()=>t(`sessions/commands/newSession`),description:()=>t(`sessions/commands/newSessionHint`),category:`Session`,shortcut:`/new`,slots:[E],run:e=>{e.host?.closeMenu(),e.scena.commands.execute(`ahp.newSession`)}}))}export{T as C,_ as S,m as _,O as a,x as b,z as c,W as d,V as f,C as g,S as h,M as i,B as l,h as m,D as n,P as o,N as p,A as r,H as s,E as t,G as u,p as v,g as w,d as x,b as y};
@@ -0,0 +1,3 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./trust-ask-ewG_CvW8.js","./jsx-runtime-BguD1OXD.js","./useI18n-T3BwAm0z.js","./react-CybPckBe.js","./notify-B2F6UAgq.js","./useStore-BQkzWMs-.js","./ScenaProvider-6A3TJumQ.js","./mount-context-DZgEFVFG.js","./Button-_R1oktDz.js","./styles-yrzHRgom.js","./_utils-DZVsX11M.js","./Button-CRZ1_3KW.css","./locales-DOA2j2AT.js","./emojis-B4zHbUyk.js","./CommandPalette-G86xI_6j.js","./hosts-A0gEDScb.js","./ActionList-QwhYPQiB.js","./colors-BieSUSt7.js","./ActionList-Bc-jZDaT.css","./terminal-Ctk6FYnN.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./react-CybPckBe.js";import{l as t}from"./useI18n-T3BwAm0z.js";import{t as n}from"./preload-helper-BaNbYf_w.js";var r=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)}},i=class extends Error{constructor(e,t){super(e,t),this.name=`AhpClientError`}},a=class extends i{code;data;constructor(e,t,n){super(`RPC error ${e}: ${t}`),this.name=`RpcError`,this.code=e,this.data=n}},o=class extends i{method;timeoutMs;constructor(e,t){super(`Request "${e}" timed out after ${t}ms`),this.name=`RpcTimeoutError`,this.method=e,this.timeoutMs=t}},s=class extends i{kind;constructor(e,t,n){super(t,n),this.name=`TransportError`,this.kind=e}},c=class extends i{constructor(e=`client shut down`){super(e),this.name=`ClientClosedError`}};function l(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 u(e,t,n){let r=l(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 d(e,t){return e.maxAttempts!==null&&t>e.maxAttempts}function ee(){return{backoff:{kind:`exponential`,initialMs:250,maxMs:3e4,multiplier:2},jitter:.25,maxAttempts:null,resetOnSuccess:!0}}function te(){return ee()}var ne=`ahp-root://`;function re(e){return{id:e.id,label:e.label,clientId:e.clientId??null,initialSubscriptions:e.initialSubscriptions?[...e.initialSubscriptions]:[ne],clientConfig:e.clientConfig??{},transportFactory:e.transportFactory,reconnectPolicy:e.reconnectPolicy??te()}}function f(e,t){return{hostId:e,channel:t.channel,event:t.event}}var p=class extends i{constructor(e,t){super(e,t),this.name=`HostMultiError`}},m=class extends p{hostId;constructor(e){super(`no host registered with id "${e}"`),this.name=`UnknownHostError`,this.hostId=e}},ie=class extends p{hostId;constructor(e){super(`a host with id "${e}" is already registered`),this.name=`DuplicateHostError`,this.hostId=e}},ae=class extends p{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}},oe=class extends p{hostId;constructor(e){super(`host "${e}" runtime is no longer active`),this.name=`HostShutDownError`,this.hostId=e}},se=class extends p{hostId;constructor(e){super(`host "${e}" is not currently connected`),this.name=`HostNotConnectedError`,this.hostId=e}},ce=class extends p{hostId;constructor(e,t,n){super(`client id store error for host "${e}": ${t}`,n),this.name=`ClientIdStoreError`,this.hostId=e}};function le(){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 ue=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 oe(this.hostId);if(this.source.generation!==this.generation)throw new ae(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}},de;(function(e){e.Replay=`replay`,e.Snapshot=`snapshot`})(de||={});var fe;(function(e){e.Base64=`base64`,e.Utf8=`utf-8`})(fe||={});var pe;(function(e){e.Truncate=`truncate`,e.Append=`append`,e.Insert=`insert`})(pe||={});var me;(function(e){e.File=`file`,e.Directory=`directory`,e.Symlink=`symlink`})(me||={});var h;(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`})(h||={});var he=`1.0.0`,ge=Object.freeze([`1.0.0`,`0.9.0`]);h.RootAgentsChanged,h.RootActiveSessionsChanged,h.SessionReady,h.SessionCreationFailed,h.SessionChatAdded,h.SessionChatRemoved,h.SessionChatUpdated,h.SessionChatsReordered,h.SessionDefaultChatChanged,h.SessionTitleChanged,h.SessionServerToolsChanged,h.SessionActiveClientSet,h.SessionActiveClientRemoved,h.SessionWorkingDirectorySet,h.SessionWorkingDirectoryRemoved,h.SessionWorkingDirectoryReplaced,h.SessionInputNeededSet,h.SessionInputNeededRemoved,h.SessionCustomizationsChanged,h.SessionCustomizationToggled,h.SessionCustomizationUpdated,h.SessionCustomizationRemoved,h.SessionMcpServerStateChanged,h.SessionMcpServerStartRequested,h.SessionMcpServerStopRequested,h.SessionMcpServerBackgroundRequested,h.SessionIsReadChanged,h.SessionIsArchivedChanged,h.SessionActivityChanged,h.SessionChangesetsChanged,h.SessionConfigChanged,h.SessionMetaChanged,h.ChatTurnStarted,h.ChatDelta,h.ChatResponsePart,h.ChatToolCallStart,h.ChatToolCallDelta,h.ChatToolCallReady,h.ChatToolCallConfirmed,h.ChatToolCallComplete,h.ChatToolCallResultConfirmed,h.ChatToolCallContentChanged,h.ChatToolCallAuthRequired,h.ChatToolCallAuthResolved,h.ChatTurnComplete,h.ChatTurnCancelled,h.ChatError,h.ChatTurnResume,h.ChatActivityChanged,h.ChatBackgroundWorkSet,h.ChatBackgroundWorkRemoved,h.ChatMovableChanged,h.ChatChangesetsChanged,h.ChatCanvasesChanged,h.CanvasStateChanged,h.ChatWorkingDirectorySet,h.ChatWorkingDirectoryRemoved,h.ChatUsage,h.ChatReasoning,h.ChatPendingMessageSet,h.ChatPendingMessageRemoved,h.ChatQueuedMessagesReordered,h.ChatDraftChanged,h.ChatIsReadChanged,h.ChatIsArchivedChanged,h.ChatInputRequested,h.ChatInputAnswerChanged,h.ChatInputCompleted,h.ChatTruncated,h.ChatTurnsLoaded,h.ChangesetStatusChanged,h.ChangesetFileSet,h.ChangesetFileRemoved,h.ChangesetFilesReviewChanged,h.ChangesetContentChanged,h.ChangesetOperationsChanged,h.ChangesetOperationStatusChanged,h.ChangesetCleared,h.AnnotationsSet,h.AnnotationsUpdated,h.AnnotationsRemoved,h.AnnotationsEntrySet,h.AnnotationsEntryRemoved,h.RootTerminalsChanged,h.RootConfigChanged,h.TerminalData,h.TerminalInput,h.TerminalResized,h.TerminalClaimed,h.TerminalTitleChanged,h.TerminalCwdChanged,h.TerminalExited,h.TerminalCleared,h.TerminalCommandDetectionAvailable,h.TerminalCommandExecuted,h.TerminalCommandFinished,h.ResourceWatchChanged,h.AutomationCreateRequested,h.AutomationUpdateRequested,h.AutomationSet,h.AutomationRemoved,h.AutomationRunLifecycleChanged,h.AutomationRunSessionSet,h.AutomationRunSessionRemoved,h.AutomationRunPrimarySessionChanged,h.AutomationRunCancelRequested;var _e={ParseError:-32700,InvalidRequest:-32600,MethodNotFound:-32601,InvalidParams:-32602,InternalError:-32603},ve={SessionNotFound:-32001,ProviderNotFound:-32002,SessionAlreadyExists:-32003,TurnInProgress:-32004,UnsupportedProtocolVersion:-32005,AuthRequired:-32007,NotFound:-32008,PermissionDenied:-32009,AlreadyExists:-32010,Conflict:-32011};function ye(e){return JSON.stringify(e)}function be(e){try{return JSON.parse(e)}catch(e){throw new s(`protocol`,`invalid JSON: ${e.message}`,{cause:e})}}var xe=3e4,Se=4096;function Ce(){}var we=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 Te(e){return(async(t,n)=>{let r=e[t];if(!r)throw new a(_e.MethodNotFound,`no handler for server method "${t}"`);return r(n)})}var Ee=class{transport;requestTimeoutMs;subscriptionBuffer;pending=new Map;subscriptions=new Map;allEvents=new r;stateQueue=new r;nextRequestId=1;nextClientSeq=1;state={status:`idle`};receiveLoop=null;serverRequestHandler=null;constructor(e,t={}){this.transport=e;let n=t.requestTimeoutMs??xe;this.requestTimeoutMs=n>0?n:0;let r=t.subscriptionBuffer??Se;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?Te(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 t=this.subscriptions.get(e);return t||(t=new r(this.subscriptionBuffer),this.subscriptions.set(e,t)),new we(e,t.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,i)=>{let a={resolve:e=>t(e),reject:i,method:e,timer:null};this.pending.set(n,a),this.requestTimeoutMs>0&&(a.timer=setTimeout(()=>{this.pending.delete(n)&&i(new o(e,this.requestTimeoutMs))},this.requestTimeoutMs)),this.sendMessage(r).catch(e=>{this.pending.delete(n)&&(a.timer&&clearTimeout(a.timer),i(e))})})}notify(e,t){this.assertOpen();let n={jsonrpc:`2.0`,method:e,params:t};this.sendMessage(n).catch(Ce)}isClosed(){return this.state.status===`closing`||this.state.status===`closed`}assertOpen(){if(this.isClosed())throw new c}async sendMessage(e){try{await this.transport.send(e)}catch(e){let t=e instanceof s?e:new s(`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 c: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 s(`closed`,`transport closed`)});return}this.handleFrame(e)}}catch(e){let t=e instanceof s?e:new s(`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=be(e.text);break;case`binary`:t=be(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 a(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(Ce)}catch(t){let n=t instanceof a?t.code:_e.InternalError,r=t instanceof Error?t.message:String(t),i=t instanceof a?t.data:void 0,o={jsonrpc:`2.0`,id:e.id,error:i===void 0?{code:n,message:r}:{code:n,message:r,data:i}};this.sendMessage(o).catch(Ce)}return}let t={jsonrpc:`2.0`,id:e.id,error:{code:_e.MethodNotFound,message:`no handler for server method "${e.method}"`}};this.sendMessage(t).catch(Ce)}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})}};h.RootAgentsChanged,h.RootActiveSessionsChanged,h.RootTerminalsChanged,h.RootConfigChanged,h.SessionReady,h.SessionCreationFailed,h.SessionChatAdded,h.SessionChatRemoved,h.SessionChatUpdated,h.SessionChatsReordered,h.SessionDefaultChatChanged,h.SessionTitleChanged,h.SessionServerToolsChanged,h.SessionActiveClientSet,h.SessionActiveClientRemoved,h.SessionWorkingDirectorySet,h.SessionWorkingDirectoryRemoved,h.SessionWorkingDirectoryReplaced,h.SessionInputNeededSet,h.SessionInputNeededRemoved,h.SessionCustomizationsChanged,h.SessionCustomizationToggled,h.SessionCustomizationUpdated,h.SessionCustomizationRemoved,h.SessionMcpServerStateChanged,h.SessionMcpServerStartRequested,h.SessionMcpServerStopRequested,h.SessionMcpServerBackgroundRequested,h.SessionIsReadChanged,h.SessionIsArchivedChanged,h.SessionActivityChanged,h.SessionChangesetsChanged,h.SessionConfigChanged,h.SessionMetaChanged,h.ChatTurnStarted,h.ChatDelta,h.ChatResponsePart,h.ChatToolCallStart,h.ChatToolCallDelta,h.ChatToolCallReady,h.ChatToolCallConfirmed,h.ChatToolCallComplete,h.ChatToolCallResultConfirmed,h.ChatToolCallContentChanged,h.ChatToolCallAuthRequired,h.ChatToolCallAuthResolved,h.ChatTurnComplete,h.ChatTurnCancelled,h.ChatError,h.ChatTurnResume,h.ChatActivityChanged,h.ChatBackgroundWorkSet,h.ChatBackgroundWorkRemoved,h.ChatMovableChanged,h.ChatChangesetsChanged,h.ChatCanvasesChanged,h.CanvasStateChanged,h.ChatWorkingDirectorySet,h.ChatWorkingDirectoryRemoved,h.ChatUsage,h.ChatReasoning,h.ChatPendingMessageSet,h.ChatPendingMessageRemoved,h.ChatQueuedMessagesReordered,h.ChatDraftChanged,h.ChatIsReadChanged,h.ChatIsArchivedChanged,h.ChatInputRequested,h.ChatInputAnswerChanged,h.ChatInputCompleted,h.ChatTruncated,h.ChatTurnsLoaded,h.ChangesetStatusChanged,h.ChangesetFileSet,h.ChangesetFileRemoved,h.ChangesetFilesReviewChanged,h.ChangesetContentChanged,h.ChangesetOperationsChanged,h.ChangesetOperationStatusChanged,h.ChangesetCleared,h.AnnotationsSet,h.AnnotationsUpdated,h.AnnotationsRemoved,h.AnnotationsEntrySet,h.AnnotationsEntryRemoved,h.TerminalData,h.TerminalInput,h.TerminalResized,h.TerminalClaimed,h.TerminalTitleChanged,h.TerminalCwdChanged,h.TerminalExited,h.TerminalCleared,h.TerminalCommandDetectionAvailable,h.TerminalCommandExecuted,h.TerminalCommandFinished,h.ResourceWatchChanged,h.AutomationCreateRequested,h.AutomationUpdateRequested,h.AutomationSet,h.AutomationRemoved,h.AutomationRunLifecycleChanged,h.AutomationRunSessionSet,h.AutomationRunSessionRemoved,h.AutomationRunPrimarySessionChanged,h.AutomationRunCancelRequested;function g(e,t){let n=`Unhandled action type: ${JSON.stringify(e)}`;(t??console.warn)(n)}function De(e,t,n){switch(t.type){case h.RootAgentsChanged:return{...e,agents:t.agents};case h.RootActiveSessionsChanged:return{...e,activeSessions:t.activeSessions};case h.RootTerminalsChanged:return{...e,terminals:t.terminals};case h.RootConfigChanged:return e.config?{...e,config:{...e.config,values:t.replace?{...t.config}:{...e.config.values,...t.config}}}:e;default:return g(t,n),e}}function Oe(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 ke(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 _=Symbol(`aborted`);function v(e,t){return e.then(void 0,()=>void 0),t.aborted?Promise.resolve(_):new Promise((n,r)=>{let i=()=>{t.removeEventListener(`abort`,i),n(_)};t.addEventListener(`abort`,i,{once:!0}),e.then(e=>{t.removeEventListener(`abort`,i),n(e)},e=>{t.removeEventListener(`abort`,i),r(e)})})}function Ae(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 je(...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 Me(...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 Ne={agents:[]},Pe=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=Oe(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 oe(this.shared.id);let t=this.shared.currentClient;if(!t)throw this.trackSubscription(e),new se(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 oe(this.shared.id);let r=this.shared.currentClient;if(!r)throw new se(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=Fe(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(d(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 Ae(u(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=Me(e,t),r=n.signal;try{let e=await v(this.config.transportFactory(this.shared.id,r),r);if(e===_)throw Error(`connect aborted`);let t=new Ee(e,this.config.clientConfig);t.connect();let n=t.events(),i=!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,ee=this.shared.automations,te=[];if(o)try{let n=await v(t.reconnect({clientId:this.shared.clientId,lastSeenServerSeq:e.serverSeq,subscriptions:e.subscriptions}),r);if(n===_)throw Error(`reconnect aborted`);s=n}catch(n){if(this.shared.shutdownReason!==null||r.aborted||!(n instanceof a))throw n;let i=await v(t.initialize({clientId:this.shared.clientId,protocolVersions:[he],initialSubscriptions:e.subscriptions}),r);if(i===_)throw Error(`initialize aborted`);c=i.snapshots,l=i.serverSeq,u=i.protocolVersion,d=i.defaultDirectory??null,ee=i.automations??null,te=i.completionTriggerCharacters??[]}else{let n=await v(t.initialize({clientId:this.shared.clientId,protocolVersions:[he],initialSubscriptions:e.subscriptions}),r);if(n===_)throw Error(`initialize aborted`);c=n.snapshots,l=n.serverSeq,u=n.protocolVersion,d=n.defaultDirectory??null,ee=n.automations??null,te=n.completionTriggerCharacters??[]}let re=null;try{let e=await v(t.request(`listSessions`,{channel:ne}),r);e!==_&&(re=e)}catch{}if(r.aborted)throw Error(`connect aborted`);let f=null,p=[],m=null;if(s!==null){if(s.type===de.Replay){for(let e of s.actions)p.push(e);if(s.missing.length>0){let e=new Set(s.missing);f=this.shared.subscriptions.filter(t=>!e.has(t))}}else{let t=new Set(s.snapshots.map(e=>e.resource)),n=new Set(e.subscriptions);m=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??Ne)}}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===ne);e&&(this.shared.rootState=e.state??Ne),u&&(this.shared.protocolVersion=u),this.shared.defaultDirectory=d,this.shared.automations=ee,this.shared.completionTriggerCharacters=[...te]}if(re!==null){this.shared.sessionSummaries.clear();for(let e of re.items)this.shared.sessionSummaries.set(e.resource,e)}f===null?m!==null&&(this.shared.subscriptions=m):this.shared.subscriptions=f,this.handleSource.generation=this.shared.generation,this.handleSource.currentClient=t;for(let e of p)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}),i=!0,{client:t,events:n}}finally{if(!i)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=je(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 je(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`:Ie(this.shared.sessionSummaries,e.event.params)}this.fanOut.publish(f(this.shared.id,e))}applyEnvelopeLocally(e){e.serverSeq>this.shared.serverSeq&&(this.shared.serverSeq=e.serverSeq),e.channel===`ahp-root://`&&(this.shared.rootState=De(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 Fe(e){return e instanceof Error?e:Error(String(e))}function Ie(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 Le=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()}},Re=1024,ze=class e{hosts=new Map;pendingHostIds=new Set;fanOut;hostEventsQueue;clientIdStore;shutdownController=new AbortController;shutDown=!1;constructor(e={}){this.clientIdStore=e.clientIdStore??new Le;let t=e.eventBuffer??Re;this.fanOut=new r(t),this.hostEventsQueue=new r(t)}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 ie(t);this.pendingHostIds.add(t);try{let n=re(e),r=await this.resolveClientId(t,n.clientId);if(this.assertOpen(),this.hosts.has(t))throw new ie(t);let i=new Pe(n,r,this.fanOut,this.hostEventsQueue);return this.hosts.set(t,i),i.start(),ke(i.shared)}finally{this.pendingHostIds.delete(t)}}async removeHost(e){let t=this.hosts.get(e);if(!t)throw new m(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 m(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?ke(t.shared):void 0}hostsSnapshot(){return Array.from(this.hosts.values(),e=>ke(e.shared))}client(e){let t=this.hosts.get(e);if(!t)return;let n=t.shared.currentClient;if(n)return new ue(t.handleSource,t.shared.generation,n)}async subscribe(e,t){let n=this.hosts.get(e);if(!n)throw new m(e);return n.subscribe(t)}async unsubscribe(e,t){let n=this.hosts.get(e);if(!n)throw new m(e);await n.unsubscribe(t)}dispatch(e,t,n,r){let i=this.hosts.get(e);if(!i)throw new m(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 oe(`<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 ce(e,t.message??String(t),{cause:t})}return t}let r;try{r=await this.clientIdStore.load(e,n)}catch(t){throw new ce(e,t.message??String(t),{cause:t})}let i=r??le();try{await this.clientIdStore.store(e,i,n)}catch(t){throw new ce(e,t.message??String(t),{cause:t})}return i}},Be;(function(e){e.Computing=`computing`,e.Recomputing=`recomputing`,e.Ready=`ready`,e.Error=`error`})(Be||={});var Ve;(function(e){e.Idle=`idle`,e.Running=`running`,e.Error=`error`,e.Disabled=`disabled`})(Ve||={});var He;(function(e){e.Changeset=`changeset`,e.Resource=`resource`,e.Range=`range`})(He||={});function Ue(e,t,n){switch(t.type){case h.ChangesetStatusChanged:{if(t.status===Be.Error)return{...e,status:t.status,error:t.error};let{error:n,...r}=e;return{...r,status:t.status}}case h.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 h.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 h.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 h.ChangesetContentChanged:return t.operations===void 0?{...e,files:t.files}:{...e,files:t.files,operations:t.operations};case h.ChangesetOperationsChanged:if(t.operations===void 0){let{operations:t,...n}=e;return n}return{...e,operations:t.operations};case h.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===Ve.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 h.ChangesetCleared:return e.files.length===0?e:{...e,files:[]};default:return g(t,n),e}}var We;(function(e){e.Creating=`creating`,e.Ready=`ready`,e.Failed=`failed`})(We||={});var y;(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`})(y||={});var Ge;(function(e){e.Automation=`automation`})(Ge||={});var Ke;(function(e){e.ChatInput=`chatInput`,e.ToolConfirmation=`toolConfirmation`,e.ToolClientExecution=`toolClientExecution`,e.ToolAuthentication=`toolAuthentication`})(Ke||={});var b;(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`})(b||={});var qe;(function(e){e.Global=`global`,e.Workspace=`workspace`,e.Session=`session`})(qe||={});var Je;(function(e){e.Loading=`loading`,e.Loaded=`loaded`,e.Degraded=`degraded`,e.Error=`error`})(Je||={});var Ye;(function(e){e.Starting=`starting`,e.Ready=`ready`,e.AuthRequired=`authRequired`,e.Error=`error`,e.Stopped=`stopped`})(Ye||={});var Xe;(function(e){e.Required=`required`,e.Expired=`expired`,e.InsufficientScope=`insufficientScope`})(Xe||={});function Ze(e,t,n){return n?e|t:e&~t}function Qe(e){return e.kind!==Ke.ToolClientExecution}function $e(e,t){return t.some(Qe)?e&-32|y.InputNeeded:e&~(y.InputNeeded&~y.InProgress)}function et(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!==b.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===b.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!==b.McpServer)return e;a=!0;let s=r.slice();return s[i]=n(o),{...e,children:s}});return a?{...e,customizations:o}:e}function tt(e,t){switch(e.type){case b.Plugin:case b.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 nt(e,t,n){switch(t.type){case h.SessionReady:return{...e,lifecycle:We.Ready};case h.SessionCreationFailed:return{...e,lifecycle:We.Failed,creationError:t.error};case h.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 h.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 h.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 h.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 h.SessionDefaultChatChanged:return{...e,defaultChat:t.defaultChat};case h.SessionTitleChanged:return{...e,title:t.title};case h.SessionIsReadChanged:return{...e,status:Ze(e.status,y.IsRead,t.isRead)};case h.SessionIsArchivedChanged:return{...e,status:Ze(e.status,y.IsArchived,t.isArchived)};case h.SessionActivityChanged:return{...e,activity:t.activity};case h.SessionChangesetsChanged:{let{changesets:n,...r}=e;return t.changesets?{...r,changesets:t.changesets}:r}case h.SessionConfigChanged:return e.config?{...e,config:{...e.config,values:t.replace?{...t.config}:{...e.config.values,...t.config}}}:e;case h.SessionMetaChanged:return{...e,_meta:t._meta};case h.SessionServerToolsChanged:return{...e,serverTools:t.tools};case h.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 h.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 h.SessionWorkingDirectorySet:{let n=e.workingDirectories??[];return n.includes(t.directory)?e:{...e,workingDirectories:[...n,t.directory]}}case h.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 h.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 h.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:$e(e.status,i)}}case h.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:$e(e.status,i)};return i.length>0?a.inputNeeded=i:delete a.inputNeeded,a}case h.SessionCustomizationsChanged:return{...e,customizations:t.customizations};case h.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]=tt(n[r],t.enablement),{...e,customizations:i}}for(let r=0;r<n.length;r++){let i=n[r];if(i.type===b.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]=tt(a[o],t.enablement);let c=n.slice();return c[r]={...i,children:s},{...e,customizations:c}}return e}case h.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 h.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===b.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 h.SessionMcpServerStateChanged:return et(e,t.id,e=>({...e,state:t.state,channel:t.channel}));case h.SessionMcpServerStartRequested:return et(e,t.id,e=>({...e,state:{kind:Ye.Starting},channel:void 0}));case h.SessionMcpServerBackgroundRequested:return et(e,t.id,e=>e.state.kind===Ye.Starting&&e.state.blocking?{...e,state:{...e.state,blocking:!1}}:e);case h.SessionMcpServerStopRequested:return et(e,t.id,e=>({...e,state:{kind:Ye.Stopped},channel:void 0}));default:return g(t,n),e}}var rt;(function(e){e.Running=`running`,e.Exited=`exited`})(rt||={});var it;(function(e){e.Client=`client`,e.Session=`session`})(it||={});function at(e,t,n){switch(t.type){case h.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 h.TerminalInput:return e;case h.TerminalResized:return{...e,cols:t.cols,rows:t.rows};case h.TerminalClaimed:return{...e,claim:t.claim};case h.TerminalTitleChanged:return{...e,title:t.title};case h.TerminalCwdChanged:return{...e,cwd:t.cwd};case h.TerminalExited:return{...e,lifecycle:{status:rt.Exited,exitCode:t.exitCode}};case h.TerminalCleared:return{...e,content:[]};case h.TerminalCommandDetectionAvailable:return{...e,supportsCommandDetection:!0};case h.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 h.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 g(t,n),e}}function ot(e,t,n){switch(t.type){case h.AutomationCreateRequested:case h.AutomationUpdateRequested:return e;case h.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 h.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 g(t,n),e}}var st=class e{socket;inbox=[];waiters=[];closeInfo=null;error=null;closed=!1;static connect(t,n={}){return new Promise((r,i)=>{let a=globalThis.WebSocket;if(!a){i(new s(`io`,`global WebSocket is not available; install or polyfill it`));return}let o;try{o=n.protocols===void 0?new a(t):new a(t,n.protocols)}catch(e){i(new s(`io`,`failed to construct WebSocket: ${e.message}`,{cause:e}));return}let c=()=>{o.removeEventListener(`open`,l),o.removeEventListener(`error`,u),o.removeEventListener(`close`,d)},l=()=>{c(),r(new e(o))},u=()=>{c(),i(new s(`io`,`websocket failed to open`))},d=e=>{c(),i(new s(`closed`,`websocket closed before open (code=${e.code})`))};o.addEventListener(`open`,l),o.addEventListener(`error`,u),o.addEventListener(`close`,d)})}static fromSocket(t){if(t.readyState!==t.OPEN)throw new s(`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 s(`protocol`,`unsupported WebSocket message payload (expected string or ArrayBuffer)`);this.error=e,this.drainWithError(e)}}),e.addEventListener(`error`,()=>{this.error=new s(`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 s(`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 s(`closed`,`transport closed`);if(this.error)throw this.error;let t=typeof e==`string`?e:ye(e);try{this.socket.send(t)}catch(e){throw new s(`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)}},ct=`ahpd-web.token`;function lt(){try{let e=window.localStorage.getItem(ct)?.trim();return e===void 0||e===``?null:e}catch{return null}}function ut(e){try{e===null?window.localStorage.removeItem(ct):window.localStorage.setItem(ct,e)}catch{}}var dt=!1;function ft(){return dt}async function pt(){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;dt=(await e.json()).tokenHeld===!0}catch{dt=!1}return dt}var x=globalThis.ahpwEmbedder;function S(){return x?.mode??`mono`}var mt;(function(e){e.Enabled=`enabled`,e.Disabled=`disabled`,e.Unconfigured=`unconfigured`})(mt||={});var ht;(function(e){e.Shell=`shell`,e.Subagent=`subagent`})(ht||={});var gt;(function(e){e.User=`user`,e.Fork=`fork`,e.SideChat=`sideChat`,e.Tool=`tool`})(gt||={});var _t;(function(e){e.Full=`full`,e.ReadOnly=`read-only`,e.Hidden=`hidden`})(_t||={});var vt;(function(e){e.Steering=`steering`,e.Queued=`queued`})(vt||={});var yt;(function(e){e.Accept=`accept`,e.Decline=`decline`,e.Cancel=`cancel`})(yt||={});var bt;(function(e){e.Text=`text`,e.Number=`number`,e.Integer=`integer`,e.Boolean=`boolean`,e.SingleSelect=`single-select`,e.MultiSelect=`multi-select`})(bt||={});var xt;(function(e){e.Text=`text`,e.Number=`number`,e.Boolean=`boolean`,e.Selected=`selected`,e.SelectedMany=`selected-many`})(xt||={});var St;(function(e){e.Draft=`draft`,e.Submitted=`submitted`,e.Skipped=`skipped`})(St||={});var C;(function(e){e.Complete=`complete`,e.Cancelled=`cancelled`,e.Error=`error`})(C||={});var Ct;(function(e){e.Simple=`simple`,e.EmbeddedResource=`embeddedResource`,e.Resource=`resource`,e.Annotations=`annotations`,e.Chat=`chat`})(Ct||={});var wt;(function(e){e.User=`user`,e.Agent=`agent`,e.Tool=`tool`,e.Automation=`automation`,e.SystemNotification=`systemNotification`})(wt||={});var w;(function(e){e.Markdown=`markdown`,e.ContentRef=`contentRef`,e.ToolCall=`toolCall`,e.Reasoning=`reasoning`,e.SystemNotification=`systemNotification`,e.InputRequest=`inputRequest`,e.Error=`error`})(w||={});var T;(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`})(T||={});var Tt;(function(e){e.NotNeeded=`not-needed`,e.UserAction=`user-action`,e.Setting=`setting`})(Tt||={});var Et;(function(e){e.Judge=`judge`})(Et||={});var Dt;(function(e){e.Loading=`loading`,e.Complete=`complete`})(Dt||={});var Ot;(function(e){e.Denied=`denied`,e.Skipped=`skipped`,e.ResultDenied=`result-denied`})(Ot||={});var kt;(function(e){e.Approve=`approve`,e.Deny=`deny`})(kt||={});var E;(function(e){e.Client=`client`,e.MCP=`mcp`})(E||={});var At;(function(e){e.Text=`text`,e.EmbeddedResource=`embeddedResource`,e.Resource=`resource`,e.FileEdit=`fileEdit`,e.Terminal=`terminal`,e.Subagent=`subagent`})(At||={});var jt;(function(e){e.Added=`added`,e.Updated=`updated`,e.Deleted=`deleted`})(jt||={});var Mt;(function(e){e.Update=`update`,e.Remove=`remove`,e.Run=`run`})(Mt||={});var Nt;(function(e){e.Skip=`skip`,e.RunOnce=`runOnce`})(Nt||={});var Pt;(function(e){e.Schedule=`schedule`,e.Event=`event`})(Pt||={});var Ft;(function(e){e.AfterRuns=`afterRuns`,e.AfterDate=`afterDate`})(Ft||={});var It;(function(e){e.Pending=`pending`,e.Running=`running`,e.Completed=`completed`,e.Failed=`failed`,e.Cancelled=`cancelled`})(It||={});var Lt;(function(e){e.Manual=`manual`,e.Trigger=`trigger`})(Lt||={});var Rt;(function(e){e.UserMessage=`userMessage`})(Rt||={});var zt;(function(e){e.Fork=`fork`,e.SideChat=`sideChat`})(zt||={});var Bt;(function(e){e.Session=`session`,e.NewSession=`newSession`})(Bt||={});var Vt;(function(e){e.Resource=`resource`,e.Range=`range`})(Vt||={});var Ht;(function(e){e.Required=`required`,e.Expired=`expired`})(Ht||={});function Ut(e,t){return new Date(Date.parse(e)+t).toISOString()}function Wt(e){return{toolCallId:e.toolCallId,toolName:e.toolName,displayName:e.displayName,intention:e.intention,contributor:e.contributor,_meta:e._meta}}function D(e,t){return{...Wt(e),_meta:t??e._meta}}function Gt(e,t,n){return t?e?.kind===E.Client?t.kind===E.Client&&t.clientId===e.clientId?t:(n?.(`Ignoring contributor change for client tool call from '${e.clientId}'`),e):t.kind===E.Client?(n?.(`Ignoring late client contributor '${t.clientId}' because client execution ownership must be established at tool call start`),e):t:e}function Kt(e,t){if(t&&e)return e.find(e=>e.id===t)}function qt(e){return e.activeTurn?e.activeTurn.responseParts.some(e=>e.kind===w.ToolCall&&(e.toolCall.status===T.PendingConfirmation||e.toolCall.status===T.PendingResultConfirmation||e.toolCall.status===T.AuthRequired)):!1}function Jt(e){return e.activeTurn?.responseParts.some(e=>e.kind===w.InputRequest&&e.response===void 0)??!1}function Yt(e,t){let n=e.findIndex(e=>e.kind===w.InputRequest&&e.response===void 0&&e.request.id===t);if(n<0)return;let r=e[n];return r.kind===w.InputRequest?{index:n,part:r}:void 0}function Xt(e){let t=e.responseParts[e.responseParts.length-1];return t?.kind===w.Error&&t.resumable===!0}function Zt(e){return e.kind===w.Error}function O(e,t,n){return n?e|t:e&~t}function k(e,t){let n;return n=t||(Jt(e)||qt(e)?y.InputNeeded:e.activeTurn?y.InProgress:y.Idle),e.status&-32|n}function A(e){let t=k(e);return t===e.status?e:{...e,status:t}}function Qt(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!==w.ToolCall)return e;let t=e.toolCall;return t.status===T.Completed||t.status===T.Cancelled?e:{kind:w.ToolCall,toolCall:{status:T.Cancelled,...Wt(t),invocationMessage:t.status===T.Streaming?t.invocationMessage??``:t.invocationMessage,toolInput:t.status===T.Streaming?void 0:t.toolInput,reason:Ot.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:Ut(o.startedAt,c.duration??0)};return{...l,status:k(l,i)}}function $t(e,t){let n=e.activeTurn;if(!n)return e;let r=Yt(n.responseParts,t.id),i=[...n.responseParts],a={kind:w.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:O(k(o),y.IsRead,!1)}}function j(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===w.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 en(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===w.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 tn(e,t,n){switch(t.type){case h.ChatTurnStarted:{let n={...e,activeTurn:{id:t.turnId,startedAt:t.startedAt,message:t.message,responseParts:[],usage:void 0}};if(n={...n,status:O(k(n),y.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 h.ChatDelta:return en(e,t.turnId,t.partId,e=>e.kind===w.Markdown?{...e,content:e.content+t.content}:e);case h.ChatResponsePart:return!e.activeTurn||e.activeTurn.id!==t.turnId||Zt(t.part)?e:{...e,activeTurn:{...e.activeTurn,responseParts:[...e.activeTurn.responseParts,t.part]}};case h.ChatTurnComplete:return Qt(e,t.turnId,C.Complete,t.duration);case h.ChatTurnCancelled:return Qt(e,t.turnId,C.Cancelled,t.duration);case h.ChatError:return Qt(e,t.turnId,C.Error,t.duration,y.Error,t.part);case h.ChatTurnResume:{if(e.activeTurn)return e;let n=e.turns.length-1,r=e.turns[n];if(!r||r.id!==t.turnId||r.state!==C.Error||!Xt(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:O(k(a),y.IsRead,!1)}}case h.ChatActivityChanged:return{...e,activity:t.activity};case h.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 h.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 h.ChatMovableChanged:return{...e,movable:t.movable};case h.ChatChangesetsChanged:{let{changesets:n,...r}=e;return t.changesets?{...r,changesets:t.changesets}:r}case h.ChatCanvasesChanged:{let{canvases:n,...r}=e;return t.canvases?{...r,canvases:t.canvases}:r}case h.ChatWorkingDirectorySet:{let n=e.workingDirectories??[];return n.includes(t.directory)?e:{...e,workingDirectories:[...n,t.directory]}}case h.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 h.ChatToolCallStart:return!e.activeTurn||e.activeTurn.id!==t.turnId?e:{...e,activeTurn:{...e.activeTurn,responseParts:[...e.activeTurn.responseParts,{kind:w.ToolCall,toolCall:{toolCallId:t.toolCallId,toolName:t.toolName,displayName:t.displayName,intention:t.intention,contributor:t.contributor,_meta:t._meta,status:T.Streaming}}]}};case h.ChatToolCallDelta:return j(e,t.turnId,t.toolCallId,e=>e.status===T.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 h.ChatToolCallReady:return A(j(e,t.turnId,t.toolCallId,e=>{if(e.status!==T.Streaming&&e.status!==T.Running&&e.status!==T.PendingConfirmation)return e;let r={...D(e,t._meta),contributor:Gt(e.contributor,t.contributor,n),intention:t.intention??e.intention},i=t.toolInput??(e.status===T.Streaming?void 0:e.toolInput);if(t.confirmed)return{status:T.Running,...r,invocationMessage:t.invocationMessage,toolInput:i,confirmed:t.confirmed};let a=e.status===T.PendingConfirmation?e:void 0,o=t.options??a?.options;return{status:T.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 h.ChatToolCallConfirmed:return A(j(e,t.turnId,t.toolCallId,e=>{if(e.status!==T.PendingConfirmation)return e;let n=D(e,t._meta),r=Kt(e.options,t.selectedOptionId);if(t.approved){let i=t.editedToolInput!==void 0&&typeof e.toolInput==`string`?t.editedToolInput:e.toolInput;return{status:T.Running,...n,invocationMessage:e.invocationMessage,toolInput:i,confirmed:t.confirmed,...r?{selectedOption:r}:{}}}return{status:T.Cancelled,...n,invocationMessage:e.invocationMessage,toolInput:e.toolInput,reason:t.reason,reasonMessage:t.reasonMessage,userSuggestion:t.userSuggestion,...r?{selectedOption:r}:{}}}));case h.ChatToolCallComplete:return A(j(e,t.turnId,t.toolCallId,e=>{if(e.status!==T.Running&&e.status!==T.PendingConfirmation&&e.status!==T.AuthRequired||e.status===T.AuthRequired&&t.result.success)return e;let n=D(e,t._meta),r=e.status===T.Running||e.status===T.AuthRequired?e.confirmed:Tt.NotNeeded,i=e.status===T.Running||e.status===T.AuthRequired?e.selectedOption:void 0,a=e.status===T.AuthRequired?e.content:void 0;return t.requiresResultConfirmation&&e.status!==T.AuthRequired?{status:T.PendingResultConfirmation,...n,invocationMessage:e.invocationMessage,toolInput:e.toolInput,confirmed:r,...i?{selectedOption:i}:{},...a?{content:a}:{},...t.result}:{status:T.Completed,...n,invocationMessage:e.invocationMessage,toolInput:e.toolInput,confirmed:r,...i?{selectedOption:i}:{},...a?{content:a}:{},...t.result}}));case h.ChatToolCallResultConfirmed:return A(j(e,t.turnId,t.toolCallId,e=>{if(e.status!==T.PendingResultConfirmation)return e;let n=D(e,t._meta);return t.approved?{status:T.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:T.Cancelled,...n,invocationMessage:e.invocationMessage,toolInput:e.toolInput,reason:Ot.ResultDenied,...e.selectedOption?{selectedOption:e.selectedOption}:{}}}));case h.ChatToolCallContentChanged:return j(e,t.turnId,t.toolCallId,e=>e.status===T.Running?{...e,...t._meta===void 0?{}:{_meta:t._meta},content:t.content}:e);case h.ChatToolCallAuthRequired:return A(j(e,t.turnId,t.toolCallId,e=>{if(e.status!==T.Running||!e.contributor||e.contributor.kind!==E.MCP)return e;let n=D(e,t._meta);return{status:T.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 h.ChatToolCallAuthResolved:return A(j(e,t.turnId,t.toolCallId,e=>{if(e.status!==T.AuthRequired)return e;let n=D(e,t._meta);return{status:T.Running,...n,invocationMessage:e.invocationMessage,toolInput:e.toolInput,confirmed:e.confirmed,...e.selectedOption?{selectedOption:e.selectedOption}:{},...e.content?{content:e.content}:{}}}));case h.ChatUsage:return!e.activeTurn||e.activeTurn.id!==t.turnId?e:{...e,activeTurn:{...e.activeTurn,usage:t.usage}};case h.ChatReasoning:return en(e,t.turnId,t.partId,e=>e.kind===w.Reasoning?{...e,content:e.content+t.content}:e);case h.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:k(r)}}case h.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 h.ChatInputRequested:return $t(e,t.request);case h.ChatInputAnswerChanged:{let n=e.activeTurn,r=n?Yt(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 h.ChatInputCompleted:{let n=e.activeTurn,r=n?Yt(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:k(c)}}case h.ChatPendingMessageSet:{let n={id:t.id,message:t.message};if(t.kind===vt.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 h.ChatPendingMessageRemoved:{if(t.kind===vt.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 h.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 h.ChatDraftChanged:return{...e,draft:t.draft};case h.ChatIsReadChanged:return{...e,status:O(e.status,y.IsRead,t.isRead)};case h.ChatIsArchivedChanged:return{...e,status:O(e.status,y.IsArchived,t.isArchived)};default:return g(t,n),e}}var nn=`0.10.0`,rn=Object.freeze(ge.flatMap(e=>e===`1.0.0`?[e,nn]:e===`0.10.0`?[]:[e]));function an(e){let t=on(typeof e==`string`?sn(e):e);if(t?.method!==`initialize`)return e;let n={...on(t.params),protocolVersions:[...rn]},r={...t,params:n};return typeof e==`string`?JSON.stringify(r):r}function on(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function sn(e){try{return JSON.parse(e)}catch{return null}}function cn(e){return{send:t=>e.send(an(t)),close:()=>e.close(),recv:()=>e.recv()}}function ln(e){let t=M(M(M(typeof e==`string`?dn(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 un=e=>e.version===null?e.name:`${e.name} ${e.version}`;function M(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function dn(e){try{return JSON.parse(e)}catch{return null}}function fn(e){return M(M(typeof e==`string`?dn(e):e)?.result)?._meta}function pn(e,t){return{send:t=>e.send(t),close:()=>e.close(),async recv(){let n=await e.recv(),r=n?.kind===`text`?n.text:n?.kind===`parsed`?n.message:null,i=r===null?null:ln(r);return i!==null&&t(i,fn(r)),n}}}function mn(e){return typeof e==`object`&&e?e:{}}function N(e,t){let n=mn(e);return`ahpd.${t}`in n?n[`ahpd.${t}`]:n[t]}var hn={methods:[],channels:[],providers:{}};function P(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function gn(e,t){if(Array.isArray(e))return e.map(e=>P(e)?.[t]).filter(e=>typeof e==`string`);let n=P(e);return n===null?[]:Object.keys(n)}function _n(e){let t=P(e);if(t===null||typeof t.root!=`string`)return null;let n=P(t.manifest);return{title:typeof t.title==`string`?t.title:``,root:t.root,operations:Array.isArray(t.operations)?t.operations.filter(e=>typeof e==`string`):[],...n===null?{}:{manifest:n}}}function vn(e){let t={};for(let[n,r]of Object.entries(P(N(e,`resourceProviders`))??{})){let e=_n(r);e!==null&&(t[n]=e)}let n=N(e,`principal`);return{methods:gn(N(e,`methods`),`method`),channels:gn(N(e,`channels`),`scheme`),providers:t,...typeof n==`string`&&n!==``?{principal:n}:{}}}function yn(e,t){let n=t===`read`?`get`:t===`write`?`put`:t;return e.operations.includes(t)||e.operations.includes(n)}function bn(e){return x===void 0?e:`${e}@${S()===`multi`?`*`:x.hostUrl}`}function xn(e,t){return S()===`multi`?`${bn(e)}:${t}`:bn(e)}var F=e=>/^[a-z][a-z0-9+.-]*:\/\/(\/|\/[A-Za-z]:\/)?$/i.test(e)?e:e.replace(/\/+$/,``);function Sn(e,t,n=[],r=[]){let i=new Set(r.map(F)),a=new Set,o=[],s=(e,t)=>{if(e===void 0||e===``)return;let n=F(e);a.has(n)||(a.add(n),o.push({uri:n,isDefault:t,added:i.has(n)}))};s(e??void 0,!0);for(let e of t)s(e.workingDirectories?.[0],!1);for(let e of r)s(e,!1);for(let e of n)s(e,!1);return o}var Cn=(e,t)=>`${e}${e.endsWith(`/`)?``:`/`}${encodeURIComponent(t)}`;function wn(e){return[...e.filter(e=>e.type===`directory`),...e.filter(e=>e.type!==`directory`)]}function I(e){try{return decodeURIComponent(F(e).replace(/^file:\/\//i,``))}catch{return F(e).replace(/^file:\/\//i,``)}}function Tn(e,t){let n=I(t),r=e.filter(e=>{let t=I(e);return n===t||n.startsWith(t.endsWith(`/`)?t:`${t}/`)}).sort((e,t)=>I(t).length-I(e).length)[0];if(r===void 0)return[`file://${n.split(`/`).map(encodeURIComponent).join(`/`)}`];let i=[r];for(let e of n.slice(I(r).length).split(`/`).filter(e=>e!==``))i.push(Cn(i[i.length-1]??r,e));return i}function En(){let e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function Dn(e){let t=e.trim(),n=/^([A-Za-z]:)[\\/](.*)$/.exec(t);return n===null?/^[a-z][a-z0-9+.-]*:/i.test(t)?t:`file://${t.split(`/`).map(encodeURIComponent).join(`/`)}`:`file:///${n[1]}/${n[2].split(/[\\/]/).map(encodeURIComponent).join(`/`)}`}function On(e){let t=e.replace(/\/+$/,``).split(`/`).pop()??``;try{return decodeURIComponent(t)||e}catch{return t||e}}function kn(e){if(!e.startsWith(`file://`))return e;try{let t=decodeURIComponent(e.slice(7));return/^\/[A-Za-z]:\//.test(t)?t.slice(1):t}catch{return e}}function An(e){return e===void 0?``:typeof e==`string`?e:e.markdown}function jn(e){let t=Math.max(0,Math.floor(e/1e3)),n=t%60,r=Math.floor(t/60)%60,i=Math.floor(t/3600)%24,a=Math.floor(t/86400);return a>0?`${a}d${i}h`:i>0?`${i}h${r}m`:r>0?`${r}m${n}s`:`${n}s`}var Mn=e=>`$/ahp/trust/${encodeURIComponent(e)}`,Nn=e=>xn(`ahpd-web.trust`,e),Pn=e=>F(Dn(e));function Fn(e){try{let t=JSON.parse(window.localStorage.getItem(Nn(e))??`{}`);return typeof t!=`object`||!t||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(e=>typeof e[1]==`boolean`))}catch{return{}}}function In(e,t,n){e.set(Mn(t),n);try{window.localStorage.setItem(Nn(t),JSON.stringify(n))}catch{}}function Ln(e,t){return e?.[Pn(t)]}function Rn(e,t,n){return{...e,[Pn(t)]:n}}function zn(e,t){let n=Pn(t);return Object.fromEntries(Object.entries(e).filter(([e])=>e!==n))}function Bn(e){return Object.entries(e).filter(([,e])=>e).map(([e])=>e)}function Vn(e){return{type:`root/configChanged`,config:{workspaceTrust:{enabled:!0,trustedUris:[...e]}}}}var Hn=`/ahp`;function Un(e,t,n){let r=t.protocol===`https:`?`wss:`:`ws:`,i=n?Hn:`/`;return`${r}//${t.host}${i}${e===null?``:`?tkn=${encodeURIComponent(e)}`}`}function Wn(e,t){return t===null||t===``?e:`${e}${e.includes(`?`)?`&`:`?`}tkn=${encodeURIComponent(t)}`}function Gn(e){return e.replace(/^ws(s?):/,`http$1:`)}var Kn=new Map;function qn(e,t){let n=new Map(e);return t.type===`sessionAdded`?n.delete(t.params.summary.resource):t.type===`sessionRemoved`?n.delete(t.params.session):n.set(t.params.session,{...e.get(t.params.session),...t.params.changes}),n}function Jn(e){return new Map(e.map(e=>[e.resource,e]))}function Yn(e,t){let n=t.get(e.resource);return n===void 0?e:{...e,...n}}var Xn=2,Zn=8,Qn=24,$n=32,er=64;function tr(e){return(e&Qn)===Qn?`input`:(e&Zn)===0?(e&Xn)===0?`idle`:`error`:`running`}function nr(e){return(e&$n)!==0}function rr(e){return(e&er)!==0}var ir=[`all`,`unread`,`read`,`running`];function ar(e,t){let n=tr(e);switch(t){case`all`:return!0;case`unread`:return n===`idle`&&!nr(e);case`read`:return n===`idle`&&nr(e);case`running`:return n===`running`||n===`input`}}var or=e=>t(`sessions/status/${e}`),sr={input:`warning`,running:`info`,error:`danger`,idle:`default`};function cr(e){let t=0,n=0;for(let r of e){if(rr(r))continue;let e=tr(r);e===`idle`&&!nr(r)&&(t+=1),(e===`running`||e===`input`)&&(n+=1)}return{unread:t,working:n}}var lr=e(),ur=[`connection`,`session`,`terminal`,`traffic`],dr=[`debug`,`info`,`warn`,`error`],fr=2e3,pr=1024,L=[],R=[],mr=null,hr=0,gr=new Set,_r=!1;function vr(){mr=null,!_r&&(_r=!0,setTimeout(()=>{_r=!1;for(let e of gr)e()},50))}function z(e){hr+=1;let t={...e,id:`l${hr}`,at:e.at??Date.now()};t.scope===`traffic`?R=R.length>=1024?[...R.slice(R.length-pr+1),t]:[...R,t]:L=L.length>=2e3?[...L.slice(L.length-fr+1),t]:[...L,t],vr()}function yr(){L=[],R=[],vr()}function br(){return mr===null&&(mr=[...L,...R].sort((e,t)=>e.at-t.at||Number(e.id.slice(1))-Number(t.id.slice(1)))),mr}function xr(e){return gr.add(e),()=>{gr.delete(e)}}function Sr(){return(0,lr.useSyncExternalStore)(xr,br,br)}function Cr(e,t){let n=dr.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)||dr.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 wr=/\b[a-z][a-z0-9+.-]*:\/{1,3}[^\s"'`<>()[\]{},]+/gi;function Tr(e){let t=[],n=0;for(let r of e.matchAll(wr)){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 Er(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 Dr=e=>`${new Date(e.at).toISOString().replace(`T`,` `).replace(`Z`,``)} [${e.level}] [${e.scope}] ${e.text}`,Or=e=>e.map(Dr).join(`
3
+ `),kr=65536;function B(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function V(e){return typeof e==`string`&&e!==``?e:null}var Ar=new Map,jr=new Map;function Mr(e){let t=Ar.get(e);return t===void 0&&(t=new Map,Ar.set(e,t)),t}function Nr(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 Pr(e,t){let n=`${e} ${V(t.resource)??``} ${V(t.channel)??``}`.toLowerCase();return n.includes(`terminal`)?`terminal`:n.includes(`session`)||n.includes(`chat`)||V(t.session)!==null?`session`:`connection`}function Fr(e,t){let n=e===`sent`?`→`:`←`,r=V(t.method),i=B(t.params);if(r===`action`)return`${n} ${V(B(i.action).type)??`action`} ${V(i.channel)??``}`.trim();if(r!==null){let e=V(i.resource)??V(i.channel)??V(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)} ${V(B(t.error).message)??``}`.trim()}function Ir(e,t){let n=B(t.action),r=V(n.type)??``,i=V(t.channel)??``,a=Nr(i)??(i.includes(`session`)?i:null),o=(e,n,r)=>z({scope:e,level:n,text:r,detail:t}),s=V(t.rejectionReason);if(s!==null){o(r.startsWith(`terminal/`)?`terminal`:`session`,`warn`,`${r} rejected: ${s} · ${i}`);return}switch(r){case`session/ready`:o(`session`,`info`,`ready ${a??i}`);return;case`session/creationFailed`:o(`session`,`error`,`creation failed: ${V(B(n.error).message)??V(n.message)??``} ${a??i}`);return;case`session/titleChanged`:o(`session`,`info`,`title "${V(n.title)??``}" ${a??i}`);return;case`chat/turnStarted`:o(`session`,`info`,`turn started ${a??i}`);return;case`chat/turnComplete`:o(`session`,`info`,`turn complete ${a??i}`);return;case`chat/turnCancelled`:o(`session`,`warn`,`turn cancelled ${a??i}`);return;case`chat/error`:o(`session`,`error`,`${V(B(n.error).message)??V(n.message)??`error`} ${a??i}`);return;case`terminal/commandExecuted`:o(`terminal`,`info`,`$ ${V(n.commandLine)??``} · ${i}`);return;case`terminal/commandFinished`:{let e=typeof n.exitCode==`number`?n.exitCode:null;o(`terminal`,e!==null&&e!==0?`warn`:`info`,`command finished${e===null?``:` · exit ${e}`} · ${i}`);return}case`terminal/exited`:{let e=typeof n.exitCode==`number`?n.exitCode:null;o(`terminal`,`info`,`exited${e===null?``:` ${e}`} · ${i}`);return}case`terminal/claimed`:{let e=B(n.claim);o(`terminal`,`info`,`claimed by ${V(e.session)??(e.kind===`client`?`client ${V(e.clientId)??``}`:``)} · ${i}`);return}case`root/terminalsChanged`:{let t=new Map;for(let e of Array.isArray(n.terminals)?n.terminals:[]){let n=B(e),r=V(n.resource);r!==null&&t.set(r,V(n.title)??``)}let r=jr.get(e);if(jr.set(e,t),r===void 0)return;for(let[e,n]of t)r.has(e)||o(`terminal`,`info`,`opened ${n===``?``:`${n} `}${e}`);for(let[e,n]of r)t.has(e)||o(`terminal`,`info`,`closed ${n===``?``:`${n} `}${e}`);return}}}var Lr=`••••••`;function Rr(e){let t=B(e.params);return e.method!==`authenticate`||typeof t.token!=`string`?e:{...e,params:{...t,token:Lr}}}function zr(e,t,n){let r;try{r=B(JSON.parse(n))}catch{z({scope:`traffic`,level:`debug`,text:`${t===`sent`?`→`:`←`} ${n.slice(0,120)}`,detail:n.slice(0,kr)});return}let i=Rr(r);i!==r&&(r=i,n=JSON.stringify(i)),z({scope:`traffic`,level:`debug`,text:Fr(t,r),detail:n.length>kr?n.slice(0,kr):n});let a=r.id===void 0||r.id===null?null:String(r.id),o=V(r.method);if(t===`sent`){a!==null&&o!==null&&Mr(e).set(a,{method:o,params:B(r.params)});return}if(o===`action`){Ir(e,B(r.params));return}if(a===null||o!==null)return;let s=Mr(e).get(a);if(Mr(e).delete(a),r.error===void 0)return;let c=B(r.error),l=s===void 0?`#${a}`:`${s.method} ${V(s.params.resource)??V(s.params.channel)??``}`.trim();z({scope:s===void 0?`connection`:Pr(s.method,s.params),level:`error`,text:`${l} refused: ${V(c.message)??`error`}${typeof c.code==`number`?` (${c.code})`:``}`,detail:{request:s??null,error:r.error}})}function Br(e){Ar.delete(e)}function Vr(e,t){return{send:n=>(zr(e,`sent`,typeof n==`string`?n:JSON.stringify(n)),t.send(n)),close:()=>t.close(),async recv(){let n=await t.recv();return n?.kind===`text`?zr(e,`received`,n.text):n?.kind===`parsed`&&zr(e,`received`,JSON.stringify(n.message)),n}}}var Hr=e=>`$/ahp/hosts/${encodeURIComponent(e)}`,Ur=new Map;function H(e){let t=Ur.get(e);if(t===void 0){let n=Hr(e),r=e=>`${n}/${e}`;t={connection:r(`connection`),sessions:r(`sessions`),agents:r(`agents`),defaultDirectory:r(`defaultDirectory`),automationCaps:r(`automationCaps`),sessionsUnread:r(`sessionCounts/unread`),sessionsWorking:r(`sessionCounts/working`),host:r(`host`),server:r(`server`),offers:r(`offers`),detached:r(`terminals/detached`),refused:r(`refused`)},Ur.set(e,t)}return t}var Wr=(e,t)=>`${Hr(e)}/channels/${encodeURIComponent(t)}`,Gr=(e,t)=>`${Hr(e)}/titles/${encodeURIComponent(t)}`,Kr=(e,t)=>`${Hr(e)}/channelErrors/${encodeURIComponent(t)}`,U=ne,qr=`ahp-automations://`,Jr=`daemon`;function Yr(){if(S()===`multi`)throw Error(`No window host in a window with every host`);return Jr}async function Xr(){return x!==void 0&&S()===`multi`?(await x.hosts()).map(e=>e.id):[Jr]}function Zr(e){return[...e].sort((e,t)=>t.modifiedAt.localeCompare(e.modifiedAt))}var Qr=2e3,W,G,K=new Map;function q(e){let t=K.get(e);return t===void 0&&(t={newer:Kn,followed:new Map,waiting:new Set,generation:0},K.set(e,t)),t}function J(e,t){let n=K.get(e);if(n===void 0)return;let r=[...n.waiting];n.waiting.clear();for(let e of r)t===void 0?e.resolve():e.reject(t)}async function $r(e){for(;;){let n=W;if(n===void 0)throw Error(t(`bridges/notConnected`));let r=n.host(e)?.state.status;if(r===`connected`&&n.client(e)?.rawClient()!==void 0)return n;if(r===`failed`)throw Error(t(`bridges/notConnected`));await new Promise((t,n)=>q(e).waiting.add({resolve:t,reject:n}))}}var ei=e=>e instanceof Error?e.message:String(e);async function ti(e,t){let n=W,r=G;if(n!==void 0&&r!==void 0)try{let i=await n.subscribe(e,t);if(!q(e).followed.has(t))return;i.snapshot!==void 0&&(X.delete(Wr(e,t)),r.set(Wr(e,t),i.snapshot.state)),r.set(Kr(e,t),null)}catch(n){r.set(Kr(e,t),ei(n))}}function ni(e){let n=async(n,r)=>{let i=(await $r(e)).client(e)?.rawClient();if(i===void 0)throw Error(t(`bridges/notConnected`));return i.request(n,r)};return{id:e,follow(t,n){let r=q(e).followed,i=r.get(t);i===void 0?(r.set(t,{count:1,reducer:n}),W?.host(e)?.state.status===`connected`&&ti(e,t)):(i.count+=1,clearTimeout(i.release),delete i.release);let a=!1;return()=>{if(a)return;a=!0;let n=r.get(t);n!==void 0&&(--n.count,!(n.count>0||t===U)&&(n.release=setTimeout(()=>{r.get(t)!==n||n.count>0||(r.delete(t),W?.unsubscribe(e,t).catch(()=>void 0))},Qr)))}},async refresh(t){q(e).followed.has(t)&&await ti(e,t)},async reloadSessions(){let r=G;if(r===void 0)return;let i=await n(`listSessions`,{channel:U});q(e).newer=Jn(i.items),r.set(H(e).sessions,Zr(i.items));for(let n of i.items)r.set(Gr(e,n.resource),n.title===``?t(`bridges/untitled`):n.title)},async readOnce(t){let n=await $r(e),r=await n.subscribe(e,t);return q(e).followed.has(t)||n.unsubscribe(e,t).catch(()=>void 0),r.snapshot?.state},async readText(e){let t=await n(`resourceRead`,{channel:U,uri:e,encoding:`utf-8`});return{text:String(t.encoding)===`utf-8`?t.data:null,...t.contentType===void 0?{}:{contentType:t.contentType}}},async readBlob(e,t){let r=await n(`resourceRead`,{channel:U,uri:e,encoding:`base64`});if(String(r.encoding)!==`base64`)return new Blob([r.data],{type:t});let i=atob(r.data),a=new Uint8Array(i.length);for(let e=0;e<i.length;e++)a[e]=i.charCodeAt(e);return new Blob([a],{type:t})},async sizeOf(e){return(await n(`resourceResolve`,{channel:U,uri:e})).size},async writeText(e,t,r){await n(`resourceWrite`,{channel:U,uri:e,data:t,encoding:`utf-8`,...r===void 0?{}:{ifMatch:r}})},async etagOf(e){return(await n(`resourceResolve`,{channel:U,uri:e})).etag},async kindOfResource(e){try{return(await n(`resourceResolve`,{channel:U,uri:e})).type}catch{return null}},async readBase64(e){return await n(`resourceRead`,{channel:U,uri:e,encoding:`base64`})},async writeResource(e,t,r,i=!1){await n(`resourceWrite`,{channel:U,uri:e,data:t,encoding:r,...i?{createOnly:i}:{}})},async makeFolder(e){await n(`resourceMkdir`,{channel:U,uri:e})},async moveResource(e,t){await n(`resourceMove`,{channel:U,source:e,destination:t,failIfExists:!0})},async copyResource(e,t){await n(`resourceCopy`,{channel:U,source:e,destination:t,failIfExists:!0})},async deleteResource(e,t){await n(`resourceDelete`,{channel:U,uri:e,recursive:t})},dispatch(t,n){W?.dispatch(e,t,n)},dispatchAndWait(n,r){if(W===void 0||W.host(e)?.state.status!==`connected`)return Promise.reject(Error(t(`bridges/notConnected`)));let{clientSeq:i}=W.dispatch(e,n,r);return mi(e,n,i)},request:n,reconnect:()=>$(e)}}var ri=new Map;function ii(e){let t=ri.get(e);return t===void 0&&(t=ni(e),ri.set(e,t)),t}function Y(e,t,n){e.get(t)!==n&&e.set(t,n)}function ai(e,n,r){let i=q(r).newer,a=Zr(n.aggregatedSessions().filter(e=>e.hostId===r).map(e=>Yn(e.summary,i)));e.set(H(r).sessions,a);for(let n of a)Y(e,Gr(r,n.resource),n.title===``?t(`bridges/untitled`):n.title);let o=cr(a.map(e=>e.status));Y(e,H(r).sessionsUnread,o.unread),Y(e,H(r).sessionsWorking,o.working);let s=n.host(r);e.set(H(r).agents,s?.agents??[]),e.set(H(r).defaultDirectory,s?.defaultDirectory??null),e.set(H(r).automationCaps,s?.automations??null);for(let n of s?.terminals??[])Y(e,Gr(r,n.resource),n.title===``?t(`bridges/terminal`):n.title);e.set(H(r).host,s===void 0?null:{label:s.label,clientId:s.clientId,protocolVersion:s.protocolVersion,serverSeq:s.serverSeq,connectedAt:s.lastConnectedAt,activeSessions:s.activeSessions,terminals:s.terminals??[],subscriptions:s.subscriptions.length})}function oi(e,t){t.status!==`connected`&&Br(e),t.status===`failed`?z({scope:`connection`,level:`error`,text:`failed: ${t.error.message}`}):t.status===`reconnecting`?z({scope:`connection`,level:`warn`,text:`reconnecting (attempt ${t.attempt})`}):z({scope:`connection`,level:`info`,text:t.status})}async function si(e,n){for await(let r of n.hostEvents()){let i=r.hostId;if(r.type===`stateChanged`){let n=r.state;oi(i,n),n.status===`failed`&&J(i,Error(t(`bridges/notConnected`))),e.set(H(i).connection,{status:n.status,error:n.status===`failed`?n.error.message:r.lastError?.message??null,generation:q(i).generation,...n.status===`reconnecting`?{attempt:n.attempt}:{}}),(n.status===`failed`||n.status===`reconnecting`||n.status===`disconnected`)&&Ci(e,i)}if(r.type===`connected`){let t=q(i);t.generation=r.generation,t.newer=Kn,e.set(H(i).connection,{status:`connected`,error:null,generation:t.generation}),Y(e,H(i).refused,void 0),ai(e,n,i),gi(e,n,i);for(let e of t.followed.keys())ti(i,e);J(i)}}}var X=new Map,Z=new Set,ci;function li(e,t){if(ci=void 0,G===e){for(let[t,n]of X)e.set(t,n);X.clear();for(let n of Z)ai(e,t,n);Z.clear()}}function ui(e,t){ci===void 0&&(ci=document.hidden?window.setTimeout(()=>li(e,t),100):window.requestAnimationFrame(()=>li(e,t)))}var di=15e3,fi=new Map,pi=(e,t,n)=>`${e}\u{0000}${t}\u{0000}${String(n)}`;function mi(e,n,r){return new Promise((i,a)=>{let o=pi(e,n,r),s=window.setTimeout(()=>{fi.delete(o),a(Error(t(`bridges/noAnswer`)))},di);fi.set(o,e=>{window.clearTimeout(s),fi.delete(o),i(e)})})}var hi=`vscode/requestWorkspaceTrust`;function gi(e,t,r){let i=Fn(r);In(e,r,i);let o=Bn(i);o.length>0&&t.dispatch(r,U,Vn(o)),t.client(r)?.rawClient().setServerRequestHandler((async(t,i)=>{if(t!==hi)throw new a(-32601,`ahpw does not answer ${t}`);let o=i?.workspace;if(typeof o!=`string`||o===``)throw new a(-32602,`${hi} needs workspace, a folder URI`);let{answerTrust:s}=await n(async()=>{let{answerTrust:e}=await import(`./trust-ask-ewG_CvW8.js`).then(e=>e.r);return{answerTrust:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]),import.meta.url);return{trusted:await s(e,r,o)}}))}async function _i(e,t){for await(let n of t.events()){let r=n.hostId,i=n.event;if(i.type===`sessionAdded`||i.type===`sessionRemoved`||i.type===`sessionSummaryChanged`){let n=q(r);n.newer=qn(n.newer,i),Z.add(r),ui(e,t);continue}if(i.type!==`action`)continue;let{channel:a,action:o}=i.params,s=i.params.origin?.clientSeq;if(typeof s==`number`){let e=fi.get(pi(r,a,s));if(e!==void 0){let t=i.params.rejectionReason;e(typeof t==`string`?t:null)}}a===U&&(Z.add(r),ui(e,t));let c=q(r).followed.get(a);if(c===void 0)continue;let l=Wr(r,a),u=X.has(l)?X.get(l):e.get(l);if(u!==void 0)try{X.set(l,c.reducer(u,o)),ui(e,t)}catch{}}}async function vi(e){if(x===void 0)return st.connect(Un(ft()?null:lt(),window.location,!1));let t=await yi(e);return Q.set(e,t.url),st.connect(Wn(t.url,await x.token(S()===`multi`?e:void 0)))}async function yi(e){if(x===void 0)throw Error(`No embedder`);if(S()!==`multi`)return x.host();let t=(await x.hosts()).find(t=>t.id===e);if(t===void 0)throw Error(`The embedder has no host ${e}`);return t}var Q=new Map,bi=new Set;async function xi(e,t){await Promise.all((await Xr()).map(n=>Si(e,t,n)))}async function Si(e,n,r){bi.add(r),e.set(H(r).connection,{status:`connecting`,error:null,generation:0}),Y(e,H(r).refused,void 0);try{await n.addHost({id:r,label:x===void 0?window.location.host:(await yi(r)).name,transportFactory:async()=>pn(cn(Vr(r,await vi(r))),(t,n)=>{e.set(H(r).server,t),e.set(H(r).offers,vn(n))})})}catch(n){e.set(H(r).connection,{status:`failed`,error:ei(n),generation:0}),J(r,Error(t(`bridges/notConnected`))),Ci(e,r)}}async function Ci(e,t){let n=Q.get(t);if(x===void 0||S()!==`multi`||n===void 0||e.get(H(t).refused)!==void 0)return;let r=!1;try{r=(await fetch(Gn(Wn(n,await x.token(t))))).status===401}catch{}e.get(H(t).connection)?.status!==`connected`&&Y(e,H(t).refused,r)}async function $(e){let t=W,n=G;if(t!==void 0&&n!==void 0){if(t.host(e)===void 0){(await Xr()).includes(e)&&await Si(n,t,e);return}n.set(H(e).connection,{...n.get(H(e).connection),status:`connecting`}),Y(n,H(e).refused,void 0),await t.reconnectHost(e).catch(()=>void 0)}}var wi;async function Ti(e){let t=W,n=G;if(x===void 0||t===void 0||n===void 0)return;if(S()!==`multi`){let t=await x.host().catch(()=>null),n=Q.get(Jr);t!==null&&n!==void 0&&e.some(e=>e.id===t.id&&e.url!==n)&&await $(Jr);return}let r=new Set(e.map(e=>e.id));for(let e of[...bi])r.has(e)||await Ei(t,e);for(let r of e){let e=Q.get(r.id);t.host(r.id)===void 0?await Si(n,t,r.id):e!==void 0&&(e!==r.url||n.get(H(r.id).connection)?.status!==`connected`)&&await $(r.id)}}async function Ei(e,n){bi.delete(n),Q.delete(n),J(n,Error(t(`bridges/notConnected`)));let r=K.get(n);if(r!==void 0)for(let e of r.followed.values())clearTimeout(e.release);K.delete(n),await e.removeHost(n).catch(()=>void 0)}function Di(){if(document.visibilityState!==`visible`)return;let e=W;if(e!==void 0){Xr().then(t=>{for(let n of t)e.host(n)===void 0&&$(n)});for(let t of e.hostsSnapshot()){let e=t.state.status;(e===`reconnecting`||e===`failed`||e===`disconnected`)&&$(t.id)}}}var Oi={namespace:`ahp`,load:`eager`,provider:{async load(e){let t=new ze;W=t,G=e,si(e,t),_i(e,t),window.addEventListener(`online`,Di),document.addEventListener(`visibilitychange`,Di),x!==void 0&&(wi=x.onHosts(e=>void Ti(e))),await xi(e,t)},async unload(e){window.removeEventListener(`online`,Di),document.removeEventListener(`visibilitychange`,Di),wi?.(),wi=void 0,Q.clear(),bi.clear();let n=W;W=void 0,G=void 0;for(let e of K.keys())J(e,Error(t(`bridges/notConnected`)));for(let e of K.values())for(let t of e.followed.values())clearTimeout(t.release);K.clear(),X.clear(),Z.clear(),e.clearNamespace(`ahp`),await n?.shutdown()}}};export{S as $,Vn as A,An as B,tr as C,Ln as D,ar as E,jn as F,Sn as G,Tn as H,kn as I,hn as J,bn as K,On as L,Bn as M,Rn as N,In as O,zn as P,tn as Q,Dn as R,or as S,nr as T,Cn as U,F as V,wn as W,N as X,yn as Y,un as Z,Or as _,Kr as a,at,sr as b,Gr as c,De as ct,dr as d,x as et,ur as f,Dr as g,Cr as h,Oi as i,ot as it,Mn as j,Fn as k,Yr as l,ve as lt,Er as m,U as n,lt as nt,Wr as o,nt as ot,yr as p,xn as q,H as r,ut as rt,ii as s,Ue as st,qr as t,pt as tt,Nr as u,Tr as v,rr as w,ir as x,Sr as y,En as z};
@@ -0,0 +1 @@
1
+ var e=`application/x-ahpw-host-file`;function t(t,n){t.setData(e,JSON.stringify(n)),t.setData(`text/plain`,n.uri),t.effectAllowed=`copy`}var n=t=>Array.from(t.types).includes(e);function r(t){try{let n=JSON.parse(t.getData(e));return typeof n.host==`string`&&typeof n.uri==`string`&&typeof n.directory==`boolean`?{host:n.host,uri:n.uri,directory:n.directory}:null}catch{return null}}export{r as n,t as r,n as t};
@@ -0,0 +1 @@
1
+ var e=e=>`${e}︎`,t={sessions:e(`💬`),automations:e(`⏰`),agents:e(`🤖`),host:e(`🖥`),computers:e(`💻`),bots:e(`👾`),users:e(`👤`),teams:e(`👥`),usage:e(`📊`),settings:e(`⚙`),file:e(`📄`),markdown:e(`📝`),image:e(`🖼`),video:e(`🎞`),audio:e(`🎵`),code:`‹›`,data:`{}`,archive:e(`📦`),diff:`Δ`,log:`☰`,terminal:`❯`,reload:`↻`,run:e(`▶`),pause:e(`⏸`),stop:e(`⏹`),send:`↑`,trash:e(`🗑`),clear:`⊘`,close:`✕`,copy:`⧉`,copyText:`¶`,more:`⋯`,callsHidden:`⊘`,archived:`▤`,group:`☷`,sort:`⇅`,period:`◷`,filter:`▽`,pin:e(`📌`),folder:e(`📁`),tree:`⊢`,commit:`⊙`,pullRequest:`⎇`,attach:e(`📎`),open:e(`📂`),upload:e(`⬆`),download:e(`⬇`),link:e(`🔗`),check:`✓`,cross:`✕`,error:e(`✖`),warning:e(`⚠`),info:e(`ℹ`),pending:`◌`,running:`●`,waiting:`◐`,caretRight:`▸`,caretDown:`▾`,approvals:e(`⛨`),model:`✦`,read:`≡`,search:`⌕`,edit:`✎`,subagent:`◈`,web:`⊕`,dot:`•`,thinking:`∴`,panelLeft:e(`◧`),panelBottom:e(`⬓`),panelRight:e(`◨`),layoutTabs:`▭`,layoutGroups:`⊞`,layoutSplit:`⊟`,layoutSpatial:`◇`,layoutStack:`☰`,layoutSingle:`□`,language:e(`🌐`),theme:e(`🎨`),signOut:`⇥`,plugin:e(`🧩`),mcpServer:e(`🔌`)};export{t};
@@ -0,0 +1,2 @@
1
+ var e=/^[^\s:]+:[^\s:]+$/;function t(t){let n=[],r=[];return t.split(`
2
+ `).forEach((t,i)=>{let a=t.trim();a!==``&&(e.test(a)?n.includes(a)||n.push(a):r.push({line:i+1,text:a}))}),{grants:n,problems:r}}var n=e=>e.trim()!==``&&!/[/?\s]/.test(e.trim());export{t as n,n as t};
@@ -0,0 +1 @@
1
+ import{l as e}from"./useI18n-T3BwAm0z.js";import{n as t}from"./locales-DOA2j2AT.js";import{C as n,I as r,T as i,w as a}from"./data-DsJQo1Qk.js";var o=864e5,s=t({weekday:`long`}),c=t({month:`short`,day:`numeric`}),l=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime(),u=e=>l(e)-(e.getDay()+6)%7*o;function d(e,t){let n=new Date(e);return Number.isNaN(n.getTime())?0:Math.max(0,Math.round((l(t)-l(n))/o))}function f(e,t){let n=new Date(e);return Number.isNaN(n.getTime())?0:Math.max(0,Math.round((u(t)-u(n))/(7*o)))}function p(t,n){let r=d(t,n);return r===0?{key:`day:0`,label:e(`sessions/grouping/today`),rank:0}:r===1?{key:`day:1`,label:e(`sessions/grouping/yesterday`),rank:1}:r<7?{key:`day:${r}`,label:s.format(new Date(t)),rank:r}:{key:`day:older`,label:e(`sessions/grouping/older`),rank:7}}function m(t,n){let r=f(t,n);return r===0?{key:`week:0`,label:e(`sessions/grouping/thisWeek`),rank:0}:r===1?{key:`week:1`,label:e(`sessions/grouping/lastWeek`),rank:1}:{key:`week:${r}`,label:e(`sessions/grouping/weekOf`,{date:c.format(u(new Date(t)))}),rank:r}}var h=[`none`,`folder`,`status`,`agent`,`host`,`day`,`week`],g=`ahpd-web.session-grouping`,_=`ahpd-web.session-then-by`;function v(e){try{let t=localStorage.getItem(e);return h.some(e=>e===t)?t:`none`}catch{return`none`}}function y(e,t){try{localStorage.setItem(e,t)}catch{}}var b=()=>v(g),x=e=>y(g,e),S=()=>v(_),C=e=>y(_,e),w=t=>e(`sessions/grouping/${t}`),T=[`input`,`running`,`error`,`unread`,`idle`,`archived`],E=t=>({key:t,label:e(`sessions/status/${t}`),rank:T.indexOf(t)});function D(e){if(a(e.status))return E(`archived`);let t=n(e.status);return t===`idle`&&!i(e.status)?E(`unread`):E(t)}function O(t,n,i,a,o=new Date){switch(n){case`none`:return;case`host`:return a;case`status`:return D(t);case`agent`:return{key:t.provider,label:i(t.provider)};case`day`:return p(t.modifiedAt,o);case`week`:return m(t.modifiedAt,o);case`folder`:{let n=t.workingDirectories?.[0];return n===void 0?{key:``,label:e(`sessions/grouping/noFolder`)}:{key:n,label:r(n)}}}}function k(e,t){let n=new Map;for(let r of e){let e=t(r),i=e?.key??``;n.has(i)||n.set(i,e?.rank??1e6+n.size)}return e.map((e,r)=>({item:e,index:r,rank:n.get(t(e)?.key??``)})).sort((e,t)=>e.rank-t.rank||e.index-t.index).map(e=>e.item)}function A(e,t,n){return k(n===void 0?e:k(e,n),t)}export{w as a,x as c,O as i,C as l,k as n,b as o,A as r,S as s,h as t};
@@ -0,0 +1,3 @@
1
+ import{t as e}from"./react-CybPckBe.js";import{t,u as n}from"./useStore-BQkzWMs-.js";import{l as r}from"./useI18n-T3BwAm0z.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{$ as a,K as o,et as s,l as c,r as l,s as u}from"./data-DsJQo1Qk.js";var d=e();function f(e,t){let n=e?.status??`connecting`;return n===`connected`?`connected`:t===!0?`refused`:n===`connecting`?`connecting`:`down`}function p(e,t){t===`refused`?s?.manageHosts({edit:e}):u(e).reconnect()}var m=`$/ahp/embedMode`,h=`$/ahp/hostList`,g=`$/ahp/hostFilter`,_=`$/ahp/every/sessionsUnread`,v=`$/ahp/every/sessionsWorking`;function y(){if(a()===`multi`)return{unread:_,working:v};let e=l(c());return{unread:e.sessionsUnread,working:e.sessionsWorking}}var b=`hosts:filter`,x={command:`hosts.filter`,menu:b,icon:`🖥︎`,label:{t:`hosts/filter`},when:`${m} == "multi"`,active:`${g} != null`},S=o(`ahpd-web.host-filter`);function C(){try{let e=JSON.parse(localStorage.getItem(S)??`null`);return Array.isArray(e)&&e.length>0&&e.every(e=>typeof e==`string`)?e:null}catch{return null}}function w(e){try{e===null?localStorage.removeItem(S):localStorage.setItem(S,JSON.stringify(e))}catch{}}var T=(e,t)=>`${e}\u0000${t}`;function E(e){let t=e.indexOf(`\0`);return t<0?{host:c(),id:e}:{host:e.slice(0,t),id:e.slice(t+1)}}function D(e){return a()===`multi`?(e.get(`$/ahp/hostList`)??[]).map(e=>e.id):[c()]}function O(e,t){return e.get(`$/ahp/hostList`)?.find(e=>e.id===t)?.name??t}function k(e,t){let n=new Map,r=()=>{let r=new Set(D(e.store));for(let[e,t]of n)r.has(e)||(t.dispose(),n.delete(e));for(let e of r)n.has(e)||n.set(e,t(e))};r();let i=e.store.subscribe(h,r);return{dispose:()=>{i.dispose();for(let e of n.values())e.dispose();n.clear()}}}function A(e,t){let n=f(e.get(l(t).connection),e.get(l(t).refused)),i=O(e,t);return n===`connected`?i:r(`hosts/named`,{host:i,state:r(`hosts/state/${n}`)})}function j(e){return a()===`multi`?M(e.get(`$/ahp/hostList`)??[],e.get(`$/ahp/hostFilter`)??null):[c()]}function M(e,t){let n=e.map(e=>e.id),r=t===null?[]:n.filter(e=>t.includes(e));return r.length>0?r:n}function N(){let e=t(h),n=t(g);return(0,d.useMemo)(()=>a()===`multi`?M(e??[],n??null):[c()],[e,n])}function P(){let e=t(h);return(0,d.useMemo)(()=>a()===`multi`?(e??[]).map(e=>e.id):[c()],[e])}function F(){let e=t(h);return(0,d.useCallback)(t=>e?.find(e=>e.id===t)?.name??t,[e])}function I(e){let t=i(),n=e.join(`
2
+ `),r=(0,d.useRef)(null),a=(0,d.useCallback)(e=>{let r=n===``?[]:n.split(`
3
+ `).map(n=>t.store.subscribe(n,e));return()=>{for(let e of r)e.dispose()}},[t,n]);return(0,d.useSyncExternalStore)(a,()=>{let i=e.map(e=>t.store.get(e)),a=r.current;return a!==null&&a.key===n&&a.values.length===i.length&&a.values.every((e,t)=>e===i[t])?a.values:(r.current={key:n,values:i},i)})}function L(){return{title:r(`hosts/filter`),query:{slot:b}}}function R(e,t){e.set(g,t),w(t)}function z(e){if(e.store.set(m,a()),s===void 0||a()!==`multi`)return{dispose:()=>void 0};let t=t=>R(e.store,t);e.store.set(g,C());let i={dispose:()=>void 0},o=r=>{e.store.set(h,r.map(e=>({id:e.id,name:e.name}))),i.dispose(),i=n(...r.map(n=>e.commands.register({id:`hosts.show.${n.id}`,title:()=>A(e.store,n.id),slots:[b],active:e=>(e.store.get(`$/ahp/hostFilter`)??[]).includes(n.id),run:e=>{let r=e.store.get(`$/ahp/hostFilter`)??[],i=r.includes(n.id)?r.filter(e=>e!==n.id):[...r,n.id];t(i.length===0?null:i)}})))};s.hosts().then(o);let c=()=>{let t=D(e.store),n=n=>t.reduce((t,r)=>t+(e.store.get(n(l(r)))??0),0);e.store.set(_,n(e=>e.sessionsUnread)),e.store.set(v,n(e=>e.sessionsWorking))};return n(k(e,t=>(c(),n(e.store.subscribe(l(t).sessionsUnread,c),e.store.subscribe(l(t).sessionsWorking,c)))),{dispose:()=>i.dispose()},{dispose:s.onHosts(o)},{dispose:s.onFocusHost?.(e=>t([e]))??(()=>void 0)},e.commands.register({id:`hosts.filter`,title:()=>r(`hosts/filter`),run:e=>{e.host!==void 0&&e.host.pushList(L())}}),e.commands.register({id:`hosts.every`,title:()=>r(`hosts/every`),slots:[b],active:e=>(e.store.get(`$/ahp/hostFilter`)??null)===null,run:()=>t(null)}))}export{N as _,A as a,T as c,y as d,R as f,F as g,P as h,D as i,E as l,I as m,x as n,O as o,j as p,h as r,k as s,g as t,z as u,p as v,f as y};