sliccy 6.239.0 → 6.240.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ui/.vite/manifest.json +213 -206
- package/dist/ui/assets/{account-store-D8_Dfaay.js → account-store-Co7p6uLK.js} +1 -1
- package/dist/ui/assets/{account-store-DIwBWa5E.js → account-store-Dcuv1CAr.js} +1 -1
- package/dist/ui/assets/{adobe-Dhbax_Br.js → adobe-C8D8r5Fe.js} +1 -1
- package/dist/ui/assets/{adobe-4yG5Jojo.js → adobe-DScuixZ8.js} +1 -1
- package/dist/ui/assets/{agent-panels-C29MoSl4.js → agent-panels-O5YJfC1_.js} +1 -1
- package/dist/ui/assets/{almost-bash-shell-headless-2CLmgbnr.js → almost-bash-shell-headless-C4AVF2S6.js} +488 -488
- package/dist/ui/assets/{apply-layout-Tf3-paMF.js → apply-layout-BZ9iuS4D.js} +1 -1
- package/dist/ui/assets/{azure-openai-CV-fQjTG.js → azure-openai-DGNroO-7.js} +1 -1
- package/dist/ui/assets/{azure-openai-Bun6vpyO.js → azure-openai-jPUEdFGb.js} +1 -1
- package/dist/ui/assets/{cdp-LW6tWTA_.js → cdp-DfHqMmOw.js} +1 -1
- package/dist/ui/assets/{cerebras-CyKW7bZ0.js → cerebras--GK0UhYQ.js} +1 -1
- package/dist/ui/assets/{cerebras-yHe16lDC.js → cerebras-DJsSEczS.js} +1 -1
- package/dist/ui/assets/{composer-speech-DlI-Cx5J.js → composer-speech-Bdzozil9.js} +1 -1
- package/dist/ui/assets/{connect-surface-DeAt_ZAc.js → connect-surface-BQ_yaiI0.js} +1 -1
- package/dist/ui/assets/{directed-approval-C5pWtjRZ.js → directed-approval-CM6zsUB_.js} +1 -1
- package/dist/ui/assets/{emscripten-vfs-hook-DWEcz7cK.js → emscripten-vfs-hook-BykczwZL.js} +1 -1
- package/dist/ui/assets/{frozen-archive-writer-CMu6TvYW.js → frozen-archive-writer-BoBWoTrh.js} +1 -1
- package/dist/ui/assets/{frozen-archive-writer-BPn5tRZ0.js → frozen-archive-writer-DHqVNK3z.js} +1 -1
- package/dist/ui/assets/{frozen-session-delete-D3Nn1hnH.js → frozen-session-delete-CmVE8uz7.js} +1 -1
- package/dist/ui/assets/{frozen-session-identity-BftVqDgr.js → frozen-session-identity-CRTDWmSN.js} +1 -1
- package/dist/ui/assets/{frozen-session-identity-Cjcq_2LL.js → frozen-session-identity-ChrV93y5.js} +1 -1
- package/dist/ui/assets/{gelatiere-unit-DSTJIump.js → gelatiere-unit-Dnug4wB5.js} +1 -1
- package/dist/ui/assets/{github-BOEXMP5I.js → github-B2Jmtl5T.js} +1 -1
- package/dist/ui/assets/{github-CDLDVvae.js → github-DBHS2Dqt.js} +1 -1
- package/dist/ui/assets/{github-copilot-DmRSv3eX.js → github-copilot-Cb-AGqlO.js} +1 -1
- package/dist/ui/assets/{github-copilot-GWf8yFqj.js → github-copilot-jU2_bitu.js} +1 -1
- package/dist/ui/assets/{go-driver-CvHJRpyw.js → go-driver-Bl_pd-vs.js} +1 -1
- package/dist/ui/assets/{hear-COy7lJi8.js → hear-C8rKY1FP.js} +1 -1
- package/dist/ui/assets/icons-BJTFywJo.js +1 -0
- package/dist/ui/assets/{js-realm-worker-BX6sSVEP.js → js-realm-worker-kX5NT2rg.js} +2 -2
- package/dist/ui/assets/{jsh-executor-DMD5ddFz.js → jsh-executor-BVRmWOcY.js} +2 -2
- package/dist/ui/assets/{kernel-worker-C4MiASR-.js → kernel-worker-B8dQ6oD2.js} +8 -8
- package/dist/ui/assets/{lick-ws-bridge-CNTM_E_X.js → lick-ws-bridge-B55KMh7y.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-C6ESiukL.js → lick-ws-bridge-xmS7PfYb.js} +1 -1
- package/dist/ui/assets/{live-session-curation-B2cEWodJ.js → live-session-curation-BNMM5Cko.js} +1 -1
- package/dist/ui/assets/{live-session-curation-BlJB9qzA.js → live-session-curation-C8WI_jMh.js} +1 -1
- package/dist/ui/assets/{live-session-snapshot-BctAuI5m.js → live-session-snapshot-BW_iWuYO.js} +1 -1
- package/dist/ui/assets/{local-llm-B7q3J_L2.js → local-llm-BTE5kJfp.js} +1 -1
- package/dist/ui/assets/{local-llm-BdiGwRPz.js → local-llm-CJUTJaEr.js} +1 -1
- package/dist/ui/assets/main-Cxb1a5Uz.js +22 -0
- package/dist/ui/assets/{main-cherry-Cs1Ann97.js → main-cherry-Oc5q4aB-.js} +1 -1
- package/dist/ui/assets/{mcp-command-CXofTqGH.js → mcp-command-CwuwVp6r.js} +9 -9
- package/dist/ui/assets/{memory-curation-seam-BrcfUyLE.js → memory-curation-seam-BMeMHKkg.js} +1 -1
- package/dist/ui/assets/{memory-health-C9R7SlKi.js → memory-health-Bvv6LYKB.js} +1 -1
- package/dist/ui/assets/{memory-write-execute-B5dvOReg.js → memory-write-execute-CPixKZV3.js} +1 -1
- package/dist/ui/assets/{merge-folded-cost-into-frozen-lQrAjo3y.js → merge-folded-cost-into-frozen-hv0-jK2p.js} +1 -1
- package/dist/ui/assets/new-session-DspiDGrn.js +2 -0
- package/dist/ui/assets/{oauth-bootstrap-CHIy6Gm9.js → oauth-bootstrap-Dya1IvMk.js} +2 -2
- package/dist/ui/assets/{onboarding-orchestrator-BFvm2xiq.js → onboarding-orchestrator-DkOtMT6l.js} +1 -1
- package/dist/ui/assets/{openai-codex-B7o_kfeG.js → openai-codex-DPx8bB-I.js} +1 -1
- package/dist/ui/assets/{openai-codex-C0v0bADZ.js → openai-codex-DqI-LV1p.js} +1 -1
- package/dist/ui/assets/{openrouter-BvYuCJyw.js → openrouter-Bm5NKbSA.js} +1 -1
- package/dist/ui/assets/{openrouter-CjK8QxpD.js → openrouter-CX8Bzh4-.js} +1 -1
- package/dist/ui/assets/{openrouter-free-Ckg5PGJI.js → openrouter-free-BtMhJjpj.js} +1 -1
- package/dist/ui/assets/{openrouter-free-CpnGXHOt.js → openrouter-free-Dio8R8YY.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-B7SPH2rM.js → openrouter-oauth-CYyzK9z-.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-Bn-kidmO.js → openrouter-oauth-DTvqvfHg.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-Cz6BSSZA.js → panel-rpc-handlers-DfSkY8OF.js} +2 -2
- package/dist/ui/assets/{panelize-shell-DuYIEVZp.js → panelize-shell-BF3KcP4C.js} +1 -1
- package/dist/ui/assets/{pi-edit-execution-DG6p7-5P.js → pi-edit-execution-2UPU8l9Z.js} +1 -1
- package/dist/ui/assets/{process-worker-Qo-KJQnm.js → process-worker-B_jMhtwi.js} +1 -1
- package/dist/ui/assets/{provider-9ZUgiMpB.js → provider-BVH2DJ2j.js} +1 -1
- package/dist/ui/assets/{provider-D2ZYPo-w.js → provider-C8H2Tzfg.js} +1 -1
- package/dist/ui/assets/{provider-settings-CQlHJFH1.js → provider-settings-SY82ESoD.js} +1 -1
- package/dist/ui/assets/provider-store-access-Cd8AQEiQ.js +1 -0
- package/dist/ui/assets/provider-store-access-DbDmDCT_.js +1 -0
- package/dist/ui/assets/{providers-o3PSAZzA.js → providers-CefzTaF8.js} +1 -1
- package/dist/ui/assets/{providers-BH5jcsI3.js → providers-DollmArp.js} +2 -2
- package/dist/ui/assets/quick-llm-DiEAuzzI.js +1 -0
- package/dist/ui/assets/{realm-inprocess-liML3utD.js → realm-inprocess-Cc3228-9.js} +2 -2
- package/dist/ui/assets/{realm-unhandled-rejections-BK0JhQwR.js → realm-unhandled-rejections-BcZm-Y2j.js} +1 -1
- package/dist/ui/assets/{realm-unhandled-rejections-cG6AguM7.js → realm-unhandled-rejections-TLpLRRgO.js} +1 -1
- package/dist/ui/assets/{recovery-screen-DBCfk0t-.js → recovery-screen-Cl89ahLT.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-BdwibNDb.js → remote-terminal-view-D82qMvNy.js} +2 -2
- package/dist/ui/assets/{restore-DKKWE7qo.js → restore-yq1C_osw.js} +1 -1
- package/dist/ui/assets/{run-CSqBGpbN.js → run-BPeIvqOM.js} +1 -1
- package/dist/ui/assets/{run-DPb-_GVl.js → run-Cu8PtYCw.js} +2 -2
- package/dist/ui/assets/{run-DKWaudm_.js → run-DW65sPip.js} +12 -12
- package/dist/ui/assets/{run-CBmNeNV5.js → run-DZrK_oOt.js} +2 -2
- package/dist/ui/assets/{run-DCCKDraC.js → run-tc2VFBej.js} +1 -1
- package/dist/ui/assets/{session-command-memory-a5EZNUwp.js → session-command-memory-CDOmbg5g.js} +2 -2
- package/dist/ui/assets/{session-jsonl-_QWNiZX3.js → session-jsonl-C4593KNn.js} +1 -1
- package/dist/ui/assets/{session-jsonl-DUdZghbY.js → session-jsonl-D_UZgGp5.js} +1 -1
- package/dist/ui/assets/{session-search-index-B-R--ndE.js → session-search-index-CUPFfLvv.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-DxCLsJ3k.js → setup-feature-flags-remote-cYu5aVbG.js} +1 -1
- package/dist/ui/assets/{setup-model-catalog-CeqAS8Mo.js → setup-model-catalog-CR19K3-A.js} +1 -1
- package/dist/ui/assets/{silent-renew-backoff-jTgRXFkn.js → silent-renew-backoff-Bvrf2Hhh.js} +1 -1
- package/dist/ui/assets/slicc-version-BxghrDTL.js +1 -0
- package/dist/ui/assets/{soundscape-DRNmNI9R.js → soundscape-DxIHlkzy.js} +1 -1
- package/dist/ui/assets/{speak-BhmMqs9a.js → speak-DkUF9yAq.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-DvWj32Aj.js → sprinkle-manager-UTFA1mfr.js} +1 -1
- package/dist/ui/assets/{sprinkle-renderer-CDi2K0Gg.js → sprinkle-renderer-Cr1UxyZz.js} +1 -1
- package/dist/ui/assets/{sudo-BDyQV9Rk.js → sudo-SwaFp2JP.js} +1 -1
- package/dist/ui/assets/{supervisor-c8DDwpCe.js → supervisor-DvFfdQZG.js} +1 -1
- package/dist/ui/assets/{sync-dialog-DiBKt4y_.js → sync-dialog-89X_eADs.js} +1 -1
- package/dist/ui/assets/{transformers-env-DkclSft7.js → transformers-env-C6jpYwFE.js} +1 -1
- package/dist/ui/assets/{tray-leader-DhQw8Vyo.js → tray-leader-2nVEUays.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-CgYC8lzC.js → tray-leave-runtime-Bn1GC9Cf.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-CTXFReb_.js → tray-sidecar-DmR9wMCP.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-DJkzgh_V.js → upgrade-detection-CHMH6iyk.js} +1 -1
- package/dist/ui/assets/utf16-clip-CGL7omVm.js +1 -0
- package/dist/ui/assets/{voice-reply-BDxhQxq3.js → voice-reply-BSouYhfc.js} +1 -1
- package/dist/ui/assets/{wasi-runtime-D50sf0fY.js → wasi-runtime-BBxEcrtW.js} +5 -5
- package/dist/ui/assets/{wc-attach-Cz4Segxp.js → wc-attach-4HlzE8yC.js} +2 -2
- package/dist/ui/assets/{wc-browser-DACcAKyw.js → wc-browser-_YDya6R4.js} +1 -1
- package/dist/ui/assets/{wc-computers-DwbsWvJk.js → wc-computers-DsTSGd08.js} +1 -1
- package/dist/ui/assets/{wc-detached-qHwBVBrK.js → wc-detached-Cnh8X5Wm.js} +1 -1
- package/dist/ui/assets/{wc-extension-Z4I4Bju7.js → wc-extension-CTg_a4Zu.js} +2 -2
- package/dist/ui/assets/wc-follower-CpxmTt8d.js +17 -0
- package/dist/ui/assets/{wc-follower-oauth-B7k4jnu8.js → wc-follower-oauth-D8E_ti39.js} +1 -1
- package/dist/ui/assets/{wc-gelatiere-D-U3dAxD.js → wc-gelatiere-BCuLQnrY.js} +1 -1
- package/dist/ui/assets/wc-live-1-EV8_qk.js +248 -0
- package/dist/ui/assets/{wc-nav-nmgBtf5f.js → wc-nav-BJ5I51NK.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-BHk8sSaZ.js → wc-onboarding-myCW-Onf.js} +2 -2
- package/dist/ui/assets/{wc-permissions-DAdJvlP4.js → wc-permissions-Baf4WNdK.js} +2 -2
- package/dist/ui/assets/wc-placeholder-C0mKH-Yt.js +4 -0
- package/dist/ui/assets/{wc-secret-request-bhtsXEeR.js → wc-secret-request-DLrIa256.js} +1 -1
- package/dist/ui/assets/{wc-settings-BoCRAYwI.js → wc-settings-C14VLbGh.js} +3 -3
- package/dist/ui/assets/{wc-shell-CuOqCSKv.js → wc-shell-BTfKKBgo.js} +4 -4
- package/dist/ui/assets/{wc-shortcut-config-5vUzFHFF.js → wc-shortcut-config-BvDHKCy0.js} +1 -1
- package/dist/ui/assets/{wc-sprinkles-HdCnSQzK.js → wc-sprinkles-ZL0xE_Cs.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-Bg4-Bg4b.js → wc-transcript-export-CyRiKnwi.js} +2 -2
- package/dist/ui/assets/{wc-tray-wYtpqxqQ.js → wc-tray-jeohKKcJ.js} +4 -4
- package/dist/ui/assets/welcome-detection-CuDKZAa8.js +1 -0
- package/dist/ui/assets/{whisper-session-u58K2Q3y.js → whisper-session-Ch8cDNVc.js} +2 -2
- package/dist/ui/assets/{xai-grok-B_xnricm.js → xai-grok-BFykbO4p.js} +1 -1
- package/dist/ui/assets/{xai-grok-COiWlii6.js → xai-grok-CpBrt9ak.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/ui/lucide-icons.js +358 -355
- package/dist/ui/packages/webapp/index.html +3 -3
- package/package.json +3 -3
- package/dist/ui/assets/icons-2DY2vYOc.js +0 -1
- package/dist/ui/assets/main-CslAwAF2.js +0 -22
- package/dist/ui/assets/new-session-Dp8xDbm-.js +0 -2
- package/dist/ui/assets/provider-store-access-CD0n5Juv.js +0 -1
- package/dist/ui/assets/provider-store-access-CNt__qng.js +0 -1
- package/dist/ui/assets/quick-llm-CcF7noc9.js +0 -1
- package/dist/ui/assets/slicc-version-CzxKLup1.js +0 -1
- package/dist/ui/assets/wc-follower-CGMjE8mK.js +0 -17
- package/dist/ui/assets/wc-live-CrWRbzvC.js +0 -248
- package/dist/ui/assets/wc-placeholder-CegeCuXU.js +0 -4
- package/dist/ui/assets/welcome-detection-C8enaOAA.js +0 -1
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shell-CuOqCSKv.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/mime-types-D0xZwlMO.js","assets/base64-ELzoYfwP.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-DIwBWa5E.js","assets/core-Cx9N3lmn.js","assets/compat-BAGLwgqY.js","assets/models-Xc0Gclrk.js","assets/diagnostics-Cag7MsZI.js","assets/env-api-keys-BXRkymgV.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-DHpsqCCC.js","assets/libesm-BypnjKEL.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-4VBgrEIu.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-hMRoGGjt.js","assets/float-topology-C_iRKPQK.js","assets/secrets-bridge-client-D734Xx8G.js","assets/port-bridge-client-B-gpiOVR.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-BH5jcsI3.js","assets/stored-accounts-ChNHYF68.js","assets/bedrock-camp-compat-B1oHsbyo.js","assets/bedrock-camp-extra-models-BYrxX19D.js","assets/claude-model-version-DZmbk9E2.js","assets/same-file-identity-OexpsaSD.js","assets/telemetry-B0sKnLBU.js","assets/types-D8gIX-W-.js","assets/icons-2DY2vYOc.js","assets/wc-shell-WkeczD9x.css","assets/mount-picker-popup-qcWGbpG5.js","assets/picker-popup-sQtXmfAo.js","assets/usb-picker-O-2gFMNl.js","assets/serial-picker-BQF_Eitc.js","assets/hid-picker-sFJ8vzUj.js","assets/usb-device-registry--JwKRTYp.js","assets/serial-port-registry-CCqklAEr.js","assets/hid-device-registry-B2R-0rNt.js","assets/frozen-archive-writer-BPn5tRZ0.js","assets/slugify-BYJ6QVAt.js","assets/frozen-session-identity-Cjcq_2LL.js","assets/quick-llm-CcF7noc9.js","assets/llm-session-id-bZQs6gBN.js","assets/session-jsonl-DUdZghbY.js","assets/main-CslAwAF2.js","assets/modulepreload-polyfill-P2Xu9kJm.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js","assets/wc-placeholder-CegeCuXU.js","assets/wc-attach-Cz4Segxp.js","assets/permissions-surface-registry-CilCRwhh.js","assets/frozen-session-delete-D3Nn1hnH.js","assets/live-session-curation-BlJB9qzA.js","assets/record-CBv8rWFt.js","assets/descriptor-CuhPBdq8.js","assets/thinking-level-DCJktR5U.js","assets/wc-gelatiere-D-U3dAxD.js","assets/new-session-Dp8xDbm-.js","assets/tray-leader-DhQw8Vyo.js","assets/mount-table-store-dY2IfQ5S.js","assets/legacy-styles-B3nS5QUo.js","assets/soundscape-DRNmNI9R.js","assets/voice-reply-BDxhQxq3.js","assets/speak-BhmMqs9a.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-DkclSft7.js","assets/shared-DSEuryGJ.js","assets/remote-vfs-client-Cs1yUtQm.js","assets/writable-vfs-client-CQe6oZ75.js","assets/wc-onboarding-BHk8sSaZ.js","assets/wc-browser-DACcAKyw.js","assets/slicc-app-url-BKHBBuTR.js","assets/tab-teleport-C8QSKgl0.js","assets/teleport-storage-CyYkSZfJ.js","assets/wc-computers-DwbsWvJk.js","assets/scale-B8PGb3fG.js","assets/remote-terminal-view-BdwibNDb.js","assets/browser-BhTdBqdp.js","assets/usb-operations-v1mGAdRY.js","assets/terminal-session-client-DmE-iBjP.js","assets/secret-env-z9SReONx.js","assets/wc-permissions-DAdJvlP4.js","assets/wc-permissions-providers-DwX67umy.js","assets/wc-secret-request-bhtsXEeR.js","assets/secret-request-registry-DrOMKR1H.js","assets/theme-CwPIBqJE.js","assets/theme-engine-ZV7CeqWw.js","assets/panelize-shell-DuYIEVZp.js","assets/virtual-device-paths-D45tpPP6.js","assets/layout-apply-registry-Cw730jao.js","assets/wc-shortcut-config-5vUzFHFF.js","assets/remote-sprinkle-vfs-UzNBy5VJ.js","assets/bounded-walk-BjxKWNqp.js","assets/path-utils-DNJG-zQf.js","assets/wc-sprinkles-HdCnSQzK.js","assets/wc-unit-context-CZro7UrY.js","assets/agent-panels-C29MoSl4.js","assets/apply-layout-Tf3-paMF.js","assets/wc-tray-wYtpqxqQ.js","assets/transcript-export-DP-r8eDz.js","assets/wc-follower-oauth-B7k4jnu8.js","assets/sprinkle-renderer-CDi2K0Gg.js","assets/hid-operations-C97SZtrY.js","assets/pending-request-table-k-D7ZZsL.js","assets/export-spool-CuNzzI8a.js","assets/src-BWaKqLvQ.js","assets/panel-rpc-sLZo8PD-.js","assets/types-DSxCdZw6.js","assets/synthetic-cdp-transport-OUVdC4zy.js","assets/sprinkle-instances-B8n7h-oP.js","assets/wc-transcript-export-Bg4-Bg4b.js","assets/wc-nav-nmgBtf5f.js","assets/composer-speech-DlI-Cx5J.js","assets/whisper-session-u58K2Q3y.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{d as t,l as n,u as r}from"./core-Cx9N3lmn.js";import{t as i}from"./preload-helper-Czpn1I53.js";import{t as a}from"./logger-DDBAeTLF.js";import{$ as o,A as s,C as c,D as l,E as u,I as d,O as f,P as p,S as m,T as h,a as g,at as _,b as v,c as y,ct as b,d as x,dt as S,ft as ee,i as C,k as w,l as te,n as ne,nt as re,o as ie,pt as ae,r as oe,t as se,tt as ce,u as le,ut as ue,v as de,w as fe,x as pe,y as me}from"./wc-shell-CuOqCSKv.js";import{a as he}from"./feature-flags-DvsApnS-.js";import{r as ge,t as _e}from"./base64-ELzoYfwP.js";import{a as ve,c as ye,d as be,f as xe,l as Se,n as Ce,o as we,s as Te,u as Ee}from"./sprinkle-renderer-CDi2K0Gg.js";import{B as De,C as Oe,u as ke,w as Ae,z as je}from"./account-store-DIwBWa5E.js";import"./proxied-fetch-4VBgrEIu.js";import{n as Me}from"./same-file-identity-OexpsaSD.js";import{n as Ne}from"./runtime-env-Dlaokqg1.js";import{t as Pe}from"./slugify-BYJ6QVAt.js";import{a as Fe,i as Ie,n as T,t as Le}from"./transcript-export-DP-r8eDz.js";import{_ as Re,a as ze,c as E,f as Be,g as Ve,h as D,i as He,l as Ue,m as O,n as We,o as Ge,s as Ke,t as qe,u as Je,v as k,x as Ye,y as Xe}from"./frozen-archive-writer-BPn5tRZ0.js";import{d as Ze,o as Qe,s as $e,t as et}from"./api-endpoint-DuEQRZ4g.js";import{n as tt}from"./float-topology-C_iRKPQK.js";import"./secret-topology-hMRoGGjt.js";import{n as nt}from"./secrets-bridge-client-D734Xx8G.js";import{t as rt}from"./tool-ui-eSQ1g2I1.js";import{a as it,c as at,l as ot,n as st,p as ct,r as lt}from"./telemetry-B0sKnLBU.js";import{a as ut,i as dt,t as ft}from"./tray-follower-status-BAjnN7Ar.js";import{D as pt,T as mt,b as ht,f as gt,j as _t,m as vt,p as yt,s as bt}from"./main-CslAwAF2.js";import{n as xt}from"./src-BWaKqLvQ.js";import{n as St,r as Ct,t as wt}from"./provider-budget-LCzMPlKv.js";import{t as Tt}from"./permissions-surface-registry-CilCRwhh.js";import{t as Et}from"./types-D8gIX-W-.js";import{n as Dt,r as Ot}from"./hid-device-registry-B2R-0rNt.js";import"./browser-BhTdBqdp.js";import{a as kt,i as At}from"./serial-port-registry-CCqklAEr.js";import{c as jt,d as Mt,g as Nt,i as Pt,l as Ft,m as It,n as Lt,o as Rt,p as zt,r as Bt,t as Vt,u as Ht}from"./hid-operations-C97SZtrY.js";import{a as Ut,t as Wt}from"./icons-2DY2vYOc.js";import{a as Gt,i as Kt}from"./usb-device-registry--JwKRTYp.js";import{f as qt,i as Jt,l as Yt,s as Xt,u as Zt}from"./usb-operations-v1mGAdRY.js";import{a as Qt,i as $t,r as en}from"./tray-leader-DhQw8Vyo.js";import{a as tn,c as nn,f as A,h as rn,i as an,l as on,m as sn,n as cn,o as ln,s as un,u as j}from"./record-CBv8rWFt.js";import{a as dn,o as fn,r as pn,s as mn,t as hn}from"./descriptor-CuhPBdq8.js";import{n as gn,t as M}from"./types-CFfBWsH5.js";import"./shared-DSEuryGJ.js";import{r as _n}from"./frozen-session-identity-Cjcq_2LL.js";import{a as vn,n as yn,r as bn,t as xn}from"./session-jsonl-DUdZghbY.js";import{a as Sn,n as Cn,r as wn}from"./theme-CwPIBqJE.js";import{a as Tn,c as En,d as Dn,i as On,l as kn,n as An,r as jn,s as Mn,u as Nn}from"./live-session-curation-BlJB9qzA.js";import{_ as Pn,a as Fn,d as In,f as Ln,g as Rn,h as zn,i as Bn,l as Vn,n as Hn,o as Un,p as Wn,r as Gn,u as Kn}from"./wc-unit-context-CZro7UrY.js";var qn=new Set([`summarized`,`fallback`]);function Jn(e){if(!M(e)||e===null||e.origin!==`agent-history`)return[];let t=[];for(let n of e.entries)n.kind!==`tool-call`&&n.message&&t.push(n.message);return t}async function Yn(e,t={}){if(!M(e)||e===null)return[];if(e.origin===`ui-projection`){let t=[];for(let n of e.entries)n.kind!==`tool-call`&&n.chat&&t.push(n.chat);return Zn(t,e.markers)}let n=e.projectionPrefix??[],r=Jn(e);if(r.length===0)return Zn([...n],e.markers);let{agentMessagesToChatMessages:a}=await i(async()=>{let{agentMessagesToChatMessages:e}=await import(`./wc-shell-CuOqCSKv.js`).then(e=>e.lt);return{agentMessagesToChatMessages:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38])),o=Xn(a(r,t),e.attachments);return Zn([...n,...o],e.markers)}function Xn(e,t){if(!t?.length)return e;let n=[...t].sort((e,t)=>e.timestamp-t.timestamp),r=new Set;return e.map(e=>{if(e.role!==`user`||e.attachments?.length)return e;let t=e.content.trim(),i=n.findIndex((e,n)=>!r.has(n)&&e.body.trim()===t);return i<0?e:(r.add(i),{...e,attachments:n[i].attachments})})}function Zn(e,t){let n=(t??[]).filter(e=>e.kind!==`compaction`||qn.has(e.compaction.state));if(n.length===0)return e;let r=[...n].sort((e,t)=>e.timestamp-t.timestamp),i=[],a=0;for(let t of e){let e=Qn(t);for(;a<r.length&&r[a].timestamp<=e;)i.push($n(r[a++]));i.push(t)}for(;a<r.length;)i.push($n(r[a++]));return i}function Qn(e){let t=e.timestamp;if(typeof t==`number`&&Number.isFinite(t))return t;if(typeof t==`string`){let e=Date.parse(t);if(!Number.isNaN(e))return e}return-1/0}function $n(e){return e.kind===`error`?{id:e.id,role:`assistant`,content:e.text,timestamp:e.timestamp,error:!0}:{id:e.id,role:`assistant`,content:``,timestamp:e.timestamp,compaction:e.compaction}}var er=e({CanonicalSessionReader:()=>rr,agentSessionFromRecord:()=>nr,chatSessionFromRecord:()=>tr});async function tr(e){return{id:e.legacyKeys.chatSessionId,messages:await Yn(e),createdAt:e.createdAt,updatedAt:e.updatedAt}}function nr(e){return{id:e.workUnitId,messages:Jn(e),config:{},createdAt:e.createdAt,updatedAt:e.updatedAt}}var rr=class{store;constructor(e){this.store=e}async loadAgentSessions(){return(await this.latestPerUnit()).map(nr)}async loadChatSessions(){return Promise.all((await this.latestPerUnit()).map(tr))}async latestPerUnit(){let e=new Map;for(let t of await this.store.loadAll()){let n=e.get(t.workUnitId);(!n||t.updatedAt>n.updatedAt)&&e.set(t.workUnitId,t)}return[...e.values()]}async loadRootChatSession(e){let t=await this.store.loadLatestInWorkspace(mn({parentJid:null,folder:e}).root);return t?tr(t):null}async load(e){return e.startsWith(`session-`)?this.loadRootChatSession(e.slice(8)):null}},ir=new Set([`scoop-notify`,`scoop-idle`,`scoop-wait`]);function ar(e){return`e${e}`}function or(e){let t=[];for(let n of e){let e=cr(n),r=ur(n);if(e===`assistant`){let e=t.length,i=ar(e);t.push({id:i,seq:e,kind:`assistant`,timestamp:r,text:fr(n),message:n,model:dr(n)});for(let e of pr(n)){let n=t.length;t.push({id:ar(n),seq:n,kind:`tool-call`,timestamp:r,toolCallId:e.id,name:e.name,assistantEntryId:i})}continue}if(e===`toolResult`){let e=n,i=t.length;t.push({id:ar(i),seq:i,kind:`tool-result`,timestamp:r,text:fr(n),message:n,toolCallId:e.toolCallId??``,isError:e.isError});continue}let i=fr(n),a=e===`user`?sr(i):null,o=t.length,s=ar(o);a===null?t.push({id:s,seq:o,kind:`user`,timestamp:r,text:i,message:n}):ir.has(a)?t.push({id:s,seq:o,kind:`child-result`,timestamp:r,text:i,message:n,channel:a}):t.push({id:s,seq:o,kind:`external-event`,timestamp:r,text:i,message:n,channel:a})}return t}function sr(e){for(let t of ee(e)){let e=(t.sender?S(t.sender):null)??ue(t.body);if(e)return e}return null}function cr(e){return e.role??``}function lr(e){if(typeof e==`number`)return e;if(typeof e==`string`){let t=Date.parse(e);return Number.isNaN(t)?0:t}return e instanceof Date?e.getTime():0}function ur(e){return lr(e.timestamp)}function dr(e){let t=e.model;return typeof t==`string`?t:void 0}function fr(e){let t=e.content;if(typeof t==`string`)return t;if(!Array.isArray(t))return``;let n=[];for(let e of t)e?.type===`text`&&n.push(e.text);return n.join(``)}function pr(e){let t=e.content;if(!Array.isArray(t))return[];let n=[];for(let e of t){if(e?.type!==`toolCall`)continue;let t=e;n.push({id:t.id??``,name:t.name??``})}return n}var mr=e({CONVERSATION_DB_NAME:()=>hr,WorkUnitConversationStore:()=>_r}),N=a(`work-unit-conversation`),hr=`slicc-work-units`,gr=1,P=`conversations`,F=`migrations`,_r=class{dbPromise=null;dbName;writeChains=new Map;constructor(e={}){this.dbName=e.dbName??`slicc-work-units`}async load(e){let t=await this.read(e);return t.status===`ok`?t.record:null}async read(e){try{let t=await I((await this.getDb()).transaction(P,`readonly`).objectStore(P).get(e));return t?M(t)?Array.isArray(t.entries)?{status:`ok`,record:t}:(N.warn(`Conversation record has no entry list`,{key:e}),{status:`malformed`,reason:`entries is not a list`}):(N.warn(`Ignoring conversation record from a newer schema`,{key:e,version:t.version}),{status:`incompatible`,version:t.version}):{status:`absent`}}catch(t){return N.warn(`Conversation record read failed`,{key:e,error:L(t)}),{status:`error`,reason:L(t)}}}async save(e){let t=e.version>2?e.version:gn(e),n={...e,version:t},r=(await this.getDb()).transaction(P,`readwrite`);return r.objectStore(P).put(n),await wr(r),n}delete(e){return this.serialize(e,async()=>{try{let t=(await this.getDb()).transaction(P,`readwrite`);t.objectStore(P).delete(e),await wr(t)}catch(t){N.warn(`Conversation record delete failed`,{key:e,error:L(t)})}})}async rekey(e,t){if(e!==t.key)try{let n=await this.read(e);if(n.status!==`ok`)return;let r=await this.read(t.key);if(r.status===`incompatible`||r.status===`error`){N.warn(`Conversation rekey refused: target is not writable`,{fromKey:e,toKey:t.key,status:r.status});return}let i=Date.now();await this.save({...n.record,key:t.key,workUnitId:t.workUnitId,workspaceId:t.workspaceId,folder:t.folder,legacyKeys:t.legacyKeys,updatedAt:i}),await this.delete(e)}catch(n){N.warn(`Conversation rekey failed`,{fromKey:e,toKey:t.key,error:L(n)})}}async loadAll(){try{return(await I((await this.getDb()).transaction(P,`readonly`).objectStore(P).getAll())).filter(e=>M(e)&&Array.isArray(e.entries))}catch(e){return N.warn(`Conversation record listing failed`,{error:L(e)}),[]}}async loadLatestInWorkspace(e){try{let t=`${e}::`,n=await I((await this.getDb()).transaction(P,`readonly`).objectStore(P).getAll(IDBKeyRange.bound(t,`${t}\uffff`))),r=null;for(let e of n)!M(e)||!Array.isArray(e.entries)||(!r||e.updatedAt>r.updatedAt)&&(r=e);return r}catch(t){return N.warn(`Conversation workspace lookup failed`,{workspaceId:e,error:L(t)}),null}}async listKeys(){try{return(await I((await this.getDb()).transaction(P,`readonly`).objectStore(P).getAllKeys())).map(String)}catch(e){return N.warn(`Conversation key listing failed`,{error:L(e)}),[]}}async syncAgentMessages(e,t,n={}){let r=n.now??Date.now(),i=or(t);return this.serialize(e.key,()=>this.ingestEntries(e,i,n,r))}async ingestEntries(e,t,n,r){try{let i=await this.read(e.key);if(i.status===`incompatible`||i.status===`error`)return null;let a=i.status===`ok`?i.record:null,o=vr(a,t,e,`agent-history`,{createdAt:n.createdAt??r,now:r});return o?await this.save(o):a}catch(t){return N.warn(`Conversation record write failed`,{key:e.key,error:L(t)}),null}}async putMarker(e,t,n={}){return this.withRecord(e,n.createWith,e=>{let n=(e.markers??[]).filter(e=>e.id!==t.id);return n.push(t),n.sort((e,t)=>e.timestamp-t.timestamp),{...e,markers:n.slice(-64)}})}async putAttachments(e,t){if(t.length===0)return!1;let n=new Set(t.map(e=>e.id));return this.withRecord(e.key,e,e=>({...e,attachments:[...(e.attachments??[]).filter(e=>!n.has(e.id)),...t].sort((e,t)=>e.timestamp-t.timestamp).slice(-256)}))}async deleteMarker(e,t){return this.withRecord(e,void 0,e=>{let n=(e.markers??[]).filter(e=>e.id!==t);return n.length===(e.markers?.length??0)?null:{...e,markers:n}})}withRecord(e,t,n){return this.serialize(e,()=>this.mutateRecord(e,t,n))}async mutateRecord(e,t,n){try{let r=await this.read(e),i=r.status===`ok`?r.record:r.status===`absent`&&t?yr(t,Date.now()):null;if(!i)return!1;let a=n(i);return a?(await this.save({...a,updatedAt:Date.now()}),!0):!1}catch(t){return N.warn(`Conversation marker write failed`,{key:e,error:L(t)}),!1}}serialize(e,t){let n=(this.writeChains.get(e)??Promise.resolve()).then(t,t),r=n.then(()=>void 0,()=>void 0);return this.writeChains.set(e,r),r.then(()=>{this.writeChains.get(e)===r&&this.writeChains.delete(e)}),n}async getMigrationState(e){try{return await I((await this.getDb()).transaction(F,`readonly`).objectStore(F).get(e))??null}catch(t){return N.warn(`Migration state read failed`,{id:e,error:L(t)}),null}}async putMigrationState(e){try{let t=(await this.getDb()).transaction(F,`readwrite`);t.objectStore(F).put(e),await wr(t)}catch(t){N.warn(`Migration state write failed`,{id:e.id,error:L(t)})}}async clearAll(){let e=(await this.getDb()).transaction([P,F],`readwrite`);e.objectStore(P).clear(),e.objectStore(F).clear(),await wr(e)}getDb(){return this.dbPromise||(this.dbPromise=Cr(this.dbName).then(e=>(e.onversionchange=()=>{e.close(),this.dbPromise=null},e.onclose=()=>{this.dbPromise=null},e)),this.dbPromise.catch(()=>{this.dbPromise=null})),this.dbPromise}};function vr(e,t,n,r,i){if(!e)return t.length===0?null:{key:n.key,version:2,workUnitId:n.workUnitId,workspaceId:n.workspaceId,folder:n.folder,origin:r,entries:t,createdAt:i.createdAt,updatedAt:i.now,legacyKeys:n.legacyKeys};if(e.origin===`ui-projection`&&r===`agent-history`)return t.length===0?null:{...e,version:2,origin:r,entries:t,projectionPrefix:[...e.projectionPrefix??[],...br(e)],updatedAt:i.now,legacyKeys:n.legacyKeys};let a=e.entries;if(t.length===a.length&&xr(a,t))return null;let o=t.length>a.length&&xr(a,t);return{...e,version:2,origin:r,entries:t,updatedAt:i.now,rewrites:o?e.rewrites:(e.rewrites??0)+1,legacyKeys:n.legacyKeys}}function yr(e,t){return{key:e.key,version:2,workUnitId:e.workUnitId,workspaceId:e.workspaceId,folder:e.folder,origin:`agent-history`,entries:[],createdAt:t,updatedAt:t,legacyKeys:e.legacyKeys}}function br(e){let t=[];for(let n of e.entries)n.kind!==`tool-call`&&n.chat&&t.push(n.chat);return t}function xr(e,t){if(e.length>t.length)return!1;for(let n=0;n<e.length;n++)if(!Sr(e[n],t[n]))return!1;return!0}function Sr(e,t){return e.kind!==t.kind||e.seq!==t.seq?!1:e.kind===`tool-call`&&t.kind===`tool-call`?e.toolCallId===t.toolCallId&&e.name===t.name:(`text`in e?e.text:``)===(`text`in t?t.text:``)}function Cr(e){return new Promise((t,n)=>{let r=indexedDB.open(e,gr);r.onupgradeneeded=()=>{let e=r.result;e.objectStoreNames.contains(P)||e.createObjectStore(P,{keyPath:`key`}),e.objectStoreNames.contains(F)||e.createObjectStore(F,{keyPath:`id`})},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}function I(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}function wr(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onerror=()=>n(e.error),e.onabort=()=>n(e.error)})}function L(e){return e instanceof Error?e.message:String(e)}var Tr=e({getTranscriptExportService:()=>Dr,registerTranscriptExportService:()=>Er}),R=null;function Er(e){return R=e,()=>{R===e&&(R=null)}}function Dr(){if(!R)throw new T(`session-not-found`);return R}var Or=e({broadcastToDips:()=>Kr,disposeDips:()=>_i,handleDipPickerAction:()=>vi,hydrateDips:()=>gi,mountDip:()=>U,setDipExecHandler:()=>Jr}),kr=Ne();i(()=>import(`./screen-share-approval-live-D388fVD9.js`).then(e=>{e.listenScreenShareApprovalChannel()}),[]);function Ar(e){if(typeof e!=`object`||!e||Array.isArray(e))return[];let t=e.filters;return Array.isArray(t)?t:[]}async function jr(e,t){if(t?.aborted)throw new DOMException(`aborted`,`AbortError`);let n=await Pr(e,!0,t);if(t?.aborted)throw new DOMException(`aborted`,`AbortError`);if(n===null)throw Error(`VFS read failed: ${e}`);return typeof n==`string`?n:new TextDecoder().decode(n)}var Mr=null;function Nr(){if(Mr)return Mr;if(typeof BroadcastChannel>`u`)return null;try{Mr=new BroadcastChannel(`preview-vfs`)}catch{return null}return Mr}async function Pr(e,t,n){let r=Nr();if(!r)return null;let i=`dip-${Date.now()}-${Math.random().toString(36).slice(2)}`;return new Promise(a=>{let o=!1,s=()=>{r.removeEventListener(`message`,c),n?.removeEventListener(`abort`,l)},c=e=>{if(!o&&e.data?.type===`preview-vfs-response`&&e.data.id===i){if(o=!0,s(),e.data.error){a(null);return}a(e.data.content??null)}},l=()=>{o||(o=!0,s(),a(null))};r.addEventListener(`message`,c),n?.addEventListener(`abort`,l),setTimeout(()=>{o||(o=!0,s(),a(null))},5e3),r.postMessage({type:`preview-vfs-read`,id:i,path:e,asText:t})})}var Fr=[`/shared/sprinkles/`,`/workspace/skills/sprinkles/`,`/workspace/sprinkles/`],Ir=[`/shared/`,`/workspace/skills/sprinkles/`,`/workspace/sprinkles/`];function Lr(e){return Fr.some(t=>e.startsWith(t))}function Rr(e){return typeof e!=`string`||!e.startsWith(`/`)||e.includes(`..`)?!1:Ir.some(t=>e.startsWith(t))}var z=new WeakSet,zr=`,
|
|
3
|
-
exec: Object.assign(function(cmd) {
|
|
4
|
-
return _vfsCall('dip-exec', { cmd: cmd }, function(m) { return m.result; });
|
|
5
|
-
}, { spawn: function(argv) {
|
|
6
|
-
return _vfsCall('dip-jsh', { op: 'spawn', args: [argv] }, function(m) { return m.result; });
|
|
7
|
-
} }),
|
|
8
|
-
agent: function(prompt, opts) {
|
|
9
|
-
return _vfsCall('dip-agent', { prompt: prompt, opts: opts || null },
|
|
10
|
-
function(m) { return m.result; });
|
|
11
|
-
}`,Br=`,
|
|
12
|
-
fetch: function(url, init) {
|
|
13
|
-
return _vfsCall('dip-jsh', { op: 'fetch', args: [url, init || null] }, function(m) { return m.result; });
|
|
14
|
-
},
|
|
15
|
-
http: { client: function(cfg) {
|
|
16
|
-
function mk(method) { return function(path, opts) { return _vfsCall('dip-jsh', { op: 'http', args: [cfg, method, path, opts || null] }, function(m) { return m.result; }); }; }
|
|
17
|
-
return { get: mk('get'), post: mk('post'), put: mk('put'), patch: mk('patch'), 'delete': mk('delete') };
|
|
18
|
-
} },
|
|
19
|
-
browser: {
|
|
20
|
-
findTab: function(q) { return _vfsCall('dip-jsh', { op: 'browser', args: ['findTab', q] }, function(m) { return m.result; }); },
|
|
21
|
-
ensureTab: function(url, options) { return _vfsCall('dip-jsh', { op: 'browser', args: ['ensureTab', url, options || {}] }, function(m) { return m.result; }); },
|
|
22
|
-
eval: function(tab, code) { return _vfsCall('dip-jsh', { op: 'browser', args: ['eval', tab, code] }, function(m) { return m.result; }); },
|
|
23
|
-
evalAsync: function(tab, code) { return _vfsCall('dip-jsh', { op: 'browser', args: ['evalAsync', tab, code] }, function(m) { return m.result; }); },
|
|
24
|
-
cookie: function(tab, name) { return _vfsCall('dip-jsh', { op: 'browser', args: ['cookie', tab, name] }, function(m) { return m.result; }); },
|
|
25
|
-
localStorage: function(tab, key) { return _vfsCall('dip-jsh', { op: 'browser', args: ['localStorage', tab, key] }, function(m) { return m.result; }); },
|
|
26
|
-
fetch: function(tab, url, opts) { return _vfsCall('dip-jsh', { op: 'browser', args: ['fetch', tab, url, opts || {}] }, function(m) { return m.result; }); }
|
|
27
|
-
},
|
|
28
|
-
fetchToFile: function(url, path) {
|
|
29
|
-
return _vfsCall('dip-jsh', { op: 'fetchToFile', args: [url, path] }, function(m) { return m.result; });
|
|
30
|
-
}`,Vr=`,
|
|
31
|
-
_device: function(channel, op, args) {
|
|
32
|
-
return _vfsCall('dip-device-op',
|
|
33
|
-
{ channel: channel, op: op, args: args || [] },
|
|
34
|
-
function(m) { return m.result; });
|
|
35
|
-
},
|
|
36
|
-
hid: {
|
|
37
|
-
list: function() { return _vfsCall('dip-device-op', { channel: 'hid', op: 'list', args: [] }, function(m) { return m.result; }); },
|
|
38
|
-
request: function(filters) { return _vfsCall('dip-device-op', { channel: 'hid', op: 'request', args: [filters || []] }, function(m) { return m.result; }); },
|
|
39
|
-
open: function(handle) { return _vfsCall('dip-device-op', { channel: 'hid', op: 'open', args: [handle] }, function(m) { return m.result; }).then(function() {}); },
|
|
40
|
-
close: function(handle) { return _vfsCall('dip-device-op', { channel: 'hid', op: 'close', args: [handle] }, function(m) { return m.result; }).then(function() {}); },
|
|
41
|
-
sendReport: function(handle, reportId, data) { return _vfsCall('dip-device-op', { channel: 'hid', op: 'sendReport', args: [handle, reportId, data] }, function(m) { return m.result; }).then(function() {}); },
|
|
42
|
-
on: function(event, cb) { if (event === 'inputreport') _hidInputReportListeners.add(cb); },
|
|
43
|
-
off: function(event, cb) { if (event === 'inputreport') _hidInputReportListeners.delete(cb); }
|
|
44
|
-
},
|
|
45
|
-
serial: {
|
|
46
|
-
list: function() { return _vfsCall('dip-device-op', { channel: 'serial', op: 'list', args: [] }, function(m) { return m.result; }); },
|
|
47
|
-
request: function(filters) { return _vfsCall('dip-device-op', { channel: 'serial', op: 'request', args: [filters || []] }, function(m) { return m.result; }); },
|
|
48
|
-
open: function(handle, options) { return _vfsCall('dip-device-op', { channel: 'serial', op: 'open', args: [handle, options] }, function(m) { return m.result; }).then(function() {}); },
|
|
49
|
-
close: function(handle) { return _vfsCall('dip-device-op', { channel: 'serial', op: 'close', args: [handle] }, function(m) { return m.result; }).then(function() {}); }
|
|
50
|
-
},
|
|
51
|
-
usb: {
|
|
52
|
-
list: function() { return _vfsCall('dip-device-op', { channel: 'usb', op: 'list', args: [] }, function(m) { return m.result; }); },
|
|
53
|
-
request: function(filters) { return _vfsCall('dip-device-op', { channel: 'usb', op: 'request', args: [filters || []] }, function(m) { return m.result; }); },
|
|
54
|
-
open: function(handle) { return _vfsCall('dip-device-op', { channel: 'usb', op: 'open', args: [handle] }, function(m) { return m.result; }).then(function() {}); },
|
|
55
|
-
close: function(handle) { return _vfsCall('dip-device-op', { channel: 'usb', op: 'close', args: [handle] }, function(m) { return m.result; }).then(function() {}); }
|
|
56
|
-
}`;function Hr(e){return`(function() {
|
|
57
|
-
var _cbId = 0;
|
|
58
|
-
var _callbacks = {};
|
|
59
|
-
var _hidInputReportListeners = new Set();
|
|
60
|
-
|
|
61
|
-
function _vfsCall(type, params, extractResult) {
|
|
62
|
-
return new Promise(function(resolve, reject) {
|
|
63
|
-
var id = ++_cbId;
|
|
64
|
-
_callbacks[id] = function(msg) {
|
|
65
|
-
if (msg.error) reject(new Error(msg.error));
|
|
66
|
-
else resolve(extractResult ? extractResult(msg) : undefined);
|
|
67
|
-
};
|
|
68
|
-
var m = { type: type, id: id };
|
|
69
|
-
if (params) { for (var k in params) m[k] = params[k]; }
|
|
70
|
-
parent.postMessage(m, '*');
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
window.slicc = window.bridge = {
|
|
75
|
-
lick: function(event) {
|
|
76
|
-
var action = typeof event === 'string' ? event : event.action;
|
|
77
|
-
var data = typeof event === 'string' ? undefined : ('data' in event ? event.data : event);
|
|
78
|
-
parent.postMessage({ type: 'dip-lick', action: action, data: data }, '*');
|
|
79
|
-
},
|
|
80
|
-
/* Read-only VFS access. Mirrors the sprinkle bridge so dips can
|
|
81
|
-
check onboarding markers, profiles, etc. without a parent-side
|
|
82
|
-
handshake. */
|
|
83
|
-
readFile: function(path) {
|
|
84
|
-
return _vfsCall('dip-readfile', { path: path }, function(m) { return m.content; });
|
|
85
|
-
},
|
|
86
|
-
exists: function(path) {
|
|
87
|
-
return _vfsCall('dip-exists', { path: path }, function(m) { return m.exists; });
|
|
88
|
-
},
|
|
89
|
-
stat: function(path) {
|
|
90
|
-
return _vfsCall('dip-stat', { path: path }, function(m) { return m.stat; });
|
|
91
|
-
}${e?zr:``}${e?Br:``}${e?Vr:``}
|
|
92
|
-
};
|
|
93
|
-
function reportHeight() {
|
|
94
|
-
parent.postMessage({ type: 'dip-height',
|
|
95
|
-
height: document.documentElement.scrollHeight }, '*');
|
|
96
|
-
}
|
|
97
|
-
${Ee}
|
|
98
|
-
${Se}
|
|
99
|
-
window.addEventListener('message', function(e) {
|
|
100
|
-
if (!e.data || typeof e.data.type !== 'string') return;
|
|
101
|
-
if (e.data.type === 'slicc-theme') {
|
|
102
|
-
applyIframeTheme(e);
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
/* Pushed device events (currently 'hid:inputreport'). The host
|
|
106
|
-
attaches the underlying listener on slicc.hid.open(handle) for
|
|
107
|
-
this dip; teardown happens automatically on dispose. */
|
|
108
|
-
if (e.data.type === 'dip-device-event' && e.data.channel === 'hid:inputreport') {
|
|
109
|
-
_hidInputReportListeners.forEach(function(cb) {
|
|
110
|
-
try { cb(e.data.payload); } catch(ex) {}
|
|
111
|
-
});
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
/* VFS callback responses target the originating call by id. */
|
|
115
|
-
if (e.data.id && _callbacks[e.data.id]) {
|
|
116
|
-
var cb = _callbacks[e.data.id];
|
|
117
|
-
delete _callbacks[e.data.id];
|
|
118
|
-
cb(e.data);
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
/* Forward any other slicc-* message to in-page listeners via a
|
|
122
|
-
CustomEvent. Dips can opt in with
|
|
123
|
-
window.addEventListener('slicc-message', (ev) => ev.detail). */
|
|
124
|
-
if (e.data.type.indexOf('slicc-') === 0) {
|
|
125
|
-
try {
|
|
126
|
-
document.dispatchEvent(new CustomEvent('slicc-message', { detail: e.data }));
|
|
127
|
-
} catch (ex) {}
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
window.addEventListener('load', function() {
|
|
131
|
-
reportHeight();
|
|
132
|
-
new ResizeObserver(reportHeight).observe(document.body);
|
|
133
|
-
});
|
|
134
|
-
/* Support data-action attributes (Tool UI compat) — auto-lick on click.
|
|
135
|
-
Also intercept <a href> clicks and relay to the parent so links open
|
|
136
|
-
despite the iframe sandbox blocking top-level navigation. */
|
|
137
|
-
document.addEventListener('click', function(e) {
|
|
138
|
-
var el = e.target;
|
|
139
|
-
while (el && el !== document.body) {
|
|
140
|
-
if (el.dataset && el.dataset.action) {
|
|
141
|
-
var actionData = el.dataset.actionData;
|
|
142
|
-
if (actionData) { try { actionData = JSON.parse(actionData); } catch(ex) {} }
|
|
143
|
-
/* Picker hint (e.g. data-picker="directory") needs the parent to
|
|
144
|
-
run File System Access API on the click activation chain.
|
|
145
|
-
Forward as a separate message so the parent can run
|
|
146
|
-
showDirectoryPicker, stash the handle in IDB, then dispatch
|
|
147
|
-
the lick with the IDB key. */
|
|
148
|
-
var picker = el.dataset.picker;
|
|
149
|
-
if (picker) {
|
|
150
|
-
parent.postMessage({
|
|
151
|
-
type: 'dip-picker-action',
|
|
152
|
-
action: el.dataset.action,
|
|
153
|
-
data: actionData || null,
|
|
154
|
-
picker: picker,
|
|
155
|
-
}, '*');
|
|
156
|
-
} else {
|
|
157
|
-
window.slicc.lick({ action: el.dataset.action, data: actionData || null });
|
|
158
|
-
}
|
|
159
|
-
e.preventDefault();
|
|
160
|
-
e.stopPropagation();
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
if (el.tagName === 'A' && el.getAttribute('href')) {
|
|
164
|
-
var href = el.getAttribute('href');
|
|
165
|
-
/* Allow in-iframe anchor navigation (#foo). Skip javascript: for safety. */
|
|
166
|
-
if (href.charAt(0) === '#') return;
|
|
167
|
-
if (/^javascript:/i.test(href)) { e.preventDefault(); return; }
|
|
168
|
-
/* Resolve relative URLs against the iframe's base. */
|
|
169
|
-
var resolved;
|
|
170
|
-
try { resolved = new URL(href, document.baseURI).href; } catch(ex) { resolved = href; }
|
|
171
|
-
parent.postMessage({ type: 'dip-open-link', url: resolved }, '*');
|
|
172
|
-
e.preventDefault();
|
|
173
|
-
e.stopPropagation();
|
|
174
|
-
return;
|
|
175
|
-
}
|
|
176
|
-
el = el.parentElement;
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
})();`}var Ur=`html,body{margin:0;padding:0;overflow:hidden;background:transparent;box-sizing:border-box}
|
|
180
|
-
*,*::before,*::after{box-sizing:inherit}
|
|
181
|
-
/* Vertical breathing room around dip content. Horizontal padding is owned
|
|
182
|
-
by the dip's own content (e.g. .sprinkle-action-card__body) so shtml
|
|
183
|
-
widgets that already pad themselves don't end up double-indented. The
|
|
184
|
-
ResizeObserver on document.body reports the post-padding scrollHeight
|
|
185
|
-
correctly, so auto-height continues to work. The .sprinkle-inline rule
|
|
186
|
-
(set on the iframe body) carries 2px of horizontal padding so the 1px
|
|
187
|
-
focus ring (box-shadow:0 0 0 1px on inputs/select below) doesn't get
|
|
188
|
-
clipped at the iframe paint boundary. */
|
|
189
|
-
body{padding:12px 0;font-family:var(--s2-font-family, sans-serif);font-size:13px;color:var(--s2-content-default)}
|
|
190
|
-
.sprinkle-inline{padding:var(--s2-spacing-100) 2px}
|
|
191
|
-
.sprinkle-inline .sprinkle-btn{padding:4px 12px;font-size:12px;height:28px;box-shadow:none}
|
|
192
|
-
.sprinkle-inline .sprinkle-btn:not([class*="sprinkle-btn--"]){background:var(--s2-bg-elevated)}
|
|
193
|
-
.sprinkle-inline .sprinkle-card{box-shadow:none;margin:0}
|
|
194
|
-
.sprinkle-inline .sprinkle-action-card{margin:0;width:100%}
|
|
195
|
-
/* Stacked action cards in one dip need breathing room between them. The
|
|
196
|
-
margin:0 above zeroes the single-card case (iframe padding owns that
|
|
197
|
-
spacing); this adjacent-sibling rule outranks a plain authored class,
|
|
198
|
-
so multiple .sprinkle-action-card in one message no longer touch edge
|
|
199
|
-
to edge. See vfs-root/workspace/skills/dips/SKILL.md. */
|
|
200
|
-
.sprinkle-inline .sprinkle-action-card + .sprinkle-action-card{margin-top:12px}
|
|
201
|
-
.sprinkle-inline .sprinkle-action-card .sprinkle-table{width:100%}
|
|
202
|
-
.sprinkle-inline .sprinkle-grid{width:100%}
|
|
203
|
-
input[type="range"]{width:100%;height:4px;-webkit-appearance:none;appearance:none;background:var(--s2-gray-300);border-radius:2px;outline:none;cursor:default}
|
|
204
|
-
input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--s2-accent);cursor:default;border:2px solid var(--s2-bg-base)}
|
|
205
|
-
input[type="range"]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--s2-accent);cursor:default;border:2px solid var(--s2-bg-base)}
|
|
206
|
-
input[type="text"],input[type="number"],textarea{width:100%;padding:7px 12px;font-size:13px;font-family:var(--s2-font-family,sans-serif);color:var(--s2-content-default);background:var(--s2-bg-layer-2);border:1px solid var(--s2-border-subtle,var(--s2-gray-300));border-radius:8px;outline:none;box-sizing:border-box}
|
|
207
|
-
input[type="text"]:focus,input[type="number"]:focus,textarea:focus{border-color:var(--s2-accent);box-shadow:0 0 0 1px var(--s2-accent)}
|
|
208
|
-
input[type="text"]::placeholder,textarea::placeholder{color:var(--s2-content-disabled,var(--s2-gray-400))}
|
|
209
|
-
select{padding:6px 12px;font-size:13px;font-family:var(--s2-font-family,sans-serif);color:var(--s2-content-default);background:var(--s2-bg-layer-2);border:1px solid var(--s2-border-subtle,var(--s2-gray-300));border-radius:8px;outline:none;cursor:default}
|
|
210
|
-
select:focus{border-color:var(--s2-accent);box-shadow:0 0 0 1px var(--s2-accent)}
|
|
211
|
-
button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:28px;padding:4px 12px;border:1px solid var(--s2-border-default,var(--s2-gray-300));border-radius:9999px;background:transparent;color:var(--s2-content-default);font-size:12px;font-weight:700;font-family:var(--s2-font-family,sans-serif);cursor:default;transition:background 130ms ease}
|
|
212
|
-
button:hover{background:color-mix(in srgb,var(--s2-content-default) 6%,transparent)}
|
|
213
|
-
button:disabled{opacity:0.4;pointer-events:none}
|
|
214
|
-
canvas{display:block;width:100%;border-radius:8px}
|
|
215
|
-
mark{background:color-mix(in srgb,var(--s2-accent) 25%,transparent);color:inherit;border-radius:2px;padding:0 2px}
|
|
216
|
-
.c-purple{background:#3C3489;color:#EEEDFE}.c-teal{background:#085041;color:#E1F5EE}
|
|
217
|
-
.c-coral{background:#712B13;color:#FAECE7}.c-pink{background:#72243E;color:#FBEAF0}
|
|
218
|
-
.c-gray{background:#444441;color:#F1EFE8}.c-blue{background:#0C447C;color:#E6F1FB}
|
|
219
|
-
.c-amber{background:#633806;color:#FAEEDA}.c-red{background:#791F1F;color:#FCEBEB}
|
|
220
|
-
.c-green{background:#27500A;color:#EAF3DE}`,Wr=`(function(){
|
|
221
|
-
window.addEventListener('message', function(e){
|
|
222
|
-
if (!e.data || e.data.type !== 'dip-draft-update') return;
|
|
223
|
-
var content = typeof e.data.content === 'string' ? e.data.content : '';
|
|
224
|
-
document.body.innerHTML = content;
|
|
225
|
-
if (window.lucide && typeof window.lucide.createIcons === 'function') {
|
|
226
|
-
try { window.lucide.createIcons(); } catch(ex){}
|
|
227
|
-
}
|
|
228
|
-
});
|
|
229
|
-
})();`;function Gr(e,t,n=!1){let r=Ce(),i=Cn()?` class="theme-light"`:``,a=t||e.includes(`<slicc-editor`),o=t||e.includes(`<slicc-diff`),s=t?`<script>${Wr}<\/script>`:``;return`<!DOCTYPE html>
|
|
230
|
-
<html${i}><head>
|
|
231
|
-
<meta charset="utf-8">
|
|
232
|
-
<style>${r}</style>
|
|
233
|
-
<style>${Ur}</style>
|
|
234
|
-
<script>${Hr(n&&!t)}<\/script>
|
|
235
|
-
${s}
|
|
236
|
-
${a?`<script src="/slicc-editor.js"><\/script>`:``}
|
|
237
|
-
${o?`<script src="/slicc-diff.js"><\/script>`:``}
|
|
238
|
-
<script src="/lucide-icons.js"><\/script>
|
|
239
|
-
</head>
|
|
240
|
-
<body class="sprinkle-inline">${e}</body></html>`}var B=new Set;function Kr(e){if(typeof e?.type!=`string`||e.type.indexOf(`slicc-`)!==0)throw Error(`broadcastToDips: payload.type must start with 'slicc-'`);for(let t of B)try{t.postMessage(e,`*`)}catch{}}var qr;function Jr(e){qr=e}function V(e){return e.length===0?`''`:`'${e.replace(/'/g,`'\\''`)}'`}function Yr(e,t){let n=t?.cwd??`.`,r=t?.allowedCommands??`*`,i=[`agent`];return t?.model&&i.push(`--model`,V(t.model)),t?.thinking&&i.push(`--thinking`,V(t.thinking)),t?.readOnly&&i.push(`--read-only`,V(t.readOnly)),i.push(V(n),V(r),V(e)),i.join(` `)}async function Xr(e){if(!qr)return{stdout:``,stderr:`exec: shell bridge not available
|
|
241
|
-
`,exitCode:127};try{return await qr(e)}catch(e){return{stdout:``,stderr:`exec: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function Zr(e,t){let n=await Xr(Yr(e,t));return{stdout:n.stdout||n.stderr,exitCode:n.exitCode}}async function Qr(e,t){let n=await ve(Xr,e,t);if(e===`fetch`){let e=n,t=atob(e.bodyBase64),r=new Uint8Array(t.length);for(let e=0;e<t.length;e++)r[e]=t.charCodeAt(e);return{...e,body:new TextDecoder(`utf-8`).decode(r)}}return n}var H=new WeakMap;function $r(e,t){try{e.postMessage({type:`dip-device-event`,channel:`hid:inputreport`,payload:t},`*`)}catch{}}async function ei(e,t){let n=H.get(e);if(n||(n=new Map,H.set(e,n)),n.has(t))return;let r=await Ft(Ot(),t,n=>{let r=n.bytes instanceof Uint8Array?n.bytes:new Uint8Array(n.bytes);$r(e,{handle:t,reportId:n.reportId,data:r})});n.set(t,r)}async function ti(e,t){let n=H.get(e);if(!n)return;let r=n.get(t);if(r){n.delete(t);try{await Promise.resolve(r())}catch{}}n.size===0&&H.delete(e)}function ni(e){let t=H.get(e);if(t){for(let e of t.values())try{Promise.resolve(e()).catch(()=>{})}catch{}H.delete(e)}}function ri(e){if(e instanceof Uint8Array)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e)){let t=e;return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}if(Array.isArray(e))return new Uint8Array(e);throw Error(`expected Uint8Array, ArrayBuffer, or number[]`)}async function ii(e,t,n){let r=Ot();switch(t){case`list`:{let e=Dt();if(!e)throw Error(`WebHID is unavailable in this browser`);return Bt(r,e)}case`request`:{let e=Dt();if(!e)throw Error(`WebHID is unavailable in this browser`);return Rt(r,we(e),n[0]??[])}case`info`:return Lt(r,n[0]);case`open`:{let t=n[0];return await Pt(r,t),await ei(e,t),{ok:!0}}case`close`:{let t=n[0];return await ti(e,t),await Vt(r,t),{ok:!0}}case`sendReport`:{let e=n[0],t=n[1],i=ri(n[2]),a=i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength);return await jt(r,e,t,a),{ok:!0}}default:throw Error(`hid: unknown op '${t}'`)}}async function ai(e,t){let n=kt();switch(e){case`list`:{let e=At();if(!e)throw Error(`Web Serial is unavailable in this browser`);return zt(n,e)}case`request`:{let e=At();if(!e)throw Error(`Web Serial is unavailable in this browser`);return Nt(n,Te(e),t[0]??[])}case`info`:return Mt(n,t[0]);case`open`:{let e=t[0],r=t[1]??{baudRate:9600};return await It(n,e,r),{ok:!0}}case`close`:return await Ht(n,t[0]),{ok:!0};default:throw Error(`serial: unknown op '${e}'`)}}async function oi(e,t){let n=Gt();switch(e){case`list`:{let e=Kt();if(!e)throw Error(`WebUSB is unavailable in this browser`);return Yt(n,e)}case`request`:{let e=Kt();if(!e)throw Error(`WebUSB is unavailable in this browser`);return qt(n,ye(e),t[0]??[])}case`info`:return Xt(n,t[0]);case`open`:return await Zt(n,t[0]),{ok:!0};case`close`:return await Jt(n,t[0]),{ok:!0};default:throw Error(`usb: unknown op '${e}'`)}}async function si(e,t,n,r){switch(t){case`hid`:return ii(e,n,r);case`serial`:return ai(n,r);case`usb`:return oi(n,r);default:throw Error(`unknown device channel '${t}'`)}}async function ci(e,t){if(!e||typeof t.id!=`number`)return!1;let n=n=>{try{e.postMessage({...n,id:t.id},`*`)}catch{}};if(!z.has(e))return n({type:`dip-device-op-response`,error:`device access not allowed for this dip`}),!0;let r=t.channel;if(r!==`hid`&&r!==`serial`&&r!==`usb`)return n({type:`dip-device-op-response`,error:`unknown device channel '${r}'`}),!0;try{n({type:`dip-device-op-response`,result:await si(e,r,typeof t.op==`string`?t.op:``,Array.isArray(t.args)?t.args:[])})}catch(e){n({type:`dip-device-op-response`,error:e instanceof Error?e.message:String(e)})}return!0}async function li(e,t){if(!e||typeof t.id!=`number`)return!1;let n=n=>{try{e.postMessage({...n,id:t.id},`*`)}catch{}};if(!z.has(e))return n({type:`${t.type}-response`,error:`exec not allowed for this dip`}),!0;if(t.type===`dip-exec`)return n({type:`dip-exec-response`,result:await Xr(typeof t.cmd==`string`?t.cmd:``)}),!0;if(t.type===`dip-agent`)return n({type:`dip-agent-response`,result:await Zr(typeof t.prompt==`string`?t.prompt:``,t.opts)}),!0;if(t.type===`dip-jsh`){try{n({type:`dip-jsh-response`,result:await Qr(typeof t.op==`string`?t.op:``,Array.isArray(t.args)?t.args:[])})}catch(e){n({type:`dip-jsh-response`,error:e instanceof Error?e.message:String(e)})}return!0}return!1}function U(e,t,n,r=!1){let i=Gr(t,!1,r);if(kr)return Di(e,i,n,r);let a=document.createElement(`iframe`);a.setAttribute(`sandbox`,`allow-scripts allow-same-origin`),a.style.cssText=`width:100%;border:none;overflow:hidden;display:block;`,a.srcdoc=i,e.appendChild(a),a.contentWindow&&(wn(a.contentWindow),B.add(a.contentWindow),r&&z.add(a.contentWindow)),a.addEventListener(`load`,()=>{wn(a.contentWindow),a.contentWindow&&(B.add(a.contentWindow),r&&z.add(a.contentWindow)),be()&&xe(a)},{once:!0});let o=e=>{if(e.source!==a.contentWindow)return;let t=e.data;t?.type&&(t.type===`dip-lick`?n(t.action,t.data):t.type===`dip-height`?a.style.height=t.height+`px`:t.type===`dip-open-link`?di(t.url):t.type===`dip-picker-action`?vi(t,n):t.type===`dip-readfile`||t.type===`dip-exists`||t.type===`dip-stat`?ui(a.contentWindow,t):t.type===`dip-exec`||t.type===`dip-agent`||t.type===`dip-jsh`?li(a.contentWindow,t):t.type===`dip-device-op`&&ci(a.contentWindow,t))};window.addEventListener(`message`,o);let s=null;if(be()&&typeof IntersectionObserver<`u`){let e=!1,t=new IntersectionObserver(n=>{if(n[n.length-1].isIntersecting){if(e){e=!1;return}t.unobserve(a),xe(a,()=>{e=!0,t.observe(a)})}});s=t,t.observe(a)}return{dispose(){s?.disconnect(),window.removeEventListener(`message`,o),Sn(a.contentWindow),a.contentWindow&&(B.delete(a.contentWindow),z.delete(a.contentWindow),ni(a.contentWindow)),a.remove()}}}async function ui(e,t){if(!e||typeof t.id!=`number`)return!1;let n=typeof t.path==`string`?t.path:``,r=n=>{try{e.postMessage({...n,id:t.id},`*`)}catch{}};if(!z.has(e))return r({type:`${t.type}-response`,error:`VFS access not allowed for this dip`}),!0;if(!Rr(n))return r({type:`${t.type}-response`,error:`VFS path not allowed: ${n}`}),!0;if(t.type===`dip-readfile`){let e=await Pr(n,!0);return e===null?(r({type:`dip-readfile-response`,error:`Read failed`}),!0):(r({type:`dip-readfile-response`,content:typeof e==`string`?e:new TextDecoder().decode(e)}),!0)}if(t.type===`dip-exists`)return r({type:`dip-exists-response`,exists:await Pr(n,!0)!==null}),!0;if(t.type===`dip-stat`){let e=await Pr(n,!1);return e===null?(r({type:`dip-stat-response`,error:`Stat failed`}),!0):(r({type:`dip-stat-response`,stat:{isFile:!0,isDirectory:!1,size:typeof e==`string`?e.length:e.byteLength,mtimeMs:0}}),!0)}return!1}function di(e){if(!(typeof e!=`string`||!e)&&/^(https?:|mailto:)/i.test(e))try{window.open(e,`_blank`,`noopener,noreferrer`)}catch{}}var fi=new WeakMap;function pi(){return typeof Element.prototype.moveBefore==`function`}function mi(e,t,n){let r=e.findIndex(e=>{let n=fi.get(e);return n?.key===t&&n.wrapper.isConnected}),i=e[r],a=i&&fi.get(i);if(!a)return null;try{n.parentNode.moveBefore(a.wrapper,n)}catch{return null}return n.remove(),e.splice(r,1),i}function hi(e,t,n){return fi.set(e,{key:t,wrapper:n}),e}function gi(e,t,n={}){let r=[],i=[...n.previous??[]],a=pi(),s=n.streaming===!0&&!a,c=e.querySelectorAll(`pre > code.language-shtml`);for(let e of c){let n=e.parentElement,c=e.textContent??``,l=`shtml:${c}`;if(s){n.replaceWith(n.ownerDocument.createRange().createContextualFragment(o));continue}let u=a?mi(i,l,n):null;if(u){r.push(u);continue}let d=document.createElement(`div`);d.className=`msg__dip`,n.replaceWith(d),r.push(hi(U(d,c,t,!1),l,d))}let l=e.querySelectorAll(`img[src$=".shtml"]`);for(let e of l){let n=e.getAttribute(`src`);if(!n||s)continue;let o=`img:${n}`,c=a?mi(i,o,e):null;if(c){r.push(c);continue}let l=document.createElement(`div`);l.className=`msg__dip`,e.alt&&l.setAttribute(`title`,e.alt),e.replaceWith(l);let u=new AbortController,d=null,f=!1;r.push(hi({dispose(){f=!0,u.abort(),d&&=(d.dispose(),null)}},o,l));let p=n.startsWith(`/`),m=typeof navigator<`u`&&!!navigator.serviceWorker?.controller,h=p?`/preview${n}`:n,g=async()=>{if(p&&!m)return jr(n,u.signal);let e;try{e=await fetch(h,{signal:u.signal})}catch(e){if(e?.name===`AbortError`)throw e;if(p)return jr(n,u.signal);throw e}if(e.ok)return e.text();if(p)return jr(n,u.signal);throw Error(`HTTP ${e.status}`)},_=p&&Lr(n);g().then(e=>{f||!l.isConnected||(d=U(l,e,t,_))}).catch(e=>{f||e?.name===`AbortError`||(l.textContent=`Failed to load dip: ${n}`,l.style.cssText=`padding:8px;font-size:12px;color:var(--s2-negative);font-family:var(--s2-font-mono)`)})}return _i(i),r}function _i(e){for(let t of e)try{t.dispose()}catch{}e.length=0}async function vi(e,t){let n=Ar(e.data);if(e.picker===`screenshare`){await Si(e.action,t);return}if(kr){await yi(e.picker,e.action,n,t);return}switch(e.picker){case`directory`:await Ci(e.action,t);return;case`usb-device`:await wi(e.action,n,t);return;case`serial-port`:await Ti(e.action,n,t);return;case`hid-device`:await Ei(e.action,n,t);return;default:t(e.action,e.data);return}}async function yi(e,t,n,r){try{switch(e){case`directory`:{let{openMountPickerPopup:e}=await i(async()=>{let{openMountPickerPopup:e}=await import(`./mount-picker-popup-qcWGbpG5.js`);return{openMountPickerPopup:e}},__vite__mapDeps([39,3,40,21])),n=await e();n.cancelled?r(t,{cancelled:!0}):n.error?r(t,{error:n.error}):n.idbKey?r(t,{handleInIdb:!0,idbKey:n.idbKey,dirName:n.dirName??``}):r(t,{error:`mount picker returned no handle key`});return}case`usb-device`:{let{openUsbPickerPopup:e}=await i(async()=>{let{openUsbPickerPopup:e}=await import(`./usb-picker-O-2gFMNl.js`).then(e=>e.t);return{openUsbPickerPopup:e}},__vite__mapDeps([41,1,40,21])),a=await e(n);`cancelled`in a?r(t,{cancelled:!0}):`error`in a?r(t,{error:a.error}):r(t,{granted:!0,info:a.info});return}case`serial-port`:{let{openSerialPickerPopup:e}=await i(async()=>{let{openSerialPickerPopup:e}=await import(`./serial-picker-BQF_Eitc.js`);return{openSerialPickerPopup:e}},__vite__mapDeps([42,40,21])),a=await e(n);`cancelled`in a?r(t,{cancelled:!0}):`error`in a?r(t,{error:a.error}):r(t,{granted:!0,info:a.info});return}case`hid-device`:{let{openHidPickerPopup:e}=await i(async()=>{let{openHidPickerPopup:e}=await import(`./hid-picker-sFJ8vzUj.js`);return{openHidPickerPopup:e}},__vite__mapDeps([43,40,21])),a=await e(n);`cancelled`in a?r(t,{cancelled:!0}):`error`in a?r(t,{error:a.error}):r(t,{granted:!0,info:a.info});return}default:r(t,{error:`unknown picker kind: ${e??`(none)`}`});return}}catch(e){r(t,{error:e instanceof Error?e.message:String(e)})}}async function bi(e,t){let n=Tt();if(!n)return null;let r={current:null},i=t=>{let n=t.detail;n.kind===e&&(r.current=n)};n.addEventListener(`slicc-permission-deny`,i);try{let i=await n.request(e,t);if(i)return{ok:!0,grant:i};let a=r.current;return{ok:!1,reason:a?.reason??`error`,...a?.message?{message:a.message}:{}}}finally{n.removeEventListener(`slicc-permission-deny`,i)}}function xi(e,t,n,r){if(t.reason===`cancelled`){r(e,{cancelled:!0});return}if(t.reason===`unavailable`){r(e,{error:n});return}r(e,{error:t.message??`unknown error`})}async function Si(e,t){let n=await bi(`screenshare`,{constraints:{video:!0}});if(!n){t(e,{error:`screen capture is not available`});return}if(!n.ok){xi(e,n,`screen capture is not available`,t);return}let r=n.grant,{adoptDisplayStream:a,displaySessions:o}=await i(async()=>{let{adoptDisplayStream:e,displaySessions:t}=await import(`./screencapture-media-BxRLHqjA.js`);return{adoptDisplayStream:e,displaySessions:t}},[]);try{let n=await a(r.stream);if(!n.handle){t(e,{error:`screen share produced no handle`});return}let{keepAdoptedScreenShare:s}=await i(async()=>{let{keepAdoptedScreenShare:e}=await import(`./screen-share-approval-live-D388fVD9.js`);return{keepAdoptedScreenShare:e}},[]);if(!s(n.handle,e=>o.stop(e))){t(e,{cancelled:!0});return}t(e,{granted:!0,handle:n.handle})}catch(n){t(e,{error:n instanceof Error?n.message:String(n)})}}async function Ci(e,t){let n=await bi(`filesystem`);if(!n){t(e,{error:`File System Access API not available`});return}if(!n.ok){xi(e,n,`File System Access API not available`,t);return}let r=n.grant.handle,a=`pendingMount:dip-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;try{let{storePendingHandle:e}=await i(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-qcWGbpG5.js`);return{storePendingHandle:e}},__vite__mapDeps([39,3,40,21]));await e(a,r)}catch(n){t(e,{error:`failed to store directory handle: ${n instanceof Error?n.message:String(n)}`});return}t(e,{handleInIdb:!0,idbKey:a,dirName:r.name})}async function wi(e,t,n){let r=await bi(`usb`,{filters:t});if(!r){n(e,{error:`WebUSB is not available`});return}if(!r.ok){xi(e,r,`WebUSB is not available`,n);return}let a=r.grant,{getSharedUsbRegistry:o,deviceToInfo:s}=await i(async()=>{let{getSharedUsbRegistry:e,deviceToInfo:t}=await import(`./usb-device-registry--JwKRTYp.js`).then(e=>e.c);return{getSharedUsbRegistry:e,deviceToInfo:t}},__vite__mapDeps([44,1])),c=o().register(a.device);n(e,{granted:!0,handle:c,info:s(c,a.device)})}async function Ti(e,t,n){let r=await bi(`serial`,t.length?{filters:t}:void 0);if(!r){n(e,{error:`Web Serial is not available`});return}if(!r.ok){xi(e,r,`Web Serial is not available`,n);return}let a=r.grant,o=await i(()=>import(`./serial-port-registry-CCqklAEr.js`).then(e=>e.o),__vite__mapDeps([45,1])),s=o.getSharedSerialRegistry(),c=s.register(a.port),l=s.get(c);n(e,{granted:!0,handle:c,info:l?o.deviceToInfo(c,l):{handle:c}})}async function Ei(e,t,n){let r=await bi(`hid`,{filters:t});if(!r){n(e,{error:`WebHID is not available`});return}if(!r.ok){xi(e,r,`WebHID is not available`,n);return}let a=r.grant,{getSharedHidRegistry:o,hidDeviceToInfo:s}=await i(async()=>{let{getSharedHidRegistry:e,hidDeviceToInfo:t}=await import(`./hid-device-registry-B2R-0rNt.js`).then(e=>e.a);return{getSharedHidRegistry:e,hidDeviceToInfo:t}},__vite__mapDeps([46,1])),c=o(),l=a.devices.map(e=>{let t=c.register(e);return s(t,e)}),u=l[0];n(e,{granted:!0,handle:u.handle,info:u,devices:l})}function Di(e,t,n,r=!1){let i=document.createElement(`iframe`);i.src=chrome.runtime.getURL(`sprinkle-sandbox.html`),i.style.cssText=`width:100%;border:none;overflow:hidden;display:block;`,e.appendChild(i);let a=e=>{if(e.source!==i.contentWindow)return;let t=e.data;t?.type&&(t.type===`dip-lick`?n(t.action,t.data):t.type===`dip-height`?i.style.height=t.height+`px`:t.type===`dip-open-link`?di(t.url):t.type===`dip-readfile`||t.type===`dip-exists`||t.type===`dip-stat`?ui(i.contentWindow,t):t.type===`dip-exec`||t.type===`dip-agent`||t.type===`dip-jsh`?li(i.contentWindow,t):t.type===`dip-device-op`?ci(i.contentWindow,t):t.type===`dip-picker-action`&&vi(t,n))};return window.addEventListener(`message`,a),i.addEventListener(`load`,()=>{wn(i.contentWindow),i.contentWindow&&(B.add(i.contentWindow),r&&z.add(i.contentWindow)),i.contentWindow?.postMessage({type:`dip-render`,srcdoc:t,isLight:Cn()},`*`)},{once:!0}),{dispose(){window.removeEventListener(`message`,a),Sn(i.contentWindow),i.contentWindow&&(B.delete(i.contentWindow),z.delete(i.contentWindow),ni(i.contentWindow)),i.remove()}}}var Oi=`/sessions/data`,ki=`document.json`,Ai=`.publishing`;function W(e){if(e?.aborted)throw new T(`transfer-aborted`)}function ji(e){if(e.length===0||/[/\\\x00]/.test(e)||e===`..`||e===`.`||e.includes(`..`)||!/^[a-zA-Z0-9._-]+$/.test(e))throw new T(`session-not-found`)}function Mi(e){return`${Oi}/${e}`}function Ni(e){return`${Oi}/.tmp-${e}`}async function Pi(e,t){try{await e.mkdir(t,{recursive:!0})}catch{}}async function Fi(e,t){let n;try{n=await e.readDir(t)}catch{return}for(let r of n){let n=`${t}/${r.name}`;r.type===`directory`&&await Fi(e,n);try{await e.rm(n)}catch{}}try{await e.rm(t)}catch{}}async function Ii(e,t){let n=await e.readDir(t);for(let r of n){if(r.name===Ai)continue;let n=`${t}/${r.name}`;r.type===`directory`?await Fi(e,n):await e.rm(n)}}async function Li(e,t,n,r){W(r),await Pi(e,n);let i=await e.readDir(t);for(let a of i){W(r);let i=`${t}/${a.name}`,o=`${n}/${a.name}`;if(a.type===`directory`)await Li(e,i,o,r);else{let t=await e.readFile(i,{encoding:`binary`});await e.writeFile(o,t)}}}async function Ri(e,t,n,r){ji(t);let i=Ni(t),a=Mi(t),o=new Map(n.document.attachments.filter(e=>e.present&&e.path).map(e=>[e.path,e]));for(let[e]of n.attachments)if(!o.has(e))throw new T(`schema-invalid`);W(r),await Pi(e,i);let s=!1;try{let t=[...n.document.attachments];for(let[e,i]of n.attachments){W(r);let n=await Me(i),a=o.get(e);if(a!==void 0){let e=t.indexOf(a);e!==-1&&(t[e]={...a,sha256:n,byteLength:i.length})}}let c={...n.document,attachments:t},l=JSON.stringify(c,null,2);if(await e.writeFile(`${i}/${ki}`,l),n.attachments.size>0)for(let[t,r]of n.attachments){let n=`${i}/${t}`,a=t.lastIndexOf(`/`);a!==-1&&await Pi(e,`${i}/${t.slice(0,a)}`),await e.writeFile(n,r)}await e.flush(),W(r),await Pi(e,a),s=!0,await e.writeFile(`${a}/${Ai}`,`in-progress`),await Ii(e,a),W(r),await Li(e,i,a,r),await e.flush(),W(r),await e.rm(`${a}/${Ai}`)}catch(t){if(s)try{await Ii(e,a)}catch{}throw await Fi(e,i),t}await Fi(e,i)}async function zi(e,t){ji(t);for(let n of[Mi(t),Ni(t)])try{await e.rm(n,{recursive:!0})}catch(e){if(e?.code!==`ENOENT`)throw e}}async function Bi(e,t){let[{serializeIndexWrite:n},{readIndexForPresence:r}]=await Promise.all([i(()=>import(`./frozen-archive-writer-BPn5tRZ0.js`).then(e=>e.r),__vite__mapDeps([47,1,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,48])),i(()=>import(`./frozen-session-identity-Cjcq_2LL.js`).then(e=>e.n),__vite__mapDeps([49,1,47,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,48]))]);return n(async()=>{let n=await r(e);return n===null||n.some(e=>e.sessionId===t)?!1:(await zi(e,t),!0)})}async function Vi(e,t){ji(t);let n=Mi(t),r=`${n}/${ki}`;try{throw await e.stat(`${n}/${Ai}`),new T(`session-not-found`)}catch(e){if(e instanceof T||e.code!==`ENOENT`)throw e}let i;try{let t=await e.readFile(r,{encoding:`utf-8`});i=typeof t==`string`?t:new TextDecoder().decode(t)}catch{throw new T(`session-not-found`)}let a;try{a=JSON.parse(i)}catch{throw new T(`schema-invalid`)}if(!Fe(a).ok)throw new T(`schema-invalid`);let o=new Map;for(let t of a.attachments){if(!t.present||!t.path)continue;let r=`${n}/${t.path}`,i;try{let t=await e.readFile(r,{encoding:`binary`});i=t instanceof Uint8Array?t:new TextEncoder().encode(t)}catch{throw new T(`transfer-corrupt`)}if(await Me(i)!==t.sha256)throw new T(`transfer-corrupt`);o.set(t.path,i)}return{document:a,attachments:o}}var Hi=e({PENDING_SESSION_ATTEMPT_LIMIT:()=>3,SESSIONS_INDEX_PATH:()=>D,curateFrozenSessionMemories:()=>Ji,enrichPendingSession:()=>xa,freezeConeSession:()=>qi,listPendingEnrichments:()=>va,markSnapshotUnavailable:()=>Ga,processPendingSessions:()=>ya,readSessionsIndex:()=>k}),G=a(`session-freezer`),Ui=4,Wi=2048,Gi=40,Ki=`${O}/attachments`;async function qi(e){let t=await fa(e.sessionStore,ua(e));if(!t||t.messages.length<Ui)return G.info(`Skipping freeze: session below threshold or missing`,{messageCount:t?.messages.length??0}),null;let n=ma(t.messages),r=e.mode??`full`,i=r===`full`&&!!(e.apiKey&&e.model);!e.agenticMemorySpawn&&e.memory!==`skip`&&await Qi(e,n,i);let a=await $i(e,n,i)||He(t.messages);return await ea(e,t,a,r,i?await Xi(e,a):void 0,!!e.agenticMemorySpawn&&e.memory!==`skip`)}async function Ji(e,t){let n=await jn(e.vfs,{sessionId:t.sessionId||t.filename.replace(/\.md$/i,``),filename:t.filename,title:t.title,frozenAt:t.frozenAt,cone:t.cone,coneLabel:t.coneLabel,curatedThrough:t.curatedThrough,messages:t.archive.messages});if(n.kind===`covered`)return Yi(e,t,null);let r=n.kind===`delta`?n.path:Ve(t),i=n.kind===`delta`?n.messages:t.archive.messages,a;try{a=await kn({spawn:e.agenticMemorySpawn,vfs:e.vfs,sessionArchivePath:r,sessionCount:await Dn(e.vfs),...e.cone?{cone:e.cone}:{}})}catch(e){a={ok:!1,reason:e instanceof Error?e.message:String(e),legacyFallbackSafe:!1}}return a.ok?(n.kind===`delta`&&await An(e.vfs,t.filename,n.through),Yi(e,t,r)):(await La(e.vfs,t.filename,a.reason),a.legacyFallbackSafe?(G.warn(`Agentic memory pass failed after finishing — falling back to legacy extraction`,{filename:t.filename,reason:a.reason}),await Qi(e,ma(i),!0),null):(G.warn(`Agentic memory pass unfinished — entry stays pending for boot catch-up`,{filename:t.filename,reason:a.reason,attemptLimit:3}),null))}async function Yi(e,t,n){let r=await Fa(e.vfs,t.filename);if(n){let t=n.slice(n.lastIndexOf(`/`)+1);await wa(e.vfs,t)}return r?(delete t.memoryPending,G.info(`Agentic memory pass completed`,{filename:t.filename}),r):(G.info(`Agentic memory pass completed; index entry already gone`,{filename:t.filename}),null)}async function Xi(e,t){try{return Zi(await(e.pickIcon??(await i(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-CcF7noc9.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([50,1,9,10,11,2,12,13,14,15,3,7,8,16,17,18,5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,51,37]))).pickLucideIcon)({subject:`"${t}" — an archived chat session`})??void 0)}catch(e){G.warn(`Icon pick failed (freeze still proceeds)`,{error:e instanceof Error?e.message:String(e)});return}}function Zi(e){if(e)return Wt(e)?e:void 0}async function Qi(e,r,i){if(!i){G.info(`LLM unavailable — skipping memory extraction; freezing anyway`);return}let a=``;try{a=await t({messages:r,instruction:n,model:e.model,apiKey:e.apiKey,maxTokens:Wi,headers:e.headers})}catch(e){G.warn(`Memory extraction call failed (freeze still proceeds)`,{error:e instanceof Error?e.message:String(e)});return}if(!a.trim()||a.trim()===`NONE`){G.info(`Memory extraction returned no durable memories`);return}try{await _a(e.vfs,da(ua(e)),a.trim(),`new-session`,{model:e.model,apiKey:e.apiKey,headers:e.headers}),G.info(`Memory extracted and appended on new-session`)}catch(e){G.warn(`Memory append failed`,{error:e instanceof Error?e.message:String(e)})}}async function $i(e,n,i){if(!i)return``;try{return ha(await t({messages:n,instruction:r,model:e.model,apiKey:e.apiKey,maxTokens:Gi,headers:e.headers}))}catch(e){return G.warn(`Title generation call failed (using heuristic)`,{error:e instanceof Error?e.message:String(e)}),``}}async function ea(e,t,n,r,a,o=!1){let s=new Date().toISOString(),c=ua(e),l=await pa(e.vfs,c),u=l?.sessionId??crypto.randomUUID(),d=l?.filename??(r===`quick`?`pending-${Ue()}.md`:`${s.replace(/[:.]/g,`-`)}-${Je(n)}.md`),f=ta(t.messages),p={cone:c,...c!==`cone`&&e.cone?.label?{coneLabel:e.cone.label}:{}},m={filename:d,sessionId:u,title:n,frozenAt:s,messageCount:t.messages.length,...f??{},...p,...a?{icon:a}:{},...r===`quick`||l?{pendingEnrichment:!0}:{},...o?{memoryPending:!0}:{},...e.memory===`skip`?{memorySkipped:!0}:{},...l?.curatedThrough?{curatedThrough:l.curatedThrough}:{}};try{await ga(e.vfs,O);let r=d.replace(/\.md$/,``),a=await ia(e.vfs,t.messages,r),o={id:t.id,sessionId:u,attachmentsKey:r,title:n,frozenAt:s,createdAt:t.createdAt,updatedAt:t.updatedAt,messageCount:t.messages.length,messages:a,...f??{},...p,...e.memory===`skip`?{memorySkipped:!0}:{},...l?.curatedThrough?{curatedThrough:l.curatedThrough}:{}};if(he(`memory-v2`)){let{writeArchiveBundle:t}=await i(async()=>{let{writeArchiveBundle:e}=await import(`./session-jsonl-DUdZghbY.js`).then(e=>e.i);return{writeArchiveBundle:e}},__vite__mapDeps([52,1,47,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,48]));await t(e.vfs,d,o)}else await e.vfs.writeFile(`${O}/${d}`,We(o));return await Be(e.vfs,m),await e.vfs.flush(),G.info(`Cone session frozen`,{filename:d,title:n,cone:c,messageCount:t.messages.length,completedLiveSnapshot:!!l}),{...m,archive:o}}catch(e){return G.warn(`Failed to write frozen session to VFS`,{error:e instanceof Error?e.message:String(e)}),null}}function ta(e){let t={total:0,input:0,output:0,cacheRead:0,cacheWrite:0},n=new Map,r=!1;for(let i of e){if(i.role!==`assistant`)continue;let{model:e,usage:a}=i;if(!e||!a||!ra(a))return null;let o=a.cost;r=!0,t.total+=o.total,t.input+=o.input,t.output+=o.output,t.cacheRead+=o.cacheRead,t.cacheWrite+=o.cacheWrite;let s=n.get(e)??{model:e,cost:0,turns:0,tokens:0};s.cost+=o.total,s.turns+=1,s.tokens+=a.input+a.output+a.cacheRead+a.cacheWrite,n.set(e,s)}return r?{cost:t,models:[...n.values()].sort((e,t)=>t.cost-e.cost)}:null}function na(e){return typeof e==`number`&&Number.isFinite(e)}function ra(e){let{cost:t}=e;return[e.input,e.output,e.cacheRead,e.cacheWrite].every(na)&&[t.input,t.output,t.cacheRead,t.cacheWrite,t.total].every(na)}async function ia(e,t,n){let r={vfs:e,archiveDir:`${Ki}/${n}`,copiedPaths:new Map,fileIndex:0},i=[];for(let e of t){if(!e.attachments?.some(sa)){i.push(e);continue}let t=[];for(let n of e.attachments)t.push(await aa(r,n));i.push({...e,attachments:t})}return i}async function aa(e,t){if(!sa(t))return t;let n=e.copiedPaths.get(t.path);if(n)return{...t,path:n};let r=await oa(e.vfs,t.path);if(!r)return la(t);let i=t.name.replace(/[^A-Za-z0-9._-]+/g,`_`)||`attachment`,a=`${e.archiveDir}/${e.fileIndex++}-${i}`;return await ga(e.vfs,e.archiveDir),await e.vfs.writeFile(a,r),e.copiedPaths.set(t.path,a),{...t,path:a}}async function oa(e,t){try{if(!await ca(e,t))return null;let n=await e.readFile(t,{encoding:`binary`});if(!(n instanceof Uint8Array))throw Error(`Expected binary attachment content at ${t}`);return n}catch{return null}}function sa(e){return typeof e.path==`string`&&e.path.startsWith(`/tmp/`)&&e.data===void 0&&e.text===void 0}async function ca(e,t){let n=t.split(`/`).slice(1);if(n.length<2||n[0]!==`tmp`||n.some(e=>!e||e===`.`||e===`..`))return!1;let r=`/`;for(let t=0;t<n.length;t+=1){let i=(await e.readDir(r)).find(e=>e.name===n[t]);if(!i)return!1;if(t===n.length-1)return i.type===`file`;if(i.type!==`directory`)return!1;r=r===`/`?`/${n[t]}`:`${r}/${n[t]}`}return!1}function la(e){let{path:t,...n}=e;return{...n,error:e.error??`Archived attachment file is missing or unsafe to preserve.`}}function ua(e){return e.cone?.folder||`cone`}function da(e){return mn({parentJid:null,folder:e}).memoryPath}async function fa(e,t){let n=cn({folder:t});try{return await e.load(n)}catch(e){return G.warn(`Failed to load cone chat session`,{sessionId:n,error:e instanceof Error?e.message:String(e)}),null}}async function pa(e,t){try{return qe(await Ge(e),t)}catch(e){G.warn(`Sessions index unreadable while looking for a live snapshot`,{error:e instanceof Error?e.message:String(e)});return}}function ma(e){return e.map(e=>({role:e.role,content:[{type:`text`,text:e.content}],timestamp:e.timestamp}))}function ha(e){let t=e.trim();return t=t.replace(/^["'`]+|["'`]+$/g,``).trim(),t=t.replace(/\s+/g,` `),t.length>80&&(t=t.slice(0,80).trimEnd()),t}async function ga(e,t){try{await e.mkdir(t,{recursive:!0})}catch{}}async function _a(e,t,n,r,i){let a=t,o=``;try{let t=await e.readFile(a,{encoding:`utf-8`});o=typeof t==`string`?t:new TextDecoder().decode(t)}catch(t){if(!(t instanceof Et)||t.code!==`ENOENT`)throw t;await ga(e,a.slice(0,a.lastIndexOf(`/`)))}let s=`## Auto-extracted (${new Date().toISOString().slice(0,10)}, ${r})`,c=`${o.length===0||o.endsWith(`
|
|
242
|
-
`)?``:`
|
|
243
|
-
`}\n${s}\n\n${n}\n`;await e.writeFile(a,o+c);try{await Nn({vfs:e,memoryPath:a,model:i?.model,apiKey:i?.apiKey,headers:i?.headers,signal:i?.signal})}catch(e){G.warn(`Cone memory budget step threw (append already committed)`,{error:e instanceof Error?e.message:String(e)})}}async function va(e){return(await k(e)).filter(e=>(e.pendingEnrichment===!0||e.memoryPending===!0)&&ba(e)<3)}async function ya(e){let t={attempted:0,completed:0};if(!e.model||!e.apiKey)return t;try{for(let t of await k(e.vfs))t.memoryPending===!0&&t.memoryFailed===void 0&&ba(t)>=3&&await La(e.vfs,t.filename,`catch-up retries exhausted (3)`);let n=await va(e.vfs);for(let r of n)try{let n=await Ia(e.vfs,r.filename);if(!n)continue;t.attempted+=1,await xa(e.vfs,n,{model:e.model,apiKey:e.apiKey,headers:e.headers})&&(t.completed+=1)}catch(e){G.warn(`Pending session catch-up attempt failed`,{filename:r.filename,error:e instanceof Error?e.message:String(e)})}}catch(e){G.warn(`Pending session catch-up failed`,{error:e instanceof Error?e.message:String(e)})}return t}function ba(e){let t=e.pendingAttemptCount;return typeof t==`number`&&Number.isInteger(t)&&t>0?t:0}async function xa(e,t,n){if(!t.pendingEnrichment&&!t.memoryPending)return null;let r=await Ea(e,t);if(r===null)return null;let i=await Da(e,t,r);if(i===null)return null;let{agentMessages:a}=i,o=await Oa(e,t,i.chatMessages,n),s=o.curatorAlreadyRan,c=s||t.memorySkipped===!0?{...n,skipMemory:!0}:n,l=await Aa(t,a,c,o.memoryMessages);if(l===null)return null;let u=await Ta(c,l.newTitle);await ja(e,t,l.bullets,c);let d=await Na(e,t,r,l.newTitle,u,n.skipMemory===!0);return d&&s&&(await wa(e,t.filename),await Ra(e,d.filename),await Sa(e,t.filename)),d}async function Sa(e,t){for(let n of[Tn(`/sessions/${t}`),Mn(`/sessions/${t}`)])try{await e.rm(n)}catch{}}async function Ca(e,t){try{return await e.stat(En(`/sessions/${t.filename}`)),!0}catch{return!1}}async function wa(e,t){try{await e.rm(En(`/sessions/${t}`))}catch{}}async function Ta(e,t){if(e.pickIcon)try{return await Zi(await e.pickIcon({subject:`"${t}" — an archived chat session`})??void 0)}catch(e){G.warn(`Enrichment icon pick failed (continuing without icon)`,{error:e instanceof Error?e.message:String(e)});return}}async function Ea(e,t){try{let n=await e.readFile(Ve(t),{encoding:`utf-8`});return typeof n==`string`?n:new TextDecoder().decode(n)}catch(e){return e?.code===`ENOENT`?G.info(`Pending archive missing — treating as already enriched`,{filename:t.filename}):G.warn(`Failed to read pending archive (entry stays pending)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),null}}async function Da(e,t,n){let r;try{r=(await yn(e,n,t.filename)).messages}catch(e){return G.warn(`Failed to parse pending archive — leaving entry intact`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),null}return r.length===0?(G.info(`Pending archive has no messages — skipping enrichment`,{filename:t.filename}),null):{agentMessages:ma(r),chatMessages:r}}async function Oa(e,t,n,r){let i=ma([...n]);if(r.skipMemory===!0||t.memoryPending!==!0)return{curatorAlreadyRan:!1,memoryMessages:i};if(await Ca(e,t))return{curatorAlreadyRan:!0,memoryMessages:i};let a=await On(e,t,n);return a.caughtUp?{curatorAlreadyRan:!0,memoryMessages:i}:a.through>0?{curatorAlreadyRan:!1,memoryMessages:i.filter(e=>ka(e)>a.through)}:{curatorAlreadyRan:!1,memoryMessages:i}}function ka(e){let t=e.timestamp;return typeof t==`number`?t:0}async function Aa(e,i,a,o=i){let s=``;if(!a.skipMemory)try{s=await t({messages:o,instruction:n,model:a.model,apiKey:a.apiKey,maxTokens:Wi,headers:a.headers})}catch(t){return G.warn(`Enrichment memory call failed (entry stays pending)`,{filename:e.filename,error:t instanceof Error?t.message:String(t)}),null}let c=``;try{c=ha(await t({messages:i,instruction:r,model:a.model,apiKey:a.apiKey,maxTokens:Gi,headers:a.headers}))}catch(t){return G.warn(`Enrichment title call failed (entry stays pending)`,{filename:e.filename,error:t instanceof Error?t.message:String(t)}),null}return c?{bullets:s,newTitle:c}:(G.info(`Enrichment title call returned empty — entry stays pending`,{filename:e.filename}),null)}async function ja(e,t,n,r){let i=n.trim();if(!(!i||i===`NONE`))try{await _a(e,da(t.cone||`cone`),i,`pending-enrichment`,{model:r.model,apiKey:r.apiKey,headers:r.headers})}catch(e){G.warn(`Enrichment memory append failed (continuing with title rewrite)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)})}}function Ma(e,t,n,r,i){let a=r??e.icon;return{filename:t,title:n,frozenAt:e.frozenAt,messageCount:e.messageCount,...e.cost?{cost:e.cost}:{},...e.models?{models:e.models}:{},...e.cone?{cone:e.cone}:{},...e.coneLabel?{coneLabel:e.coneLabel}:{},...e.sessionId?{sessionId:e.sessionId}:{},...e.curatedThrough?{curatedThrough:e.curatedThrough}:{},...a?{icon:a}:{},...e.completeSnapshotUnavailable?{completeSnapshotUnavailable:!0}:{},...i&&e.memoryPending?{memoryPending:!0}:{},...e.memorySkipped?{memorySkipped:!0}:{}}}async function Na(e,t,n,r,i,a=!1){let o=Ve(t),s=ze(t.filename),c=s?r:t.title,l=s?`${t.frozenAt.replace(/[:.]/g,`-`)}-${Je(r)}.md`:t.filename,u=`${O}/${l}`;if(s)try{await ga(e,O);let r=Pa(n,c),i=vn(t.filename),a=vn(l),s=Ke(r,o,u);if(s=Ke(s,i,a),i!==a){let e=i.slice(i.lastIndexOf(`/`)+1),t=a.slice(a.lastIndexOf(`/`)+1);s=s.split(`sidecar: ${e}`).join(`sidecar: ${t}`)}await e.writeFile(u,s),await xn(e,t.filename,l)}catch(e){return G.warn(`Enrichment write failed (entry stays pending)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),null}let d=Ma(t,l,c,i,a);if(!await Wa(e,t,d))return null;if(u!==o){try{await e.rm(o)}catch(e){G.info(`Stale pending archive cleanup failed (harmless)`,{oldPath:o,error:e instanceof Error?e.message:String(e)})}try{await bn(e,t.filename)}catch(e){G.info(`Stale pending sidecar cleanup failed (harmless)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)})}}try{await e.flush()}catch{}return G.info(`Pending session enriched`,{oldFilename:t.filename,newFilename:l,title:c}),d}function Pa(e,t){let n=e.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!n)return e;let r=n[1].replace(/^title:\s*.+$/m,`title: ${JSON.stringify(t)}`),i=n[2];return i=i.replace(/^#\s+[^\n]*$/m,`# ${t}`),`---\n${r}\n---\n${i}`}async function Fa(e,t){let n=null,r=E(async()=>{let r=await k(e),i=r.findIndex(e=>e.filename===t);if(i===-1)return;let{memoryPending:a,pendingEnrichment:o,pendingAttemptCount:s,memoryFailed:c,...l}=r[i],u={...l,memoryCuratedAt:new Date().toISOString()},d=r.slice();d[i]=u,await e.writeFile(D,JSON.stringify(d,null,2)),await e.flush(),n=u});try{await r}catch(e){G.warn(`Failed to clear agentic memory pending marker`,{filename:t,error:e instanceof Error?e.message:String(e)})}return n}async function Ia(e,t){let n=null;return await E(async()=>{let r=await k(e),i=r.findIndex(e=>e.filename===t);if(i===-1)return;let a=r[i];if(!a.pendingEnrichment&&!a.memoryPending)return;let o=ba(a);if(o>=3)return;n={...a,pendingAttemptCount:o+1};let s=r.slice();s[i]=n,await e.writeFile(D,JSON.stringify(s,null,2)),await e.flush()}),n}async function La(e,t,n){let r=E(async()=>{let r=await k(e),i=r.findIndex(e=>e.filename===t);if(i===-1)return;let a=r.slice();a[i]={...r[i],memoryFailed:n.slice(0,300)},await e.writeFile(D,JSON.stringify(a,null,2)),await e.flush()});try{await r}catch(e){G.warn(`Failed to record curator failure in sessions index`,{filename:t,error:e instanceof Error?e.message:String(e)})}}async function Ra(e,t){let n=E(async()=>{let n=await k(e),r=n.findIndex(e=>e.filename===t);if(r===-1)return;let{memoryFailed:i,...a}=n[r],o=n.slice();o[r]={...a,memoryCuratedAt:new Date().toISOString()},await e.writeFile(D,JSON.stringify(o,null,2)),await e.flush()});try{await n}catch(e){G.warn(`Failed to record curator completion in sessions index`,{filename:t,error:e instanceof Error?e.message:String(e)})}}async function za(e,t,n){return E(async()=>{let r=await Ba(e),i=r.findIndex(e=>e.filename===t);if(i!==-1){let t=r.slice();t[i]=n;let a=t.filter((e,t)=>t===i||e.filename!==n.filename);return await e.writeFile(D,JSON.stringify(a,null,2)),`replaced`}let a=await Va(e,r,t,n);if(a===`prepended`){let t=[n,...r.filter(e=>e.filename!==n.filename)];await e.writeFile(D,JSON.stringify(t,null,2))}else if(a===`replaced`){let t=r.map(e=>e.filename===n.filename?n:e);await e.writeFile(D,JSON.stringify(t,null,2))}else await Ua(e,r,t,n.filename);return a})}async function Ba(e){try{let t=await e.readFile(D,{encoding:`utf-8`}),n=JSON.parse(typeof t==`string`?t:new TextDecoder().decode(t));return Array.isArray(n)?n:[]}catch(e){if(!(e instanceof Et)||e.code!==`ENOENT`)throw e;return[]}}async function Va(e,t,n,r){if(t.some(e=>e.filename===r.filename))return`replaced`;let i=r.sessionId;return(i&&!_n(i)?t.filter(e=>e.sessionId===i):[]).length===1?`superseded`:await Ha(e,`/sessions/${n}`)?`prepended`:`deleted`}async function Ha(e,t){try{return await e.stat(t),!0}catch(e){return e?.code!==`ENOENT`}}async function Ua(e,t,n,r){if(r===n||t.some(e=>e.filename===r))return;let i=`${O}/${r}`;try{await e.rm(i)}catch(e){e?.code!==`ENOENT`&&G.warn(`Enrichment could not drop its renamed copy`,{path:i,error:e})}let a=vn(r);try{await bn(e,r)}catch(e){e?.code!==`ENOENT`&&G.warn(`Enrichment could not drop its renamed copy`,{path:a,error:e})}}async function Wa(e,t,n){let r;try{r=await za(e,t.filename,n)}catch(e){return G.warn(`Enrichment index update failed (entry may stay pending)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),!1}return r===`superseded`||r===`deleted`?(G.info(`Enrichment dropped — the session changed during the pass`,{filename:t.filename,outcome:r}),!1):!0}async function Ga(e,t){return E(async()=>{let n=[];try{let t=await e.readFile(D,{encoding:`utf-8`}),r=typeof t==`string`?t:new TextDecoder().decode(t),i=JSON.parse(r);Array.isArray(i)&&(n=i)}catch(e){if(!(e instanceof Et)||e.code!==`ENOENT`)throw e;return}if(!n.find(e=>e.filename===t))return;let r=n.map(e=>e.filename===t?{...e,completeSnapshotUnavailable:!0}:e);await e.writeFile(D,JSON.stringify(r,null,2))})}var Ka=`slicc:followers-changed`;function qa(e){let t=e.replace(/^follower-/,``);return t.length>12?`${t.slice(0,8)}…`:t}function Ja(e){return e.floatType===`ios`?`iOS`:e.floatType===`electron`?`Electron`:e.floatType===`extension`?`Extension`:e.floatType===`standalone`?`Standalone`:e.runtime?.includes(`cli`)?`CLI`:`Follower`}function Ya(e){return e.floatType===`ios`?`smartphone`:e.floatType===`electron`||e.floatType===`standalone`?`monitor`:e.floatType===`extension`?`blocks`:e.runtime?.includes(`cli`)?`terminal`:`radio`}function Xa(e,t=Date.now()){if(!e)return null;let n=new Date(e).getTime();if(!Number.isFinite(n))return null;let r=Math.max(0,Math.floor((t-n)/1e3));return r<60?`${r}s`:r<3600?`${Math.floor(r/60)}m`:r<86400?`${Math.floor(r/3600)}h`:`${Math.floor(r/86400)}d`}function Za(e){return e.health===`stalled`?`warn`:e.peerState===`connecting`?`idle`:e.peerState===`connected`&&e.health===`live`?`active`:`idle`}function Qa(e,t=Date.now()){let n=e.health===`stalled`?`stalled`:e.peerState===`connecting`?`connecting`:`connected`,r=Xa(e.connectedAt,t);return r?`${n} ${r}`:n}function $a(e){let t=[];return e.exec&&t.push(`can run commands`),e.computer&&t.push(`native screen`),e.cdp&&t.push(`hosts tabs`),t}function eo(e){return`${Ja(e)} · ${qa(e.runtimeId)}`}function to(e){return e.motd??e.runtime??void 0}function no(e,t=Date.now()){return e.map(e=>({id:e.runtimeId,icon:Ya(e),title:eo(e),detail:to(e),state:Za(e),stateText:Qa(e,t),chips:$a(e)}))}function ro(e){return e.length>=8&&e[0]===137&&e[1]===80&&e[2]===78?`image/png`:e.length>=3&&e[0]===255&&e[1]===216&&e[2]===255?`image/jpeg`:null}function io(e){if(e instanceof Uint8Array){let t=new Uint8Array(e.byteLength);return t.set(e),t}if(e instanceof ArrayBuffer)return new Uint8Array(e.slice(0));if(ArrayBuffer.isView(e)){let t=e;return new Uint8Array(t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength))}return Array.isArray(e)?Uint8Array.from(e):e&&typeof e==`object`?oo(e):new Uint8Array}function ao(e){if(typeof e.byteLength==`number`)return e.byteLength;if(typeof e.length==`number`)return e.length;let t=-1;for(let n of Object.keys(e)){if(!/^\d+$/.test(n))continue;let e=Number(n);e>t&&(t=e)}return t+1}function oo(e){let t=ao(e),n=new Uint8Array(t);for(let r=0;r<t;r++){let t=e[r];typeof t==`number`&&(n[r]=t&255)}return n}var so=2,co=768,lo=class{computers=[];frames=new Map;listListeners=new Set;frameListeners=new Set;invocationListeners=new Set;sender=null;watchSubs=new Map;kernelWatch=new Map;nextWatchToken=1;invocations=new Map;list(){return this.computers.slice()}get(e){return this.computers.find(t=>t.id===e)??null}lastFrame(e){return this.frames.get(e)??null}onList(e){return this.listListeners.add(e),()=>this.listListeners.delete(e)}onFrame(e){return this.frameListeners.add(e),()=>this.frameListeners.delete(e)}onInvocations(e){return this.invocationListeners.add(e),()=>this.invocationListeners.delete(e)}setSender(e){this.sender=e}isWatching(e){return(this.watchSubs.get(e)?.length??0)>0}watchRefCount(e){return this.watchSubs.get(e)?.length??0}watch(e,t=so,n=co){if(!this.sender)throw Error(`computers store has no kernel sender`);let r=this.nextWatchToken++,i=this.watchSubs.get(e)??[];return i.push({token:r,fps:t,maxWidth:n}),this.watchSubs.set(e,i),this.syncKernelWatch(e),r}unwatch(e,t){if(!this.sender)throw Error(`computers store has no kernel sender`);let n=this.watchSubs.get(e);if(!n?.length)return;let r=t===void 0?n.length-1:n.findIndex(e=>e.token===t);if(!(r<0)){if(n.splice(r,1),n.length===0){this.watchSubs.delete(e),this.kernelWatch.delete(e),this.sender({type:`computer-unwatch`,id:e});return}this.syncKernelWatch(e)}}syncKernelWatch(e){let t=this.watchSubs.get(e);if(!t?.length||!this.sender)return;let n=Math.max(...t.map(e=>e.fps)),r=Math.max(...t.map(e=>e.maxWidth)),i=this.kernelWatch.get(e);i&&i.fps===n&&i.maxWidth===r||(this.kernelWatch.set(e,{fps:n,maxWidth:r}),this.sender({type:`computer-watch`,id:e,fps:n,maxWidth:r}))}input(e,t){if(!this.sender)throw Error(`computers store has no kernel sender`);this.sender({type:`computer-input`,id:e,events:t})}recordInvocation(e,t){this.invocations.set(e,t);for(let e of[...this.invocationListeners])e()}newestInvocation(e){return this.invocations.get(e)??null}applyList(e){this.computers=e.computers.slice();let t=new Set(this.computers.map(e=>e.id));for(let e of[...this.invocations.keys()])t.has(e)||this.invocations.delete(e);for(let e of[...this.frames.keys()])t.has(e)||this.frames.delete(e);for(let e of[...this.listListeners])e(this.computers)}applyFrame(e){let t=this.frames.get(e.id);if(t&&t.seq>e.seq)return;let n={seq:e.seq,mime:e.mime,width:e.width,height:e.height,bytes:io(e.bytes),...e.overCap?{overCap:!0}:{}};this.frames.set(e.id,n);for(let t of[...this.frameListeners])t(e.id,n)}},uo=null;function fo(){return uo||=new lo,uo}var po=`__slicc_binary__`,mo=`b64`;function ho(e){if(!e||typeof e!=`object`)return!1;let t=e;return t[po]===mo&&typeof t.data==`string`}function go(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Uint8Array)}function _o(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Uint8Array)&&!ho(e)}function vo(e){if(e instanceof Uint8Array)return{[po]:mo,data:ge(e)};if(Array.isArray(e))return e.map(vo);if(go(e)){let t={};for(let[n,r]of Object.entries(e))t[n]=vo(r);return t}return e}function yo(e){if(ho(e))return _e(e.data);if(Array.isArray(e))return e.map(yo);if(_o(e)){let t={};for(let[n,r]of Object.entries(e))t[n]=yo(r);return t}return e}var bo=a(`panel-transport`);function xo(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function So(){return{onMessage:e=>{let t=(t,n,r)=>(xo(t)&&e(yo(t)),!1);return chrome.runtime.onMessage.addListener(t),()=>chrome.runtime.onMessage.removeListener(t)},send:(e,t)=>{let n=vo(e);chrome.runtime.sendMessage({source:`panel`,payload:n}).catch(e=>{bo.error(`failed to send to offscreen`,{error:e instanceof Error?e.message:String(e)})})}}}var Co={summarizing:`summarizing`,fallback:`fallback`,cancelled:`discarded`,idle:`summarized`},wo=class{mintId;open=new Map;settled=new Map;constructor(e){this.mintId=e}apply(e,t,n,r){if(t===`extracting-memory`)return null;let i=this.open.get(e)??this.lateRetraction(e,t,n)??r;if(t!==`summarizing`&&!i)return null;t!==`summarizing`&&(this.open.delete(e),this.settled.delete(e));let a=i??this.mintId(e);if(t===`summarizing`&&this.open.set(e,a),(t===`idle`||t===`fallback`)&&n.roundId&&this.settled.set(e,{messageId:a,roundId:n.roundId}),t===`cancelled`)return{kind:`retract`,messageId:a};let o={trigger:n.trigger,state:Co[t],...n.transcriptPath?{transcriptPath:n.transcriptPath}:{}};return t===`summarizing`?{kind:`open`,messageId:a,marker:o}:{kind:`settle`,messageId:a,marker:o}}forget(e){this.open.delete(e),this.settled.delete(e)}lateRetraction(e,t,n){if(t!==`cancelled`||!n.roundId)return;let r=this.settled.get(e);return r?.roundId===n.roundId?r.messageId:void 0}},To=2e3,Eo=5e3,K=a(`offscreen-client`),Do=class{eventListeners=new Set;backgroundEventListeners=new Set;backgroundMessageId=new Map;callbacks;scoops=[];scoopStatuses=new Map;currentMessageId=new Map;compactionRows=new wo(e=>`compaction-${e}-${q()}`);toolDepth=new Map;ready=!1;stateRetryTimer=null;localFs=null;pendingClearAcks=new Map;pendingWebhookDeliveries=new Map;pendingAgentSpawnRequests=new Map;pendingThinkingAcks=new Map;streamThinkingByUnit=new Map;pendingModelAcks=new Map;pendingUserMessageAcks=new Map;pendingTranscriptRequests=new Map;pendingChatMessagesRequests=new Map;pendingStatsRequests=new Map;pendingSudoRequests=new Map;transport;_selectedScoopJid=null;get selectedScoopJid(){return this._selectedScoopJid}scoopSelectedListeners=new Set;onScoopSelected(e){return this.scoopSelectedListeners.add(e),()=>{this.scoopSelectedListeners.delete(e)}}setSelectedScoopJid(e){if(this._selectedScoopJid!==e&&(this.handOverOpenMessages(this._selectedScoopJid,e),this._selectedScoopJid=e,e!==null))for(let t of this.scoopSelectedListeners)try{t(e)}catch(e){K.error(`onScoopSelected handler threw`,{error:e instanceof Error?e.message:String(e)})}}locked=!1;constructor(e,t){this.callbacks=e,this.transport=t??So(),this.setupMessageListener(),fo().setSender(e=>this.send(e))}setLocalFS(e){this.localFs=e}getTransport(){return this.transport}emitAgentError(e){this.emitToUI({type:`error`,error:e})}createAgentHandle(){return{sendMessage:(e,t,n,r)=>{if(!this.selectedScoopJid){this.emitToUI({type:`error`,error:`No scoop selected`});return}this.send({type:`user-message`,scoopJid:this.selectedScoopJid,text:e,attachments:n,messageId:t??`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,...r?.steer?{steer:!0}:{},...r?.guestGate?{guestGate:r.guestGate}:{}})},onEvent:e=>(this.eventListeners.add(e),()=>this.eventListeners.delete(e)),stop:()=>{this.selectedScoopJid&&this.send({type:`abort`,scoopJid:this.selectedScoopJid})}}}sendUserMessage(e){if(this.locked)return Promise.reject(Error(`This window is detached. Close it and use the detached tab.`));let t=`um-${q()}`,n=new Promise((e,n)=>{this.pendingUserMessageAcks.set(t,{resolve:e,reject:n})});this.send({type:`user-message`,requestId:t,scoopJid:e.scoopJid,text:e.text,messageId:e.messageId,...e.attachments?{attachments:[...e.attachments]}:{},...e.steer?{steer:!0}:{},...e.guestGate?{guestGate:e.guestGate}:{}});let r,i=new Promise((e,t)=>{r=setTimeout(()=>t(Error(`the kernel did not answer in time`)),Eo)});return Promise.race([n,i]).finally(()=>{r!==void 0&&clearTimeout(r),this.pendingUserMessageAcks.delete(t)})}getScoops(){return this.scoops}getScoop(e){return this.scoops.find(t=>t.jid===e)}isProcessing(e){return this.scoopStatuses.get(e)===`processing`}async registerScoop(e,t={}){if(!j(e))throw Error(`OffscreenClient.registerScoop is cone-only; use scoop_scoop for non-cone scoops`);this.scoops.find(t=>t.name===e.name)||(this.scoops.push(e),this.scoopStatuses.set(e.jid,`initializing`)),this.send({type:`cone-create`,name:e.name,...t.description?{description:t.description}:{},...t.prompt?{prompt:t.prompt}:{},...e.model?{model:e.model}:{}})}async unregisterScoop(e){let t=this.scoops.find(t=>t.jid===e);if(t&&j(t)&&A(this.scoops).length<=1)throw Error(`Cannot remove the last cone`);this.send({type:`scoop-drop`,scoopJid:e}),this.scoops=this.scoops.filter(t=>t.jid!==e),this.scoopStatuses.delete(e)}createScoopTab(e){}async getGlobalMemory(){if(!this.localFs)return``;try{let e=await this.localFs.readFile(`/shared/CLAUDE.md`,{encoding:`utf-8`});return typeof e==`string`?e:new TextDecoder().decode(e)}catch{return``}}getScoopContext(e){if(this.localFs)return{getFS:()=>this.localFs}}getSharedFS(){return this.localFs}stopScoop(e){this.send({type:`abort`,scoopJid:e})}async clearQueuedMessages(e){}async deleteQueuedMessage(e,t){this.send({type:`delete-queued-message`,scoopJid:e,messageId:t})}updateModel(){this.send({type:`refresh-model`})}setScoopModel(e,t){let n=`model-${q()}`,r=new Promise(e=>{this.pendingModelAcks.set(n,e)});return this.send({type:`set-scoop-model`,requestId:n,scoopJid:e,model:t}),Promise.race([r,new Promise(e=>setTimeout(()=>e(!1),5e3))]).finally(()=>this.pendingModelAcks.delete(n))}setLocked(e){this.locked=e}setScoopThinkingLevel(e,t,n){let r=`thinking-${q()}`,i=new Promise(e=>{this.pendingThinkingAcks.set(r,e)});return this.send({type:`set-thinking-level`,requestId:r,scoopJid:e,level:t,effortOverride:n}),Promise.race([i,new Promise(e=>setTimeout(()=>e(!1),5e3))]).finally(()=>this.pendingThinkingAcks.delete(r))}async clearAllMessages(e,t={}){let n=`clear-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,r=new Promise(e=>{this.pendingClearAcks.set(n,e)});this.send({type:`clear-chat`,requestId:n,...e?{scoopJid:e}:{},...t.discardLiveSnapshot?{discardLiveSnapshot:!0}:{}}),await Promise.race([r,new Promise(e=>setTimeout(e,5e3))]),this.pendingClearAcks.delete(n)}spawnAgent(e){let t=`agent-${q()}`,n=new Promise((e,n)=>{this.pendingAgentSpawnRequests.set(t,{resolve:e,reject:n})}),{signal:r,...i}=e;return this.send({type:`agent-spawn-request`,requestId:t,options:i}),r&&(r.aborted?this.send({type:`agent-spawn-abort`,requestId:t}):r.addEventListener(`abort`,()=>this.send({type:`agent-spawn-abort`,requestId:t}),{once:!0})),n}clearFilesystem(){this.send({type:`clear-filesystem`})}requestScoopMessages(e){this.send({type:`request-scoop-messages`,scoopJid:e})}async getScoopTranscript(e){let t=`tr-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,n=new Promise(e=>{this.pendingTranscriptRequests.set(t,e)});this.send({type:`request-scoop-transcript`,requestId:t,scoopJid:e});let r=await Promise.race([n,new Promise(e=>setTimeout(()=>e(``),5e3))]);return this.pendingTranscriptRequests.delete(t),r}async getMessagesForScoop(e){let t=`cm-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,n=new Promise(e=>{this.pendingChatMessagesRequests.set(t,e)});this.send({type:`request-scoop-chat-messages`,requestId:t,scoopJid:e});let r=!1,i=await Promise.race([n,new Promise(e=>setTimeout(()=>{r=!0,e([])},5e3))]);return this.pendingChatMessagesRequests.delete(t),r&&K.warn(`getMessagesForScoop timed out`,{scoopJid:e}),i}async requestSudoApproval(e,t=6e5){let n=`sudo-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,r=new Promise(e=>{this.pendingSudoRequests.set(n,e)});this.send({type:`request-sudo-approval`,requestId:n,request:e});let i=await Promise.race([r,new Promise(e=>setTimeout(()=>e({decision:`deny`,reason:`unavailable`}),t))]);return this.pendingSudoRequests.delete(n),i}async getSessionStats(){let e=`st-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,t=new Promise(t=>{this.pendingStatsRequests.set(e,t)});this.send({type:`request-session-stats`,requestId:e});let n=await Promise.race([t,new Promise(e=>setTimeout(()=>e(null),5e3))]);return this.pendingStatsRequests.delete(e),n}requestState(){this.send({type:`request-state`});let e=0;this.stateRetryTimer=setInterval(()=>{if(e++,this.ready||e>20){this.stateRetryTimer&&=(clearInterval(this.stateRetryTimer),null);return}K.debug(`Retrying request-state`,{attempt:e}),this.send({type:`request-state`})},500)}isReady(){return this.ready}sprinkleOpHandler=null;forwardLickHandler=null;sendSprinkleLick(e,t,n,r){this.send({type:`sprinkle-lick`,sprinkleName:e,body:t,targetScoop:n,origin:r})}sendToolUiAction(e,t,n){this.send({type:`tool-ui-action`,requestId:e,action:t,data:n})}async sendWebhookEvent(e,t,n){let r=`wh-${q()}`,i=new Promise(e=>{this.pendingWebhookDeliveries.set(r,e)});this.send({type:`lick-webhook-event`,webhookId:e,headers:t,body:n,requestId:r});try{return await Promise.race([i,new Promise(e=>setTimeout(()=>e(null),To))])}finally{this.pendingWebhookDeliveries.delete(r)}}sendSetFollowerForwarding(e){this.send({type:`set-follower-forwarding`,enabled:e})}sendForwardedLick(e){this.send({type:`inject-forwarded-lick`,event:e})}setForwardLickHandler(e){this.forwardLickHandler=e}sendCherryHostEvent(e,t,n){this.send({type:`lick-cherry-host-event`,cherryRuntimeId:e,name:t,detail:n})}sendPreviewLick(e){this.send({type:`lick-preview`,event:e})}setSprinkleOpHandler(e){this.sprinkleOpHandler=e}sendRaw(e){this.send(e)}setupMessageListener(){this.transport.onMessage(e=>{if(e.source!==`offscreen`)return;let t=e.payload;t?.type===`sprinkle-op`&&this.sprinkleOpHandler?this.sprinkleOpHandler(t):this.handleOffscreenMessage(e.payload)})}handleOffscreenMessage(e){if(!this.applySurfacePush(e))switch(e.type){case`offscreen-ready`:this.ready?(K.warn(`Offscreen restarted — re-requesting state`),this.ready=!1):K.info(`Offscreen engine ready`),this.send({type:`request-state`});break;case`agent-event`:this.handleAgentEvent(e);break;case`scoop-status`:this.handleScoopStatus(e);break;case`compaction-state`:this.handleCompactionState(e);break;case`clear-chat-ack`:{let t=this.pendingClearAcks.get(e.requestId);t&&(this.pendingClearAcks.delete(e.requestId),t());break}case`lick-webhook-delivery`:{let t=this.pendingWebhookDeliveries.get(e.requestId);t&&(this.pendingWebhookDeliveries.delete(e.requestId),t(e.disposition));break}case`agent-spawn-result`:this.handleAgentSpawnResult(e);break;case`set-scoop-model-ack`:this.handleScoopModelAck(e);break;case`set-thinking-level-ack`:this.handleThinkingLevelAck(e);break;case`user-message-ack`:this.handleUserMessageAck(e);break;case`scoop-created`:this.handleScoopCreated(e);break;case`scoop-list`:this.handleScoopList(e);break;case`state-snapshot`:this.handleStateSnapshot(e);break;case`error`:this.handleError(e);break;case`lick-backpressure`:this.callbacks.onLickBackpressure?.(e.scoopJid,{count:e.count,waitingMs:e.waitingMs});break;case`incoming-message`:this.handleIncomingMessage(e);break;case`message-updated`:this.handleMessageUpdated(e);break;case`scoop-messages-replaced`:{let t=e;this.resyncStreamPointer(t.scoopJid,t.messages),this.callbacks.onScoopMessagesReplaced?.(t.scoopJid,t.messages,t.queuedIds);break}case`scoop-transcript`:{let t=e,n=this.pendingTranscriptRequests.get(t.requestId);n&&(this.pendingTranscriptRequests.delete(t.requestId),n(t.transcript));break}case`scoop-chat-messages`:{let t=e,n=this.pendingChatMessagesRequests.get(t.requestId);n&&(this.pendingChatMessagesRequests.delete(t.requestId),n(t.messages));break}case`sudo-approval`:{let t=e,n=this.pendingSudoRequests.get(t.requestId);n&&(this.pendingSudoRequests.delete(t.requestId),n(t.decision));break}case`session-stats`:{let t=e,n=this.pendingStatsRequests.get(t.requestId);n&&(this.pendingStatsRequests.delete(t.requestId),n({totalCost:t.totalCost,burnRate:t.burnRate,fills:t.fills,models:t.models??[],scoops:t.scoops??[],...t.budget?{budget:t.budget}:{}}));break}case`tray-runtime-status`:{let t=e;Oo(t.leader,t.follower);break}case`forward-lick`:this.forwardLickHandler?.(e.event)}}applySurfacePush(e){if(e.type===`computers`)return fo().applyList(e),!0;if(e.type===`computer-frame`)return fo().applyFrame(e),!0;switch(e.type){case`terminal-status`:case`terminal-output`:case`terminal-media-preview`:case`terminal-exit`:case`terminal-cleared`:case`terminal-mode`:for(let t of this.terminalEventListeners)try{t(e)}catch(e){K.error(`terminal event listener error`,{error:e instanceof Error?e.message:String(e)})}return!0;default:return!1}}handleAgentSpawnResult(e){let t=this.pendingAgentSpawnRequests.get(e.requestId);t&&(this.pendingAgentSpawnRequests.delete(e.requestId),e.ok?t.resolve(e.result):t.reject(Error(e.error)))}terminalEventListeners=new Set;onTerminalEvent(e){return this.terminalEventListeners.add(e),()=>this.terminalEventListeners.delete(e)}resyncStreamPointer(e,t){let n;for(let e=t.length-1;e>=0;e--){let r=t[e];if(r.role===`assistant`&&r.isStreaming){n=r.id;break}}n===void 0?this.currentMessageId.delete(e):this.currentMessageId.set(e,n)}trackToolPhase(e,t){let n=this.toolDepth.get(e)??0,r=t===null?0:Math.max(0,n+t);r===0?this.toolDepth.delete(e):this.toolDepth.set(e,r),n>0!=r>0&&this.callbacks.onScoopPhaseChange?.(e,r>0?`tool`:`thinking`)}handleToolUiAgentEvent(e){if(e.displayScoopJid){let t=`tool-ui-${e.requestId??``}`;e.eventType===`tool_ui`?this.emitToUI({type:`tool_ui`,messageId:t,toolName:e.toolName??``,requestId:e.requestId??``,html:e.html??``}):e.eventType===`tool_ui_done`&&this.emitToUI({type:`tool_ui_done`,messageId:t,requestId:e.requestId??``});return}if(e.eventType===`tool_ui`){let t=this.currentMessageId.get(e.scoopJid);t||(t=`scoop-${e.scoopJid}-${q()}`,this.currentMessageId.set(e.scoopJid,t),this.emitToUI({type:`message_start`,messageId:t})),this.emitToUI({type:`tool_ui`,messageId:t,toolName:e.toolName??``,requestId:e.requestId??``,html:e.html??``});return}let t=this.currentMessageId.get(e.scoopJid);t&&(e.eventType===`tool_ui_done`?this.emitToUI({type:`tool_ui_done`,messageId:t,requestId:e.requestId??``}):e.progress&&this.emitToUI({type:`tool_progress`,messageId:t,toolName:e.toolName??``,progress:e.progress,toolCallId:e.toolCallId}))}handleAgentEvent(e){switch(e.eventType){case`text_delta`:case`tool_start`:case`tool_ui`:case`turn_end`:this.callbacks.onScoopActivity?.(e.scoopJid)}switch(e.eventType){case`tool_start`:this.trackToolPhase(e.scoopJid,1);break;case`tool_end`:this.trackToolPhase(e.scoopJid,-1);break;case`turn_end`:this.trackToolPhase(e.scoopJid,null)}if((e.displayScoopJid??e.scoopJid)!==this.selectedScoopJid){this.translateTranscriptEvent(e,this.backgroundMessageId,t=>this.emitBackground(e.scoopJid,t));return}switch(e.eventType){case`tool_ui`:case`tool_ui_done`:case`tool_progress`:this.handleToolUiAgentEvent(e);break;default:this.translateTranscriptEvent(e,this.currentMessageId,e=>this.emitToUI(e))}}translateTranscriptEvent(e,t,n){let r=()=>{let r=t.get(e.scoopJid);return r||(r=`scoop-${e.scoopJid}-${q()}`,t.set(e.scoopJid,r),n({type:`message_start`,messageId:r})),r};switch(e.eventType){case`text_delta`:n({type:`content_delta`,messageId:r(),text:e.text??``});break;case`tool_start`:n({type:`tool_use_start`,messageId:r(),toolName:e.toolName??``,toolInput:e.toolInput,toolCallId:e.toolCallId});break;case`tool_end`:{let r=t.get(e.scoopJid);r&&n({type:`tool_result`,messageId:r,toolName:e.toolName??``,result:e.toolResult??``,isError:e.isError,toolCallId:e.toolCallId});break}case`response_done`:{let r=t.get(e.scoopJid);r&&(n({type:`content_done`,messageId:r,model:e.model,usage:e.usage}),t.delete(e.scoopJid));break}case`turn_end`:{let r=t.get(e.scoopJid)??`done-${e.scoopJid}-${q()}`;t.delete(e.scoopJid),n({type:`turn_end`,messageId:r});break}}}handOverOpenMessages(e,t){let n=(e,t)=>{t&&this.emitBackground(e,{type:`content_done`,messageId:t})};e&&n(e,this.currentMessageId.get(e)),t&&(n(t,this.backgroundMessageId.get(t)),this.backgroundMessageId.delete(t))}onBackgroundUnitEvent(e){return this.backgroundEventListeners.add(e),()=>this.backgroundEventListeners.delete(e)}emitBackground(e,t){for(let n of this.backgroundEventListeners)try{n(e,t)}catch(e){K.error(`Background listener error`,{error:e instanceof Error?e.message:String(e)})}}renderCompactionNotice(e,t,n,r){let i=this.compactionRows.apply(e,t,n,r);i&&e===this.selectedScoopJid&&this.emitToUI({type:`compaction_notice`,messageId:i.messageId,marker:i.kind===`retract`?{trigger:n.trigger,state:`discarded`}:i.marker})}handleCompactionState(e){let t={trigger:e.trigger??`threshold`,...e.transcriptPath?{transcriptPath:e.transcriptPath}:{},...e.failure?{failure:e.failure}:{},...e.roundId?{roundId:e.roundId}:{}};this.callbacks.onCompactionStateChange?.(e.scoopJid,e.state,t),this.renderCompactionNotice(e.scoopJid,e.state,t,e.rowId)}handleScoopStatus(e){let t=this.scoopStatuses.get(e.scoopJid);this.scoopStatuses.set(e.scoopJid,e.status),t!==e.status&&this.trackToolPhase(e.scoopJid,null),this.callbacks.onStatusChange(e.scoopJid,e.status)}handleScoopCreated(e){let t=this.msgScoopToRegistered(e.scoop);this.scoops=this.scoops.filter(e=>e.name!==t.name||e.jid===t.jid),this.scoops.find(e=>e.jid===t.jid)||this.scoops.push(t),this.scoopStatuses.set(t.jid,e.scoop.status),this.callbacks.onScoopCreated(t)}wireScoops(){return this.scoops.map(e=>{let t=an(e),n=on(e),r={...e.config,...t?{modelId:t.id,modelProviderId:t.provider}:{},...n.level?{thinkingLevel:n.level}:{},...n.effortOverride?{effortOverride:n.effortOverride}:{}};return{jid:e.jid,name:e.name,folder:e.folder,parentId:e.parentJid,assistantLabel:e.assistantLabel,status:this.scoopStatuses.get(e.jid)??`ready`,...Object.keys(r).length>0?{config:r}:{}}})}handleScoopModelAck(e){if(e.applied){let t=this.getScoop(e.scoopJid);t&&(t.model=e.model?{...e.model}:void 0,this.callbacks.onScoopListUpdate(this.wireScoops()))}this.pendingModelAcks.get(e.requestId)?.(e.applied)}getStreamThinking(e){return this.streamThinkingByUnit.get(e)}handleThinkingLevelAck(e){if(e.applied){let t=this.getScoop(e.scoopJid);t&&nn(t,e.level===void 0?void 0:{level:e.level,effortOverride:e.effortOverride}),e.resolvedLevel&&this.streamThinkingByUnit.set(e.scoopJid,{level:e.resolvedLevel===`max`?`xhigh`:e.resolvedLevel,...e.resolvedEffortOverride?{effortOverride:e.resolvedEffortOverride}:{}})}this.pendingThinkingAcks.get(e.requestId)?.(e.applied)}handleUserMessageAck(e){let t=this.pendingUserMessageAcks.get(e.requestId);t&&(e.ok?t.resolve():t.reject(Error(e.error?.trim()||`the kernel refused the message`)))}handleScoopList(e){this.scoops=e.scoops.map(e=>this.msgScoopToRegistered(e));for(let t of e.scoops)this.scoopStatuses.set(t.jid,t.status);this.callbacks.onScoopListUpdate(e.scoops)}handleStateSnapshot(e){K.info(`Received state snapshot`,{scoopCount:e.scoops.length}),this.scoops=e.scoops.map(e=>this.msgScoopToRegistered(e));for(let t of e.scoops)this.scoopStatuses.set(t.jid,t.status);e.trayRuntimeStatus&&Oo(e.trayRuntimeStatus.leader,e.trayRuntimeStatus.follower);let t=!this.ready;t&&(this.ready=!0,this.stateRetryTimer&&=(clearInterval(this.stateRetryTimer),null)),this.callbacks.onScoopListUpdate(e.scoops),t&&this.callbacks.onReady?.()}handleError(e){let t={type:`error`,error:e.error,...e.endTurn===!1?{endTurn:!1}:{}};e.scoopJid===this.selectedScoopJid?this.emitToUI(t):e.scoopJid&&this.emitBackground(e.scoopJid,t)}handleIncomingMessage(e){this.callbacks.onIncomingMessage(e.scoopJid,e.message)}handleMessageUpdated(e){this.callbacks.onMessageUpdate?.(e.scoopJid,{messageId:e.messageId,lickId:e.lickId,lickState:e.lickState})}msgScoopToRegistered(e){return tn({jid:e.jid,name:e.name,folder:e.folder,parentJid:e.parentId,requiresTrigger:e.parentId!==null,assistantLabel:e.assistantLabel,addedAt:new Date().toISOString(),...e.config?{config:{...e.config}}:{}})}emitToUI(e){for(let t of this.eventListeners)try{t(e)}catch(e){K.error(`Listener error`,{error:e instanceof Error?e.message:String(e)})}}send(e){if(this.locked){this.emitToUI({type:`error`,error:`This window is detached. Close it and use the detached tab.`});return}this.transport.send(e)}};function q(){return Date.now().toString(36)+Math.random().toString(36).slice(2,8)}function Oo(e,t){$t({state:e.state,error:e.error,reconnectAttempts:e.reconnectAttempts,session:e.session?{...e.session}:null}),dt({state:t.state,joinUrl:t.joinUrl,trayId:t.trayId,error:t.error,lastError:t.lastError,reconnectAttempts:t.reconnectAttempts,attachAttempts:t.attachAttempts,lastAttachCode:t.lastAttachCode,connectingSince:t.connectingSince,lastPingTime:t.lastPingTime})}function ko(e){let t=e.createAgentHandle(),n=null,r=null;return{onAgentEvent:e=>t.onEvent(e),sendSprinkleLick:(t,n,r,i)=>e.sendSprinkleLick(t,n,r,i?{unitJid:i}:void 0),sendToolUiAction:(t,n,r)=>e.sendToolUiAction(t,n,r),deleteQueuedMessage:(t,n)=>e.deleteQueuedMessage(t,n),emitAgentError:t=>e.emitAgentError(t),getRecord:t=>e.getScoops().find(e=>e.jid===t),speaksReplies:!0,takeAttachments:()=>n?.(),onTurnIdle:()=>r?.(),welcome:{intercept:null},setAttachmentSource:e=>{n=e},setTurnIdleHook:e=>{r=e}}}var Ao={onAgentEvent:()=>()=>void 0,sendSprinkleLick:()=>void 0,sendToolUiAction:()=>void 0,deleteQueuedMessage:()=>Promise.resolve(),emitAgentError:()=>void 0},jo=`A follower cannot cancel the leader’s queued message`;function Mo(e){return{onAgentEvent:e.onAgentEvent,sendSprinkleLick:(t,n,r)=>e.getSync()?.sendSprinkleLick(t,n,r),sendToolUiAction:()=>void 0,deleteQueuedMessage:()=>Promise.reject(Error(jo)),emitAgentError:e.onAgentError,readOnlyToolUi:!0}}function No(e){return!e.includes(`\0`)}function Po(e){if(typeof window>`u`||window.localStorage===void 0)return()=>void 0;let t=window.localStorage,n=typeof Storage<`u`&&t instanceof Storage,r=n?Storage.prototype.setItem:t.setItem.bind(t),i=n?Storage.prototype.removeItem:t.removeItem.bind(t),a=n?Storage.prototype.clear:t.clear.bind(t);if(n){let n=Storage.prototype;n.setItem=function(n,i){if(r.call(this,n,i),this===t){if(!No(n)){console.warn(`[page-storage-sync] dropping localStorage write with NUL in key`,n);return}e.send({type:`local-storage-set`,key:n,value:i})}},n.removeItem=function(n){if(i.call(this,n),this===t){if(!No(n)){console.warn(`[page-storage-sync] dropping localStorage remove with NUL in key`,n);return}e.send({type:`local-storage-remove`,key:n})}},n.clear=function(){a.call(this),this===t&&e.send({type:`local-storage-clear`})}}else{let n=(e,n)=>{Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0,enumerable:!1})};n(`setItem`,(t,n)=>{if(r(t,n),!No(t)){console.warn(`[page-storage-sync] dropping localStorage write with NUL in key`,t);return}e.send({type:`local-storage-set`,key:t,value:n})}),n(`removeItem`,t=>{if(i(t),!No(t)){console.warn(`[page-storage-sync] dropping localStorage remove with NUL in key`,t);return}e.send({type:`local-storage-remove`,key:t})}),n(`clear`,()=>{a(),e.send({type:`local-storage-clear`})})}let o=n=>{if(n.storageArea===t){if(n.key===null){e.send({type:`local-storage-clear`});return}if(No(n.key)){if(n.newValue===null){e.send({type:`local-storage-remove`,key:n.key});return}e.send({type:`local-storage-set`,key:n.key,value:n.newValue})}}};return window.addEventListener(`storage`,o),()=>{if(n)Storage.prototype.setItem=r,Storage.prototype.removeItem=i,Storage.prototype.clear=a;else{let e=(e,n)=>{Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0,enumerable:!1})};e(`setItem`,r),e(`removeItem`,i),e(`clear`,a)}window.removeEventListener(`storage`,o)}}function Fo(e){let t=!1,n=()=>{t||(t=!0,typeof e.start==`function`&&e.start())};return{onMessage:t=>{let r=e=>{t(e.data)};return e.addEventListener(`message`,r),n(),()=>{e.removeEventListener(`message`,r)}},send:(t,n)=>{n&&n.length>0?e.postMessage(t,n):e.postMessage(t)}}}function Io(e){let t=Fo(e);return{onMessage:e=>t.onMessage(e),send:(e,n)=>{t.send({source:`panel`,payload:e},n)}}}async function Lo(e,t,n,r,i,a){let o=e;if(o?.type){if(o.type===`cdp-cmd`){let r=e;if((r.gen??a())<a()){n.send({type:`cdp-response`,id:r.id,error:`dropped: command crossed a CDP connection reset in flight`});return}try{i&&t.state!==`connected`&&t.superseded!==!0&&await i();let e=await t.send(r.method,r.params,r.sessionId);n.send({type:`cdp-response`,id:r.id,result:e})}catch(e){n.send({type:`cdp-response`,id:r.id,error:e instanceof Error?e.message:String(e)})}return}if(o.type===`cdp-subscribe`){let i=e;if(r.has(i.event))return;let a=e=>{n.send({type:`cdp-event`,method:i.event,params:e})};r.set(i.event,a),t.on(i.event,a);return}if(o.type===`cdp-unsubscribe`){let n=e,i=r.get(n.event);if(!i)return;r.delete(n.event),t.off(n.event,i)}}}function Ro(e,t){for(let[n,r]of t)e.off(n,r),e.on(n,r)}var zo=1e4;function Bo(e){return new Promise((t,n)=>{let r=!1,i=null,a=null,o=e=>{r||(r=!0,clearTimeout(s),a&&clearInterval(a),i?.(),e?n(e):t())},s=setTimeout(()=>o(Error(`page CDP client is still connecting`)),zo),c=e=>{e===`connected`?o():e===`disconnected`&&o(Error(`page CDP client failed to reconnect`))};e.onStateChange?i=e.onStateChange(e=>c(e)):a=setInterval(()=>c(e.state),50),c(e.state)})}function Vo(e,t,n={}){let r=Fo(e),i=null,a=n.reconnect?()=>(i||=(t.state===`connecting`?Bo(t):n.reconnect()).finally(()=>{i=null}),i):null,o=new Map,s=r.onMessage(e=>{Lo(e,t,r,o,a,()=>l)}),c=t.state,l=0,u=t.onStateChange?.((e,n)=>{if(e!==c){if(c=e,e===`disconnected`){l+=1,r.send({type:`cdp-reset`,reason:n??`page CDP client disconnected`});return}e===`connected`&&(Ro(t,o),r.send({type:`cdp-ready`}))}});return()=>{s(),u?.();for(let[e,n]of o)t.off(e,n);o.clear()}}function Ho(){let e={};if(typeof localStorage>`u`)return e;for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);if(n===null)continue;let r=localStorage.getItem(n);r!==null&&(e[n]=r)}return e}function Uo(e){let t=null,n=!1,r=!1,i=!1,a=0,o=Date.now(),s,c=()=>{t!==null&&(clearTimeout(t),t=null)},l=()=>{c(),!(n||r||i)&&(t=setTimeout(()=>{if(n||r||i)return;if(a+=1,a<e.readyStallLimit){e.onReadyStall?.({elapsedMs:Date.now()-o,stalls:a,stage:s}),l();return}i=!0,c();let t=e.readyTimeoutMs*e.readyStallLimit,u=s?` (last progress: ${s})`:``;e.onExhausted(`Kernel worker did not signal ready within ${t}ms${u}`)},e.readyTimeoutMs))};return{pause(){r||i||(n=!0,c())},restart(){r||i||(n=!1,a=0,o=Date.now(),l())},arm:l,clear(){r=!0,c()},noteProgress(t){r||i||(t&&(s=t,e.onBootProgress?.(t)),!n&&(a=0,l()))},timedOut:()=>i}}function Wo(e,t,n){let r=()=>{},i=()=>{},a=()=>{};return{ready:new Promise((o,s)=>{let c=null,l=Uo({readyTimeoutMs:n,readyStallLimit:Math.max(1,t.readyStallLimit??(t.onReadyStall?3:1)),onReadyStall:t.onReadyStall,onBootProgress:t.onBootProgress,onExhausted:e=>{t.onLateReady||r(),s(Error(e))}});i=()=>l.pause(),a=()=>l.restart(),r=()=>{c!==null&&(e.removeEventListener(`message`,c),c=null),l.clear()},c=e=>{let n=e.data;if(n?.type===`kernel-worker-boot-progress`){l.noteProgress(n.stage);return}if(n?.type===`kernel-worker-ready`){if(r(),l.timedOut()){t.onLateReady?.();return}o();return}if(n?.type===`kernel-worker-boot-error`){r();let e=n.message??`unknown error`,t=n.code,i=Error(`Kernel worker boot failed: ${e}`);t&&(i.code=t),s(i)}},e.addEventListener(`message`,c),l.arm()}),cleanup:()=>r(),pauseReadyDeadline:()=>i(),restartReadyDeadline:()=>a()}}function Go(e){let{worker:t,realCdpTransport:n}=e,r=e.readyTimeoutMs??3e4,i=e.localStorageSeed??{},a=new MessageChannel,o=new MessageChannel,s=Io(a.port1),c=e.makeClient(s);e.onWorkerScriptError&&e.worker.addEventListener?.(`error`,()=>e.onWorkerScriptError());let l=Vo(o.port1,n,{...e.reconnectCdp?{reconnect:e.reconnectCdp}:{}}),{ready:u,cleanup:d,pauseReadyDeadline:f,restartReadyDeadline:p}=Wo(a.port1,e,r),m={type:`kernel-worker-init`,kernelPort:a.port2,cdpPort:o.port2,localStorageSeed:i,instanceId:e.instanceId,localApiBaseUrl:e.localApiBaseUrl??null,bridgeToken:e.bridgeToken??null,syncFsBridgeEnabled:e.syncFsBridgeEnabled??!1,syncFsChannelNonce:e.syncFsChannelNonce??null,localLickWsUrl:e.localLickWsUrl??null,extensionDelegateId:e.extensionDelegateId??null,pageBuildId:`6.239.0-muww31ty`,pageLoadedAt:globalThis.performance?.timeOrigin??Date.now(),flagFloat:e.flagFloat??null,appPageUrl:globalThis.location?.href??null};t.postMessage(m,[a.port2,o.port2]);let h=!1;return{client:c,ready:u,pauseReadyDeadline:f,restartReadyDeadline:p,dispose(){if(!h){h=!0,d(),l();try{t.postMessage({type:`kernel-worker-shutdown`})}catch{}t.terminate(),a.port1.close(),o.port1.close()}}}}function Ko(e){return Go({worker:e.workerUrl?new Worker(e.workerUrl,{type:`module`}):new Worker(new URL(`/assets/kernel-worker-C4MiASR-.js`,``+import.meta.url),{type:`module`}),realCdpTransport:e.realCdpTransport,reconnectCdp:e.reconnectCdp,makeClient:e.makeClient,readyTimeoutMs:e.readyTimeoutMs,localStorageSeed:e.localStorageSeed??Ho(),instanceId:e.instanceId,localApiBaseUrl:e.localApiBaseUrl,bridgeToken:e.bridgeToken,syncFsBridgeEnabled:e.syncFsBridgeEnabled,syncFsChannelNonce:e.syncFsChannelNonce,localLickWsUrl:e.localLickWsUrl,extensionDelegateId:e.extensionDelegateId,flagFloat:e.flagFloat,onWorkerScriptError:e.onWorkerScriptError,onReadyStall:e.onReadyStall,readyStallLimit:e.readyStallLimit,onLateReady:e.onLateReady,onBootProgress:e.onBootProgress})}var qo=1048576,Jo=`r`;function Yo(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function Xo(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Zo(e,t,n){if(typeof e==`string`){n.push({pointer:t,value:e});return}if(Array.isArray(e)){for(let r=0;r<e.length;r++)Zo(e[r],`${t}/${r}`,n);return}if(Xo(e))for(let[r,i]of Object.entries(e))Zo(i,`${t}/${Yo(r)}`,n)}function Qo(e,t,n){if(typeof e==`string`)return n.get(t)??e;if(Array.isArray(e)){let r=!1,i=[];for(let a=0;a<e.length;a++){let o=Qo(e[a],`${t}/${a}`,n);o!==e[a]&&(r=!0),i.push(o)}return r?i:e}if(Xo(e)){let r=!1,i={};for(let[a,o]of Object.entries(e)){let e=Qo(o,`${t}/${Yo(a)}`,n);e!==o&&(r=!0),i[a]=e}return r?i:e}return e}function $o(e,t,n){if(Xo(e))return Qo(e,t,n);if(typeof e==`string`)return n.get(t)??e;if(Array.isArray(e)){let r=!1,i=[];for(let a=0;a<e.length;a++){let o=$o(e[a],`${t}/${a}`,n);o!==e[a]&&(r=!0),i.push(o)}return r?i:e}return e}function es(e){let t=new Map;for(let n of e.matchAll(/⟦REDACTED:([^:⟧]+):([^⟧]+)⟧/g)){let e=n[0],r=t.get(e);r?r.count++:t.set(e,{category:n[1],id:n[2],count:1})}return t}async function ts(e,t,n){let r=[],i=0;for(;i<e.length;){if(n?.aborted)throw new T(`redaction-unavailable`);let a=0,o=i;for(;o<e.length;){let t=e[o].length;if(o>i&&a+t>qo)break;a+=t,o++}let s=e.slice(i,o),c;try{c=await t.redact(s,n)}catch{throw new T(`redaction-unavailable`)}if(c.length!==s.length)throw new T(`redaction-unavailable`);r.push(...c),i=o}return r}function ns(e,t,n,r){let i=[],a=es(e);for(let{category:e,id:t}of a.values())i.push({id:t,category:e,detector:`pre-obfuscated`,target:n});let o=es(t);for(let[e,{category:t,id:r,count:s}]of o)s>(a.get(e)?.count??0)&&i.push({id:r,category:t,detector:`known-secret`,target:n});let{text:s,matches:c,nextId:l}=Ye(t,Jo,r);for(let{id:e,category:t}of c)i.push({id:e,category:t,detector:`credential-pattern`,target:n});return{finalText:s,redactions:i,nextId:l}}function rs(e,t,n){for(let{redactions:r}of e)for(let e of r)t.push(e),n[e.category]=(n[e.category]??0)+1}async function is(e,t,n,r){if(r?.aborted)throw new T(`redaction-unavailable`);let{privacy:i,...a}=e,o=[];Zo(a,``,o);let s=o.filter(e=>!Ie(e.pointer)),c=[...t.entries()],l=await ts([...s.map(e=>e.value),...c.map(([,e])=>e)],n,r),u=[],d={},f=1,p=new Map,m=[];for(let e=0;e<s.length;e++){let t=s[e],n=ns(t.value,l[e],{kind:`json`,pointer:t.pointer},f);f=n.nextId,n.finalText!==t.value&&p.set(t.pointer,n.finalText),m.push(n)}rs(m,u,d);let h=new Map,g=s.length,_=[];for(let e=0;e<c.length;e++){let[t,n]=c[e],r=ns(n,l[g+e],{kind:`attachment`,attachmentId:t},f);f=r.nextId,h.set(t,r.finalText),_.push(r)}rs(_,u,d);let v=$o(e,``,p);return{document:{...v,privacy:{...v.privacy,redactionCounts:d,redactions:u}},textAttachments:h}}function as(e,t){let n=e.startsWith(`text/`)||e===`application/json`,r=/\.(?:txt|md|json|csv|xml|ya?ml|js|mjs|cjs|ts|tsx|css|html)$/i.test(t);return n||r?`text-redacted`:`binary-unchanged`}var os={"image/png":`.png`,"image/jpeg":`.jpg`,"image/gif":`.gif`,"image/webp":`.webp`,"image/svg+xml":`.svg`,"image/bmp":`.bmp`,"application/pdf":`.pdf`,"application/zip":`.zip`,"application/gzip":`.gz`,"application/json":`.json`,"text/plain":`.txt`,"text/markdown":`.md`,"text/csv":`.csv`,"text/html":`.html`,"text/xml":`.xml`,"application/xml":`.xml`};function ss(e,t){return os[e]??(t===`text-redacted`?`.txt`:`.bin`)}function cs(e,t,n){return`attachments/att-${String(e+1).padStart(4,`0`)}${ss(t,n)}`}function ls(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}function us(e){let t=[];for(let n of e.conversations){let e=0;for(let r of n.messages){let i=r.role;if(i!==`user`&&i!==`assistant`&&i!==`tool-result`)continue;let a=0;for(let o of r.content)o.type===`attachment-ref`&&(t.push({attachmentId:o.attachmentId,conversationId:n.id,messageId:r.id,role:i,userOrdinal:e,imgIndex:a}),a++);i===`user`&&e++}}return t}async function ds(e,t,n,r,i){let a=as(e.mimeType,e.name),o={attachmentId:t,originalName:e.name,mimeType:e.mimeType,handling:a,present:!0,sourceConversationId:n,sourceMessageId:r};if(a===`text-redacted`){let t;if(e.text!==void 0)t=e.text;else if(e.data!==void 0)t=new TextDecoder().decode(ls(e.data));else if(e.path!==void 0&&i!==void 0)try{t=new TextDecoder().decode(await i(e.path))}catch{return{...o,present:!1,missingReason:`attachment-file-missing`}}return t===void 0?{...o,present:!1,missingReason:`attachment-file-missing`}:{...o,rawText:t}}let s;if(e.data!==void 0)s=ls(e.data);else if(e.path!==void 0&&i!==void 0)try{s=await i(e.path)}catch{return{...o,present:!1,missingReason:`attachment-file-missing`}}return s===void 0?{...o,present:!1,missingReason:`attachment-file-missing`}:{...o,rawBytes:s}}function fs(e,t,n,r){let i=[],a=new Set,o=new Set;for(let s of e){if(s.role!==`user`){let e=n.get(s.attachmentId);e===void 0?i.push(Promise.resolve({attachmentId:s.attachmentId,originalName:`unknown`,mimeType:`application/octet-stream`,handling:`binary-unchanged`,present:!1,missingReason:`attachment-file-missing`,sourceConversationId:s.conversationId,sourceMessageId:s.messageId})):i.push(Promise.resolve({attachmentId:s.attachmentId,originalName:`image-${s.imgIndex}`,mimeType:e.mimeType,handling:`binary-unchanged`,rawBytes:ls(e.data),present:!0,sourceConversationId:s.conversationId,sourceMessageId:s.messageId}));continue}let e=(t.get(s.conversationId)??[]).filter(e=>e.role===`user`)[s.userOrdinal];if(e===void 0){a.add(s.conversationId),i.push(Promise.resolve({attachmentId:s.attachmentId,originalName:`unknown`,mimeType:`application/octet-stream`,handling:`binary-unchanged`,present:!1,missingReason:`attachment-association-unavailable`,sourceConversationId:s.conversationId,sourceMessageId:s.messageId}));continue}let c=(e.attachments??[]).map((e,t)=>({a:e,i:t})).filter(({a:e})=>e.kind===`image`||e.kind===`file`&&e.data!==void 0)[s.imgIndex];if(c===void 0){i.push(Promise.resolve({attachmentId:s.attachmentId,originalName:`unknown`,mimeType:`application/octet-stream`,handling:`binary-unchanged`,present:!1,missingReason:`attachment-file-missing`,sourceConversationId:s.conversationId,sourceMessageId:s.messageId}));continue}o.add(`${s.conversationId}:${e.id}:${c.i}`),i.push(ds(c.a,s.attachmentId,s.conversationId,s.messageId,r))}return{pendingPromises:i,mismatchedConvIds:a,processedUiPositions:o}}function ps(e,t,n){return(e.attachments??[]).map((e,t)=>({a:e,i:t})).filter(({a:r,i})=>(r.kind===`text`||r.kind===`file`&&(r.data!==void 0||r.path!==void 0))&&!n.has(`${t}:${e.id}:${i}`))}function ms(e,t,n,r,i,a,o){let s=ps(t,n,i),c=[];for(let t=0;t<s.length;t++){let{a:i}=s[t],l=`${e.id}-file-${t}`;r.has(l)||(a.push(ds(i,l,n,e.id,o)),c.push({type:`attachment-ref`,attachmentId:l}))}return c}function hs(e,t,n,r,i){let a=new Map,o=[];for(let s of e.conversations){let e=(t.get(s.id)??[]).filter(e=>e.role===`user`),c=0;for(let t of s.messages){if(t.role!==`user`)continue;let l=e[c];if(c++,l===void 0)continue;let u=ms(t,l,s.id,n,r,o,i);u.length>0&&(a.has(s.id)||a.set(s.id,new Map),a.get(s.id).set(t.id,[...t.content,...u]))}}return{updates:a,additionalPendingPromises:o}}function gs(e,t){let n=new Map,r=0,i=new Map;for(let t of e)t.handling===`text-redacted`&&t.rawText!==void 0&&n.set(t.attachmentId,t.rawText),t.present&&i.set(t.attachmentId,cs(r++,t.mimeType,t.handling));for(let n of e)!n.present&&n.missingReason!==void 0&&t.add(n.missingReason);return{rawAttachments:e.map(e=>e.present?{id:e.attachmentId,path:i.get(e.attachmentId),originalName:e.originalName,mimeType:e.mimeType,byteLength:0,sha256:``,sourceConversationId:e.sourceConversationId,sourceMessageId:e.sourceMessageId,handling:e.handling,present:!0}:{id:e.attachmentId,path:``,originalName:e.originalName,mimeType:e.mimeType,byteLength:0,sha256:``,sourceConversationId:e.sourceConversationId,sourceMessageId:e.sourceMessageId,handling:e.handling,present:!1,missingReason:e.missingReason??`attachment-file-missing`}),textMap:n}}async function _s(e,t,n,r,i){let{rawAttachments:a,textMap:o}=gs(e,n),s,c;try{let e=await is({...t,attachments:a},o,r,i);s=e.document,c=e.textAttachments}catch(e){throw e instanceof T?e:new T(`attachment-unreadable`)}let l=new Map;for(let t of e){if(l.has(t.attachmentId))throw new T(`schema-invalid`);l.set(t.attachmentId,t)}let u=new Map,d=await Promise.all(s.attachments.map(async e=>{if(!e.present||!e.path)return e;let t=l.get(e.id);if(t===void 0)throw new T(`schema-invalid`);let n=t.handling===`text-redacted`?new TextEncoder().encode(c.get(t.attachmentId)??t.rawText??``):t.rawBytes,r=await Me(n);return u.set(e.path,n),{...e,byteLength:n.length,sha256:r}}));return{redactedDocument:{...s,attachments:d},bundleFiles:u}}async function vs(e){let{document:t,chatMessagesByConversation:n,knownSecrets:r,signal:i}=e,a=e.canonicalImages??new Map,o=e.vfsReader,s=new Set,{pendingPromises:c,mismatchedConvIds:l,processedUiPositions:u}=fs(us(t),n,a,o);l.size>0&&s.add(`attachment-association-unavailable`);for(let e of t.conversations)e.messages.filter(e=>e.role===`user`).length>(n.get(e.id)??[]).filter(e=>e.role===`user`).length&&s.add(`attachment-association-unavailable`);let d=await Promise.all(c),{updates:f,additionalPendingPromises:p}=hs(t,n,new Set(d.map(e=>e.attachmentId)),u,o),m=await Promise.all(p),h=[...d,...m],g=t;f.size>0&&(g={...t,conversations:t.conversations.map(e=>{let t=f.get(e.id);return t?{...e,messages:e.messages.map(e=>{let n=t.get(e.id);return n?{...e,content:n}:e})}:e})});let{redactedDocument:_,bundleFiles:v}=await _s(h,g,s,r,i),y=[..._.session.completeness.missing.filter(e=>!s.has(e)),...s];return{document:{..._,session:{..._.session,completeness:{status:y.length>0?`partial`:_.session.completeness.status,missing:y}}},bundleFiles:v}}var ys=50;function bs(e){return cn(e)}function xs(e,t){return e.map(e=>{let n=t.isProcessing(e.jid)?`1`:`0`,r=t.getAgentMessages(e.jid);if(r===null)return`${e.jid}:${n}:null`;let i=r.length,a=r[i-1],o=a?.role??``,s=a&&`timestamp`in a?a.timestamp:-1,c=a&&`toolCallId`in a?a.toolCallId:``;return`${e.jid}:${n}:${i}:${o}:${s}:${c}`}).join(`,`)}function Ss(e,t,n,r){let i=new Map;for(let e of t)i.set(e.id,e);let a=new Map;for(let e of n)a.set(e.id,e);let o=[],s=new Map;for(let t of e){let e=r.getAgentMessages(t.jid)??i.get(t.jid)?.messages??[],n={id:t.jid,kind:j(t)?`cone`:`scoop`,name:t.name,...t.folder&&!j(t)?{folder:t.folder}:{},...t.parentJid?{parentConversationId:t.parentJid}:{},...t.originToolCallId?{originToolCallId:t.originToolCallId}:{},messages:e};o.push(n);let c=bs(t),l=a.get(c);l&&s.set(t.jid,l.messages)}return{sources:o,chatMessagesByConversation:s}}async function Cs(e,t,n={}){let r=e=>n.rootJid===void 0?e:sn(e,n.rootJid);for(;;){let n=r(e.listScoops());for(;n.some(t=>e.isProcessing(t.jid));)if(t?.aborted||(await e.wait(ys,t),t?.aborted))throw new T(`transfer-aborted`);let i=xs(n,e),[a,o]=await Promise.all([e.loadPersistedSessions(),e.loadUiChatSessions()]);if(t?.aborted)throw new T(`transfer-aborted`);let s=r(e.listScoops());if(i===xs(s,e))return Ss(s,a,o,e)}}function ws(e,t){return`${e}-msg-${t.toString().padStart(6,`0`)}`}function Ts(e,t){return{type:`attachment-ref`,attachmentId:`${e}-img-${t}`}}function Es(e,t){if(typeof e==`string`)return e?[{type:`text`,text:e}]:[];let n=[],r=0;for(let i of e)i.type===`text`?i.text&&n.push({type:`text`,text:i.text}):i.type===`image`&&n.push(Ts(t,r++));return n}function Ds(e,t){let n=[],r=new Map,i=0,a=0;for(let o of e)if(o.type===`thinking`)i+=1;else if(o.type===`text`)o.text&&n.push({type:`text`,text:o.text});else if(o.type===`toolCall`)n.push({type:`tool-call`,id:o.id??``,name:o.name??``,input:o.arguments??{}});else if(o.type===`image`){let e=Ts(t,a++);n.push(e),o.data&&o.mimeType&&r.set(e.attachmentId,{data:o.data,mimeType:o.mimeType})}return{blocks:n,excluded:i,images:r}}function Os(e,t){let n=[],r=new Map,i=0;for(let a of e)if(a.type===`text`)a.text&&n.push({type:`text`,text:a.text});else if(a.type===`image`){let e=Ts(t,i++);n.push(e),a.data&&a.mimeType&&r.set(e.attachmentId,{data:a.data,mimeType:a.mimeType})}return{blocks:n,images:r}}function ks(e,t,n){let r=ws(t,n),i=Es(e.content,r);return{message:{id:r,sequence:n,role:`user`,timestamp:new Date(e.timestamp).toISOString(),content:i},excludedReasoningBlocks:0,images:new Map}}function As(e,t,n){let r=ws(t,n),{blocks:i,excluded:a,images:o}=Ds(e.content,r);return{message:{id:r,sequence:n,role:`assistant`,timestamp:new Date(e.timestamp).toISOString(),content:i,model:{provider:e.provider,id:e.model,api:e.api},usage:e.usage,stopReason:e.stopReason,...e.errorMessage?{error:e.errorMessage}:{}},excludedReasoningBlocks:a,images:o}}function js(e,t,n){let r=ws(t,n),{blocks:i,images:a}=Os(e.content,r);return{message:{id:r,sequence:n,role:`tool-result`,timestamp:new Date(e.timestamp).toISOString(),content:i,toolCallId:e.toolCallId,isError:e.isError},excludedReasoningBlocks:0,images:a}}function Ms(e,t,n){return e.role===`user`?ks(e,t,n):e.role===`assistant`?As(e,t,n):e.role===`toolResult`?js(e,t,n):{message:null,excludedReasoningBlocks:0,images:new Map}}function Ns(e){let t=[];for(let n of e){if(!n.parentConversationId)continue;let e={sourceConversationId:n.parentConversationId,targetConversationId:n.id};n.originToolCallId&&(e.toolCallId=n.originToolCallId),t.push(e)}return t}function Ps(e){let t=0,n=new Map;return{conversations:e.map(e=>{let r=e.messages.flatMap((r,i)=>{let a=Ms(r,e.id,i+1);t+=a.excludedReasoningBlocks;for(let[e,t]of a.images)n.set(e,t);return a.message?[a.message]:[]});return{id:e.id,kind:e.kind,name:e.name,...e.folder?{folder:e.folder}:{},...e.parentConversationId?{parentConversationId:e.parentConversationId}:{},...e.createdAt?{createdAt:e.createdAt}:{},...e.updatedAt?{updatedAt:e.updatedAt}:{},messages:r}}),delegations:Ns(e),excludedReasoningBlocks:t,canonicalImages:n}}var Fs=(()=>{let e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let e=0;e<8;e++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n}return e})();function Is(e){let t=-1>>>0;for(let n=0;n<e.length;n++)t=t>>>8^Fs[(t^e[n])&255];return~t>>>0}var Ls=new TextEncoder;function J(e,t,n){e[t]=n&255,e[t+1]=n>>>8&255}function Y(e,t,n){e[t]=n&255,e[t+1]=n>>>8&255,e[t+2]=n>>>16&255,e[t+3]=n>>>24&255}function Rs(e,t,n){let r=new Uint8Array(30+e.length);return r[0]=80,r[1]=75,r[2]=3,r[3]=4,J(r,4,20),J(r,6,2048),J(r,8,0),J(r,10,0),J(r,12,0),Y(r,14,n),Y(r,18,t),Y(r,22,t),J(r,26,e.length),J(r,28,0),r.set(e,30),r}function zs(e,t,n,r){let i=new Uint8Array(46+e.length);return i[0]=80,i[1]=75,i[2]=1,i[3]=2,J(i,4,20),J(i,6,20),J(i,8,2048),J(i,10,0),J(i,12,0),J(i,14,0),Y(i,16,n),Y(i,20,t),Y(i,24,t),J(i,28,e.length),J(i,30,0),J(i,32,0),J(i,34,0),J(i,36,0),Y(i,38,0),Y(i,42,r),i.set(e,46),i}function Bs(e,t,n){let r=new Uint8Array(22);return r[0]=80,r[1]=75,r[2]=5,r[3]=6,J(r,4,0),J(r,6,0),J(r,8,e),J(r,10,e),Y(r,12,t),Y(r,16,n),J(r,20,0),r}function Vs(e){if(!e||e.startsWith(`/`)||e.includes(`\0`)||e.includes(`\\`))return!1;for(let t of e.split(`/`))if(t===``||t===`.`||t===`..`)return!1;return!0}function Hs(e){let t=e.export.generatedAt.slice(0,10),n=e.export.id.slice(0,8);return`slicc-${t}-${Pe(e.session.title,{maxLen:40,fallback:`transcript`})}-${n}.zip`}async function*Us(e,t,n,r,i){if(n?.aborted)throw i(new T(`transfer-aborted`)),new T(`transfer-aborted`);let a=()=>i(new T(`transfer-aborted`));n?.addEventListener(`abort`,a,{once:!0});let o=xt.create(),s=0,c=0,l=[],u=!1;function*d(e){o.update(e),s+=e.byteLength,c+=e.byteLength,yield e}try{let i=new TextEncoder().encode(JSON.stringify(e,null,2)),a=Ls.encode(`transcript.json`),f=Is(i),p=Rs(a,i.length,f);if(l.push({nameBytes:a,size:i.length,crc:f,localOffset:c}),n?.aborted||(yield*d(p),n?.aborted))throw new T(`transfer-aborted`);yield*d(i);for(let[e,r]of t){if(n?.aborted)throw new T(`transfer-aborted`);let t=Ls.encode(e),i=Is(r),a=Rs(t,r.length,i);if(l.push({nameBytes:t,size:r.length,crc:i,localOffset:c}),yield*d(a),n?.aborted)throw new T(`transfer-aborted`);yield*d(r)}let m=c;for(let e of l){if(n?.aborted)throw new T(`transfer-aborted`);yield*d(zs(e.nameBytes,e.size,e.crc,e.localOffset))}if(n?.aborted)throw new T(`transfer-aborted`);yield*d(Bs(l.length,c-m,m)),u=!0,r({byteLength:s,sha256:o.hex()})}catch(e){throw u=!0,i(e),e}finally{n?.removeEventListener(`abort`,a),u||(u=!0,i(new T(`transfer-aborted`)))}}var Ws=4294967295,Gs=65535;function Ks(e,t,n){for(let e of t.keys())if(!Vs(e))throw new T(`schema-invalid`);if(t.size+1>Gs)throw new T(`schema-invalid`);for(let e of t.values())if(e.byteLength>Ws)throw new T(`schema-invalid`);let r,i,a=new Promise((e,t)=>{r=e,i=t});return{filename:Hs(e),chunks:Us(e,t,n,r,i),completion:a}}function qs(e,t,n,r,i,a={}){return{schemaVersion:1,export:{id:crypto.randomUUID(),generatedAt:new Date().toISOString(),producer:{application:`slicc`,version:i},format:Le},session:{id:e,title:t,state:n,completeness:{status:`complete`,missing:[]},...a},privacy:{reasoningExcluded:!0,excludedReasoningBlocks:r.excludedReasoningBlocks,binaryAttachments:`included-unchanged`,redactionCounts:{},redactions:[]},conversations:r.conversations,delegations:r.delegations,attachments:[]}}function Js(e,t){let n=[],r=1;for(let i of e){if(i.role!==`user`&&i.role!==`assistant`)continue;let e=`${t}-msg-${String(r).padStart(6,`0`)}`;n.push({id:e,sequence:r++,role:i.role,timestamp:new Date(i.timestamp||0).toISOString(),content:i.content?[{type:`text`,text:i.content}]:[]})}return n}function Ys(e){let t=Fe(e);if(!t.ok)throw new T(`schema-invalid`,t.error)}function Xs(e,t,n){let r=new Map;for(let i of e)if(!(!i.present||!i.path)){if(i.handling===`text-redacted`){let e=t.get(i.id);e!==void 0&&r.set(i.path,new TextEncoder().encode(e))}else{let e=n.get(i.path);e&&r.set(i.path,e)}}return r}async function Zs(e,t){return Promise.all(e.map(async e=>{if(!e.present||!e.path||e.handling!==`text-redacted`)return e;let n=t.get(e.path);return n?{...e,byteLength:n.length,sha256:await Me(n)}:e}))}function Qs(e){let t=e.match(/^---\n([\s\S]*?)\n---\n/);if(!t)return{};let n=t[1],r={},i=n.match(/^createdAt:\s*(\d+)\s*$/m),a=n.match(/^updatedAt:\s*(\d+)\s*$/m);return i&&(r.createdAt=new Date(Number(i[1])).toISOString()),a&&(r.updatedAt=new Date(Number(a[1])).toISOString()),r}var $s=class{deps;constructor(e){this.deps=e}async export(e,t={}){let{signal:n,onProgress:r}=t,i;return i=e.kind===`active`?await this.buildActiveSnapshot(n,r):await this.buildFrozenSnapshot(e.sessionId,n,r),Ys(i.document),r?.({phase:`packaging`}),Ks(i.document,i.bundleFiles,n)}async captureFrozen(e,t){let n=await Cs(this.deps.collection,t,{...e.rootJid?{rootJid:e.rootJid}:{}});if(e.rootJid&&n.sources.length===0)return;let r=Ps(n.sources),{document:i,bundleFiles:a}=await vs({document:qs(e.sessionId,e.title,`frozen`,r,this.deps.version,{frozenAt:e.frozenAt,createdAt:new Date(e.createdAt).toISOString(),updatedAt:new Date(e.updatedAt).toISOString()}),chatMessagesByConversation:n.chatMessagesByConversation,knownSecrets:this.deps.knownSecrets,canonicalImages:r.canonicalImages,vfsReader:e=>this.readBinaryFromVfs(e),signal:t});if(Ys(i),t?.aborted)throw new T(`transfer-aborted`);try{await this.deps.snapshotStore.write(e.sessionId,{document:i,attachments:a},t)}finally{this.deps.snapshotStore.discardIfUnindexed?.(e.sessionId)?.catch(()=>void 0)}}async buildActiveSnapshot(e,t){t?.({phase:`waiting-for-conversations`}),t?.({phase:`collecting`});let n=await Cs(this.deps.collection,e),r=Ps(n.sources),{id:i,title:a}=this.deps.getActiveSessionInfo(),o=qs(i,a,`active`,r,this.deps.version);return t?.({phase:`redacting`}),vs({document:o,chatMessagesByConversation:n.chatMessagesByConversation,knownSecrets:this.deps.knownSecrets,canonicalImages:r.canonicalImages,vfsReader:e=>this.readBinaryFromVfs(e),signal:e})}async buildFrozenSnapshot(e,t,n){let r;try{r=await this.deps.snapshotStore.read(e)}catch(e){if(!(e instanceof T)||e.code!==`session-not-found`)throw e;r=null}return r?(n?.({phase:`redacting`}),this.reredactStoredSnapshot(r,t)):this.buildLegacyPartial(e,t,n)}async reredactStoredSnapshot(e,t){let n=new Map;for(let t of e.document.attachments){if(t.handling!==`text-redacted`||!t.present||!t.path)continue;let r=e.attachments.get(t.path);r&&n.set(t.id,new TextDecoder().decode(r))}let r,i;try{let a=await is(e.document,n,this.deps.knownSecrets,t);r=a.document,i=a.textAttachments}catch{throw new T(`redaction-unavailable`)}let a=Xs(r.attachments,i,e.attachments),o=await Zs(r.attachments,a);return{document:{...r,attachments:o},bundleFiles:a}}async buildLegacyPartial(e,t,n){let r=(await k(this.deps.vfs)).find(t=>t.sessionId===e||!t.sessionId&&t.filename===e);if(!r)throw new T(`session-not-found`);let a;try{let e=await this.deps.vfs.readFile(`/sessions/${r.filename}`,{encoding:`utf-8`});a=typeof e==`string`?e:new TextDecoder().decode(e)}catch{throw new T(`session-not-found`)}let{loadFrozenArchive:o}=await i(async()=>{let{loadFrozenArchive:e}=await import(`./session-jsonl-DUdZghbY.js`).then(e=>e.i);return{loadFrozenArchive:e}},__vite__mapDeps([52,1,47,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,48])),{title:s,messages:c}=await o(this.deps.vfs,a,r.filename),l=`legacy-cone`,u=Js(c,l),d=Qs(a),f={schemaVersion:1,export:{id:crypto.randomUUID(),generatedAt:new Date().toISOString(),producer:{application:`slicc`,version:this.deps.version},format:Le},session:{id:e,title:s,state:`frozen`,...r.frozenAt?{frozenAt:r.frozenAt}:{},...d,completeness:{status:`partial`,missing:[`complete-snapshot-unavailable`,`canonical-agent-history-unavailable`]}},privacy:{reasoningExcluded:!0,excludedReasoningBlocks:0,binaryAttachments:`included-unchanged`,redactionCounts:{},redactions:[]},conversations:[{id:l,kind:`cone`,name:s,messages:u}],delegations:[],attachments:[]},p=new Map([[l,c]]);return n?.({phase:`redacting`}),vs({document:f,chatMessagesByConversation:p,knownSecrets:this.deps.knownSecrets,vfsReader:e=>this.readBinaryFromVfs(e),signal:t})}async readBinaryFromVfs(e){let t=await this.deps.vfs.readFile(e,{encoding:`binary`});if(!(t instanceof Uint8Array))throw new T(`attachment-unreadable`);return t}};function ec(e){return`error`in e}function X(){throw new T(`redaction-unavailable`)}function tc(e,t){return(typeof e!=`object`||!e||!Array.isArray(e.texts)||e.texts.length!==t)&&X(),e.texts}function nc(){return{async redact(e){let t;try{t=await fetch($e(`/api/secrets/redact-export`),{method:`POST`,headers:et({"content-type":`application/json`}),body:JSON.stringify({texts:e})})}catch{X()}t.ok||X();let n;try{n=await t.json()}catch{X()}return tc(n,e.length)}}}function rc(){return{async redact(e){let t;try{t=await new Promise(t=>{chrome.runtime.sendMessage({type:`secrets.redact-export`,texts:e},e=>{chrome.runtime.lastError,t(e??null)})})}catch{X()}return typeof t==`object`&&t&&ec(t)&&X(),tc(t,e.length)}}}function ic(){return{async redact(e){let t;try{t=await nt(`secrets.redact-export`,{texts:e})}catch{X()}return t??X(),typeof t==`object`&&t&&ec(t)&&X(),tc(t,e.length)}}}function ac(){return{async redact(e){X()}}}function oc(){let e=tt();return e===`connect`?ac():e===`extension-direct`?rc():e===`extension-delegate`?ic():nc()}var sc=`Restoring session…`,cc=`slicc-restoring-session`;function lc(e){let t=e.querySelector(`:scope > .slicc-thread__inner`)??e;for(let e of t.children)if(!e.classList.contains(cc))return!1;return!0}function uc(e,t){let n=e.querySelector(`:scope > .slicc-thread__inner`)??e,r=n.querySelector(`:scope > .${cc}`);if(!t){r?.remove();return}if(r)return;let i=e.ownerDocument.createElement(`p`);i.className=cc,i.textContent=sc,n.append(i)}function Z(e){switch(e){case`processing`:return`working`;case`error`:return`broken`;case`initializing`:return`initializing`;default:return`idle`}}function dc(e,t={}){let n=Z(t.status),r=an(e);return{id:e.jid,parentId:e.parentJid,role:j(e)?`primary`:`child`,name:e.name,folder:e.folder,assistantLabel:e.assistantLabel,state:n,...n===`working`&&t.phase?{phase:t.phase}:{},...n===`idle`&&t.awaiting?{awaiting:!0}:{},fill:typeof t.fill==`number`?Math.round(t.fill*100):0,...typeof t.turns==`number`?{turns:t.turns}:{},...r?{model:r}:{},...e.trigger?{trigger:e.trigger}:{},...e.addedAt?{addedAt:e.addedAt}:{}}}function fc(e,t=Date.now){let n=e.parentId===null,r=e.folder??e.name,i=n?e.config:pc(e,r),a={jid:e.id??(n?`cone_${t()}`:`scoop_${r}_${t()}`),name:e.name,folder:r,requiresTrigger:!n,assistantLabel:n?`sliccy`:r,addedAt:new Date(t()).toISOString(),parentJid:e.parentId,...i?{config:i,configSchemaVersion:3}:{},...e.notifyOnComplete===!1?{notifyOnComplete:!1}:{},...!n&&e.onParentClose===`detach`?{onParentClose:`detach`}:{}};return n||(a.trigger=`@${r}`),a}function pc(e,t){let n=rn(e.workspace?.mode??e.config?.workspaceMode),r=e.workspace?.from??`/workspace`,i=pn(n,t,{root:r},e.workspace?.from),a=e.config;return{...a,workspaceMode:n,visiblePaths:a?.visiblePaths===void 0?i.visiblePaths:a.visiblePaths,writablePaths:a?.writablePaths===void 0?i.writablePaths:a.writablePaths}}var mc=`padding:0.5rem 1.25rem;border-radius:0.375rem;cursor:pointer;font:inherit;font-size:0.875rem;`,hc=`${mc}border:none;background:var(--s2-accent-color,#0265dc);color:#fff;`,gc=`${mc}border:none;background:#d23;color:#fff;`,_c=`${mc}background:transparent;border:1px solid var(--s2-border-color,#e0e0e0);color:inherit;`;function vc(e,t,n){return{...fc({parentId:null,name:e,folder:`cone-pending-${t.length+1}`}),assistantLabel:e,...n?{model:n}:{}}}function yc(e,t){let n=e.createElement(`slicc-dialog`);n.setAttribute(`heading`,t.heading),n.append(t.body);for(let r of t.actions){let t=e.createElement(`button`);t.setAttribute(`slot`,`footer`),t.type=`button`,t.dataset.coneAction=r.data,t.textContent=r.text,t.style.cssText=r.style,t.addEventListener(`click`,r.onClick),n.append(t)}return n.addEventListener(`slicc-dialog-close`,()=>t.onDismiss(n)),n}function bc(e,t){let n=e.createElement(`form`);n.style.cssText=`display:flex;flex-direction:column;gap:0.5rem;padding:0.25rem 0;`;let r=`font-size:0.9375rem;padding:0.5rem 0.625rem;border:1px solid var(--s2-border-color,#e0e0e0);border-radius:0.375rem;background:transparent;color:inherit;font-family:inherit;`,i=e.createElement(`input`);i.type=`text`,i.name=`name`,i.placeholder=`Name`,i.setAttribute(`aria-label`,`Cone name`),i.maxLength=40,i.autocomplete=`off`,i.required=!0,i.style.cssText=r;let a=e.createElement(`textarea`);a.name=`brief`,a.placeholder=`What should it work on? (optional)`,a.setAttribute(`aria-label`,`What the cone should work on`),a.rows=3,a.style.cssText=`${r}resize:vertical;`,n.append(i,a);let o=()=>({name:i.value.trim(),brief:a.value.trim()});return n.addEventListener(`submit`,e=>{e.preventDefault(),t(o())}),a.addEventListener(`keydown`,e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),t(o()))}),n.readDraft=o,n}function xc(e){let{freezer:t,client:n,log:r}=e,i=t.ownerDocument,a=null,o=!1,s=null,c=()=>t.querySelector(`slicc-freezer-new`),l=()=>Un(e.getUnits(),e.getSelected()),u=t=>e.getUnits().find(e=>e.id===t.jid)??dc(t),d=()=>{if(!s)return;let e=s;s=null,e.hide?.(),e.remove()},f=e=>{d();let t=yc(i,{...e,onDismiss:e=>{s===e&&(s=null),e.remove()}});s=t,i.body.append(t),t.show?.()},p=t=>{if(!t.name)return;d();let i=l(),o=vc(t.name,n.getScoops(),Rn(e.getUnits(),i?.id));a=t.name,n.registerScoop(o,t.brief?{description:t.brief,prompt:t.brief}:{}).catch(e=>r.warn(`WC cone create failed`,e)),_()},m=()=>{let e=bc(i,p);f({heading:`New cone`,body:e,actions:[{text:`Create`,style:hc,data:`create`,onClick:()=>p(e.readDraft())},{text:`Cancel`,style:_c,data:`cancel`,onClick:d}]}),queueMicrotask(()=>e.querySelector(`input`)?.focus())},h=t=>{d();let i=A(n.getScoops()),a=i.find(e=>e.jid===t);if(!a||i.length<=1||o){_();return}o=!0,_(),(async()=>{try{await e.freezeCone(a)}catch(e){r.warn(`WC cone freeze before drop failed`,e)}let t=l()?.id===a.jid;try{await n.unregisterScoop(a.jid)}catch(e){r.warn(`WC cone drop failed`,e)}if(t){let t=A(n.getScoops()).find(e=>e.jid!==a.jid);t&&e.selectScoop(u(t))}o=!1,_()})()},g=e=>{let t=Vn(e),n=i.createElement(`p`);n.textContent=`Its chat goes to the Freezer.`,n.style.cssText=`font-size:0.875rem;margin:0;`,f({heading:`Drop ${t}?`,body:n,actions:[{text:`Drop`,style:gc,data:`drop`,onClick:()=>h(e.id)},{text:`Cancel`,style:_c,data:`cancel`,onClick:d}]})},_=()=>{let t=A(n.getScoops());if(a!==null){let n=t.find(e=>e.name===a&&!e.folder.startsWith(`cone-pending-`));n&&(a=null,e.getSelected()?.id!==n.jid&&e.selectScoop(u(n)))}let r=c();r?.setAttribute(`cones`,String(t.length)),r?.toggleAttribute(`busy`,o)};return t.addEventListener(`new-cone`,m),t.addEventListener(`drop-cone`,()=>{let e=l();!e||A(n.getScoops()).length<=1||o||g(e)}),_(),{refresh:_,dialog:()=>s}}var Sc={"gelatiere-dismiss":{consume:!0,mode:`dismiss`},"gelatiere-install":{consume:!1,mode:`take`},"gelatiere-try":{consume:!1,mode:`take`}};function Cc(e){return t=>{if(t.type!==`sprinkle`||t.sprinkleName!==`welcome`&&t.sprinkleName!==`inline`&&t.sprinkleName!==`suggestions`)return!1;let n=t.body,r=Sc[typeof n?.action==`string`?n.action:``];if(!r)return!1;let a=n?.data,o=typeof a?.id==`string`&&a.id?a.id:null;return o&&e.openVfs().then(async e=>{let t=await i(()=>import(`./wc-shell-CuOqCSKv.js`).then(e=>e.mt),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38]));return r.mode===`dismiss`?t.dismissGelatiereSuggestion(e,o):t.takeGelatiereSuggestion(e,o)}).catch(t=>e.log.warn(`gelatiere card settlement failed`,t)),r.consume}}var wc=5e3,Tc=class{deps;listListeners=new Set;unitListeners=new Map;lastSnapshots=new Map;orphanedReplays=new Map;retriedSnapshots=new Set;pendingSnapshots=new Map;constructor(e){this.deps=e}toSummary(e){return dc(e,{awaiting:this.deps.getAwaiting?.()===e.jid,fill:this.deps.fills.get(e.jid),phase:this.deps.phases.get(e.jid),status:this.deps.statuses.get(e.jid),turns:this.deps.turns?.get(e.jid)})}snapshotFor(e,t,n){let r=this.deps.getClient()?.getScoops().find(t=>t.jid===e);return r?{summary:this.toSummary(r),messages:t,...n?{queuedIds:n}:{}}:null}currentUnits(){return(this.deps.getClient()?.getScoops()??[]).map(e=>this.toSummary(e))}publishSnapshot(e,t){this.retriedSnapshots.delete(e),this.lastSnapshots.set(e,t),this.emit(e,{snapshot:t,type:`snapshot`});let n=this.pendingSnapshots.get(e);if(n){this.pendingSnapshots.delete(e);for(let e of n)e(t)}}drainOrphanedReplays(){for(let[e,t]of this.orphanedReplays){let n=this.snapshotFor(e,t.messages,t.queuedIds);n&&(this.orphanedReplays.delete(e),this.publishSnapshot(e,n))}}recoverUnanswered(e){if(this.unitListeners.has(e)){if(this.retriedSnapshots.has(e)){this.publishRecovery(e);return}this.retriedSnapshots.add(e),this.deps.getClient()?.requestScoopMessages(e),setTimeout(()=>{this.retriedSnapshots.has(e)&&this.publishRecovery(e)},wc)}}publishRecovery(e){if(!this.unitListeners.has(e))return;let t=this.lastSnapshots.get(e),n=this.deps.getClient()?.getScoops().find(t=>t.jid===e);this.emit(e,{snapshot:{messages:t?.messages??[],...n?{summary:this.toSummary(n)}:{}},type:`snapshot`})}forgetWaiter(e,t){let n=this.pendingSnapshots.get(e);n&&(n.delete(t),n.size===0&&this.pendingSnapshots.delete(e))}emitList(){if(this.drainOrphanedReplays(),this.listListeners.size===0)return;let e=this.currentUnits();for(let t of this.listListeners)t(e)}emit(e,t){let n=this.unitListeners.get(e);if(n)for(let e of n)e(t)}wrapCallbacks(e){return{...e,onStatusChange:(t,n)=>{e.onStatusChange(t,n),this.emit(t,{state:Z(n),type:`status`}),this.emitList()},onScoopCreated:t=>{e.onScoopCreated(t),this.emitList()},onScoopListUpdate:t=>{e.onScoopListUpdate(t),this.emitList()},onScoopPhaseChange:(t,n)=>{e.onScoopPhaseChange?.(t,n),this.emitList()},onIncomingMessage:(t,n)=>{e.onIncomingMessage(t,n),this.emit(t,{message:n,type:`message`})},onScoopMessagesReplaced:(t,n,r)=>{e.onScoopMessagesReplaced?.(t,n,r);let i=n,a=this.snapshotFor(t,i,r);a?this.publishSnapshot(t,a):this.orphanedReplays.set(t,{messages:i,queuedIds:r})}}}list(){return Promise.resolve(this.currentUnits())}subscribeList(e){return this.listListeners.add(e),e(this.currentUnits()),()=>{this.listListeners.delete(e)}}subscribe(e,t){let n=this.unitListeners.get(e)??new Set;n.add(t),this.unitListeners.set(e,n);let r=this.lastSnapshots.get(e);return this.pendingSnapshots.has(e)||(r?t({snapshot:r,type:`snapshot`}):this.deps.getClient()?.requestScoopMessages(e)),()=>{n.delete(t),n.size===0&&this.unitListeners.delete(e)}}takeArrivedReplay(e){let t=this.orphanedReplays.get(e);if(!t)return null;let n=this.snapshotFor(e,t.messages,t.queuedIds);return n?(this.orphanedReplays.delete(e),this.lastSnapshots.set(e,n),n):null}snapshot(e){let t=this.deps.getClient();if(!t)return Promise.reject(Error(`kernel client not attached`));let n=this.takeArrivedReplay(e);if(n)return t.setSelectedScoopJid(e),Promise.resolve(n);let r=this.pendingSnapshots.get(e)??new Set;this.pendingSnapshots.set(e,r);let i=()=>{},a=new Promise(e=>{i=e,r.add(e)});t.setSelectedScoopJid(e),t.requestScoopMessages(e);let o,s=new Promise(t=>{o=setTimeout(()=>{o=void 0;let n=this.pendingSnapshots.get(e)?.has(i)===!0;this.forgetWaiter(e,i),n&&this.recoverUnanswered(e),t(this.snapshotFor(e,[],void 0))},wc)});return Promise.race([a.then(e=>(o!==void 0&&(clearTimeout(o),o=void 0),e)),s]).then(t=>{if(!t)throw Error(`unknown work unit: ${e}`);return t})}send(e,t){let n=this.deps.getClient();if(!n)return Promise.reject(Error(`kernel client not attached`));let r=t.messageId??`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return n.sendUserMessage({scoopJid:e,text:t.text,messageId:r,...t.attachments?{attachments:t.attachments}:{},...t.steer?{steer:!0}:{},...t.guestGate?{guestGate:t.guestGate}:{}})}setModel(e,t){let n=this.deps.getClient();return n?n.setScoopModel(e,t):Promise.reject(Error(`kernel client not attached`))}signal(e,t){if(t!==`stop`)return Promise.resolve();let n=this.deps.getClient();return n?(n.stopScoop(e),Promise.resolve()):Promise.reject(Error(`kernel client not attached`))}};function Q(e){return e.workUnits??=new Tc({fills:e.fills,getAwaiting:()=>e.awaitingInput,getClient:()=>e.getClient(),phases:e.phases,statuses:e.statuses,turns:e.turns}),e.workUnits}function Ec(e){let t=Q(e),n=()=>e.refreshScoops?.(),r=()=>(e.refs.thread.getAttribute(`context`)??``).startsWith(`freezer:`),i=()=>{if(e.getSelected()||r())return;let n=t.currentUnits(),i=e.pendingUrlContext;if(i?.startsWith(`freezer:`))return;if(i?.startsWith(`scoop:`)||i?.startsWith(`cone:`)){let t=In(n,i);if(t){e.pendingUrlContext=null,e.selectScoop(t);return}}let a=Hn(n);a&&(e.pendingUrlContext=null,e.selectScoop(a))};return t.wrapCallbacks({onStatusChange:(t,r)=>{let i=e.statuses.get(t),a=r;e.statuses.set(t,a),i!==a&&e.notifyUnitStatus?.(t,a),a!==`ready`&&e.awaitingInput===t&&(e.awaitingInput=null),Z(i)===`working`&&Z(a)!==`working`&&e.turns.set(t,(e.turns.get(t)??0)+1),Z(i)!==Z(a)&&(n(),e.notifyScoopStateChanged?.()),e.getSelected()?.id===t&&e.getController()?.setProcessing(r===`processing`)},onScoopCreated:t=>{n(),!e.getSelected()&&!r()&&!e.pendingUrlContext&&e.selectScoop(dc(t,{fill:e.fills.get(t.jid),phase:e.phases.get(t.jid),status:e.statuses.get(t.jid)}))},onScoopListUpdate:t=>{let r=new Set(t.map(e=>e.jid));for(let t of e.lickBackpressure.keys())r.has(t)||e.lickBackpressure.delete(t);for(let t of e.turns.keys())r.has(t)||e.turns.delete(t);n(),i()},onScoopActivity:t=>{e.refs.switcher.setAttribute(`attention`,t)},onScoopPhaseChange:(t,r)=>{e.phases.set(t,r),n(),e.notifyScoopStateChanged?.()},onIncomingMessage:(t,n)=>{e.refs.switcher.setAttribute(`attention`,t),e.lastActivity.set(t,String(n.content??``).slice(0,600)),e.getSelected()?.id===t&&n.channel!==`web`&&ae(n.channel)&&e.getController()?.addLickMessage(n.id,n.content,n.channel,new Date(n.timestamp).getTime(),n.lickId)},onLickBackpressure:(t,n)=>{n.count<=0?e.lickBackpressure.delete(t):e.lickBackpressure.set(t,n);let r=e.getSelected();if(r?.id!==t)return;let i=Wn(r);e.getController()?.setLickBackpressure(n.count,n.waitingMs,i)},onMessageUpdate:(t,n)=>{e.getSelected()?.id===t&&n.lickId&&n.lickState&&e.getController()?.updateLickState(n.lickId,n.lickState)},onReady:()=>{n(),i(),e.notifyReady?.()}})}var Dc=`slicc:leader-local-model-state-changed`;function Oc(e=window){e.dispatchEvent(new Event(Dc))}var kc=`slicc:leader-model-catalog-changed`;function Ac(e=window){e.dispatchEvent(new Event(kc))}var jc={off:`off`,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`,max:`xhigh`},Mc={off:`off`,minimal:`low`,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`};function Nc(e){return e?jc[e]:void 0}function Pc(e){return e===`max`?`max`:void 0}function Fc(e,t){return t===`max`?`max`:(e&&Mc[e])??`off`}var Ic=2e3,Lc=1e4,Rc=12e4;function zc(e){let t=[],n=null,r=new Map,i=e.modelPickerEnabled!==!1,a=e.catalogRetryDelayMs??Ic,o=e.catalogRetryMaxDelayMs??Lc,s=e.catalogRetryWindowMs??Rc,c=0,l=null,u=null,d=()=>{if(!i||u!==null)return;let t=Date.now();if(l===null&&(l=t+s),t>=l)return;let n=Math.min(a*2**c,o);u=setTimeout(()=>{u=null;let t=e.getSync();t?.requestModels&&(c+=1,t.requestModels())},n)},f=()=>{u!==null&&clearTimeout(u),u=null,c=0,l=null},p=e=>{if(e.length===0)return;let t=new Set(e.map(e=>e.id));for(let e of r.keys())t.has(e)||r.delete(e)},m=()=>{let t=e.getSelectedScoopJid(),i=e.getUnits();if(p(i),n&&(i.length===0||!t))return n.activeModelId;if(n&&t&&n.scoopJid===t){let e=ln(n.activeModelId);return e&&r.set(t,e),n.activeModelId}let a=Rn(i,t,t?r.get(t):void 0);return t&&a&&r.set(t,a),a?un(a):void 0},h=()=>{let r=m(),a=r?t.find(e=>e.modelId===r):void 0;if(!i||!n||!a){e.composerMeta.style.display=`none`,d();return}e.composerMeta.model=a.modelName,e.composerMeta.setAttribute(`thinking`,Fc(n.thinkingLevel,n.effortOverride)),e.composerMeta.toggleAttribute(`no-thinking`,!a.reasoning),e.composerMeta.style.removeProperty(`display`),f()},g=t=>{e.interceptLocalHandlers&&t.stopImmediatePropagation()},_=t=>{let i=e.getSync();if(!i)return;g(t);let a=t.detail?.id,o=e.getSelectedScoopJid()??n?.scoopJid,s=a?ln(a):null;s&&o?(r.set(o,s),e.setModel(o,s)):a&&i.selectModel(a,o??void 0),h()};e.composerMeta.addEventListener(`model-change`,_,{capture:e.interceptLocalHandlers});let v=t=>{let r=e.getSync();if(!r)return;if(g(t),e.getLockedEffortLevel?.()){h();return}let i=t.detail?.thinking,a=Nc(i),o=e.getSelectedScoopJid()??n?.scoopJid;o&&a&&a!==`max`&&r.setThinkingLevel(o,a,Pc(i)),h()};e.composerMeta.addEventListener(`thinking-change`,v,{capture:e.interceptLocalHandlers});let y=()=>{t=[],n=null,r.clear(),f(),e.composerMeta.models=[],e.composerMeta.style.display=`none`};return y(),{onModelsList(n){t=n,e.composerMeta.models=n.map(e=>({id:e.modelId,name:e.modelName,provider:e.providerName})),h()},onModelState(e){n=e,h()},onShownUnitChanged(){h()},reset:y,dispose(){e.composerMeta.removeEventListener(`model-change`,_,{capture:e.interceptLocalHandlers}),e.composerMeta.removeEventListener(`thinking-change`,v,{capture:e.interceptLocalHandlers}),y(),e.composerMeta.style.removeProperty(`display`)}}}async function Bc(e,t,n,r,i=Oc){let a=await e.setScoopThinkingLevel(t,n,r);return a&&i(),a}function Vc(e,t){return Bn(e)===null||new URL(t.location.href).searchParams.get(`cherry`)===`1`||ht(t.localStorage)}async function Hc(e,t,n,r,a){let o=Ln(t),c=Gn(o);e.thread.setAttribute(`context`,Kn(t));let l=zn(t),u=s({isRoot:l,name:t.name});e.thread.setAttribute(`accent`,u),e.switcher.setAttribute(`active`,t.id),oe(e,l?{kind:`cone`}:{kind:`scoop`,accent:u}),ne(e,c);let d=localStorage.getItem(`slicc_locked_effort_level`),f=r?.(t.id);if(f||d){let t=f?on(f):{};e.composerMeta.setAttribute(`thinking`,Fc(d??t.level,t.effortOverride))}if(!a?.skipModelPill)try{let{resolveCurrentModel:r,resolveModelById:a}=await i(async()=>{let{resolveCurrentModel:e,resolveModelById:t}=await import(`./main-CslAwAF2.js`).then(e=>e.i);return{resolveCurrentModel:e,resolveModelById:t}},__vite__mapDeps([53,1,54,8,9,10,11,2,12,13,14,15,16,3,17,18,5,19,20,21,22,23,24,25,26,27,28,6,7,29,30,31,32,33,35,55,56])),o=Rn(n,t.id),s=o?a(o.id,o.provider):r();e.composerMeta.setAttribute(`model`,s.name??s.id),e.composerMeta.toggleAttribute(`no-thinking`,s.reasoning!==!0||!!d)}catch{}}async function Uc(e){if(Vc(e.pendingUrlContext,e.win))return;let t=Bn(e.pendingUrlContext);if(t===null)return;let[{CanonicalSessionReader:n},{WorkUnitConversationStore:r}]=await Promise.all([i(()=>Promise.resolve().then(()=>er),void 0),i(()=>Promise.resolve().then(()=>mr),void 0)]),a=await new n(new r).loadRootChatSession(t);a&&a.messages.length>0&&!e.hasSelection()&&(e.loadMessages(a.messages),e.onHydrated())}function Wc(e){let{boot:t,client:n,openReader:r,log:a}=e,{refs:o}=t;i(async()=>{let{createPlaceholderRefresher:e}=await import(`./wc-placeholder-CegeCuXU.js`);return{createPlaceholderRefresher:e}},__vite__mapDeps([57,2,0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38])).then(({createPlaceholderRefresher:n})=>{e.setRefreshPlaceholder(n({inputCard:o.inputCard,getMessages:()=>t.getController()?.getMessages()??[],defaultPlaceholder:o.inputCard.getAttribute(`placeholder`)??`Ask sliccy, or describe a change…`}))}),Uc({pendingUrlContext:t.wiring.pendingUrlContext,win:window,hasSelection:()=>!!t.getSelected(),loadMessages:e=>t.getController()?.loadMessages(e),onHydrated:e.triggerPlaceholder}).catch(e=>a.warn(`WC session hydration failed`,e));let s=null;return i(async()=>{let{wireWcAttach:e}=await import(`./wc-attach-Cz4Segxp.js`);return{wireWcAttach:e}},__vite__mapDeps([58,2,5,59])).then(({wireWcAttach:t})=>{s=t({inputCard:o.inputCard,freezer:o.freezer,composer:o.composer,openReader:r,openWriter:e.openWriter,secretEntry:!0,listConversations:async()=>{let{readSessionsIndex:e}=await i(async()=>{let{readSessionsIndex:e}=await Promise.resolve().then(()=>Hi);return{readSessionsIndex:e}},void 0);return(await e(await r())).map(e=>({id:e.filename,label:e.title,sub:`${e.messageCount} turns`}))},log:a})}).catch(e=>a.error(`WC add-menu wiring failed`,e)),i(async()=>{let{wireWcHistoryNav:e}=await import(`./wc-history-nav-C5w8ianG.js`);return{wireWcHistoryNav:e}},[]).then(({wireWcHistoryNav:e})=>e({thread:o.thread,inputCard:o.inputCard})).catch(e=>a.error(`WC history nav wiring failed`,e)),o.composerMeta.addEventListener(`thinking-change`,e=>{if(localStorage.getItem(`slicc_locked_effort_level`))return;let r=e.detail?.thinking,i=Nc(r),o=Pc(r),s=t.getSelected();s&&i&&Bc(n,s.id,i,o).catch(e=>a.warn(`local thinking update failed`,e))}),{getAttachStage:()=>s}}var Gc=`slicc:leader-run-new-session`,Kc=`slicc:leader-broadcast-snapshot`;function qc(e){if(!(!e.cone||e.cone===`cone`))return e.coneLabel||e.cone.replace(/^cone-/,``)}function Jc(e){let t=`${new Date(e.frozenAt).toLocaleDateString(void 0,{month:`short`,day:`numeric`})} · ${e.messageCount} turns`;return e.live?`${t} · in progress`:t}function Yc(e,t={}){let n=document.createElement(`slicc-freezer-card`);return n.setAttribute(`title`,e.title),n.setAttribute(`meta`,Jc(e)),n.setAttribute(`slug`,e.filename),e.icon&&n.setAttribute(`icon`,e.icon),t.deletable&&!e.live&&n.setAttribute(`deletable`,``),n}async function Xc(e){let t=new Map;for(let n of e.entries){if(n.icon||n.pendingEnrichment)continue;let r=await e.pickIcon(`"${n.title}" — an archived chat session`);r&&t.set(n.filename,r)}if(t.size!==0&&await E(async()=>{let n=await Zc(e.reader);if(n===null||n.length===0)return!1;let r=n.map(e=>{let n=!e.icon&&t.has(e.filename)?t.get(e.filename):void 0;return n?{...e,icon:n}:e});return await e.writer.writeFile(`/sessions/index.json`,JSON.stringify(r,null,2)),!0}))for(let n of e.freezer.querySelectorAll(`slicc-freezer-card`)){let e=t.get(n.getAttribute(`slug`)??``);e&&!n.hasAttribute(`icon`)&&n.setAttribute(`icon`,e)}}async function Zc(e){let t=await Qc(e);return t.kind===`ok`?t.entries:t.kind===`missing`?[]:null}async function Qc(e){let t;try{let n=await e.readFile(D,{encoding:`utf-8`});t=typeof n==`string`?n:new TextDecoder().decode(n)}catch(e){return e?.code===`ENOENT`?{kind:`missing`}:{kind:`fault`}}try{let e=JSON.parse(t);return Array.isArray(e)?{kind:`ok`,entries:e}:{kind:`corrupt`}}catch{return{kind:`corrupt`}}}async function $c(e){let t;try{t=(await e.readDir(`/sessions`)).filter(e=>e.type===`file`&&e.name.endsWith(`.md`)).map(e=>e.name)}catch{return[]}let n=[];for(let r of t)try{let t=await e.readFile(`/sessions/${r}`,{encoding:`utf-8`}),i=typeof t==`string`?t:new TextDecoder().decode(t);n.push(tl(r,i))}catch{}return n.sort((e,t)=>t.frozenAt.localeCompare(e.frozenAt)),n}function el(e,t){return E(async()=>{let n=await Qc(e);if(n.kind===`ok`)return n.entries;if(n.kind!==`corrupt`)return null;let r=await $c(e);return r.length===0?null:(await t.writeFile(D,JSON.stringify(r,null,2)),r)})}function tl(e,t){let n=t.slice(0,2e3),r=/^title:\s*"?(.*?)"?\s*$/m.exec(n)?.[1]??e,i=/^frozenAt:\s*"?(.*?)"?\s*$/m.exec(n)?.[1]??new Date(0).toISOString(),a=Number(/^messageCount:\s*(\d+)\s*$/m.exec(n)?.[1]??0),o=Re(t),s=e.startsWith(`pending-`)||e.startsWith(`live-`)&&!o.live;return{filename:e,title:r,frozenAt:i,messageCount:a,...o.cost?{cost:o.cost}:{},...o.models?{models:o.models}:{},...o.cone?{cone:o.cone}:{},...o.coneLabel?{coneLabel:o.coneLabel}:{},...o.memorySkipped?{memorySkipped:!0}:{},...o.live?{live:!0}:{},...o.live&&o.liveThrough?{liveThrough:o.liveThrough}:{},...o.live&&o.compactions?{compactions:o.compactions}:{},...o.curatedThrough?{curatedThrough:o.curatedThrough}:{},...o.sessionId?{sessionId:o.sessionId}:{},...s?{pendingEnrichment:!0}:{}}}function nl(e,t,n={}){for(let t of Array.from(e.querySelectorAll(`slicc-freezer-card`)))t.remove();e.append(...t.map(e=>Yc(e,n)))}async function rl(e,t){let n=await e.readFile(Ve(t),{encoding:`utf-8`}),r=typeof n==`string`?n:new TextDecoder().decode(n),i=await yn(e,r,t.filename);return{title:i.title||t.title,messages:i.messages}}var il=`Couldn't delete everything — try again.`;function al(e,t){let n=e.createElement(`p`);return n.textContent=`“${t}” and its transcript will be deleted. Memories already learned from it are kept.`,n.style.cssText=`font-size:0.875rem;margin:0;`,n}function ol(e){let t=e.parentElement?.querySelector(`[data-freezer-delete-error]`);t||(t=e.ownerDocument.createElement(`p`),t.setAttribute(`data-freezer-delete-error`,``),t.setAttribute(`role`,`alert`),t.style.cssText=`font-size:0.8125rem;margin:0.5rem 0 0;color:var(--s2-negative-color, #d23);`,e.after(t)),t.textContent=il}function sl(e,t){let n=e.ownerDocument;n.activeElement&&n.activeElement!==n.body||Array.from(e.querySelectorAll(`slicc-freezer-card`)).find(e=>e.getAttribute(`slug`)===t)?.querySelector(`.slicc-fzcard__delete`)?.focus()}function cl(e){return e.sessionId?{filename:e.filename,sessionId:e.sessionId}:{filename:e.filename}}function ll(e){let t=e.freezer.ownerDocument,n=null,r=new Set,a=()=>{if(!n)return;let{slug:t,dialog:r}=n;n=null,r.hide?.(),r.remove(),sl(e.freezer,t)},o=async(t,o,s)=>{let c=Array.from(o.querySelectorAll(`button[slot="footer"]`));for(let e of c)e.disabled=!0;r.add(t.filename);try{let{writer:r}=await e.openVfs(),{deleteFrozenSession:s}=await i(async()=>{let{deleteFrozenSession:e}=await import(`./frozen-session-delete-D3Nn1hnH.js`);return{deleteFrozenSession:e}},__vite__mapDeps([60,3,47,1,0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,48,49,52,61,62,63,64])),c=await s(r,cl(t));if(c.status===`failed`)throw Error(c.errors.join(`; `));c.status===`deleted`?e.isViewing(t)&&e.leaveViewed(t):e.log.warn(`WC frozen chat delete skipped`,{filename:t.filename,...c}),n?.dialog===o&&a(),e.refreshFreezer()}catch(t){e.log.error(`WC frozen chat delete failed`,t),ol(s);for(let e of c)e.disabled=!1}finally{r.delete(t.filename)}},s=i=>{if(n?.slug===i||r.has(i))return;let s=e.getEntries().find(e=>e.filename===i);if(!s||s.live)return;a();let c=al(t,s.title),l=yc(t,{heading:`Delete frozen chat?`,body:c,actions:[{text:`Delete`,style:gc,data:`delete`,onClick:()=>void o(s,l,c)},{text:`Cancel`,style:_c,data:`cancel`,onClick:a}],onDismiss:t=>{n?.dialog===t&&(n=null),t.remove(),sl(e.freezer,i)}});n={slug:i,dialog:l},t.body.append(l),l.show?.()};return e.freezer.addEventListener(`freezer-card-delete`,e=>{let t=e.detail?.slug;t&&s(t)}),{dialog:()=>n?.dialog??null}}async function ul(e,t,n){let{getTranscriptExportService:r}=await i(async()=>{let{getTranscriptExportService:e}=await Promise.resolve().then(()=>Tr);return{getTranscriptExportService:e}},void 0);await r().captureFrozen({sessionId:t.sessionId??t.archive.sessionId??t.filename.replace(/\.md$/i,``),title:t.archive.title,frozenAt:t.archive.frozenAt,createdAt:t.archive.createdAt,updatedAt:t.archive.updatedAt,...e?{rootJid:e.jid}:{}},n)}function dl(e,t){if(t)return e.getScoops().find(e=>e.jid===t.id)}function fl(e){return{folder:e.folder,label:Vn({assistantLabel:e.assistantLabel,name:e.name,role:j(e)?`primary`:`child`}),jid:e.jid}}async function pl(e){let{root:t}=e,n=t?fl(t):void 0,r=(e,n)=>ul(t,e,n),a=t=>{i(async()=>{let{notifyGelatiereOfSessionEnd:e}=await import(`./wc-gelatiere-D-U3dAxD.js`);return{notifyGelatiereOfSessionEnd:e}},__vite__mapDeps([65,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38])).then(({notifyGelatiereOfSessionEnd:r})=>r({client:e.client,vfs:e.writer,log:e.log,cone:n,archive:t?.filename})).catch(t=>e.log.warn(`gelatiere notification failed to load`,t))};if(e.action!==`save`){await e.runNewSessionFreezeQuick({vfs:e.writer,cone:n,captureCompleteSnapshot:r,onSessionSettled:a});return}await e.runNewSessionFreeze({vfs:e.writer,cone:n,agenticMemorySpawn:t=>e.client.spawnAgent(t),captureCompleteSnapshot:r,onSessionSettled:a,onProgress:t=>{let n=e.freezerNew();n&&(t===null?n.removeAttribute(`progress`):n.setAttribute(`progress`,String(t)))},onBackgroundEnriched:e.refreshFreezer})}async function ml(e,t){e!==`erase`&&await pl({...t,action:e})}async function hl(e){try{await e.resetNewSessionTmp(e.writer,e.tmpDir)}catch(t){e.log.warn(`WC new session /tmp reset failed — clearing anyway`,t)}await e.client.clearAllMessages(e.root?.jid,e.discardLiveSnapshot?{discardLiveSnapshot:!0}:{}),e.getController()?.loadMessages([]),window.dispatchEvent(new CustomEvent(Kc)),i(async()=>{let{resetDictationPriming:e}=await import(`./wc-shell-CuOqCSKv.js`).then(e=>e.rt);return{resetDictationPriming:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38])).then(({resetDictationPriming:e})=>e()).catch(()=>void 0)}function gl(e,t){(e.thread.inner??e.thread).prepend(_l(e.thread.ownerDocument,t)),e.thread.setAttribute(`accent`,se),oe(e,{kind:`freezer`}),e.inputCard.setAttribute(`disabled`,``),e.switcher.removeAttribute(`active`)}function _l(e,t){let n=t?qc(t):void 0,r=e.createElement(`slicc-day-separator`);return r.setAttribute(`label`,n?`Frozen chat · from cone ${n}`:`Frozen chat`),r.setAttribute(`data-frozen-provenance`,n??``),r}async function vl(e,t,n){let r=await Zc(e);return r===null?(await Qc(e)).kind===`corrupt`?(n.warn(`WC freezer index corrupt — rebuilding from archives`),el(e,t)):null:r}function yl(e,t,n){e.busy||!n.some(e=>!e.icon&&!e.pendingEnrichment)||(e.busy=!0,i(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-CcF7noc9.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([50,1,9,10,11,2,12,13,14,15,3,7,8,16,17,18,5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,51,37])).then(({pickLucideIcon:e})=>Xc({reader:t.reader,writer:t.writer,freezer:t.freezer,entries:n,pickIcon:t=>e({subject:t})})).catch(e=>t.log.warn(`WC freezer icon enrichment failed`,e)).finally(()=>{e.busy=!1}))}function bl(e,t,n){let r=e.getAttribute(`context`)??``;return r===`freezer:${t.filename}`||r.startsWith(`freezer:`)&&!!t.sessionId&&!_n(t.sessionId)&&n===t.sessionId}function xl(e){let{refs:t,openVfs:n,client:r,getController:a,getSelected:o,clearSelection:s,log:c}=e,l=[],u=null,d=t=>{u=null,e.selectScoop(t)},f=0,p={busy:!1},m=()=>{let e=++f;n().then(async({reader:n,writer:r})=>{let i=await vl(n,r,c);i!==null&&e===f&&(l=i,nl(t.freezer,i,{deletable:!0}),yl(p,{reader:n,writer:r,freezer:t.freezer,log:c},i))}).catch(e=>c.error(`WC freezer refresh failed`,e))},h=!1,g=()=>t.freezer.querySelector(`slicc-freezer-new`),_=t=>{h||(h=!0,g()?.setAttribute(`busy`,``),(async()=>{let s=dl(r,Un(e.getUnits(),o()));try{let{writer:o}=await n(),{resetNewSessionTmp:l,runNewSessionFreeze:u,runNewSessionFreezeQuick:f}=await i(async()=>{let{resetNewSessionTmp:e,runNewSessionFreeze:t,runNewSessionFreezeQuick:n}=await import(`./new-session-Dp8xDbm-.js`);return{resetNewSessionTmp:e,runNewSessionFreeze:t,runNewSessionFreezeQuick:n}},__vite__mapDeps([66,2,3,17,7,8,1,9,10,11,12,13,14,15,16,18,5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,53,54,6,35,55,56,51,60,47,0,4,34,36,37,38,48,49,52,61,62,63,64]));await ml(t,{writer:o,root:s,client:r,freezerNew:g,refreshFreezer:m,runNewSessionFreeze:u,runNewSessionFreezeQuick:f,log:c}),await hl({writer:o,root:s,client:r,getController:a,log:c,resetNewSessionTmp:l,tmpDir:fn(r.getScoops(),s),discardLiveSnapshot:t===`erase`}),m();let p=e.getUnits().find(e=>e.id===s?.jid)??Hn(e.getUnits());p&&d(p)}catch(e){c.error(`WC new session failed`,e)}finally{h=!1;let e=g();e?.removeAttribute(`busy`),e?.removeAttribute(`progress`)}})())};for(let e of[`save`,`skip`,`erase`])t.freezer.addEventListener(`new-chat-${e}`,()=>_(e));let v=async e=>{let{writer:t}=await n(),{runNewSessionArchiveOnly:r}=await i(async()=>{let{runNewSessionArchiveOnly:e}=await import(`./new-session-Dp8xDbm-.js`);return{runNewSessionArchiveOnly:e}},__vite__mapDeps([66,2,3,17,7,8,1,9,10,11,12,13,14,15,16,18,5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,53,54,6,35,55,56,51,60,47,0,4,34,36,37,38,48,49,52,61,62,63,64]));await r({vfs:t,cone:fl(e),captureCompleteSnapshot:(t,n)=>ul(e,t,n)}),m()};he(`agentic-memory`)&&g()?.setAttribute(`no-skip`,``),window.addEventListener(Gc,e=>{let t=e.detail?.action;(t===`save`||t===`skip`||t===`erase`)&&_(t)});let y=async r=>{let i=l.find(e=>e.filename===r);try{let{reader:o}=await n();i||=(await Zc(o)??[]).find(e=>e.filename===r);let{messages:c}=await rl(o,i??{filename:r,title:r,frozenAt:``,messageCount:0});t.thread.setAttribute(`context`,`freezer:${i?.filename??r}`),u=i?.sessionId??i?.filename??null,e.holdQueuedPile(),a()?.loadMessages(c),gl(t,i),s()}catch(t){if(c.error(`WC thaw failed`,t),!o()){let t=Fn(e.getUnits(),i?.cone);t&&d(t)}}};return t.freezer.addEventListener(`freezer-card-select`,e=>{let t=e.detail?.slug;t&&y(t)}),ll({freezer:t.freezer,openVfs:n,getEntries:()=>l,isViewing:e=>bl(t.thread,e,u),leaveViewed:t=>{a()?.loadMessages([]),u=null;let n=Fn(e.getUnits(),t.cone);n&&d(n)},refreshFreezer:m,log:c}),{refreshFreezer:m,openFrozen:y,getViewedFrozenSessionId:()=>u,freezeCone:v}}a(`scoops.tray-leave`),a(`scoops.tray-join`);var Sl=null;function Cl(e){Sl=e}function wl(){return Sl?.()??[]}var Tl=null;function El(e){Tl=e}function Dl(){return Tl??void 0}var Ol=`slicc.leaderTrayFollowers`;function kl(){return Al()}function Al(){if(Sl)return Sl();try{let e=globalThis.localStorage?.getItem(Ol);if(e)return JSON.parse(e)}catch{}return[]}function jl(e,t=globalThis.localStorage){try{t?.setItem(Ol,JSON.stringify(e))}catch{}}function Ml(e){try{let t=JSON.parse(e);return{processes:(t.processes??[]).filter(e=>e.status===`running`||e.status===`pending`).map(e=>({pid:Number(e.pid??0),argv:String(e.argv??``),status:String(e.status??`unknown`)})),terminated:Number(t.stats?.terminated??0)}}catch{return{processes:[],terminated:0}}}function Nl(e){let t=ft();if(t.state!==`inactive`)return{role:`follower`,state:t.state,joinUrl:t.joinUrl,sessionId:t.trayId,workerBaseUrl:mt(t.joinUrl)?.workerBaseUrl??null,stalled:t.stalled};let n=en();if(n.state!==`inactive`)return{role:`leader`,state:n.state,joinUrl:n.session?.joinUrl,sessionId:n.session?.trayId,workerBaseUrl:n.session?.workerBaseUrl};let r=null;try{r=_t(e.getItem(pt))}catch{}return{role:`standalone`,state:`inactive`,workerBaseUrl:r}}function Pl(e){let{client:t,openReader:n,storage:r}=e;return{getScoops:()=>t.getScoops(),isProcessing:e=>t.isProcessing(e),getCronTasks:async()=>{let{getAllCronTasks:e}=await i(async()=>{let{getAllCronTasks:e}=await import(`./tray-leader-DhQw8Vyo.js`).then(e=>e.o);return{getAllCronTasks:e}},__vite__mapDeps([67,1,3,19,20,21,53,54,8,9,10,11,2,12,13,14,15,16,17,18,5,22,23,24,25,26,27,28,6,7,29,30,31,32,33,35,55,56]));return e()},getWebhooks:async()=>{let{getAllWebhooks:e}=await i(async()=>{let{getAllWebhooks:e}=await import(`./tray-leader-DhQw8Vyo.js`).then(e=>e.o);return{getAllWebhooks:e}},__vite__mapDeps([67,1,3,19,20,21,53,54,8,9,10,11,2,12,13,14,15,16,17,18,5,22,23,24,25,26,27,28,6,7,29,30,31,32,33,35,55,56]));return e()},getMounts:async()=>{let{getAllMountEntries:e,loadMountHandle:t}=await i(async()=>{let{getAllMountEntries:e,loadMountHandle:t}=await import(`./mount-table-store-dY2IfQ5S.js`).then(e=>e.r);return{getAllMountEntries:e,loadMountHandle:t}},__vite__mapDeps([68,1])),n=await e();return Promise.all(n.map(async e=>{if(e.descriptor.kind!==`local`)return e;try{let n=await(await t(e.descriptor.idbHandleKey))?.queryPermission?.({mode:`readwrite`});return{...e,valid:n===`granted`}}catch{return{...e,valid:!1}}}))},getMcpServers:async()=>{try{let e=await(await n()).readFile(`/workspace/.mcp/servers.json`,{encoding:`utf-8`});return JSON.parse(typeof e==`string`?e:new TextDecoder().decode(e)).servers??{}}catch{return{}}},getOAuthProviders:()=>{try{let e=new Set,t=[];for(let n of ke()){if(e.has(n.providerId))continue;if(e.add(n.providerId),!Ae(n.providerId)?.isOAuth){t.push({providerId:n.providerId});continue}let r=Oe(n.providerId),i=n.loggedOut?!1:r?!r.expired:!1;t.push({providerId:n.providerId,valid:i})}return t}catch{return[]}},getSessionStats:async()=>t.getSessionStats?.()??null,getProcesses:async()=>{try{let e=await(await n()).readFile(`/proc/table`,{encoding:`utf-8`});return Ml(typeof e==`string`?e:new TextDecoder().decode(e))}catch{return{processes:[],terminated:0}}},getTrayInfo:()=>Nl(r),getConnectedFollowers:wl}}var Fl=`sync-fs-nonce`;function Il(e={}){let t=e.navigator??(typeof navigator<`u`?navigator:void 0),n=e.document??(typeof document<`u`?document:void 0),r=e.window??(typeof window<`u`?window:void 0),i=e.randomUUID??(()=>crypto.randomUUID()),a=!!t?.serviceWorker?.controller,o=a?i():void 0;if(!o||!t?.serviceWorker)return{syncFsBridgeEnabled:a,syncFsChannelNonce:o};let s=t.serviceWorker,c={type:Fl,nonce:o},l=()=>s.controller?.postMessage(c);return l(),s.addEventListener(`controllerchange`,l),s.addEventListener(`message`,e=>{e.data?.type===`sync-fs-need-nonce`&&l()}),n?.addEventListener(`visibilitychange`,()=>{n.visibilityState===`visible`&&l()}),r?.addEventListener(`focus`,l),{syncFsBridgeEnabled:a,syncFsChannelNonce:o}}var Ll=class{#e=new Map;#t=new Map;#n=new Map;sync(e,t){let n=new Set;for(let r of e){if(!zn(r))continue;n.add(r.id);let e=this.#r(r);e>0&&r.id!==t&&this.#e.set(r.id,(this.#e.get(r.id)??0)+e)}t&&this.#e.delete(t);for(let e of[...this.#e.keys()])n.has(e)||this.#e.delete(e);for(let e of[...this.#t.keys()])n.has(e)||this.#t.delete(e);for(let e of[...this.#n.keys()])n.has(e)||this.#n.delete(e);return this.counts()}#r(e){let t=this.#t.get(e.id),n=this.#t.has(e.id);if(this.#t.set(e.id,e.state),typeof e.turns==`number`&&Number.isFinite(e.turns)){let t=this.#n.get(e.id)??(n?0:void 0);return this.#n.set(e.id,e.turns),t===void 0?0:e.turns>t?Math.floor(e.turns-t):0}return this.#n.delete(e.id),n&&t===`working`&&e.state!==`working`?1:0}counts(){return new Map(this.#e)}};function Rl(e,t){let n=e=>{t.onError?.(e instanceof Error?e.message:String(e))};return{sendMessage:(r,i,a,o)=>{let s=t.getSelectedId();if(!s){t.onError?.(`No scoop selected`);return}e.send(s,{text:r,...i?{messageId:i}:{},...a?{attachments:a}:{},...o?.steer?{steer:!0}:{},...o?.guestGate?{guestGate:o.guestGate}:{}}).catch(n)},onEvent:e=>t.onEvent(e),stop:()=>{let r=t.getSelectedId();r&&e.signal(r,`stop`).catch(n)}}}var zl=`question`;function Bl(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone||void 0}catch{return}}function Vl(e,t,n){let r=e=>{let r=e.detail;if(!r||typeof r.answer!=`string`)return;let{question:i,kind:a,answer:o}=r,s=a===`datetime`||a===`date`?Bl():void 0;t(zl,{action:`answer`,data:{question:i,kind:a,answer:o,...s?{timeZone:s}:{}}},void 0,n()??void 0)};return e.addEventListener(te,r),()=>e.removeEventListener(te,r)}var Hl=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>`;function Ul(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.role===`assistant`&&!n.isStreaming&&!n.queued)return n.content}for(let t=e.length-1;t>=0;t--)if(e[t].role===`assistant`)return e[t].content;return null}function Wl(e){let t=e.writeText??(e=>navigator.clipboard.writeText(e)),n=document.createElement(`div`);n.className=`wc-copy-row`,n.style.cssText=`display:flex;justify-content:flex-start;margin:-8px 0 14px;`;let r=document.createElement(`slicc-press-button`);r.setAttribute(`tooltip`,`Copy last response · hold to copy chat`),r.setAttribute(`label`,`Copy last response — hold to copy entire chat`),r.setAttribute(`disable-double-click`,``),r.style.cssText=`color:var(--txt-3);cursor:pointer;display:inline-flex;`;let i=document.createRange();r.append(i.createContextualFragment(Hl));let a=()=>{r.style.color=`var(--green)`,setTimeout(()=>{r.style.color=`var(--txt-3)`},1500)};return r.addEventListener(`short-click`,()=>{(async()=>{let n=Ul(e.getMessages());await t(n??Xe([...e.getMessages()])),a()})()}),r.addEventListener(`long-press`,()=>{(async()=>{let n=Xe([...e.getMessages()]);n&&(await t(n),a())})()}),n.append(r),n}function $(){return`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function Gl(e){try{let t=new DOMParser().parseFromString(e,`text/html`).querySelector(`.sprinkle-action-card__header`);if(t){t.querySelector(`.sprinkle-badge`)?.remove(),t.querySelector(`.sprinkle-action-card__meta`)?.remove();let e=t.textContent?.trim();if(e)return e}}catch{}return`Approval requested`}function Kl(e){return`
|
|
244
|
-
<div class="sprinkle-action-card">
|
|
245
|
-
<div class="sprinkle-action-card__header">${Ut(Gl(e))} <span class="sprinkle-badge sprinkle-badge--informative">pending</span></div>
|
|
246
|
-
<div class="sprinkle-action-card__body">Waiting for approval on the leader…</div>
|
|
247
|
-
</div>
|
|
248
|
-
`}function ql(e){let t={id:e.id,text:e.content};return e.attachments?.length&&(t.attachments=e.attachments.length),t}var Jl=class e{#e;#t;#n;#r;#i;#a=null;#o;#s;#c;#l;#u;#d;#f;#p;#m;#h;#g;#_;#v;#y=[];#b=[];#x=null;#S=new Map;#C=null;#w=null;#T=``;#E=null;#D=null;#O=!1;#k=`thinking`;#A=0;#j=null;#M=new Set;#N=new Map;#P=new Map;#F=new Set;#I=!1;#L=null;constructor(e){this.#e=e.thread,this.#t=e.agent,this.#n=e.onProcessingChange,this.#r=e.onBusyPhaseChange,this.#i=e.onToolProgressChange,this.#o=e.onMessageRendered,this.#s=e.onMessageDisposed,this.#c=e.onTurnComplete,this.#l=e.resolveTelemetryContext,this.#u=e.onQueuedChange,this.#d=e.onLickBackpressureChange,this.#f=e.onQueuedCancel,this.#p=e.onToolUiAction,this.#m=e.readOnlyToolUi??!1,this.#h=e.agent.onEvent(e=>this.#J(e)),this.#v=e=>this.#ge(e),this.#e.addEventListener(`slicc-error-retry`,this.#v)}dispose(){this.#h(),this.#e.removeEventListener(`slicc-error-retry`,this.#v);for(let e of[...this.#N.keys()])this.#he(e);this.#P.clear(),this.#F.clear(),this.#me()}setReadOnly(e){if(this.#I!==e&&(this.#I=e,e))for(let e of[...this.#N.keys()])this.#he(e)}get readOnly(){return this.#I}get processing(){return this.#O}getMessages(){return this.#y.map(e=>({...e}))}setAgent(e){this.#h(),this.#t=e,this.#h=e.onEvent(e=>this.#J(e))}setOnLocalUserMessage(e){this.#g=e}setOnLocalProcessingChange(e){this.#_=e}addUserMessage(e,t,n){this.#ye({id:$(),role:`user`,content:e,timestamp:Date.now(),...n?{source:n}:{}})}getQueuedMessages(){return this.#b.map(ql)}removeQueuedMessage(e){let t=this.#b.filter(t=>t.id!==e);t.length!==this.#b.length&&(this.#b=t,this.#B())}stashQueued(){let e=this.#L??[];this.#L=null;let t=this.#b;return t.length===0?e:(this.#b=[],this.#B(),[...e,...t])}restoreQueued(e){this.#L=e.length>0?[...e]:null}heldBackendPendingIds(e){if(!this.#L||!e?.length)return new Set;let t=new Set(e);return new Set(this.#L.filter(e=>t.has(e.id)).map(e=>e.id))}#R(e,t){if(!this.#L)return;let n=this.heldBackendPendingIds(t),r=new Set(e.map(e=>e.id)),i=this.#L.filter(e=>!r.has(e.id)||n.has(e.id));if(this.#L=null,i.length===0)return;if(!t){this.#b=i,this.#B();return}let a=new Map(t.map((e,t)=>[e,t])),o=i.filter(e=>a.has(e.id)).sort((e,t)=>(a.get(e.id)??0)-(a.get(t.id)??0)),s=i.filter(e=>!a.has(e.id));if(this.#b=this.#O?o:[...o,...s],this.#B(),this.#O)for(let e of s)this.#ye(e)}#z(){if(this.#b.length===0)return;let e=this.#b;this.#b=[];for(let t of e)this.#ye(t);this.#B()}#B(){this.#u?.(this.#b.map(ql))}#V(){this.#d?.(this.#x)}setLickBackpressure(e,t,n){if(e<=0){if(!this.#x)return;this.#x=null,this.#V();return}this.#x={text:`${e} events waiting for the current turn`},this.#V();try{it(n,t)}catch{}}addAssistantMessage(e){this.#ye({id:$(),role:`assistant`,content:e,timestamp:Date.now()})}loadMessages(e,t){for(let e of this.#S.keys())this.#s?.(e);for(let e of[...this.#N.keys()])this.#he(e);this.#P.clear(),this.#F.clear(),this.#me();let n=this.#b.length>0;if(this.#b.length>0){if(this.#f)for(let e of this.#b)try{this.#f(e.id)}catch(e){console.error(`onQueuedCancel hook threw`,e)}this.#b=[]}n&&this.#B();let r=this.heldBackendPendingIds(t),i=r.size>0?e.filter(e=>!r.has(e.id)):e;this.#y=pe(i);let a=[...this.#y].reverse().find(e=>e.isStreaming);this.#C=a?.id??null,a&&(this.#w=a.id),this.#Q(),this.#S.clear();let o=[],s=``;for(let e of this.#y){let t=new Date(e.timestamp).toDateString();t!==s&&(o.push(m(e.timestamp)),s=t);let n=this.#ve(e);this.#S.set(e.id,n),o.push(...n)}let c=this.#e;typeof c.replaceContent==`function`?c.replaceContent(...o):c.replaceChildren(...o),this.#Ce();for(let e of this.#y)this.#o?.(e,this.#S.get(e.id)??[]);this.#q(),this.#Te(),this.#H(),this.#R(e,t)}#H(){if(this.#e.getAttribute(`context`)!==`cone`||this.#y.length===0||!gt()||this.#O)return;let e=this.#y[this.#y.length-1];e.role!==`user`||e.source===`lick`||e.source===`delegation`||e.queued||this.#ge(new Event(`slicc-error-retry`))}sendUserMessage(e,t,n){let r=e.trim();if(!r&&!t?.length)return;let i=n?.dictation?this.#U(r):r,a={id:$(),role:`user`,content:i,timestamp:Date.now(),attachments:t?.length?t:void 0};this.#O&&!n?.steer?(this.#b.push(a),this.#B()):this.#ye(a),n?.steer?this.#t.sendMessage(i,a.id,a.attachments,{steer:!0}):this.#t.sendMessage(i,a.id,a.attachments),this.#W();try{let e=n?.dictation?_(i):i;this.#g?.(e,a.id,a.attachments)}catch(e){console.error(`onLocalUserMessage hook threw`,e)}}#U(e){return ce(e,re())}#W(){if(this.#l)try{let e=this.#l();if(!e)return;st(e.scoopName,e.model)}catch{}}addLickMessage(e,t,n,r,i){let a=this.#y[this.#y.length-1];if(!(i||a?.lickId)&&a&&a.source===`lick`&&a.channel===n){a.lickParts=[...a.lickParts??[a.content],t],a.lickCount=a.lickParts.length,a.content+=`\n\n${t}`,this.#be(a);return}this.#ye({id:e,role:`user`,content:t,timestamp:r,source:`lick`,channel:n,lickId:i,lickState:i?`pending`:void 0,queued:this.#O?!0:void 0})}updateLickState(e,t){let n=this.#y.find(t=>t.lickId===e);n&&(n.lickState=t,this.#be(n))}setProcessing(e){if(this.#O!==e){this.#O=e,e&&(this.#w=null),e&&(this.#A=0,this.#G(`thinking`)),e&&this.#z(),e||(this.#x&&(this.#x=null,this.#V()),this.#q()),this.#n?.(e);try{this.#_?.(e)}catch(e){console.error(`onLocalProcessingChange hook threw`,e)}e||this.#K()}}#G(e){this.#k!==e&&(this.#k=e,this.#r?.(e))}#K(){let e=this.#w;if(this.#w=null,!this.#c)return;let t=e?this.#_e(e):null;this.#c(t?{...t}:null)}#q(){let e=this.#y[this.#y.length-1];if(!(e?.role===`assistant`&&!e.isStreaming)){this.#j?.remove();return}this.#j??=Wl({getMessages:()=>this.getMessages()}),(this.#e.inner??this.#e).append(this.#j)}#J(e){switch(e.type){case`message_start`:this.#Y(e.messageId);break;case`content_delta`:this.#X(e.messageId,e.text);break;case`content_done`:this.#$(e.messageId,e.model,e.usage);break;case`tool_use_start`:this.#te(e.messageId,e.toolName,e.toolInput,e.toolCallId);break;case`tool_result`:this.#re(e.messageId,e.toolName,e.result,e.isError,e.toolCallId);break;case`tool_ui`:this.#le(e.messageId,e.requestId,e.html);break;case`tool_ui_done`:this.#ue(e.requestId);break;case`tool_progress`:this.#de(e.messageId,e.toolName,e.progress,e.toolCallId);break;case`turn_end`:this.#oe(e.messageId);break;case`compaction_notice`:this.#ie(e.messageId,e.marker);break;case`error`:this.#se(e.error,e.endTurn!==!1)}}#Y(e){this.setProcessing(!0),this.#C=e,this.#w=e,this.#ye({id:e,role:`assistant`,content:``,timestamp:Date.now(),isStreaming:!0,toolCalls:[]})}#X(e,t){this.#_e(e)&&(this.#E!==e&&this.#Z(),this.#E=e,this.#T+=t,this.#D??=requestAnimationFrame(()=>this.#Z()))}#Z(){let e=this.#E,t=this.#T;this.#Q();let n=t&&e?this.#_e(e):void 0;n&&(n.content+=t,this.#be(n))}#Q(){this.#D!==null&&cancelAnimationFrame(this.#D),this.#D=null,this.#T=``,this.#E=null}#$(e,t,n){let r=this.#_e(e);r&&(t&&(r.model=t),n&&(r.usage=n),this.#E===e&&(r.content+=this.#T,this.#Q()),r.isStreaming=!1,this.#be(r))}static#ee(e,t){return`${e}:${t}`}#te(t,n,r,i){let a=this.#_e(t);if(!a)return;a.toolCalls=a.toolCalls??[];let o=i?e.#ee(t,i):$();this.#F.add(o),a.toolCalls.push({id:o,name:n,input:r}),this.#A+=1,this.#G(`tool`),this.#be(a)}#ne(t,n,r){let i=t?.toolCalls??[];if(r){let n=t?e.#ee(t.id,r):void 0;return i.find(e=>e.id===n)??i.find(e=>e.id===r)}return[...i].reverse().find(e=>e.name===n&&e.result===void 0)}#re(e,t,n,r,i){let a=this.#_e(e),o=this.#ne(a,t,i);!a||!o||(o.result=n,o.isError=r,o.id&&(this.#P.delete(o.id),this.#me()),this.#A=Math.max(0,this.#A-1),this.#A===0&&this.#G(`thinking`),this.#be(a))}#ie(e,t){let n=this.#_e(e);if(t.state===`discarded`){n&&this.#ae(n);return}if(n){n.compaction=t,this.#be(n);return}this.#ye({id:e,role:`assistant`,content:``,timestamp:Date.now(),compaction:t})}#ae(e){this.#Se(),this.#s?.(e.id);for(let t of this.#S.get(e.id)??[])t.remove();this.#S.delete(e.id),this.#y=this.#y.filter(t=>t!==e),this.#Ce(),this.#pe()}#oe(e){let t=this.#_e(e);t?.isStreaming&&(t.isStreaming=!1,this.#be(t)),this.#C=null,this.setProcessing(!1)}#se(e,t=!0){t&&this.setProcessing(!1),this.#ye({id:$(),role:`assistant`,content:typeof e==`string`?e:ot(e)??``,timestamp:Date.now(),error:!0}),this.#ce(e)}#ce(e){try{let t=typeof e==`string`?e:at(e);if(typeof t==`string`&&ct(t))return;lt(`error-card`,e)}catch{}}#le(e,t,n){if(this.#I)return;this.#he(t);let r=document.createElement(`div`);if(r.className=`msg__dip`,r.setAttribute(`data-tool-ui-request`,t),(this.#e.inner??this.#e).append(r),this.#m){let e=U(r,Kl(n),()=>{},!1);this.#N.set(t,{instance:e,container:r});return}let i=U(r,n,(e,n)=>{this.#p?.(t,e,n)},!1);this.#N.set(t,{instance:i,container:r}),this.#p?.(t,rt,void 0)}#ue(e){this.#he(e)}#de(e,t,n,r){let i=this.#_e(e),a=this.#ne(i,t,r);a?.id&&(n.phase===`end`?this.#P.delete(a.id):this.#P.set(a.id,n),this.#fe(a.id),this.#me())}#fe(e){let t=this.#e.querySelector(`slicc-action-row[data-tool-id="${CSS.escape(e)}"]`);t&&v(t,this.#P.get(e)??null),this.#pe()}#pe(){let e=this.#e.querySelectorAll(`slicc-tool-cluster`);for(let t of e){let e=[...t.querySelectorAll(`slicc-action-row[data-tool-id]`)].filter(e=>e.dataset.toolId&&this.#F.has(e.dataset.toolId)).map(e=>{let t=e.dataset.toolId,n=e.getAttribute(`result`);return{done:n!==null&&n!==`…`,fraction:this.#P.get(t)?.fraction}});me(t,de(e))}}#me(){let e=null,t=[...this.#P.values()];t.length>0&&t.every(e=>typeof e.fraction==`number`)&&(e=t.reduce((e,t)=>e+t.fraction,0)/t.length),e!==this.#a&&(this.#a=e,this.#i?.(e))}#he(e){let t=this.#N.get(e);if(t){this.#N.delete(e);try{t.instance.dispose()}catch{}t.container.remove()}}#ge(e){if(this.#O)return;let t=e.detail?.messageId??null,n=this.#y.length;if(t){let e=this.#y.findIndex(e=>e.id===t);e>=0&&(n=e)}let r=n>0?this.#y[n-1]:void 0;if(r&&r.source===`lick`&&!r.queued){this.#t.sendMessage(r.content,$(),r.attachments);return}let i;for(let e=n-1;e>=0;e--){let t=this.#y[e];if(t.role===`user`&&t.source!==`lick`&&t.source!==`delegation`&&!t.queued){i=t;break}}i&&this.#t.sendMessage(i.content,$(),i.attachments)}#_e(e){return this.#y.find(t=>t.id===e)}#ve(e){try{return c(e,{readOnly:this.#I})}catch(t){console.error(`[wc-chat] message render failed — degrading to plain bubble`,t);let n=document.createElement(e.role===`assistant`?`slicc-agent-message`:`slicc-user-message`);return n.setAttribute(`text`,String(e.content??``)),[n]}}#ye(e){this.#Se(),this.#y.push(e);let t=this.#ve(e);this.#S.set(e.id,t),this.#e.append(...t),this.#Ce(),this.#o?.(e,t),e.role===`user`?this.#Te():this.#Ee()}#be(e){this.#Se();let t=this.#S.get(e.id)??[],n=this.#ve(e),r=t[0]??null,i=r?.parentNode;if(i)for(let e of n)i.insertBefore(e,r);else this.#e.append(...n);this.#S.set(e.id,n),this.#o?.(e,n);for(let e of t)e.remove();for(let t of e.toolCalls??[])t.id&&this.#P.has(t.id)&&this.#fe(t.id);this.#Ce(),this.#pe(),this.#Ee()}#xe(){return this.#e.inner??this.#e}#Se(){h(this.#xe(),this.#M)}#Ce(){fe(this.#xe(),{openClusterAnchors:this.#M,toolCallLookup:(e,t)=>this.#we(e,t)})}#we(e,t){return this.#y.find(t=>t.id===e)?.toolCalls?.find(e=>e.id===t)}#Te(){this.#e.scrollTop=this.#e.scrollHeight}#Ee(){let e=this.#e;typeof e.requestFollow==`function`?e.requestFollow():this.#Te()}};function Yl(e,t,n,r,a,o){let s=new Map;i(async()=>{let{loadDipStyles:e}=await import(`./legacy-styles-B3nS5QUo.js`);return{loadDipStyles:e}},__vite__mapDeps([69,2])).then(({loadDipStyles:e})=>e()).catch(()=>void 0);let c=[];n.subscribeList(e=>{c=e});let l=()=>t.addressableUnitId?t.addressableUnitId():r()?.id??null,u=Rl(n,{getSelectedId:l,onError:e=>t.emitAgentError(e),onEvent:e=>t.onAgentEvent(e)});u.onEvent(t=>{(t.type===`tool_use_start`||t.type===`tool_result`)&&(t.type===`tool_result`&&t.isError&&e.switcher.glower(),i(async()=>{let{playCue:e}=await import(`./soundscape-DRNmNI9R.js`);return{playCue:e}},__vite__mapDeps([70,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38])).then(({playCue:e})=>e(t.type===`tool_use_start`?`tool-start`:`tool-finish`)).catch(()=>void 0))});let d=new Jl({thread:e.thread,agent:u,resolveTelemetryContext:()=>{let e=r();if(!e)return null;let t=Wn(e);try{let n=Rn(c,e.id);return{scoopName:t,model:(n?De(n.id,n.provider):je()).id}}catch{return{scoopName:t,model:``}}},onTurnComplete:e=>{t.speaksReplies&&i(async()=>{let{consumeVoiceSubmission:e,speakReplyMarkdown:t}=await import(`./voice-reply-BDxhQxq3.js`);return{consumeVoiceSubmission:e,speakReplyMarkdown:t}},__vite__mapDeps([71,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,72,73,74,75])).then(async({consumeVoiceSubmission:t,speakReplyMarkdown:n})=>{if(!t())return;let{endVoiceTurn:r,setTtsActive:a}=await i(async()=>{let{endVoiceTurn:e,setTtsActive:t}=await import(`./soundscape-DRNmNI9R.js`);return{endVoiceTurn:e,setTtsActive:t}},__vite__mapDeps([70,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38]));try{if(e?.content){a(!0);try{await n(e.content)}finally{a(!1)}}}finally{r()}}).catch(()=>void 0)},onProcessingChange:t=>{e.frame.toggleAttribute(`data-processing`,t),e.inputCard.querySelector(`slicc-send-button`)?.toggleAttribute(`busy`,t),t||a?.()},onBusyPhaseChange:t=>{e.inputCard.querySelector(`slicc-send-button`)?.setAttribute(`phase`,t)},onToolProgressChange:t=>{let n=e.inputCard.querySelector(`slicc-send-button`);n&&(t===null?n.removeAttribute(`progress`):n.setAttribute(`progress`,t.toFixed(3)))},onMessageDisposed:e=>{let t=s.get(e);t&&(_i(t),s.delete(e))},onMessageRendered:(e,n)=>{let r=s.get(e.id),i=n[0];if(!i){r&&_i(r),s.delete(e.id);return}t.onMessageRendered?.(i);let a=l()??void 0;s.set(e.id,gi(i,(e,n)=>{let r={type:`sprinkle`,sprinkleName:`inline`,timestamp:new Date().toISOString(),body:{action:e,data:n}};o?.intercept?.(r)||t.sendSprinkleLick(`inline`,{action:e,data:n},void 0,a)},{previous:r,streaming:e.isStreaming===!0}))},onQueuedChange:t=>e.queuedStack.setMessages(t),onLickBackpressureChange:t=>{e.lickBackpressureNotice.textContent=t?.text??``,e.lickBackpressureNotice.toggleAttribute(`hidden`,t===null)},onToolUiAction:(e,n,r)=>{t.sendToolUiAction(e,n,r)},onQueuedCancel:e=>{let n=r()?.id;n&&t.deleteQueuedMessage(n,e).catch(()=>void 0)},...t.readOnlyToolUi?{readOnlyToolUi:!0}:{}});return e.queuedStack.addEventListener(`slicc-queued-remove`,e=>{let n=e.detail?.id;if(!n)return;d.removeQueuedMessage(n);let i=r()?.id;i&&t.deleteQueuedMessage(i,n).catch(()=>void 0)}),Vl(e.thread,(e,n,r,i)=>t.sendSprinkleLick(e,n,r,i),l),{controller:d,agentHandle:u}}function Xl(e,t){let n=new Ll,r=()=>{let r=t.currentUnits(),i=e.getSelected()?.id;e.refs.switcher.scoops=Pn(r,i,s,n.sync(r,i)),e.refreshConeActions?.()};return e.refreshScoops=r,t.subscribeList(()=>r()),r}function Zl(e,t,n){let{refs:r}=e;e.setChatTransport(t,n);let{controller:a,agentHandle:o}=Yl(r,n,t,()=>e.getSelected(),n.onTurnIdle,n.welcome);e.setController(a);let s=Xl(e.wiring,t);return r.switcher.addEventListener(`slicc-scoop-select`,n=>{let r=n.detail?.key,i=t.currentUnits().find(e=>e.id===r);i&&i.id!==e.getSelected()?.id&&e.selectScoop(i)}),r.switcher.setAttribute(`gaze-target`,`slicc-input-card`),r.inputCard.addEventListener(`input`,()=>{r.switcher.scrutinize(),r.switcher.wake()}),r.inputCard.addEventListener(`submit`,t=>{let o=ie(t),s=n.takeAttachments?.();if(!o&&!s?.length)return;e.wiring.awaitingInput=null,e.wiring.refreshScoops?.(),e.wiring.notifyScoopStateChanged?.();let c=t.detail?.source===`dictation`;c&&n.speaksReplies&&(i(async()=>{let{markVoiceSubmission:e}=await import(`./voice-reply-BDxhQxq3.js`);return{markVoiceSubmission:e}},__vite__mapDeps([71,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,72,73,74,75])).then(({markVoiceSubmission:e})=>e()).catch(()=>void 0),i(async()=>{let{beginVoiceTurn:e,playCue:t}=await import(`./soundscape-DRNmNI9R.js`);return{beginVoiceTurn:e,playCue:t}},__vite__mapDeps([70,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38])).then(({beginVoiceTurn:e,playCue:t})=>{e(),t(`sent`)}).catch(()=>void 0)),a.sendUserMessage(o??``,s,{dictation:c,steer:g(t)}),r.inputCard.clear?.();let l=e.getSelected()?.id;l&&(r.switcher.setAttribute(`attention`,l),e.wiring.lastActivity.set(l,(o??``).slice(0,600)))}),r.inputCard.addEventListener(`stop`,()=>{e.getController()?.processing&&o.stop()}),{agentHandle:o,controller:a,publishStrip:s}}var Ql=e({floatKindForRuntimeMode:()=>tu,floatLabelForKind:()=>eu,resolveStandaloneFloatKind:()=>nu}),$l={"slicc-server":`sliccstart`,"slicc-node-server":`npx`};function eu(e){return p(e)}function tu(e){switch(e){case`extension`:case`extension-detached`:return`extension`;case`cherry`:return`cherry`;case`hosted-leader`:return`hosted`;case`electron-overlay`:return`electron`;case`follower`:return`standalone`;default:return`standalone`}}async function nu(e){let t=e?.fetchFn??fetch,n=e?.timeoutMs??1500;try{let e=new AbortController,r=setTimeout(()=>e.abort(),n),i=await t($e(`/api/status`),{cache:`no-store`,signal:e.signal,headers:et()}).finally(()=>clearTimeout(r));if(await Ze(i),!i.ok)return`standalone`;let a=await i.json();return(a.service?$l[a.service]:void 0)??`standalone`}catch(e){if(Qe(e))throw e;return`standalone`}}function ru(e,t){let n=t.label??eu(t.floatKind);e.setAttribute(`label`,n),e.setAttribute(`float-kind`,t.floatKind);let r=en(),i=ft(),a=()=>{let t=iu(r,i);e.setAttribute(`connection`,t.connection),t.trayRole===`none`?e.removeAttribute(`tray-role`):e.setAttribute(`tray-role`,t.trayRole)},o=Qt(e=>{r=e,a()}),s=ut(e=>{i=e,a()});return a(),()=>{o(),s()}}function iu(e,t){return e.state===`inactive`?t.state===`inactive`?{connection:`offline`,trayRole:`none`}:{connection:ou(t),trayRole:`follower`}:{connection:au(e),trayRole:`leader`}}function au(e){switch(e.state){case`connecting`:return`connecting`;case`leader`:return`live`;case`reconnecting`:return`reconnecting`;case`error`:return`error`;default:return`offline`}}function ou(e){if(e.stalled)return`stalled`;switch(e.state){case`connecting`:return`connecting`;case`connected`:return`live`;case`reconnecting`:return`reconnecting`;case`error`:return`error`;default:return`offline`}}async function su(e,t,n){let r=n.floatLabel??eu(n.floatKind),i=Td(e,r);ru(i.refs.floatbar,{floatKind:n.floatKind,label:r});let a=await n.connect(i),o=Zl(i,a.client,a.host);return await a.workbench?.(i,o),t.info(`WC shell mounted`,{floatKind:n.floatKind}),{boot:i,chat:o}}var cu=36e5,lu=2e3,uu=class{#e=[];#t;#n;constructor(e=cu,t=lu){this.#t=Math.max(1,Math.floor(e)),this.#n=Math.max(2,Math.floor(t))}get windowMs(){return this.#t}push(e){this.#e.push(e);let t=e.at-this.#t;for(;this.#e.length>0&&this.#e[0].at<t;)this.#e.shift();for(;this.#e.length>this.#n;)this.#e.shift()}get size(){return this.#e.length}series(e){if(!(this.#e.length<2))return{points:this.#e.map(t=>({at:t.at,value:t[e]})),windowMs:this.#t}}peak(e){return this.#e.length===0?null:this.#e.reduce((t,n)=>Math.max(t,n[e]),-1/0)}windowLabel(){if(this.#e.length<2)return null;let e=this.#e[this.#e.length-1].at-this.#e[0].at,t=Math.max(1,Math.round(e/1e3));if(t<90)return`last ${t}s`;let n=Math.round(t/60);return n<90?`last ${n}m`:`last ${Math.round(n/60)}h`}};function du(e){return d(e,u)}async function fu(e,t=hn.memoryPath){let n=``;try{let r=await e.readFile(t,{encoding:`utf-8`});n=typeof r==`string`?r:new TextDecoder().decode(r)}catch{n=``}return du(n)}function pu(e){let t=e.filter(e=>e.health===`stalled`).length,n=e.filter(e=>e.health!==`stalled`&&e.peerState===`connecting`).length,r=e.length-t-n,i=[r>0?`${r} connected`:``,n>0?`${n} connecting`:``,t>0?`${t} stalled`:``].filter(Boolean);return{id:`followers`,label:`Followers`,icon:`radio`,count:e.filter(e=>e.peerState===`connected`).length,meta:i.join(` · `)||`none paired`,accent:`cyan`,emptyText:`No followers connected yet. Pair a phone, tablet, or CLI follower to this tray.`,rows:e.map(e=>{let t=e.motd??e.runtime??`Connected follower`,n=e.hostOrigin?`${t} · ${e.hostOrigin}`:t,r=[e.exec?`ssh`:``,e.cdp?`playwright`:``].filter(Boolean);return{name:eo(e),sublabel:n,meta:Qa(e),icon:Ya(e),badges:r,status:Za(e)}})}}function mu(e){return e.stalled||e.state===`reconnecting`?`warn`:e.state===`error`?`error`:e.state===`leader`||e.state===`connected`?`active`:`idle`}function hu(e){return e.stalled?`stalled`:e.state===`leader`?`connected`:e.state}function gu(e){let t=hu(e),n=e.sessionId?`Session ${qa(e.sessionId)}`:null,r=e.workerBaseUrl?`Worker · ${e.workerBaseUrl}`:null;return{id:`tray`,label:`Tray`,icon:e.role===`follower`?`radio`:`cloud`,count:1,meta:`${e.role} · ${t}`,accent:`waffle`,status:mu(e),rows:[{name:e.role[0].toUpperCase()+e.role.slice(1),sublabel:[n,r].filter(Boolean).join(` · `)||`No tray session`,meta:t,icon:e.role===`follower`?`radio`:`cloud`,badges:e.joinUrl?[`join URL`]:[],status:mu(e)}]}}function _u(e,t){let n=e.filter(e=>j(e)),r=t=>e.filter(e=>!j(e)&&e.parentJid===t),i=(e,n)=>{let r=t(e.jid);return{name:j(e)?`${e.name||`sliccy`} (cone)`:e.name,meta:r?`working`:`idle`,active:r,depth:n}},a=n.flatMap(e=>[i(e,0),...r(e.jid).map(e=>i(e,1))]),o=new Set(a.map(e=>e.name));for(let t of e){let e=i(t,0);o.has(e.name)||a.push(e)}let s=e.filter(e=>t(e.jid)).length;return{id:`scoops`,label:`Scoops`,icon:`bot`,count:e.length,meta:`${e.length} · ${s} working`,accent:`violet`,status:`active`,emptyText:`Delegate a focused task and its scoop will show up here.`,rows:a}}function vu(e){let t=e.filter(e=>e.valid===!1).length;return{id:`mounts`,label:`Mounts`,icon:`hard-drive`,count:e.length,meta:t>0?`${e.length} · ${t} need${t===1?`s`:``} re-grant`:`${e.length} · all granted`,status:t>0?`warn`:`active`,emptyText:`Mount a folder to give the workspace access to files on disk.`,rows:e.map(e=>({name:e.targetPath,meta:e.valid===!1?`permission lost`:e.descriptor.kind,status:e.valid===!0?`active`:e.valid===!1?`warn`:`idle`}))}}function yu(e,t){let n=t.filter(e=>e.valid===!1).length,r=e.reduce((e,[,t])=>e+(t.tools?.length??0),0),i=[`${e.length} server${e.length===1?``:`s`}`,`${r} tool${r===1?``:`s`}`,n>0?`${n} account expired`:`${t.length} accounts valid`].join(` · `);return{id:`integrations`,label:`Integrations`,icon:`blocks`,count:e.length+t.length,meta:i,accent:`waffle`,status:n>0?`error`:`active`,emptyText:`Connect an MCP server or a provider account to extend the workspace.`,rows:[...e.map(([e,t])=>{let n=t.tools?.length??0;return{name:e,meta:`MCP · ${n} tool${n===1?``:`s`}`,status:`active`}}),...t.map(e=>({name:e.providerId,meta:e.valid===!1?`session expired`:`account`,status:e.valid===!0?`active`:e.valid===!1?`error`:`idle`}))]}}function bu(e,t){let n=[`${t.length} webhook${t.length===1?``:`s`}`,e.length>0?`${e.length} cron task${e.length===1?``:`s`}`:`no cron tasks`].join(` · `);return{id:`automations`,label:`Automations`,icon:`calendar-clock`,count:e.length+t.length,meta:n,accent:`amber`,emptyText:`Scheduled tasks and webhook-driven licks will appear here.`,rows:[...e.map(e=>({name:e.name,meta:e.cron,status:e.status===`active`?`active`:`idle`})),...t.map(e=>({name:e.name,meta:e.scoop?`→ ${e.scoop}`:`→ cone`,status:`idle`}))]}}function xu(e){let t=wt({percent:e.percent,status:e.status});return t===`critical`?`error`:t===`warn`?`warn`:`active`}function Su(e,t){let n=`${St(e.percent)}% used`,r=Ct(e.resetsAt,t);return{name:`${e.window[0]?.toUpperCase()??``}${e.window.slice(1)} budget`,sublabel:e.providerId?`${e.providerId} · rolling window`:`rolling window`,meta:e.status===`rate-limited`?`rate-limited · ${n}`:n,badges:r?[r]:void 0,status:xu(e)}}function Cu(e,t){let n=e?.budget,r=e?.models??[],i=e?`$${e.totalCost.toFixed(2)} across ${r.length} models`:``,a=n?[n.status===`rate-limited`?`rate-limited`:``,`${St(n.percent)}% of ${n.window} budget`,i].filter(Boolean).join(` · `):e?i:`no spend yet`;return{id:`cost`,label:`Cost`,icon:`receipt`,count:r.length,meta:a,accent:`rose`,status:n?xu(n):void 0,emptyText:`Model usage will be summarized after the first turn.`,rows:[...n?[Su(n,t)]:[],...r.map(e=>({name:e.model,meta:`$${e.cost.toFixed(4)}`,status:`idle`}))]}}function wu(e){let t=[],n=Tu(e.budget,e.now??Date.now());n&&t.push(n);for(let n of e.oauthProviders)n.valid===!1&&t.push({id:`oauth:${n.providerId}`,severity:`error`,icon:`key-round`,title:`${n.providerId} session expired`,detail:`Tool calls through this provider will fail until it is signed in again.`});let r=mu(e.tray);(r===`error`||r===`warn`)&&t.push({id:`tray`,severity:r===`error`?`error`:`warn`,icon:`cloud-off`,title:`Tray ${hu(e.tray)}`,detail:e.tray.workerBaseUrl?`Worker · ${e.tray.workerBaseUrl}`:`No tray session is established.`});for(let n of e.followers)Za(n)===`warn`&&t.push({id:`follower:${n.runtimeId}`,severity:`warn`,icon:`radio`,title:`${eo(n)} stopped answering`,detail:n.motd??n.runtime??`No heartbeat from this follower.`,age:Qa(n)});for(let n of e.mounts)n.valid===!1&&t.push({id:`mount:${n.targetPath}`,severity:`warn`,icon:`folder-lock`,title:`${n.targetPath} needs re-grant`,detail:`File System Access permission is no longer granted for this handle.`});return t.sort((e,t)=>e.severity===t.severity?0:e.severity===`error`?-1:1)}function Tu(e,t){if(!e||wt({percent:e.percent,status:e.status})===`ok`)return null;let n=Ct(e.resetsAt,t),r=`${St(e.percent)}%`;if(e.status===`rate-limited`)return{id:`budget:rate-limited`,severity:`error`,icon:`octagon-alert`,title:`${e.window} budget is rate-limited`,detail:`The provider is refusing calls until the window resets. ${r} of the allowance is used.`,age:n};let i=e.percent>=95;return{id:`budget:near-limit`,severity:i?`error`:`warn`,icon:`gauge`,title:`${r} of the ${e.window} budget used`,detail:i?`Past 95% of the allowance — calls may start being refused.`:`Past 80% of the allowance. Long runs may not finish before it resets.`,age:n}}function Eu(e){return e>=100?`$${Math.round(e)}`:`$${e.toFixed(2)}`}function Du(e){let{stats:t,workingUnits:n,totalUnits:r,liveProcesses:i,terminated:a,history:o}=e,s=o?.windowLabel(),c=t?.burnRate??0,l=t?.fills??[],u=l.reduce((e,t)=>Math.max(e,t.fill),0),d=t?.budget,f=[{id:`burn`,label:`Burn rate`,value:Eu(c),unit:`/hour`,hero:!d,accent:d?`rose`:void 0,series:o?.series(`burnRate`),foot:[t?`$${t.totalCost.toFixed(2)} this session`:`no spend yet`,s].filter(Boolean).join(` · `)},{id:`load`,label:`Agent load`,value:String(n),unit:`of ${r} working`,accent:`violet`,series:o?.series(`workingUnits`),foot:s??void 0}];return d||f.push({id:`processes`,label:`Live processes`,value:String(i),unit:i===1?`process`:`processes`,accent:`cyan`,series:o?.series(`liveProcesses`),foot:a>0?`${a.toLocaleString()} exited this session`:s??void 0}),l.length>0&&f.push({id:`context`,label:`Context fill`,value:String(Math.round(u*100)),unit:`%`,ratio:u,markers:ku(l,e.units??[]),accent:u>=.9?`rose`:u>=.7?`amber`:`green`,foot:`fullest of ${l.length} context window${l.length===1?``:`s`}`}),d?[Ou(d,t,e.now??Date.now()),...f]:f}function Ou(e,t,n){let r=wt({percent:e.percent,status:e.status});return{id:`budget`,label:`${e.window[0]?.toUpperCase()??``}${e.window.slice(1)} budget`,value:St(e.percent),unit:`% used`,hero:!0,ratio:Math.min(1,Math.max(0,e.percent/100)),accent:r===`critical`?`rose`:r===`warn`?`amber`:`green`,foot:[e.status===`rate-limited`?`rate-limited`:``,Ct(e.resetsAt,n)??``,t?`$${t.totalCost.toFixed(2)} this session`:``].filter(Boolean).join(` · `)}}function ku(e,t){let n=new Map(t.map(e=>[e.jid,e]));return e.map(({jid:e,fill:t})=>{let r=n.get(e),i=r?j(r):!1,a=r?.name||(r?`sliccy`:e);return{id:e,ratio:t,color:s({isRoot:i,name:a}),label:`${i?`${a} (cone)`:a} — ${Math.round(t*100)}% full`}})}var Au={running:`R`,pending:`S`,exited:`Z`,killed:`K`};function ju(e,t){if(!e)return;let n=Math.max(0,Math.round((t-e)/1e3));if(n<60)return`${n}s`;let r=Math.floor(n/60);return r<60?`${r}m ${n%60}s`:`${Math.floor(r/60)}h ${r%60}m`}function Mu(e,t){return{pid:e.pid,ppid:e.ppid,state:Au[e.status]??`?`,status:e.status,command:e.argv,scoop:e.scoop,started:e.startedAt?new Date(e.startedAt).toTimeString().slice(0,5):void 0,elapsed:ju(e.startedAt,t)}}async function Nu(e,t){let n=e.getScoops(),r=e.getTrayInfo(),i=e.getConnectedFollowers(),[a,o,s,c,l,u]=await Promise.all([e.getCronTasks().catch(()=>[]),e.getWebhooks().catch(()=>[]),e.getMounts().catch(()=>[]),e.getMcpServers().catch(()=>({})),e.getSessionStats().catch(()=>null),e.getProcesses().catch(()=>({processes:[],terminated:0}))]),{processes:d,terminated:f}=u,p=e.getOAuthProviders(),m=Object.entries(c),h=n.filter(t=>e.isProcessing(t.jid)).length,g=Date.now();return t?.push({at:g,burnRate:l?.burnRate??0,workingUnits:h,liveProcesses:d.length}),{updated:`Streaming · updated just now`,vitals:Du({stats:l,workingUnits:h,totalUnits:n.length,liveProcesses:d.length,terminated:f,history:t,units:n,now:g}),alerts:wu({tray:r,followers:i,mounts:s,oauthProviders:p,budget:l?.budget,now:g}),sections:[gu(r),pu(i),_u(n,t=>e.isProcessing(t)),vu(s),yu(m,p),bu(a,o),Cu(l,g)],processes:{rows:d.map(e=>Mu(e,g)),terminated:f}}}var Pu=`/shared`,Fu=3,Iu=200;async function Lu(e,t,n){let r;try{r=await e.readDir(t)}catch{return[]}let i=r.filter(e=>e.type===`directory`).sort((e,t)=>e.name.localeCompare(t.name)),a=r.filter(e=>e.type===`file`).sort((e,t)=>e.name.localeCompare(t.name)),o=[...i,...a].slice(0,Iu),s=new Map,c=[];for(let e of o){if(e.type!==`file`)continue;let n=`${t}/${e.name}`;e.size===void 0?c.push(n):s.set(n,e.size)}let l=await Promise.allSettled(c.map(t=>e.stat(t)));c.forEach((e,t)=>{let n=l[t];n?.status===`fulfilled`&&s.set(e,n.value.size)});let u=[];for(let r of o){let i=`${t}/${r.name}`;if(r.type===`directory`)u.push({kind:`dir`,id:i,label:r.name,children:n<Fu?await Lu(e,i,n+1):[]});else{let e=s.get(i);u.push({kind:`file`,id:i,label:r.name,path:i,size:e})}}return u}async function Ru(e,t=hn.root){let n=[];for(let r of[t,Pu])n.push({kind:`dir`,id:r,label:r.replace(/^\/(cones\/)?/,``),open:!0,children:await Lu(e,r,1)});return n}var zu=200,Bu=1e3,Vu=3e3,Hu=45e3;function Uu(e){let t=null,n=!1,r=!1,i=!1,a=0,o=0,s=null,c=null,l=0,u=()=>{let t=++o;e.openFs().then(async n=>{let i=await Ru(n,e.getWorkspace().root);t===o&&(e.fileTree.items=i,r||(r=!0,x({fileTree:e.fileTree,openFs:e.openFs,openWriter:e.openWriter,insertReference:e.insertReference,toPreviewUrl:b,log:e.log})))}).catch(t=>e.log.error(`WC file tree refresh failed`,t))},d=()=>{if(!i)return;let e=Date.now();if(c==null)l=e;else if(e-l>=Bu){clearTimeout(c),c=null,u();return}c!=null&&clearTimeout(c),c=setTimeout(()=>{c=null,u()},zu)},f=()=>{t??=setInterval(u,Vu)},p=()=>{let t=++a;s?.(),s=null;let n=[e.getWorkspace().root,Pu];e.openFs().then(async e=>{if(!e.watch){t===a&&i&&f();return}let r=await e.watch(n,d);if(t!==a||!i){r();return}s=r}).catch(n=>{e.log.error(`WC file tree watch failed — falling back to polling`,n),t===a&&i&&f()})},m=()=>{n=!1,i=!1,a++,s?.(),s=null,c!=null&&(clearTimeout(c),c=null),t!=null&&(clearInterval(t),t=null)};return{open(){m(),i=!0,n=!0,e.onKernelReady(()=>{n&&(n=!1,u(),p())})},close:m,repoint(){!i||n||(u(),p())}}}function Wu(e){let t=!1,n=!1,r=!1,i=0,a=null,o=new uu,s=Uu(e),c=()=>{a!=null&&(clearInterval(a),a=null)},l=()=>{let t=++i;e.openFs().then(async n=>{let r=await fu(n,e.getWorkspace().memoryPath);t===i&&(e.memoryHost.setRows?e.memoryHost.setRows(r):e.memoryHost.replaceChildren(...r))}).catch(t=>e.log.error(`WC memory refresh failed`,t))},u=()=>{(async()=>{try{e.monitor.model=await Nu(e.getMonitorDeps(),o)}catch(t){e.log.error(`WC monitor refresh failed`,t)}})()};return e.monitor.addEventListener(`slicc-monitor-refresh`,u),{activate(i){if(i===`files`){s.open();return}if(i===`memory`){r=!0,l();return}if(i===`monitor`){c(),u(),a=setInterval(u,5e3);return}if(i===`term`&&!t){t=!0;let r=!1,i=n?null:setTimeout(()=>{r||(n=!0,t=!1,e.log.error(`WC terminal mount did not settle within ${Hu}ms; re-arming so the next term activation retries`))},Hu);e.mountTerminal(e.termSurface).catch(n=>{t=!1,e.log.error(`WC terminal mount failed`,n)}).finally(()=>{r=!0,i&&clearTimeout(i)})}},deactivate(e){e===`files`?s.close():e===`monitor`?c():e===`memory`&&(r=!1)},refreshMemory(){r&&l()},refreshFiles(){s.repoint()}}}var Gu=[`/workspace`,`/shared`,`/memory`,`/scoops`,`/mnt`],Ku=new Set([`node_modules`,`.git`,`dist`,`build`,`out`,`coverage`,`.cache`,`.venv`,`venv`,`__pycache__`,`target`,`vendor`,`.next`,`.turbo`,`python_wheels`]),qu=2e4,Ju=12,Yu=3e4;function Xu(e){let t=e.trim();for(;t.startsWith(`./`)||t.startsWith(`../`);)t=t.slice(t.startsWith(`./`)?2:3);return t.startsWith(`~/`)&&(t=t.slice(2)),t.replace(/\/{2,}/g,`/`)}function Zu(e){return e.slice(e.lastIndexOf(`/`)+1)}function Qu(e,t){return e===t?!0:e.endsWith(t)?e[e.length-t.length-1]===`/`:!1}function $u(e,t){let n=Xu(e);return t.includes(`/`)?Qu(n,t):Zu(n)===t}function ed(e,t){let n=[],r=new Set;for(let i=t.length-1;i>=0;--i){let a=t[i];if(!(a===void 0||r.has(a))&&$u(a,e)&&(r.add(a),n.push(Xu(a)),n.length>=td))break}return n}var td=4,nd=class{#e;#t;#n;#r;#i;#a;#o=0;#s=null;#c=null;#l=new Map;#u=new Map;constructor(e,t={}){this.#e=e,this.#t=t.roots??Gu,this.#n=t.ignoredDirs??Ku,this.#r=t.maxEntries??qu,this.#i=t.maxDepth??Ju,this.#a=t.ttlMs??Yu}resolve(e,t=[]){this.#g();let n=Xu(e),r=this.#d(n),i=ed(n,t);return i.length===0?r:this.#f(n,r,i)}resolveAll(e,t=[]){return Promise.all(e.map(e=>this.resolve(e,t)))}invalidate(){this.#s=null,this.#c=null,this.#l.clear(),this.#u.clear()}#d(e){let t=this.#l.get(e);if(t!=null)return t;let n=this.#m(e).catch(()=>({query:e,matches:[]}));return this.#l.set(e,n),n}async#f(e,t,n){let{matches:r}=await t,i=new Set(r),a=[];for(let e of n)!e.startsWith(`/`)||i.has(e)||await this.#p(e)&&a.push(e);let o=e=>n.findIndex(t=>Qu(e,t)),s=r.filter(e=>o(e)>=0).sort((e,t)=>o(e)-o(t)),c=new Set(s),l=r.filter(e=>!c.has(e));return{query:e,matches:[...a,...s,...l]}}#p(e){let t=this.#u.get(e);if(t!=null)return t;let n=this.#h(e);return this.#u.set(e,n),n}async#m(e){if(e.startsWith(`/`))return{query:e,matches:await this.#h(e)?[e]:[]};let t=(await this.#_()).get(Zu(e))??[];return e.includes(`/`)?{query:e,matches:t.filter(t=>Qu(t,e)).sort(rd)}:{query:e,matches:[...t].sort(rd)}}async#h(e){try{return(await this.#e.stat(e)).type===`file`}catch{return!1}}#g(){!this.#s||this.#a===1/0||Date.now()-this.#o<this.#a||this.invalidate()}#_(){return this.#s?Promise.resolve(this.#s):(this.#c??=this.#v().then(e=>(this.#s=e,this.#o=Date.now(),e)),this.#c)}async#v(){let e=new Map,t={left:this.#r};for(let n of this.#t){if(t.left<=0)break;await this.#y(n,0,e,t)}return e}async#y(e,t,n,r){if(r.left<=0||t>this.#i)return;let i;try{i=await this.#e.readDir(e)}catch{return}let a=this.#b(e,i,n,r);for(let e of a){if(r.left<=0)break;await this.#y(e,t+1,n,r)}}#b(e,t,n,r){let i=[];for(let a of t){if(r.left<=0)break;let t=e===`/`?`/${a.name}`:`${e}/${a.name}`;if(a.type===`directory`){this.#n.has(a.name)||i.push(t);continue}let o=n.get(a.name);o?o.push(t):n.set(a.name,[t]),--r.left}return i}};function rd(e,t){let n=e.split(`/`).length,r=t.split(`/`).length;return n===r?e.localeCompare(t):n-r}var id=`file-mention`,ad=`data-file-mentions`;function od(e){return`${e.childNodes.length}:${e.textContent?.length??0}`}var sd=new Set([`A`,`PRE`,`SCRIPT`,`STYLE`,`TEXTAREA`]),cd=`file-mention-open`;async function ld(e,t,n=[]){let r=od(e);if(e.getAttribute(ad)===r)return;let i=ud(e);if(i.length===0){e.setAttribute(ad,r);return}let a=[],o=new Set;for(let e of i){let t=w(e.data);if(t.length!==0){a.push({node:e,mentions:t});for(let e of t)o.add(e.path)}}if(a.length===0){e.setAttribute(ad,r);return}let s=[...o],c=await t.resolveAll(s,n),l=new Map(s.map((e,t)=>[e,c[t]?.matches??[]]));for(let{node:e,mentions:t}of a){if(!e.isConnected)continue;let n=t.filter(e=>(l.get(e.path)?.length??0)>0);n.length!==0&&dd(e,n,l)}e.setAttribute(ad,od(e))}function ud(e){let t=e.ownerDocument.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode(t){if(!t.nodeValue||t.nodeValue.trim().length===0)return NodeFilter.FILTER_REJECT;for(let n=t.parentElement;n&&n!==e;n=n.parentElement)if(sd.has(n.tagName)||n.classList.contains(`file-mention`))return NodeFilter.FILTER_REJECT;return NodeFilter.FILTER_ACCEPT}}),n=[];for(let e=t.nextNode();e!==null;e=t.nextNode())n.push(e);return n}function dd(e,t,n){let r=e.ownerDocument,i=e.data,a=r.createDocumentFragment(),o=0;for(let e of t){let t=n.get(e.path)??[],s=t[0];s&&(e.start>o&&a.appendChild(r.createTextNode(i.slice(o,e.start))),a.appendChild(fd(r,i.slice(e.start,e.end),s,t,e.line)),o=e.end)}o<i.length&&a.appendChild(r.createTextNode(i.slice(o))),e.parentNode?.replaceChild(a,e)}function fd(e,t,n,r,i){let a=e.createElement(`a`);return a.className=id,a.textContent=t,a.href=`#${n}`,a.dataset.path=n,i!==void 0&&(a.dataset.line=String(i)),a.title=r.length>1?`${n}\n(+${r.length-1} other match${r.length>2?`es`:``})`:n,a.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation();let t={path:n,alternatives:r,...i===void 0?{}:{line:i}};a.dispatchEvent(new CustomEvent(cd,{detail:t,bubbles:!0,composed:!0}))}),a}var pd=`slicc-agent-message`,md=`slicc-action-row[${l}]`;function hd(e,t){let n=[],r=e.querySelectorAll(md);for(let e of r){if(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING)break;n.push(e.getAttribute(`data-file-paths`)??``)}return n.slice(-40).flatMap(e=>f(e))}function gd(e){let t=globalThis.requestIdleCallback;typeof t==`function`?t(e):setTimeout(e,0)}function _d(e){try{return vd(e)}catch(t){return e.log.error(`File mention wiring failed; continuing without it`,t),()=>{}}}function vd(e){let{thread:t,openFs:n,log:r}=e;if(!(t instanceof Node))return()=>{};let i=null,a=()=>(i??=n().then(e=>new nd(e)),i),o=e=>{if(!(e instanceof HTMLElement)||e.hasAttribute(`streaming`))return;let n=e.querySelector(`.body`)??e;w(n.textContent??``).length!==0&&gd(()=>{let i=hd(t,e);a().then(e=>ld(n,e,i)).catch(e=>r.error(`File mention linking failed`,e))})},s=e=>{for(let t of e.querySelectorAll(pd))o(t)};s(t);let c=new MutationObserver(e=>{for(let t of e){if(t.type===`attributes`){t.target instanceof HTMLElement&&o(t.target);continue}for(let e of t.addedNodes)e instanceof HTMLElement&&(e.tagName.toLowerCase()===pd?o(e):s(e));let e=t.target?.closest?.(pd);e&&o(e)}});c.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`streaming`]});let l=e=>{let{path:t,line:i}=e.detail;n().then(e=>le(e,t,i===void 0?{}:{line:i})).catch(e=>r.error(`File mention preview failed`,e))};return t.addEventListener(cd,l),()=>{c.disconnect(),t.removeEventListener(cd,l)}}var yd=e({DEFAULT_DOCK_TREE_ON_BOOT:()=>Rd,DOCK_TREE_STORAGE_KEY:()=>Ld,attachWcWorkbench:()=>Vd,bootLeaderFloat:()=>Ud,makeSprinkleAttachImage:()=>Bd,prepareWcShell:()=>Td,wireDockTreePersistence:()=>zd,wireWcChipTips:()=>Md,workspaceForSelection:()=>Cd});function bd(e){let{controller:t,held:n,jid:r,roster:i}=e,a=t?.stashQueued()??[];if(a.length===0)return;let o=i.find(e=>e.id===r),s=o?Un(i,o)?.id??o.id:r;n.set(s,[...n.get(s)??[],...a])}function xd(e){let{controller:t,destination:n,held:r,previousJid:i,roster:a}=e;if(i&&i!==n&&bd({controller:t,held:r,jid:i,roster:a}),a.some(e=>e.id===n))for(let e of[...r.keys()])a.some(t=>t.id===e)||r.delete(e);let o=r.get(n);o&&(r.delete(n),t?.restoreQueued(o))}function Sd(e,t){let n=null,r=null;return{shownUnitId:()=>r,watch:i=>{r===i&&n||(n?.(),r=i,n=e().subscribe(i,e=>{e.type===`snapshot`&&r===i&&t(e.snapshot.messages,e.snapshot.queuedIds)}))}}}function Cd(e){let{client:t,selectedId:n}=e,r=n===void 0?void 0:t.getScoop(n);return n!==void 0&&!r&&e.clearSelection(),dn(t.getScoops(),r)}function wd(e){let{refs:t}=e,n=null,r=new Map;return{clear:()=>{n=null},getSelected:()=>n,holdQueue:()=>{let t=n?.id;t&&bd({controller:e.controller(),held:r,jid:t,roster:e.client().currentUnits()})},selectScoop:i=>{let a=n?.id??null;n=i;let o=Gn(Ln(i)),s=e.host();xd({controller:e.controller(),destination:i.id,held:r,previousJid:a,roster:e.client().currentUnits()});let c=e.lickBackpressure.get(i.id);e.controller()?.setLickBackpressure(c?.count??0,c?.waitingMs??0,Wn(i)),e.controller()?.setReadOnly(o),o||t.inputCard.removeAttribute(`disabled`),Hc(t,i,e.client().currentUnits(),s.getRecord?.bind(s),{skipModelPill:s.ownsModelPill===!0}),e.client().snapshot(i.id).catch(()=>void 0),e.watchUnit(i.id),e.controller()?.setProcessing(e.client().currentUnits().find(e=>e.id===i.id)?.state===`working`),t.switcher.hasAttribute(`attention`)||t.switcher.setAttribute(`attention`,i.id),e.wiring().refreshScoops?.(),e.workbench()?.refreshMemory(),e.workbench()?.refreshFiles(),s.onSelectionApplied?.()}}}function Td(e,t){let n=C(e,{messages:[],scoops:[],floatLabel:t,placeholder:`Ask sliccy, or describe a change…`,urlState:!0}),r=null,i=null,a=Ao,o=null,s=()=>o??Q(g),c=new Map,l=!1,u=null,d=!1,f=new Set,p=Sd(()=>s(),(e,t)=>{r?.loadMessages(e,t),uc(n.thread,e.length===0&&d),a.onSnapshotRendered?.(e)}).watch,m=wd({client:s,controller:()=>r,host:()=>a,lickBackpressure:c,refs:n,watchUnit:p,wiring:()=>g,workbench:()=>u}),h=m.selectScoop,g={refs:n,statuses:new Map,fills:new Map,phases:new Map,turns:new Map,lickBackpressure:c,lastActivity:new Map,pendingUrlContext:n.thread.urlContext??null,getController:()=>r,getClient:()=>i,getSelected:()=>m.getSelected(),selectScoop:h,notifyReady:()=>{l=!0;for(let e of f)e()}};return{refs:n,wiring:g,setClient:e=>{i=e},setChatTransport:(e,t)=>{o=e,a=t},getChatHost:()=>a,selectScoop:h,getSelected:()=>m.getSelected(),clearSelection:()=>m.clear(),holdQueuedPile:()=>m.holdQueue(),watchUnit:p,getController:()=>r,setController:e=>{r=e},setActivateSurface:e=>{u=e;let t=new Set(n.dockTree.getSurfaceIds());for(let n of[`files`,`term`,`memory`,`monitor`])t.has(n)&&(l?e.activate(n):f.add(()=>e.activate(n)))},onClientReady:e=>{f.add(e),l&&e()},setRestoringSessions:e=>{d=e,uc(n.thread,e&&lc(n.thread))}}}function Ed(e){let t=null;return()=>(t??=(async()=>{let[{createRemoteVfsClient:t},{createRemoteWritableVfsClient:n}]=await Promise.all([i(()=>import(`./remote-vfs-client-Cs1yUtQm.js`),__vite__mapDeps([76,36])),i(()=>import(`./writable-vfs-client-CQe6oZ75.js`),__vite__mapDeps([77,36]))]);return{reader:t({transport:e.getTransport()}),writer:n({transport:e.getTransport()})}})(),t)}function Dd(e,t,n,r,a){e.onClientReady(()=>{r.intercept||i(async()=>{let{wireWcOnboarding:e}=await import(`./wc-onboarding-BHk8sSaZ.js`);return{wireWcOnboarding:e}},__vite__mapDeps([78,2,3,53,1,54,8,9,10,11,12,13,14,15,16,17,18,5,19,20,21,22,23,24,25,26,27,28,6,7,29,30,31,32,33,35,55,56,62])).then(({wireWcOnboarding:r})=>r({client:t,getController:()=>e.getController(),openVfs:n,log:a})).then(e=>{r.intercept=e.interceptWelcomeLick}).catch(e=>a.error(`WC onboarding wiring failed`,e))})}function Od(e,t){let n=()=>{t.getSessionStats?.().then(t=>{if(!t)return;e.refs.floatbar.setAttribute(`spent`,t.totalCost.toFixed(2)),typeof t.burnRate==`number`&&Number.isFinite(t.burnRate)?e.refs.floatbar.setAttribute(`rate`,t.burnRate.toFixed(2)):e.refs.floatbar.removeAttribute(`rate`);let n=e.refs.floatbar;t.models&&(n.costModels=t.models),t.scoops&&(n.costScoops=t.scoops),n.budget=t.budget?{percent:t.budget.percent,status:t.budget.status,window:t.budget.window,resets:Ct(t.budget.resetsAt)}:null,e.fills.clear();for(let n of t.fills)e.fills.set(n.jid,n.fill);e.refreshScoops?.()})};return setInterval(n,15e3),n}function kd(e,t,n){let r=t.standalone;r&&i(async()=>{let{wireWcBrowser:e}=await import(`./wc-browser-DACcAKyw.js`);return{wireWcBrowser:e}},__vite__mapDeps([79,80,6,81,3,82,83,0,1,2,4,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,84])).then(({wireWcBrowser:t})=>t({refs:e.refs,browser:r.browser,log:n})).catch(e=>n.error(`WC browser overlay wiring failed`,e))}function Ad(e){return{assistantLabel:e.assistantLabel,name:e.name,role:j(e)?`primary`:`child`}}function jd(e){return()=>{e.triggerPlaceholder();let t=e.boot.getSelected()?.id;if(e.boot.wiring.awaitingInput=t??null,e.boot.wiring.refreshScoops?.(),e.boot.wiring.notifyScoopStateChanged?.(),e.refreshStats(),!t)return;e.boot.refs.switcher.setAttribute(`attention`,t);let n=e.boot.getController()?.getMessages().filter(e=>e.role===`assistant`).at(-1);n&&e.boot.wiring.lastActivity.set(t,String(n.content??``).slice(0,600))}}function Md(e){let t=new Map,n=new Set;e.switcher.addEventListener(`pointerover`,r=>{let a=r.target?.closest?.(`.slicc-agent-tabs__segment`);if(!a||!e.switcher.contains(a))return;let o=a.dataset.k??``,s=e.getScoops().find(e=>e.jid===o);if(!s)return;let c=e.lastActivity.get(o)??``,l=t.get(o);if(l&&l.activity===c){a.title=l.tip;return}a.title||=Vn(Ad(s)),!(!c||n.has(o))&&(n.add(o),(async()=>{try{let n=await(e.labelFn??(await i(async()=>{let{quickLabel:e}=await import(`./quick-llm-CcF7noc9.js`).then(e=>e.n);return{quickLabel:e}},__vite__mapDeps([50,1,9,10,11,2,12,13,14,15,3,7,8,16,17,18,5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,51,37]))).quickLabel)({system:`One line for a hover tooltip: at most 14 words, present tense, no quotes, no trailing period.`,prompt:`Summarize what this agent has been doing.\nAgent: ${j(s)?`${Vn(Ad(s))} (a main agent)`:s.name}\nMost recent activity:\n${c}`,maxTokens:40});n&&(t.set(o,{activity:c,tip:n}),a.title=n)}finally{n.delete(o)}})())})}async function Nd(e,t,n,r){let{RemoteTerminalView:a}=await i(async()=>{let{RemoteTerminalView:e}=await import(`./remote-terminal-view-BdwibNDb.js`);return{RemoteTerminalView:e}},__vite__mapDeps([85,2,28,3,59,39,40,21,46,1,86,16,45,44,87,88])),{fetchSecretEnvVars:o}=await i(async()=>{let{fetchSecretEnvVars:e}=await import(`./secret-env-z9SReONx.js`);return{fetchSecretEnvVars:e}},__vite__mapDeps([89,3,18,1,2,5,19,20,21,23,22,24,25,26])),s=await o(),c=new a({client:t,cwd:`/`,env:Object.keys(s).length>0?s:void 0});if(await new Promise(t=>e.onClientReady(t)),await c.mount(n),globalThis.__slicc_terminal_view=c,window.addEventListener(`beforeunload`,()=>c.dispose(),{once:!0}),new URLSearchParams(location.search).has(`wterm-image-demo`)){let e=await fetch(`/logos/sliccy-color-10scoops-128x128.png`);if(!e.ok)throw Error(`wterm demo image: HTTP ${e.status}`);let t=new Uint8Array(await e.arrayBuffer());await(await r()).writeFile(`/tmp/wterm-graphics-demo.png`,t);let n=await c.executeCommandInTerminal(`imgcat /tmp/wterm-graphics-demo.png`);if(n.exitCode!==0)throw Error(`wterm demo image: ${n.stderr}`)}}function Pd(e,t,n){let r=t=>{if(t.startsWith(`freezer:`)){n(t.slice(8));return}let r=In(Q(e.wiring).currentUnits(),t);r&&r.id!==e.getSelected()?.id&&e.selectScoop(r)};e.refs.thread.addEventListener(`slicc-url-context`,e=>{let t=e.detail?.context;t&&r(t)});let i=e.wiring.pendingUrlContext;i?.startsWith(`freezer:`)&&e.onClientReady(()=>{e.wiring.pendingUrlContext===i&&(e.wiring.pendingUrlContext=null,r(i))})}function Fd(e,t,n,r){i(async()=>{let{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}=await import(`./wc-permissions-DAdJvlP4.js`);return{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}},__vite__mapDeps([90,2,3,59])).then(async({installLeaderPermissionsSurface:r,installMountPendingConsumer:a})=>{let o=n.standalone?.runtimeMode??`standalone`,{buildLeaderPermissionProviders:s,isExtensionRuntime:c}=await i(async()=>{let{buildLeaderPermissionProviders:e,isExtensionRuntime:t}=await import(`./wc-permissions-providers-DwX67umy.js`);return{buildLeaderPermissionProviders:e,isExtensionRuntime:t}},__vite__mapDeps([91,2,21]));r({runtimeMode:o,providers:await s(c()||o===`extension`||o===`extension-detached`)}),a({runShell:Id(e,t)})}).catch(e=>r.warn(`WC permissions surface wiring failed`,e)),(n.standalone?.runtimeMode??`standalone`)!==`cherry`&&i(async()=>{let{installSecretRequestSurface:e}=await import(`./wc-secret-request-bhtsXEeR.js`);return{installSecretRequestSurface:e}},__vite__mapDeps([92,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,93])).then(({installSecretRequestSurface:e})=>e()).catch(e=>r.warn(`WC secret request surface wiring failed`,e))}function Id(e,t){let n=null,r=()=>(n||=(async()=>{await new Promise(t=>e.onClientReady(t));let{TerminalSessionClient:n}=await i(async()=>{let{TerminalSessionClient:e}=await import(`./terminal-session-client-DmE-iBjP.js`).then(e=>e.n);return{TerminalSessionClient:e}},__vite__mapDeps([88,1])),r=new n({client:t,sid:`mount-drop-${Date.now()}`});return await r.open({cwd:`/workspace`}),r})().catch(e=>{throw n=null,e}),n);return async e=>(await r()).exec(e)}var Ld=`slicc-dock-tree:default`,Rd={zones:{top:null,left:{type:`leaf`,surfaceId:`chat`},middle:null,right:null,bottom:null},rowFr:{top:1,center:1,bottom:1},colFr:{left:3,middle:1,right:1}};function zd(e,t){let n=e.dockTree,r=e.dockTree,i=e=>{try{localStorage.setItem(Ld,JSON.stringify(e))}catch{}};n.addEventListener(`dock-tree-change`,e=>{i(e.detail?.tree)}),n.addEventListener(`dock-tree-resize`,e=>{i(e.detail?.tree)});try{let e=localStorage.getItem(Ld);r.setTree(e?JSON.parse(e):Rd)}catch(e){t.warn(`WC dock-tree restore failed — seeding the default layout`,e),r.setTree(Rd)}}function Bd(e,t){return(n,r,i)=>{let a=e.getAttachStage();if(!a){t.warn(`sprinkle attachImage dropped: composer stage not ready yet`);return}let o=n.match(/^data:(image\/[^;]+);base64,([A-Za-z0-9+/=]+)$/),s=o?o[2]:n,c=o?o[1]:i??`image/png`,l=c.split(`/`)[1]?.replace(`jpeg`,`jpg`).replace(`svg+xml`,`svg`)??`png`,u=r??`annotation-${Date.now()}.${l}`;a.add({id:`att-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,name:u,mimeType:c,size:Math.floor(s.length*3/4),kind:`image`,data:s})}}function Vd(e,t,n,r,a,o={}){i(async()=>{let{initTimestampPreference:e}=await import(`./wc-shell-CuOqCSKv.js`).then(e=>e.Q);return{initTimestampPreference:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38])).then(({initTimestampPreference:e})=>e()).catch(()=>void 0);let{refs:s}=e;e.setClient(t),i(async()=>{let{watchSprinkleThemeBroadcast:e}=await import(`./theme-CwPIBqJE.js`).then(e=>e.i);return{watchSprinkleThemeBroadcast:e}},__vite__mapDeps([94,1,95,3])).then(({watchSprinkleThemeBroadcast:e})=>e()).catch(()=>void 0),i(async()=>{let{applyThemeOverrides:e}=await import(`./theme-engine-ZV7CeqWw.js`).then(e=>e._);return{applyThemeOverrides:e}},__vite__mapDeps([95,1,3])).then(({applyThemeOverrides:e})=>e()).catch(()=>void 0);let c=he(`panel-layouts`);s.dockTree.tilesMovable=c,c||zd(s,a);let l=null,u=Od(e.wiring,t),d=()=>l?.(),f=r.welcome??{intercept:null},p=Q(e.wiring),{agentHandle:m}=n;e.onClientReady(u);let h=Ed(t),g=async()=>(await h()).reader;o.standalone?.runtimeMode!==`cherry`&&o.standalone?.runtimeMode!==`hosted-leader`?Dd(e,t,h,f,a):f.intercept=Cc({openVfs:async()=>(await h()).writer,log:a});let _=Wc({boot:e,client:t,setRefreshPlaceholder:e=>{l=e},triggerPlaceholder:d,openReader:g,openWriter:async()=>(await h()).writer,log:a});r.setAttachmentSource(()=>_.getAttachStage()?.take()),r.setTurnIdleHook(jd({boot:e,triggerPlaceholder:d,refreshStats:u})),Md({switcher:s.switcher,getScoops:()=>t.getScoops(),lastActivity:e.wiring.lastActivity}),kd(e,o,a),i(async()=>{let{installWcComputers:e}=await import(`./wc-computers-DwbsWvJk.js`);return{installWcComputers:e}},__vite__mapDeps([83,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,84])).then(({installWcComputers:e})=>e({openFs:g,log:a})).catch(e=>a.error(`WC computers wiring failed`,e)),Fd(e,t,o,a);let v=Wu({fileTree:s.fileTree,termSurface:s.termSurface,memoryHost:s.memoryHost,monitor:s.monitor,openFs:g,openWriter:async()=>(await h()).writer,onKernelReady:t=>e.onClientReady(t),getMonitorDeps:()=>Pl({client:t,openReader:g,storage:window.localStorage}),getWorkspace:()=>Cd({client:t,clearSelection:e.clearSelection,selectedId:e.getSelected()?.id}),mountTerminal:n=>Nd(e,t,n,async()=>(await h()).writer),insertReference:e=>{let t=s.inputCard,n=t.value.trim();t.value=n?`${n} @${e}`:`@${e}`,t.focus()},log:a});e.setActivateSurface(v),c&&i(async()=>{let{panelizeShell:e}=await import(`./panelize-shell-DuYIEVZp.js`);return{panelizeShell:e}},__vite__mapDeps([96,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,97,98])).then(({panelizeShell:e})=>e(s,void 0,void 0,{onToolPanelActivate:e=>v.activate(e),onToolPanelDeactivate:e=>v.deactivate(e)})).catch(e=>a.error(`panelize failed — keeping the classic shell`,e)),_d({thread:s.thread,openFs:g,log:a}),y(s.thread,g),s.floatbar.addEventListener(`click`,()=>{let e=s.dock;e.active===`monitor`?e.collapse():e.selectItem(`monitor`)});let b=xl({refs:s,openVfs:h,client:t,getUnits:()=>p.currentUnits(),getController:()=>e.getController(),getSelected:()=>e.getSelected(),selectScoop:e.selectScoop,clearSelection:e.clearSelection,holdQueuedPile:e.holdQueuedPile,log:a}),{refreshFreezer:x,openFrozen:S,getViewedFrozenSessionId:ee}=b;if(x(),e.onClientReady(x),he(`multiple-cones`)){let n=xc({freezer:s.freezer,client:t,getSelected:()=>e.getSelected(),getUnits:()=>p.currentUnits(),selectScoop:e.selectScoop,freezeCone:b.freezeCone,log:a});e.wiring.refreshConeActions=n.refresh,e.onClientReady(n.refresh)}Pd(e,t,S),e.onClientReady(()=>{h().then(async({reader:e,writer:t})=>{let{loadShortcutConfig:n}=await i(async()=>{let{loadShortcutConfig:e}=await import(`./wc-shortcut-config-5vUzFHFF.js`);return{loadShortcutConfig:e}},__vite__mapDeps([99,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38]));await n({reader:e,writer:t,apply:({keymap:e,trigger:t})=>{s.shortcuts.setKeymap(e),s.shortcuts.setTrigger(t)}})}).catch(e=>a.warn(`WC shortcut config load failed`,e))}),h().then(async({reader:e})=>{let{installPreviewVfsResponder:t}=await i(async()=>{let{installPreviewVfsResponder:e}=await import(`./preview-vfs-responder-Vn6wxJvK.js`);return{installPreviewVfsResponder:e}},[]);t({channel:new BroadcastChannel(`preview-vfs`),getReader:()=>e,logger:a})}).catch(e=>a.warn(`WC page-VFS support wiring failed`,e)),h().then(async({reader:n,writer:r})=>{let{createRemoteSprinkleVfs:c}=await i(async()=>{let{createRemoteSprinkleVfs:e}=await import(`./remote-sprinkle-vfs-UzNBy5VJ.js`);return{createRemoteSprinkleVfs:e}},__vite__mapDeps([100,36,101,102])),l=(await i(async()=>{let{getPanelizedShell:e}=await import(`./panelize-shell-DuYIEVZp.js`);return{getPanelizedShell:e}},__vite__mapDeps([96,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,97,98]))).getPanelizedShell(),{wireWcSprinkles:u}=await i(async()=>{let{wireWcSprinkles:e}=await import(`./wc-sprinkles-HdCnSQzK.js`);return{wireWcSprinkles:e}},__vite__mapDeps([103,2,0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,104,62])),d=await u({refs:s,client:t,getUnits:()=>p.currentUnits(),getSelected:()=>e.getSelected(),selectScoop:t=>e.selectScoop(t),interceptWelcomeLick:e=>f.intercept?.(e)??!1,fs:c({reader:n,writer:r}),instanceId:o.instanceId,onAttachImage:Bd(_,a),onToolPanelActivate:e=>v.activate(e),onToolPanelDeactivate:e=>v.deactivate(e),hostSprinkleSurface:l?(e,t)=>l.hostSprinkleSurface(e,t):void 0,removeSprinkleSurface:l?e=>l.removeSprinkleSurface(e):void 0,log:a});e.onClientReady(()=>void d.resync());let{getPanelizedShell:y}=await i(async()=>{let{getPanelizedShell:e}=await import(`./panelize-shell-DuYIEVZp.js`);return{getPanelizedShell:e}},__vite__mapDeps([96,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,97,98])),b=y();if(b){let e=c({reader:n,writer:r});b.attachFs(e);let{registerAgentPanels:t}=await i(async()=>{let{registerAgentPanels:e}=await import(`./agent-panels-C29MoSl4.js`);return{registerAgentPanels:e}},__vite__mapDeps([105,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38]));await t(e).catch(e=>a.warn(`agent panel discovery failed`,e))}else{let{setLayoutApplier:e}=await i(async()=>{let{setLayoutApplier:e}=await import(`./layout-apply-registry-Cw730jao.js`);return{setLayoutApplier:e}},[]),{applyLayout:t}=await i(async()=>{let{applyLayout:e}=await import(`./apply-layout-Tf3-paMF.js`);return{applyLayout:e}},__vite__mapDeps([106,103,2,0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,104,62]));e(e=>t(d.zone,e))}if(o.standalone&&o.instanceId){let{wireWcTray:n}=await i(async()=>{let{wireWcTray:e}=await import(`./wc-tray-wYtpqxqQ.js`);return{wireWcTray:e}},__vite__mapDeps([107,8,1,9,10,11,2,12,13,14,15,16,3,17,18,5,19,20,21,22,23,24,25,26,27,28,0,4,6,7,29,30,31,32,33,34,35,36,37,38,80,108,109,110,59,46,45,111,44,87,75,94,95,55,112,62,113,114,115,53,54,56,102,88,67,82,116,64,117,118,104])),r=d.zone.callbacks(),c=await n({refs:s,client:t,browser:o.standalone.browser,realCdpTransport:o.standalone.realCdpTransport,instanceId:o.instanceId,runtimeMode:o.standalone.runtimeMode,sprinkleManager:d.manager,addSprinkle:(e,t,n)=>r.addSprinkle(e,t,n),removeSprinkle:e=>r.removeSprinkle(e),getController:()=>e.getController(),getSelectedJid:()=>e.getSelected()?.id??`cone`,agentHandle:m,workUnits:p,restoreLocalChrome:()=>{e.wiring.refreshScoops?.();let n=e.getSelected();n&&Hc(s,n,p.currentUnits(),e=>t.getScoop(e))},openFs:g,openWriter:async()=>(await h()).writer,window,log:a,kernelReadyDeadline:o.kernelReadyDeadline});e.wiring.notifyScoopStateChanged=()=>c.scheduleScoopsListBroadcast(),e.wiring.notifyUnitStatus=(e,t)=>c.broadcastUnitStatus(e,t===`processing`?`processing`:`ready`)}}).catch(e=>a.error(`WC sprinkle/tray wiring failed`,e));{let n=new rr(new _r),r=Er(new $s({collection:{listScoops:()=>t.getScoops(),isProcessing:e=>t.isProcessing(e),getAgentMessages:()=>null,loadPersistedSessions:()=>n.loadAgentSessions(),loadUiChatSessions:()=>n.loadChatSessions(),wait:e=>new Promise(t=>setTimeout(t,e))},knownSecrets:oc(),snapshotStore:{read:async e=>{let{reader:t}=await h();return Vi(t,e)},write:async(e,t,n)=>{let{writer:r}=await h();return Ri(r,e,t,n)},discardIfUnindexed:async e=>{let{writer:t}=await h();return Bi(t,e)}},vfs:{readFile:async(e,t)=>(await h()).reader.readFile(e,t),readDir:async e=>(await h()).reader.readDir(e),stat:async e=>(await h()).reader.stat(e)},getActiveSessionInfo:()=>{let t=Hn(Q(e.wiring).currentUnits());return{id:t?.id??`session-${Date.now()}`,title:t?.name??`Active Session`}},version:`6.239.0`}));window.addEventListener(`unload`,r,{once:!0})}let C=!1,w=()=>C?Promise.resolve():(C=!0,(async()=>{try{let[{getTranscriptExportService:e},{transcriptZipToBlob:t,downloadTranscriptBlob:n}]=await Promise.all([i(()=>Promise.resolve().then(()=>Tr),void 0),i(()=>import(`./wc-transcript-export-Bg4-Bg4b.js`),__vite__mapDeps([119,2,108,113,114,1]))]),r=ee(),a=r==null?{kind:`active`}:{kind:`frozen`,sessionId:r},o=await e().export(a,{}),{filename:s}=o;await n(await t(o),s)}catch(e){a.error(`Transcript export failed`,e),i(async()=>{let{showTranscriptExportFailure:e}=await import(`./wc-transcript-export-Bg4-Bg4b.js`);return{showTranscriptExportFailure:e}},__vite__mapDeps([119,2,108,113,114,1])).then(({showTranscriptExportFailure:t})=>t(e)).catch(e=>a.error(`Transcript export notice failed`,e))}finally{C=!1}})());if(i(async()=>{let{wireWcNav:e}=await import(`./wc-nav-nmgBtf5f.js`);return{wireWcNav:e}},__vite__mapDeps([120,2,17,21,55,56,1,53,54,8,9,10,11,12,13,14,15,16,3,18,5,19,20,22,23,24,25,26,27,28,6,7,29,30,31,32,33,35,67,62,104])).then(({wireWcNav:e})=>e({refs:s,client:t,workUnits:p,getUnits:()=>p.currentUnits(),log:a,onExportTranscript:w,shortcuts:s.shortcuts,persistKeyboardTrigger:async e=>{let{writer:t,reader:n}=await h(),{writeShortcutTrigger:r}=await i(async()=>{let{writeShortcutTrigger:e}=await import(`./wc-shortcut-config-5vUzFHFF.js`);return{writeShortcutTrigger:e}},__vite__mapDeps([99,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38]));await r({reader:n,writer:t},e)}})).catch(e=>a.error(`WC nav wiring failed`,e)),i(async()=>{let{getComposerSpeech:e,setComposerSpeechInstanceId:t}=await import(`./composer-speech-DlI-Cx5J.js`);return{getComposerSpeech:e,setComposerSpeechInstanceId:t}},__vite__mapDeps([121,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,59,73,74,75,122])).then(({getComposerSpeech:e,setComposerSpeechInstanceId:t})=>{let n=s.composer;t(o.instanceId),n.speech=e(),n.setAttribute(`ptt`,``)}).catch(e=>a.error(`WC push-to-talk wiring failed`,e)),i(async()=>{let{setSpeakAssetsInstanceId:e}=await import(`./speak-BhmMqs9a.js`);return{setSpeakAssetsInstanceId:e}},__vite__mapDeps([72,2,3,21,73,74,0,1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,75])).then(({setSpeakAssetsInstanceId:e})=>e(o.instanceId)).catch(e=>a.error(`WC say warmup wiring failed`,e)),o.standalone)return()=>{i(async()=>{let{schedulePendingSessionCatchup:e}=await import(`./new-session-Dp8xDbm-.js`);return{schedulePendingSessionCatchup:e}},__vite__mapDeps([66,2,3,17,7,8,1,9,10,11,12,13,14,15,16,18,5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,53,54,6,35,55,56,51,60,47,0,4,34,36,37,38,48,49,52,61,62,63,64])).then(({schedulePendingSessionCatchup:e})=>e({openVfs:async()=>(await h()).writer,onComplete:x})).catch(e=>a.warn(`Pending session catch-up scheduling failed`,e))}}function Hd(e){let t=!1,n=()=>i(()=>import(`./boot-stall-overlay-Cs-FNlf8.js`),[]);return{onBootProgress:r=>{t=!0,n().then(t=>t.showBootStage(e,r))},onReadyStall:r=>{t=!0,n().then(t=>t.showBootStallOverlay(e,r))},dismiss:()=>{t&&n().then(t=>{t.removeBootStallOverlay(e),t.removeBootStage(e)})}}}async function Ud(e,t,n=`standalone`){let{browser:r,realCdpTransport:a,instanceId:o,localApiBaseUrl:s,bridgeToken:c,localLickWsUrl:l,extensionDelegateId:u,attachLickForwardingClient:d}=await bt({runtimeMode:n,envBaseUrl:null,window,log:t}),{floatKindForRuntimeMode:f,floatLabelForKind:p,resolveStandaloneFloatKind:m}=await i(async()=>{let{floatKindForRuntimeMode:e,floatLabelForKind:t,resolveStandaloneFloatKind:n}=await Promise.resolve().then(()=>Ql);return{floatKindForRuntimeMode:e,floatLabelForKind:t,resolveStandaloneFloatKind:n}},void 0),h=n===`standalone`?await m():f(n),g=p(h);o&&vt(o);let{syncFsBridgeEnabled:_,syncFsChannelNonce:v}=Il(),y=Hd(document),b,x,{boot:S}=await su(e,t,{floatKind:h,floatLabel:g,connect:e=>{b=Ko({realCdpTransport:a,reconnectCdp:()=>r.reconnectIfNeeded(),instanceId:o,makeClient:t=>new Do(Ec(e.wiring),t),localApiBaseUrl:s,bridgeToken:c,syncFsBridgeEnabled:_,syncFsChannelNonce:v,localLickWsUrl:l,extensionDelegateId:u,flagFloat:n,onWorkerScriptError:()=>{yt()},onBootProgress:y.onBootProgress,onReadyStall:y.onReadyStall,onLateReady:()=>{yt()}}),Po({send:e=>b.client.sendRaw(e)}),d?.(b.client);let i=ko(b.client);return{client:Q(e.wiring),host:i,workbench:(e,s)=>{x=Vd(e,b.client,s,i,t,{instanceId:o,standalone:{browser:r,floatKind:h,realCdpTransport:a,runtimeMode:n},kernelReadyDeadline:{pause:()=>b.pauseReadyDeadline(),restart:()=>b.restartReadyDeadline()}})}}}});S.setRestoringSessions(!0);let{setupSudoStandalone:ee}=await i(async()=>{let{setupSudoStandalone:e}=await import(`./main-CslAwAF2.js`).then(e=>e.c);return{setupSudoStandalone:e}},__vite__mapDeps([53,1,54,8,9,10,11,2,12,13,14,15,16,3,17,18,5,19,20,21,22,23,24,25,26,27,28,6,7,29,30,31,32,33,35,55,56]));await ee({log:t});try{await b.ready}finally{y.dismiss()}S.wiring.notifyReady?.(),S.setRestoringSessions(!1),globalThis.__slicc_kernel_ready=!0,t.info(`WC live shell ready`,{scoops:b.client.getScoops().length}),x?.();let{consumeAutoPrompt:C}=await i(async()=>{let{consumeAutoPrompt:e}=await import(`./auto-prompt-Mj-vUQeB.js`);return{consumeAutoPrompt:e}},[]),w=C(window.location.search);w&&(S.getController()?.sendUserMessage(w),t.info(`Auto-prompt submitted`,{length:w.length}))}export{Ya as A,zi as B,Do as C,Ka as D,ro as E,Ji as F,rr as G,Or as H,xa as I,qi as L,Za as M,eo as N,$a as O,no as P,Ga as R,ko as S,io as T,Tr as U,Kr as V,_r as W,Oc as _,Ll as a,Q as b,Dl as c,jl as d,Kc as f,kc as g,Dc as h,Rl as i,Qa as j,to as k,Cl as l,zc as m,yd as n,wl as o,Gc as p,su as r,kl as s,Vd as t,El as u,Ac as v,fo as w,Mo as x,Ec as y,ya as z};
|