pi-straw-boss 0.42.5 → 0.42.6

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.
@@ -0,0 +1 @@
1
+ import{H as e,b as t,k as n}from"./index-BHKpn5f0.js";var r=((t={},n={})=>(n.locale??e())===`zh-TW`?`另一個答案正在送出;請查看終端機。`:`Another answer is on its way; check the terminal.`),i=((t={},n={})=>(n.locale??e())===`zh-TW`?`請在終端機中回答。`:`Answer it in the terminal.`),a=((t={},n={})=>(n.locale??e())===`zh-TW`?`請在終端機中回答。`:`Answer them in the terminal.`),o=((t={},n={})=>(n.locale??e())===`zh-TW`?`已回答。`:`Answered.`),s=((t={},n={})=>(n.locale??e())===`zh-TW`?`也可以自己輸入答案。`:`It also takes your own words.`),c=((t={},n={})=>(n.locale??e())===`zh-TW`?`可以複選。`:`It takes several choices.`),l=((t={},n={})=>(n.locale??e())===`zh-TW`?`再次確認`:`Check again`),u=((t={},n={})=>(n.locale??e())===`zh-TW`?`選擇`:`Choices`),d=((t={},n={})=>(n.locale??e())===`zh-TW`?`瀏覽器拒絕存取剪貼簿。`:`The browser refused the clipboard.`),f=((t={},n={})=>(n.locale??e())===`zh-TW`?`已複製到這台裝置的剪貼簿。`:`Copied to this device's clipboard.`),p=((t={},n={})=>(n.locale??e())===`zh-TW`?`複製指令`:`Copy command`),m=((t={},n={})=>(n.locale??e())===`zh-TW`?`這個選項有預覽;請在終端機中查看。`:`It has a preview; see it in the terminal.`),h=((t={},n={})=>(n.locale??e())===`zh-TW`?`未確認。請查看終端機。`:`Not confirmed. Check the terminal.`),g=((t={},n={})=>(n.locale??e())===`zh-TW`?`備註`:`Note`),_=((t={},n={})=>(n.locale??e())===`zh-TW`?`備註(選填)`:`Note (optional)`),v=e=>`Opened while ${e?.tool} was running; it may not be about that call.`,y=e=>`在 ${e?.tool} 執行時開啟,不一定與該呼叫有關。`,b=((t,n={})=>(n.locale??e())===`zh-TW`?y(t):v(t)),x=((t={},n={})=>(n.locale??e())===`zh-TW`?`選項`:`Options`),S=((t={},n={})=>(n.locale??e())===`zh-TW`?`另一個答案沒有被採用;這個可以送出。`:`The other answer was not taken; this one can go.`),C=((t={},n={})=>(n.locale??e())===`zh-TW`?`你的答案`:`Your own answer`),w=((t={},n={})=>(n.locale??e())===`zh-TW`?`或自己輸入答案`:`Or type your own answer`),T=((t={},n={})=>(n.locale??e())===`zh-TW`?`問題已變更,請重新閱讀。`:`The question changed; read it again.`),E=((t={},n={})=>(n.locale??e())===`zh-TW`?`session 讀不懂這個答案。`:`The session could not read that answer.`),D=((t={},n={})=>(n.locale??e())===`zh-TW`?`這個答案不符合問題。`:`That answer does not fit the question.`),O=((t={},n={})=>(n.locale??e())===`zh-TW`?`session 拒絕了這個答案。`:`The session refused that answer.`),k=((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.`),A=((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.`),j=((t={},n={})=>(n.locale??e())===`zh-TW`?`送出答案`:`Send answer`),M=((t={},n={})=>(n.locale??e())===`zh-TW`?`送出中…`:`Sending…`),N=((t={},n={})=>(n.locale??e())===`zh-TW`?`顯示終端機`:`Show terminal`),P=((t={},n={})=>(n.locale??e())===`zh-TW`?`已在終端機中關閉。`:`It was dismissed in the terminal.`),F=((t={},n={})=>(n.locale??e())===`zh-TW`?`它已不再開啟。`:`It is no longer open.`),I=((t={},n={})=>(n.locale??e())===`zh-TW`?`已在終端機中回答。`:`It was already answered in the terminal.`),L=((t={},n={})=>(n.locale??e())===`zh-TW`?`連不上伺服器。`:`The server could not be reached.`),R=((t={},n={})=>(n.locale??e())===`zh-TW`?`它在等待對話框。`:`It waits on a dialog.`),z={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1};function B(e,t,n,r,i){let{q:a}=n,o=r[a],s=z[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`)return t?n.part===`opt`&&a>0?{to:{q:a-1,part:`opt`}}:void 0:a<r.length-1?{to:{q:a+1,part:`opt`}}:void 0;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 V(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;return e.addEventListener(`keydown`,e=>{let i=a(e.target);if(!i||e.ctrlKey||e.altKey||e.metaKey||e.isComposing)return;let o=e.target;if(i.part!==`opt`&&(e.key===`ArrowUp`?o.selectionStart!==0:e.key===`ArrowDown`&&o.selectionEnd!==o.value.length))return;let c=B(e.key,e.shiftKey,i,t.map(e=>({options:e.opts.length,multiple:e.multiple,own:!!e.own})),t.map(e=>e.answered()));if(!c||(e.preventDefault(),e.repeat&&[`Enter`,` `].includes(e.key)))return;if(s=e.key===` `,c.pick!==void 0){let e=t[i.q].opts[c.pick];e.getAttribute(`aria-checked`)!==`true`&&e.click()}let l=c.to===`send`?void 0:t[c.to.q],u=c.to===`send`?n():c.to.part===`opt`?l.opts[c.to.o??r(l)]:c.to.part===`own`?l.own:l.note;u&&!u.disabled&&u.focus()}),e.addEventListener(`keyup`,e=>s&&e.key===` `&&(s=!1,e.preventDefault())),()=>t[0]?.opts[r(t[0])]}var H=e=>e.multiple?c():e.freeform&&e.options.length?s():``,U=(e,n)=>t(`div`,{class:`ask-one`},e.header&&t(`b`,{class:`ask-head`},e.header),t(`p`,{class:`ask-q`},e.question),e.context&&t(`div`,{class:`ask-ctx`},e.context),e.options.length>0&&t(`ol`,{class:`ask-opts`,"aria-label":x()},...e.options.map(e=>t(`li`,{class:`ask-opt`},t(`b`,null,e.title),e.description&&t(`small`,null,e.description)))),n&&H(e)&&t(`small`,{class:`ask-how`},H(e))),W=e=>e.replace(/[\u0000-\u0008\u000b-\u001f\u007f-\u009f\p{Cf}]/gu,`�`),G=e=>(e.select?.choices??[]).map((e,t)=>({...e,i:t})),K=(e,t,n)=>({...e.size?{choices:[...e].sort((e,t)=>e-t)}:{},...t.trim()?{text:t}:{},...n.trim()?{note:n}:{}}),q=(e,t,n)=>({dialog:e.dialog,digest:e.digest,answerId:n,...t}),J={digest:T,"not-allowed":D,malformed:E};function Y(e){let{outcome:t,reason:i,by:a}=e.body;return t===`accepted`?[`ok`,o()]:t===`stale`?[`error`,a===`local`?I():a===`cancel`?P():F()]:t===`rejected`?[`error`,(Object.hasOwn(J,String(i))?J[String(i)]:O)()]:t===`busy`?[`error`,r()]:t===`unknown`||e.status===504?[`error`,h(),!0]:[`error`,i??n({status:e.status})]}var X=e=>[`accepted`,`stale`,`busy`,`unknown`].includes(String(e.body.outcome))||e.status===504,Z=e=>e.answer?`d\n${e.answer.dialog}\n${e.answer.digest}`:`c\n${e.callId}\n${e.why??``}`;function Q(e,n,r=location.hostname!==`127.0.0.1`,o,s){let c,v,y,T=!1,E=!1,D;for(let e of[`focusin`,`pointerdown`])document.addEventListener(e,e=>v&&!v.el.contains(e.target)&&(v.lost=void 0));let O=(e,t,n,...r)=>(e.dataset.tone=t,e.replaceChildren(n,...r)),P=()=>{if(!v)return;let e=document.activeElement;e&&e!==document.body&&e!==v.lost&&(v.lost=void 0),v.controls.forEach(e=>e.disabled=!T||E||v.done),v.send&&(v.send.disabled=!T||E||v.done||!v.pick()),e&&v.el.contains(e)&&e.disabled&&(v.lost=e);let t=v.lost;t&&!t.disabled&&v.el.contains(t)&&(!document.activeElement||document.activeElement===document.body)&&(t.focus(),v.lost=void 0)};async function F(e,r){[e.sending,E,e.spell]=[!0,!0,!1],P(),O(e.note,``,M());let i=await n(`answer`,r).catch(()=>void 0),a=t(`button`,{type:`button`,class:`cmp-link`},l());a.onclick=()=>void F(e,r);let[o,c,u]=i?Y(i):[`error`,h(),!0];[e.done,e.sending,E,e.busy]=[!i||X(i),!1,!1,i?.body.outcome===`busy`],O(e.note,o,c,...u?[a]:[]),P(),e.note.scrollIntoView?.({block:`nearest`}),s&&i?.body.outcome===`accepted`&&setTimeout(s,1200)}let I=(e,n,r,i,a)=>{let o=t(`button`,{type:`button`,class:`ask-opt`,role:e,"aria-checked":`false`},t(`b`,a?{"data-n":String(a)}:null,n),...r.filter(Boolean).map(e=>t(`small`,null,e)));return o.onclick=i,o};function L(e,n){let r,i=G(n).map(e=>I(`radio`,W(e.label),[e.note&&W(e.note)],()=>(r=e.i,i.forEach((t,r)=>t.setAttribute(`aria-checked`,String(G(n)[r].i===e.i))),P()),e.i+1)),a=n.select?.copy!==void 0&&t(`button`,{type:`button`,class:`cmp-link`},p());return a&&(a.disabled=!navigator.clipboard,a.onclick=()=>void navigator.clipboard.writeText(n.select.copy).then(()=>O(e.note,`ok`,f()),()=>O(e.note,`error`,d()))),e.pick=()=>r===void 0?void 0:{choice:r},e.first=V(e.el,[{opts:i,multiple:!1,answered:()=>r!==void 0}],()=>e.send),e.controls=i,[t(`pre`,{class:`ask-title`},W(n.select.title)),t(`div`,{class:`ask-opts`,role:`radiogroup`,"aria-label":u()},...i),t(`div`,{class:`ask-acts`},e.send,a)]}function z(e,n){let r=n.questions.map(()=>({picks:new Set,text:t(`textarea`,{rows:`1`,maxlength:`8192`,class:`ask-own`,placeholder:w(),"aria-label":C()}),note:t(`input`,{type:`text`,maxlength:`2048`,class:`ask-own ask-memo`,placeholder:_(),"aria-label":g()})})),i=[],a=n.questions.map((n,a)=>{let o=r[a],s=n.multiple?`checkbox`:`radio`,c=n.options.map((e,t)=>I(s,e.title,[e.description,e.preview&&m()],()=>{n.multiple||(o.picks.clear(),o.text.value=``),o.picks.has(t)?o.picks.delete(t):o.picks.add(t),c.forEach((e,t)=>e.setAttribute(`aria-checked`,String(o.picks.has(t)))),P()}));return o.text.oninput=()=>(n.multiple||(o.picks.clear(),c.forEach(e=>e.setAttribute(`aria-checked`,`false`))),P()),e.controls.push(...c,o.text,o.note),i.push({opts:c,multiple:!!n.multiple,own:o.text,note:o.note,answered:()=>o.picks.size>0||o.text.value.trim()!==``}),t(`div`,{class:`ask-one`},n.header&&t(`b`,{class:`ask-head`},n.header),t(`p`,{class:`ask-q`},n.question),t(`div`,{class:`ask-opts`,role:n.multiple?`group`:`radiogroup`,"aria-label":x()},...c),o.text,o.note)});return e.pick=()=>r.every(e=>e.picks.size||e.text.value.trim())?{answers:r.map(e=>K(e.picks,e.text.value,e.note.value))}:void 0,e.first=V(e.el,i,()=>e.send),[...a,t(`div`,{class:`ask-acts`},e.send)]}function B(e){let n=e.asks??(e.ask?[e.ask]:[]),s=n.length>1,c=e.answer,l={key:Z(e),el:t(`section`,{class:`ask`}),note:t(`p`,{class:`ask-note`,role:`status`,"aria-live":`polite`}),controls:[],pick:()=>void 0,done:!1,sending:!1};c&&((l.send=t(`button`,{type:`button`,class:`ask-send`},j())).onclick=()=>void(l.pick()&&F(l,q(c,l.pick(),crypto.randomUUID()))));let u=e.tool===`secret_drop`,d=t(`p`,{class:`ask-term`},e.why&&n.length?e.why:`${s?a():i()} ${s||!n[0]?``:H(n[0])}`.trim()),f=o&&e.tool!==`secret_drop`&&t(`button`,{type:`button`,class:`cmp-link`},N());f&&(f.onclick=o);let p=e.answer?.twin&&e.tool&&e.tool!==`dialog`?[t(`p`,{class:`ask-why`},b({tool:e.tool}))]:[];return l.el.append(...p,...c&&!u?c.select?L(l,c):z(l,c):[...n.length?n.map(e=>U(e,s)):[t(`p`,{class:`ask-why`},u?r?k():A():e.why??R())],t(`div`,{class:`ask-acts`},u?t(`p`,{class:`ask-term`},i()):d,f)],l.note),l}let J=(t,n)=>{let r=document.activeElement;v&&v!==n&&(v.focus=v.el.contains(r)?r:void 0),[c,v,y]=[t,n,n?.send?n:y],e.replaceChildren(...n?[n.el]:[]),P(),n?.focus&&(!document.activeElement||document.activeElement===document.body)&&n.focus.focus()};return{enter(){let e=v&&!v.done?v.first?.():void 0;return!!(e&&!e.disabled&&(e.focus(),1))},update(e,t){T=t,e&&(D=void clearTimeout(D)),!e&&(v?.done||v?.sending)?D??=setTimeout(()=>(D=void 0,J()),6e3):e?v&&(Z(e)===v.key||!e.answer&&(v.done||v.sending)&&e.callId===c?.callId)?((v.busy||v.sending)&&!e.answer?v.spell=!0:v.busy&&v.spell&&e.answer&&([v.done,v.busy]=[!1,!1],O(v.note,``,S())),c=e):J(e,y?.key===Z(e)&&!y.done?y:B(e)):J(),P()}}}export{L as n,M as r,Q as t};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-BObH_wDT.css"])))=>i.map(i=>d[i]);
2
+ import{H as e,S as t,b as n,d as r,n as i,y as a}from"./index-BHKpn5f0.js";import{n as o,t as s}from"./views-jpxln_Is.js";var c=((t={},n={})=>(n.locale??e())===`zh-TW`?`分支摘要`:`branch summary`),l=((t={},n={})=>(n.locale??e())===`zh-TW`?`通訊紀錄`:`Comms log`),u=e=>`context compacted · ${e?.tokens} tokens summarized`,d=e=>`上下文已壓縮 · 摘要了 ${e?.tokens} tokens`,f=((t,n={})=>(n.locale??e())===`zh-TW`?d(t):u(t)),ee=((t={},n={})=>(n.locale??e())===`zh-TW`?`…(於 1 MB 截斷)`:`… (cut at 1 MB)`),p=e=>`exit ${e?.code}`,m=e=>`結束碼 ${e?.code}`,te=((t,n={})=>(n.locale??e())===`zh-TW`?m(t):p(t)),h=e=>`Image ${e?.n}`,g=e=>`圖片 ${e?.n}`,_=((t,n={})=>(n.locale??e())===`zh-TW`?g(t):h(t)),v=((t={},n={})=>(n.locale??e())===`zh-TW`?`圖片無法讀取`:`Image unavailable`),y=e=>`${e?.count} image(s)`,b=e=>`${e?.count} 張圖片`,ne=((t,n={})=>(n.locale??e())===`zh-TW`?b(t):y(t)),re=((t={},n={})=>(n.locale??e())===`zh-TW`?`收到`:`incoming`),x=((t={},n={})=>(n.locale??e())===`zh-TW`?`跳到最新`:`jump to latest`),S=e=>`${e?.count} new`,C=e=>`${e?.count} 則新訊息`,w=((t,n={})=>(n.locale??e())===`zh-TW`?C(t):S(t)),T=((t={},n={})=>(n.locale??e())===`zh-TW`?`還沒有通訊。`:`No transmissions yet.`),ie=((t={},n={})=>(n.locale??e())===`zh-TW`?`通知`:`notice`),E=((t={},n={})=>(n.locale??e())===`zh-TW`?`表單回覆`:`form answers`),D=((t={},n={})=>(n.locale??e())===`zh-TW`?`訊息,來自`:`message from`),O=((t={},n={})=>(n.locale??e())===`zh-TW`?`記憶`:`memory`),k=((t={},n={})=>(n.locale??e())===`zh-TW`?`監看`:`monitor`),A=((t={},n={})=>(n.locale??e())===`zh-TW`?`提問,來自`:`question from`),j=((t={},n={})=>(n.locale??e())===`zh-TW`?`回報,來自`:`report from`),M=((t={},n={})=>(n.locale??e())===`zh-TW`?`狀態:`:`status of`),ae=((t={},n={})=>(n.locale??e())===`zh-TW`?`在旁開啟`:`open beside`),N=e=>`Open image ${e?.n}`,P=e=>`打開圖片 ${e?.n}`,oe=((t,n={})=>(n.locale??e())===`zh-TW`?P(t):N(t)),F=e=>`show all (${e?.size})`,I=e=>`顯示全部(${e?.size})`,L=((t,n={})=>(n.locale??e())===`zh-TW`?I(t):F(t)),R=((t={},n={})=>(n.locale??e())===`zh-TW`?`顯示全部參數`:`show all arguments`),z=e=>`◇ thought · ${e?.count} chars`,B=e=>`◇ 思考 · ${e?.count} 字元`,se=((t,n={})=>(n.locale??e())===`zh-TW`?B(t):z(t)),ce=((t={},n={})=>(n.locale??e())===`zh-TW`?`◇ 思考 · 已遮蔽`:`◇ thought · redacted`),V=((t={},n={})=>(n.locale??e())===`zh-TW`?`無法取得`:`unavailable`),le=((t={},n={})=>(n.locale??e())===`zh-TW`?`你`:`you`);function ue(){let e=!0,t=0;return{get pinned(){return e},scrolled(n){e=n,n&&(t=0)},hold:()=>void(e=!1),arrived(n){return e||(t+=n),e},jump:()=>void(e=!0,t=0),button:n=>e&&!n?void 0:t&&!n?w({count:t}):x()}}async function de(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 fe(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 pe=e=>e?new Date(e).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,hour12:!1}):``,me=e=>e>=1024?`${(e/1024).toFixed(e>=10240?0:1)} KB`:`${e} B`,he={intercom_message:D,subagent_result:j,subagent_ping:A,subagent_status:M,"pi-loop-monitor":k,"memory-context":O,"doc-review":E},H=e=>{let t=r(`<span class="ava"><svg><use/></svg></span>`);return t.querySelector(`use`).setAttribute(`href`,`#i-${i[e]??e}`),t};function ge(e){let t=[],r=0;for(let i of e.matchAll(/https?:\/\/[^\s<>)\]]+/g))t.push(e.slice(r,i.index),n(`a`,{href:i[0],rel:`noopener noreferrer`,target:`_blank`},i[0])),r=i.index+i[0].length;return[...t,e.slice(r)]}function U(e,r,{who:i,link:u,docFor:d}){let p=fe(),m=new Map,h=new Set,g=()=>h.forEach(e=>e.button.isConnected?(e.shown=!0,e.button.hidden=!e.paths.some(e=>d?.(e))):e.shown&&h.delete(e)),y=n(`div`,{class:`chat-list`}),b=n(`div`,{class:`chat-top`}),x=n(`div`,{class:`chat-live`}),S=n(`div`,{class:`chat-end`}),C=n(`button`,{class:`chat-pill`,type:`button`,hidden:``}),w=n(`p`,{class:`chat-empty`},T()),E=n(`div`,{class:`chat-scroll`,tabindex:`-1`,"aria-label":l()},b,y,x,S);e.replaceChildren(E,C);let D=ue(),O=!1,k=!1,A,j,M=0,N=!1,P,F=()=>N||P!==void 0,I=()=>(clearTimeout(P),P=setTimeout(()=>(P=void 0,D.pinned&&!p.detached&&B()),250)),z=(e=D.button(p.detached))=>(C.hidden=!e,C.textContent=e??``),B=()=>(D.jump(),j=void 0,E.scrollTop=E.scrollHeight,z());async function U(e){O=!0;let n=await de(p,r,e,e=>(J(e),Y(e))).finally(()=>O=!1),i=m.get(e);if(A===e){if(!n||!i)return B();D.hold(),j=i,i.scrollIntoView({block:`center`}),t(i,`lit`),clearTimeout(M),M=window.setTimeout(()=>(j=void 0,i.classList.remove(`lit`)),2e3),z()}}let W=()=>A?void U(A):B(),G=(e,t,n,i)=>{e.disabled=!0,r.entry(n).then(n=>{let r=n&&i(n);if(r===void 0)return void(e.textContent=V());t.textContent=r,e.remove()},()=>e.textContent=V())};function K(e,t=0){if(!t||!r.pic)return null;let i=Array.from({length:t},(t,n)=>r.pic(e,n));return n(`div`,{class:`pics`},...i.map((e,t)=>{let r=n(`img`,{src:e,alt:_({n:t+1}),loading:`lazy`,decoding:`async`}),o=n(`button`,{type:`button`,class:`pic`,"aria-label":oe({n:t+1})},r);return r.addEventListener(`error`,()=>o.replaceWith(n(`em`,{class:`pic-gone`},v()))),o.addEventListener(`click`,()=>void a(async()=>{let{lightbox:e}=await import(`./lightbox-D5yGk0gu.js`);return{lightbox:e}},__vite__mapDeps([0]),import.meta.url).then(({lightbox:e})=>e(i,t))),o}))}function _e(e,t){let r=p.result(e.id),i=n(`pre`,{class:`out`},r?.text??``),a=n(`pre`,{class:`args`},e.args??``),o=e.cut?n(`button`,{class:`more`,type:`button`},R()):null;o?.addEventListener(`click`,()=>G(o,a,t,t=>(e=>e&&`${e.args??``}${e.cut?`\n${ee()}`:``}`)(t.tools?.find(t=>t.id===e.id))));let s=r?.more?n(`button`,{class:`more`,type:`button`},L({size:me(r.bytes??0)})):null;s?.addEventListener(`click`,()=>G(s,i,r.id,e=>e.text));let c=e.name===`show_doc`&&d?n(`button`,{class:`more open`,type:`button`,hidden:``},ae()):null;c?.addEventListener(`click`,t=>(t.preventDefault(),e.summary.split(`, `).forEach(e=>d?.(e)?.()))),c&&h.add({paths:e.summary.split(`, `),button:c}),c&&queueMicrotask(g);let l=n(`details`,{class:`act`},n(`summary`,{"data-mark":r?r.isError?`error`:`done`:`working`},n(`b`,{class:`badge`}),n(`code`,null,e.name),n(`span`,{class:`sum`},e.summary),c),a,o,r&&n(`div`,{class:`result`},r.images?n(`em`,null,ne({count:r.images})):null,i,s)),u=r&&K(r.id,r.images);return u?[l,u]:[l]}function q(e){let t=n(`time`,null,pe(e.at));switch(e.kind){case`user`:return n(`article`,{class:`tx you`},n(`header`,null,t,n(`b`,null,le()),H(`user`)),n(`div`,{class:`bubble`},...ge(e.text??``),K(e.id,e.images)));case`assistant`:{let r=i(),a=n(`pre`,{class:`thought-text`}),c=e.thought?n(`button`,{class:`thought`,type:`button`},e.thought<0?ce():se({count:e.thought.toLocaleString()})):null;return e.thought&&e.thought>0&&c?.addEventListener(`click`,()=>G(c,a,e.id,e=>e.thoughtText)),n(`article`,{class:`tx in`},H(r.role),n(`div`,{class:`tx-body`},n(`header`,null,n(`b`,null,r.name),e.model?n(`span`,null,e.model):null,t,e.stop?n(`span`,{class:`stop`,"data-mark":`error`},e.stop):null),c,a,e.text?n(`div`,{class:`md`},s(o(e.text))):null,e.error?n(`p`,{class:`fault`},e.error):null,...(e.tools??[]).flatMap(t=>_e(t,e.id))))}case`bash`:return n(`article`,{class:`tx sys`},n(`details`,{class:`act`},n(`summary`,{"data-mark":e.exit?`error`:`done`},n(`b`,{class:`badge`}),n(`code`,null,`shell`),n(`span`,{class:`sum`},`! ${e.command}`),e.exit?n(`span`,{class:`stop`,"data-mark":`error`},te({code:e.exit})):null),e.text?n(`pre`,{class:`out`},e.text):null));case`notice`:return n(`article`,{class:`tx sys`},n(`details`,{class:`notice`},n(`summary`,null,H(`comms`),n(`em`,null,re()),he[e.type??``]?.()??e.type??ie(),` `,e.from&&u(e.from)||(e.from??``),t),n(`pre`,null,e.text??``)));case`divider`:return n(`article`,{class:`tx rule`},n(`details`,null,n(`summary`,null,e.type===`compaction`?f({tokens:(e.tokens??0).toLocaleString()}):c()),n(`pre`,null,e.text??``)));default:return n(`article`,{class:`tx note`},e.text??``,` `,t)}}function J(e){e.rebuild&&(m.clear(),y.replaceChildren());for(let t of e.dropped)m.get(t)?.remove(),m.delete(t);let t=e.added.map(e=>(m.set(e.id,q(e)),m.get(e.id)));e.front?y.prepend(...t):y.append(...t),k&&!e.front&&!e.rebuild&&t.forEach(e=>(e.classList.add(`fresh`),e.dataset.born=String(Date.now()))),w.remove(),p.items.length||y.append(w),b.hidden=!p.before}let Y=e=>e.touched.forEach(e=>{let t=m.get(e),n=p.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),m.set(e,r)}}),X=async()=>{if(!O&&p.before&&k){O=!0;try{let e=E.scrollHeight,t=p.prepend(await r.older(p.before));J(t),Y(t),E.scrollTop+=E.scrollHeight-e}finally{O=!1}p.before&&E.clientHeight&&b.getBoundingClientRect().bottom>=E.getBoundingClientRect().top&&X()}};C.addEventListener(`click`,()=>{A=void 0,p.detached?r.latest().then(e=>(J(p.reset(e)),B())):B()});let Z=[new IntersectionObserver(e=>e.some(e=>e.isIntersecting)&&void X(),{root:E}),new IntersectionObserver(e=>E.clientHeight&&(D.scrolled(e.at(-1).isIntersecting),z()),{root:E,rootMargin:`0px 0px 67px`})],Q,ve=()=>(Q??(Z[0].observe(b),Z[1].observe(S)),clearTimeout(Q),Q=setTimeout(()=>(Q=void 0,Z.forEach(e=>e.disconnect())),600));E.addEventListener(`scroll`,()=>(ve(),!N&&P!==void 0&&I()),{passive:!0}),E.addEventListener(`touchstart`,()=>(N=!0,clearTimeout(P),P=void 0),{passive:!0});for(let e of[`touchend`,`touchcancel`])E.addEventListener(e,()=>(N=!1,I()),{passive:!0});for(let e of[`wheel`,`touchstart`,`pointerdown`,`keydown`])E.addEventListener(e,()=>j=A=void 0,{passive:!0});let $=new ResizeObserver(()=>F()?void 0:D.pinned&&!p.detached?E.scrollTop=E.scrollHeight:j?.scrollIntoView({block:`center`}));return $.observe(y),$.observe(E),{log:E,docs:g,apply(e){if(e.reset)J(p.reset({items:e.items??[],before:e.before})),k=!0,W();else if(e.items?.length){let t=p.append(e.items);J(t),Y(t),D.arrived(t.added.length)&&!p.detached&&!F()?B():z()}},reveal(e){A=e,k&&W()},setLive(e,t){x.dataset.mark=t,x.lastChild?.textContent!==e&&x.replaceChildren(...e?[n(`b`,{class:`badge`}),n(`span`,null,e)]:[])}}}export{U as mountChat,_ as t};
@@ -0,0 +1 @@
1
+ import{n as e,t}from"./unit_count-KyfX3vlL.js";import{E as n,H as r,a as i,b as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,p,v as m}from"./index-BHKpn5f0.js";var h=((e={},t={})=>(t.locale??r())===`zh-TW`?`關閉清單`:`Close the list`),g=((e={},t={})=>(t.locale??r())===`zh-TW`?`切換到其他單位`:`Switch to a unit`),_=((e={},t={})=>(t.locale??r())===`zh-TW`?`所有單位`:`All units`),v=((e={},t={})=>(t.locale??r())===`zh-TW`?`指揮中`:`commanding`),y=((e={},t={})=>(t.locale??r())===`zh-TW`?`已結束`:`ended`),b=((e={},t={})=>(t.locale??r())===`zh-TW`?`錯誤`:`error`),x=((e={},t={})=>(t.locale??r())===`zh-TW`?`閒置`:`idle`),S=((e={},t={})=>(t.locale??r())===`zh-TW`?`無狀態`:`unknown`),C=((e={},t={})=>(t.locale??r())===`zh-TW`?`等待`:`waiting`),w=((e={},t={})=>(t.locale??r())===`zh-TW`?`工作中`:`working`),T=.4;function E(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 D=(e,t,n)=>Math.abs(n)>=.45?n>0:e>=t*T,O=(e,t)=>t||e.some(e=>e.editable||e.sink||e.scrollsX||[`input`,`textarea`,`select`].includes(e.tag));function k(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 A=e=>{let t=[];for(let n=e;n;n=n.parentElement)t.push(k(n));return t},j={working:w,waiting:C,idle:x,done:y,error:b,unknown:S,commanding:v},M=(e,t,n)=>(t?y:j[e])({},n&&{locale:n}),N=(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})));function P(t){return t.bases.flatMap(t=>{let r=[{id:`tower`,rows:t.tower?N(t.id,[{...t.tower,role:`tower`}]):[]},...t.tabs.map(e=>({id:e.id,label:n({label:e.label}),rows:N(t.id,e.units)})),{id:`outside`,label:e(),rows:N(t.id,t.outside)}].filter(e=>e.rows.length);return r.length?[{id:t.id,label:t.label,mark:t.mark,groups:r}]:[]})}var F=e=>e.reduce((e,t)=>(t.sub?e.at(-1)?.subs.push(t):e.push({...t,subs:[]}),e),[]),I=()=>o(`<div class="unit"><div class="card"><a class="hit"></a>${u}<div class="meta"><span class="name"></span><span class="line"><em class="role"></em><b class="dstate"></b><span class="note"></span></span></div></div><div class="subs"></div></div>`),L=()=>o(`<section class="dbase"><h3><a></a><small></small></h3><div class="dgroups"></div></section>`),R=()=>o(`<div class="dgroup"><h4></h4><div class="drows"></div></div>`),z=()=>matchMedia(`(max-width: 640px)`).matches;function B(){let e=a(`div`,{class:`drawer-body`}),n=a(`button`,{type:`button`,class:`x`,"aria-label":h()},`×`),r=a(`aside`,{class:`drawer`,"aria-label":g()},a(`header`,null,a(`b`,null,_()),n),e),o=a(`div`,{class:`drawer-veil`});document.body.append(o,r);let u,v,y=!1,b=0,x=0,S,C=()=>{let n=(e,t)=>{i(e.querySelector(`.hit`),{view:`session`,ws:t.ws,key:t.key}),e.querySelector(`.hit`).setAttribute(`aria-label`,`${t.name}: ${M(t.mark,t.ended)}`),e.classList.toggle(`current`,t.key===v),e.toggleAttribute(`data-dismiss`,t.role===`subagent`&&t.ended),e.dataset.key=t.key,s(e,t.mark),d(e.querySelector(`.plate`),t.role,t.mark),c(e,`.name`,t.name),c(e,`.role`,p(t.role)),c(e,`.dstate`,M(t.mark,t.ended)),f(e,`.note`,t.note,t.mark,t.note?void 0:``),l(e.querySelector(`.subs`),t.subs??[],I,n)};l(e,P(u??{bases:[]}),L,(e,r)=>{s(e,r.mark),c(e,`h3 a`,r.label),i(e.querySelector(`h3 a`),{view:`workspace`,ws:r.id}),c(e,`small`,t({count:r.groups.reduce((e,t)=>e+t.rows.length,0)})),l(e.querySelector(`.dgroups`),r.groups,R,(e,t)=>{c(e,`h4`,t.label??``),e.querySelector(`h4`).toggleAttribute(`hidden`,!t.label),l(e.querySelector(`.drows`),F(t.rows),I,n)})})},w=e=>{b=Math.max(0,Math.min(x,e)),r.style.setProperty(`--dx`,`${b}px`),o.style.opacity=String(x?b/x:0),o.style.pointerEvents=b>0?`auto`:`none`},T=e=>{y=e,r.classList.toggle(`on`,e),r.inert=!e,document.documentElement.classList.remove(`drawer-drag`),w(e?x:0)},k=()=>{x=r.offsetWidth,C(),r.classList.add(`on`),document.documentElement.classList.add(`drawer-drag`)};r.inert=!0,document.addEventListener(`touchstart`,e=>{let t=e.target,n=r.contains(t)||t===o;if(S=void 0,!z()||e.touches.length!==1||document.querySelector(`dialog.sheet[open], dialog.lightbox[open], [popover]:popover-open`)||(y?!n:O(A(t),!!getSelection()?.toString())))return;let i=e.touches[0],a=y?t.closest(`.unit[data-dismiss] > .card`)??void 0:void 0;S={x0:i.clientX,y0:i.clientY,mode:`wait`,was:y,base:b,last:i.clientX,at:performance.now(),v:0,card:a}},{passive:!0}),document.addEventListener(`touchmove`,e=>{if(!S||S.mode===`pass`)return;let t=e.touches[0],n=t.clientX-S.x0,r=t.clientY-S.y0;if(S.mode===`wait`){let e=E(n,r,S.was);if(e===`wait`)return;if(e===`pass`&&S.card&&E(n,r,!1)===`drag`)S.mode=`card`,S.card.classList.add(`swiping`);else if(e===`pass`)return void(S.mode=`pass`);else S.mode=`drag`,k()}e.preventDefault();let i=performance.now();if(S.v=(t.clientX-S.last)/Math.max(1,i-S.at),[S.last,S.at]=[t.clientX,i],S.mode!==`card`)return w(S.base+n);let a=Math.max(0,n);S.card.style.setProperty(`--sx`,`${a}px`),S.card.style.setProperty(`--so`,String(1-a/S.card.offsetWidth))},{passive:!1});let j=(e,t)=>{e.classList.remove(`swiping`),e.style.removeProperty(`--sx`),e.style.removeProperty(`--so`),t&&(e.classList.add(`gone`),m({key:e.parentElement.dataset.key}).then(t=>t||e.classList.remove(`gone`)))},N=e=>{let t=S;S=void 0,t?.mode===`drag`&&T(D(b,x,t.v)),t?.mode===`card`&&j(t.card,e.type===`touchend`&&D(Math.max(0,t.last-t.x0),t.card.offsetWidth,t.v))};return document.addEventListener(`touchend`,N),document.addEventListener(`touchcancel`,N),o.addEventListener(`click`,()=>T(!1)),r.addEventListener(`click`,e=>e.target.closest(`a[data-route], .x`)&&T(!1)),document.addEventListener(`keydown`,e=>y&&e.key===`Escape`&&(e.preventDefault(),T(!1)),!0),document.addEventListener(`sb-drawer`,()=>(y||k(),T(!y))),{net(e){u=e,y&&C()},route(e){v=e.view===`session`?e.key:void 0,y&&C()}}}export{B as mountDrawer};
@@ -1 +1 @@
1
- var e={},t=[`en`,`zh-TW`],n=`PARAGLIDE_LOCALE`,r=[`baseLocale`],i=[],a=typeof window>`u`;globalThis.__paraglide=globalThis.__paraglide??{},globalThis.__paraglide.ssr=globalThis.__paraglide.ssr??{};var o=!1,s=()=>{let e=r;!a&&typeof window<`u`&&window.location?.href&&(e=ue(window.location.href));let t=c(e,typeof window<`u`?window.location?.href:void 0);if(t)return o||(o=!0,d(t,{reload:!1})),t;throw Error(`No locale found. Read the docs https://paraglidejs.com/errors#no-locale-found`)};function c(e,t){let n;for(let t of e){if(t===`baseLocale`)n=`en`;else if(de(t)&&_.has(t)){let e=_.get(t);if(e){let t=e.getLocale();if(t instanceof Promise)continue;if(t!==void 0)return m(t)}}let e=p(n);if(e)return e}}var l=e=>{s=e},u=e=>{e?window.location.href=e:window.location.reload()},d=(e,t)=>{let n={reload:!0,...t},i;try{i=s()}catch{}let o=[],c=r;!a&&typeof window<`u`&&window.location?.href&&(c=ue(window.location.href));for(let t of c)if(t===`baseLocale`)continue;else if(de(t)&&_.has(t)){let n=_.get(t);if(n){let r=n.setLocale(e);r instanceof Promise&&(r=r.catch(e=>{throw Error(`Custom strategy "${t}" setLocale failed.`,{cause:e})}),o.push(r))}}let l=()=>{!a&&n.reload&&window.location&&e!==i&&u(void 0)};if(o.length)return Promise.all(o).then(()=>{l()});l()},f=()=>typeof window<`u`?window.location.origin:`http://fallback.com`;function p(e){if(typeof e!=`string`)return;let n=e.toLowerCase();for(let e of t)if(e.toLowerCase()===n)return e}function m(e){let n=p(e);if(n)return n;throw Error(`Invalid locale: ${e}. Expected one of: ${t.join(`, `)}`)}function h(e){return e}function g(t,n){return new e(t,n.href)}function ee(){return 0}function te(e){return i}function ne(e,t){return e.exec(t.href)}var re=n.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);RegExp(`(?:^|;\\s*)${re}=([^;]*)`);function ie(e){return ae(e)}function ae(e){let t=h(typeof e==`string`?new URL(e,f()):new URL(e.href)),n=t.pathname.replace(/^\/+/,``).split(`/`);return n.length>0&&p(n[0])&&(t.pathname=`/`+n.slice(1).join(`/`)),h(t)}var oe=-1,se,ce;function le(e){if(i.length===0)return;let t=typeof e==`string`?e:e.href,n=ee();if(se===t&&oe===n)return ce;let r=h(new URL(t,`http://example.com`)),a=ie(r),o=a.href===r.href?[r]:[r,a],s;for(let e of o){for(let t of te(e))if(ne(g(t.match,e),e)){s=t;break}if(s)break}return oe=n,se=t,ce=s,s}function ue(e){let t=le(e);return t&&t.exclude!==!0&&Array.isArray(t.strategy)?t.strategy:r}var _=new Map;function de(e){return typeof e==`string`&&/^custom-[A-Za-z0-9_-]+$/.test(e)}var fe=e=>`${e?.n}d`,pe=e=>`${e?.n} 天`,me=((e,t={})=>(t.locale??s())===`zh-TW`?pe(e):fe(e)),he=e=>`${e?.n}h`,ge=e=>`${e?.n} 小時`,_e=((e,t={})=>(t.locale??s())===`zh-TW`?ge(e):he(e)),ve=e=>`${e?.n}m`,ye=e=>`${e?.n} 分`,be=((e,t={})=>(t.locale??s())===`zh-TW`?ye(e):ve(e)),xe=e=>`${e?.n}s`,Se=e=>`${e?.n} 秒`,Ce=((e,t={})=>(t.locale??s())===`zh-TW`?Se(e):xe(e)),we=((e={},t={})=>(t.locale??s())===`zh-TW`?`警示`:`Alerts`),Te=((e={},t={})=>(t.locale??s())===`zh-TW`?`所有基地`:`all bases`),Ee=((e={},t={})=>(t.locale??s())===`zh-TW`?``:`.`),De=((e={},t={})=>(t.locale??s())===`zh-TW`?`最後更新:`:`Last update`),Oe=e=>`Disconnected. Gave up after ${e?.tries} tries; it reconnects when you return to this tab.`,ke=e=>`連線中斷。重試 ${e?.tries} 次後放棄;回到此分頁時會重新連線。`,Ae=((e,t={})=>(t.locale??s())===`zh-TW`?ke(e):Oe(e)),je=e=>`The server is up but cannot read the net: ${e?.problem}`,Me=e=>`伺服器正常,但讀不到網:${e?.problem}`,Ne=((e,t={})=>(t.locale??s())===`zh-TW`?Me(e):je(e)),Pe=((e={},t={})=>(t.locale??s())===`zh-TW`?`與稻草網的連線中斷,正在重新連線…畫面顯示的是最後已知狀態。`:`Disconnected from the straw net. Reconnecting… The view shows the last known state.`),Fe=e=>`Disconnected from the straw net. Reconnecting (try ${e?.attempt})… The view shows the last known state.`,Ie=e=>`與稻草網的連線中斷,正在重新連線(第 ${e?.attempt} 次)…畫面顯示的是最後已知狀態。`,Le=((e,t={})=>(t.locale??s())===`zh-TW`?Ie(e):Fe(e)),Re=((e={},t={})=>(t.locale??s())===`zh-TW`?`Straw Net:所有基地`:`Straw Net: all bases`),ze=((e={},t={})=>(t.locale??s())===`zh-TW`?`取消`:`Cancel`),Be=((e={},t={})=>(t.locale??s())===`zh-TW`?`關閉`:`Close`),Ve=e=>`Quit base ${e?.name}`,He=e=>`關掉基地 ${e?.name}`,Ue=((e,t={})=>(t.locale??s())===`zh-TW`?He(e):Ve(e)),We=e=>`Quit base ${e?.name}? Every agent in it and its tower quit. Nothing quits while anything running would be lost.`,Ge=e=>`要關掉基地 ${e?.name} 嗎?裡面所有 agent 和塔台都會退出。有會遺失的東西時什麼都不關。`,Ke=((e,t={})=>(t.locale??s())===`zh-TW`?Ge(e):We(e)),qe=e=>`Quit squad ${e?.name}`,Je=e=>`關掉小隊 ${e?.name}`,Ye=((e,t={})=>(t.locale??s())===`zh-TW`?Je(e):qe(e)),Xe=e=>`Quit squad ${e?.name}? Every agent in it quits.`,Ze=e=>`要關掉小隊 ${e?.name} 嗎?裡面所有 agent 都會退出。`,Qe=((e,t={})=>(t.locale??s())===`zh-TW`?Ze(e):Xe(e)),$e=e=>`Quit the tower ${e?.name}? The base's mains become members again.`,et=e=>`要關掉塔台 ${e?.name} 嗎?這個基地的主智慧體都會降格成成員。`,tt=((e,t={})=>(t.locale??s())===`zh-TW`?et(e):$e(e)),nt=e=>`Quit ${e?.name}`,rt=e=>`關掉 ${e?.name}`,it=((e,t={})=>(t.locale??s())===`zh-TW`?rt(e):nt(e)),at=e=>`Quit ${e?.name}? It quits pi and its pane closes.`,ot=e=>`要關掉 ${e?.name} 嗎?它會退出 pi,窗格也會關掉。`,st=((e,t={})=>(t.locale??s())===`zh-TW`?ot(e):at(e)),ct=e=>`control tower · ${e?.state}`,lt=e=>`塔台 · ${e?.state}`,ut=((e,t={})=>(t.locale??s())===`zh-TW`?lt(e):ct(e)),dt=((e={},t={})=>(t.locale??s())===`zh-TW`?`圖示來自 game-icons.net(Lorc、Delapouite),CC BY 3.0。`:`Icons from game-icons.net by Lorc and Delapouite, CC BY 3.0.`),ft=((e={},t={})=>(t.locale??s())===`zh-TW`?`移除`:`Dismiss`),pt=e=>`Dismiss finished (${e?.count})`,mt=e=>`移除已完成(${e?.count})`,ht=((e,t={})=>(t.locale??s())===`zh-TW`?mt(e):pt(e)),gt=e=>`Dismiss ${e?.name}`,_t=e=>`從畫面移除 ${e?.name}`,vt=((e,t={})=>(t.locale??s())===`zh-TW`?_t(e):gt(e)),yt=((e={},t={})=>(t.locale??s())===`zh-TW`?`文件`:`Documents`),bt=((e={},t={})=>(t.locale??s())===`zh-TW`?`總塔台`:`head tower`),xt=((e={},t={})=>(t.locale??s())===`zh-TW`?`語言`:`Language`),St=((e={},t={})=>(t.locale??s())===`zh-TW`?`連線中`:`connecting`),Ct=((e={},t={})=>(t.locale??s())===`zh-TW`?`即時`:`live`),wt=((e={},t={})=>(t.locale??s())===`zh-TW`?`離線`:`offline`),Tt=((e={},t={})=>(t.locale??s())===`zh-TW`?`重新連線中`:`reconnecting`),Et=((e={},t={})=>(t.locale??s())===`zh-TW`?`正體中文`:`English`),Dt=((e={},t={})=>(t.locale??s())===`zh-TW`?`位置`:`Location`),Ot=e=>`${e?.name} is commanding`,kt=e=>`${e?.name} 指揮中`,At=((e,t={})=>(t.locale??s())===`zh-TW`?kt(e):Ot(e)),jt=e=>`${e?.name} finished`,Mt=e=>`${e?.name} 已完成`,Nt=((e,t={})=>(t.locale??s())===`zh-TW`?Mt(e):jt(e)),Pt=e=>`${e?.name} hit an error`,Ft=e=>`${e?.name} 發生錯誤`,It=((e,t={})=>(t.locale??s())===`zh-TW`?Ft(e):Pt(e)),Lt=e=>`${e?.name} went idle`,Rt=e=>`${e?.name} 轉為閒置`,zt=((e,t={})=>(t.locale??s())===`zh-TW`?Rt(e):Lt(e)),Bt=e=>`${e?.name} joined`,Vt=e=>`${e?.name} 加入`,Ht=((e,t={})=>(t.locale??s())===`zh-TW`?Vt(e):Bt(e)),Ut=e=>`${e?.name} left`,Wt=e=>`${e?.name} 離開`,Gt=((e,t={})=>(t.locale??s())===`zh-TW`?Wt(e):Ut(e)),Kt=e=>`${e?.name} lost its status`,qt=e=>`${e?.name} 失去狀態`,Jt=((e,t={})=>(t.locale??s())===`zh-TW`?qt(e):Kt(e)),Yt=e=>`${e?.name} is waiting on a question`,Xt=e=>`${e?.name} 正在等待回答`,Zt=((e,t={})=>(t.locale??s())===`zh-TW`?Xt(e):Yt(e)),Qt=e=>`${e?.name} started working`,$t=e=>`${e?.name} 開始工作`,en=((e,t={})=>(t.locale??s())===`zh-TW`?$t(e):Qt(e)),tn=((e={},t={})=>(t.locale??s())===`zh-TW`?`指揮中`:`commanding`),nn=((e={},t={})=>(t.locale??s())===`zh-TW`?`已完成`:`finished`),rn=((e={},t={})=>(t.locale??s())===`zh-TW`?`錯誤`:`error`),an=((e={},t={})=>(t.locale??s())===`zh-TW`?`閒置`:`idle`),on=((e={},t={})=>(t.locale??s())===`zh-TW`?`無狀態`:`no status`),sn=((e={},t={})=>(t.locale??s())===`zh-TW`?`等待回答`:`waiting on a question`),cn=((e={},t={})=>(t.locale??s())===`zh-TW`?`工作中`:`working`),ln=((e={},t={})=>(t.locale??s())===`zh-TW`?`地圖總覽`:`Overview of the map`),un=e=>`Monitor failed: ${e?.what}`,dn=e=>`Monitor 出錯:${e?.what}`,fn=((e,t={})=>(t.locale??s())===`zh-TW`?dn(e):un(e)),pn=e=>`Monitor went quiet and stopped: ${e?.what}`,mn=e=>`Monitor 太久沒輸出,已停止:${e?.what}`,hn=((e,t={})=>(t.locale??s())===`zh-TW`?mn(e):pn(e)),gn=((e={},t={})=>(t.locale??s())===`zh-TW`?`從未`:`never`),_n=((e={},t={})=>(t.locale??s())===`zh-TW`?`+新基地`:`+ New base`),vn=((e={},t={})=>(t.locale??s())===`zh-TW`?`沒有執行中的智慧體`:`no agent running`),yn=((e={},t={})=>(t.locale??s())===`zh-TW`?`無警示`:`no alerts`),v=((e={},t={})=>(t.locale??s())===`zh-TW`?`伺服器沒有回應。`:`The server did not answer.`),bn=((e={},t={})=>(t.locale??s())===`zh-TW`?`尚無塔台`:`no tower yet`),xn=((e={},t={})=>(t.locale??s())===`zh-TW`?`監看中`:`Watching a monitor`),Sn=((e={},t={})=>(t.locale??s())===`zh-TW`?`思考中`:`thinking`),Cn=e=>`Finished ${e?.note}`,wn=e=>`完成了 ${e?.note}`,Tn=((e,t={})=>(t.locale??s())===`zh-TW`?wn(e):Cn(e)),En=e=>`Failed ${e?.note}`,Dn=e=>`出錯了 ${e?.note}`,On=((e,t={})=>(t.locale??s())===`zh-TW`?Dn(e):En(e)),kn=e=>`Waiting on you ${e?.note}`,An=e=>`等你回答 ${e?.note}`,jn=((e,t={})=>(t.locale??s())===`zh-TW`?An(e):kn(e)),Mn=((e={},t={})=>(t.locale??s())===`zh-TW`?`+主智慧體`:`+ Main`),Nn=((e={},t={})=>(t.locale??s())===`zh-TW`?`+成員`:`+ Member`),Pn=((e={},t={})=>(t.locale??s())===`zh-TW`?`前哨`:`Outposts`),Fn=((e={},t={})=>(t.locale??s())===`zh-TW`?`手機`:`Phone`),In=((e={},t={})=>(t.locale??s())===`zh-TW`?`透過 Tailscale 配對手機`:`Pair a phone over Tailscale`),Ln=((e={},t={})=>(t.locale??s())===`zh-TW`?`接回`:`Pop`),Rn=e=>`Pop ${e?.name}`,zn=e=>`接回 ${e?.name}`,Bn=((e,t={})=>(t.locale??s())===`zh-TW`?zn(e):Rn(e)),Vn=((e={},t={})=>(t.locale??s())===`zh-TW`?`伺服器送來的快照,頁面無法讀取`:`the server sent a snapshot the page cannot read`),Hn=((e={},t={})=>(t.locale??s())===`zh-TW`?`伺服器回報了頁面無法讀取的問題`:`the server reported a problem the page cannot read`),y=((e={},t={})=>(t.locale??s())===`zh-TW`?`關掉`:`Quit`),Un=((e={},t={})=>(t.locale??s())===`zh-TW`?`關掉塔台`:`Quit tower`),Wn=e=>`Refused (${e?.status}).`,Gn=e=>`已拒絕(${e?.status})。`,b=((e,t={})=>(t.locale??s())===`zh-TW`?Gn(e):Wn(e)),Kn=((e={},t={})=>(t.locale??s())===`zh-TW`?`提醒`:`Remind`),qn=((e={},t={})=>(t.locale??s())===`zh-TW`?`點一下允許瀏覽器通知`:`Press to allow browser notifications`),Jn=((e={},t={})=>(t.locale??s())===`zh-TW`?`瀏覽器已封鎖通知,要到網站設定裡允許`:`The browser blocks notifications; allow them in the site settings`),Yn=((e={},t={})=>(t.locale??s())===`zh-TW`?`提醒已關`:`Reminders off`),Xn=((e={},t={})=>(t.locale??s())===`zh-TW`?`提醒已開:分頁不在前景時,單位等你回答、完成或出錯會跳系統通知`:`Reminders on: while the page is in the background, a unit waiting on you, finishing, or failing raises a system notification`),Zn=((e={},t={})=>(t.locale??s())===`zh-TW`?`這個瀏覽器不支援通知`:`This browser has no notifications`),Qn=((e={},t={})=>(t.locale??s())===`zh-TW`?`主智慧體`:`main`),$n=((e={},t={})=>(t.locale??s())===`zh-TW`?`成員`:`member`),er=((e={},t={})=>(t.locale??s())===`zh-TW`?`前哨`:`outpost`),tr=((e={},t={})=>(t.locale??s())===`zh-TW`?`未編入`:`unaligned`),nr=((e={},t={})=>(t.locale??s(),`session`)),rr=((e={},t={})=>(t.locale??s())===`zh-TW`?`子智慧體`:`subagent`),ir=((e={},t={})=>(t.locale??s())===`zh-TW`?`塔台`:`tower`),ar=((e={},t={})=>(t.locale??s())===`zh-TW`?`設定`:`Settings`),or=((e={},t={})=>(t.locale??s())===`zh-TW`?`音效`:`Sound`),sr=((e={},t={})=>(t.locale??s())===`zh-TW`?`音效已關`:`Sounds off`),cr=((e={},t={})=>(t.locale??s())===`zh-TW`?`音效已開`:`Sounds on`),lr=((e={},t={})=>(t.locale??s())===`zh-TW`?`音效:開關、音量與試聽`:`Sounds: on or off, volume, and a try`),ur=((e={},t={})=>(t.locale??s())===`zh-TW`?`▶ 試聽`:`▶ Try`),dr=((e={},t={})=>(t.locale??s())===`zh-TW`?`音量`:`Volume`),fr=((e={},t={})=>(t.locale??s())===`zh-TW`?`收起`:`Stash`),pr=e=>`Stash base ${e?.name}`,mr=e=>`收起基地 ${e?.name}`,hr=((e,t={})=>(t.locale??s())===`zh-TW`?mr(e):pr(e)),gr=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.`,_r=e=>`要收起基地 ${e?.name} 嗎?塔台、主智慧體和成員會結束,之後可以用「接回」叫回來。有會遺失的東西時不會收。`,vr=((e,t={})=>(t.locale??s())===`zh-TW`?_r(e):gr(e)),yr=e=>`Stashed (${e?.count})`,br=e=>`已收起(${e?.count})`,xr=((e,t={})=>(t.locale??s())===`zh-TW`?br(e):yr(e)),Sr=((e={},t={})=>(t.locale??s())===`zh-TW`?`智慧體`:`Agents`),Cr=((e={},t={})=>(t.locale??s())===`zh-TW`?`基地`:`Bases`),wr=((e={},t={})=>(t.locale??s())===`zh-TW`?`指揮中`:`Commanding`),Tr=((e={},t={})=>(t.locale??s())===`zh-TW`?`等待中`:`Waiting`),Er=((e={},t={})=>(t.locale??s())===`zh-TW`?`工作中`:`Working`),Dr=((e={},t={})=>(t.locale??s())===`zh-TW`?`狀態`:`States`),Or=e=>`tab ${e?.label}`,kr=e=>`分頁 ${e?.label}`,Ar=((e,t={})=>(t.locale??s())===`zh-TW`?kr(e):Or(e)),jr=((e={},t={})=>(t.locale??s())===`zh-TW`?`即時網況 · 通訊`:`live net · comms`),Mr=((e={},t={})=>(t.locale??s())===`zh-TW`?`網路活動`:`Net activity`),Nr=((e={},t={})=>(t.locale??s())===`zh-TW`?`伺服器啟動後還沒有動靜`:`Nothing has happened since the server started`),Pr=((e={},t={})=>(t.locale??s())===`zh-TW`?`現在`:`now`),Fr=e=>`${e?.count} events in 30 min`,Ir=e=>`近 30 分鐘 ${e?.count} 筆`,Lr=((e,t={})=>(t.locale??s())===`zh-TW`?Ir(e):Fr(e)),Rr=((e={},t={})=>(t.locale??s())===`zh-TW`?`網的總計`:`Net totals`),zr=e=>`using ${e?.tool}`,Br=e=>`使用 ${e?.tool}`,Vr=((e,t={})=>(t.locale??s())===`zh-TW`?Br(e):zr(e)),Hr=`sb-locale`;function Ur(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 p(e)??(t?p(t):void 0)??p(e.split(`-`)[0])}function Wr(e,t){return p(e)??t.map(Ur).find(Boolean)??`en`}var Gr={brand_label:Re,tagline:jr,totals_label:Rr,stat_bases:Cr,stat_agents:Sr,stat_working:Er,stat_waiting:Tr,stat_commanding:wr,mark_commanding:tn,alerts:we,no_alerts:yn,pair_button:Fn,pair_title:In,link_connecting:St,location:Dt,all_bases:Te,documents:yt,timeline:Mr,states:Dr,mark_working:cn,mark_waiting:sn,mark_idle:an,mark_done:nn,mark_error:rn,credit:dt,language:xt,settings:ar,new_base:_n};Object.keys(Gr);function Kr(){let e=null;try{e=localStorage.getItem(Hr)}catch{}let n=Wr(e,navigator.languages??[navigator.language]);l(()=>n),document.documentElement.lang=n;let r={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[t,n]of Object.entries(r))e.dataset[t]&&n(e,Gr[e.dataset[t]]?.()??e.dataset[t]);let i=document.getElementById(`lang`);i.replaceChildren(...t.map(e=>new Option(Et({},{locale:e}),e,!1,e===n))),i.onchange=()=>{try{localStorage.setItem(Hr,i.value),location.reload()}catch{i.value=n}}}var qr=e=>e.unit??e.key,x=e=>e.mark===`waiting`||e.pending?0:1;function Jr(e,t){let n=new Map;for(let r of e.bases)for(let e of[...r.tower?[{...r.tower,role:`tower`},...r.tower.subs]:[],...[...r.tabs.flatMap(e=>e.units),...r.outside].flatMap(e=>[e,...e.subs])]){n.set(e.key,{key:e.key,ws:r.id,name:e.name,role:e.role,mark:e.mark,note:e.note,at:t,pending:e.pending,closed:!e.control||!!e.ended});for(let i of e.monitors??[])(i.status===`error`||i.status===`stale`)&&(a=>n.set(a,{key:a,unit:e.key,ws:r.id,name:e.name,role:e.role,mark:`error`,note:`monitor:${i.status}:${i.what}`,at:t}))(`${e.key}\u001fmonitor:${i.id}:${i.at}`)}return n}function Yr(e,t){return[...t.values()].filter(t=>{let n=e?.get(t.key);return x(t)===0?!n||x(n)!==0||n.mark!==t.mark:e!==void 0&&n?.mark!==t.mark&&(t.mark===`error`||t.mark===`done`)})}var Xr=`input, textarea, select, [role=textbox], [role=combobox], [role=listbox], .term-scroll`,Zr=`button, a, summary, [role=button], [role=link]`,Qr=`.ask-opt, [role=radio], [role=checkbox]`,$r=`dialog.sheet[open], dialog.lightbox[open], [popover]:popover-open`;function ei(e,t,n=!1){if(t||e.defaultPrevented||e.isComposing||e.ctrlKey||e.altKey||e.metaKey)return;let r=e.target;if(!(r?.isContentEditable||r?.closest?.(Xr))){if(e.key===`f`||e.key===`F`)return`zoom`;if(e.key===` `&&!r?.closest?.(Qr)&&(n||!r?.closest?.(Zr)))return`next`}}function ti(e,t=()=>document.querySelector($r)!==null,n=window){let r,i=!1,a=null;n.addEventListener(`pointerdown`,()=>i=!0,!0),n.addEventListener(`focusin`,e=>a=i?e.target:null,!0),n.addEventListener(`keydown`,n=>{let o=n.target===a;i=!1;let s=ei(n,t(),o);if(s){if(n.repeat)return r===s?n.preventDefault():void 0;e(s)&&(r=s,n.preventDefault())}}),n.addEventListener(`keyup`,e=>{r===`next`&&e.key===` `&&e.preventDefault(),r=void 0})}var ni=3e4,ri=[`pointermove`,`pointerdown`,`keydown`,`wheel`,`touchstart`];function ii(e=document.documentElement){if(matchMedia(`(prefers-reduced-motion: reduce)`).matches)return;let t=Date.now(),n,r=()=>{let i=t+ni-Date.now();i>0?n=setTimeout(r,i):(n=void 0,e.toggleAttribute(`data-calm`,!0))},i=()=>{t=Date.now(),n===void 0&&(e.toggleAttribute(`data-calm`,!1),n=setTimeout(r,ni))};for(let e of ri)addEventListener(e,i,{capture:!0,passive:!0});document.addEventListener(`visibilitychange`,()=>document.hidden||i()),i()}var ai=(...e)=>e.filter(e=>e!==!1&&e!=null),oi=(e,t)=>(e.classList.add(t),e.classList.toggle(`flip`));function si(e,t,...n){let r=document.createElement(e);for(let[e,n]of Object.entries(t??{}))r.setAttribute(e,n);return r.append(...ai(...n)),r}var ci=140;function li(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`,ln()),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(ci/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 ui({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 di(e,t){if(t||!e.length)return[];let n=document.createElement(`style`);return n.textContent=e.map((e,t)=>`@keyframes pk${t}{${ui(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 fi=(function(){let e=typeof document<`u`&&document.createElement(`link`).relList;return e&&e.supports&&e.supports(`modulepreload`)?`modulepreload`:`preload`})(),pi=function(e,t){return new URL(e,t).href},mi={},hi=function(e){return e.pathname.endsWith(`.css`)},gi=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},S=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=pi(t,n);let r=s(t),i=hi(r);return gi(mi,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`:fi,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)})};function C(e,t,n,r,i=!1){Object.assign(e.dataset,t),[e.hidden,e.textContent]=[i,n],r&&e.setAttribute(`aria-label`,r)}var _i=(e,t)=>t.role===`subagent`&&t.ended&&t.key?C(e,{close:`dismiss`,key:t.key,name:t.name,role:t.role},ft(),vt({name:t.name})):C(e,{close:`unit`,key:t.key??``,name:t.name,role:t.role},y(),it({name:t.name}),!(t.control&&t.key)||t.role===`subagent`),vi=(e,t)=>C(e,{key:t?.key??``,name:t?.name??``,role:`tower`},Un(),void 0,!t?.control),yi=(e,t)=>C(e,{ws:t.id,name:t.label},y(),Ue({name:t.label})),bi=(e,t)=>C(e,{ws:t.id,name:t.label},fr(),hr({name:t.label})),xi=(e,t,n)=>C(e,{ws:t.id,name:n.label,tab:n.id},y(),Ye({name:n.label})),w=(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(ze(),`later`,!1),o(t,`sheet-yes`,!0)]:[o(Be(),`later`,!1)]),r.append(i,a),r.addEventListener(`close`,()=>(r.remove(),n(!1))),document.body.append(r),r.showModal()}),Si=e=>e.bases.flatMap(e=>[...e.tower?[e.tower]:[],...e.tabs.flatMap(e=>e.units),...e.outside]).flatMap(e=>e.subs).filter(e=>e.ended).map(e=>e.key);function Ci(e,t){let n=Si(t).length;e.hidden=!n,n&&(e.textContent=ht({count:n}))}function wi(e,t,n){let r=n.stashed??[],i=JSON.stringify(r);e.hidden=!r.length;let a=t.closest(`[popover]`);!r.length&&a?.matches(`:popover-open`)&&a.hidePopover(),r.length&&(e.textContent=xr({count:r.length})),t.dataset.key!==i&&(t.dataset.key=i,t.replaceChildren(...r.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`],C(r,{close:`pop`,name:e.name},Ln(),Bn({name:e.name})),t.append(n,r),t})))}function Ti(e,{route:t,net:n,go:r}){let i=t();if(i.view===`map`)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 Ei(e){document.addEventListener(`click`,t=>{let n=t.target?.closest?.(`button[data-close]`),r=n?.dataset;if(n&&r){if(t.preventDefault(),r.close===`dismiss`||r.close===`dismiss-all`)return void S(async()=>{let{post:e}=await import(`./post-UHMNmNgA.js`).then(e=>e.n);return{post:e}},[],import.meta.url).then(({post:e})=>e(`dismiss`,r.close===`dismiss`?{key:r.key}:{all:!0})).then(e=>e.ok||w(e.body.reason??b({status:e.status})),()=>w(v()));if(r.close===`pop`)return void(n.toggleAttribute(`disabled`,!0),S(async()=>{let{post:e}=await import(`./post-UHMNmNgA.js`).then(e=>e.n);return{post:e}},[],import.meta.url).then(({post:e})=>e(`close/pop`,{name:r.name})).then(e=>e.ok||w(e.body.reason??b({status:e.status})),()=>w(v())).finally(()=>n.toggleAttribute(`disabled`,!1)));w((r.close===`stash`?vr:r.close===`base`?Ke:r.close===`tab`?Qe:r.role===`tower`?tt:st)({name:r.name??``}),r.close===`stash`?fr():y()).then(t=>{t&&(n.toggleAttribute(`disabled`,!0),S(async()=>{let{post:e}=await import(`./post-UHMNmNgA.js`).then(e=>e.n);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?Ti(r,e):w(t.body.reason??b({status:t.status})),()=>w(v())).finally(()=>n.toggleAttribute(`disabled`,!1)))})}})}var Di=e=>{try{return decodeURIComponent(e)}catch{return e}},T=e=>/^\.+$/.test(e)?e.replaceAll(`.`,`%2E`):encodeURIComponent(e);function E(e){let[t,n]=e.split(`#`)[0].split(`?`),[r,i,a,o]=t.replace(/^\/+|\/+$/g,``).split(`/`).map(Di);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 D=e=>e.view===`map`?``:e.view===`workspace`?`w/${T(e.ws)}`:`w/${T(e.ws)}/s/${T(e.key)}${e.at?`?at=${encodeURIComponent(e.at)}`:``}`,Oi=e=>e.view===`session`?{view:`workspace`,ws:e.ws}:{view:`map`},ki=e=>e.view===`session`?e.key:e.view===`workspace`?`w:${e.ws}`:null;function Ai(e,t=new URL(document.baseURI).pathname){let n=()=>E(location.pathname.slice(t.length)+location.search),r={route:n,href:e=>D(e)||`./`,go(n){let r=t+D(n);location.pathname+location.search!==r&&history.pushState(null,``,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(),r.go(E(t.getAttribute(`data-route`))))}),r}var ji={main:`main`,member:`member`,subagent:`subagent`,outpost:`outpost`,outside:`outside`,tower:`tower`},Mi={commanding:tn,working:cn,waiting:sn,idle:an,done:nn,error:rn,unknown:on},Ni={main:Qn,member:$n,subagent:rr,tower:ir,outpost:er,outside:tr,session:nr},Pi={thinking:Sn,"watching a monitor":xn,idle:an,"waiting on a question":sn,finished:nn},Fi={claude:`Claude`,codex:`Codex`},Ii=e=>Object.hasOwn(Ni,e)?Ni[e]():e,Li=e=>e===`waiting`||e===`error`,O=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)},k=(e,t)=>{let n=document.getElementById(e);if(!(n instanceof t))throw Error(`#${e} is missing from the page`);return n},A=(e,t,n)=>{let r=e.querySelector(t);r.textContent!==n&&(r.textContent=n)},j=(e,t)=>{if(e.dataset.mark===t)return;let n=e.dataset.mark!==void 0;e.dataset.mark=t,n&&oi(e,`flash`)},Ri=e=>(t=>(e.slice(8,t)===`stale`?hn:fn)({what:e.slice(t+1)}))(e.indexOf(`:`,8)),M=(e,t)=>e?e.startsWith(`tool:`)?Vr({tool:e.slice(5)}):e.startsWith(`monitor:`)?Ri(e):Object.hasOwn(Pi,e)?Pi[e]():e:Mi[t](),zi=(e,t,n,r,i=M(n,r))=>{A(e,t,i),e.querySelector(t).toggleAttribute(`data-monitoring`,i===M(n,r)&&n===`watching a monitor`)},N=(e,t)=>{e.toggleAttribute(`hidden`,!t),t&&(e.setAttribute(`href`,D(t)||`./`),e.setAttribute(`data-route`,D(t)))},P=(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`},Bi=`<div class="plate"><i class="ring"></i><svg><use href="#i-main"/></svg><b class="badge"></b></div>`;function Vi(e,t,n,r){j(e,n);let i=e.querySelector(`use`),a=`#i-${ji[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 F(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 Hi=(e,t=Math.max(0,Date.now()-e)/1e3)=>t<60?Ce({n:String(Math.floor(t))}):t<3600?be({n:String(Math.floor(t/60))}):t<86400?_e({n:String(Math.floor(t/3600))}):me({n:String(Math.floor(t/86400))}),Ui=(e,t)=>(t===void 0?delete e.dataset.since:e.dataset.since=String(t),e.textContent=t===void 0?``:Hi(t));function Wi(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 I=()=>O(`<div class="unit"><div class="card"><a class="hit"></a>${Bi}<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 L(e,t){let n=e.closest(`.base`)?.dataset.key,r=e.querySelector(`.hit`);N(r,t.key&&n?{view:`session`,ws:n,key:t.key}:void 0),r.setAttribute(`aria-label`,`${t.name}: ${M(t.note,t.mark)}`),r.toggleAttribute(`data-alert`,Li(t.mark)),j(e,t.mark),Vi(e.querySelector(`.plate`),t.role,t.mark,t.docs),A(e,`.name`,t.name),A(e,`.role`,Ii(t.role)),A(e,`.agent`,t.agent?Fi[t.agent]:``),zi(e,`.note`,t.note,t.mark),Ui(e.querySelector(`:scope > .card .age`),t.since);let i=e.querySelector(`:scope > .card .todo`);i.hidden=!t.todo,t.todo&&(A(i,`b`,`${t.todo.done<t.todo.total?`◐`:`✓`} ${t.todo.done}/${t.todo.total}`),A(i,`span`,t.todo.now??``)),Wi(e.querySelector(`:scope > .card`),t.ticks),_i(e.querySelector(`:scope > .card > .quit-btn`),t),F(e.querySelector(`.subs`),t.subs??[],I,L)}function Gi(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`?Mn():Nn())&&(e.textContent=r===`main`?Mn():Nn())}var Ki=()=>O(`<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"><span class="crown"><svg><use href="#i-crown"/></svg>${bt()}</span><h2><a class="enter-base"></a></h2><p><span class="tstate"></span><span class="age"></span></p><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="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="${Pn()}"></div></section>`);function qi(e,t){j(e,t.mark),e.classList.toggle(`head`,t.head);let n=e.querySelector(`.tower`);n.classList.toggle(`ghost`,!t.tower),j(n,t.tower?.mark??`unknown`),A(e,`h2 a`,t.label),N(e.querySelector(`h2 a`),{view:`workspace`,ws:t.id}),A(e,`.title .tstate`,t.tower?ut({state:Mi[t.tower.mark]()}):bn()),Ui(e.querySelector(`.title .age`),t.tower?.since),Gi(e.querySelector(`.spawn-btns button`),t),yi(e.querySelector(`header > .quit-btn`),t),bi(e.querySelector(`.spawn-btns [data-close=stash]`),t),vi(e.querySelector(`.tower-quit`),t.tower),F(e.querySelector(`.tower-subs`),t.tower?.subs??[],I,L),F(e.querySelector(`.tabs`),t.tabs,()=>O(`<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>`),(e,n)=>{A(e,`h3 span`,Ar({label:n.label})),xi(e.querySelector(`.quit-btn`),t,n),Gi(e.querySelector(`.tab-add`),t,n.id),F(e.querySelector(`.units`),n.units,I,L)}),F(e.querySelector(`.outposts`),t.outposts.map(e=>({id:e.id,name:e.label,role:`outpost`,mark:e.mark,note:e.mark===`unknown`?vn():void 0,since:e.since,ticks:e.ticks})),I,L)}function Ji(e,t,n,r){let i=[...e.querySelectorAll(`.base:not(.leaving) .tower`)],a=e.querySelector(`.base.head:not(.leaving) .tower`),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.map(e=>{let[[t,n],[r,i]]=[s(a),s(e)];return{x1:t,y1:n,x2:r,y2:i,mid:Math.round((t+r)/2)}}),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(...di(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 Yi=2,Xi=20;function Zi(){let[e,t,n,r]=[k(`map`,HTMLElement),k(`bases`,HTMLElement),k(`links`,SVGSVGElement),k(`packets`,HTMLElement)],i=matchMedia(`(prefers-reduced-motion: reduce)`).matches,a=new Set,o=li(e,t),s=()=>(o(),!e.hidden&&Ji(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+Xi)/Yi)}`),l()));return setInterval(()=>document.querySelectorAll(`.age[data-since]`).forEach(e=>Ui(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`)),ii(),{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);k(`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`)]])k(t,HTMLElement).textContent=r},show(e){F(t,e.bases,Ki,qi);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 Qi=new URL(`done-jqKY4qf5.mp3`,import.meta.url).href,$i=new URL(`error-DdTLgPEw.mp3`,import.meta.url).href,ea={waiting:new URL(`waiting-DOg8-8gu.mp3`,import.meta.url).href,error:$i,done:Qi},ta=e=>e.mark===`waiting`||e.pending?`waiting`:e.mark===`error`?`error`:e.mark===`done`?`done`:void 0,na=(e,t)=>{try{return localStorage.getItem(e)??t}catch{return t}},ra=(e,t)=>{try{localStorage.setItem(e,t)}catch{}};function ia(e){let t=e=>document.getElementById(e),n=t(`remind`),r=t(`sound`),i=t(`sound-pop`),a=t(`sound-on`),o=t(`sound-vol`),s=t(`sound-vol-out`),c=typeof Notification<`u`,l=na(`sb.remind`,`1`)===`1`,u=na(`sb.sound`,`0`)===`1`,d=Math.min(100,Math.max(0,Number(na(`sb.volume`,`60`))||0)),f,p,m=new Map,h=()=>{let e=c?Notification.permission:`denied`;n.setAttribute(`aria-pressed`,String(l)),n.dataset.state=l?e===`granted`?`on`:e===`denied`?`blocked`:`ask`:`off`,n.title=c?l?e===`granted`?Xn():e===`denied`?Jn():qn():Yn():Zn(),r.dataset.state=u?`on`:`off`,r.setAttribute(`aria-label`,u?cr():sr()),a.checked=u,o.value=s.value=String(d),p&&(p.gain.value=(d/100)**2)};n.textContent=Kn(),r.textContent=or(),r.title=lr(),t(`sound-on-label`).textContent=or(),t(`sound-vol-label`).textContent=dr(),t(`sound-try`).textContent=ur(),n.onclick=async()=>{l&&c&&Notification.permission==="default"?await Notification.requestPermission().catch(()=>{}):ra(`sb.remind`,(l=!l)?`1`:`0`),h()},i.addEventListener(`toggle`,e=>e.newState===`open`&&P(i,r)),a.onchange=()=>{ra(`sb.sound`,(u=a.checked)?`1`:`0`),h(),u&&g(`done`)},o.oninput=()=>(ra(`sb.volume`,String(d=Number(o.value))),h()),o.onchange=()=>g(`done`),t(`sound-try`).onclick=()=>g(`done`);function g(e){f??=new AudioContext,p||((p=f.createGain()).connect(f.destination),h());let t=f,n=p;m.has(e)||m.set(e,fetch(ea[e]).then(e=>e.arrayBuffer()).then(e=>t.decodeAudioData(e))),Promise.all([t.resume(),m.get(e)]).then(([,e])=>{let r=t.createBufferSource();r.buffer=e,r.connect(n),r.start()}).catch(()=>m.delete(e))}return h(),{signal(t){let n=t.flatMap(e=>(t=>t?[{a:e,k:t}]:[])(ta(e)));if(n.length&&(u&&g([`waiting`,`error`,`done`].find(e=>n.some(t=>t.k===e))),l&&c&&Notification.permission===`granted`&&(document.hidden||!document.hasFocus())))for(let{a:t,k:r}of n){let n=new Notification(t.name,{body:{waiting:jn,error:On,done:Tn}[r]({note:t.note??``}).trim(),tag:t.key,icon:document.querySelector(`link[rel="icon"]`)?.href,silent:r!==`waiting`});n.onclick=()=>(window.focus(),n.close(),e(t))}}}}var aa=45e3,oa=1e3,sa=3e4,ca=(e,t)=>Math.min(sa,oa*2**(e-1))*(.8+.4*t);function la(e){try{return JSON.parse(e)}catch{return}}function ua(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(),aa),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,ca(t,e.random())))},d=()=>{c(),s(),i=e.now();let n=t=e.open();n.onError(()=>t===n&&u()),n.listen(`message`,r=>{if(t!==n)return;let i=la(r);i&&e.onNet(i),o({problem:i?void 0:Vn()}),l()}),n.listen(`ping`,()=>t===n&&l()),n.listen(`problem`,e=>{t===n&&(o({problem:la(e)??Hn()}),l())}),r=e.setTimeout(()=>u(),aa)};return{start(){o({state:`connecting`,attempt:0}),d()},resume(){let n=e.now()-i<2e3||a.lastContact!==void 0&&e.now()-a.lastContact<=2e4;t&&n||(o({attempt:0,state:a.state===`live`?`reconnecting`:a.state}),d())},restart:d,hide(){e.clearTimeout(n),n=void 0},stop(){c(),s()}}}var da={commanding:At,working:en,waiting:Zt,idle:zt,done:Nt,error:It,unknown:Jt},fa=e=>(e.kind===`joined`?Ht:e.kind===`left`?Gt:da[e.mark])({name:e.name}),pa=18e5,ma={waiting:0,error:0,working:1,commanding:1},ha=e=>new Date(e).toLocaleTimeString([],{hour12:!1});function ga(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()-pa,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)/pa*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:${(ma[t.mark]??2)*14+4}px`,n.setAttribute(`aria-label`,`${ha(t.at)} ${fa(t)}`),N(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:ha(e+t*6e4).slice(0,5)})),Object.assign(document.createElement(`span`),{textContent:Pr()})),r.textContent=c?ha(c.at):``,i.textContent=c?fa(c):Nr(),a.textContent=Lr({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())}}}Kr();var R=Zi(),_a=ga(document.getElementById(`timeline`)),z=e=>document.getElementById(e),va=e=>e?new Date(e).toLocaleTimeString([],{hour12:!1}):gn(),ya,B,V,ba={state:`connecting`,attempt:0},H={view:`map`},xa=!1,Sa,Ca=``,U,wa,W=e=>U?e(U):void wa?.then(e);function Ta(){wa??=S(async()=>{let{mountFocus:e}=await import(`./views-CDDyJu5N.js`);return{mountFocus:e}},[],import.meta.url).then(({mountFocus:e})=>(U=e({data:Ba,restart:()=>Z.restart(),openTile:q,embedTerminal:(e,t,n)=>new Promise(r=>K(i=>r(i.terminal.embed(e,t,n)))),online:()=>ba.state===`live`}),U.show(H,H),B&&U.net(B),U))}var G,Ea,K=e=>{if(G)return e(G);Ea??=S(async()=>{let{mountPanels:e}=await import(`./layer-DJNycmSO.js`);return{mountPanels:e}},[],import.meta.url).then(({mountPanels:e})=>G=e({label:e=>B?.bases.find(t=>t.id===e)?.label??e,recent:async e=>(await(Y?Y.data(e).latest():za(e,`?limit=12`))).items,post:e=>Y&&((t,n)=>Y.data(e).post(t,n)),stream:()=>Ca,showTerminal:(e,t)=>(G?.stack.close(),U?.terminal(t),X.go({view:`session`,ws:e,key:t}))})),Ea.then(e)},q=(e,t)=>K(n=>n.tiles.open(e,t)),J=document.querySelector(`link[rel="icon"]`),Da=J&&decodeURIComponent(J.href.slice(J.href.indexOf(`,`)+1)),Oa=0;function ka(e){let t=e.bases.flatMap(e=>[...e.tower?[e.tower,...e.tower.subs]:[],...[...e.tabs.flatMap(e=>e.units),...e.outside].flatMap(e=>[e,...e.subs])]).filter(e=>e.mark===`waiting`||e.pending).length;if(!J||!Da||t===Oa)return;Oa=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>`;J.href=`data:image/svg+xml,${encodeURIComponent(t?Da.replace(`</svg>`,`${n}</svg>`):Da)}`}var Aa;function ja(e){B=V=e,ka(e);let t=Jr(e,Date.now());if(Aa&&Ha.signal(Yr(Aa,t)),Aa=t,document.hidden)return;R.stats(e),Ci(z(`dismiss-all`),e),wi(z(`stashed`),z(`stashed-list`),e),Q?.net(e);let n=Yr(Sa,t);(n.length||G)&&K(e=>e.alerts(n,t)),Sa=t,_a.net(e),W(t=>t.net(e)),H.view===`map`&&(R.show(e),ya=e,V=void 0)}function Ma(e){let t=H,n=e.view===`workspace`&&t.view===`map`?document.querySelector(`#bases [data-key="${CSS.escape(e.ws)}"]`)?.getBoundingClientRect():void 0;H=e,Q?.route(e),e.view!==`map`&&Ta(),z(`map`).hidden=e.view!==`map`,z(`legend`).hidden=e.view===`session`,z(`stage`).dataset.view=e.view,W(r=>r.show(e,t,n)),e.view===`map`&&B&&B!==ya&&(ja(B),requestAnimationFrame(R.layout)),xa&&ki(e)!==ki(t)&&Z.restart()}function Na(e){ba=e;let t=e.state===`reconnecting`||e.state===`offline`;document.body.dataset.stale=z(`stage`).dataset.stale=String(t),z(`link`).dataset.state=e.state,z(`link-text`).textContent={connecting:St,live:Ct,reconnecting:Tt,offline:wt}[e.state](),U&&B&&U.net(B),G?.stack.redraw();let n=z(`banner`);n.hidden=!t&&!e.problem;let r=e.state===`offline`?Ae({tries:e.attempt-1}):e.state===`reconnecting`?e.attempt?Le({attempt:e.attempt}):Pe():Ne({problem:e.problem??``}),i=document.createElement(`b`);i.textContent=va(e.lastContact),n.replaceChildren(`${r} ${De()} `,i,Ee())}function Pa(e,t){try{let n=JSON.parse(t);W(t=>e===`history`?t.history(n):t.cards(n))}catch{}}var Fa=document.querySelector(`meta[name="sb-build"]`)?.content,Ia=e=>!!(Fa&&Fa!==JSON.parse(e).build);function La(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 Ra=e=>fetch(`api/${e}`,{cache:`no-store`}).then(e=>e.ok?e.json():Promise.reject(Error(String(e.status)))),za=(e,t=``)=>Ra(`history/${encodeURIComponent(e)}${t}`),Y=void 0,Ba=e=>({older:t=>za(e,`?before=${encodeURIComponent(t)}`),latest:()=>za(e),entry:t=>Ra(`entry/${encodeURIComponent(e)}/${encodeURIComponent(t)}`).catch(()=>void 0),pic:(t,n)=>`api/image/${encodeURIComponent(e)}/${encodeURIComponent(t)}/${n}`}),Va=()=>{let e=La(ki(H));return e.listen(`history`,e=>Pa(`history`,e)),e.listen(`cards`,e=>Pa(`cards`,e)),e.listen(`hello`,e=>Ia(e)?location.reload():(Ca=e,G?.terminal.hello())),e.listen(`mirror`,e=>G?.terminal.frame(e)),e};document.addEventListener(`click`,e=>{let t=e.target?.closest?.(`a[data-alert]`),n=t&&E(t.getAttribute(`data-route`)??``);if(!n||n.view!==`session`||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let r=Sa?.get(n.key);r&&(e.preventDefault(),K(e=>e.stack.show(r)))},!0);var X=Ai(e=>Ma(e)),Ha=ia(e=>X.go({view:`session`,ws:e.ws,key:qr(e)})),Z=ua({open:Va,now:Date.now,setTimeout:(e,t)=>window.setTimeout(e,t),clearTimeout:e=>window.clearTimeout(e),random:Math.random,hidden:()=>document.hidden,onNet:ja,onStatus:Na}),Ua=()=>Z.resume();document.addEventListener(`visibilitychange`,()=>{if(R.pause(document.hidden),document.hidden)return Z.hide();V&&ja(V),W(e=>e.wake()),Ua()}),addEventListener(`keydown`,e=>{e.key!==`Escape`||e.defaultPrevented||document.querySelector(`dialog.sheet[open], dialog.lightbox[open], [popover]:popover-open`)||(e.preventDefault(),!G?.stack.close()&&H.view!==`map`&&X.go(Oi(H)))}),ti(e=>G?.hotkey(e)??!1),z(`pair`).hidden=location.hostname!==`127.0.0.1`,z(`pair`).addEventListener(`click`,()=>void S(async()=>{let{pairTile:e}=await import(`./pair-Da3cDDtX.js`);return{pairTile:e}},[],import.meta.url).then(({pairTile:e})=>q(e(),!0)));var Q,$=matchMedia(`(pointer: coarse), (max-width: 640px)`),Wa=()=>void S(async()=>{let{mountDrawer:e}=await import(`./drawer-BEGT9C2n.js`);return{mountDrawer:e}},[],import.meta.url).then(({mountDrawer:e})=>(Q??=e(),B&&Q.net(B),Q.route(H)));$.matches?Wa():$.addEventListener(`change`,()=>$.matches&&!Q&&Wa(),{once:!0}),Ei({route:()=>H,net:()=>B,go:e=>X.go(e)}),z(`stashed-pop`).addEventListener(`toggle`,e=>e.newState===`open`&&P(z(`stashed-pop`),z(`stashed`))),z(`prefs-pop`).addEventListener(`toggle`,e=>e.newState===`open`&&P(z(`prefs-pop`),z(`prefs`))),document.addEventListener(`click`,e=>{let t=e.target?.closest?.(`button[data-open]`);t&&S(async()=>{let{openingOf:e,spawnTile:t}=await import(`./spawn-Lrp0WChx.js`);return{openingOf:e,spawnTile:t}},[],import.meta.url).then(({openingOf:e,spawnTile:n})=>{let r=e(t,B?.bases??[]);r&&q(n(r,(e,t,n)=>(G?.tiles.close(n),X.go({view:`session`,ws:e,key:t}))),!0)})});for(let e of[`focus`,`pageshow`,`online`])window.addEventListener(e,()=>!document.hidden&&Ua());Na(ba),Ma(X.route()),Z.start(),xa=!0;export{bn as A,Te as B,x as C,Tr as D,Er as E,bt as F,yt as I,ut as L,yn as M,vn as N,b as O,gn as P,Be as R,$r as S,Ar as T,s as V,Li as _,N as a,ai as b,M as c,O as d,j as f,A as g,F as h,Bi as i,v as j,Pn as k,Vi as l,zi as m,ji as n,Gi as o,Ii as p,Mi as r,k as s,Fi as t,P as u,S as v,qr as w,oi as x,si as y,ze as z};
1
+ var e={},t=[`en`,`zh-TW`],n=`PARAGLIDE_LOCALE`,r=[`baseLocale`],i=[],a=typeof window>`u`;globalThis.__paraglide=globalThis.__paraglide??{},globalThis.__paraglide.ssr=globalThis.__paraglide.ssr??{};var o=!1,s=()=>{let e=r;!a&&typeof window<`u`&&window.location?.href&&(e=ue(window.location.href));let t=c(e,typeof window<`u`?window.location?.href:void 0);if(t)return o||(o=!0,d(t,{reload:!1})),t;throw Error(`No locale found. Read the docs https://paraglidejs.com/errors#no-locale-found`)};function c(e,t){let n;for(let t of e){if(t===`baseLocale`)n=`en`;else if(de(t)&&_.has(t)){let e=_.get(t);if(e){let t=e.getLocale();if(t instanceof Promise)continue;if(t!==void 0)return m(t)}}let e=p(n);if(e)return e}}var l=e=>{s=e},u=e=>{e?window.location.href=e:window.location.reload()},d=(e,t)=>{let n={reload:!0,...t},i;try{i=s()}catch{}let o=[],c=r;!a&&typeof window<`u`&&window.location?.href&&(c=ue(window.location.href));for(let t of c)if(t===`baseLocale`)continue;else if(de(t)&&_.has(t)){let n=_.get(t);if(n){let r=n.setLocale(e);r instanceof Promise&&(r=r.catch(e=>{throw Error(`Custom strategy "${t}" setLocale failed.`,{cause:e})}),o.push(r))}}let l=()=>{!a&&n.reload&&window.location&&e!==i&&u(void 0)};if(o.length)return Promise.all(o).then(()=>{l()});l()},f=()=>typeof window<`u`?window.location.origin:`http://fallback.com`;function p(e){if(typeof e!=`string`)return;let n=e.toLowerCase();for(let e of t)if(e.toLowerCase()===n)return e}function m(e){let n=p(e);if(n)return n;throw Error(`Invalid locale: ${e}. Expected one of: ${t.join(`, `)}`)}function h(e){return e}function g(t,n){return new e(t,n.href)}function ee(){return 0}function te(e){return i}function ne(e,t){return e.exec(t.href)}var re=n.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);RegExp(`(?:^|;\\s*)${re}=([^;]*)`);function ie(e){return ae(e)}function ae(e){let t=h(typeof e==`string`?new URL(e,f()):new URL(e.href)),n=t.pathname.replace(/^\/+/,``).split(`/`);return n.length>0&&p(n[0])&&(t.pathname=`/`+n.slice(1).join(`/`)),h(t)}var oe=-1,se,ce;function le(e){if(i.length===0)return;let t=typeof e==`string`?e:e.href,n=ee();if(se===t&&oe===n)return ce;let r=h(new URL(t,`http://example.com`)),a=ie(r),o=a.href===r.href?[r]:[r,a],s;for(let e of o){for(let t of te(e))if(ne(g(t.match,e),e)){s=t;break}if(s)break}return oe=n,se=t,ce=s,s}function ue(e){let t=le(e);return t&&t.exclude!==!0&&Array.isArray(t.strategy)?t.strategy:r}var _=new Map;function de(e){return typeof e==`string`&&/^custom-[A-Za-z0-9_-]+$/.test(e)}var fe=e=>`${e?.n}d`,pe=e=>`${e?.n} 天`,me=((e,t={})=>(t.locale??s())===`zh-TW`?pe(e):fe(e)),he=e=>`${e?.n}h`,ge=e=>`${e?.n} 小時`,_e=((e,t={})=>(t.locale??s())===`zh-TW`?ge(e):he(e)),ve=e=>`${e?.n}m`,ye=e=>`${e?.n} 分`,be=((e,t={})=>(t.locale??s())===`zh-TW`?ye(e):ve(e)),xe=e=>`${e?.n}s`,Se=e=>`${e?.n} 秒`,Ce=((e,t={})=>(t.locale??s())===`zh-TW`?Se(e):xe(e)),we=((e={},t={})=>(t.locale??s())===`zh-TW`?`警示`:`Alerts`),Te=((e={},t={})=>(t.locale??s())===`zh-TW`?`所有基地`:`all bases`),Ee=((e={},t={})=>(t.locale??s())===`zh-TW`?``:`.`),De=((e={},t={})=>(t.locale??s())===`zh-TW`?`最後更新:`:`Last update`),Oe=e=>`Disconnected. Gave up after ${e?.tries} tries; it reconnects when you return to this tab.`,ke=e=>`連線中斷。重試 ${e?.tries} 次後放棄;回到此分頁時會重新連線。`,Ae=((e,t={})=>(t.locale??s())===`zh-TW`?ke(e):Oe(e)),je=e=>`The server is up but cannot read the net: ${e?.problem}`,Me=e=>`伺服器正常,但讀不到網:${e?.problem}`,Ne=((e,t={})=>(t.locale??s())===`zh-TW`?Me(e):je(e)),Pe=((e={},t={})=>(t.locale??s())===`zh-TW`?`與稻草網的連線中斷,正在重新連線…畫面顯示的是最後已知狀態。`:`Disconnected from the straw net. Reconnecting… The view shows the last known state.`),Fe=e=>`Disconnected from the straw net. Reconnecting (try ${e?.attempt})… The view shows the last known state.`,Ie=e=>`與稻草網的連線中斷,正在重新連線(第 ${e?.attempt} 次)…畫面顯示的是最後已知狀態。`,Le=((e,t={})=>(t.locale??s())===`zh-TW`?Ie(e):Fe(e)),Re=((e={},t={})=>(t.locale??s())===`zh-TW`?`Straw Net:所有基地`:`Straw Net: all bases`),ze=((e={},t={})=>(t.locale??s())===`zh-TW`?`取消`:`Cancel`),Be=((e={},t={})=>(t.locale??s())===`zh-TW`?`關閉`:`Close`),Ve=e=>`Quit base ${e?.name}`,He=e=>`關掉基地 ${e?.name}`,Ue=((e,t={})=>(t.locale??s())===`zh-TW`?He(e):Ve(e)),We=e=>`Quit base ${e?.name}? Every agent in it and its tower quit. Nothing quits while anything running would be lost.`,Ge=e=>`要關掉基地 ${e?.name} 嗎?裡面所有 agent 和塔台都會退出。有會遺失的東西時什麼都不關。`,Ke=((e,t={})=>(t.locale??s())===`zh-TW`?Ge(e):We(e)),qe=e=>`Quit squad ${e?.name}`,Je=e=>`關掉小隊 ${e?.name}`,Ye=((e,t={})=>(t.locale??s())===`zh-TW`?Je(e):qe(e)),Xe=e=>`Quit squad ${e?.name}? Every agent in it quits.`,Ze=e=>`要關掉小隊 ${e?.name} 嗎?裡面所有 agent 都會退出。`,Qe=((e,t={})=>(t.locale??s())===`zh-TW`?Ze(e):Xe(e)),$e=e=>`Quit the tower ${e?.name}? The base's mains become members again.`,et=e=>`要關掉塔台 ${e?.name} 嗎?這個基地的主智慧體都會降格成成員。`,tt=((e,t={})=>(t.locale??s())===`zh-TW`?et(e):$e(e)),nt=e=>`Quit ${e?.name}`,rt=e=>`關掉 ${e?.name}`,it=((e,t={})=>(t.locale??s())===`zh-TW`?rt(e):nt(e)),at=e=>`Quit ${e?.name}? It quits pi and its pane closes.`,ot=e=>`要關掉 ${e?.name} 嗎?它會退出 pi,窗格也會關掉。`,st=((e,t={})=>(t.locale??s())===`zh-TW`?ot(e):at(e)),ct=e=>`control tower · ${e?.state}`,lt=e=>`塔台 · ${e?.state}`,ut=((e,t={})=>(t.locale??s())===`zh-TW`?lt(e):ct(e)),dt=((e={},t={})=>(t.locale??s())===`zh-TW`?`圖示來自 game-icons.net(Lorc、Delapouite),CC BY 3.0。`:`Icons from game-icons.net by Lorc and Delapouite, CC BY 3.0.`),ft=((e={},t={})=>(t.locale??s())===`zh-TW`?`移除`:`Dismiss`),pt=e=>`Dismiss finished (${e?.count})`,mt=e=>`移除已完成(${e?.count})`,ht=((e,t={})=>(t.locale??s())===`zh-TW`?mt(e):pt(e)),gt=e=>`Dismiss ${e?.name}`,_t=e=>`從畫面移除 ${e?.name}`,vt=((e,t={})=>(t.locale??s())===`zh-TW`?_t(e):gt(e)),yt=((e={},t={})=>(t.locale??s())===`zh-TW`?`文件`:`Documents`),bt=((e={},t={})=>(t.locale??s())===`zh-TW`?`總塔台`:`head tower`),xt=((e={},t={})=>(t.locale??s())===`zh-TW`?`語言`:`Language`),St=((e={},t={})=>(t.locale??s())===`zh-TW`?`連線中`:`connecting`),Ct=((e={},t={})=>(t.locale??s())===`zh-TW`?`即時`:`live`),wt=((e={},t={})=>(t.locale??s())===`zh-TW`?`離線`:`offline`),Tt=((e={},t={})=>(t.locale??s())===`zh-TW`?`重新連線中`:`reconnecting`),Et=((e={},t={})=>(t.locale??s())===`zh-TW`?`正體中文`:`English`),Dt=((e={},t={})=>(t.locale??s())===`zh-TW`?`位置`:`Location`),Ot=e=>`${e?.name} is commanding`,kt=e=>`${e?.name} 指揮中`,At=((e,t={})=>(t.locale??s())===`zh-TW`?kt(e):Ot(e)),jt=e=>`${e?.name} finished`,Mt=e=>`${e?.name} 已完成`,Nt=((e,t={})=>(t.locale??s())===`zh-TW`?Mt(e):jt(e)),Pt=e=>`${e?.name} hit an error`,Ft=e=>`${e?.name} 發生錯誤`,It=((e,t={})=>(t.locale??s())===`zh-TW`?Ft(e):Pt(e)),Lt=e=>`${e?.name} went idle`,Rt=e=>`${e?.name} 轉為閒置`,zt=((e,t={})=>(t.locale??s())===`zh-TW`?Rt(e):Lt(e)),Bt=e=>`${e?.name} joined`,Vt=e=>`${e?.name} 加入`,Ht=((e,t={})=>(t.locale??s())===`zh-TW`?Vt(e):Bt(e)),Ut=e=>`${e?.name} left`,Wt=e=>`${e?.name} 離開`,Gt=((e,t={})=>(t.locale??s())===`zh-TW`?Wt(e):Ut(e)),Kt=e=>`${e?.name} lost its status`,qt=e=>`${e?.name} 失去狀態`,Jt=((e,t={})=>(t.locale??s())===`zh-TW`?qt(e):Kt(e)),Yt=e=>`${e?.name} is waiting on a question`,Xt=e=>`${e?.name} 正在等待回答`,Zt=((e,t={})=>(t.locale??s())===`zh-TW`?Xt(e):Yt(e)),Qt=e=>`${e?.name} started working`,$t=e=>`${e?.name} 開始工作`,en=((e,t={})=>(t.locale??s())===`zh-TW`?$t(e):Qt(e)),tn=((e={},t={})=>(t.locale??s())===`zh-TW`?`指揮中`:`commanding`),nn=((e={},t={})=>(t.locale??s())===`zh-TW`?`已完成`:`finished`),rn=((e={},t={})=>(t.locale??s())===`zh-TW`?`錯誤`:`error`),an=((e={},t={})=>(t.locale??s())===`zh-TW`?`閒置`:`idle`),on=((e={},t={})=>(t.locale??s())===`zh-TW`?`無狀態`:`no status`),sn=((e={},t={})=>(t.locale??s())===`zh-TW`?`等待回答`:`waiting on a question`),cn=((e={},t={})=>(t.locale??s())===`zh-TW`?`工作中`:`working`),ln=((e={},t={})=>(t.locale??s())===`zh-TW`?`地圖總覽`:`Overview of the map`),un=e=>`Monitor failed: ${e?.what}`,dn=e=>`Monitor 出錯:${e?.what}`,fn=((e,t={})=>(t.locale??s())===`zh-TW`?dn(e):un(e)),pn=e=>`Monitor went quiet and stopped: ${e?.what}`,mn=e=>`Monitor 太久沒輸出,已停止:${e?.what}`,hn=((e,t={})=>(t.locale??s())===`zh-TW`?mn(e):pn(e)),gn=((e={},t={})=>(t.locale??s())===`zh-TW`?`從未`:`never`),_n=((e={},t={})=>(t.locale??s())===`zh-TW`?`+新基地`:`+ New base`),vn=((e={},t={})=>(t.locale??s())===`zh-TW`?`沒有執行中的智慧體`:`no agent running`),yn=((e={},t={})=>(t.locale??s())===`zh-TW`?`無警示`:`no alerts`),v=((e={},t={})=>(t.locale??s())===`zh-TW`?`伺服器沒有回應。`:`The server did not answer.`),bn=((e={},t={})=>(t.locale??s())===`zh-TW`?`尚無塔台`:`no tower yet`),xn=((e={},t={})=>(t.locale??s())===`zh-TW`?`監看中`:`Watching a monitor`),Sn=((e={},t={})=>(t.locale??s())===`zh-TW`?`思考中`:`thinking`),Cn=e=>`Finished ${e?.note}`,wn=e=>`完成了 ${e?.note}`,Tn=((e,t={})=>(t.locale??s())===`zh-TW`?wn(e):Cn(e)),En=e=>`Failed ${e?.note}`,Dn=e=>`出錯了 ${e?.note}`,On=((e,t={})=>(t.locale??s())===`zh-TW`?Dn(e):En(e)),kn=e=>`Waiting on you ${e?.note}`,An=e=>`等你回答 ${e?.note}`,jn=((e,t={})=>(t.locale??s())===`zh-TW`?An(e):kn(e)),Mn=((e={},t={})=>(t.locale??s())===`zh-TW`?`+主智慧體`:`+ Main`),Nn=((e={},t={})=>(t.locale??s())===`zh-TW`?`+成員`:`+ Member`),Pn=((e={},t={})=>(t.locale??s())===`zh-TW`?`前哨`:`Outposts`),Fn=((e={},t={})=>(t.locale??s())===`zh-TW`?`手機`:`Phone`),In=((e={},t={})=>(t.locale??s())===`zh-TW`?`透過 Tailscale 配對手機`:`Pair a phone over Tailscale`),Ln=((e={},t={})=>(t.locale??s())===`zh-TW`?`接回`:`Pop`),Rn=e=>`Pop ${e?.name}`,zn=e=>`接回 ${e?.name}`,Bn=((e,t={})=>(t.locale??s())===`zh-TW`?zn(e):Rn(e)),Vn=((e={},t={})=>(t.locale??s())===`zh-TW`?`伺服器送來的快照,頁面無法讀取`:`the server sent a snapshot the page cannot read`),Hn=((e={},t={})=>(t.locale??s())===`zh-TW`?`伺服器回報了頁面無法讀取的問題`:`the server reported a problem the page cannot read`),y=((e={},t={})=>(t.locale??s())===`zh-TW`?`關掉`:`Quit`),Un=((e={},t={})=>(t.locale??s())===`zh-TW`?`關掉塔台`:`Quit tower`),Wn=e=>`Refused (${e?.status}).`,Gn=e=>`已拒絕(${e?.status})。`,b=((e,t={})=>(t.locale??s())===`zh-TW`?Gn(e):Wn(e)),Kn=((e={},t={})=>(t.locale??s())===`zh-TW`?`提醒`:`Remind`),qn=((e={},t={})=>(t.locale??s())===`zh-TW`?`點一下允許瀏覽器通知`:`Press to allow browser notifications`),Jn=((e={},t={})=>(t.locale??s())===`zh-TW`?`瀏覽器已封鎖通知,要到網站設定裡允許`:`The browser blocks notifications; allow them in the site settings`),Yn=((e={},t={})=>(t.locale??s())===`zh-TW`?`提醒已關`:`Reminders off`),Xn=((e={},t={})=>(t.locale??s())===`zh-TW`?`提醒已開:分頁不在前景時,單位等你回答、完成或出錯會跳系統通知`:`Reminders on: while the page is in the background, a unit waiting on you, finishing, or failing raises a system notification`),Zn=((e={},t={})=>(t.locale??s())===`zh-TW`?`這個瀏覽器不支援通知`:`This browser has no notifications`),Qn=((e={},t={})=>(t.locale??s())===`zh-TW`?`主智慧體`:`main`),$n=((e={},t={})=>(t.locale??s())===`zh-TW`?`成員`:`member`),er=((e={},t={})=>(t.locale??s())===`zh-TW`?`前哨`:`outpost`),tr=((e={},t={})=>(t.locale??s())===`zh-TW`?`未編入`:`unaligned`),nr=((e={},t={})=>(t.locale??s(),`session`)),rr=((e={},t={})=>(t.locale??s())===`zh-TW`?`子智慧體`:`subagent`),ir=((e={},t={})=>(t.locale??s())===`zh-TW`?`塔台`:`tower`),ar=((e={},t={})=>(t.locale??s())===`zh-TW`?`設定`:`Settings`),or=((e={},t={})=>(t.locale??s())===`zh-TW`?`音效`:`Sound`),sr=((e={},t={})=>(t.locale??s())===`zh-TW`?`音效已關`:`Sounds off`),cr=((e={},t={})=>(t.locale??s())===`zh-TW`?`音效已開`:`Sounds on`),lr=((e={},t={})=>(t.locale??s())===`zh-TW`?`音效:開關、音量與試聽`:`Sounds: on or off, volume, and a try`),ur=((e={},t={})=>(t.locale??s())===`zh-TW`?`▶ 試聽`:`▶ Try`),dr=((e={},t={})=>(t.locale??s())===`zh-TW`?`音量`:`Volume`),fr=((e={},t={})=>(t.locale??s())===`zh-TW`?`收起`:`Stash`),pr=e=>`Stash base ${e?.name}`,mr=e=>`收起基地 ${e?.name}`,hr=((e,t={})=>(t.locale??s())===`zh-TW`?mr(e):pr(e)),gr=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.`,_r=e=>`要收起基地 ${e?.name} 嗎?塔台、主智慧體和成員會結束,之後可以用「接回」叫回來。有會遺失的東西時不會收。`,vr=((e,t={})=>(t.locale??s())===`zh-TW`?_r(e):gr(e)),yr=e=>`Stashed (${e?.count})`,br=e=>`已收起(${e?.count})`,xr=((e,t={})=>(t.locale??s())===`zh-TW`?br(e):yr(e)),Sr=((e={},t={})=>(t.locale??s())===`zh-TW`?`智慧體`:`Agents`),Cr=((e={},t={})=>(t.locale??s())===`zh-TW`?`基地`:`Bases`),wr=((e={},t={})=>(t.locale??s())===`zh-TW`?`指揮中`:`Commanding`),Tr=((e={},t={})=>(t.locale??s())===`zh-TW`?`等待中`:`Waiting`),Er=((e={},t={})=>(t.locale??s())===`zh-TW`?`工作中`:`Working`),Dr=((e={},t={})=>(t.locale??s())===`zh-TW`?`狀態`:`States`),Or=e=>`tab ${e?.label}`,kr=e=>`分頁 ${e?.label}`,Ar=((e,t={})=>(t.locale??s())===`zh-TW`?kr(e):Or(e)),jr=((e={},t={})=>(t.locale??s())===`zh-TW`?`即時網況 · 通訊`:`live net · comms`),Mr=((e={},t={})=>(t.locale??s())===`zh-TW`?`網路活動`:`Net activity`),Nr=((e={},t={})=>(t.locale??s())===`zh-TW`?`伺服器啟動後還沒有動靜`:`Nothing has happened since the server started`),Pr=((e={},t={})=>(t.locale??s())===`zh-TW`?`現在`:`now`),Fr=e=>`${e?.count} events in 30 min`,Ir=e=>`近 30 分鐘 ${e?.count} 筆`,Lr=((e,t={})=>(t.locale??s())===`zh-TW`?Ir(e):Fr(e)),Rr=((e={},t={})=>(t.locale??s())===`zh-TW`?`網的總計`:`Net totals`),zr=e=>`using ${e?.tool}`,Br=e=>`使用 ${e?.tool}`,Vr=((e,t={})=>(t.locale??s())===`zh-TW`?Br(e):zr(e)),Hr=`sb-locale`;function Ur(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 p(e)??(t?p(t):void 0)??p(e.split(`-`)[0])}function Wr(e,t){return p(e)??t.map(Ur).find(Boolean)??`en`}var Gr={brand_label:Re,tagline:jr,totals_label:Rr,stat_bases:Cr,stat_agents:Sr,stat_working:Er,stat_waiting:Tr,stat_commanding:wr,mark_commanding:tn,alerts:we,no_alerts:yn,pair_button:Fn,pair_title:In,link_connecting:St,location:Dt,all_bases:Te,documents:yt,timeline:Mr,states:Dr,mark_working:cn,mark_waiting:sn,mark_idle:an,mark_done:nn,mark_error:rn,credit:dt,language:xt,settings:ar,new_base:_n};Object.keys(Gr);function Kr(){let e=null;try{e=localStorage.getItem(Hr)}catch{}let n=Wr(e,navigator.languages??[navigator.language]);l(()=>n),document.documentElement.lang=n;let r={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[t,n]of Object.entries(r))e.dataset[t]&&n(e,Gr[e.dataset[t]]?.()??e.dataset[t]);let i=document.getElementById(`lang`);i.replaceChildren(...t.map(e=>new Option(Et({},{locale:e}),e,!1,e===n))),i.onchange=()=>{try{localStorage.setItem(Hr,i.value),location.reload()}catch{i.value=n}}}var qr=e=>e.unit??e.key,x=e=>e.mark===`waiting`||e.pending?0:1;function Jr(e,t){let n=new Map;for(let r of e.bases)for(let e of[...r.tower?[{...r.tower,role:`tower`},...r.tower.subs]:[],...[...r.tabs.flatMap(e=>e.units),...r.outside].flatMap(e=>[e,...e.subs])]){n.set(e.key,{key:e.key,ws:r.id,name:e.name,role:e.role,mark:e.mark,note:e.note,at:t,pending:e.pending,closed:!e.control||!!e.ended});for(let i of e.monitors??[])(i.status===`error`||i.status===`stale`)&&(a=>n.set(a,{key:a,unit:e.key,ws:r.id,name:e.name,role:e.role,mark:`error`,note:`monitor:${i.status}:${i.what}`,at:t}))(`${e.key}\u001fmonitor:${i.id}:${i.at}`)}return n}function Yr(e,t){return[...t.values()].filter(t=>{let n=e?.get(t.key);return x(t)===0?!n||x(n)!==0||n.mark!==t.mark:e!==void 0&&n?.mark!==t.mark&&(t.mark===`error`||t.mark===`done`)})}var Xr=`input, textarea, select, [role=textbox], [role=combobox], [role=listbox], .term-scroll`,Zr=`button, a, summary, [role=button], [role=link]`,Qr=`.ask-opt, [role=radio], [role=checkbox]`,$r=`dialog.sheet[open], dialog.lightbox[open], [popover]:popover-open`;function ei(e,t,n=!1){if(t||e.defaultPrevented||e.isComposing||e.ctrlKey||e.altKey||e.metaKey)return;let r=e.target;if(!(r?.isContentEditable||r?.closest?.(Xr))){if(e.key===`f`||e.key===`F`)return`zoom`;if(e.key===` `&&!r?.closest?.(Qr)&&(n||!r?.closest?.(Zr)))return`next`}}function ti(e,t=()=>document.querySelector($r)!==null,n=window){let r,i=!1,a=null;n.addEventListener(`pointerdown`,()=>i=!0,!0),n.addEventListener(`focusin`,e=>a=i?e.target:null,!0),n.addEventListener(`keydown`,n=>{let o=n.target===a;i=!1;let s=ei(n,t(),o);if(s){if(n.repeat)return r===s?n.preventDefault():void 0;e(s)&&(r=s,n.preventDefault())}}),n.addEventListener(`keyup`,e=>{r===`next`&&e.key===` `&&e.preventDefault(),r=void 0})}var ni=3e4,ri=[`pointermove`,`pointerdown`,`keydown`,`wheel`,`touchstart`];function ii(e=document.documentElement){if(matchMedia(`(prefers-reduced-motion: reduce)`).matches)return;let t=Date.now(),n,r=()=>{let i=t+ni-Date.now();i>0?n=setTimeout(r,i):(n=void 0,e.toggleAttribute(`data-calm`,!0))},i=()=>{t=Date.now(),n===void 0&&(e.toggleAttribute(`data-calm`,!1),n=setTimeout(r,ni))};for(let e of ri)addEventListener(e,i,{capture:!0,passive:!0});document.addEventListener(`visibilitychange`,()=>document.hidden||i()),i()}var ai=(...e)=>e.filter(e=>e!==!1&&e!=null),oi=(e,t)=>(e.classList.add(t),e.classList.toggle(`flip`));function si(e,t,...n){let r=document.createElement(e);for(let[e,n]of Object.entries(t??{}))r.setAttribute(e,n);return r.append(...ai(...n)),r}var ci=140;function li(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`,ln()),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(ci/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 ui({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 di(e,t){if(t||!e.length)return[];let n=document.createElement(`style`);return n.textContent=e.map((e,t)=>`@keyframes pk${t}{${ui(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 fi=(function(){let e=typeof document<`u`&&document.createElement(`link`).relList;return e&&e.supports&&e.supports(`modulepreload`)?`modulepreload`:`preload`})(),pi=function(e,t){return new URL(e,t).href},mi={},hi=function(e){return e.pathname.endsWith(`.css`)},gi=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},S=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=pi(t,n);let r=s(t),i=hi(r);return gi(mi,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`:fi,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)})};function C(e,t,n,r,i=!1){Object.assign(e.dataset,t),[e.hidden,e.textContent]=[i,n],r&&e.setAttribute(`aria-label`,r)}var _i=(e,t)=>t.role===`subagent`&&t.ended&&t.key?C(e,{close:`dismiss`,key:t.key,name:t.name,role:t.role},ft(),vt({name:t.name})):C(e,{close:`unit`,key:t.key??``,name:t.name,role:t.role},y(),it({name:t.name}),!(t.control&&t.key)||t.role===`subagent`),vi=(e,t)=>C(e,{key:t?.key??``,name:t?.name??``,role:`tower`},Un(),void 0,!t?.control),yi=(e,t)=>C(e,{ws:t.id,name:t.label},y(),Ue({name:t.label})),bi=(e,t)=>C(e,{ws:t.id,name:t.label},fr(),hr({name:t.label})),xi=(e,t,n)=>C(e,{ws:t.id,name:n.label,tab:n.id},y(),Ye({name:n.label})),w=(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(ze(),`later`,!1),o(t,`sheet-yes`,!0)]:[o(Be(),`later`,!1)]),r.append(i,a),r.addEventListener(`close`,()=>(r.remove(),n(!1))),document.body.append(r),r.showModal()}),Si=e=>e.bases.flatMap(e=>[...e.tower?[e.tower]:[],...e.tabs.flatMap(e=>e.units),...e.outside]).flatMap(e=>e.subs).filter(e=>e.ended).map(e=>e.key);function Ci(e,t){let n=Si(t).length;e.hidden=!n,n&&(e.textContent=ht({count:n}))}function wi(e,t,n){let r=n.stashed??[],i=JSON.stringify(r);e.hidden=!r.length;let a=t.closest(`[popover]`);!r.length&&a?.matches(`:popover-open`)&&a.hidePopover(),r.length&&(e.textContent=xr({count:r.length})),t.dataset.key!==i&&(t.dataset.key=i,t.replaceChildren(...r.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`],C(r,{close:`pop`,name:e.name},Ln(),Bn({name:e.name})),t.append(n,r),t})))}var Ti=e=>S(async()=>{let{post:e}=await import(`./post-UHMNmNgA.js`).then(e=>e.n);return{post:e}},[],import.meta.url).then(({post:t})=>t(`dismiss`,e)).then(e=>e.ok||(w(e.body.reason??b({status:e.status})),!1),()=>(w(v()),!1));function Ei(e,{route:t,net:n,go:r}){let i=t();if(i.view===`map`)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 Di(e){document.addEventListener(`click`,t=>{let n=t.target?.closest?.(`button[data-close]`),r=n?.dataset;if(n&&r){if(t.preventDefault(),r.close===`dismiss`||r.close===`dismiss-all`)return void Ti(r.close===`dismiss`?{key:r.key}:{all:!0});if(r.close===`pop`)return void(n.toggleAttribute(`disabled`,!0),S(async()=>{let{post:e}=await import(`./post-UHMNmNgA.js`).then(e=>e.n);return{post:e}},[],import.meta.url).then(({post:e})=>e(`close/pop`,{name:r.name})).then(e=>e.ok||w(e.body.reason??b({status:e.status})),()=>w(v())).finally(()=>n.toggleAttribute(`disabled`,!1)));w((r.close===`stash`?vr:r.close===`base`?Ke:r.close===`tab`?Qe:r.role===`tower`?tt:st)({name:r.name??``}),r.close===`stash`?fr():y()).then(t=>{t&&(n.toggleAttribute(`disabled`,!0),S(async()=>{let{post:e}=await import(`./post-UHMNmNgA.js`).then(e=>e.n);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?Ei(r,e):w(t.body.reason??b({status:t.status})),()=>w(v())).finally(()=>n.toggleAttribute(`disabled`,!1)))})}})}var Oi=e=>{try{return decodeURIComponent(e)}catch{return e}},T=e=>/^\.+$/.test(e)?e.replaceAll(`.`,`%2E`):encodeURIComponent(e);function E(e){let[t,n]=e.split(`#`)[0].split(`?`),[r,i,a,o]=t.replace(/^\/+|\/+$/g,``).split(`/`).map(Oi);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 D=e=>e.view===`map`?``:e.view===`workspace`?`w/${T(e.ws)}`:`w/${T(e.ws)}/s/${T(e.key)}${e.at?`?at=${encodeURIComponent(e.at)}`:``}`,ki=e=>e.view===`session`?{view:`workspace`,ws:e.ws}:{view:`map`},O=e=>e.view===`session`?e.key:e.view===`workspace`?`w:${e.ws}`:null,Ai=e=>Math.max(0,e?.depth||0);function ji(e,t=new URL(document.baseURI).pathname){let n=()=>E(location.pathname.slice(t.length)+location.search),r={route:n,href:e=>D(e)||`./`,go(n){let r=t+D(n);location.pathname+location.search!==r&&history.pushState({depth:Ai(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`)&&Ai(history.state)>0?history.back():r.go(E(t.getAttribute(`data-route`))))}),r}var Mi={main:`main`,member:`member`,subagent:`subagent`,outpost:`outpost`,outside:`outside`,tower:`tower`},Ni={commanding:tn,working:cn,waiting:sn,idle:an,done:nn,error:rn,unknown:on},Pi={main:Qn,member:$n,subagent:rr,tower:ir,outpost:er,outside:tr,session:nr},Fi={thinking:Sn,"watching a monitor":xn,idle:an,"waiting on a question":sn,finished:nn},Ii={claude:`Claude`,codex:`Codex`},Li=e=>Object.hasOwn(Pi,e)?Pi[e]():e,Ri=e=>e===`waiting`||e===`error`,k=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)},A=(e,t)=>{let n=document.getElementById(e);if(!(n instanceof t))throw Error(`#${e} is missing from the page`);return n},j=(e,t,n)=>{let r=e.querySelector(t);r.textContent!==n&&(r.textContent=n)},M=(e,t)=>{if(e.dataset.mark===t)return;let n=e.dataset.mark!==void 0;e.dataset.mark=t,n&&oi(e,`flash`)},zi=e=>(t=>(e.slice(8,t)===`stale`?hn:fn)({what:e.slice(t+1)}))(e.indexOf(`:`,8)),N=(e,t)=>e?e.startsWith(`tool:`)?Vr({tool:e.slice(5)}):e.startsWith(`monitor:`)?zi(e):Object.hasOwn(Fi,e)?Fi[e]():e:Ni[t](),Bi=(e,t,n,r,i=N(n,r))=>{j(e,t,i),e.querySelector(t).toggleAttribute(`data-monitoring`,i===N(n,r)&&n===`watching a monitor`)},P=(e,t)=>{e.toggleAttribute(`hidden`,!t),t&&(e.setAttribute(`href`,D(t)||`./`),e.setAttribute(`data-route`,D(t)))},F=(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`},Vi=`<div class="plate"><i class="ring"></i><svg><use href="#i-main"/></svg><b class="badge"></b></div>`;function Hi(e,t,n,r){M(e,n);let i=e.querySelector(`use`),a=`#i-${Mi[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 I(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 Ui=(e,t=Math.max(0,Date.now()-e)/1e3)=>t<60?Ce({n:String(Math.floor(t))}):t<3600?be({n:String(Math.floor(t/60))}):t<86400?_e({n:String(Math.floor(t/3600))}):me({n:String(Math.floor(t/86400))}),Wi=(e,t)=>(t===void 0?delete e.dataset.since:e.dataset.since=String(t),e.textContent=t===void 0?``:Ui(t));function Gi(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 L=()=>k(`<div class="unit"><div class="card"><a class="hit"></a>${Vi}<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 R(e,t){let n=e.closest(`.base`)?.dataset.key,r=e.querySelector(`.hit`);P(r,t.key&&n?{view:`session`,ws:n,key:t.key}:void 0),r.setAttribute(`aria-label`,`${t.name}: ${N(t.note,t.mark)}`),r.toggleAttribute(`data-alert`,Ri(t.mark)),M(e,t.mark),Hi(e.querySelector(`.plate`),t.role,t.mark,t.docs),j(e,`.name`,t.name),j(e,`.role`,Li(t.role)),j(e,`.agent`,t.agent?Ii[t.agent]:``),Bi(e,`.note`,t.note,t.mark),Wi(e.querySelector(`:scope > .card .age`),t.since);let i=e.querySelector(`:scope > .card .todo`);i.hidden=!t.todo,t.todo&&(j(i,`b`,`${t.todo.done<t.todo.total?`◐`:`✓`} ${t.todo.done}/${t.todo.total}`),j(i,`span`,t.todo.now??``)),Gi(e.querySelector(`:scope > .card`),t.ticks),_i(e.querySelector(`:scope > .card > .quit-btn`),t),I(e.querySelector(`.subs`),t.subs??[],L,R)}function Ki(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`?Mn():Nn())&&(e.textContent=r===`main`?Mn():Nn())}var qi=()=>k(`<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"><span class="crown"><svg><use href="#i-crown"/></svg>${bt()}</span><h2><a class="enter-base"></a></h2><p><span class="tstate"></span><span class="age"></span></p><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="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="${Pn()}"></div></section>`);function Ji(e,t){M(e,t.mark),e.classList.toggle(`head`,t.head);let n=e.querySelector(`.tower`);n.classList.toggle(`ghost`,!t.tower),M(n,t.tower?.mark??`unknown`),j(e,`h2 a`,t.label),P(e.querySelector(`h2 a`),{view:`workspace`,ws:t.id}),j(e,`.title .tstate`,t.tower?ut({state:Ni[t.tower.mark]()}):bn()),Wi(e.querySelector(`.title .age`),t.tower?.since),Ki(e.querySelector(`.spawn-btns button`),t),yi(e.querySelector(`header > .quit-btn`),t),bi(e.querySelector(`.spawn-btns [data-close=stash]`),t),vi(e.querySelector(`.tower-quit`),t.tower),I(e.querySelector(`.tower-subs`),t.tower?.subs??[],L,R),I(e.querySelector(`.tabs`),t.tabs,()=>k(`<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>`),(e,n)=>{j(e,`h3 span`,Ar({label:n.label})),xi(e.querySelector(`.quit-btn`),t,n),Ki(e.querySelector(`.tab-add`),t,n.id),I(e.querySelector(`.units`),n.units,L,R)}),I(e.querySelector(`.outposts`),t.outposts.map(e=>({id:e.id,name:e.label,role:`outpost`,mark:e.mark,note:e.mark===`unknown`?vn():void 0,since:e.since,ticks:e.ticks})),L,R)}function Yi(e,t,n,r){let i=[...e.querySelectorAll(`.base:not(.leaving) .tower`)],a=e.querySelector(`.base.head:not(.leaving) .tower`),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.map(e=>{let[[t,n],[r,i]]=[s(a),s(e)];return{x1:t,y1:n,x2:r,y2:i,mid:Math.round((t+r)/2)}}),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(...di(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 Xi=2,Zi=20;function Qi(){let[e,t,n,r]=[A(`map`,HTMLElement),A(`bases`,HTMLElement),A(`links`,SVGSVGElement),A(`packets`,HTMLElement)],i=matchMedia(`(prefers-reduced-motion: reduce)`).matches,a=new Set,o=li(e,t),s=()=>(o(),!e.hidden&&Yi(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+Zi)/Xi)}`),l()));return setInterval(()=>document.querySelectorAll(`.age[data-since]`).forEach(e=>Wi(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`)),ii(),{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);A(`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`)]])A(t,HTMLElement).textContent=r},show(e){I(t,e.bases,qi,Ji);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 $i=new URL(`done-jqKY4qf5.mp3`,import.meta.url).href,ea=new URL(`error-DdTLgPEw.mp3`,import.meta.url).href,ta={waiting:new URL(`waiting-DOg8-8gu.mp3`,import.meta.url).href,error:ea,done:$i},na=e=>e.mark===`waiting`||e.pending?`waiting`:e.mark===`error`?`error`:e.mark===`done`?`done`:void 0,ra=(e,t)=>{try{return localStorage.getItem(e)??t}catch{return t}},ia=(e,t)=>{try{localStorage.setItem(e,t)}catch{}};function aa(e){let t=e=>document.getElementById(e),n=t(`remind`),r=t(`sound`),i=t(`sound-pop`),a=t(`sound-on`),o=t(`sound-vol`),s=t(`sound-vol-out`),c=typeof Notification<`u`,l=ra(`sb.remind`,`1`)===`1`,u=ra(`sb.sound`,`0`)===`1`,d=Math.min(100,Math.max(0,Number(ra(`sb.volume`,`60`))||0)),f,p,m=new Map,h=()=>{let e=c?Notification.permission:`denied`;n.setAttribute(`aria-pressed`,String(l)),n.dataset.state=l?e===`granted`?`on`:e===`denied`?`blocked`:`ask`:`off`,n.title=c?l?e===`granted`?Xn():e===`denied`?Jn():qn():Yn():Zn(),r.dataset.state=u?`on`:`off`,r.setAttribute(`aria-label`,u?cr():sr()),a.checked=u,o.value=s.value=String(d),p&&(p.gain.value=(d/100)**2)};n.textContent=Kn(),r.textContent=or(),r.title=lr(),t(`sound-on-label`).textContent=or(),t(`sound-vol-label`).textContent=dr(),t(`sound-try`).textContent=ur(),n.onclick=async()=>{l&&c&&Notification.permission==="default"?await Notification.requestPermission().catch(()=>{}):ia(`sb.remind`,(l=!l)?`1`:`0`),h()},i.addEventListener(`toggle`,e=>e.newState===`open`&&F(i,r)),a.onchange=()=>{ia(`sb.sound`,(u=a.checked)?`1`:`0`),h(),u&&g(`done`)},o.oninput=()=>(ia(`sb.volume`,String(d=Number(o.value))),h()),o.onchange=()=>g(`done`),t(`sound-try`).onclick=()=>g(`done`);function g(e){f??=new AudioContext,p||((p=f.createGain()).connect(f.destination),h());let t=f,n=p;m.has(e)||m.set(e,fetch(ta[e]).then(e=>e.arrayBuffer()).then(e=>t.decodeAudioData(e))),Promise.all([t.resume(),m.get(e)]).then(([,e])=>{let r=t.createBufferSource();r.buffer=e,r.connect(n),r.start()}).catch(()=>m.delete(e))}return h(),{signal(t){let n=t.flatMap(e=>(t=>t?[{a:e,k:t}]:[])(na(e)));if(n.length&&(u&&g([`waiting`,`error`,`done`].find(e=>n.some(t=>t.k===e))),l&&c&&Notification.permission===`granted`&&(document.hidden||!document.hasFocus())))for(let{a:t,k:r}of n){let n=new Notification(t.name,{body:{waiting:jn,error:On,done:Tn}[r]({note:t.note??``}).trim(),tag:t.key,icon:document.querySelector(`link[rel="icon"]`)?.href,silent:r!==`waiting`});n.onclick=()=>(window.focus(),n.close(),e(t))}}}}var oa=45e3,sa=1e3,ca=3e4,la=(e,t)=>Math.min(ca,sa*2**(e-1))*(.8+.4*t);function ua(e){try{return JSON.parse(e)}catch{return}}function da(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(),oa),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,la(t,e.random())))},d=()=>{c(),s(),i=e.now();let n=t=e.open();n.onError(()=>t===n&&u()),n.listen(`message`,r=>{if(t!==n)return;let i=ua(r);i&&e.onNet(i),o({problem:i?void 0:Vn()}),l()}),n.listen(`ping`,()=>t===n&&l()),n.listen(`problem`,e=>{t===n&&(o({problem:ua(e)??Hn()}),l())}),r=e.setTimeout(()=>u(),oa)};return{start(){o({state:`connecting`,attempt:0}),d()},resume(){let n=e.now()-i<2e3||a.lastContact!==void 0&&e.now()-a.lastContact<=2e4;t&&n||(o({attempt:0,state:a.state===`live`?`reconnecting`:a.state}),d())},restart:d,hide(){e.clearTimeout(n),n=void 0},stop(){c(),s()}}}var fa={commanding:At,working:en,waiting:Zt,idle:zt,done:Nt,error:It,unknown:Jt},pa=e=>(e.kind===`joined`?Ht:e.kind===`left`?Gt:fa[e.mark])({name:e.name}),ma=18e5,ha={waiting:0,error:0,working:1,commanding:1},ga=e=>new Date(e).toLocaleTimeString([],{hour12:!1});function _a(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()-ma,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)/ma*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:${(ha[t.mark]??2)*14+4}px`,n.setAttribute(`aria-label`,`${ga(t.at)} ${pa(t)}`),P(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:ga(e+t*6e4).slice(0,5)})),Object.assign(document.createElement(`span`),{textContent:Pr()})),r.textContent=c?ga(c.at):``,i.textContent=c?pa(c):Nr(),a.textContent=Lr({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())}}}Kr();var z=Qi(),va=_a(document.getElementById(`timeline`)),B=e=>document.getElementById(e),ya=e=>e?new Date(e).toLocaleTimeString([],{hour12:!1}):gn(),ba,V,H,xa={state:`connecting`,attempt:0},U={view:`map`},Sa=!1,Ca,wa=``,W,Ta,G=e=>W?e(W):void Ta?.then(e);function Ea(){Ta??=S(async()=>{let{mountFocus:e}=await import(`./views-jpxln_Is.js`);return{mountFocus:e}},[],import.meta.url).then(({mountFocus:e})=>(W=e({data:Ha,restart:()=>Z.restart(),openTile:Oa,embedTerminal:(e,t,n)=>new Promise(r=>q(i=>r(i.terminal.embed(e,t,n)))),online:()=>xa.state===`live`}),W.show(U,U),V&&W.net(V),W))}var K,Da,q=e=>{if(K)return e(K);Da??=S(async()=>{let{mountPanels:e}=await import(`./layer-8HcnRZuP.js`);return{mountPanels:e}},[],import.meta.url).then(({mountPanels:e})=>K=e({label:e=>V?.bases.find(t=>t.id===e)?.label??e,recent:async e=>(await(Y?Y.data(e).latest():Va(e,`?limit=12`))).items,post:e=>Y&&((t,n)=>Y.data(e).post(t,n)),stream:()=>wa,showTerminal:(e,t)=>(K?.stack.close(),W?.terminal(t),X.go({view:`session`,ws:e,key:t}))})),Da.then(e)},Oa=(e,t)=>q(n=>n.tiles.open(e,t)),J=document.querySelector(`link[rel="icon"]`),ka=J&&decodeURIComponent(J.href.slice(J.href.indexOf(`,`)+1)),Aa=0;function ja(e){let t=e.bases.flatMap(e=>[...e.tower?[e.tower,...e.tower.subs]:[],...[...e.tabs.flatMap(e=>e.units),...e.outside].flatMap(e=>[e,...e.subs])]).filter(e=>e.mark===`waiting`||e.pending).length;if(!J||!ka||t===Aa)return;Aa=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>`;J.href=`data:image/svg+xml,${encodeURIComponent(t?ka.replace(`</svg>`,`${n}</svg>`):ka)}`}var Ma;function Na(e){V=H=e,ja(e);let t=Jr(e,Date.now());if(Ma&&Wa.signal(Yr(Ma,t)),Ma=t,document.hidden)return;z.stats(e),Ci(B(`dismiss-all`),e),wi(B(`stashed`),B(`stashed-list`),e),Q?.net(e);let n=Yr(Ca,t);(n.length||K)&&q(e=>e.alerts(n,t)),Ca=t,va.net(e),G(t=>t.net(e)),U.view===`map`&&(z.show(e),ba=e,H=void 0)}function Pa(e){let t=U,n=e.view===`workspace`&&t.view===`map`?document.querySelector(`#bases [data-key="${CSS.escape(e.ws)}"]`)?.getBoundingClientRect():void 0;U=e,Q?.route(e),e.view!==`map`&&Ea(),B(`map`).hidden=e.view!==`map`,B(`legend`).hidden=e.view===`session`,B(`stage`).dataset.view=e.view,G(r=>r.show(e,t,n)),e.view===`map`&&V&&V!==ba&&(Na(V),requestAnimationFrame(z.layout)),Sa&&O(e)!==O(t)&&Z.restart()}function Fa(e){xa=e;let t=e.state===`reconnecting`||e.state===`offline`;document.body.dataset.stale=B(`stage`).dataset.stale=String(t),B(`link`).dataset.state=e.state,B(`link-text`).textContent={connecting:St,live:Ct,reconnecting:Tt,offline:wt}[e.state](),W&&V&&W.net(V),K?.stack.redraw();let n=B(`banner`);n.hidden=!t&&!e.problem;let r=e.state===`offline`?Ae({tries:e.attempt-1}):e.state===`reconnecting`?e.attempt?Le({attempt:e.attempt}):Pe():Ne({problem:e.problem??``}),i=document.createElement(`b`);i.textContent=ya(e.lastContact),n.replaceChildren(`${r} ${De()} `,i,Ee())}function Ia(e,t){try{let n=JSON.parse(t);G(t=>e===`history`?t.history(n):t.cards(n))}catch{}}var La=document.querySelector(`meta[name="sb-build"]`)?.content,Ra=e=>!!(La&&La!==JSON.parse(e).build);function za(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 Ba=e=>fetch(`api/${e}`,{cache:`no-store`}).then(e=>e.ok?e.json():Promise.reject(Error(String(e.status)))),Va=(e,t=``)=>Ba(`history/${encodeURIComponent(e)}${t}`),Y=void 0,Ha=e=>({older:t=>Va(e,`?before=${encodeURIComponent(t)}`),latest:()=>Va(e),entry:t=>Ba(`entry/${encodeURIComponent(e)}/${encodeURIComponent(t)}`).catch(()=>void 0),pic:(t,n)=>`api/image/${encodeURIComponent(e)}/${encodeURIComponent(t)}/${n}`}),Ua=()=>{let e=za(O(U));return e.listen(`history`,e=>Ia(`history`,e)),e.listen(`cards`,e=>Ia(`cards`,e)),e.listen(`hello`,e=>Ra(e)?location.reload():(wa=e,K?.terminal.hello())),e.listen(`mirror`,e=>K?.terminal.frame(e)),e};document.addEventListener(`click`,e=>{let t=e.target?.closest?.(`a[data-alert]`),n=t&&E(t.getAttribute(`data-route`)??``);if(!n||n.view!==`session`||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let r=Ca?.get(n.key);r&&(e.preventDefault(),q(e=>e.stack.show(r)))},!0);var X=ji(e=>Pa(e)),Wa=aa(e=>X.go({view:`session`,ws:e.ws,key:qr(e)})),Z=da({open:Ua,now:Date.now,setTimeout:(e,t)=>window.setTimeout(e,t),clearTimeout:e=>window.clearTimeout(e),random:Math.random,hidden:()=>document.hidden,onNet:Na,onStatus:Fa}),Ga=()=>Z.resume();document.addEventListener(`visibilitychange`,()=>{if(z.pause(document.hidden),document.hidden)return Z.hide();H&&Na(H),G(e=>e.wake()),Ga()}),addEventListener(`keydown`,e=>{e.key!==`Escape`||e.defaultPrevented||document.querySelector(`dialog.sheet[open], dialog.lightbox[open], [popover]:popover-open`)||(e.preventDefault(),!K?.stack.close()&&U.view!==`map`&&X.go(ki(U)))}),ti(e=>K?.hotkey(e)??!1),B(`pair`).hidden=location.hostname!==`127.0.0.1`,B(`pair`).addEventListener(`click`,()=>void S(async()=>{let{pairTile:e}=await import(`./pair-C6UGzV_a.js`);return{pairTile:e}},[],import.meta.url).then(({pairTile:e})=>Oa(e(),!0)));var Q,$=matchMedia(`(pointer: coarse), (max-width: 640px)`),Ka=()=>void S(async()=>{let{mountDrawer:e}=await import(`./drawer-DLzgD0cJ.js`);return{mountDrawer:e}},[],import.meta.url).then(({mountDrawer:e})=>(Q??=e(),V&&Q.net(V),Q.route(U)));$.matches?Ka():$.addEventListener(`change`,()=>$.matches&&!Q&&Ka(),{once:!0}),Di({route:()=>U,net:()=>V,go:e=>X.go(e)}),B(`stashed-pop`).addEventListener(`toggle`,e=>e.newState===`open`&&F(B(`stashed-pop`),B(`stashed`))),B(`prefs-pop`).addEventListener(`toggle`,e=>e.newState===`open`&&F(B(`prefs-pop`),B(`prefs`))),document.addEventListener(`click`,e=>{let t=e.target?.closest?.(`button[data-open]`);t&&S(async()=>{let{openingOf:e,spawnTile:t}=await import(`./spawn-4LBbzdOw.js`);return{openingOf:e,spawnTile:t}},[],import.meta.url).then(({openingOf:e,spawnTile:n})=>{let r=e(t,V?.bases??[]);r&&Oa(n(r,(e,t,n)=>(K?.tiles.close(n),X.go({view:`session`,ws:e,key:t}))),!0)})});for(let e of[`focus`,`pageshow`,`online`])window.addEventListener(e,()=>!document.hidden&&Ga());Fa(xa),Pa(X.route()),Z.start(),Sa=!0;export{Pn as A,ze as B,$r as C,Er as D,Ar as E,gn as F,s as H,bt as I,yt as L,v as M,yn as N,Tr as O,vn as P,ut as R,oi as S,qr as T,Te as V,Ri as _,P as a,si as b,N as c,k as d,M as f,j as g,I as h,Vi as i,bn as j,b as k,Hi as l,Bi as m,Mi as n,Ki as o,Li as p,Ni as r,A as s,Ii as t,F as u,Ti as v,x as w,ai as x,S as y,Be as z};