pi-straw-boss 0.61.0 → 0.61.2
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/dist/gui/assets/{allyasks-BN7ncpWb.js → allyasks-DI3EYpVp.js} +1 -1
- package/dist/gui/assets/{allyunits-Bh_tEPaq.js → allyunits-BSgXjQtA.js} +1 -1
- package/dist/gui/assets/{answer-BqAjR42Q.js → answer-BL7apmgb.js} +1 -1
- package/dist/gui/assets/{ask-DZ8GOgV1.js → ask-CoIm0jPX.js} +1 -1
- package/dist/gui/assets/{asks-ZIM0AEBV.js → asks-BnnooiNx.js} +1 -1
- package/dist/gui/assets/chat-D_0h7YQb.js +2 -0
- package/dist/gui/assets/{drawer-DFn5FHxd.js → drawer-CKn_xzVL.js} +1 -1
- package/dist/gui/assets/index-DGft1IHG.js +4 -0
- package/dist/gui/assets/{index-DjdUAEow.css → index-DvbZ79bq.css} +1 -1
- package/dist/gui/assets/{layer-C8Ns_rzf.js → layer-C51gEY-z.js} +1 -1
- package/dist/gui/assets/{lightbox-CCKT7aoR.js → lightbox-Db_eNcwV.js} +1 -1
- package/dist/gui/assets/{link-ncQm2fkP.js → link-Ccmv-Guu.js} +1 -1
- package/dist/gui/assets/{linkdialogs-ZGa6BuDm.js → linkdialogs-Dt1edAFc.js} +1 -1
- package/dist/gui/assets/{pair-DFrMdpe9.js → pair-Dfz2AqHg.js} +1 -1
- package/dist/gui/assets/{picker-CmwHymCS.js → picker-B5tXMVe5.js} +1 -1
- package/dist/gui/assets/{server-D4UMq7Jn.js → server-C3XiRAMg.js} +1 -1
- package/dist/gui/assets/{sessionfacts-CMRQ4qU6.js → sessionfacts-4aDFyhS2.js} +1 -1
- package/dist/gui/assets/{settings-D7aX5zbf.js → settings-CgtiQKfq.js} +2 -2
- package/dist/gui/assets/{spawn-B5QVXpp1.js → spawn-DZBpICnV.js} +1 -1
- package/dist/gui/assets/{termcard-CRZebaAl.js → termcard-BqdHNLk8.js} +1 -1
- package/dist/gui/assets/{trust-DikBv6hp.js → trust-2hmISung.js} +1 -1
- package/dist/gui/assets/{views-5AetTmVk.js → views-DsIdYMD3.js} +2 -2
- package/dist/gui/assets/{waitpanel-BPE99fTH.js → waitpanel-R1MWgBZ0.js} +1 -1
- package/dist/gui/assets/{zenchunk-CLalxZKN.js → zenchunk-BsqxzIto.js} +2 -2
- package/dist/gui/index.html +2 -2
- package/dist/server/main.mjs +529 -110
- package/package.json +1 -1
- package/prompts/head-run.md +1 -1
- package/prompts/tower-run.md +1 -1
- package/src/headcmd.ts +4 -4
- package/src/link/crypto.ts +46 -0
- package/src/link/holder.ts +278 -30
- package/src/link/kinds.ts +90 -15
- package/src/link/operate.ts +407 -0
- package/src/link/policy.ts +130 -5
- package/src/link/relay.ts +14 -0
- package/src/link/service.ts +4 -1
- package/src/link/sse.ts +28 -1
- package/src/nethead.ts +4 -2
- package/src/runhead.ts +5 -1
- package/src/runmode.ts +1 -1
- package/src/server/headasks.ts +83 -6
- package/src/server/headbrief.ts +1 -1
- package/src/server/headnet.ts +23 -2
- package/src/server/headtools.ts +9 -3
- package/src/server/main.ts +3 -9
- package/src/server/opentower.ts +35 -7
- package/src/server/operateguard.ts +110 -0
- package/src/server/operatescope.ts +159 -0
- package/src/server/runs.ts +2 -1
- package/src/server/runtools.ts +3 -0
- package/src/server/towers.ts +5 -2
- package/dist/gui/assets/chat-BSorjsse.js +0 -2
- package/dist/gui/assets/index-Pr0dJgxC.js +0 -3
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{w as e}from"./towermodel-DJLQh2fz.js";import{t}from"./runtime-ZX6HkxDa.js";import{$ as n,Z as r,tt as i}from"./index-
|
|
1
|
+
import{w as e}from"./towermodel-DJLQh2fz.js";import{t}from"./runtime-ZX6HkxDa.js";import{$ as n,Z as r,tt as i}from"./index-DGft1IHG.js";import{mountDialogCards as a}from"./linkdialogs-Dt1edAFc.js";var o=t=>{let n=e(`en`,t?.count,{},!0);return n===`one`?`${t?.count} question waits for you: answer it here`:n===`other`?`${t?.count} questions wait for you: answer them here`:`ally_asks_button`},s=e=>`${e?.count} 個問題等你回答,在這裡回答`,c=((e,n={})=>(n.locale??t())===`zh-TW`?s(e):o(e)),l=e=>e.tower===`blocked`||e.tabs.some(e=>e.state===`blocked`);function u(e){let t=new Map,i=n(e?.allies??[]);for(let n of e?.alerts??[]){let e=n.kind===`dialog`?r(n):void 0;if(e!==`open`&&e!==`sent`)continue;let a=i.filter(e=>e.device===n.data.device),o=a.filter(e=>e.teams.some(e=>e.team===n.team)),s=o.length?o:a,c=s.find(l)??s[0];c&&t.set(c.id,[...t.get(c.id)??[],n])}return t}var d=`.ally-unit[data-state="blocked"], .ally-tab[data-state="blocked"]`;function f(){let e=new WeakMap,t=t=>{let r=e.get(t);if(r)return r;let o=i(`button`,{type:`button`,class:`ally-asks-btn`,"aria-expanded":`false`}),s=i(`ul`,{class:`ally-asks-list`}),c=i(`div`,{class:`ally-asks`},o,s);return r={box:c,btn:o,list:s,cards:a(),ids:``},e.set(t,r),o.onclick=()=>n(t),t.addEventListener(`click`,e=>{let r=e.target?.closest?.(d);r&&t.contains(r)&&t.dataset.asks&&!e.target.closest(`details`)&&n(t)}),t.append(c),r};function n(t){let n=e.get(t);if(!n||!t.dataset.asks)return;let r=t.dataset.asking===void 0;r?t.dataset.asking=``:delete t.dataset.asking,n.list.hidden=!r,n.btn.setAttribute(`aria-expanded`,String(r))}function r(n,r){if(!r.length&&!e.has(n))return;let i=t(n);if(i.box.hidden=!r.length,!r.length){delete n.dataset.asks,delete n.dataset.asking,i.btn.setAttribute(`aria-expanded`,`false`),i.cards.keep(new Set),i.list.replaceChildren(),i.ids=``;return}n.dataset.asks=String(r.length),i.btn.textContent=c({count:r.length}),i.list.hidden=n.dataset.asking===void 0,i.cards.keep(new Set(r.map(e=>e.id)));let a=r.map(e=>i.cards.row(e)),o=r.map(e=>e.id).join(`
|
|
2
2
|
`);o!==i.ids&&(i.list.replaceChildren(...a),i.ids=o)}return{toggle:n,fill:r,show:(e,t,n)=>r(e,u(n).get(t.id)??[])}}export{f as mountAllyAsks};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{w as e}from"./towermodel-DJLQh2fz.js";import{t}from"./runtime-ZX6HkxDa.js";import{n}from"./post-DDdE-PdN.js";import{Ct as r,Et as i,Ft as a,O as o,P as s,R as c,S as l,et as u,h as d,k as f}from"./index-
|
|
1
|
+
import{w as e}from"./towermodel-DJLQh2fz.js";import{t}from"./runtime-ZX6HkxDa.js";import{n}from"./post-DDdE-PdN.js";import{Ct as r,Et as i,Ft as a,O as o,P as s,R as c,S as l,et as u,h as d,k as f}from"./index-DGft1IHG.js";var p=e=>`by ${e?.who}`,m=e=>`派工者 ${e?.who}`,h=((e,n={})=>(n.locale??t())===`zh-TW`?m(e):p(e)),g=((e={},n={})=>(n.locale??t())===`zh-TW`?`中斷並停止`:`Interrupt and stop`),_=e=>`${e?.box} was not asked: ${e?.reason}`,v=e=>`沒有請 ${e?.box} 停止:${e?.reason}`,y=((e,n={})=>(n.locale??t())===`zh-TW`?v(e):_(e)),b=((e={},n={})=>(n.locale??t())===`zh-TW`?`停止`:`Stop`),x=e=>`Stop the main ${e?.name}`,S=e=>`停止主智慧體 ${e?.name}`,C=((e,n={})=>(n.locale??t())===`zh-TW`?S(e):x(e)),w=e=>`Ask ${e?.box} to stop the main ${e?.name}? Stop lets it quit when it is idle; Interrupt and stop aborts the turn it is in first. The box decides and tells you what happened.`,T=e=>`要請 ${e?.box} 停止主智慧體 ${e?.name} 嗎?「停止」等它閒下來才結束;「中斷並停止」會先中止它進行中的回合。由那台機器決定,結果會通知你。`,E=((e,n={})=>(n.locale??t())===`zh-TW`?T(e):w(e)),D=e=>`Mains (${e?.count})`,O=e=>`主智慧體(${e?.count})`,k=((e,n={})=>(n.locale??t())===`zh-TW`?O(e):D(e)),A=((e={},n={})=>(n.locale??t())===`zh-TW`?`前`:` ago`),j=((e={},n={})=>(n.locale??t())===`zh-TW`?`發生了什麼事`:`What happened`),M=((e={},n={})=>(n.locale??t())===`zh-TW`?`這個單位最後一次回報的時間`:`When this unit last reported`),N=t=>{let n=e(`en`,t?.count,{},!0);return n===`one`?`${t?.count} monitor`:n===`other`?`${t?.count} monitors`:`link_unit_monitors`},P=e=>`${e?.count} 個監看程序`,F=((e,n={})=>(n.locale??t())===`zh-TW`?P(e):N(e)),ee=((e={},n={})=>(n.locale??t())===`zh-TW`?`最後回報`:`Last report`),I=((e={},n={})=>(n.locale??t())===`zh-TW`?`最近沒有狀態`:`no status lately`),L=((e={},n={})=>(n.locale??t())===`zh-TW`?`盒子已超過 3 分鐘沒送狀態,這是它最後一次的內容`:`The box has sent no status for 3 minutes; this is its last one`),R=((e={},n={})=>(n.locale??t())===`zh-TW`?`請在盒子的 trust.json 加入這個專案`:`Add the project to the box's trust.json`),z=((e={},n={})=>(n.locale??t())===`zh-TW`?`為什麼停了`:`Why it stopped`),B=((e={},n={})=>(n.locale??t())===`zh-TW`?`前更新`:` ago`),V=((e={},n={})=>(n.locale??t())===`zh-TW`?``:`updated `),H={choose:s,post:(e,t)=>n(e,t)},U=12e4,W=new Map,G=(e,t)=>`${e.device}/${t.handle}`,K=(e,t,n=Date.now())=>n-(W.get(G(e,t))??-1/0)<U;async function q(e,t,n){let a=await H.choose(E({box:n,name:t.name}),[{label:b(),value:`quit`},{label:g(),value:`interrupt`,tone:`danger`}]);if(!a)return!1;let o=await H.post(`link/unit-stop`,{team:e.team,device:e.device,handle:t.handle,mode:a,reason:``}).catch(()=>({ok:!1,status:0,body:{}}));return o.ok?(W.set(G(e,t),Date.now()),!0):(await H.choose(y({box:n,reason:o.body.reason??(o.status?r({status:o.status}):i())}),[]),!1)}var J=()=>l(`<li class="ally-unit"><div class="au-head"><i class="au-dot"></i><b class="au-word"></b><span class="au-name"></span><span class="au-time" hidden><span class="au-pre"></span><span class="age"></span><span class="au-ago"></span></span><em class="au-stale" hidden></em></div><p class="au-mons" hidden><b></b><span></span></p><details class="au-mains" hidden><summary><b class="au-mains-label"></b></summary><ul class="au-main-list"></ul></details><details class="au-crash" hidden><summary><b></b><span class="au-time"><span class="age"></span><span class="au-ago"></span></span></summary><pre></pre><p class="au-hint" hidden></p></details><details class="au-report" hidden><summary><b class="au-label"></b><span class="au-peek"></span></summary><div class="md au-md"></div></details></li>`),Y,X=new WeakMap;function Z(e){let t=e.querySelector(`.au-md`),n=X.get(e)??``;e.open&&t.dataset.report!==n&&(Y?Promise.resolve(Y):c(()=>import(`./markdown-Bk5NWfKQ.js`).then(e=>e.t).then(e=>Y=e),[],import.meta.url)).then(({mount:r,parse:i})=>{e.open&&X.get(e)===n&&(t.dataset.report=n,t.replaceChildren(r(i(n))))})}function Q(e,t,n=``,r=A()){let i=e.querySelector(`.age`);i.dataset.since=String(t),i.textContent=d(t),e.querySelector(`.au-pre`)?.replaceChildren(n),e.querySelector(`.au-ago`).textContent=r}var $=()=>l(`<li class="au-main"><span class="au-mdot"></span><b class="au-mname"></b><span class="au-mstate"></span><span class="au-mby" hidden></span><button type="button" class="au-stop" hidden></button></li>`);function te(e,t,n){let r=e.querySelector(`.au-mains`);r.hidden=!t.mains.length,t.mains.length&&(f(r,`.au-mains-label`,k({count:t.mains.length})),o(r.querySelector(`.au-main-list`),t.mains.map(e=>({...e,id:e.handle})),$,(e,r)=>{let i=r.stopping||K(t,r),o=i?a():r.word;e.dataset.tone=i?`other`:r.tone,f(e,`.au-mname`,r.name),f(e,`.au-mstate`,o);let s=e.querySelector(`.au-mby`);s.hidden=r.byLabel===void 0,s.textContent=r.byLabel===void 0?``:h({who:r.byLabel});let c=e.querySelector(`.au-stop`);c.hidden=!r.canStop||i,c.textContent=b(),c.setAttribute(`aria-label`,C({name:r.name})),c.onclick=()=>{c.disabled=!0,q(t,r,n).then(t=>{c.disabled=!1,t&&(e.dataset.tone=`other`,f(e,`.au-mstate`,a()),c.hidden=!0)})}}))}function ne(e,t,n,r=``){o(e,t.map(e=>({...e,id:e.unit,named:n})),J,(e,t)=>{e.dataset.state=t.state,e.dataset.tone=t.tone,e.classList.toggle(`stale`,t.stale),f(e,`.au-word`,t.word),f(e,`.au-name`,t.named?t.unit:``);let n=e.querySelector(`.au-head > .au-time`);n.hidden=!1,n.title=M(),Q(n,t.at,V(),B());let i=e.querySelector(`.au-stale`);i.hidden=!t.stale,i.textContent=t.stale?I():``,i.title=t.stale?L():``;let a=e.querySelector(`.au-mons`);a.hidden=!t.monitors.length,t.monitors.length&&(f(a,`b`,F({count:t.monitors.length})),f(a,`span`,t.monitors.join(` · `)),a.title=t.monitors.join(`
|
|
2
2
|
`)),te(e,t,r);let o=e.querySelector(`.au-crash`);if(o.hidden=!t.crash,o.toggleAttribute(`data-trust`,t.crash?.trust===!0),t.crash){f(o,`summary > b`,t.crash.trust?z():j()),Q(o.querySelector(`summary > .au-time`),t.crash.at),f(o,`pre`,t.crash.text);let e=o.querySelector(`.au-hint`);e.hidden=!t.crash.trust,e.textContent=t.crash.trust?R():``}let s=e.querySelector(`.au-report`);s.hidden=!t.report,t.report&&(f(s,`.au-label`,ee()),f(s,`.au-peek`,u(t.report)),X.set(s,t.report),s.ontoggle=()=>Z(s),Z(s))})}export{ne as fillAllyUnits};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./ask-
|
|
1
|
+
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./ask-CoIm0jPX.js";import{n}from"./post-DDdE-PdN.js";var r=e({answerPost:()=>i,canAnswer:()=>o,mountAnswer:()=>s,trustPost:()=>a}),i=(e,t)=>t?.(e)??((t,r)=>n(e.startsWith(`grant:`)?`panes/${encodeURIComponent(e.slice(6))}/${t}`:`sessions/${encodeURIComponent(e)}/${t}`,r)),a=e=>e??(e=>n(`trust/answer`,e)),o=(e,...t)=>e===`waiting`&&t.every(Boolean),s=(e,{key:n,show:r,post:i,remote:a,accepted:o,label:s})=>t(e,i,a,{key:n,show:r},o,s);export{a,s as i,r as n,o as r,i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./runtime-ZX6HkxDa.js";import{a as t,i as n,n as r,r as i,t as a}from"./sending-aEpvzoz2.js";import{Ct as o,Yt as s,t as c,tt as l}from"./index-Pr0dJgxC.js";var u=((t={},n={})=>(n.locale??e())===`zh-TW`?`請在終端機中回答。`:`Answer it in the terminal.`),d=((t={},n={})=>(n.locale??e())===`zh-TW`?`請在終端機中回答。`:`Answer them in the terminal.`),f=((t={},n={})=>(n.locale??e())===`zh-TW`?`下方還有 ▾`:`More below ▾`),p=((t={},n={})=>(n.locale??e())===`zh-TW`?`也可以自己輸入答案。`:`It also takes your own words.`),m=((t={},n={})=>(n.locale??e())===`zh-TW`?`可以複選。`:`It takes several choices.`),h=((t={},n={})=>(n.locale??e())===`zh-TW`?`已取消。`:`Cancelled.`),g=((t={},n={})=>(n.locale??e())===`zh-TW`?`選擇`:`Choices`),_=((t={},n={})=>(n.locale??e())===`zh-TW`?`瀏覽器拒絕存取剪貼簿。`:`The browser refused the clipboard.`),v=((t={},n={})=>(n.locale??e())===`zh-TW`?`已複製到這台裝置的剪貼簿。`:`Copied to this device's clipboard.`),y=((t={},n={})=>(n.locale??e())===`zh-TW`?`複製指令`:`Copy command`),ee=((t={},n={})=>(n.locale??e())===`zh-TW`?`這個選項有預覽;請在終端機中查看。`:`It has a preview; see it in the terminal.`),b=((t={},n={})=>(n.locale??e())===`zh-TW`?`備註`:`Note`),x=((t={},n={})=>(n.locale??e())===`zh-TW`?`備註(選填)`:`Note (optional)`),S=e=>`Opened while ${e?.tool} was running; it may not be about that call.`,C=e=>`在 ${e?.tool} 執行時開啟,不一定與該呼叫有關。`,te=((t,n={})=>(n.locale??e())===`zh-TW`?C(t):S(t)),w=((t={},n={})=>(n.locale??e())===`zh-TW`?`選項`:`Options`),T=((t={},n={})=>(n.locale??e())===`zh-TW`?`另一個答案沒有被採用;這個可以送出。`:`The other answer was not taken; this one can go.`),E=((t={},n={})=>(n.locale??e())===`zh-TW`?`你的答案`:`Your own answer`),D=((t={},n={})=>(n.locale??e())===`zh-TW`?`或自己輸入答案`:`Or type your own answer`),O=((t={},n={})=>(n.locale??e())===`zh-TW`?`問題已變更,請重新閱讀。`:`The question changed; read it again.`),k=((t={},n={})=>(n.locale??e())===`zh-TW`?`session 讀不懂這個答案。`:`The session could not read that answer.`),A=((t={},n={})=>(n.locale??e())===`zh-TW`?`這個答案不符合問題。`:`That answer does not fit the question.`),j=((t={},n={})=>(n.locale??e())===`zh-TW`?`session 拒絕了這個答案。`:`The session refused that answer.`),M=((t={},n={})=>(n.locale??e())===`zh-TW`?`安全考量,遠端不支援輸入機密。請到執行 GUI 的那台電腦的終端機中回答。`:`For security, entering a secret is not supported remotely. Answer it in the terminal on the computer the GUI runs on.`),N=((t={},n={})=>(n.locale??e())===`zh-TW`?`機密內容只能在終端機輸入,這裡不接受。請到執行 GUI 的那台電腦的終端機中回答。`:`A secret is entered in the terminal only, not here. Answer it in the terminal on the computer the GUI runs on.`),P=((t={},n={})=>(n.locale??e())===`zh-TW`?`送出答案`:`Send answer`),F=((t={},n={})=>(n.locale??e())===`zh-TW`?`顯示終端機`:`Show terminal`),I=((t={},n={})=>(n.locale??e())===`zh-TW`?`已在終端機中關閉。`:`It was dismissed in the terminal.`),L=((t={},n={})=>(n.locale??e())===`zh-TW`?`它已不再開啟。`:`It is no longer open.`),R=((t={},n={})=>(n.locale??e())===`zh-TW`?`已在終端機中回答。`:`It was already answered in the terminal.`),z=((t={},n={})=>(n.locale??e())===`zh-TW`?`它在等待對話框。`:`It waits on a dialog.`),B={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1};function V(e,t,n,r,i){let{q:a}=n,o=r[a],s=B[e]??0,c=e===`ArrowUp`,l=c||e===`ArrowDown`,u=()=>({to:r.map((e,t)=>({q:(a+1+t)%r.length,part:`opt`})).find(e=>e.q!==a&&!i[e.q])??`send`});if(e===`Tab`){let e=r[a-1],i=n.part===`opt`?o.own||o.note:n.part===`own`&&o.note;return t?n.part===`opt`&&e?{to:{q:a-1,part:e.note?`note`:e.own?`own`:`opt`}}:void 0:i||a===r.length-1?void 0:{to:{q:a+1,part:`opt`}}}if(!t){if(n.part===`opt`){let t=n.o+s;if(s)return t>=0&&t<o.options?{to:{q:a,part:`opt`,o:t},...o.multiple?{}:{pick:t}}:{to:s>0&&o.own?{q:a,part:`own`}:n};if(e===`Enter`||e===` `&&!o.multiple)return{...u(),...o.multiple?{}:{pick:n.o}}}else if(n.part===`own`){if(e===`Enter`)return u();if(l)return{to:c?{q:a,part:`opt`,o:o.options-1}:{q:a,part:`note`}}}else if(c)return{to:{q:a,part:`own`}}}}function H(e,t,n){let r=e=>Math.max(0,e.opts.findIndex(e=>e.getAttribute(`aria-checked`)===`true`)),i=(e,t)=>e.opts.forEach((e,n)=>e.setAttribute(`tabindex`,n===t?`0`:`-1`)),a=e=>{for(let[n,r]of t.entries()){let t=r.opts.indexOf(e);if(t>=0)return{q:n,part:`opt`,o:t};if(e===r.own||e===r.note)return{q:n,part:e===r.own?`own`:`note`}}};t.forEach(e=>i(e,r(e)));let o=e=>{let n=a(e.target);n?.part===`opt`&&i(t[n.q],n.o)};e.addEventListener(`focusin`,o),e.addEventListener(`click`,o);let s=!1,c=!1;return e.addEventListener(`keydown`,i=>{i.key===` `&&(c=!0);let o=a(i.target);if(!o||i.ctrlKey||i.altKey||i.metaKey||i.isComposing)return;let l=i.target;if(o.part!==`opt`&&(i.key===`ArrowUp`?l.selectionStart!==0:i.key===`ArrowDown`&&l.selectionEnd!==l.value.length))return;let u=V(i.key,i.shiftKey,o,t.map(e=>({options:e.opts.length,multiple:e.multiple,own:!!e.own,note:!!e.note})),t.map(e=>e.answered()));if(!u||(i.preventDefault(),i.repeat&&[`Enter`,` `].includes(i.key)))return;if(s=i.key===` `,u.pick!==void 0){let e=t[o.q].opts[u.pick];e.getAttribute(`aria-checked`)!==`true`&&e.click()}let d=u.to===`send`?void 0:t[u.to.q],f=u.to===`send`?n():u.to.part===`opt`?d.opts[u.to.o??r(d)]:u.to.part===`own`?d.own:d.note;f&&!f.disabled&&(e.dispatchEvent(new CustomEvent(`ask-reveal`,{detail:f})),f.focus())}),e.addEventListener(`keyup`,e=>{e.key===` `&&((s||!c)&&e.preventDefault(),s=c=!1)}),()=>t[0]?.opts[r(t[0])]}var U=e=>e.multiple?m():e.freeform&&e.options.length?p():``,W=90,G=(e,t)=>l(`div`,{class:`ask-one`},e.header&&l(`b`,{class:`ask-head`},e.header),l(`p`,{class:`ask-q`,...e.question.length>W?{"data-long":``}:{}},e.question),e.context&&l(`div`,{class:`ask-ctx`},e.context),e.options.length>0&&l(`ol`,{class:`ask-opts`,"aria-label":w()},...e.options.map(e=>l(`li`,{class:`ask-opt`},l(`b`,null,e.title),e.description&&l(`small`,null,e.description)))),t&&U(e)&&l(`small`,{class:`ask-how`},U(e))),K=e=>e.replace(/[\u0000-\u0008\u000b-\u001f\u007f-\u009f\p{Cf}]/gu,`�`),q=e=>(e.select?.choices??[]).map((e,t)=>({...e,i:t})),J=(e,t,n)=>({...e.size?{choices:[...e].sort((e,t)=>e-t)}:{},...t.trim()?{text:t}:{},...n.trim()?{note:n}:{}}),Y=(e,t,n)=>({dialog:e.dialog,digest:e.digest,answerId:n,...t}),X=(e,t)=>({dialog:e.dialog,digest:e.digest,answerId:t,cancel:!0}),Z=(e,t)=>e.cancel===!0&&!(t&&e.select?.choices.every(e=>e.hereOnly)),Q={digest:O,"not-allowed":A,malformed:k};function ne(e,i=!1){let{outcome:a,reason:s,by:c}=e.body;return a===`accepted`?[`ok`,i?h():n()]:a===`stale`?[`error`,c===`local`?R():c===`cancel`?I():L()]:a===`rejected`?[`error`,(Object.hasOwn(Q,String(s))?Q[String(s)]:j)()]:a===`busy`?[`error`,t()]:a===`unknown`||e.status===504?[`error`,r(),!0]:[`error`,s??o({status:e.status})]}var re=e=>[`accepted`,`stale`,`busy`,`unknown`].includes(String(e.body.outcome))||e.status===504,$=e=>e.answer?`d\n${e.answer.dialog}\n${e.answer.digest}`:`c\n${e.callId}\n${e.why??``}`;function ie(e){if(e.dataset.cued)return;e.dataset.cued=`1`;let t=()=>{e.toggleAttribute(`data-more`,e.scrollHeight-e.scrollTop-e.clientHeight>4);for(let t of e.querySelectorAll(`.ask-acts`))t.dataset.cue=f()};for(let n of[`scroll`,`input`])e.addEventListener(n,t,{passive:!0});typeof ResizeObserver<`u`&&new ResizeObserver(t).observe(e),typeof MutationObserver<`u`&&new MutationObserver(t).observe(e,{childList:!0,subtree:!0,characterData:!0}),typeof requestAnimationFrame<`u`&&requestAnimationFrame(t)}function ae(e,t,n=location.hostname!==`127.0.0.1`,o,f,p=F){let m,h,S,C=!1,O=!1,k;for(let e of[`focusin`,`pointerdown`])document.addEventListener(e,e=>h&&!h.el.contains(e.target)&&(h.lost=void 0));let A=(e,t,n,...r)=>(e.dataset.tone=t,e.replaceChildren(n,...r)),j=()=>{if(!h)return;let e=document.activeElement;e&&e!==document.body&&e!==h.lost&&(h.lost=void 0),h.controls.forEach(e=>e.disabled=!C||O||h.done),h.send&&(h.send.disabled=!C||O||h.done||!h.pick()),e&&h.el.contains(e)&&e.disabled&&(h.lost=e);let t=h.lost;t&&!t.disabled&&h.el.contains(t)&&(!document.activeElement||document.activeElement===document.body)&&(t.focus(),h.lost=void 0)};async function I(e,n){[e.sending,O,e.spell]=[!0,!0,!1],j(),A(e.note,``,a());let s=await t(`answer`,n).catch(()=>void 0),u=l(`button`,{type:`button`,class:`cmp-link`},i());u.onclick=()=>void I(e,n);let[d,p,m]=s?ne(s,n.cancel===!0):[`error`,r(),!0];[e.done,e.sending,O,e.busy]=[!s||re(s),!1,!1,s?.body.outcome===`busy`],A(e.note,d,p,...m?[u]:[]);let h=s?.body.outcome===`accepted`?s.body.then:void 0,g=h&&c(h,{key:o?.key??``,command:e.copy,answerId:String(n.answerId??``)});g&&A(e.note,d,`${p} ${g}`),j(),e.note.scrollIntoView?.({block:`nearest`}),f&&s?.body.outcome===`accepted`&&setTimeout(()=>f(!!h&&!g),h&&!g?0:1200)}let L=(e,t,n,r,i)=>{let a=l(`button`,{type:`button`,class:`ask-opt`,role:e,"aria-checked":`false`},l(`b`,i?{"data-n":String(i)}:null,t),...n.filter(Boolean).map(e=>l(`small`,null,e)));return a.onclick=r,a};function R(e,t){let r,i=q(t).map(e=>L(`radio`,K(e.label),[e.note&&K(e.note)],()=>(r=e.i,i.forEach((n,r)=>n.setAttribute(`aria-checked`,String(q(t)[r].i===e.i))),j()),e.i+1)),a=t.select?.copy!==void 0&&l(`button`,{type:`button`,class:`cmp-link`},y());a&&(a.disabled=!navigator.clipboard,a.onclick=()=>void navigator.clipboard.writeText(t.select.copy).then(()=>A(e.note,`ok`,v()),()=>A(e.note,`error`,_())));let o=i.filter((e,r)=>!(n&&q(t)[r].hereOnly));return i.forEach(e=>!o.includes(e)&&(e.disabled=!0)),e.pick=()=>r===void 0?void 0:{choice:r},e.first=H(e.el,[{opts:i,multiple:!1,answered:()=>r!==void 0}],()=>e.send),e.controls=o,[l(`pre`,{class:`ask-title`},K(t.select.title)),l(`div`,{class:`ask-opts`,role:`radiogroup`,"aria-label":g()},...i),l(`div`,{class:`ask-acts`},e.send,e.cancel,a)]}function B(e,t){let n=t.questions.map(()=>({picks:new Set,text:l(`textarea`,{rows:`1`,maxlength:`8192`,class:`ask-own`,placeholder:D(),"aria-label":E()}),note:l(`input`,{type:`text`,maxlength:`2048`,class:`ask-own ask-memo`,placeholder:x(),"aria-label":b()})})),r=[],i=t.questions.map((t,i)=>{let a=n[i],o=t.multiple?`checkbox`:`radio`,s=t.options.map((e,n)=>L(o,e.title,[e.description,e.preview&&ee()],()=>{t.multiple||(a.picks.clear(),a.text.value=``),a.picks.has(n)?a.picks.delete(n):a.picks.add(n),s.forEach((e,t)=>e.setAttribute(`aria-checked`,String(a.picks.has(t)))),j()}));return a.text.oninput=()=>(t.multiple||(a.picks.clear(),s.forEach(e=>e.setAttribute(`aria-checked`,`false`))),j()),e.controls.push(...s,a.text,a.note),r.push({opts:s,multiple:!!t.multiple,own:a.text,note:a.note,answered:()=>a.picks.size>0||a.text.value.trim()!==``}),l(`div`,{class:`ask-one`},t.header&&l(`b`,{class:`ask-head`},t.header),l(`p`,{class:`ask-q`,...t.question.length>W?{"data-long":``}:{}},t.question),l(`div`,{class:`ask-opts`,role:t.multiple?`group`:`radiogroup`,"aria-label":w()},...s),a.text,a.note)});return e.pick=()=>n.every(e=>e.picks.size||e.text.value.trim())?{answers:n.map(e=>J(e.picks,e.text.value,e.note.value))}:void 0,e.first=H(e.el,r,()=>e.send),[...i,l(`div`,{class:`ask-acts`},e.send,e.cancel)]}function V(e){let t=e.asks??(e.ask?[e.ask]:[]),r=t.length>1,i=e.answer,a={copy:i?.select?.copy,key:$(e),el:l(`section`,{class:`ask`}),note:l(`p`,{class:`ask-note`,role:`status`,"aria-live":`polite`}),controls:[],pick:()=>void 0,done:!1,sending:!1};i&&((a.send=l(`button`,{type:`button`,class:`ask-send`},P())).onclick=()=>void(a.pick()&&I(a,Y(i,a.pick(),crypto.randomUUID()))));let c=e.tool===`secret_drop`;i&&!c&&Z(i,n)&&((a.cancel=l(`button`,{type:`button`,class:`ask-cancel`},s())).onclick=()=>void I(a,X(i,crypto.randomUUID())));let f=l(`p`,{class:`ask-term`},e.why&&t.length?e.why:`${r?d():u()} ${r||!t[0]?``:U(t[0])}`.trim()),m=o&&e.tool!==`secret_drop`&&l(`button`,{type:`button`,class:`cmp-link`},p());m&&(m.onclick=o.show);let h=e.answer?.twin&&e.tool&&e.tool!==`dialog`?[l(`p`,{class:`ask-why`},te({tool:e.tool}))]:[];return a.el.append(...h,...i&&!c?i.select?R(a,i):B(a,i):[...t.length?t.map(e=>G(e,r)):[l(`p`,{class:`ask-why`},c?n?M():N():e.why??z())],l(`div`,{class:`ask-acts`},c?l(`p`,{class:`ask-term`},u()):f,m)],a.note),a.cancel&&a.controls.push(a.cancel),a}let Q=(t,n)=>{let r=document.activeElement;h&&h!==n&&(h.focus=h.el.contains(r)?r:void 0),[m,h,S]=[t,n,n?.send?n:S],e.replaceChildren(...n?[n.el]:[]),n&&ie(n.el),j(),n?.focus&&(!document.activeElement||document.activeElement===document.body)&&n.focus.focus()};return{enter(){let e=h&&!h.done?h.first?.():void 0;return!!(e&&!e.disabled&&(e.focus(),1))},cancel(){let e=h&&!h.done?h.cancel:void 0;return!!(e&&!e.disabled&&(e.click(),1))},sending:()=>O,update(e,t){C=t,e&&(k=void clearTimeout(k)),!e&&(h?.done||h?.sending)?k??=setTimeout(()=>(k=void 0,Q()),6e3):e?h&&($(e)===h.key||!e.answer&&(h.done||h.sending)&&e.callId===m?.callId)?((h.busy||h.sending)&&!e.answer?h.spell=!0:h.busy&&h.spell&&e.answer&&([h.done,h.busy]=[!1,!1],A(h.note,``,T())),m=e):Q(e,S?.key===$(e)&&!S.done?S:V(e)):Q(),j()}}}export{ae as t};
|
|
1
|
+
import{t as e}from"./runtime-ZX6HkxDa.js";import{a as t,i as n,n as r,r as i,t as a}from"./sending-aEpvzoz2.js";import{Ct as o,Yt as s,t as c,tt as l}from"./index-DGft1IHG.js";var u=((t={},n={})=>(n.locale??e())===`zh-TW`?`請在終端機中回答。`:`Answer it in the terminal.`),d=((t={},n={})=>(n.locale??e())===`zh-TW`?`請在終端機中回答。`:`Answer them in the terminal.`),f=((t={},n={})=>(n.locale??e())===`zh-TW`?`下方還有 ▾`:`More below ▾`),p=((t={},n={})=>(n.locale??e())===`zh-TW`?`也可以自己輸入答案。`:`It also takes your own words.`),m=((t={},n={})=>(n.locale??e())===`zh-TW`?`可以複選。`:`It takes several choices.`),h=((t={},n={})=>(n.locale??e())===`zh-TW`?`已取消。`:`Cancelled.`),g=((t={},n={})=>(n.locale??e())===`zh-TW`?`選擇`:`Choices`),_=((t={},n={})=>(n.locale??e())===`zh-TW`?`瀏覽器拒絕存取剪貼簿。`:`The browser refused the clipboard.`),v=((t={},n={})=>(n.locale??e())===`zh-TW`?`已複製到這台裝置的剪貼簿。`:`Copied to this device's clipboard.`),y=((t={},n={})=>(n.locale??e())===`zh-TW`?`複製指令`:`Copy command`),ee=((t={},n={})=>(n.locale??e())===`zh-TW`?`這個選項有預覽;請在終端機中查看。`:`It has a preview; see it in the terminal.`),b=((t={},n={})=>(n.locale??e())===`zh-TW`?`備註`:`Note`),x=((t={},n={})=>(n.locale??e())===`zh-TW`?`備註(選填)`:`Note (optional)`),S=e=>`Opened while ${e?.tool} was running; it may not be about that call.`,C=e=>`在 ${e?.tool} 執行時開啟,不一定與該呼叫有關。`,te=((t,n={})=>(n.locale??e())===`zh-TW`?C(t):S(t)),w=((t={},n={})=>(n.locale??e())===`zh-TW`?`選項`:`Options`),T=((t={},n={})=>(n.locale??e())===`zh-TW`?`另一個答案沒有被採用;這個可以送出。`:`The other answer was not taken; this one can go.`),E=((t={},n={})=>(n.locale??e())===`zh-TW`?`你的答案`:`Your own answer`),D=((t={},n={})=>(n.locale??e())===`zh-TW`?`或自己輸入答案`:`Or type your own answer`),O=((t={},n={})=>(n.locale??e())===`zh-TW`?`問題已變更,請重新閱讀。`:`The question changed; read it again.`),k=((t={},n={})=>(n.locale??e())===`zh-TW`?`session 讀不懂這個答案。`:`The session could not read that answer.`),A=((t={},n={})=>(n.locale??e())===`zh-TW`?`這個答案不符合問題。`:`That answer does not fit the question.`),j=((t={},n={})=>(n.locale??e())===`zh-TW`?`session 拒絕了這個答案。`:`The session refused that answer.`),M=((t={},n={})=>(n.locale??e())===`zh-TW`?`安全考量,遠端不支援輸入機密。請到執行 GUI 的那台電腦的終端機中回答。`:`For security, entering a secret is not supported remotely. Answer it in the terminal on the computer the GUI runs on.`),N=((t={},n={})=>(n.locale??e())===`zh-TW`?`機密內容只能在終端機輸入,這裡不接受。請到執行 GUI 的那台電腦的終端機中回答。`:`A secret is entered in the terminal only, not here. Answer it in the terminal on the computer the GUI runs on.`),P=((t={},n={})=>(n.locale??e())===`zh-TW`?`送出答案`:`Send answer`),F=((t={},n={})=>(n.locale??e())===`zh-TW`?`顯示終端機`:`Show terminal`),I=((t={},n={})=>(n.locale??e())===`zh-TW`?`已在終端機中關閉。`:`It was dismissed in the terminal.`),L=((t={},n={})=>(n.locale??e())===`zh-TW`?`它已不再開啟。`:`It is no longer open.`),R=((t={},n={})=>(n.locale??e())===`zh-TW`?`已在終端機中回答。`:`It was already answered in the terminal.`),z=((t={},n={})=>(n.locale??e())===`zh-TW`?`它在等待對話框。`:`It waits on a dialog.`),B={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1};function V(e,t,n,r,i){let{q:a}=n,o=r[a],s=B[e]??0,c=e===`ArrowUp`,l=c||e===`ArrowDown`,u=()=>({to:r.map((e,t)=>({q:(a+1+t)%r.length,part:`opt`})).find(e=>e.q!==a&&!i[e.q])??`send`});if(e===`Tab`){let e=r[a-1],i=n.part===`opt`?o.own||o.note:n.part===`own`&&o.note;return t?n.part===`opt`&&e?{to:{q:a-1,part:e.note?`note`:e.own?`own`:`opt`}}:void 0:i||a===r.length-1?void 0:{to:{q:a+1,part:`opt`}}}if(!t){if(n.part===`opt`){let t=n.o+s;if(s)return t>=0&&t<o.options?{to:{q:a,part:`opt`,o:t},...o.multiple?{}:{pick:t}}:{to:s>0&&o.own?{q:a,part:`own`}:n};if(e===`Enter`||e===` `&&!o.multiple)return{...u(),...o.multiple?{}:{pick:n.o}}}else if(n.part===`own`){if(e===`Enter`)return u();if(l)return{to:c?{q:a,part:`opt`,o:o.options-1}:{q:a,part:`note`}}}else if(c)return{to:{q:a,part:`own`}}}}function H(e,t,n){let r=e=>Math.max(0,e.opts.findIndex(e=>e.getAttribute(`aria-checked`)===`true`)),i=(e,t)=>e.opts.forEach((e,n)=>e.setAttribute(`tabindex`,n===t?`0`:`-1`)),a=e=>{for(let[n,r]of t.entries()){let t=r.opts.indexOf(e);if(t>=0)return{q:n,part:`opt`,o:t};if(e===r.own||e===r.note)return{q:n,part:e===r.own?`own`:`note`}}};t.forEach(e=>i(e,r(e)));let o=e=>{let n=a(e.target);n?.part===`opt`&&i(t[n.q],n.o)};e.addEventListener(`focusin`,o),e.addEventListener(`click`,o);let s=!1,c=!1;return e.addEventListener(`keydown`,i=>{i.key===` `&&(c=!0);let o=a(i.target);if(!o||i.ctrlKey||i.altKey||i.metaKey||i.isComposing)return;let l=i.target;if(o.part!==`opt`&&(i.key===`ArrowUp`?l.selectionStart!==0:i.key===`ArrowDown`&&l.selectionEnd!==l.value.length))return;let u=V(i.key,i.shiftKey,o,t.map(e=>({options:e.opts.length,multiple:e.multiple,own:!!e.own,note:!!e.note})),t.map(e=>e.answered()));if(!u||(i.preventDefault(),i.repeat&&[`Enter`,` `].includes(i.key)))return;if(s=i.key===` `,u.pick!==void 0){let e=t[o.q].opts[u.pick];e.getAttribute(`aria-checked`)!==`true`&&e.click()}let d=u.to===`send`?void 0:t[u.to.q],f=u.to===`send`?n():u.to.part===`opt`?d.opts[u.to.o??r(d)]:u.to.part===`own`?d.own:d.note;f&&!f.disabled&&(e.dispatchEvent(new CustomEvent(`ask-reveal`,{detail:f})),f.focus())}),e.addEventListener(`keyup`,e=>{e.key===` `&&((s||!c)&&e.preventDefault(),s=c=!1)}),()=>t[0]?.opts[r(t[0])]}var U=e=>e.multiple?m():e.freeform&&e.options.length?p():``,W=90,G=(e,t)=>l(`div`,{class:`ask-one`},e.header&&l(`b`,{class:`ask-head`},e.header),l(`p`,{class:`ask-q`,...e.question.length>W?{"data-long":``}:{}},e.question),e.context&&l(`div`,{class:`ask-ctx`},e.context),e.options.length>0&&l(`ol`,{class:`ask-opts`,"aria-label":w()},...e.options.map(e=>l(`li`,{class:`ask-opt`},l(`b`,null,e.title),e.description&&l(`small`,null,e.description)))),t&&U(e)&&l(`small`,{class:`ask-how`},U(e))),K=e=>e.replace(/[\u0000-\u0008\u000b-\u001f\u007f-\u009f\p{Cf}]/gu,`�`),q=e=>(e.select?.choices??[]).map((e,t)=>({...e,i:t})),J=(e,t,n)=>({...e.size?{choices:[...e].sort((e,t)=>e-t)}:{},...t.trim()?{text:t}:{},...n.trim()?{note:n}:{}}),Y=(e,t,n)=>({dialog:e.dialog,digest:e.digest,answerId:n,...t}),X=(e,t)=>({dialog:e.dialog,digest:e.digest,answerId:t,cancel:!0}),Z=(e,t)=>e.cancel===!0&&!(t&&e.select?.choices.every(e=>e.hereOnly)),Q={digest:O,"not-allowed":A,malformed:k};function ne(e,i=!1){let{outcome:a,reason:s,by:c}=e.body;return a===`accepted`?[`ok`,i?h():n()]:a===`stale`?[`error`,c===`local`?R():c===`cancel`?I():L()]:a===`rejected`?[`error`,(Object.hasOwn(Q,String(s))?Q[String(s)]:j)()]:a===`busy`?[`error`,t()]:a===`unknown`||e.status===504?[`error`,r(),!0]:[`error`,s??o({status:e.status})]}var re=e=>[`accepted`,`stale`,`busy`,`unknown`].includes(String(e.body.outcome))||e.status===504,$=e=>e.answer?`d\n${e.answer.dialog}\n${e.answer.digest}`:`c\n${e.callId}\n${e.why??``}`;function ie(e){if(e.dataset.cued)return;e.dataset.cued=`1`;let t=()=>{e.toggleAttribute(`data-more`,e.scrollHeight-e.scrollTop-e.clientHeight>4);for(let t of e.querySelectorAll(`.ask-acts`))t.dataset.cue=f()};for(let n of[`scroll`,`input`])e.addEventListener(n,t,{passive:!0});typeof ResizeObserver<`u`&&new ResizeObserver(t).observe(e),typeof MutationObserver<`u`&&new MutationObserver(t).observe(e,{childList:!0,subtree:!0,characterData:!0}),typeof requestAnimationFrame<`u`&&requestAnimationFrame(t)}function ae(e,t,n=location.hostname!==`127.0.0.1`,o,f,p=F){let m,h,S,C=!1,O=!1,k;for(let e of[`focusin`,`pointerdown`])document.addEventListener(e,e=>h&&!h.el.contains(e.target)&&(h.lost=void 0));let A=(e,t,n,...r)=>(e.dataset.tone=t,e.replaceChildren(n,...r)),j=()=>{if(!h)return;let e=document.activeElement;e&&e!==document.body&&e!==h.lost&&(h.lost=void 0),h.controls.forEach(e=>e.disabled=!C||O||h.done),h.send&&(h.send.disabled=!C||O||h.done||!h.pick()),e&&h.el.contains(e)&&e.disabled&&(h.lost=e);let t=h.lost;t&&!t.disabled&&h.el.contains(t)&&(!document.activeElement||document.activeElement===document.body)&&(t.focus(),h.lost=void 0)};async function I(e,n){[e.sending,O,e.spell]=[!0,!0,!1],j(),A(e.note,``,a());let s=await t(`answer`,n).catch(()=>void 0),u=l(`button`,{type:`button`,class:`cmp-link`},i());u.onclick=()=>void I(e,n);let[d,p,m]=s?ne(s,n.cancel===!0):[`error`,r(),!0];[e.done,e.sending,O,e.busy]=[!s||re(s),!1,!1,s?.body.outcome===`busy`],A(e.note,d,p,...m?[u]:[]);let h=s?.body.outcome===`accepted`?s.body.then:void 0,g=h&&c(h,{key:o?.key??``,command:e.copy,answerId:String(n.answerId??``)});g&&A(e.note,d,`${p} ${g}`),j(),e.note.scrollIntoView?.({block:`nearest`}),f&&s?.body.outcome===`accepted`&&setTimeout(()=>f(!!h&&!g),h&&!g?0:1200)}let L=(e,t,n,r,i)=>{let a=l(`button`,{type:`button`,class:`ask-opt`,role:e,"aria-checked":`false`},l(`b`,i?{"data-n":String(i)}:null,t),...n.filter(Boolean).map(e=>l(`small`,null,e)));return a.onclick=r,a};function R(e,t){let r,i=q(t).map(e=>L(`radio`,K(e.label),[e.note&&K(e.note)],()=>(r=e.i,i.forEach((n,r)=>n.setAttribute(`aria-checked`,String(q(t)[r].i===e.i))),j()),e.i+1)),a=t.select?.copy!==void 0&&l(`button`,{type:`button`,class:`cmp-link`},y());a&&(a.disabled=!navigator.clipboard,a.onclick=()=>void navigator.clipboard.writeText(t.select.copy).then(()=>A(e.note,`ok`,v()),()=>A(e.note,`error`,_())));let o=i.filter((e,r)=>!(n&&q(t)[r].hereOnly));return i.forEach(e=>!o.includes(e)&&(e.disabled=!0)),e.pick=()=>r===void 0?void 0:{choice:r},e.first=H(e.el,[{opts:i,multiple:!1,answered:()=>r!==void 0}],()=>e.send),e.controls=o,[l(`pre`,{class:`ask-title`},K(t.select.title)),l(`div`,{class:`ask-opts`,role:`radiogroup`,"aria-label":g()},...i),l(`div`,{class:`ask-acts`},e.send,e.cancel,a)]}function B(e,t){let n=t.questions.map(()=>({picks:new Set,text:l(`textarea`,{rows:`1`,maxlength:`8192`,class:`ask-own`,placeholder:D(),"aria-label":E()}),note:l(`input`,{type:`text`,maxlength:`2048`,class:`ask-own ask-memo`,placeholder:x(),"aria-label":b()})})),r=[],i=t.questions.map((t,i)=>{let a=n[i],o=t.multiple?`checkbox`:`radio`,s=t.options.map((e,n)=>L(o,e.title,[e.description,e.preview&&ee()],()=>{t.multiple||(a.picks.clear(),a.text.value=``),a.picks.has(n)?a.picks.delete(n):a.picks.add(n),s.forEach((e,t)=>e.setAttribute(`aria-checked`,String(a.picks.has(t)))),j()}));return a.text.oninput=()=>(t.multiple||(a.picks.clear(),s.forEach(e=>e.setAttribute(`aria-checked`,`false`))),j()),e.controls.push(...s,a.text,a.note),r.push({opts:s,multiple:!!t.multiple,own:a.text,note:a.note,answered:()=>a.picks.size>0||a.text.value.trim()!==``}),l(`div`,{class:`ask-one`},t.header&&l(`b`,{class:`ask-head`},t.header),l(`p`,{class:`ask-q`,...t.question.length>W?{"data-long":``}:{}},t.question),l(`div`,{class:`ask-opts`,role:t.multiple?`group`:`radiogroup`,"aria-label":w()},...s),a.text,a.note)});return e.pick=()=>n.every(e=>e.picks.size||e.text.value.trim())?{answers:n.map(e=>J(e.picks,e.text.value,e.note.value))}:void 0,e.first=H(e.el,r,()=>e.send),[...i,l(`div`,{class:`ask-acts`},e.send,e.cancel)]}function V(e){let t=e.asks??(e.ask?[e.ask]:[]),r=t.length>1,i=e.answer,a={copy:i?.select?.copy,key:$(e),el:l(`section`,{class:`ask`}),note:l(`p`,{class:`ask-note`,role:`status`,"aria-live":`polite`}),controls:[],pick:()=>void 0,done:!1,sending:!1};i&&((a.send=l(`button`,{type:`button`,class:`ask-send`},P())).onclick=()=>void(a.pick()&&I(a,Y(i,a.pick(),crypto.randomUUID()))));let c=e.tool===`secret_drop`;i&&!c&&Z(i,n)&&((a.cancel=l(`button`,{type:`button`,class:`ask-cancel`},s())).onclick=()=>void I(a,X(i,crypto.randomUUID())));let f=l(`p`,{class:`ask-term`},e.why&&t.length?e.why:`${r?d():u()} ${r||!t[0]?``:U(t[0])}`.trim()),m=o&&e.tool!==`secret_drop`&&l(`button`,{type:`button`,class:`cmp-link`},p());m&&(m.onclick=o.show);let h=e.answer?.twin&&e.tool&&e.tool!==`dialog`?[l(`p`,{class:`ask-why`},te({tool:e.tool}))]:[];return a.el.append(...h,...i&&!c?i.select?R(a,i):B(a,i):[...t.length?t.map(e=>G(e,r)):[l(`p`,{class:`ask-why`},c?n?M():N():e.why??z())],l(`div`,{class:`ask-acts`},c?l(`p`,{class:`ask-term`},u()):f,m)],a.note),a.cancel&&a.controls.push(a.cancel),a}let Q=(t,n)=>{let r=document.activeElement;h&&h!==n&&(h.focus=h.el.contains(r)?r:void 0),[m,h,S]=[t,n,n?.send?n:S],e.replaceChildren(...n?[n.el]:[]),n&&ie(n.el),j(),n?.focus&&(!document.activeElement||document.activeElement===document.body)&&n.focus.focus()};return{enter(){let e=h&&!h.done?h.first?.():void 0;return!!(e&&!e.disabled&&(e.focus(),1))},cancel(){let e=h&&!h.done?h.cancel:void 0;return!!(e&&!e.disabled&&(e.click(),1))},sending:()=>O,update(e,t){C=t,e&&(k=void clearTimeout(k)),!e&&(h?.done||h?.sending)?k??=setTimeout(()=>(k=void 0,Q()),6e3):e?h&&($(e)===h.key||!e.answer&&(h.done||h.sending)&&e.callId===m?.callId)?((h.busy||h.sending)&&!e.answer?h.spell=!0:h.busy&&h.spell&&e.answer&&([h.done,h.busy]=[!1,!1],A(h.note,``,T())),m=e):Q(e,S?.key===$(e)&&!S.done?S:V(e)):Q(),j()}}}export{ae as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{m as t}from"./towermodel-DJLQh2fz.js";import{t as n}from"./runtime-ZX6HkxDa.js";import{n as r}from"./post-DDdE-PdN.js";import{Ct as i}from"./index-
|
|
1
|
+
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{m as t}from"./towermodel-DJLQh2fz.js";import{t as n}from"./runtime-ZX6HkxDa.js";import{n as r}from"./post-DDdE-PdN.js";import{Ct as i}from"./index-DGft1IHG.js";var a=((e={},t={})=>(t.locale??n())===`zh-TW`?`沒有符合這個號碼的請求。`:`No request has that number.`),o=((e={},t={})=>(t.locale??n())===`zh-TW`?`這個請求已經不在了。`:`That request is gone.`),s=((e={},t={})=>(t.locale??n())===`zh-TW`?`連續輸入三次錯誤號碼,所以所有等待中的請求都已拒絕。請按「新的配對碼」重新配對。`:`Three wrong numbers in a row, so every waiting request was denied. Press New code and pair again.`),c=((e={},t={})=>(t.locale??n())===`zh-TW`?`這個請求已經變了,請重新看過。`:`That request changed. Look at it again.`),l=((e={},t={})=>(t.locale??n())===`zh-TW`?`這個請求已經不在了,或已逾時。`:`That request is gone or has timed out.`),u=((e={},t={})=>(t.locale??n())===`zh-TW`?`這個團隊沒有在這台裝置上執行。`:`That team is not running on this device.`),d=((e={},t={})=>(t.locale??n())===`zh-TW`?`已在該裝置上取消。`:`It was cancelled at the device.`),f=((e={},t={})=>(t.locale??n())===`zh-TW`?`你已從這裡回答。`:`You answered it from here.`),p=((e={},t={})=>(t.locale??n())===`zh-TW`?`已在該裝置上回答。`:`Answered at the device itself.`),m=((e={},t={})=>(t.locale??n())===`zh-TW`?`已由團隊的另一個控制端回答。`:`Answered by another controller of this team.`),h=e=>`The answer was not sent: ${e?.reason}`,g=e=>`答案沒有送出:${e?.reason}`,_=((e,t={})=>(t.locale??n())===`zh-TW`?g(e):h(e)),v=((e={},t={})=>(t.locale??n())===`zh-TW`?`問題在有人回答前就結束了。`:`It ended before anyone answered it.`),y=((e={},t={})=>(t.locale??n())===`zh-TW`?`已送出你的答案;對方裝置還沒關閉這個問題。`:`Your answer was sent; the device has not closed the question yet.`),b=((e={},t={})=>(t.locale??n())===`zh-TW`?`你已不再負責回答這台裝置的問題;問題在那邊仍未結束。`:`You no longer answer this device's questions; it is still open there.`);function x(e){switch(e){case`sent`:return y();case`done-here`:return f();case`done-other`:return m();case`done-local`:return p();case`cancelled`:return d();case`expired`:return v();case`withdrawn`:return b()}}var S=e=>typeof e==`object`&&!!e&&!Array.isArray(e),C=e=>typeof e==`string`,w=e=>Array.isArray(e)&&e.every(e=>S(e)&&C(e.title));function T(e){let{dialog:t,dialogId:n,digest:r}=e.data;if(!C(t)||!C(n)||!C(r))return;let i;try{i=JSON.parse(t)}catch{return}if(!S(i))return;let{select:a,questions:o,cancel:s}=i,c={dialog:n,digest:r,...s===!0?{cancel:!0}:{}};if(S(a)&&C(a.title)&&Array.isArray(a.choices)&&a.choices.every(e=>S(e)&&C(e.label)))return{callId:n,tool:`dialog`,answer:{...c,select:a}};if(Array.isArray(o)&&o.length>0&&o.every(e=>S(e)&&C(e.question)&&w(e.options)))return{callId:n,tool:`dialog`,answer:{...c,questions:o}}}var E=e=>e.cancel===!0?{cancel:!0}:e.choice===void 0?{answers:e.answers}:{choice:e.choice},D=e({confirmActions:()=>M,confirmWhy:()=>N,forwardedAnswer:()=>P,joined:()=>k,lanActions:()=>I,lanReading:()=>L,outcome:()=>O,proposalActions:()=>F,taken:()=>j,waitActions:()=>A}),O=e=>{let t=e.body.outcome;return t===void 0?e.status===504?`unknown`:e.ok&&(e.body.accepted===!0||Array.isArray(e.body.entries))?`accepted`:`refused`:t===`accepted`?`accepted`:t===`unknown`?`unknown`:`refused`},k=e=>e.replace(/^([A-Z])(?=[a-z])/,e=>e.toLowerCase()),A=(e,n)=>({tell:t=>n(`input`,{text:t,as:`send`,answers:e.id}),dismiss:()=>r(`${t(e.ws)}/memory`,{op:`drop`,id:e.id}),goto:{view:`session`,ws:e.ws,key:e.tower}}),j=e=>e.ok&&e.body.outcome===void 0?{...e,body:{...e.body,outcome:`accepted`}}:e,M=e=>{let t=t=>r(`link/confirm-answer`,{dialogId:e.dialogId,digest:e.digest,allow:t}).then(j);return{allow:()=>t(!0),deny:()=>t(!1)}},N=e=>{let t=String(e.body.reason??e.body.error??``);return[[/^That request is gone/,l],[/^That team is not running/,u],[/^That request changed/,c]].find(([e])=>e.test(t))?.[1]()??(t||i({status:e.status}))},P=e=>async(t,n)=>{let a=await r(`link/dialog-answer`,{device:e.device,dialogId:e.dialogId,digest:e.digest,answer:E(n)});return a.ok?j(a):{ok:!1,status:a.status,body:{reason:_({reason:a.body.reason??i({status:a.status})})}}},F=e=>({confirm:()=>r(`${t(e.ws)}/memory`,{op:`confirm`,proposal:e.id,rev:e.rev()}),reject:()=>r(`${t(e.ws)}/memory`,{op:`reject`,proposal:e.id})}),I=e=>({approve:t=>e(`lan/approve`,{number:t}).then(j),deny:t=>e(`lan/approve`,{deny:t}).then(e=>e.ok&&e.body.denied===0?{...e,ok:!1,body:{error:`gone`,reason:o()}}:j(e)),denyAll:()=>e(`lan/approve`,{deny:`all`}).then(j)});function L(e){let t=!e.ok&&e.body.error===`no_match`&&Number(e.body.denied)>0;return{answer:e.ok||t?``:e.body.error===`no_match`?a():String(e.body.reason??i({status:e.status})),verdict:t?s():``}}export{k as a,O as c,x as d,T as f,P as i,F as l,M as n,I as o,N as r,L as s,D as t,A as u};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-DvbZ79bq.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e}from"./towermodel-DJLQh2fz.js";import{t}from"./runtime-ZX6HkxDa.js";import{i as n,n as r,r as i,t as a}from"./towerturns-CYO3ciQ8.js";import{n as o,r as s}from"./markdown-Bk5NWfKQ.js";import{E as c,R as l,S as u,Ut as d,f,rt as ee,tt as p}from"./index-DGft1IHG.js";var te=((e={},n={})=>(n.locale??t())===`zh-TW`?`可能已被當機的 run 處理過:動手前先確認。`:`A run that crashed may already have handled this: check before acting.`),ne=((e={},n={})=>(n.locale??t())===`zh-TW`?`分支摘要`:`branch summary`),re=((e={},n={})=>(n.locale??t())===`zh-TW`?`通訊紀錄`:`Comms log`),m=e=>`context compacted · ${e?.tokens} tokens summarized`,ie=e=>`上下文已壓縮 · 摘要了 ${e?.tokens} tokens`,ae=((e,n={})=>(n.locale??t())===`zh-TW`?ie(e):m(e)),oe=((e={},n={})=>(n.locale??t())===`zh-TW`?`…(於 1 MB 截斷)`:`… (cut at 1 MB)`),h=e=>`exit ${e?.code}`,g=e=>`結束碼 ${e?.code}`,se=((e,n={})=>(n.locale??t())===`zh-TW`?g(e):h(e)),_=e=>`New chapter · ${e?.date} · ${e?.why}`,ce=e=>`新的一章・${e?.date}・${e?.why}`,le=((e,n={})=>(n.locale??t())===`zh-TW`?ce(e):_(e)),v=((e={},n={})=>(n.locale??t())===`zh-TW`?`第一次對話`:`the first conversation`),y=((e={},n={})=>(n.locale??t())===`zh-TW`?`你要求開新對話`:`you asked for a new conversation`),b=((e={},n={})=>(n.locale??t())===`zh-TW`?`上一章太長了`:`the last one grew too large`),x=((e={},n={})=>(n.locale??t())===`zh-TW`?`上一章無法接續`:`the last one could not be resumed`),S=e=>`Image ${e?.n}`,C=e=>`圖片 ${e?.n}`,ue=((e,n={})=>(n.locale??t())===`zh-TW`?C(e):S(e)),de=((e={},n={})=>(n.locale??t())===`zh-TW`?`圖片無法讀取`:`Image unavailable`),w=e=>`${e?.count} image(s)`,T=e=>`${e?.count} 張圖片`,fe=((e,n={})=>(n.locale??t())===`zh-TW`?T(e):w(e)),pe=((e={},n={})=>(n.locale??t())===`zh-TW`?`收到`:`incoming`),E=((e={},n={})=>(n.locale??t())===`zh-TW`?`跳到最新`:`jump to latest`),D=e=>`${e?.count} new`,O=e=>`${e?.count} 則新訊息`,k=((e,n={})=>(n.locale??t())===`zh-TW`?O(e):D(e)),me=((e={},n={})=>(n.locale??t())===`zh-TW`?`還沒有通訊。`:`No transmissions yet.`),he=((e={},n={})=>(n.locale??t())===`zh-TW`?`通知`:`notice`),ge=((e={},n={})=>(n.locale??t())===`zh-TW`?`細節`:`details`),A=((e={},n={})=>(n.locale??t())===`zh-TW`?`表單回覆`:`form answers`),_e=((e={},n={})=>(n.locale??t())===`zh-TW`?`訊息,來自`:`message from`),j=e=>`answer from ${e?.from}`,M=e=>`${e?.from} 的回答`,ve=((e,n={})=>(n.locale??t())===`zh-TW`?M(e):j(e)),N=e=>`request from ${e?.from}`,P=e=>`${e?.from} 的請求`,ye=((e,n={})=>(n.locale??t())===`zh-TW`?P(e):N(e)),F=e=>`message from ${e?.from}`,I=e=>`${e?.from} 的訊息`,be=((e,n={})=>(n.locale??t())===`zh-TW`?I(e):F(e)),L=e=>`reply to your ask from ${e?.from}`,xe=e=>`${e?.from} 回覆了你的詢問`,Se=((e,n={})=>(n.locale??t())===`zh-TW`?xe(e):L(e)),R=((e={},n={})=>(n.locale??t())===`zh-TW`?`記憶`:`memory`),z=((e={},n={})=>(n.locale??t())===`zh-TW`?`監看`:`monitor`),Ce=((e={},n={})=>(n.locale??t())===`zh-TW`?`本機`:`this computer`),we=((e={},n={})=>(n.locale??t())===`zh-TW`?`隊友`:`teammate`),B=((e={},n={})=>(n.locale??t())===`zh-TW`?`提問,來自`:`question from`),Te=((e={},n={})=>(n.locale??t())===`zh-TW`?`回報,來自`:`report from`),Ee=((e={},n={})=>(n.locale??t())===`zh-TW`?`sb server 的通知`:`notice from the sb server`),V=((e={},n={})=>(n.locale??t())===`zh-TW`?`狀態:`:`status of`),H=((e={},n={})=>(n.locale??t())===`zh-TW`?`Straw Link 訊息`:`Straw Link message`),De=((e={},n={})=>(n.locale??t())===`zh-TW`?`喚醒鬧鐘`:`wake-up call`),U=((e={},n={})=>(n.locale??t())===`zh-TW`?`塔台事件`:`tower event`),Oe=((e={},n={})=>(n.locale??t())===`zh-TW`?`在旁開啟`:`open beside`),W=e=>`Open image ${e?.n}`,ke=e=>`打開圖片 ${e?.n}`,Ae=((e,n={})=>(n.locale??t())===`zh-TW`?ke(e):W(e)),G=e=>`show all (${e?.size})`,K=e=>`顯示全部(${e?.size})`,je=((e,n={})=>(n.locale??t())===`zh-TW`?K(e):G(e)),Me=((e={},n={})=>(n.locale??t())===`zh-TW`?`顯示全部參數`:`show all arguments`),q=e=>`◇ thought · ${e?.count} chars`,J=e=>`◇ 思考 · ${e?.count} 字元`,Ne=((e,n={})=>(n.locale??t())===`zh-TW`?J(e):q(e)),Pe=((e={},n={})=>(n.locale??t())===`zh-TW`?`◇ 思考 · 已遮蔽`:`◇ thought · redacted`),Fe=((e={},n={})=>(n.locale??t())===`zh-TW`?`這座塔台正在待命。有訊息進來時,sb server 會喚醒它跑一個 run;你在這裡送出的第一則訊息就會啟動它。`:`This tower stands by. The sb server wakes it for a run when a message arrives; your first message here starts that run.`),Ie=((e={},n={})=>(n.locale??t())===`zh-TW`?`無法取得`:`unavailable`),Le=((e={},n={})=>(n.locale??t())===`zh-TW`?`你`:`you`);function Re(){let e=!0,t=0,n=!0,r=0;return{get pinned(){return e},scrolled(r){r!==n&&(n=e=r,r&&(t=0))},parked:e=>void(r=e),moved(i,a){let o=i-r;return r=i,o<-.5&&e&&a()-i>1?!(e=!1):o!==0&&!e&&n&&a()-i<=1&&(e=!0,t=0,!0)},hold:()=>void(n=e=!1),arrived(n){return e||(t+=n),e},jump:()=>void(n=e=!0,t=0),button:n=>e&&!n?void 0:t&&!n?k({count:t}):E()}}async function ze(e,t,n,r){let i=()=>e.items.some(e=>e.id===n);for(;!i()&&e.before;)r(e.prepend(await t.older(e.before)));return i()?!0:(r(e.reset(await t.latest())),!1)}function Be(e=600){let t=[],n,r=!1,i=new Set,a=new Map,o=new Map,s=e=>e.forEach(e=>(i.delete(e.id),e.tools?.forEach(e=>(o.delete(e.id),a.delete(e.id)))));function c(e,t){let n=[];for(let r of e)i.has(r.id)||(i.add(r.id),r.kind===`result`&&r.callId?(a.set(r.callId,r),o.has(r.callId)&&t.add(o.get(r.callId))):(r.tools?.forEach(e=>o.set(e.id,r.id)),n.push(r)));return n}let l=e=>({rebuild:!1,added:[],touched:[],dropped:[],front:!1,...e});return{get items(){return t},get before(){return n},get detached(){return r},result:e=>a.get(e),reset(e){return[t,n,r]=[[],e.before,!1],i.clear(),a.clear(),o.clear(),t=c(e.items,new Set),l({rebuild:!0,added:t})},append(i){if(r)return l({});let a=new Set,o=c(i,a);t.push(...o);let u=t.length>e?t.splice(0,t.length-e):[];return s(u),u.length&&(n=t[0].id),l({added:o,touched:[...a],dropped:u.map(e=>e.id)})},prepend(i){let a=new Set,o=c(i.items,a);t.unshift(...o),n=i.before;let u=t.length>e?t.splice(e):[];return s(u),u.length&&(r=!0),l({added:o,touched:[...a],dropped:u.map(e=>e.id),front:!0})}}}var Ve=(e,t)=>({first:v,new:y,size:b,unreadable:x})[e??``]?.()??t??``,He=e=>e.head?d():c(e.role),Ue=e=>e?new Date(e).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,hour12:!1}):``,We=e=>e>=1024?`${(e/1024).toFixed(e>=10240?0:1)} KB`:`${e} B`,Ge={intercom_message:_e,subagent_result:Te,subagent_ping:B,subagent_status:V,"pi-loop-monitor":z,"memory-context":R,"doc-review":A,"straw-tower":U,"straw-link":H},Y=e=>{let t=u(`<span class="ava"><svg><use/></svg></span>`);return t.querySelector(`use`).setAttribute(`href`,`#i-${f[e]??e}`),t};function Ke(e){let t=[],n=0;for(let r of e.matchAll(/https?:\/\/[^\s<>)\]]+/g))t.push(e.slice(n,r.index),p(`a`,{href:r[0],rel:`noopener noreferrer`,target:`_blank`},r[0])),n=r.index+r[0].length;return[...t,e.slice(n)]}function X(c,u,{who:d,link:f,docFor:m,page:ie}){let h=Be(),g=new Map,_=new Set,ce=()=>_.forEach(e=>e.button.isConnected?(e.shown=!0,e.button.hidden=!e.paths.some(e=>m?.(e))):e.shown&&_.delete(e)),v=p(`div`,{class:`chat-list`}),y=p(`div`,{class:`chat-top`}),b=p(`div`,{class:`chat-live`}),x=p(`div`,{class:`chat-end`}),S=p(`button`,{class:`chat-pill`,type:`button`,hidden:``}),C=p(`p`,{class:`chat-empty`},me()),w=p(`div`,{class:`chat-scroll`,tabindex:`-1`,"aria-label":re()},y,v,b,x);c.replaceChildren(w,S);let T=Re(),E=!1,D=!1,O,k,A=0,j=!1,M,N=()=>j||M!==void 0,P=()=>(clearTimeout(M),M=setTimeout(()=>(M=void 0,T.pinned&&!h.detached&&L()),250)),F=(e=T.button(h.detached))=>(S.hidden=!e,S.textContent=e??``),I=()=>(w.scrollTop=w.scrollHeight,T.parked(w.scrollTop)),L=()=>(T.jump(),k=void 0,I(),F());async function xe(e){E=!0;let t=await ze(h,u,e,e=>(J(e),Q(e))).finally(()=>E=!1),n=g.get(e);if(O===e){if(!t||!n)return L();T.hold(),k=n,n.scrollIntoView({block:`center`}),ee(n,`lit`),clearTimeout(A),A=window.setTimeout(()=>(k=void 0,n.classList.remove(`lit`)),2e3),F()}}let R=()=>O?void xe(O):L(),z=(e,t,n,r)=>{e.disabled=!0,u.entry(n).then(n=>{let i=n&&r(n);if(i===void 0)return void(e.textContent=Ie());t.textContent=i,e.remove()},()=>e.textContent=Ie())};function B(e,t=0){if(!t||!u.pic)return null;let n=Array.from({length:t},(t,n)=>u.pic(e,n));return p(`div`,{class:`pics`},...n.map((e,t)=>{let r=p(`img`,{src:e,alt:ue({n:t+1}),loading:`lazy`,decoding:`async`}),i=p(`button`,{type:`button`,class:`pic`,"aria-label":Ae({n:t+1})},r);return r.addEventListener(`error`,()=>i.replaceWith(p(`em`,{class:`pic-gone`},de()))),i.addEventListener(`click`,()=>void l(async()=>{let{lightbox:e}=await import(`./lightbox-Db_eNcwV.js`);return{lightbox:e}},__vite__mapDeps([0]),import.meta.url).then(({lightbox:e})=>e(n,t))),i}))}function Te(e,t){let n=h.result(e.id),r=p(`pre`,{class:`out`},n?.text??``),i=p(`pre`,{class:`args`},e.args??``),a=e.cut?p(`button`,{class:`more`,type:`button`},Me()):null;a?.addEventListener(`click`,()=>z(a,i,t,t=>(e=>e&&`${e.args??``}${e.cut?`\n${oe()}`:``}`)(t.tools?.find(t=>t.id===e.id))));let o=n?.more?p(`button`,{class:`more`,type:`button`},je({size:We(n.bytes??0)})):null;o?.addEventListener(`click`,()=>z(o,r,n.id,e=>e.text));let s=e.name===`show_doc`&&m?p(`button`,{class:`more open`,type:`button`,hidden:``},Oe()):null;s?.addEventListener(`click`,t=>(t.preventDefault(),e.summary.split(`, `).forEach(e=>m?.(e)?.()))),s&&_.add({paths:e.summary.split(`, `),button:s}),s&&queueMicrotask(ce);let c=p(`details`,{class:`act`},p(`summary`,{"data-mark":n?n.isError?`error`:`done`:`working`},p(`b`,{class:`badge`}),p(`code`,null,e.name),p(`span`,{class:`sum`},e.summary),s),i,a,n&&p(`div`,{class:`result`},n.images?p(`em`,null,fe({count:n.images})):null,r,o)),l=n&&B(n.id,n.images);return l?[c,l]:[c]}let V=e=>p(`time`,null,Ue(e.at)),H=(e,t,n,r)=>p(`article`,{class:`tx you`},p(`header`,null,V(e),p(`b`,null,Le()),Y(`user`)),p(`div`,{class:`bubble`,title:r},n?p(`small`,{class:`boss-flag`},te()):null,...Ke(t),B(e.id,e.images))),U=(e,t,n,r={})=>p(`article`,{class:`tx sys`},p(`details`,{class:`notice`},p(`summary`,null,Y(`comms`),p(`em`,null,pe()),...t,V(e)),r.crashed?p(`small`,{class:`boss-flag`},te()):null,p(`pre`,null,n),r.raw?p(`details`,{class:`notice-raw`},p(`summary`,null,ge()),p(`pre`,{class:`raw`},r.raw)):null)),W=e=>{let t=n(e);return[_e(),` `,t.name&&f(t.name)||t.name,t.id?` (${t.id})`:``,` · `,Ce()]},ke=e=>e.kind===`link`?[{ask:ye,reply:Se,answer:ve,message:be}[e.what]({from:e.from}),` · `,we()]:e.kind===`intercom`?W(e.from):[e.kind===`server`?Ee():De()],G=()=>ie===!0&&d().head===!0,K=()=>p(`article`,{class:`tx skip`,hidden:``});function q(e){switch(e.kind){case`user`:{let t=d().service?i(e.text):void 0;if(t)return U(e,t.kind===`intercom`?W(t.from):[t.kind===`server`?Ee():De()],e.text??``);let n=d().service?a(e.text):void 0;return H(e,n?n.body:e.text??``,n?.crashed,n?e.text??``:``)}case`assistant`:{let t=d();if(G()&&!e.text&&!e.thought&&!e.error&&!e.stop)return K();let n=p(`pre`,{class:`thought-text`}),r=e.thought?p(`button`,{class:`thought`,type:`button`},e.thought<0?Pe():Ne({count:e.thought.toLocaleString()})):null;return e.thought&&e.thought>0&&r?.addEventListener(`click`,()=>z(r,n,e.id,e=>e.thoughtText)),p(`article`,{class:t.head?`tx in head`:`tx in`},Y(t.head?`crown`:t.role),p(`div`,{class:`tx-body`},p(`header`,null,p(`b`,null,He(t)),e.model?p(`span`,null,e.model):null,V(e),e.stop?p(`span`,{class:`stop`,"data-mark":`error`},e.stop):null),r,n,e.text?p(`div`,{class:`md`},o(s(e.text))):null,e.error?p(`p`,{class:`fault`},e.error):null,...(G()?[]:e.tools??[]).flatMap(t=>Te(t,e.id))))}case`bash`:return G()?K():p(`article`,{class:`tx sys`},p(`details`,{class:`act`},p(`summary`,{"data-mark":e.exit?`error`:`done`},p(`b`,{class:`badge`}),p(`code`,null,`shell`),p(`span`,{class:`sum`},`! ${e.command}`),e.exit?p(`span`,{class:`stop`,"data-mark":`error`},se({code:e.exit})):null),e.text?p(`pre`,{class:`out`},e.text):null));case`notice`:{let t=r(e);return t?.kind===`boss`&&d().service?H(e,t.body,t.crashed,e.text??``):G()&&(t?.kind===`server`||t?.kind===`timer`)?K():t&&t.kind!==`boss`?U(e,ke(t),t.body,t.kind===`link`?{raw:t.raw}:{crashed:t.crashed}):U(e,[Ge[e.type??``]?.()??e.type??he(),` `,e.from&&f(e.from)||(e.from??``)],e.text??``)}case`divider`:return e.type===`chapter`?p(`article`,{class:`tx rule chapter`},p(`p`,null,le({date:e.at?new Date(e.at).toLocaleDateString(t(),{year:`numeric`,month:`short`,day:`numeric`}):``,why:Ve(e.code,e.text)}))):p(`article`,{class:`tx rule`},p(`details`,null,p(`summary`,null,e.type===`compaction`?ae({tokens:(e.tokens??0).toLocaleString()}):ne()),p(`pre`,null,e.text??``)));default:return p(`article`,{class:`tx note`},e.text??``,` `,V(e))}}function J(e){e.rebuild&&(g.clear(),v.replaceChildren());for(let t of e.dropped)g.get(t)?.remove(),g.delete(t);let t=e.added.map(e=>(g.set(e.id,q(e)),g.get(e.id)));e.front?v.prepend(...t):v.append(...t),D&&!e.front&&!e.rebuild&&t.forEach(e=>(e.classList.add(`fresh`),e.dataset.born=String(Date.now()))),C.remove();let n=d().service;C.textContent=n?.state===`standing`&&!n.run?Fe():me(),h.items.length||v.append(C),y.hidden=!h.before,qe()}let X=[],Z=new Map;function qe(){let t=new Set;for(let n of X){let r=Date.parse(n.startedAt),i=h.items.findIndex(e=>e.at!==void 0&&Date.parse(e.at)>=r);if(i===0&&h.before)continue;let a=i<0?``:h.items[i].id,o=JSON.stringify([a,e(n)]),s=Z.get(n.id);if(t.add(n.id),s&&s.sig===o&&s.el.isConnected)continue;s?.el.remove();let c=e(n),l=p(`article`,{class:`tx rule conv-rule`},p(`div`,null,p(`b`,null,c.title),c.ended?p(`small`,null,c.ended):null));Z.set(n.id,{el:l,sig:o});let u=a?g.get(a):void 0;u?u.before(l):v.append(l)}for(let[e,n]of Z)t.has(e)||(n.el.remove(),Z.delete(e))}let Q=e=>e.touched.forEach(e=>{let t=g.get(e),n=h.items.find(t=>t.id===e);if(t&&n){let r=q(n);t.classList.contains(`fresh`)&&Date.now()-Number(t.dataset.born??0)<400&&r.classList.add(`fresh`),t.replaceWith(r),g.set(e,r)}}),Je=async()=>{if(!E&&h.before&&D){E=!0;try{let e=w.scrollHeight,t=h.prepend(await u.older(h.before));J(t),Q(t),w.scrollTop+=w.scrollHeight-e}finally{E=!1}h.before&&w.clientHeight&&y.getBoundingClientRect().bottom>=w.getBoundingClientRect().top&&Je()}};S.addEventListener(`click`,()=>{O=void 0,h.detached?u.latest().then(e=>(J(h.reset(e)),L())):L()});let Ye=[new IntersectionObserver(e=>e.some(e=>e.isIntersecting)&&void Je(),{root:w}),new IntersectionObserver(e=>w.clientHeight&&(T.scrolled(e.at(-1).isIntersecting),F()),{root:w,rootMargin:`0px 0px 67px`})],$,Xe=()=>($??(Ye[0].observe(y),Ye[1].observe(x)),clearTimeout($),$=setTimeout(()=>($=void 0,Ye.forEach(e=>e.disconnect())),600));w.addEventListener(`scroll`,()=>(Xe(),T.moved(w.scrollTop,()=>w.scrollHeight-w.clientHeight)&&F(),!j&&M!==void 0&&P()),{passive:!0}),w.addEventListener(`wheel`,e=>e.deltaY<0&&P(),{passive:!0}),w.addEventListener(`keydown`,e=>([`ArrowUp`,`PageUp`,`Home`].includes(e.key)||e.key===` `&&e.shiftKey)&&P(),{passive:!0}),w.addEventListener(`touchstart`,()=>(j=!0,clearTimeout(M),M=void 0),{passive:!0});for(let e of[`touchend`,`touchcancel`])w.addEventListener(e,()=>(j=!1,P()),{passive:!0});for(let e of[`wheel`,`touchstart`,`pointerdown`,`keydown`])w.addEventListener(e,()=>k=O=void 0,{passive:!0});let Ze=new ResizeObserver(()=>N()?T.parked(w.scrollTop):T.pinned&&!h.detached?I():k?.scrollIntoView({block:`center`}));return Ze.observe(v),Ze.observe(w),{log:w,docs:ce,runs(e){JSON.stringify(e)!==JSON.stringify(X)&&(X=e,qe())},apply(e){if(e.reset)J(h.reset({items:e.items??[],before:e.before})),D=!0,R();else if(e.items?.length){let t=h.append(e.items);J(t),Q(t),T.arrived(t.added.length)&&!h.detached&&!N()?L():F()}},reveal(e){O=e,D&&R()},setLive(e,t){b.dataset.mark=t,b.lastChild?.textContent!==e&&b.replaceChildren(...e?[p(`b`,{class:`badge`}),p(`span`,null,e)]:[])}}}export{X as mountChat,ue as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./towermodel-DJLQh2fz.js";import{t as e}from"./runtime-ZX6HkxDa.js";import{t}from"./open_main_title-Ccbha5pD.js";import{n,t as r}from"./unit_count-CJMBHDBg.js";import{D as i,E as a,F as o,I as s,N as c,O as l,S as u,T as d,Ut as f,Wt as p,_ as m,b as h,g,i as _,k as v,m as y,pt as b,s as x,tt as S}from"./index-
|
|
1
|
+
import"./towermodel-DJLQh2fz.js";import{t as e}from"./runtime-ZX6HkxDa.js";import{t}from"./open_main_title-Ccbha5pD.js";import{n,t as r}from"./unit_count-CJMBHDBg.js";import{D as i,E as a,F as o,I as s,N as c,O as l,S as u,T as d,Ut as f,Wt as p,_ as m,b as h,g,i as _,k as v,m as y,pt as b,s as x,tt as S}from"./index-DGft1IHG.js";var ee=((t={},n={})=>(n.locale??e())===`zh-TW`?`關閉清單`:`Close the list`),C=((t={},n={})=>(n.locale??e())===`zh-TW`?`切換到其他單位`:`Switch to a unit`),w=((t={},n={})=>(n.locale??e())===`zh-TW`?`回到主地圖`:`Back to the map`),T=((t={},n={})=>(n.locale??e())===`zh-TW`?`所有單位`:`All units`),E=((t={},n={})=>(n.locale??e())===`zh-TW`?`指揮中`:`commanding`),D=((t={},n={})=>(n.locale??e())===`zh-TW`?`已結束`:`ended`),O=((t={},n={})=>(n.locale??e())===`zh-TW`?`錯誤`:`error`),k=((t={},n={})=>(n.locale??e())===`zh-TW`?`閒置`:`idle`),A=((t={},n={})=>(n.locale??e())===`zh-TW`?`無狀態`:`unknown`),j=((t={},n={})=>(n.locale??e())===`zh-TW`?`等待`:`waiting`),M=((t={},n={})=>(n.locale??e())===`zh-TW`?`工作中`:`working`),N=.4;function P(e,t,n){let[r,i]=[Math.abs(e),Math.abs(t)];return Math.max(r,i)<10?`wait`:r>=1.7*i&&(n?e<0:e>0)?`drag`:`pass`}var F=(e,t,n)=>Math.abs(n)>=.45?n>0:e>=t*N,I=(e,t)=>t||e.some(e=>e.editable||e.sink||e.scrollsX||[`input`,`textarea`,`select`].includes(e.tag));function L(e){let t=e,n=getComputedStyle(e).overflowX;return{tag:e.tagName.toLowerCase(),editable:t.isContentEditable,sink:e.matches(`.composer, .term-sink`),scrollsX:(n===`auto`||n===`scroll`)&&e.scrollWidth>e.clientWidth+1}}var R=e=>{let t=[];for(let n=e;n;n=n.parentElement)t.push(L(n));return t},z={working:M,waiting:j,idle:k,done:D,error:O,unknown:A,commanding:E},B=(e,t,n)=>(t?D:z[e])({},n&&{locale:n}),V=(e,t)=>t.flatMap(t=>[t,...t.subs.map(e=>({...e,sub:!0}))].map(t=>({id:t.key,key:t.key,ws:e,name:t.name,role:t.role,mark:t.mark,note:t.note,ended:!!t.ended,sub:`sub`in t,control:!!t.control})));function H(e){return e.bases.flatMap(e=>{let t=[{id:`tower`,rows:e.tower?V(e.id,[{...e.tower,role:`tower`}]):[]},...e.tabs.map(t=>({id:t.id,label:b({label:t.label}),rows:V(e.id,t.units)})),{id:`outside`,label:n(),rows:V(e.id,e.outside)}].filter(e=>e.rows.length);return t.length?[{id:e.id,label:e.label,mark:e.mark,groups:t}]:[]})}var U=(e,t)=>e?.head?{mark:e.head.mark,word:e.head.state===`absent`?p({},t&&{locale:t}):B(e.head.mark,!1,t)}:void 0,W=e=>e.role===`main`&&e.mark===`idle`,G=e=>e.reduce((e,t)=>(t.sub?e.at(-1)?.subs.push(t):e.push({...t,subs:[]}),e),[]),K=()=>u(`<div class="unit"><div class="card"><a class="hit"></a>${y}<div class="meta"><span class="name"></span><span class="line"><em class="role"></em><b class="dstate"></b><span class="note"></span></span></div><button type="button" class="quit-btn" data-close="unit" hidden></button></div><div class="subs"></div></div>`),q=()=>u(`<div class="unit tower-row"><div class="trow"><a class="tower-go">${y}<span class="meta"><span class="name"></span><span class="line"><em class="role"></em><b class="dstate"></b></span></span></a><button type="button" class="pair-btn tower-add"></button></div><div class="subs"></div></div>`),J=()=>u(`<section class="dbase"><h3><a></a><small></small></h3><div class="dgroups"></div></section>`),te=()=>u(`<div class="dgroup"><h4></h4><div class="drows"></div></div>`),ne=()=>matchMedia(`(max-width: 640px)`).matches;function Y(e=()=>!1){let n=S(`div`,{class:`drawer-body`}),p=S(`button`,{type:`button`,class:`x`,"aria-label":ee()},`×`),y=S(`a`,{class:`drawer-map`},w()),b=S(`button`,{type:`button`,class:`pair-btn`,"data-close":`dismiss-all`,hidden:``}),E=S(`div`,{class:`drawer-sweep`,hidden:``},b);g(y,{view:`map`});let D=u(`<a class="drawer-head"><svg viewBox="0 0 512 512" aria-hidden="true"><use href="#i-crown"/></svg><span class="name"></span><b class="dstate"></b></a>`);D.hidden=!0,g(D,{view:`head`});let O=S(`aside`,{class:`drawer`,"aria-label":C()},S(`header`,null,S(`b`,null,T()),p),D,n,S(`footer`,{class:`drawer-foot`},E,y)),k=S(`div`,{class:`drawer-veil`});document.body.append(k,O);let A,j,M=!1,N=!1,L=0,z=0,V,Y=()=>{let e=U(A);D.hidden=!e,e&&(d(D,e.mark),v(D,`.name`,f()),v(D,`.dstate`,e.word),D.classList.toggle(`current`,M),D.toggleAttribute(`data-news`,_(A?.head,x())&&!M)),s(b,A??{bases:[]}),E.hidden=b.hidden;let o=(e,t)=>{g(e.querySelector(`.hit`),{view:`session`,ws:t.ws,key:t.key}),e.querySelector(`.hit`).setAttribute(`aria-label`,`${t.name}: ${B(t.mark,t.ended)}`),e.classList.toggle(`current`,t.key===j),e.toggleAttribute(`data-dismiss`,t.role===`subagent`&&t.ended),e.dataset.key=t.key,d(e,t.mark),h(e.querySelector(`.plate`),t.role,t.mark),v(e,`.name`,t.name),v(e,`.role`,a(t.role)),v(e,`.dstate`,B(t.mark,t.ended)),i(e,`.note`,t.note,t.mark,t.note?void 0:``);let n=e.querySelector(`:scope > .card > .quit-btn`);W(t)?c(n,t):n.hidden=!0,l(e.querySelector(`.subs`),t.subs??[],K,o)},u=(e,n)=>{let r=e.querySelector(`.tower-go`),i=e.querySelector(`.tower-add`),s=A?.bases.find(e=>e.id===n.ws);g(r,{view:`session`,ws:n.ws,key:n.key}),r.setAttribute(`aria-label`,`${n.name}: ${B(n.mark,n.ended)}`),e.classList.toggle(`current`,n.key===j),e.dataset.key=n.key,d(e,n.mark),h(r.querySelector(`.plate`),`tower`,n.mark),v(r,`.name`,n.name),v(r,`.role`,a(`tower`)),v(r,`.dstate`,B(n.mark,n.ended)),i.hidden=!s,s&&(m(i,s),i.setAttribute(`aria-label`,t({base:s.label}))),l(e.querySelector(`.subs`),n.subs,K,o)};l(n,H(A??{bases:[]}),J,(e,t)=>{d(e,t.mark),v(e,`h3 a`,t.label),g(e.querySelector(`h3 a`),{view:`workspace`,ws:t.id}),v(e,`small`,r({count:t.groups.reduce((e,t)=>e+t.rows.length,0)})),l(e.querySelector(`.dgroups`),t.groups,te,(e,t)=>{v(e,`h4`,t.label??``),e.querySelector(`h4`).toggleAttribute(`hidden`,!t.label),t.id===`tower`?l(e.querySelector(`.drows`),G(t.rows),q,u):l(e.querySelector(`.drows`),G(t.rows),K,o)})})},X=e=>{L=Math.max(0,Math.min(z,e)),O.style.setProperty(`--dx`,`${L}px`),k.style.opacity=String(z?L/z:0),k.style.pointerEvents=L>0?`auto`:`none`},Z=e=>{N=e,O.classList.toggle(`on`,e),O.inert=!e,document.documentElement.classList.remove(`drawer-drag`),X(e?z:0)},Q=()=>{z=O.offsetWidth,Y(),O.classList.add(`on`),document.documentElement.classList.add(`drawer-drag`)};O.inert=!0,document.addEventListener(`touchstart`,t=>{let n=t.target,r=O.contains(n)||n===k;if(V=void 0,!ne()||e()||t.touches.length!==1||document.querySelector(`dialog.sheet[open], dialog.lightbox[open], [popover]:popover-open`)||(N?!r:I(R(n),!!getSelection()?.toString())))return;let i=t.touches[0],a=N?n.closest(`.unit[data-dismiss] > .card`)??void 0:void 0;V={x0:i.clientX,y0:i.clientY,mode:`wait`,was:N,base:L,last:i.clientX,at:performance.now(),v:0,card:a}},{passive:!0}),document.addEventListener(`touchmove`,e=>{if(!V||V.mode===`pass`)return;let t=e.touches[0],n=t.clientX-V.x0,r=t.clientY-V.y0;if(V.mode===`wait`){let e=P(n,r,V.was);if(e===`wait`)return;if(e===`pass`&&V.card&&P(n,r,!1)===`drag`)V.mode=`card`,V.card.classList.add(`swiping`);else if(e===`pass`)return void(V.mode=`pass`);else V.mode=`drag`,Q()}e.preventDefault();let i=performance.now();if(V.v=(t.clientX-V.last)/Math.max(1,i-V.at),[V.last,V.at]=[t.clientX,i],V.mode!==`card`)return X(V.base+n);let a=Math.max(0,n);V.card.style.setProperty(`--sx`,`${a}px`),V.card.style.setProperty(`--so`,String(1-a/V.card.offsetWidth))},{passive:!1});let re=(e,t)=>{e.classList.remove(`swiping`),e.style.removeProperty(`--sx`),e.style.removeProperty(`--so`),t&&(e.classList.add(`gone`),o({key:e.parentElement.dataset.key}).then(t=>t||e.classList.remove(`gone`)))},$=e=>{let t=V;V=void 0,t?.mode===`drag`&&Z(F(L,z,t.v)),t?.mode===`card`&&re(t.card,e.type===`touchend`&&F(Math.max(0,t.last-t.x0),t.card.offsetWidth,t.v))};return document.addEventListener(`touchend`,$),document.addEventListener(`touchcancel`,$),k.addEventListener(`click`,()=>Z(!1)),O.addEventListener(`click`,e=>e.target.closest(`a[data-route], button[data-open], .x`)&&Z(!1)),document.addEventListener(`keydown`,e=>N&&e.key===`Escape`&&(e.preventDefault(),Z(!1)),!0),document.addEventListener(`sb-drawer`,()=>(N||Q(),Z(!N))),{net(e){A=e,N&&Y()},route(e){j=e.view===`session`?e.key:void 0,M=e.view===`head`||e.view===`session`&&e.ws===`@head`,y.toggleAttribute(`aria-current`,e.view===`map`),N&&Y()}}}export{Y as mountDrawer};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./zenchunk-EDuPI-9_.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{C as e,E as t,S as n,T as r,a as i,b as a,f as o,g as s,h as c,m as l,p as u,u as d,v as f,w as p}from"./towermodel-DJLQh2fz.js";import{i as m,n as h,r as g,t as _}from"./runtime-ZX6HkxDa.js";import{n as v}from"./post-DDdE-PdN.js";var y={view:`sb.view`,locale:`sb-locale`,sound:`sb.sound`,volume:`sb.volume`,remind:`sb.remind`,wide:`sb.dialog-wide`,zenHint:`sb.zen.homehint`,zenMusic:`sb.zen.music`,zenTrack:`sb.zen.track`},ee={view:e=>e??`auto`,locale:e=>e??null,sound:e=>e===`1`,volume:e=>Math.min(100,Math.max(0,Number(e??`60`)||0)),remind:e=>(e??`1`)===`1`,wide:e=>e===`1`,zenHint:e=>e!==null,zenMusic:e=>e===`1`,zenTrack:e=>e??null};function b(e){let t=[];return{get(t){let n;try{n=e.getItem?.(y[t])}catch{}return ee[t](n)},set(t,n){try{return e.setItem(y[t],typeof n==`boolean`?n?`1`:`0`:String(n)),!0}catch{return!1}},on(e,n){t.length||addEventListener(`storage`,e=>t.forEach(([t,n])=>e.key===t&&n())),t.push([y[e],n])}}}var x=b({getItem:e=>localStorage.getItem(e),setItem:(e,t)=>localStorage.setItem(e,t)});y.view;var te={geek:`#000000`,zen:`#14110e`},ne=e=>e===`standard`||e===`geek`||e===`zen`?e:`auto`,re=(e,t=`auto`)=>t===`auto`?e?`geek`:`standard`:t,ie=(e,t,n=`auto`)=>e===`auto`?re(t,n):e;function ae(){return{root:document.documentElement,meta:document.querySelector(`meta[name="theme-color"]`),server:document.querySelector(`meta[name="sb-view"]`),media:matchMedia(`(prefers-contrast: more)`),storage:localStorage}}function oe(e=ae()){let t=[],n=[],r=e.meta?.content??``,i=b(e.storage),a=()=>ne(i.get(`view`)),o=a(),s=ne(e.server?.content),c,l=!1,u=()=>l?`zen`:ie(o,e.media.matches,s);function d(n){l&&n===`pick`&&(l=!1);let i=u(),a=i===`zen`&&e.root.dataset.zenAway!==void 0?`standard`:i;e.root.dataset.view=a,e.meta&&(e.meta.content=a===`standard`?r:te[a]);let o=n===`pick`||n===`follow`&&c!==void 0&&c!==i;if(c=i,o)for(let e of t)e(i,n)}return d(),e.media.addEventListener(`change`,()=>d(`follow`)),{choice:()=>o,view:u,server:()=>s,setServer(t){let r=ne(typeof t==`string`?t:void 0);if(r!==s){l||=o===`auto`&&u()===`zen`&&e.root.dataset.zenAway===void 0&&ie(o,e.media.matches,r)!==`zen`,s=r;for(let e of n)e(s);d(`follow`)}},set(e){o=e,i.set(`view`,e),d(`pick`)},release(){l=!1},refresh:()=>d(),reread(){o=a(),d(`pick`)},onStored:e=>i.on(`view`,e),onChange:e=>void t.push(e),onServer:e=>void n.push(e)}}function se(e,t,n){let r=[...e.querySelectorAll(`button[data-choice]`)],i=r.find(e=>e.dataset.choice===`auto`),a=()=>{i&&n&&(i.textContent=n(t.server())),e.dataset&&e.toggleAttribute(`data-following`,t.server()!==`auto`)};a(),t.onServer(a);let o=()=>r.forEach(e=>e.setAttribute(`aria-pressed`,String(e.dataset.choice===t.choice())));for(let e of r)e.addEventListener(`click`,()=>(t.set(ne(e.dataset.choice)),o()));t.onStored(()=>(t.reread(),o())),o()}var ce=(e,t)=>(delete t.dataset.zenAway,e.reread());function le(e,t,n,r=()=>ce(t,n)){let i=()=>e.hidden=t.view()!==`zen`||n.dataset.zenAway===void 0;return t.onChange(i),e.addEventListener(`click`,()=>(r(),i())),i(),i}function ue(e){let t=[],n=(e,r,i)=>(t.push({base:e,unit:r,sub:i}),r.subs.forEach(t=>n(e,t,!0)));for(let t of e.bases)[...t.tower?[t.tower]:[],...t.tabs.flatMap(e=>e.units),...t.outside].forEach(e=>n(t,e,!1));return t}var de=e=>e.mark===`waiting`||e.pending?0:1,fe=e=>[...e].filter(e=>de(e)===0),pe=e=>`${e?.n}m`,me=e=>`${e?.n} 分鐘`,he=((e,t={})=>(t.locale??_())===`zh-TW`?me(e):pe(e)),ge=e=>`${e?.n}s`,_e=e=>`${e?.n} 秒`,ve=((e,t={})=>(t.locale??_())===`zh-TW`?_e(e):ge(e)),ye=((e={},t={})=>(t.locale??_())===`zh-TW`?`警示`:`Alerts`),be=((e={},t={})=>(t.locale??_())===`zh-TW`?`所有基地`:`all bases`),xe=e=>`ally run · ${e?.device}`,Se=e=>`隊友 run · ${e?.device}`,Ce=((e,t={})=>(t.locale??_())===`zh-TW`?Se(e):xe(e)),we=((e={},t={})=>(t.locale??_())===`zh-TW`?`唯讀查看這個隊友 run 的通訊`:`Read this ally run's comms (read only)`),Te=((e={},t={})=>(t.locale??_())===`zh-TW`?`還看不到它的通訊:尚未取得這個 run 的工作階段檔`:`Its comms are not shown yet: the run's session file is not known`),Ee=e=>`${e?.team} · teammate`,De=e=>`${e?.team} · 隊友`,Oe=((e,t={})=>(t.locale??_())===`zh-TW`?De(e):Ee(e)),ke=((e={},t={})=>(t.locale??_())===`zh-TW`?`隊友`:`teammate`),Ae=e=>`Teams: ${e?.teams}`,je=e=>`團隊:${e?.teams}`,Me=((e,t={})=>(t.locale??_())===`zh-TW`?je(e):Ae(e)),Ne=((e={},t={})=>(t.locale??_())===`zh-TW`?`、`:`, `),Pe=((e={},t={})=>(t.locale??_())===`zh-TW`?`返回`:`Back`),Fe=((e={},t={})=>(t.locale??_())===`zh-TW`?``:`.`),Ie=((e={},t={})=>(t.locale??_())===`zh-TW`?`最後更新:`:`Last update`),Le=e=>`Disconnected. Gave up after ${e?.tries} tries; it reconnects when you return to this tab.`,Re=e=>`連線中斷。重試 ${e?.tries} 次後放棄;回到此分頁時會重新連線。`,ze=((e,t={})=>(t.locale??_())===`zh-TW`?Re(e):Le(e)),Be=e=>`The server is up but cannot read the net: ${e?.problem}`,Ve=e=>`伺服器正常,但讀不到網:${e?.problem}`,He=((e,t={})=>(t.locale??_())===`zh-TW`?Ve(e):Be(e)),Ue=((e={},t={})=>(t.locale??_())===`zh-TW`?`與稻草網的連線中斷,正在重新連線…畫面顯示的是最後已知狀態。`:`Disconnected from the straw net. Reconnecting… The view shows the last known state.`),We=e=>`Disconnected from the straw net. Reconnecting (try ${e?.attempt})… The view shows the last known state.`,Ge=e=>`與稻草網的連線中斷,正在重新連線(第 ${e?.attempt} 次)…畫面顯示的是最後已知狀態。`,Ke=((e,t={})=>(t.locale??_())===`zh-TW`?Ge(e):We(e)),qe=((e={},t={})=>(t.locale??_())===`zh-TW`?`這個網址在這裡無法使用(sb server 可能重新啟動過,或連結已過期):在這台電腦請開啟 /boss gui;在手機請重新掃描新的 QR code。`:`This address does not work here (the sb server may have restarted, or the link expired): on this computer open /boss gui; on a phone scan a new QR code.`),Je=((e={},t={})=>(t.locale??_())===`zh-TW`?`Straw Net:所有基地`:`Straw Net: all bases`),Ye=((e={},t={})=>(t.locale??_())===`zh-TW`?`取消`:`Cancel`),Xe=((e={},t={})=>(t.locale??_())===`zh-TW`?`關閉`:`Close`),Ze=e=>`Quit base ${e?.name}`,Qe=e=>`關掉基地 ${e?.name}`,$e=((e,t={})=>(t.locale??_())===`zh-TW`?Qe(e):Ze(e)),et=e=>`Quit base ${e?.name}? Every agent in it and its tower quit. Nothing quits while anything running would be lost.`,tt=e=>`要關掉基地 ${e?.name} 嗎?裡面所有 agent 和塔台都會退出。有會遺失的東西時什麼都不關。`,nt=((e,t={})=>(t.locale??_())===`zh-TW`?tt(e):et(e)),rt=e=>`Quit squad ${e?.name}`,it=e=>`關掉小隊 ${e?.name}`,at=((e,t={})=>(t.locale??_())===`zh-TW`?it(e):rt(e)),ot=e=>`Quit squad ${e?.name}? Every agent in it quits.`,st=e=>`要關掉小隊 ${e?.name} 嗎?裡面所有 agent 都會退出。`,ct=((e,t={})=>(t.locale??_())===`zh-TW`?st(e):ot(e)),lt=e=>`Quit the tower ${e?.name}? The base's mains become members again.`,ut=e=>`要關掉塔台 ${e?.name} 嗎?這個基地的主智慧體都會降格成成員。`,dt=((e,t={})=>(t.locale??_())===`zh-TW`?ut(e):lt(e)),ft=e=>`Quit ${e?.name}`,pt=e=>`關掉 ${e?.name}`,mt=((e,t={})=>(t.locale??_())===`zh-TW`?pt(e):ft(e)),ht=e=>`Quit ${e?.name}? It quits pi and its pane closes.`,gt=e=>`要關掉 ${e?.name} 嗎?它會退出 pi,窗格也會關掉。`,_t=((e,t={})=>(t.locale??_())===`zh-TW`?gt(e):ht(e)),vt=((e={},t={})=>(t.locale??_())===`zh-TW`?`連線中…`:`Connecting…`),yt=((e={},t={})=>(t.locale??_())===`zh-TW`?`重新連線中…`:`Reconnecting…`),bt=((e={},t={})=>(t.locale??_())===`zh-TW`?`重試`:`Try again`),xt=e=>`control tower · ${e?.state}`,St=e=>`塔台 · ${e?.state}`,Ct=((e,t={})=>(t.locale??_())===`zh-TW`?St(e):xt(e)),wt=((e={},t={})=>(t.locale??_())===`zh-TW`?`圖示來自 game-icons.net(Lorc、Delapouite),CC BY 3.0。`:`Icons from game-icons.net by Lorc and Delapouite, CC BY 3.0.`),Tt=((e={},t={})=>(t.locale??_())===`zh-TW`?`移除`:`Dismiss`),Et=e=>`Dismiss finished (${e?.count})`,Dt=e=>`移除已完成(${e?.count})`,Ot=((e,t={})=>(t.locale??_())===`zh-TW`?Dt(e):Et(e)),kt=e=>`Dismiss ${e?.name}`,At=e=>`從畫面移除 ${e?.name}`,jt=((e,t={})=>(t.locale??_())===`zh-TW`?At(e):kt(e)),Mt=((e={},t={})=>(t.locale??_())===`zh-TW`?`文件`:`Documents`),Nt=((e={},t={})=>(t.locale??_())===`zh-TW`?`第一則訊息會開啟主塔台`:`The head tower opens with your first message`),Pt=((e={},t={})=>(t.locale??_())===`zh-TW`?`已回覆`:`answered`),Ft=((e={},t={})=>(t.locale??_())===`zh-TW`?`已處理`:`handled`),It=((e={},t={})=>(t.locale??_())===`zh-TW`?`回給了別人,沒回報主塔台`:`answered someone else, not the head`),Lt=((e={},t={})=>(t.locale??_())===`zh-TW`?`回覆沒送到主塔台`:`its reply did not reach the head`),Rt=((e={},t={})=>(t.locale??_())===`zh-TW`?`沒有塔台`:`no tower`),zt=((e={},t={})=>(t.locale??_())===`zh-TW`?`已收到`:`received`),Bt=((e={},t={})=>(t.locale??_())===`zh-TW`?`沒回應`:`no answer`),Vt=((e={},t={})=>(t.locale??_())===`zh-TW`?`等回覆`:`waiting`),Ht=((e={},t={})=>(t.locale??_())===`zh-TW`?`交給各塔台的工作`:`Work handed to the towers`),Ut=((e={},t={})=>(t.locale??_())===`zh-TW`?`關閉主塔台`:`Close the head tower`),Wt=((e={},t={})=>(t.locale??_())===`zh-TW`?`要關閉主塔台嗎?對話和記憶都會保留。`:`Close the head tower? The conversation and its memory are kept.`),Gt=e=>`${e?.age} ago · ${e?.handled}/${e?.count} handled`,Kt=e=>`${e?.age}前・已處理 ${e?.handled}/${e?.count}`,qt=((e,t={})=>(t.locale??_())===`zh-TW`?Kt(e):Gt(e)),Jt=e=>`${e?.age} ago · ${e?.handled}/1 handled`,Yt=e=>`${e?.age}前・已處理 ${e?.handled}/1`,Xt=((e,t={})=>(t.locale??_())===`zh-TW`?Yt(e):Jt(e)),Zt=((e={},t={})=>(t.locale??_())===`zh-TW`?`主塔台有新的話`:`The head tower said something new`),Qt=e=>`Older (${e?.count})`,$t=e=>`更早(${e?.count})`,en=((e,t={})=>(t.locale??_())===`zh-TW`?$t(e):Qt(e)),tn=((e={},t={})=>(t.locale??_())===`zh-TW`?`你說`:`You said`),nn=((e={},t={})=>(t.locale??_())===`zh-TW`?`主塔台送出`:`Head sent`),rn=((e={},t={})=>(t.locale??_())===`zh-TW`?`送給`:`To`),an=((e={},t={})=>(t.locale??_())===`zh-TW`?`已被下一則更正`:`corrected by the next`),on=e=>`Replaced orders (${e?.count})`,sn=e=>`被取代的舊指令(${e?.count})`,cn=((e,t={})=>(t.locale??_())===`zh-TW`?sn(e):on(e)),ln=e=>`corrects ${e?.count} earlier`,un=e=>`更正了前 ${e?.count} 則`,dn=((e,t={})=>(t.locale??_())===`zh-TW`?un(e):ln(e)),fn=((e={},t={})=>(t.locale??_())===`zh-TW`?`、`:`, `),pn=((e={},t={})=>(t.locale??_())===`zh-TW`?`尚未開啟`:`not open`),S=((e={},t={})=>(t.locale??_())===`zh-TW`?`主塔台`:`Head tower`),mn=((e={},t={})=>(t.locale??_())===`zh-TW`?`語言`:`Language`),hn=e=>`${e?.label} (${e?.short}) asks you to confirm a ${e?.tool} call from its tower ${e?.tower}, which acts on a message you sent`,gn=e=>`${e?.label}(${e?.short})請你確認它的塔台 ${e?.tower} 的一次 ${e?.tool} 呼叫,該塔台正在處理你送出的訊息`,_n=((e,t={})=>(t.locale??_())===`zh-TW`?gn(e):hn(e)),vn=e=>`${e?.label} (${e?.short}) asks you to confirm a ${e?.tool} call from its tower`,yn=e=>`${e?.label}(${e?.short})請你確認它塔台的一次 ${e?.tool} 呼叫`,bn=((e,t={})=>(t.locale??_())===`zh-TW`?yn(e):vn(e)),xn=e=>`${e?.label} (${e?.short}) in team ${e?.team} asks a question (${e?.owner}).`,Sn=e=>`團隊 ${e?.team} 的 ${e?.label}(${e?.short})問了一個問題(${e?.owner})。`,Cn=((e,t={})=>(t.locale??_())===`zh-TW`?Sn(e):xn(e)),wn=e=>`Team ${e?.team} stopped: ${e?.reason}`,Tn=e=>`團隊 ${e?.team} 已停止:${e?.reason}`,En=((e,t={})=>(t.locale??_())===`zh-TW`?Tn(e):wn(e)),Dn=e=>{let t=p(`en`,e?.count,{},!0);return t===`one`?`${e?.count} message has waited more than 10 minutes for an idle tower in team ${e?.team}`:t===`other`?`${e?.count} messages have waited more than 10 minutes for an idle tower in team ${e?.team}`:`link_a_held`},On=e=>`團隊 ${e?.team} 有 ${e?.count} 則訊息已等了超過 10 分鐘,塔台一直不閒`,kn=((e,t={})=>(t.locale??_())===`zh-TW`?On(e):Dn(e)),An=e=>{let t=p(`en`,e?.count,{},!0);return t===`one`?`Team ${e?.team}: ${e?.who} sent ${e?.count} message ${e?.ago} ago, for ${e?.where}. It is not delivered yet; it goes through as soon as the tower can take it, and it is dropped on ${e?.drop}.`:t===`other`?`Team ${e?.team}: ${e?.who} sent ${e?.count} messages, the oldest ${e?.ago} ago, for ${e?.where}. They are not delivered yet; they go through as soon as the tower can take them, and the oldest is dropped on ${e?.drop}.`:`link_a_inbox`},jn=e=>`團隊 ${e?.team}:${e?.who} 傳來 ${e?.count} 則訊息,${e?.ago}前起就在等,要交給${e?.where},還沒送達。塔台能接手時就會自動送達;${e?.drop} 起會開始丟棄。`,Mn=((e,t={})=>(t.locale??_())===`zh-TW`?jn(e):An(e)),Nn=e=>`Waking the tower did not work (${e?.reason}); it is tried again later.`,Pn=e=>`叫醒塔台沒有成功(${e?.reason});稍後會再試。`,Fn=((e,t={})=>(t.locale??_())===`zh-TW`?Pn(e):Nn(e)),In=((e={},t={})=>(t.locale??_())===`zh-TW`?`這台電腦上沒有可以叫醒塔台的工作區。開啟專案的工作區,訊息就會送達。`:`This computer has no workspace for it to wake the tower of. Open the project's workspace and the messages go through.`),Ln=((e={},t={})=>(t.locale??_())===`zh-TW`?`這台電腦停用了塔台執行功能,所以沒有東西能叫醒塔台。啟用後訊息就會送達。`:`Tower runs are switched off on this computer, so nothing can wake the tower. Switch them on and the messages go through.`),Rn=e=>`the tower of project ${e?.project}`,zn=e=>`專案 ${e?.project} 的塔台`,Bn=((e,t={})=>(t.locale??_())===`zh-TW`?zn(e):Rn(e)),Vn=e=>`the tower of workspace “${e?.workspace}”`,Hn=e=>`「${e?.workspace}」工作區的塔台`,Un=((e,t={})=>(t.locale??_())===`zh-TW`?Hn(e):Vn(e)),Wn=e=>`${e?.label} and ${e?.others} more`,Gn=e=>`${e?.label} 和另外 ${e?.others} 位`,Kn=((e,t={})=>(t.locale??_())===`zh-TW`?Gn(e):Wn(e)),qn=((e={},t={})=>(t.locale??_())===`zh-TW`?`出了點問題,細節在 link.log`:`something went wrong; link.log has the details`),Jn=((e={},t={})=>(t.locale??_())===`zh-TW`?`團隊的專案資料夾不存在,或不允許在這台電腦使用`:`the team's project folder is missing or not allowed on this computer`),Yn=((e={},t={})=>(t.locale??_())===`zh-TW`?`塔台服務還在啟動`:`the tower service is still starting`),Xn=e=>`${e?.label} (${e?.short}) asks to join team ${e?.team}`,Zn=e=>`${e?.label}(${e?.short})要求加入團隊 ${e?.team}`,Qn=((e,t={})=>(t.locale??_())===`zh-TW`?Zn(e):Xn(e)),$n=e=>`${e?.label} (${e?.short}), an unattended device, asks to join team ${e?.team}`,er=e=>`${e?.label}(${e?.short})是無人值守的裝置,要求加入團隊 ${e?.team}`,tr=((e,t={})=>(t.locale??_())===`zh-TW`?er(e):$n(e)),nr=e=>`${e?.label} (${e?.short}) shows another roster than this computer in team ${e?.team}; the relay may be showing different rosters`,rr=e=>`團隊 ${e?.team} 中,${e?.label}(${e?.short})顯示的名冊和這台電腦不同;中繼站可能對不同人顯示不同名冊`,ir=((e,t={})=>(t.locale??_())===`zh-TW`?rr(e):nr(e)),ar=e=>`${e?.label} (${e?.short}), unattended, in team ${e?.team} — ${e?.what}, ${e?.unit}: ${e?.text}`,or=e=>`團隊 ${e?.team} 無人值守的 ${e?.label}(${e?.short}):${e?.what},${e?.unit}:${e?.text}`,sr=((e,t={})=>(t.locale??_())===`zh-TW`?or(e):ar(e)),cr=e=>{let t=p(`en`,e?.count,{},!0);return t===`one`?`${e?.count} Straw Link message has waited more than 10 minutes for an ally run in team ${e?.team}. Look at the tower's card on the map: a held tower or a refused start keeps it waiting.`:t===`other`?`${e?.count} Straw Link messages have waited more than 10 minutes for an ally run in team ${e?.team}. Look at the tower's card on the map: a held tower or a refused start keeps them waiting.`:`link_a_served`},lr=e=>`團隊 ${e?.team} 有 ${e?.count} 則 Straw Link 訊息等隊友 run 接手已超過 10 分鐘。請看地圖上塔台的卡片:塔台已暫停或 run 啟動被拒,都會讓它們一直等。`,ur=((e,t={})=>(t.locale??_())===`zh-TW`?lr(e):cr(e)),dr=e=>`The relay of team ${e?.team} has been unreachable for ${e?.minutes} minutes`,fr=e=>`團隊 ${e?.team} 的中繼站已經 ${e?.minutes} 分鐘連不上`,pr=((e,t={})=>(t.locale??_())===`zh-TW`?fr(e):dr(e)),mr=e=>`Link ${e?.count}`,hr=e=>`連線 ${e?.count}`,gr=((e,t={})=>(t.locale??_())===`zh-TW`?hr(e):mr(e)),_r=((e={},t={})=>(t.locale??_())===`zh-TW`?`Straw Link 通知`:`Straw Link notices`),vr=((e={},t={})=>(t.locale??_())===`zh-TW`?`允許`:`Allow`),yr=((e={},t={})=>(t.locale??_())===`zh-TW`?`連線中`:`connecting`),br=((e={},t={})=>(t.locale??_())===`zh-TW`?`拒絕`:`Deny`),xr=((e={},t={})=>(t.locale??_())===`zh-TW`?`即時`:`live`),Sr=((e={},t={})=>(t.locale??_())===`zh-TW`?`停止中…`:`stopping…`),Cr=((e={},t={})=>(t.locale??_())===`zh-TW`?`尚未見到`:`not seen yet`),wr=((e={},t={})=>(t.locale??_())===`zh-TW`?`清除`:`Clear`),Tr=((e={},t={})=>(t.locale??_())===`zh-TW`?`離線`:`offline`),Er=((e={},t={})=>(t.locale??_())===`zh-TW`?`在線`:`online`),Dr=((e={},t={})=>(t.locale??_())===`zh-TW`?`開啟團隊`:`Open Teams`),Or=((e={},t={})=>(t.locale??_())===`zh-TW`?`重新連線中`:`reconnecting`),kr=((e={},t={})=>(t.locale??_())===`zh-TW`?`查看`:`Review`),Ar=e=>`seen ${e?.ago} ago`,jr=e=>`${e?.ago}前見到`,Mr=((e,t={})=>(t.locale??_())===`zh-TW`?jr(e):Ar(e)),Nr=((e={},t={})=>(t.locale??_())===`zh-TW`?`查看塔台`:`Show towers`),Pr=((e={},t={})=>(t.locale??_())===`zh-TW`?`當掉`:`crashed`),Fr=((e={},t={})=>(t.locale??_())===`zh-TW`?`當掉後暫停`:`held after crashes`),Ir=((e={},t={})=>(t.locale??_())===`zh-TW`?`執行中`:`running`),Lr=e=>{let t=p(`en`,e?.count,{},!0);return t===`one`?`${e?.count} unit online`:t===`other`?`${e?.count} units online`:`link_unit_summary`},Rr=e=>`${e?.count} 個單位在線`,zr=((e,t={})=>(t.locale??_())===`zh-TW`?Rr(e):Lr(e)),Br=((e={},t={})=>(t.locale??_())===`zh-TW`?`待信任`:`needs trust`),Vr=((e={},t={})=>(t.locale??_())===`zh-TW`?`正體中文`:`English`),Hr=((e={},t={})=>(t.locale??_())===`zh-TW`?`位置`:`Location`),Ur=e=>`${e?.name} is commanding`,Wr=e=>`${e?.name} 指揮中`,Gr=((e,t={})=>(t.locale??_())===`zh-TW`?Wr(e):Ur(e)),Kr=e=>`${e?.name} finished`,qr=e=>`${e?.name} 已完成`,Jr=((e,t={})=>(t.locale??_())===`zh-TW`?qr(e):Kr(e)),Yr=e=>`${e?.name} hit an error`,Xr=e=>`${e?.name} 發生錯誤`,Zr=((e,t={})=>(t.locale??_())===`zh-TW`?Xr(e):Yr(e)),Qr=e=>`${e?.name} went idle`,$r=e=>`${e?.name} 轉為閒置`,ei=((e,t={})=>(t.locale??_())===`zh-TW`?$r(e):Qr(e)),ti=e=>`${e?.name} joined`,ni=e=>`${e?.name} 加入`,ri=((e,t={})=>(t.locale??_())===`zh-TW`?ni(e):ti(e)),ii=e=>`${e?.name} left`,ai=e=>`${e?.name} 離開`,oi=((e,t={})=>(t.locale??_())===`zh-TW`?ai(e):ii(e)),si=e=>`${e?.name} lost its status`,ci=e=>`${e?.name} 失去狀態`,li=((e,t={})=>(t.locale??_())===`zh-TW`?ci(e):si(e)),ui=e=>`${e?.name} is waiting on a question`,di=e=>`${e?.name} 正在等待回答`,fi=((e,t={})=>(t.locale??_())===`zh-TW`?di(e):ui(e)),pi=e=>`${e?.name} started working`,mi=e=>`${e?.name} 開始工作`,hi=((e,t={})=>(t.locale??_())===`zh-TW`?mi(e):pi(e)),gi=((e={},t={})=>(t.locale??_())===`zh-TW`?`指揮中`:`commanding`),_i=((e={},t={})=>(t.locale??_())===`zh-TW`?`已完成`:`finished`),vi=((e={},t={})=>(t.locale??_())===`zh-TW`?`錯誤`:`error`),yi=((e={},t={})=>(t.locale??_())===`zh-TW`?`閒置`:`idle`),bi=((e={},t={})=>(t.locale??_())===`zh-TW`?`無狀態`:`no status`),C=((e={},t={})=>(t.locale??_())===`zh-TW`?`等待回答`:`waiting on a question`),xi=((e={},t={})=>(t.locale??_())===`zh-TW`?`工作中`:`working`),Si=((e={},t={})=>(t.locale??_())===`zh-TW`?`確認`:`Confirm`),Ci=((e={},t={})=>(t.locale??_())===`zh-TW`?`駁回`:`Reject`),wi=((e={},t={})=>(t.locale??_())===`zh-TW`?`更多`:`More`),Ti=e=>`More actions for ${e?.name}`,Ei=e=>`「${e?.name}」的更多動作`,Di=((e,t={})=>(t.locale??_())===`zh-TW`?Ei(e):Ti(e)),Oi=((e={},t={})=>(t.locale??_())===`zh-TW`?`地圖總覽`:`Overview of the map`),ki=e=>`Monitor failed: ${e?.what}`,Ai=e=>`Monitor 出錯:${e?.what}`,ji=((e,t={})=>(t.locale??_())===`zh-TW`?Ai(e):ki(e)),Mi=e=>`Monitor went quiet and stopped: ${e?.what}`,Ni=e=>`Monitor 太久沒輸出,已停止:${e?.what}`,Pi=((e,t={})=>(t.locale??_())===`zh-TW`?Ni(e):Mi(e)),Fi=((e={},t={})=>(t.locale??_())===`zh-TW`?`從未`:`never`),Ii=((e={},t={})=>(t.locale??_())===`zh-TW`?`+新基地`:`+ New base`),Li=((e={},t={})=>(t.locale??_())===`zh-TW`?`沒有執行中的智慧體`:`no agent running`),Ri=((e={},t={})=>(t.locale??_())===`zh-TW`?`無警示`:`no alerts`),w=((e={},t={})=>(t.locale??_())===`zh-TW`?`伺服器沒有回應。`:`The server did not answer.`),zi=((e={},t={})=>(t.locale??_())===`zh-TW`?`尚無塔台`:`no tower yet`),Bi=((e={},t={})=>(t.locale??_())===`zh-TW`?`監看中`:`Watching a monitor`),Vi=((e={},t={})=>(t.locale??_())===`zh-TW`?`思考中`:`thinking`),Hi=e=>`Finished ${e?.note}`,Ui=e=>`完成了 ${e?.note}`,Wi=((e,t={})=>(t.locale??_())===`zh-TW`?Ui(e):Hi(e)),Gi=e=>`Failed ${e?.note}`,Ki=e=>`出錯了 ${e?.note}`,qi=((e,t={})=>(t.locale??_())===`zh-TW`?Ki(e):Gi(e)),Ji=e=>`Waiting on you ${e?.note}`,Yi=e=>`等你回答 ${e?.note}`,Xi=((e,t={})=>(t.locale??_())===`zh-TW`?Yi(e):Ji(e)),Zi=((e={},t={})=>(t.locale??_())===`zh-TW`?`+主智慧體`:`+ Main`),Qi=((e={},t={})=>(t.locale??_())===`zh-TW`?`+成員`:`+ Member`),$i=((e={},t={})=>(t.locale??_())===`zh-TW`?`前哨`:`Outposts`),ea=((e={},t={})=>(t.locale??_())===`zh-TW`?`Herdr 開了新窗格,請到 Herdr 裡接著做。`:`A pane opened in Herdr; carry on there.`),ta=((e={},t={})=>(t.locale??_())===`zh-TW`?`接回`:`Pop`),na=e=>`Pop ${e?.name}`,ra=e=>`接回 ${e?.name}`,ia=((e,t={})=>(t.locale??_())===`zh-TW`?ra(e):na(e)),aa=((e={},t={})=>(t.locale??_())===`zh-TW`?`伺服器送來的快照,頁面無法讀取`:`the server sent a snapshot the page cannot read`),oa=((e={},t={})=>(t.locale??_())===`zh-TW`?`伺服器回報了頁面無法讀取的問題`:`the server reported a problem the page cannot read`),sa=((e={},t={})=>(t.locale??_())===`zh-TW`?`關掉`:`Quit`),ca=((e={},t={})=>(t.locale??_())===`zh-TW`?`關掉塔台`:`Quit tower`),la=e=>`Refused (${e?.status}).`,ua=e=>`已拒絕(${e?.status})。`,T=((e,t={})=>(t.locale??_())===`zh-TW`?ua(e):la(e)),da=((e={},t={})=>(t.locale??_())===`zh-TW`?`提醒`:`Remind`),fa=((e={},t={})=>(t.locale??_())===`zh-TW`?`點一下允許瀏覽器通知`:`Press to allow browser notifications`),pa=((e={},t={})=>(t.locale??_())===`zh-TW`?`瀏覽器已封鎖通知,要到網站設定裡允許`:`The browser blocks notifications; allow them in the site settings`),ma=((e={},t={})=>(t.locale??_())===`zh-TW`?`提醒已關`:`Reminders off`),ha=((e={},t={})=>(t.locale??_())===`zh-TW`?`提醒已開:分頁不在前景時,單位等你回答、完成或出錯會跳系統通知`:`Reminders on: while the page is in the background, a unit waiting on you, finishing, or failing raises a system notification`),ga=((e={},t={})=>(t.locale??_())===`zh-TW`?`這個瀏覽器不支援通知`:`This browser has no notifications`),_a=((e={},t={})=>(t.locale??_())===`zh-TW`?`主智慧體`:`main`),va=((e={},t={})=>(t.locale??_())===`zh-TW`?`成員`:`member`),ya=((e={},t={})=>(t.locale??_())===`zh-TW`?`前哨`:`outpost`),ba=((e={},t={})=>(t.locale??_())===`zh-TW`?`未編入`:`unaligned`),xa=((e={},t={})=>(t.locale??_())===`zh-TW`?`事件 run`:`event run`),Sa=((e={},t={})=>(t.locale??_(),`session`)),Ca=((e={},t={})=>(t.locale??_())===`zh-TW`?`子智慧體`:`subagent`),wa=((e={},t={})=>(t.locale??_())===`zh-TW`?`塔台`:`tower`),Ta=((e={},t={})=>(t.locale??_())===`zh-TW`?`這台裝置`:`This device`),Ea=((e={},t={})=>(t.locale??_())===`zh-TW`?`這些選擇只留在這台裝置的這個瀏覽器。`:`These choices stay on this device, in this browser.`),Da=((e={},t={})=>(t.locale??_())===`zh-TW`?`手機與裝置`:`Phone & devices`),Oa=((e={},t={})=>(t.locale??_())===`zh-TW`?`伺服器`:`Server`),ka=((e={},t={})=>(t.locale??_())===`zh-TW`?`團隊`:`Teams`),Aa=((e={},t={})=>(t.locale??_())===`zh-TW`?`設定`:`Settings`),ja=((e={},t={})=>(t.locale??_())===`zh-TW`?`音效`:`Sound`),Ma=((e={},t={})=>(t.locale??_())===`zh-TW`?`音效:開關、音量與試聽`:`Sounds: on or off, volume, and a try`),Na=((e={},t={})=>(t.locale??_())===`zh-TW`?`▶ 試聽`:`▶ Try`),Pa=((e={},t={})=>(t.locale??_())===`zh-TW`?`音量`:`Volume`),Fa=((e={},t={})=>(t.locale??_())===`zh-TW`?`收起`:`Stash`),Ia=e=>`Stash base ${e?.name}`,La=e=>`收起基地 ${e?.name}`,Ra=((e,t={})=>(t.locale??_())===`zh-TW`?La(e):Ia(e)),za=e=>`Stash base ${e?.name}? Its tower, mains, and members quit and come back with Pop. Nothing is stashed while anything running would be lost.`,Ba=e=>`要收起基地 ${e?.name} 嗎?塔台、主智慧體和成員會結束,之後可以用「接回」叫回來。有會遺失的東西時不會收。`,Va=((e,t={})=>(t.locale??_())===`zh-TW`?Ba(e):za(e)),Ha=e=>`Stashed (${e?.count})`,Ua=e=>`已收起(${e?.count})`,Wa=((e,t={})=>(t.locale??_())===`zh-TW`?Ua(e):Ha(e)),Ga=((e={},t={})=>(t.locale??_())===`zh-TW`?`智慧體`:`Agents`),Ka=((e={},t={})=>(t.locale??_())===`zh-TW`?`基地`:`Bases`),qa=((e={},t={})=>(t.locale??_())===`zh-TW`?`指揮中`:`Commanding`),Ja=((e={},t={})=>(t.locale??_())===`zh-TW`?`等待中`:`Waiting`),Ya=((e={},t={})=>(t.locale??_())===`zh-TW`?`工作中`:`Working`),Xa=((e={},t={})=>(t.locale??_())===`zh-TW`?`待允許`:`Allow?`),Za=((e={},t={})=>(t.locale??_())===`zh-TW`?`被擋`:`Blocked`),Qa=((e={},t={})=>(t.locale??_())===`zh-TW`?`關`:`Off`),$a=((e={},t={})=>(t.locale??_())===`zh-TW`?`開`:`On`),eo=((e={},t={})=>(t.locale??_())===`zh-TW`?`狀態`:`States`),to=e=>`tab ${e?.label}`,no=e=>`分頁 ${e?.label}`,ro=((e,t={})=>(t.locale??_())===`zh-TW`?no(e):to(e)),io=((e={},t={})=>(t.locale??_())===`zh-TW`?`即時網況 · 通訊`:`live net · comms`),ao=((e={},t={})=>(t.locale??_())===`zh-TW`?`網路活動`:`Net activity`),oo=((e={},t={})=>(t.locale??_())===`zh-TW`?`伺服器啟動後還沒有動靜`:`Nothing has happened since the server started`),so=((e={},t={})=>(t.locale??_())===`zh-TW`?`現在`:`now`),co=e=>`${e?.count} events in 30 min`,lo=e=>`近 30 分鐘 ${e?.count} 筆`,uo=((e,t={})=>(t.locale??_())===`zh-TW`?lo(e):co(e)),fo=((e={},t={})=>(t.locale??_())===`zh-TW`?`網的總計`:`Net totals`),po=((e={},t={})=>(t.locale??_())===`zh-TW`?`去處理`:`Handle`),mo=((e={},t={})=>(t.locale??_())===`zh-TW`?`重新送達`:`Deliver again`),ho=((e={},t={})=>(t.locale??_())===`zh-TW`?`捨棄`:`Drop`),go=((e={},t={})=>(t.locale??_())===`zh-TW`?`重試`:`Retry`),_o=((e={},t={})=>(t.locale??_())===`zh-TW`?`有智慧體等你同意,才能載入資料夾的設定`:`An agent needs your OK to load a folder's settings`),vo=e=>`using ${e?.tool}`,yo=e=>`使用 ${e?.tool}`,bo=((e,t={})=>(t.locale??_())===`zh-TW`?yo(e):vo(e)),xo=((e={},t={})=>(t.locale??_())===`zh-TW`?`自動`:`Auto`),So=e=>`Follow server (${e?.view})`,Co=e=>`跟隨伺服器(${e?.view})`,wo=((e,t={})=>(t.locale??_())===`zh-TW`?Co(e):So(e)),To=((e={},t={})=>(t.locale??_())===`zh-TW`?`極客`:`Geek`),Eo=((e={},t={})=>(t.locale??_())===`zh-TW`?`檢視`:`View`),Do=((e={},t={})=>(t.locale??_())===`zh-TW`?`標準`:`Standard`),Oo=((e={},t={})=>(t.locale??_())===`zh-TW`?`自動:跟隨伺服器設定的檢視(/boss gui view);伺服器沒設定時,系統要求較高對比就用極客檢視。標準、極客與禪依你在這台裝置的選擇`:`Auto follows the view the server sets (/boss gui view); with none set, it is Geek when your system asks for more contrast. Standard, Geek, and Zen stay as you choose on this device`),ko=((e={},t={})=>(t.locale??_())===`zh-TW`?`禪`:`Zen`),Ao=((e={},t={})=>(t.locale??_())===`zh-TW`?`略過`:`Dismiss`),jo=((e={},t={})=>(t.locale??_())===`zh-TW`?`禪`:`Zen`),Mo=((e={},t={})=>(t.locale??_())===`zh-TW`?`回到禪`:`Back to Zen`),No=new Set,Po=e=>e.unit??e.key;function Fo(e,t){let n=new Map;for(let{base:r,unit:i}of ue(e)){let e=i,a=e.role??`tower`;n.set(e.key,{key:e.key,ws:r.id,name:e.name,role:a,mark:e.mark,note:e.note,at:t,since:e.since,pending:e.pending,closed:!e.control||!!e.ended});for(let e of s(r.id,i,t))n.set(e.key,e);for(let i of e.monitors??[])(i.status===`error`||i.status===`stale`)&&(o=>n.set(o,{key:o,unit:e.key,ws:r.id,name:e.name,role:a,mark:`error`,note:`monitor:${i.status}:${i.what}`,at:t}))(`${e.key}\u001fmonitor:${i.id}:${i.at}`)}for(let r of e.trust??[])r.opening&&No.has(r.opening)||(e=>n.set(e,{key:e,ws:``,name:r.folder.split(/[\\/]/).filter(Boolean).at(-1)??r.folder,role:r.agents[0]?.role??`none`,mark:`waiting`,at:t,since:r.agents.length?Math.min(...r.agents.map(e=>e.at)):void 0,trust:r}))(`trust\u001f${r.folder}\u001f${r.digest}`);return n}function Io(e,t){return[...t.values()].filter(t=>{let n=e?.get(t.key);return de(t)===0?!n||de(n)!==0||n.mark!==t.mark:e!==void 0&&n?.mark!==t.mark&&(t.mark===`error`||t.mark===`done`)})}var Lo={count:!0,signal:!0,announce:`arrivals`,keys:`dialogs`,drawer:!0,calm:!0,chime:!0,escape:`stay`},Ro={standard:Lo,geek:{...Lo,calm:!1},zen:{count:!1,signal:!1,announce:`current`,keys:`zen`,drawer:!1,calm:!0,chime:!1,escape:`blur`}},zo=(e,t)=>Ro[e===`zen`&&t?`standard`:e],Bo=(...e)=>e.filter(e=>e!==!1&&e!=null),Vo=(e,t)=>(e.classList.add(t),e.classList.toggle(`flip`));function E(e,t,...n){let r=document.createElement(e);for(let[e,n]of Object.entries(t??{}))r.setAttribute(e,n);return r.append(...Bo(...n)),r}var D=e=>String(e??``),Ho=e=>e<60?he({n:String(Math.max(1,e))}):e<1440?r({n:String(Math.floor(e/60))}):t({n:String(Math.floor(e/1440))});function Uo(e){let t=e.data,n=e.teamName;switch(e.kind){case`join-request`:return t.unattended?tr({label:D(t.label),short:D(t.short),team:n}):Qn({label:D(t.label),short:D(t.short),team:n});case`confirm`:return t.tower?_n({label:D(t.label),short:D(t.short),tool:D(t.tool),tower:D(t.tower)}):bn({label:D(t.label),short:D(t.short),tool:D(t.tool)});case`dialog`:return Cn({label:D(t.label),short:D(t.short),team:n,owner:D(t.owner)});case`fork`:return En({team:n,reason:D(t.reason)});case`mismatch`:return ir({label:D(t.label),short:D(t.short),team:n});case`unreachable`:return pr({team:n,minutes:D(t.minutes)});case`inbox`:{let e=Number(t.others)||0,r=D(t.from),i=Mn({count:Number(t.count)||0,team:n,who:e?Kn({label:r,others:e}):r,ago:Ho(Number(t.ageMin)||1),where:t.workspace===void 0?Bn({project:D(t.project)}):Un({workspace:D(t.workspace)}),drop:new Date(Number(t.drop)||0).toLocaleDateString(_(),{month:`numeric`,day:`numeric`})});return t.wake===`none`?`${i} ${In()}`:t.wake===`off`?`${i} ${Ln()}`:t.wake===`failed`?`${i} ${Fn({reason:t.reason===`service`?Yn():t.reason===`project`?Jn():qn()})}`:i}case`held`:return kn({count:Number(t.count)||0,team:n});case`served`:return ur({count:Number(t.count)||0,team:n});case`notice`:return sr({label:D(t.label),short:D(t.short),team:n,what:D(t.what),unit:D(t.unit),text:D(t.text)})}}var Wo=e=>Uo({id:``,kind:`confirm`,level:`warning`,team:e.team,teamName:``,data:{label:e.fromLabel,short:e.fromShort,tool:e.tool,tower:e.tower}}),Go=e=>{let t={error:0,warning:1,info:2};return[...e].sort((e,n)=>t[e.level]-t[n.level])};function Ko(e){let t=Math.max(0,Math.ceil(e/1e3)),n=e=>String(e).padStart(2,`0`);return t>=3600?`${Math.floor(t/3600)}:${n(Math.floor(t/60)%60)}:${n(t%60)}`:`${Math.floor(t/60)}:${n(t%60)}`}function qo(e,t){if(e===null)return Cr();if(t)return Er();let n=Math.floor(e/1e3);return Mr({ago:Ho(Math.floor(n/60))})}function Jo(e){return e.online?e.tower===`blocked`?`waiting`:e.tower===`working`?`working`:e.tower===`unknown`?`unknown`:`idle`:`unknown`}function Yo(e){switch(e){case`working`:return xi();case`blocked`:return C();case`idle`:return yi();case`done`:return _i();case`unknown`:return bi();default:return e}}function Xo(e){let{closed:t,answered:n}=e.data;return t===void 0?n?`sent`:`open`:t===`remote`?n?`done-here`:`done-other`:t===`local`?`done-local`:t===`cancel`?`cancelled`:t===`withdrawn`?`withdrawn`:`expired`}var Zo={blocked:3,working:2,idle:1};function Qo(e){let t=new Map;for(let n of e)t.set(n.device,[...t.get(n.device)??[],n]);let n=e=>{let t=[];for(let n of e)t.some(e=>e.team===n.team)||t.push({team:n.team,teamName:n.teamName});return t};return[...t].flatMap(([e,t])=>{let r=t.filter(e=>e.workspace!==null),i=r.length?[...new Set(r.map(e=>e.workspace))]:[null],a=[...t].sort((e,t)=>e.team<t.team?-1:+(e.team>t.team))[0];return i.map((o,s)=>{let c=t.filter(e=>e.workspace===o),l=r.length?t.filter(e=>e.workspace===null):[],u=[...c,...l].filter(e=>e.online),d=u.length>0||!t.some(e=>e.online),f=u.length?u:c,p=d?[...f].sort((e,t)=>(Zo[t.tower]??0)-(Zo[e.tower]??0))[0]:{tower:`unknown`,tabs:[]},m=s===0&&l.length?{spare:{teams:n(l).map(e=>e.team),named:i}}:{};return{id:o===null?e:`${e}/${o}`,device:e,short:a.short,label:a.label,online:t.some(e=>e.online),...t.some(e=>e.unattended)?{unattended:!0}:{},workspace:o,tower:p.tower,tabs:p.tabs,teams:n([...c,...l]),...m}})})}function $o(e,t){let n=(e??[]).filter(e=>e.device===t.device&&t.teams.includes(e.team)).sort((e,n)=>t.teams.indexOf(e.team)-t.teams.indexOf(n.team)),r=new Map,i=(e,t)=>({...e,at:t.at,stale:t.stale===!0,team:t.team,device:t.device,mains:es(e.unit,t)});for(let e of n)for(let n of e.units)if(t.workspace===null||n.unit===t.workspace||t.spare?.teams.includes(e.team)&&!t.spare.named.includes(n.unit)){let t=r.get(n.unit);(!t||e.at>t.at)&&r.set(n.unit,i(n,e))}return[...r.values()]}function es(e,t){return(t.mains??[]).filter(t=>t.unit===e).map(e=>{let n=t.dispatchers?.[e.by],r=e.stopping?{tone:`other`,word:Sr()}:{tone:e.state===`working`?`working`:e.state===`idle`||e.state===`done`?`idle`:`other`,word:Yo(e.state)};return{handle:e.handle,name:e.name,state:e.state,...r,...n?.self?{}:{byLabel:n?.label??e.by.slice(0,6)},stopping:e.stopping,canStop:t.canStop===!0&&t.stale!==!0&&!e.stopping}})}var ts=[`run-crashed`,`trust-unanswered`];function ns(e){switch(e){case`standing`:case`idle`:case`done`:return{tone:`idle`,word:n()};case`running`:case`working`:case`waking`:case`commanding`:return{tone:`working`,word:Ir()};case`blocked`:return{tone:`waiting`,word:C()};case`held`:return{tone:`crashed`,word:Fr()};case`closing`:return{tone:`other`,word:f()};default:return{tone:`other`,word:Yo(e)}}}function rs(e,t,n,r,i=new Map){return $o(e,n).map(e=>{let a=ns(e.state),o=`${n.device}/${e.unit}`;a.tone===`working`&&i.set(o,Math.max(i.get(o)??0,e.at));let s=t?.filter(t=>t.kind===`notice`&&ts.includes(String(t.data.what))&&n.teams.includes(t.team)&&t.data.device===n.device&&t.data.unit===e.unit&&Number(t.data.at)>0).map(e=>({at:Number(e.data.at),text:String(e.data.text??``),trust:e.data.what===`trust-unanswered`})).sort((e,t)=>t.at-e.at)[0],c=s!==void 0&&a.tone!==`working`&&r-s.at<18e5&&s.at>(i.get(o)??0)?{at:s.at,text:s.text,...s.trust?{trust:!0}:{}}:void 0,l=c?a.tone===`crashed`?a:c.trust?{tone:`waiting`,word:Br()}:{tone:`crashed`,word:Pr()}:a;return{unit:e.unit,state:e.state,...l,...c?{crash:c}:{},at:e.at,stale:e.stale,monitors:e.monitors,report:e.report,team:e.team,device:e.device,mains:e.mains}})}var is=/(^|[\s(["'])(\*\*|__|~~|\*|_)(?=\S)(.+?)(?<=\S)\2(?=$|[\s,;:!?)\]"']|\.(?:$|\s))/g;function as(e){let t=(e.split(`
|
|
3
|
+
`).map(e=>e.trim()).find(e=>e&&!/^(`{3,}|~{3,}|[-*_]{3,}$)/.test(e))??``).replace(/^(#{1,6}\s+|>\s*|[-*+]\s+|\d+[.)]\s+)+/,``).replace(/(`+)(.+?)\1/g,`$2`);for(let e=0;e<4;e++){let e=t.replace(is,`$1$3`);if(e===t)break;t=e}return t.trim()}var os=3e4,ss=[`pointermove`,`pointerdown`,`keydown`,`wheel`,`touchstart`];function cs(e=document.documentElement){if(matchMedia(`(prefers-reduced-motion: reduce)`).matches)return;let t=Date.now(),n,r=()=>Ro[e.dataset.view]?.calm===!1,i=()=>{let a=t+os-Date.now();a>0?n=setTimeout(i,a):(n=void 0,r()||e.toggleAttribute(`data-calm`,!0))},a=()=>{t=Date.now(),n===void 0&&(e.toggleAttribute(`data-calm`,!1),r()||(n=setTimeout(i,os)))};for(let e of ss)addEventListener(e,a,{capture:!0,passive:!0});document.addEventListener(`visibilitychange`,()=>document.hidden||a()),a()}var ls=0,us=`button:not([disabled]):not([hidden]), a[href]:not([hidden])`;function ds(e,t){e.id||=`menu-${++ls}`;let n=t?Di({name:t}):wi();return E(`button`,{type:`button`,class:`pair-btn menu-btn`,popovertarget:e.id,"aria-haspopup":`true`,"aria-label":n,title:n},`⋯`)}function fs(e,t,n=``){let r=E(`div`,{class:`menu-pop hud-pop`,popover:`auto`,role:`group`,"aria-label":t?Di({name:t}):wi()},...e);return E(`span`,{class:`menu ${n}`.trim()},ds(r,t),r)}function ps(e){let t=document.createComment(``);e.replaceWith(t);let n=fs([e]);return t.replaceWith(n),n}function ms(e,t){let n=Di({name:t});for(let t of[e.querySelector(`.menu-btn`),e.querySelector(`.menu-pop`)])t&&t.getAttribute(`aria-label`)!==n&&t.setAttribute(`aria-label`,n);e.querySelector(`.menu-btn`)?.setAttribute(`title`,n)}function hs(e,t,n={width:innerWidth,height:innerHeight}){let r=t.getBoundingClientRect(),i=e.offsetWidth,a=e.offsetHeight,o=r.bottom+8+a<=n.height-8||r.top-8-a<8;e.style.top=`${Math.max(8,o?r.bottom+8:r.top-8-a)}px`,e.style.left=`${Math.max(8,Math.min(r.right-i,n.width-i-8))}px`}function gs(e,t,n){if(e.length){if(n===`Home`)return e[0];if(n===`End`)return e.at(-1);if(n===`ArrowDown`)return e[(t+1)%e.length];if(n===`ArrowUp`)return e[(t<0?0:t-1+e.length)%e.length]}}var _s=e=>e instanceof Element?e.closest(`.menu-pop`):null,vs=e=>document.querySelector(`[popovertarget="${CSS.escape(e.id)}"]`);function ys(){document.addEventListener(`toggle`,e=>{let t=_s(e.target);if(!t||e.newState!==`open`)return;let n=vs(t);n&&hs(t,n),t.querySelector(us)?.focus({preventScroll:!0})},!0),document.addEventListener(`keydown`,e=>{let t=_s(e.target);if(!t||!t.matches(`:popover-open`))return;if(e.key===`Escape`)return void(e.preventDefault(),t.hidePopover(),vs(t)?.focus());let n=[...t.querySelectorAll(us)],r=gs(n,n.indexOf(document.activeElement),e.key);r&&(e.preventDefault(),r.focus())}),document.addEventListener(`click`,e=>{let t=_s(e.target),n=e.target instanceof Element?e.target.closest(`button, a`):null;t&&n&&t.contains(n)&&!n.hasAttribute(`popovertarget`)&&!n.hasAttribute(`data-menu-keep`)&&t.matches(`:popover-open`)&&t.hidePopover()})}var bs=e=>e.route.view===`map`||e.route.view===`head`?``:e.route.ws,xs=(e,t)=>{let n=e?.head;return n?.key===t?{u:{key:t,name:n.name,role:`tower`,head:!0,mark:n.mark,control:!0,queued:n.queued,service:n.service,subs:[]},base:{id:c,label:n.name,mark:n.mark,tower:null,tabs:[],outposts:[],outside:[]}}:void 0};function Ss(e,t){let n=xs(e,t);if(n)return n;for(let n of e?.bases??[]){if(n.tower?.key===t)return{u:{key:t,name:n.tower.name,role:`tower`,mark:n.tower.mark,control:n.tower.control,pending:n.tower.pending,queued:n.tower.queued,monitors:n.tower.monitors,service:n.tower.service,docs:n.tower.docs,docsCut:n.tower.docsCut,subs:n.tower.subs},base:n};for(let[e,r]of[...n.tabs.map(e=>[e.label,e.units]),[void 0,n.outside],[void 0,n.tower?.subs??[]]])for(let i of r){if(i.key===t)return{u:i,base:n,squad:e};let r=i.subs.find(e=>e.key===t);if(r)return{u:r,base:n,squad:e,launcher:i}}}}var Cs=e=>e?.u.role===`tower`&&e.base.tower?.key===e.u.key?e.base:void 0,O=(e,t)=>(t?t!==`live`:!e)||!(!e?.ended||e.control);function ws(e,t,n){return n?`readonly`:O(e,t)?t===`recent`||e?.ended?`closed`:`none`:`live`}function Ts(e){if(e.route.view!==`session`)return;let t=e.route.key,n=Ss(e.net,t),r=n?.u;return{key:t,hit:n,u:r,mk:r?.mark??`unknown`,state:e.info?.state,name:r?.name??e.info?.name??t}}var Es=[`phone`,`wifi`,`teams`,`server`],Ds=e=>{try{return decodeURIComponent(e)}catch{return e}},Os=e=>/^\.+$/.test(e)?e.replaceAll(`.`,`%2E`):encodeURIComponent(e);function ks(e){let[t,n]=e.split(`#`)[0].split(`?`),[r,i,a,o]=t.replace(/^\/+|\/+$/g,``).split(`/`).map(Ds);if(r===`head`&&!i)return{view:`head`};if(r===`settings`)return Es.includes(i)?{view:`settings`,section:i}:{view:`settings`};if(r!==`w`||!i)return{view:`map`};if(a!==`s`||!o)return{view:`workspace`,ws:i};let s=new URLSearchParams(n).get(`at`);return s?{view:`session`,ws:i,key:o,at:s}:{view:`session`,ws:i,key:o}}var k=e=>e.view===`map`?``:e.view===`head`||e.view===`session`&&e.ws===`@head`?`head`:e.view===`settings`?e.section?`settings/${e.section}`:`settings`:e.view===`workspace`?`w/${Os(e.ws)}`:`w/${Os(e.ws)}/s/${Os(e.key)}${e.at?`?at=${encodeURIComponent(e.at)}`:``}`,As=e=>e.view===`session`&&e.ws!==`@head`?{view:`workspace`,ws:e.ws}:{view:`map`},A=e=>e.view===`settings`?{view:`map`}:e,js=(e,t)=>e.view===`session`?e.key:e.view===`head`?t??null:e.view===`workspace`?`w:${e.ws}`:null,Ms=e=>Math.max(0,e?.depth||0);function Ns(e,t=new URL(document.baseURI).pathname){let n=()=>ks(location.pathname.slice(t.length)+location.search),r={route:n,href:e=>k(e)||`./`,go(n){let r=t+k(n);location.pathname+location.search!==r&&history.pushState({depth:Ms(history.state)+1},``,r),e(n)}};return addEventListener(`popstate`,()=>e(n())),document.addEventListener(`click`,e=>{let t=e.target?.closest?.(`a[data-route]`);!t||e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),t.hasAttribute(`data-back`)&&Ms(history.state)>0?history.back():r.go(ks(t.getAttribute(`data-route`))))}),r}function Ps(t,n,r){let i=r?.allyRuns??[],a=JSON.stringify([n,i.map(e=>[e.id,e.label,e.key])]);t.dataset.sig!==a&&(t.dataset.sig=a,t.hidden=!i.length,t.replaceChildren(...i.length>1?[E(`b`,null,e({count:i.length}))]:[],...i.map(e=>{let t=Ce({device:e.label});if(!e.key)return E(`span`,{class:`ally-chip`,title:Te()},t);let r=k({view:`session`,ws:n,key:e.key});return E(`a`,{class:`ally-chip`,href:r||`./`,"data-route":r,title:we()},t)})))}var Fs=(function(){let e=typeof document<`u`&&document.createElement(`link`).relList;return e&&e.supports&&e.supports(`modulepreload`)?`modulepreload`:`preload`})(),Is=function(e,t){return new URL(e,t).href},Ls={},Rs=function(e){return e.pathname.endsWith(`.css`)},zs=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},j=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=Is(t,n);let r=s(t),i=Rs(r);return zs(Ls,r.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let t=document.createElement(`link`);if(t.rel=i?`stylesheet`:Fs,i||(t.as=`script`),t.crossOrigin=``,t.href=r.href,a&&t.setAttribute(`nonce`,a),document.head.appendChild(t),i)return new Promise((e,n)=>{t.addEventListener(`load`,e),t.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${r}`)))})})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Bs={retry:go,deliver:mo,drop:ho,answer:po,dismiss:Ao,confirm:Si,reject:Ci},M,Vs,Hs=()=>Vs??=Promise.all([j(()=>import(`./waitpanel-R1MWgBZ0.js`).then(e=>e.r),[],import.meta.url),j(()=>import(`./asks-BnnooiNx.js`).then(e=>e.t),[],import.meta.url),j(()=>import(`./answer-BL7apmgb.js`).then(e=>e.n),[],import.meta.url)]).then(([e,t,n])=>M={waitPanel:e.waitPanel,waitActions:t.waitActions,answerPost:n.answerPost}),Us=new WeakMap,Ws=new WeakMap,Gs=4e3,Ks=new WeakMap,qs=e=>E(`p`,{class:`tnote-flash`,role:`status`},e);function Js(e,t){let n=Date.now();Ks.set(e,{text:t,at:n}),e.querySelector(`.tnote-flash`)?.remove(),e.append(qs(t)),setTimeout(()=>{Ks.get(e)?.at===n&&(Ks.delete(e),e.querySelector(`.tnote-flash`)?.remove())},Gs).unref?.()}function Ys(e,t,n,r,a=!1){Ws.set(e,[t,n,r,a]);let o=d(n),s=JSON.stringify([t,o]),c=document.body.dataset.stale!==`true`;for(let t of Us.get(e)?.values()??[])t.update(c);if(e.dataset.sig===s)return;e.dataset.sig=s,!M&&r&&o.some(e=>e.wait)&&Hs().then(()=>(e.dataset.sig=``,Ys(e,...Ws.get(e))));let u=Us.get(e)??new Map,f=new Map,p=document.activeElement,m=p&&[...u.values()].some(e=>e.el.contains(p))?p:void 0;e.replaceChildren(...o.map(n=>{let o=E(`small`,{class:`tnote-fail`,role:`alert`}),s=E(n.wait?`div`:`p`,{class:`tnote ${n.level}`},E(`span`,null,n.text));if(n.wait){if(M&&r){let i=`${t}\u001f${n.wait}`,o=u.get(i)??M.waitPanel({actions:M.waitActions({ws:t,id:n.wait,tower:r},M.answerPost(r)),reply:!0,report:!0,goto:!a&&t!==`@head`,done:t=>Js(e,t)});o.update(c),f.set(i,o),s.append(o.el)}return s}for(let e of n.actions){let r=E(`button`,{type:`button`,class:`pair-btn`},Bs[e]()),a=async()=>n.proposal&&(e===`confirm`||e===`reject`)?(await j(async()=>{let{proposalActions:e}=await import(`./asks-BnnooiNx.js`).then(e=>e.t);return{proposalActions:e}},[],import.meta.url)).proposalActions({ws:t,id:n.proposal,rev:()=>n.rev})[e]():v(`${l(t)}/${e}`,n.event?{id:n.event}:{});r.onclick=()=>void i(r,e=>o.textContent=e??``,a),s.append(r)}return s.append(o),s}));let h=Ks.get(e);h&&e.append(qs(h.text)),Us.set(e,f),m?.focus()}var Xs=140;function Zs(e,t){let n=document.createElement(`nav`),r=document.createElement(`div`),i=document.createElement(`i`);[n.className,r.className,i.className,n.hidden]=[`minimap`,`mm-in`,`mm-view`,!0],n.setAttribute(`aria-label`,Oi()),n.append(r,i),document.body.append(n);let a=1,o=0,s=()=>{o=0;let t=e.getBoundingClientRect();i.style.transform=`translateY(${Math.round(Math.max(0,-t.top)*a)}px)`,i.style.height=`${Math.round(Math.min(innerHeight-Math.max(0,t.top),t.bottom)*a)}px`,n.classList.toggle(`away`,t.bottom<innerHeight)},c=()=>{let i=e.getBoundingClientRect();n.hidden=e.hidden||i.height<innerHeight*1.05||!matchMedia(`(min-width: 900px) and (hover: hover)`).matches,!n.hidden&&(a=Math.min(Xs/i.width,innerHeight*.4/i.height),Object.assign(n.style,{width:`${Math.round(i.width*a)}px`,height:`${Math.round(i.height*a)}px`}),r.replaceChildren(...[...t.querySelectorAll(`:scope > .base:not(.leaving)`)].map(e=>{let t=e.getBoundingClientRect(),n=document.createElement(`i`);return n.dataset.mark=e.dataset.mark??`idle`,n.style.cssText=`left:${(t.left-i.left)*a}px;top:${(t.top-i.top)*a}px;width:${t.width*a}px;height:${t.height*a}px`,n})),s())};return addEventListener(`scroll`,()=>o||=requestAnimationFrame(s),{passive:!0}),addEventListener(`resize`,c),n.addEventListener(`click`,t=>{let n=e.getBoundingClientRect(),i=(t.clientY-r.getBoundingClientRect().top)/a;scrollTo({top:n.top+scrollY+i-innerHeight/2,behavior:matchMedia(`(prefers-reduced-motion: reduce)`).matches?`auto`:`smooth`})}),c}function Qs({x1:e,y1:t,x2:n,y2:r,mid:i},a=64){let o=Array.from({length:201},(a,o)=>{let s=o/200,c=1-s;return[c**3*e+3*c*c*s*i+3*c*s*s*i+s**3*n,c**3*t+3*c*c*s*t+3*c*s*s*r+s**3*r]}),s=o.reduce((e,t,n)=>(e.push(n?e[n-1]+Math.hypot(t[0]-o[n-1][0],t[1]-o[n-1][1]):0),e),[]);return Array.from({length:a+1},(e,t)=>{let n=t/a*s.at(-1),r=Math.max(1,s.findIndex(e=>e>=n)),[i,c]=[o[r-1],o[r]],l=s[r]>s[r-1]?(n-s[r-1])/(s[r]-s[r-1]):0;return[i[0]+(c[0]-i[0])*l,i[1]+(c[1]-i[1])*l]})}function $s(e,t){if(t||!e.length)return[];let n=document.createElement(`style`);return n.textContent=e.map((e,t)=>`@keyframes pk${t}{${Qs(e).map(([e,t],n,r)=>`${(n/(r.length-1)*100).toFixed(2)}%{transform:translate(${e.toFixed(1)}px,${t.toFixed(1)}px)}`).join(``)}}`).join(``),[n,...e.map((e,t)=>(e=>(e.className=`packet`,e.style.animationName=`pk${t}`,e))(document.createElement(`i`)))]}var ec=typeof document<`u`&&typeof document.querySelector==`function`&&((e=document)=>e.querySelector(`meta[name="sb-desk"]`)?.content===`1`)(),tc=(e,t=ec)=>t||e!==`127.0.0.1`,nc=(e,t=ec)=>({phone:!tc(e,t),server:e===`127.0.0.1`});function N(e,t,n,r,i=!1){Object.assign(e.dataset,t),[e.hidden,e.textContent]=[i,n],r&&e.setAttribute(`aria-label`,r)}var rc=(e,t)=>t.role===`subagent`&&t.ended&&t.key?N(e,{close:`dismiss`,key:t.key,name:t.name,role:t.role},Tt(),jt({name:t.name})):N(e,{close:`unit`,key:t.key??``,name:t.name,role:t.role},sa(),mt({name:t.name}),!(t.control&&t.key)||t.role===`subagent`),ic=(e,t)=>N(e,{key:t?.key??``,name:t?.name??``,role:`tower`},ca(),void 0,!t?.control);function ac(e,t){e.dataset.close=`unit`,t?.u.role===`tower`&&t.base.tower?.key===t.u.key?ic(e,t.base.tower):t&&rc(e,t.u),e.hidden=!t||e.dataset.close!==`unit`||e.hidden}var oc=(e,t)=>N(e,{ws:t.id,name:t.label},sa(),$e({name:t.label})),sc=(e,t,n=ec)=>N(e,{ws:t.id,name:t.label},Fa(),Ra({name:t.label}),n),cc=(e,t,n)=>N(e,{ws:t.id,name:n.label,tab:n.id},sa(),at({name:n.label})),P=(e,t)=>new Promise(n=>{let r=document.createElement(`dialog`),i=document.createElement(`p`),a=document.createElement(`div`),o=(e,t,i)=>Object.assign(document.createElement(`button`),{type:`button`,className:t,textContent:e,onclick:()=>(r.close(),n(i))});[r.className,i.textContent,a.className]=[`sheet`,e,`sheet-row`],a.append(...t?[o(Ye(),`later`,!1),o(t,`sheet-yes`,!0)]:[o(Xe(),`later`,!1)]),r.append(i,a),r.addEventListener(`close`,()=>(r.remove(),n(!1))),document.body.append(r),r.showModal()}),lc=(e,t)=>new Promise(n=>{let r=document.createElement(`dialog`),i=document.createElement(`p`),a=document.createElement(`div`),o=(e,t,i)=>Object.assign(document.createElement(`button`),{type:`button`,className:t,textContent:e,onclick:()=>(r.close(),n(i))}),s=o(t.length?Ye():Xe(),`later`);[r.className,i.textContent,a.className]=[`sheet`,e,`sheet-row`],a.append(s,...t.map(e=>o(e.label,e.tone===`danger`?`sheet-yes sheet-danger`:`sheet-yes`,e.value))),r.append(i,a),r.addEventListener(`close`,()=>(r.remove(),n(void 0))),document.body.append(r),r.showModal(),s.focus()}),uc=e=>ue(e).filter(e=>e.sub&&`ended`in e.unit&&e.unit.ended).map(e=>e.unit.key);function dc(e,t){let n=uc(t).length;e.hidden=!n,n&&(e.textContent=Ot({count:n}))}function fc(e,t,n,r=ec){if(r)return void(e.hidden=!0);let i=n.stashed??[],a=JSON.stringify(i);e.hidden=!i.length;let o=t.closest(`[popover]`);!i.length&&o?.matches(`:popover-open`)&&o.hidePopover(),i.length&&(e.textContent=Wa({count:i.length})),t.dataset.key!==a&&(t.dataset.key=a,t.replaceChildren(...i.map(e=>{let t=document.createElement(`li`),n=document.createElement(`span`),r=document.createElement(`button`);return n.textContent=e.name===e.label?e.label:`${e.name} (${e.label})`,[r.type,r.className]=[`button`,`pair-btn`],N(r,{close:`pop`,name:e.name},ta(),ia({name:e.name})),t.append(n,r),t})))}var pc=e=>j(async()=>{let{post:e}=await import(`./post-DDdE-PdN.js`).then(e=>e.r);return{post:e}},[],import.meta.url).then(({post:t})=>t(`dismiss`,e)).then(e=>e.ok||(P(e.body.reason??T({status:e.status})),!1),()=>(P(w()),!1));function mc(e,{route:t,net:n,go:r}){let i=t();if(i.view===`map`||i.view===`head`)return;if(e.close===`base`||e.close===`stash`)return void(i.ws===e.ws&&r({view:`map`}));let a=e=>e.flatMap(e=>[e.key,...a(e.subs)]),o=e.close===`tab`&&i.ws===e.ws?n()?.bases.find(t=>t.id===e.ws)?.tabs.find(t=>t.id===e.tab):void 0;i.view===`session`&&(e.close===`unit`?i.key===e.key:o&&a(o.units).includes(i.key))&&r({view:`workspace`,ws:i.ws})}function hc(e){document.addEventListener(`click`,t=>{let n=t.target?.closest?.(`button[data-close]`),r=n?.dataset;if(n&&r){if(t.preventDefault(),r.close===`head`)return void P(Wt(),Ut()).then(e=>e&&(n.toggleAttribute(`disabled`,!0),j(async()=>{let{post:e}=await import(`./post-DDdE-PdN.js`).then(e=>e.r);return{post:e}},[],import.meta.url).then(({post:e})=>e(`head/close`,{})).then(e=>e.ok||P(e.body.reason??T({status:e.status})),()=>P(w())).finally(()=>n.toggleAttribute(`disabled`,!1))));if(r.close===`dismiss`||r.close===`dismiss-all`)return void pc(r.close===`dismiss`?{key:r.key}:{all:!0});if(r.close===`pop`)return void(n.toggleAttribute(`disabled`,!0),Promise.all([j(()=>import(`./post-DDdE-PdN.js`).then(e=>e.r),[],import.meta.url),j(()=>import(`./refusal--wJ5SRx-.js`).then(e=>e.n),[],import.meta.url)]).then(([{post:e},{reasonOf:t}])=>e(`close/pop`,{name:r.name}).then(e=>e.ok||P(t(e.body.reason,e.body.settings)??T({status:e.status})))).catch(()=>P(w())).finally(()=>n.toggleAttribute(`disabled`,!1)));P((r.close===`stash`?Va:r.close===`base`?nt:r.close===`tab`?ct:r.role===`tower`?dt:_t)({name:r.name??``}),r.close===`stash`?Fa():sa()).then(t=>{t&&(n.toggleAttribute(`disabled`,!0),j(async()=>{let{post:e}=await import(`./post-DDdE-PdN.js`).then(e=>e.r);return{post:e}},[],import.meta.url).then(({post:e})=>e(`close/${r.close===`base`?`all`:r.close}`,r.close===`unit`?{key:r.key}:{workspace:r.ws,...r.tab&&{tab:r.tab}})).then(t=>t.ok?mc(r,e):P(t.body.reason??T({status:t.status})),()=>P(w())).finally(()=>n.toggleAttribute(`disabled`,!1)))})}})}var gc={main:`main`,member:`member`,subagent:`subagent`,outpost:`outpost`,outside:`outside`,tower:`tower`,ally:`tower`,run:`tower`},F={commanding:gi,working:xi,waiting:C,idle:yi,done:_i,error:vi,unknown:bi},_c={ally:a,run:xa,main:_a,member:va,subagent:Ca,tower:wa,outpost:ya,outside:ba,session:Sa},vc={thinking:Vi,"watching a monitor":Bi,idle:yi,"waiting on a question":C,finished:_i},yc={claude:`Claude`,codex:`Codex`},bc=e=>Object.hasOwn(_c,e)?_c[e]():e,xc=(e,t)=>`${bc(e)} · ${t}`,Sc=e=>e===`waiting`||e===`error`,I=e=>{let t=new DOMParser().parseFromString(e.trim(),`text/html`).body.firstElementChild;if(!(t instanceof HTMLElement))throw Error(`bad template`);return document.importNode(t,!0)},L=(e,t)=>{let n=document.getElementById(e);if(!(n instanceof t))throw Error(`#${e} is missing from the page`);return n},R=(e,t,n)=>{let r=e.querySelector(t);r.textContent!==n&&(r.textContent=n)},z=(e,t)=>{if(e.dataset.mark===t)return;let n=e.dataset.mark!==void 0;e.dataset.mark=t,n&&Vo(e,`flash`)},Cc=e=>(t=>(e.slice(8,t)===`stale`?Pi:ji)({what:e.slice(t+1)}))(e.indexOf(`:`,8)),B=(e,t)=>e?e.startsWith(`tool:`)?bo({tool:e.slice(5)}):e.startsWith(`monitor:`)?Cc(e):Object.hasOwn(vc,e)?vc[e]():e:F[t](),wc=(e,t,n)=>O(e,t)?``:n===`working`||n===`commanding`?B(e?.note,n):Sc(n)?F[n]():``,Tc=(e,t,n)=>O(e,t)&&(n===`working`||n===`commanding`)?`done`:n,Ec=(e,t,n,r,i=B(n,r))=>{R(e,t,i),e.querySelector(t).toggleAttribute(`data-monitoring`,i===B(n,r)&&n===`watching a monitor`)},Dc=(e,t)=>{e.toggleAttribute(`hidden`,!t),t&&(e.setAttribute(`href`,k(t)||`./`),e.setAttribute(`data-route`,k(t)))},Oc=(e,t)=>{let n=t.getBoundingClientRect(),r=e.offsetWidth;e.style.top=`${n.bottom+8}px`,e.style.left=`${Math.max(8,Math.min(n.right-r,innerWidth-r-8))}px`},kc=`<div class="plate"><i class="ring"></i><svg><use href="#i-main"/></svg><b class="badge"></b></div>`;function Ac(e,t,n,r){z(e,n);let i=e.querySelector(`use`),a=`#i-${gc[t]??`member`}`,o=r?.filter(e=>e.onScreen).length;i.getAttribute(`href`)!==a&&i.setAttribute(`href`,a),o?e.dataset.docs=String(o):delete e.dataset.docs}function V(e,t,n,r){let i=new Map;for(let t of e.children)!t.classList.contains(`leaving`)&&t.dataset.key&&i.set(t.dataset.key,t);let a=e.firstElementChild;for(let o of t){let t=i.get(o.id);for(t||(t=n(o),t.dataset.key=o.id,t.classList.add(`enter`),setTimeout(()=>t.classList.remove(`enter`),600)),i.delete(o.id);a?.classList.contains(`leaving`);)a=a.nextElementSibling;t===a?a=a.nextElementSibling:e.insertBefore(t,a),r(t,o)}for(let e of i.values())e.classList.add(`leaving`),setTimeout(()=>e.remove(),400)}var jc=(e,n=Math.max(0,Date.now()-e)/1e3)=>n<60?ve({n:String(Math.floor(n))}):n<3600?he({n:String(Math.floor(n/60))}):n<86400?r({n:String(Math.floor(n/3600))}):t({n:String(Math.floor(n/86400))}),Mc=(e,t)=>(t===void 0?delete e.dataset.since:e.dataset.since=String(t),e.textContent=t===void 0?``:jc(t));function Nc(e,t=[]){let n=e.querySelector(`:scope > .ticks`),r=t.map(e=>`${e.at}${e.mark}`).join();n.dataset.sig!==r&&(n.dataset.sig=r,e.classList.toggle(`ticked`,t.length>0),n.replaceChildren(...t.map((e,n)=>{let r=document.createElement(`i`);return r.dataset.mark=e.mark,r.style.setProperty(`--o`,((n+1)/t.length).toFixed(2)),r})))}var Pc=()=>I(`<div class="unit"><div class="card"><a class="hit"></a>${kc}<div class="meta"><span class="name"></span><span class="line"><em class="role"></em><em class="agent"></em><span class="note"></span><span class="age"></span></span><span class="todo" hidden><b></b><span></span></span></div><button type="button" class="quit-btn" data-close="unit" hidden></button><span class="ticks" aria-hidden="true"></span></div><div class="subs"></div></div>`);function Fc(e,t){let n=e.closest(`.base`)?.dataset.key,r=e.querySelector(`.hit`),i=Tc(t,void 0,t.mark),a=O(t)?void 0:t.note;Dc(r,t.key&&n?{view:`session`,ws:n,key:t.key}:void 0),r.setAttribute(`aria-label`,`${t.name}: ${B(a,i)}`),r.toggleAttribute(`data-alert`,Sc(i)),z(e,i),Ac(e.querySelector(`.plate`),t.role,i,t.docs),R(e,`.name`,t.name),R(e,`.role`,bc(t.role)),R(e,`.agent`,t.agent?yc[t.agent]:``),Ec(e,`.note`,a,i),Mc(e.querySelector(`:scope > .card .age`),t.since);let o=e.querySelector(`:scope > .card .todo`);o.hidden=!t.todo,t.todo&&(R(o,`b`,`${t.todo.done<t.todo.total?`◐`:`✓`} ${t.todo.done}/${t.todo.total}`),R(o,`span`,t.todo.now??``)),Nc(e.querySelector(`:scope > .card`),t.ticks),rc(e.querySelector(`:scope > .card > .quit-btn`),t),V(e.querySelector(`.subs`),t.subs??[],Pc,Fc)}function Ic(e,t,n){let r=t.tower?`main`:`member`;e.hidden=!!(n&&t.tower),e.dataset.open=r,e.dataset.ws=t.id,n&&(e.dataset.tab=n),e.textContent!==(r===`main`?Zi():Qi())&&(e.textContent=r===`main`?Zi():Qi())}var Lc=()=>I(`<section class="base"><header><div class="tower"><i class="sweep"></i><i class="pulse"></i><svg><use href="#i-tower"/></svg><b class="badge"></b></div><div class="title"><h2><a class="enter-base"></a></h2><p><span class="tstate"></span><span class="tqueue"></span><span class="age"></span></p><div class="allies" hidden></div><button type="button" class="quit-btn tower-quit" data-close="unit" hidden></button></div><button type="button" class="quit-btn" data-close="base"></button></header><div class="subs tower-subs"></div><div class="tower-notices"></div><div class="spawn-btns"><button type="button" class="pair-btn"></button><button type="button" class="pair-btn" data-close="stash"></button></div><div class="tabs"></div><div class="outposts" data-label="${$i()}"></div></section>`),Rc=()=>{let e=Lc();return ps(e.querySelector(`header > .quit-btn`)),e},zc=e=>u(e.service,e.mark,e=>F[e]());function Bc(e,t){z(e,t.mark);let n=e.querySelector(`.tower`);n.classList.toggle(`ghost`,!t.tower),z(n,t.tower?.mark??`unknown`),R(e,`h2 a`,t.label),Dc(e.querySelector(`h2 a`),{view:`workspace`,ws:t.id}),R(e,`.title .tstate`,t.tower?Ct({state:zc(t.tower)}):zi()),R(e,`.title .tqueue`,o(t.tower?.service)??``),Mc(e.querySelector(`.title .age`),t.tower?.since),Ic(e.querySelector(`.spawn-btns button`),t),oc(e.querySelector(`header .menu-pop > .quit-btn`),t),ms(e.querySelector(`header > .menu`),t.label),sc(e.querySelector(`.spawn-btns [data-close=stash]`),t),ic(e.querySelector(`.tower-quit`),t.tower),V(e.querySelector(`.tower-subs`),t.tower?.subs??[],Pc,Fc),Ps(e.querySelector(`.title .allies`),t.id,t.tower?.service),Ys(e.querySelector(`.tower-notices`),t.id,t.tower?.service,t.tower?.key),V(e.querySelector(`.tabs`),t.tabs,()=>{let e=I(`<div class="tab"><h3><span></span><button type="button" class="tab-add"></button><button type="button" class="quit-btn" data-close="tab"></button></h3><div class="units"></div></div>`);return ps(e.querySelector(`h3 > .quit-btn`)),e},(e,n)=>{R(e,`h3 span`,ro({label:n.label})),cc(e.querySelector(`.menu-pop > .quit-btn`),t,n),ms(e.querySelector(`h3 > .menu`),ro({label:n.label})),Ic(e.querySelector(`.tab-add`),t,n.id),V(e.querySelector(`.units`),n.units,Pc,Fc)}),V(e.querySelector(`.outposts`),t.outposts.map(e=>({id:e.id,name:e.label,role:`outpost`,mark:e.mark,note:e.mark===`unknown`?Li():void 0,since:e.since,ticks:e.ticks})),Pc,Fc)}var Vc=()=>I(`<section class="base ally"><header><div class="tower"><i class="pulse"></i><svg><use href="#i-tower"/></svg><b class="badge"></b></div><div class="title"><span class="crown"><svg><use href="#i-main"/></svg><em class="ally-tag"></em></span><h2></h2><p><span class="tstate"></span></p><p class="ally-teams" hidden></p></div></header><ul class="ally-tabs"></ul><ul class="ally-units"></ul></section>`),Hc,Uc=!1,Wc=new Map;function Gc(e,t,n){if(t={...t,id:t.id.replace(/^ally\//,``)},Hc)return void Hc.show(e,t,n);if(!n?.alerts.some(e=>e.kind===`dialog`))return void Wc.delete(e);Wc.set(e,[t,n]),!Uc&&(Uc=!0,j(async()=>{let{mountAllyAsks:e}=await import(`./allyasks-DI3EYpVp.js`);return{mountAllyAsks:e}},[],import.meta.url).then(({mountAllyAsks:e})=>(Hc=e(),Wc.forEach(([e,t],n)=>Hc.show(n,e,t)),Wc.clear()),()=>void(Uc=!1)))}var Kc,qc=!1,Jc=new Map;function Yc(e,t,n,r){if(Kc)return void Kc(e.querySelector(`.ally-units`),t,n,r);if(!t.length)return void Jc.delete(e);Jc.set(e,[t,n,r]),!qc&&(qc=!0,j(async()=>{let{fillAllyUnits:e}=await import(`./allyunits-BSgXjQtA.js`);return{fillAllyUnits:e}},[],import.meta.url).then(({fillAllyUnits:e})=>(Kc=e,Jc.forEach(([t,n,r],i)=>e(i.querySelector(`.ally-units`),t,n,r)),Jc.clear()),()=>void(qc=!1)))}var Xc=new Map;function Zc(e,t,n){let r=Jo(t),i=n?.units;z(e,r),e.classList.toggle(`offline`,!t.online),z(e.querySelector(`.tower`),r);let a=t.teams.length>1,o=e.querySelector(`.ally-teams`);R(e,`.ally-tag`,a?ke():Oe({team:t.teams[0]?.teamName??``})),o.hidden=!a,o.textContent=a?Me({teams:t.teams.map(e=>e.teamName).join(Ne())}):``,R(e,`h2`,t.workspace??t.label);let s=rs(i,n?.alerts,{device:t.device,workspace:t.workspace,spare:t.spare,teams:t.teams.map(e=>e.team)},Date.now(),Xc);R(e,`.tstate`,`${t.workspace?`${t.label} · `:``}${t.short}${t.online?s.length?``:` · ${Yo(t.tower)}`:` · ${Tr()}`}`);let c=s.length?[]:t.unattended?t.online&&t.tabs.length?[{id:`online`,label:``,state:t.tower,says:zr({count:t.tabs.length})}]:[]:t.tabs.map((e,t)=>({id:`${t}`,...e}));V(e.querySelector(`.ally-tabs`),c,()=>I(`<li class="ally-tab"><b></b><span></span></li>`),(e,n)=>{R(e,`b`,n.says??n.label),R(e,`span`,n.says!==void 0||!t.online?``:Yo(n.state)),e.dataset.state=n.state}),e.classList.toggle(`has-units`,s.length>0),Yc(e,s,t.workspace===null,t.label),Gc(e,t,n)}function Qc(e,t){if(e.hidden=!t,e.classList.toggle(`off`,!t),!t)return;let n=t.state!==`absent`;e.classList.toggle(`absent`,!n),z(e,t.mark);let r=e.querySelector(`.tower`);r.classList.toggle(`ghost`,!n),z(r,t.mark),e.setAttribute(`href`,`head`),R(e,`.head-name`,S()),R(e,`.tstate`,n?u(t.service,t.mark,e=>F[e]()):pn()),e.title=`${S()} · ${e.querySelector(`.tstate`).textContent}`}var $c=(e,t)=>e?t.map(([t,n])=>({x1:e[0],y1:e[1],x2:t,y2:n,mid:Math.round((e[0]+t)/2)})):[];function el(e,t,n,r){let i=[...e.querySelectorAll(`.base:not(.leaving):not(.ally) .tower`)],a=e.querySelector(`.head-node:not(.off) .tower`)??void 0,o=e.getBoundingClientRect(),s=e=>{let t=e.getBoundingClientRect();return[Math.round(t.x+t.width/2-o.x),Math.round(t.y+t.height/2-o.y)]},c=a?i.filter(e=>e!==a):[],l=$c(a&&s(a),c.map(s)),u=l.map(({x1:e,y1:t,x2:n,y2:r,mid:i})=>`M${e} ${t}C${i} ${t} ${i} ${r} ${n} ${r}`),d=u.join(`|`);t.dataset.sig!==d&&(t.dataset.sig=d,t.replaceChildren(...u.map(e=>(t=>(t.setAttribute(`class`,`wire`),t.setAttribute(`d`,e),t))(document.createElementNS(`http://www.w3.org/2000/svg`,`path`)))),n.replaceChildren(...$s(l,r))),n.querySelectorAll(`.packet`).forEach((e,t)=>e.toggleAttribute(`data-live`,[`working`,`commanding`].includes(a.dataset.mark??``)||[`working`,`commanding`].includes(c[t].dataset.mark??``)))}var tl=2,nl=20;function rl(){let[e,t,n,r]=[L(`map`,HTMLElement),L(`bases`,HTMLElement),L(`links`,SVGSVGElement),L(`packets`,HTMLElement)],i=matchMedia(`(prefers-reduced-motion: reduce)`).matches,a=new Set,o=Zs(e,t),s=()=>(o(),!e.hidden&&el(e,n,r,i)),c=0,l=()=>c||=requestAnimationFrame(()=>(c=0,s())),u=new ResizeObserver(e=>(e.forEach(({target:e,borderBoxSize:t})=>e.style.gridRowEnd=`span ${Math.ceil((t[0].blockSize+nl)/tl)}`),l()));return setInterval(()=>document.querySelectorAll(`.age[data-since]`).forEach(e=>Mc(e,Number(e.dataset.since))),15e3),addEventListener(`resize`,l),new ResizeObserver(([e])=>document.documentElement.style.setProperty(`--hud`,`${Math.ceil(e.borderBoxSize[0].blockSize)}px`)).observe(document.querySelector(`.hud`)),cs(),{layout:s,stats(e){let t=e.bases.flatMap(e=>[...e.tower?.subs??[],...e.tabs.flatMap(e=>e.units.flatMap(e=>[e,...e.subs]))]),n=e=>String(t.filter(t=>!e||t.mark===e).length);L(`s-commanding`,HTMLElement).parentElement.toggleAttribute(`data-on`,t.some(e=>e.mark===`commanding`));for(let[t,r]of[[`s-bases`,String(e.bases.length)],[`s-agents`,n()],[`s-working`,n(`working`)],[`s-commanding`,n(`commanding`)],[`s-waiting`,n(`waiting`)]])L(t,HTMLElement).textContent=r},show(e){let n=Qo(e.link?.allies??[]).map(e=>({...e,id:`ally/${e.id}`,ally:!0}));Qc(L(`head-node`,HTMLElement),e.head),V(t,[...e.bases,...n],e=>`ally`in e?Vc():Rc(),(t,n)=>`ally`in n?Zc(t,n,e.link):Bc(t,n));for(let e of t.children)a.has(e)||(a.add(e),u.observe(e));for(let e of a)e.isConnected||(a.delete(e),u.unobserve(e));requestAnimationFrame(s)},pause(e){document.documentElement.classList.toggle(`paused`,e)}}}var il=(e,t)=>n=>n&&!e()&&t();function al(e,t){let n=L(`link-alerts`,HTMLButtonElement),r=L(`link-alerts-pop`,HTMLElement),i=L(`link-alerts-list`,HTMLElement),a=``,o=new Set,s=!0;r.addEventListener(`toggle`,e=>e.newState===`open`&&Oc(r,n)),r.setAttribute(`aria-label`,_r()),n.title=_r();let c=(e,t,n)=>{let r=n.querySelector(`.link-note`);for(let e of n.querySelectorAll(`button`))e.disabled=!0;j(async()=>{let{confirmActions:e,confirmWhy:t}=await import(`./asks-BnnooiNx.js`).then(e=>e.t);return{confirmActions:e,confirmWhy:t}},[],import.meta.url).then(async({confirmActions:n,confirmWhy:r})=>({r:await n(e)[t?`allow`:`deny`](),why:r})).then(({r:e,why:t})=>{e.ok||(r.textContent=t(e));for(let e of n.querySelectorAll(`button`))e.disabled=!1},()=>{r.textContent=w();for(let e of n.querySelectorAll(`button`))e.disabled=!1})},l=e=>{let t=E(`li`,{class:`link-alert`,"data-level":`warning`}),n=E(`button`,{type:`button`,class:`pair-btn`},vr()),r=E(`button`,{type:`button`,class:`pair-btn`},br());return n.onclick=()=>c(e,!0,t),r.onclick=()=>c(e,!1,t),t.append(E(`b`,null,Wo(e)),E(`pre`,{class:`link-args`},e.args),E(`div`,{class:`devices-acts`},n,r),E(`small`,{class:`link-note`,role:`status`})),t},u,d,f=()=>void j(async()=>{let{mountDialogCards:e}=await import(`./linkdialogs-Dt1edAFc.js`);return{mountDialogCards:e}},[],import.meta.url).then(({mountDialogCards:e})=>(u=e(),a=``,m.net(d))),p=new Set,m={net(c){d=c;let h=Go((c?.alerts??[]).filter(e=>e.kind!==`confirm`&&!p.has(e.id))),g=c?.confirms??[],_=JSON.stringify([h,g]);if(_===a)return;a=_;let v=new Set([...g.map(e=>`c/${e.dialogId}`),...h.filter(e=>e.kind===`join-request`||e.kind===`dialog`&&Xo(e)===`open`).map(e=>e.id)]);u?.keep(new Set(h.map(e=>e.id))),!u&&h.some(e=>e.kind===`dialog`)&&f(),s||t([...v].filter(e=>!o.has(e)).length),[o,s]=[v,!1];let y=h.length+g.length;n.hidden=y===0,n.textContent=gr({count:String(y)}),n.dataset.state=g.length||h.some(e=>e.level===`error`)?`error`:h.some(e=>e.level===`warning`)?`waiting`:`done`,!y&&r.matches(`:popover-open`)&&r.hidePopover(),i.replaceChildren(...Bo(...g.map(l),...h.map(t=>{if(t.kind===`dialog`&&u)return u.row(t);let n=E(`li`,{class:`link-alert`,"data-level":t.level,"data-kind":t.kind},E(`span`,null,Uo(t)));if(t.kind===`join-request`||t.kind===`fork`||t.kind===`mismatch`){let i=E(`button`,{type:`button`,class:`later`},t.kind===`join-request`?kr():Dr());i.onclick=()=>(r.hidePopover(),e()),n.append(i)}if(t.kind===`notice`){let e=E(`button`,{type:`button`,class:`later`},wr());e.onclick=()=>(p.add(t.id),a=``,m.net(d)),n.append(e)}if(t.kind===`served`){let e=E(`a`,{class:`later`,href:`./`,"data-route":``},Nr());e.onclick=()=>r.hidePopover(),n.append(e)}return n})))}};return m}var ol=45e3,sl=1e3,cl=3e4,ll={state:`connecting`,attempt:0},ul=(e,t)=>Math.min(cl,sl*2**(e-1))*(.8+.4*t);function dl(e){try{return JSON.parse(e)}catch{return}}function fl(e){let t,n,r,i=0,a={state:`connecting`,attempt:0},o=t=>e.onStatus(a={...a,...t}),s=()=>(e.clearTimeout(n),e.clearTimeout(r),n=r=void 0),c=()=>{let e=t;t=void 0,e?.close()},l=()=>{e.clearTimeout(r),r=e.setTimeout(()=>u(),ol),o({state:`live`,attempt:0,lastContact:e.now()})},u=()=>{c(),s();let t=a.attempt+1;if(t>8)return o({state:`offline`,attempt:t});o({state:`reconnecting`,attempt:t}),e.hidden()||(n=e.setTimeout(d,ul(t,e.random())))},d=()=>{c(),s(),i=e.now();let n=t=e.open();n.onError(()=>{t===n&&(u(),e.replaced?.().then(e=>{e&&a.state!==`live`&&a.state!==`replaced`&&(c(),s(),o({state:`replaced`}))},()=>{}))}),n.listen(`message`,r=>{if(t!==n)return;let i=dl(r);i&&e.onNet(i),o({problem:i?void 0:aa()}),l()}),n.listen(`ping`,()=>t===n&&l()),n.listen(`problem`,e=>{t===n&&(o({problem:dl(e)??oa()}),l())}),r=e.setTimeout(()=>u(),ol)};return{start(){o({state:`connecting`,attempt:0}),d()},resume(){if(a.state===`replaced`)return;let n=e.now()-i<2e3||a.lastContact!==void 0&&e.now()-a.lastContact<=2e4;t&&n||(o({attempt:0,state:a.state===`live`||a.state===`offline`?`reconnecting`:a.state}),d())},restart:d,hide(){e.clearTimeout(n),n=void 0},stop(){c(),s()}}}function pl(e,t,n){let r=t===`zen`;switch(e.on){case`pick`:return{away:!1,settings:n.settings,leaveSettings:r&&n.settings};case`follow`:return{away:r?n.settings?!0:n.away:!1,settings:n.settings,leaveSettings:!1};case`leave`:return{away:!0,settings:n.settings,leaveSettings:!1};case`back`:return{away:!1,settings:n.settings,leaveSettings:!1};case`route`:return{away:r?e.settings:n.away,settings:e.settings,leaveSettings:!1}}}function ml(e){let t=()=>({away:e.root.dataset.zenAway!==void 0,settings:e.settings()});function n(n){let r=t(),i=pl(n,e.view.view(),r);n.on===`leave`&&e.view.release(),i.away?e.root.dataset.zenAway=``:delete e.root.dataset.zenAway,e.view.refresh(),e.draw(),i.leaveSettings&&e.leaveSettings()}return e.view.onChange((e,t)=>n({on:t})),{leave:()=>n({on:`leave`}),back:()=>n({on:`back`}),route:e=>n({on:`route`,settings:e})}}function hl(e){let t={view:`map`},n,r,i,a=ll,o,s,c=null,l=null,u=[],d=()=>zo(e.view.view(),e.root.dataset.zenAway!==void 0||t.view===`settings`),f=()=>d()===Ro.zen,p=()=>f()&&c||js(t,n?.head?.key);function m(){let t=p();t!==l&&(l=t,e.restart())}let h=t=>e.icon(d().count?fe(ue(t).map(e=>e.unit)).length+(t.trust?.length??0)+[...Fo(t,Date.now()).values()].filter(e=>e.wait).length:0);function g(){let t=f();e.zenEl.hidden=!t,t?e.withZen(e=>f()&&(e.pairs(u),n&&e.net(Fo(n,Date.now()),n),e.show())):e.zen()?.hide(),n&&h(n),m()}let _=ml({view:e.view,root:e.root,settings:()=>t.view===`settings`,leaveSettings:e.leaveSettings,draw:()=>(e.back(),g())});function v(a){n=r=a,h(a),e.link(a.link),t.view===`head`&&m();let c=Fo(a,Date.now()),l=d();if(l.announce===`current`)return void(s=c,e.withZen(e=>e.net(c,a)));if(s&&l.signal&&e.signal(Io(s,c)),s=c,e.hidden())return;let u=Io(o,c);o=c,e.draw(a,u,c),t.view===`map`&&(e.map(a),i=a,r=void 0)}let y=()=>void(r&&v(r)),ee=t=>e.withPanels(e=>e.stack.show(t));function b(t,n,{mode:r,at:i}={}){if(r===`term`&&f())return e.withZen(e=>f()?e.terminal({key:n}):b(t,n,{mode:r,at:i}));r===`term`&&e.panels()?.stack.close(`go`),e.go({view:`session`,ws:t,key:n,at:i}),r===`term`&&e.withFocus(e=>e.terminal(n))}function x(t){if(f())return e.withZen(e=>f()?e.step(t):x(t));e.withPanels(e=>e.step(t,n))}return{get current(){return t},get latest(){return n},alertOf:e=>o?.get(e),rules:d,zenOn:f,watch:p,face:_,snapshot:v,sync:g,online:()=>a.state===`live`,status(t){a=t,e.zen()?.refresh()},opened:()=>l=p(),wake:y,route(r){let a=t;t=r,r.view===`settings`!=(a.view===`settings`)&&_.route(r.view===`settings`),e.navigate(r,a),r.view===`map`&&n&&n!==i&&(v(n),e.layout()),m()},openAlert:ee,openSession:b,openStep:x,leaveZen({item:t,route:n}){_.leave(),t&&ee(t),n&&e.go(n),y()},upgrade(t){let n=f()?e.zen():void 0;n?n.upgrade(t):t()},pairing(t){u=t,f()&&e.withZen(e=>e.pairs(t))},enterZen:()=>ce(e.view,e.root),notified:e=>d().announce===`current`||!!e.card||(e.trust||e.wait?ee(e):b(e.ws,Po(e))),news:il(()=>!d().chime,e.chime),keys:()=>d().keys,modal:()=>e.modal(),hotkey:t=>(t===`next`||t===`zoom`?e.panels()?.hotkey(t):e.zen()?.key(t))??!1,newest:()=>n,openSettings:()=>e.go({view:`settings`}),noDrawer:()=>!d().drawer,escape(n,r){if(!(n.key!==`Escape`||n.defaultPrevented||e.modal())){if(r)return void(!n.isComposing&&f()&&e.zen()?.escape(n)&&n.stopPropagation());f()||(n.preventDefault(),!(e.panels()?.stack.close()||t.view===`map`)&&(t.view===`settings`?e.leaveSettings():e.go(As(t))))}},watchLog(e){c=e,m()}}}function gl(e){let t=/^zh\b/i.test(e)&&(/-(hant|tw|hk|mo)\b/i.test(e)?`zh-TW`:/-(hans|cn|sg|my)\b/i.test(e)?`zh-CN`:void 0);return m(e)??(t?m(t):void 0)??m(e.split(`-`)[0])}function _l(e,t){return m(e)??t.map(gl).find(Boolean)??`en`}var vl={brand_label:Je,head_tower:S,menu_more:wi,tagline:io,totals_label:fo,stat_bases:Ka,stat_agents:Ga,stat_working:Ya,stat_waiting:Ja,stat_commanding:qa,mark_commanding:gi,alerts:ye,no_alerts:Ri,link_connecting:yr,connect_connecting:vt,connect_retry:bt,location:Hr,all_bases:be,documents:Mt,timeline:ao,states:eo,mark_working:xi,mark_waiting:C,mark_idle:yi,mark_done:_i,mark_error:vi,credit:wt,language:mn,view_label:Eo,view_auto:xo,view_standard:Do,view_geek:To,view_zen:ko,zen_back:jo,zen_back_title:Mo,view_title:Oo,settings:Aa,new_base:Ii,back:Pe,remind:da,sound:ja,sound_volume:Pa,sound_try:Na,sound_title:Ma,set_device:Ta,set_device_note:Ea,set_phone:Da,set_teams:ka,set_server:Oa};Object.keys(vl);function yl(e,t=localStorage,n=()=>location.reload()){return b(t).set(`locale`,e)?(n(),!0):!1}var bl=()=>h.map(e=>({id:e,name:Vr({},{locale:e})}));function xl(){let e=_l(x.get(`locale`),navigator.languages??[navigator.language]);g(()=>e),document.documentElement.lang=e;let t={m:(e,t)=>e.textContent=t,mLabel:(e,t)=>e.setAttribute(`aria-label`,t),mTitle:(e,t)=>e.title=t,mEmpty:(e,t)=>e.dataset.empty=t};for(let e of document.querySelectorAll(`[data-m], [data-m-label], [data-m-title], [data-m-empty]`))for(let[n,r]of Object.entries(t))e.dataset[n]&&r(e,vl[e.dataset[n]]?.()??e.dataset[n]);let n=document.getElementById(`lang`);n.replaceChildren(...h.map(t=>new Option(Vr({},{locale:t}),t,!1,t===e))),n.onchange=()=>yl(n.value)||(n.value=e)}var Sl=e=>e===`auto`?xo():wo({view:e===`geek`?To():e===`zen`?ko():Do()}),Cl=e=>e.state===`live`?void 0:e.state,wl={connecting:vt,reconnecting:yt,offline:e=>ze({tries:e.attempt-1}),replaced:qe},Tl=[`click`,`dblclick`,`auxclick`,`contextmenu`,`pointerdown`,`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`keydown`,`keyup`,`keypress`,`submit`,`dragstart`],El=new Set([`click`,`dblclick`,`auxclick`,`contextmenu`,`submit`]),H=e=>document.getElementById(e),Dl=()=>({win:window,dialog:H(`connect`),text:H(`connect-text`),retry:H(`connect-retry`),reload:H(`connect-reload`),guarded:[document.querySelector(`.shell`),H(`dock`),H(`zen`)]});function Ol(e,t=Dl()){let{win:n,dialog:r,text:i,guarded:a}=t,o,s=!1,c=!1,l=()=>{c=!0,r.close(),c=!1},u=()=>{s||=(r.open&&l(),r.showModal(),!0);for(let e of a)e.inert=!0},d=()=>{for(let e of a)e.inert=!1;r.open&&l(),s=!1};r.addEventListener(`cancel`,e=>e.preventDefault()),r.addEventListener(`close`,()=>{c||r.open||(s=!1,o&&u())});for(let e of Tl)n.addEventListener(e,t=>{!o||r.contains(t.target)||t.target?.closest?.(`dialog:modal`)||(t.stopPropagation(),El.has(e)&&t.preventDefault())},!0),r.addEventListener(e,e=>e.stopPropagation());return t.reload?.remove(),t.retry.addEventListener(`click`,e),e=>{if(o=Cl(e),!o)return d();r.dataset.state=o,i.textContent=wl[o](e),t.retry.hidden=o!==`offline`,u()}}var kl=`input, textarea, select, [role=textbox], [role=combobox], [role=listbox], .term-scroll`,Al=`button, a, summary, [role=button], [role=link]`,jl=`.ask-opt, [role=radio], [role=checkbox]`,Ml=`dialog.sheet[open], dialog.lightbox[open], [popover]:popover-open`,Nl={dialogs:[{keys:[`f`],hotkey:`zoom`},{keys:[` `],hotkey:`next`,native:`keyboard`}]};function Pl(e,t,n=!1,r=`dialogs`,i){if(t||e.defaultPrevented||e.isComposing)return;let a=e.key.toLowerCase(),o=Nl[r]?.find(t=>t.keys.includes(a)&&(t.takes?t.takes(e,i):!e.metaKey&&!e.ctrlKey&&!e.altKey)),s=e.target;if(!(!o||(o.blocks?o.blocks(s):s?.isContentEditable||s?.closest?.(kl)))&&(!o.native||!s?.closest?.(Al)||o.native!==`any`&&n)&&!(a===` `&&s?.closest?.(jl)))return o.hotkey}function Fl(e,t=()=>document.querySelector(Ml)!==null,n=window,r=()=>`dialogs`,i){let a,o=!1,s=null;n.addEventListener(`pointerdown`,()=>o=!0,!0),n.addEventListener(`focusin`,e=>s=o?e.target:null,!0),n.addEventListener(`keydown`,n=>{let c=n.target===s;o=!1;let l=Pl(n,t(),c,r(),i?.());if(l){if(n.repeat)return a===l?n.preventDefault():void 0;e(l)&&(a=l,n.preventDefault())}}),n.addEventListener(`keyup`,e=>{(a===`next`||a===`pause`)&&e.key===` `&&e.preventDefault(),a=void 0})}function Il(e=()=>new AudioContext,t=e=>fetch(e).then(e=>e.arrayBuffer())){let n,r,i=1,a=new Map,o=()=>(n??=e(),r||((r=n.createGain()).connect(n.destination),r.gain.value=i),{c:n,g:r});return{volume:e=>void(i=(e/100)**2,r&&(r.gain.value=i)),unlock:()=>o().c.resume().then(()=>o().c.state===`running`,()=>!1),out:o,running:()=>n?.state===`running`,play(e){let{c:n,g:r}=o();a.has(e)||a.set(e,t(e).then(e=>n.decodeAudioData(e))),Promise.all([n.resume(),a.get(e)]).then(([,e])=>{let t=n.createBufferSource();t.buffer=e,t.connect(r),t.start()}).catch(()=>a.delete(e))}}}var Ll=Il(),Rl=new URL(`done-jqKY4qf5.mp3`,import.meta.url).href,zl=new URL(`error-DdTLgPEw.mp3`,import.meta.url).href,Bl={waiting:new URL(`waiting-DOg8-8gu.mp3`,import.meta.url).href,error:zl,done:Rl},Vl=e=>e.mark===`waiting`||e.pending?`waiting`:e.mark===`error`?`error`:e.mark===`done`?`done`:void 0;function Hl(e){let t=e=>document.getElementById(e),n=t(`remind`),r=t(`sound`),i=t(`sound-vol`),a=t(`sound-vol-out`),o=typeof Notification<`u`,s=x.get(`remind`),c=x.get(`sound`),l=x.get(`volume`),u=[],d=()=>{let e=o?Notification.permission:`denied`;n.setAttribute(`aria-pressed`,String(s)),n.dataset.state=s?e===`granted`?`on`:e===`denied`?`blocked`:`ask`:`off`,n.title=o?s?e===`granted`?ha():e===`denied`?pa():fa():ma():ga(),t(`remind-note`).textContent=n.title,r.dataset.state=c?`on`:`off`,n.textContent={off:Qa,on:$a,blocked:Za,ask:Xa}[n.dataset.state](),r.textContent=c?$a():Qa(),r.setAttribute(`aria-pressed`,String(c)),i.value=a.value=String(l),Ll.volume(l)};n.onclick=async()=>{s&&o&&Notification.permission==="default"?await Notification.requestPermission().catch(()=>{}):x.set(`remind`,s=!s),d()};let f=e=>{x.set(`sound`,c=e),d(),c&&m(`done`)},p=e=>(x.set(`volume`,l=e),d());x.on(`sound`,()=>(c=x.get(`sound`),d(),u.forEach(e=>e()))),x.on(`volume`,()=>(l=x.get(`volume`),d(),u.forEach(e=>e()))),r.onclick=()=>f(!c),i.oninput=()=>p(Number(i.value)),i.onchange=()=>m(`done`),t(`sound-try`).onclick=()=>m(`done`);let m=e=>Ll.play(Bl[e]);function h(t,n){if(!s||!o||Notification.permission!==`granted`||!document.hidden&&document.hasFocus())return;let r=new Notification(t.name,{body:t.trust?_o():{waiting:Xi,error:qi,done:Wi}[n]({note:t.note??``}).trim(),tag:t.key,icon:document.querySelector(`link[rel="icon"]`)?.href,silent:n!==`waiting`});r.onclick=()=>(window.focus(),r.close(),e(t))}return d(),{remind:e=>h(e,`waiting`),sound:{on:()=>c,volume:()=>l,set:f,setVolume:p,try:()=>m(`done`),onChange:e=>void u.push(e)},chime:()=>c&&m(`done`),signal(e){let t=e.flatMap(e=>(t=>t?[{a:e,k:t}]:[])(Vl(e)));if(t.length){c&&m([`waiting`,`error`,`done`].find(e=>t.some(t=>t.k===e)));for(let{a:e,k:n}of t)h(e,n)}}}}var Ul=`sb.head.seen`;function Wl(){try{let e=Number(localStorage.getItem(Ul));return Number.isFinite(e)&&e>0?e:0}catch{return 0}}function Gl(e){try{e>Wl()&&localStorage.setItem(Ul,String(e))}catch{}}var Kl=(e,t)=>!!(e?.said&&e.said>t);function ql(e,t,n,r){if(e.hidden=!t,!t)return;e.dataset.mark=t.mark,e.dataset.state=t.state,e.title=S(),e.setAttribute(`aria-label`,t.said&&Kl(t,n)&&!r?`${S()}: ${Zt()}`:S()),e.toggleAttribute(`aria-current`,r),r&&e.setAttribute(`aria-current`,`page`);let i=e.querySelector(`.dot`);i&&(i.hidden=r||!Kl(t,n))}var Jl=e=>e&&(e.standing||e.decisions||e.proposals.length||e.problem)?e:void 0,Yl=(e,t)=>e.state===`absent`?pn({},t):u(e.service,e.mark,e=>F[e](),t);function Xl(e,t){let n=(t,n)=>{let r=e.querySelector(t);r&&r.textContent!==n&&(r.textContent=n)};e.querySelector(`.head-icon`)?.setAttribute(`href`,`#i-crown`),n(`.head-kicker`,``),n(`.head-title`,S()),n(`.head-line`,Yl(t));let r=e.querySelector(`.head-absent`);r&&(r.hidden=t.state!==`absent`,n(`.head-absent`,Nt()))}var Zl=864e5,Ql={answered:4,handled:3,received:2,waiting:1,silent:0},$l=e=>e===`answered`||e===`handled`,eu=e=>Number(e.slice(1));function tu(e,t,n){let r=new Map;for(let t of e)r.set(t.group??t.id,[...r.get(t.group??t.id)??[],t]);let i=[...r].map(([e,t])=>{let r=t[0],i=[...new Set(t.map(e=>e.workspace))].map(e=>{let i=t.filter(t=>t.workspace===e),a=i.reduce((e,t)=>Ql[t.state]>Ql[e.state]?t:e),o=i.filter(e=>e.last).sort((e,t)=>t.at-e.at)[0]?.last,s=n?.bases.find(t=>t.id===e)?.tower?.key,c=i.at(-1).sent??r.sent??i.at(-1).first;return{workspace:e,label:i.at(-1).label,state:a.state,...o?{said:o}:{},...s?{route:k({view:`session`,ws:e,key:s})}:{},sent:c,...a.missed?{missed:!0}:{}}}),a=t.find(e=>e.boss)?.boss,o=t.find(t=>t.supersedes&&t.supersedes!==e)?.supersedes;return{id:e,first:r.first,sent:r.sent??r.first,...a?{boss:a}:{},towers:i,handled:i.filter(e=>$l(e.state)).length,since:Math.min(...t.map(e=>e.since)),active:Math.max(...t.map(e=>e.at)),...o?{supersedes:o}:{},replaces:[]}}).sort((e,t)=>t.since-e.since),a=new Map(i.map(e=>[e.id,e]));for(let e of i){let t=e.supersedes?a.get(e.supersedes):void 0;if(!t||!(eu(t.id)<eu(e.id)))continue;let n=t.replacedBy?a.get(t.replacedBy):void 0;(!n||n.since<e.since)&&(t.replacedBy=e.id)}for(let e of i)if(!e.replacedBy)for(let t=e,n=new Set([e.id]);t.supersedes;){let r=a.get(t.supersedes);if(!r||r.replacedBy!==t.id||n.has(r.id))break;e.replaces.push(r),n.add(r.id),t=r}let o=i.filter(e=>!e.replacedBy);return{recent:o.filter(e=>t-e.active<Zl),older:o.filter(e=>t-e.active>=Zl)}}function nu(e,n,i){let a=Math.max(0,n-e.since)/1e3,o=a<60?ve({n:String(Math.floor(a))},i):a<3600?he({n:String(Math.floor(a/60))},i):a<86400?r({n:String(Math.floor(a/3600))},i):t({n:String(Math.floor(a/86400))},i);return(e.towers.length===1?Xt:qt)({age:o,handled:e.handled,count:e.towers.length},i)}var ru={"「":`」`,"『":`』`,"“":`”`,'"':`"`,"'":`'`,"‘":`’`};function iu(e){if(!e.sent)return e.first;let t=e.boss?e.sent.indexOf(e.boss):-1,n=e.sent;if(t>=0){let r=e.sent.slice(0,t),i=e.sent.slice(t+e.boss.length),a=`…`,o=r.at(-1);o&&ru[o]!==void 0&&i.startsWith(ru[o])&&(r=r.slice(0,-1),i=i.slice(1),a=``,/^[.。]/.test(i)&&(i=i.slice(1))),(r+i).trim()&&(n=r+a+i)}return n.split(`
|
|
4
|
+
`).map(e=>e.replace(/[\u0000-\u001f\u007f-\u009f\u2028\u2029]+/g,` `).replace(/\s+/g,` `).trim()).find(Boolean)??e.first}var au={waiting:e=>Vt({},e),answered:e=>Pt({},e),handled:e=>Ft({},e),received:e=>zt({},e),silent:e=>Bt({},e)},ou=e=>!e.route&&!$l(e.state),su=(e,t)=>ou(e)?Rt({},t):au[e.state](t),cu=new WeakMap;function lu(e,t,n,r=Date.now()){let{recent:i,older:a}=t?tu(t.asks,r,n):{recent:[],older:[]},o=new Map([...i,...a].flatMap(e=>[e,...e.replaces]).map(e=>[e.id,nu(e,r)])),s=JSON.stringify([i,a,[...o]]);if(e.hidden=!i.length&&!a.length,e.dataset.sig===s)return;e.dataset.sig=s;let c=cu.get(e)??cu.set(e,new Set).get(e);e.setAttribute(`aria-label`,Ht());let l=(e,t)=>(c.has(t)&&e.setAttribute(`open`,``),e.addEventListener(`toggle`,()=>void(e.hasAttribute(`open`)?c.add(t):c.delete(t))),e),u=(e,t,n)=>E(`span`,{class:`ask-part`,"data-part":e},E(`b`,{class:`ask-tag`},t),E(`span`,{class:`ask-text`},n)),d=(e,t,n)=>E(`section`,{"data-part":e},E(`b`,{class:`ask-tag`},t),E(`p`,null,n)),f=e=>t=>E(`li`,{class:`ask-tower`,"data-state":ou(t)?`none`:t.state},E(`span`,{class:`ask-line`},t.route?E(`a`,{class:`ask-name`,href:t.route||`./`,"data-route":t.route},t.label):E(`b`,{class:`ask-name`},t.label),E(`span`,{class:ou(t)?`ask-none`:`ask-state`},su(t)),...t.route||ou(t)?[]:[E(`span`,{class:`ask-none`},Rt())]),...t.said?[E(`p`,{class:`ask-said`},t.said)]:[],...t.state===`handled`?[E(`p`,{class:`ask-note`},(t.missed?Lt:It)())]:[],...t.sent&&t.sent!==e.sent?[E(`p`,{class:`ask-sent`,"data-tag":nn()},t.sent)]:[]),p=e=>{let t=e.replacedBy?an():e.supersedes?dn({count:Math.max(1,e.replaces.length)}):``,n=e.replacedBy??(e.replaces.length?e.replaces.map(e=>e.id):[e.supersedes]).join(`, `),r=E(`details`,{class:`ask-group`,"data-id":e.id,...e.replacedBy?{"data-superseded":``}:{}},E(`summary`,null,...e.boss?[u(`boss`,tn(),e.boss)]:[],u(`sent`,nn(),iu(e)),u(`to`,rn(),e.towers.map(e=>e.label).join(fn())),E(`span`,{class:`ask-foot`},E(`span`,{class:`ask-meta`},o.get(e.id)),...t?[E(`span`,{class:`ask-chain`,title:n},t)]:[])),E(`div`,{class:`ask-full`},...e.boss?[d(`boss`,tn(),e.boss)]:[],d(`sent`,nn(),e.sent)),E(`ul`,{class:`ask-towers`},...e.towers.map(f(e))),...e.replaces.length?[l(E(`details`,{class:`ask-replaced`,"data-id":`replaced-${e.id}`},E(`summary`,null,cn({count:e.replaces.length})),...e.replaces.map(p)),`replaced-${e.id}`)]:[]);return l(r,e.id)};e.replaceChildren(...i.map(p),...a.length?[l(E(`details`,{class:`ask-older`,"data-id":`older`},E(`summary`,null,en({count:a.length})),...a.map(p)),`older`)]:[])}var uu,du=e=>void(uu=e);function fu(e,t){if(`terminal`in e)return void(t.key&&uu?.({kind:`prompt`,key:t.key,asker:t.key,command:t.command,...e.run&&t.answerId?{run:t.answerId}:{}}));if(e.pane===null)return ea();uu?.({kind:`pane`,key:`grant:${e.pane}`,asker:t.key,command:t.command})}var pu={commanding:Gr,working:hi,waiting:fi,idle:ei,done:Jr,error:Zr,unknown:li},mu=e=>(e.kind===`joined`?ri:e.kind===`left`?oi:pu[e.mark])({name:e.name}),hu=18e5,gu={waiting:0,error:0,working:1,commanding:1},_u=e=>new Date(e).toLocaleTimeString([],{hour12:!1});function vu(e){let[t,n,r,i,a]=[`.tl-lanes`,`.tl-axis`,`.tl-at`,`.tl-last`,`.tl-span`].map(t=>e.querySelector(t)),o=[],s=``;matchMedia(`(max-width: 640px)`).matches&&(e.open=!1);let c=()=>{let e=Date.now()-hu,s=o.filter(t=>t.at>=e),c=s.at(-1);t.replaceChildren(...s.map(t=>{let n=document.createElement(`a`),r=(t.at-e)/hu*100;return n.className=`tl-mark ${t.kind}${r>70?` end`:``}`,n.dataset.mark=t.kind===`left`?`unknown`:t.mark,n.style.cssText=`left:${r.toFixed(2)}%;top:${(gu[t.mark]??2)*14+4}px`,n.setAttribute(`aria-label`,`${_u(t.at)} ${mu(t)}`),Dc(n,t.key&&t.kind!==`left`?{view:`session`,ws:t.ws,key:t.key}:{view:`workspace`,ws:t.ws}),n})),n.replaceChildren(...[0,10,20].map(t=>Object.assign(document.createElement(`span`),{textContent:_u(e+t*6e4).slice(0,5)})),Object.assign(document.createElement(`span`),{textContent:so()})),r.textContent=c?_u(c.at):``,i.textContent=c?mu(c):oo(),a.textContent=uo({count:String(s.length)})};return setInterval(c,3e4),c(),{net(e){let t=e.events??[],n=t.map(e=>`${e.at}${e.kind}${e.key??e.name}${e.mark}`).join();n!==s&&(s=n,o=t,c())}}}async function yu(e,t=fetch){return e.startsWith(`data:`)?decodeURIComponent(e.slice(e.indexOf(`,`)+1)):t(e).then(e=>e.text(),()=>void 0)}function bu(e,t){let n=`<circle cx='23' cy='9' r='9' fill='#e0af68' stroke='#1a1b26' stroke-width='2'/><text x='23' y='13' text-anchor='middle' font-family='sans-serif' font-size='${t>9?9:12}' font-weight='700' fill='#16161e'>${t>9?`9+`:t}</text>`;return`data:image/svg+xml,${encodeURIComponent(t?e.replace(`</svg>`,`${n}</svg>`):e)}`}var U=oe(void 0);xl(),ys(),se(document.getElementById(`view-pick`),U,Sl);var xu=rl(),Su=vu(document.getElementById(`timeline`)),W=e=>document.getElementById(e),Cu=document.documentElement,wu=le(W(`zen-back`),U,Cu,()=>Y.enterZen()),Tu=e=>e?new Date(e).toLocaleTimeString([],{hour12:!1}):Fi(),Eu=!1,Du=``,G,Ou,K=e=>G?e(G):void Ou?.then(e);function ku(){Ou??=j(async()=>{let{mountFocus:e}=await import(`./views-DsIdYMD3.js`);return{mountFocus:e}},[],import.meta.url).then(({mountFocus:e})=>(G=e({data:od,restart:()=>ld.restart(),openTile:Pu,embedTerminal:(e,t,n)=>Au(e,t,n,{keys:!1}),online:Y.online}),G.show(A(Y.current),A(Y.current)),Y.latest&&G.net(Y.latest),G))}var Au=(e,t,n,r)=>new Promise(i=>J(a=>i(a.terminal.embed(e,t,n,r)))),ju=()=>new Promise(e=>J(t=>e(t.kit))),Mu=e=>Y.latest?.bases.find(t=>t.id===e)?.label??e,q,Nu,J=e=>{if(q)return e(q);Nu??=j(async()=>{let{mountPanels:e}=await import(`./layer-C51gEY-z.js`);return{mountPanels:e}},[],import.meta.url).then(({mountPanels:e})=>q=e({label:Mu,recent:sd,post:e=>Z&&((t,n)=>Z.data(e).post(t,n)),trust:Z&&Z.trust,stream:()=>Du,showTerminal:(e,t)=>Y.openSession(e,t,{mode:`term`})})),Nu.then(e)},Pu=(e,t)=>J(n=>n.tiles.open(e,t)),Fu,Iu,Lu=e=>{Iu??=j(async()=>{let{mountZen:e,zenPage:t}=await import(`./zenchunk-BsqxzIto.js`);return{mountZen:e,zenPage:t}},__vite__mapDeps([0]),import.meta.url).then(({mountZen:e,zenPage:t})=>{let n=t({sound:X.sound,api:Z?.api??id,snapshot:Y.newest});return Fu=e(W(`zen`),{data:od,recent:sd,label:Mu,online:Y.online,post:e=>Z&&((t,n)=>Z.data(e).post(t,n)),trust:Z&&Z.trust,remind:e=>X.remind(e),sound:n.sound,menu:{language:{get:_,names:bl,set:yl},view:{choice:()=>U.choice(),set:e=>U.set(e),auto:()=>Sl(U.server())},sound:{...X.sound,...n.menuSound}},music:n.music,leave:Y.leaveZen,terminals:ju,watch:Y.watchLog,companions:n.companions,activity:n.activity,settings:Y.openSettings,start:Z?.start})}),Iu.then(e)},Ru=nc(location.hostname),zu=Ru.phone,Bu,Vu=e=>void(Bu??=j(async()=>{let{mountSettings:e}=await import(`./settings-CgtiQKfq.js`);return{mountSettings:e}},[],import.meta.url).then(({mountSettings:e})=>e(W(`settings-view`),Ru))).then(e),Hu=e=>Y.current.view===`settings`?Vu(t=>t.show(e)):Q.go({view:`settings`,section:e}),Uu=document.querySelector(`link[rel="icon"]`),Wu=Uu?yu(Uu.href):void 0,Gu=0;function Ku(e){Uu&&Wu&&e!==Gu&&(Gu=e,Wu.then(t=>t&&e===Gu&&(Uu.href=bu(t,e))))}function qu(){let e=W(`dismiss-all`).hidden&&W(`stashed`).hidden&&W(`head-btn`).hidden;W(`bar-more`).hidden=e,e&&W(`bar-pop`).matches(`:popover-open`)&&W(`bar-pop`).hidePopover()}function Ju(e,t,n){xu.stats(e),dc(W(`dismiss-all`),e),fc(W(`stashed`),W(`stashed-list`),e),ql(W(`head-btn`),e.head,Wl(),Y.current.view===`head`||Y.current.view===`session`&&Y.current.ws===`@head`),qu(),W(`bar-more`).toggleAttribute(`data-news`,Kl(e.head,Wl())&&!(Y.current.view===`head`||Y.current.view===`session`&&Y.current.ws===`@head`)),$?.net(e),(t.length||q)&&J(r=>r.alerts(t,n,e)),Su.net(e),K(t=>t.net(e))}function Yu(e,t){let n=e.view===`workspace`&&t.view===`map`?document.querySelector(`#bases [data-key="${CSS.escape(e.ws)}"]`)?.getBoundingClientRect():void 0,r=e.view===`head`?`session`:e.view;document.body.dataset.route=r,$?.route(e),(e.view===`workspace`||e.view===`session`||e.view===`head`)&&ku(),W(`map`).hidden=e.view!==`map`,W(`settings-view`).hidden=e.view!==`settings`,W(`crumbs`).hidden=e.view===`settings`,W(`legend`).hidden=r===`session`||e.view===`settings`,W(`prefs`).toggleAttribute(`aria-current`,e.view===`settings`),W(`stage`).dataset.view=e.view===`head`||e.view===`session`&&e.ws===`@head`?`head`:r,K(r=>r.show(A(e),A(t),n)),e.view===`settings`?Vu(t=>Y.current===e&&t.show(e.section)):t.view===`settings`&&Vu(e=>e.hide())}var Xu=()=>Ms(window.history.state)>0?window.history.back():Q.go({view:`map`}),Y=hl({view:U,root:Cu,zenEl:W(`zen`),zen:()=>Fu,withZen:Lu,hidden:()=>document.hidden,back:wu,leaveSettings:Xu,restart:()=>Eu&&ld.restart(),icon:Ku,link:e=>Zu.net(e),signal:e=>X.signal(e),draw:Ju,map:xu.show,navigate:Yu,layout:()=>requestAnimationFrame(xu.layout),panels:()=>q,withPanels:J,withFocus:K,go:e=>Q.go(e),modal:()=>document.querySelector(Ml)!==null,chime:()=>X.chime()});du(Y.openStep);var Zu=al(()=>Hu(`teams`),Y.news),X=Hl(Y.notified);function Qu(e){dd(e),Y.status(e);let t=e.state===`reconnecting`||e.state===`offline`||e.state===`replaced`;document.body.dataset.stale=W(`stage`).dataset.stale=String(t),W(`link`).dataset.state=e.state,W(`link-text`).textContent={connecting:yr,live:xr,reconnecting:Or,offline:Tr,replaced:Tr}[e.state](),G&&Y.latest&&G.net(Y.latest),q?.stack.redraw();let n=W(`banner`);n.hidden=!t&&!e.problem;let r=e.state===`replaced`?qe():e.state===`offline`?ze({tries:e.attempt-1}):e.state===`reconnecting`?e.attempt?Ke({attempt:e.attempt}):Ue():He({problem:e.problem??``}),i=document.createElement(`b`);i.textContent=Tu(e.lastContact),n.replaceChildren(`${r} ${Ie()} `,i,Fe())}function $u(e,t){try{let n=JSON.parse(t);e===`history`&&Fu?.history(n),K(t=>e===`history`?t.history(n):t.cards(n))}catch{}}var ed=document.querySelector(`meta[name="sb-build"]`)?.content??void 0,td=e=>!!(ed&&ed!==JSON.parse(e).build);function nd(e,t=!1){try{let n=JSON.parse(e),r=t?n:n?.view;typeof r==`string`&&U.setServer(r)}catch{}}function rd(e){let t=new EventSource(e?`events?watch=${encodeURIComponent(e)}`:`events`);return{onError:e=>t.onerror=e,listen:(e,n)=>t.addEventListener(e,e=>n(e.data)),close:()=>t.close()}}var id=e=>fetch(`api/${e}`,{cache:`no-store`}).then(e=>e.ok?e.json():Promise.reject(Error(String(e.status)))),ad=(e,t=``)=>id(`history/${encodeURIComponent(e)}${t}`),Z=void 0,od=e=>({older:t=>ad(e,`?before=${encodeURIComponent(t)}`),latest:()=>ad(e),entry:t=>id(`entry/${encodeURIComponent(e)}/${encodeURIComponent(t)}`).catch(()=>void 0),pic:(t,n)=>`api/image/${encodeURIComponent(e)}/${encodeURIComponent(t)}/${n}`}),sd=async e=>(await ad(e,`?limit=12`)).items,cd=()=>{let e=rd(Y.opened());return e.listen(`history`,e=>$u(`history`,e)),e.listen(`cards`,e=>$u(`cards`,e)),e.listen(`hello`,e=>td(e)?Y.upgrade(()=>location.reload()):(Du=e,nd(e),q?.terminal.hello())),e.listen(`view`,e=>nd(e,!0)),e.listen(`mirror`,e=>q?.terminal.frame(e)),e};document.addEventListener(`click`,e=>{let t=e.target?.closest?.(`a[data-alert]`),n=t&&ks(t.getAttribute(`data-route`)??``);if(!n||n.view!==`session`||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let r=Y.alertOf(n.key);r&&(e.preventDefault(),Y.openAlert(r))},!0);var Q=Ns(e=>Y.route(e)),ld=fl({open:cd,now:Date.now,setTimeout:(e,t)=>window.setTimeout(e,t),clearTimeout:e=>window.clearTimeout(e),random:Math.random,hidden:()=>document.hidden,onNet:Y.snapshot,onStatus:Qu,replaced:()=>fetch(`./`,{cache:`no-store`}).then(e=>e.status===403)}),ud=()=>ld.resume(),dd=Ol(ud);document.addEventListener(`visibilitychange`,()=>{if(xu.pause(document.hidden),Fu?.visible(!document.hidden),document.hidden)return ld.hide();Y.wake(),K(e=>e.wake()),ud()}),addEventListener(`keydown`,e=>Y.escape(e,!0),!0),addEventListener(`keydown`,e=>Y.escape(e,!1)),Fl(Y.hotkey,Y.modal,window,Y.keys),W(`prefs`).addEventListener(`click`,e=>Y.current.view===`settings`&&(e.preventDefault(),Xu())),zu&&j(async()=>{let{mountLanWait:e}=await import(`./lanwait-sVzvVJ6q.js`);return{mountLanWait:e}},[],import.meta.url).then(({mountLanWait:e})=>e(W(`lan-wait`),()=>Hu(`wifi`),void 0,Y.pairing));var $,fd=matchMedia(`(pointer: coarse), (max-width: 640px)`),pd=()=>void j(async()=>{let{mountDrawer:e}=await import(`./drawer-CKn_xzVL.js`);return{mountDrawer:e}},[],import.meta.url).then(({mountDrawer:e})=>($??=e(Y.noDrawer),Y.latest&&$.net(Y.latest),$.route(Y.current)));fd.matches?pd():fd.addEventListener(`change`,()=>fd.matches&&!$&&pd(),{once:!0}),hc({route:()=>A(Y.current),net:()=>Y.latest,go:e=>Q.go(e)}),W(`stashed-pop`).addEventListener(`toggle`,e=>e.newState===`open`&&Oc(W(`stashed-pop`),W(`stashed`))),document.addEventListener(`click`,e=>{let t=e.target?.closest?.(`button[data-open]`);t&&j(async()=>{let{openingOf:e,spawnTile:t}=await import(`./spawn-DZBpICnV.js`);return{openingOf:e,spawnTile:t}},[],import.meta.url).then(({openingOf:e,spawnTile:n})=>{let r=e(t,Y.latest?.bases??[]);r&&Pu(n(r,(e,t,n)=>(q?.tiles.close(n),Y.openSession(e,t)),()=>X.chime()),!0)})});for(let e of[`focus`,`pageshow`,`online`])window.addEventListener(e,()=>!document.hidden&&ud());Qu(ll),Y.route(Q.route()),Y.sync(),ld.start(),Eu=!0;export{Qo as $,de as $t,Sc as A,wi as At,k as B,Qn as Bt,Tc as C,T as Ct,Ec as D,Ri as Dt,bc as E,w as Et,pc as F,Sr as Ft,Cs as G,Ut as Gt,O as H,mn as Ht,dc as I,br as It,Uo as J,Xe as Jt,bs as K,Mt as Kt,Ys as L,vr as Lt,ac as M,Si as Mt,rc as N,vi as Nt,V as O,Li as Ot,lc as P,Tr as Pt,qo as Q,be as Qt,j as R,pr as Rt,I as S,_a as St,z as T,zi as Tt,Ss as U,S as Ut,ws as V,En as Vt,Ts as W,pn as Wt,Ko as X,Pe as Xt,Wo as Y,Ye as Yt,Xo as Z,Ce as Zt,Ic as _,Ja as _t,Jl as a,Po as at,Ac as b,xa as bt,Ll as c,ko as ct,yc as d,To as dt,ue as en,as as et,gc as f,po as ft,Dc as g,Ya as gt,jc as h,Qa as ht,Kl as i,x as in,No as it,xc as j,Ci as jt,R as k,Fi as kt,Nl as l,Do as lt,kc as m,$a as mt,lu as n,y as nn,Bo as nt,Gl as o,Mo as ot,F as p,ro as pt,ds as q,Ct as qt,Xl as r,b as rn,Vo as rt,Wl as s,Ao as st,fu as t,fe as tn,E as tt,Ml as u,Eo as ut,L as v,Pa as vt,wc as w,$i as wt,Oc as x,va as xt,B as y,ja as yt,Ps as z,tr as zt};
|