@ahpd/web 0.3.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -20
- 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-ai2cgVXn.js +1 -0
- package/dist/app/assets/Alert-BhdRA0LL.js +1 -0
- package/dist/app/assets/AudioPage-g-XDUEDw.js +1 -0
- package/dist/app/assets/Bood-Dg-XtOTh.js +1 -0
- package/dist/app/assets/BotLayer-DBe4Fyhe.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-G86xI_6j.js +1 -0
- package/dist/app/assets/Composer-DYocj0Ot.js +2 -0
- package/dist/app/assets/{ContextMenu-BV1gdog0.js → ContextMenu-DlF_3KO_.js} +1 -1
- package/dist/app/assets/CopyButton-BSesWpVW.js +1 -0
- package/dist/app/assets/{DataTable-8woVlU4S.js → DataTable-BwoG_VY8.js} +1 -1
- package/dist/app/assets/Details-CH_RhTnb.js +1 -0
- package/dist/app/assets/DiffPage-BWZV83j-.js +3 -0
- package/dist/app/assets/Edit-C2ayFdz3.js +1 -0
- package/dist/app/assets/Edit-nBofGkbp.js +1 -0
- package/dist/app/assets/Explorer-8HHRQU3j.js +1 -0
- package/dist/app/assets/Explorer-B4eWCDt-.js +1 -0
- package/dist/app/assets/Explorer-CcJsHUFk.js +1 -0
- package/dist/app/assets/Explorer-D4cvjXRf.js +1 -0
- package/dist/app/assets/Explorer-D5NpZ_El.js +1 -0
- package/dist/app/assets/Explorer-D5UOVCR4.js +1 -0
- package/dist/app/assets/Explorer-Dbqg4t3H.js +1 -0
- package/dist/app/assets/Explorer-Dg4dz1Y8.js +1 -0
- package/dist/app/assets/Explorer-Dy6T9Nil.js +1 -0
- package/dist/app/assets/Explorer-DzRNgpV9.js +1 -0
- package/dist/app/assets/ExplorerList-DU80dY_f.js +1 -0
- package/dist/app/assets/Field-jnYjqqvV.js +1 -0
- package/dist/app/assets/FilePage-Cqa5Gu-X.js +1 -0
- package/dist/app/assets/Filter-C4R4cZ-3.js +1 -0
- package/dist/app/assets/HeaderAction-5M2x4m1w.css +1 -0
- package/dist/app/assets/HeaderAction-Bs-AE__U.js +1 -0
- package/dist/app/assets/HostLines-CtIqw3A0.js +1 -0
- package/dist/app/assets/HostSwitcher-CBjT2TTb.js +1 -0
- package/dist/app/assets/ImagePage-C0fdIV7s.js +1 -0
- package/dist/app/assets/Info-DPV0HZOg.js +1 -0
- package/dist/app/assets/LocaleToggle-Bnt4p8rr.js +1 -0
- package/dist/app/assets/LogPage-C3fGac0t.js +1 -0
- package/dist/app/assets/LoginForm-DxyP1mZO.js +1 -0
- package/dist/app/assets/MarkdownPage-qhogl5sV.js +1 -0
- package/dist/app/assets/Modal-xWzwLA8s.js +1 -0
- package/dist/app/assets/MountTitle-BYR1nX0U.js +1 -0
- package/dist/app/assets/NamedPage-CoZEwEtx.js +1 -0
- package/dist/app/assets/New-BiFpU6ut.js +4 -0
- package/dist/app/assets/New-GW4BjzMj.js +1 -0
- package/dist/app/assets/OpenEditors-DN3NPzWo.js +1 -0
- package/dist/app/assets/Page-1jvuUZH2.js +1 -0
- package/dist/app/assets/Page-B1rQUqL-.js +1 -0
- package/dist/app/assets/Page-By2cWeM8.js +3 -0
- package/dist/app/assets/Page-DKXwLUAx.css +1 -0
- package/dist/app/assets/Page-JyFk5XMA.js +1 -0
- package/dist/app/assets/Page-fKKaK_Dn.js +1 -0
- package/dist/app/assets/PageAlert-B8ulCXV4.js +1 -0
- package/dist/app/assets/Pagination-Bt7IC1tA.js +1 -0
- package/dist/app/assets/PoolPage-cZ6yGgGG.js +1 -0
- package/dist/app/assets/PortaLock-DD-lS5R3.js +2 -0
- package/dist/app/assets/RolePage-C4v5v12n.js +3 -0
- package/dist/app/assets/SchemaForm-byhtwSG1.css +1 -0
- package/dist/app/assets/SchemaForm-uhkLDWDC.js +1 -0
- package/dist/app/assets/Settings-CAzrumeA.js +1 -0
- package/dist/app/assets/SigillumGate-CXCvctfp.js +1 -0
- package/dist/app/assets/SingleLayout-Bi4nK6CY.js +1 -0
- package/dist/app/assets/SpatialLayout-QbjNYiGj.js +1 -0
- package/dist/app/assets/Spinner-CBEPv0eM.js +1 -0
- package/dist/app/assets/SplitLayout-tQayoihg.js +1 -0
- package/dist/app/assets/StackLayout-B0qUSU7d.js +1 -0
- package/dist/app/assets/Start-NxBne1u6.js +1 -0
- package/dist/app/assets/TabLayout-B_pbKMRi.js +1 -0
- package/dist/app/assets/TabPanelLayout-DKamepPL.js +1 -0
- package/dist/app/assets/TerminalPage-AG2B5hHZ.js +18 -0
- package/dist/app/assets/ThemeModeToggle-DmEp0Qr8.js +1 -0
- package/dist/app/assets/ThemePicker-Bj_ObpXS.js +1 -0
- package/dist/app/assets/Tree-DoJ8zO-u.js +1 -0
- package/dist/app/assets/UserPage-C0Vk5NUV.js +1 -0
- package/dist/app/assets/VideoPage-CKx-gxgb.js +1 -0
- package/dist/app/assets/WindowControls-BuiQSjfa.js +1 -0
- package/dist/app/assets/actions-CFnmwNqb.js +1 -0
- package/dist/app/assets/actions-CkDFjYZd.js +1 -0
- package/dist/app/assets/ahpw-FhxegLNr.svg +8 -0
- package/dist/app/assets/changeset-FRFDlNj7.js +1 -0
- package/dist/app/assets/channel-BWOXaftf.js +3 -0
- package/dist/app/assets/{clicks-DIh3kBLi.js → clicks-BeeNCvCP.js} +1 -1
- package/dist/app/assets/composer-commands-CzjP_L_C.js +2 -0
- package/dist/app/assets/data-DsJQo1Qk.js +3 -0
- package/dist/app/assets/{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/drag-CxTqzQcr.js +1 -0
- package/dist/app/assets/emojis-B4zHbUyk.js +1 -0
- package/dist/app/assets/form-Bw0484oP.js +2 -0
- package/dist/app/assets/grouping-BZNQYyEm.js +1 -0
- package/dist/app/assets/hosts-A0gEDScb.js +3 -0
- package/dist/app/assets/index-DJ3IEy30.css +1 -0
- package/dist/app/assets/index-ddqm5vYD.js +19 -0
- package/dist/app/assets/label-hTY0RCEf.js +1 -0
- package/dist/app/assets/locales-DOA2j2AT.js +3 -0
- package/dist/app/assets/media-BFQqiLAd.js +1 -0
- package/dist/app/assets/notify-B2F6UAgq.js +1 -0
- package/dist/app/assets/pick-CEYUa4kK.js +1 -0
- package/dist/app/assets/pins-DhjQhJuu.js +1 -0
- package/dist/app/assets/save-file-CirO0l-u.js +1 -0
- package/dist/app/assets/save-zwMG_vNN.js +1 -0
- package/dist/app/assets/sessions-DxQFcZ2M.js +2 -0
- package/dist/app/assets/state-DQKzjLgu.js +1 -0
- package/dist/app/assets/terminal-Ctk6FYnN.js +1 -0
- package/dist/app/assets/text-D6GxOCYM.js +1 -0
- package/dist/app/assets/trust-ask-ewG_CvW8.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--ctbhTPt.js +1 -0
- package/dist/app/assets/words-1m-GRHoT.js +2 -0
- package/dist/app/assets/words-D8X2_Vc_.js +1 -0
- package/dist/app/index.html +37 -26
- package/dist/embed/index.d.ts +17 -4
- package/dist/embed/index.js +4 -0
- 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 +5 -3
- package/dist/app/ahpw.svg +0 -8
- 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/SigillumGate-Bq_GLDvI.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/VideoPage-Cz7g_2E1.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/channel-UD2KGCy_.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/drag-ruzgQUFW.js +0 -1
- package/dist/app/assets/emojis-7RT6GvLa.js +0 -1
- package/dist/app/assets/folder-path-CTpCmycG.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
- package/dist/app/assets/words-T8-D0K4W.js +0 -1
|
@@ -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,3 @@
|
|
|
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`,host:`Host`},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`,computers:`Computers`,bots:`Bots`,users:`Users`,teams:`Teams`,usage:`Usage`},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`,hostOptions:`Options for {host}`,info:`Info`,settings:`Settings`,manage:`Edit host`},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`,addFolderOn:`{host}: 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`},gone:`This file is no longer there.`,readRefused:`The server does not let you read this file.`},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`,newOn:`New terminal on`},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}`},status:`Show by status`,group:`Group automations`,sort:`Sort automations`},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.`,host:`Host`,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`},group:{none:`No groups`,host:`Host`,status:`Status`,next:`Next run`},sort:{name:`Name`,next:`Next run`,last:`Last run`},next:{now:`Now`,overdue:`Overdue`,today:`Today`,tomorrow:`Tomorrow`,later:`Later`,none:`Not scheduled`},status:{all:`All`,running:`Running`,on:`On`,off:`Off`,failed:`Failed`}},computers:{commands:{show:`Show computers`,new:`New computer`,open:`Open computer`},explorer:{title:`Computers`,filter:`Filter computers`,status:`Show by state`,group:`Group computers`,empty:`No computers yet.`,notServed:`No host here serves computers.`},group:{none:`No groups`,host:`Host`,state:`State`},status:{all:`All`,running:`Running`,stopped:`Stopped`,problem:`Problems`},standing:{running:`running`,stopped:`stopped`,problem:`problem`,oom:`out of memory`},notices:{none:`No computers`,reading:`Reading the computers`,gone:`This computer is gone.`,oom:`The machine was stopped because it ran out of memory.`},actions:{open:`Open`,start:`Start`,stop:`Stop`,restart:`Restart`,remove:`Remove`,removeTitle:`Remove {name}?`,removeBody:`The machine and what it holds are deleted. Mounted host folders stay.`,copyName:`Copy name`,failed:`The host did not do that`},facts:{image:`Image`,destination:`Destination`,command:`Command`,workdir:`Working directory`,network:`Network`,cores:`CPUs`,memoryLimit:`Memory limit`,exitCode:`Exit code`,started:`Started`,created:`Created`,container:`Container`,pid:`Process`},usage:{cpu:`CPU {percent}%`,cpuOf:`CPU {percent}% of {cores}`,memory:`Memory {used} of {limit} ({percent}%)`,pids:`Processes`,network:`Network`,disk:`Disk`},page:{usage:`Use`,mounts:`Mounts`,readOnly:`read only`,record:`What the runtime says`},new:{host:`Host`,name:`Name`,nameHint:`The machine is known by this name; it cannot change later.`,nameSlash:`A name holds no / \\ or ?.`,nameDots:`A name is not . or ..`,noCreate:`This host does not let you make computers.`,create:`Create`,cancel:`Cancel`}},bots:{commands:{show:`Show bots`,new:`New bot`,open:`Open bot`,edit:`Edit bot`},editTitle:`Edit {name}`,explorer:{title:`Bots`,filter:`Filter bots`,empty:`No bots yet.`,notServed:`No host here serves bots.`},notices:{none:`No bots`,reading:`Reading the bots`,gone:`This bot is gone.`},actions:{open:`Open`,chat:`Open chat`,edit:`Edit`,delete:`Delete`,deleteTitle:`Delete {name}?`,deleteBody:`The bot is deleted, and its name cannot be given to another bot on this host.`,failed:`The host did not do that`},facts:{labels:`Labels`,owner:`Owner`,agent:`Agent`,model:`Model`,computer:`Computer`,workspace:`Workspace`,created:`Created`,changed:`Changed`,instructions:`Instructions`},edit:{color:`Colour`,body:`Body`,host:`Host`,name:`Name`,owner:`Owner`,ownerHint:`Who the bot belongs to.`,ownerMe:`Me`,ownerHost:`This host`,ownerKept:`A bot keeps its owner.`,labels:`Labels`,labelsHint:`Separated by commas.`,description:`Description`,instructions:`Instructions`,instructionsHint:`What the bot is told in its first chat.`,instructionsLater:`A change reaches the next chats, not the first one already sent.`,create:`Create`,save:`Save`,cancel:`Cancel`,bodyName:`Body name`,bodyUnknown:`bood has no body by that name yet, so it is drawn as a square.`},colors:{red:`Red`,orange:`Orange`,yellow:`Yellow`,green:`Green`,teal:`Teal`,blue:`Blue`,purple:`Purple`,pink:`Pink`,brown:`Brown`,grey:`Grey`,black:`Black`},layer:{say:`Say something to {name}`,send:`Send`,more:`{count} more bots`},chat:{cannot:`You can't chat with this bot.`,noHost:`This host does not run bot chats yet.`,opening:`Opening the chat…`,failed:`Could not open the chat`,reading:`Reading the chat`,working:`{name} is working`,noReply:`{name} finished without a reply`,empty:`Say something to {name}.`,download:`Save {name}`,message:`Message {name}`}},users:{explorer:{title:`Users`,users:`Users`,roles:`Roles`,filter:`Filter users and roles`,empty:`No users yet.`,notServed:`No host here lists its users.`},notices:{none:`No users`,reading:`Reading the users`,readOnly:`This host does not let you change these.`},commands:{new:`New`,newUser:`New user`,newRole:`New role`,show:`Show users`,openUser:`Open user`,openRole:`Open role`},actions:{open:`Open`,delete:`Delete`,failed:`The host did not do that`,cancel:`Cancel`,discard:`Discard changes`},user:{deleteTitle:`Delete {id}?`,deleteBody:`They can no longer sign in to this host.`,gone:`This user is gone.`,id:`Id`,idHint:`How they sign in and how the host names them. It cannot be changed later.`,roles:`Roles`,noRoles:`This host defines no roles.`,memberships:`Memberships`,noMemberships:`None`,dropMembership:`Remove {membership}`,addMembership:`Add a membership…`,membershipsHint:`What their work may be charged to: a team, every project of a team (team:*), or one project through a team (team:project).`,primary:`Primary`,primaryHint:`What their work is charged to when it names nothing else.`,noPrimary:`None`,issuer:`Issuer`,issuerHint:`Where they sign in, when it is not this host: github, or an issuer URL. Empty removes it.`,rolesFrom:`Roles from`,rolesFromHint:`The claim in the issuer's answer that carries their roles, such as groups. Empty removes it.`,token:`A token is never shown here. Make one on the host with: ahpd user token {id}`,create:`Create user`,save:`Save`,dropAdminTitle:`Take admin away from yourself?`,dropAdminBody:`You may not be able to change users or roles on this host again.`},role:{deleteTitle:`Delete the role {id}?`,deleteBody:`The people who hold it lose what it grants.`,gone:`This role is gone.`,id:`Id`,idHint:`The name users hold it by. It cannot be changed later.`,grants:`Grants`,grantsHint:`One a line, each subject:operation, such as session:write; read, write or * for every operation.`,badGrant:`Line {line}, {text}, is not subject:operation.`,grantCount:`Grants: {count}`,create:`Create role`,save:`Save`,builtIn:`built in`,builtInNote:`Built into ahpd. Saving writes a role of this name to the host, which then replaces the built-in.`,replacesNote:`This role replaces ahpd's built-in of the same name. Deleting it brings the built-in back.`}},teams:{explorer:{title:`Teams`,teams:`Teams`,projects:`Projects`,filter:`Filter teams and projects`,empty:`No teams yet.`,notServed:`No host here lists its teams.`,members:`Members: {count}`},notices:{none:`No teams`,reading:`Reading the teams`,readOnly:`This host does not let you change these.`},commands:{new:`New`,newTeam:`New team`,newProject:`New project`,show:`Show teams`,openTeam:`Open team`,openProject:`Open project`},actions:{open:`Open`,delete:`Delete`,failed:`The host did not do that`,cancel:`Cancel`,discard:`Discard changes`},named:{id:`Id`,title:`Title`,titleHint:`What is shown instead of the id. Empty shows the id.`,save:`Save`,members:`Members`,noMembers:`Nobody yet.`,primary:`Their primary`,addWho:`Add somebody…`,through:`Through which team…`,add:`Add`},team:{idHint:`The name memberships are written with. It cannot be changed later.`,create:`Create team`,gone:`This team is gone.`,deleteTitle:`Delete the team {id}?`,deleteBody:`A host refuses while anybody still belongs to it.`,membersHint:`Everybody whose memberships name this team: the team, every project of it, or one project through it.`},project:{idHint:`The name memberships are written with, after a team. It cannot be changed later.`,create:`Create project`,gone:`This project is gone.`,deleteTitle:`Delete the project {id}?`,deleteBody:`A host refuses while anybody still works on it.`,membersHint:`Everybody who works on it through a team, or through every project of a team.`}},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:`Folder`,status:`Status`,agent:`Agent`,host:`Host`,noFolder:`No folder`,day:`Day`,week:`Week`,today:`Today`,yesterday:`Yesterday`,older:`Older`,thisWeek:`This week`,lastWeek:`Last week`,weekOf:`Week of {date}`,pinned:`Pinned`,others:`Other sessions`,thenNone:`Nothing more`},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`,sort:`Sort sessions`,groupBy:`Group by`,thenBy:`Then by`,sortBy:`Sort by`,order:`Order`,flags:`Also`,pin:`Pin`,unpin:`Unpin`,show:`Show sessions`,noneShown:`No sessions here; choose another in Show sessions.`},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`,where:`Folder`,whereHint:`The folder the session works in, and its host`,folders:`{host} Folders`,openFolder:`Open folder…`,remote:`Remote`,manageHost:`Edit host`,addHost:`Add host`,recent:`Recent folders`,browse:`Browse`,hosts:`Hosts`},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.`},sorting:{changed:`Last changed`,created:`Created`,name:`Name`,newest:`Newest first`,oldest:`Oldest first`,urgent:`Waiting on you first`},show:{all:`All`,unread:`Unread`,read:`Read`,running:`Running`},raw:{button:`Raw`,back:`Back to the chat`,filter:`Steps shown`,filters:{all:`All steps`,tools:`Tool calls`,subagents:`Subagents`},none:`No step to show.`,turn:`Turn {n}`,live:`running`,tokens:`{input} in · {output} out`,kindLabel:`Kind`,place:`Place`,placeValue:`turn {turn}, step {step}`,started:`Started`,took:`Took`,kind:{message:`Message`,text:`Text`,reasoning:`Thinking`,tool:`Tool call`,question:`Question`,error:`Error`,note:`Note`,file:`File`},openSubagent:`Open subagent`,view:`How it reads`,views:{formatted:`Formatted`,raw:`Raw`,json:`JSON`},model:`Model`,tokenLabel:`Tokens`,cacheRead:`Cache read`,stepCount:`Steps`,toolCount:`Tool calls`},header:{files:{one:`{count} file changed`,other:`{count} files changed`},terminals:{one:`{count} terminal`,other:`{count} terminals`},subagents:{one:`{count} subagent`,other:`{count} subagents`},subagentsRunning:`{running} of {total} subagents running`,chats:`Chats`,chatN:`Chat {n}`,subagentTag:`subagent`,subagentN:`Subagent {n}`,subagentRunning:`running`,backToChat:`Back to the chat`,view:`How the chat reads`,hideCalls:`Hide calls`,showCalls:`Show the calls`}},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`,backAgainHost:`Connected to {host} again`,lost:`Lost the connection to the server`,lostHost:`Lost the connection to {host}`,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.`,hostsUp:`{up} of {total} hosts`,noAnswer:`The host 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`,Computers:`Computers`,Bots:`Bots`},hosts:{filter:`Hosts`,every:`Every host`,infoTab:`Host: {host}`,settingsTab:`Settings: {host}`,named:`{host} · {state}`,signIn:`Sign in`,retry:`Retry`,state:{connected:`Connected`,connecting:`Connecting`,down:`Down`,refused:`Token refused`}},usage:{explorer:{title:`Usage`,filter:`Filter usage`,period:`Period`,group:`Group`,empty:`Nothing was charged yet.`,notServed:`No host here keeps usage.`,nothing:`Nothing charged`,none:`None`,refused:`Not read`},period:{day:`Today`,week:`This week`,month:`This month`,range:`Range`},group:{user:`By user`,team:`By team`,project:`By project`},kind:{user:`Users`,team:`Teams`,project:`Projects`,root:`Hosts`,plugin:`Plugins`},range:{from:`From`,until:`Until`},total:{tokens:{one:`{n} token`,other:`{n} tokens`},calls:{one:`{n} call`,other:`{n} calls`},hours:`{count} h`},notices:{none:`No usage`,reading:`Reading the usage`},commands:{show:`Show usage`,open:`Open usage pool`},actions:{open:`Open`},pool:{range:`Over a range`,records:`Records`,noRecords:`No records in these days.`,openSession:`Open session`}},trust:{ask:{title:`Trust {folder}?`,body:`{path}
|
|
2
|
+
|
|
3
|
+
A trusted folder lets an agent load the project's own settings, hooks and tools. Agents that cannot ask first, such as Codex, start only in a trusted folder. You are asked once for each folder on this host.`,yes:`Trust`,no:`Don't trust`,refused:`The host did not take the trusted folder`},host:{title:`Trusted folders`,hint:`What this browser answered when a session started in a folder. The trusted ones are sent to the host on every connect.`,none:`No folder answered yet.`,folder:`Folder`,answer:`Answer`,trusted:`Trusted`,untrusted:`Not trusted`,forget:`Forget`,notForgotten:`The host did not take the change`}}},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{s as r}from"./data-DsJQo1Qk.js";import{t as i}from"./Spinner-CBEPv0eM.js";import{t as a}from"./Alert-BhdRA0LL.js";import{n as o}from"./index-ddqm5vYD.js";import{n as s}from"./save-zwMG_vNN.js";import{t as c}from"./text-D6GxOCYM.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,t){let[n,i]=(0,u.useState)(null);return(0,u.useEffect)(()=>{if(t===void 0)return;let n=!0,a;return i(null),(async()=>{let n=await r(e).sizeOf(t);return n!==void 0&&n>67108864?{size:n}:(a=URL.createObjectURL(await r(e).readBlob(t,o(t))),{url:a})})().then(e=>{n&&i(e)}).catch(e=>{n&&i({error:s(e)})}),()=>{n=!1,a!==void 0&&URL.revokeObjectURL(a)}},[e,t]),n}function h({host:e,uri:t,children:r}){let{t:o}=n(),s=m(e,t);if(t===void 0)return(0,d.jsx)(l,{tone:`warning`,message:o(`files/noFile`)});let u=(0,d.jsx)(c,{uri:t});return s===null?(0,d.jsxs)(`div`,{className:`web-file`,children:[u,(0,d.jsx)(i,{label:o(`files/reading`)})]}):`error`in s?(0,d.jsxs)(`div`,{className:`web-file`,children:[u,(0,d.jsx)(a,{tone:`danger`,title:o(`files/notReadable`),message:s.error})]}):`size`in s?(0,d.jsxs)(`div`,{className:`web-file`,children:[u,(0,d.jsx)(`p`,{className:`web-note web-media__note`,children:o(`files/tooLarge`,{size:p(s.size),max:p(f)})})]}):(0,d.jsxs)(`div`,{className:`web-file`,children:[u,(0,d.jsx)(`div`,{className:`web-file__body web-media`,children:r(s.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-DOA2j2AT.js";import{t as u}from"./emojis-B4zHbUyk.js";import{n as d}from"./CommandPalette-G86xI_6j.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(){F(null),E=void 0}function j(){return E?.get(`$/notify/confirmStyle`)??`modal`}function M(e){E?.set(w,e)}async function N(e){return await P(e)===!0}function P(e){return E===void 0||j()===`native`?Promise.resolve(window.confirm(e.body===void 0?e.title:`${e.title}\n\n${e.body}`)):(F(null),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 F(e){let t=O;O=null,E?.set(C,null),t?.(e)}var I=new Set([`attention`,`action.finished`,`connection.lost`]),L=6e4;function R(){return typeof window<`u`&&`Notification`in window}function z(){return R()&&window.Notification.permission==="default"}function B(){return R()&&window.Notification.permission===`granted`}async function V(){return R()?window.Notification.requestPermission():`denied`}function H(){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=>I.has(e.type)&&e.alert!==void 0,available:()=>B()?document.visibilityState===`hidden`||e!==null&&Date.now()-e>=L:!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 U=t(),W=e();function G(){let e=n(C),t=(0,U.useRef)(null),r=e?.id;return(0,U.useEffect)(()=>{if(r===void 0)return;t.current?.focus();let e=e=>{e.key===`Escape`&&(e.stopPropagation(),F(null))};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[r]),e==null?null:(0,W.jsx)(`div`,{className:`web-confirm`,onClick:()=>F(null),children:(0,W.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,W.jsx)(`h2`,{id:`web-confirm-title`,className:`web-confirm__title`,children:e.title}),e.body===void 0?null:(0,W.jsx)(`p`,{id:`web-confirm-body`,className:`web-confirm__body`,children:e.body}),(0,W.jsxs)(`div`,{className:`web-confirm__buttons`,children:[(0,W.jsx)(s,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>F(!1),children:e.cancelLabel}),(0,W.jsx)(s,{type:`button`,size:`sm`,variant:e.tone===`danger`?`danger`:`primary`,onClick:()=>F(!0),children:e.confirmLabel})]})]})})}var K={info:u.info,success:u.check,warning:u.warning,danger:u.error},q=4;function J({animation:e=`slide-up`}){let{t}=a(),r=n(`$/notify/list`)??[],[i,o]=(0,U.useState)(!1);if(r.length===0)return null;let s=i?r:r.slice(0,q),c=r.length-s.length;return(0,W.jsxs)(`div`,{className:`web-toasts`,role:`region`,"aria-label":t(`shell/notify/region`),children:[c>0?(0,W.jsx)(`button`,{type:`button`,className:`web-toast__more`,onClick:()=>o(!0),children:t(`shell/notify/more`,{count:c})}):null,[...s].reverse().map(t=>(0,W.jsx)(Y,{notification:t,animation:t.animation??e},t.id))]})}function Y({notification:e,animation:t}){let n=o(),{t:r}=a(),[i,l]=(0,U.useState)(!1),d=e.id,f=()=>x().dismiss(d);(0,U.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,W.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,W.jsxs)(`div`,{className:`web-toast__head`,children:[(0,W.jsx)(`span`,{className:`web-toast__icon`,"aria-hidden":`true`,children:e.icon??K[e.tone]}),(0,W.jsx)(`span`,{className:`web-toast__title`,children:e.title}),e.count>1?(0,W.jsx)(`span`,{className:`web-toast__count`,title:c(`shell/notify/raised`,e.count),children:`\u{D7}${e.count}`}):null,(0,W.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,W.jsx)(`p`,{className:`web-toast__body`,children:e.description}),e.detail===void 0?null:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`button`,{type:`button`,className:`web-toast__link`,onClick:()=>l(!i),children:r(i?`shell/notify/hideDetails`:`shell/notify/showDetails`)}),i?(0,W.jsx)(`pre`,{className:`web-toast__detail`,children:e.detail}):null]}),e.actions===void 0||e.actions.length===0?null:(0,W.jsx)(`div`,{className:`web-toast__actions`,children:e.actions.map(e=>(0,W.jsx)(s,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>h(e),children:e.label},e.command))})]})}function X(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 Z(e,t={}){S(n=>{n.publish({type:`action.done`,tone:`success`,icon:t.icon??u.check,title:e,...X(t)})})}function Q(e,t={}){S(n=>{n.publish({type:`attention`,tone:`warning`,icon:t.icon??u.warning,title:e,dismissTime:f,...X(t)})})}function $(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,...X({...n,description:r}),...i===void 0?{}:{detail:i}})})||console.error(e,t)}function ee(e){let t=y(e.store);k(e.store,T);let n=H();return r({dispose:()=>{n.dispose(),A(),b()}},e.components.register({component:`Notifications.Toaster`,category:`chrome`,renderer:{kind:`react`,load:async()=>({default:J})}}),e.components.register({component:`Notifications.Confirm`,category:`chrome`,renderer:{kind:`react`,load:async()=>({default:G})}}),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(B()){t.publish({type:`default`,tone:`success`,title:i(`shell/notify/alerts/alreadyOn`)});return}if(!z()){t.publish({type:`default`,tone:`warning`,title:i(`shell/notify/alerts/blocked`),description:i(`shell/notify/alerts/blockedHelp`),dismissTime:f});return}let e=await V();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{P as a,f as c,Q as i,Z as n,N as o,$ as r,S as s,ee as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{V as e,q as t}from"./data-DsJQo1Qk.js";var n=e=>`$/folders/added/${encodeURIComponent(e)}`,r=e=>t(`ahpd-web.folders-added`,e);function i(t,n){let r=e(n);return t.some(t=>e(t)===r)?[...t]:[...t,r]}function a(t,n){let r=e(n);return t.filter(t=>e(t)!==r)}function o(e){try{let t=JSON.parse(window.localStorage.getItem(r(e))??`[]`);return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}catch{return[]}}function s(e,t,i){e.set(n(t),[...i]);try{window.localStorage.setItem(r(t),JSON.stringify(i))}catch{}}var c=`$/folders/pick`,l,u=0,d=null;function f(e){l=e}function p(){h(null),l=void 0}function m(e){return l===void 0?Promise.resolve(null):(h(null),u+=1,l.set(c,{id:u,...e}),new Promise(e=>{d=e}))}function h(e){let t=d;d=null,l?.set(c,null),t?.(e)}export{h as a,s as c,p as i,i as l,m as n,n as o,f as r,o as s,c as t,a as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as e,K as t,w as n}from"./data-DsJQo1Qk.js";var r=[`changed`,`created`,`name`],i={by:`changed`,newest:!0,urgent:!1},a=`ahpd-web.session-sorting`;function o(){try{let e=JSON.parse(localStorage.getItem(a)??`null`);return typeof e!=`object`||!e?i:{by:r.some(t=>t===e.by)?e.by:i.by,newest:typeof e.newest==`boolean`?e.newest:i.newest,urgent:e.urgent===!0}}catch{return i}}function s(e){try{localStorage.setItem(a,JSON.stringify(e))}catch{}}var c=e=>e.by===i.by&&e.newest===i.newest&&e.urgent===i.urgent;function l(t){if(n(t.status))return 2;let r=e(t.status);return r===`input`?0:r===`error`?1:2}var u=t=>+(e(t.status)===`running`);function d(e,t,n){let r=e=>n.by===`created`?e.createdAt:n.by===`changed`?e.modifiedAt:e.title.toLocaleLowerCase(),i=n.by===`name`||!n.newest?1:-1;return e.map((e,n)=>({item:e,index:n,session:t(e)})).sort((e,t)=>(n.urgent?l(e.session)-l(t.session):0)||(n.by===`changed`?i*(u(e.session)-u(t.session)):0)||i*r(e.session).localeCompare(r(t.session))||e.index-t.index).map(e=>e.item)}var f=`$/ahp/sessions/pins`,p=t(`ahpd-web.session-pins`);function m(){try{let e=JSON.parse(localStorage.getItem(p)??`[]`);return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}catch{return[]}}function h(e){try{localStorage.setItem(p,JSON.stringify(e))}catch{}}function g(e,t){return e.includes(t)?e.filter(e=>e!==t):[...e,t]}function _(e,t){let n=g(e.get(`$/ahp/sessions/pins`)??[],t);e.set(f,n),h(n)}export{r as a,d as c,i,s as l,m as n,c as o,_ as r,o as s,f as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e,t){let n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=e,r.click(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}export{e as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{l as e}from"./useI18n-T3BwAm0z.js";import{lt as t}from"./data-DsJQo1Qk.js";var n=5e6;function r(e){return e.length>5e6?{text:e.slice(0,n),cut:!0}:{text:e,cut:!1}}function i(e){return typeof e==`object`&&!!e&&e.code===t.PermissionDenied}function a(n){let r=typeof n==`object`&&n?n.code:void 0;return r===t.NotFound?e(`files/gone`):r===t.PermissionDenied?e(`files/readRefused`):n instanceof Error?n.message:String(n)}function o(e){return typeof e==`object`&&!!e&&e.code===t.Conflict}export{r as i,a as n,i as r,o as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Explorer-DzRNgpV9.js","./jsx-runtime-BguD1OXD.js","./react-CybPckBe.js","./useStore-BQkzWMs-.js","./ScenaProvider-6A3TJumQ.js","./mount-context-DZgEFVFG.js","./useI18n-T3BwAm0z.js","./locales-DOA2j2AT.js","./data-DsJQo1Qk.js","./preload-helper-BaNbYf_w.js","./hosts-A0gEDScb.js","./emojis-B4zHbUyk.js","./notify-B2F6UAgq.js","./Button-_R1oktDz.js","./styles-yrzHRgom.js","./_utils-DZVsX11M.js","./Button-CRZ1_3KW.css","./CommandPalette-G86xI_6j.js","./ActionList-QwhYPQiB.js","./colors-BieSUSt7.js","./ActionList-Bc-jZDaT.css","./terminal-Ctk6FYnN.js","./Spinner-CBEPv0eM.js","./Spinner-B56wMtzv.css","./Alert-BhdRA0LL.js","./Icon-CIQ7doud.js","./Icon-BFMW_Ijn.css","./Alert-D6FTUHBY.css","./state-DQKzjLgu.js","./pins-DhjQhJuu.js","./grouping-BZNQYyEm.js","./ExplorerList-DU80dY_f.js","./ContextMenu-DlF_3KO_.js","./HostLines-CtIqw3A0.js","./Page-By2cWeM8.js","./Badge-BDEW5PFb.js","./Badge-B_GtDNjv.css","./Markdown-_Awuh7Ku.js","./Markdown-D4ts0B_q.css","./Composer-DYocj0Ot.js","./Modal-xWzwLA8s.js","./composer-commands-CzjP_L_C.js","./turn-z1TPlA5Q.js","./changeset-FRFDlNj7.js","./channel-BWOXaftf.js","./drag-CxTqzQcr.js","./Text-MPtQvYE-.js","./Text-D2KlerVw.css","./save-file-CirO0l-u.js","./CopyButton-BSesWpVW.js","./clicks-BeeNCvCP.js","./PageAlert-B8ulCXV4.js","./Bood-Dg-XtOTh.js","./index-ddqm5vYD.js","./surface-presentation-CT86pw6J.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","./pick-CEYUa4kK.js","./viewers--ctbhTPt.js","./index-DJ3IEy30.css","./New-BiFpU6ut.js","./useCloseGuard-B4qJKmaF.js","./trust-ask-ewG_CvW8.js","./words-1m-GRHoT.js","./Start-NxBne1u6.js","./Start-Dtuu25RL.css","./Details-CH_RhTnb.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-DOA2j2AT.js";import{$ as c,C as l,c as u,l as d,r as f,s as ee,x as p}from"./data-DsJQo1Qk.js";import{n as te,p as ne,s as m}from"./hosts-A0gEDScb.js";import{t as h}from"./emojis-B4zHbUyk.js";import{c as g,s as _}from"./notify-B2F6UAgq.js";import{n as v,r as y}from"./CommandPalette-G86xI_6j.js";import{u as re}from"./composer-commands-CzjP_L_C.js";import{a as b,c as x,i as S,n as C,o as w,r as T,s as E,t as D}from"./state-DQKzjLgu.js";import{a as O,i as k,l as ie,n as ae,o as A,s as j,t as M}from"./pins-DhjQhJuu.js";import{a as N,c as oe,l as se,o as ce,s as le,t as P}from"./grouping-BZNQYyEm.js";var F={"sidebar:left":{xsmall:`sheet`,small:`floating`},"sidebar:right":{xsmall:`floating`,small:`floating`},activitybar:{xsmall:`bar`}},I=(e,t)=>`session-alert:${e}:${t}`;function L(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 R(e,t,n){let r=t.title===``?i(`sessions/untitled`):t.title,a=[{label:i(`sessions/alerts/open`),command:`ahp.openSession`,args:{host:e,resource:t.resource}}],o={id:I(e,t.resource),source:I(e,t.resource),actions:a};return n===`needs-you`?{...o,type:`attention`,tone:`warning`,icon:h.warning,title:i(`sessions/alerts/needsYou`,{name:r}),dismissAuto:!1,alert:{title:r,body:i(`sessions/status/input`)}}:n===`failed`?{...o,type:`action.finished`,tone:`danger`,icon:h.warning,title:i(`sessions/alerts/failed`,{name:r}),dismissTime:g,alert:{title:r,body:i(`sessions/status/error`)}}:{...o,type:`action.finished`,tone:`success`,icon:h.check,title:i(`sessions/alerts/finished`,{name:r}),dismissTime:g,alert:{title:r,body:i(`sessions/alerts/finishedBody`)}}}function z(e,t,n){let r=e.store.get(D);return r?.host===t&&r.resource===n&&document.visibilityState===`visible`&&document.hasFocus()}function B(e){return m(e,t=>V(e,t))}function V(e,t){let n=null;return e.store.subscribe(f(t).sessions,()=>{let r=e.store.get(f(t).sessions);if(r===void 0)return;let i=new Map(r.map(e=>[e.resource,l(e.status)])),a=n;if(n=i,a!==null)for(let n of r){let r=i.get(n.resource),o=a.get(n.resource);o===`input`&&r!==`input`&&_(e=>e.dismiss(I(t,n.resource)));let s=L(o,r);s===null||z(e,t,n.resource)||_(e=>e.publish(R(t,n,s)))}})}function H(e,t,n){try{let r=localStorage.getItem(e);return t.some(e=>e===r)?r:n}catch{return n}}function U(e,t){try{localStorage.setItem(e,t)}catch{}}function W(t,n){let{resource:r,name:a,slot:o,path:s,values:c,usual:l,key:u,when:d}=n,f=H(u,c,l);return t.store.set(s,f===l?null:f),e(t.commands.register({id:`${r}.${a}`,title:()=>i(`${r}/explorer/${a}`),run:e=>{let t={title:i(`${r}/explorer/${a}`),query:{slot:o}};e.host===void 0?y(e.scena,t):e.host.pushList(t)}}),...c.map(e=>t.commands.register({id:`${r}.${a}.${e}`,title:()=>i(`${r}/${a}/${e}`),slots:[o],...d===void 0?{}:{when:()=>d(e)},active:t=>(t.store.get(s)??l)===e,run:t=>{t.store.set(s,e===l?null:e),U(u,e)}})))}function ue(e,t){try{let n=(localStorage.getItem(e)??``).split(`,`);return t.filter(e=>n.includes(e))}catch{return[]}}function de(t,n){let{resource:r,name:a,slot:o,path:s,values:c,key:l}=n,u=ue(l,c);return t.store.set(s,u.length===0?null:u),e(t.commands.register({id:`${r}.${a}`,title:()=>i(`${r}/explorer/${a}`),run:e=>{let t={title:i(`${r}/explorer/${a}`),query:{slot:o}};e.host===void 0?y(e.scena,t):e.host.pushList(t)}}),...c.map(e=>t.commands.register({id:`${r}.${a}.${e}`,title:()=>i(`${r}/${a}/${e}`),slots:[o],active:t=>(t.store.get(s)??[]).includes(e),run:t=>{let n=t.store.get(s)??[],r=c.filter(t=>t===e?!n.includes(t):n.includes(t));t.store.set(s,r.length===0?null:r),U(l,r.join(`,`)),t.host?.keepOpen()}})))}var G=`sidebar:right`,fe=`tab-group:context`,pe=`$/surface/name`;function K(n,r,a){let o={...r,surface:G},s=n.surfaces.mount(o),c=()=>n.surfaces.listAt(G).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:[fe],when:()=>n.store.get(pe)===`sidebar:right`&&!c(),run:e=>{e.host?.closeMenu(),s.dispose(),s=n.surfaces.mount(o);let t=n.layout.get().surfaces[G];n.layout.setSurface(G,{...t,visible:!0,activeContainerKey:r.key})}}))}var q=`$/modus/class`,J=`ahp:sessions`;function Y(e,t,i=`sidebar:left`){if(!r(n(i,t,F)))return;let a=e.layout.get().surfaces[i];a?.visible!==!1&&e.layout.setSurface(i,{...a,visible:!1})}var X=`sessions:grouping`,Z=`sessions:sorting`,Q=`sessions:show`;function $(){return{title:i(`sessions/explorer/group`),query:{slot:X}}}function me(t){let n=ce();t.store.set(T,n===`none`?null:n);let r=le();t.store.set(x,r===`none`?null:r);let l=j();t.store.set(E,l),t.store.set(w,!A(l)),t.store.set(M,ae());let f=e=>{let n={...t.store.get(`$/ahp/sessions/sorting`)??k,...e};t.store.set(E,n),t.store.set(w,!A(n)),ie(n)},m=()=>t.store.get(`$/ahp/sessions/sorting`)??k;return e(W(t,{resource:`sessions`,name:`show`,slot:Q,path:b,values:p,usual:`all`,key:`ahpd-web.session-show`}),re(t),B(t),t.components.register({component:`SessionExplorer`,category:`page`,renderer:{kind:`react`,load:()=>a(()=>import(`./Explorer-DzRNgpV9.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,31,32,33]),import.meta.url)},props:{title:{t:`sessions/explorer/title`},actions:[{command:`ahp.newSession`,icon:`+`,label:{t:`sessions/commands/newSession`}},{command:`sessions.reload`,icon:h.reload,label:{t:`sessions/explorer/reload`},busy:`${S} == true`},{command:`sessions.show`,menu:Q,icon:h.filter,label:{t:`sessions/explorer/show`},active:`${b} != null`},{command:`sessions.toggleArchived`,icon:h.archived,label:{t:`sessions/explorer/showArchived`},active:`${C} == true`},{command:`sessions.group`,menu:X,icon:h.group,label:{t:`sessions/explorer/group`},active:`${T} != null`},{command:`sessions.sort`,menu:Z,icon:h.sort,label:{t:`sessions/explorer/sort`},active:`${w} == true`},te]}}),t.commands.register({id:`sessions.reload`,title:()=>i(`sessions/explorer/reload`),run:async e=>{e.store.set(S,!0);try{await Promise.all(ne(e.store).map(e=>ee(e).reloadSessions()))}catch{}finally{e.store.set(S,!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(C,e.store.get(C)!==!0)}),t.commands.register({id:`sessions.group`,title:()=>i(`sessions/explorer/group`),run:e=>{e.host===void 0?y(e.scena,$()):e.host.pushList($())}}),...P.map(e=>t.commands.register({id:`sessions.groupBy.${e}`,title:()=>N(e),category:i(`sessions/explorer/groupBy`),slots:[X],...e===`host`?{when:()=>c()===`multi`}:{},active:t=>(t.store.get(`$/ahp/sessions/grouping`)??`none`)===e,run:t=>{t.store.set(T,e===`none`?null:e),oe(e)}})),...P.map(e=>t.commands.register({id:`sessions.thenBy.${e}`,title:()=>e===`none`?i(`sessions/grouping/thenNone`):N(e),category:i(`sessions/explorer/thenBy`),slots:[X],when:()=>{let n=t.store.get(`$/ahp/sessions/grouping`)??`none`;return n!==`none`&&n!==e&&(e!==`host`||c()===`multi`)},active:t=>(t.store.get(`$/ahp/sessions/thenBy`)??`none`)===e,run:t=>{t.store.set(x,e===`none`?null:e),se(e)}})),t.commands.register({id:`sessions.sort`,title:()=>i(`sessions/explorer/sort`),run:e=>{let t={title:i(`sessions/explorer/sort`),query:{slot:Z}};e.host===void 0?y(e.scena,t):e.host.pushList(t)}}),...O.map(e=>t.commands.register({id:`sessions.sortBy.${e}`,title:()=>i(`sessions/sorting/${e}`),category:i(`sessions/explorer/sortBy`),slots:[Z],active:()=>m().by===e,run:()=>f({by:e})})),...[!0,!1].map(e=>t.commands.register({id:`sessions.sortOrder.${e?`newest`:`oldest`}`,title:()=>i(e?`sessions/sorting/newest`:`sessions/sorting/oldest`),category:i(`sessions/explorer/order`),slots:[Z],when:()=>m().by!==`name`,active:()=>m().newest===e,run:()=>f({newest:e})})),t.commands.register({id:`sessions.sortUrgent`,title:()=>i(`sessions/sorting/urgent`),category:i(`sessions/explorer/flags`),slots:[Z],active:()=>m().urgent,run:()=>f({urgent:!m().urgent})}),t.components.register({component:`SessionPage`,category:`page`,props:{icon:h.sessions},renderer:{kind:`react`,load:()=>a(()=>import(`./Page-By2cWeM8.js`),__vite__mapDeps([34,1,2,3,4,5,6,13,14,15,16,7,8,9,11,32,18,19,20,35,36,22,23,37,38,24,25,26,27,39,12,17,10,21,40,41,42,43,44,45,46,47,28,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64]),import.meta.url)}}),t.components.register({component:`NewSessionPage`,category:`page`,props:{icon:h.sessions},renderer:{kind:`react`,load:()=>a(()=>import(`./New-BiFpU6ut.js`),__vite__mapDeps([65,1,2,3,4,5,6,66,13,14,15,16,8,9,10,11,12,7,17,18,19,20,21,24,25,26,27,39,32,40,41,42,43,44,45,46,47,62,53,54,55,56,57,58,59,60,61,48,63,64,67,68]),import.meta.url)}}),t.components.register({component:`StartPage`,category:`page`,renderer:{kind:`react`,load:()=>a(()=>import(`./Start-NxBne1u6.js`),__vite__mapDeps([69,1,6,2,4,13,14,15,16,53,3,5,54,9,55,7,8,10,11,12,17,18,19,20,21,56,57,58,59,60,61,48,62,63,64,70]),import.meta.url)}}),t.surfaces.setEmpty(`main`,{component:`StartPage`}),t.components.register({component:`SessionDetails`,category:`page`,renderer:{kind:`react`,load:()=>a(()=>import(`./Details-CH_RhTnb.js`),__vite__mapDeps([71,1,2,3,4,5,6,7,8,9,21,28,33,13,14,15,16,10,42,44]),import.meta.url)}}),t.commands.register({id:`ahp.showSessions`,title:()=>i(`sessions/commands/showSessions`),keywords:[o(`sessions/commands/showSessions`)],category:`Sessions`,slots:[v],run:e=>e.commands.execute(`sidebar.activate`,{section:J})}),t.commands.register({id:`ahp.newSession`,title:()=>i(`sessions/commands/newSession`),keywords:[o(`sessions/commands/newSession`)],category:`Sessions`,slots:[v],keys:[`ctrl+n`,`alt+n`],run:(e,t)=>{let{provider:n,host:r}=t??{};(n!==void 0||r!==void 0)&&e.scena.surfaces.close(`session:new`),e.surfaces.open({surface:`main`,key:`session:new`,resource:{component:`NewSessionPage`,...n===void 0?{}:{provider:n},...r===void 0?{}:{host:r}},props:{title:s(`sessions/commands/newSession`)}}),Y(e.scena,e.store.get(q)??`large`)}}),t.commands.register({id:`ahp.openSession`,title:()=>i(`sessions/commands/openSession`),run:(e,t)=>{let n=t;if(n?.resource===void 0)return;let{resource:r,host:i=d()}=n;e.store.set(D,{host:i,resource:r}),e.surfaces.open({surface:`main`,key:`session:${i}:${r}`,resource:{component:`SessionPage`,host:i,resource:r},props:{title:{path:u(i,r)}}}),Y(e.scena,e.store.get(q)??`large`),Y(e.scena,e.store.get(q)??`large`,`sidebar:right`)}}),K(t,{key:`session:details`,resource:{component:`SessionDetails`},props:{title:{t:`sessions/details/tab`}}},h.info),t.surfaces.mount({surface:`sidebar:left`,key:`sessions:explorer`,when:`$/layout/surfaces/sidebar:left/section == "${J}"`,resource:{component:`SessionExplorer`}}))}export{W as a,K as i,Y as n,de as o,me as r,F as s,J as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`$/ahp/activeSession`,t=`$/ahp/sessions/archived`,n=`$/ahp/sessions/grouping`,r=`$/ahp/sessions/thenBy`,i=`$/ahp/sessions/sorting`,a=`$/ahp/sessions/sorted`,o=`$/ahp/sessions/show`,s=`$/ahp/sessions/reloading`;export{o as a,r as c,s as i,t as n,a as o,n as r,i as s,e as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{l as e}from"./useI18n-T3BwAm0z.js";import{at as t}from"./data-DsJQo1Qk.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{I as r,s as i}from"./data-DsJQo1Qk.js";import{t as a}from"./CopyButton-BSesWpVW.js";import{n as o}from"./save-zwMG_vNN.js";var s=t(),c=e();function l(e,t){let[n,r]=(0,s.useState)(null);return(0,s.useEffect)(()=>{if(t===void 0)return;let n=!0;return r(null),i(e).readText(t).then(e=>{n&&r({text:e.text})}).catch(e=>{n&&r({error:o(e)})}),()=>{n=!1}},[e,t]),n}function u({uri:e,dirty:t=!1}){let{t:i}=n(),o=r(e);return(0,c.jsxs)(`div`,{className:`web-file__head`,children:[(0,c.jsx)(`code`,{children:o}),t?(0,c.jsx)(`span`,{className:`web-file__dirty`,title:i(`files/notSaved`),children:i(`files/edited`)}):null,(0,c.jsx)(a,{text:o,label:i(`files/copyPath`)})]})}export{l as n,u as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./jsx-runtime-BguD1OXD.js";import{l as t}from"./useI18n-T3BwAm0z.js";import{A as n,D as r,I as i,L as a,M as o,N as s,O as c,j as l,k as u,n as d,s as f}from"./data-DsJQo1Qk.js";import{a as p,r as m}from"./notify-B2F6UAgq.js";var h=e({answerTrust:()=>y,answersOf:()=>g,askTrust:()=>v,sendTrust:()=>_}),g=(e,t)=>e.get(l(t))??u(t);async function _(e,t,r){let i=await f(t).dispatchAndWait(d,n(o(r)));if(i!==null)throw Error(i);c(e,t,r)}async function v(e,n,o){let l=g(e,n),u=r(l,o);if(u!==void 0)return u?`trusted`:`untrusted`;let d=await p({title:t(`trust/ask/title`,{folder:a(o)}),body:t(`trust/ask/body`,{path:i(o)}),confirmLabel:t(`trust/ask/yes`),cancelLabel:t(`trust/ask/no`)});return d===null?`closed`:d?(await _(e,n,s(l,o,!0)),`trusted`):(c(e,n,s(l,o,!1)),`untrusted`)}async function y(e,n,r){try{return await v(e,n,r)===`trusted`}catch(e){return m(t(`trust/ask/refused`),e),!1}}export{_ as n,h as r,v 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,n)=>`file:${t}:${e}:${n}`;function a(e){let t=e===void 0?null:/^file:([^:]+):([^:]+):(.+)$/.exec(e);return t===null?void 0:{host:t[1],component:t[2],uri:t[3]}}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,i){return s(t,r).filter(e=>e.component!==i).map(i=>({title:e(`files/openAs`,{viewer:c(i)}),group:e(`files/openWith`),...i.opens?.icon===void 0?{}:{icon:i.opens.icon},onSelect:e=>{e.closeMenu(),t.commands.execute(`ahp.openFile`,{host:n,uri:r,viewer:i.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-DOA2j2AT.js";import{I as n}from"./data-DsJQo1Qk.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{l as e,n as t}from"./useI18n-T3BwAm0z.js";import{a as n}from"./locales-DOA2j2AT.js";import{b as r}from"./index-ddqm5vYD.js";function i(e){let i=r(e,t());return[i.cost,e.tokens===void 0?void 0:a(e.tokens),i.calls===void 0?void 0:n(`usage/total/calls`,e.calls??0,{n:i.calls}),e.hours===void 0?void 0:o(e.hours)].filter(e=>e!==void 0).join(` · `)}function a(e){return n(`usage/total/tokens`,e,{n:r({tokens:e},t()).tokens})}function o(n){return e(`usage/total/hours`,{count:r({hours:n},t()).hours})}function s(t){return[`user`,`team`,`project`,`root`,`plugin`].includes(t)?e(`usage/kind/${t}`):t}export{i,s as n,a as r,o as t};
|
package/dist/app/index.html
CHANGED
|
@@ -3,55 +3,66 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
|
|
6
|
+
<!--
|
|
7
|
+
From src/, not public/, so the build names it by its content: a browser
|
|
8
|
+
keeps a favicon by its URL and never fetches a new one at the same URL,
|
|
9
|
+
which left the old logo in every tab after the new one shipped.
|
|
10
|
+
-->
|
|
11
|
+
<link rel="icon" type="image/svg+xml" href="./assets/ahpw-FhxegLNr.svg" />
|
|
7
12
|
<title>ahpw</title>
|
|
8
13
|
<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-
|
|
14
|
+
<script type="module" crossorigin src="./assets/index-ddqm5vYD.js"></script>
|
|
10
15
|
<link rel="modulepreload" crossorigin href="./assets/jsx-runtime-BguD1OXD.js">
|
|
11
16
|
<link rel="modulepreload" crossorigin href="./assets/react-CybPckBe.js">
|
|
12
17
|
<link rel="modulepreload" crossorigin href="./assets/ScenaProvider-6A3TJumQ.js">
|
|
13
18
|
<link rel="modulepreload" crossorigin href="./assets/mount-context-DZgEFVFG.js">
|
|
14
19
|
<link rel="modulepreload" crossorigin href="./assets/useStore-BQkzWMs-.js">
|
|
15
20
|
<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
21
|
<link rel="modulepreload" crossorigin href="./assets/surface-presentation-CT86pw6J.js">
|
|
25
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
22
|
+
<link rel="modulepreload" crossorigin href="./assets/useI18n-T3BwAm0z.js">
|
|
26
23
|
<link rel="modulepreload" crossorigin href="./assets/preload-helper-BaNbYf_w.js">
|
|
27
24
|
<link rel="modulepreload" crossorigin href="./assets/sigillum-Bev0l9LS.js">
|
|
28
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
29
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
30
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
31
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
25
|
+
<link rel="modulepreload" crossorigin href="./assets/_utils-DZVsX11M.js">
|
|
26
|
+
<link rel="modulepreload" crossorigin href="./assets/Button-_R1oktDz.js">
|
|
27
|
+
<link rel="modulepreload" crossorigin href="./assets/label-hTY0RCEf.js">
|
|
28
|
+
<link rel="modulepreload" crossorigin href="./assets/locales-DOA2j2AT.js">
|
|
29
|
+
<link rel="modulepreload" crossorigin href="./assets/data-DsJQo1Qk.js">
|
|
30
|
+
<link rel="modulepreload" crossorigin href="./assets/hosts-A0gEDScb.js">
|
|
31
|
+
<link rel="modulepreload" crossorigin href="./assets/emojis-B4zHbUyk.js">
|
|
32
|
+
<link rel="modulepreload" crossorigin href="./assets/colors-BieSUSt7.js">
|
|
33
|
+
<link rel="modulepreload" crossorigin href="./assets/ActionList-QwhYPQiB.js">
|
|
34
|
+
<link rel="modulepreload" crossorigin href="./assets/terminal-Ctk6FYnN.js">
|
|
35
|
+
<link rel="modulepreload" crossorigin href="./assets/CommandPalette-G86xI_6j.js">
|
|
36
|
+
<link rel="modulepreload" crossorigin href="./assets/notify-B2F6UAgq.js">
|
|
37
|
+
<link rel="modulepreload" crossorigin href="./assets/composer-commands-CzjP_L_C.js">
|
|
38
|
+
<link rel="modulepreload" crossorigin href="./assets/state-DQKzjLgu.js">
|
|
39
|
+
<link rel="modulepreload" crossorigin href="./assets/pins-DhjQhJuu.js">
|
|
40
|
+
<link rel="modulepreload" crossorigin href="./assets/grouping-BZNQYyEm.js">
|
|
41
|
+
<link rel="modulepreload" crossorigin href="./assets/sessions-DxQFcZ2M.js">
|
|
32
42
|
<link rel="modulepreload" crossorigin href="./assets/_field-parts-BuPjFCuf.js">
|
|
33
43
|
<link rel="modulepreload" crossorigin href="./assets/TextField-DnSHrmJM.js">
|
|
34
44
|
<link rel="modulepreload" crossorigin href="./assets/state-DRVsnGrf.js">
|
|
35
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
36
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
45
|
+
<link rel="modulepreload" crossorigin href="./assets/save-file-CirO0l-u.js">
|
|
46
|
+
<link rel="modulepreload" crossorigin href="./assets/pick-CEYUa4kK.js">
|
|
47
|
+
<link rel="modulepreload" crossorigin href="./assets/viewers--ctbhTPt.js">
|
|
37
48
|
<link rel="stylesheet" crossorigin href="./assets/Button-CRZ1_3KW.css">
|
|
38
|
-
<link rel="stylesheet" crossorigin href="./assets/ActionList-
|
|
49
|
+
<link rel="stylesheet" crossorigin href="./assets/ActionList-Bc-jZDaT.css">
|
|
39
50
|
<link rel="stylesheet" crossorigin href="./assets/_field-parts-DannIEUW.css">
|
|
40
51
|
<link rel="stylesheet" crossorigin href="./assets/_field-parts-CfQcSJYh.css">
|
|
41
52
|
<link rel="stylesheet" crossorigin href="./assets/DateTimeInput-x1XGuNl0.css">
|
|
42
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
53
|
+
<link rel="stylesheet" crossorigin href="./assets/index-DJ3IEy30.css">
|
|
43
54
|
</head>
|
|
44
55
|
<body>
|
|
45
56
|
<div id="root">
|
|
46
57
|
<div class="boot-loading" role="status" aria-label="Loading ahpw">
|
|
47
58
|
<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.
|
|
59
|
+
<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" />
|
|
60
|
+
<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" />
|
|
61
|
+
<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" />
|
|
62
|
+
<rect x="23.56" y="42.23" width="17.1" height="7.92" fill="#356b5e" />
|
|
63
|
+
<path fill="#356b5e" d="M7 11.25 L18.84 11.25 L23.85 56.88 L12.01 56.88 Z" />
|
|
64
|
+
<path fill="#356b5e" d="M57 11.25 L45.16 11.25 L40.15 56.88 L51.99 56.88 Z" />
|
|
65
|
+
<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
66
|
</svg>
|
|
56
67
|
</div>
|
|
57
68
|
<noscript>
|
package/dist/embed/index.d.ts
CHANGED
|
@@ -31,15 +31,20 @@ export interface EmbedWindow {
|
|
|
31
31
|
onResized(handler: () => void): Unsubscribe;
|
|
32
32
|
}
|
|
33
33
|
export interface Embedder {
|
|
34
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* Whether the window shows one host, `mono`, or every host the embedder
|
|
36
|
+
* knows, `multi`. An embedder that gives none is a mono one.
|
|
37
|
+
*/
|
|
38
|
+
readonly mode?: 'mono' | 'multi';
|
|
39
|
+
/** The host this page shows; in multi, the host the window was opened on. */
|
|
35
40
|
host(): Promise<EmbedHost>;
|
|
36
41
|
/**
|
|
37
42
|
* The address of the host this page shows, known before ahpw runs. Every host
|
|
38
43
|
* shares the embedder's origin, so ahpw keeps a host's own pages under it.
|
|
39
44
|
*/
|
|
40
45
|
readonly hostUrl: string;
|
|
41
|
-
/** The token of the host this page shows, or null for a host with none. */
|
|
42
|
-
token(): Promise<string | null>;
|
|
46
|
+
/** The token of the host `id`, else of the host this page shows, or null for a host with none. */
|
|
47
|
+
token(id?: string): Promise<string | null>;
|
|
43
48
|
/** Every host the embedder knows. */
|
|
44
49
|
hosts(): Promise<EmbedHost[]>;
|
|
45
50
|
/** Calls `handler` with the whole list each time a host is added, changed or removed. */
|
|
@@ -50,12 +55,20 @@ export interface Embedder {
|
|
|
50
55
|
onStatuses(handler: (statuses: Record<string, EmbedHostStatus>) => void): Unsubscribe;
|
|
51
56
|
/** Moves this page to another host; the embedder reloads it. */
|
|
52
57
|
switchHost(id: string): Promise<void>;
|
|
53
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* Shows the embedder's own place to add, edit and remove hosts; with `add`,
|
|
60
|
+
* on its form for a new one, and with `edit`, on the form of that host.
|
|
61
|
+
*/
|
|
54
62
|
manageHosts(options?: {
|
|
55
63
|
add?: boolean;
|
|
64
|
+
edit?: string;
|
|
56
65
|
}): Promise<void>;
|
|
66
|
+
/** In multi, calls `handler` with a host's id each time the embedder asks the window to show that host. */
|
|
67
|
+
onFocusHost?(handler: (id: string) => void): Unsubscribe;
|
|
57
68
|
/** Present when ahpw draws the window's frame. */
|
|
58
69
|
window?: EmbedWindow;
|
|
59
70
|
}
|
|
60
71
|
/** The embedder, or undefined in a browser. Read once: a page never moves between the two. */
|
|
61
72
|
export declare const embedder: Embedder | undefined;
|
|
73
|
+
/** Whether this window shows one host or every host; a browser shows one. */
|
|
74
|
+
export declare function embedMode(): 'mono' | 'multi';
|
package/dist/embed/index.js
CHANGED
|
@@ -9,3 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
/** The embedder, or undefined in a browser. Read once: a page never moves between the two. */
|
|
11
11
|
export const embedder = globalThis.ahpwEmbedder;
|
|
12
|
+
/** Whether this window shows one host or every host; a browser shows one. */
|
|
13
|
+
export function embedMode() {
|
|
14
|
+
return embedder?.mode ?? 'mono';
|
|
15
|
+
}
|
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.5.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",
|
|
@@ -98,6 +99,7 @@
|
|
|
98
99
|
"title": "Web"
|
|
99
100
|
},
|
|
100
101
|
"dependencies": {
|
|
102
|
+
"@cofold/bood": "^0.2.0",
|
|
101
103
|
"@cofold/commands": "^0.3.0",
|
|
102
104
|
"@cofold/config": "^0.3.1",
|
|
103
105
|
"@cofold/remote": "^0.5.0",
|
package/dist/app/ahpw.svg
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
|
|
2
|
-
<title>ahpw</title>
|
|
3
|
-
<rect width="64" height="64" rx="14" fill="#1f1f1f"/>
|
|
4
|
-
<rect x="26" y="43" width="12" height="4.4" fill="#356b5e"/>
|
|
5
|
-
<path d="M5.38 18 L14.62 18 L20.88 37.34 L16.38 52 Z" fill="#356b5e"/>
|
|
6
|
-
<path d="M58.62 18 L49.38 18 L43.12 37.34 L47.62 52 Z" fill="#356b5e"/>
|
|
7
|
-
<path d="M29.84 8 L34.16 8 L47.62 52 L38.4 52 L32 31.06 L25.6 52 L16.38 52 Z" fill="#62c9b0"/>
|
|
8
|
-
</svg>
|
|
@@ -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};
|