@ahpd/web 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -20
- package/dist/app/ahpw.svg +4 -4
- package/dist/app/assets/ActionList-Bc-jZDaT.css +1 -0
- package/dist/app/assets/ActionList-QwhYPQiB.js +1 -0
- package/dist/app/assets/ActivityBarItem-B2nm6zWz.css +1 -0
- package/dist/app/assets/ActivityBarItem-DNjVAT_E.js +1 -0
- package/dist/app/assets/Alert-BhdRA0LL.js +1 -0
- package/dist/app/assets/AudioPage-CTBMdEWh.js +1 -0
- package/dist/app/assets/ChoicePicker-I5V6f-aN.js +1 -0
- package/dist/app/assets/CodeEditor-C-ygqVsY.js +3 -0
- package/dist/app/assets/CommandPalette-wYX5XXUP.js +1 -0
- package/dist/app/assets/Composer-DHrV5Yeq.js +2 -0
- package/dist/app/assets/{ContextMenu-BV1gdog0.js → ContextMenu-DYnWIBAF.js} +1 -1
- package/dist/app/assets/CopyButton-Dqp4FT7R.js +1 -0
- package/dist/app/assets/{DataTable-8woVlU4S.js → DataTable-Di749duh.js} +1 -1
- package/dist/app/assets/Details-DD3vmkCl.js +1 -0
- package/dist/app/assets/DiffPage-BId8ozv7.js +3 -0
- package/dist/app/assets/Edit-jFXpMjZc.js +1 -0
- package/dist/app/assets/Explorer-COyfGhcR.js +1 -0
- package/dist/app/assets/Explorer-Cau0IyIv.js +1 -0
- package/dist/app/assets/Explorer-DV3iMW_H.js +1 -0
- package/dist/app/assets/Explorer-Dfcbd81k.js +1 -0
- package/dist/app/assets/Explorer-gCfiH4Xy.js +1 -0
- package/dist/app/assets/ExplorerList-0duzRsX6.js +1 -0
- package/dist/app/assets/FilePage-C2oyHqAU.js +1 -0
- package/dist/app/assets/Filter-C4R4cZ-3.js +1 -0
- package/dist/app/assets/HeaderAction-5M2x4m1w.css +1 -0
- package/dist/app/assets/HeaderAction-Vq-h0k1X.js +1 -0
- package/dist/app/assets/HostSwitcher-CpnK8XaS.js +1 -0
- package/dist/app/assets/ImagePage-iB_X7JK-.js +1 -0
- package/dist/app/assets/Info-zs1cf5D4.js +1 -0
- package/dist/app/assets/LocaleToggle-Bnt4p8rr.js +1 -0
- package/dist/app/assets/LogPage-BksXBBRH.js +1 -0
- package/dist/app/assets/LoginForm-C83NjSZc.js +1 -0
- package/dist/app/assets/MarkdownPage-B3Uf-uhF.js +1 -0
- package/dist/app/assets/Modal-xWzwLA8s.js +1 -0
- package/dist/app/assets/MountTitle-BYR1nX0U.js +1 -0
- package/dist/app/assets/New-DSGbzxwy.js +4 -0
- package/dist/app/assets/OpenEditors-FoK0L7cG.js +1 -0
- package/dist/app/assets/Page-C__t0LNx.js +1 -0
- package/dist/app/assets/Page-D2Aojkph.js +2 -0
- package/dist/app/assets/Page-D_hX82GR.js +1 -0
- package/dist/app/assets/PageAlert-B8ulCXV4.js +1 -0
- package/dist/app/assets/Pagination-Bt7IC1tA.js +1 -0
- package/dist/app/assets/PortaLock-Q4MlsHWm.js +2 -0
- package/dist/app/assets/SchemaForm-byhtwSG1.css +1 -0
- package/dist/app/assets/SchemaForm-uhkLDWDC.js +1 -0
- package/dist/app/assets/Settings-D7Fa-31J.js +1 -0
- package/dist/app/assets/{SigillumGate-Bq_GLDvI.js → SigillumGate-B75RU_FM.js} +1 -1
- package/dist/app/assets/SingleLayout-DrZzqh9e.js +1 -0
- package/dist/app/assets/SpatialLayout-DZfRmqF0.js +1 -0
- package/dist/app/assets/Spinner-CBEPv0eM.js +1 -0
- package/dist/app/assets/SplitLayout-Bytjyrrj.js +1 -0
- package/dist/app/assets/StackLayout-BCyRY0nG.js +1 -0
- package/dist/app/assets/Start-DX8T0ii8.js +1 -0
- package/dist/app/assets/TabLayout-Czi2A6i3.js +1 -0
- package/dist/app/assets/TabPanelLayout-B_7L0Dyp.js +1 -0
- package/dist/app/assets/TerminalPage-BOIBCy2W.js +18 -0
- package/dist/app/assets/ThemeModeToggle-CFpNVcU1.js +1 -0
- package/dist/app/assets/ThemePicker-CqnA9Que.js +1 -0
- package/dist/app/assets/Tree-BvNPcfhW.js +1 -0
- package/dist/app/assets/{VideoPage-Cz7g_2E1.js → VideoPage-v3zVSos7.js} +1 -1
- package/dist/app/assets/WindowControls-BuiQSjfa.js +1 -0
- package/dist/app/assets/actions-CIzLn0YN.js +1 -0
- package/dist/app/assets/changeset-IbJWvDqP.js +1 -0
- package/dist/app/assets/{channel-UD2KGCy_.js → channel-C6Ss9Aem.js} +1 -1
- package/dist/app/assets/{clicks-DIh3kBLi.js → clicks-Doh5a3f9.js} +1 -1
- package/dist/app/assets/composer-commands-BOXuqfcP.js +2 -0
- package/dist/app/assets/data-DPJ4OTLn.js +2 -0
- package/dist/app/assets/{dist-C5-Hv917.js → dist-2b3tV-Z7.js} +1 -1
- package/dist/app/assets/dist-BCQ-dSMw.js +9 -0
- package/dist/app/assets/{dist-CxEuuaKq.js → dist-BMwhNxyY.js} +1 -1
- package/dist/app/assets/dist-BVWBMVma.js +1 -0
- package/dist/app/assets/dist-BvY_obDK.js +13 -0
- package/dist/app/assets/dist-CHrzvaer.js +11 -0
- package/dist/app/assets/{dist-1MAn9CBM.js → dist-CaJpOCLg.js} +1 -1
- package/dist/app/assets/{dist-BdNRSgzN.js → dist-Cy5nEZGW.js} +2 -2
- package/dist/app/assets/dist-DUiHb392.js +1 -0
- package/dist/app/assets/dist-DVLbqnEo.js +23 -0
- package/dist/app/assets/dist-DrG75V-Z.js +6 -0
- package/dist/app/assets/dist-DxvAUGwy.js +1 -0
- package/dist/app/assets/{dist-uvIW_qsj.js → dist-UsePpmWK.js} +1 -1
- package/dist/app/assets/{dist-Bq_hlZV8.js → dist-ZM5yW1OM.js} +1 -1
- package/dist/app/assets/dist-a56DBHT4.js +1 -0
- package/dist/app/assets/dist-fdt_fTp5.js +1 -0
- package/dist/app/assets/{emojis-7RT6GvLa.js → emojis-DanG-8fr.js} +1 -1
- package/dist/app/assets/{folder-path-CTpCmycG.js → folder-path-CJJ4uFfN.js} +1 -1
- package/dist/app/assets/grouping-DtiUUpdw.js +1 -0
- package/dist/app/assets/index-BiJaGB50.css +1 -0
- package/dist/app/assets/index-xynK_AEL.js +14 -0
- package/dist/app/assets/label-hTY0RCEf.js +1 -0
- package/dist/app/assets/locales-Dnk_Y338.js +1 -0
- package/dist/app/assets/media-Da9OmSvb.js +1 -0
- package/dist/app/assets/notify-BmjJL_fx.js +1 -0
- package/dist/app/assets/sessions-CLjdYeF3.js +2 -0
- package/dist/app/assets/state-CKNqusrK.js +1 -0
- package/dist/app/assets/terminal-_7S7Eyr-.js +1 -0
- package/dist/app/assets/text-D_lQQGN1.js +1 -0
- package/dist/app/assets/turn-z1TPlA5Q.js +3 -0
- package/dist/app/assets/useI18n-T3BwAm0z.js +1 -0
- package/dist/app/assets/useStoreLabel-BtAsVCsr.js +1 -0
- package/dist/app/assets/viewers-Vk4T9IkZ.js +1 -0
- package/dist/app/assets/words-DF1J9CaQ.js +2 -0
- package/dist/app/index.html +28 -24
- package/dist/plugin/index.d.ts +2 -2
- package/dist/plugin/index.js +2 -2
- package/dist/plugin/index.js.map +1 -1
- package/package.json +4 -3
- package/dist/app/assets/ActionList-Bawu-Lja.css +0 -1
- package/dist/app/assets/ActionList-aOUHK9Z9.js +0 -1
- package/dist/app/assets/ActivityBarItem-Cyes10aK.css +0 -1
- package/dist/app/assets/ActivityBarItem-DVzJQ1uh.js +0 -1
- package/dist/app/assets/Alert-CHZkhmDE.js +0 -1
- package/dist/app/assets/AudioPage-DAAck9ph.js +0 -1
- package/dist/app/assets/ChoicePicker-Cg4Cj6B2.js +0 -1
- package/dist/app/assets/Composer-Dp_Z0bXp.js +0 -2
- package/dist/app/assets/CopyButton-DWmFc5fw.js +0 -1
- package/dist/app/assets/Details-ByJkvhJN.js +0 -1
- package/dist/app/assets/DiffPage-Ck21x0bd.js +0 -3
- package/dist/app/assets/Edit-rv9ZDDDu.js +0 -1
- package/dist/app/assets/Explorer-CDm6vvt6.js +0 -1
- package/dist/app/assets/Explorer-CNz5U5q-.js +0 -1
- package/dist/app/assets/Explorer-DS_lqr3R.js +0 -1
- package/dist/app/assets/Explorer-DoNVPZ-C.js +0 -1
- package/dist/app/assets/Explorer-VoN5CYd5.js +0 -1
- package/dist/app/assets/ExplorerList-DfesRs43.js +0 -1
- package/dist/app/assets/FilePage-CAUDXIh9.js +0 -3
- package/dist/app/assets/Filter-D1FpBH5R.js +0 -1
- package/dist/app/assets/HostSwitcher-BuSTjyO6.js +0 -1
- package/dist/app/assets/ImagePage-cy_jkGi1.js +0 -1
- package/dist/app/assets/Info-DqnamTeq.js +0 -1
- package/dist/app/assets/LocaleToggle-B91QrqGs.js +0 -1
- package/dist/app/assets/LogPage-CKm7_URt.js +0 -1
- package/dist/app/assets/LoginForm-rBz-5JFG.js +0 -1
- package/dist/app/assets/MarkdownPage-DgalhN_B.js +0 -1
- package/dist/app/assets/Modal-BHPfQpzr.js +0 -1
- package/dist/app/assets/MountTitle-Bx_Vo8tF.js +0 -1
- package/dist/app/assets/New-D6QCCHrx.js +0 -3
- package/dist/app/assets/Page-CnfUTsQD.js +0 -2
- package/dist/app/assets/Page-DGp_WebG.js +0 -1
- package/dist/app/assets/Page-Dqf45zd4.js +0 -1
- package/dist/app/assets/Pagination-fEfxXCWD.js +0 -1
- package/dist/app/assets/PortaLock-BFpTWuKB.js +0 -2
- package/dist/app/assets/SchemaForm-B_SWmx0L.css +0 -1
- package/dist/app/assets/SchemaForm-DKxGZpnK.js +0 -1
- package/dist/app/assets/Settings-ALaVSuhU.js +0 -1
- package/dist/app/assets/SingleLayout-BzRi_cEY.js +0 -1
- package/dist/app/assets/SpatialLayout-Cote5YNZ.js +0 -1
- package/dist/app/assets/Spinner-B-iOhBZq.js +0 -1
- package/dist/app/assets/SplitLayout-CK5SuMF1.js +0 -1
- package/dist/app/assets/StackLayout-BUdng0sD.js +0 -1
- package/dist/app/assets/Start-D5KBqSwf.js +0 -1
- package/dist/app/assets/TabLayout-ByKrZ0yM.js +0 -1
- package/dist/app/assets/TabPanelLayout-B4DWG6Zm.js +0 -1
- package/dist/app/assets/TerminalPage-CDtmKMSK.js +0 -18
- package/dist/app/assets/ThemeModeToggle-C0j9D4s0.js +0 -1
- package/dist/app/assets/ThemePicker-DEUED0NH.js +0 -1
- package/dist/app/assets/Tree-fxC7yDSR.js +0 -1
- package/dist/app/assets/WindowControls-BWi1hOPh.js +0 -1
- package/dist/app/assets/actions-BzJiPQuh.js +0 -1
- package/dist/app/assets/changeset-eZAmDe3s.js +0 -1
- package/dist/app/assets/composer-commands-B8AF8OGi.js +0 -2
- package/dist/app/assets/data-hUAVersf.js +0 -2
- package/dist/app/assets/dist-33oU5N7i.js +0 -1
- package/dist/app/assets/dist-B4E-6SqB.js +0 -1
- package/dist/app/assets/dist-BDH0Q8eg.js +0 -13
- package/dist/app/assets/dist-BfGIsxxP.js +0 -1
- package/dist/app/assets/dist-BwHJSc3S.js +0 -6
- package/dist/app/assets/dist-DUFzb_Eu.js +0 -23
- package/dist/app/assets/dist-DX2Uz40S.js +0 -9
- package/dist/app/assets/dist-Db_OB0lX.js +0 -11
- package/dist/app/assets/dist-IR189dk6.js +0 -1
- package/dist/app/assets/dist-rmKzqdIO.js +0 -1
- package/dist/app/assets/index-B1VQ36Tb.css +0 -1
- package/dist/app/assets/index-yhQX4tVS.js +0 -14
- package/dist/app/assets/media-Coozt7AL.js +0 -1
- package/dist/app/assets/notify-BQ9fSOfy.js +0 -1
- package/dist/app/assets/registry-iidw4F1W.js +0 -1
- package/dist/app/assets/sessions-8PScJEDe.js +0 -2
- package/dist/app/assets/state-KGSq646f.js +0 -1
- package/dist/app/assets/terminal-BPj7jGw5.js +0 -1
- package/dist/app/assets/text-BdULOY8N.js +0 -1
- package/dist/app/assets/turn-BoF7W1h6.js +0 -3
- package/dist/app/assets/useStoreLabel-BuZT1So6.js +0 -1
- package/dist/app/assets/viewers-MssMDn0e.js +0 -1
- package/dist/app/assets/words-CyqfIDyJ.js +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e,t){if(e==null)return``;if(typeof e==`string`)return e;if(`t`in e)return t.translate(e.t);if(`path`in e){let n=t.get(e.path);return n==null?``:String(n)}return``}export{e as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{l as e,n as t}from"./useI18n-T3BwAm0z.js";var n={common:{close:`Close`,retry:`Retry`,reload:`Reload`,loading:`Loading`,dismiss:`Dismiss`,moreActions:`More actions`,breadcrumb:`Breadcrumb`},auth:{subtitle:`Sign in with a token credential.`,token:`Token`,tokenRequired:`A token is required.`,signIn:`Sign in`,forgotPassword:`Forgot password?`,createAccount:`Create account`,providerLabel:`Continue with {provider}`,emailLabel:`Email address`,phoneLabel:`Phone number`,sendCode:`Send code`,sendLink:`Send link`,verifyCode:`Verify code`,verifyFailed:`Verify failed`},shell:{toggleLeft:`Toggle left sidebar (Ctrl+B)`,togglePanel:`Toggle panel (Ctrl+J)`,toggleRight:`Toggle right sidebar (Ctrl+Alt+B)`,commands:{activateSection:`Activate sidebar section`,toggleLeft:`Toggle left sidebar`,toggleRight:`Toggle right sidebar`,palette:`Command palette`,showCommands:`Show all commands`,toggleActivityBar:`Toggle activity bar`,toggleStatusBar:`Toggle status bar`,toggleTitleBar:`Toggle title bar`,selectLocale:`Change language…`,selectTheme:`Change theme…`},nav:{sessions:`Sessions`,unread:`unread`,working:`working`,explorer:`Explorer`,automations:`Automations`,host:`Host`,agents:`Agents`},palette:{placeholder:`Type a command or a terminal`},layouts:{tab:`Tabs`,"tab-panel":`Tab groups`,split:`Split`,spatial:`Spatial`,stack:`Stack`,single:`Single`},layout:{title:`Customize layout`,view:`Main layout`,modes:{title:`Modes`,default:`Default`,focus:`Focus`,zen:`Zen`,wide:`Wide`,split:`Split view`},zones:{title:`Show`,titlebar:`Title bar`,activitybar:`Activity bar`,"sidebar-left":`Left sidebar`,"sidebar-right":`Right sidebar`,"panel-bottom":`Panel`,statusbar:`Status bar`}},notify:{region:`Notifications`,more:`{count} more`,raised:{one:`Raised {count} time`,other:`Raised {count} times`},dismiss:`Dismiss`,showDetails:`Show details`,hideDetails:`Hide details`,confirm:`Confirm`,cancel:`Cancel`,commands:{enableAlerts:`Notify me when this tab is in the background`,confirmModal:`Ask in the page's own dialog`,confirmNative:`Ask in the browser's dialog`,dismissAll:`Dismiss all notifications`},alerts:{alreadyOn:`Background notifications are already on`,blocked:`Background notifications are blocked`,blockedHelp:`The browser will not ask again. Turn them on in the site settings beside the address bar.`,on:`Background notifications are on`,notAllowed:`Background notifications were not allowed`}},panel:{log:`Log`,commands:{toggle:`Toggle panel`,showLog:`Show log`,clearLog:`Clear log`,hide:`Hide panel`}},embed:{manageHosts:`Manage hosts`,addHost:`Add host`,status:{connected:`Connected`,connecting:`Connecting`,down:`Down`},minimize:`Minimize`,maximize:`Maximize`,restore:`Restore`,close:`Close`},copy:{copy:`Copy`,copied:`Copied`},explorer:{noMatch:`Nothing matches.`},sidebar:{show:`Show {title}`},view:{setMainLayout:`Set the main layout`},manage:{title:`Manage`,language:`Language`,layout:`Layout`,theme:`Theme`,settings:`Settings`,signOut:`Sign out`}},close:{title:`Close {title}?`,keep:`Keep open`,close:`Close`},query:{search:`Search…`,noItems:`nothing`,pageOf:`{page} / {pages}`,itemRange:`{first} – {last} of {total}`,perPage:`Rows per page`,perPageOption:`{size} / page`,filter:`Filter…`,previous:`Previous`,next:`Next`},tabs:{close:`Close tab`,closeAll:`Close all`,closeGroup:`Close group`,closeLeft:`Close to the left`,closeRight:`Close to the right`,closeOthers:`Close others`,closeOthersInGroup:`Close others (except active)`,closeOtherGroups:`Close others (except active group)`,copyKey:`Copy key`,pin:`Pin tab`,unpin:`Unpin tab`,openToLeft:`Open to the left`,openToRight:`Open to the right`,openToTop:`Open to the top`,openToBottom:`Open to the bottom`,splitLeft:`Split group left`,splitRight:`Split group right`,splitUp:`Split group up`,splitDown:`Split group down`},picker:{navigate:`navigate`,select:`select`,back:`back`,close:`close`,noMatches:`No matches`,backTo:`Back`,searching:`searching…`},folders:{commands:{show:`Show the explorer`,reveal:`Show the folder in the explorer`},addFolder:`Add folder`,entry:{newFile:`New file`,newFolder:`New folder`,upload:`Upload`,copyPath:`Copy path`,download:`Download`,rename:`Rename`,copy:`Copy`,removeFolder:`Remove folder`,delete:`Delete`},failed:{newFile:`The file could not be created`,newFolder:`The folder could not be created`,upload:`The upload failed`,copyPath:`The path could not be copied`,download:`The download failed`,rename:`The rename failed`,copy:`The copy failed`,removeFolder:`The folder could not be removed`,delete:`The delete failed`},ask:{create:`Create`,name:`Name`,cancel:`Cancel`},uploaded:`{name} uploaded`,uploadedFiles:{one:`{count} file uploaded`,other:`{count} files uploaded`},pathCopied:`Path copied`,delete:{title:`Delete "{name}"?`,body:`Everything in it goes with it.`},name:{empty:`Give a name.`,slash:`A name has no slash.`,dot:`Give a name other than a dot.`},copyName:`{name} copy{ext}`,explorer:{title:`Explorer`,refresh:`Refresh`,open:`Open`,openWith:`Open with {viewer}`,loading:`Loading`,notReadable:`Not readable`,default:`default`,notConnected:`Not connected`,refused:`The server refused the connection.`,connecting:`Connecting to the server`,empty:`The server names no folder yet. Start a session in one.`,folders:`Folders`},pick:{missing:`The path does not exist.`,notFolder:`The path is not a folder.`,missingHint:`The path does not exist. Use ~ to go to your home folder.`,path:`Folder path`,add:`Add`,folders:`Folders`,reading:`Reading…`,noMatch:`No folder starts with {part}`},openEditors:{title:`Open editors`,close:`Close`,empty:`Nothing is open.`}},files:{viewers:{text:`Text`,markdown:`Markdown`,image:`Image`,video:`Video`,audio:`Audio`},openAs:`Open as {viewer}`,openWith:`Open with`,commands:{openFile:`Open file`,showText:`Show as text`,showMarkdown:`Show as Markdown`,openDiff:`Open diff`},openFile:`Open file`,noFile:`No file was named.`,reading:`Reading the file`,notReadable:`Not readable`,notText:`This file is not text.`,unsaved:`The changes to this file are not saved.`,changedOnHost:`The file changed on the server since it was opened. Copy your edit, then reopen the file.`,readOnly:`Read-only`,notSaved:`Not saved`,cut:`This file is over 5 MB. It shows the start, read-only.`,edited:`Edited`,copyPath:`Copy path`,tooLarge:`This file is {size}. Files over {max} are not shown.`,audio:{cannotPlay:`This browser cannot play this file.`,play:`Play`,pause:`Pause`,speed:`Speed`},diff:{newFile:`new file`,deleted:`deleted`,viewed:`Viewed`,reading:`Reading both sides`,none:`No changes.`},image:{zoom:`Zoom`,zoomOut:`Zoom out`,fit:`Fit`,zoomIn:`Zoom in`}},changes:{title:`Changes`,titleOf:`Changes · {title}`,untitled:`Untitled`,groups:{unreviewed:`Not reviewed`,reviewed:`Reviewed`,staged:`Staged`,changes:`Changes`},grouping:{review:`By review`,staging:`Staged and not`,none:`Not grouped`},status:{added:`Added`,modified:`Modified`,deleted:`Deleted`,untracked:`Untracked`},openChange:`Open change`,openFile:`Open file`,markReviewed:`Mark as reviewed`,markNotReviewed:`Mark as not reviewed`,noSession:`Open a session to see what it changed.`,untracked:`This session tracks no changes.`,notReadable:`Changes not readable`,computing:`Working out the changes`,none:`No changes.`,viewOptions:`View options`,view:{list:`Show as a list`,tree:`Show as a tree`,showAs:`Show as`},expandAll:`Expand all`,collapseAll:`Collapse all`,files:{one:`{count} file`,other:`{count} files`},filter:`Filter files`,noMatch:`Nothing matches.`,cancel:`Cancel`,commit:{staged:{one:`The {count} staged file is committed. The rest stay as they are.`,other:`The {count} staged files are committed. The rest stay as they are.`},all:{one:`Nothing is staged, so the {count} changed file is committed.`,other:`Nothing is staged, so all {count} changed files are committed.`},message:`Commit message`,placeholder:`What does this change do?`},pr:{title:`Create a pull request`,preparing:`Asking the server for a title and description`,titleLabel:`Title`,titlePlaceholder:`What is this request?`,description:`Description`,descriptionPlaceholder:`What changed, and why?`,draft:`Open as a draft`,cannotCreate:`This server offers no way to create the request.`,explain:`The server commits what is uncommitted, pushes the branch and opens the request only when you press the button.`}},log:{follow:{mac:`Cmd+click to open`,other:`Ctrl+click to open`,link:`{tip} ({how})`,terminal:`Open the terminal`,session:`Open the session`,file:`Open the file`,page:`Open the page`},scopes:{connection:`Connection`,session:`Session`,terminal:`Terminal`,traffic:`Traffic`},copyLine:`Copy the line`,all:`All`,levelTip:`Least severe level shown`,minLevel:`{level} and up`,filter:`Filter (!word excludes)`,copyShown:`Copy the lines shown`,empty:`Nothing logged yet.`,noMatch:`Nothing logged matches the filter.`},terminals:{terminal:`Terminal`,notConnected:`Not connected to the server.`,commands:{open:`Open terminal`,disconnect:`Disconnect terminal`,connect:`Connect terminal`,kill:`Kill terminal`,new:`New terminal`},kill:{title:`Kill "{title}"?`,body:`Its process ends on the host.`,confirm:`Kill`},failed:{kill:`The terminal could not be killed`,create:`The terminal could not be created`},holder:{you:`Yours`,session:`Held by a session`,another:`Held by another client`},exited:`{holder}, exited`,exitedWith:`{holder}, exited with {code}`,rows:{title:`Terminal: {title}`,group:`Terminals`},noTerminal:`No terminal was named.`,notReadable:`Not readable`,disconnected:`Disconnected. The terminal keeps running on the host.`,connect:`Connect`,note:{exited:`Exited.`,exitedWith:`Exited with {code}.`,session:`A session is running this terminal. Typing is off.`,another:`Another client holds this terminal. Typing is off.`},takeOver:`Take over`},automations:{commands:{new:`New automation`,show:`Show automations`,edit:`Edit automation`,open:`Open automation`},automation:`Automation`,editTitle:`Edit {title}`,untitled:`Untitled`,byHand:`Run by hand`,cron:{everyMinutes:{one:`Every minute`,other:`Every {count} minutes`},everyMinute:`Every minute`,everyHours:{one:`Every hour`,other:`Every {count} hours`},hourlyAt:`Every hour at :{minute}`,dailyAt:`Every day at {time}`,weekdaysAt:`Weekdays at {time}`,weekly:{sunday:`Every Sunday at {time}`,monday:`Every Monday at {time}`,tuesday:`Every Tuesday at {time}`,wednesday:`Every Wednesday at {time}`,thursday:`Every Thursday at {time}`,friday:`Every Friday at {time}`,saturday:`Every Saturday at {time}`}},problems:{title:`Give it a title.`,message:`Say what it sends.`,schedule:`A schedule is five fields: minute, hour, day, month, weekday.`,runs:`Stop after a whole number of runs.`},state:{running:`Running`,failed:`Last run failed`,on:`On`,off:`Off`},run:{pending:`Waiting`,running:`Running`,completed:`Done`,failed:`Failed`,cancelled:`Stopped`},notices:{none:`No automations`,reading:`Reading the automations`,gone:`This automation is gone.`},defaults:{host:`The host default`,agent:`The agent default`},actions:{deleteTitle:`Delete "{title}"?`,deleteBody:`Its run history goes with it.`,delete:`Delete`,couldNotRun:`The automation could not run`,open:`Open`,runNow:`Run now`,turnOff:`Turn off`,turnOn:`Turn on`,edit:`Edit`,copyLink:`Copy link`},explorer:{title:`Automations`,filter:`Filter automations`,empty:`No automations yet.`,neverRun:`Never run`,runs:{one:`{count} run`,other:`{count} runs`},last:{pending:`last waiting {at}`,running:`last running {at}`,completed:`last done {at}`,failed:`last failed {at}`,cancelled:`last stopped {at}`,other:`last {status} {at}`}},origin:{byHand:`By hand`,scheduled:`Scheduled`,scheduledFor:`Scheduled for {time}`,catchUp:`Catch-up`,catchUpFor:`Catch-up for {time}`},facts:{afterRuns:{one:`After {count} run`,other:`After {count} runs`},afterDate:`After {date}`,agent:`Agent`,model:`Model`,folder:`Folder`,settings:`Settings`,schedule:`Schedule`,missedRuns:`Missed runs`,runOnce:`Run once when back`,skipped:`Skipped`,byHandOnly:`Run by hand only`,event:`Event`,turnsOff:`Turns off`,nextRun:`Next run`,runs:`Runs`,customizations:`Customizations`,created:`Created`,changed:`Changed`},page:{message:`Message`,runs:`Runs`,noRuns:`No runs yet.`,columns:{status:`Status`,how:`How`,started:`Started`,took:`Took`,tokens:`Tokens`},openSession:`Open session`,stop:`Stop`,loadOlder:`Load older runs`},edit:{noCreate:`This host does not let clients create automations.`,title:`Title`,message:`Message`,messageHint:`What the agent is told each time it runs.`,agent:`Agent`,model:`Model`,folder:`Folder`,folderHint:`A folder on the daemon's machine.`,schedule:`Schedule`,presets:{byHand:`By hand only`,every10Minutes:`Every 10 minutes`,everyHour:`Every hour`,every6Hours:`Every 6 hours`,dailyAt9:`Every day at 09:00`,weekdaysAt9:`Weekdays at 09:00`,mondayAt5:`Every Monday at 05:00`},custom:`Custom`,cron:`Cron expression`,cronPlaceholder:`minute hour day month weekday`,byHandHint:`Runs only when started by hand.`,minimum:{one:`At most every minute.`,other:`At most every {count} minutes.`},timeZone:`Time zone`,missedRuns:`Missed runs`,missedHint:`What happens to a run due while the daemon was down.`,skip:`Skip them`,runOnce:`Run once when back`,afterRuns:`Turn off after runs`,afterDate:`Turn off after`,keepsOn:`Empty keeps it on.`,on:`On`,create:`Create`,save:`Save`,cancel:`Cancel`}},agents:{commands:{show:`Show agents`,open:`Open agent`},newSession:`New session`,models:{none:`No models listed`,count:{one:`{count} model`,other:`{count} models`}},capabilities:{chatsAndForks:`Several chats per session, and forks`,chats:`Several chats per session`,foldersFirstFixed:`Several folders, the first one fixed`,folders:`Several folders`},limits:{context:`{size} context`,output:`{size} out`,images:`images`},kinds:{plugin:`Plugin`,directory:`Folder`,mcpServer:`MCP server`},counts:{agent:{one:`{count} agent`,other:`{count} agents`},skill:{one:`{count} skill`,other:`{count} skills`},prompt:{one:`{count} prompt`,other:`{count} prompts`},rule:{one:`{count} rule`,other:`{count} rules`},hook:{one:`{count} hook`,other:`{count} hooks`},mcpServer:{one:`{count} MCP server`,other:`{count} MCP servers`},item:{one:`{count} item`,other:`{count} items`},empty:`Empty`},auth:{required:`Needs sign-in`,expired:`Sign-in expired`,insufficientScope:`Needs more access`},states:{ready:`Ready`,starting:`Starting`,startingBlocking:`Starting; blocks the next turn`,stopped:`Stopped`,loading:`Loading`},flags:{userOnly:`user only`,modelOnly:`model only`,pinned:`pinned to {model}`,always:`always`},meta:{readOnly:`read-only`,on:`on`,off:`off`},customizations:{copyName:`Copy the name`,copyDescription:`Copy the description`,readingFile:`Reading the file`,unreadable:`The file is not readable from here.`,openFile:`Open file`},explorer:{title:`Agents`,offered:`Offered`,sessions:{one:`{count} session`,other:`{count} sessions`},needsSignIn:`needs sign-in`,open:`Open`,empty:`This server offers no agent.`,filter:`Filter agents`},page:{gone:`This server no longer offers this agent.`,facts:{provider:`Provider`,models:`Models`,sessions:`Sessions`,can:`Can`},oneChat:`One chat in one folder per session`,needsSignIn:`Needs sign-in`,models:`Models`,noModels:`This agent lists no models; it picks its own.`,columns:{name:`Name`,id:`Id`,limits:`Limits`,resource:`Resource`,scopes:`Scopes`},policy:{disabled:`Turned off by policy`,unconfigured:`Not set up`},customizations:`Customizations`,signIn:`Sign-in`,required:`Required`,optional:`Optional`}},commands:{commands:{open:`Open command`,openItem:`Open item`,run:`Run command`},noManifest:`No manifest`,readingManifest:`Reading the manifest`,readingList:`Reading the list`,remove:`Remove`,cancel:`Cancel`,explorer:{noGroup:`This daemon has no {group} commands.`},item:{gone:`The list no longer has {kind} {title}.`,reading:`Reading`},items:{badShape:`This list came back in a shape that cannot be listed.`,empty:`Nothing yet.`,reloading:`Reloading`,commands:`Commands`,search:`Search {title}`},page:{noCommand:`This daemon has no command {id}.`,run:`Run`,lastRun:`Last run {time}`,running:`Running`,notSent:`Not sent`},result:{nothing:`Nothing.`,done:`Done.`,view:`view`,value:`value`}},manifest:{required:`{field} is required`,removal:{question:{named:`Remove {kind} {item}?`,kind:`Remove {kind}?`,this:`Remove this?`},action:{named:`Remove {kind} {item}`,kind:`Remove {kind}`,this:`Remove this`}}},sessions:{untitled:`Untitled`,activity:{completed:{one:`Completed {count} step`,other:`Completed {count} steps`},failed:`{count} failed`,took:`in {time}`,thinking:`Thinking`,working:`Working on {name}`,workingFor:`Working on {name} for {time}`,waiting:`Waiting on {name}`,waitingFor:`Waiting on {name} for {time}`},status:{input:`Needs you`,running:`Running`,error:`Failed`,idle:`Idle`,unread:`Unread`,archived:`Archived`},alerts:{open:`Open`,needsYou:`{name} needs you`,failed:`{name} failed`,finished:`{name} finished`,finishedBody:`Finished`},question:{yes:`Yes`,no:`No`,skipped:`Skipped`,hint:{single:`Pick one`,singleOther:`Pick one, or write your own`,multi:`Pick any`,multiOther:`Pick any, or write your own`,text:`Type an answer`,textOther:`Type an answer, or write your own`,number:`Type a number`,numberOther:`Type a number, or write your own`,other:`or write your own`,optional:`(optional)`,withOptional:`{hint} (optional)`},yourAnswer:`Your answer`,recommended:`Recommended`,other:`Other`,otherPlaceholder:`Other: write your own answer`,declined:`Question declined`,unanswered:`Question not answered`,answered:`Question answered`,sending:`Sending to the agent`,asks:`The agent asks`,asksColon:`The agent asks:`,step:`Question {page} of {total}`,count:`{page} of {total}`,decline:`Decline`,back:`Back`,answer:`Answer`,next:`Next`,missing:{one:`One question still needs an answer.`,other:`{count} questions still need an answer.`}},attachments:{see:`See {name}`,open:`Open {name}`,remove:`Remove {name}`,unnamed:`Attachment`},clipboard:{insecure:`Needs https or localhost`,refused:`The browser refused`,tooBig:`Over 5 MB`,empty:`No image on the clipboard`},context:{title:`Add context`,hint:`Attach a file, a session, or a file from this computer`,files:`Files and folders`,filesHint:`On the server's machine`,upload:`Upload`,uploadHint:`From this computer, up to 5 MB each`,image:`Image from clipboard`,imageHint:`The image you copied`,sessions:`Sessions`,sessionsHint:`Another session's chat`,noSessions:`No other session`,commands:`Commands`,commandsHint:`What the agent and this page can do`},values:{default:`default`,none:`none`,items:{one:`{count} item`,other:`{count} items`},on:`on`,off:`off`},commands:{model:`Model`,modelHint:`The model the next message is sent to`,agentDefault:`Agent default`,stop:`Stop`,stopHint:`Stop the turn that is running`,newSession:`New session`,newSessionHint:`Start another session`,showSessions:`Show sessions`,openSession:`Open session`},upload:{notAttached:`Not attached`,refused:`Over 5 MB or unreadable: {names}`},composer:{steering:`Steering`,remove:`Remove`,next:`Next {number}`,folderHint:`The folder this session works in`,agentHint:`The agent running this session`,message:`Message`,placeholder:`What should it do?`,placeholderRunning:`Queue a message for after this turn, or steer it`,modelHint:`The model the next message goes to`,steer:`Steer`,steerHint:`Alt+Enter steers`,queue:`Queue`,queueHint:`Enter queues`,send:`Send`,sendHint:`Enter sends, Shift+Enter breaks the line`,stopHint:`Esc stops`},details:{tab:`Session`,empty:`Open a session to see its details.`,openTerminal:`Open the terminal`,terminal:`Terminal`,session:`Session`,sessionId:`Session id`,chatId:`Chat id`,agent:`Agent`,model:`Model`,folder:`Folder`,revealFolder:`Show the folder in the explorer`,newTerminal:`+ New terminal`,newTerminalHint:`A new terminal`,newTerminalInFolder:`A new terminal in the session's folder`,project:`Project`,started:`Started`,changed:`Changed`,turns:`Turns`,working:`Working`,tokens:`Tokens`,toolCalls:`Tool calls`,changes:`Changes`,inFiles:{one:`in {count} file`,other:`in {count} files`},from:`From`,automation:`An automation run`,watching:`Watching`},grouping:{none:`No groups`,folder:`Group by folder`,status:`Group by status`,agent:`Group by agent`,noFolder:`No folder`},explorer:{title:`Sessions`,open:`Open`,rename:`Rename`,renamePrompt:`Rename the session`,markRead:`Mark as read`,markUnread:`Mark as unread`,archive:`Archive`,unarchive:`Unarchive`,copyLink:`Copy link`,delete:`Delete`,deleteTitle:`Delete "{title}"?`,deleteBody:`Its history goes with it.`,deleteFailed:`The session could not be deleted`,files:{one:`{count} file`,other:`{count} files`},notConnected:`Not connected`,refused:`The server refused the connection.`,connecting:`Connecting to the server`,none:`No sessions.`,noneYet:`No sessions yet.`,reload:`Reload`,reloading:`Reloading`,showArchived:`Show archived`,hideArchived:`Hide archived`,group:`Group sessions`,current:`Current`,filter:`Filter sessions`},folder:{hint:`A folder on the server's machine`,choose:`Choose a folder`,label:`Folder`,host:`Host folder`,used:`Used`,list:`Folders`,reading:`Reading {path}`,unreadable:`The host cannot list {path}`,sessions:{one:`{count} session`,other:`{count} sessions`},open:`Open {name}`},footer:{window:`The model's context window: {window} tokens`,used:`{used} of {window} tokens, as of the last turn`},new:{unsent:`The message is not sent.`,agent:`Agent`,agentHint:`The agent the session runs on`,agentPill:`Agent: {name}`,noAgent:`This server offers no agent.`,fold:`Fold the options`,unfold:`Show the options`,firstMessage:`First message`,readingSettings:`Reading settings`,modelHint:`The model the first message goes to`,starting:`Starting`,create:`Create`,start:`Start`,startHint:`Enter starts, Shift+Enter breaks the line`,notCreated:`Not created`},pills:{setting:`{name}: {value}`,model:`Model: {name}`},tips:{slash:`lists skills and commands`,mention:`refers to a file`,add:`adds files, images and sessions`,enter:`starts; an empty box creates the session without a message`,shiftEnter:`breaks a line`},turn:{stopped:`Stopped`,failed:`Ended with an error`,soFar:`{time} so far`,cached:`{tokens} cached`,toolCalls:{one:`{count} tool call`,other:`{count} tool calls`},copyReply:`Copy the reply`,working:`Working`},chat:{loading:`Loading`,older:`Load older turns`,gone:`This session is gone.`,starting:`Starting the session`,notStarted:`The session did not start`,noReason:`No reason given.`,sessionUnreadable:`Session not readable`,chatUnreadable:`Chat not readable`,reading:`Reading the chat`,empty:`No messages yet.`},tool:{preparing:`Preparing`,approval:`Needs approval`,running:`Running`,signIn:`Needs sign-in`,review:`Review result`,done:`Done`,failed:`Failed`,cancelled:`Cancelled`,output:`Output`,exit:`exit {code}`,cutShort:`cut short`,noOutput:`No output.`,openFile:`Open the file`,openChange:`Open the change`,tool:`Tool`,status:`Status`,file:`File`,why:`Why`,risk:`Risk`,safety:`{safety}/10 safe`,arguments:`Arguments`,acceptResult:`Accept result`,reject:`Reject`,thinkingAbout:`Thinking: {text}`,approve:`Approve`,deny:`Deny`,agentError:`The agent reported an error.`,ran:`Ran {name}`,ranSubagent:`Ran a subagent`,read:`Read {path}`,denied:`Denied.`,skipped:`Skipped.`,resultDenied:`Result rejected.`,cancelledNote:`Cancelled.`},start:{note:`Start a session, or open one from the list.`}},host:{title:`Host`,commands:{info:`Host information`,settings:`Host settings`},info:{status:`Status`,host:`Host`,protocol:`Protocol`,connected:`Connected`,connectedValue:`{when} · {elapsed}`,client:`Client`,serverSeq:`Server sequence`,following:`Following`,channels:{one:`{count} channel`,other:`{count} channels`},lastError:`Last error`,started:`Started`,startedValue:`{when} · up {elapsed}`,process:`Process`,address:`Address`,automationsKeptIn:`Automations kept in`,sessionsKeptIn:`Sessions kept in`,agents:`Agents`,none:`None`,defaultFolder:`Default folder`,activeSessions:`Active sessions`,automations:`Automations`,automationsNotOffered:`Not offered`,automationsReadOnly:`Read only`,automationsCreate:`Clients can create them`,automationsInterval:{one:`at most every {count} minute`,other:`at most every {count} minutes`},automationsStoppable:`runs can be stopped`,settings:`Settings`,connection:`Connection`,daemon:`Daemon`,statusUnreadable:`The daemon's status is not readable: {error}`,offers:`Offers`,terminals:`Terminals`,noTerminals:`No terminals open.`,terminalTitle:`Title`,terminalState:`State`,running:`Running`,exited:`Exited`,exitedCode:`Exited ({code})`},settings:{tab:`Settings`,title:`Host settings`,unreadable:`Settings not readable`,reading:`Reading the settings`,none:`This host publishes no settings.`,save:`Save`,fixJson:`Fix the JSON first`,reset:`Reset`,saved:`Saved.`}},bridges:{state:{connecting:`Connecting`,connected:`Connected`,reconnecting:`Reconnecting`,reconnectingTry:`Reconnecting (try {attempt})`,disconnected:`Disconnected`,failed:`Failed`,notConnected:`Not connected`},reconnectNow:`Reconnect now`,connectedAt:`Connected at {time}`,reconnected:{one:`Reconnected {count} time`,other:`Reconnected {count} times`},backAgain:`Connected to the server again`,lost:`Lost the connection to the server`,retryNow:`Retry now`,commands:{reconnect:`Reconnect to the server`},notConnected:`Not connected to the server.`,untitled:`Untitled`,terminal:`Terminal`,daemonSilent:`The daemon did not answer.`},tree:{collapse:`Collapse`,expand:`Expand`},form:{fields:`fields`,json:`json`,select:`Select…`,removeItem:`Remove item`,addItem:`+ add item`},spatial:{zoomOut:`Zoom out`,zoomIn:`Zoom in`,fit:`Fit all cards to viewport`,reset:`Reset zoom + pan`,selectedActions:`Selected card actions`,zoomPercent:`Zoom percent`},layout:{togglePanes:`Toggle panes`,groupActions:`Group actions`},theme:{label:`Theme`,mode:{light:`Light`,dark:`Dark`,system:`Follow system`,next:`{mode}, click for {next}`,label:`Theme mode: {mode}`}},groups:{Agent:`Agent`,Agents:`Agents`,Automations:`Automations`,Files:`Files`,Host:`Host`,Notifications:`Notifications`,Session:`Session`,Sessions:`Sessions`,Settings:`Settings`,Terminal:`Terminal`,View:`View`,"Open with":`Open with`,more:`More`,file:`File`,changes:`Changes`,view:`View`,group:`Group by`,folders:`Folders`,changed:`Changed files`,people:`People`}},r=[`en`,`es-419`,`pt-BR`];function i(e){return{path:`$/t/${e}`}}function a(e,t){if(e!==null&&r.includes(e))return e;for(let e of t){let t=e.toLowerCase().split(`-`)[0],n=r.find(e=>e.split(`-`)[0]===t);if(n!==void 0)return n}return`en`}function o(e){let t=n;for(let n of e.split(`/`))t=t?.[n];if(typeof t!=`string`)throw Error(`No English message for ${e}`);return t}function s(e){let n=null;return{format(r){let i=t();return n?.locale!==i&&(n={locale:i,format:new Intl.DateTimeFormat(i,e)}),n.format.format(r)}}}function c(n,r,i={}){let a=r!==0&&new Intl.PluralRules(t()).select(r)===`one`?`one`:`other`;return e(`${n}/${a}`,{...i,count:r})}export{c as a,a as i,s as n,n as o,o as r,i as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useI18n-T3BwAm0z.js";import{M as r,T as i}from"./data-DPJ4OTLn.js";import{t as a}from"./Spinner-CBEPv0eM.js";import{t as o}from"./Alert-BhdRA0LL.js";import{n as s}from"./index-xynK_AEL.js";import{t as c}from"./text-D_lQQGN1.js";import{t as l}from"./PageAlert-B8ulCXV4.js";var u=t(),d=e(),f=67108864,p=e=>`${(e/1024/1024).toFixed(1)} MB`;function m(e){let[t,n]=(0,u.useState)(null);return(0,u.useEffect)(()=>{if(e===void 0)return;let t=!0,a;return n(null),(async()=>{let t=await r(e);return t!==void 0&&t>67108864?{size:t}:(a=URL.createObjectURL(await i(e,s(e))),{url:a})})().then(e=>{t&&n(e)}).catch(e=>{t&&n({error:e instanceof Error?e.message:String(e)})}),()=>{t=!1,a!==void 0&&URL.revokeObjectURL(a)}},[e]),t}function h({uri:e,children:t}){let{t:r}=n(),i=m(e);if(e===void 0)return(0,d.jsx)(l,{tone:`warning`,message:r(`files/noFile`)});let s=(0,d.jsx)(c,{uri:e});return i===null?(0,d.jsxs)(`div`,{className:`web-file`,children:[s,(0,d.jsx)(a,{label:r(`files/reading`)})]}):`error`in i?(0,d.jsxs)(`div`,{className:`web-file`,children:[s,(0,d.jsx)(o,{tone:`danger`,title:r(`files/notReadable`),message:i.error})]}):`size`in i?(0,d.jsxs)(`div`,{className:`web-file`,children:[s,(0,d.jsx)(`p`,{className:`web-note web-media__note`,children:r(`files/tooLarge`,{size:p(i.size),max:p(f)})})]}):(0,d.jsxs)(`div`,{className:`web-file`,children:[s,(0,d.jsx)(`div`,{className:`web-file__body web-media`,children:t(i.url)})]})}export{m as n,h as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n,u as r}from"./useStore-BQkzWMs-.js";import{l as i,t as a}from"./useI18n-T3BwAm0z.js";import{n as o}from"./ScenaProvider-6A3TJumQ.js";import{t as s}from"./Button-_R1oktDz.js";import{a as c,r as l}from"./locales-Dnk_Y338.js";import{t as u}from"./emojis-DanG-8fr.js";import{n as d}from"./CommandPalette-wYX5XXUP.js";var f=8e3,p=`$/notify/list`,m=`$/notify/count`,h=`$/notify/history`;function g(e){return[e.source??``,e.type,e.title,e.description??``].join(` `)}function _(e){let t=new Map,n=new Map,r=new Set,i=[],a=[],o=0;function s(t){i=t,e.set(p,[...i]),e.set(m,i.length)}function c(t){a=[t,...a.filter(e=>e.id!==t.id)].slice(0,100),e.set(h,[...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=>g(t)===g(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(h,[])},channels:{register(e){return t.set(e.id,e),{dispose:()=>void t.delete(e.id)}}}}}var v;function y(e){return v??=_(e),v}function b(){v=void 0}function x(){if(v===void 0)throw Error(`Notifications were read before initNotifications ran.`);return v}function S(e){if(v===void 0)return!1;try{return e(v),!0}catch{return!1}}var C=`$/notify/confirm`,w=`$/notify/confirmStyle`,T=`modal`,E,D=0,O=null;function k(e,t){E=e,e.get(`$/notify/confirmStyle`)===void 0&&e.set(w,t)}function A(){P(!1),E=void 0}function j(){return E?.get(`$/notify/confirmStyle`)??`modal`}function M(e){E?.set(w,e)}function N(e){return E===void 0||j()===`native`?Promise.resolve(window.confirm(e.body===void 0?e.title:`${e.title}\n\n${e.body}`)):(P(!1),D+=1,E.set(C,{id:D,title:e.title,...e.body===void 0?{}:{body:e.body},confirmLabel:e.confirmLabel??i(`shell/notify/confirm`),cancelLabel:e.cancelLabel??i(`shell/notify/cancel`),tone:e.tone??`default`}),new Promise(e=>{O=e}))}function P(e){let t=O;O=null,E?.set(C,null),t?.(e)}var F=new Set([`attention`,`action.finished`,`connection.lost`]),I=6e4;function L(){return typeof window<`u`&&`Notification`in window}function R(){return L()&&window.Notification.permission==="default"}function z(){return L()&&window.Notification.permission===`granted`}async function B(){return L()?window.Notification.requestPermission():`denied`}function V(){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=>F.has(e.type)&&e.alert!==void 0,available:()=>z()?document.visibilityState===`hidden`||e!==null&&Date.now()-e>=I:!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 H=t(),U=e();function W(){let e=n(C),t=(0,H.useRef)(null),r=e?.id;return(0,H.useEffect)(()=>{if(r===void 0)return;t.current?.focus();let e=e=>{e.key===`Escape`&&(e.stopPropagation(),P(!1))};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[r]),e==null?null:(0,U.jsx)(`div`,{className:`web-confirm`,onClick:()=>P(!1),children:(0,U.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,U.jsx)(`h2`,{id:`web-confirm-title`,className:`web-confirm__title`,children:e.title}),e.body===void 0?null:(0,U.jsx)(`p`,{id:`web-confirm-body`,className:`web-confirm__body`,children:e.body}),(0,U.jsxs)(`div`,{className:`web-confirm__buttons`,children:[(0,U.jsx)(s,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>P(!1),children:e.cancelLabel}),(0,U.jsx)(s,{type:`button`,size:`sm`,variant:e.tone===`danger`?`danger`:`primary`,onClick:()=>P(!0),children:e.confirmLabel})]})]})})}var G={info:u.info,success:u.check,warning:u.warning,danger:u.error},K=4;function q({animation:e=`slide-up`}){let{t}=a(),r=n(`$/notify/list`)??[],[i,o]=(0,H.useState)(!1);if(r.length===0)return null;let s=i?r:r.slice(0,K),c=r.length-s.length;return(0,U.jsxs)(`div`,{className:`web-toasts`,role:`region`,"aria-label":t(`shell/notify/region`),children:[c>0?(0,U.jsx)(`button`,{type:`button`,className:`web-toast__more`,onClick:()=>o(!0),children:t(`shell/notify/more`,{count:c})}):null,[...s].reverse().map(t=>(0,U.jsx)(J,{notification:t,animation:t.animation??e},t.id))]})}function J({notification:e,animation:t}){let n=o(),{t:r}=a(),[i,l]=(0,H.useState)(!1),d=e.id,f=()=>x().dismiss(d);(0,H.useEffect)(()=>{if(!i)return;let e=x();return e.hold(d),()=>e.release(d)},[d,i]);let p=()=>x().hold(d),m=()=>{i||x().release(d)},h=e=>{n.commands.execute(e.command,e.args),e.dismisses!==!1&&f()};return(0,U.jsxs)(`div`,{className:`web-toast`,"data-tone":e.tone,"data-animation":t,role:e.dismissAuto===!1?`alert`:`status`,onMouseEnter:p,onMouseLeave:m,onFocus:p,onBlur:m,children:[(0,U.jsxs)(`div`,{className:`web-toast__head`,children:[(0,U.jsx)(`span`,{className:`web-toast__icon`,"aria-hidden":`true`,children:e.icon??G[e.tone]}),(0,U.jsx)(`span`,{className:`web-toast__title`,children:e.title}),e.count>1?(0,U.jsx)(`span`,{className:`web-toast__count`,title:c(`shell/notify/raised`,e.count),children:`\u{D7}${e.count}`}):null,(0,U.jsx)(`button`,{type:`button`,className:`web-toast__close`,"aria-label":r(`shell/notify/dismiss`),onClick:f,children:u.close})]}),e.description===void 0?null:(0,U.jsx)(`p`,{className:`web-toast__body`,children:e.description}),e.detail===void 0?null:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`button`,{type:`button`,className:`web-toast__link`,onClick:()=>l(!i),children:r(i?`shell/notify/hideDetails`:`shell/notify/showDetails`)}),i?(0,U.jsx)(`pre`,{className:`web-toast__detail`,children:e.detail}):null]}),e.actions===void 0||e.actions.length===0?null:(0,U.jsx)(`div`,{className:`web-toast__actions`,children:e.actions.map(e=>(0,U.jsx)(s,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>h(e),children:e.label},e.command))})]})}function Y(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 X(e,t={}){S(n=>{n.publish({type:`action.done`,tone:`success`,icon:t.icon??u.check,title:e,...Y(t)})})}function Z(e,t={}){S(n=>{n.publish({type:`attention`,tone:`warning`,icon:t.icon??u.warning,title:e,dismissTime:f,...Y(t)})})}function Q(e,t,n={}){let r=t instanceof Error?t.message:String(t),i=t instanceof Error?t.stack:void 0;S(t=>{t.publish({type:`action.failed`,tone:`danger`,icon:n.icon??u.warning,title:e,dismissTime:8e3,...Y({...n,description:r}),...i===void 0?{}:{detail:i}})})||console.error(e,t)}function $(e){let t=y(e.store);k(e.store,T);let n=V();return r({dispose:()=>{n.dispose(),A(),b()}},e.components.register({component:`Notifications.Toaster`,category:`chrome`,renderer:{kind:`react`,load:async()=>({default:q})}}),e.components.register({component:`Notifications.Confirm`,category:`chrome`,renderer:{kind:`react`,load:async()=>({default:W})}}),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:()=>i(`shell/notify/commands/enableAlerts`),keywords:[l(`shell/notify/commands/enableAlerts`)],category:`Notifications`,slots:[d],run:async()=>{if(z()){t.publish({type:`default`,tone:`success`,title:i(`shell/notify/alerts/alreadyOn`)});return}if(!R()){t.publish({type:`default`,tone:`warning`,title:i(`shell/notify/alerts/blocked`),description:i(`shell/notify/alerts/blockedHelp`),dismissTime:f});return}let e=await B();t.publish({type:`default`,tone:e===`granted`?`success`:`warning`,title:i(e===`granted`?`shell/notify/alerts/on`:`shell/notify/alerts/notAllowed`)})}}),e.commands.register({id:`notifications.confirmStyle`,title:()=>j()===`native`?i(`shell/notify/commands/confirmModal`):i(`shell/notify/commands/confirmNative`),keywords:[l(`shell/notify/commands/confirmModal`),l(`shell/notify/commands/confirmNative`)],category:`Notifications`,slots:[d],run:()=>M(j()===`native`?`modal`:`native`)}),e.commands.register({id:`notifications.dismissAll`,title:()=>i(`shell/notify/commands/dismissAll`),keywords:[l(`shell/notify/commands/dismissAll`)],category:`Notifications`,slots:[d],run:()=>{for(let e of t.list())t.dismiss(e.id)}}))}export{N as a,Z as i,X as n,S as o,Q as r,f as s,$ as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Explorer-Cau0IyIv.js","./jsx-runtime-BguD1OXD.js","./react-CybPckBe.js","./useStore-BQkzWMs-.js","./ScenaProvider-6A3TJumQ.js","./mount-context-DZgEFVFG.js","./useI18n-T3BwAm0z.js","./locales-Dnk_Y338.js","./data-DPJ4OTLn.js","./words-T8-D0K4W.js","./emojis-DanG-8fr.js","./notify-BmjJL_fx.js","./Button-_R1oktDz.js","./styles-yrzHRgom.js","./_utils-DZVsX11M.js","./Button-CRZ1_3KW.css","./CommandPalette-wYX5XXUP.js","./ActionList-QwhYPQiB.js","./colors-BieSUSt7.js","./ActionList-Bc-jZDaT.css","./terminal-_7S7Eyr-.js","./Spinner-CBEPv0eM.js","./Spinner-B56wMtzv.css","./Alert-BhdRA0LL.js","./Icon-CIQ7doud.js","./Icon-BFMW_Ijn.css","./Alert-D6FTUHBY.css","./state-CKNqusrK.js","./grouping-DtiUUpdw.js","./ExplorerList-0duzRsX6.js","./ContextMenu-DYnWIBAF.js","./Page-D2Aojkph.js","./Badge-BDEW5PFb.js","./Badge-B_GtDNjv.css","./Markdown-_Awuh7Ku.js","./Markdown-D4ts0B_q.css","./Composer-DHrV5Yeq.js","./Modal-xWzwLA8s.js","./composer-commands-BOXuqfcP.js","./turn-z1TPlA5Q.js","./changeset-IbJWvDqP.js","./channel-C6Ss9Aem.js","./drag-ruzgQUFW.js","./Text-MPtQvYE-.js","./Text-D2KlerVw.css","./CopyButton-Dqp4FT7R.js","./clicks-Doh5a3f9.js","./PageAlert-B8ulCXV4.js","./New-DSGbzxwy.js","./useCloseGuard-B4qJKmaF.js","./folder-path-CJJ4uFfN.js","./index-xynK_AEL.js","./surface-presentation-CT86pw6J.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-Vk4T9IkZ.js","./index-BiJaGB50.css","./words-DF1J9CaQ.js","./Start-DX8T0ii8.js","./Start-Dtuu25RL.css","./Details-DD3vmkCl.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{u as e}from"./useStore-BQkzWMs-.js";import{t}from"./label-hTY0RCEf.js";import{n,t as r}from"./surface-presentation-CT86pw6J.js";import{l as i}from"./useI18n-T3BwAm0z.js";import{t as a}from"./preload-helper-BaNbYf_w.js";import{r as o,t as s}from"./locales-Dnk_Y338.js";import{A as c,N as l,c as u,q as d}from"./data-DPJ4OTLn.js";import{t as f}from"./emojis-DanG-8fr.js";import{o as p,s as m}from"./notify-BmjJL_fx.js";import{n as h,r as g}from"./CommandPalette-wYX5XXUP.js";import{u as _}from"./composer-commands-BOXuqfcP.js";import{i as v,n as y,r as b,t as x}from"./state-CKNqusrK.js";import{a as S,i as C,o as w,t as T}from"./grouping-DtiUUpdw.js";var E={"sidebar:left":{xsmall:`sheet`,small:`floating`},"sidebar:right":{xsmall:`floating`,small:`floating`},activitybar:{xsmall:`bar`}},D=e=>`session-alert:${e}`;function O(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 k(e,t){let n=e.title===``?i(`sessions/untitled`):e.title,r=[{label:i(`sessions/alerts/open`),command:`ahp.openSession`,args:{resource:e.resource}}],a={id:D(e.resource),source:D(e.resource),actions:r};return t===`needs-you`?{...a,type:`attention`,tone:`warning`,icon:f.warning,title:i(`sessions/alerts/needsYou`,{name:n}),dismissAuto:!1,alert:{title:n,body:i(`sessions/status/input`)}}:t===`failed`?{...a,type:`action.finished`,tone:`danger`,icon:f.warning,title:i(`sessions/alerts/failed`,{name:n}),dismissTime:m,alert:{title:n,body:i(`sessions/status/error`)}}:{...a,type:`action.finished`,tone:`success`,icon:f.check,title:i(`sessions/alerts/finished`,{name:n}),dismissTime:m,alert:{title:n,body:i(`sessions/alerts/finishedBody`)}}}function A(e,t){return e.store.get(`$/ahp/activeSession`)===t&&document.visibilityState===`visible`&&document.hasFocus()}function j(e){let t=null;return e.store.subscribe(u,()=>{let n=e.store.get(u);if(n===void 0)return;let r=new Map(n.map(e=>[e.resource,d(e.status)])),i=t;if(t=r,i!==null)for(let t of n){let n=r.get(t.resource),a=i.get(t.resource);a===`input`&&n!==`input`&&p(e=>e.dismiss(D(t.resource)));let o=O(a,n);o===null||A(e,t.resource)||p(e=>e.publish(k(t,o)))}})}var M=`sidebar:right`,N=`tab-group:context`,P=`$/surface/name`;function F(n,r,a){let o={...r,surface:M},s=n.surfaces.mount(o),c=()=>n.surfaces.listAt(M).some(e=>e.key===r.key);return e({dispose:()=>s.dispose()},n.commands.register({id:`ahp.showRight.${r.key}`,title:()=>i(`shell/sidebar/show`,{title:t(r.props.title,{get:e=>n.store.get(e),translate:i})}),icon:a,slots:[N],when:()=>n.store.get(P)===`sidebar:right`&&!c(),run:e=>{e.host?.closeMenu(),s.dispose(),s=n.surfaces.mount(o);let t=n.layout.get().surfaces[M];n.layout.setSurface(M,{...t,visible:!0,activeContainerKey:r.key})}}))}var I=`$/modus/class`,L=`ahp:sessions`;function R(e,t,i=`sidebar:left`){if(!r(n(i,t,E)))return;let a=e.layout.get().surfaces[i];a?.visible!==!1&&e.layout.setSurface(i,{...a,visible:!1})}var z=`sessions:grouping`;function B(){return{title:i(`sessions/explorer/group`),query:{slot:z}}}function V(t){let n=S();return t.store.set(b,n===`none`?null:n),e(_(t),j(t),t.components.register({component:`SessionExplorer`,category:`page`,renderer:{kind:`react`,load:()=>a(()=>import(`./Explorer-Cau0IyIv.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,27,28,29,30]),import.meta.url)},props:{title:{t:`sessions/explorer/title`},actions:[{command:`ahp.newSession`,icon:`+`,label:{t:`sessions/commands/newSession`}},{command:`sessions.reload`,icon:f.reload,label:{t:`sessions/explorer/reload`},busy:`${v} == true`},{command:`sessions.toggleArchived`,icon:f.archived,label:{t:`sessions/explorer/showArchived`},active:`${y} == true`},{command:`sessions.group`,menu:z,icon:f.group,label:{t:`sessions/explorer/group`},active:`${b} != null`}]}}),t.commands.register({id:`sessions.reload`,title:()=>i(`sessions/explorer/reload`),run:async e=>{e.store.set(v,!0);try{await c()}catch{}finally{e.store.set(v,!1)}}}),t.commands.register({id:`sessions.toggleArchived`,title:()=>i(t.store.get(`$/ahp/sessions/archived`)===!0?`sessions/explorer/hideArchived`:`sessions/explorer/showArchived`),run:e=>e.store.set(y,e.store.get(y)!==!0)}),t.commands.register({id:`sessions.group`,title:()=>i(`sessions/explorer/group`),run:e=>{e.host===void 0?g(e.scena,B()):e.host.pushList(B())}}),...T.map(e=>t.commands.register({id:`sessions.groupBy.${e}`,title:()=>C(e),slots:[z],active:t=>(t.store.get(`$/ahp/sessions/grouping`)??`none`)===e,run:t=>{t.store.set(b,e===`none`?null:e),w(e)}})),t.components.register({component:`SessionPage`,category:`page`,props:{icon:f.sessions},renderer:{kind:`react`,load:()=>a(()=>import(`./Page-D2Aojkph.js`),__vite__mapDeps([31,1,2,3,4,5,6,12,13,14,15,7,8,9,10,32,18,33,21,22,34,35,23,24,25,26,36,11,16,17,19,20,30,37,38,39,40,41,42,43,44,27,45,46,47]),import.meta.url)}}),t.components.register({component:`NewSessionPage`,category:`page`,props:{icon:f.sessions},renderer:{kind:`react`,load:()=>a(()=>import(`./New-DSGbzxwy.js`),__vite__mapDeps([48,1,2,3,4,5,6,49,12,13,14,15,7,8,9,10,11,16,17,18,19,20,23,24,25,26,36,30,37,38,39,40,41,42,43,44,50,51,52,53,54,55,56,57,58,59,60,61,62,63]),import.meta.url)}}),t.components.register({component:`StartPage`,category:`page`,renderer:{kind:`react`,load:()=>a(()=>import(`./Start-DX8T0ii8.js`),__vite__mapDeps([64,1,6,2,4,12,13,14,15,51,3,5,52,53,54,7,8,9,10,11,16,17,18,19,20,55,56,57,58,59,60,50,61,62,65]),import.meta.url)}}),t.surfaces.setEmpty(`main`,{component:`StartPage`}),t.components.register({component:`SessionDetails`,category:`page`,renderer:{kind:`react`,load:()=>a(()=>import(`./Details-DD3vmkCl.js`),__vite__mapDeps([66,1,2,3,4,5,6,7,8,9,20,27,39,41]),import.meta.url)}}),t.commands.register({id:`ahp.showSessions`,title:()=>i(`sessions/commands/showSessions`),keywords:[o(`sessions/commands/showSessions`)],category:`Sessions`,slots:[h],run:e=>e.commands.execute(`sidebar.activate`,{section:L})}),t.commands.register({id:`ahp.newSession`,title:()=>i(`sessions/commands/newSession`),keywords:[o(`sessions/commands/newSession`)],category:`Sessions`,slots:[h],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:s(`sessions/commands/newSession`)}}),R(e.scena,e.store.get(I)??`large`)}}),t.commands.register({id:`ahp.openSession`,title:()=>i(`sessions/commands/openSession`),run:(e,t)=>{let n=t?.resource;n!==void 0&&(e.store.set(x,n),e.surfaces.open({surface:`main`,key:`session:${n}`,resource:{component:`SessionPage`,resource:n},props:{title:{path:l(n)}}}),R(e.scena,e.store.get(I)??`large`),R(e.scena,e.store.get(I)??`large`,`sidebar:right`))}}),F(t,{key:`session:details`,resource:{component:`SessionDetails`},props:{title:{t:`sessions/details/tab`}}},f.info),t.surfaces.mount({surface:`sidebar:left`,key:`sessions:explorer`,when:`$/layout/surfaces/sidebar:left/section == "${L}"`,resource:{component:`SessionExplorer`}}))}export{E as a,F as i,R as n,V as r,L as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`$/ahp/activeSession`,t=`$/ahp/sessions/archived`,n=`$/ahp/sessions/grouping`,r=`$/ahp/sessions/reloading`;export{r as i,t as n,n as r,e as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{l as e}from"./useI18n-T3BwAm0z.js";import{rt as t}from"./data-DPJ4OTLn.js";function n(e){return typeof e==`object`&&e?e:{}}function r(e){return typeof e==`string`&&e!==``?e:null}function i(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function a(e){return e.type===`command`?typeof e.output==`string`?e.output:``:typeof e.value==`string`?e.value:``}function o(e){let t=``;for(let n of e)t+=a(n);return t}function s(e){let t=n(e),a=n(t.lifecycle),o=i(a.exitCode);return{...t,title:r(t.title)??``,content:Array.isArray(t.content)?t.content:[],lifecycle:r(a.status)===`exited`?{status:`exited`,...o===null?{}:{exitCode:o}}:{status:`running`},claim:l(t.claim)?t.claim:u(``)}}function c(e,n){return t(s(e),n)}function l(e){let t=r(n(e).kind);return t===`client`||t===`session`}function u(e){return{kind:`client`,clientId:e}}function d(e,t){let i=n(e);return i.kind===`session`?{kind:`session`,session:r(i.session)??``}:i.kind===`client`&&t!==null&&i.clientId===t?{kind:`you`}:{kind:`another`}}function f(e){return n(e.lifecycle).status===`exited`}function p(e){return i(n(e.lifecycle).exitCode)}var m=0;function h(){return m+=1,`ahp-terminal:/${Date.now().toString(36)}-${m.toString(36)}`}function g(e,t){return t.startsWith(e)?{reset:!1,text:t.slice(e.length)}:{reset:!0,text:t}}function _(t){return t.title!==void 0&&t.title!==``?t.title:e(`terminals/terminal`)}function v(e,t){if(e===void 0)return!1;let n=t.replace(/\/+$/,``);return e.replace(/\/+$/,``)===n||e.startsWith(`${n}/`)}export{f as a,o as c,_ as d,c as i,h as l,g as n,d as o,p as r,v as s,u as t,s as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useI18n-T3BwAm0z.js";import{D as r}from"./data-DPJ4OTLn.js";import{n as i}from"./words-T8-D0K4W.js";import{t as a}from"./CopyButton-Dqp4FT7R.js";var o=t(),s=e();function c(e){let[t,n]=(0,o.useState)(null);return(0,o.useEffect)(()=>{if(e===void 0)return;let t=!0;return n(null),r(e).then(e=>{t&&n({text:e.text})}).catch(e=>{t&&n({error:e instanceof Error?e.message:String(e)})}),()=>{t=!1}},[e]),t}function l({uri:e,dirty:t=!1}){let{t:r}=n(),o=i(e);return(0,s.jsxs)(`div`,{className:`web-file__head`,children:[(0,s.jsx)(`code`,{children:o}),t?(0,s.jsx)(`span`,{className:`web-file__dirty`,title:r(`files/notSaved`),children:r(`files/edited`)}):null,(0,s.jsx)(a,{text:o,label:r(`files/copyPath`)})]})}export{c as n,l as t};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{n as e}from"./useI18n-T3BwAm0z.js";var t=e=>e.message.model?.id??e.usage?.model;function n(e){let n=e.startedAt===void 0?NaN:Date.parse(e.startedAt),r=t(e),i=e.usage;return{...Number.isNaN(n)?{}:{startedAt:n},...`duration`in e&&typeof e.duration==`number`?{duration:e.duration}:{},...r===void 0?{}:{model:r},...i?.inputTokens===void 0?{}:{input:i.inputTokens},...i?.outputTokens===void 0?{}:{output:i.outputTokens},...i?.cacheReadTokens===void 0?{}:{cacheRead:i.cacheReadTokens},tools:e.responseParts.filter(e=>String(e.kind)===`toolCall`).length}}function r(e){return e.responseParts.filter(e=>String(e.kind)===`markdown`&&`content`in e&&typeof e.content==`string`).map(e=>e.content.trim()).filter(e=>e!==``).join(`
|
|
2
|
+
|
|
3
|
+
`)}function i(e){return e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(+(e<1e4)).replace(/\.0$/,``)}k`:`${(e/1e6).toFixed(1).replace(/\.0$/,``)}M`}function a(e){let t=new Set,r={turns:e.length,working:0,input:0,output:0,tools:0,models:[]};for(let i of e){let e=n(i);r.working+=e.duration??0,r.input+=e.input??0,r.output+=e.output??0,r.tools+=e.tools,e.model!==void 0&&t.add(e.model)}return r.models=[...t],r}function o(t){let n=new Date(t);return new Date().toDateString()===n.toDateString()?n.toLocaleTimeString(e(),{hour:`2-digit`,minute:`2-digit`}):n.toLocaleString(e(),{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}export{o as a,a as i,r as n,i as r,n as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./react-CybPckBe.js";var t=e(),n=new Map,r=new Map,i=new Set,a=`en`,o=`en`;function s(){for(let e of[...i])e()}function c(e){return e.split(/[./]/).filter(Boolean)}function l(e,t,n){let r=e;for(let e=0;e<t.length-1;e++){let n=t[e],i=r[n];(typeof i!=`object`||!i)&&(r[n]={}),r=r[n]}r[t[t.length-1]]=n}function u(e,t){let n=e;for(let e of t){if(typeof n!=`object`||!n)return;n=n[e]}return n}function d(e,t,n){for(let[r,i]of Object.entries(t)){let t=[...n,...c(r)];i&&typeof i==`object`&&!Array.isArray(i)?d(e,i,t):l(e,t,String(i))}}function f(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 p(e){let[t,n]=e.split(`-`);return n?{language:t,country:n}:{language:t}}function m(e){let t=r.get(e.locale);r.set(e.locale,{...p(e.locale),...t,...e}),s()}function h(e,t,i){let a=n.get(e)??{};if(d(a,t,i?.namespace?c(i.namespace):[]),n.set(e,a),i){let t={...i};if(delete t.namespace,Object.keys(t).length){let n=r.get(e);r.set(e,{...p(e),...n,...t,locale:e})}}s()}function g(e){e!==a&&(a=e,s())}function _(){return a}function v(){let e=new Map;for(let t of n.keys())e.set(t,{locale:t,...p(t)});for(let[t,n]of r)e.set(t,n);return[...e.values()]}function y(e=a){return r.get(e)??(n.has(e)?{locale:e,...p(e)}:void 0)}function b(e,t=a){let r=c(e);return u(n.get(t),r)??u(n.get(o),r)}function x(e,t=a){let n=b(e,t);return typeof n==`string`?n:void 0}function S(e,t){let n=typeof t==`string`?{fallback:t}:t,r=x(e)??n?.fallback;return r===void 0?`{${c(e).join(`/`)}}`:f(r,n)}function C(e){return i.add(e),()=>void i.delete(e)}function w(e){let n=(0,t.useSyncExternalStore)(C,_,_);return{t:(0,t.useCallback)((t,n)=>S(e?`${e}/${t}`:t,n),[e,n]),locale:n,info:y(n),locales:v(),setLocale:g}}export{h as a,C as c,m as i,S as l,_ as n,b as o,v as r,g as s,w as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./useStore-BQkzWMs-.js";import{l as t}from"./useI18n-T3BwAm0z.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
|
+
import{l as e}from"./useI18n-T3BwAm0z.js";var t=`ahp-file`,n=`FilePage`,r=`MarkdownPage`,i=(e,t)=>`file:${e}:${t}`;function a(e){let t=e===void 0?null:/^file:([^:]+):(.+)$/.exec(e);return t===null?void 0:{component:t[1],uri:t[2]}}function o(e){let t=e.replace(/[?#].*$/,``).split(`/`).pop()??``,n=t.lastIndexOf(`.`);return n<=0?``:t.slice(n+1).toLowerCase()}function s(e,n){let r={"$/resource/ext":o(n)};return e.components.findOpeners(t).filter(t=>{let n=t.opens?.selector;return n===void 0||e.when.evaluate(n,r)})}function c(t){let n=t.opens?.title;return typeof n==`string`?n:n!==void 0&&`t`in n?e(n.t):t.component}function l(t,n,r){return s(t,n).filter(e=>e.component!==r).map(r=>({title:e(`files/openAs`,{viewer:c(r)}),group:e(`files/openWith`),...r.opens?.icon===void 0?{}:{icon:r.opens.icon},onSelect:e=>{e.closeMenu(),t.commands.execute(`ahp.openFile`,{uri:n,viewer:r.component})}}))}export{i as a,c,o as i,s as l,r as n,a as o,n as r,l as s,t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{l as e}from"./useI18n-T3BwAm0z.js";import{a as t}from"./locales-Dnk_Y338.js";import{n}from"./words-T8-D0K4W.js";import{r}from"./turn-z1TPlA5Q.js";function i(n){let r=n.models.length;return r===0?e(`agents/models/none`):t(`agents/models/count`,r)}function a(t){let n=[],r=t.capabilities?.multipleChats;r!==void 0&&n.push(e(r.fork===!0?`agents/capabilities/chatsAndForks`:`agents/capabilities/chats`));let i=t.capabilities?.multipleWorkingDirectories;return i!==void 0&&n.push(e(i.immutablePrimary===!0?`agents/capabilities/foldersFirstFixed`:`agents/capabilities/folders`)),n}function o(t){let n=[];return t.maxContextWindow!==void 0&&n.push(e(`agents/limits/context`,{size:r(t.maxContextWindow)})),t.maxOutputTokens!==void 0&&n.push(e(`agents/limits/output`,{size:r(t.maxOutputTokens)})),t.supportsVision===!0&&n.push(e(`agents/limits/images`)),n.join(` · `)}var s=new Set([`plugin`,`directory`,`mcpServer`]),c=new Set([`agent`,`skill`,`prompt`,`rule`,`hook`,`mcpServer`]),l=new Set([`required`,`expired`,`insufficientScope`]);function u(e){return`enablement`in e&&e.enablement!==void 0?e.enablement[0]?.enabled??!0:e.enabled??!0}function d(e,n){return t(`agents/counts/${c.has(n)?n:`item`}`,e)}function f(t){if(String(t.type)===`mcpServer`)return;let n=t.children;if(n===void 0)return;if(t.type===`directory`)return d(n.length,String(t.contents));if(n.length===0)return e(`agents/counts/empty`);let r=new Map;for(let e of n)r.set(String(e.type),(r.get(String(e.type))??0)+1);return[...r].map(([e,t])=>d(t,e)).join(`, `)}function p(e){return n(e).replace(/^(\/home\/[^/]+|\/Users\/[^/]+|\/root)(?=\/|$)/,`~`)}function m(e){return(e??``).trim().split(`
|
|
2
|
+
`)[0]?.trim()??``}function h(t){if(String(t.type)===`mcpServer`){let n=t.state;switch(String(n.kind)){case`ready`:return{tone:`success`,text:e(`agents/states/ready`)};case`starting`:return{tone:`info`,text:e(n.blocking===!0?`agents/states/startingBlocking`:`agents/states/starting`)};case`authRequired`:{let t=String(n.reason);return{tone:`warning`,text:l.has(t)?e(`agents/auth/${t}`):t}}case`error`:return{tone:`danger`,text:n.error.message};case`stopped`:return{tone:`default`,text:e(`agents/states/stopped`)};default:return{tone:`default`,text:String(n.kind)}}}let n=t.load;switch(n===void 0?void 0:String(n.kind)){case`loading`:return{tone:`busy`,text:e(`agents/states/loading`)};case`degraded`:return{tone:`warning`,text:n.message};case`error`:return{tone:`danger`,text:n.message};default:return}}function g(t){let n=[],r=t;if(r.disableModelInvocation===!0&&n.push(e(`agents/flags/userOnly`)),r.disableUserInvocation===!0&&n.push(e(`agents/flags/modelOnly`)),r.model!==void 0&&r.model!==``&&n.push(e(`agents/flags/pinned`,{model:r.model})),t.type===`rule`){let r=t;r.globs!==void 0&&r.globs.length>0?n.push(r.globs.join(`, `)):r.alwaysApply===!0&&n.push(e(`agents/flags/always`))}return n}function _(e){return m(e.description)}function v(e){return e.replace(/^---\r?\n[\s\S]*?\r?\n---[ \t]*(\r?\n|$)/,``).trimStart()}var y=new Set([`skill`,`prompt`]),b=new Set([`plugin`,`directory`]);function x(e){if(!b.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 S(e){let t=String(e.type)===`mcpServer`?h(e):void 0,n=x(e);return{id:e.id,name:e.name,label:y.has(String(e.type))?`/${e.name}`:e.name,line:_(e),description:(e.description??``).trim(),flags:g(e),enabled:u(e),...t===void 0?{}:{state:t},...n===void 0?{}:{open:n}}}function C(t,n){let r=[],i=f(t);i!==void 0&&r.push(i),t.writable===!1&&r.push(e(`agents/meta/readOnly`));let a=t.version;return a!==void 0&&a!==``&&r.push(`v${a}`),r.push(e(n?`agents/meta/on`:`agents/meta/off`)),r}function w(t){let n=t??[];return[...n.filter(e=>String(e.type)!==`mcpServer`),...n.filter(e=>String(e.type)===`mcpServer`)].map(t=>{let n=u(t),r=h(t),i=String(t.type),a=x(t);return{id:t.id,type:i,name:t.name,kind:s.has(i)?e(`agents/kinds/${i}`):i,path:p(t.uri),meta:C(t,n),enabled:n,...r===void 0?{}:{state:r},...a===void 0?{}:{open:a},children:(t.children??[]).map(S)}})}function T(e){let t=new Set,n=[];for(let r of e??[])if(u(r))for(let e of r.children??[])y.has(String(e.type))&&u(e)&&(e.disableUserInvocation===!0||t.has(e.name)||(t.add(e.name),n.push({name:e.name,description:_(e)})));return n}function E(e){return(e.protectedResources??[]).map(e=>({name:e.resource_name??e.resource,scopes:(e.scopes_supported??[]).join(`, `),required:e.required===!0}))}export{E as a,i,w as n,T as o,o as r,v as s,a as t};
|
package/dist/app/index.html
CHANGED
|
@@ -6,52 +6,56 @@
|
|
|
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-xynK_AEL.js"></script>
|
|
10
10
|
<link rel="modulepreload" crossorigin href="./assets/jsx-runtime-BguD1OXD.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="./assets/react-CybPckBe.js">
|
|
12
12
|
<link rel="modulepreload" crossorigin href="./assets/ScenaProvider-6A3TJumQ.js">
|
|
13
13
|
<link rel="modulepreload" crossorigin href="./assets/mount-context-DZgEFVFG.js">
|
|
14
14
|
<link rel="modulepreload" crossorigin href="./assets/useStore-BQkzWMs-.js">
|
|
15
15
|
<link rel="modulepreload" crossorigin href="./assets/styles-yrzHRgom.js">
|
|
16
|
-
<link rel="modulepreload" crossorigin href="./assets/_utils-DZVsX11M.js">
|
|
17
|
-
<link rel="modulepreload" crossorigin href="./assets/Button-_R1oktDz.js">
|
|
18
|
-
<link rel="modulepreload" crossorigin href="./assets/data-hUAVersf.js">
|
|
19
|
-
<link rel="modulepreload" crossorigin href="./assets/emojis-7RT6GvLa.js">
|
|
20
|
-
<link rel="modulepreload" crossorigin href="./assets/colors-BieSUSt7.js">
|
|
21
|
-
<link rel="modulepreload" crossorigin href="./assets/ActionList-aOUHK9Z9.js">
|
|
22
|
-
<link rel="modulepreload" crossorigin href="./assets/terminal-BPj7jGw5.js">
|
|
23
|
-
<link rel="modulepreload" crossorigin href="./assets/notify-BQ9fSOfy.js">
|
|
24
16
|
<link rel="modulepreload" crossorigin href="./assets/surface-presentation-CT86pw6J.js">
|
|
25
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
17
|
+
<link rel="modulepreload" crossorigin href="./assets/useI18n-T3BwAm0z.js">
|
|
26
18
|
<link rel="modulepreload" crossorigin href="./assets/preload-helper-BaNbYf_w.js">
|
|
27
19
|
<link rel="modulepreload" crossorigin href="./assets/sigillum-Bev0l9LS.js">
|
|
20
|
+
<link rel="modulepreload" crossorigin href="./assets/_utils-DZVsX11M.js">
|
|
21
|
+
<link rel="modulepreload" crossorigin href="./assets/Button-_R1oktDz.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="./assets/label-hTY0RCEf.js">
|
|
23
|
+
<link rel="modulepreload" crossorigin href="./assets/locales-Dnk_Y338.js">
|
|
24
|
+
<link rel="modulepreload" crossorigin href="./assets/data-DPJ4OTLn.js">
|
|
25
|
+
<link rel="modulepreload" crossorigin href="./assets/emojis-DanG-8fr.js">
|
|
26
|
+
<link rel="modulepreload" crossorigin href="./assets/colors-BieSUSt7.js">
|
|
27
|
+
<link rel="modulepreload" crossorigin href="./assets/ActionList-QwhYPQiB.js">
|
|
28
|
+
<link rel="modulepreload" crossorigin href="./assets/terminal-_7S7Eyr-.js">
|
|
29
|
+
<link rel="modulepreload" crossorigin href="./assets/CommandPalette-wYX5XXUP.js">
|
|
30
|
+
<link rel="modulepreload" crossorigin href="./assets/notify-BmjJL_fx.js">
|
|
28
31
|
<link rel="modulepreload" crossorigin href="./assets/words-T8-D0K4W.js">
|
|
29
|
-
<link rel="modulepreload" crossorigin href="./assets/composer-commands-
|
|
30
|
-
<link rel="modulepreload" crossorigin href="./assets/state-
|
|
31
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
32
|
+
<link rel="modulepreload" crossorigin href="./assets/composer-commands-BOXuqfcP.js">
|
|
33
|
+
<link rel="modulepreload" crossorigin href="./assets/state-CKNqusrK.js">
|
|
34
|
+
<link rel="modulepreload" crossorigin href="./assets/grouping-DtiUUpdw.js">
|
|
35
|
+
<link rel="modulepreload" crossorigin href="./assets/sessions-CLjdYeF3.js">
|
|
32
36
|
<link rel="modulepreload" crossorigin href="./assets/_field-parts-BuPjFCuf.js">
|
|
33
37
|
<link rel="modulepreload" crossorigin href="./assets/TextField-DnSHrmJM.js">
|
|
34
38
|
<link rel="modulepreload" crossorigin href="./assets/state-DRVsnGrf.js">
|
|
35
|
-
<link rel="modulepreload" crossorigin href="./assets/folder-path-
|
|
36
|
-
<link rel="modulepreload" crossorigin href="./assets/viewers-
|
|
39
|
+
<link rel="modulepreload" crossorigin href="./assets/folder-path-CJJ4uFfN.js">
|
|
40
|
+
<link rel="modulepreload" crossorigin href="./assets/viewers-Vk4T9IkZ.js">
|
|
37
41
|
<link rel="stylesheet" crossorigin href="./assets/Button-CRZ1_3KW.css">
|
|
38
|
-
<link rel="stylesheet" crossorigin href="./assets/ActionList-
|
|
42
|
+
<link rel="stylesheet" crossorigin href="./assets/ActionList-Bc-jZDaT.css">
|
|
39
43
|
<link rel="stylesheet" crossorigin href="./assets/_field-parts-DannIEUW.css">
|
|
40
44
|
<link rel="stylesheet" crossorigin href="./assets/_field-parts-CfQcSJYh.css">
|
|
41
45
|
<link rel="stylesheet" crossorigin href="./assets/DateTimeInput-x1XGuNl0.css">
|
|
42
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
46
|
+
<link rel="stylesheet" crossorigin href="./assets/index-BiJaGB50.css">
|
|
43
47
|
</head>
|
|
44
48
|
<body>
|
|
45
49
|
<div id="root">
|
|
46
50
|
<div class="boot-loading" role="status" aria-label="Loading ahpw">
|
|
47
51
|
<svg class="boot-mark" width="72" height="72" viewBox="0 0 64 64" aria-hidden="true">
|
|
48
|
-
<path class="boot-echo" fill="#62c9b0" d="M29.
|
|
49
|
-
<path class="boot-echo boot-echo--second" fill="#62c9b0" d="M29.
|
|
50
|
-
<path class="boot-echo boot-echo--third" fill="#62c9b0" d="M29.
|
|
51
|
-
<rect x="
|
|
52
|
-
<path fill="#356b5e" d="
|
|
53
|
-
<path fill="#356b5e" d="
|
|
54
|
-
<path fill="#62c9b0" d="M29.
|
|
52
|
+
<path class="boot-echo" fill="#62c9b0" d="M29.29 7.08 L34.83 7.08 L52.12 56.84 L40.28 56.84 L32.06 33.15 L23.85 56.84 L12.01 56.84 Z" />
|
|
53
|
+
<path class="boot-echo boot-echo--second" fill="#62c9b0" d="M29.29 7.08 L34.83 7.08 L52.12 56.84 L40.28 56.84 L32.06 33.15 L23.85 56.84 L12.01 56.84 Z" />
|
|
54
|
+
<path class="boot-echo boot-echo--third" fill="#62c9b0" d="M29.29 7.08 L34.83 7.08 L52.12 56.84 L40.28 56.84 L32.06 33.15 L23.85 56.84 L12.01 56.84 Z" />
|
|
55
|
+
<rect x="23.56" y="42.23" width="17.1" height="7.92" fill="#356b5e" />
|
|
56
|
+
<path fill="#356b5e" d="M7 11.25 L18.84 11.25 L23.85 56.88 L12.01 56.88 Z" />
|
|
57
|
+
<path fill="#356b5e" d="M57 11.25 L45.16 11.25 L40.15 56.88 L51.99 56.88 Z" />
|
|
58
|
+
<path fill="#62c9b0" d="M29.29 7.08 L34.83 7.08 L52.12 56.84 L40.28 56.84 L32.06 33.15 L23.85 56.84 L12.01 56.84 Z" />
|
|
55
59
|
</svg>
|
|
56
60
|
</div>
|
|
57
61
|
<noscript>
|
package/dist/plugin/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Plugin } from '@ahpd/sdk';
|
|
2
|
-
/** The plugin's id, and the path it is served under: `/plugins/
|
|
3
|
-
export declare const name = "
|
|
2
|
+
/** The plugin's id, and the path it is served under: `/plugins/web/`. */
|
|
3
|
+
export declare const name = "web";
|
|
4
4
|
/** What a listing prints. */
|
|
5
5
|
export declare const title = "Web";
|
|
6
6
|
export declare const apply: Plugin['apply'];
|
package/dist/plugin/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { fileURLToPath } from 'node:url';
|
|
2
2
|
import { staticRoute } from './static.js';
|
|
3
|
-
/** The plugin's id, and the path it is served under: `/plugins/
|
|
4
|
-
export const name = '
|
|
3
|
+
/** The plugin's id, and the path it is served under: `/plugins/web/`. */
|
|
4
|
+
export const name = 'web';
|
|
5
5
|
/** What a listing prints. */
|
|
6
6
|
export const title = 'Web';
|
|
7
7
|
/** The built page, beside this file in the package. */
|
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,
|
|
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,yEAAyE;AACzE,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC;AAE1B,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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ahpd/web",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
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": [
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
}
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@ahpd/sdk": "^0.
|
|
58
|
+
"@ahpd/sdk": "^0.12.0",
|
|
59
59
|
"@codemirror/autocomplete": "^6.20.3",
|
|
60
60
|
"@codemirror/commands": "^6.11.1",
|
|
61
61
|
"@codemirror/lang-cpp": "^6.0.3",
|
|
@@ -74,12 +74,13 @@
|
|
|
74
74
|
"@codemirror/lang-yaml": "^6.1.3",
|
|
75
75
|
"@codemirror/language": "^6.13.1",
|
|
76
76
|
"@codemirror/legacy-modes": "^6.5.5",
|
|
77
|
+
"@codemirror/lint": "^6.9.7",
|
|
77
78
|
"@codemirror/search": "^6.7.2",
|
|
78
79
|
"@codemirror/state": "^6.7.6",
|
|
79
80
|
"@codemirror/view": "^6.43.14",
|
|
80
81
|
"@lezer/highlight": "^1.2.5",
|
|
81
82
|
"@microsoft/agent-host-protocol": "^1.0.0",
|
|
82
|
-
"@softov/scena": "^0.5.
|
|
83
|
+
"@softov/scena": "^0.5.7",
|
|
83
84
|
"@types/node": "^22.10.2",
|
|
84
85
|
"@types/react": "^19.2.18",
|
|
85
86
|
"@types/react-dom": "^19.2.3",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
:root{--oo-action-list-min-width:240px;--oo-action-list-max-width:none;--oo-action-list-max-height:360px}.oo-action-list{min-width:var(--oo-action-list-min-width);max-width:var(--oo-action-list-max-width);max-height:var(--oo-action-list-max-height);background:var(--oo-color-surface);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-md,8px);box-shadow:var(--oo-shadow-lg,0 12px 28px #00000042);color:inherit;font-size:var(--oo-font-size-sm);flex-direction:column;display:flex;position:relative;overflow:hidden}.oo-action-list__pending{z-index:2;font-size:10px;font-family:var(--oo-font-mono);color:var(--oo-color-muted);background:var(--oo-color-surface);border:1px solid var(--oo-color-border);opacity:.9;pointer-events:none;border-radius:999px;padding:1px 6px;animation:1s ease-in-out infinite oo-action-list-pulse;position:absolute;top:4px;right:8px}@keyframes oo-action-list-pulse{0%,to{opacity:.45}50%{opacity:.95}}.oo-action-list__custom-header{padding:var(--oo-spacing-xs) var(--oo-spacing-sm);border-bottom:1px solid var(--oo-color-border);flex:none}.oo-action-list__back{align-items:center;gap:var(--oo-spacing-xs);padding:var(--oo-spacing-xs) var(--oo-spacing-sm);border:none;border-bottom:1px solid var(--oo-color-border);color:var(--oo-color-muted);font:inherit;cursor:pointer;text-align:left;background:0 0;flex:none;display:flex}.oo-action-list__back:hover{background:var(--oo-color-active);color:inherit}.oo-action-list__body{flex:auto;min-height:0;display:flex}.oo-action-list__items{flex:auto;min-width:0;overflow-y:auto}.oo-action-list__detail{min-width:0;padding:var(--oo-spacing-sm);border-left:1px solid var(--oo-color-border);background:var(--oo-color-canvas);flex:0 0 40%;overflow:auto}.oo-action-list__header{padding:var(--oo-spacing-sm);border-bottom:1px solid var(--oo-color-border);background:var(--oo-color-canvas);flex:none}.oo-action-list__group-label{padding:var(--oo-spacing-xs) var(--oo-spacing-sm) 2px;color:var(--oo-color-muted);text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:700}.oo-action-list__divider{background:var(--oo-color-border);height:1px}.oo-action-list__row{align-items:center;gap:var(--oo-spacing-sm);padding:6px var(--oo-spacing-sm);width:100%;color:inherit;text-align:left;cursor:pointer;font:inherit;background:0 0;border:none;display:flex}.oo-action-list__row:hover,.oo-action-list__row[data-selected=true]{color:var(--oo-color-text);background:var(--oo-color-hover)}.oo-action-list__row[data-disabled=true]{cursor:default;opacity:.55}.oo-action-list__row[data-selected=true] .oo-action-list__title{color:var(--oo-color-accent);font-weight:700}.oo-action-list .oo-icon{width:16px;height:16px;color:rgb(var(--oo-color,var(--oo-color-muted)));font-size:14px;display:inline-flex}[data-cmd-group=danger] .oo-icon{--oo-color:var(--oo-color-red)}[data-cmd-group=create] .oo-icon{--oo-color:var(--oo-color-green)}[data-cmd-group=open] .oo-icon{--oo-color:var(--oo-color-blue)}[data-cmd-group=config] .oo-icon{--oo-color:var(--oo-color-violet)}.oo-action-list__title{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:500;overflow:hidden}.oo-action-list__description{text-overflow:ellipsis;white-space:nowrap;text-align:right;max-width:50%;color:var(--oo-color-muted);font-size:var(--oo-font-size-xs);flex:none;overflow:hidden}.oo-action-list__text{flex-direction:column;flex:auto;gap:1px;min-width:0;display:flex}.oo-action-list__subtitle{text-overflow:ellipsis;white-space:nowrap;color:var(--oo-color-muted);font-size:var(--oo-font-size-xs);line-height:1.2;overflow:hidden}.oo-action-list__row:hover .oo-action-list__subtitle,.oo-action-list__row[data-selected=true] .oo-action-list__subtitle{color:var(--oo-color-text)}.oo-action-list__shortcut{font-family:var(--oo-font-mono);font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);background:var(--oo-color-canvas);border:1px solid var(--oo-color-border);border-radius:3px;flex:none;padding:0 4px}.oo-action-list__row[data-selected=true] .oo-action-list__shortcut,.oo-action-list__row:hover .oo-action-list__shortcut{background:var(--oo-color-active);color:var(--oo-color-surface)}.oo-action-list__check{color:var(--oo-color-accent);flex:none;font-size:11px}.oo-action-list__empty,.oo-action-list__loading,.oo-action-list__error{padding:var(--oo-spacing-md) var(--oo-spacing-sm);color:var(--oo-color-muted);text-align:center;font-size:var(--oo-font-size-xs)}.oo-action-list__footer{padding:4px var(--oo-spacing-sm);border-top:1px solid var(--oo-color-border);color:var(--oo-color-muted);font-size:10px;font-family:var(--oo-font-mono);-webkit-user-select:none;user-select:none;flex:none}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{r as n}from"./colors-BieSUSt7.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";var i=t(),a=e();function o(e,t){return typeof t!=`number`||Number.isNaN(t)?e.length:Math.max(0,Math.min(e.length,Math.floor(t)))}function s(e,t=[`/`,`@`],n){if(!e)return null;let r=o(e,n),i=-1;if(r<e.length&&!/\s/.test(e[r]??``))i=r;else if(r>0&&!/\s/.test(e[r-1]??``))i=r-1;else return null;let a=i;for(;a>0&&!/\s/.test(e[a-1]??``);)--a;let s=i+1;for(;s<e.length&&!/\s/.test(e[s]??``);)s+=1;let c=e.slice(a,s),l=t.find(e=>c.startsWith(e));return l?{token:c,prefix:l,query:c.slice(l.length),start:a,end:s}:null}function c(e,t,n,r=[`/`,`@`]){let i=s(e,r,t);if(!i)return{next:e,caret:o(e,t)};let a=e.slice(0,i.start),c=`${a}${n}${e.slice(i.end)}`;return n===``&&(c=c.replace(/[ \t]+$/g,``)),{next:c,caret:Math.min(a.length+n.length,c.length)}}function l(e,t,n,r=[`/`,`@`]){let i=s(e,r,t);if(i)return{next:`${e.slice(0,i.start)}${n}${e.slice(i.end)}`,caret:i.start+n.length};let a=`${e}${e.length>0&&!/\s$/.test(e)?` `:``}${n}`;return{next:a,caret:a.length}}function u(e,t){if(!t)return e;let n=Array.isArray(t)?t:[t],r=e.toLowerCase();for(let t of n){let n=t.replace(/^[/@]/,``);if(r.startsWith(n.toLowerCase()))return e.slice(n.length).replace(/^[=\s]+/,``)}return e}function d(e,t){if(!t)return!0;let n=Array.isArray(t)?t:[t],r=e.toLowerCase();return n.some(e=>r.startsWith(e.toLowerCase()))}function f(e){if(e)return Array.isArray(e)?e[0]:e}var p=180;function m({spec:e,hostCtx:t,onBack:o,dataContext:s,manageKeys:c=!0,ref:l}){let u=r(),[d,m]=(0,i.useState)(0),[h,g]=(0,i.useState)({kind:`loading`}),[_,v]=(0,i.useState)(!1),y=(0,i.useRef)(h);y.current=h;let b=(0,i.useRef)(null),x=(0,i.useMemo)(()=>({scena:u,store:u.store,surfaces:u.surfaces,commands:u.commands,events:u.events,source:`menu`,dataContext:s}),[u,s]),S=(0,i.useCallback)(e=>e.map(e=>{let t=typeof e.title==`function`?e.title(x):e.title,n=typeof e.description==`function`?e.description(x):e.description,r=e.active?!!e.active(x):void 0,i=e.disabled?!!e.disabled(x):void 0;return{key:`cmd:${e.id}`,title:t,description:n,icon:e.icon,color:e.color,shortcut:f(e.shortcut),keys:f(e.keys),category:e.category,active:r,disabled:i,invoke:t=>{let n=f(e.shortcut);n&&t.replaceActiveToken(n),u.commands.execute(e.id,void 0,{source:`menu`,dataContext:s,host:t})}}}),[u,x,s]),C=(0,i.useCallback)(e=>e.map((e,t)=>{if(`commandId`in e){let n=u.commands.get(e.commandId);if(!n)return{key:`cmd:${e.commandId}:${t}`,title:`[${e.commandId}]`,disabled:!0,invoke:()=>void 0};let r=S([n])[0],i=e.args;return{...r,key:`cmd:${e.commandId}:${t}`,invoke:e=>{u.commands.execute(n.id,i,{source:`menu`,dataContext:s,host:e})}}}return{key:`act:${t}:${e.title}`,title:e.title,description:e.description,tooltip:e.tooltip,icon:e.icon,color:e.color,shortcut:e.shortcut,keys:e.keys,group:e.group,active:e.active,disabled:e.disabled,invoke:e.onSelect}}),[u,S,s]);(0,i.useEffect)(()=>{let n=!1,r=e.extraItems?C(e.extraItems):[];if(e.items)return v(!1),g({kind:`ready`,rows:[...r,...C(e.items)]}),()=>{n=!0};if(e.query){v(!1);let t=e.query.slot,i=e.query.q,a=()=>{let e=u.commands.list({slot:t,q:i,enabled:!0});n||g({kind:`ready`,rows:[...r,...S(e)]})};a();let o=!1;function s(){o||n||(o=!0,requestAnimationFrame(()=>{o=!1,n||a()}))}let c=u.events.on(`scena:registry:changed`,e=>{let t=e.registry;(t===`commands`||t===`components`)&&s()}),l=u.events.on(`scena:store:changed`,()=>{s()});return()=>{n=!0,c.dispose(),l.dispose()}}if(e.provider){let i=e.provider,a=()=>{if(n)return;let e;try{e=i(t)}catch(e){g({kind:`error`,message:e instanceof Error?e.message:String(e)}),v(!1);return}e instanceof Promise?e.then(e=>{n||(g({kind:`ready`,rows:[...r,...C(e)]}),v(!1))}).catch(e=>{n||(g({kind:`error`,message:e instanceof Error?e.message:String(e)}),v(!1))}):(g({kind:`ready`,rows:[...r,...C(e)]}),v(!1))},o=null,s=()=>{n||(v(!0),o&&clearTimeout(o),o=setTimeout(a,p))};y.current.kind===`ready`?s():(g({kind:`loading`}),a());let c=u.events.on(`scena:store:changed`,()=>s());return()=>{n=!0,o&&clearTimeout(o),c.dispose()}}return v(!1),g({kind:`ready`,rows:r}),()=>{n=!0}},[e,t,C,S,u]);let w=(0,i.useMemo)(()=>h.kind===`ready`?h.rows.filter(e=>!e.disabled):[],[h]);(0,i.useEffect)(()=>{m(0)},[w.length]),(0,i.useEffect)(()=>{let e=b.current;if(!e)return;let t=e.querySelector(`[data-selected="true"]`);t&&t.scrollIntoView({block:`nearest`})},[d]);let T=w[d],E=(0,i.useMemo)(()=>{if(h.kind!==`ready`)return[];let t=e.groupOrder??[],n=new Map,r=[];for(let e of h.rows){let t=e.category??e.group??``;n.has(t)||(n.set(t,[]),r.includes(t)||r.push(t)),n.get(t).push(e)}return[...t.filter(e=>n.has(e)),...r.filter(e=>!t.includes(e))].map(e=>({label:e===``?null:e,rows:n.get(e)}))},[h,e.groupOrder]),D=(0,i.useCallback)(e=>{if(w.length===0&&e.key!==`Escape`&&e.key!==`ArrowLeft`)return!1;if(e.key===`ArrowDown`)return e.preventDefault(),m(e=>(e+1)%w.length),!0;if(e.key===`ArrowUp`)return e.preventDefault(),m(e=>(e-1+w.length)%w.length),!0;if(e.key===`Enter`||e.key===`Tab`){e.preventDefault();let n=w[d];return n&&n.invoke(t),!0}return e.key===`Escape`?(e.preventDefault(),t.closeMenu(),!0):e.key===`ArrowLeft`&&o?(e.preventDefault(),o(),!0):!1},[w,d,t,o]);(0,i.useEffect)(()=>{if(!c)return;function e(e){let t={key:e.key,preventDefault:()=>e.preventDefault()};D(t)}return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[D,c]),(0,i.useImperativeHandle)(l,()=>({handleKey:e=>D(e)}),[D]);let O=-1,k=e.rich===!0;function A(e){let r=!e.disabled;r&&(O+=1);let i=r&&O===d,o=O,s=e.color?{"--oo-color":n(e.color)}:void 0;return(0,a.jsxs)(`button`,{className:`oo-action-list__row`,type:`button`,title:e.tooltip,disabled:e.disabled,"data-cmd-group":e.group,"data-cmd-category":e.category,"data-color":e.color,"data-active":e.active?`true`:void 0,"data-disabled":e.disabled?`true`:void 0,"data-selected":i?`true`:void 0,style:s,onMouseEnter:()=>{r&&m(o)},onClick:()=>{r&&e.invoke(t)},children:[(0,a.jsx)(`span`,{className:`oo-icon`,children:e.icon??`·`}),k?(0,a.jsxs)(`span`,{className:`oo-action-list__text`,children:[(0,a.jsx)(`span`,{className:`oo-action-list__title`,children:e.title}),e.description?(0,a.jsx)(`span`,{className:`oo-action-list__subtitle`,children:e.description}):null]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(`span`,{className:`oo-action-list__title`,children:e.title}),e.description?(0,a.jsx)(`span`,{className:`oo-action-list__description`,children:e.description}):null]}),e.active?(0,a.jsx)(`span`,{className:`oo-action-list__check`,children:`✓`}):null,e.shortcut?(0,a.jsx)(`kbd`,{className:`oo-action-list__shortcut`,children:e.shortcut}):null,e.keys?(0,a.jsx)(`kbd`,{className:`oo-action-list__shortcut`,children:e.keys}):null]},e.key)}function j(){return h.kind===`loading`?(0,a.jsx)(`div`,{className:`oo-action-list__loading`,children:`Loading…`}):h.kind===`error`?(0,a.jsx)(`div`,{className:`oo-action-list__error`,children:h.message}):E.length===0||h.rows.length===0?(0,a.jsx)(`div`,{className:`oo-action-list__empty`,children:`No matches`}):(0,a.jsx)(a.Fragment,{children:E.map((e,t)=>(0,a.jsxs)(`div`,{children:[t>0?(0,a.jsx)(`div`,{className:`oo-action-list__divider`}):null,e.label?(0,a.jsx)(`div`,{className:`oo-action-list__group-label`,children:e.label}):null,e.rows.map(A)]},e.label??`__g${t}`))})}let M=e.layout??`list`,N=M===`header-list`&&e.header,P=M===`info-list`&&e.detail;return(0,a.jsxs)(`div`,{className:`oo-action-list`,"data-layout":M,children:[_?(0,a.jsx)(`div`,{className:`oo-action-list__pending`,"aria-hidden":!0,children:`searching…`}):null,o?(0,a.jsxs)(`button`,{type:`button`,className:`oo-action-list__back`,onClick:o,children:[`← `,e.title??`Back`]}):null,e.customHeader?(0,a.jsx)(`div`,{className:`oo-action-list__custom-header`,children:e.customHeader(t)}):null,N?(0,a.jsx)(`div`,{className:`oo-action-list__header`,children:e.header(t)}):null,(0,a.jsxs)(`div`,{className:`oo-action-list__body`,children:[(0,a.jsx)(`div`,{className:`oo-action-list__items`,ref:b,children:j()}),P?(0,a.jsx)(`div`,{className:`oo-action-list__detail`,children:e.detail(t,T)}):null]}),e.footerHints?(0,a.jsxs)(`div`,{className:`oo-action-list__footer`,children:[`↑↓ navigate · ↵ select`,o?` · ← back`:``,` · ⎋ close`]}):null]})}export{l as a,s as i,f as n,u as o,c as r,d as s,m as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.oo-activity-item{width:var(--oo-activity-item-size,44px);height:var(--oo-activity-item-size,44px);border:none;background:var(--oo-activitybar-bg,transparent);color:var(--oo-activitybar-fg);font:inherit;font-size:var(--oo-activity-item-icon-size,18px);cursor:pointer;-webkit-user-select:none;user-select:none;border-inline-start:2px solid #0000;border-radius:0;flex:none;justify-content:center;align-items:center;padding:0;line-height:1;display:flex;position:relative}.oo-activity-item:hover{color:var(--oo-activitybar-fg-hover);background:var(--oo-activitybar-bg-hover)}.oo-activity-item:focus-visible{outline:2px solid var(--oo-color-accent);outline-offset:-2px}.oo-activity-item[data-active=true]{color:var(--oo-activitybar-fg-active);background:var(--oo-activitybar-bg-active);border-inline-start-color:var(--oo-color-accent)}.oo-activity-item[data-pos=bottom]{margin-block-start:auto}.oo-activity-item__badge{border-radius:var(--oo-radius-full);text-align:center;font-variant-numeric:tabular-nums;background:var(--oo-color-accent);min-width:15px;color:var(--oo-color-canvas);padding:0 3px;font-size:10px;line-height:15px;position:absolute;inset-block-end:3px;inset-inline-end:3px}.oo-activity-item__badge[data-tone=info]{background:var(--oo-color-info);color:var(--oo-color-inverse)}.oo-activity-item__badge[data-tone=danger]{background:var(--oo-color-danger);color:var(--oo-color-inverse)}.oo-activity-item__badge[data-tone=warning]{background:var(--oo-color-warning);color:var(--oo-color-inverse)}.oo-activity-item__badge[data-tone=success]{background:var(--oo-color-success);color:var(--oo-color-inverse)}.oo-activity-item__badge[data-tone=muted]{background:var(--oo-color-muted);color:var(--oo-color-inverse)}.oo-activity-item__badge--second{box-shadow:0 0 0 2px var(--oo-activitybar-bg,var(--oo-color-canvas));inset-block:3px auto}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./useStore-BQkzWMs-.js";import{n}from"./ScenaProvider-6A3TJumQ.js";var r=e(),i=`$/layout/surfaces/sidebar:left/section`;function a(e){return e!==void 0&&e!==``&&Number(e)!==0}function o(e){return typeof e==`number`&&e>99?`99+`:e}function s({icon:e,label:s,section:c,sectionPath:l=i,pos:u,badge:d,badgeTone:f=`accent`,badgeLabel:p,secondBadge:m,secondBadgeTone:h=`accent`,secondBadgeLabel:g,command:_,args:v,onClick:y,className:b,style:x}){let S=n(),C=t(l),w=c!==void 0&&C===c,T=a(d),E=a(m),D=[...T?[p?`${d} ${p}`:`${d}`]:[],...E?[g?`${m} ${g}`:`${m}`]:[]],O=s??c??``,k=D.length===0?s:`${O}: ${D.join(`, `)}`;function A(){if(y){y();return}_&&S.commands.execute(_,v),c&&S.commands.execute(`sidebar.activate`,{...v,section:c})}return(0,r.jsxs)(`button`,{type:`button`,className:[`oo-activity-item`,b].filter(Boolean).join(` `),style:x,"data-active":w,"data-pos":u,title:k,"aria-label":k,"aria-current":w?`true`:void 0,onClick:A,children:[(0,r.jsx)(`span`,{className:`oo-activity-item__icon`,"aria-hidden":`true`,children:e??`·`}),T?(0,r.jsx)(`span`,{className:`oo-activity-item__badge`,"data-tone":f,"aria-hidden":`true`,children:o(d)}):null,E?(0,r.jsx)(`span`,{className:`oo-activity-item__badge oo-activity-item__badge--second`,"data-tone":h,"aria-hidden":`true`,children:o(m)}):null]})}export{s as ActivityBarItem,s as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,t}from"./jsx-runtime-BguD1OXD.js";import{r as n}from"./Icon-CIQ7doud.js";var r=t(),i=e({Alert:()=>o}),a={info:`ℹ`,success:`✓`,warning:`⚠`,danger:`✕`};function o({tone:e=`info`,title:t,children:i,message:o,icon:s,onClose:c,style:l,className:u}){let d=i??o;return(0,r.jsxs)(`div`,{className:[`oo-alert`,u].filter(Boolean).join(` `),"data-tone":e,role:`status`,style:l,children:[(0,r.jsx)(`span`,{className:`oo-alert__icon`,"aria-hidden":!0,children:s??a[e]}),(0,r.jsxs)(`div`,{className:`oo-alert__body`,children:[t?(0,r.jsx)(`strong`,{className:`oo-alert__title`,children:t}):null,d?(0,r.jsx)(`span`,{className:`oo-alert__message`,children:d}):null]}),c?(0,r.jsx)(`button`,{type:`button`,className:`oo-alert__close`,onClick:c,"aria-label":`Dismiss`,children:n.closePanel}):null]})}export{i as n,o 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"./emojis-7RT6GvLa.js";import{t as r}from"./media-Coozt7AL.js";var i=t(),a=e(),o=64,s=e=>!Number.isFinite(e)||e<=0?`0:00`:`${Math.floor(e/60)}:${Math.floor(e%60).toString().padStart(2,`0`)}`;function c({url:e}){let t=(0,i.useRef)(null),[r,c]=(0,i.useState)(!1),[l,u]=(0,i.useState)(0),[d,f]=(0,i.useState)(0),[p,m]=(0,i.useState)(1),[h,g]=(0,i.useState)(!1),_=(0,i.useMemo)(()=>Array.from({length:o},(e,t)=>Math.min(100,Math.max(15,(Math.abs(Math.sin(t*.45)*.6+Math.cos(t*.9)*.4)+t%5*.06)*100))),[]),v=d>0?l/d:0,y=()=>{let e=t.current;e!==null&&(e.paused?e.play().catch(()=>g(!0)):e.pause())},b=e=>{let n=t.current;n===null||d<=0||(n.currentTime=e*d,u(n.currentTime))};return h?(0,a.jsx)(`p`,{className:`web-note web-media__note`,children:`This browser cannot play this file.`}):(0,a.jsxs)(`div`,{className:`web-audio`,children:[(0,a.jsx)(`button`,{type:`button`,className:`web-audio__play`,onClick:y,title:r?`Pause`:`Play`,children:r?n.pause:n.run}),(0,a.jsxs)(`div`,{className:`web-audio__track`,children:[(0,a.jsx)(`div`,{className:`web-audio__bars`,onClick:e=>{let t=e.currentTarget.getBoundingClientRect();b(Math.min(1,Math.max(0,(e.clientX-t.left)/t.width)))},children:_.map((e,t)=>(0,a.jsx)(`span`,{"data-played":v>=t/o?`true`:`false`,style:{height:`${e}%`}},t))}),(0,a.jsxs)(`div`,{className:`web-audio__time`,children:[(0,a.jsx)(`span`,{children:s(l)}),(0,a.jsx)(`span`,{children:s(d)})]})]}),(0,a.jsxs)(`button`,{type:`button`,className:`web-audio__rate`,onClick:()=>{let e=p>=2?.5:p+.5;t.current!==null&&(t.current.playbackRate=e),m(e)},title:`Speed`,children:[p,`x`]}),(0,a.jsx)(`audio`,{ref:t,src:e,preload:`metadata`,onPlay:()=>c(!0),onPause:()=>c(!1),onEnded:()=>c(!1),onTimeUpdate:e=>u(e.currentTarget.currentTime),onLoadedMetadata:e=>f(e.currentTarget.duration),onError:()=>g(!0)})]})}function l({uri:e}){return(0,a.jsx)(r,{uri:e,children:e=>(0,a.jsx)(c,{url:e})})}export{l as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,t}from"./jsx-runtime-BguD1OXD.js";import{t as n}from"./react-CybPckBe.js";import{o as r}from"./mount-context-DZgEFVFG.js";import{r as i}from"./_utils-DZVsX11M.js";import{i as a,n as o,r as s,t as c}from"./_field-parts-BuPjFCuf.js";var l=n(),u=t(),d=e({ChoicePicker:()=>p});function f(e){return typeof e==`string`?{label:e,value:e}:e}function p({value:e,defaultValue:t,options:n=[],label:d,disabled:p,variant:m=`select`,displayStyle:h,filterable:g,weight:_,checks:v,hint:y,error:b,required:x,typeTag:S,onChange:C}){let w=r(`value`),T=n.map(f),[E,D]=(0,l.useState)(e??t??T[0]?.value??``),[O,k]=(0,l.useState)(``);(0,l.useEffect)(()=>{e!==void 0&&D(t=>t===e?t:e)},[e]);function A(e){D(e),w(e),C?.(e)}function j(e){A(e.currentTarget.value)}let M=g&&O?T.filter(e=>e.label.toLowerCase().includes(O.toLowerCase())):T;return(0,u.jsxs)(`label`,{className:`oo-field`,style:i(_),children:[(0,u.jsx)(s,{label:d,required:x,typeTag:S}),(0,u.jsx)(o,{text:y}),g?(0,u.jsx)(`div`,{className:`oo-control`,children:(0,u.jsx)(`input`,{className:`oo-input`,type:`search`,placeholder:`Filter…`,value:O,onChange:e=>k(e.currentTarget.value),disabled:p})}):null,m===`radio`?(0,u.jsx)(`div`,{className:`oo-radios`,children:M.map(e=>(0,u.jsxs)(`label`,{className:`oo-radio`,children:[(0,u.jsx)(`input`,{type:`radio`,value:e.value,checked:E===e.value,disabled:p||e.disabled,onChange:()=>A(e.value)}),(0,u.jsx)(`span`,{children:e.label})]},e.value))}):(0,u.jsx)(`select`,{className:`oo-select`,value:E,disabled:p,onChange:j,children:M.map(e=>(0,u.jsx)(`option`,{value:e.value,disabled:e.disabled,children:e.label},e.value))}),(0,u.jsx)(c,{text:b}),(0,u.jsx)(a,{checks:v})]})}export{d as n,p as t};
|
|
@@ -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-BQ9fSOfy.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{j as s,v as c}from"./data-hUAVersf.js";import{a as l,n as u}from"./words-T8-D0K4W.js";import{t as d}from"./emojis-7RT6GvLa.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,d as y,f as b,g as x,h as S,i as ne,l as C,m as w,o as re,p as T,r as E,s as D,t as O,u as ie,v as k}from"./composer-commands-B8AF8OGi.js";import{n as A,t as j}from"./drag-ruzgQUFW.js";var M=e(),N=t(),P=[`/`,`@`];function F(e){let{input:t,setInput:n,caretIndex:r,panelDataContext:i,slashSlot:o=`chat:input/`,mentionSlot:s=`chat:input@`,mentionProvider:c,prefixes:l=P,onCaretChange:u}=e,d=a(),[_,v]=(0,N.useState)([]),y=(0,N.useRef)(_);y.current=_;let b=(0,N.useRef)(null),x=(0,N.useMemo)(()=>f(t,l,r),[t,l,r]),[S,ne]=(0,N.useState)(null),C=x===null?null:`${x.start}:${x.token}`,w=x!==null&&C!==S,re=(0,N.useRef)(c);re.current=c;let T=c!==void 0,E=(0,N.useCallback)(e=>re.current?.(e)??[],[]),D=(0,N.useCallback)(e=>x?.prefix===`@`?T?{provider:E,footerHints:!0,rich:!0}:{query:{slot:s,q:e},footerHints:!0,rich:!0}:{query:{slot:o,q:e},footerHints:!0,rich:!0},[x?.prefix,T,E,s,o]);(0,N.useEffect)(()=>{if(!x||!w){y.current.length>0&&v([]);return}let e=y.current[y.current.length-1];if(y.current.length<=1){v([{spec:D(x.query)}]);return}let t=e&&`spec`in e?e.spec:void 0;if(t?.sentinel&&!h(x.token,t.sentinel)){v([{spec:D(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,w,D]);let O=(0,N.useMemo)(()=>{let e=_[_.length-1];return e&&`spec`in e?e.spec.sentinel:void 0},[_]),ie=(0,N.useMemo)(()=>te(x?.query??``,O),[x,O]),k=(0,N.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,M.jsx)(I,{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:ie}),[t,r,l,n,ie,u]),A=_[_.length-1],j=(0,N.useCallback)(()=>v(e=>e.slice(0,-1)),[]),F=_.length>1?j:void 0,L=(0,N.useCallback)(e=>{if(!w)return!1;if(e.key===`Escape`)return e.preventDefault(),ne(C),v([]),!0;if(e.key===`ArrowLeft`&&F){let t=e.target;if(t.selectionStart===t.selectionEnd&&x&&t.selectionStart===x.start+x.prefix.length)return e.preventDefault(),F(),!0}return e.key===`ArrowDown`||e.key===`ArrowUp`||e.key===`Enter`||e.key===`Tab`?b.current?.handleKey(e)??!1:!1},[w,F,x,C]),R=(0,N.useCallback)(e=>{let a=d.commands.get(e);if(!a)return null;ne(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:k}),c},[d,i,t,r,l,k,n,o]),z=(0,N.useCallback)(()=>k.closeMenu(),[k]);return{menuVisible:w,activeSentinel:O,pickerNode:A?`component`in A?A.component:(0,M.jsx)(g,{ref:b,spec:A.spec,hostCtx:k,onBack:F,dataContext:i,manageKeys:!1}):null,handleMenuKeyDown:L,openCommand:R,closeMenu:z}}function I({name:e}){return(0,M.jsxs)(`div`,{style:{padding:12},children:[`[component: `,e,`]`]})}var L=d.caretDown;function R({label:e,title:t,onOpen:n,on:r}){return(0,M.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,M.jsx)(`span`,{"aria-hidden":`true`,children:L})]})}function z({label:e,title:t,value:n,options:r,onChange:i}){let a=r.find(e=>e.value===n)?.label??n;return(0,M.jsxs)(`span`,{className:`web-chip web-chip--choice`,title:t??e,children:[`${e}: ${a===``?`default`:a}`,(0,M.jsx)(`span`,{"aria-hidden":`true`,children:L}),(0,M.jsx)(`select`,{"aria-label":e,value:n,onChange:e=>i(e.currentTarget.value),children:r.map(e=>(0,M.jsx)(`option`,{value:e.value,children:e.label},e.value))})]})}function ae({label:e,title:t,value:n,onChange:r}){return(0,M.jsx)(`button`,{type:`button`,className:`web-chip`,"data-on":n?`true`:`false`,"aria-pressed":n,title:t??e,onClick:()=>r(!n),children:e})}function B({label:e,title:t,value:n,placeholder:r,onChange:i,width:a}){return(0,M.jsxs)(`span`,{className:`web-chip web-chip--text`,title:t??e,children:[e,(0,M.jsx)(`input`,{"aria-label":e,value:n,placeholder:r??``,style:{width:a??110},onChange:e=>i(e.currentTarget.value)})]})}function oe({attachments:e,folder:t,onRemove:n}){return e.length===0?null:(0,M.jsx)(`div`,{className:`web-composer__attached`,children:e.map((e,r)=>(0,M.jsxs)(`span`,{className:`web-attachment`,title:T(e,t)??b(e),children:[(0,M.jsx)(`span`,{className:`web-attachment__icon`,"aria-hidden":`true`,children:y(e)}),(0,M.jsx)(`span`,{className:`web-attachment__label`,children:b(e)}),(0,M.jsx)(`button`,{type:`button`,className:`web-attachment__remove`,"aria-label":`Remove ${b(e)}`,onClick:()=>n(r),children:d.close})]},`${b(e)}-${r}`))})}function se({onClick:e}){return(0,M.jsx)(`button`,{type:`button`,className:`web-composer__add`,"aria-label":`Add context`,title:`Add context`,onClick:e,children:(0,M.jsx)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 12 12`,"aria-hidden":`true`,children:(0,M.jsx)(`path`,{d:`M6 1v10M1 6h10`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`})})})}function ce({attach:e,insert:t,upload:n}){let[r,i]=(0,N.useState)(null);return{dropping:r,onDragOver:e=>{let t=j(e.dataTransfer);(t||Array.from(e.dataTransfer.types).includes(`Files`))&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`,i(t&&e.shiftKey?`mention`:`attach`))},onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||i(null)},onDrop:r=>{i(null);let a=A(r.dataTransfer);if(a!==null){r.preventDefault();let n=S(a.uri,a.directory);if(!r.shiftKey){e(n);return}let i=`@${u(a.uri)}${a.directory?`/`:``}`;t(`${i} `),e(k(n,i));return}r.dataTransfer.files.length!==0&&(r.preventDefault(),n(r.dataTransfer.files))}}}var le=`$/ahp/composerFocus`,V=e=>typeof e==`object`&&e?e:{},H=e=>typeof e==`string`&&e!==``?e:void 0;function ue(e){let t=V(e).items;return(Array.isArray(t)?t:[]).map(e=>{let t=V(e),n=V(V(t.attachment)._meta),r=H(t.insertText)??``;return{insert:r,label:H(n.command)??r,detail:H(n.description),hint:H(n.argumentHint)}}).filter(e=>e.insert!==``)}var U=e=>e.map(e=>({insert:`/${e.name}`,label:`/${e.name}`,detail:e.description===``?void 0:e.description,hint:void 0}));function de(e,t,n,r=O){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:[r],when:`${le} == "${t}"`,run:e=>e.host?.replaceActiveToken(`${n.insert} `)})))}var fe=0,pe=260,me=[`/`,`@`],he=800;function ge(e){e!==null&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,pe)}px`)}function _e(e,t,n){return{text:e,origin:{kind:`user`},...t===void 0?{}:{model:{id:t}},...n.length===0?{}:{attachments:_(e,n)}}}var W=(0,N.memo)(function({chatUri:e,activeId:t,activeStart:i,queued:ee,steering:f,draft:p,lastModel:te,config:m,summary:h,send:g}){let _=a(),y=(r(`$/ahp/agents`)??[]).find(e=>e.provider===h.provider),b=(0,N.useMemo)(()=>ne(e),[e]),[S]=(0,N.useState)(()=>`composer-${++fe}`),A=h.workingDirectories?.[0],[j,P]=(0,N.useState)(()=>p?.text??``),[I,L]=(0,N.useState)(null),[z,ae]=(0,N.useState)(()=>p?.model?.id??te),[B,V]=(0,N.useState)(()=>p?.attachments??[]),H=(0,N.useRef)(null),U=t===void 0?void 0:{id:t,startedAt:i??``},pe=ee??[];(0,N.useEffect)(()=>ge(H.current),[j]);let W=(0,N.useRef)(!1);(0,N.useEffect)(()=>{if(!W.current)return;let t=window.setTimeout(()=>{let t=j.trim()===``&&B.length===0?void 0:_e(j,z,B);c(e,{type:`chat/draftChanged`,draft:t})},he);return()=>window.clearTimeout(t)},[j,z,B,e]);let G=(0,N.useCallback)(e=>{L(e),requestAnimationFrame(()=>{let t=H.current;t!==null&&(t.focus(),t.setSelectionRange(e,e))})},[]),K=(0,N.useCallback)(e=>{W.current=!0,V(t=>t.some(t=>x(t,e))?t:[...t,e])},[]),ve=(0,N.useRef)(null),ye=(0,N.useCallback)(async e=>{let t=await w(Array.from(e??[]));for(let e of t.attached)K(e);t.refused.length>0&&n(`Not attached`,{description:`Over 5 MB or unreadable: ${t.refused.join(`, `)}`})},[K]),q=ce({attach:K,insert:(0,N.useCallback)(e=>{let t=Y.current??J.current.length,n=J.current.slice(0,t),r=n===``||/\s$/.test(n)?``:` `;W.current=!0,P(`${n}${r}${e}${J.current.slice(t)}`),G(n.length+r.length+e.length)},[G]),upload:e=>void ye(e)}),J=(0,N.useRef)(j);J.current=j;let Y=(0,N.useRef)(I);Y.current=I;let be=(0,N.useCallback)(async()=>{let t=J.current;try{return(await s(`completions`,{kind:`userMessage`,channel:e,text:t,offset:Y.current??t.length})).items.map(e=>{let t=T(e.attachment,A);return{title:e.insertText.replace(/^@/,``),...t===void 0?{}:{description:t},onSelect:t=>{t.replaceActiveToken(`${e.insertText} `),K(k(e.attachment,e.insertText))}}})}catch{return[]}},[e,A,K]),[xe,Se]=(0,N.useState)([]);(0,N.useEffect)(()=>{let t=!0;return s(`completions`,{kind:`userMessage`,channel:e,text:`/`,offset:1}).then(e=>{t&&Se(ue(e))}).catch(()=>{t&&Se([])}),()=>{t=!1}},[e]),(0,N.useEffect)(()=>{let e=de(_,S,xe);return()=>e.dispose()},[_,S,xe]);let X=F({input:j,setInput:P,caretIndex:I,panelDataContext:b,slashSlot:O,prefixes:me,mentionProvider:be,onCaretChange:G}),Z=(0,N.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]),Ce=(0,N.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]),we=(0,N.useMemo)(()=>(y?.models??[]).map(e=>({id:e.id,name:e.name})),[y]),Q=(0,N.useRef)(null);Q.current={models:()=>we,model:()=>z,setModel:e=>{W.current=!0,ae(e)},options:()=>Z,setOption:(e,t)=>{c(h.resource,{type:`session/configChanged`,config:{[e]:t}})},running:()=>U!==void 0,stop:Ce,session:()=>h.resource,attach:K,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;W.current=!0,P(i),G(a)},upload:()=>ve.current?.click()},(0,N.useEffect)(()=>E(b,{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()}),[b]);let Te=Z.map(e=>e.key).join(`
|
|
2
|
-
`);(0,N.useEffect)(()=>{let e=C(_,Z);return()=>e.dispose()},[_,Te]);function Ee(e){let t=X.openCommand(e);G(t??H.current?.value.length??j.length)}function De(){P(``),V([]),W.current=!1,c(e,{type:`chat/draftChanged`,draft:void 0})}function $(e){let t=j.trim();if(t===``)return;let n=_e(t,z,B);g(U===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}),De()}let Oe=we.find(e=>e.id===z)?.name??z;return(0,M.jsxs)(`div`,{className:`web-composer`,children:[X.pickerNode===null?null:(0,M.jsx)(`div`,{className:`web-composer__picker`,children:X.pickerNode}),f===void 0&&pe.length===0?null:(0,M.jsxs)(`ul`,{className:`web-composer__queue`,children:[f===void 0?null:(0,M.jsxs)(`li`,{children:[(0,M.jsx)(`span`,{className:`web-chip`,"data-on":`true`,children:`Steering`}),(0,M.jsx)(`span`,{className:`web-composer__queued`,children:f.message.text}),(0,M.jsx)(o,{label:`Remove`,size:`sm`,onClick:()=>g({type:`chat/pendingMessageRemoved`,kind:`steering`,id:f.id})})]}),pe.map((e,t)=>(0,M.jsxs)(`li`,{children:[(0,M.jsxs)(`span`,{className:`web-chip`,children:[`Next `,t+1]}),(0,M.jsx)(`span`,{className:`web-composer__queued`,children:e.message.text}),(0,M.jsx)(o,{label:`Remove`,size:`sm`,onClick:()=>g({type:`chat/pendingMessageRemoved`,kind:`queued`,id:e.id})})]},e.id))]}),(0,M.jsxs)(`div`,{className:`web-composer__where`,children:[A===void 0?null:(0,M.jsx)(R,{label:`${d.folder} ${u(A)}`,title:`The folder this session works in`}),(0,M.jsx)(R,{label:`${d.agents} ${y?.displayName??h.provider}`,title:y?.description??`The agent running this session`})]}),(0,M.jsxs)(`div`,{className:`web-composer__box`,"data-drop":q.dropping??void 0,onDragOver:q.onDragOver,onDragLeave:q.onDragLeave,onDrop:q.onDrop,children:[(0,M.jsx)(oe,{attachments:B,folder:A,onRemove:e=>{W.current=!0,V(t=>t.filter((t,n)=>n!==e))}}),(0,M.jsx)(`div`,{className:`web-composer__bar`,children:(0,M.jsx)(`textarea`,{ref:H,className:`web-composer__text`,rows:1,value:j,"aria-label":`Message`,placeholder:U===void 0?`Message the agent, / for commands, @ to refer to a file`:`Queue a message for after this turn, or steer it`,onChange:e=>{W.current=!0,P(e.currentTarget.value),L(e.currentTarget.selectionStart)},onFocus:()=>_.store.set(le,S),onKeyUp:e=>L(e.currentTarget.selectionStart),onClick:e=>L(e.currentTarget.selectionStart),onKeyDown:e=>{if(!X.handleMenuKeyDown(e)){if(e.key===`Escape`&&U!==void 0){e.preventDefault(),Ce();return}e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),$(e.altKey?`steer`:`send`))}}})}),(0,M.jsxs)(`div`,{className:`web-composer__foot`,children:[(0,M.jsx)(se,{onClick:()=>Ee(`ahp.composer.attach`)}),(0,M.jsx)(`input`,{ref:ve,type:`file`,multiple:!0,hidden:!0,onChange:e=>{ye(e.currentTarget.files),e.currentTarget.value=``}}),(0,M.jsxs)(`div`,{className:`web-composer__chips`,children:[we.length===0?null:(0,M.jsx)(R,{label:`Model: ${Oe??`default`}`,title:`The model the next message goes to`,onOpen:()=>Ee(`ahp.composer.model`)}),Z.filter(ie).map(e=>(0,M.jsx)(R,{label:`${e.schema.title||e.key}: ${re(e)}`,title:e.schema.description??e.schema.title,...e.schema.type===`boolean`?{on:(e.value??e.schema.default)===!0}:{},...D(e.schema)?{onOpen:()=>Ee(v(e.key))}:{}},e.key))]}),U===void 0||j.trim()===``?null:(0,M.jsx)(o,{label:`Steer`,size:`sm`,title:`Alt+Enter steers`,onClick:()=>$(`steer`)}),U===void 0||j.trim()===``?null:(0,M.jsx)(o,{label:`Queue`,variant:`primary`,size:`sm`,title:`Enter queues`,onClick:()=>$(`send`)}),U===void 0?(0,M.jsx)(`button`,{type:`button`,className:`web-composer__round`,"aria-label":`Send`,title:`Enter sends, Shift+Enter breaks the line`,disabled:j.trim()===``,onClick:()=>$(`send`),children:d.send}):(0,M.jsx)(`button`,{type:`button`,className:`web-composer__round`,"aria-label":`Stop`,title:`Esc stops`,onClick:Ce,children:d.stop})]})]})]})});export{U as a,se as c,R as d,B as f,le as i,oe as l,F as m,ge as n,de as o,ae as p,_e as r,ce as s,W as t,z as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./emojis-7RT6GvLa.js";var r=t(),i=e(),a=1200;function o(e){let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.select();try{return document.execCommand(`copy`)}catch{return!1}finally{t.remove()}}function s({text:e,label:t=`Copy`,icon:s=n.copy}){let[c,l]=(0,r.useState)(!1),u=(0,r.useRef)(void 0);(0,r.useEffect)(()=>()=>window.clearTimeout(u.current),[]);let d=()=>{l(!0),window.clearTimeout(u.current),u.current=window.setTimeout(()=>l(!1),a)},f=()=>{if(navigator.clipboard===void 0){o(e)&&d();return}navigator.clipboard.writeText(e).then(d).catch(()=>{o(e)&&d()})},p=c?`Copied`:t;return(0,i.jsx)(`button`,{type:`button`,className:`web-copy`,"data-copied":c?`true`:`false`,title:p,"aria-label":p,onClick:f,children:c?n.check:s})}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{Z as i,c as a,it as o,o as s}from"./data-hUAVersf.js";import{n as c,t as l}from"./words-T8-D0K4W.js";import{i as u,s as d}from"./terminal-BPj7jGw5.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-UD2KGCy_.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(s),u=n(f),d=n(a)?.find(e=>e.resource===u),b=g(d===void 0?void 0:u,o),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,3 +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{D as i}from"./data-hUAVersf.js";import{n as a}from"./words-T8-D0K4W.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-eZAmDe3s.js";var d=t(),f=3;function p(e){return e===``?[]:(e.endsWith(`
|
|
2
|
-
`)?e.slice(0,-1):e).split(`
|
|
3
|
-
`)}function m(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function h(e){if(e.length===0)return[];let t=[],n=Array(e.length).fill(-1);for(let r=0;r<e.length;r+=1){let i=e[r],a=0,o=t.length;for(;a<o;){let n=a+o>>1;e[t[n]]<i?a=n+1:o=n}n[r]=a>0?t[a-1]:-1,t[a]=r}let r=[],i=t.length>0?t[t.length-1]:-1;for(;i>=0;)r.push(i),i=n[i];return r.reverse()}function g(e,t){let n=new Map;for(let t of e)n.set(t,(n.get(t)??0)+1);let r=new Map;for(let e of t)r.set(e,(r.get(e)??0)+1);let i=new Map;t.forEach((e,t)=>{n.get(e)===1&&r.get(e)===1&&i.set(e,t)});let a=[];return e.forEach((e,t)=>{let n=i.get(e);n!==void 0&&a.push({a:t,b:n})}),a}function _(e,t,n,r){let i=[];return e.forEach((e,t)=>i.push({kind:`del`,before:n+t+1,after:null,text:e})),t.forEach((e,t)=>i.push({kind:`add`,before:null,after:r+t+1,text:e})),i}var v=24;function y(e,t,n,r,i){if(e.length===0&&t.length===0)return[];if(m(e,t))return e.map((e,t)=>({kind:`context`,before:n+t+1,after:r+t+1,text:e}));if(e.length===0||t.length===0||i>=v)return _(e,t,n,r);let a=g(e,t);if(a.length===0)return _(e,t,n,r);let o=h(a.map(e=>e.b)).map(e=>a[e]);if(o.length===0)return _(e,t,n,r);let s=[],c=0,l=0;for(let a of o)s.push(...y(e.slice(c,a.a),t.slice(l,a.b),n+c,r+l,i+1)),s.push({kind:`context`,before:n+a.a+1,after:r+a.b+1,text:e[a.a]}),c=a.a+1,l=a.b+1;return s.push(...y(e.slice(c),t.slice(l),n+c,r+l,i+1)),s}function b(e,t,n=f){let r=y(p(e),p(t),0,0,0),i=r.map((e,t)=>e.kind===`context`?-1:t).filter(e=>e>=0);if(i.length===0)return[];let a=[];for(let e of i){let t=a[a.length-1];t!==void 0&&e-t.to<=n*2?t.to=e:a.push({from:e,to:e})}return a.map(e=>{let t=Math.max(0,e.from-n),i=Math.min(r.length-1,e.to+n),a=r.slice(t,i+1),o=a[0],s=o.before??o.after??1,c=o.after??o.before??1;return{beforeStart:a.some(e=>e.before!==null)?s:0,beforeCount:a.filter(e=>e.kind!==`add`).length,afterStart:a.some(e=>e.after!==null)?c:0,afterCount:a.filter(e=>e.kind!==`del`).length,lines:a}})}function x(e){return`@@ -${e.beforeCount===1?`${e.beforeStart}`:`${e.beforeStart},${e.beforeCount}`} +${e.afterCount===1?`${e.afterStart}`:`${e.afterStart},${e.afterCount}`} @@`}function S(e){let t=0,n=0;for(let r of e)for(let e of r.lines)e.kind===`add`?t+=1:e.kind===`del`&&(n+=1);return{added:t,removed:n}}var C=e(),w=async e=>e===void 0?``:(await i(e)).text;function T({file:e,before:t,after:i,changeset:f,change:p,review:m}){let h=n(),g=c(f),_=g.files.find(e=>e.id===p),v=_===void 0?[]:g.operations.filter(e=>l(e,`resource`)),[y,T]=(0,d.useState)(null);(0,d.useEffect)(()=>{let e=!0;return T(null),Promise.all([w(t),w(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,d.useMemo)(()=>y===null||`error`in y||y.before===null||y.after===null?[]:b(y.before,y.after),[y]),D=e===void 0?``:a(e),O=S(E),k=(0,C.jsxs)(`div`,{className:`web-file__head`,children:[(0,C.jsx)(`code`,{children:D}),y!==null&&!(`error`in y)?(0,C.jsxs)(`span`,{children:[(0,C.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,O.added]}),` `,(0,C.jsxs)(`span`,{className:`web-diff--remove`,children:[`-`,O.removed]}),t===void 0?` · new file`:i===void 0?` · deleted`:``]}):null,(0,C.jsxs)(`span`,{className:`web-file__actions`,children:[m===!0&&_!==void 0?(0,C.jsxs)(`label`,{className:`web-file__viewed`,children:[(0,C.jsx)(`input`,{type:`checkbox`,checked:_.reviewed,onChange:e=>g.review([_],e.target.checked)}),`Viewed`]}):null,_===void 0?null:v.map(e=>(0,C.jsx)(r,{label:`${u(e)} ${e.label}`,size:`sm`,disabled:String(e.status)===`running`,onClick:()=>void g.run(e,_)},e.id)),e===void 0||i===void 0?null:(0,C.jsx)(r,{label:`Open file`,size:`sm`,onClick:()=>void h.commands.execute(`ahp.openFile`,{uri:e})})]})]}),A=g.said===null?null:(0,C.jsx)(s,{tone:g.said.tone,message:g.said.text});return y===null?(0,C.jsxs)(`div`,{className:`web-file`,children:[k,A,(0,C.jsx)(o,{label:`Reading both sides`})]}):`error`in y?(0,C.jsxs)(`div`,{className:`web-file`,children:[k,A,(0,C.jsx)(s,{tone:`danger`,title:`Not readable`,message:y.error})]}):y.before===null||y.after===null?(0,C.jsxs)(`div`,{className:`web-file`,children:[k,A,(0,C.jsx)(`p`,{className:`web-note`,children:`This file is not text.`})]}):E.length===0?(0,C.jsxs)(`div`,{className:`web-file`,children:[k,A,(0,C.jsx)(`p`,{className:`web-note`,children:`No changes.`})]}):(0,C.jsxs)(`div`,{className:`web-file`,children:[k,A,(0,C.jsx)(`div`,{className:`web-file__body`,children:(0,C.jsx)(`table`,{className:`web-code web-diff`,children:(0,C.jsx)(`tbody`,{children:E.map((e,t)=>[(0,C.jsx)(`tr`,{className:`web-diff__hunk`,children:(0,C.jsx)(`td`,{colSpan:3,children:x(e)})},`h${t}`),...e.lines.map((e,n)=>(0,C.jsxs)(`tr`,{"data-kind":e.kind,children:[(0,C.jsx)(`td`,{className:`web-code__number`,children:e.before??``}),(0,C.jsx)(`td`,{className:`web-code__number`,children:e.after??``}),(0,C.jsxs)(`td`,{className:`web-code__text`,children:[e.kind===`add`?`+`:e.kind===`del`?`-`:` `,e.text]})]},`${t}:${n}`))])})})})]})}export{T as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{d as a,i as o,n as s,nt as c,v as l}from"./data-hUAVersf.js";import{a as u,n as d}from"./words-T8-D0K4W.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{c as h,d as g,l as _,u as v}from"./index-yhQX4tVS.js";import{t as y}from"./channel-UD2KGCy_.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(a,c),E=n(`$/ahp/agents`)??[],D=n(s),O=n(o),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??v(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=g(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.`:h(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=_(M,k?.definition);if(k===void 0){let n=`ahp-automation:/${u()}`;l(a,{type:`automation/createRequested`,resource:n,definition:e}),t.surfaces.close(`automation:new`),t.commands.execute(`ahp.openAutomation`,{resource:n})}else l(a,{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{r as n}from"./notify-BQ9fSOfy.js";import{t as r}from"./useStore-BQkzWMs-.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{d as a,k as o,n as s,nt as c}from"./data-hUAVersf.js";import{t as l}from"./emojis-7RT6GvLa.js";import{t as u}from"./Spinner-B-iOhBZq.js";import{t as d}from"./Alert-CHZkhmDE.js";import{_ as f,f as p,g as m,m as h,p as g,v as _}from"./index-yhQX4tVS.js";import{t as v}from"./ExplorerList-DfesRs43.js";import{t as y}from"./channel-UD2KGCy_.js";import{i as b,n as x}from"./actions-BzJiPQuh.js";var S=t(),C=e(),w={running:`working`,failed:`failed`,on:`ok`,off:`off`},T={running:`Running`,failed:`Last run failed`,on:`On`,off:`Off`},E={pending:`waiting`,running:`running`,completed:`done`,failed:`failed`,cancelled:`stopped`},D=new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}),O=e=>{if(e===void 0)return``;let t=new Date(e);return Number.isNaN(t.getTime())?``:D.format(t)},k=e=>n(`The automation could not run`,e);function A(){let e=i(),{state:t,error:n}=y(a,c),D=r(s),A=r(_),j=t=>void e.commands.execute(`ahp.openAutomation`,{resource:t}),M=t=>void e.commands.execute(`ahp.editAutomation`,{resource:t}),N=(0,S.useMemo)(()=>[...t?.entries??[]].sort((e,t)=>m(e).localeCompare(m(t))).map(e=>{let t=h(e),n=g(e)[0],r=n===void 0?void 0:p(n),i=e.definition.session.provider,a=e.runCount??e.runs.length;return{key:e.resource,dot:w[t],dotLabel:T[t],title:m(e),...e.nextRunAt===void 0||!e.definition.enabled?{}:{time:O(e.nextRunAt)},lines:[[f(e),i].filter(e=>e!==void 0).join(` · `),r===void 0?`Never run`:`${a} ${a===1?`run`:`runs`} \u{00B7} last ${E[r.status]??r.status} ${O(r.at)}`],menu:x(e,()=>j(e.resource),()=>M(e.resource)),...e.operations.map(String).includes(`run`)?{action:{icon:l.run,label:`Run now`,run:()=>void b(e).catch(k)}}:{}}}),[t]),P=n===null?t===void 0?(0,C.jsx)(u,{label:`Reading the automations`}):N.length===0?(0,C.jsx)(`p`,{className:`web-note web-explorer__empty`,children:`No automations yet.`}):null:(0,C.jsx)(d,{tone:`danger`,title:`No automations`,message:n});return(0,C.jsx)(v,{title:`Automations`,actions:[...D?.create===void 0?[]:[{icon:`+`,label:`New automation`,run:()=>void e.commands.execute(`ahp.newAutomation`)}],{icon:l.reload,label:`Reload`,run:()=>void o(a)}],rows:N,selected:A??null,onOpen:j,notice:P,filterLabel:`Filter automations`})}export{A as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{c as a,it as o,k as s}from"./data-hUAVersf.js";import{o as c}from"./words-T8-D0K4W.js";import{t as l}from"./emojis-7RT6GvLa.js";import{t as u}from"./ContextMenu-BV1gdog0.js";import{t as d}from"./Spinner-B-iOhBZq.js";import{t as f}from"./Alert-CHZkhmDE.js";import{t as ee}from"./Tree-fxC7yDSR.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{l as ne,s as re}from"./viewers-MssMDn0e.js";import{t as ie}from"./channel-UD2KGCy_.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-eZAmDe3s.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(a)?.find(e=>e.resource===t),c=ie(t,o),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 s(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};
|
|
@@ -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"./data-hUAVersf.js";import{t as i}from"./state-DRVsnGrf.js";import{t as a}from"./ExplorerList-DfesRs43.js";import{a as o,i as s}from"./words-CyqfIDyJ.js";var c=t(),l=e();function u(){let e=r(),t=n(`$/ahp/agents`)??[],u=n(`$/ahp/sessions`)??[],d=n(i),f=t=>void e.commands.execute(`ahp.openAgent`,{provider:t}),p=t=>void e.commands.execute(`ahp.newSession`,{provider:t}),m=(0,c.useMemo)(()=>t.map(e=>{let t=u.filter(t=>t.provider===e.provider).length,n=o(e).some(e=>e.required);return{key:e.provider,dot:`ok`,dotLabel:`Offered`,title:e.displayName,lines:[[s(e),t===1?`1 session`:`${t} sessions`,n?`needs sign-in`:void 0].filter(e=>e!==void 0).join(` · `),...e.description===``?[]:[e.description]],menu:[{title:`Open`,onSelect:t=>{t.closeMenu(),f(e.provider)}},{title:`New session`,onSelect:t=>{t.closeMenu(),p(e.provider)}}]}}),[t,u]);return(0,l.jsx)(a,{title:`Agents`,actions:[],rows:m,selected:d??null,onOpen:f,notice:m.length===0?(0,l.jsx)(`p`,{className:`web-note web-explorer__empty`,children:`This server offers no agent.`}):null,filterLabel:`Filter agents`})}export{u as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{l as n,r}from"./notify-BQ9fSOfy.js";import{t as i}from"./useStore-BQkzWMs-.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{A as o,G as s,J as c,Y as l,c as u,j as d,q as f,r as p,v as m}from"./data-hUAVersf.js";import{n as h}from"./words-T8-D0K4W.js";import{t as g}from"./emojis-7RT6GvLa.js";import{t as _}from"./Spinner-B-iOhBZq.js";import{t as v}from"./Alert-CHZkhmDE.js";import{t as y}from"./state-KGSq646f.js";import{t as b}from"./ExplorerList-DfesRs43.js";var x=t(),S=[{id:`none`,label:`No groups`},{id:`folder`,label:`Group by folder`},{id:`status`,label:`Group by status`},{id:`agent`,label:`Group by agent`}],C=[{key:`input`,label:`Needs you`},{key:`running`,label:`Running`},{key:`error`,label:`Failed`},{key:`unread`,label:`Unread`},{key:`idle`,label:`Idle`},{key:`archived`,label:`Archived`}];function w(e){if(c(e.status))return C[5];let t=f(e.status);return t===`idle`&&!l(e.status)?C[3]:C.find(e=>e.key===t)}function T(e,t,n){switch(t){case`none`:return;case`status`:return w(e);case`agent`:return{key:e.provider,label:n(e.provider)};case`folder`:{let t=e.workingDirectories?.[0];return t===void 0?{key:``,label:`No folder`}:{key:t,label:h(t)}}}}function E(e,t,n){if(n===`none`)return[...e];let r=new Map;n===`status`&&C.forEach((e,t)=>r.set(e.key,t));for(let n of e){let e=t(n)?.key??``;r.has(e)||r.set(e,r.size+C.length)}return e.map((e,n)=>({item:e,index:n,rank:r.get(t(e)?.key??``)})).sort((e,t)=>e.rank-t.rank||e.index-t.index).map(e=>e.item)}var D=e(),O=`ahpd-web.session-grouping`;function k(){try{let e=localStorage.getItem(O);return S.some(t=>t.id===e)?e:`none`}catch{return`none`}}function A(e){try{localStorage.setItem(O,e)}catch{}}var j=new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`}),M=new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`});function N(e,t=new Date){let n=new Date(e);return Number.isNaN(n.getTime())?``:(n.toDateString()===t.toDateString()?j:M).format(n)}var P={input:`attention`,running:`working`,error:`failed`,idle:`quiet`},F=e=>h(e).replace(/\/+$/,``).split(`/`).pop()??e;function I(e,t){let i=l(e.status),a=c(e.status),o=t=>m(e.resource,t);return[{title:`Open`,onSelect:e=>{e.closeMenu(),t()}},{title:`Rename`,onSelect:t=>{t.closeMenu();let n=window.prompt(`Rename the session`,e.title)?.trim();n!==void 0&&n!==``&&n!==e.title&&o({type:`session/titleChanged`,title:n})}},{title:i?`Mark as unread`:`Mark as read`,onSelect:e=>{e.closeMenu(),o({type:`session/isReadChanged`,isRead:!i})}},{title:a?`Unarchive`:`Archive`,onSelect:e=>{e.closeMenu(),o({type:`session/isArchivedChanged`,isArchived:!a})}},{title:`Copy link`,group:`more`,onSelect:t=>{t.closeMenu(),navigator.clipboard?.writeText(e.resource).catch(()=>void 0)}},{title:`Delete`,group:`more`,color:`red`,onSelect:t=>{t.closeMenu(),n({title:`Delete "${e.title||`Untitled`}"?`,body:`Its history goes with it.`,confirmLabel:`Delete`,tone:`danger`}).then(t=>{t&&d(`disposeSession`,{channel:e.resource}).catch(e=>r(`The session could not be deleted`,e))})}}]}function L(){let e=a(),t=i(p),n=i(u),r=i(`$/ahp/agents`)??[],d=i(y),[m,h]=(0,x.useState)(!1),[C,w]=(0,x.useState)(k),O=e=>{w(e),A(e)},[j,M]=(0,x.useState)(!1),L=t=>void e.commands.execute(`ahp.openSession`,{resource:t}),R=(0,x.useMemo)(()=>{let e=e=>r.find(t=>t.provider===e)?.displayName??e;return E((n??[]).filter(e=>m||!c(e.status)),t=>T(t,C,e),C).map(t=>{let n=f(t.status),r=n===`idle`&&!l(t.status),i=e(t.provider),a=T(t,C,e),o=t.workingDirectories?.[0],u=[i,o===void 0?void 0:F(o)].filter(e=>e!==void 0).join(` · `),d=t.changes,p=d!==void 0&&(d.additions??0)+(d.deletions??0)>0?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,d.additions??0]}),` `,(0,D.jsxs)(`span`,{className:`web-diff--remove`,children:[`-`,d.deletions??0]}),d.files===void 0?``:` \u{00B7} ${d.files} files`]}):void 0,m=n===`idle`?void 0:`${s[n]}${t.activity===void 0||t.activity===``?``:` \u{00B7} ${t.activity}`}`;return{key:t.resource,dot:c(t.status)?`off`:r?`fresh`:P[n],dotLabel:c(t.status)?`Archived`:r?`Unread`:s[n],title:t.title===``?`Untitled`:t.title,time:N(t.modifiedAt),lines:[u,p,m].filter(e=>e!==void 0),menu:I(t,()=>L(t.resource)),strong:r,...a===void 0?{}:{group:a}}})},[n,r,m,C]),z=()=>{M(!0),o().catch(()=>void 0).finally(()=>M(!1))},B=t?.status===`failed`?(0,D.jsx)(v,{tone:`danger`,title:`Not connected`,message:t.error??`The server refused the connection.`}):t?.status!==`connected`&&n===void 0?(0,D.jsx)(_,{label:`Connecting to the server`}):R.length===0?(0,D.jsx)(`p`,{className:`web-note`,children:m?`No sessions.`:`No sessions yet.`}):null;return(0,D.jsx)(b,{title:`Sessions`,actions:[{icon:`+`,label:`New session`,run:()=>void e.commands.execute(`ahp.newSession`)},{icon:g.reload,label:j?`Reloading`:`Reload`,run:z,busy:j},{icon:g.archived,label:m?`Hide archived`:`Show archived`,run:()=>h(!m),on:m},{icon:g.group,label:`Group sessions`,on:C!==`none`,menu:S.map(e=>({title:e.label,...e.id===C?{description:`Current`}:{},onSelect:t=>{t.closeMenu(),O(e.id)}}))}],rows:R,selected:d??null,onOpen:L,notice:B,filterLabel:`Filter sessions`})}export{L as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{n as i}from"./sessions-8PScJEDe.js";import{c as a,f as o,i as ee,j as s,r as c}from"./data-hUAVersf.js";import{n as l}from"./words-T8-D0K4W.js";import{t as u}from"./emojis-7RT6GvLa.js";import{t as d}from"./ContextMenu-BV1gdog0.js";import{t as te}from"./Spinner-B-iOhBZq.js";import{t as f}from"./Alert-CHZkhmDE.js";import{t as p}from"./Tree-fxC7yDSR.js";import{a as ne,d as m,f as h,m as g,p as _}from"./folder-path-CTpCmycG.js";import{c as v,l as y}from"./viewers-MssMDn0e.js";import{a as b,i as x,o as S,r as C,s as w,t as T}from"./index-yhQX4tVS.js";import{r as E}from"./drag-ruzgQUFW.js";var D=t(),O=e(),re=`$/modus/class`;function ie(e){let t=l(e);return(0,O.jsx)(`span`,{title:t,children:t.replace(/\/+$/,``).split(`/`).pop()||t})}function k(){let e=r(),t=n(c),l=n(ee),k=n(a),A=n(C),j=n(ne),M=n(x),[N,P]=(0,D.useState)([]),F=(0,D.useMemo)(()=>g(l,k??[],N,j??[]),[l,k,N,j]),[I,L]=(0,D.useState)(new Map),[R,z]=(0,D.useState)(new Set),[B,V]=(0,D.useState)(null),[H,U]=(0,D.useState)(null),W=(0,D.useCallback)((e,t=!1)=>{t||L(t=>new Map(t).set(e,`loading`)),s(`resourceList`,{channel:o,uri:e}).then(t=>L(n=>new Map(n).set(e,_(t.entries)))).catch(()=>L(t=>new Map(t).set(e,`failed`)))},[]),G=(0,D.useCallback)(e=>{for(let t of e)!R.has(t)&&!I.has(t)&&W(t);z(e)},[R,I,W]),K=F[0]?.uri;(0,D.useEffect)(()=>{K!==void 0&&!I.has(K)&&G(new Set([...R,K]))},[K]);let q=(0,D.useRef)(null);(0,D.useEffect)(()=>{if(A==null)return;e.store.set(C,null);let t=m(F.map(e=>e.uri),A),[n]=t;n!==void 0&&!F.some(e=>e.uri===n)&&P(e=>[...e,n]),G(new Set([...R,...t]));let r=t[t.length-1]??null;V(r),q.current=r},[A]);let J=(0,D.useRef)(null);(0,D.useEffect)(()=>{let e=q.current;if(e===null)return;let t=Array.from(J.current?.querySelectorAll(`[data-key]`)??[]).find(t=>t.dataset.key===e);t!==void 0&&(t.scrollIntoView({block:`center`}),q.current=null)},[I,B]),(0,D.useEffect)(()=>{for(let e of M?.uris??[])I.has(e)&&W(e,!0)},[M]);let Y=()=>{L(new Map);for(let e of R)W(e)},X=async()=>{let t=await b(e);t!==null&&!I.has(t)&&G(new Set([...R,t]))},Z=[{title:`Reload`,icon:u.reload,onSelect:e=>{e.closeMenu(),Y()}},{title:`Add folder`,icon:u.folder,onSelect:e=>{e.closeMenu(),X()}}],Q=(t,n)=>{e.commands.execute(`ahp.openFile`,{uri:t,...n===void 0?{}:{viewer:n}}),i(e,e.store.get(re)??`large`)},ae=t=>{let n=y(e,t);return[{title:`Open`,icon:u.open,onSelect:e=>{e.closeMenu(),Q(t)}},...n.length<2?[]:n.map(e=>({title:`Open with ${v(e)}`,...e.opens?.icon===void 0?{}:{icon:e.opens.icon},onSelect:n=>{n.closeMenu(),Q(t,e.component)}}))]},$=(0,D.useRef)(!1),oe=e=>{$.current=!1,e.preventDefault(),U({x:e.clientX,y:e.clientY})},se=(0,D.useMemo)(()=>{let e=(t,n,r)=>{let i=I.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=h(t,n.name);return n.type===`directory`?e(r,n.name):{key:r,label:n.name,icon:T(r),draggable:!0,data:{uri:r,directory:!1}}});return{key:t,label:n,icon:u.folder,draggable:!0,data:{uri:t,directory:!0},children:a,...r===void 0?{}:{trailing:(0,O.jsx)(`span`,{className:`web-folders__tag`,children:r})}}};return F.map(t=>e(t.uri,ie(t.uri),t.isDefault?`default`:void 0))},[F,I]);return t?.status!==`connected`&&F.length===0?t?.status===`failed`?(0,O.jsx)(f,{tone:`danger`,title:`Not connected`,message:t.error??`The server refused the connection.`}):(0,O.jsx)(te,{label:`Connecting to the server`}):(0,O.jsxs)(`div`,{className:`web-explorer`,children:[(0,O.jsxs)(`div`,{className:`web-explorer__title`,children:[(0,O.jsx)(`span`,{children:`Explorer`}),(0,O.jsx)(`span`,{className:`web-explorer__actions`,children:(0,O.jsx)(`button`,{type:`button`,className:`web-explorer__action`,title:`Refresh`,"aria-label":`Refresh`,onClick:Y,children:(0,O.jsx)(`span`,{className:`web-explorer__icon`,children:u.reload})})})]}),(0,O.jsxs)(`div`,{className:`web-explorer__scroll`,ref:J,onContextMenuCapture:()=>{$.current=!0},onContextMenu:oe,children:[F.length===0?(0,O.jsx)(`p`,{className:`web-note web-explorer__empty`,children:`The server names no folder yet. Start a session in one.`}):null,(0,O.jsx)(p,{nodes:se,selectedKey:B,expanded:R,onExpandedChange:G,contextMenuSlot:S,contextFor:e=>({[w]:e.data===void 0?null:{uri:e.data.uri,directory:e.data.directory,added:F.some(t=>t.uri===e.key&&t.added),root:F.some(t=>t.uri===e.key)}}),contextExtraItems:e=>e.data===void 0?Z:e.data.directory?[]:ae(e.data.uri),onSelect:e=>{if($.current){$.current=!1,e.data!==void 0&&V(e.key);return}if(e.data!==void 0){if(V(e.key),e.data.directory){let t=new Set(R);t.delete(e.key)||t.add(e.key),G(t)}else Q(e.data.uri)}},onDragStart:(e,t)=>{t.data!==void 0&&E(e.dataTransfer,t.data)}})]}),H===null?null:(0,O.jsx)(d,{spec:{items:Z},x:H.x,y:H.y,onClose:()=>U(null)})]})}export{k as default};
|