sliccy 6.248.3 → 6.248.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ui/.vite/manifest.json +229 -204
- package/dist/ui/assets/{account-store-mjceqynz.js → account-store-CoiNHIE9.js} +1 -1
- package/dist/ui/assets/{account-store-DvMtuAxT.js → account-store-EUAU8ivx.js} +1 -1
- package/dist/ui/assets/{adobe-BwMu78zI.js → adobe-Cnyzs0z9.js} +1 -1
- package/dist/ui/assets/{adobe-BR5kagG4.js → adobe-bJrGAM6E.js} +1 -1
- package/dist/ui/assets/{agent-panels-CqdhYmst.js → agent-panels-DxCO1Hct.js} +1 -1
- package/dist/ui/assets/{almost-bash-shell-headless-Bapmhu3C.js → almost-bash-shell-headless-BMKZNLwu.js} +12 -12
- package/dist/ui/assets/{apply-layout-e_T1KE6y.js → apply-layout-BjLmZ8CX.js} +1 -1
- package/dist/ui/assets/{azure-openai-g4Xv5E--.js → azure-openai-C5kzBBrl.js} +1 -1
- package/dist/ui/assets/{azure-openai-BN148pwc.js → azure-openai-CgL7nikU.js} +1 -1
- package/dist/ui/assets/{cdp-BY2Mm1l_.js → cdp-DU50qKlQ.js} +1 -1
- package/dist/ui/assets/{cerebras-DFBA9Br9.js → cerebras-C4IlgrId.js} +1 -1
- package/dist/ui/assets/{cerebras-BxdukTUc.js → cerebras-Exx59PmI.js} +1 -1
- package/dist/ui/assets/{composer-speech--hKCVvOJ.js → composer-speech-CtvE78Rx.js} +1 -1
- package/dist/ui/assets/{connect-surface-BT8a8Ghs.js → connect-surface-Bvi30iYd.js} +1 -1
- package/dist/ui/assets/{directed-approval-DCBFB0cJ.js → directed-approval-CQVXF9kD.js} +1 -1
- package/dist/ui/assets/dist-CegW-G1M.js +1 -0
- package/dist/ui/assets/dist-kcvXs5tL.js +5 -0
- package/dist/ui/assets/{emscripten-vfs-hook-Dh5V1kuy.js → emscripten-vfs-hook-G9JRg26r.js} +1 -1
- package/dist/ui/assets/{frozen-archive-writer-AZqZX0be.js → frozen-archive-writer-DV7A8nNw.js} +1 -1
- package/dist/ui/assets/{frozen-archive-writer-D8Na80jS.js → frozen-archive-writer-DV8CfTGq.js} +1 -1
- package/dist/ui/assets/{frozen-session-delete-DgFaw8dO.js → frozen-session-delete-KNFPPuJe.js} +1 -1
- package/dist/ui/assets/{frozen-session-identity-V1cg6Y8X.js → frozen-session-identity-B46HFhaz.js} +1 -1
- package/dist/ui/assets/{frozen-session-identity-bvyrPA_v.js → frozen-session-identity-CF594WMJ.js} +1 -1
- package/dist/ui/assets/{gelatiere-unit-Cb4ufYMy.js → gelatiere-unit-BnExmaTM.js} +1 -1
- package/dist/ui/assets/{ghostty-vt-BeUP0ymd.wasm → ghostty-vt--DTGF19l.wasm} +0 -0
- package/dist/ui/assets/{github-D6ABE0-R.js → github-BrjjZAsX.js} +1 -1
- package/dist/ui/assets/{github-MjQRJghz.js → github-C6Rd03wJ.js} +1 -1
- package/dist/ui/assets/{github-copilot-DzbXKZtj.js → github-copilot-DqpGzQw_.js} +1 -1
- package/dist/ui/assets/{github-copilot-D6lNv_9-.js → github-copilot-_OyzohK5.js} +1 -1
- package/dist/ui/assets/{hear-AGuOYMWS.js → hear-BN5luL3S.js} +1 -1
- package/dist/ui/assets/{js-realm-worker-ChQxP0KX.js → js-realm-worker-DUoX2h5j.js} +2 -2
- package/dist/ui/assets/{jsh-executor-75tLym35.js → jsh-executor-B_ddQzto.js} +2 -2
- package/dist/ui/assets/{kernel-worker-BnbHshZp.js → kernel-worker-MybuXyBd.js} +8 -8
- package/dist/ui/assets/{lick-ws-bridge-6FEM7X9M.js → lick-ws-bridge-CPjy5dPn.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-BPZTVU5Z.js → lick-ws-bridge-DEmDlxVR.js} +1 -1
- package/dist/ui/assets/{live-session-curation-BM7-y_ky.js → live-session-curation-C9AY4psl.js} +1 -1
- package/dist/ui/assets/{live-session-curation-Kj71P6dK.js → live-session-curation-ChkffqSA.js} +1 -1
- package/dist/ui/assets/{live-session-snapshot-DywJwCkI.js → live-session-snapshot-DwWIWtG9.js} +1 -1
- package/dist/ui/assets/{local-llm-_Vv5kgAi.js → local-llm-B-KVBQuy.js} +1 -1
- package/dist/ui/assets/{local-llm-CWvkEx1Y.js → local-llm-BI7bYfoc.js} +1 -1
- package/dist/ui/assets/{main-cherry-C242PEw0.js → main-cherry-CQgQpSib.js} +1 -1
- package/dist/ui/assets/{main-CraGyWI5.js → main-pp1LzVcX.js} +3 -3
- package/dist/ui/assets/{mcp-command-BabmvfAi.js → mcp-command-B779bOTK.js} +10 -10
- package/dist/ui/assets/{memory-curation-seam-ETLJrcCv.js → memory-curation-seam-ByPo8cGi.js} +1 -1
- package/dist/ui/assets/{memory-health-DS1GE6Db.js → memory-health-DcxlUrXc.js} +1 -1
- package/dist/ui/assets/{memory-write-execute-gi5xCQnL.js → memory-write-execute-CKI-9ZAP.js} +1 -1
- package/dist/ui/assets/{merge-folded-cost-into-frozen-B6zMyDMc.js → merge-folded-cost-into-frozen-DIYTak4p.js} +1 -1
- package/dist/ui/assets/{new-session-ERMxClkz.js → new-session-g_r_qcmc.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-bG8L_Eoa.js → oauth-bootstrap-DreVl6g7.js} +2 -2
- package/dist/ui/assets/{onboarding-orchestrator-DHS8hPJJ.js → onboarding-orchestrator-C2EOhp34.js} +1 -1
- package/dist/ui/assets/{openai-codex-DKIssXwD.js → openai-codex-B8pw-NWl.js} +1 -1
- package/dist/ui/assets/{openai-codex-CGrqWES0.js → openai-codex-C4Tm1S2D.js} +1 -1
- package/dist/ui/assets/{openrouter-ZVV6FVqk.js → openrouter-B0EqwIn3.js} +1 -1
- package/dist/ui/assets/{openrouter-si1rvDmH.js → openrouter-CzQ8Mfh0.js} +1 -1
- package/dist/ui/assets/{openrouter-free-BL-82nwO.js → openrouter-free-Cl4RHvyD.js} +1 -1
- package/dist/ui/assets/{openrouter-free-TVKDr4Ci.js → openrouter-free-CpKJupv_.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-Do5xCmz5.js → openrouter-oauth-0yFjXvrc.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-C0BSjkp9.js → openrouter-oauth-BRahdbZ4.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-DoEdFmZH.js → panel-rpc-handlers-GkEWjrsh.js} +2 -2
- package/dist/ui/assets/{panelize-shell-BbOMOerL.js → panelize-shell-CtMH6CGD.js} +1 -1
- package/dist/ui/assets/{pi-edit-execution-sHOLEMOO.js → pi-edit-execution-ru_RSE31.js} +1 -1
- package/dist/ui/assets/{provider-BNzD2VCf.js → provider-Dm5ZNpu9.js} +1 -1
- package/dist/ui/assets/{provider-DTbC8IiQ.js → provider-qOOj0Bx4.js} +1 -1
- package/dist/ui/assets/{provider-settings-Hf5Vr2vr.js → provider-settings-Dts8qnq0.js} +1 -1
- package/dist/ui/assets/provider-store-access-C_mdEz_o.js +1 -0
- package/dist/ui/assets/provider-store-access-TfpqgcQb.js +1 -0
- package/dist/ui/assets/{providers-CH0N1Hn6.js → providers-CEBpTOtO.js} +2 -2
- package/dist/ui/assets/{providers-DXT44kfO.js → providers-IksVbHjy.js} +1 -1
- package/dist/ui/assets/{quick-llm-95xYFP4C.js → quick-llm-BKYqGAke.js} +1 -1
- package/dist/ui/assets/{realm-inprocess-BJztShpA.js → realm-inprocess-ZgBNrBFy.js} +2 -2
- package/dist/ui/assets/{realm-unhandled-rejections-DLGlX1JV.js → realm-unhandled-rejections-Dlau5E21.js} +1 -1
- package/dist/ui/assets/{realm-unhandled-rejections-VCxk3AmS.js → realm-unhandled-rejections-VXmx0XIB.js} +1 -1
- package/dist/ui/assets/{recovery-screen-C4ccpr6-.js → recovery-screen-NNWQWNqn.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-CbmgWziL.js → remote-terminal-view-oOTCkn_X.js} +2 -2
- package/dist/ui/assets/{restore-D14e8jg_.js → restore-zlhvIM6j.js} +1 -1
- package/dist/ui/assets/{run-CAghXwX-.js → run-BGO-UaQS.js} +1 -1
- package/dist/ui/assets/{run-Dt6bu0ib.js → run-BY-WnPWq.js} +2 -2
- package/dist/ui/assets/{run-BNk3oV9Y.js → run-DD-Zc-AI.js} +2 -2
- package/dist/ui/assets/{run-CctUty19.js → run-DfaMtqBW.js} +1 -1
- package/dist/ui/assets/{serve-command-CwZwH2sF.js → serve-command-Bkb8RYZg.js} +2 -2
- package/dist/ui/assets/{serve-runtime-CUY8Qryz.js → serve-runtime-BWUwkiqv.js} +1 -1
- package/dist/ui/assets/{session-command-memory-NpuNEURz.js → session-command-memory-nKG4sb28.js} +2 -2
- package/dist/ui/assets/{session-jsonl-D4p25wJo.js → session-jsonl-B5phOLgv.js} +1 -1
- package/dist/ui/assets/{session-jsonl-2Dg1Jgyg.js → session-jsonl-Ca8gi9Dg.js} +1 -1
- package/dist/ui/assets/{session-search-index-BjKWodVu.js → session-search-index-tweAFlvW.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-CjVU1qOg.js → setup-feature-flags-remote-Bnrz-kqW.js} +1 -1
- package/dist/ui/assets/{setup-model-catalog-BdD735K3.js → setup-model-catalog-DPoX_vRY.js} +1 -1
- package/dist/ui/assets/{silent-renew-backoff-C5-VfSnD.js → silent-renew-backoff-CMGVLIXZ.js} +1 -1
- package/dist/ui/assets/slicc-version-D9VMviCR.js +1 -0
- package/dist/ui/assets/{soundscape-CQ9qZd-p.js → soundscape-DtFo8gPx.js} +1 -1
- package/dist/ui/assets/{speak-CSIK-Yvk.js → speak-BNqo53H8.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-Cn-J2bbA.js → sprinkle-manager-KZBan5ot.js} +1 -1
- package/dist/ui/assets/{sprinkle-renderer-BUkonV7E.js → sprinkle-renderer-GOx0t_KB.js} +1 -1
- package/dist/ui/assets/{sudo-EZzi8bkV.js → sudo-CfhS3XDc.js} +1 -1
- package/dist/ui/assets/{supervisor-CUgH4wzz.js → supervisor-DXke_KPH.js} +1 -1
- package/dist/ui/assets/{sync-dialog-D4gXHIgq.js → sync-dialog-B4XIyWlR.js} +1 -1
- package/dist/ui/assets/{transformers-env-Dm_MXKYG.js → transformers-env-C6_kFf6e.js} +1 -1
- package/dist/ui/assets/{tray-leader-BUSNq_Gl.js → tray-leader-CrSh1Fel.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-DEwFa7lI.js → tray-leave-runtime-wJkN1AA0.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-CKjdtBdU.js → tray-sidecar-DlOOGPQH.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-DZ35XKwJ.js → upgrade-detection-Ct24ndl7.js} +1 -1
- package/dist/ui/assets/{voice-reply-CaYhBRdn.js → voice-reply-CxXL_kEA.js} +1 -1
- package/dist/ui/assets/warm-wterm-DQwmz7G4.js +1 -0
- package/dist/ui/assets/wasm-inline-DSUyFn1L.js +1 -0
- package/dist/ui/assets/{wc-attach-C9rxulO7.js → wc-attach-Cmjdm23i.js} +2 -2
- package/dist/ui/assets/{wc-browser-6Ul-SEOZ.js → wc-browser-SUzkjJTA.js} +1 -1
- package/dist/ui/assets/{wc-computers-sDur6b13.js → wc-computers-BrBtwbOb.js} +1 -1
- package/dist/ui/assets/{wc-detached-9ariBwmo.js → wc-detached-cVeDn3rP.js} +1 -1
- package/dist/ui/assets/{wc-extension-CaXN-GTk.js → wc-extension-VohpgpQG.js} +2 -2
- package/dist/ui/assets/{wc-follower-B1AULTlR.js → wc-follower-BfOmPsV0.js} +3 -3
- package/dist/ui/assets/{wc-follower-oauth-L5HBJRH7.js → wc-follower-oauth-Br9RPRQJ.js} +1 -1
- package/dist/ui/assets/{wc-gelatiere-CWTa_Fw1.js → wc-gelatiere-WQR5AxZ9.js} +1 -1
- package/dist/ui/assets/{wc-live-CBQLeEAN.js → wc-live-Bj38qUgj.js} +5 -5
- package/dist/ui/assets/{wc-nav-D-qT15R2.js → wc-nav-BHy21Jl4.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-C30JW8KM.js → wc-onboarding-DooXTaWX.js} +2 -2
- package/dist/ui/assets/{wc-permissions-Do9-WSJc.js → wc-permissions-CUtqnNV2.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-B67JnHl5.js → wc-placeholder-Ca_dzZDr.js} +3 -3
- package/dist/ui/assets/{wc-secret-request-BaJdvYlQ.js → wc-secret-request-CxHPy2MF.js} +1 -1
- package/dist/ui/assets/{wc-settings-D8XLxkCT.js → wc-settings-Bf68mx0s.js} +3 -3
- package/dist/ui/assets/{wc-shell-BOiMEPvK.js → wc-shell-C0Y0f1tt.js} +234 -20
- package/dist/ui/assets/{wc-shortcut-config-B9YZlZ95.js → wc-shortcut-config-CkCG_Ehd.js} +1 -1
- package/dist/ui/assets/{wc-sprinkles-PlC39bUS.js → wc-sprinkles-BlFVp_Zu.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-BLI_0Glp.js → wc-transcript-export-DWFK7w_9.js} +2 -2
- package/dist/ui/assets/{wc-tray-DWLWOtPX.js → wc-tray-BU_mkrQK.js} +4 -4
- package/dist/ui/assets/welcome-detection-3uAUZPVw.js +1 -0
- package/dist/ui/assets/{whisper-session-CoIpux2Q.js → whisper-session-7VWAVhAF.js} +2 -2
- package/dist/ui/assets/{xai-grok-B5uojC5R.js → xai-grok-6WPJsfyI.js} +1 -1
- package/dist/ui/assets/{xai-grok-Xb6FZ1vE.js → xai-grok-Cl-8KspF.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/ui/packages/webapp/index.html +3 -3
- package/package.json +1 -1
- package/dist/ui/assets/dist-CaUJj_g5.js +0 -1
- package/dist/ui/assets/dist-DBSQLDw2.js +0 -1
- package/dist/ui/assets/provider-store-access-BiWdVR9d.js +0 -1
- package/dist/ui/assets/provider-store-access-D3dRz2B4.js +0 -1
- package/dist/ui/assets/slicc-version-Cf9JtZVj.js +0 -1
- package/dist/ui/assets/welcome-detection-BXOFjfMt.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./logger-DDBAeTLF.js";import"./navigation-watcher-CPcnZL9l.js";import"./wc-follower-oauth-L5HBJRH7.js";import{d as t,l as n,u as r}from"./main-CraGyWI5.js";import{n as i,t as a}from"./pending-request-table-k-D7ZZsL.js";var o=e(`cdp`);function s(e){return e===4001?`CDP connection superseded by another SLICC tab/window on this instance`:e===4002?`CDP connection reset by proxy (upstream Chrome connection was re-established)`:`CDP connection closed`}var c=class{ws=null;nextId=1;_superseded=!1;pending=new a;listeners=new Map;_state=`disconnected`;stateListeners=new Set;lastNotifiedState=`disconnected`;lastNotifiedReason;get state(){return this._state}onStateChange(e){return this.stateListeners.add(e),()=>{this.stateListeners.delete(e)}}get superseded(){return this._superseded}async connect(e){if(this._state!==`disconnected`)throw Error(`Cannot connect: state is ${this._state}`);if(!e?.url)throw Error(`CDPClient.connect() requires a WebSocket URL`);let{url:t,timeout:n=5e3,protocols:r}=e;return this._state=`connecting`,new Promise((e,i)=>{let a=setTimeout(()=>{this.cleanup(),i(Error(`CDP connection timed out after ${n}ms`))},n);try{this.ws=r===void 0?new WebSocket(t):new WebSocket(t,r)}catch(e){clearTimeout(a),this._state=`disconnected`,i(e);return}this.ws.onopen=()=>{clearTimeout(a),this._state=`connected`,this._superseded=!1,o.info(`Connected`,{url:t}),this.notifyState(`connected`),e()},this.ws.onerror=e=>{clearTimeout(a),this._state===`connecting`&&(o.error(`Connection failed`,{url:t}),this.cleanup(),i(Error(`CDP WebSocket connection failed`)))},this.ws.onmessage=e=>{this.handleMessage(e.data)},this.ws.onclose=e=>{this.handleClose(e?.code)}})}disconnect(){this.ws&&(this.ws.onclose=null,this.ws.close()),this._superseded=!1,this.cleanup(),o.info(`Disconnected`)}async send(e,t,n,r=3e4){if(this._state!==`connected`||!this.ws)throw Error(`CDP client is not connected`);let i=this.nextId++,a={id:i,method:e};t&&(a.params=t),n&&(a.sessionId=n),o.debug(`Send`,{method:e,id:i,sessionId:n});let s=this.pending.issue(i,r,`CDP command timed out after ${r}ms: ${e}`);return this.ws.send(JSON.stringify(a)),s}on(e,t){let n=this.listeners.get(e);n||(n=new Set,this.listeners.set(e,n)),n.add(t)}off(e,t){let n=this.listeners.get(e);n&&(n.delete(t),n.size===0&&this.listeners.delete(e))}once(e,t=3e4){return i(t=>(this.on(e,t),()=>this.off(e,t)),t,`Timed out waiting for event: ${e}`)}handleMessage(e){let t;try{t=JSON.parse(e)}catch{return}if(`id`in t&&typeof t.id==`number`){let e=t;o.debug(`Response`,{id:e.id,hasError:!!e.error}),e.error?(o.error(`Command error`,{id:e.id,code:e.error.code,message:e.error.message}),this.pending.reject(e.id,Error(`CDP error: ${e.error.message} (${e.error.code})`))):this.pending.resolve(e.id,e.result??{});return}if(`method`in t){let e=t;o.debug(`Event`,{method:e.method,sessionId:e.sessionId});let n=this.listeners.get(e.method);if(n){let t=e.sessionId?{...e.params,sessionId:e.sessionId}:e.params??{};for(let e of n)try{e(t)}catch{}}}}handleClose(e){e===4001?(this._superseded=!0,o.warn(`CDP slot superseded by another SLICC tab/window on this instance`,{code:e})):e===4002?o.warn(`CDP proxy reset its upstream Chrome connection — sessions dropped`,{code:e,pendingCommands:this.pending.size}):o.error(`Connection closed unexpectedly`,{pendingCommands:this.pending.size}),this.cleanup(s(e))}cleanup(e=`CDP client disconnected`){this.ws=null,this._state=`disconnected`,this.pending.rejectAll(e),this.notifyState(`disconnected`,e)}notifyState(e,t){if(e!==this.lastNotifiedState||t!==this.lastNotifiedReason){this.lastNotifiedState=e,this.lastNotifiedReason=t;for(let n of this.stateListeners)try{n(e,t)}catch{}}}},l=`ws://localhost:5710/cdp`;function u(e=typeof window<`u`?window.location:null){return e?.host?`${e.protocol===`https:`?`wss:`:`ws:`}//${e.host}/cdp`:l}var d=class{lastConnectOptions=null;supersededHandler=null;supersededNotified=!1;reconnectAttempt=0;reconnectNotBefore=0;bridgeRejection=null;bridgeRejectedHandler=null;bridgeRejectedNotified=!1;classifyConnectFailure=async()=>`transient`;primeConnectOptions(e){this.lastConnectOptions=e?{...e}:{}}setSupersededHandler(e){this.supersededHandler=e}setBridgeRejectedHandler(e){this.bridgeRejectedHandler=e}setConnectFailureClassifier(e){this.classifyConnectFailure=e}async connect(e,t){if(this.bridgeRejection)throw this.notifyBridgeRejected(),new n(this.bridgeRejection);this.lastConnectOptions=t?{...t}:{};try{await e.connect({url:t?.url??u(),timeout:t?.timeout,...t?.protocols===void 0?{}:{protocols:t.protocols}})}catch(e){throw await this.noteReconnectFailure(t),this.bridgeRejection?new n(this.bridgeRejection):e}this.noteReconnectSuccess()}async ensureLocalConnected(e){if(e.superseded===!0){this.notifySuperseded();return}if(e.state===`disconnected`){this.throwIfReconnectPaused();let t=this.lastConnectOptions;try{await e.connect({url:t?.url??u(),...t?.timeout===void 0?{}:{timeout:t.timeout},...t?.protocols===void 0?{}:{protocols:t.protocols}})}catch(e){throw await this.noteReconnectFailure(t??void 0),this.bridgeRejection?new n(this.bridgeRejection):e}this.noteReconnectSuccess()}}async ensureConnected(e){if(e.client.superseded===!0){this.notifySuperseded();return}if(e.client.state===`disconnected`){this.throwIfReconnectPaused();let t=e.client;e.restoreLocalAfterRemoteDrop(),e.clearSessionsForTransport(t),e.getClient().state===`disconnected`&&await this.connect(e.getClient(),this.lastConnectOptions??void 0)}}throwIfReconnectPaused(){if(this.bridgeRejection)throw this.notifyBridgeRejected(),new n(this.bridgeRejection);if(Date.now()<this.reconnectNotBefore)throw new r}noteReconnectSuccess(){this.reconnectAttempt=0,this.reconnectNotBefore=0,this.supersededNotified=!1}async noteReconnectFailure(e){if(await this.classifyConnectFailure({url:e?.url??``,...e?.protocols===void 0?{}:{protocols:e.protocols}})===`terminal`){this.bridgeRejection=new n().message,this.notifyBridgeRejected();return}let r=t(this.reconnectAttempt);this.reconnectAttempt+=1,this.reconnectNotBefore=Date.now()+r}notifyBridgeRejected(){if(!this.bridgeRejectedNotified){this.bridgeRejectedNotified=!0;try{this.bridgeRejectedHandler?.()}catch{}}}notifySuperseded(){if(!this.supersededNotified){this.supersededNotified=!0;try{this.supersededHandler?.()}catch{}}}},f=class extends Error{step;name=`CommandAbortedError`;constructor(e){super(`Browser command aborted while ${e}. A CDP round trip already in flight cannot be cancelled, so it may still have been applied to the page; nothing after it was started.`),this.step=e}};function p(e,t){if(e?.aborted)throw new f(t)}function m(e,t){return e?{signal:e,error:()=>new f(t)}:void 0}function h(e,t,n){return new Promise((r,i)=>{if(t?.aborted){i(new f(n));return}let a=()=>{clearTimeout(o),i(new f(n))},o=setTimeout(()=>{t?.removeEventListener(`abort`,a),r()},e);t?.addEventListener(`abort`,a,{once:!0})})}function ee(e,t,n){return t?t.aborted?Promise.reject(new f(n)):new Promise((r,i)=>{let a=()=>i(new f(n));t.addEventListener(`abort`,a,{once:!0}),e.then(()=>{t.removeEventListener(`abort`,a),r()},e=>{t.removeEventListener(`abort`,a),i(e instanceof Error?e:Error(String(e)))})}):e}var g=class{contexts=new Map;for(e,t){let n=`${t}:${e}`,r=this.contexts.get(n);return r||(r=new Map,this.contexts.set(n,r)),r}peek(e,t){return this.contexts.get(`${t}:${e}`)}drop(e){this.contexts.delete(`main:${e}`),this.contexts.delete(`isolated:${e}`)}get size(){return this.contexts.size}},_=e(`har-recorder`),v=class{recordings=new Map;client;fs;eventCleanup=new Map;constructor(e,t){this.client=e,this.fs=t}async startRecording(e,t,n,r){let i=`rec-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;p(r,`about to enable Network on tab ${e}`),await this.client.send(`Network.enable`,{},t),p(r,`about to enable Page on tab ${e}`),await this.client.send(`Page.enable`,{},t),p(r,`about to read the URL of tab ${e}`);let a=(await this.client.send(`Runtime.evaluate`,{expression:`location.href`,returnByValue:!0},t)).result?.value??`about:blank`,o={id:i,targetId:e,sessionId:t,filterCode:n,pendingRequests:new Map,entries:[],startTime:Date.now(),currentUrl:a,snapshotCount:0};return this.recordings.set(i,o),this.setupEventListeners(o),await this.ensureDir(`/recordings/${i}`),_.debug(`Started recording`,{recordingId:i,targetId:e,currentUrl:a}),i}setupEventListeners(e){let{sessionId:t,id:n}=e,r=n=>{let r=n;r.sessionId===t&&this.handleRequestWillBeSent(e,r)},i=n=>{let r=n;r.sessionId===t&&this.handleResponseReceived(e,r)},a=r=>{let i=r;i.sessionId===t&&this.handleLoadingFinished(e,i).catch(e=>{_.error(`Failed to process loadingFinished event`,{recordingId:n,requestId:i.requestId,error:e instanceof Error?e.message:String(e)})})},o=n=>{let r=n;r.sessionId===t&&this.handleLoadingFailed(e,r)},s=r=>{let i=r;if(i.sessionId!==t)return;let a=i.frame;if(!a?.parentId&&a?.url){let t=[...e.entries],r=e.currentUrl;e.currentUrl=a.url,e.entries=[],e.pendingRequests.clear(),this.saveSnapshotWithEntries(e,`navigation`,t,r).catch(e=>{_.error(`Failed to save navigation snapshot`,{recordingId:n,error:e instanceof Error?e.message:String(e)})})}};this.client.on(`Network.requestWillBeSent`,r),this.client.on(`Network.responseReceived`,i),this.client.on(`Network.loadingFinished`,a),this.client.on(`Network.loadingFailed`,o),this.client.on(`Page.frameNavigated`,s),this.eventCleanup.set(n,()=>{this.client.off(`Network.requestWillBeSent`,r),this.client.off(`Network.responseReceived`,i),this.client.off(`Network.loadingFinished`,a),this.client.off(`Network.loadingFailed`,o),this.client.off(`Page.frameNavigated`,s)})}handleRequestWillBeSent(e,t){let{requestId:n,request:r,timestamp:i}=t;!n||!r||i==null||e.pendingRequests.set(n,{requestId:n,startTime:i*1e3,request:{method:r.method,url:r.url,headers:r.headers,postData:r.postData}})}handleResponseReceived(e,t){let{requestId:n,response:r}=t;if(!n||!r)return;let i=e.pendingRequests.get(n);i&&(i.response={status:r.status,statusText:r.statusText,headers:r.headers,mimeType:r.mimeType},i.timing=r.timing)}async handleLoadingFinished(e,t){let{requestId:n,timestamp:r}=t;if(!n||r==null)return;let i=e.pendingRequests.get(n);if(!i)return;i.endTime=r*1e3;try{let t=await this.client.send(`Network.getResponseBody`,{requestId:n},e.sessionId);i.responseBody=t.body,i.responseBodyBase64=t.base64Encoded===!0}catch{}let a=this.buildHarEntry(i);a&&e.entries.push(a),e.pendingRequests.delete(n)}handleLoadingFailed(e,t){let{requestId:n}=t;n&&e.pendingRequests.delete(n)}buildHarEntry(e){if(!e.response)return null;let{request:t,response:n,timing:r,startTime:i,endTime:a,responseBody:o,responseBodyBase64:s}=e,c=a?a-i:0,l=[];try{let e=new URL(t.url);l=Array.from(e.searchParams.entries()).map(([e,t])=>({name:e,value:t}))}catch{}let u=r?(()=>{let e=(e,t)=>{if(e==null||t==null||e<0||t<0)return-1;let n=t-e;return n>=0?n:-1},t=r.dnsStart>=0?r.dnsStart:r.connectStart>=0?r.connectStart:0;return{blocked:t>0?t:-1,dns:e(r.dnsStart,r.dnsEnd),connect:e(r.connectStart,r.connectEnd),ssl:e(r.sslStart,r.sslEnd),send:e(r.sendStart,r.sendEnd),wait:e(r.sendEnd,r.receiveHeadersStart),receive:e(r.receiveHeadersStart,r.receiveHeadersEnd)}})():{blocked:-1,dns:-1,connect:-1,ssl:-1,send:0,wait:c,receive:0},d={size:o?.length??0,mimeType:n.mimeType??`application/octet-stream`};o&&(d.text=o,s&&(d.encoding=`base64`));let f;return t.postData&&(f={mimeType:t.headers[`content-type`]??t.headers[`Content-Type`]??`text/plain`,text:t.postData}),{startedDateTime:new Date(i).toISOString(),time:c,request:{method:t.method,url:t.url,httpVersion:`HTTP/1.1`,cookies:[],headers:Object.entries(t.headers).map(([e,t])=>({name:e,value:t})),queryString:l,postData:f,headersSize:-1,bodySize:t.postData?.length??0},response:{status:n.status,statusText:n.statusText,httpVersion:`HTTP/1.1`,cookies:[],headers:Object.entries(n.headers).map(([e,t])=>({name:e,value:t})),content:d,redirectURL:n.headers.location??n.headers.Location??``,headersSize:-1,bodySize:d.size},cache:{},timings:u}}async saveSnapshot(e,t){return this.saveSnapshotWithEntries(e,t,e.entries,e.currentUrl)}async applyFilter(e,t){return y(e,t)}async saveSnapshotWithEntries(e,t,n,r){if(n.length===0)return _.debug(`No entries to save`,{recordingId:e.id,trigger:t}),null;let i=e.filterCode?await this.applyFilter(n,e.filterCode):n;if(i.length===0)return _.debug(`All entries filtered out`,{recordingId:e.id,trigger:t}),null;e.snapshotCount++;let a=new Date().toISOString().replace(/[:.]/g,`-`),o=this.urlToSlug(r),s=`${e.snapshotCount.toString().padStart(3,`0`)}-${a}-${t}-${o}.har`,c=`/recordings/${e.id}/${s}`,l={log:{version:`1.2`,creator:{name:`SLICC HAR Recorder`,version:`1.0.0`},entries:i}};return await this.fs.writeFile(c,JSON.stringify(l,null,2)),_.debug(`Saved HAR snapshot`,{recordingId:e.id,path:c,entryCount:i.length}),c}urlToSlug(e){try{let t=new URL(e);return`${t.hostname}${t.pathname}`.replace(/[^a-zA-Z0-9]/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``).slice(0,50)||`page`}catch{return`page`}}async stopRecording(e){let t=this.recordings.get(e);if(!t)throw Error(`Recording not found: ${e}`);await this.saveSnapshot(t,`close`);let n=this.eventCleanup.get(e);n&&(n(),this.eventCleanup.delete(e));try{await this.client.send(`Network.disable`,{},t.sessionId)}catch{}this.recordings.delete(e);let r=`/recordings/${e}`;return _.debug(`Stopped recording`,{recordingId:e,snapshotCount:t.snapshotCount}),r}getRecording(e){return this.recordings.get(e)}getRecordingByTarget(e){for(let[t,n]of this.recordings)if(n.targetId===e)return t}async ensureDir(e){await this.fs.mkdir(e,{recursive:!0})}};function y(e,t){try{let n=Function(`entry`,`return (${t})(entry);`),r=[];for(let t of e)try{let e=n(t);if(e===!1)continue;typeof e==`object`&&e?r.push(e):r.push(t)}catch(e){_.error(`Filter function error on entry, keeping it`,{error:e instanceof Error?e.message:String(e)}),r.push(t)}return r}catch(t){return _.error(`Failed to compile filter, returning unfiltered`,{error:t instanceof Error?t.message:String(t)}),e}}var b=class{maxSessions;onEvict;sessions=new Map;pinnedTargets=new Map;appliedSends=new Map;constructor(e=32,t){this.maxSessions=e,this.onEvict=t}get size(){return this.sessions.size}get(e){return this.sessions.get(e)}has(e){return this.sessions.has(e)}values(){return this.sessions.values()}entries(){return this.sessions.entries()}snapshot(){return[...this.sessions]}remember(e,t){this.pruneAppliedSends(),this.sessions.set(e,t),this.enforceCap(e)}touch(e,t){this.sessions.delete(e),this.sessions.set(e,t)}take(e){let t=this.sessions.get(e);return t&&this.sessions.delete(e),t}delete(e){this.sessions.delete(e)}clear(){this.sessions.clear()}pin(e){this.pinnedTargets.set(e,(this.pinnedTargets.get(e)??0)+1);let t=!1;return()=>{if(t)return;t=!0;let n=(this.pinnedTargets.get(e)??1)-1;n>0?this.pinnedTargets.set(e,n):this.pinnedTargets.delete(e),this.enforceCap()}}isPinned(e){return this.pinnedTargets.has(e)}enforceCap(e){for(;this.sessions.size>this.maxSessions;){let t;for(let n of this.sessions.keys())if(!(n===e||this.pinnedTargets.has(n))){t=n;break}if(t===void 0)return;let n=this.sessions.get(t);this.sessions.delete(t),n&&this.onEvict?.(t,n)}}noteApplied(e){this.appliedSends.set(e,(this.appliedSends.get(e)??0)+1)}appliedCount(e){return this.appliedSends.get(e)??0}pruneAppliedSends(){if(this.appliedSends.size<=this.maxSessions*4)return;let e=new Set([...this.sessions.values()].map(e=>e.sessionId));for(let t of[...this.appliedSends.keys()])e.has(t)||this.appliedSends.delete(t)}findBySessionId(e){for(let[t,n]of this.sessions)if(n.sessionId===e)return[t,n]}findByTargetOrLocalId(e){let t=[];for(let[n,r]of this.sessions)(n===e||r.remote?.localTargetId===e)&&t.push([n,r]);return t}anyOnTransport(e){for(let t of this.sessions.values())if(t.transport===e)return!0;return!1}anyMatchingRemote(e,t){for(let n of this.sessions.values())if(n.remote?.runtimeId===e&&n.remote.localTargetId===t)return!0;return!1}},x=`slicc.ariaRefs`,S=[`textbox`,`button`,`link`,`checkbox`,`radio`,`iframe`];function C(e=0){return`(${w})(${Number.isSafeInteger(e)&&e>0?e:0})`}function te(e){return`(function(ref) {
|
|
1
|
+
import{t as e}from"./logger-DDBAeTLF.js";import"./navigation-watcher-CPcnZL9l.js";import"./wc-follower-oauth-Br9RPRQJ.js";import{d as t,l as n,u as r}from"./main-pp1LzVcX.js";import{n as i,t as a}from"./pending-request-table-k-D7ZZsL.js";var o=e(`cdp`);function s(e){return e===4001?`CDP connection superseded by another SLICC tab/window on this instance`:e===4002?`CDP connection reset by proxy (upstream Chrome connection was re-established)`:`CDP connection closed`}var c=class{ws=null;nextId=1;_superseded=!1;pending=new a;listeners=new Map;_state=`disconnected`;stateListeners=new Set;lastNotifiedState=`disconnected`;lastNotifiedReason;get state(){return this._state}onStateChange(e){return this.stateListeners.add(e),()=>{this.stateListeners.delete(e)}}get superseded(){return this._superseded}async connect(e){if(this._state!==`disconnected`)throw Error(`Cannot connect: state is ${this._state}`);if(!e?.url)throw Error(`CDPClient.connect() requires a WebSocket URL`);let{url:t,timeout:n=5e3,protocols:r}=e;return this._state=`connecting`,new Promise((e,i)=>{let a=setTimeout(()=>{this.cleanup(),i(Error(`CDP connection timed out after ${n}ms`))},n);try{this.ws=r===void 0?new WebSocket(t):new WebSocket(t,r)}catch(e){clearTimeout(a),this._state=`disconnected`,i(e);return}this.ws.onopen=()=>{clearTimeout(a),this._state=`connected`,this._superseded=!1,o.info(`Connected`,{url:t}),this.notifyState(`connected`),e()},this.ws.onerror=e=>{clearTimeout(a),this._state===`connecting`&&(o.error(`Connection failed`,{url:t}),this.cleanup(),i(Error(`CDP WebSocket connection failed`)))},this.ws.onmessage=e=>{this.handleMessage(e.data)},this.ws.onclose=e=>{this.handleClose(e?.code)}})}disconnect(){this.ws&&(this.ws.onclose=null,this.ws.close()),this._superseded=!1,this.cleanup(),o.info(`Disconnected`)}async send(e,t,n,r=3e4){if(this._state!==`connected`||!this.ws)throw Error(`CDP client is not connected`);let i=this.nextId++,a={id:i,method:e};t&&(a.params=t),n&&(a.sessionId=n),o.debug(`Send`,{method:e,id:i,sessionId:n});let s=this.pending.issue(i,r,`CDP command timed out after ${r}ms: ${e}`);return this.ws.send(JSON.stringify(a)),s}on(e,t){let n=this.listeners.get(e);n||(n=new Set,this.listeners.set(e,n)),n.add(t)}off(e,t){let n=this.listeners.get(e);n&&(n.delete(t),n.size===0&&this.listeners.delete(e))}once(e,t=3e4){return i(t=>(this.on(e,t),()=>this.off(e,t)),t,`Timed out waiting for event: ${e}`)}handleMessage(e){let t;try{t=JSON.parse(e)}catch{return}if(`id`in t&&typeof t.id==`number`){let e=t;o.debug(`Response`,{id:e.id,hasError:!!e.error}),e.error?(o.error(`Command error`,{id:e.id,code:e.error.code,message:e.error.message}),this.pending.reject(e.id,Error(`CDP error: ${e.error.message} (${e.error.code})`))):this.pending.resolve(e.id,e.result??{});return}if(`method`in t){let e=t;o.debug(`Event`,{method:e.method,sessionId:e.sessionId});let n=this.listeners.get(e.method);if(n){let t=e.sessionId?{...e.params,sessionId:e.sessionId}:e.params??{};for(let e of n)try{e(t)}catch{}}}}handleClose(e){e===4001?(this._superseded=!0,o.warn(`CDP slot superseded by another SLICC tab/window on this instance`,{code:e})):e===4002?o.warn(`CDP proxy reset its upstream Chrome connection — sessions dropped`,{code:e,pendingCommands:this.pending.size}):o.error(`Connection closed unexpectedly`,{pendingCommands:this.pending.size}),this.cleanup(s(e))}cleanup(e=`CDP client disconnected`){this.ws=null,this._state=`disconnected`,this.pending.rejectAll(e),this.notifyState(`disconnected`,e)}notifyState(e,t){if(e!==this.lastNotifiedState||t!==this.lastNotifiedReason){this.lastNotifiedState=e,this.lastNotifiedReason=t;for(let n of this.stateListeners)try{n(e,t)}catch{}}}},l=`ws://localhost:5710/cdp`;function u(e=typeof window<`u`?window.location:null){return e?.host?`${e.protocol===`https:`?`wss:`:`ws:`}//${e.host}/cdp`:l}var d=class{lastConnectOptions=null;supersededHandler=null;supersededNotified=!1;reconnectAttempt=0;reconnectNotBefore=0;bridgeRejection=null;bridgeRejectedHandler=null;bridgeRejectedNotified=!1;classifyConnectFailure=async()=>`transient`;primeConnectOptions(e){this.lastConnectOptions=e?{...e}:{}}setSupersededHandler(e){this.supersededHandler=e}setBridgeRejectedHandler(e){this.bridgeRejectedHandler=e}setConnectFailureClassifier(e){this.classifyConnectFailure=e}async connect(e,t){if(this.bridgeRejection)throw this.notifyBridgeRejected(),new n(this.bridgeRejection);this.lastConnectOptions=t?{...t}:{};try{await e.connect({url:t?.url??u(),timeout:t?.timeout,...t?.protocols===void 0?{}:{protocols:t.protocols}})}catch(e){throw await this.noteReconnectFailure(t),this.bridgeRejection?new n(this.bridgeRejection):e}this.noteReconnectSuccess()}async ensureLocalConnected(e){if(e.superseded===!0){this.notifySuperseded();return}if(e.state===`disconnected`){this.throwIfReconnectPaused();let t=this.lastConnectOptions;try{await e.connect({url:t?.url??u(),...t?.timeout===void 0?{}:{timeout:t.timeout},...t?.protocols===void 0?{}:{protocols:t.protocols}})}catch(e){throw await this.noteReconnectFailure(t??void 0),this.bridgeRejection?new n(this.bridgeRejection):e}this.noteReconnectSuccess()}}async ensureConnected(e){if(e.client.superseded===!0){this.notifySuperseded();return}if(e.client.state===`disconnected`){this.throwIfReconnectPaused();let t=e.client;e.restoreLocalAfterRemoteDrop(),e.clearSessionsForTransport(t),e.getClient().state===`disconnected`&&await this.connect(e.getClient(),this.lastConnectOptions??void 0)}}throwIfReconnectPaused(){if(this.bridgeRejection)throw this.notifyBridgeRejected(),new n(this.bridgeRejection);if(Date.now()<this.reconnectNotBefore)throw new r}noteReconnectSuccess(){this.reconnectAttempt=0,this.reconnectNotBefore=0,this.supersededNotified=!1}async noteReconnectFailure(e){if(await this.classifyConnectFailure({url:e?.url??``,...e?.protocols===void 0?{}:{protocols:e.protocols}})===`terminal`){this.bridgeRejection=new n().message,this.notifyBridgeRejected();return}let r=t(this.reconnectAttempt);this.reconnectAttempt+=1,this.reconnectNotBefore=Date.now()+r}notifyBridgeRejected(){if(!this.bridgeRejectedNotified){this.bridgeRejectedNotified=!0;try{this.bridgeRejectedHandler?.()}catch{}}}notifySuperseded(){if(!this.supersededNotified){this.supersededNotified=!0;try{this.supersededHandler?.()}catch{}}}},f=class extends Error{step;name=`CommandAbortedError`;constructor(e){super(`Browser command aborted while ${e}. A CDP round trip already in flight cannot be cancelled, so it may still have been applied to the page; nothing after it was started.`),this.step=e}};function p(e,t){if(e?.aborted)throw new f(t)}function m(e,t){return e?{signal:e,error:()=>new f(t)}:void 0}function h(e,t,n){return new Promise((r,i)=>{if(t?.aborted){i(new f(n));return}let a=()=>{clearTimeout(o),i(new f(n))},o=setTimeout(()=>{t?.removeEventListener(`abort`,a),r()},e);t?.addEventListener(`abort`,a,{once:!0})})}function ee(e,t,n){return t?t.aborted?Promise.reject(new f(n)):new Promise((r,i)=>{let a=()=>i(new f(n));t.addEventListener(`abort`,a,{once:!0}),e.then(()=>{t.removeEventListener(`abort`,a),r()},e=>{t.removeEventListener(`abort`,a),i(e instanceof Error?e:Error(String(e)))})}):e}var g=class{contexts=new Map;for(e,t){let n=`${t}:${e}`,r=this.contexts.get(n);return r||(r=new Map,this.contexts.set(n,r)),r}peek(e,t){return this.contexts.get(`${t}:${e}`)}drop(e){this.contexts.delete(`main:${e}`),this.contexts.delete(`isolated:${e}`)}get size(){return this.contexts.size}},_=e(`har-recorder`),v=class{recordings=new Map;client;fs;eventCleanup=new Map;constructor(e,t){this.client=e,this.fs=t}async startRecording(e,t,n,r){let i=`rec-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;p(r,`about to enable Network on tab ${e}`),await this.client.send(`Network.enable`,{},t),p(r,`about to enable Page on tab ${e}`),await this.client.send(`Page.enable`,{},t),p(r,`about to read the URL of tab ${e}`);let a=(await this.client.send(`Runtime.evaluate`,{expression:`location.href`,returnByValue:!0},t)).result?.value??`about:blank`,o={id:i,targetId:e,sessionId:t,filterCode:n,pendingRequests:new Map,entries:[],startTime:Date.now(),currentUrl:a,snapshotCount:0};return this.recordings.set(i,o),this.setupEventListeners(o),await this.ensureDir(`/recordings/${i}`),_.debug(`Started recording`,{recordingId:i,targetId:e,currentUrl:a}),i}setupEventListeners(e){let{sessionId:t,id:n}=e,r=n=>{let r=n;r.sessionId===t&&this.handleRequestWillBeSent(e,r)},i=n=>{let r=n;r.sessionId===t&&this.handleResponseReceived(e,r)},a=r=>{let i=r;i.sessionId===t&&this.handleLoadingFinished(e,i).catch(e=>{_.error(`Failed to process loadingFinished event`,{recordingId:n,requestId:i.requestId,error:e instanceof Error?e.message:String(e)})})},o=n=>{let r=n;r.sessionId===t&&this.handleLoadingFailed(e,r)},s=r=>{let i=r;if(i.sessionId!==t)return;let a=i.frame;if(!a?.parentId&&a?.url){let t=[...e.entries],r=e.currentUrl;e.currentUrl=a.url,e.entries=[],e.pendingRequests.clear(),this.saveSnapshotWithEntries(e,`navigation`,t,r).catch(e=>{_.error(`Failed to save navigation snapshot`,{recordingId:n,error:e instanceof Error?e.message:String(e)})})}};this.client.on(`Network.requestWillBeSent`,r),this.client.on(`Network.responseReceived`,i),this.client.on(`Network.loadingFinished`,a),this.client.on(`Network.loadingFailed`,o),this.client.on(`Page.frameNavigated`,s),this.eventCleanup.set(n,()=>{this.client.off(`Network.requestWillBeSent`,r),this.client.off(`Network.responseReceived`,i),this.client.off(`Network.loadingFinished`,a),this.client.off(`Network.loadingFailed`,o),this.client.off(`Page.frameNavigated`,s)})}handleRequestWillBeSent(e,t){let{requestId:n,request:r,timestamp:i}=t;!n||!r||i==null||e.pendingRequests.set(n,{requestId:n,startTime:i*1e3,request:{method:r.method,url:r.url,headers:r.headers,postData:r.postData}})}handleResponseReceived(e,t){let{requestId:n,response:r}=t;if(!n||!r)return;let i=e.pendingRequests.get(n);i&&(i.response={status:r.status,statusText:r.statusText,headers:r.headers,mimeType:r.mimeType},i.timing=r.timing)}async handleLoadingFinished(e,t){let{requestId:n,timestamp:r}=t;if(!n||r==null)return;let i=e.pendingRequests.get(n);if(!i)return;i.endTime=r*1e3;try{let t=await this.client.send(`Network.getResponseBody`,{requestId:n},e.sessionId);i.responseBody=t.body,i.responseBodyBase64=t.base64Encoded===!0}catch{}let a=this.buildHarEntry(i);a&&e.entries.push(a),e.pendingRequests.delete(n)}handleLoadingFailed(e,t){let{requestId:n}=t;n&&e.pendingRequests.delete(n)}buildHarEntry(e){if(!e.response)return null;let{request:t,response:n,timing:r,startTime:i,endTime:a,responseBody:o,responseBodyBase64:s}=e,c=a?a-i:0,l=[];try{let e=new URL(t.url);l=Array.from(e.searchParams.entries()).map(([e,t])=>({name:e,value:t}))}catch{}let u=r?(()=>{let e=(e,t)=>{if(e==null||t==null||e<0||t<0)return-1;let n=t-e;return n>=0?n:-1},t=r.dnsStart>=0?r.dnsStart:r.connectStart>=0?r.connectStart:0;return{blocked:t>0?t:-1,dns:e(r.dnsStart,r.dnsEnd),connect:e(r.connectStart,r.connectEnd),ssl:e(r.sslStart,r.sslEnd),send:e(r.sendStart,r.sendEnd),wait:e(r.sendEnd,r.receiveHeadersStart),receive:e(r.receiveHeadersStart,r.receiveHeadersEnd)}})():{blocked:-1,dns:-1,connect:-1,ssl:-1,send:0,wait:c,receive:0},d={size:o?.length??0,mimeType:n.mimeType??`application/octet-stream`};o&&(d.text=o,s&&(d.encoding=`base64`));let f;return t.postData&&(f={mimeType:t.headers[`content-type`]??t.headers[`Content-Type`]??`text/plain`,text:t.postData}),{startedDateTime:new Date(i).toISOString(),time:c,request:{method:t.method,url:t.url,httpVersion:`HTTP/1.1`,cookies:[],headers:Object.entries(t.headers).map(([e,t])=>({name:e,value:t})),queryString:l,postData:f,headersSize:-1,bodySize:t.postData?.length??0},response:{status:n.status,statusText:n.statusText,httpVersion:`HTTP/1.1`,cookies:[],headers:Object.entries(n.headers).map(([e,t])=>({name:e,value:t})),content:d,redirectURL:n.headers.location??n.headers.Location??``,headersSize:-1,bodySize:d.size},cache:{},timings:u}}async saveSnapshot(e,t){return this.saveSnapshotWithEntries(e,t,e.entries,e.currentUrl)}async applyFilter(e,t){return y(e,t)}async saveSnapshotWithEntries(e,t,n,r){if(n.length===0)return _.debug(`No entries to save`,{recordingId:e.id,trigger:t}),null;let i=e.filterCode?await this.applyFilter(n,e.filterCode):n;if(i.length===0)return _.debug(`All entries filtered out`,{recordingId:e.id,trigger:t}),null;e.snapshotCount++;let a=new Date().toISOString().replace(/[:.]/g,`-`),o=this.urlToSlug(r),s=`${e.snapshotCount.toString().padStart(3,`0`)}-${a}-${t}-${o}.har`,c=`/recordings/${e.id}/${s}`,l={log:{version:`1.2`,creator:{name:`SLICC HAR Recorder`,version:`1.0.0`},entries:i}};return await this.fs.writeFile(c,JSON.stringify(l,null,2)),_.debug(`Saved HAR snapshot`,{recordingId:e.id,path:c,entryCount:i.length}),c}urlToSlug(e){try{let t=new URL(e);return`${t.hostname}${t.pathname}`.replace(/[^a-zA-Z0-9]/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``).slice(0,50)||`page`}catch{return`page`}}async stopRecording(e){let t=this.recordings.get(e);if(!t)throw Error(`Recording not found: ${e}`);await this.saveSnapshot(t,`close`);let n=this.eventCleanup.get(e);n&&(n(),this.eventCleanup.delete(e));try{await this.client.send(`Network.disable`,{},t.sessionId)}catch{}this.recordings.delete(e);let r=`/recordings/${e}`;return _.debug(`Stopped recording`,{recordingId:e,snapshotCount:t.snapshotCount}),r}getRecording(e){return this.recordings.get(e)}getRecordingByTarget(e){for(let[t,n]of this.recordings)if(n.targetId===e)return t}async ensureDir(e){await this.fs.mkdir(e,{recursive:!0})}};function y(e,t){try{let n=Function(`entry`,`return (${t})(entry);`),r=[];for(let t of e)try{let e=n(t);if(e===!1)continue;typeof e==`object`&&e?r.push(e):r.push(t)}catch(e){_.error(`Filter function error on entry, keeping it`,{error:e instanceof Error?e.message:String(e)}),r.push(t)}return r}catch(t){return _.error(`Failed to compile filter, returning unfiltered`,{error:t instanceof Error?t.message:String(t)}),e}}var b=class{maxSessions;onEvict;sessions=new Map;pinnedTargets=new Map;appliedSends=new Map;constructor(e=32,t){this.maxSessions=e,this.onEvict=t}get size(){return this.sessions.size}get(e){return this.sessions.get(e)}has(e){return this.sessions.has(e)}values(){return this.sessions.values()}entries(){return this.sessions.entries()}snapshot(){return[...this.sessions]}remember(e,t){this.pruneAppliedSends(),this.sessions.set(e,t),this.enforceCap(e)}touch(e,t){this.sessions.delete(e),this.sessions.set(e,t)}take(e){let t=this.sessions.get(e);return t&&this.sessions.delete(e),t}delete(e){this.sessions.delete(e)}clear(){this.sessions.clear()}pin(e){this.pinnedTargets.set(e,(this.pinnedTargets.get(e)??0)+1);let t=!1;return()=>{if(t)return;t=!0;let n=(this.pinnedTargets.get(e)??1)-1;n>0?this.pinnedTargets.set(e,n):this.pinnedTargets.delete(e),this.enforceCap()}}isPinned(e){return this.pinnedTargets.has(e)}enforceCap(e){for(;this.sessions.size>this.maxSessions;){let t;for(let n of this.sessions.keys())if(!(n===e||this.pinnedTargets.has(n))){t=n;break}if(t===void 0)return;let n=this.sessions.get(t);this.sessions.delete(t),n&&this.onEvict?.(t,n)}}noteApplied(e){this.appliedSends.set(e,(this.appliedSends.get(e)??0)+1)}appliedCount(e){return this.appliedSends.get(e)??0}pruneAppliedSends(){if(this.appliedSends.size<=this.maxSessions*4)return;let e=new Set([...this.sessions.values()].map(e=>e.sessionId));for(let t of[...this.appliedSends.keys()])e.has(t)||this.appliedSends.delete(t)}findBySessionId(e){for(let[t,n]of this.sessions)if(n.sessionId===e)return[t,n]}findByTargetOrLocalId(e){let t=[];for(let[n,r]of this.sessions)(n===e||r.remote?.localTargetId===e)&&t.push([n,r]);return t}anyOnTransport(e){for(let t of this.sessions.values())if(t.transport===e)return!0;return!1}anyMatchingRemote(e,t){for(let n of this.sessions.values())if(n.remote?.runtimeId===e&&n.remote.localTargetId===t)return!0;return!1}},x=`slicc.ariaRefs`,S=[`textbox`,`button`,`link`,`checkbox`,`radio`,`iframe`];function C(e=0){return`(${w})(${Number.isSafeInteger(e)&&e>0?e:0})`}function te(e){return`(function(ref) {
|
|
2
2
|
var store = window[Symbol.for(${JSON.stringify(x)})];
|
|
3
3
|
var held = store && store.byRef.get(ref);
|
|
4
4
|
var el = held && (typeof held.deref === 'function' ? held.deref() : held);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./diagnostics-B-5VkVir.js";import{a as t}from"./compat-0YnuwvMn.js";import{r as n,s as r}from"./legacy-api-aliases-D-3Ssy_B.js";import{h as i}from"./account-store-
|
|
1
|
+
import{a as e}from"./diagnostics-B-5VkVir.js";import{a as t}from"./compat-0YnuwvMn.js";import{r as n,s as r}from"./legacy-api-aliases-D-3Ssy_B.js";import{h as i}from"./account-store-EUAU8ivx.js";import{n as a}from"./pi-transcript-context-DZyPy5yf.js";var o=`cerebras`,s=`https://api.cerebras.ai/v1`,c=`openai-completions`,l=`${o}-openai`,u=`slicc-cerebras-models`,d=[],f=[{id:`gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai`,reasoning:!0,input:[`text`],context_window:131072,max_tokens:40960},{id:`gemma-4-31b`,name:`Gemma 4 31B`,api:`openai`,reasoning:!1,input:[`text`,`image`],context_window:131072,max_tokens:40960},{id:`zai-glm-4.7`,name:`Z.AI GLM-4.7`,api:`openai`,reasoning:!1,input:[`text`],context_window:131072,max_tokens:40960}];function p(e){try{localStorage.setItem(u,JSON.stringify(e))}catch{}}function m(){try{let e=localStorage.getItem(u);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)&&t.length>0?t:[]}catch{return[]}}function h(e){let t=e.id??``,n=f.find(e=>e.id===t);return{id:t,name:e.name??n?.name??t,api:`openai`,reasoning:e.capabilities?.reasoning??n?.reasoning??!1,input:e.capabilities?.vision?[`text`,`image`]:n?.input??[`text`],context_window:e.limits?.max_context_length??n?.context_window??8192,max_tokens:e.limits?.max_completion_tokens??n?.max_tokens??4096}}async function g(e){let t=await fetch(`${s}/models`,{headers:{Authorization:`Bearer ${e}`}});if(!t.ok)throw Error(`GET /v1/models → ${t.status} ${t.statusText}`);let n=((await t.json()).data??[]).map(h).filter(e=>e.id.length>0);n.length>0&&(d=n,p(n))}function _(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:l,provider:o,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function v(e){console.error(`[cerebras] Stream error:`,e instanceof Error?e.message:String(e))}var y=(t,n,r={})=>{let i=e();return b(i,t,n,r).catch(v),i};async function b(e,t,r,i){try{let o={...t,baseUrl:s,api:c},l=n(o,a(r),i);for await(let t of l)e.push(t);e.end()}catch(n){v(n),e.push(_(t,n)),e.end()}}var x=(t,n,r)=>{let i=e();return S(i,t,n,r).catch(v),i};async function S(e,t,n,i){try{let o={...t,baseUrl:s,api:c},l=r(o,a(n),i);for await(let t of l)e.push(t);e.end()}catch(n){v(n),e.push(_(t,n)),e.end()}}var C={id:o,name:`Cerebras`,description:`Ultra-fast inference on Cerebras hardware. Get an API key at cloud.cerebras.ai.`,requiresApiKey:!0,requiresBaseUrl:!1,getModelIds:()=>{if(d.length>0)return d;let e=m();return e.length>0?e:f},refreshModels:async e=>{let t=e??i(o)??``;if(t)try{await g(t)}catch(e){console.warn(`[cerebras] Failed to refresh model list:`,e instanceof Error?e.message:String(e))}}};function w(){t({api:l,stream:y,streamSimple:x})}export{C as config,w as register};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./account-store-
|
|
1
|
+
import{a as e}from"./account-store-CoiNHIE9.js";import{a as t}from"./diagnostics-B-5VkVir.js";import{a as n}from"./compat-Ba4wPWa_.js";import{r,s as i}from"./legacy-api-aliases-C3_OAyZB.js";import{n as a}from"./pi-transcript-context-CE8ItnBz.js";const o=`cerebras`,s=`https://api.cerebras.ai/v1`,c=`openai-completions`,l=`${o}-openai`,u=`slicc-cerebras-models`;let d=[];const f=[{id:`gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai`,reasoning:!0,input:[`text`],context_window:131072,max_tokens:40960},{id:`gemma-4-31b`,name:`Gemma 4 31B`,api:`openai`,reasoning:!1,input:[`text`,`image`],context_window:131072,max_tokens:40960},{id:`zai-glm-4.7`,name:`Z.AI GLM-4.7`,api:`openai`,reasoning:!1,input:[`text`],context_window:131072,max_tokens:40960}];function p(e){try{localStorage.setItem(u,JSON.stringify(e))}catch{}}function m(){try{let e=localStorage.getItem(u);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)&&t.length>0?t:[]}catch{return[]}}function h(e){let t=e.id??``,n=f.find(e=>e.id===t);return{id:t,name:e.name??n?.name??t,api:`openai`,reasoning:e.capabilities?.reasoning??n?.reasoning??!1,input:e.capabilities?.vision?[`text`,`image`]:n?.input??[`text`],context_window:e.limits?.max_context_length??n?.context_window??8192,max_tokens:e.limits?.max_completion_tokens??n?.max_tokens??4096}}async function g(e){let t=await fetch(`${s}/models`,{headers:{Authorization:`Bearer ${e}`}});if(!t.ok)throw Error(`GET /v1/models → ${t.status} ${t.statusText}`);let n=((await t.json()).data??[]).map(h).filter(e=>e.id.length>0);n.length>0&&(d=n,p(n))}function _(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:l,provider:o,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function v(e){console.error(`[cerebras] Stream error:`,e instanceof Error?e.message:String(e))}const y=(e,n,r={})=>{let i=t();return b(i,e,n,r).catch(v),i};async function b(e,t,n,i){try{let o={...t,baseUrl:s,api:c},l=r(o,a(n),i);for await(let t of l)e.push(t);e.end()}catch(n){v(n),e.push(_(t,n)),e.end()}}const x=(e,n,r)=>{let i=t();return S(i,e,n,r).catch(v),i};async function S(e,t,n,r){try{let o={...t,baseUrl:s,api:c},l=i(o,a(n),r);for await(let t of l)e.push(t);e.end()}catch(n){v(n),e.push(_(t,n)),e.end()}}const C={id:o,name:`Cerebras`,description:`Ultra-fast inference on Cerebras hardware. Get an API key at cloud.cerebras.ai.`,requiresApiKey:!0,requiresBaseUrl:!1,getModelIds:()=>{if(d.length>0)return d;let e=m();return e.length>0?e:f},refreshModels:async t=>{let n=t??e(o)??``;if(n)try{await g(n)}catch(e){console.warn(`[cerebras] Failed to refresh model list:`,e instanceof Error?e.message:String(e))}}};function w(){n({api:l,stream:y,streamSimple:x})}export{C as config,w as register};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./logger-DDBAeTLF.js";import{st as t}from"./wc-shell-
|
|
1
|
+
import{t as e}from"./logger-DDBAeTLF.js";import{st as t}from"./wc-shell-C0Y0f1tt.js";import{n}from"./runtime-env-Dlaokqg1.js";import{t as r}from"./permissions-surface-registry-CilCRwhh.js";import{t as i}from"./speech-assets-bridge-CFYafE89.js";import{o as a}from"./transformers-env-C6_kFf6e.js";import{i as o,t as s}from"./whisper-session-7VWAVhAF.js";var c=e(`speech:composer`),l=5e3,u=(e,t,n)=>new Promise((r,i)=>{let a=setTimeout(()=>i(Error(`${n} timed out after ${t}ms`)),t);e.then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e)})}),d=class{#e;#t;#n;#r;#i;#a=null;#o=!1;#s={engine:`builtin`,state:`idle`};#c=a();#l=new Set;#u=null;constructor(e={}){this.#e=e.builtin??t(),this.#t=e.loadWhisper??o,this.#n=e.startSession??s,this.#r=e.getPermissionSurface??f,this.#i=e.ensureAssets??v}permission(){return this.#e.permission()}async requestPermission(){let e=this.#r();if(e)try{let t=await e.request(`microphone`);return t?(this.#p(t.stream),!0):!1}catch(e){return c.warn(`permission surface microphone request failed`,e),!1}return this.#e.requestPermission()}microphones(){return this.#e.microphones()}status(){return this.#s}onStatus(e){return this.#l.add(e),e(this.#s),()=>this.#l.delete(e)}warmup(){this.#o||(this.#o=!0,this.#c=a(),this.#_({engine:`builtin`,state:`downloading`}),this.#d().then(e=>{this.#a=e,this.#_({engine:`enhanced`,state:`ready`})},e=>{this.#o=!1,this.#_({engine:`builtin`,state:`unavailable`,message:m(e)}),c.warn(`enhanced speech engine unavailable`,e)}))}async#d(){let e=null;try{await this.#i(e=>this.#h(e))}catch(t){e=t,c.warn(`speech asset staging failed; trying already-present assets`,t)}try{return await this.#t(e=>this.#g(e))}catch(t){throw e??t}}async start(e){let t=this.#a;if(t){let n=null;try{return n=await this.#f(e.deviceId),await this.#n(t,{deviceId:e.deviceId,lang:e.lang,onPartial:e.onPartial,onError:e.onError,stream:n??void 0})}catch(e){if(n)for(let e of n.getTracks())e.stop();c.warn(`whisper session failed to start; falling back to builtin`,e)}}return this.#e.start(e)}async#f(e){let t=e&&e!=="default"?e:void 0,n=this.#m();if(n){if(!t&&p(n))return n;for(let e of n.getTracks())e.stop()}let r=this.#r();if(!r)return null;let i={audio:!t||{deviceId:{exact:t}}},a=await u(r.request(`microphone`,{constraints:i}),l,`microphone capture`);if(!a)throw Error(`microphone permission denied`);return a.stream}#p(e){if(this.#u&&this.#u!==e)for(let e of this.#u.getTracks())e.stop();this.#u=e}#m(){let e=this.#u;return this.#u=null,e}get enhancedReady(){return this.#a!==null}#h(e){if(this.#s.state!==`downloading`)return;(e.bytesTotal!=null||e.bytesLoaded!=null)&&this.#c.update(e.asset,e.bytesLoaded??0,e.bytesTotal??0);let t=this.#c.snapshot();t.total<=0||this.#_({engine:`builtin`,state:`downloading`,download:{loaded:t.loaded,total:t.total,etaSeconds:t.etaSeconds}})}#g(e){this.#s.state===`downloading`&&this.#_({engine:`builtin`,state:`downloading`,download:{loaded:e.loaded,total:e.total,etaSeconds:e.etaSeconds}})}#_(e){this.#s=e;for(let t of this.#l)t(e)}};function f(){let e=r();return e?{async request(t,n){let r=await e.request(t,n);return r?.kind===`microphone`?{kind:`microphone`,stream:r.stream}:null}}:null}function p(e){let t=e.getTracks();return t.length>0&&t.some(e=>e.readyState!==`ended`)}function m(e){return`Enhanced speech unavailable: ${e instanceof Error?e.message:String(e)}`}var h=n,g;function _(e){g=e}function v(e){return h()?Promise.resolve():i({instanceId:g,onProgress:e})}var y=null;function b(){return y??=new d,y}export{b as getComposerSpeech,_ as setComposerSpeechInstanceId};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{B as e,T as t,d as n,u as r}from"./account-store-
|
|
1
|
+
import{B as e,T as t,d as n,u as r}from"./account-store-EUAU8ivx.js";import{a as i}from"./main-pp1LzVcX.js";var a=`slicc_cloud_model_catalog`,o=`adobe`;function s(e){if(e===o)return!1;let n=t(e);return!(n.hidden||n.onOAuthLoginIntercepted)}function c(){try{let e=n().map(e=>({providerId:e.providerId,providerName:e.providerName,models:e.models.map(e=>({id:e.id,name:e.name}))}));localStorage.setItem(a,JSON.stringify(e))}catch{}}async function l(n){for(;n.firstChild;)n.removeChild(n.firstChild);n.className=`connect-surface`;let a=document.createElement(`h1`);a.className=`connect-surface__title`,a.textContent=`Connect providers`,n.appendChild(a);let l=document.createElement(`p`);l.className=`connect-surface__desc`,l.textContent=`Log in or add API keys for the providers your cone should use, then click Done to return to the dashboard.`,n.appendChild(l);let u=document.createElement(`div`);u.className=`connect-surface__accounts`,n.appendChild(u);function d(){for(;u.firstChild;)u.removeChild(u.firstChild);let n=r().filter(e=>e.providerId!==o);if(n.length===0){let e=document.createElement(`div`);e.className=`connect-surface__empty`,e.textContent=`No providers connected yet.`,u.appendChild(e)}else{let r=document.createElement(`div`);r.className=`connect-surface__accounts-list`;for(let i of n){let n=t(i.providerId),a=document.createElement(`div`);a.className=`connect-surface__account-row`;let o=document.createElement(`div`);o.className=`connect-surface__account-info`;let s=document.createElement(`div`);s.className=`connect-surface__account-name`,s.textContent=n.name,o.appendChild(s);let l=document.createElement(`div`);l.className=`connect-surface__account-detail`,l.textContent=i.userName?i.userName:i.accessToken?`Logged in`:i.apiKey?`API key set`:`No credentials`,o.appendChild(l),a.appendChild(o);let u=document.createElement(`button`);u.className=`connect-surface__remove-btn`,u.textContent=`Remove`,u.onclick=async()=>{await e(i.providerId),c(),d()},a.appendChild(u),r.appendChild(a)}u.appendChild(r)}let a=document.createElement(`button`);a.className=`connect-surface__add-btn`,a.textContent=n.length===0?`Add provider`:`Manage providers`,a.onclick=async()=>{await i({startInAddAccount:!0,providerFilter:s})&&(c(),d())},u.appendChild(a)}d(),c();let f=document.createElement(`div`);f.className=`connect-surface__footer`;let p=document.createElement(`button`);if(p.className=`connect-surface__done-btn`,p.textContent=`Done — return to dashboard`,p.onclick=()=>{c(),window.close()},f.appendChild(p),n.appendChild(f),!document.getElementById(`connect-surface-style`)){let e=document.createElement(`style`);e.id=`connect-surface-style`,e.textContent=`
|
|
2
2
|
.connect-surface {
|
|
3
3
|
padding: 2rem;
|
|
4
4
|
max-width: 560px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import{S as t}from"./record-Ban9cWMI.js";import{d as n}from"./kernel-worker-
|
|
1
|
+
import{t as e}from"./logger-LESFN7Hj.js";import{S as t}from"./record-Ban9cWMI.js";import{d as n}from"./kernel-worker-MybuXyBd.js";const r=e(`directed-approval`);function i(e,n){if(e.kind===`user`)return a(`the user tier is not a directed approval`);if(e.kind===`agent`)return a(`agent approvals are not enqueued to a unit`);let r=e.unitJid;if(!n.scoops.has(r))return a(`the requesting unit is not registered`);let i=n.ownerRootOf(r);if(!i)return a(`no owning cone for the requesting unit`);let o=e.kind===`cone`?i:[...n.scoops.values()].find(t=>t.parentJid===i.jid&&(t.name===e.scoopName||t.folder===e.scoopName));return o?t(o).canResolveApprovals?{ok:!0,requesterJid:r,approver:o}:a(`the named approver cannot resolve approvals`):a(`delegated approver not found under this cone`)}function a(e){return r.warn(`Directed approval failing closed`,{reason:e}),{ok:!1,reason:e}}const o={decision:`deny`},s={decision:`deny`,reason:`unavailable`};async function c(e,t){let a=e.approver;if(a?.kind===`agent`){let i=globalThis[n];if(!i)return r.warn(`No agent bridge available for an approver agent — denying`),s;let{approverRunnerFor:c}=await import(`./approver-agent-B9MJsDkQ.js`),l=t.getSharedFs(),u=await c({spawn:e=>i.spawn(e),readSharedFile:async e=>{if(!l)return null;try{let t=await l.readFile(e,{encoding:`utf-8`});return typeof t==`string`?t:null}catch{return null}},findUnit:e=>{let n=t.scoops.get(e);return n?{workspace:t.workspaceFor(n),folder:n.folder}:void 0}})({kind:e.kind===`guest-tool`?`guest-tool`:`guest-message`,requester:e.requester??`an unidentified requester`,detail:e.detail},a.unitJid);return r.info(`Approver agent verdict`,{decision:u.decision,reason:u.reason}),u.decision===`allow`?{decision:`allow`}:o}if(a&&a.kind!==`user`){let n=i(a,t);return n.ok?t.enqueue(n.requesterJid,e,{approver:n.approver}):s}return t.approveAsUser(e)}export{c as runDirectedApproval};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=[`none`,`single`,`double`,`curly`,`dotted`,`dashed`],t=`Serve the binary from your app and pass its URL: GhosttyCore.load({ wasmPath: "/ghostty-vt.wasm" }). The file ships with the package as @wterm/ghostty/ghostty-vt.wasm. See the Bundlers section of the @wterm/ghostty README.`;function n(){return new URL(`/assets/ghostty-vt--DTGF19l.wasm`,``+import.meta.url).href}function r(e){if(e.byteLength<4)return!1;let t=new Uint8Array(e,0,4);return t[0]===0&&t[1]===97&&t[2]===115&&t[3]===109}var i=new Map,a=4;async function o(e){let n=await fetch(e);if(!n.ok)throw Error(`@wterm/ghostty: fetching ${e} returned ${n.status} ${n.statusText}. ${t}`);if(typeof WebAssembly.compileStreaming==`function`&&n.headers.get(`Content-Type`)?.trim().toLowerCase()===`application/wasm`)try{return await WebAssembly.compileStreaming(n.clone())}catch{}let i=await n.arrayBuffer();if(!r(i))throw Error(`@wterm/ghostty: ${e} did not return a WASM module. ${t}`);return WebAssembly.compile(i)}function s(e){let t=i.get(e);if(t)return i.delete(e),i.set(e,t),t;let n=o(e).catch(t=>{throw i.get(e)===n&&i.delete(e),t});return i.set(e,n),i.size>a&&i.delete(i.keys().next().value),n}async function c(e){let r=e??n();if(e===void 0&&r.startsWith(`file:`)&&typeof document<`u`)throw Error(`@wterm/ghostty: your bundler resolved the WASM URL to ${r}, a path on the machine that built the bundle, so the browser cannot fetch it. ${t}`);typeof document<`u`?r=new URL(r,document.baseURI).href:typeof location<`u`&&(r=new URL(r,location.href).href);let i=await s(r),a,o=await WebAssembly.instantiate(i,{env:{log(e,t){let n=new TextDecoder().decode(new Uint8Array(a.buffer,e,t));console.log(`[ghostty-vt]`,n)}}});return a=o.exports.memory,{exports:o.exports,instance:o}}function l(t,n,r=16){let i=t.getUint8(n+12),a=t.getUint8(n+13),o={codepoint:t.getUint32(n,!0),fgR:t.getUint8(n+4),fgG:t.getUint8(n+5),fgB:t.getUint8(n+6),bgR:t.getUint8(n+7),bgG:t.getUint8(n+8),bgB:t.getUint8(n+9),flags:t.getUint8(n+10),width:t.getUint8(n+11),colorFlags:i,hasGrapheme:!!(a&1),hasHyperlink:!!(a&2),spacerHead:!!(a&4)};return r===20&&(o.underlineStyle=e[t.getUint8(n+16)],o.underlineRgb=i&4?t.getUint8(n+17)<<16|t.getUint8(n+18)<<8|t.getUint8(n+19):void 0),o}function u(e,t){if(!Number.isSafeInteger(t)||t<=0||t>4294967295)return 0;try{return e.exports.alloc_buffer(t)}catch{return 0}}function d(e,t,n){if(!(t===0||!Number.isSafeInteger(n)||n<=0))try{e.exports.free_buffer(t,n)}catch{}}function f(e,t,n,r){let i=e.exports.graphics_images;if(!i||!Number.isSafeInteger(r)||r<0)return[];let a;try{a=i(t,n,r)}catch{return[]}if(!Number.isSafeInteger(a)||a<0||a>r)return[];let o=a*16;if(!Number.isSafeInteger(o))return[];let s;try{s=new DataView(e.exports.memory.buffer,n,o)}catch{return[]}let c=[];for(let e=0;e<a;e++){let t=e*16;c.push({imageId:s.getUint32(t,!0),version:s.getUint32(t+4,!0),width:s.getUint32(t+8,!0),height:s.getUint32(t+12,!0)})}return c}function p(e,t,n,r){let i=e.exports.graphics_placements;if(!i||!Number.isSafeInteger(r)||r<0)return[];let a;try{a=i(t,n,r)}catch{return[]}if(!Number.isSafeInteger(a)||a<0||a>r)return[];let o=a*60;if(!Number.isSafeInteger(o))return[];let s;try{s=new DataView(e.exports.memory.buffer,n,o)}catch{return[]}let c=[];for(let e=0;e<a;e++){let t=e*60,n=s.getUint32(t,!0),r=s.getUint32(t+4,!0),i=s.getUint32(t+56,!0);c.push({placementKey:`${n}:${r}:${i}`,imageId:n,imageVersion:s.getUint32(t+8,!0),row:s.getUint32(t+12,!0),col:s.getUint32(t+16,!0),offsetX:s.getUint32(t+20,!0),offsetY:s.getUint32(t+24,!0),sourceX:s.getUint32(t+28,!0),sourceY:s.getUint32(t+32,!0),sourceWidth:s.getUint32(t+36,!0),sourceHeight:s.getUint32(t+40,!0),columns:s.getUint32(t+44,!0),rows:s.getUint32(t+48,!0),z:s.getInt32(t+52,!0)})}return c}function m(e,t,n,r){h(e,t,new TextEncoder().encode(n),r)}function h(e,t,n,r){let i=0;for(;i<n.length;){let a=Math.min(n.length-i,8192),o=u(e,a);if(o===0)return;try{new Uint8Array(e.exports.memory.buffer,o,a).set(n.subarray(i,i+a)),e.exports.write(t,o,a)}finally{d(e,o,a)}i+=a,r?.()}}var g=256,_=256,v=1024,y=`#d4d4d4`,b=`#1e1e1e`,x=[`unknown`,`prompt`,`input`,`running`,`complete`],S=33554432,C=S,w=4294967295;function T(e,t,n){return e<<16|t<<8|n}var E={char:32,fg:g,bg:g,flags:0,width:1};function D(e,t){if(!/^#[0-9a-f]{6}$/i.test(e))throw Error(`@wterm/ghostty: ${t} must be a #RRGGBB color`);return Number.parseInt(e.slice(1),16)}function O(e){let t=e.imageStorageLimit??C;if(!Number.isSafeInteger(t)||t<0||t>w)throw Error(`@wterm/ghostty: imageStorageLimit must be an integer between 0 and 4294967295`);return t}function k(e){return{generation:e.generation,images:e.images.map(e=>({...e})),placements:e.placements.map(e=>({...e}))}}var A=class e{constructor(e,t){this.termPtr=0,this._themeColors=null,this._viewportBufPtr=0,this._viewportBufSize=0,this._viewportView=null,this._viewportStale=!0,this._cols=0,this._rows=0,this._scrollbackBufPtr=0,this._scrollbackBufSize=0,this._scrollbackView=null,this._scrollbackOffset=-1,this._scrollbackLen=0,this._graphemeBufPtr=0,this._graphemeBufSize=_,this._hyperlinkBufPtr=0,this._hyperlinkBufSize=v,this._graphicsBufPtr=0,this._graphicsBufSize=0,this._graphicsState=null,this._disposed=!1,this._positionOwner={},this.wasm=e,this._cellBytes=e.exports.get_viewport_v2&&e.exports.get_scrollback_line_v2?20:16,this._options=t,this._foregroundRgb=D(t.foregroundColor??y,`foregroundColor`),this._backgroundRgb=D(t.backgroundColor??b,`backgroundColor`)}static async load(t={}){let n=await c(t.wasmPath);return new e(n,t)}init(e,t){if(this._disposed)return;this.termPtr!==0&&this._deinitTerminal(),this._cols=e,this._rows=t;let n=this._options.scrollbackLimit??1e4;this.termPtr=this.wasm.exports.init(e,t,n,this._foregroundRgb,this._backgroundRgb,O(this._options)),this.termPtr!==0&&(this._themeColors&&this.setThemeColors(this._themeColors),this._graphemeBufPtr!==0&&d(this.wasm,this._graphemeBufPtr,this._graphemeBufSize),this._graphemeBufPtr=u(this.wasm,_),this._hyperlinkBufPtr!==0&&d(this.wasm,this._hyperlinkBufPtr,this._hyperlinkBufSize),this._hyperlinkBufSize=v,this._hyperlinkBufPtr=u(this.wasm,v),this._allocViewportBuffer(),this._invalidate())}resize(e,t){this._disposed||this.termPtr===0||(this._cols=e,this._rows=t,this.wasm.exports.resize(this.termPtr,e,t),this._allocViewportBuffer(),this._invalidate())}getColorOverrides(){let e=this.wasm.exports.get_color_override,t={};if(this._disposed||this.termPtr===0||!e)return t;for(let[n,r]of[`foreground`,`background`,`cursor`].entries()){let i=e(this.termPtr,n);i>=0&&(t[r]=i)}return t}writeString(e,t){this._disposed||this.termPtr===0||(m(this.wasm,this.termPtr,e,t),this._invalidate())}writeRaw(e,t){this._disposed||this.termPtr===0||(h(this.wasm,this.termPtr,e,t),this._invalidate())}trackPosition(e){let{track_position:t,resolve_position:n,release_position:r}=this.wasm.exports;if(this._disposed||!this.termPtr||!t||!n||!r||!Number.isInteger(e.row)||e.row<0||e.row>w||!Number.isInteger(e.col)||e.col<0||e.col>=65536)return null;let i=this.termPtr,a=this._positionOwner,o=t(i,e.row,e.col);if(!o)return null;let s=!1;return{resolve:()=>{if(s||a!==this._positionOwner)return null;let e=n(i,o);return e<0?null:{row:Math.floor(e/65536),col:e%65536}},dispose:()=>{s||(s=!0,a===this._positionOwner&&r(i,o))}}}getRowMetadata(e){return this._readRowMetadata(this.wasm.exports.get_row_wraps,e)}getCell(e,t){if(this._disposed||this.termPtr===0)return E;this._ensureViewport();let n=this._viewportView;if(!n)return E;let r=(e*this._cols+t)*this._cellBytes;if(r+this._cellBytes>this._viewportBufSize)return E;let i=l(n,r,this._cellBytes);if(i.codepoint===0&&i.flags===0&&i.colorFlags===0&&!i.hasHyperlink&&!i.spacerHead&&i.width!==0)return E;let a={char:i.codepoint||32,fg:g,bg:g,flags:i.flags,width:i.width};return i.underlineStyle!==void 0&&(a.underlineStyle=i.underlineStyle),i.underlineRgb!==void 0&&(a.underlineRgb=i.underlineRgb),i.hasGrapheme&&(a.chars=this._readGrapheme(e,t)),i.spacerHead&&(a.spacerHead=!0),i.hasHyperlink&&Object.assign(a,this._readHyperlink(e,t,!1)),i.colorFlags&1&&(a.fgRgb=T(i.fgR,i.fgG,i.fgB)),i.colorFlags&2&&(a.bgRgb=T(i.bgR,i.bgG,i.bgB)),a}isDirtyRow(e){return this._disposed||this.termPtr===0?!1:(this._ensureViewport(),this.wasm.exports.is_dirty_row(this.termPtr,e)!==0)}clearDirty(){this._disposed||this.termPtr===0||(this.wasm.exports.clear_dirty(this.termPtr),this._viewportStale=!0)}getCols(){return this._cols}getRows(){return this._rows}getCursor(){if(this._disposed||this.termPtr===0)return{row:0,col:0,visible:!1};this._ensureViewport();let e=this.wasm.exports.get_cursor_shape?.(this.termPtr)??0;return{row:this.wasm.exports.get_cursor_row(this.termPtr),col:this.wasm.exports.get_cursor_col(this.termPtr),visible:this.wasm.exports.get_cursor_visible(this.termPtr)!==0,shape:e===1?`underline`:e===2?`bar`:`block`,blinking:(this.wasm.exports.get_cursor_blinking?.(this.termPtr)??0)!==0}}cursorKeysApp(){return this._disposed||this.termPtr===0?!1:this.wasm.exports.cursor_keys_app(this.termPtr)!==0}bracketedPaste(){return this._disposed||this.termPtr===0?!1:this.wasm.exports.bracketed_paste(this.termPtr)!==0}usingAltScreen(){return this._disposed||this.termPtr===0?!1:this.wasm.exports.using_alt_screen(this.termPtr)!==0}mouseTracking(){if(this._disposed||this.termPtr===0)return 0;let e=this.wasm.exports.mouse_tracking(this.termPtr);return e===1e3||e===1002||e===1003?e:0}mouseSgr(){return this._disposed||this.termPtr===0?!1:this.wasm.exports.mouse_sgr(this.termPtr)!==0}mouseEncoding(){if(this._disposed||this.termPtr===0)return null;let e=this.wasm.exports.mouse_encoding?.(this.termPtr);if(e===void 0)return this.mouseSgr()?`sgr`:null;switch(e){case 0:return`x10`;case 1:return`utf8`;case 2:return`sgr`;case 3:return`urxvt`;case 4:return`sgr-pixels`;default:return null}}focusEvents(){return this._disposed||this.termPtr===0?!1:this.wasm.exports.focus_events(this.termPtr)!==0}synchronizedOutput(){return this._disposed||this.termPtr===0?!1:this.wasm.exports.synchronized_output(this.termPtr)!==0}synchronizedOutputGeneration(){return this._disposed||this.termPtr===0?0:this.wasm.exports.synchronized_output_generation(this.termPtr)}kittyKeyboardFlags(){return this._disposed||this.termPtr===0?0:this.wasm.exports.kitty_keyboard_flags?.(this.termPtr)??0}getGraphicsState(){if(this._disposed||this.termPtr===0)return null;let e=this.wasm.exports.graphics_generation?.(this.termPtr),t=this.wasm.exports.graphics_image_count?.(this.termPtr)??0,n=this.wasm.exports.graphics_placement_count?.(this.termPtr)??0;if(e===void 0||!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||!Number.isSafeInteger(n)||t<0||n<0||t>16384||n>16384)return null;let r=t,i=n;if(!Number.isSafeInteger(r)||!Number.isSafeInteger(i))return null;let a=r*16+i*60;if(!Number.isSafeInteger(a))return null;if(a===0){this._graphicsBufPtr!==0&&d(this.wasm,this._graphicsBufPtr,this._graphicsBufSize),this._graphicsBufPtr=0,this._graphicsBufSize=0;let t={generation:e,images:[],placements:[]};return this._graphicsState=t,k(t)}if((a!==this._graphicsBufSize||this._graphicsBufPtr===0)&&(this._graphicsBufPtr!==0&&d(this.wasm,this._graphicsBufPtr,this._graphicsBufSize),this._graphicsBufSize=a,this._graphicsBufPtr=u(this.wasm,a)),this._graphicsBufPtr===0)return null;try{let t=f(this.wasm,this.termPtr,this._graphicsBufPtr,r),n=p(this.wasm,this.termPtr,this._graphicsBufPtr+r*16,i),a={generation:e,images:t.map(e=>({...e})),placements:n.map(e=>({...e}))};return this._graphicsState=a,k(a)}catch{return null}}getGraphicsImage(e,t){if(this._disposed||this.termPtr===0)return null;let n=(this._graphicsState??this.getGraphicsState())?.images.find(n=>n.imageId===e&&n.version===t);if(!n||!this.wasm.exports.graphics_image_size||!this.wasm.exports.graphics_image_copy)return null;let r;try{r=this.wasm.exports.graphics_image_size(this.termPtr,e,t)}catch{return null}let i=n.width*n.height*4;if(!Number.isSafeInteger(r)||r<=0||!Number.isSafeInteger(i)||r!==i)return null;let a=u(this.wasm,r);if(a===0)return null;try{let i=this.wasm.exports.graphics_image_copy(this.termPtr,e,t,a,r);if(i!==r)return null;let o=new Uint8Array(this.wasm.exports.memory.buffer,a,i).slice();return{imageId:e,version:t,width:n.width,height:n.height,rgba:o}}catch{return null}finally{d(this.wasm,a,r)}}getResourceState(){let e=O(this._options);if(this._disposed||!this.termPtr||!this.wasm.exports.graphics_image_count)return{};let t=this.getGraphicsState(),n=this.wasm.exports.graphics_bytes_used?.(this.termPtr)??0,r=this.wasm.exports.graphics_capacity?.(this.termPtr)??e,i=this.wasm.exports.graphics_rejected?.(this.termPtr)??0,a=this.wasm.exports.graphics_evicted?.(this.termPtr)??0;return{graphics:{capacity:Number.isSafeInteger(r)?r:e,used:Number.isSafeInteger(n)?n:0,imageCount:t?.images.length??0,placementCount:t?.placements.length??0,rejected:Number.isSafeInteger(i)?i:0,evicted:Number.isSafeInteger(a)?a:0,saturated:e>0&&n>=e}}}dispose(){this._disposed||(this._disposed=!0,this._deinitTerminal(),this._cols=0,this._rows=0)}_deinitTerminal(){if(this._positionOwner={},this.termPtr!==0)try{this.wasm.exports.deinit(this.termPtr)}catch{}this.termPtr=0;for(let[e,t]of[[this._viewportBufPtr,this._viewportBufSize],[this._scrollbackBufPtr,this._scrollbackBufSize],[this._graphemeBufPtr,this._graphemeBufSize],[this._hyperlinkBufPtr,this._hyperlinkBufSize],[this._graphicsBufPtr,this._graphicsBufSize]])e!==0&&d(this.wasm,e,t);this._viewportBufPtr=this._scrollbackBufPtr=this._graphemeBufPtr=this._hyperlinkBufPtr=this._graphicsBufPtr=0,this._viewportBufSize=this._scrollbackBufSize=this._graphicsBufSize=0,this._viewportView=this._scrollbackView=null,this._scrollbackOffset=-1,this._scrollbackLen=0,this._viewportStale=!0,this._graphicsState=null}getTitle(){if(this._disposed||this.termPtr===0)return null;let{get_title_len:e,get_title_ptr:t,memory:n}=this.wasm.exports;if(!e||!t)return null;let r=e(this.termPtr);return r<0?null:new TextDecoder().decode(new Uint8Array(n.buffer,t(this.termPtr),r))}getBellCount(){return this._disposed||this.termPtr===0?0:this.wasm.exports.get_bell_count?.(this.termPtr)??0}getWorkingDirectory(){if(this._disposed||this.termPtr===0)return null;let{get_working_directory_len:e,get_working_directory_ptr:t,memory:n}=this.wasm.exports;if(!e||!t)return null;let r=e(this.termPtr);return!Number.isInteger(r)||r<0||r>2047?null:new TextDecoder(`utf-8`,{ignoreBOM:!0}).decode(new Uint8Array(n.buffer,t(this.termPtr),r))}getClipboardWrite(){if(this._disposed||this.termPtr===0)return null;let{get_clipboard_write_len:e,get_clipboard_write_ptr:t,memory:n}=this.wasm.exports;if(!e||!t)return null;let r=e(this.termPtr);return r<0?null:new TextDecoder(`utf-8`,{ignoreBOM:!0}).decode(new Uint8Array(n.buffer,t(this.termPtr),r))}findPrompt(e,t){let n=this.wasm.exports.find_prompt;if(this._disposed||this.termPtr===0||!n||!Number.isInteger(e)||e<0||e>w||t!==-1&&t!==1)return null;let r=n(this.termPtr,e,t);return Number.isInteger(r)&&r>=0?r:null}getShellIntegrationState(){if(this._disposed||this.termPtr===0)return null;let{get_shell_phase:e,get_shell_exit_code:t}=this.wasm.exports;if(!e||!t)return null;let n=e(this.termPtr);if(!Number.isInteger(n)||n<0||n>=x.length)return null;let r=t(this.termPtr);return{phase:x[n],exitCode:Number.isInteger(r)?r:null}}getResponse(){if(this._disposed||this.termPtr===0)return null;let e=4096,t=u(this.wasm,e);if(t===0)return null;let n=this.wasm.exports.read_response(this.termPtr,t,e);if(n===0)return d(this.wasm,t,e),null;let r=new Uint8Array(this.wasm.exports.memory.buffer,t,n),i=new TextDecoder().decode(r);return d(this.wasm,t,e),i}getScrollbackCount(){return this._disposed||this.termPtr===0?0:this.wasm.exports.get_scrollback_count(this.termPtr)}getScrollbackDiscardedCount(){return this._disposed||this.termPtr===0?0:this.wasm.exports.get_scrollback_discarded_count(this.termPtr)}getScrollbackCell(e,t){if(this._disposed||this.termPtr===0)return E;let n=this._ensureScrollbackLine(e),r=this._scrollbackView;if(!r||t>=n)return E;let i=l(r,t*this._cellBytes,this._cellBytes),a={char:i.codepoint||32,fg:g,bg:g,flags:i.flags,width:i.width};return i.underlineStyle!==void 0&&(a.underlineStyle=i.underlineStyle),i.underlineRgb!==void 0&&(a.underlineRgb=i.underlineRgb),i.hasGrapheme&&(a.chars=this._readScrollbackGrapheme(e,t)),i.spacerHead&&(a.spacerHead=!0),i.hasHyperlink&&Object.assign(a,this._readHyperlink(e,t,!0)),i.colorFlags&1&&(a.fgRgb=T(i.fgR,i.fgG,i.fgB)),i.colorFlags&2&&(a.bgRgb=T(i.bgR,i.bgG,i.bgB)),a}getScrollbackLineLen(e){return this._disposed||this.termPtr===0?0:this._ensureScrollbackLine(e)}getScrollbackRowMetadata(e){return this._readRowMetadata(this.wasm.exports.get_scrollback_row_wraps,e)}getUnhandledSequences(){return[]}_readRowMetadata(e,t){if(this._disposed||this.termPtr===0||!e||!Number.isInteger(t)||t<0||t>w)return null;let n=e(this.termPtr,t);return n<0?null:{wrapsToNext:!!(n&1),continuesPrevious:!!(n&2)}}setThemeColors(e){let t=[e.foreground,e.background,e.cursor,...e.palette];if(e.palette.length!==16||t.some(e=>!Number.isInteger(e)||e<0||e>16777215))throw RangeError(`Theme colors must be 24-bit RGB values with exactly 16 palette entries`);if(this._disposed)return;this._themeColors={...e,palette:[...e.palette]},this._foregroundRgb=e.foreground,this._backgroundRgb=e.background;let n=this.wasm.exports.set_theme_colors;if(!this.termPtr||!n)return;let r=t.length*4,i=u(this.wasm,r);try{let e=new DataView(this.wasm.exports.memory.buffer,i,r);t.forEach((t,n)=>e.setUint32(n*4,t,!0)),n(this.termPtr,i),this._invalidate()}finally{d(this.wasm,i,r)}}_invalidate(){this._viewportStale=!0,this._scrollbackOffset=-1,this._graphicsState=null}_decodeGrapheme(e){if(e!==0&&this._graphemeBufPtr!==0)return new TextDecoder().decode(new Uint8Array(this.wasm.exports.memory.buffer,this._graphemeBufPtr,e))}_ensureGraphemeBuffer(e){e<=this._graphemeBufSize||(this._graphemeBufPtr!==0&&d(this.wasm,this._graphemeBufPtr,this._graphemeBufSize),this._graphemeBufSize=e,this._graphemeBufPtr=u(this.wasm,e))}_ensureHyperlinkBuffer(e){e<=this._hyperlinkBufSize||(this._hyperlinkBufPtr!==0&&d(this.wasm,this._hyperlinkBufPtr,this._hyperlinkBufSize),this._hyperlinkBufSize=e,this._hyperlinkBufPtr=u(this.wasm,e))}_readHyperlink(e,t,n){if(this._hyperlinkBufPtr===0)return;let r=n?this.wasm.exports.get_scrollback_hyperlink:this.wasm.exports.get_viewport_hyperlink,i=r(this.termPtr,e,t,this._hyperlinkBufPtr,this._hyperlinkBufSize);if(i>this._hyperlinkBufSize){if(this._ensureHyperlinkBuffer(i),this._hyperlinkBufPtr===0)return;i=r(this.termPtr,e,t,this._hyperlinkBufPtr,this._hyperlinkBufSize)}if(i===0||i>this._hyperlinkBufSize)return;let[a,o=``,s=``]=new TextDecoder().decode(new Uint8Array(this.wasm.exports.memory.buffer,this._hyperlinkBufPtr,i)).split(`\0`);if(!a)return;let c=o?`e\0${o}\0${a}`:`g\0${s}\0${a}`;return{linkUri:a,linkId:o||void 0,linkKey:c}}_readGrapheme(e,t){if(this._graphemeBufPtr===0||!this.wasm.exports.get_viewport_grapheme)return;let n=this.wasm.exports.get_viewport_grapheme(this.termPtr,e,t,this._graphemeBufPtr,this._graphemeBufSize);return n>this._graphemeBufSize&&(this._ensureGraphemeBuffer(n),n=this.wasm.exports.get_viewport_grapheme(this.termPtr,e,t,this._graphemeBufPtr,this._graphemeBufSize)),this._decodeGrapheme(n)}_readScrollbackGrapheme(e,t){if(this._graphemeBufPtr===0||!this.wasm.exports.get_scrollback_grapheme)return;let n=this.wasm.exports.get_scrollback_grapheme(this.termPtr,e,t,this._graphemeBufPtr,this._graphemeBufSize);return n>this._graphemeBufSize&&(this._ensureGraphemeBuffer(n),n=this.wasm.exports.get_scrollback_grapheme(this.termPtr,e,t,this._graphemeBufPtr,this._graphemeBufSize)),this._decodeGrapheme(n)}_allocViewportBuffer(){this._viewportBufPtr!==0&&d(this.wasm,this._viewportBufPtr,this._viewportBufSize),this._viewportBufSize=this._cols*this._rows*this._cellBytes,this._viewportBufPtr=u(this.wasm,this._viewportBufSize),this._viewportView=null,this._viewportStale=!0,this._scrollbackBufPtr!==0&&d(this.wasm,this._scrollbackBufPtr,this._scrollbackBufSize),this._scrollbackBufSize=this._cols*this._cellBytes,this._scrollbackBufPtr=u(this.wasm,this._scrollbackBufSize),this._scrollbackView=null,this._scrollbackOffset=-1}_ensureScrollbackLine(e){if(this._scrollbackBufPtr===0)return 0;if(this._scrollbackOffset!==e){let t=this._cellBytes===20?this.wasm.exports.get_scrollback_line_v2:this.wasm.exports.get_scrollback_line;this._scrollbackLen=t(this.termPtr,e,this._scrollbackBufPtr,this._cols),this._scrollbackOffset=e}return this._scrollbackView?.buffer!==this.wasm.exports.memory.buffer&&(this._scrollbackView=new DataView(this.wasm.exports.memory.buffer,this._scrollbackBufPtr,this._scrollbackBufSize)),this._scrollbackLen}_ensureViewport(){this._viewportStale&&=(this.wasm.exports.update(this.termPtr),(this._cellBytes===20?this.wasm.exports.get_viewport_v2:this.wasm.exports.get_viewport)(this.termPtr,this._viewportBufPtr),!1),this._viewportView?.buffer!==this.wasm.exports.memory.buffer&&(this._viewportView=new DataView(this.wasm.exports.memory.buffer,this._viewportBufPtr,this._viewportBufSize))}};export{A as GhosttyCore,S as MAX_IMAGE_BYTES};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";var t,n=new Map,r=4;function i(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n.buffer}async function a(e){let t=await fetch(e);if(!t.ok)throw Error(`[wterm] Failed to load WASM from ${e}: ${t.status} ${t.statusText}`);if(typeof WebAssembly.compileStreaming==`function`&&t.headers.get(`Content-Type`)?.trim().toLowerCase()===`application/wasm`)try{return await WebAssembly.compileStreaming(t.clone())}catch{}return WebAssembly.compile(await t.arrayBuffer())}function o(o){if(!o)return t??=e(async()=>{let{WASM_BASE64:e}=await import(`./wasm-inline-DSUyFn1L.js`);return{WASM_BASE64:e}},[]).then(({WASM_BASE64:e})=>WebAssembly.compile(i(e))).catch(e=>{throw t=void 0,e}),t;typeof document<`u`?o=new URL(o,document.baseURI).href:typeof location<`u`&&(o=new URL(o,location.href).href);let s=o,c=n.get(s);if(c)return n.delete(s),n.set(s,c),c;let l=a(s).catch(e=>{throw n.get(s)===l&&n.delete(s),e});return n.set(s,l),n.size>r&&n.delete(n.keys().next().value),l}var s=class e{get dv(){return this._dvBuffer!==this.memory.buffer&&(this._dvBuffer=this.memory.buffer,this._dv=new DataView(this.memory.buffer)),this._dv}constructor(e){this.gridPtr=0,this.dirtyPtr=0,this.writeBufferPtr=0,this.cellSize=12,this.gridStride=0,this.encoder=new TextEncoder,this.decoder=new TextDecoder,this._dvBuffer=null,this.linkCache=new Map,this.exports=e.exports,this.memory=this.exports.memory}static async load(t){let n=await o(t),r=await WebAssembly.instantiate(n);return new e(r)}init(e,t){this.exports.init(e,t),this.linkCache.clear(),this._updatePointers()}_updatePointers(){this.gridPtr=this.exports.getGridPtr(),this.dirtyPtr=this.exports.getDirtyPtr(),this.writeBufferPtr=this.exports.getWriteBuffer(),this.cellSize=this.exports.getCellSize(),this.gridStride=this.exports.getGridStride()}writeString(e,t){let n=this.encoder.encode(e);this.writeRaw(n,t)}writeRaw(e,t){let n=0;for(;n<e.length;){let r=Math.min(e.length-n,8192);new Uint8Array(this.memory.buffer,this.writeBufferPtr,8192).set(e.subarray(n,n+r)),this.exports.writeBytes(r),this._updatePointers(),n+=r,t?.()}}getCell(e,t){let n=this.gridPtr+(e*this.gridStride+t)*this.cellSize,r=this.dv,i={char:r.getUint32(n,!0),fg:r.getUint16(n+4,!0),bg:r.getUint16(n+6,!0),flags:r.getUint8(n+8),width:r.getUint8(n+9)};return Object.assign(i,this._readLink(r.getUint16(n+10,!0))),i}isDirtyRow(e){return new Uint8Array(this.memory.buffer,this.dirtyPtr,this.getRows())[e]!==0}clearDirty(){this.exports.clearDirty()}getCursor(){let e=this.exports.getCursorShape?.()??0;return{row:this.exports.getCursorRow(),col:this.exports.getCursorCol(),visible:this.exports.getCursorVisible()!==0,shape:e===1?`underline`:e===2?`bar`:`block`,blinking:(this.exports.getCursorBlinking?.()??0)!==0}}getCols(){return this.exports.getCols()}getRows(){return this.exports.getRows()}cursorKeysApp(){return this.exports.getCursorKeysApp()!==0}bracketedPaste(){return this.exports.getBracketedPaste()!==0}usingAltScreen(){return this.exports.getUsingAltScreen()!==0}mouseTracking(){let e=this.exports.getMouseTracking();return e===1e3||e===1002||e===1003?e:0}mouseSgr(){return this.exports.getMouseSgr()!==0}mouseEncoding(){switch(this.exports.getMouseEncoding?.()){case 0:return`x10`;case 1:return`utf8`;case 2:return`sgr`;case 3:return`urxvt`;case 4:return`sgr-pixels`;case void 0:return this.mouseSgr()?`sgr`:`x10`;default:return null}}focusEvents(){return this.exports.getFocusEvents()!==0}synchronizedOutput(){return this.exports.getSynchronizedOutput()!==0}synchronizedOutputGeneration(){return this.exports.getSynchronizedOutputGeneration()}kittyKeyboardFlags(){return this.exports.getKittyKeyboardFlags?.()??0}getTitle(){if(this.exports.getTitleChanged()===0)return null;let e=this.exports.getTitlePtr(),t=this.exports.getTitleLen(),n=new Uint8Array(this.memory.buffer,e,t);return this.decoder.decode(n)}getBellCount(){return this.exports.getBellCount?.()??0}getResponse(){let e=this.exports.getResponseLen();if(e===0)return null;let t=this.exports.getResponsePtr(),n=new Uint8Array(this.memory.buffer,t,e),r=this.decoder.decode(n);return this.exports.clearResponse(),r}getResourceState(){let e=this.exports.getHyperlinkCapacity?.(),t=this.exports.getHyperlinkCount?.(),n=this.exports.getHyperlinkRejectedCount?.();return e===void 0||t===void 0||n===void 0?{}:{hyperlinks:{capacity:e,used:t,rejected:n,saturated:t>=e}}}getScrollbackCount(){return this.exports.getScrollbackCount()}getScrollbackDiscardedCount(){return this.exports.getScrollbackDiscardedCount()}getScrollbackCell(e,t){let n=this.exports.getScrollbackLine(e)+t*this.cellSize,r=this.dv,i={char:r.getUint32(n,!0),fg:r.getUint16(n+4,!0),bg:r.getUint16(n+6,!0),flags:r.getUint8(n+8),width:r.getUint8(n+9)};return Object.assign(i,this._readLink(r.getUint16(n+10,!0))),i}getScrollbackLineLen(e){return this.exports.getScrollbackLineLen(e)}getUnhandledSequences(){let e=this.exports.getDebugLogCount();if(e===0)return[];let t=this.exports.getDebugLogPtr(),n=this.exports.getDebugLogEntrySize(),r=this.exports.getDebugLogMax(),i=Math.min(e,r),a=new DataView(this.memory.buffer),o=[],s=e>=r?e%r:0;for(let e=0;e<i;e++){let i=t+(s+e)%r*n,c=a.getUint8(i);if(c===0)continue;let l=a.getUint8(i+1),u=a.getUint8(i+2),d=[];for(let e=0;e<Math.min(u,4);e++)d.push(a.getUint16(i+4+e*2,!0));o.push({final:String.fromCharCode(c),private:l?String.fromCharCode(l):``,paramCount:u,params:d})}return o}resize(e,t){this.exports.resizeTerminal(e,t),this._updatePointers()}_readLink(e){if(e===0)return;let t=this.linkCache.get(e);if(t)return t;let n=this.exports.getLinkUriLen(e);if(n===0)return;let r=this.decoder.decode(new Uint8Array(this.memory.buffer,this.exports.getLinkUriPtr(e),n)),i=this.exports.getLinkIdLen(e),a=i===0?void 0:this.decoder.decode(new Uint8Array(this.memory.buffer,this.exports.getLinkIdPtr(e),i)),o={linkUri:r,linkId:a,linkKey:a?`e\0${a}\0${r}`:`b\0${e}`};return this.linkCache.set(e,o),o}};function c(e,t){let n=0;for(let r=0;r<e.length&&n<=t;r++){let t=e.charCodeAt(r);t<128?n++:t<2048?n+=2:t>=55296&&t<=56319&&r+1<e.length&&e.charCodeAt(r+1)>=56320&&e.charCodeAt(r+1)<=57343?(n+=4,r++):n+=3}return n}var l=class{constructor(e={}){if(this._ws=null,this._connectionUrl=null,this._reconnectTimer=null,this._drainTimer=null,this._reconnectDelay=1e3,this._closed=!1,this._buffer=[],this._queuedBytes=0,this._backpressured=!1,this._socketPaused=!1,this.url=e.url??null,this._connectionUrl=this.url,this.reconnect=e.reconnect!==!1,this.maxReconnectDelay=e.maxReconnectDelay??3e4,this.maxBufferedBytes=e.maxBufferedBytes??1048576,this.maxBufferedMessages=e.maxBufferedMessages??1024,this.highWaterMark=e.highWaterMark??Math.min(65536,this.maxBufferedBytes),this.lowWaterMark=e.lowWaterMark??Math.floor(this.highWaterMark/4),!Number.isSafeInteger(this.maxBufferedBytes)||this.maxBufferedBytes<=0||!Number.isSafeInteger(this.maxBufferedMessages)||this.maxBufferedMessages<=0||!Number.isSafeInteger(this.highWaterMark)||this.highWaterMark<=0||this.highWaterMark>this.maxBufferedBytes||!Number.isSafeInteger(this.lowWaterMark)||this.lowWaterMark<0||this.lowWaterMark>=this.highWaterMark)throw RangeError(`Invalid WebSocket buffer limits`);this.onData=e.onData??null,this.onOpen=e.onOpen??null,this.onClose=e.onClose??null,this.onError=e.onError??null,this.onBackpressure=e.onBackpressure??null}connect(e){let t=e??this.url;if(!t)throw Error(`No WebSocket URL provided`);let n=this._ws;if(!this._closed&&t===this._connectionUrl&&n&&(n.readyState===WebSocket.CONNECTING||n.readyState===WebSocket.OPEN))return;let r=new WebSocket(t),i=this._connectionUrl??this.url,a=i!==null&&t!==i;this._cancelTimers(),this._ws=r,this._closed=!1,this._socketPaused=!1,this.url=t,this._connectionUrl=t,a&&this._clearBuffer(),n&&(this._detach(n),n.close()),r.binaryType=`arraybuffer`,r.onopen=()=>{this._ws!==r||this._closed||(this._reconnectDelay=1e3,this._flushBuffer(),this._ws===r&&!this._closed&&this.onOpen?.())},r.onmessage=e=>{this._ws!==r||this._closed||this.onData?.(e.data instanceof ArrayBuffer?new Uint8Array(e.data):e.data)},r.onclose=()=>{if(this._ws===r){this._ws=null,this._detach(r),this._cancelTimers(),this._socketPaused=!1,this.reconnect&&!this._closed&&this._scheduleReconnect();try{this._updatePressure()}finally{this.onClose?.()}}},r.onerror=e=>{if(!(this._ws!==r||this._closed))try{this.onError?.(e)}finally{this._ws===r&&r.close()}},this._updatePressure()}send(e){if(this._closed)throw Error(`WebSocket transport is closed`);let t=this.maxBufferedBytes-this.bufferedAmount;if((typeof e==`string`?c(e,t):e.byteLength)>t||this._buffer.length>=this.maxBufferedMessages)throw RangeError(`WebSocket send buffer limit exceeded`);let n=typeof e==`string`?new TextEncoder().encode(e):new Uint8Array(e);this._buffer.push(n),this._queuedBytes+=n.byteLength,this._flushBuffer()}close(){this._closed=!0,this._cancelTimers(),this._clearBuffer(),this._socketPaused=!1;try{this._ws?.close()}finally{this._updatePressure()}}get connected(){return!this._closed&&this._ws?.readyState===WebSocket.OPEN}get bufferedAmount(){return this._queuedBytes+(this.connected?this._ws.bufferedAmount:0)}get queuedBytes(){return this._queuedBytes}get queuedMessages(){return this._buffer.length}get backpressured(){return this._backpressured}_flushBuffer(){let e=this._ws;if(e&&this.connected){this._socketPaused&&e.bufferedAmount<=this.lowWaterMark&&(this._socketPaused=!1);for(let t=0;!this._socketPaused&&this._buffer.length&&t<64;t++){let t=this._buffer[0];if(e.bufferedAmount>0&&e.bufferedAmount+t.byteLength>this.highWaterMark){this._socketPaused=!0;break}e.send(t),this._buffer.shift(),this._queuedBytes-=t.byteLength,e.bufferedAmount>=this.highWaterMark&&(this._socketPaused=!0)}(this._buffer.length||e.bufferedAmount)&&this._drainTimer===null&&(this._drainTimer=setTimeout(()=>{this._drainTimer=null,this._flushBuffer()},16))}this._updatePressure()}_updatePressure(){let e=this.bufferedAmount,t=this._buffer.length>=this.maxBufferedMessages,n=this._backpressured?e>this.lowWaterMark||t:e>=this.highWaterMark||t;n!==this._backpressured&&(this._backpressured=n,this.onBackpressure?.(n))}_clearBuffer(){this._buffer=[],this._queuedBytes=0}_cancelTimers(){this._reconnectTimer!==null&&clearTimeout(this._reconnectTimer),this._drainTimer!==null&&clearTimeout(this._drainTimer),this._reconnectTimer=this._drainTimer=null}_detach(e){e.onopen=e.onmessage=e.onclose=e.onerror=null}_scheduleReconnect(){this._reconnectTimer=setTimeout(()=>{this._reconnectTimer=null,!this._closed&&this.reconnect&&this.connect()},this._reconnectDelay),this._reconnectDelay=Math.min(this._reconnectDelay*2,this.maxReconnectDelay)}},u=33554432,d=32768;function f(e){return e!==void 0&&Number.isFinite(e)&&e>0}function p(e){return Number.isSafeInteger(e)&&e>=0}function m(...e){let t=1;for(let n of e)if(!p(n)||(t*=n,!Number.isSafeInteger(t)))return null;return t}function h(e){return`${e.placementKey}:${e.imageId}:${e.imageVersion}`}var g=class{constructor(e,t={}){this.layer=null,this.flowSpacer=null,this.canvases=new Map,this.canvasAllocations=new Map,this.canvasBytes=0,this.cache=new Map,this.generation=-1,this.flowRows=new Map,this.container=e,this.maxImageWidth=f(t.maxImageWidth)?t.maxImageWidth:void 0,this.maxImageHeight=f(t.maxImageHeight)?t.maxImageHeight:void 0}setup(){this.destroy();let e=document.createElement(`div`);e.className=`term-image-flow-spacer`,e.setAttribute(`aria-hidden`,`true`),this.container.appendChild(e),this.flowSpacer=e;let t=document.createElement(`div`);t.className=`term-images`,t.setAttribute(`aria-hidden`,`true`),t.setAttribute(`role`,`presentation`),this.container.appendChild(t),this.layer=t,this.generation=-1}reconcile(e,t){let n=e.getGraphicsState,r=e.getGraphicsImage;if(!n||!r||!this.layer){this.clearCanvases(),this.clearFlowReservations();return}let i;try{i=n.call(e)}catch{this.clearCanvases(),this.clearFlowReservations();return}if(!i||!Number.isSafeInteger(i.generation)||!Array.isArray(i.images)||!Array.isArray(i.placements)){this.clearCanvases(),this.clearFlowReservations();return}let a=new Map;for(let e of i.images)Number.isSafeInteger(e.imageId)&&e.imageId>0&&Number.isSafeInteger(e.version)&&e.version>0&&Number.isSafeInteger(e.width)&&Number.isSafeInteger(e.height)&&e.width>0&&e.height>0&&a.set(`${e.imageId}:${e.version}`,e);let o=this.visiblePixelArea(e,t),s=o?this.reconcileFlowReservations(e,i,t,a,o):new Map;o||this.clearFlowReservations();let c=o?this.visiblePlacements(e,i,t,a,o,s):[],l=new Set,u=new Map;for(let e of c){let t=h(e),n=`${e.imageId}:${e.imageVersion}`;a.has(n)&&(l.add(t),u.set(n,(u.get(n)??0)+1))}let d=i.generation!==this.generation;this.generation=i.generation;for(let[e,t]of this.canvases)l.has(e)||this.removeCanvas(e);for(let[e,t]of this.cache)u.has(e)?t.refs=u.get(e):this.cache.delete(e);for(let n of c){let i=h(n),c=`${n.imageId}:${n.imageVersion}`;if(!l.has(i))continue;let f=a.get(c);if(!f)continue;let p=this.cache.get(c);if(!p){let t;try{t=r.call(e,n.imageId,n.imageVersion)}catch{t=null}if(!t||!this.validImage(t,f.width,f.height))continue;p={data:t,refs:u.get(c)??0},this.cache.set(c,p)}let m=this.canvases.get(i),g=m??this.createCanvas(i);if(g){if(d||!m){let e=!1;try{e=this.paint(g,i,p.data,n,t,o,s.get(n.row)??0)}catch{e=!1}e||this.removeCanvas(i)}else this.position(g,n,t,s.get(n.row)??0)}}}destroy(){this.clearCanvases(),this.layer?.remove(),this.flowSpacer?.remove(),this.layer=null,this.flowSpacer=null,this.cache.clear(),this.generation=-1,this.clearFlowReservations()}createCanvas(e){if(!this.layer)return null;let t=document.createElement(`canvas`);return t.className=`term-image`,t.setAttribute(`aria-hidden`,`true`),t.tabIndex=-1,t.draggable=!1,this.layer.appendChild(t),this.canvases.set(e,t),t}clearCanvases(){for(let e of this.canvases.keys())this.removeCanvas(e);this.canvasAllocations.clear(),this.canvasBytes=0,this.cache.clear()}removeCanvas(e){this.canvases.get(e)?.remove(),this.canvases.delete(e);let t=this.canvasAllocations.get(e)??0;this.canvasAllocations.delete(e),this.canvasBytes=Math.max(0,this.canvasBytes-t)}reconcileFlowReservations(e,t,n,r,i){let a,o;try{o=e.getRows(),a=n.scrollbackCount+o}catch{return this.flowRows.size>0&&this.clearFlowReservations(),new Map}if(!Number.isSafeInteger(o)||o<0||!Number.isSafeInteger(a)||a<0)return this.flowRows.size>0&&this.clearFlowReservations(),new Map;let s=new Map;for(let e of t.placements){if(!this.validPlacement(e,a)||e.rows!==0||e.row<n.scrollbackCount)continue;let t=r.get(`${e.imageId}:${e.imageVersion}`);if(!t)continue;let o=this.destinationSize(e,e.sourceWidth||t.width,e.sourceHeight||t.height,n,i);if(!o)continue;let c=e.offsetY+o.height;f(c)&&s.set(e.row,Math.max(s.get(e.row)??0,c))}if(s.size===0)return this.flowRows.size>0&&this.clearFlowReservations(),new Map;this.clearFlowReservations();let c=this.container.querySelectorAll(`.term-row:not(.term-scrollback-row)`);for(let e of c)e.style.transform=``;let l=new Map,u=0,d=n.scrollbackCount;for(let e=0;e<o;e++){let t=d+e;u>0&&l.set(t,u);let n=s.get(t)??0,r=c[e],i=u+n;r&&i>0&&(r.style.transform=`translateY(${i}px)`),u+=n}return this.flowSpacer&&(this.flowSpacer.style.height=`${u}px`),this.container.parentElement?.classList.toggle(`has-image-flow`,u>0),this.flowRows=s,l}clearFlowReservations(){if(this.flowRows.size===0){this.flowSpacer?.style.setProperty(`height`,`0px`),this.container.parentElement?.classList.remove(`has-image-flow`);return}let e=this.container.querySelectorAll(`.term-row:not(.term-scrollback-row)`);for(let t of e)t.style.transform=``;this.flowSpacer&&(this.flowSpacer.style.height=`0px`),this.container.parentElement?.classList.remove(`has-image-flow`),this.flowRows.clear()}validImage(e,t,n){let r=m(e.width,e.height,4);return Number.isSafeInteger(e.width)&&Number.isSafeInteger(e.height)&&e.width>0&&e.height>0&&e.width===t&&e.height===n&&e.rgba instanceof Uint8Array&&r!==null&&e.rgba.byteLength===r}visiblePlacements(e,t,n,r,i,a){if(!f(n.rowHeight)||!f(n.charWidth)||!Number.isFinite(n.scrollTop))return[];let o;try{o=n.scrollbackCount+e.getRows()}catch{return[]}if(!Number.isSafeInteger(o)||o<0)return[];let s=n.scrollTop-n.overscanRows*n.rowHeight,c=n.scrollTop+Math.max(n.clientHeight,n.rowHeight)+n.overscanRows*n.rowHeight;return t.placements.filter(e=>{if(!this.validPlacement(e,o))return!1;let t=r.get(`${e.imageId}:${e.imageVersion}`);if(!t)return!1;let l=this.destinationSize(e,e.sourceWidth||t.width,e.sourceHeight||t.height,n,i);if(!l)return!1;let u=e.row*n.rowHeight+e.offsetY+(a.get(e.row)??0),d=u+l.height;return Number.isFinite(u)&&Number.isFinite(d)&&u<c&&d>s})}validPlacement(e,t){return typeof e.placementKey==`string`&&e.placementKey.length>0&&p(e.imageId)&&e.imageId>0&&p(e.imageVersion)&&e.imageVersion>0&&p(e.row)&&e.row<t&&p(e.col)&&p(e.offsetX)&&p(e.offsetY)&&p(e.sourceX)&&p(e.sourceY)&&p(e.sourceWidth)&&p(e.sourceHeight)&&p(e.columns)&&p(e.rows)&&Number.isSafeInteger(e.z)&&Number.isSafeInteger(e.row+(e.rows||1))}position(e,t,n,r=0){let i=t.rows===0?t.offsetX:t.col*n.charWidth+t.offsetX,a=t.row*n.rowHeight+t.offsetY+r;Number.isFinite(i)&&(e.style.left=`${i}px`),Number.isFinite(a)&&(e.style.top=`${a}px`)}paint(e,t,n,r,i,a,o=0){if(!this.validPlacement(r,2**53-1))return!1;let s=r.sourceX,c=r.sourceY,l=r.sourceWidth||n.width,u=r.sourceHeight||n.height;if(!Number.isSafeInteger(s)||!Number.isSafeInteger(c)||!Number.isSafeInteger(l)||!Number.isSafeInteger(u)||s<0||c<0||l<=0||u<=0||s+l>n.width||c+u>n.height)return!1;let f=this.destinationSize(r,l,u,i,a);if(!f)return!1;let{width:p,height:h}=f,g=Math.max(1,Math.ceil(p)),_=Math.max(1,Math.ceil(h));if(!Number.isSafeInteger(g)||!Number.isSafeInteger(_)||g>d||_>d)return!1;let v=m(g,_,4);if(v===null||!this.resizeCanvas(e,t,g,_,v))return!1;this.position(e,r,i,o),e.style.width=`${p}px`,e.style.height=`${h}px`,e.style.zIndex=String(r.z),e.style.pointerEvents=`none`;let y=e.getContext(`2d`);if(!y)return!1;let b=document.createElement(`canvas`);b.width=n.width,b.height=n.height;let x=b.getContext(`2d`);if(!x)return!1;let S=new Uint8ClampedArray(n.rgba),C=typeof ImageData<`u`?new ImageData(S,n.width,n.height):x.createImageData?.(n.width,n.height)??{data:S,width:n.width,height:n.height};return`data`in C&&C.data!==S&&C.data.set(S),x.putImageData(C,0,0),y.clearRect(0,0,g,_),y.drawImage(b,s,c,l,u,0,0,g,_),!0}destinationSize(e,t,n,r,i){if(!p(t)||!p(n)||t<=0||n<=0)return null;let a=e.columns*r.charWidth,o=e.rows*r.rowHeight,s=f(a)&&e.columns>0?a:f(o)&&e.rows>0?t/n*o:t,c=f(o)&&e.rows>0?o:f(a)&&e.columns>0?n/t*a:n;if(!f(s)||!f(c)||!Number.isFinite(e.offsetY+c)||!i)return null;let l=Math.min(1,i.width/s,i.height/c,this.maxImageWidth===void 0?1:this.maxImageWidth/s,this.maxImageHeight===void 0?1:this.maxImageHeight/c);return f(l)?{width:s*l,height:c*l}:null}visiblePixelArea(e,t){let n,r;try{n=e.getCols(),r=e.getRows()}catch{return null}if(!p(n)||!p(r)||n<=0||r<=0||!f(t.charWidth)||!f(t.rowHeight))return null;let i=n*t.charWidth,a=r*t.rowHeight;return!f(i)||!f(a)||!Number.isSafeInteger(Math.ceil(i))||!Number.isSafeInteger(Math.ceil(a))?null:{width:Math.min(i,d),height:Math.min(a,d)}}resizeCanvas(e,t,n,r,i){let a=this.canvasAllocations.get(t)??0;if(i>u-this.canvasBytes+a)return!1;try{e.width=n,e.height=r}catch{return!1}return this.canvasBytes=this.canvasBytes-a+i,this.canvasAllocations.set(t,i),!0}};function _(e,t,n){let r=[],i=t;for(let a of e.specialCells)if(!(a.end<=t)){if(a.start>=n)break;i<a.start&&r.push(e.text.slice(i,a.start)),a.omit||r.push(e.text.slice(a.start,a.end)),i=a.end}return i<n&&r.push(e.text.slice(i,n)),r.join(``)}function v(e,t){return y(e,t)?.text??null}function y(e,t){let n=e.ownerDocument.getSelection();if(!n||n.isCollapsed||n.rangeCount!==1)return null;let r=n.getRangeAt(0);if(!e.contains(r.startContainer)||!e.contains(r.endContainer))return null;let i=e.ownerDocument.activeElement;if(i&&(i.tagName===`INPUT`||i.tagName===`TEXTAREA`)){let e=i;if(e.selectionStart!==e.selectionEnd)return null}let a=[],o,s,c;for(let n of t){let{element:t,content:i}=n;if(!r.intersectsNode(t))continue;let l=e.ownerDocument.createRange();l.selectNodeContents(t),t.contains(r.startContainer)&&l.setStart(r.startContainer,r.startOffset),t.contains(r.endContainer)&&l.setEnd(r.endContainer,r.endOffset);let u=e.ownerDocument.createRange();u.selectNodeContents(t),u.setEnd(l.startContainer,l.startOffset);let d=u.toString().length,f=d+l.toString().length;if(t.textContent!==i.text)return null;if(o??={row:n,offset:d},s={row:n,offset:f===i.text.length&&!i.metadata?.wrapsToNext?Math.max(d,i.text.replace(/ +$/,``).length):f},c){if(n.row!==c.row+1)return null;c.content.metadata?.wrapsToNext&&i.metadata?.continuesPrevious||a.push(`
|
|
2
|
+
`)}let p=d===f?``:_(i,d,f);f===i.text.length&&!i.metadata?.wrapsToNext&&(p=p.replace(/ +$/,``)),a.push(p),c=n}return o&&s?{text:a.join(``),first:o,last:s,backward:n.anchorNode!==r.startContainer||n.anchorOffset!==r.startOffset}:null}function b(e,t,n){let r=0;for(let i of e.specialCells){if(t>=i.start&&t<i.end&&!n||t>i.start&&t<=i.end&&n)return{col:i.col,after:n};i.end<=t&&(r+=i.width-(i.end-i.start))}let i=t>0&&(n||t===e.text.length);return{col:t+r-+!!i,after:i}}function x(e,t,n){let r=0;for(let i of e.specialCells){if(t>=i.col&&t<i.col+i.width)return n?i.end:i.start;i.col<t&&(r+=i.end-i.start-i.width)}return t+r+ +!!n}function S(e,t){let n=e.ownerDocument.createTreeWalker(e,4),r;for(;r=n.nextNode();){let e=r.textContent?.length??0;if(t<=e)return[r,t];t-=e}return null}var C=1e3,w=1048576,T=new Set(` '"│\`|:;,()[]{}<>$`);function E(e,t,n){let r=e.getScrollbackCount(),i=r+e.getRows(),a=e.getCols(),o={char:0,fg:256,bg:256,flags:0};if(!Number.isInteger(t.row)||!Number.isInteger(t.col)||t.row<0||t.row>=i||t.col<0||t.col>=a)return null;let s=t=>t.row<r?t.col<e.getScrollbackLineLen(r-t.row-1)?e.getScrollbackCell(r-t.row-1,t.col):o:e.getCell(t.row-r,t.col),c=t=>t<r?e.getScrollbackLineLen(r-t-1)<=a?e.getScrollbackRowMetadata?.(r-t-1):null:e.getRowMetadata?.(t-r),l=e=>e>=0&&e+1<i&&c(e)?.wrapsToNext&&c(e+1)?.continuesPrevious,u=(e,t)=>{let n=e.col+t;if(n>=0&&n<a)return{row:e.row,col:n};let r=e.row+t;return l(Math.min(r,e.row))?{row:r,col:t===1?0:a-1}:null},d={...t};if(s(d).spacerHead)return null;s(d).width===0&&d.col>0&&d.col--;let f=e=>{let t=s(e);return t.chars??String.fromCodePoint(t.char||32)},p=e=>T.has(String.fromCodePoint(e.codePointAt(0)??32)),m=p(f(d)),h=f(d).length,g=1,_=h>w,v=d,y=d,b=e=>{let t=d,r=d;for(;;){let i=u(t,e);if(!i)return r;if(++g>2097152)return _=!0,r;let a=s(i);if(a.width!==0&&!a.spacerHead){let e=a.chars??String.fromCodePoint(a.char||32);if(n===`word`&&p(e)!==m)return r;h+=e.length,r=i}let o=e===-1?i.row:v.row;if((e===1?i.row:d.row)-o>=1e3||h>1048576)return _=!0,r;t=i}};return v=b(-1),_||(y=b(1)),_?null:{start:v,end:y}}var ee=65536;function te(e,t,n){let r=e.getScrollbackCount(),i=r+e.getRows(),a=e.getCols();for(let e of[t,n])if(!Number.isInteger(e.row)||!Number.isInteger(e.col)||e.row<0||e.row>=i||e.col<0||e.col>=a)return null;let o=Math.min(t.row,n.row),s=Math.max(t.row,n.row),c=Math.min(t.col,n.col),l=Math.max(t.col,n.col),u=s-o+1;if(u>1e3||u*(l-c+2)>ee)return null;let d=[],f=[],p=u-1;for(let t=o;t<=s;t++){let n=r-t-1,i=t<r?e.getScrollbackLineLen(n):a,o=a=>a>=i?null:t<r?e.getScrollbackCell(n,a):e.getCell(t-r,a),s=c;s>0&&o(s)?.width===0&&o(s-1)?.width===2&&s--;let u=l+1,m=``;for(let e=s;e<=l;e++){let t=o(e);if(t?.width===0||t?.spacerHead)continue;let n=t?.chars??String.fromCodePoint(t?.char||32);if(p+=n.length,p>1048576)return null;m+=n,u=Math.max(u,Math.min(a,e+(t?.width??1)))}d.push({row:t,left:s,right:u}),f.push(m)}return{rows:d,text:f.join(`
|
|
3
|
+
`)}}var D=C,ne=class{constructor(e){this.terminal=e,this.current=null,this.painted=!0}matches(){let e=this.terminal.ownerDocument.getSelection(),t=this.current?.native;return!!e&&!!t&&e.anchorNode===t.anchorNode&&e.anchorOffset===t.anchorOffset&&e.focusNode===t.focusNode&&e.focusOffset===t.focusOffset}capture(e,t){let n=this.terminal.ownerDocument.activeElement;if(n&&(n.tagName===`INPUT`||n.tagName===`TEXTAREA`)){let e=n;if(e.selectionStart!==e.selectionEnd){this.dispose();return}}if(this.current&&this.matches()||(this.dispose(),!this.painted||!e.trackPosition))return;let r=y(this.terminal,t);if(!r||!r.text.length||r.last.row.row-r.first.row.row>=D||r.text.length>1048576)return;let i=b(r.first.row.content,r.first.offset,!1),a=b(r.last.row.content,r.last.offset,!0),o=e.trackPosition({row:r.first.row.row,col:i.col});if(!o)return;let s=e.trackPosition({row:r.last.row.row,col:a.col});if(!s){o.dispose();return}let c=this.terminal.ownerDocument.getSelection();this.current={start:{pin:o,after:i.after},end:{pin:s,after:a.after},text:r.text,backward:r.backward,native:this.snapshot(c)}}beforeMutation(e,t){this.capture(e,t),this.painted=!1}beforeRender(e,t){this.capture(e,t);let n=this.current?.start.pin.resolve(),r=this.current?.end.pin.resolve();return!n||!r||r.row<n.row||r.row===n.row&&r.col<n.col||r.row-n.row>=D?(this.clear(),null):{start:n,end:r}}afterRender(e,t){this.painted=!0;let n=this.current;if(!n||!t)return;let r=Array.from(e),i=(e,t)=>{let n=r.find(t=>t.row===e.row);return n&&S(n.element,x(n.content,e.col,t))},a=i(t.start,n.start.after),o=i(t.end,n.end.after),s=this.terminal.ownerDocument.getSelection();if(!a||!o||!s){this.clear();return}let c=n.backward?o:a,l=n.backward?a:o;(s.anchorNode!==c[0]||s.anchorOffset!==c[1]||s.focusNode!==l[0]||s.focusOffset!==l[1])&&s.setBaseAndExtent(...c,...l),n.native=this.snapshot(s),y(this.terminal,r)?.text!==n.text&&this.clear()}snapshot(e){return{anchorNode:e.anchorNode,anchorOffset:e.anchorOffset,focusNode:e.focusNode,focusOffset:e.focusOffset}}clear(){this.current&&this.matches()&&this.terminal.ownerDocument.getSelection()?.removeAllRanges(),this.dispose()}dispose(){this.current?.start.pin.dispose(),this.current?.end.pin.dispose(),this.current=null}},re=256,O=`var(--term-app-fg, var(--term-fg))`,k=`var(--term-app-bg, var(--term-bg))`,A=1,ie=2,ae=4,oe=8,se=32,ce=64,le=128,ue=10;function j(e){return`rgb(${e>>16&255},${e>>8&255},${e&255})`}function de(e){if(e===re)return null;if(e<16)return`var(--term-color-${e})`;if(e<232){let t=e-16;return`rgb(${Math.floor(t/36)*51},${Math.floor(t/6)%6*51},${t%6*51})`}let t=(e-232)*10+8;return`rgb(${t},${t},${t})`}function fe(e,t){return t===void 0?de(e):j(t)}function pe(e,t){return t===void 0?de(e):j(t)}function M({fg:e,bg:t,flags:n,fgRgb:r,bgRgb:i,underlineStyle:a,underlineRgb:o}){let s=fe(e,r),c=pe(t,i);n&se&&([s,c]=[c??k,s??O]);let l=``;s&&(l+=`color:${s};`),c&&(l+=`background:${c};`),n&A&&(l+=`font-weight:bold;`),n&ie&&(l+=`opacity:0.5;`),n&ae&&(l+=`font-style:italic;`);let u=[],d=a??(n&oe?`single`:`none`);return d!==`none`&&u.push(`underline`),n&le&&u.push(`line-through`),u.length&&(l+=`text-decoration:${u.join(` `)};`),d!==`none`&&(l+=`text-decoration-style:${d===`curly`?`wavy`:d===`double`||d===`dotted`||d===`dashed`?d:`solid`};text-decoration-skip-ink:none;`,o!==void 0&&(l+=`text-decoration-color:${j(o)};`)),n&ce&&(l+=`visibility:hidden;`),l}function N(e){return e.replace(/(^|;)color:/g,`$1--term-cell-fg:`).replace(/(^|;)background:/g,`$1--term-cell-bg:`)}function P(e){return e===1?``:`--term-span-cols:${e};`}function F(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`)}function I(e,t,n){let r=F(n),i=!t.includes(`text-decoration:underline line-through;`);i||(t=t.replace(`text-decoration:underline line-through;`,`text-decoration:underline;`),r=`<span style="text-decoration:line-through solid currentColor;">${r}</span>`);let a=`<span${e?` class="${e}"`:``}${t?` style="${t}"`:``}>`;return{html:`${a}${r}</span>`,opening:i?a:void 0,text:i?n:void 0}}function me(e){if(e)try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`?t.href:void 0}catch{return}}function he(e){return e.linkUri?e.linkKey??`fallback\0${e.linkId??``}\0${e.linkUri}`:``}function L(e,t,n,r,i){let a=fe(e,r)||O,o=pe(t,i)||k;return n&se?{fg:o,bg:a}:{fg:a,bg:o}}var R=`round(calc(var(--term-row-height) * 0.125), 1px)`,z=`round(calc(var(--term-row-height) * 0.25), 1px)`,B=`round(calc(var(--term-row-height) * 0.375), 1px)`,V=`round(calc(var(--term-row-height) * 0.5), 1px)`,ge=`round(calc(var(--term-row-height) * 0.625), 1px)`,_e=`round(calc(var(--term-row-height) * 0.75), 1px)`,H=`round(calc(var(--term-row-height) * 0.875), 1px)`;function ve(e,t,n){switch(e){case 9600:return`linear-gradient(${t} ${V},${n} ${V})`;case 9601:return`linear-gradient(${n} ${H},${t} ${H})`;case 9602:return`linear-gradient(${n} ${_e},${t} ${_e})`;case 9603:return`linear-gradient(${n} ${ge},${t} ${ge})`;case 9604:return`linear-gradient(${n} ${V},${t} ${V})`;case 9605:return`linear-gradient(${n} ${B},${t} ${B})`;case 9606:return`linear-gradient(${n} ${z},${t} ${z})`;case 9607:return`linear-gradient(${n} ${R},${t} ${R})`;case 9608:return t;case 9609:return`linear-gradient(to right,${t} 87.5%,${n} 87.5%)`;case 9610:return`linear-gradient(to right,${t} 75%,${n} 75%)`;case 9611:return`linear-gradient(to right,${t} 62.5%,${n} 62.5%)`;case 9612:return`linear-gradient(to right,${t} 50%,${n} 50%)`;case 9613:return`linear-gradient(to right,${t} 37.5%,${n} 37.5%)`;case 9614:return`linear-gradient(to right,${t} 25%,${n} 25%)`;case 9615:return`linear-gradient(to right,${t} 12.5%,${n} 12.5%)`;case 9616:return`linear-gradient(to right,${n} 50%,${t} 50%)`;case 9617:return`color-mix(in srgb,${t} 25%,${n})`;case 9618:return`color-mix(in srgb,${t} 50%,${n})`;case 9619:return`color-mix(in srgb,${t} 75%,${n})`;case 9620:return`linear-gradient(${t} ${R},${n} ${R})`;case 9621:return`linear-gradient(to right,${n} 87.5%,${t} 87.5%)`;default:{let r={9622:[!1,!1,!0,!1],9623:[!1,!1,!1,!0],9624:[!0,!1,!1,!1],9625:[!0,!1,!0,!0],9626:[!0,!1,!1,!0],9627:[!0,!0,!0,!1],9628:[!0,!0,!1,!0],9629:[!1,!0,!1,!1],9630:[!1,!0,!0,!1],9631:[!1,!0,!0,!0]}[e];if(!r)return t;let[i,a,o,s]=r;if(i&&a&&o&&s)return t;let c=[],l=[`0 0`,`100% 0`,`0 100%`,`100% 100%`];return r.forEach((e,n)=>{e&&c.push(`linear-gradient(${t},${t}) ${l[n]}/50% 50% no-repeat`)}),c.push(n),c.join(`,`)}}}var ye={9472:`lr`,9474:`ud`,9484:`dr`,9488:`dl`,9492:`ur`,9496:`ul`,9500:`udr`,9508:`udl`,9516:`dlr`,9524:`ulr`,9532:`udlr`,9588:`l`,9589:`u`,9590:`r`,9591:`d`},be={9473:`lr`,9475:`ud`,9487:`dr`,9491:`dl`,9495:`ur`,9499:`ul`,9507:`udr`,9515:`udl`,9523:`dlr`,9531:`ulr`,9547:`udlr`,9592:`l`,9593:`u`,9594:`r`,9595:`d`},xe={9581:`tl`,9582:`tr`,9583:`br`,9584:`bl`},U={};function Se(e,t){let n=`var(--term-box-stroke)`,r=`calc(50% + ${n})`,i=`calc(50% + ${n})`;for(let[a,o]of Object.entries(e)){let e=[];o.includes(`u`)&&o.includes(`d`)?e.push([`center center`,`${n} 100%`]):(o.includes(`u`)&&e.push([`center top`,`${n} ${r}`]),o.includes(`d`)&&e.push([`center bottom`,`${n} ${r}`])),o.includes(`l`)&&o.includes(`r`)?e.push([`center center`,`100% ${n}`]):(o.includes(`l`)&&e.push([`left center`,`${i} ${n}`]),o.includes(`r`)&&e.push([`right center`,`${i} ${n}`])),U[Number(a)]={className:t,style:`background-image:${e.map(()=>`linear-gradient(currentColor,currentColor)`).join(`,`)};background-position:${e.map(([e])=>e).join(`,`)};background-size:${e.map(([,e])=>e).join(`,`)};background-repeat:no-repeat;`}}}Se(ye,`term-box`),Se(be,`term-box term-box-heavy`);for(let[e,t]of Object.entries(xe))U[Number(e)]={className:`term-box term-box-round term-box-round-${t}`,style:``};var Ce=class{get hasImageFlow(){return this.container.parentElement?.classList.contains(`has-image-flow`)??!1}constructor(e,t={}){this.rows=0,this.cols=0,this.rowEls=[],this.prevCursorRow=-1,this.prevCursorCol=-1,this.prevCursorVisible=!1,this.prevRowBg=[],this._scrollbackRowEls=[],this._scrollbackKeys=[],this._scrollbackRowHeight=0,this._scrollbackGapSpacers=[],this._renderedScrollbackCount=-1,this._renderedDiscardedCount=-1,this._scrollbackTopSpacer=null,this._scrollbackBottomSpacer=null,this.rowText=new WeakMap,this.rowParts=new WeakMap,this.rowBackground=new WeakMap,this.selection=null,this.needsSetup=!1,this.colorsChanged=!1,this.painted=!1,this.container=e,this.colorHost=t.colorHost??e,this.graphics=new g(e,t),this.searchLayer=document.createElement(`div`),this.searchLayer.className=`term-search-layer`,this.searchLayer.setAttribute(`aria-hidden`,`true`)}setup(e,t){this.cols=e,this.rows=t,this.container.innerHTML=``,this.rowText=new WeakMap,this.rowParts=new WeakMap,this.rowBackground=new WeakMap,this.rowEls=[],this.prevRowBg=[],this._scrollbackRowEls=[],this._scrollbackKeys=[],this._scrollbackGapSpacers=[],this._renderedScrollbackCount=-1,this._renderedDiscardedCount=-1;let n=document.createDocumentFragment();this._scrollbackTopSpacer=document.createElement(`div`),this._scrollbackTopSpacer.className=`term-scrollback-spacer`,n.appendChild(this._scrollbackTopSpacer),this._scrollbackBottomSpacer=document.createElement(`div`),this._scrollbackBottomSpacer.className=`term-scrollback-spacer`,n.appendChild(this._scrollbackBottomSpacer);for(let e=0;e<t;e++){let e=document.createElement(`div`);e.className=`term-row`,n.appendChild(e),this.rowEls.push(e)}this.container.appendChild(n),this.searchLayer.replaceChildren(),this.container.appendChild(this.searchLayer),this.graphics.setup(),this.prevCursorRow=-1,this.prevCursorCol=-1}_buildRowContent(e,t,n,r,i){let a=[],o=``,s={text:``,specialCells:[],metadata:null},c=(e,t,n=1,r=!1)=>{let i=s.text.length;s.text+=e,(e.length!==n||n>1||r)&&s.specialCells.push({start:i,end:s.text.length,col:t,width:n,omit:r})},l=``,u=``,d=[],f=0,p=``,m,h=``,g,_=n>=this.cols,v=(e,t,n)=>{let r=me(n),i=r?t:``;i!==h&&(h&&a.push({html:o+`</a>`}),i&&(o=`<a class="term-link" href="${F(r)}" target="_blank" rel="noopener noreferrer">`),h=i),h?o+=e.html:a.push(e)},y=e=>{if(!u)return;let t=(e,t,n)=>v(I(e,t,n),p,m);if(r>=f&&r<e){let e=r-f,n=d.slice(0,e).join(``),i=d[e]||` `,a=d.slice(e+1).join(``);n&&t(``,P(e)+l,n),t(`term-cursor`,N(l),i),a&&t(``,P(d.length-e-1)+l,a)}else t(``,P(d.length)+l,u);u=``,d=[]},b=(e,t,n,r,i)=>{v(I(e,t,n),r,i)};for(let e=0;e<this.cols;e++){let i=t(e),a=e<n,o=a?i.char:0,s=a?i.width??1:1,h=a?he(i):``,v=a?i.linkUri:void 0,x=a&&s===0&&e>0&&(t(e-1).width??1)===2;if(_&&!x){let e=L(i.fg,i.bg,i.flags,i.fgRgb,i.bgRgb).bg;i.flags&66||g!==void 0&&g!==e?_=!1:g=e}if(a&&s===0){if(y(e),!x){c(` `,e);let t=M(i),n=e===r;b(n?`term-cursor`:``,n?N(t):t,` `,h,v)}l=``,p=``,m=void 0,u=``,d=[],f=e+1;continue}if(a&&s===2){if(y(e),e+1>=this.cols){c(` `,e);let t=M(i),n=e===r;b(n?`term-cursor`:``,n?N(t):t,` `,h,v),l=``,p=``,m=void 0,u=``,d=[],f=e+1;continue}let t=i.chars??(o>=32?String.fromCodePoint(o):` `);c(t,e,2);let n=M(i),a=r>=e&&r<e+2;b(a?`term-wide term-cursor`:`term-wide`,a?N(n):n,t,h,v),l=``,p=``,m=void 0,u=``,d=[],f=e+2;continue}if(a&&o>=9600&&o<=9631){y(e);let t=i.chars??String.fromCodePoint(o);c(t,e);let n=L(i.fg,i.bg,i.flags,i.fgRgb,i.bgRgb),a=e===r?`term-block term-cursor`:`term-block`,s=ve(o,n.fg,n.bg),g=M(i)+`color:${n.fg};background:${s};`;b(a,e===r?N(g):g,t,h,v),l=``,p=``,m=void 0,u=``,d=[],f=e+1}else{let t=i.chars??(a&&o>=32?String.fromCodePoint(o):` `);c(t,e,1,i.spacerHead===!0);let n=a?M(i):``;if(t.length!==1||t.charCodeAt(0)>126){y(e);let a=e===r,s=U[o],c=s&&t===String.fromCodePoint(o)?s:null,u=c?.className??``;c&&i.flags&A&&(u+=` term-box-bold`),a&&(u+=u?` term-cursor`:`term-cursor`),b(u,(a?N(n):n)+(c?.style??``),t,h,v),l=``,p=``,m=void 0,f=e+1;continue}n!==l||h!==p?(y(e),l=n,p=h,m=v,u=t,d=[t],f=e):(u+=t,d.push(t))}}y(this.cols),h&&a.push({html:o+`</a>`}),this.updateRowParts(e,a),this.rowText.set(e,s);let x=_&&g!==k?g??``:``;i>=0?x!==(this.prevRowBg[i]??``)&&(e.style.background=x,this.prevRowBg[i]=x):this.rowBackground.get(e)!==x&&(e.style.background=x,this.rowBackground.set(e,x))}updateRowParts(e,t){let n=this.rowParts.get(e),r=0,i=n?.length??0,a=t.length;if(n){for(;r<i&&r<a&&n[r].html===t[r].html;)r++;for(;i>r&&a>r&&n[i-1].html===t[a-1].html;)i--,a--}if(r===i&&r===a)return;let o=n!==void 0&&i===a;for(let i=r;o&&i<a;i++){let r=e.childNodes[i];o=t[i].opening!==void 0&&t[i].opening===n[i].opening&&r?.childNodes.length===1&&r.firstChild?.nodeType===3}if(o){for(let i=r;i<a;i++)t[i].html!==n[i].html&&(e.childNodes[i].firstChild.nodeValue=t[i].text);this.rowParts.set(e,t);return}if(r+t.length-a<Math.max(i-r,a-r))e.innerHTML=t.map(e=>e.html).join(``);else{let n=e.ownerDocument.createRange();n.setStart(e,r),n.setEnd(e,i),n.deleteContents();let o=t.slice(r,a).map(e=>e.html).join(``);o&&n.insertNode(n.createContextualFragment(o))}this.rowParts.set(e,t)}_updateScrollbackRow(e,t,n){let r=e.getScrollbackLineLen(t);this._buildRowContent(n,n=>e.getScrollbackCell(t,n),r,-1,-1);let i=this.rowText.get(n),a=e.getScrollbackRowMetadata?.(t);i.metadata=a&&r<=this.cols?{...a}:null}syncScrollback(e,t){let n=e.getScrollbackCount(),r=t?.rowHeight??0,i=t!==void 0&&r>0,a=t?.overscanRows??ue,o=t?.scrollbackDiscardedCount!==void 0,s=t?.scrollbackDiscardedCount??0,c=t&&t.clientHeight>0?t.clientHeight:this.rows*r,l=i?Math.floor(t.scrollTop/r):0,u=i?Math.ceil(c/r):n,d=i?Math.max(0,Math.min(n,l-a)):0,f=i?Math.max(d,Math.min(n,l+u+a)):n,p=this.container.ownerDocument.getSelection(),m=p!==null&&!p.isCollapsed&&(this.container.contains(p.anchorNode)||this.container.contains(p.focusNode)),h=this.painted&&!this.colorsChanged&&o&&n===this._renderedScrollbackCount&&s===this._renderedDiscardedCount,g=(this._scrollbackKeys[0]??1/0)-s,_=(this._scrollbackKeys[this._scrollbackKeys.length-1]??-1/0)-s+1,v=Math.ceil(a/2);if(i&&h&&!m&&!t?.selectedRows&&r===this._scrollbackRowHeight&&this._scrollbackKeys.length===_-g&&this._scrollbackKeys.length<=u+2*a&&g<=Math.max(0,Math.min(n,l-v))&&_>=Math.min(n,l+u+v))return;let y=new Set;for(let e=d;e<f;e++)y.add(e);if(!t?.selectedRows&&m&&p.rangeCount===1){let e=p.getRangeAt(0),t=this._scrollbackRowEls.flatMap((t,n)=>e.intersectsNode(t)?[this._scrollbackKeys[n]-s]:[]);if(t.length<=D)for(let e of t)e>=0&&e<n&&y.add(e)}if(t?.selectedRows)for(let e=Math.max(0,t.selectedRows.start);e<=Math.min(n-1,t.selectedRows.end);e++)y.add(e);let b=Array.from(y).sort((e,t)=>e-t),x=b.map(e=>s+e);if(h&&r===this._scrollbackRowHeight&&x.length===this._scrollbackKeys.length&&x.every((e,t)=>e===this._scrollbackKeys[t]))return;let S=new Map;for(let e=0;e<this._scrollbackRowEls.length;e++)S.set(this._scrollbackKeys[e],this._scrollbackRowEls[e]);let C=new Set(x);for(let[e,t]of S)C.has(e)||t.remove();for(let e of this._scrollbackGapSpacers)e.remove();this._scrollbackGapSpacers=[];let w=[],T=this._scrollbackTopSpacer?.nextSibling??null,E=(b[0]??n)-1;for(let t of b){if(t>E+1){let e=document.createElement(`div`);e.className=`term-scrollback-spacer`,e.style.height=`${(t-E-1)*r}px`,this.container.insertBefore(e,T??this._scrollbackBottomSpacer),this._scrollbackGapSpacers.push(e)}E=t;let i=s+t,a=n-1-t,o=S.get(i);o?h||this._updateScrollbackRow(e,a,o):(o=document.createElement(`div`),o.className=`term-row term-scrollback-row`,this._updateScrollbackRow(e,a,o)),o!==T&&this.container.insertBefore(o,T??this._scrollbackBottomSpacer),T=o.nextSibling,w.push(o)}this._scrollbackRowEls=w,this._scrollbackKeys=x,this._renderedScrollbackCount=n,this._renderedDiscardedCount=s,this._scrollbackRowHeight=r,this._scrollbackTopSpacer&&(this._scrollbackTopSpacer.style.height=`${(b[0]??n)*r}px`),this._scrollbackBottomSpacer&&(this._scrollbackBottomSpacer.style.height=`${b.length?(n-b[b.length-1]-1)*r:0}px`)}syncColorOverrides(e={}){for(let[t,n]of[[`foreground`,`--term-app-fg`],[`background`,`--term-app-bg`],[`cursor`,`--term-app-cursor`]]){let r=e[t],i=r===void 0?``:j(r);this.colorHost.style.getPropertyValue(n)!==i&&(i?this.colorHost.style.setProperty(n,i):this.colorHost.style.removeProperty(n))}}render(e,t){this.syncColorOverrides(e.getColorOverrides?.()),this.viewport=t,this.selection??=new ne(this.container.parentElement??this.container);let n=this.selection.beforeRender(e,this.selectionRows()),r=e.getRows(),i=e.getCols(),a=!1;(this.needsSetup||r!==this.rows||i!==this.cols)&&(this.setup(i,r),this.needsSetup=!1,a=!0),this.syncScrollback(e,t&&{...t,selectedRows:n?{start:n.start.row,end:n.end.row}:void 0});let o=e.getCursor(),s=o.visible,c=o.shape??`block`,l=String(o.blinking??!1);this.container.dataset.cursorShape!==c&&(this.container.dataset.cursorShape=c),this.container.dataset.cursorBlink!==l&&(this.container.dataset.cursorBlink=l);let u=o.row!==this.prevCursorRow||o.col!==this.prevCursorCol||s!==this.prevCursorVisible;for(let t=0;t<this.rows;t++){let n=this.colorsChanged||a||e.isDirtyRow(t),r=t===this.prevCursorRow&&u,i=t===o.row;if(n||r||i&&u){let n=i&&s?o.col:-1;this._buildRowContent(this.rowEls[t],n=>e.getCell(t,n),this.cols,n,t)}let c=this.rowText.get(this.rowEls[t]);if(c){let n=e.getRowMetadata?.(t);c.metadata=n?{...n}:null}}this.prevCursorRow=o.row,this.prevCursorCol=o.col,this.prevCursorVisible=s,e.clearDirty(),this.colorsChanged=!1,this.selection.afterRender(this.selectionRows(),n),this.painted=!0,this.graphics.reconcile(e,{scrollTop:t?.scrollTop??0,clientHeight:t?.clientHeight??0,rowHeight:t?.rowHeight??0,charWidth:t?.charWidth??0,overscanRows:t?.overscanRows??ue,scrollbackCount:e.getScrollbackCount()})}*searchRows(){for(let e=0;e<this._scrollbackRowEls.length;e++)yield{row:this._scrollbackKeys[e]-Math.max(0,this._renderedDiscardedCount),element:this._scrollbackRowEls[e]};for(let e=0;e<this.rowEls.length;e++)yield{row:Math.max(0,this._renderedScrollbackCount)+e,element:this.rowEls[e]}}getSelectionText(){let e=this.container.parentElement;return e?v(e,this.selectionRows()):null}*selectionRows(){for(let e of this.searchRows()){let t=this.rowText.get(e.element);t&&(yield{...e,content:t})}}beforeMutation(e){this.selection?.beforeMutation(e,this.selectionRows()),this.painted=!1}positionAt(e,t,n){if(!this.painted||this.needsSetup||n<=0)return null;let r=e.closest(`.term-row`),i=Array.from(this.searchRows()).find(e=>e.element===r);if(!i)return null;let a=Math.floor((t-i.element.getBoundingClientRect().left)/n);return a>=0&&a<this.cols?{row:i.row,col:a}:null}select(e,t,n,r){if(!this.painted||this.needsSetup)return!1;let i=E(e,t,n);if(!i||(r(),!this.painted||this.needsSetup))return!1;this.syncScrollback(e,{...this.viewport??{scrollTop:0,clientHeight:0,rowHeight:0},selectedRows:{start:i.start.row,end:i.end.row}});let a=Array.from(this.selectionRows()),o=(e,t)=>{let n=a.find(t=>t.row===e.row);return n&&S(n.element,x(n.content,e.col,t))},s=o(i.start,!1),c=o(i.end,!0),l=this.container.ownerDocument.getSelection();return!s||!c||!l?!1:(l.setBaseAndExtent(...s,...c),this.selection?.capture(e,this.selectionRows()),!0)}rectangle(e,t,n,r){if(!this.painted||this.needsSetup)return null;let i=te(e,t,n);return i?(r(),this.painted&&!this.needsSetup?i:null):null}dragPositionAt(e,t,n){if(!this.painted||this.needsSetup||n<=0)return null;let r=null;for(let{row:i,element:a}of this.searchRows()){let o=a.getBoundingClientRect(),s=Math.max(o.top-t,t-o.bottom,0);(!r||s<r.distance)&&(r={row:i,distance:s,col:Math.max(0,Math.min(this.cols-1,Math.floor((e-o.left)/n)))})}return r&&{row:r.row,col:r.col}}requestSetup(){this.needsSetup=!0}invalidateColors(){this.colorsChanged=!0}setSearchDecorations(e){!e.firstChild&&!this.searchLayer.firstChild||this.searchLayer.replaceChildren(e)}destroy(){this.syncColorOverrides(),this.painted=!1,this.selection?.dispose(),this.graphics.destroy(),this.container.innerHTML=``,this.rowEls=[],this._scrollbackRowEls=[]}},we=[`aria-label`,`aria-labelledby`,`aria-describedby`,`aria-description`],Te=`Press Escape, then Tab to move focus out of the terminal, or Shift+Tab to move focus backward.`,Ee=0,De=class{constructor(e,t){this.host=e,this.input=t,this.destroyed=!1,this.hint=e.ownerDocument.createElement(`span`);do this.hint.id=`wterm-input-help-${++Ee}`;while(e.getRootNode().querySelector(`#${this.hint.id}`));this.hint.hidden=!0,this.hint.textContent=Te,e.append(this.hint),this.tabIndex=e.getAttribute(`tabindex`),this.defaultRole=!e.hasAttribute(`role`),this.defaultRole&&e.setAttribute(`role`,`group`),this.observer=new MutationObserver(e=>this.sync(e)),this.sync()}sync(e=[]){e.some(e=>e.attributeName===`tabindex`)&&(this.tabIndex=this.host.getAttribute(`tabindex`));for(let e of we){let t=this.host.getAttribute(e);t?.trim()?this.input.setAttribute(e,t):this.input.removeAttribute(e)}this.input.hasAttribute(`aria-label`)||this.input.setAttribute(`aria-label`,`Terminal`);let t=this.input.getAttribute(`aria-describedby`);t&&this.input.setAttribute(`aria-describedby`,`${t} ${this.hint.id}`),this.input.setAttribute(`aria-description`,[this.input.getAttribute(`aria-description`),Te].filter(Boolean).join(` `)),this.input.setAttribute(`tabindex`,this.tabIndex??`0`),this.observer.disconnect(),this.tabIndex!==null&&this.host.setAttribute(`tabindex`,`-1`),this.observer.observe(this.host,{attributes:!0,attributeFilter:[...we,`tabindex`]})}destroy(){this.destroyed||(this.destroyed=!0,this.observer.takeRecords().some(e=>e.attributeName===`tabindex`)&&(this.tabIndex=this.host.getAttribute(`tabindex`)),this.observer.disconnect(),this.hint.remove(),this.tabIndex===null?this.host.removeAttribute(`tabindex`):this.host.setAttribute(`tabindex`,this.tabIndex),this.defaultRole&&this.host.getAttribute(`role`)===`group`&&this.host.removeAttribute(`role`))}};function W(e,t){return t.platform.startsWith(`Mac`)?e.metaKey:e.ctrlKey}var G={Escape:{code:27,final:`u`},Enter:{code:13,final:`u`},Tab:{code:9,final:`u`},Backspace:{code:127,final:`u`},Insert:{code:2,final:`~`},Delete:{code:3,final:`~`},ArrowLeft:{code:1,final:`D`},ArrowRight:{code:1,final:`C`},ArrowUp:{code:1,final:`A`},ArrowDown:{code:1,final:`B`},PageUp:{code:5,final:`~`},PageDown:{code:6,final:`~`},Home:{code:1,final:`H`},End:{code:1,final:`F`},CapsLock:{code:57358,final:`u`,modifier:!0},ScrollLock:{code:57359,final:`u`},NumLock:{code:57360,final:`u`,modifier:!0},PrintScreen:{code:57361,final:`u`},Pause:{code:57362,final:`u`},F1:{code:1,final:`P`},F2:{code:1,final:`Q`},F3:{code:13,final:`~`},F4:{code:1,final:`S`},F5:{code:15,final:`~`},F6:{code:17,final:`~`},F7:{code:18,final:`~`},F8:{code:19,final:`~`},F9:{code:20,final:`~`},F10:{code:21,final:`~`},F11:{code:23,final:`~`},F12:{code:24,final:`~`},ShiftLeft:{code:57441,final:`u`,modifier:!0},ControlLeft:{code:57442,final:`u`,modifier:!0},AltLeft:{code:57443,final:`u`,modifier:!0},MetaLeft:{code:57444,final:`u`,modifier:!0},ShiftRight:{code:57447,final:`u`,modifier:!0},ControlRight:{code:57448,final:`u`,modifier:!0},AltRight:{code:57449,final:`u`,modifier:!0},MetaRight:{code:57450,final:`u`,modifier:!0},Numpad0:{code:57399,final:`u`},Numpad1:{code:57400,final:`u`},Numpad2:{code:57401,final:`u`},Numpad3:{code:57402,final:`u`},Numpad4:{code:57403,final:`u`},Numpad5:{code:57404,final:`u`},Numpad6:{code:57405,final:`u`},Numpad7:{code:57406,final:`u`},Numpad8:{code:57407,final:`u`},Numpad9:{code:57408,final:`u`},NumpadDecimal:{code:57409,final:`u`},NumpadDivide:{code:57410,final:`u`},NumpadMultiply:{code:57411,final:`u`},NumpadSubtract:{code:57412,final:`u`},NumpadAdd:{code:57413,final:`u`},NumpadEnter:{code:57414,final:`u`},NumpadEqual:{code:57415,final:`u`},NumpadComma:{code:57416,final:`u`}},Oe={code:1,final:`E`};for(let e=13;e<=25;e++)G[`F${e}`]={code:57363+e,final:`u`};function K(e){let t=Array.from(e);return t.length===1?t[0].codePointAt(0):null}function q(e){let t=K(e.key);return t===null||t<32||t===127?null:{code:K(e.key.toLowerCase())??t,final:`u`}}function ke(e,t){if(t&&e.code.startsWith(`Numpad`)){if(e.code===`Numpad5`&&e.key===`Clear`)return{entry:Oe,functionalKey:`Begin`};if(e.key.length===1){let t=q(e);return t?{entry:t,functionalKey:null}:null}let t=G[e.key];return t?{entry:t,functionalKey:e.key}:null}let n=Ae(e);if(n)return{entry:n,functionalKey:e.code};let r=G[e.code];if(r)return{entry:r,functionalKey:e.code};let i=G[e.key];if(i)return{entry:i,functionalKey:e.key};let a=q(e);return a?{entry:a,functionalKey:null}:null}function Ae(e){let t={"Numpad4:ArrowLeft":57417,"Numpad6:ArrowRight":57418,"Numpad8:ArrowUp":57419,"Numpad2:ArrowDown":57420,"Numpad9:PageUp":57421,"Numpad3:PageDown":57422,"Numpad7:Home":57423,"Numpad1:End":57424,"Numpad0:Insert":57425,"NumpadDecimal:Delete":57426,"Numpad5:Clear":57427}[`${e.code}:${e.key}`];return t===void 0?null:{code:t,final:`u`}}function J(e,t){for(let n of t??[])if(n.startsWith(e))return!0;return!1}function je(e,t,n){let r=1,i=t!==`release`;return(e.shiftKey||J(`Shift`,n)||i&&e.code.startsWith(`Shift`))&&(r+=1),(e.altKey||J(`Alt`,n)||i&&e.code.startsWith(`Alt`))&&(r+=2),(e.ctrlKey||J(`Control`,n)||i&&e.code.startsWith(`Control`))&&(r+=4),(e.metaKey||J(`Meta`,n)||i&&e.code.startsWith(`Meta`))&&(r+=8),e.getModifierState(`CapsLock`)&&(r+=64),e.getModifierState(`NumLock`)&&(r+=128),r}function Me(e){return e.ctrlKey||e.metaKey||e.altKey?[]:Array.from(e.key).map(e=>e.codePointAt(0)).filter(e=>e>=32&&e!==127)}function Ne(e){if(e.length!==1)return null;let t=e.toLowerCase().charCodeAt(0);if(t>=97&&t<=122)return String.fromCharCode(t-96);switch(e){case` `:case`2`:case`@`:return`\0`;case`3`:case`[`:return`\x1B`;case`4`:case`\\`:return``;case`5`:case`]`:return``;case`6`:case`^`:case`~`:return``;case`7`:case`/`:case`_`:return``;case`8`:case`?`:return``;default:return null}}function Pe(e){if(e.metaKey)return null;let t=Array.from(e.key);if(t.length!==1||t[0].codePointAt(0)<32||t[0].codePointAt(0)>126||e.shiftKey&&e.ctrlKey&&/^[a-z]$/i.test(e.key))return null;if(e.ctrlKey){let t=e.key.toLowerCase(),n=Ne(t)??t;return e.altKey?`\x1b${n}`:n}return e.altKey?`\x1b${e.key}`:null}function Fe(e,t,n,r,i){let a=!!(t&1),o=!!(t&2),s=!!(t&8),c=!a&&!o&&!s,l=r&-193;if(i&&c&&l===0){let t={ArrowUp:`\x1BOA`,ArrowDown:`\x1BOB`,ArrowRight:`\x1BOC`,ArrowLeft:`\x1BOD`,Begin:`\x1BOE`,End:`\x1BOF`,Home:`\x1BOH`}[e];if(t)return{handled:!0,sequence:t}}if(l===0){if(!a&&!s&&e===`Escape`)return{handled:!0,sequence:`\x1B`};if(c){let t={F1:`\x1BOP`,F2:`\x1BOQ`,F3:`\x1BOR`,F4:`\x1BOS`}[e];if(t)return{handled:!0,sequence:t}}}if(c&&r!==0){let t=r&2?`\x1B`:``;if(e===`Enter`)return{handled:!0,sequence:`${t}\r`};if(e===`Escape`)return{handled:!0,sequence:`${t}\x1b`};if(e===`Backspace`)return{handled:!0,sequence:`${t}${r&4?`\b`:``}`};if(e===`Tab`)return r&1?{handled:!0,sequence:`${r&2?`\x1B\x1B`:`\x1B`}[Z`}:{handled:!0,sequence:`${t}\t`}}return l===0&&!s&&(e===`Enter`||e===`Backspace`||e===`Tab`)?{handled:!0,sequence:n===`release`?null:e===`Enter`?`\r`:e===`Backspace`?``:` `}:{handled:!1,sequence:null}}function Y(e,t,n,r,i=!1){if(t===0||n===`release`&&!(t&2))return null;let a=!(t&1)&&!(t&8),o=ke(e,a),s=o?.entry??null,c=q(e),l=!(t&8)&&c!==null&&!e.altKey&&!e.ctrlKey&&!e.metaKey,u=!(t&1)&&!(t&8)&&(n===`press`||!(t&2))&&(e.ctrlKey||e.altKey)?Pe(e):null;if(n===`release`&&!(t&8)&&l)return null;if(n!==`release`&&!(t&8)&&!e.altKey&&!e.ctrlKey&&!e.metaKey){if(!e.shiftKey){if(e.key===`Enter`&&(e.code!==`NumpadEnter`||a))return`\r`;if(e.key===`Tab`)return` `;if(e.key===`Backspace`)return``}if(l)return e.key}if(u!==null)return u;if(!s||s.modifier&&!(t&8))return null;let d=je(e,n,r);if(o?.functionalKey){let e=Fe(o.functionalKey,t,n,d-1,i);if(e.handled)return e.sequence}let f=t&2?n===`repeat`?2:n===`release`?3:0:0;if(s.final!==`u`&&s.final!==`~`)return f===0?d>1?`\x1b[1;${d}${s.final}`:`\x1b[${s.final}`:`\x1b[1;${d}:${f}${s.final}`;let p=`\x1b[${s.code}`;if(c&&t&4&&e.shiftKey){let t=K(e.key);t!==null&&t!==s.code&&(p+=`:${t}`)}let m=!1;if(f===2||f===3?(p+=`;${d}:${f}`,m=!0):d>1&&(p+=`;${d}`,m=!0),c&&t&16&&n!==`release`){let t=Me(e);t.length>0&&(p+=m?`;`:`;;`,p+=t.join(`:`))}return p+s.final}var Ie={ArrowUp:`\x1B[A`,ArrowDown:`\x1B[B`,ArrowRight:`\x1B[C`,ArrowLeft:`\x1B[D`,Home:`\x1B[H`,End:`\x1B[F`},Le={ArrowUp:`\x1BOA`,ArrowDown:`\x1BOB`,ArrowRight:`\x1BOC`,ArrowLeft:`\x1BOD`,Home:`\x1BOH`,End:`\x1BOF`},Re={ArrowUp:`A`,ArrowDown:`B`,ArrowRight:`C`,ArrowLeft:`D`,Home:`H`,End:`F`,F1:`P`,F2:`Q`,F3:`R`,F4:`S`},ze={Insert:2,Delete:3,PageUp:5,PageDown:6,F5:15,F6:17,F7:18,F8:19,F9:20,F10:21,F11:23,F12:24},Be={Enter:`\r`,Backspace:``,Tab:` `,Escape:`\x1B`,Insert:`\x1B[2~`,Delete:`\x1B[3~`,PageUp:`\x1B[5~`,PageDown:`\x1B[6~`,F1:`\x1BOP`,F2:`\x1BOQ`,F3:`\x1BOR`,F4:`\x1BOS`,F5:`\x1B[15~`,F6:`\x1B[17~`,F7:`\x1B[18~`,F8:`\x1B[19~`,F9:`\x1B[20~`,F10:`\x1B[21~`,F11:`\x1B[23~`,F12:`\x1B[24~`},Ve=250,He=5,X=``;function Ue(e,t){if(e.metaKey||!(e.getModifierState(`AltGraph`)||e.ctrlKey&&e.altKey&&t.has(`AltRight`)))return!1;let n=Array.from(e.key);return n.length===1&&n[0].codePointAt(0)>=32&&n[0]!==``}var We=class{constructor(e,t,n,r=()=>null,i=()=>{},a,o){this.selectionActions=o,this.composing=!1,this.compositionWidth=0,this.recentCompositionCommit=null,this.suppressNextTouchDeleteInput=!1,this.mouseButtons=0,this.lastMouseMotion=null,this.focused=!1,this.suppressedKeyUps=new Set,this.pressedModifiers=new Set,this.deliveredKeys=new Set,this.tabExitArmed=!1,this.element=e,this.onData=t,this.onBinary=a,this.getBridge=n,this.getCellSize=r,this.prepareComposition=i,this.touchPrimary=e.ownerDocument.defaultView?.matchMedia?.(`(pointer: coarse)`).matches??!1,this.textarea=document.createElement(`textarea`),this.textarea.setAttribute(`autocapitalize`,`off`),this.textarea.setAttribute(`autocomplete`,`off`),this.textarea.setAttribute(`autocorrect`,`off`),this.textarea.setAttribute(`spellcheck`,`false`),this.textarea.setAttribute(`enterkeyhint`,`send`),this.textarea.wrap=`off`;let s=this.textarea.style;s.position=`absolute`,s.left=`-9999px`,s.top=`0`,s.width=this.touchPrimary?`var(--term-cell-width, 1ch)`:`1px`,s.height=this.touchPrimary?`var(--term-row-height)`:`1px`,s.boxSizing=`border-box`,s.font=`inherit`,s.lineHeight=`var(--term-row-height)`,s.fontKerning=`none`,s.fontVariantLigatures=`none`,s.whiteSpace=`pre`,s.zIndex=`2`,s.opacity=this.touchPrimary?`1`:`0`,s.overflow=`hidden`,s.border=`0`,s.padding=`0`,s.margin=`0`,s.outline=`none`,s.resize=`none`,s.pointerEvents=this.touchPrimary?`auto`:`none`,s.caretColor=`transparent`,s.color=`transparent`,s.background=`transparent`,e.appendChild(this.textarea),this.accessibility=new De(e,this.textarea),this._onKeyDown=this.handleKeyDown.bind(this),this._onKeyUp=this.handleKeyUp.bind(this),this._onPaste=this.handlePaste.bind(this),this._onCompositionStart=this.handleCompositionStart.bind(this),this._onCompositionEnd=this.handleCompositionEnd.bind(this),this._onInput=this.handleInput.bind(this),this._onFocus=()=>{this.focused||(this.focused=!0,this.touchPrimary&&!this.textarea.value&&this.resetInputValue(),this.positionTextarea(),this.element.classList.add(`focused`),this.getBridge()?.focusEvents?.()&&this.onData(`\x1B[I`))},this._onBlur=()=>{this.tabExitArmed=!1,this.focused=!1,this.composing=!1,this.recentCompositionCommit=null,this.suppressNextTouchDeleteInput=!1,this.hideComposition(),this.textarea.value=``,this.element.classList.remove(`focused`),this.stopMouseCapture(),this.lastMouseMotion=null,this.pressedModifiers.clear(),this.deliveredKeys.clear(),this.getBridge()?.focusEvents?.()&&this.onData(`\x1B[O`)},this._onMouseDown=e=>{this.tabExitArmed=!1,this.handleMouse(e,`press`)},this._onHoverMove=e=>{if(this.mouseButtons===0){if(e.buttons!==0||e.shiftKey){this.lastMouseMotion=null;return}this.handleMouse(e,`move`)}},this._onMouseMove=e=>{this.mouseButtons!==0&&this.handleMouse(e,`move`)},this._onMouseUp=e=>{this.mouseButtons!==0&&(this.handleMouse(e,`release`),this.mouseButtons=e.buttons&7,this.mouseButtons===0&&this.stopMouseCapture())},this._onMouseLeave=()=>{this.mouseButtons===0&&(this.lastMouseMotion=null)},this._onWheel=e=>this.handleMouse(e,`wheel`),this.textarea.addEventListener(`keydown`,this._onKeyDown),this.textarea.addEventListener(`keyup`,this._onKeyUp),this.textarea.addEventListener(`paste`,this._onPaste),this.textarea.addEventListener(`compositionstart`,this._onCompositionStart),this.textarea.addEventListener(`compositionend`,this._onCompositionEnd),this.textarea.addEventListener(`input`,this._onInput),this.textarea.addEventListener(`focus`,this._onFocus),this.textarea.addEventListener(`blur`,this._onBlur),this.element.addEventListener(`mousedown`,this._onMouseDown),this.element.addEventListener(`mousemove`,this._onHoverMove),this.element.addEventListener(`mouseleave`,this._onMouseLeave),this.element.addEventListener(`wheel`,this._onWheel,{passive:!1})}focus(){this.touchPrimary&&this.prepareComposition(),this.touchPrimary&&!this.composing&&!this.textarea.value&&this.resetInputValue(),this.positionTextarea(),this.textarea.focus({preventScroll:!0})}syncInputPosition(){(this.composing||this.touchPrimary)&&this.positionTextarea()}destroy(){this.accessibility.destroy(),this.textarea.removeEventListener(`keydown`,this._onKeyDown),this.textarea.removeEventListener(`keyup`,this._onKeyUp),this.textarea.removeEventListener(`paste`,this._onPaste),this.textarea.removeEventListener(`compositionstart`,this._onCompositionStart),this.textarea.removeEventListener(`compositionend`,this._onCompositionEnd),this.textarea.removeEventListener(`input`,this._onInput),this.textarea.removeEventListener(`focus`,this._onFocus),this.textarea.removeEventListener(`blur`,this._onBlur),this.element.removeEventListener(`mousedown`,this._onMouseDown),this.element.removeEventListener(`mousemove`,this._onHoverMove),this.element.removeEventListener(`mouseleave`,this._onMouseLeave),this.stopMouseCapture(),this.element.removeEventListener(`wheel`,this._onWheel),this.element.classList.remove(`focused`),this.textarea.remove()}handleKeyDown(e){let t=e.code||e.key;e.key!==`Backspace`&&(this.suppressNextTouchDeleteInput=!1);let n=/^(Shift|Control|Alt|Meta)(Left|Right)$/.test(e.code);if(n&&this.pressedModifiers.add(e.code),this.composing||e.isComposing||e.keyCode===229){this.tabExitArmed=!1,this.positionTextarea(),this.suppressedKeyUps.add(t);return}this.recentCompositionCommit=null;let r=this.getBridge(),i=r?.kittyKeyboardFlags?.()??0,a=n&&!!(i&8),o=this.deliveredKeys.has(t);if(this.tabExitArmed&&e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.repeat&&!o){this.tabExitArmed=!1,this.suppressedKeyUps.add(t);return}if((e.key!==`Shift`||e.altKey||e.ctrlKey||e.metaKey)&&(this.tabExitArmed=e.key===`Escape`&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey),Ue(e,this.pressedModifiers)){o||this.suppressedKeyUps.add(t);return}if(!o&&this.selectionActions&&!e.altKey&&(e.metaKey&&!e.ctrlKey&&!e.shiftKey||e.ctrlKey&&e.shiftKey&&!e.metaKey)&&e.key.toLowerCase()===`a`){e.preventDefault(),e.stopPropagation(),this.suppressedKeyUps.add(t),this.selectionActions.selectAll();return}if(!o&&e.key===`Escape`&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&!e.shiftKey&&this.selectionActions?.hasSelection()){e.preventDefault(),e.stopPropagation(),this.suppressedKeyUps.add(t),this.selectionActions.clearSelection();return}if(!o&&(e.metaKey||e.ctrlKey)&&!e.altKey&&e.key.toLowerCase()===`c`){let n=window.getSelection();if(this.selectionActions?.hasSelection()||n&&n.toString().length>0){this.suppressedKeyUps.add(t),e.ctrlKey&&e.shiftKey&&!e.metaKey&&(e.preventDefault(),e.stopPropagation(),this.element.ownerDocument.execCommand(`copy`));return}}if(!o&&(e.metaKey||e.ctrlKey)&&e.key===`v`){this.suppressedKeyUps.add(t),this.textarea.focus();return}if(!o&&!a&&e.metaKey&&!e.ctrlKey){if(this.suppressedKeyUps.add(t),e.key===`Backspace`)e.preventDefault(),this.selectionActions?.clearSelection(),this.onData(``);else if(e.key===`a`){e.preventDefault();let t=window.getSelection();if(t){let e=document.createRange();e.selectNodeContents(this.element),t.removeAllRanges(),t.addRange(e)}}return}this.suppressedKeyUps.delete(t);let s=this.touchPrimary&&e.key===`Backspace`&&!e.altKey&&!e.ctrlKey&&!e.metaKey;if(i!==0){let a=Y(e,i,e.repeat?`repeat`:`press`,this.pressedModifiers,r?.cursorKeysApp?.()??!1);a&&(n||this.selectionActions?.clearSelection(),s?this.suppressNextTouchDeleteInput=!0:e.preventDefault(),e.stopPropagation(),this.deliveredKeys.add(t),this.onData(a,n));return}let c=this.keyToSequence(e);c&&(this.selectionActions?.clearSelection(),s?this.suppressNextTouchDeleteInput=!0:e.preventDefault(),e.stopPropagation(),this.onData(c))}handleKeyUp(e){let t=e.code||e.key;this.pressedModifiers.delete(e.code);let n=this.deliveredKeys.delete(t);if(this.suppressedKeyUps.delete(t)||!n||this.composing)return;let r=this.getBridge(),i=r?.kittyKeyboardFlags?.()??0;if(!(i&2))return;let a=Y(e,i,`release`,this.pressedModifiers,r?.cursorKeysApp?.()??!1);a&&(e.preventDefault(),this.onData(a,!0))}handlePaste(e){this.tabExitArmed=!1,this.recentCompositionCommit=null,this.suppressNextTouchDeleteInput=!1;let t=e.clipboardData?.getData(`text`);t&&(e.preventDefault(),this.sendPaste(t))}sendPaste(e){this.selectionActions?.clearSelection();let t=this.getBridge();if(t&&t.bracketedPaste()){let t=e.replace(/\x1b/g,``);this.onData(`\x1B[200~`+t+`\x1B[201~`)}else this.onData(e)}handleCompositionStart(){this.tabExitArmed=!1,this.prepareComposition(),this.composing=!0,this.recentCompositionCommit=null,this.suppressNextTouchDeleteInput=!1,this.touchPrimary&&this.textarea.value===X&&(this.textarea.value=``),this.positionTextarea();let e=this.textarea.style;e.opacity=`1`,e.color=`var(--term-fg, currentColor)`,e.background=`var(--term-bg, transparent)`,e.caretColor=`var(--term-fg, currentColor)`}handleCompositionEnd(e){this.composing=!1,this.hideComposition(),this.resetInputValue(),e.data&&(this.recentCompositionCommit={text:e.data,at:performance.now()},this.onData(e.data))}hideComposition(){this.compositionWidth=0;let e=this.textarea.style;e.opacity=this.touchPrimary?`1`:`0`,e.width=this.touchPrimary?`var(--term-cell-width, 1ch)`:`1px`,e.height=this.touchPrimary?`var(--term-row-height)`:`1px`,e.color=`transparent`,e.background=`transparent`,e.caretColor=`transparent`}positionTextarea(){let e=this.getBridge(),t=this.getCellSize(),n=this.element.querySelector(`.term-row:not(.term-scrollback-row)`);if(!e||!t||!n||!e.getCursor){this.textarea.style.left=`0px`,this.textarea.style.top=`0px`,this.composing&&(this.textarea.style.width=`${Math.max(1,this.compositionWidth)}px`,this.textarea.style.height=`${t?.rowHeight??17}px`);return}let{charWidth:r,rowHeight:i}=t;if(r<=0||i<=0)return;let a=e.getCursor(),o=Math.max(0,Math.min(a.col,e.getCols()-1)),s=Math.max(0,Math.min(a.row,e.getRows()-1)),c=this.element.getBoundingClientRect(),l=n.getBoundingClientRect(),u=this.textarea.style;u.left=`${l.left-c.left-this.element.clientLeft+this.element.scrollLeft+o*r}px`,u.top=`${l.top-c.top-this.element.clientTop+this.element.scrollTop+s*i}px`,this.composing&&(u.width=`${Math.min((e.getCols()-o)*r,Math.max(r,this.compositionWidth))}px`,u.height=`${i}px`)}sizeComposition(){let e=this.getCellSize()?.charWidth;!e||e<=0||(this.textarea.style.width=`1px`,this.compositionWidth=this.textarea.value?Math.max(e,this.textarea.scrollWidth+e):e,this.positionTextarea())}resetInputValue(){this.textarea.value=this.touchPrimary?X:``,this.touchPrimary&&this.textarea.setSelectionRange(1,1)}sendTouchDelete(){this.selectionActions?.clearSelection();let e=this.getBridge(),t=e?.kittyKeyboardFlags?.()??0,n=t?Y(new KeyboardEvent(`keydown`,{key:`Backspace`,code:`Backspace`}),t,`press`,void 0,e?.cursorKeysApp?.()??!1):``;n&&this.onData(n)}handleInput(e){if(this.tabExitArmed=!1,this.composing){this.sizeComposition();return}let t=e.inputType,n=this.textarea.value,r=this.touchPrimary&&n.startsWith(X)?n.slice(1):n;this.resetInputValue();let i=this.recentCompositionCommit;if(this.recentCompositionCommit=null,this.touchPrimary&&t===`deleteContentBackward`){this.suppressNextTouchDeleteInput?this.suppressNextTouchDeleteInput=!1:this.sendTouchDelete();return}this.suppressNextTouchDeleteInput=!1,r&&(i&&r===i.text&&performance.now()-i.at<Ve||(t===`insertFromPaste`?this.sendPaste(r):(this.selectionActions?.clearSelection(),this.onData(r))))}handleMouse(e,t){let n=this.getBridge(),r=n?.mouseTracking?.()??0,i=n?.mouseEncoding?.()??(n?.mouseSgr?.()?`sgr`:null);if(!n||r===0||i!==`sgr`&&i!==`sgr-pixels`&&i!==`x10`&&i!==`utf8`&&i!==`urxvt`){this.lastMouseMotion=null;return}if(t===`wheel`){let t=e,n=this.element.scrollHeight-this.element.clientHeight;if(n>0&&(t.shiftKey||n-this.element.scrollTop>He)){if(this.lastMouseMotion=null,t.shiftKey){let e=Math.abs(t.deltaX)>Math.abs(t.deltaY)?t.deltaX:t.deltaY,n=t.deltaMode===1?this.getCellSize()?.rowHeight??16:t.deltaMode===2?this.element.clientHeight:1;e!==0&&(this.element.scrollTop+=e*n,t.preventDefault())}return}}if(t===`press`&&W(e,this.element.ownerDocument.defaultView?.navigator??navigator)&&e.target instanceof Element&&e.target.closest(`.term-link`)||t===`press`&&(e.shiftKey||e.button>2)||t===`release`&&e.button>2)return;let a=e.buttons&7;if(t===`move`&&!(r===1003||r===1002&&a!==0)){this.lastMouseMotion=null;return}let o=this.element.ownerDocument.defaultView;if(!o)return;let s=this.element.querySelector(`.term-row:not(.term-scrollback-row)`),c=this.element.getBoundingClientRect(),l=s?.getBoundingClientRect(),u=this.getCellSize(),d,f,p,m;if(l&&u)d=l.left,f=l.top,p=u.charWidth,m=u.rowHeight;else{let e=o.getComputedStyle(this.element),t=parseFloat(e.borderLeftWidth)||0,r=parseFloat(e.borderRightWidth)||0,i=parseFloat(e.borderTopWidth)||0,a=parseFloat(e.borderBottomWidth)||0,s=parseFloat(e.paddingLeft)||0,u=parseFloat(e.paddingRight)||0,h=parseFloat(e.paddingTop)||0,g=parseFloat(e.paddingBottom)||0;d=l?.left??c.left+t+s,f=l?.top??c.top+i+h,p=(c.width-t-r-s-u)/n.getCols(),m=(c.height-i-a-h-g)/n.getRows()}let h=n.getCols(),g=n.getRows(),_=p*h,v=m*g;if(!Number.isFinite(_)||!Number.isFinite(v)||_<=0||v<=0)return;if((e.clientX<d||e.clientX>=d+_||e.clientY<f||e.clientY>=f+v)&&(t===`press`||t===`wheel`||t===`move`&&a===0)){this.lastMouseMotion=null;return}let y=i===`sgr-pixels`,b=Math.max(1,Math.min(y?Math.ceil(_):h,Math.floor((e.clientX-d)/(y?1:p))+1)),x=Math.max(1,Math.min(y?Math.ceil(v):g,Math.floor((e.clientY-f)/(y?1:m))+1)),S=(e.shiftKey?4:0)|(e.altKey?8:0)|(e.ctrlKey?16:0),C,w=`M`;if(t===`wheel`){let t=e;if(Math.abs(t.deltaX)>Math.abs(t.deltaY)){if(t.deltaX===0)return;C=(t.deltaX<0?66:67)|S}else{if(t.deltaY===0)return;C=(t.deltaY<0?64:65)|S}}else C=(t===`release`&&i!==`sgr`&&!y?3:t===`move`?a===0?3:a&4?1:a&2?2:0:e.button===1?1:e.button===2?2:0)|S|(t===`move`?32:0),t===`release`&&(w=`m`);let T=i===`x10`?Uint8Array.of(27,91,77,C+32,b+32,x+32):null;if(T&&(b>223||x>223||!this.onBinary&&(T[4]>127||T[5]>127))){this.lastMouseMotion=null;return}if(i===`utf8`&&(b>2015||x>2015)){this.lastMouseMotion=null;return}if(t===`move`){let e=this.lastMouseMotion;if(e?.mode===r&&e.encoding===i&&e.code===C&&e.x===b&&e.y===x)return;this.lastMouseMotion={mode:r,encoding:i,code:C,x:b,y:x}}else this.lastMouseMotion=null;t===`press`&&(this.textarea.focus({preventScroll:!0}),this.focused||this._onFocus(),this.mouseButtons=a||(e.button===1?4:e.button===2?2:1),o.addEventListener(`mousemove`,this._onMouseMove),o.addEventListener(`mouseup`,this._onMouseUp)),e.preventDefault(),T?this.onBinary?this.onBinary(T):this.onData(String.fromCharCode(...T)):i===`utf8`?this.onData(`\x1b[M${String.fromCodePoint(C+32,b+32,x+32)}`):i===`urxvt`?this.onData(`\x1b[${C+32};${b};${x}M`):this.onData(`\x1b[<${C};${b};${x}${w}`)}stopMouseCapture(){this.mouseButtons=0;let e=this.element.ownerDocument.defaultView;e?.removeEventListener(`mousemove`,this._onMouseMove),e?.removeEventListener(`mouseup`,this._onMouseUp)}keyToSequence(e){if(e.ctrlKey&&!e.altKey&&!e.metaKey){let t=Ne(e.key);if(t!==null)return t;if(e.key===`Backspace`)return`\b`}if(e.key===`Enter`&&e.shiftKey)return`\x1B[13;2u`;if(e.key===`Tab`&&e.shiftKey)return`\x1B[Z`;if(!e.metaKey&&(e.shiftKey||e.altKey||e.ctrlKey)){let t=1+Number(e.shiftKey)+2*Number(e.altKey)+4*Number(e.ctrlKey),n=Re[e.key];if(n)return`\x1b[1;${t}${n}`;let r=ze[e.key];if(r)return`\x1b[${r};${t}~`}let t=Be[e.key];if(t)return e.altKey?`\x1B`+t:t;let n=this.getBridge(),r=(n&&n.cursorKeysApp()?Le:Ie)[e.key];return r?e.altKey?`\x1B`+r:r:e.key.length===1&&!e.ctrlKey&&!e.metaKey?e.altKey?`\x1B`+e.key:e.key:null}},Ge=16777216;function*Ke(e,t=Ge){let n=e.getScrollbackCount(),r=[],i=``,a=0,o=0,s=!1,c=e=>{if(a+=e.length,a>t)throw RangeError(`Terminal text exceeds 16,777,216 UTF-16 code units`);i+=e,i.length>=8192&&(r.push(i),i=``)};for(let r=0;r<n+e.getRows();r++){let i=n-r-1,l=r<n?e.getScrollbackRowMetadata?.(i):e.getRowMetadata?.(r-n);r>0&&!(s&&l?.continuesPrevious)&&c(`
|
|
4
|
+
`),s=l?.wrapsToNext??!1;let u=r<n?e.getScrollbackLineLen(i):e.getCols(),d=0;for(let s=0;s<u;s++){++o>=256&&(o=0,yield);let l=r<n?e.getScrollbackCell(i,s):e.getCell(r-n,s);if(l.width===0||l.spacerHead)continue;let u=l.chars??String.fromCodePoint(l.char||32);if(/^ +$/.test(u))d+=u.length;else{if(a+d+u.length>t)throw RangeError(`Terminal text exceeds 16,777,216 UTF-16 code units`);c(` `.repeat(d)+u),d=0}}if(s){if(a+d>t)throw RangeError(`Terminal text exceeds 16,777,216 UTF-16 code units`);c(` `.repeat(d))}++o>=256&&(o=0,yield)}return r.push(i),r.join(``)}function qe(e){return new DOMException(e,`AbortError`)}var Je=class{constructor(){this.request=null,this.timer=null}read(e){return this.cancel(qe(`Replaced by another text capture`)),e?.aborted?Promise.reject(e.reason):new Promise((t,n)=>{let r=()=>this.cancel(e?.reason);this.request={resolve:t,reject:n,signal:e,abort:r,scan:null},e?.addEventListener(`abort`,r,{once:!0})})}resume(e){let t=this.request;if(!t||t.scan)return;let n=t.scan=Ke(e),r=()=>{if(this.request!==t)return;this.timer=null;let e=performance.now()+4;try{for(let r=0;r<32;r++){let r=n.next();if(r.done){this.release(),t.resolve(r.value);return}if(performance.now()>=e)break}this.timer=setTimeout(r,0)}catch(e){this.cancel(e)}};this.timer=setTimeout(r,0)}cancel(e){let t=this.request;t&&(this.release(),t.reject(e===void 0?qe(`Terminal changed during text capture`):e))}release(){this.timer!==null&&clearTimeout(this.timer),this.timer=null,this.request?.signal?.removeEventListener(`abort`,this.request.abort),this.request?.scan?.return(``),this.request=null}},Z=new WeakMap,Ye=class{constructor(e){this.element=e,this.text=null,this.scan=null,this.timer=null,this.resolve=null,this.rectangle=null,this.decorated=new Set,this.onPointerDown=e=>{e.button===2&&this.element.contains(e.target)||this.clear()},this.onFocus=e=>{this.element.contains(e.target)||this.clear()},this.onSelectionChange=()=>{if(!this.active)return;let e=this.element.ownerDocument,t=e.activeElement;if(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`)){let e=t;if(e.selectionStart!==e.selectionEnd){this.clear();return}}let n=e.getSelection();n&&!n.isCollapsed&&this.clear()},this.status=e.ownerDocument.createElement(`div`),this.status.className=`term-selection-status`,this.status.setAttribute(`role`,`status`),e.appendChild(this.status);let t=e.ownerDocument;t.addEventListener(`pointerdown`,this.onPointerDown,!0),t.addEventListener(`focusin`,this.onFocus),t.addEventListener(`selectionchange`,this.onSelectionChange)}get pending(){return this.resolve!==null}get active(){return this.pending||this.text!==null}getText(){return this.onSelectionChange(),this.text}select(){return this.claim(),this.status.textContent=`Selecting terminal text…`,new Promise(e=>{this.resolve=e})}selectRectangle(e){this.claim(),this.rectangle=e,this.text=e.text}paintRectangle(e,t){if(this.clearDecorations(),!this.rectangle||t<=0)return;let n=this.rectangle.rows[0].row;for(let{row:r,element:i}of e){let e=this.rectangle.rows[r-n];e&&(i.classList.add(`term-rectangle-row`),i.style.setProperty(`--term-selection-left`,`${e.left*t}px`),i.style.setProperty(`--term-selection-width`,`${(e.right-e.left)*t}px`),this.decorated.add(i))}}clearDecorations(){for(let e of this.decorated)e.classList.remove(`term-rectangle-row`),e.style.removeProperty(`--term-selection-left`),e.style.removeProperty(`--term-selection-width`);this.decorated.clear()}claim(){let e=this.element.ownerDocument;Z.get(e)?.clear(),this.clear(),Z.set(e,this);let t=e.getSelection();t&&!t.isCollapsed&&t.removeAllRanges()}resume(e){if(!this.pending||this.scan)return;let t=this.scan=Ke(e),n=()=>{this.timer=null;let e=performance.now()+4;try{for(let n=0;n<32;n++){let n=t.next();if(n.done){this.scan=null,this.text=n.value,this.element.classList.add(`term-select-all`),this.status.textContent=``;let e=this.resolve;this.resolve=null,e?.(!0);return}if(performance.now()>=e)break}this.timer=setTimeout(n,0)}catch{this.clear(),this.status.textContent=`Unable to select all text. Select a smaller range to copy.`}};this.timer=setTimeout(n,0)}clear(e=``){if(!this.active&&!this.status.textContent&&!e)return;this.timer!==null&&clearTimeout(this.timer),this.timer=null,this.scan?.return(``),this.scan=null,this.text=null,this.rectangle=null,this.clearDecorations(),this.element.classList.remove(`term-select-all`),this.status.textContent=e,Z.get(this.element.ownerDocument)===this&&Z.delete(this.element.ownerDocument);let t=this.resolve;this.resolve=null,t?.(!1)}invalidate(){this.active&&this.clear(this.pending?`Terminal changed. Select all again to copy.`:``)}destroy(){this.clear();let e=this.element.ownerDocument;e.removeEventListener(`pointerdown`,this.onPointerDown,!0),e.removeEventListener(`focusin`,this.onFocus),e.removeEventListener(`selectionchange`,this.onSelectionChange),this.status.remove()}},Xe=class{constructor(e,t){this.element=e,this.callbacks=t,this.anchor=null,this.suppressClick=!1,this.owned=!1,this.lastEvent=null,this.frame=null,this.down=e=>{if(this.cancel(),this.owned=!1,this.suppressClick=!1,e.defaultPrevented||e.button!==0||!e.altKey||e.ctrlKey||e.metaKey)return;let t=this.callbacks.start(e);!t||!this.callbacks.select(t,t)||(this.anchor=t,this.owned=!0,e.preventDefault(),e.stopImmediatePropagation())},this.move=e=>{if(this.owned){if(!(e.buttons&1)){this.blur();return}e.preventDefault(),e.stopImmediatePropagation(),this.update(e),this.lastEvent=e,this.scheduleScroll()}},this.up=e=>{!this.owned||e.button!==0||(e.preventDefault(),e.stopImmediatePropagation(),this.update(e),this.cancel(),this.owned=!1,this.suppressClick=!0)},this.click=e=>{!this.suppressClick||e.detail===0||(this.suppressClick=!1,e.preventDefault(),e.stopImmediatePropagation())},this.key=e=>{!this.anchor||e.key!==`Escape`||(e.preventDefault(),e.stopImmediatePropagation(),this.cancel(),this.callbacks.clear())},this.cancel=()=>{this.anchor=null,this.lastEvent=null,this.frame!==null&&cancelAnimationFrame(this.frame),this.frame=null},this.blur=()=>{this.cancel(),this.owned=!1},this.focus=e=>{this.element.contains(e.target)||this.cancel()},e.addEventListener(`mousedown`,this.down,!0),e.addEventListener(`click`,this.click,!0);let n=e.ownerDocument;n.addEventListener(`mousemove`,this.move,!0),n.addEventListener(`mouseup`,this.up,!0),n.addEventListener(`keydown`,this.key,!0),n.addEventListener(`focusin`,this.focus),n.defaultView?.addEventListener(`blur`,this.blur)}update(e){let t=this.callbacks.position(e);this.anchor&&(!t||!this.callbacks.select(this.anchor,t))&&this.callbacks.clear()}scheduleScroll(){this.frame!==null||!this.anchor||!this.lastEvent||(this.frame=requestAnimationFrame(()=>{if(this.frame=null,!this.anchor||!this.lastEvent)return;let e=this.element.getBoundingClientRect(),t=this.lastEvent.clientY,n=t<e.top?Math.max(-24,t-e.top):t>e.bottom?Math.min(24,t-e.bottom):0,r=this.element.scrollTop;this.element.scrollTop+=n,this.update(this.lastEvent),this.element.scrollTop!==r&&this.scheduleScroll()}))}destroy(){this.cancel(),this.element.removeEventListener(`mousedown`,this.down,!0),this.element.removeEventListener(`click`,this.click,!0);let e=this.element.ownerDocument;e.removeEventListener(`mousemove`,this.move,!0),e.removeEventListener(`mouseup`,this.up,!0),e.removeEventListener(`keydown`,this.key,!0),e.removeEventListener(`focusin`,this.focus),e.defaultView?.removeEventListener(`blur`,this.blur)}},Ze=500,Qe=32768,$e=65536,et=20,tt=4e3,nt=`Output announcements paused because there is too much output. Type in the terminal or turn announcements off and on to resume.`,rt=class{constructor(e,t,n){this.host=e,this.getCore=t,this.ready=n,this.live=null,this.timer=null,this.previous=null,this.lines=0,this.characters=0,this.paused=!1,this.reset=()=>{this.invalidate(),this.lines=0,this.characters=0,this.paused=!1;let e=this.getCore();e&&this.active()&&(this.previous=this.snapshot(e),this.previous||this.limit())},e.addEventListener(`focusin`,this.reset),e.addEventListener(`focusout`,this.reset),e.ownerDocument.addEventListener(`visibilitychange`,this.reset),e.ownerDocument.defaultView?.addEventListener(`blur`,this.reset),e.ownerDocument.defaultView?.addEventListener(`focus`,this.reset)}setEnabled(e){e!==!!this.live&&(e?(this.live=this.host.ownerDocument.createElement(`div`),this.live.className=`term-announcements`,this.live.setAttribute(`role`,`log`),this.live.setAttribute(`aria-label`,`Terminal output`),this.live.setAttribute(`aria-live`,`polite`),this.live.setAttribute(`aria-relevant`,`additions`),this.live.setAttribute(`aria-atomic`,`false`),this.host.append(this.live)):(this.live?.remove(),this.live=null),this.reset())}active(){return!!this.live&&this.host.classList.contains(`focused`)&&this.host.isConnected&&this.host.ownerDocument.visibilityState!==`hidden`&&this.host.ownerDocument.hasFocus()}input(){this.paused?this.reset():(this.lines=0,this.characters=0)}invalidate(){this.timer!==null&&clearTimeout(this.timer),this.timer=null,this.previous=null,this.live?.replaceChildren()}rendered(){if(!this.active()){this.invalidate();return}if(this.paused||this.timer!==null)return;let e=this.getCore();if(e){if(!this.previous){this.previous=this.snapshot(e),this.previous||this.limit();return}this.timer=setTimeout(()=>{if(this.timer=null,!this.active()){this.invalidate();return}if(!this.ready())return;let e=this.getCore();e&&this.announce(e)},Ze)}}snapshot(e,t){let n=e.getCols(),r=e.getRows(),i=e.getScrollbackCount(),a=e.getScrollbackDiscardedCount?.()??0,o=i+a,s=t??o;if(s<a||(o+r-s)*n>Qe)return null;let c=[],l=0;for(let t=s;t<o+r;t++){let r=o-t-1,i=t<o?e.getScrollbackLineLen(r):n;if(i>n)return null;let a=``;for(let n=0;n<i;n++){let i=t<o?e.getScrollbackCell(r,n):e.getCell(t-o,n);if(i.width===0||i.spacerHead)continue;let s=i.chars??String.fromCodePoint(i.char||32);if(l+=s.length,l>$e)return null;a+=s}c.push(a.replace(/ +$/,``))}return{base:s,cols:n,rows:r,alternate:e.usingAltScreen(),lines:c}}announce(e){let t=this.previous;if(!t)return;let n=e.getScrollbackCount()+(e.getScrollbackDiscardedCount?.()??0);if(t.cols!==e.getCols()||t.rows!==e.getRows()||t.alternate!==e.usingAltScreen()||n<t.base){this.previous=this.snapshot(e);return}let r=this.snapshot(e,t.base);if(!r){this.limit();return}let i=r.lines.filter((e,n)=>e.trim()&&e!==t.lines[n]);if(this.previous={...r,base:n,lines:r.lines.slice(n-r.base)},!i.length)return;let a=i.join(`
|
|
5
|
+
`);if(this.lines+i.length>et||this.characters+a.length>tt){this.limit();return}this.lines+=i.length,this.characters+=a.length,this.publish(a)}publish(e){if(!this.live)return;let t=this.host.ownerDocument.createElement(`div`);t.textContent=e,this.live.replaceChildren(t)}limit(){this.paused=!0,this.previous=null,this.publish(nt)}destroy(){this.setEnabled(!1),this.host.removeEventListener(`focusin`,this.reset),this.host.removeEventListener(`focusout`,this.reset),this.host.ownerDocument.removeEventListener(`visibilitychange`,this.reset),this.host.ownerDocument.defaultView?.removeEventListener(`blur`,this.reset),this.host.ownerDocument.defaultView?.removeEventListener(`focus`,this.reset)}},it={1:`bold`,2:`dim`,4:`italic`,8:`underline`,16:`blink`,32:`reverse`,64:`invisible`,128:`strikethrough`};function at(e){let t=[];for(let[n,r]of Object.entries(it))e&Number(n)&&t.push(r);return t}var Q=27;function ot(e){let t=[],n=Date.now(),r=0,i=0,a=()=>{if(r>i){let a=e.slice(i,r);a.length>0&&!/^[\x00-\x1f]+$/.test(a)&&t.push({ts:n,type:`text`,raw:a.slice(0,60)})}};for(;r<e.length;){if(e.charCodeAt(r)!==Q){r++;continue}a();let o=r;if(r++,r>=e.length)break;let s=e[r];if(s===`[`){r++;let i=``;r<e.length&&(e[r]===`?`||e[r]===`>`||e[r]===`!`)&&(i=e[r],r++);let a=``;for(;r<e.length&&(e.charCodeAt(r)>=48&&e.charCodeAt(r)<=59||e[r]===`:`);)a+=e[r],r++;for(;r<e.length&&e.charCodeAt(r)>=32&&e.charCodeAt(r)<=47;)r++;let s=``;r<e.length&&e.charCodeAt(r)>=64&&e.charCodeAt(r)<=126&&(s=e[r],r++);let c=e.slice(o,r),l=a?a.split(/[;:]/).map(Number).filter(e=>!isNaN(e)):[],u=s===`m`?`sgr`:`csi`;t.push({ts:n,type:u,raw:c,params:l.length>0?l:void 0,private:i||void 0,final:s})}else if(s===`]`){for(r++;r<e.length&&e.charCodeAt(r)!==7&&!(e.charCodeAt(r)===Q&&r+1<e.length&&e[r+1]===`\\`);)r++;r<e.length&&(e.charCodeAt(r)===7?r++:e.charCodeAt(r)===Q&&(r+=2));let i=e.slice(o,r);t.push({ts:n,type:`osc`,raw:i.slice(0,80)})}else s>=` `&&s<=`~`?(r++,t.push({ts:n,type:`esc`,raw:e.slice(o,r),final:s})):r++;i=r}return a(),t}var st=500,ct=class{constructor(){this._traces=[],this._bridge=null,this._perf={frameCount:0,totalRenderMs:0,avgRenderMs:0,maxRenderMs:0,lastDirtyRows:0}}get traces(){return this._traces}get perf(){return this._perf}setBridge(e){this._bridge=e}traceWrite(e){let t=ot(typeof e==`string`?e:new TextDecoder().decode(e));for(let e of t)this._traces.push(e);this._traces.length>st&&(this._traces=this._traces.slice(-500))}recordRender(e,t){this._perf.frameCount++,this._perf.totalRenderMs+=e,this._perf.avgRenderMs=this._perf.totalRenderMs/this._perf.frameCount,e>this._perf.maxRenderMs&&(this._perf.maxRenderMs=e),this._perf.lastDirtyRows=t}resetPerf(){this._perf={frameCount:0,totalRenderMs:0,avgRenderMs:0,maxRenderMs:0,lastDirtyRows:0}}cell(e,t){if(!this._bridge)return null;let n=this._bridge.getCell(e,t);return{...n,charStr:n.chars??(n.char>=32?String.fromCodePoint(n.char):``),flagNames:at(n.flags)}}row(e){if(!this._bridge)return null;let t=this._bridge.getCols(),n=[];for(let r=0;r<t;r++)n.push(this.cell(e,r));return n}grid(){if(!this._bridge)return null;let e=this._bridge.getCursor();return{rows:this._bridge.getRows(),cols:this._bridge.getCols(),cursor:e,altScreen:this._bridge.usingAltScreen(),scrollbackCount:this._bridge.getScrollbackCount()}}unhandled(){return this._bridge?this._bridge.getUnhandledSequences():[]}dump(e=50){let t=this._traces.slice(-e);console.group(`%cwterm debug — last ${t.length} traces`,`color: #569cd6; font-weight: bold`);for(let e of t){let t=e.type===`sgr`?`%cSGR`:e.type===`csi`?`%cCSI`:e.type===`osc`?`%cOSC`:e.type===`esc`?`%cESC`:`%cTXT`,n=e.type===`sgr`?`background:#2d5a27;color:#fff;padding:1px 4px;border-radius:2px`:e.type===`csi`?`background:#1e4a7a;color:#fff;padding:1px 4px;border-radius:2px`:`background:#555;color:#fff;padding:1px 4px;border-radius:2px`,r=[e.private?`private=${e.private}`:``,e.params?`params=[${e.params}]`:``,e.final?`final=${e.final}`:``].filter(Boolean).join(` `);console.log(`${t} ${e.raw.slice(0,40)}`,n,r?` ${r}`:``)}console.groupEnd()}dumpUnhandled(){let e=this.unhandled();if(e.length===0){console.log(`%cwterm debug — no unhandled sequences`,`color: #6a9955`);return}console.group(`%cwterm debug — ${e.length} unhandled sequences`,`color: #d7ba7d; font-weight: bold`);for(let t of e)console.log(` final=${t.final} private=${t.private||`-`} params=[${t.params.slice(0,t.paramCount)}]`);console.groupEnd()}};function lt(e,t){if(t)return e;if(e.length<=1)return e.toLowerCase();let n=``;for(let t of e)n+=t.toLowerCase();return n}function*ut(e,t,n){let r=lt(t,n);if(!r)return;let i=new Uint32Array(r.length);for(let e=1,t=0;e<r.length;e++){for(;t>0&&r[e]!==r[t];)t=i[t-1];r[e]===r[t]&&t++,i[e]=t}let a=Array(r.length),o=e.getScrollbackCount(),s=0,c=0,l=0,u=!1,d;for(let t=0;t<o+e.getRows();t++){let f=o-1-t,p=t<o?e.getScrollbackRowMetadata?.(f):e.getRowMetadata?.(t-o);(!u||!p?.continuesPrevious)&&(s=0),u=p?.wrapsToNext??!1;let m=t<o?e.getScrollbackLineLen(f):e.getCols();for(let u=0;u<m;u++){++l>=256&&(l=0,yield null);let p=t<o?e.getScrollbackCell(f,u):e.getCell(t-o,u);if(p.width===0||p.spacerHead)continue;let h=lt(p.chars??String.fromCodePoint(p.char||32),n);if(s===0&&h.length===1&&h!==r[0])continue;let g={row:t,col:u,endCol:Math.min(m,u+(p.width??1))};for(let e=0;e<h.length;e++){for(++l>=256&&(l=0,yield null),a[c++%r.length]=g;s>0&&h[e]!==r[s];)s=i[s-1];if(h[e]===r[s]&&s++,s===r.length){let e={start:a[(c-r.length)%r.length],end:g};(!d||d.start.row!==e.start.row||d.start.col!==e.start.col||d.end.row!==e.end.row||d.end.endCol!==e.end.endCol)&&(yield e,d=e),s=i[s-1]}}}++l>=256&&(l=0,yield null)}}var dt=class{constructor(e){this.changed=e,this.matches=[],this.state={query:``,caseSensitive:!1,count:0,activeIndex:-1,searching:!1,limited:!1},this.timer=null,this.channel=null,this.scan=null,this.pending=!1,this.revealFirst=!1}snapshot(){return{...this.state}}search(e,t){if(e.length>1024)throw RangeError(`Search query exceeds 1,024 UTF-16 code units`);this.state.query=e,this.state.caseSensitive=t.caseSensitive??!1,this.revealFirst=!0,this.invalidate()}invalidate(){this.cancel(),this.matches=[],this.state.count=0,this.state.activeIndex=-1,this.state.limited=!1,this.pending=this.state.searching=this.state.query.length>0,this.changed(!1)}resume(e){if(!this.pending)return;this.pending=!1;let t=this.scan=ut(e,this.state.query,this.state.caseSensitive),n=()=>{if(this.scan!==t)return;this.timer=null;let e=performance.now()+4,r=!1;do{let e=t.next();if(e.done){r=!0;break}if(e.value){if(this.matches.length===1e4){this.state.limited=!0,r=!0;break}this.matches.push(e.value)}}while(performance.now()<e);this.state.count=this.matches.length;let i=this.revealFirst&&this.matches.length>0;this.matches.length&&this.state.activeIndex===-1&&(this.state.activeIndex=0),i&&(this.revealFirst=!1),this.state.searching=!r,r&&(t.return(void 0),this.scan=null,this.clearTask()),this.changed(i),this.scan===t&&this.schedule(n)};this.schedule(n)}schedule(e){if(typeof MessageChannel>`u`)this.timer=setTimeout(e,0);else{let t=this.channel??=new MessageChannel;t.port1.onmessage=e,t.port2.postMessage(null)}}clearTask(){this.timer!==null&&clearTimeout(this.timer),this.timer=null,this.channel&&=(this.channel.port1.onmessage=null,this.channel.port1.close(),this.channel.port2.close(),null)}navigate(e){return this.matches.length?(this.state.activeIndex=(this.state.activeIndex+e+this.matches.length)%this.matches.length,this.revealFirst=!1,this.changed(!0),!0):!1}cancel(){this.clearTask(),this.scan?.return(void 0),this.scan=null,this.pending=!1,this.matches=[],this.state.count=0,this.state.activeIndex=-1,this.state.searching=!1,this.state.limited=!1}},ft=1e3,$=1,pt=class{constructor(e,t={}){this.bridge=null,this.debug=null,this._themeColors=null,this.renderer=null,this.input=null,this.rafId=null,this._synchronizedOutputTimer=null,this._synchronizedOutputState=`idle`,this._synchronizedOutputGeneration=0,this._rendererNeedsSetup=!1,this.resizeObserver=null,this._destroyed=!1,this._shouldScrollToBottom=!1,this._scrollbackDiscardedCount=0,this._programmaticScrollTop=null,this._pendingResizeScrollTop=null,this._rowHeight=0,this._charWidth=0,this._windowSizeQueryState=0,this._textCapture=new Je,this._searchReveal=!1,this.element=e,this._coreOption=t.core,this._initialColsExplicit=t.cols!==void 0,this._initialRowsExplicit=t.rows!==void 0,this.wasmUrl=t.wasmUrl,this.maxImageWidth=t.maxImageWidth,this.maxImageHeight=t.maxImageHeight,this.cols=t.cols||80,this.rows=t.rows||24,this.autoResize=t.autoResize!==!1,this._debugEnabled=t.debug??!1,this._renderingPaused=t.renderingPaused??!1,this.onData=t.onData||null,this.onBinary=t.onBinary||null,this.onTitle=t.onTitle||null,this.onWorkingDirectory=t.onWorkingDirectory||null,this.onBell=t.onBell||null,this.onShellIntegration=t.onShellIntegration||null,this.onClipboardWrite=t.onClipboardWrite||null,this.onResize=t.onResize||null,this.onSearchChange=t.onSearchChange||null,this._search=new dt(e=>{if(this._searchReveal||=e,e){let e=this._search.matches[this.getSearchState().activeIndex];e&&(this._shouldScrollToBottom=!1,this._pendingResizeScrollTop=null,this._setScrollTop((e.start.row+.5)*this._rowHeight-this.element.clientHeight/2))}this._synchronizedOutputState!==`held`&&this._scheduleRender(),this.onSearchChange?.(this.getSearchState())}),this._container=document.createElement(`div`),this._container.className=`term-grid`,this.element.appendChild(this._container),this.element.classList.add(`wterm`),this._historySelection=new Ye(this.element),this._rectangleDrag=new Xe(this.element,{start:e=>{if(!(e.target instanceof Element)||!this.bridge||!this._canRender())return null;let t=this.renderer?.positionAt(e.target,e.clientX,this._charWidth);return!t||!e.shiftKey&&this.bridge.mouseTracking?.()&&t.row>=this.bridge.getScrollbackCount()?null:t},position:e=>{let t=this.element.getBoundingClientRect();return this.renderer?.dragPositionAt(e.clientX,Math.max(t.top+1,Math.min(t.bottom-1,e.clientY)),this._charWidth)??null},select:(e,t)=>this.selectRectangle(e,t),clear:()=>this._historySelection.clear()}),this._outputAnnouncements=new rt(this.element,()=>this.bridge,()=>this._canRender()&&this.rafId===null&&this._synchronizedOutputState!==`held`),this._outputAnnouncements.setEnabled(t.announceOutput??!1),this._onVisibilityChange=()=>{this._canRender()?this._scheduleRender():(this._rectangleDrag.cancel(),this._cancelScheduledRender(),this._outputAnnouncements.invalidate())},this.element.ownerDocument.addEventListener(`visibilitychange`,this._onVisibilityChange),this.element.classList.toggle(`cursor-blink`,t.cursorBlink===!0),this.element.classList.toggle(`cursor-steady`,t.cursorBlink===!1),this._onClickFocus=e=>{if(e.defaultPrevented||this._historySelection.active)return;let t=e.target;if(t instanceof Element&&t.closest(`.term-link`)){if(W(e,this.element.ownerDocument.defaultView?.navigator??navigator)||e.detail===0)return;e.preventDefault()}let n=window.getSelection();(!n||n.isCollapsed)&&this.input?.focus()},this._onMouseSelect=e=>{if(e.defaultPrevented||e.button!==0||e.detail!==2&&e.detail!==3||e.altKey||e.ctrlKey||e.metaKey||!(e.target instanceof Element))return;let t=this.renderer?.positionAt(e.target,e.clientX,this._charWidth);!t||!this.bridge||!e.shiftKey&&this.bridge.mouseTracking?.()&&t.row>=this.bridge.getScrollbackCount()||(e.detail===2?this.selectWord(t):this.selectLine(t.row))&&e.preventDefault()},this.element.addEventListener(`click`,this._onMouseSelect),this.element.addEventListener(`click`,this._onClickFocus),this._onModifierChange=e=>{this.element.classList.toggle(`link-modifier-active`,W(e,this.element.ownerDocument.defaultView?.navigator??navigator))},this._onWindowBlur=()=>{this.element.classList.remove(`link-modifier-active`)},this.element.ownerDocument.addEventListener(`keydown`,this._onModifierChange),this.element.ownerDocument.addEventListener(`keyup`,this._onModifierChange),this.element.ownerDocument.defaultView?.addEventListener(`blur`,this._onWindowBlur),this._onScroll=()=>{if(this._pendingResizeScrollTop===null){if(this._shouldScrollToBottom&&this._isScrolledToBottom()){this._programmaticScrollTop=null;return}if(this._programmaticScrollTop!==null&&Math.abs(this.element.scrollTop-this._programmaticScrollTop)<=$){this._programmaticScrollTop=null;return}this._programmaticScrollTop=null,this._shouldScrollToBottom=!1,this._scheduleRender()}},this.element.addEventListener(`scroll`,this._onScroll,{passive:!0}),this._onCopy=e=>{if(e.defaultPrevented||!e.clipboardData)return;let t=e.target;if(t instanceof Element&&!this.element.contains(t)&&(t.closest(`input, textarea`)||t.isContentEditable))return;let n=this.getSelectionText();if(this._historySelection.pending){e.preventDefault();return}n!==null&&(e.clipboardData.setData(`text/plain`,n),e.preventDefault())},this.element.ownerDocument.addEventListener(`copy`,this._onCopy)}async init(){try{if(this.bridge=this._coreOption?this._coreOption:await s.load(this.wasmUrl),this._destroyed)return this;let e=this.cols,t=this.rows;if(this._setRowHeight(),this.autoResize){let e=this._measureGridSize();e&&(this._initialColsExplicit||(this.cols=e.cols),this._initialRowsExplicit||(this.rows=e.rows))}this.bridge.init(this.cols,this.rows),this._themeColors&&this.bridge.setThemeColors?.(this._themeColors),this.cols=this.bridge.getCols(),this.rows=this.bridge.getRows(),this._debugEnabled&&(this.debug=new ct,this.debug.setBridge(this.bridge),globalThis.__wterm=this),this._measureCharSize(),this.renderer=new Ce(this._container,{colorHost:this.element,maxImageWidth:this.maxImageWidth,maxImageHeight:this.maxImageHeight}),this.renderer.setup(this.cols,this.rows),this.input=new We(this.element,(e,t=!1)=>{t||(this._outputAnnouncements.input(),this._scrollToBottom()),this.onData?this.onData(e):this.write(e)},()=>this.bridge,()=>this._charWidth>0&&this._rowHeight>0?{charWidth:this._charWidth,rowHeight:this._rowHeight}:null,()=>{this._rectangleDrag.cancel(),this._historySelection.clear(),this._scrollToBottom()},e=>{this._outputAnnouncements.input(),this._rectangleDrag.cancel(),this._historySelection.clear(),this._scrollToBottom(),this.onBinary?this.onBinary(e):this.onData?e.every(e=>e<128)&&this.onData(String.fromCharCode(...e)):this.write(e)},{selectAll:()=>{this.selectAll()},hasSelection:()=>this._historySelection.active,clearSelection:()=>{this._rectangleDrag.cancel(),this._historySelection.clear()}}),this._setupResizeObserver(),this.autoResize||this._lockHeight(),this.input.focus(),this._initialRender(),(this.cols!==e||this.rows!==t)&&this.onResize?.(this.cols,this.rows)}catch(e){throw this.destroy(),Error(`wterm: failed to initialize: ${e instanceof Error?e.message:e}`)}return this}_isScrolledToBottom(){let e=this.element;return e.scrollHeight-e.scrollTop-e.clientHeight<5}_scrollToBottom(){this._setScrollTop(this.element.scrollHeight)}_setScrollTop(e){let t=this.element.scrollTop;this.element.scrollTop=e;let n=this.element.scrollTop;n!==t&&(this._programmaticScrollTop=n)}setThemeColors(e){let t=[e.foreground,e.background,e.cursor,...e.palette];if(e.palette.length!==16||t.some(e=>!Number.isInteger(e)||e<0||e>16777215))throw RangeError(`Theme colors must be 24-bit RGB values with exactly 16 palette entries`);if(this._destroyed)return;let n={...e,palette:[...e.palette]};this.bridge?.setThemeColors?.(n),this._themeColors=n;let r=[`--term-fg`,`--term-bg`,`--term-cursor`,...e.palette.map((e,t)=>`--term-color-${t}`)];t.forEach((e,t)=>this.element.style.setProperty(r[t],`#${e.toString(16).padStart(6,`0`)}`)),this.renderer?.invalidateColors(),this._scheduleRender()}write(e){if(!this.bridge||this._destroyed)return;this._textCapture.cancel(),this._rectangleDrag.cancel(),this._historySelection.invalidate(),this.renderer?.beforeMutation(this.bridge),this.debug&&this.debug.traceWrite(e),this._shouldScrollToBottom=this._isScrolledToBottom();let t=this._collectWindowSizeQueries(e),n,r=!1,i=e=>{r||(r=!0,n=e)},a=()=>{let e=this._drainResponses();e.hasError&&i(e.error);let t=this.bridge?.getBellCount?.()??0;if(t>0)try{this.onBell?.(t)}catch(e){i(e)}try{this._deliverTitle()}catch(e){i(e)}try{let e=this.bridge?.getClipboardWrite?.()??null;e!==null&&!this._destroyed&&this.onClipboardWrite?.(e)}catch(e){i(e)}try{let e=this.bridge?.getShellIntegrationState?.()??null;e!==null&&!this._destroyed&&this.onShellIntegration?.(e)}catch(e){i(e)}try{let e=this.bridge?.getWorkingDirectory?.()??null;e!==null&&!this._destroyed&&this.onWorkingDirectory?.(e)}catch(e){i(e)}};typeof e==`string`?this.bridge.writeString(e,a):this.bridge.writeRaw(e,a);let o=this.bridge.synchronizedOutput?.()??!1,s=this.bridge.synchronizedOutputGeneration?.()??0;this._updateSynchronizedOutput(o,s),this._invalidateSearch(),this._synchronizedOutputState!==`held`&&(this._setupRendererIfNeeded(),this._scheduleRender()),a();for(let e of t)try{this.onData?.(this._windowSizeResponse(e))}catch(e){i(e)}if(r)throw n}fit(){if(!this.bridge||this._destroyed)return;let e=this._measureGridSize();e&&(e.cols!==this.cols||e.rows!==this.rows)&&this.resize(e.cols,e.rows)}_measureGridSize(){let e=this._measureCharSize();if(!e)return null;let t=getComputedStyle(this.element),n=this.element.getBoundingClientRect(),r=e=>parseFloat(e)||0,i=r(t.borderLeftWidth)+r(t.borderRightWidth),a=r(t.borderTopWidth)+r(t.borderBottomWidth),o=Math.max(0,this.element.offsetWidth-this.element.clientWidth-i),s=Math.max(0,this.element.offsetHeight-this.element.clientHeight-a),c=n.width-r(t.paddingLeft)-r(t.paddingRight)-i-o,l=n.height-r(t.paddingTop)-r(t.paddingBottom)-a-s;return c<=0||l<=0?null:{cols:Math.max(1,Math.floor(c/e.charWidth)),rows:Math.max(1,Math.floor(l/e.rowHeight))}}resize(e,t){if(!this.bridge||this._destroyed)return;this._textCapture.cancel(),this._rectangleDrag.cancel(),this._historySelection.invalidate(),this.renderer?.beforeMutation(this.bridge),this._shouldScrollToBottom=this._pendingResizeScrollTop===null&&this._isScrolledToBottom(),this.bridge.resize(e,t),this._outputAnnouncements.invalidate(),this.cols=this.bridge.getCols(),this.rows=this.bridge.getRows();let n=this.bridge.synchronizedOutput?.()??!1,r=this.bridge.synchronizedOutputGeneration?.()??0;this._updateSynchronizedOutput(n,r)?this._rendererNeedsSetup=!0:(this._setupRenderer(),this._scheduleRender()),this._invalidateSearch(),this.onResize&&this.onResize(this.cols,this.rows)}search(e,t={}){this._destroyed||(this._search.search(e,t),this._paintSearch())}findNext(){return!this._destroyed&&this._search.navigate(1)}findPrevious(){return!this._destroyed&&this._search.navigate(-1)}clearSearch(){this.search(``)}getSearchState(){return this._search.snapshot()}scrollToPrompt(e){if(!this._canRender()||!this.bridge?.findPrompt||!this.renderer||this._synchronizedOutputState===`held`||this.bridge.usingAltScreen()||e!==-1&&e!==1||(this._cancelScheduledRender(),this._doRender(),e===1&&this._isScrolledToBottom()))return!1;let t=this.element.getBoundingClientRect(),n=this.renderer.dragPositionAt(t.left,t.top+this.element.clientTop+1,this._charWidth);if(!n)return!1;let r=this.bridge.findPrompt(n.row,e);if(r===null||!Number.isInteger(r)||r<0||r>=this.bridge.getScrollbackCount()+this.rows||(e<0?r>=n.row:r<=n.row))return!1;let i=this.element.scrollTop;this._shouldScrollToBottom=!1,this._searchReveal=!1,this._pendingResizeScrollTop=r*this._rowHeight,this._doRender();let a=Array.from(this.renderer.searchRows()).find(({row:e})=>e===r);return a&&this._setScrollTop(this.element.scrollTop+a.element.getBoundingClientRect().top-t.top-this.element.clientTop),this._scheduleRender(),Math.abs(this.element.scrollTop-i)>$}setOutputAnnouncements(e){this._destroyed||this._outputAnnouncements.setEnabled(e)}setRenderingPaused(e){this._destroyed||e===this._renderingPaused||(this._renderingPaused=e,this._onVisibilityChange())}_canRender(){return!this._destroyed&&!this._renderingPaused&&this.element.ownerDocument.visibilityState!==`hidden`}readText(e={}){if(this._destroyed||!this.renderer||!this.bridge)return Promise.reject(Error(`Terminal is not initialized`));let t=this._textCapture.read(e.signal);return this._scheduleRender(),t}getSelectionText(){return this._destroyed?null:this._historySelection.getText()??this.renderer?.getSelectionText()??null}selectAll(){if(this._destroyed||!this.renderer||!this.bridge)return Promise.resolve(!1);this._rectangleDrag.cancel();let e=this._historySelection.select();return this._scheduleRender(),e}selectWord(e){return this._selectUnit(e,`word`)}selectLine(e){return this._selectUnit({row:e,col:0},`line`)}selectRectangle(e,t){if(this._destroyed||!this.bridge||!this.renderer||!this._canRender())return!1;let n=this.renderer.rectangle(this.bridge,e,t,()=>{this.input?.focus()});return n?(this._historySelection.selectRectangle(n),this._historySelection.paintRectangle(this.renderer.searchRows(),this._charWidth),!0):!1}_selectUnit(e,t){return this._destroyed||!this.bridge||!this.renderer?!1:this.renderer.select(this.bridge,e,t,()=>{this._rectangleDrag.cancel(),this._historySelection.clear();let e=this.element.ownerDocument.activeElement;e instanceof HTMLElement&&this.element.contains(e)&&e.tagName===`TEXTAREA`&&e.blur()})}clearSelection(){this._rectangleDrag.cancel(),this._historySelection.clear();let e=this.element.ownerDocument.getSelection();if(!(!e||e.isCollapsed)){for(let t=0;t<e.rangeCount;t++){let n=e.getRangeAt(t);if(!this.element.contains(n.startContainer)||!this.element.contains(n.endContainer))return}e.removeAllRanges()}}_invalidateSearch(){this.getSearchState().query&&(this._searchReveal=!1,this._search.invalidate(),this._paintSearch())}_paintSearch(){if(!this.renderer||!this.bridge||!this._canRender())return;let e=document.createDocumentFragment(),t=this._search.matches;if(!t.length){this.renderer.setSearchDecorations(e);return}let n=this.getSearchState().activeIndex,r=this.element.getBoundingClientRect();for(let{row:i,element:a}of this.renderer.searchRows()){let o=a.getBoundingClientRect();if(o.bottom<=r.top||o.top>=r.bottom)continue;let s=0,c=t.length;for(;s<c;){let e=s+c>>>1;t[e].end.row<i?s=e+1:c=e}let l=this.bridge.getScrollbackCount(),u=l-i-1,d=i<l?this.bridge.getScrollbackLineLen(u):this.cols;if(d<=0)continue;(i<l?this.bridge.getScrollbackCell(u,d-1):this.bridge.getCell(i-l,d-1)).spacerHead&&d--;let f=-1,p=-1,m=(t,n,r)=>{if(n<=t)return;let i=document.createElement(`div`);i.className=`term-search-match${r?` term-search-active`:``}`,i.style.cssText=`left:${t*this._charWidth}px;top:${a.offsetTop}px;width:${(n-t)*this._charWidth}px;height:${o.height}px`,e.appendChild(i)};for(let e=s;e<t.length&&t[e].start.row<=i;e++){let n=t[e],r=n.start.row===i?n.start.col:0,a=Math.min(d,n.end.row===i?n.end.endCol:d);f>=0&&r>p&&(m(f,p,!1),f=-1),f<0&&(f=r),p=Math.max(p,a)}f>=0&&m(f,p,!1);let h=t[n];h&&h.start.row<=i&&h.end.row>=i&&m(h.start.row===i?h.start.col:0,Math.min(d,h.end.row===i?h.end.endCol:d),!0)}this.renderer.setSearchDecorations(e)}focus(){this.input?this.input.focus():this.element.focus()}_scheduleRender(){!this._canRender()||this._synchronizedOutputState===`held`||this.rafId!=null||(this.rafId=requestAnimationFrame(()=>{this.rafId=null,this._doRender()}))}_cancelScheduledRender(){this.rafId!=null&&(cancelAnimationFrame(this.rafId),this.rafId=null)}_updateSynchronizedOutput(e,t){return e?this._synchronizedOutputState===`held`&&t!==this._synchronizedOutputGeneration?(this._armSynchronizedOutputFallback(t),!0):(this._synchronizedOutputState===`passthrough`&&t!==this._synchronizedOutputGeneration&&(this._synchronizedOutputState=`idle`),this._synchronizedOutputState===`idle`?(this._synchronizedOutputState=`held`,this._cancelScheduledRender(),this._armSynchronizedOutputFallback(t),!0):this._synchronizedOutputState===`held`):(this._synchronizedOutputState===`held`&&this._cancelSynchronizedOutputFallback(),this._synchronizedOutputState=`idle`,!1)}_armSynchronizedOutputFallback(e){this._cancelSynchronizedOutputFallback(),this._synchronizedOutputGeneration=e,this._synchronizedOutputTimer=setTimeout(()=>{this._synchronizedOutputState===`held`&&this._synchronizedOutputGeneration===e&&(this._synchronizedOutputTimer=null,this._synchronizedOutputState=`passthrough`,this._setupRendererIfNeeded(),this._cancelScheduledRender(),this._doRender())},ft)}_cancelSynchronizedOutputFallback(){this._synchronizedOutputTimer!=null&&(clearTimeout(this._synchronizedOutputTimer),this._synchronizedOutputTimer=null)}_setupRendererIfNeeded(){this._rendererNeedsSetup&&=(this._setupRenderer(),!1)}_setupRenderer(){!this._shouldScrollToBottom&&this._pendingResizeScrollTop===null&&(this._pendingResizeScrollTop=this.element.scrollTop),this.renderer?.requestSetup()}_initialRender(){this._doRender()}_doRender(){if(!this._canRender()||!this.bridge||!this.renderer||this._synchronizedOutputState===`held`)return;let e=0,t=this.debug?performance.now():0;if(this.debug)for(let t=0;t<this.rows;t++)this.bridge.isDirtyRow(t)&&e++;let n=this._rowHeight||17,r=this.bridge.getScrollbackCount(),i=this.bridge.getScrollbackDiscardedCount?.(),a=i!==void 0&&i>=this._scrollbackDiscardedCount?i-this._scrollbackDiscardedCount:0;i!==void 0&&(this._scrollbackDiscardedCount=i);let o=this._pendingResizeScrollTop===null?this.element.scrollTop:this._pendingResizeScrollTop;!this._shouldScrollToBottom&&a>0&&(o=Math.max(0,o-a*n),this._pendingResizeScrollTop===null?this._setScrollTop(o):this._pendingResizeScrollTop=o),this.renderer.render(this.bridge,{scrollTop:this._shouldScrollToBottom?Math.max(0,(r+this.rows)*n-this.element.clientHeight):o,clientHeight:this.element.clientHeight,rowHeight:n,scrollbackDiscardedCount:i,charWidth:this._charWidth}),this.debug&&this.debug.recordRender(performance.now()-t,e);let s=r>0||this.renderer.hasImageFlow;if(this.element.classList.toggle(`has-scrollback`,s),this._shouldScrollToBottom)this._scrollToBottom();else if(this._pendingResizeScrollTop!==null){let e=this._pendingResizeScrollTop;this._pendingResizeScrollTop=null,this._setScrollTop(e)}else!s&&this.element.scrollTop!==0&&this._setScrollTop(0);if(this.input?.syncInputPosition(),this._searchReveal){this._searchReveal=!1;let e=this._search.matches[this.getSearchState().activeIndex],t=e&&Array.from(this.renderer.searchRows()).find(({row:t})=>t===e.start.row);if(t){let e=t.element.getBoundingClientRect(),n=this.element.getBoundingClientRect();this._setScrollTop(this.element.scrollTop+e.top-n.top-(this.element.clientHeight-e.height)/2)}}this._paintSearch(),this._search.resume(this.bridge),this._historySelection.resume(this.bridge),this._historySelection.paintRectangle(this.renderer.searchRows(),this._charWidth),this._textCapture.resume(this.bridge),this._outputAnnouncements.rendered(),this._deliverTitle(),this._drainResponses()}_deliverTitle(){let e=this.bridge?.getTitle()??null;e!==null&&this.onTitle?.(e)}_drainResponses(){if(!this.bridge)return{hasError:!1};let e,t,n=!1;for(;(e=this.bridge.getResponse())!==null;)try{this.onData&&this.onData(e)}catch(e){n||(n=!0,t=e)}return{hasError:n,error:t}}_collectWindowSizeQueries(e){let t=[],n=this._windowSizeQueryState,r=0;for(;r<e.length;){if(n===0){if(r=typeof e==`string`?e.indexOf(`\x1B`,r):e.indexOf(27,r),r<0)break;n=1,r++;continue}let i=typeof e==`string`?e.charCodeAt(r):e[r];r++;let a=+(i===27);switch(n){case 1:n=i===91?2:a;break;case 2:n=i===49?3:a;break;case 3:n=i===52?4:i===54?6:a;break;case 4:case 6:i===116&&t.push(n===4?14:16),n=a}}return this._windowSizeQueryState=n,t}_windowSizeResponse(e){let{width:t,height:n}=this._pixelSize();if(e===14)return`\x1b[4;${n};${t}t`;let r=Math.max(1,Math.round(this._charWidth));return`\x1b[6;${Math.max(1,Math.round(this._rowHeight))};${r}t`}_pixelSize(){let e=getComputedStyle(this.element),t=(parseFloat(e.paddingLeft)||0)+(parseFloat(e.paddingRight)||0),n=(parseFloat(e.paddingTop)||0)+(parseFloat(e.paddingBottom)||0),r=this.element.clientWidth-t,i=this.element.clientHeight-n;if(r<=0||i<=0){let e=this.element.getBoundingClientRect();r=e.width-t,i=e.height-n}return r<=0&&this._charWidth>0&&(r=this.cols*this._charWidth),i<=0&&this._rowHeight>0&&(i=this.rows*this._rowHeight),{width:Math.max(1,Math.round(r)),height:Math.max(1,Math.round(i))}}_lockHeight(){let e=this._rowHeight||17,t=this.rows*e,n=getComputedStyle(this.element),r=(parseFloat(n.paddingTop)||0)+(parseFloat(n.paddingBottom)||0);n.boxSizing===`border-box`&&(r+=(parseFloat(n.borderTopWidth)||0)+(parseFloat(n.borderBottomWidth)||0)),this.element.style.height=`${t+r}px`}_setRowHeight(){let e=document.createElement(`div`);e.className=`term-row`,e.style.visibility=`hidden`,e.style.position=`absolute`,e.textContent=`W`,this._container.appendChild(e);let t=e.getBoundingClientRect().height;e.remove(),t>0&&(this._rowHeight=t,this.element.style.setProperty(`--term-row-height`,`${t}px`))}_measureCharSize(){let e=document.createElement(`div`);e.className=`term-row`,e.style.visibility=`hidden`,e.style.position=`absolute`;let t=document.createElement(`span`);t.style.width=`auto`,t.textContent=`W`,e.appendChild(t),this._container.appendChild(e);let n=t.getBoundingClientRect().width,r=e.getBoundingClientRect().height;return e.remove(),n===0||r===0?null:(this._charWidth=n,this._rowHeight=r,this.element.style.setProperty(`--term-cell-width`,`${n}px`),{charWidth:n,rowHeight:r})}_setupResizeObserver(){let e=document.createElement(`span`);e.className=`term-size-probe`,e.setAttribute(`aria-hidden`,`true`),e.textContent=`W`,this.element.appendChild(e);let t;this.resizeObserver=new ResizeObserver(e=>{if(this._destroyed)return;for(let n of e)n.target===this.element&&(t=n.contentRect);let n=this._measureCharSize();if(!n||!this.autoResize||!t)return;let{charWidth:r,rowHeight:i}=n,a=Math.max(1,Math.floor(t.width/r)),o=Math.max(1,Math.floor(t.height/i));(a!==this.cols||o!==this.rows)&&this.resize(a,o)}),this.resizeObserver.observe(e),this.autoResize&&this.resizeObserver.observe(this.element)}destroy(){this._destroyed=!0,this._textCapture.cancel(),this._historySelection.destroy(),this._rectangleDrag.destroy(),this._outputAnnouncements.destroy(),this._search.cancel(),this.onSearchChange=null,this._windowSizeQueryState=0,this._cancelScheduledRender(),this._cancelSynchronizedOutputFallback(),this.resizeObserver&&this.resizeObserver.disconnect(),this.input&&this.input.destroy(),this.renderer?.destroy(),this.renderer=null,this.element.removeEventListener(`click`,this._onClickFocus),this.element.removeEventListener(`click`,this._onMouseSelect),this.element.removeEventListener(`scroll`,this._onScroll),this.element.ownerDocument.removeEventListener(`copy`,this._onCopy),this.element.ownerDocument.removeEventListener(`visibilitychange`,this._onVisibilityChange),this.element.ownerDocument.removeEventListener(`keydown`,this._onModifierChange),this.element.ownerDocument.removeEventListener(`keyup`,this._onModifierChange),this.element.ownerDocument.defaultView?.removeEventListener(`blur`,this._onWindowBlur),this.element.classList.remove(`link-modifier-active`),this.element.innerHTML=``,this.debug&&globalThis.__wterm===this&&delete globalThis.__wterm,this.debug=null}};export{ct as DebugAdapter,We as InputHandler,Ce as Renderer,pt as WTerm,s as WasmBridge,l as WebSocketTransport};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./js-realm-worker-
|
|
1
|
+
import{n as e}from"./js-realm-worker-DUoX2h5j.js";const t={EACCES:2,EBADF:8,EBUSY:10,EEXIST:20,EINVAL:28,EIO:29,EISDIR:31,ELOOP:32,ENAMETOOLONG:37,ENOENT:44,ENOSPC:51,ENOSYS:52,ENOTDIR:54,ENOTEMPTY:55,EPERM:63,EROFS:69,ETIMEDOUT:73,EXDEV:75},n=4095;function r(e,n){if(n?.errno!==void 0&&n instanceof e.ErrnoError)return n;let r=n?.code,i=typeof r==`string`?t[r]??29:29;return new e.ErrnoError(i)}function i(e){let t=[],n=e;for(;n!==n.mount.root;)t.push(n.name),n=n.parent;let r=e.mount.opts.root.replace(/\/+$/,``);return t.length===0?r||`/`:`${r}/${t.reverse().join(`/`)}`}function a(e){let t=3735928559,n=1103547991;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r);t=Math.imul(t^i,2654435761),n=Math.imul(n^i,1597334677)}return t=Math.imul(t^t>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(t^t>>>13,3266489909),4294967296*(2097151&n)+(t>>>0)||1}function o(e){let t=e.isSymbolicLink?40960:e.isDirectory?16384:32768,r=e.isDirectory||e.isSymbolicLink?511:438;return t|((e.mode??r)&n||r)}function s(e){if(e!=null)return e instanceof Date?e.getTime():e}function c(e,n){let a=e=>e.mount.opts.bridge;function s(t){try{return t()}catch(t){throw r(e,t)}}function c(e){try{s(e)}catch(e){if(e.errno!==t.ENOSYS)throw e}}function l(e){return{...e?{stat:e}:{},len:0,loaded:!1,dirty:!1,openCount:0}}function u(t,r,i){let a=e.createNode(t,r,o(i),0);return a.node_ops=n.node,a.stream_ops=n.stream,a.live=l(i),a}function d(e){if(e.live.orphan)return{...e.live.stat,size:e.live.len};if(!e.live.stat){let t=s(()=>a(e).lstat(i(e)));e.live.stat=t,e.mode=o(t)}return e.live.stat}function f(e,t){let n=i(e);return n===`/`?`/${t}`:`${n}/${t}`}function p(e){let t=e.live;if(t.loaded)return;let n=s(()=>a(e).readFile(i(e)));t.data=n,t.len=n.length,t.loaded=!0}function m(e,t){let n=e.live,r=n.data??new Uint8Array;if(r.length>=t)return r;let i=new Uint8Array(Math.max(t,r.length*2,256));return i.set(r.subarray(0,n.len)),n.data=i,i}function h(e){let t=e.live;if(!t.dirty||!t.data||t.orphan)return;let n=t.data.slice(0,t.len);s(()=>a(e).writeFile(i(e),n)),t.dirty=!1,t.stat=void 0}function g(e,t){let n=e.live;if(n.openCount>0){t>0?p(e):n.loaded=!0;let r=m(e,t);t>n.len&&r.fill(0,n.len,t),n.len=t,n.dirty=!0;return}let r=i(e),o=new Uint8Array(t);if(t>0){let n=s(()=>a(e).readFile(r));o.set(n.subarray(0,Math.min(t,n.length)))}s(()=>a(e).writeFile(r,o)),n.stat=void 0}return{Fs:e,bridgeOf:a,call:s,metadataCall:c,makeNode:u,statOf:d,childPath:f,ensureLoaded:p,ensureCapacity:m,flushNode:h,truncate:g}}function l(e){let{Fs:r,bridgeOf:o,call:c,metadataCall:l,makeNode:u,statOf:d,childPath:f,flushNode:p,truncate:m}=e,{ensureLoaded:h}=e;return{getattr(e){let t=d(e),n=e.live,o=r.isDir(e.mode)?4096:n.loaded?n.len:t.size,s=new Date(t.mtimeMs??0);return{dev:1,ino:t.ino??a(i(e)),mode:e.mode,nlink:1,uid:0,gid:0,rdev:0,size:o,atime:s,mtime:s,ctime:s,blksize:4096,blocks:Math.ceil(o/4096)}},setattr(e,t){if(e.live.orphan){t.mode!==void 0&&t.mode!==null&&(e.mode=e.mode&-4096|t.mode&n),t.size!==void 0&&t.size!==null&&m(e,t.size);return}let a=i(e);if(t.mode!==void 0&&t.mode!==null){let r=t.mode&n;r!==(e.mode&n)&&(l(()=>o(e).chmod(a,r)),e.mode=e.mode&-4096|r)}t.size!==void 0&&t.size!==null&&r.isFile(e.mode)&&m(e,t.size);let c=s(t.mtime)??t.timestamp;if(c!==void 0){let n=s(t.atime)??c;p(e),l(()=>o(e).utimes(a,n,c))}e.live.stat=void 0},lookup(e,t){let n=c(()=>o(e).lstat(f(e,t)));return u(e,t,n)},mknod(e,n,i){let a=f(e,n);if(r.isDir(i)){c(()=>o(e).mkdir(a));let t=i&4077;t!==493&&l(()=>o(e).chmod(a,t))}else if(r.isFile(i))c(()=>o(e).writeFile(a,new Uint8Array));else throw new r.ErrnoError(t.EPERM);let s=u(e,n,{isFile:r.isFile(i),isDirectory:r.isDir(i),isSymbolicLink:!1,size:0,mode:i,mtimeMs:Date.now()});return s.live.stat=void 0,s},rename(e,t,n){let a=i(e),s=f(t,n);p(e),c(()=>o(e).rename(a,s));try{let i=r.lookupNode?.(t,n);i&&i!==e&&r.hashRemoveNode?.(i)}catch{}e.name=n,e.live.stat=void 0},unlink(e,t){let n;try{let i=r.lookupNode?.(e,t);i&&i.live?.openCount>0&&r.isFile(i.mode)&&(n=i)}catch{}n&&(d(n),h(n)),c(()=>o(e).unlink(f(e,t))),n&&(n.live.orphan=!0)},rmdir(e,t){c(()=>o(e).rmdir(f(e,t)))},readdir(e){return[`.`,`..`,...c(()=>o(e).readdir(i(e)))]},symlink(e,t,n){let r=f(e,t);return c(()=>o(e).symlink(n,r)),u(e,t,{isFile:!1,isDirectory:!1,isSymbolicLink:!0,size:n.length})},readlink(e){if(!r.isLink(e.mode))throw new r.ErrnoError(t.EINVAL);return c(()=>o(e).readlink(i(e)))}}}function u(e){let{Fs:n,statOf:r,ensureLoaded:i,ensureCapacity:a,flushNode:o}=e;return{open(e){n.isFile(e.node.mode)&&e.node.live.openCount++},dup(e){n.isFile(e.node.mode)&&e.node.live.openCount++},close(e){let t=e.node;if(!n.isFile(t.mode))return;let r=t.live;if(r.openCount=Math.max(0,r.openCount-1),!(r.openCount>0))try{o(t)}finally{r.data=void 0,r.len=0,r.loaded=!1}},read(e,r,a,o,s){let c=e.node;if(n.isDir(c.mode))throw new n.ErrnoError(t.EISDIR);i(c);let l=c.live;if(s>=l.len||o<=0)return 0;let u=Math.min(o,l.len-s);return new Uint8Array(r.buffer,r.byteOffset+a,u).set(l.data.subarray(s,s+u)),u},write(e,r,o,s,c){let l=e.node;if(n.isDir(l.mode))throw new n.ErrnoError(t.EISDIR);if(s<=0)return 0;i(l);let u=l.live,d=c+s,f=a(l,d);return c>u.len&&f.fill(0,u.len,c),f.set(new Uint8Array(r.buffer,r.byteOffset+o,s),c),u.len=Math.max(u.len,d),u.dirty=!0,s},llseek(e,i,a){let o=i;if(a===1)o+=e.position;else if(a===2&&n.isFile(e.node.mode)){let t=e.node.live;o+=t.loaded?t.len:r(e.node).size}if(o<0)throw new n.ErrnoError(t.EINVAL);return o},fsync(e){o(e.node)}}}function d(e){let n=new Set,r={},i=c(e,r),a=l(i),o=u(i);return r.node=a,r.stream=o,{mounts:n,node_ops:a,stream_ops:o,mount(r){let a=i.call(()=>r.opts.bridge.stat(r.opts.root));if(!a.isDirectory)throw new e.ErrnoError(t.ENOTDIR);let o=i.makeNode(null,`/`,a);return n.add(r),o}}}function f(e,t){return!!t&&e.mounts.has(t.mount)}function p(e,t){for(let n of e.nameTable??[])for(let a=n;a;a=a.name_next??null)if(!(!f(t,a)||!a.live.dirty||!a.live.data))try{let e=a.live.data.slice(0,a.live.len);a.mount.opts.bridge.writeFile(i(a),e),a.live.dirty=!1}catch(t){throw r(e,t)}}function m(e,t){let n=e.nameTable??[],r=[];for(let e of n)for(let n=e;n;n=n.name_next??null){if(!f(t,n))continue;let e=n.live;e.stat=void 0,e.openCount===0?n!==n.mount.root&&r.push(n):e.loaded&&!e.dirty&&(e.data=void 0,e.len=0,e.loaded=!1)}if(e.hashRemoveNode)for(let t of r)e.hashRemoveNode(t)}function h(e){let t=[...new Set(e.map(e=>e.replace(/\/+$/,``)||`/`))].sort();return t.filter(e=>!t.some(t=>t!==e&&(t===`/`||e.startsWith(`${t}/`))))}function g(e){if(e instanceof Error)return e.message;let t=e?.errno;return typeof t==`number`?`errno ${t}`:String(e)}function _(e,t,n,r){if(typeof e.filesystems!=`object`||!e.filesystems)throw Error(`the module was linked without filesystem support, so the VFS cannot be mounted (link it with -sFORCE_FILESYSTEM=1)`);let i=e.filesystems.SLICC_LIVE_FS??d(e);e.filesystems.SLICC_LIVE_FS=i;let a=[];for(let o of h(n))if(o!==`/`)try{e.mkdirTree(o),e.mount(i,{root:o,bridge:t},o),a.push(o)}catch(e){r(`live VFS mount of ${o} failed: ${g(e)}`)}return{plugin:i,mounted:a}}const v=new Set([`dev`,`proc`]),y=[`/usr`,`/bin`],b=[`writeFile`,`mkdir`,`rm`,`rename`,`unlink`,`rmdir`,`symlink`,`chmod`,`utimes`];function x(t,n){let r={...t};for(let i of b){let a=t[i];r[i]=(...r)=>{n.wasUsed()&&e(n,t);try{a.apply(t,r)}finally{n.invalidate()}}}return r}function S(e,t){let n;try{n=e.readdir(`/`)}catch(e){return t(`cannot list the VFS root, nothing mounted: ${String(e)}`),[]}let r=n.filter(e=>e&&!e.includes(`/`)&&!v.has(e)).map(e=>`/${e}`);for(let e of y)r.includes(e)||r.push(e);let i=[];for(let t of r)try{e.stat(t).isDirectory&&i.push(t)}catch{}return i}function C(t,n,r={}){let{bridge:i,syncFs:a,warn:o}=n;a.wasUsed()&&e(a,i);let{plugin:s,mounted:c}=_(t,x(i,a),S(i,o),o);try{t.chdir(r.cwd??n.cwd)}catch(e){o(`cannot chdir to ${r.cwd??n.cwd}: ${String(e)}`)}return{mounted:c,flush:()=>p(t,s),invalidate:()=>m(t,s)}}export{C as mountVfsIntoEmscripten};
|
package/dist/ui/assets/{frozen-archive-writer-AZqZX0be.js → frozen-archive-writer-DV7A8nNw.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./slugify-BYJ6QVAt.js";import{n,r,t as i}from"./archive-redaction-ByV7X5fs.js";import{t as a}from"./types-D8gIX-W-.js";import{a as o,h as s,i as c}from"./kernel-worker-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./slugify-BYJ6QVAt.js";import{n,r,t as i}from"./archive-redaction-ByV7X5fs.js";import{t as a}from"./types-D8gIX-W-.js";import{a as o,h as s,i as c}from"./kernel-worker-MybuXyBd.js";const l=/\uD83C\uDF99\uFE0F?/g,u=/\u25C1[\s\S]*?\u25B7/g;function d(e){return e.replace(u,``).replace(l,``).replace(/[ \t]+$/g,``).trimEnd()}function f(e){let t=``;for(let n of e){let e=n.role===`user`?`User`:`Assistant`,r=n.role===`user`?d(n.content):n.content;if(t+=`## ${e}\n${r}\n\n`,n.attachments?.length&&(t+=`Attachments:\n${n.attachments.map(e=>`- ${s(e)}`).join(`
|
|
2
2
|
`)}\n\n`),n.toolCalls)for(let e of n.toolCalls)t+=`### Tool: ${e.name}\nInput: ${JSON.stringify(e.input,null,2)}\nResult: ${e.result??``}\n\n`}return t}var p=e({LIVE_SNAPSHOT_PREFIX:()=>m,SESSIONS_INDEX_LOCK:()=>P,ensureSessionsDir:()=>M,findLiveSnapshotEntry:()=>_,formatArchiveAsMarkdown:()=>k,heuristicTitle:()=>E,isDraftArchiveFilename:()=>h,isProvisionalSessionTitle:()=>w,liveSnapshotFilename:()=>g,readSessionsIndexForWrite:()=>N,rewriteTranscriptPointers:()=>O,serializeIndexWrite:()=>I,sessionsIndexLockFor:()=>j,sessionsIndexPathFor:()=>A,shortId:()=>v,slugify:()=>y,stripEphemeral:()=>D,upsertSessionsIndexEntry:()=>z,upsertSessionsIndexEntryUnlocked:()=>R,writeSessionsIndexUnlocked:()=>L});const m=`live-`;function h(e){return e.startsWith(`pending-`)||e.startsWith(`live-`)}function g(e){return`${m}${y(e)}-${v()}.md`}function _(e,t){return e.find(e=>e.live===!0&&(e.cone??`cone`)===t)}function v(){return`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`}function y(e){return t(e,{maxLen:48,fallback:`session`})}const b=`untitled-session`,x=RegExp(`^(?:_Forwarded from .+?\\._\\s*)*(?:\\[@\\S+ (?:completed|idle|sudo-request|FAILED)\\b|\\[scoop_wait\\b|\\[(?:${[`Webhook Event`,`Sprinkle Event`,`File Watch Event`,`Session Reload`,`Navigate Event`,`Upgrade Event`,`Cherry Event`,`Workflow Event`,`Background Command`,`jshd Unit`,`Cron Event`,`Scoop Access Request`,`Preview Event`,`Preview event`,`Discovery Event`].join(`|`)})\\b|Preview tab (?:connected|disconnected) from |<context-summary\\b)`);function S(e){return e.slice(0,480).trim().replace(/\s+/g,` `).slice(0,240)}function C(e){let t=S(e);return t.length>0&&x.test(t)}function w(e){return e===b||C(e)}function T(e){return e.role!==`user`||!e.content?.trim()||e.source===`lick`||e.channel?!1:!C(e.content)}function E(e){let t=e.find(T);if(!t?.content)return b;let n=t.content.trim().replace(/\s+/g,` `);return n.length>60?`${n.slice(0,60)}…`:n||b}function D(e){return e.map(e=>{let t={id:e.id,role:e.role,content:e.content,timestamp:e.timestamp};return e.attachments?.length&&(t.attachments=e.attachments),e.toolCalls?.length&&(t.toolCalls=e.toolCalls.map(e=>({id:e.id,name:e.name,input:e.input,...e.result===void 0?{}:{result:e.result},...e.isError?{isError:e.isError}:{}}))),e.source&&(t.source=e.source),e.channel&&(t.channel=e.channel),e.compaction&&(t.compaction=e.compaction),t})}function O(e,t,n){return!t||t===n?e:e.split(t).join(n)}function k(e){let t=i(),a={...e,title:n(e.title,t),messages:r(e.messages,t)},o=(a.cost?`cost: ${JSON.stringify(a.cost)}\n`:``)+(a.models?`models: ${JSON.stringify(a.models)}\n`:``),s=(a.cone?`cone: ${a.cone}\n`:``)+(a.coneLabel?`coneLabel: ${JSON.stringify(a.coneLabel)}\n`:``)+(a.memorySkipped?`memorySkipped: true
|
|
3
3
|
`:``)+(a.live?`live: true
|
|
4
4
|
`:``)+(a.live&&a.liveThrough?`liveThrough: ${a.liveThrough}\n`:``)+(a.live&&a.compactions?`compactions: ${a.compactions}\n`:``)+(a.curatedThrough?`curatedThrough: ${a.curatedThrough}\n`:``),c=`---\nid: ${a.id}\n`+(a.sessionId?`sessionId: ${a.sessionId}\n`:``)+(a.attachmentsKey?`attachmentsKey: ${a.attachmentsKey}\n`:``)+`title: ${JSON.stringify(a.title)}\nfrozenAt: ${a.frozenAt}\ncreatedAt: ${a.createdAt}\nupdatedAt: ${a.updatedAt}\nmessageCount: ${a.messageCount}\n`+o+s+`---
|
package/dist/ui/assets/{frozen-archive-writer-D8Na80jS.js → frozen-archive-writer-DV8CfTGq.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{Dt as t,at as n}from"./wc-shell-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{Dt as t,at as n}from"./wc-shell-C0Y0f1tt.js";import{t as r}from"./slugify-BYJ6QVAt.js";import{t as i}from"./types-D8gIX-W-.js";var a=[{category:`jwt`,source:String.raw`ey[A-Za-z0-9_-]{4,}\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+`,flags:`g`},{category:`private-key`,source:`-----BEGIN [A-Z ]* PRIVATE KEY-----`+String.raw`[\s\S]*?`+`-----END [A-Z ]* PRIVATE KEY-----`,flags:`g`},{category:`bearer-token`,source:`Bearer [A-Za-z0-9._~+/=!-]+`,flags:`gi`},{category:`api-key`,source:`(?:sk-(?:live|test|prod|proj)-[A-Za-z0-9]{8,}|sk-ant-[A-Za-z0-9-]{8,}|xoxb-[A-Za-z0-9-]{10,}|xoxp-[A-Za-z0-9-]{10,}|AKIA[A-Z0-9]{16}|ghp_[A-Za-z0-9]{36}|hf_[A-Za-z0-9]{34})`,flags:`g`},{category:`password`,source:String.raw`\b(?:password|passwd|token|secret|api_key)\s*[=:]\s*\S+`,flags:`gi`}],o=`⟦REDACTED:[^⟧]*⟧`;function s(e,t){return e.start<t.end&&t.start<e.end}function c(e){let t=[];for(let n of e.matchAll(new RegExp(o,`g`))){let e=n.index;e!==void 0&&t.push({start:e,end:e+n[0].length})}return t}function l(e,t,n=1,r){let i=c(e),o=[],l=n,u=r?.categories?a.filter(e=>r.categories?.includes(e.category)):a;for(let{category:n,source:r,flags:a}of u)for(let c of e.matchAll(new RegExp(r,a))){let e=c.index;if(e===void 0)continue;let r={start:e,end:e+c[0].length};i.some(e=>s(e,r))||o.some(e=>s(e,r))||o.push({...r,id:`${t}${l++}`,category:n})}o.sort((e,t)=>e.start-t.start);let d=``,f=0;for(let{start:t,end:n,id:r,category:i}of o)d+=e.slice(f,t),d+=`⟦REDACTED:${i}:${r}⟧`,f=n;return d+=e.slice(f),{text:d,matches:o.map(({id:e,category:t})=>({id:e,category:t})),nextId:l}}var u=[`jwt`,`private-key`,`bearer-token`,`api-key`],d=`ar`;function f(){return{nextId:1}}function p(e,t){let{text:n,nextId:r}=l(e,d,t.nextId,{categories:u});return t.nextId=r,n}function m(e,t){if(typeof e==`string`)return p(e,t);if(Array.isArray(e)){let n=!1,r=[];for(let i of e){let e=m(i,t);e!==i&&(n=!0),r.push(e)}return n?r:e}if(typeof e==`object`&&e){let n=!1,r={};for(let[i,a]of Object.entries(e)){let e=m(a,t);e!==a&&(n=!0),r[i]=e}return n?r:e}return e}function h(e,t=f()){return m(e,t)}function g(e){let r=``;for(let i of e){let e=i.role===`user`?`User`:`Assistant`,a=i.role===`user`?n(i.content):i.content;if(r+=`## ${e}\n${a}\n\n`,i.attachments?.length&&(r+=`Attachments:\n${i.attachments.map(e=>`- ${t(e)}`).join(`
|
|
2
2
|
`)}\n\n`),i.toolCalls)for(let e of i.toolCalls)r+=`### Tool: ${e.name}\nInput: ${JSON.stringify(e.input,null,2)}\nResult: ${e.result??``}\n\n`}return r}var _=`/sessions`,v=`/sessions/index.json`;async function y(e){try{let t=await e.readFile(v,{encoding:`utf-8`}),n=typeof t==`string`?t:new TextDecoder().decode(t),r=JSON.parse(n);return Array.isArray(r)?r:[]}catch{return[]}}function b(e){return`${_}/${e.filename}`}function x(e){let t=e,n=`Untitled`,r={},i=t.match(/^---\n([\s\S]*?)\n---\n+/);if(i){t=t.slice(i[0].length),Object.assign(r,S(i[1]));let e=i[1].match(/^title:\s*(.+?)\s*$/m);e&&(n=C(e[1]))}let a=t.match(/<!-- slicc:session-data\n([\s\S]*?)\n-->\n*/);if(a){try{let e=a[1].replace(/-- >/g,`-->`),t=JSON.parse(e);if(Array.isArray(t))return{title:n,messages:t,...r}}catch{}t=t.replace(/<!-- slicc:session-data\n[\s\S]*?\n-->\n*/,``)}return r.sidecar?{title:n,messages:[],...r}:(t=t.replace(/^#\s+[^\n]*\n+/,``),{title:n,messages:T(t),...r})}function S(e){let t={},n=w(e,`cost`),r=w(e,`models`);n&&(t.cost=n),r&&(t.models=r);let i=e.match(/^cone:\s*(.+?)\s*$/m)?.[1];i&&(t.cone=i);let a=e.match(/^coneLabel:\s*(.+?)\s*$/m)?.[1];a&&(t.coneLabel=C(a)),/^memorySkipped:\s*true\s*$/m.test(e)&&(t.memorySkipped=!0),/^live:\s*true\s*$/m.test(e)&&(t.live=!0);let o=Number(e.match(/^liveThrough:\s*(\d+)\s*$/m)?.[1]);Number.isFinite(o)&&o>0&&(t.liveThrough=o);let s=Number(e.match(/^compactions:\s*(\d+)\s*$/m)?.[1]);Number.isFinite(s)&&s>0&&(t.compactions=s);let c=Number(e.match(/^curatedThrough:\s*(\d+)\s*$/m)?.[1]);Number.isFinite(c)&&c>0&&(t.curatedThrough=c);let l=e.match(/^id:\s*(\S+)\s*$/m)?.[1];l&&(t.id=l);let u=e.match(/^sessionId:\s*(\S+)\s*$/m)?.[1];u&&(t.sessionId=u);let d=e.match(/^attachmentsKey:\s*(\S+)\s*$/m)?.[1];d&&(t.attachmentsKey=d);let f=e.match(/^sidecar:\s*(\S+)\s*$/m)?.[1];return f&&(t.sidecar=f),t}function C(e){let t=e.trim();if(!t.startsWith(`"`))return t;try{let e=JSON.parse(t);if(typeof e==`string`)return e}catch{}return t.replace(/^"|"$/g,``)}function w(e,t){let n=RegExp(`^${t}:\\s*(.+?)\\s*$`,`m`).exec(e)?.[1];if(n)try{return JSON.parse(n)}catch{return}}function T(e){let t=[],n=/^## (User|Assistant)\s*\n/gm,r=[],i;for(;(i=n.exec(e))!==null;)r.push({role:i[1]===`User`?`user`:`assistant`,start:i.index,bodyStart:i.index+i[0].length});for(let n=0;n<r.length;n++){let i=n+1<r.length?r[n+1].start:e.length,a=e.slice(r[n].bodyStart,i).trim();t.push({id:`frozen-${n}`,role:r[n].role,content:a,timestamp:0})}return t}var ee=e({LIVE_SNAPSHOT_PREFIX:()=>O,SESSIONS_INDEX_LOCK:()=>J,ensureSessionsDir:()=>K,findLiveSnapshotEntry:()=>j,formatArchiveAsMarkdown:()=>U,heuristicTitle:()=>B,isDraftArchiveFilename:()=>k,isProvisionalSessionTitle:()=>R,liveSnapshotFilename:()=>A,readSessionsIndexForWrite:()=>q,rewriteTranscriptPointers:()=>H,serializeIndexWrite:()=>X,sessionsIndexLockFor:()=>G,sessionsIndexPathFor:()=>W,shortId:()=>M,slugify:()=>N,stripEphemeral:()=>V,upsertSessionsIndexEntry:()=>$,upsertSessionsIndexEntryUnlocked:()=>Q,writeSessionsIndexUnlocked:()=>Z}),E=`<!-- slicc:session-data
|
|
3
3
|
`,D=`
|
|
4
4
|
-->`,O=`live-`;function k(e){return e.startsWith(`pending-`)||e.startsWith(`live-`)}function A(e){return`${O}${N(e)}-${M()}.md`}function j(e,t){return e.find(e=>e.live===!0&&(e.cone??`cone`)===t)}function M(){return`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`}function N(e){return r(e,{maxLen:48,fallback:`session`})}var P=`untitled-session`,F=RegExp(`^(?:_Forwarded from .+?\\._\\s*)*(?:\\[@\\S+ (?:completed|idle|sudo-request|FAILED)\\b|\\[scoop_wait\\b|\\[(?:${[`Webhook Event`,`Sprinkle Event`,`File Watch Event`,`Session Reload`,`Navigate Event`,`Upgrade Event`,`Cherry Event`,`Workflow Event`,`Background Command`,`jshd Unit`,`Cron Event`,`Scoop Access Request`,`Preview Event`,`Preview event`,`Discovery Event`].join(`|`)})\\b|Preview tab (?:connected|disconnected) from |<context-summary\\b)`);function I(e){return e.slice(0,480).trim().replace(/\s+/g,` `).slice(0,240)}function L(e){let t=I(e);return t.length>0&&F.test(t)}function R(e){return e===P||L(e)}function z(e){return e.role!==`user`||!e.content?.trim()||e.source===`lick`||e.channel?!1:!L(e.content)}function B(e){let t=e.find(z);if(!t?.content)return P;let n=t.content.trim().replace(/\s+/g,` `);return n.length>60?`${n.slice(0,60)}…`:n||P}function V(e){return e.map(e=>{let t={id:e.id,role:e.role,content:e.content,timestamp:e.timestamp};return e.attachments?.length&&(t.attachments=e.attachments),e.toolCalls?.length&&(t.toolCalls=e.toolCalls.map(e=>({id:e.id,name:e.name,input:e.input,...e.result===void 0?{}:{result:e.result},...e.isError?{isError:e.isError}:{}}))),e.source&&(t.source=e.source),e.channel&&(t.channel=e.channel),e.compaction&&(t.compaction=e.compaction),t})}function H(e,t,n){return!t||t===n?e:e.split(t).join(n)}function U(e){let t=f(),n={...e,title:p(e.title,t),messages:h(e.messages,t)},r=(n.cost?`cost: ${JSON.stringify(n.cost)}\n`:``)+(n.models?`models: ${JSON.stringify(n.models)}\n`:``),i=(n.cone?`cone: ${n.cone}\n`:``)+(n.coneLabel?`coneLabel: ${JSON.stringify(n.coneLabel)}\n`:``)+(n.memorySkipped?`memorySkipped: true
|