sliccy 5.31.3 → 5.31.5
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/assets/{account-store-SL9GSzVk.js → account-store-Bk7BU4R2.js} +2 -2
- package/dist/ui/assets/account-store-CWYCPgAg.js +103 -0
- package/dist/ui/assets/adobe-b9KONAKs.js +2 -0
- package/dist/ui/assets/{adobe-oauth-state-X5E5a44s.js → adobe-oauth-state-mA3vu6Bf.js} +1 -1
- package/dist/ui/assets/adobe-xFuU2zCa.js +1 -0
- package/dist/ui/assets/{agent-message-to-chat-C1C-ZYPB.js → agent-message-to-chat-D7tDL1mh.js} +1 -1
- package/dist/ui/assets/anthropic-messages-DP3-Xd3J.js +39 -0
- package/dist/ui/assets/{anthropic-LjoeX6v-.js → anthropic-messages-DSmP2_-Q.js} +6 -6
- package/dist/ui/assets/{apps-BQ_qFSmZ.js → apps-DjoNkGOL.js} +1 -1
- package/dist/ui/assets/azure-openai-DbeGNEJJ.js +1 -0
- package/dist/ui/assets/{azure-openai-g-MISqMy.js → azure-openai-r8cj7flx.js} +1 -1
- package/dist/ui/assets/azure-openai-responses-CEEm6_Xn.js +1 -0
- package/dist/ui/assets/azure-openai-responses-YO8iO-Ch.js +1 -0
- package/dist/ui/assets/bedrock-camp-DVKDCEuf.js +1 -0
- package/dist/ui/assets/bedrock-camp-DbZ6Mjym.js +1 -0
- package/dist/ui/assets/cerebras-DHXm2Opl.js +1 -0
- package/dist/ui/assets/cerebras-DSz7FIO_.js +1 -0
- package/dist/ui/assets/compat-DADQxxLV.js +2 -0
- package/dist/ui/assets/completionchunk-B2eUYPOo.js +40 -0
- package/dist/ui/assets/completionchunk-BsT4qCtf.js +40 -0
- package/dist/ui/assets/{connect-surface-C37aNu3W.js → connect-surface-Ce0cz8Sc.js} +1 -1
- package/dist/ui/assets/{context-compaction-DvlXtgVG.js → context-compaction-DaxQExZG.js} +1 -1
- package/dist/ui/assets/dip-7kvHeBSg.js +1 -0
- package/dist/ui/assets/{dist-Z_lsorao.js → dist-Bp_iacBp.js} +1 -1
- package/dist/ui/assets/{dist-Crm-xEtc.js → dist-ClXA2s8_.js} +1 -1
- package/dist/ui/assets/{ensure-speech-assets-C16fjyEc.js → ensure-speech-assets-CBkFedDM.js} +1 -1
- package/dist/ui/assets/esp8266-BuqxV-Rf.js +1 -0
- package/dist/ui/assets/{esptool-operations-DS77K1xA.js → esptool-operations-Dyb_KlG3.js} +2 -2
- package/dist/ui/assets/{fs-CJe7ORQQ.js → fs-CtR0lVGQ.js} +1 -1
- package/dist/ui/assets/{fs-4jha6tKU.js → fs-Cza4C_VI.js} +2 -2
- package/dist/ui/assets/{github-bHdfOCia.js → github-CyuBASDb.js} +2 -2
- package/dist/ui/assets/{github-B7MJQ6o8.js → github-D6l0k87E.js} +1 -1
- package/dist/ui/assets/github-copilot-BxtkvNkA.js +2 -0
- package/dist/ui/assets/github-copilot-CgxdBB7O.js +1 -0
- package/dist/ui/assets/github-copilot-headers-DRgtIyTm.js +1 -0
- package/dist/ui/assets/google-generative-ai-Cz3VHJVe.js +1 -0
- package/dist/ui/assets/google-generative-ai-DRLjqQHr.js +1 -0
- package/dist/ui/assets/{google-shared-CwjAeP6N.js → google-shared-0Fg2dFO2.js} +1 -1
- package/dist/ui/assets/{google-shared-CFmFmYdk.js → google-shared-mehyRjje.js} +1 -1
- package/dist/ui/assets/google-vertex-C8F4Q-3-.js +1 -0
- package/dist/ui/assets/google-vertex-DI_ybVGc.js +1 -0
- package/dist/ui/assets/headers-CbDaTl3c.js +1 -0
- package/dist/ui/assets/{hear-DVfG4tMB.js → hear-DPr4m8os.js} +1 -1
- package/dist/ui/assets/{kernel-worker-DU_V0U3r.js → kernel-worker-DZdJjW09.js} +1193 -1193
- package/dist/ui/assets/{kokoro-engine-BCF6RB67.js → kokoro-engine-DtX15dky.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-CWz8ua2f.js → lick-ws-bridge-DW_om-XF.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-Bw7A25PO.js → lick-ws-bridge-F1bk9Ndr.js} +1 -1
- package/dist/ui/assets/{local-llm-CUYHWkoy.js → local-llm-BUh467MT.js} +2 -2
- package/dist/ui/assets/main-DVF1KaMV.js +24 -0
- package/dist/ui/assets/mistral-conversations-BD1LHG49.js +8 -0
- package/dist/ui/assets/mistral-conversations-CoropYyn.js +7 -0
- package/dist/ui/assets/models-ByRUWfA-.js +1 -0
- package/dist/ui/assets/{mount-COvarpEy.js → mount-BJAgT6cd.js} +2 -2
- package/dist/ui/assets/{mount-DhKiCtt7.js → mount-CAEbJLup.js} +1 -1
- package/dist/ui/assets/{new-session-COz75sHo.js → new-session-DuIKoj8h.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-BRe2dg9j.js → oauth-bootstrap-C1t3F5l9.js} +2 -2
- package/dist/ui/assets/{openai-codex-Bg862N5_.js → openai-codex-7a3yMxhL.js} +1 -1
- package/dist/ui/assets/openai-codex-BNJ1y0s8.js +1 -0
- package/dist/ui/assets/openai-codex-responses-DUWTsNB0.js +7 -0
- package/dist/ui/assets/openai-codex-responses-DcE8b3Us.js +7 -0
- package/dist/ui/assets/openai-completions-2m5htnw8.js +5 -0
- package/dist/ui/assets/openai-completions-CPxuOo6h.js +5 -0
- package/dist/ui/assets/openai-responses-BIaF8Olv.js +1 -0
- package/dist/ui/assets/openai-responses-D3YJWUR5.js +1 -0
- package/dist/ui/assets/openai-responses-shared-1KvKQf-4.js +12 -0
- package/dist/ui/assets/openai-responses-shared-CEQMR7Nx.js +12 -0
- package/dist/ui/assets/openrouter-images-CHaqAs_0.js +1 -0
- package/dist/ui/assets/openrouter-images-CIagBWVL.js +1 -0
- package/dist/ui/assets/otel-BvlmHUjk.js +3 -0
- package/dist/ui/assets/otel-CCT7TRJr.js +3 -0
- package/dist/ui/assets/{page-follower-tray-CKjmGVTI.js → page-follower-tray-wxp2UQxg.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-DV_SVK7O.js → panel-rpc-handlers-CfN2Vxm8.js} +2 -2
- package/dist/ui/assets/{provider-C1MeNgf6.js → provider-CDfndD9E.js} +2 -2
- package/dist/ui/assets/{provider-CH9Vg0CP.js → provider-CYVtAuph.js} +1 -1
- package/dist/ui/assets/provider-env-D37PhSJu.js +1 -0
- package/dist/ui/assets/provider-env-DwY8YuMk.js +1 -0
- package/dist/ui/assets/provider-store-access-BCxDzrP_.js +1 -0
- package/dist/ui/assets/provider-store-access-C0J_PJos.js +1 -0
- package/dist/ui/assets/providers-BrRzKc33.js +2 -0
- package/dist/ui/assets/{providers-DTc9cavg.js → providers-CzILNNm-.js} +1 -1
- package/dist/ui/assets/quick-llm-C3DL1kkz.js +1 -0
- package/dist/ui/assets/session-freezer-BAlnZq3r.js +1 -0
- package/dist/ui/assets/{speak-qQJqxyY_.js → speak-BvV9R1Ep.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-DqB-1sMP.js → sprinkle-manager-WFdDIrH2.js} +1 -1
- package/dist/ui/assets/{sprinkle-renderer-Bc0oWiBK.js → sprinkle-renderer-Bd0WVTH3.js} +1 -1
- package/dist/ui/assets/{store-CQZC3J0e.js → store-DYEVj3Mn.js} +1 -1
- package/dist/ui/assets/{sudo-DDua5CDS.js → sudo-Dov5vvU-.js} +1 -1
- package/dist/ui/assets/transform-messages-CQuDksPz.js +1 -0
- package/dist/ui/assets/transform-messages-D7OsqBmU.js +1 -0
- package/dist/ui/assets/{transformers-env-Bd5uUAET.js → transformers-env-DtlYTSDz.js} +1 -1
- package/dist/ui/assets/{tray-leader-tUG5SYx1.js → tray-leader-DYLxucjO.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-DFSM2v0u.js → tray-leave-runtime-bo512Gb_.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-SjHrqVRd.js → upgrade-detection-ssTKZKw3.js} +1 -1
- package/dist/ui/assets/{voice-reply-Cfv2GJPY.js → voice-reply-C7IdeZWx.js} +1 -1
- package/dist/ui/assets/{wc-attach-BLShAwZU.js → wc-attach-DqUMF3SN.js} +2 -2
- package/dist/ui/assets/wc-extension-C4v5cPUY.js +2 -0
- package/dist/ui/assets/{wc-follower-DcPEJsCg.js → wc-follower-Crqux2kQ.js} +3 -3
- package/dist/ui/assets/wc-live-DQFQdors.js +258 -0
- package/dist/ui/assets/{wc-nav-BipzeLE6.js → wc-nav-CaLNkUtj.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-CcG_XrLd.js → wc-onboarding-Dl79TUXT.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-BYxtEGbt.js → wc-placeholder-CbKpW6j0.js} +3 -3
- package/dist/ui/assets/{wc-settings-CdRw8sxH.js → wc-settings-BCItZ-R5.js} +2 -2
- package/dist/ui/assets/{wc-shell-CrTQtlJQ.js → wc-shell-BPSFQuzD.js} +4 -4
- package/dist/ui/assets/{wc-sprinkles-CiD8jtkB.js → wc-sprinkles-DFSkoMFZ.js} +2 -2
- package/dist/ui/assets/{wc-tray-CSrI5SrA.js → wc-tray-CB5grpTa.js} +2 -2
- package/dist/ui/assets/{whisper-engine-6ZaZ9EaS.js → whisper-engine-CDLEuuEq.js} +1 -1
- package/dist/ui/assets/xai-grok-BHUG3fUE.js +1 -0
- package/dist/ui/assets/{xai-grok-Bjh8Mg84.js → xai-grok-CwvM0E_f.js} +1 -1
- package/dist/ui/index.html +9 -9
- package/dist/ui/packages/webapp/index.html +9 -9
- package/package.json +2 -2
- package/dist/ui/assets/account-store-BSEcudvg.js +0 -99
- package/dist/ui/assets/adobe-DbSSf4Ld.js +0 -1
- package/dist/ui/assets/adobe-SNd1IfRO.js +0 -2
- package/dist/ui/assets/anthropic-BOEkIcb-.js +0 -39
- package/dist/ui/assets/azure-openai-C4FPpKAs.js +0 -1
- package/dist/ui/assets/azure-openai-responses-CbJrQGi8.js +0 -1
- package/dist/ui/assets/azure-openai-responses-DPSrcT4o.js +0 -1
- package/dist/ui/assets/bedrock-camp-DjKgax8m.js +0 -1
- package/dist/ui/assets/bedrock-camp-DlP7CPgV.js +0 -5
- package/dist/ui/assets/cerebras-D2PjlO7P.js +0 -1
- package/dist/ui/assets/cerebras-zumaaXYF.js +0 -1
- package/dist/ui/assets/diagnostics-DRDFDs4d.js +0 -1
- package/dist/ui/assets/diagnostics-mI-AnKx_.js +0 -1
- package/dist/ui/assets/dip-CZO83CmG.js +0 -1
- package/dist/ui/assets/dist-D69OmKNn.js +0 -4
- package/dist/ui/assets/esp8266-f57A77mF.js +0 -1
- package/dist/ui/assets/event-stream-BJI_nGaK.js +0 -1
- package/dist/ui/assets/github-copilot-B3U5ZsUu.js +0 -1
- package/dist/ui/assets/github-copilot-Brb8tPWW.js +0 -2
- package/dist/ui/assets/github-copilot-headers-DZtWWv8W.js +0 -1
- package/dist/ui/assets/google-C3U0TK_l.js +0 -1
- package/dist/ui/assets/google-DPvIPcfE.js +0 -1
- package/dist/ui/assets/google-vertex-BbeV3aSP.js +0 -1
- package/dist/ui/assets/google-vertex-CEGsokz8.js +0 -1
- package/dist/ui/assets/headers-DO1UzNKu.js +0 -1
- package/dist/ui/assets/main-LqqRM1F-.js +0 -24
- package/dist/ui/assets/mistral-CLF3Mo4W.js +0 -46
- package/dist/ui/assets/mistral-DkJAVbOW.js +0 -46
- package/dist/ui/assets/openai-codex-BYbsJPYQ.js +0 -1
- package/dist/ui/assets/openai-codex-responses-B2oZ1hgB.js +0 -7
- package/dist/ui/assets/openai-codex-responses-Dumyd9t2.js +0 -7
- package/dist/ui/assets/openai-completions-B2n4Op2S.js +0 -5
- package/dist/ui/assets/openai-completions-aHU8w14d.js +0 -5
- package/dist/ui/assets/openai-responses-4ryIAXQS.js +0 -1
- package/dist/ui/assets/openai-responses-BurVahs3.js +0 -1
- package/dist/ui/assets/openai-responses-shared-BebU8o_f.js +0 -12
- package/dist/ui/assets/openai-responses-shared-D9O9OCYB.js +0 -12
- package/dist/ui/assets/openrouter-B1ruTb6k.js +0 -1
- package/dist/ui/assets/openrouter-XmffhsNH.js +0 -1
- package/dist/ui/assets/provider-store-access-DEnkpFQB.js +0 -1
- package/dist/ui/assets/provider-store-access-hYm5ykP5.js +0 -1
- package/dist/ui/assets/providers-BYABmiE-.js +0 -2
- package/dist/ui/assets/quick-llm-CpQ7FC1y.js +0 -1
- package/dist/ui/assets/session-freezer-ClZHZ4rq.js +0 -1
- package/dist/ui/assets/transform-messages-BjP6vDPY.js +0 -1
- package/dist/ui/assets/transform-messages-DiIjWKhh.js +0 -1
- package/dist/ui/assets/wc-extension-9BJC8pnc.js +0 -2
- package/dist/ui/assets/wc-live-CpCIXFgr.js +0 -258
- package/dist/ui/assets/xai-grok-BClQ5lXS.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function e(e,t,n){return{temperature:t?.temperature,maxTokens:t?.maxTokens,signal:t?.signal,apiKey:n||t?.apiKey,transport:t?.transport,cacheRetention:t?.cacheRetention,sessionId:t?.sessionId,headers:t?.headers,onPayload:t?.onPayload,onResponse:t?.onResponse,timeoutMs:t?.timeoutMs,websocketConnectTimeoutMs:t?.websocketConnectTimeoutMs,maxRetries:t?.maxRetries,maxRetryDelayMs:t?.maxRetryDelayMs,metadata:t?.metadata}}function t(e){return e===`xhigh`?`high`:e}function n(e,n,r,i){let a={minimal:1024,low:2048,medium:8192,high:16384,...i}[t(r)],o=e===void 0?n:Math.min(e+a,n);return o<=a&&(a=Math.max(0,o-1024)),{maxTokens:o,thinkingBudget:a}}function r(e,t){let n=[],r=!1;for(let i of e){if(i.type===`image`){r||n.push({type:`text`,text:t}),r=!0;continue}n.push(i),r=i.text===t}return n}function i(e,t){return t.input.includes(`image`)?e:e.map(e=>e.role===`user`&&Array.isArray(e.content)?{...e,content:r(e.content,`(image omitted: model does not support images)`)}:e.role===`toolResult`?{...e,content:r(e.content,`(tool image omitted: model does not support images)`)}:e)}function a(e,t,n){let r=new Map,a=i(e,t).map(e=>{if(e.role===`user`)return e;if(e.role===`toolResult`){let t=r.get(e.toolCallId);return t&&t!==e.toolCallId?{...e,toolCallId:t}:e}if(e.role===`assistant`){let i=e,a=i.provider===t.provider&&i.api===t.api&&i.model===t.id,o=i.content.flatMap(e=>{if(e.type===`thinking`)return e.redacted?a?e:[]:a&&e.thinkingSignature?e:!e.thinking||e.thinking.trim()===``?[]:a?e:{type:`text`,text:e.thinking};if(e.type===`text`)return a?e:{type:`text`,text:e.text};if(e.type===`toolCall`){let o=e,s=o;if(!a&&o.thoughtSignature&&(s={...o},delete s.thoughtSignature),!a&&n){let e=n(o.id,t,i);e!==o.id&&(r.set(o.id,e),s={...s,id:e})}return s}return e});return{...i,content:o}}return e}),o=[],s=[],c=new Set,l=()=>{if(s.length>0){for(let e of s)c.has(e.id)||o.push({role:`toolResult`,toolCallId:e.id,toolName:e.name,content:[{type:`text`,text:`No result provided`}],isError:!0,timestamp:Date.now()});s=[],c=new Set}};for(let e=0;e<a.length;e++){let t=a[e];if(t.role===`assistant`){l();let e=t;if(e.stopReason===`error`||e.stopReason===`aborted`)continue;let n=e.content.filter(e=>e.type===`toolCall`);n.length>0&&(s=n,c=new Set),o.push(t)}else t.role===`toolResult`?(c.add(t.toolCallId),o.push(t)):(t.role===`user`&&l(),o.push(t))}return l(),o}export{t as i,n,e as r,a as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/main-LqqRM1F-.js","assets/rolldown-runtime-aKtaBQYM.js","assets/modulepreload-polyfill-Dezn_h7o.js","assets/preload-helper-CZgWQFsJ.js","assets/account-store-SL9GSzVk.js","assets/dist-D69OmKNn.js","assets/__vite-browser-external-SwrSgYTf.js","assets/event-stream-BJI_nGaK.js","assets/json-parse-C7d6hyOc.js","assets/context-compaction-DvlXtgVG.js","assets/logger-DDBAeTLF.js","assets/src-BdPw21ST.js","assets/proxied-fetch-iGqLvoxh.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-DnYeyyJY.js","assets/secrets-bridge-client-x_puVSDN.js","assets/port-bridge-client-BJ5rcoKH.js","assets/tool-ui-DfXu6quJ.js","assets/providers-BYABmiE-.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-DjKgax8m.js","assets/transform-messages-DiIjWKhh.js","assets/messages-BD4p8GuF.js","assets/clipboard-DuHpK59o.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./preload-helper-CZgWQFsJ.js";import{wireWcDetached as t}from"./wc-detached-B3WCbbZT.js";import{attachWcClient as n,createWcLiveCallbacks as r,n as i,prepareWcShell as a}from"./wc-live-CpCIXFgr.js";async function o(o,s,c=!1){let l=a(o,`extension · wc`),u=new i(r(l.wiring));n(l,u,s),t({client:u,isDetachedSelf:c});let{setupSudoExtension:d}=await e(async()=>{let{setupSudoExtension:e}=await import(`./main-LqqRM1F-.js`).then(e=>e._);return{setupSudoExtension: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]));await d({log:s}),u.requestState(),s.info(`WC extension shell connected to offscreen engine`)}export{o as mountWcUiExtension};
|
|
@@ -1,258 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mount-picker-popup-Cw_D7c_n.js","assets/rolldown-runtime-aKtaBQYM.js","assets/logger-DDBAeTLF.js","assets/picker-popup-CpulHQsi.js","assets/usb-picker-SsbXAvwt.js","assets/serial-picker-1VVNQI8D.js","assets/hid-picker-CE6gGmQt.js","assets/usb-device-registry-k6vTKonT.js","assets/serial-port-registry-DsPZvGpT.js","assets/hid-device-registry-6w-g8ZpF.js","assets/quick-llm-CpQ7FC1y.js","assets/dist-D69OmKNn.js","assets/preload-helper-CZgWQFsJ.js","assets/__vite-browser-external-SwrSgYTf.js","assets/event-stream-BJI_nGaK.js","assets/json-parse-C7d6hyOc.js","assets/account-store-SL9GSzVk.js","assets/context-compaction-DvlXtgVG.js","assets/src-BdPw21ST.js","assets/proxied-fetch-iGqLvoxh.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-DnYeyyJY.js","assets/secrets-bridge-client-x_puVSDN.js","assets/port-bridge-client-BJ5rcoKH.js","assets/tool-ui-DfXu6quJ.js","assets/providers-BYABmiE-.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-DjKgax8m.js","assets/transform-messages-DiIjWKhh.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-C5g936Qd.js","assets/main-LqqRM1F-.js","assets/modulepreload-polyfill-Dezn_h7o.js","assets/messages-BD4p8GuF.js","assets/clipboard-DuHpK59o.js","assets/new-session-COz75sHo.js","assets/session-store-DAM8GRJ0.js","assets/wc-shell-CrTQtlJQ.js","assets/speech-C5U8h4In.js","assets/soundscape-cues-5_sT5Un6.js","assets/wc-shell-WkeczD9x.css","assets/remote-vfs-client-Z2qM01yP.js","assets/types-idfTVsM8.js","assets/writable-vfs-client-BKZGifKZ.js","assets/wc-onboarding-CcG_XrLd.js","assets/welcome-detection-CQY88hjL.js","assets/legacy-styles-CuB1P3LZ.js","assets/theme-Bgsl5v2i.js","assets/theme-engine-DqVfCCym.js","assets/soundscape-TvriK11t.js","assets/voice-reply-Cfv2GJPY.js","assets/speak-DnUM0f7v.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-CjH48rcA.js","assets/shared-BtKwD6I9.js","assets/mime-types-ugOWOUZ9.js","assets/wc-placeholder-BYxtEGbt.js","assets/wc-attach-BLShAwZU.js","assets/wc-permissions-registry-Blyunq37.js","assets/remote-terminal-view-e7H-FPmf.js","assets/picker-approval-Dc390nC7.js","assets/browser-2wdq8OwU.js","assets/terminal-session-client-CbAduNfC.js","assets/secret-env-kbusPsVw.js","assets/wc-permissions-BEqQSC-7.js","assets/wc-permissions-providers-Cdznv6xX.js","assets/tray-leader-tUG5SYx1.js","assets/mount-table-store-CfQUN_2R.js","assets/remote-sprinkle-vfs-e81pZJKo.js","assets/wc-sprinkles-CiD8jtkB.js","assets/wc-tray-CSrI5SrA.js","assets/remote-cdp-transport-DTCu2BgA.js","assets/synthetic-cdp-transport-DLIt5SkY.js","assets/page-follower-tray-CKjmGVTI.js","assets/sprinkle-renderer-Bc0oWiBK.js","assets/wc-nav-BipzeLE6.js","assets/composer-speech-C8TRsqUk.js","assets/whisper-session-Duou3zwG.js","assets/wc-float-label-Dh8xz8qh.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./dist-D69OmKNn.js";import{t}from"./preload-helper-CZgWQFsJ.js";import{F as n,I as r}from"./account-store-SL9GSzVk.js";import{i,n as a,r as o,t as s}from"./context-compaction-DvlXtgVG.js";import{t as c}from"./logger-DDBAeTLF.js";import{a as l,o as u}from"./src-BdPw21ST.js";import{t as d}from"./tool-ui-DfXu6quJ.js";import{C as f,a as p,c as m,g as h,i as g,l as _,m as ee,u as te}from"./main-LqqRM1F-.js";import{t as ne}from"./wc-permissions-registry-Blyunq37.js";import{n as re,r as ie}from"./hid-device-registry-6w-g8ZpF.js";import{a as ae,i as oe}from"./serial-port-registry-DsPZvGpT.js";import{C as se,D as ce,E as le,S as ue,_ as de,a as fe,g as pe,h as me,k as he,l as ge,m as _e,n as ve,o as ye,s as be,w as xe,x as Se,y as Ce}from"./usb-operations-D-YdmmuG.js";import{i as we,r as Te}from"./usb-device-registry-k6vTKonT.js";import{t as Ee}from"./icons-C5g936Qd.js";import{r as De}from"./tray-leader-tUG5SYx1.js";import{n as Oe}from"./shared-BtKwD6I9.js";import{_ as ke,b as Ae,c as je,d as v,g as Me,h as Ne,i as Pe,l as Fe,m as Ie,n as Le,o as Re,p as ze,r as Be,s as Ve,t as He,u as Ue}from"./wc-shell-CrTQtlJQ.js";import{i as We,n as Ge,r as y}from"./sprinkle-renderer-Bc0oWiBK.js";import{n as Ke}from"./sprinkle-bridge-CZr9Wcf7.js";import{a as qe,n as Je,r as b}from"./theme-Bgsl5v2i.js";var Ye=typeof chrome<`u`&&!!chrome?.runtime?.id;async function x(e,t){if(t?.aborted)throw new DOMException(`aborted`,`AbortError`);let n=await C(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 S=null;function Xe(){if(S)return S;if(typeof BroadcastChannel>`u`)return null;try{S=new BroadcastChannel(`preview-vfs`)}catch{return null}return S}async function C(e,t,n){let r=Xe();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 Ze=[`/shared/sprinkles/`,`/workspace/skills/sprinkles/`,`/workspace/sprinkles/`],Qe=[`/shared/`,`/workspace/skills/sprinkles/`,`/workspace/sprinkles/`];function $e(e){return Ze.some(t=>e.startsWith(t))}function et(e){return typeof e!=`string`||!e.startsWith(`/`)||e.includes(`..`)?!1:Qe.some(t=>e.startsWith(t))}var w=new WeakSet,tt=`,
|
|
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
|
-
}`,nt=`,
|
|
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
|
-
}`,rt=`,
|
|
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 it(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?tt:``}${e?nt:``}${e?rt:``}
|
|
92
|
-
};
|
|
93
|
-
function reportHeight() {
|
|
94
|
-
parent.postMessage({ type: 'dip-height',
|
|
95
|
-
height: document.documentElement.scrollHeight }, '*');
|
|
96
|
-
}
|
|
97
|
-
window.addEventListener('message', function(e) {
|
|
98
|
-
if (!e.data || typeof e.data.type !== 'string') return;
|
|
99
|
-
if (e.data.type === 'slicc-theme') {
|
|
100
|
-
document.documentElement.classList.toggle('theme-light', !!e.data.isLight);
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
/* Pushed device events (currently 'hid:inputreport'). The host
|
|
104
|
-
attaches the underlying listener on slicc.hid.open(handle) for
|
|
105
|
-
this dip; teardown happens automatically on dispose. */
|
|
106
|
-
if (e.data.type === 'dip-device-event' && e.data.channel === 'hid:inputreport') {
|
|
107
|
-
_hidInputReportListeners.forEach(function(cb) {
|
|
108
|
-
try { cb(e.data.payload); } catch(ex) {}
|
|
109
|
-
});
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
/* VFS callback responses target the originating call by id. */
|
|
113
|
-
if (e.data.id && _callbacks[e.data.id]) {
|
|
114
|
-
var cb = _callbacks[e.data.id];
|
|
115
|
-
delete _callbacks[e.data.id];
|
|
116
|
-
cb(e.data);
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
/* Forward any other slicc-* message to in-page listeners via a
|
|
120
|
-
CustomEvent. Dips can opt in with
|
|
121
|
-
window.addEventListener('slicc-message', (ev) => ev.detail). */
|
|
122
|
-
if (e.data.type.indexOf('slicc-') === 0) {
|
|
123
|
-
try {
|
|
124
|
-
document.dispatchEvent(new CustomEvent('slicc-message', { detail: e.data }));
|
|
125
|
-
} catch (ex) {}
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
window.addEventListener('load', function() {
|
|
129
|
-
reportHeight();
|
|
130
|
-
new ResizeObserver(reportHeight).observe(document.body);
|
|
131
|
-
});
|
|
132
|
-
/* Support data-action attributes (Tool UI compat) — auto-lick on click.
|
|
133
|
-
Also intercept <a href> clicks and relay to the parent so links open
|
|
134
|
-
despite the iframe sandbox blocking top-level navigation. */
|
|
135
|
-
document.addEventListener('click', function(e) {
|
|
136
|
-
var el = e.target;
|
|
137
|
-
while (el && el !== document.body) {
|
|
138
|
-
if (el.dataset && el.dataset.action) {
|
|
139
|
-
var actionData = el.dataset.actionData;
|
|
140
|
-
if (actionData) { try { actionData = JSON.parse(actionData); } catch(ex) {} }
|
|
141
|
-
/* Picker hint (e.g. data-picker="directory") needs the parent to
|
|
142
|
-
run File System Access API on the click activation chain.
|
|
143
|
-
Forward as a separate message so the parent can run
|
|
144
|
-
showDirectoryPicker, stash the handle in IDB, then dispatch
|
|
145
|
-
the lick with the IDB key. */
|
|
146
|
-
var picker = el.dataset.picker;
|
|
147
|
-
if (picker) {
|
|
148
|
-
parent.postMessage({
|
|
149
|
-
type: 'dip-picker-action',
|
|
150
|
-
action: el.dataset.action,
|
|
151
|
-
data: actionData || null,
|
|
152
|
-
picker: picker,
|
|
153
|
-
}, '*');
|
|
154
|
-
} else {
|
|
155
|
-
window.slicc.lick({ action: el.dataset.action, data: actionData || null });
|
|
156
|
-
}
|
|
157
|
-
e.preventDefault();
|
|
158
|
-
e.stopPropagation();
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
if (el.tagName === 'A' && el.getAttribute('href')) {
|
|
162
|
-
var href = el.getAttribute('href');
|
|
163
|
-
/* Allow in-iframe anchor navigation (#foo). Skip javascript: for safety. */
|
|
164
|
-
if (href.charAt(0) === '#') return;
|
|
165
|
-
if (/^javascript:/i.test(href)) { e.preventDefault(); return; }
|
|
166
|
-
/* Resolve relative URLs against the iframe's base. */
|
|
167
|
-
var resolved;
|
|
168
|
-
try { resolved = new URL(href, document.baseURI).href; } catch(ex) { resolved = href; }
|
|
169
|
-
parent.postMessage({ type: 'dip-open-link', url: resolved }, '*');
|
|
170
|
-
e.preventDefault();
|
|
171
|
-
e.stopPropagation();
|
|
172
|
-
return;
|
|
173
|
-
}
|
|
174
|
-
el = el.parentElement;
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
|
-
})();`}var at=`html,body{margin:0;padding:0;overflow:hidden;background:transparent;box-sizing:border-box}
|
|
178
|
-
*,*::before,*::after{box-sizing:inherit}
|
|
179
|
-
/* Vertical breathing room around dip content. Horizontal padding is owned
|
|
180
|
-
by the dip's own content (e.g. .sprinkle-action-card__body) so shtml
|
|
181
|
-
widgets that already pad themselves don't end up double-indented. The
|
|
182
|
-
ResizeObserver on document.body reports the post-padding scrollHeight
|
|
183
|
-
correctly, so auto-height continues to work. The .sprinkle-inline rule
|
|
184
|
-
(set on the iframe body) carries 2px of horizontal padding so the 1px
|
|
185
|
-
focus ring (box-shadow:0 0 0 1px on inputs/select below) doesn't get
|
|
186
|
-
clipped at the iframe paint boundary. */
|
|
187
|
-
body{padding:12px 0;font-family:var(--s2-font-family, sans-serif);font-size:13px;color:var(--s2-content-default)}
|
|
188
|
-
.sprinkle-inline{padding:var(--s2-spacing-100) 2px}
|
|
189
|
-
.sprinkle-inline .sprinkle-btn{padding:4px 12px;font-size:12px;height:28px;box-shadow:none}
|
|
190
|
-
.sprinkle-inline .sprinkle-btn:not([class*="sprinkle-btn--"]){background:var(--s2-bg-elevated)}
|
|
191
|
-
.sprinkle-inline .sprinkle-card{box-shadow:none;margin:0}
|
|
192
|
-
.sprinkle-inline .sprinkle-action-card{margin:0;width:100%}
|
|
193
|
-
.sprinkle-inline .sprinkle-action-card .sprinkle-table{width:100%}
|
|
194
|
-
.sprinkle-inline .sprinkle-grid{width:100%}
|
|
195
|
-
input[type="range"]{width:100%;height:4px;-webkit-appearance:none;appearance:none;background:var(--s2-gray-300);border-radius:2px;outline:none;cursor:default}
|
|
196
|
-
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)}
|
|
197
|
-
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)}
|
|
198
|
-
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}
|
|
199
|
-
input[type="text"]:focus,input[type="number"]:focus,textarea:focus{border-color:var(--s2-accent);box-shadow:0 0 0 1px var(--s2-accent)}
|
|
200
|
-
input[type="text"]::placeholder,textarea::placeholder{color:var(--s2-content-disabled,var(--s2-gray-400))}
|
|
201
|
-
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}
|
|
202
|
-
select:focus{border-color:var(--s2-accent);box-shadow:0 0 0 1px var(--s2-accent)}
|
|
203
|
-
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}
|
|
204
|
-
button:hover{background:color-mix(in srgb,var(--s2-content-default) 6%,transparent)}
|
|
205
|
-
button:disabled{opacity:0.4;pointer-events:none}
|
|
206
|
-
canvas{display:block;width:100%;border-radius:8px}
|
|
207
|
-
mark{background:color-mix(in srgb,var(--s2-accent) 25%,transparent);color:inherit;border-radius:2px;padding:0 2px}
|
|
208
|
-
.c-purple{background:#3C3489;color:#EEEDFE}.c-teal{background:#085041;color:#E1F5EE}
|
|
209
|
-
.c-coral{background:#712B13;color:#FAECE7}.c-pink{background:#72243E;color:#FBEAF0}
|
|
210
|
-
.c-gray{background:#444441;color:#F1EFE8}.c-blue{background:#0C447C;color:#E6F1FB}
|
|
211
|
-
.c-amber{background:#633806;color:#FAEEDA}.c-red{background:#791F1F;color:#FCEBEB}
|
|
212
|
-
.c-green{background:#27500A;color:#EAF3DE}`,ot=`(function(){
|
|
213
|
-
window.addEventListener('message', function(e){
|
|
214
|
-
if (!e.data || e.data.type !== 'dip-draft-update') return;
|
|
215
|
-
var content = typeof e.data.content === 'string' ? e.data.content : '';
|
|
216
|
-
document.body.innerHTML = content;
|
|
217
|
-
if (window.lucide && typeof window.lucide.createIcons === 'function') {
|
|
218
|
-
try { window.lucide.createIcons(); } catch(ex){}
|
|
219
|
-
}
|
|
220
|
-
});
|
|
221
|
-
})();`;function st(e,t,n=!1){let r=Ge(),i=Je()?` class="theme-light"`:``,a=t||e.includes(`<slicc-editor`),o=t||e.includes(`<slicc-diff`),s=t?`<script>${ot}<\/script>`:``;return`<!DOCTYPE html>
|
|
222
|
-
<html${i}><head>
|
|
223
|
-
<meta charset="utf-8">
|
|
224
|
-
<style>${r}</style>
|
|
225
|
-
<style>${at}</style>
|
|
226
|
-
<script>${it(n&&!t)}<\/script>
|
|
227
|
-
${s}
|
|
228
|
-
${a?`<script src="/slicc-editor.js"><\/script>`:``}
|
|
229
|
-
${o?`<script src="/slicc-diff.js"><\/script>`:``}
|
|
230
|
-
<script src="/lucide-icons.js"><\/script>
|
|
231
|
-
</head>
|
|
232
|
-
<body class="sprinkle-inline">${e}</body></html>`}var T=new Set;function ct(e){if(typeof e?.type!=`string`||e.type.indexOf(`slicc-`)!==0)throw Error(`broadcastToDips: payload.type must start with 'slicc-'`);for(let t of T)try{t.postMessage(e,`*`)}catch{}}var E;function lt(e){E=e}function D(e){return e.length===0?`''`:`'${e.replace(/'/g,`'\\''`)}'`}function ut(e,t){let n=t?.cwd??`.`,r=t?.allowedCommands??`*`,i=[`agent`];return t?.model&&i.push(`--model`,D(t.model)),t?.thinking&&i.push(`--thinking`,D(t.thinking)),t?.readOnly&&i.push(`--read-only`,D(t.readOnly)),i.push(D(n),D(r),D(e)),i.join(` `)}async function O(e){if(!E)return{stdout:``,stderr:`exec: shell bridge not available
|
|
233
|
-
`,exitCode:127};try{return await E(e)}catch(e){return{stdout:``,stderr:`exec: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function dt(e,t){let n=await O(ut(e,t));return{stdout:n.stdout||n.stderr,exitCode:n.exitCode}}async function ft(e,t){let n=await Ke(O,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 k=new WeakMap;function pt(e,t){try{e.postMessage({type:`dip-device-event`,channel:`hid:inputreport`,payload:t},`*`)}catch{}}async function mt(e,t){let n=k.get(e);if(n||(n=new Map,k.set(e,n)),n.has(t))return;let r=await ue(ie(),t,n=>{let r=n.bytes instanceof Uint8Array?n.bytes:new Uint8Array(n.bytes);pt(e,{handle:t,reportId:n.reportId,data:r})});n.set(t,r)}async function ht(e,t){let n=k.get(e);if(!n)return;let r=n.get(t);if(r){n.delete(t);try{await Promise.resolve(r())}catch{}}n.size===0&&k.delete(e)}function gt(e){let t=k.get(e);if(t){for(let e of t.values())try{Promise.resolve(e()).catch(()=>{})}catch{}k.delete(e)}}function _t(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 vt(e,t,n){let r=ie();switch(t){case`list`:{let e=re();if(!e)throw Error(`WebHID is unavailable in this browser`);return pe(r,e)}case`request`:{let e=re();if(!e)throw Error(`WebHID is unavailable in this browser`);return Ce(r,e,n[0]??[])}case`info`:return me(r,n[0]);case`open`:{let t=n[0];return await de(r,t),await mt(e,t),{ok:!0}}case`close`:{let t=n[0];return await ht(e,t),await _e(r,t),{ok:!0}}case`sendReport`:{let e=n[0],t=n[1],i=_t(n[2]);return await Se(r,e,t,i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)),{ok:!0}}default:throw Error(`hid: unknown op '${t}'`)}}async function yt(e,t){let n=ae();switch(e){case`list`:{let e=oe();if(!e)throw Error(`Web Serial is unavailable in this browser`);return le(n,e)}case`request`:{let e=oe();if(!e)throw Error(`Web Serial is unavailable in this browser`);return he(n,e,t[0]??[])}case`info`:return xe(n,t[0]);case`open`:{let e=t[0];return await ce(n,e,t[1]??{baudRate:9600}),{ok:!0}}case`close`:return await se(n,t[0]),{ok:!0};default:throw Error(`serial: unknown op '${e}'`)}}async function bt(e,t){let n=we();switch(e){case`list`:{let e=Te();if(!e)throw Error(`WebUSB is unavailable in this browser`);return ye(n,e)}case`request`:{let e=Te();if(!e)throw Error(`WebUSB is unavailable in this browser`);return ge(n,e,t[0]??[])}case`info`:return fe(n,t[0]);case`open`:return await be(n,t[0]),{ok:!0};case`close`:return await ve(n,t[0]),{ok:!0};default:throw Error(`usb: unknown op '${e}'`)}}async function xt(e,t,n,r){switch(t){case`hid`:return vt(e,n,r);case`serial`:return yt(n,r);case`usb`:return bt(n,r);default:throw Error(`unknown device channel '${t}'`)}}async function St(e,t){if(!e||typeof t.id!=`number`)return!1;let n=n=>{try{e.postMessage({...n,id:t.id},`*`)}catch{}};if(!w.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 xt(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 A(e,t){if(!e||typeof t.id!=`number`)return!1;let n=n=>{try{e.postMessage({...n,id:t.id},`*`)}catch{}};if(!w.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 O(typeof t.cmd==`string`?t.cmd:``)}),!0;if(t.type===`dip-agent`)return n({type:`dip-agent-response`,result:await dt(typeof t.prompt==`string`?t.prompt:``,t.opts)}),!0;if(t.type===`dip-jsh`){try{n({type:`dip-jsh-response`,result:await ft(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 j(e,t,n,r=!1){let i=st(t,!1,r);if(Ye)return Mt(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&&(b(a.contentWindow),T.add(a.contentWindow),r&&w.add(a.contentWindow)),a.addEventListener(`load`,()=>{b(a.contentWindow),a.contentWindow&&(T.add(a.contentWindow),r&&w.add(a.contentWindow)),y()&&We(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`?wt(t.url):t.type===`dip-picker-action`?M(t,n):t.type===`dip-readfile`||t.type===`dip-exists`||t.type===`dip-stat`?Ct(a.contentWindow,t):t.type===`dip-exec`||t.type===`dip-agent`||t.type===`dip-jsh`?A(a.contentWindow,t):t.type===`dip-device-op`&&St(a.contentWindow,t))};window.addEventListener(`message`,o);let s=null;if(y()&&typeof IntersectionObserver<`u`){let e=!1,t=new IntersectionObserver(n=>{if(n[n.length-1].isIntersecting){if(e){e=!1;return}t.unobserve(a),We(a,()=>{e=!0,t.observe(a)})}});s=t,t.observe(a)}return{dispose(){s?.disconnect(),window.removeEventListener(`message`,o),qe(a.contentWindow),a.contentWindow&&(T.delete(a.contentWindow),w.delete(a.contentWindow),gt(a.contentWindow)),a.remove()}}}async function Ct(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(!w.has(e))return r({type:`${t.type}-response`,error:`VFS access not allowed for this dip`}),!0;if(!et(n))return r({type:`${t.type}-response`,error:`VFS path not allowed: ${n}`}),!0;if(t.type===`dip-readfile`){let e=await C(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 C(n,!0)!==null}),!0;if(t.type===`dip-stat`){let e=await C(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 wt(e){if(!(typeof e!=`string`||!e)&&/^(https?:|mailto:)/i.test(e))try{window.open(e,`_blank`,`noopener,noreferrer`)}catch{}}function Tt(e,t){let n=[],r=e.querySelectorAll(`pre > code.language-shtml`);for(let e of r){let r=e.parentElement,i=e.textContent??``,a=document.createElement(`div`);a.className=`msg__dip`,r.replaceWith(a),n.push(j(a,i,t,!1))}let i=e.querySelectorAll(`img[src$=".shtml"]`);for(let e of i){let r=e.getAttribute(`src`);if(!r)continue;let i=document.createElement(`div`);i.className=`msg__dip`,e.alt&&i.setAttribute(`title`,e.alt),e.replaceWith(i);let a=new AbortController,o=null,s=!1;n.push({dispose(){s=!0,a.abort(),o&&=(o.dispose(),null)}});let c=r.startsWith(`/`),l=typeof navigator<`u`&&!!navigator.serviceWorker?.controller,u=c?`/preview${r}`:r,d=async()=>{if(c&&!l)return x(r,a.signal);let e;try{e=await fetch(u,{signal:a.signal})}catch(e){if(e?.name===`AbortError`)throw e;if(c)return x(r,a.signal);throw e}if(e.ok)return e.text();if(c)return x(r,a.signal);throw Error(`HTTP ${e.status}`)},f=c&&$e(r);d().then(e=>{s||!i.isConnected||(o=j(i,e,t,f))}).catch(e=>{s||e?.name===`AbortError`||(i.textContent=`Failed to load dip: ${r}`,i.style.cssText=`padding:8px;font-size:12px;color:var(--s2-negative);font-family:var(--s2-font-mono)`)})}return n}function Et(e){for(let t of e)try{t.dispose()}catch{}e.length=0}async function M(e,t){let n=e.data??null,r=Array.isArray(n?.filters)?n.filters:[];if(Ye){await Dt(e.picker,e.action,r,t);return}switch(e.picker){case`directory`:await Ot(e.action,t);return;case`usb-device`:await kt(e.action,r,t);return;case`serial-port`:await At(e.action,r,t);return;case`hid-device`:await jt(e.action,r,t);return;default:t(e.action,e.data);return}}async function Dt(e,n,r,i){try{switch(e){case`directory`:{let{openMountPickerPopup:e}=await t(async()=>{let{openMountPickerPopup:e}=await import(`./mount-picker-popup-Cw_D7c_n.js`).then(e=>e.n);return{openMountPickerPopup:e}},__vite__mapDeps([0,1,2,3])),r=await e();r.cancelled?i(n,{cancelled:!0}):r.error?i(n,{error:r.error}):r.idbKey?i(n,{handleInIdb:!0,idbKey:r.idbKey,dirName:r.dirName??``}):i(n,{error:`mount picker returned no handle key`});return}case`usb-device`:{let{openUsbPickerPopup:e}=await t(async()=>{let{openUsbPickerPopup:e}=await import(`./usb-picker-SsbXAvwt.js`).then(e=>e.t);return{openUsbPickerPopup:e}},__vite__mapDeps([4,1,3])),a=await e(r);`cancelled`in a?i(n,{cancelled:!0}):`error`in a?i(n,{error:a.error}):i(n,{granted:!0,info:a.info});return}case`serial-port`:{let{openSerialPickerPopup:e}=await t(async()=>{let{openSerialPickerPopup:e}=await import(`./serial-picker-1VVNQI8D.js`).then(e=>e.t);return{openSerialPickerPopup:e}},__vite__mapDeps([5,1,3])),a=await e(r);`cancelled`in a?i(n,{cancelled:!0}):`error`in a?i(n,{error:a.error}):i(n,{granted:!0,info:a.info});return}case`hid-device`:{let{openHidPickerPopup:e}=await t(async()=>{let{openHidPickerPopup:e}=await import(`./hid-picker-CE6gGmQt.js`).then(e=>e.t);return{openHidPickerPopup:e}},__vite__mapDeps([6,1,3])),a=await e(r);`cancelled`in a?i(n,{cancelled:!0}):`error`in a?i(n,{error:a.error}):i(n,{granted:!0,info:a.info});return}default:i(n,{error:`unknown picker kind: ${e??`(none)`}`});return}}catch(e){i(n,{error:e instanceof Error?e.message:String(e)})}}async function N(e,t){let n=ne();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 P(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 Ot(e,n){let r=await N(`filesystem`);if(!r){n(e,{error:`File System Access API not available`});return}if(!r.ok){P(e,r,`File System Access API not available`,n);return}let i=r.grant.handle,a=`pendingMount:dip-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;try{let{storePendingHandle:e}=await t(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-Cw_D7c_n.js`).then(e=>e.n);return{storePendingHandle:e}},__vite__mapDeps([0,1,2,3]));await e(a,i)}catch(t){n(e,{error:`failed to store directory handle: ${t instanceof Error?t.message:String(t)}`});return}n(e,{handleInIdb:!0,idbKey:a,dirName:i.name})}async function kt(e,n,r){let i=await N(`usb`,{filters:n});if(!i){r(e,{error:`WebUSB is not available`});return}if(!i.ok){P(e,i,`WebUSB is not available`,r);return}let a=i.grant,{getSharedUsbRegistry:o,deviceToInfo:s}=await t(async()=>{let{getSharedUsbRegistry:e,deviceToInfo:t}=await import(`./usb-device-registry-k6vTKonT.js`).then(e=>e.a);return{getSharedUsbRegistry:e,deviceToInfo:t}},__vite__mapDeps([7,1])),c=o().register(a.device);r(e,{granted:!0,handle:c,info:s(c,a.device)})}async function At(e,n,r){let i=await N(`serial`,n.length?{filters:n}:void 0);if(!i){r(e,{error:`Web Serial is not available`});return}if(!i.ok){P(e,i,`Web Serial is not available`,r);return}let a=i.grant,o=await t(()=>import(`./serial-port-registry-DsPZvGpT.js`).then(e=>e.o),__vite__mapDeps([8,1])),s=o.getSharedSerialRegistry(),c=s.register(a.port),l=s.get(c);r(e,{granted:!0,handle:c,info:l?o.deviceToInfo(c,l):{handle:c}})}async function jt(e,n,r){let i=await N(`hid`,{filters:n});if(!i){r(e,{error:`WebHID is not available`});return}if(!i.ok){P(e,i,`WebHID is not available`,r);return}let a=i.grant,{getSharedHidRegistry:o,hidDeviceToInfo:s}=await t(async()=>{let{getSharedHidRegistry:e,hidDeviceToInfo:t}=await import(`./hid-device-registry-6w-g8ZpF.js`).then(e=>e.a);return{getSharedHidRegistry:e,hidDeviceToInfo:t}},__vite__mapDeps([9,1])),c=o(),l=a.devices.map(e=>s(c.register(e),e)),u=l[0];r(e,{granted:!0,handle:u.handle,info:u,devices:l})}function Mt(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`?wt(t.url):t.type===`dip-readfile`||t.type===`dip-exists`||t.type===`dip-stat`?Ct(i.contentWindow,t):t.type===`dip-exec`||t.type===`dip-agent`||t.type===`dip-jsh`?A(i.contentWindow,t):t.type===`dip-device-op`?St(i.contentWindow,t):t.type===`dip-picker-action`&&M(t,n))};return window.addEventListener(`message`,a),i.addEventListener(`load`,()=>{b(i.contentWindow),i.contentWindow&&(T.add(i.contentWindow),r&&w.add(i.contentWindow)),i.contentWindow?.postMessage({type:`dip-render`,srcdoc:t,isLight:Je()},`*`)},{once:!0}),{dispose(){window.removeEventListener(`message`,a),qe(i.contentWindow),i.contentWindow&&(T.delete(i.contentWindow),w.delete(i.contentWindow),gt(i.contentWindow)),i.remove()}}}var F=c(`cone-memory-budget`),Nt=4e3,Pt=2e3,Ft=1.25,I=`/workspace/CLAUDE.md`,It=`/sessions/index.json`,Lt=4096,Rt=/^## Auto-extracted/m,zt=`Consolidate the auto-extracted memory bullets below into a single tighter set of durable memories.
|
|
234
|
-
|
|
235
|
-
Rules:
|
|
236
|
-
- Output ONLY a single \`## Auto-extracted (consolidated)\` heading followed by markdown bullets.
|
|
237
|
-
- One fact per bullet. Drop duplicates and superseded facts. Keep the most recent / specific phrasing.
|
|
238
|
-
- Preserve concrete identifiers (file paths, URLs, IDs, names) verbatim.
|
|
239
|
-
- Be terse. Aim well under the original size.
|
|
240
|
-
- Do NOT add preamble, commentary, or any heading other than the single consolidated one.`;function Bt(e){return Math.round(Nt+Pt*Math.log2((Number.isFinite(e)&&e>=0?e:0)+2))}function Vt(e){let t=Rt.exec(e);if(!t)return{header:e,autoExtracted:``};let n=t.index;return{header:e.slice(0,n),autoExtracted:e.slice(n)}}async function Ht(e){try{let t=await e.readFile(It,{encoding:`utf-8`}),n=typeof t==`string`?t:new TextDecoder().decode(t),r=JSON.parse(n);return Array.isArray(r)?r.length:0}catch{return 0}}async function Ut(t){let{header:n,autoExtracted:r}=Vt(t.currentContent);if(!r.trim())return t.currentContent;let i=`You are a memory consolidation assistant. You are given a markdown file's "auto-extracted" section — a list of memory bullets accumulated across sessions of an AI coding assistant. Your job is to rewrite that section as a tighter, deduplicated set of durable memories that fits well within ${t.budget} characters.
|
|
241
|
-
|
|
242
|
-
<auto-extracted>
|
|
243
|
-
${r}
|
|
244
|
-
</auto-extracted>`,a={role:`user`,content:[{type:`text`,text:zt}],timestamp:Date.now()},o=await e(t.model,{systemPrompt:i,messages:[a]},{apiKey:t.apiKey,maxTokens:Lt,headers:t.headers,signal:t.signal});if(o.stopReason===`error`)throw Error(`Restructure call failed: ${o.errorMessage||`Unknown error`}`);let s=o.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
245
|
-
`).trim();if(!s)throw Error(`Restructure call returned empty content`);return`${n}${n.length===0||n.endsWith(`
|
|
246
|
-
`)?``:`
|
|
247
|
-
`}${s}\n`}async function Wt(e){if(!e.model||!e.apiKey)return{restructured:!1,reason:`no-llm`};let t=``;try{let n=await e.vfs.readFile(I,{encoding:`utf-8`});t=typeof n==`string`?n:new TextDecoder().decode(n)}catch{return{restructured:!1,reason:`missing-file`}}let n=await Ht(e.vfs),r=Bt(n),i=r*Ft;if(t.length<=i)return{restructured:!1,reason:`under-threshold`};F.info(`Cone memory over threshold — restructuring`,{size:t.length,budget:r,threshold:i,sessionCount:n});try{let n=await Ut({currentContent:t,budget:r,model:e.model,apiKey:e.apiKey,headers:e.headers,signal:e.signal});return await e.vfs.writeFile(I,n),F.info(`Cone memory restructured`,{before:t.length,after:n.length}),{restructured:!0}}catch(e){return F.warn(`Cone memory restructure failed — leaving appended content in place`,{error:e instanceof Error?e.message:String(e)}),{restructured:!1,reason:`error`}}}function L(e){let t=``;for(let n of e){let e=n.role===`user`?`User`:`Assistant`,r=n.role===`user`?Ae(n.content):n.content;if(t+=`## ${e}\n${r}\n\n`,n.attachments?.length&&(t+=`Attachments:\n${n.attachments.map(e=>`- ${i(e)}`).join(`
|
|
248
|
-
`)}\n\n`),n.toolCalls)for(let e of n.toolCalls)t+=`### Tool: ${e.name}\nInput: ${JSON.stringify(e.input,null,2)}\nResult: ${e.result??``}\n\n`}return t}var R=c(`session-freezer`),Gt=4,Kt=2048,qt=40,z=`/sessions`,B=`/sessions/index.json`;async function Jt(e){let t=await en(e.sessionStore);if(!t||t.messages.length<Gt)return R.info(`Skipping freeze: session below threshold or missing`,{messageCount:t?.messages.length??0}),null;let n=tn(t.messages),r=e.mode??`full`,i=r===`full`&&!!(e.apiKey&&e.model);await Zt(e,n,i);let a=await Qt(e,n,i)||cn(t.messages);return await $t(e,t,a,r,i?await Yt(e,a):void 0)}async function Yt(e,n){try{return Xt(await(e.pickIcon??(await t(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-CpQ7FC1y.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([10,1,11,12,13,14,15,16,17,2,18,19,20,21,22,23,24,25,26,27,28,29,30]))).pickLucideIcon)({subject:`"${n}" — an archived chat session`})??void 0)}catch(e){R.warn(`Icon pick failed (freeze still proceeds)`,{error:e instanceof Error?e.message:String(e)});return}}function Xt(e){if(e)return Ee(e)?e:void 0}async function Zt(e,t,n){if(!n){R.info(`LLM unavailable — skipping memory extraction; freezing anyway`);return}let r=``;try{r=await o({messages:t,instruction:s,model:e.model,apiKey:e.apiKey,maxTokens:Kt,headers:e.headers})}catch(e){R.warn(`Memory extraction call failed (freeze still proceeds)`,{error:e instanceof Error?e.message:String(e)});return}if(!r.trim()||r.trim()===`NONE`){R.info(`Memory extraction returned no durable memories`);return}try{await dn(e.vfs,r.trim(),`new-session`,{model:e.model,apiKey:e.apiKey,headers:e.headers}),R.info(`Memory extracted and appended on new-session`)}catch(e){R.warn(`Memory append failed`,{error:e instanceof Error?e.message:String(e)})}}async function Qt(e,t,n){if(!n)return``;try{return sn(await o({messages:t,instruction:a,model:e.model,apiKey:e.apiKey,maxTokens:qt,headers:e.headers}))}catch(e){return R.warn(`Title generation call failed (using heuristic)`,{error:e instanceof Error?e.message:String(e)}),``}}async function $t(e,t,n,r,i){let a=new Date().toISOString(),o=r===`quick`?`pending-${un()}.md`:`${a.replace(/[:.]/g,`-`)}-${ln(n)}.md`,s={id:t.id,title:n,frozenAt:a,createdAt:t.createdAt,updatedAt:t.updatedAt,messageCount:t.messages.length,messages:t.messages},c=on(s),l={filename:o,title:n,frozenAt:a,messageCount:t.messages.length,...i?{icon:i}:{},...r===`quick`?{pendingEnrichment:!0}:{}};try{return await V(e.vfs,z),await e.vfs.writeFile(`${z}/${o}`,c),await fn(e.vfs,l),await e.vfs.flush(),R.info(`Cone session frozen`,{filename:o,title:n,messageCount:t.messages.length}),{...l,archive:s}}catch(e){return R.warn(`Failed to write frozen session to VFS`,{error:e instanceof Error?e.message:String(e)}),null}}async function en(e){try{return await e.load(`session-cone`)}catch(e){return R.warn(`Failed to load session-cone`,{error:e instanceof Error?e.message:String(e)}),null}}function tn(e){return e.map(e=>({role:e.role,content:[{type:`text`,text:e.content}],timestamp:e.timestamp}))}var nn=`<!-- slicc:session-data
|
|
249
|
-
`,rn=`
|
|
250
|
-
-->`;function an(e){return e.map(e=>{let t={id:e.id,role:e.role,content:e.content,timestamp:e.timestamp};return e.attachments?.length&&(t.attachments=e.attachments),e.toolCalls?.length&&(t.toolCalls=e.toolCalls.map(e=>({id:e.id,name:e.name,input:e.input,...e.result===void 0?{}:{result:e.result},...e.isError?{isError:e.isError}:{}}))),e.source&&(t.source=e.source),e.channel&&(t.channel=e.channel),t})}function on(e){let t=`---\nid: ${e.id}\ntitle: ${JSON.stringify(e.title)}\nfrozenAt: ${e.frozenAt}\ncreatedAt: ${e.createdAt}\nupdatedAt: ${e.updatedAt}\nmessageCount: ${e.messageCount}\n---\n\n`,n=`${nn}${JSON.stringify(an(e.messages)).replace(/-->/g,`-- >`)}${rn}\n\n`,r=`# ${e.title}\n\n`;return t+n+r+L(e.messages)}function sn(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}function cn(e){let t=e.find(e=>e.role===`user`);if(!t?.content)return`untitled-session`;let n=t.content.trim().replace(/\s+/g,` `);return n.length>60?`${n.slice(0,60)}…`:n||`untitled-session`}function ln(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,48)||`session`}function un(){return`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`}async function V(e,t){try{await e.mkdir(t,{recursive:!0})}catch{}}async function dn(e,t,n,r){let i=`/workspace/CLAUDE.md`,a=``;try{let t=await e.readFile(i,{encoding:`utf-8`});a=typeof t==`string`?t:new TextDecoder().decode(t)}catch{await V(e,`/workspace`)}let o=`## Auto-extracted (${new Date().toISOString().slice(0,10)}, ${n})`,s=`${a.length===0||a.endsWith(`
|
|
251
|
-
`)?``:`
|
|
252
|
-
`}\n${o}\n\n${t}\n`;await e.writeFile(i,a+s);try{await Wt({vfs:e,model:r?.model,apiKey:r?.apiKey,headers:r?.headers,signal:r?.signal})}catch(e){R.warn(`Cone memory budget step threw (append already committed)`,{error:e instanceof Error?e.message:String(e)})}}async function fn(e,t){let n=[];try{let t=await e.readFile(B,{encoding:`utf-8`}),r=typeof t==`string`?t:new TextDecoder().decode(t),i=JSON.parse(r);Array.isArray(i)&&(n=i)}catch{}let r=[t,...n.filter(e=>e.filename!==t.filename)];await e.writeFile(B,JSON.stringify(r,null,2))}async function pn(e){try{let t=await e.readFile(B,{encoding:`utf-8`}),n=typeof t==`string`?t:new TextDecoder().decode(t),r=JSON.parse(n);return Array.isArray(r)?r:[]}catch{return[]}}function H(e){return`${z}/${e.filename}`}async function mn(e,t,n){if(!t.pendingEnrichment)return null;let r=await gn(e,t);if(r===null)return null;let i=_n(t,r);if(i===null)return null;let a=await vn(t,i,n);if(a===null)return null;let o=await hn(n,a.newTitle);return await yn(e,t,a.bullets,n),await bn(e,t,r,a.newTitle,o)}async function hn(e,t){if(e.pickIcon)try{return await Xt(await e.pickIcon({subject:`"${t}" — an archived chat session`})??void 0)}catch(e){R.warn(`Enrichment icon pick failed (continuing without icon)`,{error:e instanceof Error?e.message:String(e)});return}}async function gn(e,t){try{let n=await e.readFile(H(t),{encoding:`utf-8`});return typeof n==`string`?n:new TextDecoder().decode(n)}catch(e){return e?.code===`ENOENT`?R.info(`Pending archive missing — treating as already enriched`,{filename:t.filename}):R.warn(`Failed to read pending archive (entry stays pending)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),null}}function _n(e,t){let n;try{n=U(t).messages}catch(t){return R.warn(`Failed to parse pending archive — leaving entry intact`,{filename:e.filename,error:t instanceof Error?t.message:String(t)}),null}return n.length===0?(R.info(`Pending archive has no messages — skipping enrichment`,{filename:e.filename}),null):tn(n)}async function vn(e,t,n){let r=``;try{r=await o({messages:t,instruction:s,model:n.model,apiKey:n.apiKey,maxTokens:Kt,headers:n.headers})}catch(t){return R.warn(`Enrichment memory call failed (entry stays pending)`,{filename:e.filename,error:t instanceof Error?t.message:String(t)}),null}let i=``;try{i=sn(await o({messages:t,instruction:a,model:n.model,apiKey:n.apiKey,maxTokens:qt,headers:n.headers}))}catch(t){return R.warn(`Enrichment title call failed (entry stays pending)`,{filename:e.filename,error:t instanceof Error?t.message:String(t)}),null}return i?{bullets:r,newTitle:i}:(R.info(`Enrichment title call returned empty — entry stays pending`,{filename:e.filename}),null)}async function yn(e,t,n,r){let i=n.trim();if(!(!i||i===`NONE`))try{await dn(e,i,`pending-enrichment`,{model:r.model,apiKey:r.apiKey,headers:r.headers})}catch(e){R.warn(`Enrichment memory append failed (continuing with title rewrite)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)})}}async function bn(e,t,n,r,i){let a=H(t),o=xn(n,r),s=`${t.frozenAt.replace(/[:.]/g,`-`)}-${ln(r)}.md`,c=`${z}/${s}`;try{await V(e,z),await e.writeFile(c,o)}catch(e){return R.warn(`Enrichment write failed (entry stays pending)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),null}let l=i??t.icon,u={filename:s,title:r,frozenAt:t.frozenAt,messageCount:t.messageCount,...l?{icon:l}:{}};try{await Cn(e,t.filename,u)}catch(e){return R.warn(`Enrichment index update failed (entry may stay pending)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),null}if(c!==a)try{await e.rm(a)}catch(e){R.info(`Stale pending archive cleanup failed (harmless)`,{oldPath:a,error:e instanceof Error?e.message:String(e)})}try{await e.flush()}catch{}return R.info(`Pending session enriched`,{oldFilename:t.filename,newFilename:s,title:r}),u}function xn(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}`}var Sn=Promise.resolve();async function Cn(e,t,n){let r=async()=>{let r=[];try{let t=await e.readFile(B,{encoding:`utf-8`}),n=typeof t==`string`?t:new TextDecoder().decode(t),i=JSON.parse(n);Array.isArray(i)&&(r=i)}catch{}let i=r.findIndex(e=>e.filename===t),a;i===-1?a=[n,...r.filter(e=>e.filename!==n.filename)]:(a=r.slice(),a[i]=n,a=a.filter((e,t)=>t===i||e.filename!==n.filename)),await e.writeFile(B,JSON.stringify(a,null,2))},i=Sn.then(r,r);return Sn=i.then(()=>void 0,()=>void 0),i}function U(e){let t=e,n=`Untitled`,r=t.match(/^---\n([\s\S]*?)\n---\n+/);if(r){t=t.slice(r[0].length);let e=r[1].match(/^title:\s*(.+?)\s*$/m);if(e){let t=e[1].trim();if(t.startsWith(`"`))try{let e=JSON.parse(t);typeof e==`string`&&(n=e)}catch{n=t.replace(/^"|"$/g,``)}else n=t}}let i=t.match(/<!-- slicc:session-data\n([\s\S]*?)\n-->\n*/);if(i){try{let e=i[1].replace(/-- >/g,`-->`),t=JSON.parse(e);if(Array.isArray(t))return{title:n,messages:t}}catch{}t=t.replace(/<!-- slicc:session-data\n[\s\S]*?\n-->\n*/,``)}return t=t.replace(/^#\s+[^\n]*\n+/,``),{title:n,messages:wn(t)}}function wn(e){let t=[],n=/^## (User|Assistant)\s*\n/gm,r=[],i;for(;(i=n.exec(e))!==null;)r.push({role:i[1]===`User`?`user`:`assistant`,start:i.index,bodyStart:i.index+i[0].length});for(let n=0;n<r.length;n++){let i=n+1<r.length?r[n+1].start:e.length,a=e.slice(r[n].bodyStart,i).trim();t.push({id:`frozen-${n}`,role:r[n].role,content:a,timestamp:0})}return t}var Tn=`__slicc_binary__`,En=`b64`;function Dn(e){if(!e||typeof e!=`object`)return!1;let t=e;return t[Tn]===En&&typeof t.data==`string`}function W(e){if(e instanceof Uint8Array)return{[Tn]:En,data:u(e)};if(Array.isArray(e))return e.map(W);if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))t[n]=W(r);return t}return e}function G(e){if(Dn(e))return l(e.data);if(Array.isArray(e))return e.map(G);if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))t[n]=G(r);return t}return e}var On=c(`panel-transport`);function kn(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function An(){return{onMessage:e=>{let t=(t,n,r)=>(kn(t)&&e(G(t)),!1);return chrome.runtime.onMessage.addListener(t),()=>chrome.runtime.onMessage.removeListener(t)},send:(e,t)=>{let n=W(e);chrome.runtime.sendMessage({source:`panel`,payload:n}).catch(e=>{On.error(`failed to send to offscreen`,{error:e instanceof Error?e.message:String(e)})})}}}var K=c(`offscreen-client`),jn=class{eventListeners=new Set;callbacks;scoops=[];scoopStatuses=new Map;currentMessageId=new Map;ready=!1;stateRetryTimer=null;localFs=null;pendingClearAcks=new Map;pendingTranscriptRequests=new Map;pendingChatMessagesRequests=new Map;pendingStatsRequests=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._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??An(),this.setupMessageListener()}setLocalFS(e){this.localFs=e}getTransport(){return this.transport}createAgentHandle(){return{sendMessage:(e,t,n)=>{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)}`})},onEvent:e=>(this.eventListeners.add(e),()=>this.eventListeners.delete(e)),stop:()=>{this.selectedScoopJid&&this.send({type:`abort`,scoopJid:this.selectedScoopJid})}}}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){if(!e.isCone)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})}async unregisterScoop(e){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`})}setLocked(e){this.locked=e}setScoopThinkingLevel(e,t){this.send({type:`set-thinking-level`,scoopJid:e,level:t})}async clearAllMessages(){let e=`clear-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,t=new Promise(t=>{this.pendingClearAcks.set(e,t)});this.send({type:`clear-chat`,requestId:e}),await Promise.race([t,new Promise(e=>setTimeout(e,5e3))]),this.pendingClearAcks.delete(e)}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 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,originLabel:r})}sendToolUiAction(e,t,n){this.send({type:`tool-ui-action`,requestId:e,action:t,data:n})}sendWebhookEvent(e,t,n){this.send({type:`lick-webhook-event`,webhookId:e,headers:t,body:n})}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){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.callbacks.onCompactionStateChange?.(e.scoopJid,e.state);break;case`clear-chat-ack`:{let t=this.pendingClearAcks.get(e.requestId);t&&(this.pendingClearAcks.delete(e.requestId),t());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`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);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`session-stats`:{let t=e,n=this.pendingStatsRequests.get(t.requestId);n&&(this.pendingStatsRequests.delete(t.requestId),n({totalCost:t.totalCost,fills:t.fills,models:t.models??[],scoops:t.scoops??[]}));break}case`tray-runtime-status`:{let t=e;Mn(t.leader,t.follower);break}case`forward-lick`:this.forwardLickHandler?.(e.event);break;case`terminal-status`:case`terminal-output`:case`terminal-media-preview`:case`terminal-exit`:case`terminal-cleared`: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)})}break}}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)}handleAgentEvent(e){switch(e.eventType){case`text_delta`:case`tool_start`:case`tool_ui`:case`turn_end`:this.callbacks.onScoopActivity?.(e.scoopJid);break}if(e.scoopJid===this.selectedScoopJid)switch(e.eventType){case`text_delta`:{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:`content_delta`,messageId:t,text:e.text??``});break}case`tool_start`:{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_use_start`,messageId:t,toolName:e.toolName??``,toolInput:e.toolInput});break}case`tool_end`:{let t=this.currentMessageId.get(e.scoopJid);t&&this.emitToUI({type:`tool_result`,messageId:t,toolName:e.toolName??``,result:e.toolResult??``,isError:e.isError});break}case`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??``});break}case`tool_ui_done`:{let t=this.currentMessageId.get(e.scoopJid);t&&this.emitToUI({type:`tool_ui_done`,messageId:t,requestId:e.requestId??``});break}case`response_done`:{let t=this.currentMessageId.get(e.scoopJid);t&&(this.emitToUI({type:`content_done`,messageId:t}),this.currentMessageId.delete(e.scoopJid));break}case`turn_end`:{let t=this.currentMessageId.get(e.scoopJid)??`done-${e.scoopJid}-${q()}`;this.currentMessageId.delete(e.scoopJid),this.emitToUI({type:`turn_end`,messageId:t});break}}}handleScoopStatus(e){this.scoopStatuses.set(e.scoopJid,e.status),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)}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&&Mn(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){e.scoopJid===this.selectedScoopJid&&this.emitToUI({type:`error`,error:e.error})}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{jid:e.jid,name:e.name,folder:e.folder,isCone:e.isCone,type:e.isCone?`cone`:`scoop`,requiresTrigger:!e.isCone,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 Mn(e,t){De({state:e.state,error:e.error,reconnectAttempts:e.reconnectAttempts,session:e.session?{...e.session}:null}),ee({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 J(e){return!e.includes(`\0`)}function Nn(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(!J(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(!J(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),!J(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),!J(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(J(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 Pn(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 Fn(e){let t=Pn(e);return{onMessage:e=>t.onMessage(e),send:(e,n)=>{t.send({source:`panel`,payload:e},n)}}}function In(e,t){let n=Pn(e),r=new Map,i=n.onMessage(async e=>{let i=e;if(i?.type){if(i.type===`cdp-cmd`){let r=e;try{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(i.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(i.type===`cdp-unsubscribe`){let n=e,i=r.get(n.event);if(!i)return;r.delete(n.event),t.off(n.event,i);return}}});return()=>{i();for(let[e,n]of r)t.off(e,n);r.clear()}}function Ln(){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 Rn(e){let{worker:t,realCdpTransport:n,callbacks:r}=e,i=e.readyTimeoutMs??3e4,a=e.localStorageSeed??{},o=new MessageChannel,s=new MessageChannel,c=new jn(r,Fn(o.port1)),l=In(s.port1,n),u=null,d=new Promise((e,t)=>{let n=null,r=null,a=()=>{n!==null&&(clearTimeout(n),n=null)};u=()=>{r!==null&&(o.port1.removeEventListener(`message`,r),r=null),a()},r=t=>{t.data?.type===`kernel-worker-ready`&&(u?.(),e())},o.port1.addEventListener(`message`,r),a(),n=setTimeout(()=>{u?.(),t(Error(`Kernel worker did not signal ready within ${i}ms`))},i)}),f={type:`kernel-worker-init`,kernelPort:o.port2,cdpPort:s.port2,localStorageSeed:a,instanceId:e.instanceId,localApiBaseUrl:e.localApiBaseUrl??null,bridgeToken:e.bridgeToken??null,localLickWsUrl:e.localLickWsUrl??null,extensionDelegateId:e.extensionDelegateId??null};t.postMessage(f,[o.port2,s.port2]);let p=!1;return{client:c,ready:d,dispose(){if(!p){p=!0,u?.(),l();try{t.postMessage({type:`kernel-worker-shutdown`})}catch{}t.terminate(),o.port1.close(),s.port1.close()}}}}function zn(e){return Rn({worker:e.workerUrl?new Worker(e.workerUrl,{type:`module`}):new Worker(new URL(`/assets/kernel-worker-DU_V0U3r.js`,``+import.meta.url),{type:`module`}),realCdpTransport:e.realCdpTransport,callbacks:e.callbacks,readyTimeoutMs:e.readyTimeoutMs,localStorageSeed:e.localStorageSeed??Ln(),instanceId:e.instanceId,localApiBaseUrl:e.localApiBaseUrl,bridgeToken:e.bridgeToken,localLickWsUrl:e.localLickWsUrl,extensionDelegateId:e.extensionDelegateId})}var Bn=`<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 Vn(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 Hn(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(Bn));let a=()=>{r.style.color=`var(--green)`,setTimeout(()=>{r.style.color=`var(--txt-3)`},1500)};return r.addEventListener(`short-click`,()=>{(async()=>{await t(Vn(e.getMessages())??L([...e.getMessages()])),a()})()}),r.addEventListener(`long-press`,()=>{(async()=>{let n=L([...e.getMessages()]);n&&(await t(n),a())})()}),n.append(r),n}function Y(){return`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function Un(e){try{let t=new DOMParser().parseFromString(e,`text/html`).querySelector(`.sprinkle-action-card__header`);if(t){t.querySelector(`.sprinkle-badge`)?.remove();let e=t.textContent?.trim();if(e)return e}}catch{}return`Approval requested`}function Wn(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`)}function Gn(e){return`
|
|
253
|
-
<div class="sprinkle-action-card">
|
|
254
|
-
<div class="sprinkle-action-card__header">${Wn(Un(e))} <span class="sprinkle-badge sprinkle-badge--informative">pending</span></div>
|
|
255
|
-
<div class="sprinkle-action-card__body">Waiting for approval on the leader…</div>
|
|
256
|
-
</div>
|
|
257
|
-
`}function Kn(e){let t={id:e.id,text:e.content};return e.attachments?.length&&(t.attachments=e.attachments.length),t}var qn=class{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m;#h;#g=[];#_=[];#v=new Map;#y=null;#b=null;#x=``;#S=!1;#C=!1;#w=`thinking`;#T=0;#E=null;#D=new Set;#O=new Map;constructor(e){this.#e=e.thread,this.#t=e.agent,this.#n=e.onProcessingChange,this.#r=e.onBusyPhaseChange,this.#i=e.onMessageRendered,this.#a=e.onMessageDisposed,this.#o=e.onTurnComplete,this.#s=e.resolveTelemetryContext,this.#c=e.onQueuedChange,this.#l=e.onQueuedCancel,this.#u=e.onToolUiAction,this.#d=e.readOnlyToolUi??!1,this.#f=e.agent.onEvent(e=>this.#I(e)),this.#h=e=>this.#Y(e),this.#e.addEventListener(`slicc-error-retry`,this.#h)}dispose(){this.#f(),this.#e.removeEventListener(`slicc-error-retry`,this.#h);for(let e of[...this.#O.keys()])this.#J(e)}get processing(){return this.#C}getMessages(){return this.#g.map(e=>({...e}))}setAgent(e){this.#f(),this.#t=e,this.#f=e.onEvent(e=>this.#I(e))}setOnLocalUserMessage(e){this.#p=e}setOnLocalProcessingChange(e){this.#m=e}addUserMessage(e,t){this.#Q({id:Y(),role:`user`,content:e,timestamp:Date.now()})}getQueuedMessages(){return this.#_.map(Kn)}removeQueuedMessage(e){let t=this.#_.filter(t=>t.id!==e);t.length!==this.#_.length&&(this.#_=t,this.#A())}#k(){if(this.#_.length===0)return;let e=this.#_;this.#_=[];for(let t of e)this.#Q(t);this.#A()}#A(){this.#c?.(this.#_.map(Kn))}addAssistantMessage(e){this.#Q({id:Y(),role:`assistant`,content:e,timestamp:Date.now()})}loadMessages(e){for(let e of this.#v.keys())this.#a?.(e);for(let e of[...this.#O.keys()])this.#J(e);if(this.#_.length>0){if(this.#l)for(let e of this.#_)try{this.#l(e.id)}catch(e){console.error(`onQueuedCancel hook threw`,e)}this.#_=[],this.#A()}this.#g=Re(e);let t=[...this.#g].reverse().find(e=>e.isStreaming);this.#y=t?.id??null,t&&(this.#b=t.id),this.#x=``,this.#S=!1,this.#v.clear();let n=[],r=``;for(let e of this.#g){let t=new Date(e.timestamp).toDateString();t!==r&&(n.push(Ve(e.timestamp)),r=t);let i=this.#Z(e);this.#v.set(e.id,i),n.push(...i)}let i=this.#e;typeof i.replaceContent==`function`?i.replaceContent(...n):i.replaceChildren(...n),this.#ne();for(let e of this.#g)e.isStreaming||this.#i?.(e,this.#v.get(e.id)??[]);this.#F(),this.#ie()}sendUserMessage(e,t,n){let r=e.trim();if(!r&&!t?.length)return;let i=n?.dictation?this.#j(r):r,a={id:Y(),role:`user`,content:i,timestamp:Date.now(),attachments:t?.length?t:void 0};this.#C?(this.#_.push(a),this.#A()):this.#Q(a),this.#t.sendMessage(i,a.id,a.attachments),this.#M();try{let e=n?.dictation?Ae(i):i;this.#p?.(e,a.id,a.attachments)}catch(e){console.error(`onLocalUserMessage hook threw`,e)}}#j(e){return Me(e,ke())}#M(){if(this.#s)try{let e=this.#s();if(!e)return;g(e.scoopName,e.model)}catch{}}addLickMessage(e,t,n,r,i){let a=this.#g[this.#g.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.#$(a);return}this.#Q({id:e,role:`user`,content:t,timestamp:r,source:`lick`,channel:n,lickId:i,lickState:i?`pending`:void 0,queued:this.#C?!0:void 0})}updateLickState(e,t){let n=this.#g.find(t=>t.lickId===e);n&&(n.lickState=t,this.#$(n))}setProcessing(e){if(this.#C!==e){this.#C=e,e&&(this.#b=null),e&&(this.#T=0,this.#N(`thinking`)),e&&this.#k(),e||this.#F(),this.#n?.(e);try{this.#m?.(e)}catch(e){console.error(`onLocalProcessingChange hook threw`,e)}e||this.#P()}}#N(e){this.#w!==e&&(this.#w=e,this.#r?.(e))}#P(){let e=this.#b;if(this.#b=null,!this.#o)return;let t=e?this.#X(e):null;this.#o(t?{...t}:null)}#F(){let e=this.#g[this.#g.length-1];if(!(e?.role===`assistant`&&!e.isStreaming)){this.#E?.remove();return}this.#E??=Hn({getMessages:()=>this.getMessages()}),(this.#e.inner??this.#e).append(this.#E)}#I(e){switch(e.type){case`message_start`:this.#L(e.messageId);break;case`content_delta`:this.#R(e.messageId,e.text);break;case`content_done`:this.#B(e.messageId);break;case`tool_use_start`:this.#V(e.messageId,e.toolName,e.toolInput);break;case`tool_result`:this.#H(e.messageId,e.toolName,e.result,e.isError);break;case`tool_ui`:this.#K(e.messageId,e.requestId,e.html);break;case`tool_ui_done`:this.#q(e.requestId);break;case`turn_end`:this.#U(e.messageId);break;case`error`:this.#W(e.error);break;case`screenshot`:case`terminal_output`:break;default:break}}#L(e){this.setProcessing(!0),this.#y=e,this.#b=e,this.#Q({id:e,role:`assistant`,content:``,timestamp:Date.now(),isStreaming:!0,toolCalls:[]})}#R(e,t){this.#X(e)&&(this.#x+=t,!this.#S&&(this.#S=!0,requestAnimationFrame(()=>this.#z(e))))}#z(e){if(this.#S=!1,!this.#x)return;let t=this.#X(e);t&&(t.content+=this.#x,this.#x=``,this.#$(t))}#B(e){let t=this.#X(e);t&&(this.#x&&this.#y===e&&(t.content+=this.#x),this.#x=``,this.#S=!1,t.isStreaming=!1,this.#$(t))}#V(e,t,n){let r=this.#X(e);r&&(r.toolCalls=r.toolCalls??[],r.toolCalls.push({id:Y(),name:t,input:n}),this.#T+=1,this.#N(`tool`),this.#$(r))}#H(e,t,n,r){let i=this.#X(e),a=[...i?.toolCalls??[]].reverse().find(e=>e.name===t&&e.result===void 0);!i||!a||(a.result=n,a.isError=r,this.#T=Math.max(0,this.#T-1),this.#T===0&&this.#N(`thinking`),this.#$(i))}#U(e){let t=this.#X(e);t?.isStreaming&&(t.isStreaming=!1,this.#$(t)),this.#y=null,this.setProcessing(!1)}#W(e){this.setProcessing(!1),this.#Q({id:Y(),role:`assistant`,content:e,timestamp:Date.now(),error:!0}),this.#G(e)}#G(e){try{if(te(e)||_(e)||m(e))return;p(`error-card`,e)}catch{}}#K(e,t,n){this.#J(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.#d){let e=j(r,Gn(n),()=>{},!1);this.#O.set(t,{instance:e,container:r});return}let i=j(r,n,(e,n)=>{this.#u?.(t,e,n)},!1);this.#O.set(t,{instance:i,container:r}),this.#u?.(t,d,void 0)}#q(e){this.#J(e)}#J(e){let t=this.#O.get(e);if(t){this.#O.delete(e);try{t.instance.dispose()}catch{}t.container.remove()}}#Y(e){if(this.#C)return;let t=e.detail?.messageId??null,n=this.#g.length;if(t){let e=this.#g.findIndex(e=>e.id===t);e>=0&&(n=e)}let r=n>0?this.#g[n-1]:void 0;if(r&&r.source===`lick`&&!r.queued){this.#t.sendMessage(r.content,Y(),r.attachments);return}let i;for(let e=n-1;e>=0;e--){let t=this.#g[e];if(t.role===`user`&&t.source!==`lick`&&t.source!==`delegation`&&!t.queued){i=t;break}}i&&this.#t.sendMessage(i.content,Y(),i.attachments)}#X(e){return this.#g.find(t=>t.id===e)}#Z(e){try{return je(e)}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]}}#Q(e){this.#te(),this.#g.push(e);let t=this.#Z(e);this.#v.set(e.id,t),this.#e.append(...t),this.#ne(),e.isStreaming||this.#i?.(e,t),e.role===`user`?this.#ie():this.#ae()}#$(e){this.#te(),this.#a?.(e.id);let t=this.#v.get(e.id)??[],n=this.#Z(e),r=t[0]??null,i=r?.parentNode;if(i){for(let e of n)i.insertBefore(e,r);for(let e of t)e.remove()}else this.#e.append(...n);this.#v.set(e.id,n),this.#ne(),e.isStreaming||this.#i?.(e,n),this.#ae()}#ee(){return this.#e.inner??this.#e}#te(){Ue(this.#ee(),this.#D)}#ne(){Fe(this.#ee(),{openClusterAnchors:this.#D,toolCallLookup:(e,t)=>this.#re(e,t)})}#re(e,t){return this.#g.find(t=>t.id===e)?.toolCalls?.find(e=>e.id===t)}#ie(){this.#e.scrollTop=this.#e.scrollHeight}#ae(){let e=this.#e;typeof e.requestFollow==`function`?e.requestFollow():this.#ie()}};function Jn(e){return`${new Date(e.frozenAt).toLocaleDateString(void 0,{month:`short`,day:`numeric`})} · ${e.messageCount} turns`}function Yn(e){let t=document.createElement(`slicc-freezer-card`);return t.setAttribute(`title`,e.title),t.setAttribute(`meta`,Jn(e)),t.setAttribute(`slug`,e.filename),e.icon&&t.setAttribute(`icon`,e.icon),t}async function Xn(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)return;let n=await X(e.reader);if(n===null||n.length===0)return;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});await e.writer.writeFile(B,JSON.stringify(r,null,2));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 X(e){let t=await Zn(e);return t.kind===`ok`?t.entries:t.kind===`missing`?[]:null}async function Zn(e){let t;try{let n=await e.readFile(B,{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 Qn(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)).slice(0,2e3),a=/^title:\s*"?(.*?)"?\s*$/m.exec(i)?.[1]??r,o=/^frozenAt:\s*"?(.*?)"?\s*$/m.exec(i)?.[1]??new Date(0).toISOString(),s=Number(/^messageCount:\s*(\d+)\s*$/m.exec(i)?.[1]??0);n.push({filename:r,title:a,frozenAt:o,messageCount:s,...r.startsWith(`pending-`)?{pendingEnrichment:!0}:{}})}catch{}return n.sort((e,t)=>t.frozenAt.localeCompare(e.frozenAt)),n}function $n(e,t){for(let t of Array.from(e.querySelectorAll(`slicc-freezer-card`)))t.remove();e.append(...t.map(Yn))}async function er(e,t){let n=await e.readFile(H(t),{encoding:`utf-8`}),r=U(typeof n==`string`?n:new TextDecoder().decode(n));return{title:r.title||t.title,messages:r.messages}}var tr={".md":`text/markdown`,".txt":`text/plain`,".ts":`text/typescript`,".js":`text/javascript`,".json":`application/json`,".html":`text/html`,".css":`text/css`,".svg":`image/svg+xml`,".png":`image/png`,".jpg":`image/jpeg`,".jpeg":`image/jpeg`,".gif":`image/gif`,".webp":`image/webp`,".mp3":`audio/mpeg`,".wav":`audio/wav`,".ogg":`audio/ogg`,".m4a":`audio/mp4`,".mp4":`video/mp4`,".webm":`video/webm`,".mov":`video/quicktime`};function nr(e){return tr[e.slice(e.lastIndexOf(`.`)).toLowerCase()]||`application/octet-stream`}function rr(e){let t=e.slice(e.lastIndexOf(`.`)).toLowerCase();return t===`.html`||t===`.svg`}function ir(e){let{fileTree:t,openFs:n,insertReference:r,toPreviewUrl:i,log:a}=e;t.addEventListener(`file-preview`,async e=>{let{path:t}=e.detail;try{let e=await n(),r=nr(t),i;if(r.startsWith(`text/`)||r===`application/json`)i=await e.readFile(t,{encoding:`utf-8`});else{let n=await e.readFile(t,{encoding:`binary`}),r=new Uint8Array(n.length);r.set(n),i=r.buffer}ze.open({path:t,content:i,mimeType:r})}catch(e){a.error(`File preview failed`,e)}}),t.addEventListener(`file-reference`,e=>{let{path:t}=e.detail;r(t)}),t.addEventListener(`file-download`,async e=>{let{path:t}=e.detail;try{let e=await(await n()).readFile(t,{encoding:`binary`}),r=new Uint8Array(e.length);r.set(e);let i=t.split(`/`).pop()||`download`,a=nr(t),o=new Blob([r],{type:a}),s=URL.createObjectURL(o),c=document.createElement(`a`);c.href=s,c.download=i,c.click(),URL.revokeObjectURL(s)}catch(e){a.error(`File download failed`,e)}}),t.addEventListener(`file-overflow`,e=>{let{path:t,anchor:n}=e.detail,r=[{id:`rename`,label:`Rename`},{id:`duplicate`,label:`Duplicate`},{id:`copy-path`,label:`Copy path`},{id:`open-browser`,label:`Open in browser`,visible:rr(t)},{id:`delete`,label:`Delete`,destructive:!0}];Ie.show({anchor:n,items:r,context:{path:t}})}),t.addEventListener(`overflow-action`,async e=>{let{action:t,context:r}=e.detail,{path:o}=r;try{switch(t){case`copy-path`:await navigator.clipboard.writeText(o);break;case`open-browser`:window.open(i(o),`_blank`);break;case`duplicate`:{let e=await n(),t=await e.readFile(o),r=o.lastIndexOf(`.`),i=r>0?`${o.slice(0,r)}_copy${o.slice(r)}`:`${o}_copy`;await e.writeFile(i,t);break}case`delete`:confirm(`Delete ${o.split(`/`).pop()}?`)&&await(await n()).rm(o);break;case`rename`:break}}catch(e){a.error(`Overflow action "${t}" failed`,e)}})}var ar=`/workspace/CLAUDE.md`,Z=64;function or(e){if(e.length<=Z)return{title:e,summary:``};let t=e.lastIndexOf(` `,Z),n=t>Z/2?t:Z;return{title:`${e.slice(0,n)}…`,summary:e.slice(n).trim()}}function sr(e){let t=[],n=null,r=()=>{if(!n)return;let e=n.join(` `).trim();e&&t.push(or(e)),n=null};for(let t of e.split(`
|
|
258
|
-
`)){let e=/^\s*[-*]\s+(.*)$/.exec(t);e?(r(),n=[e[1]]):n&&t.trim()&&!t.startsWith(`#`)?n.push(t.trim()):(t.startsWith(`#`)||!t.trim())&&r()}return r(),t.length===0&&e.trim()&&t.push(or(e.trim())),t}async function cr(e){let t=``;try{let n=await e.readFile(ar,{encoding:`utf-8`});t=typeof n==`string`?n:new TextDecoder().decode(n)}catch{t=``}return sr(t).map(e=>{let t=document.createElement(`slicc-memrow`);return t.setAttribute(`title`,e.title),e.summary&&t.setAttribute(`summary`,e.summary),t.setAttribute(`tag`,`project`),t})}async function lr(e){let t=e.getScoops(),[n,r,i,a,o,s]=await Promise.all([e.getCronTasks().catch(()=>[]),e.getWebhooks().catch(()=>[]),e.getMounts().catch(()=>[]),e.getMcpServers().catch(()=>({})),e.getSessionStats().catch(()=>null),e.getProcesses().catch(()=>[])]),c=e.getOAuthProviders(),l=Object.entries(a);return[{id:`cost`,label:`Cost`,count:o?.models.length??0,meta:o?`$${o.totalCost.toFixed(2)}`:void 0,rows:o?.models.map(e=>({name:e.model,meta:`$${e.cost.toFixed(4)}`}))??[]},{id:`scoops`,label:`Scoops`,count:t.length,rows:t.map(t=>{let n=t.isCone?`${t.name||`sliccy`} (cone)`:t.name,r=e.isProcessing(t.jid);return{name:n,meta:r?`processing`:`idle`,active:r}})},{id:`processes`,label:`Processes`,count:s.length,rows:s.map(e=>{let t=e.argv.length>40?e.argv.slice(0,37)+`...`:e.argv,n=e.status===`running`;return{name:`${e.pid}`,meta:t,active:n}})},{id:`cron`,label:`Cron Tasks`,count:n.length,rows:n.map(e=>({name:e.name,meta:e.cron,active:e.status===`active`}))},{id:`webhooks`,label:`Webhooks`,count:r.length,rows:r.map(e=>({name:e.name,meta:e.scoop?`→ ${e.scoop}`:`→ cone`}))},{id:`workflows`,label:`Workflows`,count:0,rows:[]},{id:`mounts`,label:`Mounts`,count:i.length,rows:i.map(e=>({name:e.targetPath,meta:e.descriptor.kind}))},{id:`mcp`,label:`MCP Servers`,count:l.length,rows:l.map(([e,t])=>{let n=t.tools?.length??0;return{name:e,meta:`${n} tool${n===1?``:`s`}`}})},{id:`oauth`,label:`OAuth`,count:c.length,rows:c.map(e=>({name:e,meta:``}))}]}var ur=[`/workspace`,`/shared`],dr=3,fr=200;async function Q(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,fr),s=o.filter(e=>e.type===`file`).map(e=>`${t}/${e.name}`),c=await Promise.allSettled(s.map(t=>e.stat(t))),l=new Map;s.forEach((e,t)=>{let n=c[t];n?.status===`fulfilled`&&l.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<dr?await Q(e,i,n+1):[]});else{let e=l.get(i);u.push({kind:`file`,id:i,label:r.name,path:i,size:e})}}return u}async function pr(e){let t=[];for(let n of ur)t.push({kind:`dir`,id:n,label:n.slice(1),open:!0,children:await Q(e,n,1)});return t}function mr(e){let t=!1,n=null,r=null,i=!1,a=!1,o=()=>{e.openFs().then(async t=>{e.fileTree.items=await pr(t),a||(a=!0,ir({fileTree:e.fileTree,openFs:e.openFs,insertReference:e.insertReference,toPreviewUrl:Oe,log:e.log}))}).catch(t=>e.log.error(`WC file tree refresh failed`,t))},s=()=>{i=!1,n!=null&&(clearInterval(n),n=null),r!=null&&(clearInterval(r),r=null)};return a=>{if(a===`files`){s(),i=!0,e.onKernelReady(()=>{i&&(i=!1,o(),n=setInterval(o,3e3))});return}if(s(),a===`memory`){e.openFs().then(async t=>{e.memoryHost.replaceChildren(...await cr(t))}).catch(t=>e.log.error(`WC memory refresh failed`,t));return}if(a===`monitor`){r!=null&&clearInterval(r);let t=()=>{(async()=>{try{let t=await lr(e.getMonitorDeps());e.monitor.sections=t}catch(t){e.log.error(`WC monitor refresh failed`,t)}})()};e.monitor.addEventListener(`slicc-monitor-refresh`,t),t(),r=setInterval(t,5e3);return}a===`term`&&!t&&(t=!0,e.mountTerminal(e.termSurface).catch(n=>{t=!1,e.log.error(`WC terminal mount failed`,n)}))}}var hr={off:`off`,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`,max:`xhigh`},gr={off:`off`,minimal:`low`,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`};function _r(e){return e?hr[e]:void 0}function vr(e){return(e&&gr[e])??`off`}function yr(e,t){return e!=null&&e!==`cone`||new URL(t.location.href).searchParams.get(`cherry`)===`1`?!0:f(t.localStorage)}function $(e){return e===`error`?`dead`:e===`initializing`?`none`:`open`}function br(e,t,n){return[...e].sort((e,t)=>Number(t.isCone)-Number(e.isCone)).map(e=>{let r=n?.get(e.jid);return{key:e.jid,type:e.isCone?`cone`:`scoop`,color:v(e),label:e.isCone?`sliccy`:e.name,eyes:$(t?.get(e.jid)),fill:typeof r==`number`?Math.round(r*100):void 0}})}function xr(e){let t=()=>{let t=e.getClient();t&&(e.refs.switcher.scoops=br(t.getScoops(),e.statuses,e.fills))},n=()=>(e.refs.thread.getAttribute(`context`)??``).startsWith(`freezer:`),r=()=>{if(e.getSelected()||n())return;let t=e.getClient()?.getScoops()??[],r=e.pendingUrlContext;if(r?.startsWith(`freezer:`))return;if(r?.startsWith(`scoop:`)){let n=r.slice(6),i=t.find(e=>!e.isCone&&e.name===n);if(i){e.pendingUrlContext=null,e.selectScoop(i);return}}let i=t.find(e=>e.isCone);i&&(e.pendingUrlContext=null,e.selectScoop(i))};return{onStatusChange:(n,r)=>{let i=e.statuses.get(n);e.statuses.set(n,r),$(i)!==$(r)&&t(),e.getSelected()?.jid===n&&e.getController()?.setProcessing(r===`processing`)},onScoopCreated:r=>{t(),!e.getSelected()&&!n()&&!e.pendingUrlContext&&e.selectScoop(r)},onScoopListUpdate:()=>{t(),r()},onScoopActivity:t=>{e.refs.switcher.setAttribute(`attention`,t)},onIncomingMessage:(t,n)=>{e.refs.switcher.setAttribute(`attention`,t),e.lastActivity.set(t,String(n.content??``).slice(0,600)),e.getSelected()?.jid===t&&n.channel!==`web`&&Ne(n.channel)&&e.getController()?.addLickMessage(n.id,n.content,n.channel,new Date(n.timestamp).getTime(),n.lickId)},onMessageUpdate:(t,n)=>{e.getSelected()?.jid===t&&n.lickId&&n.lickState&&e.getController()?.updateLickState(n.lickId,n.lickState)},onScoopMessagesReplaced:(t,n)=>{e.getSelected()?.jid===t&&e.getController()?.loadMessages(n)},onReady:()=>{t(),r(),e.notifyReady?.()}}}async function Sr(e,n){e.thread.setAttribute(`context`,n.isCone?`cone`:`scoop:${n.name}`),e.thread.setAttribute(`accent`,v(n)),Le(e,n.isCone?{kind:`cone`}:{kind:`scoop`,accent:v(n)}),e.switcher.setAttribute(`active`,n.jid),e.composerMeta.setAttribute(`thinking`,vr(n.config?.thinkingLevel));try{let{resolveCurrentModel:r,resolveModelById:i}=await t(async()=>{let{resolveCurrentModel:e,resolveModelById:t}=await import(`./main-LqqRM1F-.js`).then(e=>e.t);return{resolveCurrentModel:e,resolveModelById:t}},__vite__mapDeps([31,1,32,12,16,11,13,14,15,17,2,18,19,20,21,22,23,24,25,26,27,28,33,34])),a=n.config?.modelId,o=a?i(a):r();e.composerMeta.setAttribute(`model`,o.name??o.id),e.composerMeta.toggleAttribute(`no-thinking`,o.reasoning!==!0)}catch{}}function Cr(e){let{refs:n,openVfs:r,client:i,getController:a,getSelected:o,selectScoop:s,clearSelection:c,log:l}=e,u=[],d=0,f=!1,p=()=>{let e=++d;r().then(async({reader:r,writer:i})=>{let a=await X(r);if(a===null){if((await Zn(r)).kind!==`corrupt`||(l.warn(`WC freezer index corrupt — rebuilding from archives`),a=await Qn(r),a.length===0))return;await i.writeFile(B,JSON.stringify(a,null,2))}e===d&&(u=a,$n(n.freezer,a),!f&&a.some(e=>!e.icon&&!e.pendingEnrichment)&&(f=!0,t(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-CpQ7FC1y.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([10,1,11,12,13,14,15,16,17,2,18,19,20,21,22,23,24,25,26,27,28,29,30])).then(({pickLucideIcon:e})=>Xn({reader:r,writer:i,freezer:n.freezer,entries:a,pickIcon:t=>e({subject:t})})).catch(e=>l.warn(`WC freezer icon enrichment failed`,e)).finally(()=>{f=!1})))}).catch(e=>l.error(`WC freezer refresh failed`,e))},m=!1,h=()=>n.freezer.querySelector(`slicc-freezer-new`),g=e=>{m||(m=!0,h()?.setAttribute(`busy`,``),(async()=>{try{if(e!==`erase`){let{writer:n}=await r(),{runNewSessionFreeze:i,runNewSessionFreezeQuick:a}=await t(async()=>{let{runNewSessionFreeze:e,runNewSessionFreezeQuick:t}=await import(`./new-session-COz75sHo.js`);return{runNewSessionFreeze:e,runNewSessionFreezeQuick:t}},__vite__mapDeps([35,12,16,1,11,13,14,15,17,2,18,19,20,21,22,23,24,25,26,27,28,31,32,33,34,29,36]));e===`save`?await i({vfs:n,onProgress:e=>{let t=h();t&&(e===null?t.removeAttribute(`progress`):t.setAttribute(`progress`,String(e)))},onBackgroundEnriched:()=>p()}):await a({vfs:n})}await i.clearAllMessages(),a()?.loadMessages([]),t(async()=>{let{resetDictationPriming:e}=await import(`./wc-shell-CrTQtlJQ.js`).then(e=>e.v);return{resetDictationPriming:e}},__vite__mapDeps([37,1,12,31,32,16,11,13,14,15,17,2,18,19,20,21,22,23,24,25,26,27,28,33,34,30,38,39,40])).then(({resetDictationPriming:e})=>e()).catch(()=>void 0),p();let n=i.getScoops().find(e=>e.isCone);n&&s(n)}catch(e){l.error(`WC new session failed`,e)}finally{m=!1;let e=h();e?.removeAttribute(`busy`),e?.removeAttribute(`progress`)}})())};for(let e of[`save`,`skip`,`erase`])n.freezer.addEventListener(`new-chat-${e}`,()=>g(e));let _=async e=>{try{let{reader:t}=await r(),i=u.find(t=>t.filename===e);i||=(await X(t)??[]).find(t=>t.filename===e);let{messages:o}=await er(t,i??{filename:e,title:e,frozenAt:``,messageCount:0});a()?.loadMessages(o),n.thread.setAttribute(`context`,`freezer:${i?.filename??e}`),n.thread.setAttribute(`accent`,He),Le(n,{kind:`freezer`}),n.inputCard.setAttribute(`disabled`,``),n.switcher.removeAttribute(`active`),c()}catch(e){if(l.error(`WC thaw failed`,e),!o()){let e=i.getScoops().find(e=>e.isCone);e&&s(e)}}};return n.freezer.addEventListener(`freezer-card-select`,e=>{let t=e.detail?.slug;t&&_(t)}),{refreshFreezer:p,openFrozen:_}}function wr(e,t){let n=null,r=Be(e,{messages:[],scoops:[],floatLabel:t,placeholder:`Ask sliccy, or describe a change…`,onSurfaceActivate:e=>n?.(e),urlState:!0}),i=null,a=null,o=null,s=!1,c=new Set,l=e=>{if(o=e,!a)return;let t=a.selectedScoopJid;if(t&&t!==e.jid){let e=i?.getQueuedMessages()??[];for(let n of e)a.deleteQueuedMessage(t,n.id).catch(()=>void 0)}a.setSelectedScoopJid(e.jid),r.inputCard.removeAttribute(`disabled`),Sr(r,e),a.requestScoopMessages(e.jid),i?.setProcessing(a.isProcessing(e.jid)),r.switcher.hasAttribute(`attention`)||r.switcher.setAttribute(`attention`,e.jid)};return{refs:r,wiring:{refs:r,statuses:new Map,fills:new Map,lastActivity:new Map,pendingUrlContext:r.thread.urlContext??null,getController:()=>i,getClient:()=>a,getSelected:()=>o,selectScoop:l,notifyReady:()=>{s=!0;for(let e of c)e()}},setClient:e=>{a=e},selectScoop:l,getSelected:()=>o,clearSelection:()=>{o=null},getController:()=>i,setController:e=>{i=e},setActivateSurface:e=>{n=e;let t=r.workbenchBody.getAttribute(`active`);t&&r.shell.hasAttribute(`open`)&&(s?e(t):c.add(()=>e(t)))},onClientReady:e=>{c.add(e),s&&e()}}}function Tr(e){let n=null;return()=>(n??=(async()=>{let[{createRemoteVfsClient:n},{createRemoteWritableVfsClient:r}]=await Promise.all([t(()=>import(`./remote-vfs-client-Z2qM01yP.js`),__vite__mapDeps([41,42])),t(()=>import(`./writable-vfs-client-BKZGifKZ.js`),__vite__mapDeps([43,42]))]);return{reader:n({transport:e.getTransport()}),writer:r({transport:e.getTransport()})}})(),n)}function Er(e,n,r,i,a){e.onClientReady(()=>{i.intercept||t(async()=>{let{wireWcOnboarding:e}=await import(`./wc-onboarding-CcG_XrLd.js`);return{wireWcOnboarding:e}},__vite__mapDeps([44,12,31,1,32,16,11,13,14,15,17,2,18,19,20,21,22,23,24,25,26,27,28,33,34,45])).then(({wireWcOnboarding:t})=>t({client:n,getController:()=>e.getController(),openVfs:r,log:a})).then(e=>{i.intercept=e.interceptWelcomeLick}).catch(e=>a.error(`WC onboarding wiring failed`,e))})}function Dr(e,i,a,o,s){let c=new Map;t(async()=>{let{loadDipStyles:e}=await import(`./legacy-styles-CuB1P3LZ.js`);return{loadDipStyles:e}},__vite__mapDeps([46,12])).then(({loadDipStyles:e})=>e()).catch(()=>void 0),t(async()=>{let{watchSprinkleThemeBroadcast:e}=await import(`./theme-Bgsl5v2i.js`).then(e=>e.i);return{watchSprinkleThemeBroadcast:e}},__vite__mapDeps([47,1,48,2])).then(({watchSprinkleThemeBroadcast:e})=>e()).catch(()=>void 0),t(async()=>{let{applyThemeOverrides:e}=await import(`./theme-engine-DqVfCCym.js`).then(e=>e.f);return{applyThemeOverrides:e}},__vite__mapDeps([48,1,2])).then(({applyThemeOverrides:e})=>e()).catch(()=>void 0);let l=i.createAgentHandle();l.onEvent(e=>{e.type!==`tool_use_start`&&e.type!==`tool_result`||t(async()=>{let{playCue:e}=await import(`./soundscape-TvriK11t.js`);return{playCue:e}},__vite__mapDeps([49,2,39])).then(({playCue:t})=>t(e.type===`tool_use_start`?`tool-start`:`tool-finish`)).catch(()=>void 0)});let u=new qn({thread:e.thread,agent:l,resolveTelemetryContext:()=>{let e=a();if(!e)return null;let t=e.isCone?`cone`:e.name;try{let i=e.config?.modelId;return{scoopName:t,model:(i?r(i):n()).id}}catch{return{scoopName:t,model:``}}},onTurnComplete:e=>{t(async()=>{let{consumeVoiceSubmission:e,speakReplyMarkdown:t}=await import(`./voice-reply-Cfv2GJPY.js`);return{consumeVoiceSubmission:e,speakReplyMarkdown:t}},__vite__mapDeps([50,2,37,1,12,31,32,16,11,13,14,15,17,18,19,20,21,22,23,24,25,26,27,28,33,34,30,38,39,40,51,52,53,54,55])).then(async({consumeVoiceSubmission:n,speakReplyMarkdown:r})=>{if(!n())return;let{endVoiceTurn:i,setTtsActive:a}=await t(async()=>{let{endVoiceTurn:e,setTtsActive:t}=await import(`./soundscape-TvriK11t.js`);return{endVoiceTurn:e,setTtsActive:t}},__vite__mapDeps([49,2,39]));try{if(e?.content){a(!0);try{await r(e.content)}finally{a(!1)}}}finally{i()}}).catch(()=>void 0)},onProcessingChange:t=>{e.frame.toggleAttribute(`data-processing`,t),e.inputCard.querySelector(`slicc-send-button`)?.toggleAttribute(`busy`,t),t||o?.()},onBusyPhaseChange:t=>{e.inputCard.querySelector(`slicc-send-button`)?.setAttribute(`phase`,t)},onMessageDisposed:e=>{let t=c.get(e);t&&(Et(t),c.delete(e))},onMessageRendered:(e,t)=>{let n=t[0];n&&c.set(e.id,Tt(n,(e,t)=>{let n={type:`sprinkle`,sprinkleName:`inline`,timestamp:new Date().toISOString(),body:{action:e,data:t}};s?.intercept?.(n)||i.sendSprinkleLick(`inline`,{action:e,data:t})}))},onQueuedChange:t=>{e.queuedStack.setMessages(t)},onToolUiAction:(e,t,n)=>{i.sendToolUiAction(e,t,n)},onQueuedCancel:e=>{let t=i.selectedScoopJid;t&&i.deleteQueuedMessage(t,e).catch(()=>void 0)}});return e.queuedStack.addEventListener(`slicc-queued-remove`,e=>{let t=e.detail?.id;if(!t)return;u.removeQueuedMessage(t);let n=i.selectedScoopJid;n&&i.deleteQueuedMessage(n,t).catch(()=>void 0)}),{controller:u,agentHandle:l}}function Or(e){let{boot:n,client:r,agentHandle:i,openReader:a,log:o}=e,{refs:s}=n;t(async()=>{let{createPlaceholderRefresher:e}=await import(`./wc-placeholder-BYxtEGbt.js`);return{createPlaceholderRefresher:e}},__vite__mapDeps([56,12,37,1,31,32,16,11,13,14,15,17,2,18,19,20,21,22,23,24,25,26,27,28,33,34,30,38,39,40])).then(({createPlaceholderRefresher:t})=>{e.setRefreshPlaceholder(t({inputCard:s.inputCard,getMessages:()=>n.getController()?.getMessages()??[],defaultPlaceholder:s.inputCard.getAttribute(`placeholder`)??`Ask sliccy, or describe a change…`}))}),(async()=>{try{if(yr(n.wiring.pendingUrlContext,window))return;let{SessionStore:r}=await t(async()=>{let{SessionStore:e}=await import(`./session-store-DAM8GRJ0.js`);return{SessionStore:e}},[]),i=new r;await i.init();let a=await i.load(`session-cone`);a&&a.messages.length>0&&!n.getSelected()&&(n.getController()?.loadMessages(a.messages),e.triggerPlaceholder())}catch(e){o.warn(`WC session hydration failed`,e)}})();let c=null;return t(async()=>{let{wireWcAttach:e}=await import(`./wc-attach-BLShAwZU.js`);return{wireWcAttach:e}},__vite__mapDeps([57,12,18,58,1])).then(({wireWcAttach:n})=>{c=n({inputCard:s.inputCard,freezer:s.freezer,composer:s.composer,openReader:a,openWriter:e.openWriter,listConversations:async()=>{let{readSessionsIndex:e}=await t(async()=>{let{readSessionsIndex:e}=await import(`./session-freezer-ClZHZ4rq.js`);return{readSessionsIndex:e}},[]);return(await e(await a())).map(e=>({id:e.filename,label:e.title,sub:`${e.messageCount} turns`}))},log:o})}).catch(e=>o.error(`WC add-menu wiring failed`,e)),s.inputCard.addEventListener(`submit`,e=>{let r=Pe(e);if(!r)return;let i=e.detail?.source===`dictation`;i&&(t(async()=>{let{markVoiceSubmission:e}=await import(`./voice-reply-Cfv2GJPY.js`);return{markVoiceSubmission:e}},__vite__mapDeps([50,2,37,1,12,31,32,16,11,13,14,15,17,18,19,20,21,22,23,24,25,26,27,28,33,34,30,38,39,40,51,52,53,54,55])).then(({markVoiceSubmission:e})=>e()).catch(()=>void 0),t(async()=>{let{beginVoiceTurn:e,playCue:t}=await import(`./soundscape-TvriK11t.js`);return{beginVoiceTurn:e,playCue:t}},__vite__mapDeps([49,2,39])).then(({beginVoiceTurn:e,playCue:t})=>{e(),t(`sent`)}).catch(()=>void 0)),n.getController()?.sendUserMessage(r,c?.take(),{dictation:i}),s.inputCard.clear?.();let a=n.getSelected()?.jid;a&&(s.switcher.setAttribute(`attention`,a),n.wiring.lastActivity.set(a,r.slice(0,600)))}),s.inputCard.addEventListener(`stop`,()=>{n.getController()?.processing&&i.stop()}),t(async()=>{let{wireWcHistoryNav:e}=await import(`./wc-history-nav-C5w8ianG.js`);return{wireWcHistoryNav:e}},[]).then(({wireWcHistoryNav:e})=>e({thread:s.thread,inputCard:s.inputCard})).catch(e=>o.error(`WC history nav wiring failed`,e)),s.composerMeta.addEventListener(`thinking-change`,e=>{let t=e.detail?.thinking,i=_r(t),a=n.getSelected();a&&i&&r.setScoopThinkingLevel(a.jid,i)}),{getAttachStage:()=>c}}function kr(e,t){let n=()=>{t.getSessionStats?.().then(n=>{if(!n)return;e.refs.floatbar.setAttribute(`spent`,n.totalCost.toFixed(2));let r=e.refs.floatbar;n.models&&(r.costModels=n.models),n.scoops&&(r.costScoops=n.scoops),e.fills.clear();for(let t of n.fills)e.fills.set(t.jid,t.fill);e.refs.switcher.scoops=br(t.getScoops(),e.statuses,e.fills)})};return setInterval(n,15e3),n}function Ar(e,n,r){let i=n.standalone;i&&t(async()=>{let{wireWcBrowser:e}=await import(`./wc-browser-DunWpcR7.js`);return{wireWcBrowser:e}},[]).then(({wireWcBrowser:t})=>t({refs:e.refs,browser:i.browser,log:r})).catch(e=>r.error(`WC browser overlay wiring failed`,e))}function jr(e,t){let{refs:n}=e;n.switcher.addEventListener(`slicc-scoop-select`,n=>{let r=n.detail?.key,i=t.getScoops().find(e=>e.jid===r);i&&i.jid!==e.getSelected()?.jid&&e.selectScoop(i)}),Nr({switcher:n.switcher,getScoops:()=>t.getScoops(),lastActivity:e.wiring.lastActivity})}function Mr(e){return()=>{e.triggerPlaceholder(),e.refreshStats();let t=e.boot.getSelected()?.jid;if(!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 Nr(e){let n=new Map,r=new Set;e.switcher.addEventListener(`pointerover`,i=>{let a=i.target?.closest?.(`slicc-pill.scoop`);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=n.get(o);if(l&&l.activity===c){a.title=l.tip;return}a.title||=s.isCone?`sliccy`:s.name,!(!c||r.has(o))&&(r.add(o),(async()=>{try{let r=await(e.labelFn??(await t(async()=>{let{quickLabel:e}=await import(`./quick-llm-CpQ7FC1y.js`).then(e=>e.n);return{quickLabel:e}},__vite__mapDeps([10,1,11,12,13,14,15,16,17,2,18,19,20,21,22,23,24,25,26,27,28,29,30]))).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: ${s.isCone?`sliccy (the main agent)`:s.name}\nMost recent activity:\n${c}`,maxTokens:40});r&&(n.set(o,{activity:c,tip:r}),a.title=r)}finally{r.delete(o)}})())})}async function Pr(e,n,r){let{RemoteTerminalView:i}=await t(async()=>{let{RemoteTerminalView:e}=await import(`./remote-terminal-view-e7H-FPmf.js`);return{RemoteTerminalView:e}},__vite__mapDeps([59,1,12,24,2,58,60,0,3,9,61,8,5,6,7,4,62])),{fetchSecretEnvVars:a}=await t(async()=>{let{fetchSecretEnvVars:e}=await import(`./secret-env-kbusPsVw.js`);return{fetchSecretEnvVars:e}},__vite__mapDeps([63,2,19,1,12,18,20,21,22,23])),o=await a(),s=new i({client:n,cwd:`/`,env:Object.keys(o).length>0?o:void 0});await new Promise(t=>e.onClientReady(t)),await s.mount(r),globalThis.__slicc_terminal_view=s,window.addEventListener(`beforeunload`,()=>s.dispose(),{once:!0})}function Fr(e,t,n){let r=r=>{if(r.startsWith(`freezer:`)){n(r.slice(8));return}let i=t.getScoops(),a=r.startsWith(`scoop:`)?i.find(e=>!e.isCone&&e.name===r.slice(6)):i.find(e=>e.isCone);a&&a.jid!==e.getSelected()?.jid&&e.selectScoop(a)};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 Ir(e,n,r,i){t(async()=>{let{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}=await import(`./wc-permissions-BEqQSC-7.js`);return{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}},__vite__mapDeps([64,12,2,58,1])).then(async({installLeaderPermissionsSurface:i,installMountPendingConsumer:a})=>{let o=r.standalone?.runtimeMode??`standalone`,{buildLeaderPermissionProviders:s,isExtensionRuntime:c}=await t(async()=>{let{buildLeaderPermissionProviders:e,isExtensionRuntime:t}=await import(`./wc-permissions-providers-Cdznv6xX.js`);return{buildLeaderPermissionProviders:e,isExtensionRuntime:t}},__vite__mapDeps([65,12]));i({runtimeMode:o,providers:await s(c()||o===`extension`||o===`extension-detached`)}),a({runShell:Lr(e,n)})}).catch(e=>i.warn(`WC permissions surface wiring failed`,e))}function Lr(e,n){let r=null,i=()=>(r||=(async()=>{await new Promise(t=>e.onClientReady(t));let{TerminalSessionClient:r}=await t(async()=>{let{TerminalSessionClient:e}=await import(`./terminal-session-client-CbAduNfC.js`);return{TerminalSessionClient:e}},[]),i=new r({client:n,sid:`mount-drop-${Date.now()}`});return await i.open({cwd:`/workspace`}),i})().catch(e=>{throw r=null,e}),r);return async e=>(await i()).exec(e)}function Rr(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 zr(e,n,r,i={}){let{refs:a}=e;e.setClient(n);let o=null,s=kr(e.wiring,n),c=()=>o?.(),l={intercept:null},{controller:u,agentHandle:d}=Dr(a,n,()=>e.getSelected(),Mr({boot:e,triggerPlaceholder:c,refreshStats:s}),l);e.setController(u),e.onClientReady(s);let f=Tr(n),p=async()=>(await f()).reader;i.standalone?.runtimeMode!==`cherry`&&i.standalone?.runtimeMode!==`hosted-leader`&&Er(e,n,f,l,r);let m=Or({boot:e,client:n,agentHandle:d,setRefreshPlaceholder:e=>{o=e},triggerPlaceholder:c,openReader:p,openWriter:async()=>(await f()).writer,log:r});jr(e,n),Ar(e,i,r),Ir(e,n,i,r),e.setActivateSurface(mr({fileTree:a.fileTree,termSurface:a.termSurface,memoryHost:a.memoryHost,monitor:a.monitor,openFs:p,onKernelReady:t=>e.onClientReady(t),getMonitorDeps:()=>({getScoops:()=>n.getScoops(),isProcessing:e=>n.isProcessing(e),getCronTasks:async()=>{let{getAllCronTasks:e}=await t(async()=>{let{getAllCronTasks:e}=await import(`./tray-leader-tUG5SYx1.js`).then(e=>e.o);return{getAllCronTasks:e}},__vite__mapDeps([66,1,2,19,12,18,20,31,32,16,11,13,14,15,17,21,22,23,24,25,26,27,28,33,34]));return e()},getWebhooks:async()=>{let{getAllWebhooks:e}=await t(async()=>{let{getAllWebhooks:e}=await import(`./tray-leader-tUG5SYx1.js`).then(e=>e.o);return{getAllWebhooks:e}},__vite__mapDeps([66,1,2,19,12,18,20,31,32,16,11,13,14,15,17,21,22,23,24,25,26,27,28,33,34]));return e()},getMounts:async()=>{let{getAllMountEntries:e}=await t(async()=>{let{getAllMountEntries:e}=await import(`./mount-table-store-CfQUN_2R.js`).then(e=>e.r);return{getAllMountEntries:e}},__vite__mapDeps([67,1]));return e()},getMcpServers:async()=>{try{let e=await(await p()).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=localStorage.getItem(`slicc_accounts`);if(!e)return[];let t=JSON.parse(e);if(!Array.isArray(t))return[];let n=t.map(e=>e.providerId).filter(e=>typeof e==`string`);return[...new Set(n)]}catch{return[]}},getSessionStats:async()=>n.getSessionStats?.()??null,getProcesses:async()=>{try{let e=await p(),t=await e.readDir(`/proc`),n=[];for(let r of t.filter(e=>e.type===`directory`&&/^\d+$/.test(e.name)))try{let t=await e.readFile(`/proc/${r.name}/status`,{encoding:`utf-8`}),i=await e.readFile(`/proc/${r.name}/cmdline`,{encoding:`utf-8`});n.push({pid:parseInt(r.name,10),argv:String(i).trim(),status:String(t).trim()})}catch{}return n}catch{return[]}}}),mountTerminal:t=>Pr(e,n,t),insertReference:e=>{let t=a.inputCard,n=t.value.trim();t.value=n?`${n} @${e}`:`@${e}`,t.focus()},log:r})),a.floatbar.addEventListener(`click`,()=>{a.shell.hasAttribute(`open`)&&a.workbenchBody.getAttribute(`active`)===`monitor`?(a.shell.removeAttribute(`open`),a.dock.removeAttribute(`active`)):a.dock.selectItem(`monitor`)});let{refreshFreezer:h,openFrozen:g}=Cr({refs:a,openVfs:f,client:n,getController:()=>e.getController(),getSelected:()=>e.getSelected(),selectScoop:e.selectScoop,clearSelection:e.clearSelection,log:r});h(),e.onClientReady(h),Fr(e,n,g),f().then(async({reader:e})=>{let{installPreviewVfsResponder:n}=await t(async()=>{let{installPreviewVfsResponder:e}=await import(`./preview-vfs-responder-Dhck1Brc.js`);return{installPreviewVfsResponder:e}},[]);n({channel:new BroadcastChannel(`preview-vfs`),getReader:()=>e,logger:r})}).catch(e=>r.warn(`WC page-VFS support wiring failed`,e)),f().then(async({reader:o,writer:s})=>{let{createRemoteSprinkleVfs:c}=await t(async()=>{let{createRemoteSprinkleVfs:e}=await import(`./remote-sprinkle-vfs-e81pZJKo.js`);return{createRemoteSprinkleVfs:e}},__vite__mapDeps([68,42])),{wireWcSprinkles:l}=await t(async()=>{let{wireWcSprinkles:e}=await import(`./wc-sprinkles-CiD8jtkB.js`);return{wireWcSprinkles:e}},__vite__mapDeps([69,12])),u=await l({refs:a,client:n,fs:c({reader:o,writer:s}),instanceId:i.instanceId,onAttachImage:Rr(m,r),log:r});if(e.onClientReady(()=>void u.resync()),i.standalone&&i.instanceId){let{wireWcTray:o}=await t(async()=>{let{wireWcTray:e}=await import(`./wc-tray-CSrI5SrA.js`);return{wireWcTray:e}},__vite__mapDeps([70,12,16,1,11,13,14,15,17,2,18,19,20,21,22,23,24,25,26,27,28,31,32,33,34,71,61,66,37,30,38,39,40,72,73,54,55,74,47,48])),s=u.zone.callbacks();await o({refs:a,client:n,browser:i.standalone.browser,realCdpTransport:i.standalone.realCdpTransport,instanceId:i.instanceId,runtimeMode:i.standalone.runtimeMode,sprinkleManager:u.manager,addSprinkle:(e,t,n)=>s.addSprinkle(e,t,n),removeSprinkle:e=>s.removeSprinkle(e),getController:()=>e.getController(),getSelectedJid:()=>e.getSelected()?.jid??`cone`,agentHandle:d,openFs:p,baseFloatLabel:i.standalone.baseFloatLabel,window,log:r})}}).catch(e=>r.error(`WC sprinkle/tray wiring failed`,e)),t(async()=>{let{wireWcNav:e}=await import(`./wc-nav-BipzeLE6.js`);return{wireWcNav:e}},__vite__mapDeps([75,12,34,1,31,32,16,11,13,14,15,17,2,18,19,20,21,22,23,24,25,26,27,28,33,66])).then(({wireWcNav:e})=>e({refs:a,client:n,log:r})).catch(e=>r.error(`WC nav wiring failed`,e)),t(async()=>{let{getComposerSpeech:e,setComposerSpeechInstanceId:t}=await import(`./composer-speech-C8TRsqUk.js`);return{getComposerSpeech:e,setComposerSpeechInstanceId:t}},__vite__mapDeps([76,2,58,1,38,52,53,19,12,18,20,54,55,77])).then(({getComposerSpeech:e,setComposerSpeechInstanceId:t})=>{let n=a.composer;t(i.instanceId),n.speech=e(),n.setAttribute(`ptt`,``)}).catch(e=>r.error(`WC push-to-talk wiring failed`,e)),t(async()=>{let{setSpeakAssetsInstanceId:e}=await import(`./speak-DnUM0f7v.js`);return{setSpeakAssetsInstanceId:e}},__vite__mapDeps([51,12,2,52,53,19,1,18,20,54,55])).then(({setSpeakAssetsInstanceId:e})=>e(i.instanceId)).catch(e=>r.error(`WC say warmup wiring failed`,e))}async function Br(e,n,r=`standalone`){let{browser:i,realCdpTransport:a,instanceId:o,localApiBaseUrl:s,bridgeToken:c,localLickWsUrl:l,extensionDelegateId:u,attachLickForwardingClient:d}=await h({runtimeMode:r,envBaseUrl:null,window,log:n}),{resolveStandaloneFloatLabel:f,DEFAULT_STANDALONE_LABEL:p}=await t(async()=>{let{resolveStandaloneFloatLabel:e,DEFAULT_STANDALONE_LABEL:t}=await import(`./wc-float-label-Dh8xz8qh.js`);return{resolveStandaloneFloatLabel:e,DEFAULT_STANDALONE_LABEL:t}},__vite__mapDeps([78,19,1,12,18,20])),m=r===`standalone`||r===`electron-overlay`?await f():p,g=wr(e,m),_=zn({realCdpTransport:a,instanceId:o,callbacks:xr(g.wiring),localApiBaseUrl:s,bridgeToken:c,localLickWsUrl:l,extensionDelegateId:u});Nn({send:e=>_.client.sendRaw(e)}),d?.(_.client),zr(g,_.client,n,{instanceId:o,standalone:{browser:i,realCdpTransport:a,runtimeMode:r,baseFloatLabel:m}});let{setupSudoStandalone:ee}=await t(async()=>{let{setupSudoStandalone:e}=await import(`./main-LqqRM1F-.js`).then(e=>e._);return{setupSudoStandalone:e}},__vite__mapDeps([31,1,32,12,16,11,13,14,15,17,2,18,19,20,21,22,23,24,25,26,27,28,33,34]));await ee({log:n}),await _.ready,g.wiring.notifyReady?.(),n.info(`WC live shell ready`,{scoops:_.client.getScoops().length})}export{Jt as a,zr as attachWcClient,pn as c,xr as createWcLiveCallbacks,M as d,Tt as f,mn as i,ct as l,lt as m,Br as mountWcUiLive,jn as n,H as o,j as p,wr as prepareWcShell,B as r,U as s,qn as t,Et as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,l as t,u as n}from"./dist-D69OmKNn.js";import{n as r}from"./event-stream-BJI_nGaK.js";import{R as i,d as a}from"./account-store-SL9GSzVk.js";import"./main-LqqRM1F-.js";import{XaiErrorCode as o,XaiOAuthError as s}from"./xai-grok-errors-bnlIBeu-.js";import{resolveModels as c,toModelMetadata as l}from"./xai-grok-models-CeEBaUMC.js";import{sanitizePayload as u}from"./xai-grok-sanitize-CR2JoOJd.js";var d=`xai-grok`,f=`https://auth.x.ai`,p=`${f}/oauth2/authorize`,m=`${f}/oauth2/token`,h=`b1a00492-073a-47ea-816f-4c329264a828`,g=`openid profile email offline_access grok-cli:access api:access`,_=`http://127.0.0.1:56121/callback`,v=`http://127.0.0.1:56121/*`,y=`https://api.x.ai/v1`,b=`openai-responses`,x=`${d}-openai`;function S(){return typeof process>`u`?null:{}.PI_XAI_OAUTH_MODELS??null}var C=c(S());function w(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function T(e){let t=new Uint8Array(e);return crypto.getRandomValues(t),t}function E(){return w(T(32))}async function D(e){let t=new TextEncoder().encode(e);return w(new Uint8Array(await crypto.subtle.digest(`SHA-256`,t)))}function O(){return w(T(16))}async function k(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,code:e,redirect_uri:_,client_id:h,code_verifier:t}),r=await fetch(m,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw new s(`xAI token exchange failed: ${r.status} ${await r.text()}`,o.TOKEN_EXCHANGE_FAILED);let i=await r.json();if(!i.access_token)throw new s(`xAI token exchange did not return access_token.`,o.TOKEN_EXCHANGE_INVALID);return i}async function A(e){try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:h}),n=await fetch(m,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});return n.ok?await n.json():(console.error(`[xai-grok] refresh failed:`,n.status,await n.text()),null)}catch(e){return console.error(`[xai-grok] refresh error:`,e instanceof Error?e.message:String(e)),null}}function j(){return a().find(e=>e.providerId===d)}async function M(){let e=j();if(!e?.accessToken)throw new s("Not signed in to xAI Grok — run /login or `oauth-token xai-grok`",o.AUTH_MISSING,!0);let t=e.tokenExpiresAt??0;if(t&&Date.now()+6e4<t)return e.accessToken;if(e.refreshToken){let t=await A(e.refreshToken);if(t?.access_token)return await i({providerId:d,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??21600)*1e3}),t.access_token}return e.accessToken}function N(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:x,provider:d,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function P(e,t){return n=>!n||typeof n!=`object`?n:u(n,e,t)}function F(e,t){return t?{...e??{},"x-grok-conv-id":t}:e}var I=(t,n,i={})=>{let a=r();return(async()=>{try{let r=await M(),o=i.sessionId,s=e({...t,baseUrl:y,api:b},n,{...i,apiKey:r,headers:F(i.headers,o),onPayload:P(t.id,o)});for await(let e of s)a.push(e);a.end()}catch(e){console.error(`[xai-grok] Stream error:`,e instanceof Error?e.message:String(e)),a.push(N(t,e)),a.end()}})(),a},L=(e,n,i)=>{let a=r();return(async()=>{try{let r=await M(),o=i?.sessionId,s=t({...e,baseUrl:y,api:b},n,{...i,apiKey:r,headers:F(i?.headers,o),onPayload:P(e.id,o)});for await(let e of s)a.push(e);a.end()}catch(t){console.error(`[xai-grok] Stream error:`,t instanceof Error?t.message:String(t)),a.push(N(e,t)),a.end()}})(),a},R={id:d,name:`xAI Grok (SuperGrok OAuth)`,description:`Grok via xAI OAuth — uses your SuperGrok subscription, no API key needed. Default model is Grok Heavy.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`grok-4.20-multi-agent-0309`,oauthTokenDomains:[`api.x.ai`,`*.x.ai`,`auth.x.ai`,`accounts.x.ai`],getModelIds:()=>C.map(e=>{let t=l(e);return e.thinkingLevelMap?{...t,thinkingLevelMap:e.thinkingLevelMap}:t}),onOAuthLoginIntercepted:async(e,t,n)=>{let r=E(),a=await D(r),c=O(),l=O(),u=new URL(p);u.searchParams.set(`response_type`,`code`),u.searchParams.set(`client_id`,h),u.searchParams.set(`redirect_uri`,_),u.searchParams.set(`scope`,n?.scopes??g),u.searchParams.set(`code_challenge`,a),u.searchParams.set(`code_challenge_method`,`S256`),u.searchParams.set(`state`,c),u.searchParams.set(`nonce`,l),u.searchParams.set(`plan`,`generic`),u.searchParams.set(`referrer`,`slicc`);let f=await e({authorizeUrl:u.toString(),redirectUriPattern:v,onCapture:`close`});if(!f)throw new s(`xAI OAuth login was cancelled or timed out`,o.CALLBACK_TIMEOUT);let m=new URL(f),b=m.searchParams.get(`code`),x=m.searchParams.get(`state`);if(!b)throw new s(`xAI OAuth redirect did not include a code`,o.CODE_MISSING);if(x!==c)throw new s(`xAI OAuth state mismatch — possible CSRF, aborting`,o.STATE_MISMATCH);let S=await k(b,r);await i({providerId:d,accessToken:S.access_token,refreshToken:S.refresh_token,tokenExpiresAt:Date.now()+(S.expires_in??21600)*1e3,baseUrl:y}),t()},onOAuthLogout:async()=>{await i({providerId:d,accessToken:``})},onSilentRenew:async()=>{let e=j();if(!e?.refreshToken)return null;let t=await A(e.refreshToken);return t?.access_token?(await i({providerId:d,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??21600)*1e3}),t.access_token):null}};function z(){n({api:x,stream:I,streamSimple:L})}export{o as XaiErrorCode,s as XaiOAuthError,R as config,z as register};
|