@ahpd/web 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -2
- package/dist/app/assets/AudioPage-DAAck9ph.js +1 -0
- package/dist/app/assets/Composer-Dp_Z0bXp.js +2 -0
- package/dist/app/assets/ContextMenu-BV1gdog0.js +1 -0
- package/dist/app/assets/CopyButton-DWmFc5fw.js +1 -0
- package/dist/app/assets/{DataTable-Bv6EG42F.js → DataTable-8woVlU4S.js} +1 -1
- package/dist/app/assets/Details-ByJkvhJN.js +1 -0
- package/dist/app/assets/DiffPage-Ck21x0bd.js +3 -0
- package/dist/app/assets/Edit-rv9ZDDDu.js +1 -0
- package/dist/app/assets/Explorer-CDm6vvt6.js +1 -0
- package/dist/app/assets/Explorer-CNz5U5q-.js +1 -0
- package/dist/app/assets/{Explorer-Cxl5QGRN.js → Explorer-DS_lqr3R.js} +1 -1
- package/dist/app/assets/{Explorer-C4zxSdMF.js → Explorer-DoNVPZ-C.js} +1 -1
- package/dist/app/assets/Explorer-VoN5CYd5.js +1 -0
- package/dist/app/assets/{ExplorerList-Bdp0sfLW.js → ExplorerList-DfesRs43.js} +1 -1
- package/dist/app/assets/FilePage-CAUDXIh9.js +3 -0
- package/dist/app/assets/Filter-D1FpBH5R.js +1 -0
- package/dist/app/assets/HostSwitcher-BuSTjyO6.js +1 -0
- package/dist/app/assets/ImagePage-cy_jkGi1.js +1 -0
- package/dist/app/assets/{Info-levnJ1pH.js → Info-DqnamTeq.js} +1 -1
- package/dist/app/assets/LocaleToggle-B91QrqGs.js +1 -0
- package/dist/app/assets/{LogPage-QIumryht.js → LogPage-CKm7_URt.js} +1 -1
- package/dist/app/assets/LoginForm-rBz-5JFG.js +1 -0
- package/dist/app/assets/Markdown-_Awuh7Ku.js +4 -0
- package/dist/app/assets/MarkdownPage-DgalhN_B.js +1 -0
- package/dist/app/assets/MountTitle-Bx_Vo8tF.js +1 -0
- package/dist/app/assets/New-D6QCCHrx.js +3 -0
- package/dist/app/assets/Page-CnfUTsQD.js +2 -0
- package/dist/app/assets/Page-DGp_WebG.js +1 -0
- package/dist/app/assets/Page-Dqf45zd4.js +1 -0
- package/dist/app/assets/Pagination-fEfxXCWD.js +1 -0
- package/dist/app/assets/PortaLock-BFpTWuKB.js +2 -0
- package/dist/app/assets/{SchemaForm-D6mGj6Xh.js → SchemaForm-DKxGZpnK.js} +1 -1
- package/dist/app/assets/Settings-ALaVSuhU.js +1 -0
- package/dist/app/assets/{SigillumGate-DoeGhrpT.js → SigillumGate-Bq_GLDvI.js} +1 -1
- package/dist/app/assets/SingleLayout-BzRi_cEY.js +1 -0
- package/dist/app/assets/SpatialLayout-Cote5YNZ.js +1 -0
- package/dist/app/assets/SplitLayout-CK5SuMF1.js +1 -0
- package/dist/app/assets/StackLayout-BUdng0sD.js +1 -0
- package/dist/app/assets/Start-D5KBqSwf.js +1 -0
- package/dist/app/assets/Start-Dtuu25RL.css +1 -0
- package/dist/app/assets/StatusDot-CC7gdsot.js +1 -0
- package/dist/app/assets/TabLayout-ByKrZ0yM.js +1 -0
- package/dist/app/assets/TabPanelLayout-B4DWG6Zm.js +1 -0
- package/dist/app/assets/{TerminalPage-C58xO7du.js → TerminalPage-CDtmKMSK.js} +3 -3
- package/dist/app/assets/{ThemeModeToggle-CAippEfJ.js → ThemeModeToggle-C0j9D4s0.js} +1 -1
- package/dist/app/assets/{ThemePicker-CvnWboZg.js → ThemePicker-DEUED0NH.js} +1 -1
- package/dist/app/assets/{Tree-Bb5NwYJ1.js → Tree-fxC7yDSR.js} +1 -1
- package/dist/app/assets/VideoPage-Cz7g_2E1.js +1 -0
- package/dist/app/assets/WindowControls-BWi1hOPh.js +1 -0
- package/dist/app/assets/{actions-BQzD99j0.js → actions-BzJiPQuh.js} +1 -1
- package/dist/app/assets/changeset-eZAmDe3s.js +1 -0
- package/dist/app/assets/{channel-Cqz_LUS2.js → channel-UD2KGCy_.js} +1 -1
- package/dist/app/assets/{clicks-IyfKhKFh.js → clicks-DIh3kBLi.js} +1 -1
- package/dist/app/assets/clike-pnxEhJ5P.js +1 -0
- package/dist/app/assets/composer-commands-B8AF8OGi.js +2 -0
- package/dist/app/assets/data-hUAVersf.js +2 -0
- package/dist/app/assets/dist-1MAn9CBM.js +1 -0
- package/dist/app/assets/dist-33oU5N7i.js +1 -0
- package/dist/app/assets/dist-B4E-6SqB.js +1 -0
- package/dist/app/assets/dist-BDH0Q8eg.js +13 -0
- package/dist/app/assets/dist-BdNRSgzN.js +2 -0
- package/dist/app/assets/dist-BfGIsxxP.js +1 -0
- package/dist/app/assets/dist-Bq_hlZV8.js +1 -0
- package/dist/app/assets/dist-BwHJSc3S.js +6 -0
- package/dist/app/assets/dist-C5-Hv917.js +1 -0
- package/dist/app/assets/dist-CxEuuaKq.js +1 -0
- package/dist/app/assets/dist-DUFzb_Eu.js +23 -0
- package/dist/app/assets/dist-DX2Uz40S.js +9 -0
- package/dist/app/assets/dist-Db_OB0lX.js +11 -0
- package/dist/app/assets/dist-IR189dk6.js +1 -0
- package/dist/app/assets/dist-rmKzqdIO.js +1 -0
- package/dist/app/assets/dist-uvIW_qsj.js +1 -0
- package/dist/app/assets/dockerfile-BDePf5PZ.js +1 -0
- package/dist/app/assets/emojis-7RT6GvLa.js +1 -0
- package/dist/app/assets/folder-path-CTpCmycG.js +1 -0
- package/dist/app/assets/index-B1VQ36Tb.css +1 -0
- package/dist/app/assets/index-yhQX4tVS.js +14 -0
- package/dist/app/assets/lua-DPCEkfD_.js +1 -0
- package/dist/app/assets/media-Coozt7AL.js +1 -0
- package/dist/app/assets/{notify-Bb548jAB.js → notify-BQ9fSOfy.js} +1 -1
- package/dist/app/assets/registry-iidw4F1W.js +1 -0
- package/dist/app/assets/ruby-ChfNwlCY.js +1 -0
- package/dist/app/assets/sessions-8PScJEDe.js +2 -0
- package/dist/app/assets/shell-DwuoZtxw.js +1 -0
- package/dist/app/assets/swift-DKB6_1j6.js +1 -0
- package/dist/app/assets/terminal-BPj7jGw5.js +1 -0
- package/dist/app/assets/text-BdULOY8N.js +1 -0
- package/dist/app/assets/toml-BPTmHmyx.js +1 -0
- package/dist/app/assets/useCloseGuard-B4qJKmaF.js +1 -0
- package/dist/app/assets/useStoreLabel-BuZT1So6.js +1 -0
- package/dist/app/assets/viewers-MssMDn0e.js +1 -0
- package/dist/app/assets/words-CyqfIDyJ.js +2 -0
- package/dist/app/assets/words-T8-D0K4W.js +1 -0
- package/dist/app/index.html +17 -9
- package/dist/embed/index.d.ts +61 -0
- package/dist/embed/index.js +11 -0
- package/dist/plugin/index.js +14 -1
- package/dist/plugin/index.js.map +1 -1
- package/dist/plugin/static.js +3 -2
- package/dist/plugin/static.js.map +1 -1
- package/package.json +29 -3
- package/dist/app/assets/Composer-DpjCaX5G.js +0 -2
- package/dist/app/assets/ContextMenu-qqlGWvJT.js +0 -1
- package/dist/app/assets/Details-Cymq_tLr.js +0 -1
- package/dist/app/assets/DiffPage-CrT1Faon.js +0 -1
- package/dist/app/assets/Edit-KxWRJB1t.js +0 -1
- package/dist/app/assets/Explorer-D9lzbmtd.js +0 -1
- package/dist/app/assets/Explorer-h1FYBfP3.js +0 -1
- package/dist/app/assets/Explorer-kMkPIrYG.js +0 -1
- package/dist/app/assets/FilePage-CWjlubpU.js +0 -1
- package/dist/app/assets/Filter-y-cAyV5s.js +0 -1
- package/dist/app/assets/LocaleToggle-DtU53oIZ.js +0 -1
- package/dist/app/assets/LoginForm-CoxoSwG-.js +0 -1
- package/dist/app/assets/Markdown-BaxWPZc1.js +0 -4
- package/dist/app/assets/MarkdownPage-CNUmYD-d.js +0 -1
- package/dist/app/assets/MountTitle-hWvATFel.js +0 -1
- package/dist/app/assets/New-CWi2ZODd.js +0 -3
- package/dist/app/assets/Page-BXwzlAyC.js +0 -2
- package/dist/app/assets/Page-BlQx3M_Q.js +0 -1
- package/dist/app/assets/Page-DXYj-sYk.js +0 -1
- package/dist/app/assets/Pagination-FSzhBpDU.js +0 -1
- package/dist/app/assets/PortaLock-Dvr-6D1r.js +0 -2
- package/dist/app/assets/Settings--Ciusotp.js +0 -1
- package/dist/app/assets/SingleLayout-CmIAtyIo.js +0 -1
- package/dist/app/assets/SpatialLayout-CacNe1y4.js +0 -1
- package/dist/app/assets/SplitLayout-BANKBMIh.js +0 -1
- package/dist/app/assets/StackLayout-Cz4zMN4f.js +0 -1
- package/dist/app/assets/StatusDot-BwqhMthP.js +0 -1
- package/dist/app/assets/TabLayout-BaH8UNpt.js +0 -1
- package/dist/app/assets/TabPanelLayout-DkFUNHcz.js +0 -1
- package/dist/app/assets/changeset-BY8dw-V-.js +0 -1
- package/dist/app/assets/composer-commands-Bpp7NX4E.js +0 -2
- package/dist/app/assets/data-Fkj0LNnG.js +0 -2
- package/dist/app/assets/diff-eyYjrmkY.js +0 -3
- package/dist/app/assets/emojis-BOylxma2.js +0 -1
- package/dist/app/assets/index-BkzdJo_Y.js +0 -14
- package/dist/app/assets/index-CPXMK2aI.css +0 -1
- package/dist/app/assets/sessions-CEccRVtA.js +0 -2
- package/dist/app/assets/terminal-kD0C2LuZ.js +0 -1
- package/dist/app/assets/text-CmjM0Nin.js +0 -1
- package/dist/app/assets/useI18n-Bfix5MNN.js +0 -1
- package/dist/app/assets/useStoreLabel-m9cem_OG.js +0 -1
- package/dist/app/assets/words-BMjqrsOT.js +0 -1
- package/dist/app/assets/words-BknpHIF3.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e){return RegExp(`^(?:`+e.join(`|`)+`)`,`i`)}function t(e){return RegExp(`^(?:`+e.join(`|`)+`)$`,`i`)}var n=t(`_G,_VERSION,assert,collectgarbage,dofile,error,getfenv,getmetatable,ipairs,load,loadfile,loadstring,module,next,pairs,pcall,print,rawequal,rawget,rawset,require,select,setfenv,setmetatable,tonumber,tostring,type,unpack,xpcall,coroutine.create,coroutine.resume,coroutine.running,coroutine.status,coroutine.wrap,coroutine.yield,debug.debug,debug.getfenv,debug.gethook,debug.getinfo,debug.getlocal,debug.getmetatable,debug.getregistry,debug.getupvalue,debug.setfenv,debug.sethook,debug.setlocal,debug.setmetatable,debug.setupvalue,debug.traceback,close,flush,lines,read,seek,setvbuf,write,io.close,io.flush,io.input,io.lines,io.open,io.output,io.popen,io.read,io.stderr,io.stdin,io.stdout,io.tmpfile,io.type,io.write,math.abs,math.acos,math.asin,math.atan,math.atan2,math.ceil,math.cos,math.cosh,math.deg,math.exp,math.floor,math.fmod,math.frexp,math.huge,math.ldexp,math.log,math.log10,math.max,math.min,math.modf,math.pi,math.pow,math.rad,math.random,math.randomseed,math.sin,math.sinh,math.sqrt,math.tan,math.tanh,os.clock,os.date,os.difftime,os.execute,os.exit,os.getenv,os.remove,os.rename,os.setlocale,os.time,os.tmpname,package.cpath,package.loaded,package.loaders,package.loadlib,package.path,package.preload,package.seeall,string.byte,string.char,string.dump,string.find,string.format,string.gmatch,string.gsub,string.len,string.lower,string.match,string.rep,string.reverse,string.sub,string.upper,table.concat,table.insert,table.maxn,table.remove,table.sort`.split(`,`)),r=t([`and`,`break`,`elseif`,`false`,`nil`,`not`,`or`,`return`,`true`,`function`,`end`,`if`,`then`,`else`,`do`,`while`,`repeat`,`until`,`for`,`in`,`local`]),i=t([`function`,`if`,`repeat`,`do`,`\\(`,`{`]),a=t([`end`,`until`,`\\)`,`}`]),o=e([`end`,`until`,`\\)`,`}`,`else`,`elseif`]);function s(e){for(var t=0;e.eat(`=`);)++t;return e.eat(`[`),t}function c(e,t){var n=e.next();return n==`-`&&e.eat(`-`)?e.eat(`[`)&&/[\[=]/.test(e.peek())?(t.cur=l(s(e),`comment`))(e,t):(e.skipToEnd(),`comment`):n==`"`||n==`'`?(t.cur=u(n))(e,t):n==`[`&&/[\[=]/.test(e.peek())?(t.cur=l(s(e),`string`))(e,t):/\d/.test(n)?(e.eatWhile(/[\w.%]/),`number`):/[\w_]/.test(n)?(e.eatWhile(/[\w\\\-_.]/),`variable`):null}function l(e,t){return function(n,r){for(var i=null,a;(a=n.next())!=null;)if(i==null)a==`]`&&(i=0);else if(a==`=`)++i;else if(a==`]`&&i==e){r.cur=c;break}else i=null;return t}}function u(e){return function(t,n){for(var r=!1,i;(i=t.next())!=null&&(i!=e||r);)r=!r&&i==`\\`;return r||(n.cur=c),`string`}}var d={name:`lua`,startState:function(){return{basecol:0,indentDepth:0,cur:c}},token:function(e,t){if(e.eatSpace())return null;var o=t.cur(e,t),s=e.current();return o==`variable`&&(r.test(s)?o=`keyword`:n.test(s)&&(o=`builtin`)),o!=`comment`&&o!=`string`&&(i.test(s)?++t.indentDepth:a.test(s)&&--t.indentDepth),o},indent:function(e,t,n){var r=o.test(t);return e.basecol+n.unit*(e.indentDepth-+!!r)},languageData:{indentOnInput:/^\s*(?:end|until|else|\)|\})$/,commentTokens:{line:`--`,block:{open:`--[[`,close:`]]--`}}}};export{d as lua};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{M as n,T as r}from"./data-hUAVersf.js";import{t as i}from"./Spinner-B-iOhBZq.js";import{t as a}from"./Alert-CHZkhmDE.js";import{n as o}from"./index-yhQX4tVS.js";import{t as s}from"./text-BdULOY8N.js";var c=t(),l=e(),u=67108864,d=e=>`${(e/1024/1024).toFixed(1)} MB`;function f(e){let[t,i]=(0,c.useState)(null);return(0,c.useEffect)(()=>{if(e===void 0)return;let t=!0,a;return i(null),(async()=>{let t=await n(e);return t!==void 0&&t>67108864?{size:t}:(a=URL.createObjectURL(await r(e,o(e))),{url:a})})().then(e=>{t&&i(e)}).catch(e=>{t&&i({error:e instanceof Error?e.message:String(e)})}),()=>{t=!1,a!==void 0&&URL.revokeObjectURL(a)}},[e]),t}function p({uri:e,children:t}){let n=f(e);if(e===void 0)return(0,l.jsx)(a,{tone:`warning`,message:`No file was named.`});let r=(0,l.jsx)(s,{uri:e});return n===null?(0,l.jsxs)(`div`,{className:`web-file`,children:[r,(0,l.jsx)(i,{label:`Reading the file`})]}):`error`in n?(0,l.jsxs)(`div`,{className:`web-file`,children:[r,(0,l.jsx)(a,{tone:`danger`,title:`Not readable`,message:n.error})]}):`size`in n?(0,l.jsxs)(`div`,{className:`web-file`,children:[r,(0,l.jsxs)(`p`,{className:`web-note web-media__note`,children:[`This file is `,d(n.size),`. Files over `,d(u),` are not shown.`]})]}):(0,l.jsxs)(`div`,{className:`web-file`,children:[r,(0,l.jsx)(`div`,{className:`web-file__body web-media`,children:t(n.url)})]})}export{f as n,p as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"./jsx-runtime-BguD1OXD.js";import{t as n}from"./react-CybPckBe.js";import{t as r,u as i}from"./useStore-BQkzWMs-.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./Button-_R1oktDz.js";import{o as s}from"./data-Fkj0LNnG.js";import{t as c}from"./emojis-BOylxma2.js";import{t as l}from"./ActionList-aOUHK9Z9.js";import{a as u,d,o as f,r as p}from"./terminal-kD0C2LuZ.js";var m=e((e=>{var t=n();function r(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function i(){}var a={d:{f:i,r:function(){throw Error(r(522))},D:i,C:i,L:i,m:i,X:i,S:i,M:i},p:0,findDOMNode:null},o=Symbol.for(`react.portal`),s=Symbol.for(`react.recoverable`),c=Symbol.for(`react.optimistic_key`);function l(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:r==null?null:r===c?c:``+r,children:e,containerInfo:t,implementation:n}}var u=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function d(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,e.browser=function(e){return{$$typeof:s,_reason:e}},e.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(r(299));return l(e,t,null,n)},e.flushSync=function(e){var t=u.T,n=a.p;try{if(u.T=null,a.p=2,e)return e()}finally{u.T=t,a.p=n,a.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,a.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&a.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin),i=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?a.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:i,fetchPriority:o}):n===`script`&&a.d.X(e,{crossOrigin:r,integrity:i,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=d(t.as,t.crossOrigin);a.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}}else t??a.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin);a.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=d(t.as,t.crossOrigin);a.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}else a.d.m(e)}},e.requestFormReset=function(e){a.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return u.H.useFormState(e,t,n)},e.useFormStatus=function(){return u.H.useHostTransitionStatus()},e.version=`19.3.0`})),h=e(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=m()})),g=8e3,_=`$/notify/list`,ee=`$/notify/count`,v=`$/notify/history`;function y(e){return[e.source??``,e.type,e.title,e.description??``].join(` `)}function b(e){let t=new Map,n=new Map,r=new Set,i=[],a=[],o=0;function s(t){i=t,e.set(_,[...i]),e.set(ee,i.length)}function c(t){a=[t,...a.filter(e=>e.id!==t.id)].slice(0,100),e.set(v,[...a])}function l(e){for(let n of t.values())if((n.handles===void 0||n.handles(e))&&n.available())try{n.present(e)}catch{}}function u(e){let t=n.get(e);t!==void 0&&(clearTimeout(t),n.delete(e))}function d(e){u(e.id),!(e.dismissAuto===!1||r.has(e.id))&&n.set(e.id,setTimeout(()=>{n.delete(e.id),f(e.id)},e.dismissTime??2e3))}function f(e){if(u(e),r.delete(e),i.some(t=>t.id===e)){s(i.filter(t=>t.id!==e));for(let n of t.values())n.retract?.(e)}}return{publish(e){let t=e.id===void 0?i.find(t=>y(t)===y(e)):i.find(t=>t.id===e.id);if(t!==void 0){let n={...t,...e,id:t.id,count:t.count+1,at:new Date().toISOString()};return s([n,...i.filter(e=>e.id!==t.id)]),c(n),l(n),d(n),n.id}o+=1;let n={...e,id:e.id??`n${o}`,at:new Date().toISOString(),count:1};return s([n,...i]),c(n),l(n),d(n),n.id},dismiss:f,hold(e){r.add(e),u(e)},release(e){if(!r.delete(e))return;let t=i.find(t=>t.id===e);t!==void 0&&d(t)},update(e,t){let n=i.find(t=>t.id===e);if(n===void 0)return;let r={...n,...t,id:e};s(i.map(t=>t.id===e?r:t)),c(r),l(r),d(r)},list:()=>[...i],history:()=>[...a],forget(){a=[],e.set(v,[])},channels:{register(e){return t.set(e.id,e),{dispose:()=>void t.delete(e.id)}}}}}var x;function te(e){return x??=b(e),x}function ne(){x=void 0}function S(){if(x===void 0)throw Error(`Notifications were read before initNotifications ran.`);return x}function C(e){if(x===void 0)return!1;try{return e(x),!0}catch{return!1}}var w=`$/notify/confirm`,T=`$/notify/confirmStyle`,E=`modal`,D,O=0,k=null;function re(e,t){D=e,e.get(`$/notify/confirmStyle`)===void 0&&e.set(T,t)}function ie(){M(!1),D=void 0}function A(){return D?.get(`$/notify/confirmStyle`)??`modal`}function ae(e){D?.set(T,e)}function j(e){return D===void 0||A()===`native`?Promise.resolve(window.confirm(e.body===void 0?e.title:`${e.title}\n\n${e.body}`)):(M(!1),O+=1,D.set(w,{id:O,title:e.title,...e.body===void 0?{}:{body:e.body},confirmLabel:e.confirmLabel??`Confirm`,cancelLabel:e.cancelLabel??`Cancel`,tone:e.tone??`default`}),new Promise(e=>{k=e}))}function M(e){let t=k;k=null,D?.set(w,null),t?.(e)}var N=new Set([`attention`,`action.finished`,`connection.lost`]),P=6e4;function F(){return typeof window<`u`&&`Notification`in window}function I(){return F()&&window.Notification.permission==="default"}function L(){return F()&&window.Notification.permission===`granted`}async function R(){return F()?window.Notification.requestPermission():`denied`}function z(){let e=typeof document>`u`||document.hasFocus()?null:Date.now(),t=new Map,n=()=>{e??=Date.now()},r=()=>{e=null;for(let e of t.values())e.close();t.clear()};return window.addEventListener(`blur`,n),window.addEventListener(`focus`,r),{id:`browser`,handles:e=>N.has(e.type)&&e.alert!==void 0,available:()=>L()?document.visibilityState===`hidden`||e!==null&&Date.now()-e>=P:!1,present:e=>{let n=e.alert;if(n===void 0)return;let r=new window.Notification(n.title,{...n.body===void 0?{}:{body:n.body},tag:e.source??e.id});r.onclick=()=>{window.focus(),r.close()},t.set(e.id,r)},retract:e=>{t.get(e)?.close(),t.delete(e)},dispose:()=>{window.removeEventListener(`blur`,n),window.removeEventListener(`focus`,r);for(let e of t.values())e.close();t.clear()}}}var B=n(),V=t();function H(){let e=r(w),t=(0,B.useRef)(null),n=e?.id;return(0,B.useEffect)(()=>{if(n===void 0)return;t.current?.focus();let e=e=>{e.key===`Escape`&&(e.stopPropagation(),M(!1))};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[n]),e==null?null:(0,V.jsx)(`div`,{className:`web-confirm`,onClick:()=>M(!1),children:(0,V.jsxs)(`div`,{ref:t,tabIndex:-1,className:`web-confirm__card`,role:`alertdialog`,"aria-modal":`true`,"aria-labelledby":`web-confirm-title`,...e.body===void 0?{}:{"aria-describedby":`web-confirm-body`},onClick:e=>e.stopPropagation(),children:[(0,V.jsx)(`h2`,{id:`web-confirm-title`,className:`web-confirm__title`,children:e.title}),e.body===void 0?null:(0,V.jsx)(`p`,{id:`web-confirm-body`,className:`web-confirm__body`,children:e.body}),(0,V.jsxs)(`div`,{className:`web-confirm__buttons`,children:[(0,V.jsx)(o,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>M(!1),children:e.cancelLabel}),(0,V.jsx)(o,{type:`button`,size:`sm`,variant:e.tone===`danger`?`danger`:`primary`,onClick:()=>M(!0),children:e.confirmLabel})]})]})})}var U={info:c.info,success:c.check,warning:c.warning,danger:c.error},W=4;function G({animation:e=`slide-up`}){let t=r(`$/notify/list`)??[],[n,i]=(0,B.useState)(!1);if(t.length===0)return null;let a=n?t:t.slice(0,W),o=t.length-a.length;return(0,V.jsxs)(`div`,{className:`web-toasts`,role:`region`,"aria-label":`Notifications`,children:[o>0?(0,V.jsx)(`button`,{type:`button`,className:`web-toast__more`,onClick:()=>i(!0),children:`${o} more`}):null,[...a].reverse().map(t=>(0,V.jsx)(K,{notification:t,animation:t.animation??e},t.id))]})}function K({notification:e,animation:t}){let n=a(),[r,i]=(0,B.useState)(!1),s=e.id,l=()=>S().dismiss(s);(0,B.useEffect)(()=>{if(!r)return;let e=S();return e.hold(s),()=>e.release(s)},[s,r]);let u=()=>S().hold(s),d=()=>{r||S().release(s)},f=e=>{n.commands.execute(e.command,e.args),e.dismisses!==!1&&l()};return(0,V.jsxs)(`div`,{className:`web-toast`,"data-tone":e.tone,"data-animation":t,role:e.dismissAuto===!1?`alert`:`status`,onMouseEnter:u,onMouseLeave:d,onFocus:u,onBlur:d,children:[(0,V.jsxs)(`div`,{className:`web-toast__head`,children:[(0,V.jsx)(`span`,{className:`web-toast__icon`,"aria-hidden":`true`,children:e.icon??U[e.tone]}),(0,V.jsx)(`span`,{className:`web-toast__title`,children:e.title}),e.count>1?(0,V.jsx)(`span`,{className:`web-toast__count`,title:`Raised ${e.count} times`,children:`\u{D7}${e.count}`}):null,(0,V.jsx)(`button`,{type:`button`,className:`web-toast__close`,"aria-label":`Dismiss`,onClick:l,children:c.close})]}),e.description===void 0?null:(0,V.jsx)(`p`,{className:`web-toast__body`,children:e.description}),e.detail===void 0?null:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{type:`button`,className:`web-toast__link`,onClick:()=>i(!r),children:r?`Hide details`:`Show details`}),r?(0,V.jsx)(`pre`,{className:`web-toast__detail`,children:e.detail}):null]}),e.actions===void 0||e.actions.length===0?null:(0,V.jsx)(`div`,{className:`web-toast__actions`,children:e.actions.map(e=>(0,V.jsx)(o,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>f(e),children:e.label},e.command))})]})}var q=h(),J=c.terminal;function Y(e,t){let n=f(e.claim,t);return n.kind===`you`?`Yours`:n.kind===`session`?`Held by a session`:`Held by another client`}function oe(e,t){if(!u(e))return Y(e,t);let n=p(e);return`${Y(e,t)}, exited${n===null?``:` with ${n}`}`}function se(e,t){let n=e.store.get(s),r=t.trim().toLowerCase();return(n?.terminals??[]).filter(e=>r===``||`terminal ${d(e)}`.toLowerCase().includes(r)).map(t=>({title:`Terminal: ${d(t)}`,description:oe(t,n?.clientId??null),icon:J,group:`Terminals`,onSelect:n=>{n.closeMenu(),e.commands.execute(`ahp.openTerminal`,{uri:t.resource})}}))}var X=`$/ahp/palette/open`,Z=`ahp:palette`;function Q(){return r(`$/ahp/palette/open`)===!0?(0,q.createPortal)((0,V.jsx)(ce,{}),document.body):null}function ce(){let e=a(),[t,n]=(0,B.useState)(``),i=(0,B.useRef)(null),o=()=>e.store.set(X,!1),c=(0,B.useMemo)(()=>({pushList:()=>void 0,replaceList:()=>void 0,openInline:()=>void 0,openPopover:()=>void 0,back:()=>void 0,closeMenu:o,keepOpen:()=>void 0,insertAtCursor:()=>void 0,replaceActiveToken:()=>void 0,query:``}),[]),u=r(s),d=(0,B.useMemo)(()=>({query:{slot:Z,q:t},extraItems:se(e,t)}),[e,t,u]);return(0,V.jsx)(`div`,{className:`web-palette`,onMouseDown:e=>{e.target===e.currentTarget&&o()},children:(0,V.jsxs)(`div`,{className:`web-palette__box`,role:`dialog`,"aria-label":`Command palette`,onClick:e=>{e.target.closest(`.oo-action-list__row`)!==null&&o()},children:[(0,V.jsx)(`input`,{className:`web-field web-palette__input`,autoFocus:!0,value:t,placeholder:`Type a command or a terminal`,"aria-label":`Command`,onChange:e=>n(e.currentTarget.value),onKeyDown:e=>{if(e.key===`Escape`){e.preventDefault(),o();return}i.current?.handleKey(e)===!0&&e.key===`Enter`&&o()}}),(0,V.jsx)(l,{spec:d,hostCtx:c,manageKeys:!1,ref:i})]})})}function $(e){return{...e.description===void 0?{}:{description:e.description},...e.actions===void 0?{}:{actions:e.actions},...e.source===void 0?{}:{source:e.source},...e.dismissAuto===void 0?{}:{dismissAuto:e.dismissAuto}}}function le(e,t={}){C(n=>{n.publish({type:`action.done`,tone:`success`,icon:t.icon??c.check,title:e,...$(t)})})}function ue(e,t={}){C(n=>{n.publish({type:`attention`,tone:`warning`,icon:t.icon??c.warning,title:e,dismissTime:g,...$(t)})})}function de(e,t,n={}){let r=t instanceof Error?t.message:String(t),i=t instanceof Error?t.stack:void 0;C(t=>{t.publish({type:`action.failed`,tone:`danger`,icon:n.icon??c.warning,title:e,dismissTime:8e3,...$({...n,description:r}),...i===void 0?{}:{detail:i}})})||console.error(e,t)}function fe(e){let t=te(e.store);re(e.store,E);let n=z();return i({dispose:()=>{n.dispose(),ie(),ne()}},e.components.register({component:`Notifications.Toaster`,category:`chrome`,renderer:{kind:`react`,load:async()=>({default:G})}}),e.components.register({component:`Notifications.Confirm`,category:`chrome`,renderer:{kind:`react`,load:async()=>({default:H})}}),t.channels.register({id:`toast`,available:()=>!0,present:()=>void 0}),t.channels.register(n),e.surfaces.mount({surface:`overlay`,key:`notifications:toaster`,resource:{component:`Notifications.Toaster`}}),e.surfaces.mount({surface:`overlay`,key:`notifications:confirm`,resource:{component:`Notifications.Confirm`}}),e.commands.register({id:`notifications.enableAlerts`,title:`Notify me when this tab is in the background`,category:`Notifications`,slots:[Z],run:async()=>{if(L()){t.publish({type:`default`,tone:`success`,title:`Background notifications are already on`});return}if(!I()){t.publish({type:`default`,tone:`warning`,title:`Background notifications are blocked`,description:`The browser will not ask again. Turn them on in the site settings beside the address bar.`,dismissTime:g});return}let e=await R();t.publish({type:`default`,tone:e===`granted`?`success`:`warning`,title:e===`granted`?`Background notifications are on`:`Background notifications were not allowed`})}}),e.commands.register({id:`notifications.confirmStyle`,title:()=>A()===`native`?`Ask in the page's own dialog`:`Ask in the browser's dialog`,category:`Notifications`,slots:[Z],run:()=>ae(A()===`native`?`modal`:`native`)}),e.commands.register({id:`notifications.dismissAll`,title:`Dismiss all notifications`,category:`Notifications`,slots:[Z],run:()=>{for(let e of t.list())t.dismiss(e.id)}}))}export{X as a,J as c,g as d,h as f,ue as i,j as l,le as n,Z as o,de as r,Q as s,fe as t,C as u};
|
|
1
|
+
import{n as e,t}from"./jsx-runtime-BguD1OXD.js";import{t as n}from"./react-CybPckBe.js";import{t as r,u as i}from"./useStore-BQkzWMs-.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./Button-_R1oktDz.js";import{o as s}from"./data-hUAVersf.js";import{t as c}from"./emojis-7RT6GvLa.js";import{t as l}from"./ActionList-aOUHK9Z9.js";import{a as u,d,o as f,r as p}from"./terminal-BPj7jGw5.js";var m=e((e=>{var t=n();function r(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function i(){}var a={d:{f:i,r:function(){throw Error(r(522))},D:i,C:i,L:i,m:i,X:i,S:i,M:i},p:0,findDOMNode:null},o=Symbol.for(`react.portal`),s=Symbol.for(`react.recoverable`),c=Symbol.for(`react.optimistic_key`);function l(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:r==null?null:r===c?c:``+r,children:e,containerInfo:t,implementation:n}}var u=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function d(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,e.browser=function(e){return{$$typeof:s,_reason:e}},e.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(r(299));return l(e,t,null,n)},e.flushSync=function(e){var t=u.T,n=a.p;try{if(u.T=null,a.p=2,e)return e()}finally{u.T=t,a.p=n,a.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,a.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&a.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin),i=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?a.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:i,fetchPriority:o}):n===`script`&&a.d.X(e,{crossOrigin:r,integrity:i,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=d(t.as,t.crossOrigin);a.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}}else t??a.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin);a.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=d(t.as,t.crossOrigin);a.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}else a.d.m(e)}},e.requestFormReset=function(e){a.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return u.H.useFormState(e,t,n)},e.useFormStatus=function(){return u.H.useHostTransitionStatus()},e.version=`19.3.0`})),h=e(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=m()})),g=8e3,_=`$/notify/list`,ee=`$/notify/count`,v=`$/notify/history`;function y(e){return[e.source??``,e.type,e.title,e.description??``].join(` `)}function b(e){let t=new Map,n=new Map,r=new Set,i=[],a=[],o=0;function s(t){i=t,e.set(_,[...i]),e.set(ee,i.length)}function c(t){a=[t,...a.filter(e=>e.id!==t.id)].slice(0,100),e.set(v,[...a])}function l(e){for(let n of t.values())if((n.handles===void 0||n.handles(e))&&n.available())try{n.present(e)}catch{}}function u(e){let t=n.get(e);t!==void 0&&(clearTimeout(t),n.delete(e))}function d(e){u(e.id),!(e.dismissAuto===!1||r.has(e.id))&&n.set(e.id,setTimeout(()=>{n.delete(e.id),f(e.id)},e.dismissTime??2e3))}function f(e){if(u(e),r.delete(e),i.some(t=>t.id===e)){s(i.filter(t=>t.id!==e));for(let n of t.values())n.retract?.(e)}}return{publish(e){let t=e.id===void 0?i.find(t=>y(t)===y(e)):i.find(t=>t.id===e.id);if(t!==void 0){let n={...t,...e,id:t.id,count:t.count+1,at:new Date().toISOString()};return s([n,...i.filter(e=>e.id!==t.id)]),c(n),l(n),d(n),n.id}o+=1;let n={...e,id:e.id??`n${o}`,at:new Date().toISOString(),count:1};return s([n,...i]),c(n),l(n),d(n),n.id},dismiss:f,hold(e){r.add(e),u(e)},release(e){if(!r.delete(e))return;let t=i.find(t=>t.id===e);t!==void 0&&d(t)},update(e,t){let n=i.find(t=>t.id===e);if(n===void 0)return;let r={...n,...t,id:e};s(i.map(t=>t.id===e?r:t)),c(r),l(r),d(r)},list:()=>[...i],history:()=>[...a],forget(){a=[],e.set(v,[])},channels:{register(e){return t.set(e.id,e),{dispose:()=>void t.delete(e.id)}}}}}var x;function te(e){return x??=b(e),x}function ne(){x=void 0}function S(){if(x===void 0)throw Error(`Notifications were read before initNotifications ran.`);return x}function C(e){if(x===void 0)return!1;try{return e(x),!0}catch{return!1}}var w=`$/notify/confirm`,T=`$/notify/confirmStyle`,E=`modal`,D,O=0,k=null;function re(e,t){D=e,e.get(`$/notify/confirmStyle`)===void 0&&e.set(T,t)}function ie(){M(!1),D=void 0}function A(){return D?.get(`$/notify/confirmStyle`)??`modal`}function ae(e){D?.set(T,e)}function j(e){return D===void 0||A()===`native`?Promise.resolve(window.confirm(e.body===void 0?e.title:`${e.title}\n\n${e.body}`)):(M(!1),O+=1,D.set(w,{id:O,title:e.title,...e.body===void 0?{}:{body:e.body},confirmLabel:e.confirmLabel??`Confirm`,cancelLabel:e.cancelLabel??`Cancel`,tone:e.tone??`default`}),new Promise(e=>{k=e}))}function M(e){let t=k;k=null,D?.set(w,null),t?.(e)}var N=new Set([`attention`,`action.finished`,`connection.lost`]),P=6e4;function F(){return typeof window<`u`&&`Notification`in window}function I(){return F()&&window.Notification.permission==="default"}function L(){return F()&&window.Notification.permission===`granted`}async function R(){return F()?window.Notification.requestPermission():`denied`}function z(){let e=typeof document>`u`||document.hasFocus()?null:Date.now(),t=new Map,n=()=>{e??=Date.now()},r=()=>{e=null;for(let e of t.values())e.close();t.clear()};return window.addEventListener(`blur`,n),window.addEventListener(`focus`,r),{id:`browser`,handles:e=>N.has(e.type)&&e.alert!==void 0,available:()=>L()?document.visibilityState===`hidden`||e!==null&&Date.now()-e>=P:!1,present:e=>{let n=e.alert;if(n===void 0)return;let r=new window.Notification(n.title,{...n.body===void 0?{}:{body:n.body},tag:e.source??e.id});r.onclick=()=>{window.focus(),r.close()},t.set(e.id,r)},retract:e=>{t.get(e)?.close(),t.delete(e)},dispose:()=>{window.removeEventListener(`blur`,n),window.removeEventListener(`focus`,r);for(let e of t.values())e.close();t.clear()}}}var B=n(),V=t();function H(){let e=r(w),t=(0,B.useRef)(null),n=e?.id;return(0,B.useEffect)(()=>{if(n===void 0)return;t.current?.focus();let e=e=>{e.key===`Escape`&&(e.stopPropagation(),M(!1))};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[n]),e==null?null:(0,V.jsx)(`div`,{className:`web-confirm`,onClick:()=>M(!1),children:(0,V.jsxs)(`div`,{ref:t,tabIndex:-1,className:`web-confirm__card`,role:`alertdialog`,"aria-modal":`true`,"aria-labelledby":`web-confirm-title`,...e.body===void 0?{}:{"aria-describedby":`web-confirm-body`},onClick:e=>e.stopPropagation(),children:[(0,V.jsx)(`h2`,{id:`web-confirm-title`,className:`web-confirm__title`,children:e.title}),e.body===void 0?null:(0,V.jsx)(`p`,{id:`web-confirm-body`,className:`web-confirm__body`,children:e.body}),(0,V.jsxs)(`div`,{className:`web-confirm__buttons`,children:[(0,V.jsx)(o,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>M(!1),children:e.cancelLabel}),(0,V.jsx)(o,{type:`button`,size:`sm`,variant:e.tone===`danger`?`danger`:`primary`,onClick:()=>M(!0),children:e.confirmLabel})]})]})})}var U={info:c.info,success:c.check,warning:c.warning,danger:c.error},W=4;function G({animation:e=`slide-up`}){let t=r(`$/notify/list`)??[],[n,i]=(0,B.useState)(!1);if(t.length===0)return null;let a=n?t:t.slice(0,W),o=t.length-a.length;return(0,V.jsxs)(`div`,{className:`web-toasts`,role:`region`,"aria-label":`Notifications`,children:[o>0?(0,V.jsx)(`button`,{type:`button`,className:`web-toast__more`,onClick:()=>i(!0),children:`${o} more`}):null,[...a].reverse().map(t=>(0,V.jsx)(K,{notification:t,animation:t.animation??e},t.id))]})}function K({notification:e,animation:t}){let n=a(),[r,i]=(0,B.useState)(!1),s=e.id,l=()=>S().dismiss(s);(0,B.useEffect)(()=>{if(!r)return;let e=S();return e.hold(s),()=>e.release(s)},[s,r]);let u=()=>S().hold(s),d=()=>{r||S().release(s)},f=e=>{n.commands.execute(e.command,e.args),e.dismisses!==!1&&l()};return(0,V.jsxs)(`div`,{className:`web-toast`,"data-tone":e.tone,"data-animation":t,role:e.dismissAuto===!1?`alert`:`status`,onMouseEnter:u,onMouseLeave:d,onFocus:u,onBlur:d,children:[(0,V.jsxs)(`div`,{className:`web-toast__head`,children:[(0,V.jsx)(`span`,{className:`web-toast__icon`,"aria-hidden":`true`,children:e.icon??U[e.tone]}),(0,V.jsx)(`span`,{className:`web-toast__title`,children:e.title}),e.count>1?(0,V.jsx)(`span`,{className:`web-toast__count`,title:`Raised ${e.count} times`,children:`\u{D7}${e.count}`}):null,(0,V.jsx)(`button`,{type:`button`,className:`web-toast__close`,"aria-label":`Dismiss`,onClick:l,children:c.close})]}),e.description===void 0?null:(0,V.jsx)(`p`,{className:`web-toast__body`,children:e.description}),e.detail===void 0?null:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{type:`button`,className:`web-toast__link`,onClick:()=>i(!r),children:r?`Hide details`:`Show details`}),r?(0,V.jsx)(`pre`,{className:`web-toast__detail`,children:e.detail}):null]}),e.actions===void 0||e.actions.length===0?null:(0,V.jsx)(`div`,{className:`web-toast__actions`,children:e.actions.map(e=>(0,V.jsx)(o,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>f(e),children:e.label},e.command))})]})}var q=h(),J=c.terminal;function Y(e,t){let n=f(e.claim,t);return n.kind===`you`?`Yours`:n.kind===`session`?`Held by a session`:`Held by another client`}function oe(e,t){if(!u(e))return Y(e,t);let n=p(e);return`${Y(e,t)}, exited${n===null?``:` with ${n}`}`}function se(e,t){let n=e.store.get(s),r=t.trim().toLowerCase();return(n?.terminals??[]).filter(e=>r===``||`terminal ${d(e)}`.toLowerCase().includes(r)).map(t=>({title:`Terminal: ${d(t)}`,description:oe(t,n?.clientId??null),icon:J,group:`Terminals`,onSelect:n=>{n.closeMenu(),e.commands.execute(`ahp.openTerminal`,{uri:t.resource})}}))}var X=`$/ahp/palette/open`,Z=`ahp:palette`;function Q(){return r(`$/ahp/palette/open`)===!0?(0,q.createPortal)((0,V.jsx)(ce,{}),document.body):null}function ce(){let e=a(),[t,n]=(0,B.useState)(``),i=(0,B.useRef)(null),o=()=>e.store.set(X,!1),c=(0,B.useMemo)(()=>({pushList:()=>void 0,replaceList:()=>void 0,openInline:()=>void 0,openPopover:()=>void 0,back:()=>void 0,closeMenu:o,keepOpen:()=>void 0,insertAtCursor:()=>void 0,replaceActiveToken:()=>void 0,query:``}),[]),u=r(s),d=(0,B.useMemo)(()=>({query:{slot:Z,q:t},extraItems:se(e,t)}),[e,t,u]);return(0,V.jsx)(`div`,{className:`web-palette`,onMouseDown:e=>{e.target===e.currentTarget&&o()},children:(0,V.jsxs)(`div`,{className:`web-palette__box`,role:`dialog`,"aria-label":`Command palette`,onClick:e=>{e.target.closest(`.oo-action-list__row`)!==null&&o()},children:[(0,V.jsx)(`input`,{className:`web-field web-palette__input`,autoFocus:!0,value:t,placeholder:`Type a command or a terminal`,"aria-label":`Command`,onChange:e=>n(e.currentTarget.value),onKeyDown:e=>{if(e.key===`Escape`){e.preventDefault(),o();return}i.current?.handleKey(e)===!0&&e.key===`Enter`&&o()}}),(0,V.jsx)(l,{spec:d,hostCtx:c,manageKeys:!1,ref:i})]})})}function $(e){return{...e.description===void 0?{}:{description:e.description},...e.actions===void 0?{}:{actions:e.actions},...e.source===void 0?{}:{source:e.source},...e.dismissAuto===void 0?{}:{dismissAuto:e.dismissAuto}}}function le(e,t={}){C(n=>{n.publish({type:`action.done`,tone:`success`,icon:t.icon??c.check,title:e,...$(t)})})}function ue(e,t={}){C(n=>{n.publish({type:`attention`,tone:`warning`,icon:t.icon??c.warning,title:e,dismissTime:g,...$(t)})})}function de(e,t,n={}){let r=t instanceof Error?t.message:String(t),i=t instanceof Error?t.stack:void 0;C(t=>{t.publish({type:`action.failed`,tone:`danger`,icon:n.icon??c.warning,title:e,dismissTime:8e3,...$({...n,description:r}),...i===void 0?{}:{detail:i}})})||console.error(e,t)}function fe(e){let t=te(e.store);re(e.store,E);let n=z();return i({dispose:()=>{n.dispose(),ie(),ne()}},e.components.register({component:`Notifications.Toaster`,category:`chrome`,renderer:{kind:`react`,load:async()=>({default:G})}}),e.components.register({component:`Notifications.Confirm`,category:`chrome`,renderer:{kind:`react`,load:async()=>({default:H})}}),t.channels.register({id:`toast`,available:()=>!0,present:()=>void 0}),t.channels.register(n),e.surfaces.mount({surface:`overlay`,key:`notifications:toaster`,resource:{component:`Notifications.Toaster`}}),e.surfaces.mount({surface:`overlay`,key:`notifications:confirm`,resource:{component:`Notifications.Confirm`}}),e.commands.register({id:`notifications.enableAlerts`,title:`Notify me when this tab is in the background`,category:`Notifications`,slots:[Z],run:async()=>{if(L()){t.publish({type:`default`,tone:`success`,title:`Background notifications are already on`});return}if(!I()){t.publish({type:`default`,tone:`warning`,title:`Background notifications are blocked`,description:`The browser will not ask again. Turn them on in the site settings beside the address bar.`,dismissTime:g});return}let e=await R();t.publish({type:`default`,tone:e===`granted`?`success`:`warning`,title:e===`granted`?`Background notifications are on`:`Background notifications were not allowed`})}}),e.commands.register({id:`notifications.confirmStyle`,title:()=>A()===`native`?`Ask in the page's own dialog`:`Ask in the browser's dialog`,category:`Notifications`,slots:[Z],run:()=>ae(A()===`native`?`modal`:`native`)}),e.commands.register({id:`notifications.dismissAll`,title:`Dismiss all notifications`,category:`Notifications`,slots:[Z],run:()=>{for(let e of t.list())t.dismiss(e.id)}}))}export{X as a,J as c,g as d,h as f,ue as i,j as l,le as n,Z as o,de as r,Q as s,fe as t,C as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=new Map,t=new Map,n=new Set,r=`en`,i=`en`;function a(){for(let e of[...n])e()}function o(e){return e.split(/[./]/).filter(Boolean)}function s(e,t){let n=e;for(let e of t){if(typeof n!=`object`||!n)return;n=n[e]}return n}function c(e,t){return e.replace(/\\([{}])|\{(\w+)\}/g,(e,n,r)=>{if(n)return n;if(!t)return e;let i=t[r];return i==null?``:String(i)})}function l(e){let[t,n]=e.split(`-`);return n?{language:t,country:n}:{language:t}}function u(e){e!==r&&(r=e,a())}function d(){return r}function f(){let n=new Map;for(let t of e.keys())n.set(t,{locale:t,...l(t)});for(let[e,r]of t)n.set(e,r);return[...n.values()]}function p(n=r){return t.get(n)??(e.has(n)?{locale:n,...l(n)}:void 0)}function m(t,n=r){let a=o(t);return s(e.get(n),a)??s(e.get(i),a)}function h(e,t=r){let n=m(e,t);return typeof n==`string`?n:void 0}function g(e,t){let n=typeof t==`string`?{fallback:t}:t,r=h(e)??n?.fallback;return r===void 0?`{${o(e).join(`/`)}}`:c(r,n)}function _(e){return n.add(e),()=>void n.delete(e)}export{_ as a,u as i,p as n,g as o,f as r,d as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e){for(var t={},n=0,r=e.length;n<r;++n)t[e[n]]=!0;return t}var t=`alias.and.BEGIN.begin.break.case.class.def.defined?.do.else.elsif.END.end.ensure.false.for.if.in.module.next.not.or.redo.rescue.retry.return.self.super.then.true.undef.unless.until.when.while.yield.nil.raise.throw.catch.fail.loop.callcc.caller.lambda.proc.public.protected.private.require.load.require_relative.extend.autoload.__END__.__FILE__.__LINE__.__dir__`.split(`.`),n=e(t),r=e([`def`,`class`,`case`,`for`,`while`,`until`,`module`,`catch`,`loop`,`proc`,`begin`]),i=e([`end`,`until`]),a={"[":`]`,"{":`}`,"(":`)`},o={"]":`[`,"}":`{`,")":`(`},s;function c(e,t,n){return n.tokenize.push(e),e(t,n)}function l(e,t){if(e.sol()&&e.match(`=begin`)&&e.eol())return t.tokenize.push(h),`comment`;if(e.eatSpace())return null;var n=e.next(),r;if(n=="`"||n==`'`||n==`"`)return c(p(n,`string`,n==`"`||n=="`"),e,t);if(n==`/`)return u(e)?c(p(n,`string.special`,!0),e,t):`operator`;if(n==`%`){var i=`string`,o=!0;e.eat(`s`)?i=`atom`:e.eat(/[WQ]/)?i=`string`:e.eat(/[r]/)?i=`string.special`:e.eat(/[wxq]/)&&(i=`string`,o=!1);var l=e.eat(/[^\w\s=]/);return l?(a.propertyIsEnumerable(l)&&(l=a[l]),c(p(l,i,o,!0),e,t)):`operator`}if(n==`#`)return e.skipToEnd(),`comment`;if(n==`<`&&(r=e.match(/^<([-~])[\`\"\']?([a-zA-Z_?]\w*)[\`\"\']?(?:;|$)/)))return c(m(r[2],r[1]),e,t);if(n==`0`)return e.eat(`x`)?e.eatWhile(/[\da-fA-F]/):e.eat(`b`)?e.eatWhile(/[01]/):e.eat(`.`)?e.eat(/[\d_]*(?:[eE][+\-]?[\d_]+)?/):e.eatWhile(/[0-7]/),`number`;if(/\d/.test(n))return e.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+\-]?[\d_]+)?/),`number`;if(n==`?`){for(;e.match(/^\\[CM]-/););return e.eat(`\\`)?e.eatWhile(/\w/):e.next(),`string`}if(n==`:`)return e.eat(`'`)?c(p(`'`,`atom`,!1),e,t):e.eat(`"`)?c(p(`"`,`atom`,!0),e,t):e.eat(/[\<\>]/)?(e.eat(/[\<\>]/),`atom`):e.eat(/[\+\-\*\/\&\|\:\!]/)?`atom`:e.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(e.eatWhile(/[\w$\xa1-\uffff]/),e.eat(/[\?\!\=]/),`atom`):`operator`;if(n==`@`&&e.match(/^@?[a-zA-Z_\xa1-\uffff]/))return e.eat(`@`),e.eatWhile(/[\w\xa1-\uffff]/),`propertyName`;if(n==`$`)return e.eat(/[a-zA-Z_]/)?e.eatWhile(/[\w]/):e.eat(/\d/)?e.eat(/\d/):e.next(),`variableName.special`;if(/[a-zA-Z_\xa1-\uffff]/.test(n))return e.eatWhile(/[\w\xa1-\uffff]/),e.eat(/[\?\!]/),e.eat(`:`)?`atom`:`variable`;if(n==`|`&&(t.varList||t.lastTok==`{`||t.lastTok==`do`))return s=`|`,null;if(/[\(\)\[\]{}\\;]/.test(n))return s=n,null;if(n==`-`&&e.eat(`>`))return`operator`;if(/[=+\-\/*:\.^%<>~|]/.test(n)){var d=e.eatWhile(/[=+\-\/*:\.^%<>~|]/);return n==`.`&&!d&&(s=`.`),`operator`}return null}function u(e){for(var t=e.pos,n=0,r,i=!1,a=!1;(r=e.next())!=null;)if(a)a=!1;else{if(`[{(`.indexOf(r)>-1)n++;else if(`]})`.indexOf(r)>-1){if(n--,n<0)break}else if(r==`/`&&n==0){i=!0;break}a=r==`\\`}return e.backUp(e.pos-t),i}function d(e){return e||=1,function(t,n){if(t.peek()==`}`){if(e==1)return n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n);n.tokenize[n.tokenize.length-1]=d(e-1)}else t.peek()==`{`&&(n.tokenize[n.tokenize.length-1]=d(e+1));return l(t,n)}}function f(){var e=!1;return function(t,n){return e?(n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n)):(e=!0,l(t,n))}}function p(e,t,n,r){return function(i,a){var o=!1,s;for(a.context.type===`read-quoted-paused`&&(a.context=a.context.prev,i.eat(`}`));(s=i.next())!=null;){if(s==e&&(r||!o)){a.tokenize.pop();break}if(n&&s==`#`&&!o){if(i.eat(`{`)){e==`}`&&(a.context={prev:a.context,type:`read-quoted-paused`}),a.tokenize.push(d());break}if(/[@\$]/.test(i.peek())){a.tokenize.push(f());break}}o=!o&&s==`\\`}return t}}function m(e,t){return function(n,r){return t&&n.eatSpace(),n.match(e)?r.tokenize.pop():n.skipToEnd(),`string`}}function h(e,t){return e.sol()&&e.match(`=end`)&&e.eol()&&t.tokenize.pop(),e.skipToEnd(),`comment`}var g={name:`ruby`,startState:function(e){return{tokenize:[l],indented:0,context:{type:`top`,indented:-e},continuedLine:!1,lastTok:null,varList:!1}},token:function(e,t){s=null,e.sol()&&(t.indented=e.indentation());var a=t.tokenize[t.tokenize.length-1](e,t),o,c=s;if(a==`variable`){var l=e.current();a=t.lastTok==`.`?`property`:n.propertyIsEnumerable(e.current())?`keyword`:/^[A-Z]/.test(l)?`tag`:t.lastTok==`def`||t.lastTok==`class`||t.varList?`def`:`variable`,a==`keyword`&&(c=l,r.propertyIsEnumerable(l)?o=`indent`:i.propertyIsEnumerable(l)?o=`dedent`:((l==`if`||l==`unless`)&&e.column()==e.indentation()||l==`do`&&t.context.indented<t.indented)&&(o=`indent`))}return(s||a&&a!=`comment`)&&(t.lastTok=c),s==`|`&&(t.varList=!t.varList),o==`indent`||/[\(\[\{]/.test(s)?t.context={prev:t.context,type:s||a,indented:t.indented}:(o==`dedent`||/[\)\]\}]/.test(s))&&t.context.prev&&(t.context=t.context.prev),e.eol()&&(t.continuedLine=s==`\\`||a==`operator`),a},indent:function(e,t,n){if(e.tokenize[e.tokenize.length-1]!=l)return null;var r=t&&t.charAt(0),i=e.context,a=i.type==o[r]||i.type==`keyword`&&/^(?:end|until|else|elsif|when|rescue)\b/.test(t);return i.indented+(a?0:n.unit)+(e.continuedLine?n.unit:0)},languageData:{indentOnInput:/^\s*(?:end|rescue|elsif|else|\})$/,commentTokens:{line:`#`},autocomplete:t}};export{g as ruby};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Explorer-DoNVPZ-C.js","./jsx-runtime-BguD1OXD.js","./react-CybPckBe.js","./notify-BQ9fSOfy.js","./useStore-BQkzWMs-.js","./ScenaProvider-6A3TJumQ.js","./mount-context-DZgEFVFG.js","./Button-_R1oktDz.js","./styles-yrzHRgom.js","./_utils-DZVsX11M.js","./Button-CRZ1_3KW.css","./data-hUAVersf.js","./emojis-7RT6GvLa.js","./ActionList-aOUHK9Z9.js","./colors-BieSUSt7.js","./ActionList-Bawu-Lja.css","./terminal-BPj7jGw5.js","./words-T8-D0K4W.js","./Spinner-B-iOhBZq.js","./Spinner-B56wMtzv.css","./Alert-CHZkhmDE.js","./Icon-CIQ7doud.js","./Icon-BFMW_Ijn.css","./Alert-D6FTUHBY.css","./state-KGSq646f.js","./ExplorerList-DfesRs43.js","./ContextMenu-BV1gdog0.js","./Page-CnfUTsQD.js","./Badge-BDEW5PFb.js","./Badge-B_GtDNjv.css","./Markdown-_Awuh7Ku.js","./Markdown-D4ts0B_q.css","./Composer-Dp_Z0bXp.js","./composer-commands-B8AF8OGi.js","./drag-ruzgQUFW.js","./Text-MPtQvYE-.js","./Text-D2KlerVw.css","./turn-BoF7W1h6.js","./CopyButton-DWmFc5fw.js","./clicks-DIh3kBLi.js","./channel-UD2KGCy_.js","./New-D6QCCHrx.js","./useCloseGuard-B4qJKmaF.js","./folder-path-CTpCmycG.js","./words-CyqfIDyJ.js","./Start-D5KBqSwf.js","./index-yhQX4tVS.js","./surface-presentation-CT86pw6J.js","./registry-iidw4F1W.js","./preload-helper-BaNbYf_w.js","./sigillum-Bev0l9LS.js","./TextField-DnSHrmJM.js","./_field-parts-BuPjFCuf.js","./_field-parts-DannIEUW.css","./_field-parts-CfQcSJYh.css","./DateTimeInput-x1XGuNl0.css","./state-DRVsnGrf.js","./viewers-MssMDn0e.js","./index-B1VQ36Tb.css","./Start-Dtuu25RL.css","./Details-ByJkvhJN.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{d as e,o as t,u as n}from"./notify-BQ9fSOfy.js";import{u as r}from"./useStore-BQkzWMs-.js";import{n as i,t as a}from"./surface-presentation-CT86pw6J.js";import{t as o}from"./preload-helper-BaNbYf_w.js";import{N as s,c,q as l}from"./data-hUAVersf.js";import{t as u}from"./emojis-7RT6GvLa.js";import{c as d}from"./composer-commands-B8AF8OGi.js";import{t as f}from"./state-KGSq646f.js";var p={"sidebar:left":{xsmall:`sheet`,small:`floating`},"sidebar:right":{xsmall:`floating`,small:`floating`},activitybar:{xsmall:`bar`}},m=e=>`session-alert:${e}`;function h(e,t){return e===void 0||e===t?null:t===`input`?`needs-you`:e!==`running`&&e!==`input`?null:t===`idle`?`finished`:t===`error`?`failed`:null}function g(t,n){let r=t.title===``?`Untitled`:t.title,i=[{label:`Open`,command:`ahp.openSession`,args:{resource:t.resource}}],a={id:m(t.resource),source:m(t.resource),actions:i};return n===`needs-you`?{...a,type:`attention`,tone:`warning`,icon:u.warning,title:`${r} needs you`,dismissAuto:!1,alert:{title:r,body:`Needs you`}}:n===`failed`?{...a,type:`action.finished`,tone:`danger`,icon:u.warning,title:`${r} failed`,dismissTime:e,alert:{title:r,body:`Failed`}}:{...a,type:`action.finished`,tone:`success`,icon:u.check,title:`${r} finished`,dismissTime:e,alert:{title:r,body:`Finished`}}}function _(e,t){return e.store.get(`$/ahp/activeSession`)===t&&document.visibilityState===`visible`&&document.hasFocus()}function v(e){let t=null;return e.store.subscribe(c,()=>{let r=e.store.get(c);if(r===void 0)return;let i=new Map(r.map(e=>[e.resource,l(e.status)])),a=t;if(t=i,a!==null)for(let t of r){let r=i.get(t.resource),o=a.get(t.resource);o===`input`&&r!==`input`&&n(e=>e.dismiss(m(t.resource)));let s=h(o,r);s===null||_(e,t.resource)||n(e=>e.publish(g(t,s)))}})}var y=`$/modus/class`,b=`ahp:sessions`;function x(e,t,n=`sidebar:left`){if(!a(i(n,t,p)))return;let r=e.layout.get().surfaces[n];r?.visible!==!1&&e.layout.setSurface(n,{...r,visible:!1})}function S(e){return r(d(e),v(e),e.components.register({component:`SessionExplorer`,category:`page`,renderer:{kind:`react`,load:()=>o(()=>import(`./Explorer-DoNVPZ-C.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]),import.meta.url)}}),e.components.register({component:`SessionPage`,category:`page`,props:{icon:u.sessions},renderer:{kind:`react`,load:()=>o(()=>import(`./Page-CnfUTsQD.js`),__vite__mapDeps([27,1,2,4,5,6,7,8,9,10,11,17,12,28,14,29,18,19,30,31,20,21,22,23,32,3,13,15,16,33,34,35,36,24,37,38,39,40]),import.meta.url)}}),e.components.register({component:`NewSessionPage`,category:`page`,props:{icon:u.sessions},renderer:{kind:`react`,load:()=>o(()=>import(`./New-D6QCCHrx.js`),__vite__mapDeps([41,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,42,17,20,21,22,23,32,33,34,35,36,43,44,37]),import.meta.url)}}),e.components.register({component:`StartPage`,category:`page`,renderer:{kind:`react`,load:()=>o(()=>import(`./Start-D5KBqSwf.js`),__vite__mapDeps([45,1,5,2,7,8,9,10,46,3,4,6,11,12,13,14,15,16,47,48,49,50,17,51,52,53,54,55,56,43,57,58,59]),import.meta.url)}}),e.surfaces.setEmpty(`main`,{component:`StartPage`}),e.components.register({component:`SessionDetails`,category:`page`,renderer:{kind:`react`,load:()=>o(()=>import(`./Details-ByJkvhJN.js`),__vite__mapDeps([60,1,2,4,5,6,11,17,16,24,37,40]),import.meta.url)}}),e.commands.register({id:`ahp.showSessions`,title:`Show sessions`,category:`Sessions`,slots:[t],run:e=>e.commands.execute(`sidebar.activate`,{section:b})}),e.commands.register({id:`ahp.newSession`,title:`New session`,category:`Sessions`,slots:[t],run:(e,t)=>{let n=t?.provider;n!==void 0&&e.scena.surfaces.close(`session:new`),e.surfaces.open({surface:`main`,key:`session:new`,resource:{component:`NewSessionPage`,...n===void 0?{}:{provider:n}},props:{title:`New session`}}),x(e.scena,e.store.get(y)??`large`)}}),e.commands.register({id:`ahp.openSession`,title:`Open session`,run:(e,t)=>{let n=t?.resource;n!==void 0&&(e.store.set(f,n),e.surfaces.open({surface:`main`,key:`session:${n}`,resource:{component:`SessionPage`,resource:n},props:{title:{path:s(n)}}}),x(e.scena,e.store.get(y)??`large`),x(e.scena,e.store.get(y)??`large`,`sidebar:right`))}}),e.surfaces.mount({surface:`sidebar:right`,key:`session:details`,resource:{component:`SessionDetails`},props:{title:`Session`}}),e.surfaces.mount({surface:`sidebar:left`,key:`sessions:explorer`,when:`$/layout/surfaces/sidebar:left/section == "${b}"`,resource:{component:`SessionExplorer`}}))}export{p as i,x as n,S as r,b as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={};function t(t,n){for(var r=0;r<n.length;r++)e[n[r]]=t}var n=[`true`,`false`],r=[`if`,`then`,`do`,`else`,`elif`,`while`,`until`,`for`,`in`,`esac`,`fi`,`fin`,`fil`,`done`,`exit`,`set`,`unset`,`export`,`function`],i=`ab.awk.bash.beep.cat.cc.cd.chown.chmod.chroot.clear.cp.curl.cut.diff.echo.find.gawk.gcc.get.git.grep.hg.kill.killall.ln.ls.make.mkdir.openssl.mv.nc.nl.node.npm.ping.ps.restart.rm.rmdir.sed.service.sh.shopt.shred.source.sort.sleep.ssh.start.stop.su.sudo.svn.tee.telnet.top.touch.vi.vim.wall.wc.wget.who.write.yes.zsh`.split(`.`);t(`atom`,n),t(`keyword`,r),t(`builtin`,i);function a(t,n){if(t.eatSpace())return null;var r=t.sol(),i=t.next();if(i===`\\`)return t.next(),null;if(i===`'`||i===`"`||i==="`")return n.tokens.unshift(o(i,i==="`"?`quote`:`string`)),u(t,n);if(i===`#`)return r&&t.eat(`!`)?(t.skipToEnd(),`meta`):(t.skipToEnd(),`comment`);if(i===`$`)return n.tokens.unshift(c),u(t,n);if(i===`+`||i===`=`)return`operator`;if(i===`-`)return t.eat(`-`),t.eatWhile(/\w/),`attribute`;if(i==`<`){if(t.match(`<<`))return`operator`;var a=t.match(/^<-?\s*(?:['"]([^'"]*)['"]|([^'"\s]*))/);if(a)return n.tokens.unshift(l(a[1]||a[2])),`string.special`}if(/\d/.test(i)&&(t.eatWhile(/\d/),t.eol()||!/\w/.test(t.peek())))return`number`;t.eatWhile(/[\w-]/);var s=t.current();return t.peek()===`=`&&/\w+/.test(s)?`def`:e.hasOwnProperty(s)?e[s]:null}function o(e,t){var n=e==`(`?`)`:e==`{`?`}`:e;return function(r,i){for(var a,l=!1;(a=r.next())!=null;){if(a===n&&!l){i.tokens.shift();break}if(a===`$`&&!l&&e!==`'`&&r.peek()!=n){l=!0,r.backUp(1),i.tokens.unshift(c);break}if(!l&&e!==n&&a===e)return i.tokens.unshift(o(e,t)),u(r,i);if(!l&&/['"]/.test(a)&&!/['"]/.test(e)){i.tokens.unshift(s(a,`string`)),r.backUp(1);break}l=!l&&a===`\\`}return t}}function s(e,t){return function(n,r){return r.tokens[0]=o(e,t),n.next(),u(n,r)}}var c=function(e,t){t.tokens.length>1&&e.eat(`$`);var n=e.next();return/['"({]/.test(n)?(t.tokens[0]=o(n,n==`(`?`quote`:n==`{`?`def`:`string`),u(e,t)):(/\d/.test(n)||e.eatWhile(/\w/),t.tokens.shift(),`def`)};function l(e){return function(t,n){return t.sol()&&t.string==e&&n.tokens.shift(),t.skipToEnd(),`string.special`}}function u(e,t){return(t.tokens[0]||a)(e,t)}var d={name:`shell`,startState:function(){return{tokens:[]}},token:function(e,t){return u(e,t)},languageData:{autocomplete:n.concat(r,i),closeBrackets:{brackets:[`(`,`[`,`{`,`'`,`"`,"`"]},commentTokens:{line:`#`}}};export{d as shell};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e){for(var t={},n=0;n<e.length;n++)t[e[n]]=!0;return t}var t=e(`_.var.let.actor.class.enum.extension.import.protocol.struct.func.typealias.associatedtype.open.public.internal.fileprivate.private.deinit.init.new.override.self.subscript.super.convenience.dynamic.final.indirect.lazy.required.static.unowned.unowned(safe).unowned(unsafe).weak.as.is.break.case.continue.default.else.fallthrough.for.guard.if.in.repeat.switch.where.while.defer.return.inout.mutating.nonmutating.isolated.nonisolated.catch.do.rethrows.throw.throws.async.await.try.didSet.get.set.willSet.assignment.associativity.infix.left.none.operator.postfix.precedence.precedencegroup.prefix.right.Any.AnyObject.Type.dynamicType.Self.Protocol.__COLUMN__.__FILE__.__FUNCTION__.__LINE__`.split(`.`)),n=e([`var`,`let`,`actor`,`class`,`enum`,`extension`,`import`,`protocol`,`struct`,`func`,`typealias`,`associatedtype`,`for`]),r=e([`true`,`false`,`nil`,`self`,`super`,`_`]),i=e([`Array`,`Bool`,`Character`,`Dictionary`,`Double`,`Float`,`Int`,`Int8`,`Int16`,`Int32`,`Int64`,`Never`,`Optional`,`Set`,`String`,`UInt8`,`UInt16`,`UInt32`,`UInt64`,`Void`]),a=`+-/*%=|&<>~^?!`,o=`:;,.(){}[]`,s=/^\-?0b[01][01_]*/,c=/^\-?0o[0-7][0-7_]*/,l=/^\-?0x[\dA-Fa-f][\dA-Fa-f_]*(?:(?:\.[\dA-Fa-f][\dA-Fa-f_]*)?[Pp]\-?\d[\d_]*)?/,u=/^\-?\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee]\-?\d[\d_]*)?/,d=/^\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1/,f=/^\.(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/,p=/^\#[A-Za-z]+/,m=/^@(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/;function h(e,h,g){if(e.sol()&&(h.indented=e.indentation()),e.eatSpace())return null;var y=e.peek();if(y==`/`){if(e.match(`//`))return e.skipToEnd(),`comment`;if(e.match(`/*`))return h.tokenize.push(v),v(e,h)}if(e.match(p))return`builtin`;if(e.match(m))return`attribute`;if(e.match(s)||e.match(c)||e.match(l)||e.match(u))return`number`;if(e.match(f))return`property`;if(a.indexOf(y)>-1)return e.next(),`operator`;if(o.indexOf(y)>-1)return e.next(),e.match(`..`),`punctuation`;var b;if(b=e.match(/("""|"|')/)){var x=_.bind(null,b[0]);return h.tokenize.push(x),x(e,h)}if(e.match(d)){var S=e.current();return i.hasOwnProperty(S)?`type`:r.hasOwnProperty(S)?`atom`:t.hasOwnProperty(S)?(n.hasOwnProperty(S)&&(h.prev=`define`),`keyword`):g==`define`?`def`:`variable`}return e.next(),null}function g(){var e=0;return function(t,n,r){var i=h(t,n,r);if(i==`punctuation`){if(t.current()==`(`)++e;else if(t.current()==`)`){if(e==0)return t.backUp(1),n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n);--e}}return i}}function _(e,t,n){for(var r=e.length==1,i,a=!1;i=t.peek();)if(a){if(t.next(),i==`(`)return n.tokenize.push(g()),`string`;a=!1}else if(t.match(e))return n.tokenize.pop(),`string`;else t.next(),a=i==`\\`;return r&&n.tokenize.pop(),`string`}function v(e,t){for(var n;n=e.next();)if(n===`/`&&e.eat(`*`))t.tokenize.push(v);else if(n===`*`&&e.eat(`/`)){t.tokenize.pop();break}return`comment`}function y(e,t,n){this.prev=e,this.align=t,this.indented=n}function b(e,t){var n=t.match(/^\s*($|\/[\/\*]|[)}\]])/,!1)?null:t.column()+1;e.context=new y(e.context,n,e.indented)}function x(e){e.context&&=(e.indented=e.context.indented,e.context.prev)}var S={name:`swift`,startState:function(){return{prev:null,context:null,indented:0,tokenize:[]}},token:function(e,t){var n=t.prev;t.prev=null;var r=(t.tokenize[t.tokenize.length-1]||h)(e,t,n);if(!r||r==`comment`?t.prev=n:t.prev||=r,r==`punctuation`){var i=/[\(\[\{]|([\]\)\}])/.exec(e.current());i&&(i[1]?x:b)(t,e)}return r},indent:function(e,t,n){var r=e.context;if(!r)return 0;var i=/^[\]\}\)]/.test(t);return r.align==null?r.indented+(i?0:n.unit):r.align-+!!i},languageData:{indentOnInput:/^\s*[\)\}\]]$/,commentTokens:{line:`//`,block:{open:`/*`,close:`*/`}},closeBrackets:{brackets:[`(`,`[`,`{`,`'`,`"`,"`"]}}};export{S as swift};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{rt as e}from"./data-hUAVersf.js";function t(e){return typeof e==`object`&&e?e:{}}function n(e){return typeof e==`string`&&e!==``?e:null}function r(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function i(e){return e.type===`command`?typeof e.output==`string`?e.output:``:typeof e.value==`string`?e.value:``}function a(e){let t=``;for(let n of e)t+=i(n);return t}function o(e){let i=t(e),a=t(i.lifecycle),o=r(a.exitCode);return{...i,title:n(i.title)??``,content:Array.isArray(i.content)?i.content:[],lifecycle:n(a.status)===`exited`?{status:`exited`,...o===null?{}:{exitCode:o}}:{status:`running`},claim:c(i.claim)?i.claim:l(``)}}function s(t,n){return e(o(t),n)}function c(e){let r=n(t(e).kind);return r===`client`||r===`session`}function l(e){return{kind:`client`,clientId:e}}function u(e,r){let i=t(e);return i.kind===`session`?{kind:`session`,session:n(i.session)??``}:i.kind===`client`&&r!==null&&i.clientId===r?{kind:`you`}:{kind:`another`}}function d(e){return t(e.lifecycle).status===`exited`}function f(e){return r(t(e.lifecycle).exitCode)}var p=0;function m(){return p+=1,`ahp-terminal:/${Date.now().toString(36)}-${p.toString(36)}`}function h(e,t){return t.startsWith(e)?{reset:!1,text:t.slice(e.length)}:{reset:!0,text:t}}function g(e){return e.title!==void 0&&e.title!==``?e.title:`Terminal`}function _(e,t){if(e===void 0)return!1;let n=t.replace(/\/+$/,``);return e.replace(/\/+$/,``)===n||e.startsWith(`${n}/`)}export{d as a,a as c,g as d,s as i,m as l,h as n,u as o,f as r,_ as s,l as t,o as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{D as n}from"./data-hUAVersf.js";import{n as r}from"./words-T8-D0K4W.js";import{t as i}from"./CopyButton-DWmFc5fw.js";var a=t(),o=e();function s(e){let[t,r]=(0,a.useState)(null);return(0,a.useEffect)(()=>{if(e===void 0)return;let t=!0;return r(null),n(e).then(e=>{t&&r({text:e.text})}).catch(e=>{t&&r({error:e instanceof Error?e.message:String(e)})}),()=>{t=!1}},[e]),t}function c({uri:e,dirty:t=!1}){let n=r(e);return(0,o.jsxs)(`div`,{className:`web-file__head`,children:[(0,o.jsx)(`code`,{children:n}),t?(0,o.jsx)(`span`,{className:`web-file__dirty`,title:`Not saved`,children:`Edited`}):null,(0,o.jsx)(i,{text:n,label:`Copy path`})]})}export{s as n,c as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={name:`toml`,startState:function(){return{inString:!1,stringType:``,lhs:!0,inArray:0}},token:function(e,t){let n;if(!t.inString&&(n=e.match(/^('''|"""|'|")/))&&(t.stringType=n[0],t.inString=!0),e.sol()&&!t.inString&&t.inArray===0&&(t.lhs=!0),t.inString){for(;t.inString;)if(e.match(t.stringType))t.inString=!1;else if(e.peek()===`\\`)e.next(),e.next();else if(e.eol())break;else e.match(/^.[^\\\"\']*/);return t.lhs?`property`:`string`}return t.inArray&&e.peek()===`]`?(e.next(),t.inArray--,`bracket`):t.lhs&&e.peek()===`[`&&e.skipTo(`]`)?(e.next(),e.peek()===`]`&&e.next(),`atom`):e.peek()===`#`?(e.skipToEnd(),`comment`):e.eatSpace()?null:t.lhs&&e.eatWhile(function(e){return e!=`=`&&e!=` `})?`property`:t.lhs&&e.peek()===`=`?(e.next(),t.lhs=!1,null):!t.lhs&&e.match(/^\d\d\d\d[\d\-\:\.T]*Z/)||!t.lhs&&(e.match(`true`)||e.match(`false`))?`atom`:!t.lhs&&e.peek()===`[`?(t.inArray++,e.next(),`bracket`):!t.lhs&&e.match(/^\-?\d+(?:\.\d+)?/)?`number`:(e.eatSpace()||e.next(),null)},languageData:{commentTokens:{line:`#`}}};export{e as toml};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./react-CybPckBe.js";import{n as t}from"./ScenaProvider-6A3TJumQ.js";import{i as n}from"./mount-context-DZgEFVFG.js";var r=e();function i(e){let i=t(),a=n(),o=(0,r.useRef)(e);o.current=e,(0,r.useEffect)(()=>{if(a===null)return;let e=i.surfaces.guardClose(a,()=>o.current());return()=>e.dispose()},[i,a])}export{i as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./useStore-BQkzWMs-.js";import{o as t}from"./registry-iidw4F1W.js";var n=`$/__label__/empty`;function r(r,i=``,a){let o=r&&typeof r==`object`&&`path`in r?r.path:n,s=e(o,a);return typeof r==`string`?r:r?`path`in r?s??i:`t`in r?t(r.t,i):i:i}export{r as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`ahp-file`,t=`FilePage`,n=`MarkdownPage`,r=(e,t)=>`file:${e}:${t}`;function i(e){let t=e===void 0?null:/^file:([^:]+):(.+)$/.exec(e);return t===null?void 0:{component:t[1],uri:t[2]}}function a(e){let t=e.replace(/[?#].*$/,``).split(`/`).pop()??``,n=t.lastIndexOf(`.`);return n<=0?``:t.slice(n+1).toLowerCase()}function o(t,n){let r={"$/resource/ext":a(n)};return t.components.findOpeners(e).filter(e=>{let n=e.opens?.selector;return n===void 0||t.when.evaluate(n,r)})}var s=e=>typeof e.opens?.title==`string`?e.opens.title:e.component;function c(e,t,n){return o(e,t).filter(e=>e.component!==n).map(n=>({title:`Open as ${s(n)}`,group:`Open with`,...n.opens?.icon===void 0?{}:{icon:n.opens.icon},onSelect:r=>{r.closeMenu(),e.commands.execute(`ahp.openFile`,{uri:t,viewer:n.component})}}))}export{r as a,s as c,a as i,o as l,n,i as o,t as r,c as s,e as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{n as e}from"./words-T8-D0K4W.js";import{r as t}from"./turn-BoF7W1h6.js";function n(e){let t=e.models.length;return t===0?`No models listed`:t===1?`1 model`:`${t} models`}function r(e){let t=[],n=e.capabilities?.multipleChats;n!==void 0&&t.push(n.fork===!0?`Several chats per session, and forks`:`Several chats per session`);let r=e.capabilities?.multipleWorkingDirectories;return r!==void 0&&t.push(r.immutablePrimary===!0?`Several folders, the first one fixed`:`Several folders`),t}function i(e){let n=[];return e.maxContextWindow!==void 0&&n.push(`${t(e.maxContextWindow)} context`),e.maxOutputTokens!==void 0&&n.push(`${t(e.maxOutputTokens)} out`),e.supportsVision===!0&&n.push(`images`),n.join(` · `)}var a={plugin:`Plugin`,directory:`Folder`,mcpServer:`MCP server`},o={agent:[`agent`,`agents`],skill:[`skill`,`skills`],prompt:[`prompt`,`prompts`],rule:[`rule`,`rules`],hook:[`hook`,`hooks`],mcpServer:[`MCP server`,`MCP servers`]},s={required:`Needs sign-in`,expired:`Sign-in expired`,insufficientScope:`Needs more access`};function c(e){return`enablement`in e&&e.enablement!==void 0?e.enablement[0]?.enabled??!0:e.enabled??!0}function l(e,t){let[n,r]=o[t]??[`item`,`items`];return`${e} ${e===1?n:r}`}function u(e){if(String(e.type)===`mcpServer`)return;let t=e.children;if(t===void 0)return;if(e.type===`directory`)return l(t.length,String(e.contents));if(t.length===0)return`Empty`;let n=new Map;for(let e of t)n.set(String(e.type),(n.get(String(e.type))??0)+1);return[...n].map(([e,t])=>l(t,e)).join(`, `)}function d(t){return e(t).replace(/^(\/home\/[^/]+|\/Users\/[^/]+|\/root)(?=\/|$)/,`~`)}function f(e){return(e??``).trim().split(`
|
|
2
|
+
`)[0]?.trim()??``}function p(e){if(String(e.type)===`mcpServer`){let t=e.state;switch(String(t.kind)){case`ready`:return{tone:`success`,text:`Ready`};case`starting`:return{tone:`info`,text:t.blocking===!0?`Starting; blocks the next turn`:`Starting`};case`authRequired`:{let e=String(t.reason);return{tone:`warning`,text:s[e]??e}}case`error`:return{tone:`danger`,text:t.error.message};case`stopped`:return{tone:`default`,text:`Stopped`};default:return{tone:`default`,text:String(t.kind)}}}let t=e.load;switch(t===void 0?void 0:String(t.kind)){case`loading`:return{tone:`busy`,text:`Loading`};case`degraded`:return{tone:`warning`,text:t.message};case`error`:return{tone:`danger`,text:t.message};default:return}}function m(e){let t=[],n=e;if(n.disableModelInvocation===!0&&t.push(`user only`),n.disableUserInvocation===!0&&t.push(`model only`),n.model!==void 0&&n.model!==``&&t.push(`pinned to ${n.model}`),e.type===`rule`){let n=e;n.globs!==void 0&&n.globs.length>0?t.push(n.globs.join(`, `)):n.alwaysApply===!0&&t.push(`always`)}return t}function h(e){return f(e.description)}function g(e){return e.replace(/^---\r?\n[\s\S]*?\r?\n---[ \t]*(\r?\n|$)/,``).trimStart()}var _=new Set([`skill`,`prompt`]),v=new Set([`plugin`,`directory`]);function y(e){if(!v.has(String(e.type))&&e.uri.startsWith(`file:`))return String(e.type)===`skill`&&!/\.md$/i.test(e.uri)?{uri:`${e.uri.replace(/\/+$/,``)}/SKILL.md`,line:null}:{uri:e.uri,line:e.range===void 0?null:e.range.start.line+1}}function b(e){let t=String(e.type)===`mcpServer`?p(e):void 0,n=y(e);return{id:e.id,name:e.name,label:_.has(String(e.type))?`/${e.name}`:e.name,line:h(e),description:(e.description??``).trim(),flags:m(e),enabled:c(e),...t===void 0?{}:{state:t},...n===void 0?{}:{open:n}}}function x(e,t){let n=[],r=u(e);r!==void 0&&n.push(r),e.writable===!1&&n.push(`read-only`);let i=e.version;return i!==void 0&&i!==``&&n.push(`v${i}`),n.push(t?`on`:`off`),n}function S(e){let t=e??[];return[...t.filter(e=>String(e.type)!==`mcpServer`),...t.filter(e=>String(e.type)===`mcpServer`)].map(e=>{let t=c(e),n=p(e),r=String(e.type),i=y(e);return{id:e.id,type:r,name:e.name,kind:a[r]??r,path:d(e.uri),meta:x(e,t),enabled:t,...n===void 0?{}:{state:n},...i===void 0?{}:{open:i},children:(e.children??[]).map(b)}})}function C(e){let t=new Set,n=[];for(let r of e??[])if(c(r))for(let e of r.children??[])_.has(String(e.type))&&c(e)&&(e.disableUserInvocation===!0||t.has(e.name)||(t.add(e.name),n.push({name:e.name,description:h(e)})));return n}function w(e){return(e.protectedResources??[]).map(e=>({name:e.resource_name??e.resource,scopes:(e.scopes_supported??[]).join(`, `),required:e.required===!0}))}export{w as a,n as i,S as n,C as o,i as r,g as s,r as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(){let e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function t(e){let t=e.trim(),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 n(e){let t=e.replace(/\/+$/,``).split(`/`).pop()??``;try{return decodeURIComponent(t)||e}catch{return t||e}}function r(e){if(!e.startsWith(`file://`))return e;try{let t=decodeURIComponent(e.slice(7));return/^\/[A-Za-z]:\//.test(t)?t.slice(1):t}catch{return e}}function i(e){return e===void 0?``:typeof e==`string`?e:e.markdown}function a(e){let t=Math.max(0,Math.floor(e/1e3)),n=t%60,r=Math.floor(t/60)%60,i=Math.floor(t/3600)%24,a=Math.floor(t/86400);return a>0?`${a}d${i}h`:i>0?`${i}h${r}m`:r>0?`${r}m${n}s`:`${n}s`}export{e as a,t as i,r as n,i as o,n as r,a as t};
|
package/dist/app/index.html
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<link rel="icon" type="image/svg+xml" href="./ahpw.svg" />
|
|
7
7
|
<title>ahpw</title>
|
|
8
8
|
<style>:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--boot-bg:#fff;--boot-muted:#6b7280}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--boot-bg:#020617;--boot-muted:#94a3b8}}html,body{background:var(--boot-bg);height:100%;margin:0}.boot-loading{background:var(--boot-bg);opacity:0;justify-content:center;align-items:center;animation:.35s ease-out .25s forwards boot-in;display:flex;position:fixed;inset:0}.boot-mark{display:block;overflow:visible}.boot-echo{transform-box:view-box;transform-origin:32px 32px;opacity:0;animation:1.5s cubic-bezier(.25,.6,.3,1) infinite boot-echo}.boot-echo--second{animation-delay:.5s}.boot-echo--third{animation-delay:1s}@keyframes boot-echo{0%{opacity:.6;transform:scale(1)}75%{opacity:0}to{opacity:0;transform:scale(1.95)}}@keyframes boot-in{to{opacity:1}}.boot-noscript{color:var(--boot-muted);text-align:center;padding:40px 20px;font:14px/1.5 system-ui,sans-serif}@media (prefers-reduced-motion:reduce){.boot-loading{opacity:1;animation:none}.boot-echo{animation:none}}</style>
|
|
9
|
-
<script type="module" crossorigin src="./assets/index-
|
|
9
|
+
<script type="module" crossorigin src="./assets/index-yhQX4tVS.js"></script>
|
|
10
10
|
<link rel="modulepreload" crossorigin href="./assets/jsx-runtime-BguD1OXD.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="./assets/react-CybPckBe.js">
|
|
12
12
|
<link rel="modulepreload" crossorigin href="./assets/ScenaProvider-6A3TJumQ.js">
|
|
@@ -15,23 +15,31 @@
|
|
|
15
15
|
<link rel="modulepreload" crossorigin href="./assets/styles-yrzHRgom.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="./assets/_utils-DZVsX11M.js">
|
|
17
17
|
<link rel="modulepreload" crossorigin href="./assets/Button-_R1oktDz.js">
|
|
18
|
-
<link rel="modulepreload" crossorigin href="./assets/data-
|
|
19
|
-
<link rel="modulepreload" crossorigin href="./assets/emojis-
|
|
18
|
+
<link rel="modulepreload" crossorigin href="./assets/data-hUAVersf.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="./assets/emojis-7RT6GvLa.js">
|
|
20
20
|
<link rel="modulepreload" crossorigin href="./assets/colors-BieSUSt7.js">
|
|
21
21
|
<link rel="modulepreload" crossorigin href="./assets/ActionList-aOUHK9Z9.js">
|
|
22
|
-
<link rel="modulepreload" crossorigin href="./assets/terminal-
|
|
23
|
-
<link rel="modulepreload" crossorigin href="./assets/notify-
|
|
22
|
+
<link rel="modulepreload" crossorigin href="./assets/terminal-BPj7jGw5.js">
|
|
23
|
+
<link rel="modulepreload" crossorigin href="./assets/notify-BQ9fSOfy.js">
|
|
24
24
|
<link rel="modulepreload" crossorigin href="./assets/surface-presentation-CT86pw6J.js">
|
|
25
|
+
<link rel="modulepreload" crossorigin href="./assets/registry-iidw4F1W.js">
|
|
25
26
|
<link rel="modulepreload" crossorigin href="./assets/preload-helper-BaNbYf_w.js">
|
|
26
27
|
<link rel="modulepreload" crossorigin href="./assets/sigillum-Bev0l9LS.js">
|
|
27
|
-
<link rel="modulepreload" crossorigin href="./assets/words-
|
|
28
|
-
<link rel="modulepreload" crossorigin href="./assets/composer-commands-
|
|
28
|
+
<link rel="modulepreload" crossorigin href="./assets/words-T8-D0K4W.js">
|
|
29
|
+
<link rel="modulepreload" crossorigin href="./assets/composer-commands-B8AF8OGi.js">
|
|
29
30
|
<link rel="modulepreload" crossorigin href="./assets/state-KGSq646f.js">
|
|
30
|
-
<link rel="modulepreload" crossorigin href="./assets/sessions-
|
|
31
|
+
<link rel="modulepreload" crossorigin href="./assets/sessions-8PScJEDe.js">
|
|
32
|
+
<link rel="modulepreload" crossorigin href="./assets/_field-parts-BuPjFCuf.js">
|
|
33
|
+
<link rel="modulepreload" crossorigin href="./assets/TextField-DnSHrmJM.js">
|
|
31
34
|
<link rel="modulepreload" crossorigin href="./assets/state-DRVsnGrf.js">
|
|
35
|
+
<link rel="modulepreload" crossorigin href="./assets/folder-path-CTpCmycG.js">
|
|
36
|
+
<link rel="modulepreload" crossorigin href="./assets/viewers-MssMDn0e.js">
|
|
32
37
|
<link rel="stylesheet" crossorigin href="./assets/Button-CRZ1_3KW.css">
|
|
33
38
|
<link rel="stylesheet" crossorigin href="./assets/ActionList-Bawu-Lja.css">
|
|
34
|
-
<link rel="stylesheet" crossorigin href="./assets/
|
|
39
|
+
<link rel="stylesheet" crossorigin href="./assets/_field-parts-DannIEUW.css">
|
|
40
|
+
<link rel="stylesheet" crossorigin href="./assets/_field-parts-CfQcSJYh.css">
|
|
41
|
+
<link rel="stylesheet" crossorigin href="./assets/DateTimeInput-x1XGuNl0.css">
|
|
42
|
+
<link rel="stylesheet" crossorigin href="./assets/index-B1VQ36Tb.css">
|
|
35
43
|
</head>
|
|
36
44
|
<body>
|
|
37
45
|
<div id="root">
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What an app that embeds ahpw gives it, as `globalThis.ahpwEmbedder`.
|
|
3
|
+
*
|
|
4
|
+
* ahpw owns this contract and only reads it; the embedder (ahp-desk, or any
|
|
5
|
+
* other app) sets the object before ahpw's own scripts run. Without one, ahpw
|
|
6
|
+
* is a page in a browser and reads its host from the address bar. Nothing
|
|
7
|
+
* here imports anything, so an embedder can depend on the types alone, from
|
|
8
|
+
* `@ahpd/web/embed`.
|
|
9
|
+
*/
|
|
10
|
+
/** One host the embedder knows. A token is never part of it; ask `token()`. */
|
|
11
|
+
export interface EmbedHost {
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
/** The host's WebSocket address, as `ws://127.0.0.1:9187`. */
|
|
15
|
+
url: string;
|
|
16
|
+
}
|
|
17
|
+
/** A host's state, as the embedder sees it. */
|
|
18
|
+
export type EmbedHostStatus = 'connected' | 'connecting' | 'down';
|
|
19
|
+
/** Stops a subscription; safe to call more than once. */
|
|
20
|
+
export type Unsubscribe = () => void;
|
|
21
|
+
/** The window ahpw is in, when the embedder draws no frame and ahpw draws its own title bar. */
|
|
22
|
+
export interface EmbedWindow {
|
|
23
|
+
minimize(): Promise<void>;
|
|
24
|
+
toggleMaximize(): Promise<void>;
|
|
25
|
+
close(): Promise<void>;
|
|
26
|
+
/** Called on a press in the title bar, so a drag moves the window. */
|
|
27
|
+
startDragging(): Promise<void>;
|
|
28
|
+
/** Whether the window fills the screen, so ahpw squares its corners. */
|
|
29
|
+
isMaximized(): Promise<boolean>;
|
|
30
|
+
/** Calls `handler` on each resize, a maximize and a restore among them. */
|
|
31
|
+
onResized(handler: () => void): Unsubscribe;
|
|
32
|
+
}
|
|
33
|
+
export interface Embedder {
|
|
34
|
+
/** The host this page shows. */
|
|
35
|
+
host(): Promise<EmbedHost>;
|
|
36
|
+
/**
|
|
37
|
+
* The address of the host this page shows, known before ahpw runs. Every host
|
|
38
|
+
* shares the embedder's origin, so ahpw keeps a host's own pages under it.
|
|
39
|
+
*/
|
|
40
|
+
readonly hostUrl: string;
|
|
41
|
+
/** The token of the host this page shows, or null for a host with none. */
|
|
42
|
+
token(): Promise<string | null>;
|
|
43
|
+
/** Every host the embedder knows. */
|
|
44
|
+
hosts(): Promise<EmbedHost[]>;
|
|
45
|
+
/** Calls `handler` with the whole list each time a host is added, changed or removed. */
|
|
46
|
+
onHosts(handler: (hosts: EmbedHost[]) => void): Unsubscribe;
|
|
47
|
+
/** Every host's status by id; a host not yet seen is missing. */
|
|
48
|
+
statuses(): Promise<Record<string, EmbedHostStatus>>;
|
|
49
|
+
/** Calls `handler` with every host's status each time one changes. */
|
|
50
|
+
onStatuses(handler: (statuses: Record<string, EmbedHostStatus>) => void): Unsubscribe;
|
|
51
|
+
/** Moves this page to another host; the embedder reloads it. */
|
|
52
|
+
switchHost(id: string): Promise<void>;
|
|
53
|
+
/** Shows the embedder's own place to add, edit and remove hosts; with `add`, on its form for a new one. */
|
|
54
|
+
manageHosts(options?: {
|
|
55
|
+
add?: boolean;
|
|
56
|
+
}): Promise<void>;
|
|
57
|
+
/** Present when ahpw draws the window's frame. */
|
|
58
|
+
window?: EmbedWindow;
|
|
59
|
+
}
|
|
60
|
+
/** The embedder, or undefined in a browser. Read once: a page never moves between the two. */
|
|
61
|
+
export declare const embedder: Embedder | undefined;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What an app that embeds ahpw gives it, as `globalThis.ahpwEmbedder`.
|
|
3
|
+
*
|
|
4
|
+
* ahpw owns this contract and only reads it; the embedder (ahp-desk, or any
|
|
5
|
+
* other app) sets the object before ahpw's own scripts run. Without one, ahpw
|
|
6
|
+
* is a page in a browser and reads its host from the address bar. Nothing
|
|
7
|
+
* here imports anything, so an embedder can depend on the types alone, from
|
|
8
|
+
* `@ahpd/web/embed`.
|
|
9
|
+
*/
|
|
10
|
+
/** The embedder, or undefined in a browser. Read once: a page never moves between the two. */
|
|
11
|
+
export const embedder = globalThis.ahpwEmbedder;
|
package/dist/plugin/index.js
CHANGED
|
@@ -6,7 +6,20 @@ export const name = 'ahpd-web';
|
|
|
6
6
|
export const title = 'Web';
|
|
7
7
|
/** The built page, beside this file in the package. */
|
|
8
8
|
const APP = fileURLToPath(new URL('../app/', import.meta.url));
|
|
9
|
+
/** Where the page is served. */
|
|
10
|
+
const PREFIX = `/plugins/${name}/`;
|
|
11
|
+
/**
|
|
12
|
+
* What the page asks first: whether the server adds the token. The daemon does
|
|
13
|
+
* not, so it says so, as `ahpw serve` answers the same file, rather than a 404
|
|
14
|
+
* the browser prints as an error on every load.
|
|
15
|
+
*/
|
|
16
|
+
const ABOUT = JSON.stringify({ tokenHeld: false });
|
|
9
17
|
export const apply = (host) => {
|
|
10
|
-
|
|
18
|
+
const files = staticRoute(APP, PREFIX);
|
|
19
|
+
host.registerRoute(async (request) => {
|
|
20
|
+
if (new URL(request.url).pathname !== `${PREFIX}ahpw.json`)
|
|
21
|
+
return await files(request);
|
|
22
|
+
return new Response(ABOUT, { headers: { 'content-type': 'application/json', 'cache-control': 'no-store', 'x-content-type-options': 'nosniff' } });
|
|
23
|
+
});
|
|
11
24
|
};
|
|
12
25
|
//# sourceMappingURL=index.js.map
|
package/dist/plugin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,8EAA8E;AAC9E,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAAC;AAE/B,6BAA6B;AAC7B,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC;AAE3B,uDAAuD;AACvD,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,KAAK,GAAoB,CAAC,IAAI,EAAE,EAAE;IAC7C,IAAI,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,8EAA8E;AAC9E,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAAC;AAE/B,6BAA6B;AAC7B,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC;AAE3B,uDAAuD;AACvD,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,gCAAgC;AAChC,MAAM,MAAM,GAAG,YAAY,IAAI,GAAG,CAAC;AAEnC;;;;GAIG;AACH,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,KAAK,GAAoB,CAAC,IAAI,EAAE,EAAE;IAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACnC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,GAAG,MAAM,WAAW;YAAE,OAAO,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;QACxF,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE,wBAAwB,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACpJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
package/dist/plugin/static.js
CHANGED
|
@@ -18,10 +18,11 @@ const TYPES = {
|
|
|
18
18
|
*
|
|
19
19
|
* The token sits in this origin's localStorage, so the page loads nothing from
|
|
20
20
|
* anywhere else and cannot be framed. Inline styles stay allowed because the
|
|
21
|
-
* theme sets custom properties on elements.
|
|
21
|
+
* theme sets custom properties on elements. Images and media may be `blob:`,
|
|
22
|
+
* which is a file the page read from the host and made a URL for itself.
|
|
22
23
|
*/
|
|
23
24
|
const SECURITY = {
|
|
24
|
-
'content-security-policy': "default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'",
|
|
25
|
+
'content-security-policy': "default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; media-src 'self' blob:; connect-src 'self'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'",
|
|
25
26
|
'x-content-type-options': 'nosniff',
|
|
26
27
|
'referrer-policy': 'no-referrer',
|
|
27
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static.js","sourceRoot":"","sources":["../../plugin/static.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAElD,8CAA8C;AAC9C,MAAM,KAAK,GAAqC;IAC9C,OAAO,EAAE,0BAA0B;IACnC,KAAK,EAAE,gCAAgC;IACvC,MAAM,EAAE,yBAAyB;IACjC,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE,YAAY;IACtB,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,2BAA2B;CACpC,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"static.js","sourceRoot":"","sources":["../../plugin/static.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAElD,8CAA8C;AAC9C,MAAM,KAAK,GAAqC;IAC9C,OAAO,EAAE,0BAA0B;IACnC,KAAK,EAAE,gCAAgC;IACvC,MAAM,EAAE,yBAAyB;IACjC,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE,YAAY;IACtB,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,2BAA2B;CACpC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,QAAQ,GAAqC;IACjD,yBAAyB,EAAE,2LAA2L;IACtN,wBAAwB,EAAE,SAAS;IACnC,iBAAiB,EAAE,aAAa;CACjC,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,IAAY,EAAE,UAAkC,EAAE,EAAY,EAAE,CAC9F,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,QAAQ,EAAE,cAAc,EAAE,2BAA2B,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC;AAEpH;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,MAAc;IACtD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC,GAAG,EAAE,oBAAoB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAC5H,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAEtE,IAAI,KAAe,CAAC;QACpB,IAAI,CAAC;YACH,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC7G,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC5H,OAAO,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACnF,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;gBAAE,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACzE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,0BAA0B,CAAC;YAC9E,6EAA6E;YAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,UAAU,CAAC;YACzF,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC3D,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,EAAE,GAAG,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;aAClH,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ahpd/web",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A web UI for an AHP server, as an ahpd plugin or on its own with ahpw serve",
|
|
6
6
|
"keywords": [
|
|
@@ -36,6 +36,10 @@
|
|
|
36
36
|
".": {
|
|
37
37
|
"types": "./dist/plugin/index.d.ts",
|
|
38
38
|
"default": "./dist/plugin/index.js"
|
|
39
|
+
},
|
|
40
|
+
"./embed": {
|
|
41
|
+
"types": "./dist/embed/index.d.ts",
|
|
42
|
+
"default": "./dist/embed/index.js"
|
|
39
43
|
}
|
|
40
44
|
},
|
|
41
45
|
"files": [
|
|
@@ -52,8 +56,30 @@
|
|
|
52
56
|
},
|
|
53
57
|
"devDependencies": {
|
|
54
58
|
"@ahpd/sdk": "^0.9.0",
|
|
59
|
+
"@codemirror/autocomplete": "^6.20.3",
|
|
60
|
+
"@codemirror/commands": "^6.11.1",
|
|
61
|
+
"@codemirror/lang-cpp": "^6.0.3",
|
|
62
|
+
"@codemirror/lang-css": "^6.3.1",
|
|
63
|
+
"@codemirror/lang-go": "^6.0.1",
|
|
64
|
+
"@codemirror/lang-html": "^6.4.12",
|
|
65
|
+
"@codemirror/lang-java": "^6.0.2",
|
|
66
|
+
"@codemirror/lang-javascript": "^6.2.5",
|
|
67
|
+
"@codemirror/lang-json": "^6.0.2",
|
|
68
|
+
"@codemirror/lang-markdown": "^6.5.2",
|
|
69
|
+
"@codemirror/lang-php": "^6.0.2",
|
|
70
|
+
"@codemirror/lang-python": "^6.2.1",
|
|
71
|
+
"@codemirror/lang-rust": "^6.0.2",
|
|
72
|
+
"@codemirror/lang-sql": "^6.10.0",
|
|
73
|
+
"@codemirror/lang-xml": "^6.1.0",
|
|
74
|
+
"@codemirror/lang-yaml": "^6.1.3",
|
|
75
|
+
"@codemirror/language": "^6.13.1",
|
|
76
|
+
"@codemirror/legacy-modes": "^6.5.5",
|
|
77
|
+
"@codemirror/search": "^6.7.2",
|
|
78
|
+
"@codemirror/state": "^6.7.6",
|
|
79
|
+
"@codemirror/view": "^6.43.14",
|
|
80
|
+
"@lezer/highlight": "^1.2.5",
|
|
55
81
|
"@microsoft/agent-host-protocol": "^1.0.0",
|
|
56
|
-
"@softov/scena": "^0.5.
|
|
82
|
+
"@softov/scena": "^0.5.5",
|
|
57
83
|
"@types/node": "^22.10.2",
|
|
58
84
|
"@types/react": "^19.2.18",
|
|
59
85
|
"@types/react-dom": "^19.2.3",
|
|
@@ -79,7 +105,7 @@
|
|
|
79
105
|
},
|
|
80
106
|
"scripts": {
|
|
81
107
|
"dev": "vite",
|
|
82
|
-
"build": "tsc -b && vite build && tsc -p tsconfig.plugin.json && tsc -p tsconfig.cli.json && chmod +x dist/cli/main.js",
|
|
108
|
+
"build": "tsc -b && vite build && tsc -p tsconfig.plugin.json && tsc -p tsconfig.cli.json && tsc -p tsconfig.embed.json && chmod +x dist/cli/main.js",
|
|
83
109
|
"typecheck": "tsc -b",
|
|
84
110
|
"test": "vitest run"
|
|
85
111
|
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{i as n}from"./notify-Bb548jAB.js";import{t as r,u as i}from"./useStore-BQkzWMs-.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./Button-_R1oktDz.js";import{g as s,w as c}from"./data-Fkj0LNnG.js";import{a as l,n as u}from"./words-BknpHIF3.js";import{t as d}from"./emojis-BOylxma2.js";import{a as ee,i as f,n as p,o as te,r as m,s as h,t as g}from"./ActionList-aOUHK9Z9.js";import{_,a as v,c as y,d as b,f as x,g as S,h as C,i as w,l as ne,m as T,n as E,o as re,p as D,r as ie,t as O,u as ae}from"./composer-commands-Bpp7NX4E.js";import{n as oe,t as se}from"./drag-ruzgQUFW.js";var k=e(),A=t(),j=[`/`,`@`];function ce(e){let{input:t,setInput:n,caretIndex:r,panelDataContext:i,slashSlot:o=`chat:input/`,mentionSlot:s=`chat:input@`,mentionProvider:c,prefixes:l=j,onCaretChange:u}=e,d=a(),[_,v]=(0,A.useState)([]),y=(0,A.useRef)(_);y.current=_;let b=(0,A.useRef)(null),x=(0,A.useMemo)(()=>f(t,l,r),[t,l,r]),S=x!==null,C=(0,A.useCallback)(e=>x?.prefix===`@`?c?{provider:c,footerHints:!0,rich:!0}:{query:{slot:s,q:e},footerHints:!0,rich:!0}:{query:{slot:o,q:e},footerHints:!0,rich:!0},[x?.prefix,c,s,o]);(0,A.useEffect)(()=>{if(!x){y.current.length>0&&v([]);return}let e=y.current[y.current.length-1];if(y.current.length<=1){v([{spec:C(x.query)}]);return}let t=e&&`spec`in e?e.spec:void 0;if(t?.sentinel&&!h(x.token,t.sentinel)){v([{spec:C(x.query)}]);return}t?.query&&v(e=>{let n=e.slice(0,-1);return n.push({spec:{...t,query:{...t.query,q:x.query}}}),n})},[x,C]);let w=(0,A.useMemo)(()=>{let e=_[_.length-1];return e&&`spec`in e?e.spec.sentinel:void 0},[_]),ne=(0,A.useMemo)(()=>te(x?.query??``,w),[x,w]),T=(0,A.useMemo)(()=>({pushList:e=>v(t=>[...t,{spec:e}]),replaceList:e=>v(t=>{let n=t.slice(0,-1);return n.push({spec:e}),n}),openInline:e=>v(t=>[...t,{component:(0,k.jsx)(M,{name:e})}]),openPopover:()=>void 0,back:()=>v(e=>e.length>1?e.slice(0,-1):e),closeMenu:()=>{v([]);let e=m(t,r,``,l);n(e.next),u?.(e.caret)},keepOpen:()=>void 0,insertAtCursor:e=>{let i=m(t,r,e,l);n(i.next),u?.(i.caret)},replaceActiveToken:e=>{let i=m(t,r,e,l);n(i.next),u?.(i.caret)},query:ne}),[t,r,l,n,ne,u]),E=_[_.length-1],re=(0,A.useCallback)(()=>v(e=>e.slice(0,-1)),[]),D=_.length>1?re:void 0,ie=(0,A.useCallback)(e=>{if(!S)return!1;if(e.key===`Escape`)return e.preventDefault(),T.closeMenu(),!0;if(e.key===`ArrowLeft`&&D){let t=e.target;if(t.selectionStart===t.selectionEnd&&x&&t.selectionStart===x.start+x.prefix.length)return e.preventDefault(),D(),!0}return e.key===`ArrowDown`||e.key===`ArrowUp`||e.key===`Enter`||e.key===`Tab`?b.current?.handleKey(e)??!1:!1},[S,T,D,x]),O=(0,A.useCallback)(e=>{let a=d.commands.get(e);if(!a)return null;let s=p(a.shortcut),c=null;if(s){let{next:e,caret:i}=ee(t,r,s,l);c=i,n(e),v([{spec:{query:{slot:o,q:s.replace(/^[/@]/,``)},footerHints:!0,rich:!0}}])}return d.commands.execute(e,void 0,{source:`menu`,dataContext:i,host:T}),c},[d,i,t,r,l,T,n,o]),ae=(0,A.useCallback)(()=>T.closeMenu(),[T]);return{menuVisible:S,activeSentinel:w,pickerNode:E?`component`in E?E.component:(0,k.jsx)(g,{ref:b,spec:E.spec,hostCtx:T,onBack:D,dataContext:i,manageKeys:!1}):null,handleMenuKeyDown:ie,openCommand:O,closeMenu:ae}}function M({name:e}){return(0,k.jsxs)(`div`,{style:{padding:12},children:[`[component: `,e,`]`]})}var N=d.caretDown;function P({label:e,title:t,onOpen:n,on:r}){return(0,k.jsxs)(`button`,{type:`button`,className:`web-chip`,"data-on":r===!0?`true`:`false`,title:t,disabled:n===void 0,onClick:n,...n===void 0?{}:{"aria-haspopup":`menu`},children:[e,n===void 0?null:(0,k.jsx)(`span`,{"aria-hidden":`true`,children:N})]})}function F({label:e,title:t,value:n,options:r,onChange:i}){let a=r.find(e=>e.value===n)?.label??n;return(0,k.jsxs)(`span`,{className:`web-chip web-chip--choice`,title:t??e,children:[`${e}: ${a===``?`default`:a}`,(0,k.jsx)(`span`,{"aria-hidden":`true`,children:N}),(0,k.jsx)(`select`,{"aria-label":e,value:n,onChange:e=>i(e.currentTarget.value),children:r.map(e=>(0,k.jsx)(`option`,{value:e.value,children:e.label},e.value))})]})}function I({label:e,title:t,value:n,onChange:r}){return(0,k.jsx)(`button`,{type:`button`,className:`web-chip`,"data-on":n?`true`:`false`,"aria-pressed":n,title:t??e,onClick:()=>r(!n),children:e})}function L({label:e,title:t,value:n,placeholder:r,onChange:i,width:a}){return(0,k.jsxs)(`span`,{className:`web-chip web-chip--text`,title:t??e,children:[e,(0,k.jsx)(`input`,{"aria-label":e,value:n,placeholder:r??``,style:{width:a??110},onChange:e=>i(e.currentTarget.value)})]})}var le=`$/ahp/composerFocus`,R=e=>typeof e==`object`&&e?e:{},z=e=>typeof e==`string`&&e!==``?e:void 0;function ue(e){let t=R(e).items;return(Array.isArray(t)?t:[]).map(e=>{let t=R(e),n=R(R(t.attachment)._meta),r=z(t.insertText)??``;return{insert:r,label:z(n.command)??r,detail:z(n.description),hint:z(n.argumentHint)}}).filter(e=>e.insert!==``)}function de(e,t,n){return i(...n.map(n=>e.commands.register({id:`ahp.composer.host.${t}.${n.insert}`,title:n.hint===void 0?n.label:`${n.label} ${n.hint}`,...n.detail===void 0?{}:{description:n.detail},category:`Agent`,shortcut:n.label.startsWith(`/`)?n.label:`/${n.label}`,slots:[O],when:`${le} == "${t}"`,run:e=>e.host?.replaceActiveToken(`${n.insert} `)})))}var fe=0,B=260,pe=[`/`,`@`],me=800;function he(e){e!==null&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,B)}px`)}function ge(e,t,n){return{text:e,origin:{kind:`user`},...t===void 0?{}:{model:{id:t}},...n.length===0?{}:{attachments:S(e,n)}}}var _e=(0,A.memo)(function({chatUri:e,activeId:t,activeStart:i,queued:ee,steering:f,draft:p,lastModel:te,config:m,summary:h,send:g}){let S=a(),j=(r(`$/ahp/agents`)??[]).find(e=>e.provider===h.provider),M=(0,A.useMemo)(()=>ie(e),[e]),[N]=(0,A.useState)(()=>`composer-${++fe}`),F=h.workingDirectories?.[0],[I,L]=(0,A.useState)(()=>p?.text??``),[R,z]=(0,A.useState)(null),[B,_e]=(0,A.useState)(()=>p?.model?.id??te),[V,H]=(0,A.useState)(()=>p?.attachments??[]),U=(0,A.useRef)(null),W=t===void 0?void 0:{id:t,startedAt:i??``},ve=ee??[];(0,A.useEffect)(()=>he(U.current),[I]);let G=(0,A.useRef)(!1);(0,A.useEffect)(()=>{if(!G.current)return;let t=window.setTimeout(()=>{let t=I.trim()===``&&V.length===0?void 0:ge(I,B,V);s(e,{type:`chat/draftChanged`,draft:t})},me);return()=>window.clearTimeout(t)},[I,B,V,e]);let K=(0,A.useCallback)(e=>{z(e),requestAnimationFrame(()=>{let t=U.current;t!==null&&(t.focus(),t.setSelectionRange(e,e))})},[]),q=(0,A.useCallback)(e=>{G.current=!0,H(t=>t.some(t=>C(t,e))?t:[...t,e])},[]),ye=(0,A.useRef)(null),be=(0,A.useCallback)(async e=>{let t=await D(Array.from(e??[]));for(let e of t.attached)q(e);t.refused.length>0&&n(`Not attached`,{description:`Over 5 MB or unreadable: ${t.refused.join(`, `)}`})},[q]),[xe,Se]=(0,A.useState)(null),Ce=(0,A.useCallback)(e=>{let t=Y.current??J.current.length,n=J.current.slice(0,t),r=n===``||/\s$/.test(n)?``:` `;G.current=!0,L(`${n}${r}${e}${J.current.slice(t)}`),K(n.length+r.length+e.length)},[K]),we=e=>{let t=se(e.dataTransfer);(t||Array.from(e.dataTransfer.types).includes(`Files`))&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`,Se(t&&e.shiftKey?`mention`:`attach`))},Te=e=>{Se(null);let t=oe(e.dataTransfer);if(t!==null){e.preventDefault(),e.shiftKey?Ce(`@${u(t.uri)}${t.directory?`/`:``} `):q(T(t.uri,t.directory));return}e.dataTransfer.files.length!==0&&(e.preventDefault(),be(e.dataTransfer.files))},J=(0,A.useRef)(I);J.current=I;let Y=(0,A.useRef)(R);Y.current=R;let Ee=(0,A.useCallback)(async()=>{let t=J.current;try{return(await c(`completions`,{kind:`userMessage`,channel:e,text:t,offset:Y.current??t.length})).items.map(e=>{let t=x(e.attachment,F);return{title:e.insertText.replace(/^@/,``),...t===void 0?{}:{description:t},onSelect:t=>{t.replaceActiveToken(`${e.insertText} `),q(_(e.attachment,e.insertText))}}})}catch{return[]}},[e,F,q]),[De,Oe]=(0,A.useState)([]);(0,A.useEffect)(()=>{let t=!0;return c(`completions`,{kind:`userMessage`,channel:e,text:`/`,offset:1}).then(e=>{t&&Oe(ue(e))}).catch(()=>{t&&Oe([])}),()=>{t=!1}},[e]),(0,A.useEffect)(()=>{let e=de(S,N,De);return()=>e.dispose()},[S,N,De]);let X=ce({input:I,setInput:L,caretIndex:R,panelDataContext:M,slashSlot:O,prefixes:pe,mentionProvider:Ee,onCaretChange:K}),Z=(0,A.useMemo)(()=>Object.entries(m?.schema.properties??{}).filter(([,e])=>e.sessionMutable===!0&&e.readOnly!==!0).map(([e,t])=>({key:e,schema:t,value:m?.values[e]})),[m]),ke=(0,A.useCallback)(()=>{if(t===void 0)return;let e=Date.parse(i??``);g({type:`chat/turnCancelled`,turnId:t,duration:Number.isNaN(e)?0:Math.max(0,Date.now()-e)})},[t,i,g]),Ae=(0,A.useMemo)(()=>(j?.models??[]).map(e=>({id:e.id,name:e.name})),[j]),Q=(0,A.useRef)(null);Q.current={models:()=>Ae,model:()=>B,setModel:e=>{G.current=!0,_e(e)},options:()=>Z,setOption:(e,t)=>{s(h.resource,{type:`session/configChanged`,config:{[e]:t}})},running:()=>W!==void 0,stop:ke,session:()=>h.resource,attach:q,type:e=>{let t=Y.current??J.current.length,n=J.current.slice(0,t),r=e===`/`||n===``||/\s$/.test(n)?``:` `,i=e===`/`&&n.trim()===``?`/${J.current.slice(t)}`:`${n}${r}${e}${J.current.slice(t)}`,a=e===`/`&&n.trim()===``?1:n.length+r.length+1;G.current=!0,L(i),K(a)},upload:()=>ye.current?.click()},(0,A.useEffect)(()=>E(M,{models:()=>Q.current?.models()??[],model:()=>Q.current?.model(),setModel:e=>Q.current?.setModel(e),options:()=>Q.current?.options()??[],setOption:(e,t)=>Q.current?.setOption(e,t),running:()=>Q.current?.running()??!1,stop:()=>Q.current?.stop(),session:()=>Q.current?.session()??``,attach:e=>Q.current?.attach(e),type:e=>Q.current?.type(e),upload:()=>Q.current?.upload()}),[M]);let je=Z.map(e=>e.key).join(`
|
|
2
|
-
`);(0,A.useEffect)(()=>{let e=y(S,Z);return()=>e.dispose()},[S,je]);function Me(e){let t=X.openCommand(e);K(t??U.current?.value.length??I.length)}function Ne(){L(``),H([]),G.current=!1,s(e,{type:`chat/draftChanged`,draft:void 0})}function $(e){let t=I.trim();if(t===``)return;let n=ge(t,B,V);g(W===void 0?{type:`chat/turnStarted`,turnId:l(),startedAt:new Date().toISOString(),message:n}:e===`steer`?{type:`chat/pendingMessageSet`,kind:`steering`,id:l(),message:n}:{type:`chat/pendingMessageSet`,kind:`queued`,id:l(),message:n}),Ne()}let Pe=Ae.find(e=>e.id===B)?.name??B;return(0,k.jsxs)(`div`,{className:`web-composer`,children:[X.pickerNode===null?null:(0,k.jsx)(`div`,{className:`web-composer__picker`,children:X.pickerNode}),f===void 0&&ve.length===0?null:(0,k.jsxs)(`ul`,{className:`web-composer__queue`,children:[f===void 0?null:(0,k.jsxs)(`li`,{children:[(0,k.jsx)(`span`,{className:`web-chip`,"data-on":`true`,children:`Steering`}),(0,k.jsx)(`span`,{className:`web-composer__queued`,children:f.message.text}),(0,k.jsx)(o,{label:`Remove`,size:`sm`,onClick:()=>g({type:`chat/pendingMessageRemoved`,kind:`steering`,id:f.id})})]}),ve.map((e,t)=>(0,k.jsxs)(`li`,{children:[(0,k.jsxs)(`span`,{className:`web-chip`,children:[`Next `,t+1]}),(0,k.jsx)(`span`,{className:`web-composer__queued`,children:e.message.text}),(0,k.jsx)(o,{label:`Remove`,size:`sm`,onClick:()=>g({type:`chat/pendingMessageRemoved`,kind:`queued`,id:e.id})})]},e.id))]}),(0,k.jsxs)(`div`,{className:`web-composer__where`,children:[F===void 0?null:(0,k.jsx)(P,{label:`${d.folder} ${u(F)}`,title:`The folder this session works in`}),(0,k.jsx)(P,{label:`${d.agents} ${j?.displayName??h.provider}`,title:j?.description??`The agent running this session`})]}),(0,k.jsxs)(`div`,{className:`web-composer__box`,"data-drop":xe??void 0,onDragOver:we,onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||Se(null)},onDrop:Te,children:[V.length===0?null:(0,k.jsx)(`div`,{className:`web-composer__attached`,children:V.map((e,t)=>(0,k.jsxs)(`span`,{className:`web-attachment`,title:x(e,F)??b(e),children:[(0,k.jsx)(`span`,{className:`web-attachment__icon`,"aria-hidden":`true`,children:ae(e)}),(0,k.jsx)(`span`,{className:`web-attachment__label`,children:b(e)}),(0,k.jsx)(`button`,{type:`button`,className:`web-attachment__remove`,"aria-label":`Remove ${b(e)}`,onClick:()=>{G.current=!0,H(e=>e.filter((e,n)=>n!==t))},children:d.close})]},`${b(e)}-${t}`))}),(0,k.jsx)(`div`,{className:`web-composer__bar`,children:(0,k.jsx)(`textarea`,{ref:U,className:`web-composer__text`,rows:1,value:I,"aria-label":`Message`,placeholder:W===void 0?`Message the agent, / for commands, @ to refer to a file`:`Queue a message for after this turn, or steer it`,onChange:e=>{G.current=!0,L(e.currentTarget.value),z(e.currentTarget.selectionStart)},onFocus:()=>S.store.set(le,N),onKeyUp:e=>z(e.currentTarget.selectionStart),onClick:e=>z(e.currentTarget.selectionStart),onKeyDown:e=>{if(!X.handleMenuKeyDown(e)){if(e.key===`Escape`&&W!==void 0){e.preventDefault(),ke();return}e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),$(e.altKey?`steer`:`send`))}}})}),(0,k.jsxs)(`div`,{className:`web-composer__foot`,children:[(0,k.jsx)(`button`,{type:`button`,className:`web-composer__add`,"aria-label":`Add context`,title:`Add context`,onClick:()=>Me(`ahp.composer.attach`),children:`+`}),(0,k.jsx)(`input`,{ref:ye,type:`file`,multiple:!0,hidden:!0,onChange:e=>{be(e.currentTarget.files),e.currentTarget.value=``}}),(0,k.jsxs)(`div`,{className:`web-composer__chips`,children:[Ae.length===0?null:(0,k.jsx)(P,{label:`Model: ${Pe??`default`}`,title:`The model the next message goes to`,onOpen:()=>Me(`ahp.composer.model`)}),Z.filter(ne).map(e=>(0,k.jsx)(P,{label:`${e.schema.title||e.key}: ${v(e)}`,title:e.schema.description??e.schema.title,...e.schema.type===`boolean`?{on:(e.value??e.schema.default)===!0}:{},...re(e.schema)?{onOpen:()=>Me(w(e.key))}:{}},e.key))]}),W===void 0||I.trim()===``?null:(0,k.jsx)(o,{label:`Steer`,size:`sm`,title:`Alt+Enter steers`,onClick:()=>$(`steer`)}),W===void 0||I.trim()===``?null:(0,k.jsx)(o,{label:`Queue`,variant:`primary`,size:`sm`,title:`Enter queues`,onClick:()=>$(`send`)}),W===void 0?(0,k.jsx)(`button`,{type:`button`,className:`web-composer__round`,"aria-label":`Send`,title:`Enter sends, Shift+Enter breaks the line`,disabled:I.trim()===``,onClick:()=>$(`send`),children:d.send}):(0,k.jsx)(`button`,{type:`button`,className:`web-composer__round`,"aria-label":`Stop`,title:`Esc stops`,onClick:ke,children:d.stop})]})]})]})});export{L as a,P as i,he as n,I as o,F as r,_e as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./ActionList-aOUHK9Z9.js";var i=e(),a=t();function o({x:e,y:t,onClose:n,closeOnOutsideClick:r=!0,closeOnEscape:o=!0,className:s,style:c,children:l}){let u=(0,a.useRef)(null),[d,f]=(0,a.useState)({left:e,top:t});return(0,a.useLayoutEffect)(()=>{let n=u.current;if(!n)return;let r=()=>{let r=n.getBoundingClientRect(),i=Math.max(4,window.innerWidth-r.width-4),a=Math.max(4,window.innerHeight-r.height-4),o=Math.max(4,Math.min(e,i)),s=Math.max(4,Math.min(t,a));f(e=>e.left===o&&e.top===s?e:{left:o,top:s})};r(),window.addEventListener(`resize`,r);let i=typeof ResizeObserver>`u`?null:new ResizeObserver(r);return i?.observe(n),()=>{window.removeEventListener(`resize`,r),i?.disconnect()}},[e,t]),(0,a.useEffect)(()=>{if(!r||!n)return;let e=!0;function t(t){e&&u.current&&(u.current.contains(t.target)||n?.())}let i=setTimeout(()=>{e&&document.addEventListener(`mousedown`,t)},0);return()=>{e=!1,clearTimeout(i),document.removeEventListener(`mousedown`,t)}},[r,n]),(0,a.useEffect)(()=>{if(!o||!n)return;function e(e){e.key===`Escape`&&n?.()}return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[o,n]),(0,i.jsx)(`div`,{ref:u,className:[`oo-popup`,s].filter(Boolean).join(` `),style:{position:`fixed`,left:d.left,top:d.top,zIndex:9999,maxHeight:`calc(100vh - 8px)`,overflowY:`auto`,...c},onMouseDown:e=>e.stopPropagation(),children:l})}function s({spec:e,x:t,y:s,onClose:u,context:d,dataContext:f,inline:p}){let m=n(),[h,g]=(0,a.useState)(()=>p?[{component:p.component}]:[{spec:e}]),_=(0,a.useRef)(h);_.current=h;let v=(0,a.useRef)(!1);if(d&&!v.current){for(let[e,t]of Object.entries(d)){let n=e.startsWith(`$/`)?e:c(f,e);m.store.set(n,t)}v.current=!0}let y=(0,a.useMemo)(()=>({pushList:e=>g(t=>[...t,{spec:e}]),replaceList:e=>g(t=>{let n=t.slice(0,-1);return n.push({spec:e}),n}),openInline:(e,t)=>{g(n=>[...n,{component:(0,i.jsx)(l,{name:e,props:t})}])},openPopover:()=>{},back:()=>g(e=>e.length>1?e.slice(0,-1):e),closeMenu:u,keepOpen:()=>void 0,insertAtCursor:()=>void 0,replaceActiveToken:()=>void 0,query:``}),[u]),b=h[h.length-1],x=h.length>1?y.back:void 0;return(0,i.jsx)(o,{x:t,y:s,onClose:u,children:`component`in b?b.component:(0,i.jsx)(r,{spec:b.spec,hostCtx:y,onBack:x,dataContext:f})})}function c(e,t){return t.startsWith(`$/`)?t:e?`${e.endsWith(`/`)?e.slice(0,-1):e}${t.startsWith(`/`)?t:`/${t}`}`:t.startsWith(`/`)?`$${t}`:`$/${t}`}function l({name:e,props:t}){return(0,i.jsxs)(`div`,{style:{padding:12},children:[`[component: `,e,`]`]})}export{s as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{V as i,c as a,o,q as s}from"./data-Fkj0LNnG.js";import{n as c,t as l}from"./words-BknpHIF3.js";import{i as u,s as d}from"./terminal-kD0C2LuZ.js";import{t as f}from"./state-KGSq646f.js";import{a as p,i as m,r as h}from"./turn-BoF7W1h6.js";import{t as g}from"./channel-Cqz_LUS2.js";var _=t(),v=e();function y({uri:e,folder:t}){let n=r(),{state:i}=g(e,u);return d(i?.cwd,t)?(0,v.jsx)(`button`,{type:`button`,className:`web-link`,title:`Open the terminal`,onClick:()=>void n.commands.execute(`ahp.openTerminal`,{uri:e}),children:i?.title===``||i?.title===void 0?`Terminal`:i.title}):null}function b(){let e=r(),t=n(o),u=n(f),d=n(a)?.find(e=>e.resource===u),b=g(d===void 0?void 0:u,s),x=g(b.state?.defaultChat??d?.defaultChat,i),S=x.state?.turns,C=(0,_.useMemo)(()=>m(S??[]),[S]);if(d===void 0)return(0,v.jsx)(`p`,{className:`web-note web-details__empty`,children:`Open a session to see its details.`});let w=d.workingDirectories?.[0],T=d.changes,E=d.origin,D=b.state?.activeClients.length??0,O=b.state?.defaultChat??d.defaultChat,k=[[`Session`,d.title===``?`Untitled`:d.title],[`Session id`,(0,v.jsx)(`code`,{children:d.resource},`s`)]];return O!==void 0&&k.push([`Chat id`,(0,v.jsx)(`code`,{children:O},`h`)]),k.push([`Agent`,d.provider]),C.models.length>0&&k.push([`Model`,C.models.join(`, `)]),w!==void 0&&k.push([`Folder`,(0,v.jsx)(`button`,{type:`button`,className:`web-link`,title:`Show the folder in the explorer`,onClick:()=>void e.commands.execute(`ahp.revealFolder`,{uri:w}),children:(0,v.jsx)(`code`,{children:c(w)})},`f`)]),k.push([`Terminal`,(0,v.jsxs)(`span`,{className:`web-details__list`,children:[w===void 0?null:(t?.terminals??[]).map(e=>(0,v.jsx)(y,{uri:e.resource,folder:w},e.resource)),(0,v.jsx)(`button`,{type:`button`,className:`web-link`,title:w===void 0?`A new terminal`:`A new terminal in the session's folder`,onClick:()=>void e.commands.execute(`ahp.newTerminal`,w===void 0?void 0:{cwd:w}),children:`+ New terminal`})]},`t`)]),d.project!==void 0&&k.push([`Project`,d.project.displayName]),k.push([`Started`,p(d.createdAt)],[`Changed`,p(d.modifiedAt)]),C.turns>0&&(k.push([`Turns`,`${C.turns}${x.state?.turnsNextCursor===void 0?``:`+`}`]),k.push([`Working`,l(C.working)]),k.push([`Tokens`,`\u{2191}${h(C.input)} \u{2193}${h(C.output)}`]),C.tools>0&&k.push([`Tool calls`,String(C.tools)])),T!==void 0&&(T.additions!==void 0||T.deletions!==void 0)&&k.push([`Changes`,(0,v.jsxs)(`span`,{children:[(0,v.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,T.additions??0]}),` `,(0,v.jsxs)(`span`,{className:`web-diff--remove`,children:[`-`,T.deletions??0]}),T.files===void 0?``:` in ${T.files} files`]},`c`)]),E!==void 0&&String(E.kind)===`automation`&&k.push([`From`,`An automation run`]),D>0&&k.push([`Watching`,String(D)]),(0,v.jsx)(`dl`,{className:`web-details`,children:k.map(([e,t])=>(0,v.jsxs)(`div`,{children:[(0,v.jsx)(`dt`,{children:e}),(0,v.jsx)(`dd`,{children:t})]},e))})}export{b as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./Button-_R1oktDz.js";import{b as i}from"./data-Fkj0LNnG.js";import{n as a}from"./words-BknpHIF3.js";import{t as o}from"./Spinner-B-iOhBZq.js";import{t as s}from"./Alert-CHZkhmDE.js";import{a as c,r as l,t as u}from"./changeset-BY8dw-V-.js";import{n as d,r as f,t as p}from"./diff-eyYjrmkY.js";var m=t(),h=e(),g=async e=>e===void 0?``:(await i(e)).text;function _({file:e,before:t,after:i,changeset:_,change:v,review:y}){let b=n(),x=c(_),S=x.files.find(e=>e.id===v),C=S===void 0?[]:x.operations.filter(e=>l(e,`resource`)),[w,T]=(0,m.useState)(null);(0,m.useEffect)(()=>{let e=!0;return T(null),Promise.all([g(t),g(i)]).then(([t,n])=>{e&&T({before:t,after:n})}).catch(t=>{e&&T({error:t instanceof Error?t.message:String(t)})}),()=>{e=!1}},[t,i]);let E=(0,m.useMemo)(()=>w===null||`error`in w||w.before===null||w.after===null?[]:d(w.before,w.after),[w]),D=e===void 0?``:a(e),O=p(E),k=(0,h.jsxs)(`div`,{className:`web-file__head`,children:[(0,h.jsx)(`code`,{children:D}),w!==null&&!(`error`in w)?(0,h.jsxs)(`span`,{children:[(0,h.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,O.added]}),` `,(0,h.jsxs)(`span`,{className:`web-diff--remove`,children:[`-`,O.removed]}),t===void 0?` · new file`:i===void 0?` · deleted`:``]}):null,(0,h.jsxs)(`span`,{className:`web-file__actions`,children:[y===!0&&S!==void 0?(0,h.jsxs)(`label`,{className:`web-file__viewed`,children:[(0,h.jsx)(`input`,{type:`checkbox`,checked:S.reviewed,onChange:e=>x.review([S],e.target.checked)}),`Viewed`]}):null,S===void 0?null:C.map(e=>(0,h.jsx)(r,{label:`${u(e)} ${e.label}`,size:`sm`,disabled:String(e.status)===`running`,onClick:()=>void x.run(e,S)},e.id)),e===void 0||i===void 0?null:(0,h.jsx)(r,{label:`Open file`,size:`sm`,onClick:()=>void b.commands.execute(`ahp.openFile`,{uri:e})})]})]}),A=x.said===null?null:(0,h.jsx)(s,{tone:x.said.tone,message:x.said.text});return w===null?(0,h.jsxs)(`div`,{className:`web-file`,children:[k,A,(0,h.jsx)(o,{label:`Reading both sides`})]}):`error`in w?(0,h.jsxs)(`div`,{className:`web-file`,children:[k,A,(0,h.jsx)(s,{tone:`danger`,title:`Not readable`,message:w.error})]}):w.before===null||w.after===null?(0,h.jsxs)(`div`,{className:`web-file`,children:[k,A,(0,h.jsx)(`p`,{className:`web-note`,children:`This file is not text.`})]}):E.length===0?(0,h.jsxs)(`div`,{className:`web-file`,children:[k,A,(0,h.jsx)(`p`,{className:`web-note`,children:`No changes.`})]}):(0,h.jsxs)(`div`,{className:`web-file`,children:[k,A,(0,h.jsx)(`div`,{className:`web-file__body`,children:(0,h.jsx)(`table`,{className:`web-code web-diff`,children:(0,h.jsx)(`tbody`,{children:E.map((e,t)=>[(0,h.jsx)(`tr`,{className:`web-diff__hunk`,children:(0,h.jsx)(`td`,{colSpan:3,children:f(e)})},`h${t}`),...e.lines.map((e,n)=>(0,h.jsxs)(`tr`,{"data-kind":e.kind,children:[(0,h.jsx)(`td`,{className:`web-code__number`,children:e.before??``}),(0,h.jsx)(`td`,{className:`web-code__number`,children:e.after??``}),(0,h.jsxs)(`td`,{className:`web-code__text`,children:[e.kind===`add`?`+`:e.kind===`del`?`-`:` `,e.text]})]},`${t}:${n}`))])})})})]})}export{_ as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{G as a,d as o,g as s,i as c,n as l}from"./data-Fkj0LNnG.js";import{a as u,n as d}from"./words-BknpHIF3.js";import{t as f}from"./Spinner-B-iOhBZq.js";import{t as p}from"./Alert-CHZkhmDE.js";import{t as m}from"./Text-MPtQvYE-.js";import{a as h,i as g,o as _,s as v}from"./index-BkzdJo_Y.js";import{t as y}from"./channel-Cqz_LUS2.js";var b=t(),x=e(),S=[{label:`By hand only`,expression:``},{label:`Every 10 minutes`,expression:`*/10 * * * *`},{label:`Every hour`,expression:`0 * * * *`},{label:`Every 6 hours`,expression:`0 */6 * * *`},{label:`Every day at 09:00`,expression:`0 9 * * *`},{label:`Weekdays at 09:00`,expression:`0 9 * * 1-5`},{label:`Every Monday at 05:00`,expression:`0 5 * * 1`}];function C({label:e,hint:t,children:n}){return(0,x.jsxs)(`label`,{className:`web-form__field`,children:[(0,x.jsx)(`span`,{className:`web-input__label`,children:e}),n,t===void 0?null:(0,x.jsx)(`span`,{className:`web-input__hint`,children:t})]})}function w({resource:e}){let t=r(),{state:w,error:T}=y(o,a),E=n(`$/ahp/agents`)??[],D=n(l),O=n(c),k=e===void 0?void 0:w?.entries.find(t=>t.resource===e),[A,j]=(0,b.useState)(null);if(T!==null)return(0,x.jsx)(p,{tone:`danger`,title:`No automations`,message:T});if(w===void 0)return(0,x.jsx)(f,{label:`Reading the automations`});if(e!==void 0&&k===void 0)return(0,x.jsx)(p,{tone:`warning`,message:`This automation is gone.`});if(e===void 0&&D?.create===void 0)return(0,x.jsx)(p,{tone:`warning`,message:`This host does not let clients create automations.`});let M=A??_(k,{...E[0]===void 0?{}:{provider:E[0].provider},...O==null?{}:{folder:d(O)}}),N=e=>j({...M,...e}),P=E.find(e=>e.provider===M.provider),F=v(M),I=D?.schedules?.minIntervalMinutes,L=S.find(e=>e.expression===M.expression.trim());return(0,x.jsxs)(`div`,{className:`web-page web-form`,children:[(0,x.jsx)(m,{variant:`h2`,text:k===void 0?`New automation`:`Edit ${k.definition.title||`automation`}`}),(0,x.jsx)(C,{label:`Title`,children:(0,x.jsx)(`input`,{className:`web-field`,value:M.title,onChange:e=>N({title:e.target.value})})}),(0,x.jsx)(C,{label:`Message`,hint:`What the agent is told each time it runs.`,children:(0,x.jsx)(`textarea`,{className:`web-field web-form__message`,rows:5,value:M.message,onChange:e=>N({message:e.target.value})})}),(0,x.jsxs)(`div`,{className:`web-form__row`,children:[(0,x.jsx)(C,{label:`Agent`,children:(0,x.jsxs)(`select`,{className:`web-field`,value:M.provider,onChange:e=>N({provider:e.target.value,model:``}),children:[(0,x.jsx)(`option`,{value:``,children:`The host default`}),E.map(e=>(0,x.jsx)(`option`,{value:e.provider,children:e.displayName},e.provider))]})}),(0,x.jsx)(C,{label:`Model`,children:(0,x.jsxs)(`select`,{className:`web-field`,value:M.model,onChange:e=>N({model:e.target.value}),children:[(0,x.jsx)(`option`,{value:``,children:`The agent default`}),(P?.models??[]).map(e=>(0,x.jsx)(`option`,{value:e.id,children:e.name},e.id))]})})]}),(0,x.jsx)(C,{label:`Folder`,hint:`A folder on the daemon's machine.`,children:(0,x.jsx)(`input`,{className:`web-field`,value:M.folder,onChange:e=>N({folder:e.target.value})})}),(0,x.jsxs)(`div`,{className:`web-form__row`,children:[(0,x.jsx)(C,{label:`Schedule`,children:(0,x.jsxs)(`select`,{className:`web-field`,value:L?.expression??`custom`,onChange:e=>{e.target.value!==`custom`&&N({expression:e.target.value})},children:[S.map(e=>(0,x.jsx)(`option`,{value:e.expression,children:e.label},e.label)),(0,x.jsx)(`option`,{value:`custom`,children:`Custom`})]})}),(0,x.jsx)(C,{label:`Cron expression`,hint:`${M.expression.trim()===``?`Runs only when started by hand.`:g(M.expression)}${I===void 0?``:` At most every ${I} minutes.`}`,children:(0,x.jsx)(`input`,{className:`web-field`,value:M.expression,placeholder:`minute hour day month weekday`,onChange:e=>N({expression:e.target.value})})})]}),M.expression.trim()===``?null:(0,x.jsxs)(`div`,{className:`web-form__row`,children:[(0,x.jsx)(C,{label:`Time zone`,children:(0,x.jsx)(`input`,{className:`web-field`,value:M.timeZone,onChange:e=>N({timeZone:e.target.value})})}),(0,x.jsx)(C,{label:`Missed runs`,hint:`What happens to a run due while the daemon was down.`,children:(0,x.jsxs)(`select`,{className:`web-field`,value:M.misfire,onChange:e=>N({misfire:e.target.value===`runOnce`?`runOnce`:`skip`}),children:[(0,x.jsx)(`option`,{value:`skip`,children:`Skip them`}),(0,x.jsx)(`option`,{value:`runOnce`,children:`Run once when back`})]})})]}),(0,x.jsxs)(`div`,{className:`web-form__row`,children:[(0,x.jsx)(C,{label:`Turn off after runs`,hint:`Empty keeps it on.`,children:(0,x.jsx)(`input`,{className:`web-field`,inputMode:`numeric`,value:M.afterRuns,onChange:e=>N({afterRuns:e.target.value})})}),(0,x.jsx)(C,{label:`Turn off after`,hint:`Empty keeps it on.`,children:(0,x.jsx)(`input`,{className:`web-field`,type:`date`,value:M.afterDate,onChange:e=>N({afterDate:e.target.value})})})]}),(0,x.jsxs)(`label`,{className:`web-input__row`,children:[(0,x.jsx)(`input`,{type:`checkbox`,checked:M.enabled,onChange:e=>N({enabled:e.target.checked})}),(0,x.jsx)(`span`,{children:`On`})]}),F===void 0?null:(0,x.jsx)(`p`,{className:`web-note`,children:F}),(0,x.jsxs)(`div`,{className:`web-page__actions`,children:[(0,x.jsx)(i,{label:k===void 0?`Create`:`Save`,variant:`primary`,disabled:F!==void 0,onClick:()=>{if(F!==void 0)return;let e=h(M,k?.definition);if(k===void 0){let n=`ahp-automation:/${u()}`;s(o,{type:`automation/createRequested`,resource:n,definition:e}),t.surfaces.close(`automation:new`),t.commands.execute(`ahp.openAutomation`,{resource:n})}else s(o,{type:`automation/updateRequested`,resource:k.resource,changes:e}),t.surfaces.close(`automation:edit:${k.resource}`),t.commands.execute(`ahp.openAutomation`,{resource:k.resource})}}),(0,x.jsx)(i,{label:`Cancel`,onClick:()=>t.surfaces.close(k===void 0?`automation:new`:`automation:edit:${k.resource}`)})]})]})}export{w as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{n as i}from"./sessions-CEccRVtA.js";import{c as a,f as o,i as s,r as c,w as l}from"./data-Fkj0LNnG.js";import{n as u}from"./words-BknpHIF3.js";import{t as d}from"./emojis-BOylxma2.js";import{t as f}from"./Spinner-B-iOhBZq.js";import{t as p}from"./Alert-CHZkhmDE.js";import{t as m}from"./Tree-Bb5NwYJ1.js";import{r as h}from"./index-BkzdJo_Y.js";import{r as g}from"./drag-ruzgQUFW.js";var _=t(),v=e=>/^[a-z][a-z0-9+.-]*:\/\/\/?$/i.test(e)?e:e.replace(/\/+$/,``);function y(e,t,n=[]){let r=new Set,i=[],a=(e,t)=>{if(e===void 0||e===``)return;let n=v(e);r.has(n)||(r.add(n),i.push({uri:n,isDefault:t}))};a(e??void 0,!0);for(let e of t)a(e.workingDirectories?.[0],!1);for(let e of n)a(e,!1);return i}var b=(e,t)=>`${e}${e.endsWith(`/`)?``:`/`}${encodeURIComponent(t)}`;function x(e){return[...e.filter(e=>e.type===`directory`),...e.filter(e=>e.type!==`directory`)]}function S(e){try{return decodeURIComponent(v(e).replace(/^file:\/\//i,``))}catch{return v(e).replace(/^file:\/\//i,``)}}function C(e,t){let n=S(t),r=e.filter(e=>{let t=S(e);return n===t||n.startsWith(t.endsWith(`/`)?t:`${t}/`)}).sort((e,t)=>S(t).length-S(e).length)[0];if(r===void 0)return[`file://${n.split(`/`).map(encodeURIComponent).join(`/`)}`];let i=[r];for(let e of n.slice(S(r).length).split(`/`).filter(e=>e!==``))i.push(b(i[i.length-1]??r,e));return i}var w=e(),T=`$/modus/class`;function E(e){let t=u(e);return(0,w.jsx)(`span`,{title:t,children:t.replace(/\/+$/,``).split(`/`).pop()||t})}function D(){let e=r(),t=n(c),u=n(s),v=n(a),S=n(h),[D,O]=(0,_.useState)([]),k=(0,_.useMemo)(()=>y(u,v??[],D),[u,v,D]),[A,j]=(0,_.useState)(new Map),[M,N]=(0,_.useState)(new Set),[P,F]=(0,_.useState)(null),I=(0,_.useCallback)(e=>{j(t=>new Map(t).set(e,`loading`)),l(`resourceList`,{channel:o,uri:e}).then(t=>j(n=>new Map(n).set(e,x(t.entries)))).catch(()=>j(t=>new Map(t).set(e,`failed`)))},[]),L=(0,_.useCallback)(e=>{for(let t of e)!M.has(t)&&!A.has(t)&&I(t);N(e)},[M,A,I]),R=k[0]?.uri;(0,_.useEffect)(()=>{R!==void 0&&!A.has(R)&&L(new Set([...M,R]))},[R]);let z=(0,_.useRef)(null);(0,_.useEffect)(()=>{if(S==null)return;e.store.set(h,null);let t=C(k.map(e=>e.uri),S),[n]=t;n!==void 0&&!k.some(e=>e.uri===n)&&O(e=>[...e,n]),L(new Set([...M,...t]));let r=t[t.length-1]??null;F(r),z.current=r},[S]);let B=(0,_.useRef)(null);(0,_.useEffect)(()=>{let e=z.current;if(e===null)return;let t=Array.from(B.current?.querySelectorAll(`[data-key]`)??[]).find(t=>t.dataset.key===e);t!==void 0&&(t.scrollIntoView({block:`center`}),z.current=null)},[A,P]);let V=()=>{j(new Map);for(let e of M)I(e)},H=(0,_.useMemo)(()=>{let e=(t,n,r)=>{let i=A.get(t),a=i===void 0?[]:i===`loading`?[{key:`${t}#loading`,label:`Loading`}]:i===`failed`?[{key:`${t}#failed`,label:`Not readable`}]:i.map(n=>{let r=b(t,n.name);return n.type===`directory`?e(r,n.name):{key:r,label:n.name,icon:d.file,draggable:!0,data:{uri:r,directory:!1}}});return{key:t,label:n,icon:d.folder,draggable:!0,data:{uri:t,directory:!0},children:a,...r===void 0?{}:{trailing:(0,w.jsx)(`span`,{className:`web-folders__tag`,children:r})}}};return k.map(t=>e(t.uri,E(t.uri),t.isDefault?`default`:void 0))},[k,A]);return t?.status!==`connected`&&k.length===0?t?.status===`failed`?(0,w.jsx)(p,{tone:`danger`,title:`Not connected`,message:t.error??`The server refused the connection.`}):(0,w.jsx)(f,{label:`Connecting to the server`}):(0,w.jsxs)(`div`,{className:`web-explorer`,children:[(0,w.jsxs)(`div`,{className:`web-explorer__title`,children:[(0,w.jsx)(`span`,{children:`Explorer`}),(0,w.jsx)(`span`,{className:`web-explorer__actions`,children:(0,w.jsx)(`button`,{type:`button`,className:`web-explorer__action`,title:`Refresh`,"aria-label":`Refresh`,onClick:V,children:(0,w.jsx)(`span`,{className:`web-explorer__icon`,children:d.reload})})})]}),(0,w.jsxs)(`div`,{className:`web-explorer__scroll`,ref:B,children:[k.length===0?(0,w.jsx)(`p`,{className:`web-note web-explorer__empty`,children:`The server names no folder yet. Start a session in one.`}):null,(0,w.jsx)(m,{nodes:H,selectedKey:P,expanded:M,onExpandedChange:L,onSelect:t=>{if(t.data!==void 0){if(F(t.key),t.data.directory){let e=new Set(M);e.delete(t.key)||e.add(t.key),L(e)}else e.commands.execute(`ahp.openFile`,{uri:t.data.uri}),i(e,e.store.get(T)??`large`)}},onDragStart:(e,t)=>{t.data!==void 0&&g(e.dataTransfer,t.data)}})]})]})}export{D as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{S as a,c as o,q as s}from"./data-Fkj0LNnG.js";import{o as c}from"./words-BknpHIF3.js";import{t as l}from"./emojis-BOylxma2.js";import{t as u}from"./ContextMenu-qqlGWvJT.js";import{t as d}from"./Spinner-B-iOhBZq.js";import{t as f}from"./Alert-CHZkhmDE.js";import{t as ee}from"./Tree-Bb5NwYJ1.js";import{t as p}from"./TextField-DnSHrmJM.js";import{t as m}from"./CheckBox-Dkn59EbO.js";import{t as h}from"./Modal-BHPfQpzr.js";import{t as te}from"./state-KGSq646f.js";import{n as ne,t as re}from"./index-BkzdJo_Y.js";import{t as ie}from"./channel-Cqz_LUS2.js";import{a as ae,c as oe,d as se,i as g,l as ce,n as _,o as le,r as v,s as ue,t as y,u as b}from"./changeset-BY8dw-V-.js";var x=t(),S=e();function C(e){let t=e.filter(e=>e.staged).length;return t>0?t===1?`The 1 staged file is committed. The rest stay as they are.`:`The ${t} staged files are committed. The rest stay as they are.`:e.length===1?`Nothing is staged, so the 1 changed file is committed.`:`Nothing is staged, so all ${e.length} changed files are committed.`}function w({form:e,files:t,onCommit:n,onClose:r}){let[a,o]=(0,x.useState)(``),s=c(e.operation.confirmation),l=a.trim()!==``;return(0,S.jsx)(h,{open:!0,title:e.operation.label,onClose:r,children:(0,S.jsxs)(`div`,{className:`web-changeset-form`,children:[(0,S.jsx)(p,{label:`Commit message`,multiline:!0,rows:4,value:a,placeholder:`What does this change do?`,onChange:o}),(0,S.jsx)(`p`,{className:`web-note`,children:C(t)}),s===``?null:(0,S.jsx)(`p`,{className:`web-note`,children:s}),(0,S.jsxs)(`div`,{className:`web-changeset-form__actions`,children:[(0,S.jsx)(i,{label:`Cancel`,variant:`ghost`,onClick:r}),(0,S.jsx)(i,{label:e.operation.label,variant:`primary`,disabled:!l,onClick:()=>n(a.trim())})]})]})})}function T({form:e,onCreate:t,onClose:n}){let[r,a]=(0,x.useState)(e.draft.title),[o,s]=(0,x.useState)(e.draft.description),[c,l]=(0,x.useState)(!1);(0,x.useEffect)(()=>{a(e.draft.title),s(e.draft.description)},[e.draft]);let u=e.draft.branchName===null&&e.draft.baseBranchName===null?null:`${e.draft.branchName??`?`} \u{2192} ${e.draft.baseBranchName??`?`}`,f=!e.preparing&&e.create!==null&&r.trim()!==``;return(0,S.jsx)(h,{open:!0,title:`Create a pull request`,onClose:n,children:(0,S.jsxs)(`div`,{className:`web-changeset-form`,children:[e.preparing?(0,S.jsx)(d,{label:`Asking the server for a title and description`}):null,e.draft.repository===null&&u===null?null:(0,S.jsx)(`p`,{className:`web-note`,children:[e.draft.repository,u].filter(e=>e!==null).join(` · `)}),(0,S.jsx)(p,{label:`Title`,value:r,placeholder:`What is this request?`,disabled:e.preparing,onChange:a}),(0,S.jsx)(p,{label:`Description`,multiline:!0,rows:8,value:o,placeholder:`What changed, and why?`,disabled:e.preparing,onChange:s}),(0,S.jsx)(m,{label:`Open as a draft`,value:c,onChange:l}),(0,S.jsx)(`p`,{className:`web-note`,children:e.create===null?`This server offers no way to create the request.`:`The server commits what is uncommitted, pushes the branch and opens the request only when you press the button.`}),(0,S.jsxs)(`div`,{className:`web-changeset-form__actions`,children:[(0,S.jsx)(i,{label:`Cancel`,variant:`ghost`,onClick:n}),e.create===null?null:(0,S.jsx)(i,{label:e.create.label,variant:`primary`,disabled:!f,onClick:()=>t({...e.draft,title:r.trim(),description:o},c)})]})]})})}function de({form:e,files:t,onCommit:n,onPullRequest:r,onClose:i}){return e===null?null:e.kind===`commit`?(0,S.jsx)(w,{form:e,files:t,onCommit:n,onClose:i}):(0,S.jsx)(T,{form:e,onCreate:r,onClose:i})}var E=`ahpd-web.changes-view`,D=`ahpd-web.changes-grouping`,fe={review:`By review`,staging:`Staged and not`,none:`Not grouped`};function O(e,t){try{let n=localStorage.getItem(e);return t.find(e=>e===n)??null}catch{return null}}function k(e,t){try{localStorage.setItem(e,t)}catch{}}var pe={A:`Added`,M:`Modified`,D:`Deleted`,U:`Untracked`};function A(){let e=r(),t=n(te),i=n(o)?.find(e=>e.resource===t),c=ie(t,s),p=(0,x.useMemo)(()=>se(c.state?.changesets),[c.state?.changesets]),[m,h]=(0,x.useState)(void 0),C=p.find(e=>e.uri===m)??le(p),w=ae(C?.uri),{files:T,operations:A}=w,j=i?.workingDirectories?.[0]??null,[M,me]=(0,x.useState)(()=>O(E,[`list`,`tree`])??`list`),[N,he]=(0,x.useState)(()=>O(D,[`review`,`staging`,`none`])),P=C?.review===!0,ge=T.some(e=>e.staged||e.unstaged),F=[...P?[`review`]:[],...ge?[`staging`]:[],`none`],I=N!==null&&F.includes(N)?N:F[0]??`none`,[L,_e]=(0,x.useState)(``),[ve,R]=(0,x.useState)(new Set),[ye,z]=(0,x.useState)(null),[B,V]=(0,x.useState)(null),H=A.filter(e=>v(e,`resource`)),be=A.some(e=>e.id===`create-pr`),U=A.filter(e=>v(e,`changeset`)&&!(be&&e.id===`prepare-pull-request`)),W=e=>String(e.status)===`running`,xe=t=>{let n=[{title:`Open change`,onSelect:n=>{n.closeMenu(),_(e,t,C?.uri,P)}}];t.status!==`deleted`&&(n.push({title:`Open file`,onSelect:n=>{n.closeMenu(),e.commands.execute(`ahp.openFile`,{uri:t.file})}}),n.push(...re(e,t.file,ne(e,t.file)[0]?.component??null))),P&&n.push({title:t.reviewed?`Mark as not reviewed`:`Mark as reviewed`,onSelect:e=>{e.closeMenu(),w.review([t],!t.reviewed)}});for(let e of H)n.push({title:e.label,...e.description===void 0?{}:{tooltip:e.description},group:`file`,...e.confirmation===void 0?{}:{color:`red`},onSelect:n=>{n.closeMenu(),w.run(e,t)}});return n},Se=t=>{let n=ce(t),r=(e,t)=>{e.stopPropagation(),t()};return(0,S.jsxs)(`span`,{className:`web-change__end`,children:[(0,S.jsxs)(`span`,{className:`web-change__actions`,children:[P?(0,S.jsx)(`button`,{type:`button`,className:`web-change__action`,title:t.reviewed?`Mark as not reviewed`:`Mark as reviewed`,"aria-label":t.reviewed?`Mark as not reviewed`:`Mark as reviewed`,"aria-pressed":t.reviewed,onClick:e=>r(e,()=>w.review([t],!t.reviewed)),children:l.check}):null,t.status===`deleted`?null:(0,S.jsx)(`button`,{type:`button`,className:`web-change__action`,title:`Open file`,"aria-label":`Open file`,onClick:n=>r(n,()=>void e.commands.execute(`ahp.openFile`,{uri:t.file})),children:l.file}),H.map(e=>(0,S.jsx)(`button`,{type:`button`,className:`web-change__action`,title:e.label,"aria-label":e.label,disabled:W(e),onClick:n=>r(n,()=>void w.run(e,t)),children:y(e)},e.id))]}),(0,S.jsx)(`span`,{className:`web-change__counts`,children:t.added===void 0&&t.removed===void 0?null:(0,S.jsxs)(S.Fragment,{children:[(0,S.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,t.added??0]}),` `,(0,S.jsxs)(`span`,{className:`web-diff--remove`,children:[`-`,t.removed??0]})]})}),(0,S.jsx)(`span`,{className:`web-change__letter`,"data-letter":n,title:pe[n],children:n})]})},G=L.trim().toLowerCase(),K=G===``?T:T.filter(e=>`${b(e.dir,j)}/${e.name}`.toLowerCase().includes(G)),q=oe(K,I),J=new Map,Y=(()=>{let t=(t,n)=>{let r=`${n}|${t.id}`;J.set(r,t);let i=b(t.dir,j);return{key:r,label:(0,S.jsxs)(`span`,{className:`web-change`,"data-reviewed":t.reviewed?`true`:`false`,"data-deleted":t.status===`deleted`?`true`:`false`,title:`${i}/${t.name}`,children:[(0,S.jsx)(`span`,{className:`web-change__name`,children:t.name}),M===`list`&&i!==`.`?(0,S.jsx)(`span`,{className:`web-change__dir`,children:i}):null]}),icon:ne(e,t.file)[0]?.opens?.icon??l.file,trailing:Se(t),data:t}},n=(e,r)=>({key:`${r}|dir:${e.path}`,label:(0,S.jsx)(`span`,{className:`web-change__name`,title:e.path,children:e.name}),icon:l.folder,children:[...e.folders.map(e=>n(e,r)),...e.changes.map(e=>t(e,r))]}),r=(e,r)=>{if(M===`list`)return e.map(e=>t(e,r));let i=ue(e,j);return[...i.folders.map(e=>n(e,r)),...i.changes.map(e=>t(e,r))]};return I===`none`?r(q[0]?.changes??[],`all`):q.map(e=>({key:`group:${e.key}`,icon:``,label:(0,S.jsx)(`span`,{className:`web-change__group`,children:e.label}),trailing:(0,S.jsx)(`span`,{className:`web-explorer__count`,children:e.changes.length}),children:r(e.changes,e.key)}))})(),X=[],Z=e=>{for(let t of e)t.children!==void 0&&(X.push(t.key),Z(t.children))};Z(Y);let Ce=new Set(X.filter(e=>!ve.has(e))),we=e=>{let t=e.target.closest(`[data-key]`)?.dataset.key,n=t===void 0?void 0:J.get(t);n!==void 0&&(e.preventDefault(),z(t??null),V({x:e.clientX,y:e.clientY,items:xe(n)}))},Te=String(w.state?.status??``),Ee=(0,S.jsxs)(S.Fragment,{children:[t===void 0?(0,S.jsx)(`p`,{className:`web-note web-explorer__empty`,children:`Open a session to see what it changed.`}):null,t!==void 0&&c.state!==void 0&&p.length===0?(0,S.jsx)(`p`,{className:`web-note web-explorer__empty`,children:`This session tracks no changes.`}):null,w.said===null?null:(0,S.jsx)(f,{tone:w.said.tone,message:w.said.text}),w.error===null?null:(0,S.jsx)(f,{tone:`danger`,title:`Changes not readable`,message:w.error}),w.state?.error===void 0?null:(0,S.jsx)(f,{tone:`danger`,message:w.state.error.message}),C!==void 0&&(w.state===void 0||Te===`computing`)&&w.error===null?(0,S.jsx)(d,{label:`Working out the changes`}):null,w.state!==void 0&&Te!==`computing`&&T.length===0?(0,S.jsx)(`p`,{className:`web-note web-explorer__empty`,children:`No changes.`}):null]}),Q=(e,t,n,r)=>(0,S.jsx)(`button`,{type:`button`,className:`web-explorer__action`,title:t,"aria-label":t,"aria-pressed":r?.on,"data-on":r?.on===!0?`true`:`false`,"data-busy":r?.busy===!0?`true`:`false`,"data-tone":r?.tone??void 0,disabled:r?.disabled,onClick:n,children:(0,S.jsx)(`span`,{className:`web-explorer__icon`,children:e})},t),$=e=>{me(e),k(E,e)},De=e=>{let t=e.currentTarget.getBoundingClientRect(),n=p.map(e=>({title:e.label,icon:e.uri===C?.uri?l.check:``,onSelect:t=>{t.closeMenu(),h(e.uri)}}));V({x:t.left,y:t.bottom,items:n})},Oe=e=>{let t=e.currentTarget.getBoundingClientRect(),n=e=>({icon:e?l.check:``}),r=U.map(e=>{let t=g(e);return{title:e.label,...e.description===void 0?{}:{tooltip:e.description},group:`changes`,icon:y(e),...t===null?{}:{color:t},disabled:W(e),onSelect:t=>{t.closeMenu(),w.run(e)}}});if(r.push({title:`Show as a list`,group:`view`,...n(M===`list`),onSelect:e=>{e.closeMenu(),$(`list`)}},{title:`Show as a tree`,group:`view`,...n(M===`tree`),onSelect:e=>{e.closeMenu(),$(`tree`)}}),F.length>1)for(let e of F)r.push({title:fe[e],group:`group`,...n(e===I),onSelect:t=>{t.closeMenu(),he(e),k(D,e)}});X.length>0&&(r.push({title:`Expand all`,group:`folders`,icon:``,onSelect:e=>{e.closeMenu(),R(new Set)}}),r.push({title:`Collapse all`,group:`folders`,icon:``,onSelect:e=>{e.closeMenu(),R(new Set(X))}})),V({x:Math.max(0,t.right-200),y:t.bottom,items:r})},ke=T.reduce((e,t)=>e+(t.added??0),0),Ae=T.reduce((e,t)=>e+(t.removed??0),0);return(0,S.jsxs)(`div`,{className:`web-explorer web-changes`,children:[(0,S.jsxs)(`div`,{className:`web-explorer__title`,children:[(0,S.jsx)(`span`,{className:`web-explorer__name`,title:i?.title,children:i===void 0?`Changes`:`Changes \u{00B7} ${i.title||`Untitled`}`}),C===void 0?null:(0,S.jsxs)(`span`,{className:`web-explorer__actions`,children:[U.map(e=>Q(y(e),e.label,()=>void w.run(e),{busy:W(e),disabled:W(e),tone:g(e)})),U.length===0?null:(0,S.jsx)(`span`,{className:`web-explorer__sep`,"aria-hidden":`true`}),Q(l.reload,`Reload`,()=>void a(C.uri)),Q(l.more,`View options`,Oe)]})]}),C===void 0?null:(0,S.jsxs)(`div`,{className:`web-changes__bar`,children:[p.length>1?(0,S.jsxs)(`button`,{type:`button`,className:`web-changes__scope`,title:C.description??C.label,"aria-haspopup":`menu`,onClick:De,children:[C.label,` `,(0,S.jsx)(`span`,{"aria-hidden":`true`,children:l.caretDown})]}):(0,S.jsx)(`span`,{className:`web-changes__scope web-changes__scope--only`,title:C.description??C.label,children:C.label}),(0,S.jsx)(`span`,{className:`web-changes__totals`,children:T.length===0?null:(0,S.jsxs)(S.Fragment,{children:[T.length===1?`1 file`:`${T.length} files`,` `,(0,S.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,ke]}),` `,(0,S.jsxs)(`span`,{className:`web-diff--remove`,children:[`−`,Ae]})]})}),(0,S.jsx)(`span`,{className:`web-segments`,role:`group`,"aria-label":`Show as`,children:[`list`,`tree`].map(e=>(0,S.jsx)(`button`,{type:`button`,className:`web-segments__item web-segments__item--icon`,"aria-pressed":M===e,title:e===`list`?`Show as a list`:`Show as a tree`,"aria-label":e===`list`?`Show as a list`:`Show as a tree`,onClick:()=>$(e),children:e===`list`?l.log:l.tree},e))})]}),T.length===0?null:(0,S.jsx)(`input`,{className:`web-explorer__filter`,type:`search`,value:L,placeholder:`Filter files`,"aria-label":`Filter files`,onChange:e=>_e(e.target.value)}),(0,S.jsxs)(`div`,{className:`web-explorer__scroll`,onContextMenu:we,children:[(0,S.jsx)(`div`,{className:`web-explorer__notice`,children:Ee}),(0,S.jsx)(ee,{nodes:Y,selectedKey:ye,expanded:Ce,onExpandedChange:e=>R(new Set(X.filter(t=>!e.has(t)))),onSelect:t=>{if(t.data===void 0){R(e=>{let n=new Set(e);return n.delete(t.key)||n.add(t.key),n});return}z(t.key),_(e,t.data,C?.uri,P)}}),G!==``&&K.length===0?(0,S.jsx)(`p`,{className:`web-note web-explorer__empty`,children:`Nothing matches.`}):null]}),(0,S.jsx)(de,{form:w.form,files:T,onCommit:w.commit,onPullRequest:w.pullRequest,onClose:w.closeForm}),B===null?null:(0,S.jsx)(u,{spec:{items:B.items},x:B.x,y:B.y,onClose:()=>V(null)})]})}export{A as default};
|