sliccy 6.201.0 → 6.202.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/node-server/_shared/tray-sync-protocol.d.ts +12 -0
- package/dist/node-server/_shared/tray-sync-protocol.d.ts.map +1 -1
- package/dist/node-server/_shared/tray-sync-protocol.js.map +1 -1
- package/dist/node-server/hosted-bootstrap.d.ts +2 -0
- package/dist/node-server/hosted-bootstrap.js +7 -2
- package/dist/ui/.vite/manifest.json +250 -246
- package/dist/ui/assets/{account-store-BIWge689.js → account-store-BPOuwEUe.js} +1 -1
- package/dist/ui/assets/{account-store-fwzaDw-l.js → account-store-DCNh6_f3.js} +1 -1
- package/dist/ui/assets/{adobe-ClIr3I-p.js → adobe-5wPjwcn6.js} +1 -1
- package/dist/ui/assets/{adobe-Dt7h_Eeo.js → adobe-CuF_TJOS.js} +1 -1
- package/dist/ui/assets/{agent-panels-6vt0IiNY.js → agent-panels-LxO-J2qb.js} +1 -1
- package/dist/ui/assets/{almost-bash-shell-headless-aWQGQfiU.js → almost-bash-shell-headless-yKn6anXs.js} +31 -31
- package/dist/ui/assets/{anthropic-messages-DzHtdQv6.js → anthropic-messages-DkH6AeKE.js} +1 -1
- package/dist/ui/assets/{apply-layout-CwT2Do6O.js → apply-layout-hpMxAa22.js} +1 -1
- package/dist/ui/assets/{apps-Cop3IMqB.js → apps-yBr1j6Js.js} +1 -1
- package/dist/ui/assets/{azure-openai-zbk8uXvL.js → azure-openai-DEHmL6Gd.js} +1 -1
- package/dist/ui/assets/{azure-openai-DX46kUX4.js → azure-openai-dB_5C8mf.js} +1 -1
- package/dist/ui/assets/{azure-openai-responses-DUWFmnAS.js → azure-openai-responses-BlGLmNYQ.js} +1 -1
- package/dist/ui/assets/{backend-hostfs-Df2XNlz8.js → backend-hostfs-BMQejZwC.js} +1 -1
- package/dist/ui/assets/bedrock-camp-BQ8gVLI_.js +1 -0
- package/dist/ui/assets/bedrock-camp-ClMYvDsy.js +1 -0
- package/dist/ui/assets/{cdp-XN5cbfSn.js → cdp-CU7BSR6t.js} +1 -1
- package/dist/ui/assets/{cerebras-DiGN-Haj.js → cerebras-AA61XJ-B.js} +1 -1
- package/dist/ui/assets/{cerebras-C0GqThJV.js → cerebras-CmcFSmEV.js} +1 -1
- package/dist/ui/assets/{compat-qQM4gjF_.js → compat-Dy2zIWAW.js} +2 -2
- package/dist/ui/assets/{composer-speech-C9zLLxJI.js → composer-speech-D4AMNMyP.js} +1 -1
- package/dist/ui/assets/{connect-surface-DiTVhpil.js → connect-surface-D-m_C-GS.js} +1 -1
- package/dist/ui/assets/{core-DEHCydPY.js → core-D8SLLGdB.js} +1 -1
- package/dist/ui/assets/{directed-approval-DhuKdSBd.js → directed-approval-CMWM7on3.js} +1 -1
- package/dist/ui/assets/{emscripten-vfs-hook-DvF0wI_4.js → emscripten-vfs-hook-_2rAJXNI.js} +1 -1
- package/dist/ui/assets/{ensure-speech-assets-CaC3KtN4.js → ensure-speech-assets-CFHsmmeI.js} +1 -1
- package/dist/ui/assets/{frozen-archive-writer-CZ5Gk5Jm.js → frozen-archive-writer-DGZKdSra.js} +1 -1
- package/dist/ui/assets/{fs-DnZiIMaX.js → fs-CB72Wfta.js} +2 -2
- package/dist/ui/assets/{fs-_sfsk7nR.js → fs-fMPWFoqu.js} +1 -1
- package/dist/ui/assets/{gelatiere-store-CpiC3WMb.js → gelatiere-store-DPYP6f1t.js} +1 -1
- package/dist/ui/assets/{gelatiere-unit-SfjAgxf3.js → gelatiere-unit-C44c6eoz.js} +1 -1
- package/dist/ui/assets/{github-vlErpMqL.js → github-CUWHcDRW.js} +1 -1
- package/dist/ui/assets/{github-B6Ro4Vyj.js → github-Lda4oA3H.js} +2 -2
- package/dist/ui/assets/{github-auth-CF5dasUt.js → github-auth-D__Wuyii.js} +1 -1
- package/dist/ui/assets/{github-copilot-B4eBPv32.js → github-copilot-BtS_N0PJ.js} +1 -1
- package/dist/ui/assets/{github-copilot-CY_TJo2b.js → github-copilot-GznJonKZ.js} +1 -1
- package/dist/ui/assets/{github-install-0wR_oHGJ.js → github-install-ByqrClDF.js} +1 -1
- package/dist/ui/assets/{github-zip-DsWAwpGB.js → github-zip-BJYotqf6.js} +1 -1
- package/dist/ui/assets/{google-generative-ai-mk59e_TJ.js → google-generative-ai-_Gek_V8v.js} +1 -1
- package/dist/ui/assets/{google-vertex-DJUeZm26.js → google-vertex-BF9Vjq0f.js} +1 -1
- package/dist/ui/assets/{hear-B3Htg_ED.js → hear-NNKlAYIB.js} +1 -1
- package/dist/ui/assets/{help-C8hYsF1D.js → help-Cs6_ZfIK.js} +1 -1
- package/dist/ui/assets/{installer-CgaA1tWS.js → installer-QVmLUcU6.js} +1 -1
- package/dist/ui/assets/{ipk-mamba-LOopc1Fr.js → ipk-mamba-DM5Eo23m.js} +1 -1
- package/dist/ui/assets/{js-realm-worker-MHB9dm0v.js → js-realm-worker-azTLp9p7.js} +2 -2
- package/dist/ui/assets/{jsh-executor-mbEWF1Zm.js → jsh-executor-Dl3EAD2y.js} +2 -2
- package/dist/ui/assets/{kernel-worker-C0D-prE8.js → kernel-worker-CYrV9gTu.js} +10 -10
- package/dist/ui/assets/{legacy-api-aliases-DtQJ5I7w.js → legacy-api-aliases-DoI0tM7F.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-BMOgjdw-.js → lick-ws-bridge-BbuIwcTt.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-D-SjYzwa.js → lick-ws-bridge-ChHtb2iS.js} +1 -1
- package/dist/ui/assets/{live-session-curation-DBB0BC3B.js → live-session-curation-bHIbXHyz.js} +1 -1
- package/dist/ui/assets/{live-session-snapshot-DkrES4VI.js → live-session-snapshot-BxMGPIBe.js} +1 -1
- package/dist/ui/assets/{local-llm-B6BSSNT-.js → local-llm-BiWHfibt.js} +1 -1
- package/dist/ui/assets/{local-llm-CY6c2sXr.js → local-llm-DlKeYPSq.js} +1 -1
- package/dist/ui/assets/{main-CUMpx04_.js → main-CwH54Phg.js} +3 -3
- package/dist/ui/assets/{main-cherry-C6pVbdgb.js → main-cherry-C2EoUYp2.js} +1 -1
- package/dist/ui/assets/{memory-curation-seam-CknJYtxR.js → memory-curation-seam-CF-la7i8.js} +1 -1
- package/dist/ui/assets/{memory-health-DsnSZmSb.js → memory-health-CuFAR2LK.js} +1 -1
- package/dist/ui/assets/{memory-write-execute-ntAccCje.js → memory-write-execute-_fs4hpqZ.js} +1 -1
- package/dist/ui/assets/{merge-folded-cost-into-frozen-pKLMgpaS.js → merge-folded-cost-into-frozen-B5Hpc11r.js} +1 -1
- package/dist/ui/assets/{mistral-conversations-DSJIHP5s.js → mistral-conversations-2yMfObrW.js} +1 -1
- package/dist/ui/assets/{models-BSkXF4T6.js → models-YdybRRvT.js} +1 -1
- package/dist/ui/assets/{mount-CkyzZCYy.js → mount-ClB3oCPW.js} +3 -3
- package/dist/ui/assets/{mount-DBdwrDMi.js → mount-DyPxYOeJ.js} +1 -1
- package/dist/ui/assets/{new-session-P03v_FCK.js → new-session-DbnMs-P7.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-D9xVBRhw.js → oauth-bootstrap-CkC65gIY.js} +2 -2
- package/dist/ui/assets/{onboarding-orchestrator-DH0uHEvH.js → onboarding-orchestrator-Co8U3c5X.js} +1 -1
- package/dist/ui/assets/{openai-codex-BBlwDBce.js → openai-codex-CcU99gw8.js} +1 -1
- package/dist/ui/assets/{openai-codex-DoyWM1Ht.js → openai-codex-DsVGiLw0.js} +1 -1
- package/dist/ui/assets/{openai-codex-responses-DK0TuYYs.js → openai-codex-responses-BM2lIIbg.js} +1 -1
- package/dist/ui/assets/{openai-completions-Vz0p13Z7.js → openai-completions-CkwaxmCT.js} +1 -1
- package/dist/ui/assets/{openai-responses-CjehV1Ys.js → openai-responses-CZLQAwyI.js} +1 -1
- package/dist/ui/assets/{openai-responses-shared-BN7PRIa9.js → openai-responses-shared-CdC6rVE7.js} +1 -1
- package/dist/ui/assets/{openrouter-CSuhnV2D.js → openrouter-DR8LwwVX.js} +1 -1
- package/dist/ui/assets/{openrouter-free-mGS0IcRu.js → openrouter-free-Chr7bG7g.js} +1 -1
- package/dist/ui/assets/{openrouter-free-BmtrgcsS.js → openrouter-free-dtgub1tZ.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-BeWa_JYM.js → openrouter-oauth-Ci3YPqRM.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-LxxPcj62.js → openrouter-oauth-DQBrEEUm.js} +1 -1
- package/dist/ui/assets/{openrouter-D6arc4g-.js → openrouter-zoXrPSU-.js} +1 -1
- package/dist/ui/assets/{opfs-mount-DiGAsjln.js → opfs-mount-BRJeiBTy.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-Dn9LkDA4.js → panel-rpc-handlers-B1vamnj_.js} +2 -2
- package/dist/ui/assets/{panelize-shell-BCnZJqfR.js → panelize-shell-DjBpIdsZ.js} +1 -1
- package/dist/ui/assets/{pi-edit-execution-C8DevsMX.js → pi-edit-execution-CEZnq-ea.js} +1 -1
- package/dist/ui/assets/{provider-TW1uhiOX.js → provider-BJyMMVgQ.js} +1 -1
- package/dist/ui/assets/{provider-CoQm7QFw.js → provider-okk2DhJ-.js} +2 -2
- package/dist/ui/assets/{provider-settings-DuyZH9Vl.js → provider-settings-C_VIs5bh.js} +1 -1
- package/dist/ui/assets/provider-store-access-BLTrDV2N.js +1 -0
- package/dist/ui/assets/provider-store-access-kBtOqzc3.js +1 -0
- package/dist/ui/assets/{providers-DKsHZCA-.js → providers-Bi2j-s3f.js} +1 -1
- package/dist/ui/assets/{providers-BxT3TeA_.js → providers-Dp-BrqwV.js} +2 -2
- package/dist/ui/assets/{quick-llm-Bg2Nrvfp.js → quick-llm-CE4gvSHd.js} +1 -1
- package/dist/ui/assets/{realm-inprocess-DzH1E2Sz.js → realm-inprocess-B0v2BPy_.js} +2 -2
- package/dist/ui/assets/{realm-unhandled-rejections-NauY91jT.js → realm-unhandled-rejections-CedH1x_P.js} +1 -1
- package/dist/ui/assets/{realm-unhandled-rejections-QsexeLeD.js → realm-unhandled-rejections-_0x5hBig.js} +1 -1
- package/dist/ui/assets/{recovery-screen-BF0gjjXu.js → recovery-screen-DhmPrdnD.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-DA7UMUr3.js → remote-terminal-view-BAk9EFL0.js} +2 -2
- package/dist/ui/assets/{restore-BEtGf9q0.js → restore-ptciJPFI.js} +1 -1
- package/dist/ui/assets/{run-CCsrR9by.js → run-BDpXPyUz.js} +2 -2
- package/dist/ui/assets/{run-BQj4zYFq.js → run-BPItyDq9.js} +1 -1
- package/dist/ui/assets/{run-CoVp9_Ry.js → run-BWRKyXnJ.js} +1 -1
- package/dist/ui/assets/{run-DrtRMJvT.js → run-CGuUNo86.js} +2 -2
- package/dist/ui/assets/{run-C6DlavC0.js → run-Cy3RS1I5.js} +1 -1
- package/dist/ui/assets/{run-JnbiSyNj.js → run-D2hbXBmR.js} +1 -1
- package/dist/ui/assets/{session-command-memory-BpLXPvLD.js → session-command-memory-TTvqtG3i.js} +2 -2
- package/dist/ui/assets/{session-jsonl-B9EILxP9.js → session-jsonl-j5UjZtaB.js} +1 -1
- package/dist/ui/assets/{session-jsonl-DxLd1YSX.js → session-jsonl-qAVJJYKp.js} +1 -1
- package/dist/ui/assets/{session-search-index-lCF3ljFt.js → session-search-index-Dlu5p6EL.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-tTbAi367.js → setup-feature-flags-remote-C3qOiTP3.js} +1 -1
- package/dist/ui/assets/{setup-model-catalog-BSHpsEXu.js → setup-model-catalog-DgmbvBry.js} +1 -1
- package/dist/ui/assets/{signed-fetch-Ua68AiAx.js → signed-fetch-Di_V1YOi.js} +1 -1
- package/dist/ui/assets/{silent-renew-backoff-BlLiATFB.js → silent-renew-backoff-CoPOXNl3.js} +1 -1
- package/dist/ui/assets/slicc-version-CMeCruya.js +1 -0
- package/dist/ui/assets/{snapshot-BhBl90YV.js → snapshot-CeeeCfMA.js} +1 -1
- package/dist/ui/assets/{snapshot-features-CBi1abGg.js → snapshot-features-Cluwssqe.js} +1 -1
- package/dist/ui/assets/{soundscape-CV__wATK.js → soundscape-Cajeb3mc.js} +1 -1
- package/dist/ui/assets/{speak-cixBBa3H.js → speak-B8zg07BA.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-CLGgMjDC.js → sprinkle-manager-C0ZLYzGv.js} +1 -1
- package/dist/ui/assets/{sprinkle-renderer-Cy7BLn0s.js → sprinkle-renderer-BNfO77S4.js} +1 -1
- package/dist/ui/assets/{state-BXsN9U2z.js → state-DbJmPjaF.js} +1 -1
- package/dist/ui/assets/{store-BJyU-CYi.js → store-5aqRrovo.js} +1 -1
- package/dist/ui/assets/{store-kUYDPLXq.js → store-Bo7W8LfT.js} +1 -1
- package/dist/ui/assets/{sudo-au9s7W2X.js → sudo-BxaHOkca.js} +1 -1
- package/dist/ui/assets/{supervisor-B23ZJCMt.js → supervisor-DzeRkEEr.js} +1 -1
- package/dist/ui/assets/{sync-dialog-B7UF9HL4.js → sync-dialog-oar4K1yZ.js} +1 -1
- package/dist/ui/assets/{transformers-env-B-a9NNff.js → transformers-env-B6ny7zNo.js} +1 -1
- package/dist/ui/assets/{tray-leader-B_Vq-WZW.js → tray-leader-xp1Sv-QN.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-CJ9DB8b-.js → tray-leave-runtime-BroSLcKm.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-DGC5RaA1.js → tray-sidecar-Dc3RKSHW.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-CtG6sgvq.js → upgrade-detection-DAhbdcWM.js} +1 -1
- package/dist/ui/assets/{upskill-lick-skip-CQVojEjb.js → upskill-lick-skip-BrqAaw4I.js} +1 -1
- package/dist/ui/assets/{voice-reply-BaoXYcfq.js → voice-reply-DoAZZO0s.js} +1 -1
- package/dist/ui/assets/{wc-attach-ChnevSwE.js → wc-attach-DJYPFXp_.js} +2 -2
- package/dist/ui/assets/{wc-browser-D5BkgbmD.js → wc-browser-DXl6oM7W.js} +1 -1
- package/dist/ui/assets/{wc-computers-C80pamWN.js → wc-computers-BwR_D_nd.js} +1 -1
- package/dist/ui/assets/{wc-detached-BpD5Lm2I.js → wc-detached-DIB7DtzK.js} +1 -1
- package/dist/ui/assets/{wc-extension-DFZKeSHK.js → wc-extension-ClC_LW9Q.js} +2 -2
- package/dist/ui/assets/{wc-follower-Dyfqc0rV.js → wc-follower-DV0Ntx4V.js} +3 -3
- package/dist/ui/assets/{wc-follower-oauth-Czn5aUEf.js → wc-follower-oauth-BLMHOiN8.js} +1 -1
- package/dist/ui/assets/{wc-gelatiere-CbHMk8MW.js → wc-gelatiere-gchTADW7.js} +1 -1
- package/dist/ui/assets/{wc-live-C_AjU03k.js → wc-live-CNuwE1YV.js} +5 -5
- package/dist/ui/assets/{wc-nav-CFWvpLIa.js → wc-nav-BHvVkU3F.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-CIOt6HoW.js → wc-onboarding-jiSorEJK.js} +2 -2
- package/dist/ui/assets/{wc-permissions-B2Dng0gG.js → wc-permissions-BeXGw8C-.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-DMOuLW-n.js → wc-placeholder-D1NmtsX1.js} +3 -3
- package/dist/ui/assets/{wc-secret-request-4kBGCOLm.js → wc-secret-request-CCieihNp.js} +1 -1
- package/dist/ui/assets/{wc-settings-DUAWGFnD.js → wc-settings-BpnVsOZ9.js} +3 -3
- package/dist/ui/assets/{wc-shell-BoXgif1h.js → wc-shell-DVdpBOjU.js} +3 -3
- package/dist/ui/assets/{wc-shortcut-config-DcFa5MNI.js → wc-shortcut-config-BWZCSSCt.js} +1 -1
- package/dist/ui/assets/{wc-sprinkles-D-inHzhw.js → wc-sprinkles-C0Mzrh_g.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-BCgcOhv0.js → wc-transcript-export-CmDKq4Fc.js} +2 -2
- package/dist/ui/assets/wc-tray-B6Ibxhf5.js +5 -0
- package/dist/ui/assets/welcome-detection-D00XfyY7.js +1 -0
- package/dist/ui/assets/{whisper-session-Bs5HxMaY.js → whisper-session-BQAiBLbf.js} +2 -2
- package/dist/ui/assets/{xai-grok-BFuf62tf.js → xai-grok-CgnKO61-.js} +1 -1
- package/dist/ui/assets/{xai-grok-BR_Z9tbO.js → xai-grok-DcrSkBlG.js} +1 -1
- package/dist/ui/index.html +6 -6
- package/dist/ui/packages/webapp/index.html +6 -6
- package/package.json +1 -1
- package/dist/ui/assets/bedrock-camp-CMfZujT_.js +0 -1
- package/dist/ui/assets/bedrock-camp-Ck_nFSMy.js +0 -1
- package/dist/ui/assets/provider-store-access-BqCZs6PG.js +0 -1
- package/dist/ui/assets/provider-store-access-C_esRWyN.js +0 -1
- package/dist/ui/assets/slicc-version-DYbMRVIh.js +0 -1
- package/dist/ui/assets/wc-tray-BBorz0ro.js +0 -5
- package/dist/ui/assets/welcome-detection-CDOBtsDy.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./diagnostics-DN_idNHx.js";import{n as t,t as n}from"./models-BSkXF4T6.js";import{n as r}from"./json-parse-CgFfIg4Q.js";import{t as i}from"./provider-env-CTOcDKrQ.js";import{t as a}from"./headers-CbDaTl3c.js";import{a as o,i as s,n as c,o as l,r as u,s as d,t as f}from"./constrained-sampling-CNZLpVD5.js";import{t as p}from"./provider-retry-C8PJzY_l.js";import{t as m}from"./sanitize-unicode-DmIE6hZJ.js";import{n as h,t as g}from"./github-copilot-headers-DRgtIyTm.js";import{o as _,r as v,s as y,t as b}from"./transform-messages-BsQjTIEJ.js";import{n as x}from"./openai-BKEGagiR.js";import{n as S,t as C}from"./error-body-pkrba6pf.js";import{t as w}from"./openai-prompt-cache-DXo9f3w5.js";import{t as T}from"./hash-yQufAZII.js";function E(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function D(e,t,n){if(t)return t;if(E(n,`authorization`)||E(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function O(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}function k(e){let t=new Set;for(let n of e)if(n.role===`toolResult`)for(let e of n.addedToolNames??[])t.add(e);return t}function A(e,t){if(!e)return[];let n=new Map(e.map(e=>[e.name,e]));return Array.from(t).map(e=>n.get(e)).filter(e=>e!==void 0)}function j(e){return e.type===`text`}function M(e){return e.type===`thinking`}function N(e){return e.type===`toolCall`}function P(e){return e.type===`image`}function F(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function I(e){return(e.id===void 0||e.id===null||typeof e.id==`string`)&&(e.format===void 0||typeof e.format==`string`)&&(e.index===void 0||typeof e.index==`number`)}function L(e){if(!F(e)||!I(e))return!1;switch(e.type){case`reasoning.summary`:return typeof e.summary==`string`;case`reasoning.encrypted`:return typeof e.data==`string`;case`reasoning.text`:return typeof e.text==`string`&&(e.signature===void 0||e.signature===null||typeof e.signature==`string`);default:return!1}}function ee(e){if(e)try{let t=JSON.parse(e);return Array.isArray(t)&&t.length>0&&t.every(L)?t:void 0}catch{return}}function te(e){if(e)try{let t=JSON.parse(e);return L(t)&&t.type===`reasoning.encrypted`&&typeof t.id==`string`&&t.id.length>0&&t.data.length>0?t:void 0}catch{return}}function R(e,t){e.id??=t.id,e.format||=t.format,e.index??=t.index}function z(e,t){let n=e[e.length-1];if(t.type===`reasoning.text`&&n?.type===`reasoning.text`){n.text+=t.text,n.signature||=t.signature,R(n,t);return}if(t.type===`reasoning.summary`&&n?.type===`reasoning.summary`){n.summary+=t.summary,R(n,t);return}e.push({...t})}var ne=[`reasoning`,`reasoning_content`,`reasoning_text`];function re(e){return ne.includes(e)}function B(e,t){return e||(i(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}var V=(t,n,i)=>{let o=new e;return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()},s,l=e=>{s!==void 0&&(e.thinkingSignature=JSON.stringify(s))};try{let u=D(t.provider,i?.apiKey,i?.headers),d=$(t),m=c(n.tools,d.supportsOpenAIGrammarTools),h=B(i?.cacheRetention,i?.env),g=h===`none`?void 0:i?.sessionId,_=H(t,n,u,i?.headers,i?.fetch,g,d),v=U(t,n,i,d,h,m),y=await i?.onPayload?.(v,t);y!==void 0&&(v=y);let b={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},maxRetries:0},{data:x,response:S}=await p(()=>_.chat.completions.create(v,b).withResponse(),{maxRetries:i?.maxRetries,maxRetryDelayMs:i?.maxRetryDelayMs,signal:i?.signal});await i?.onResponse?.({status:S.status,headers:a(S.headers)},t),o.push({type:`start`,partial:e});let C=null,w=null,T=!1,E=new Map,O=new Map,k=e.content,A=e=>k.indexOf(e),j=e=>{let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``},M=(e,t,n)=>{let r=e.customInput;if(!r)return;let i=f(r.jsonBuffer,r.property,t,n);return e.arguments={[r.property]:t},i},N=t=>{let n=A(t);if(n!==-1){if(t.type===`text`)o.push({type:`text_end`,contentIndex:n,content:t.text,partial:e});else if(t.type===`thinking`)l(t),o.push({type:`thinking_end`,contentIndex:n,content:t.thinking,partial:e});else if(t.type===`toolCall`){if(t.customInput){let r=M(t,j(t),!0);r!==void 0&&o.push({type:`toolcall_delta`,contentIndex:n,delta:r,partial:e})}else t.arguments=r(t.partialArgs);delete t.partialArgs,delete t.customInput,delete t.streamIndex,o.push({type:`toolcall_end`,contentIndex:n,toolCall:t,partial:e})}}},P=()=>(C||(C={type:`text`,text:``},k.push(C),o.push({type:`text_start`,contentIndex:A(C),partial:e})),C),F=t=>(w||(w={type:`thinking`,thinking:``,thinkingSignature:t},k.push(w),o.push({type:`thinking_start`,contentIndex:A(w),partial:e})),w),I=t=>{let n=typeof t.index==`number`?t.index:void 0,r=t.function?.name??t.custom?.name??``,i=n===void 0?void 0:E.get(n);if(!i&&t.id&&(i=O.get(t.id)),!i){let a=t.custom&&!t.function?m.get(r)??`input`:void 0,s=a!==void 0;i={type:`toolCall`,id:t.id||``,name:r,arguments:s?{[a]:``}:{},partialArgs:s?void 0:``,customInput:s?{property:a,jsonBuffer:{input:``,started:!1,closed:!1}}:void 0,streamIndex:n},n!==void 0&&E.set(n,i),t.id&&O.set(t.id,i),k.push(i),o.push({type:`toolcall_start`,contentIndex:A(i),partial:e})}if(n!==void 0&&i.streamIndex===void 0&&(i.streamIndex=n,E.set(n,i)),t.id&&O.set(t.id,i),!i.name&&r&&(i.name=r),t.custom&&!t.function&&!i.customInput){let e=m.get(i.name)??`input`;i.arguments={[e]:``},i.customInput={property:e,jsonBuffer:{input:``,started:!1,closed:!1}},delete i.partialArgs}return i};for await(let n of x){if(!n||typeof n!=`object`)continue;e.responseId||=n.id,typeof n.model==`string`&&n.model.length>0&&n.model!==t.id&&(e.responseModel||=n.model),n.usage&&(e.usage=Q(n.usage,t));let i=Array.isArray(n.choices)?n.choices[0]:void 0;if(i){if(!n.usage&&i.usage&&(e.usage=Q(i.usage,t)),i.finish_reason){e.rawStopReason=i.finish_reason;let t=de(i.finish_reason);e.stopReason=t.stopReason,t.errorMessage&&(e.errorMessage=t.errorMessage),T=!0}if(i.delta){if(i.delta.content!==null&&i.delta.content!==void 0&&i.delta.content.length>0){let t=P();t.text+=i.delta.content,o.push({type:`text_delta`,contentIndex:A(t),delta:i.delta.content,partial:e})}let n=[`reasoning_content`,`reasoning`,`reasoning_text`],a=i.delta,c=null;for(let e of n){let t=a[e];if(typeof t==`string`&&t.length>0){c=e;break}}if(c){let n=a[c];if(typeof n==`string`&&n.length>0){let r=F(t.provider===`opencode-go`&&c===`reasoning`?`reasoning_content`:c);r.thinking+=n,o.push({type:`thinking_delta`,contentIndex:A(r),delta:n,partial:e})}}if(i?.delta?.tool_calls)for(let t of i.delta.tool_calls){let n=I(t);!n.id&&t.id&&(n.id=t.id,O.set(t.id,n));let i=t.function?.name??t.custom?.name;!n.name&&i&&(n.name=i);let a=``;t.function?.arguments?(a=t.function.arguments,n.partialArgs=(n.partialArgs??``)+t.function.arguments,n.arguments=r(n.partialArgs)):t.custom?.input&&(a=M(n,j(n)+t.custom.input,!1)??``),o.push({type:`toolcall_delta`,contentIndex:A(n),delta:a,partial:e})}let l=i.delta.reasoning_details;if(Array.isArray(l))for(let e of l)L(e)&&(F(``),s??=[],z(s,e))}}}for(let e of k)N(e);if(i?.signal?.aborted||e.stopReason===`aborted`)throw Error(`Request was aborted`);if(!T&&!d.supportsFinishReason&&(e.stopReason=e.content.some(e=>e.type===`toolCall`)?`toolUse`:`stop`),e.stopReason===`error`)throw Error(e.errorMessage||`Provider returned an error stop reason`);if(d.supportsFinishReason&&!T||e.stopReason===`pending`)throw Error(`Stream ended without finish_reason`);o.push({type:`done`,reason:e.stopReason,message:e}),o.end()}catch(t){for(let t of e.content)t.type===`thinking`&&l(t),delete t.index,delete t.partialArgs,delete t.customInput,delete t.streamIndex;e.stopReason=i?.signal?.aborted?`aborted`:`error`,e.errorMessage=C(S(t));let n=t?.error?.metadata?.raw;n&&!e.errorMessage.includes(String(n))&&(e.errorMessage+=`\n${n}`),o.push({type:`error`,reason:e.stopReason,error:e}),o.end()}})(),o},ie=(e,n,r)=>{D(e.provider,r?.apiKey,r?.headers);let i={...v(e,n,r,r?.apiKey),toolChoice:r?.toolChoice},a=r?.reasoning?t(e,r.reasoning):void 0,o=a===`off`?void 0:a;return V(e,n,{...i,reasoningEffort:o,thinkingBudgets:r?.thinkingBudgets})};function H(e,t,n,r,i,a,o=$(e)){let s={"User-Agent":d(),...e.headers};if(e.provider===`github-copilot`){let e=h(t.messages),n=g({messages:t.messages,hasImages:e});Object.assign(s,n)}return a&&o.sendSessionAffinityHeaders&&(o.sessionAffinityFormat===`openrouter`?s[`x-session-id`]=a:(o.sessionAffinityFormat===`openai`&&(s.session_id=a),s[`x-client-request-id`]=a,s[`x-session-affinity`]=a)),r&&Object.assign(s,r),new x({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:s})}function U(e,t,n,r=$(e),i=B(n?.cacheRetention,n?.env),a=c(t.tools,r.supportsOpenAIGrammarTools)){let o=X(e,t,r,{grammarToolInputProperties:a}),s=J(r,i),l={model:e.id,messages:o,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&i!==`none`||i===`long`&&r.supportsLongCacheRetention?w(n?.sessionId):void 0,prompt_cache_retention:i===`long`&&r.supportsLongCacheRetention?`24h`:void 0};r.supportsUsageInStreaming!==!1&&(l.stream_options={include_usage:!0}),r.supportsStore&&(l.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?l.max_tokens=n.maxTokens:l.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(l.temperature=n.temperature);let u=r.deferredToolsMode===`kimi`?k(t.messages):new Set,d=t.tools?.filter(e=>!u.has(e.name));d&&d.length>0?(l.tools=Z(d,r),r.zaiToolStream&&(l.tool_stream=!0)):O(t.messages)&&(l.tools=[]),s&&ae(o,l.tools,s),n?.toolChoice&&(l.tool_choice=n.toolChoice);let f=W(r),p=G(e,n,l);if(r.thinkingFormat===`zai`&&e.reasoning){let t=l;if(t.thinking=n?.reasoningEffort?{type:`enabled`,clear_thinking:!1}:{type:`disabled`},n?.reasoningEffort&&r.supportsReasoningEffort){let r=e.thinkingLevelMap?.[n.reasoningEffort],i=r===void 0?n.reasoningEffort:r;typeof i==`string`&&(t.reasoning_effort=i)}}else if(r.thinkingFormat===`qwen`&&e.reasoning){if(l.enable_thinking=!!n?.reasoningEffort,n?.reasoningEffort&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;typeof t==`string`&&(l.reasoning_effort=t)}}else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)l.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat===`chat-template`&&e.reasoning){let t=K(e,n,r.chatTemplateKwargs,p);t&&(l.chat_template_kwargs=t)}else if(r.thinkingFormat===`baseten`&&e.reasoning){let t=l,i=K(e,n,r.chatTemplateArgs,p);if(i&&(t.chat_template_args=i),r.supportsReasoningEffort){let r=n?.reasoningEffort,i=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off,a=i===void 0?r:i;typeof a==`string`&&(t.reasoning_effort=a)}}else if(r.thinkingFormat===`deepseek`&&e.reasoning)n?.reasoningEffort?l.thinking={type:`enabled`}:e.thinkingLevelMap?.off!==null&&(l.thinking={type:`disabled`}),n?.reasoningEffort&&r.supportsReasoningEffort&&(l.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(r.thinkingFormat===`openrouter`&&e.reasoning){let t=l;n?.reasoningEffort?t.reasoning={effort:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort}:e.thinkingLevelMap?.off!==null&&(t.reasoning={effort:e.thinkingLevelMap?.off??`none`})}else if(r.thinkingFormat===`ant-ling`&&e.reasoning&&n?.reasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort];typeof t==`string`&&(l.reasoning={effort:t})}else if(r.thinkingFormat===`together`&&e.reasoning){let t=l;t.reasoning={enabled:!!n?.reasoningEffort},n?.reasoningEffort&&r.supportsReasoningEffort&&(t.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort)}else if(r.thinkingFormat===`string-thinking`&&e.reasoning){let t=l;n?.reasoningEffort?t.thinking=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:e.thinkingLevelMap?.off!==null&&(t.thinking=e.thinkingLevelMap?.off??`none`)}else if(n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)l.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.off;typeof t==`string`&&(l.reasoning_effort=t)}if(f&&p!==void 0&&Object.assign(l,{[f]:p}),e.compat?.openRouterRouting&&(l.provider=e.compat.openRouterRouting),e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),l.providerOptions={gateway:e}}}return n?.samplingParams&&Object.assign(l,n.samplingParams),l}function W(e){if(e.thinkingTokenBudgetField)return e.thinkingTokenBudgetField;if(e.supportsThinkingTokenBudget)return`thinking_token_budget`}function G(e,t,n){if(!t?.reasoningEffort||!e.reasoning)return;let r=n.max_tokens??n.max_completion_tokens??e.maxTokens,i=_(y(t.reasoningEffort,t.thinkingBudgets),r);return i>0?i:void 0}function K(e,t,n,r){let i={};for(let[a,o]of Object.entries(n)){let n=q(e,t,o,r);n!==void 0&&(i[a]=n)}return Object.keys(i).length>0?i:void 0}function q(e,t,n,r){if(typeof n!=`object`||!n)return n;let i=t?.reasoningEffort;if(!i&&n.omitWhenOff)return;if(n.$var===`thinking.enabled`)return!!i;if(n.$var===`thinking.budget`)return r;let a=i?e.thinkingLevelMap?.[i]:e.thinkingLevelMap?.off;return a===void 0?i:typeof a==`string`?a:void 0}function J(e,t){if(e.cacheControlFormat!==`anthropic`||t===`none`)return;let n=t===`long`&&e.supportsLongCacheRetention?`1h`:void 0;return{type:`ephemeral`,...n?{ttl:n}:{}}}function ae(e,t,n){oe(e,n),ce(t,n),se(e,n)}function oe(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){le(n,t);return}}function se(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`||r.role===`tool`)&&ue(r,t))return}}function ce(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function le(e,t){return Y(e,t)}function ue(e,t){return e.role===`user`||e.role===`assistant`||e.role===`tool`?Y(e,t):!1}function Y(e,t){let n=e.content;if(typeof n==`string`)return n.length!==0&&(e.content=[{type:`text`,text:n,cache_control:t}],!0);if(!Array.isArray(n))return!1;for(let e=n.length-1;e>=0;e--){let r=n[e];if(r?.type===`text`){let e=r;return e.cache_control=t,!0}}return!1}function X(e,t,n,r){let i=[],a=t=>{if(t.includes(`|`)){let e=t.indexOf(`|`),n=t.slice(0,e).replace(/[^a-zA-Z0-9_-]/g,`_`),r=t.slice(e+1).replace(/[^a-zA-Z0-9_-]/g,`_`),i=r.length>0?`${n}_${r}`:n;if(i.length<=40)return i;let a=T(t).slice(0,8);return`${n.slice(0,Math.max(1,40-a.length-1))}_${a}`}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},o=b(t.messages,e,e=>a(e));if(t.systemPrompt){let r=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;i.push({role:r,content:m(t.systemPrompt)})}let s=null;for(let a=0;a<o.length;a++){let c=o[a];if(n.requiresAssistantAfterToolResult&&s===`toolResult`&&c.role===`user`&&i.push({role:`assistant`,content:`I have processed the tool results.`}),c.role===`user`){if(typeof c.content==`string`)i.push({role:`user`,content:m(c.content)});else{let e=c.content.map(e=>e.type===`text`?{type:`text`,text:m(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;i.push({role:`user`,content:e})}}else if(c.role===`assistant`){let t={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},a=c.content.filter(j).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:m(e.text)})),o=a.map(e=>e.text).join(``),s=c.content.filter(M),l=c.content.filter(N),d=s.map(e=>ee(e.thinkingSignature)).find(e=>e!==void 0),f=l.map(e=>te(e.thoughtSignature)).filter(e=>e!==void 0),p=d??(f.length>0?f:void 0),h=s.filter(e=>e.thinking.trim().length>0);if(h.length>0){if(n.requiresThinkingAsText)t.content=[{type:`text`,text:h.map(e=>m(e.thinking)).join(`
|
|
1
|
+
import{i as e}from"./diagnostics-DN_idNHx.js";import{n as t,t as n}from"./models-YdybRRvT.js";import{n as r}from"./json-parse-CgFfIg4Q.js";import{t as i}from"./provider-env-CTOcDKrQ.js";import{t as a}from"./headers-CbDaTl3c.js";import{a as o,i as s,n as c,o as l,r as u,s as d,t as f}from"./constrained-sampling-CNZLpVD5.js";import{t as p}from"./provider-retry-C8PJzY_l.js";import{t as m}from"./sanitize-unicode-DmIE6hZJ.js";import{n as h,t as g}from"./github-copilot-headers-DRgtIyTm.js";import{o as _,r as v,s as y,t as b}from"./transform-messages-BsQjTIEJ.js";import{n as x}from"./openai-BKEGagiR.js";import{n as S,t as C}from"./error-body-pkrba6pf.js";import{t as w}from"./openai-prompt-cache-DXo9f3w5.js";import{t as T}from"./hash-yQufAZII.js";function E(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function D(e,t,n){if(t)return t;if(E(n,`authorization`)||E(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function O(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}function k(e){let t=new Set;for(let n of e)if(n.role===`toolResult`)for(let e of n.addedToolNames??[])t.add(e);return t}function A(e,t){if(!e)return[];let n=new Map(e.map(e=>[e.name,e]));return Array.from(t).map(e=>n.get(e)).filter(e=>e!==void 0)}function j(e){return e.type===`text`}function M(e){return e.type===`thinking`}function N(e){return e.type===`toolCall`}function P(e){return e.type===`image`}function F(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function I(e){return(e.id===void 0||e.id===null||typeof e.id==`string`)&&(e.format===void 0||typeof e.format==`string`)&&(e.index===void 0||typeof e.index==`number`)}function L(e){if(!F(e)||!I(e))return!1;switch(e.type){case`reasoning.summary`:return typeof e.summary==`string`;case`reasoning.encrypted`:return typeof e.data==`string`;case`reasoning.text`:return typeof e.text==`string`&&(e.signature===void 0||e.signature===null||typeof e.signature==`string`);default:return!1}}function ee(e){if(e)try{let t=JSON.parse(e);return Array.isArray(t)&&t.length>0&&t.every(L)?t:void 0}catch{return}}function te(e){if(e)try{let t=JSON.parse(e);return L(t)&&t.type===`reasoning.encrypted`&&typeof t.id==`string`&&t.id.length>0&&t.data.length>0?t:void 0}catch{return}}function R(e,t){e.id??=t.id,e.format||=t.format,e.index??=t.index}function z(e,t){let n=e[e.length-1];if(t.type===`reasoning.text`&&n?.type===`reasoning.text`){n.text+=t.text,n.signature||=t.signature,R(n,t);return}if(t.type===`reasoning.summary`&&n?.type===`reasoning.summary`){n.summary+=t.summary,R(n,t);return}e.push({...t})}var ne=[`reasoning`,`reasoning_content`,`reasoning_text`];function re(e){return ne.includes(e)}function B(e,t){return e||(i(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}var V=(t,n,i)=>{let o=new e;return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()},s,l=e=>{s!==void 0&&(e.thinkingSignature=JSON.stringify(s))};try{let u=D(t.provider,i?.apiKey,i?.headers),d=$(t),m=c(n.tools,d.supportsOpenAIGrammarTools),h=B(i?.cacheRetention,i?.env),g=h===`none`?void 0:i?.sessionId,_=H(t,n,u,i?.headers,i?.fetch,g,d),v=U(t,n,i,d,h,m),y=await i?.onPayload?.(v,t);y!==void 0&&(v=y);let b={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},maxRetries:0},{data:x,response:S}=await p(()=>_.chat.completions.create(v,b).withResponse(),{maxRetries:i?.maxRetries,maxRetryDelayMs:i?.maxRetryDelayMs,signal:i?.signal});await i?.onResponse?.({status:S.status,headers:a(S.headers)},t),o.push({type:`start`,partial:e});let C=null,w=null,T=!1,E=new Map,O=new Map,k=e.content,A=e=>k.indexOf(e),j=e=>{let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``},M=(e,t,n)=>{let r=e.customInput;if(!r)return;let i=f(r.jsonBuffer,r.property,t,n);return e.arguments={[r.property]:t},i},N=t=>{let n=A(t);if(n!==-1){if(t.type===`text`)o.push({type:`text_end`,contentIndex:n,content:t.text,partial:e});else if(t.type===`thinking`)l(t),o.push({type:`thinking_end`,contentIndex:n,content:t.thinking,partial:e});else if(t.type===`toolCall`){if(t.customInput){let r=M(t,j(t),!0);r!==void 0&&o.push({type:`toolcall_delta`,contentIndex:n,delta:r,partial:e})}else t.arguments=r(t.partialArgs);delete t.partialArgs,delete t.customInput,delete t.streamIndex,o.push({type:`toolcall_end`,contentIndex:n,toolCall:t,partial:e})}}},P=()=>(C||(C={type:`text`,text:``},k.push(C),o.push({type:`text_start`,contentIndex:A(C),partial:e})),C),F=t=>(w||(w={type:`thinking`,thinking:``,thinkingSignature:t},k.push(w),o.push({type:`thinking_start`,contentIndex:A(w),partial:e})),w),I=t=>{let n=typeof t.index==`number`?t.index:void 0,r=t.function?.name??t.custom?.name??``,i=n===void 0?void 0:E.get(n);if(!i&&t.id&&(i=O.get(t.id)),!i){let a=t.custom&&!t.function?m.get(r)??`input`:void 0,s=a!==void 0;i={type:`toolCall`,id:t.id||``,name:r,arguments:s?{[a]:``}:{},partialArgs:s?void 0:``,customInput:s?{property:a,jsonBuffer:{input:``,started:!1,closed:!1}}:void 0,streamIndex:n},n!==void 0&&E.set(n,i),t.id&&O.set(t.id,i),k.push(i),o.push({type:`toolcall_start`,contentIndex:A(i),partial:e})}if(n!==void 0&&i.streamIndex===void 0&&(i.streamIndex=n,E.set(n,i)),t.id&&O.set(t.id,i),!i.name&&r&&(i.name=r),t.custom&&!t.function&&!i.customInput){let e=m.get(i.name)??`input`;i.arguments={[e]:``},i.customInput={property:e,jsonBuffer:{input:``,started:!1,closed:!1}},delete i.partialArgs}return i};for await(let n of x){if(!n||typeof n!=`object`)continue;e.responseId||=n.id,typeof n.model==`string`&&n.model.length>0&&n.model!==t.id&&(e.responseModel||=n.model),n.usage&&(e.usage=Q(n.usage,t));let i=Array.isArray(n.choices)?n.choices[0]:void 0;if(i){if(!n.usage&&i.usage&&(e.usage=Q(i.usage,t)),i.finish_reason){e.rawStopReason=i.finish_reason;let t=de(i.finish_reason);e.stopReason=t.stopReason,t.errorMessage&&(e.errorMessage=t.errorMessage),T=!0}if(i.delta){if(i.delta.content!==null&&i.delta.content!==void 0&&i.delta.content.length>0){let t=P();t.text+=i.delta.content,o.push({type:`text_delta`,contentIndex:A(t),delta:i.delta.content,partial:e})}let n=[`reasoning_content`,`reasoning`,`reasoning_text`],a=i.delta,c=null;for(let e of n){let t=a[e];if(typeof t==`string`&&t.length>0){c=e;break}}if(c){let n=a[c];if(typeof n==`string`&&n.length>0){let r=F(t.provider===`opencode-go`&&c===`reasoning`?`reasoning_content`:c);r.thinking+=n,o.push({type:`thinking_delta`,contentIndex:A(r),delta:n,partial:e})}}if(i?.delta?.tool_calls)for(let t of i.delta.tool_calls){let n=I(t);!n.id&&t.id&&(n.id=t.id,O.set(t.id,n));let i=t.function?.name??t.custom?.name;!n.name&&i&&(n.name=i);let a=``;t.function?.arguments?(a=t.function.arguments,n.partialArgs=(n.partialArgs??``)+t.function.arguments,n.arguments=r(n.partialArgs)):t.custom?.input&&(a=M(n,j(n)+t.custom.input,!1)??``),o.push({type:`toolcall_delta`,contentIndex:A(n),delta:a,partial:e})}let l=i.delta.reasoning_details;if(Array.isArray(l))for(let e of l)L(e)&&(F(``),s??=[],z(s,e))}}}for(let e of k)N(e);if(i?.signal?.aborted||e.stopReason===`aborted`)throw Error(`Request was aborted`);if(!T&&!d.supportsFinishReason&&(e.stopReason=e.content.some(e=>e.type===`toolCall`)?`toolUse`:`stop`),e.stopReason===`error`)throw Error(e.errorMessage||`Provider returned an error stop reason`);if(d.supportsFinishReason&&!T||e.stopReason===`pending`)throw Error(`Stream ended without finish_reason`);o.push({type:`done`,reason:e.stopReason,message:e}),o.end()}catch(t){for(let t of e.content)t.type===`thinking`&&l(t),delete t.index,delete t.partialArgs,delete t.customInput,delete t.streamIndex;e.stopReason=i?.signal?.aborted?`aborted`:`error`,e.errorMessage=C(S(t));let n=t?.error?.metadata?.raw;n&&!e.errorMessage.includes(String(n))&&(e.errorMessage+=`\n${n}`),o.push({type:`error`,reason:e.stopReason,error:e}),o.end()}})(),o},ie=(e,n,r)=>{D(e.provider,r?.apiKey,r?.headers);let i={...v(e,n,r,r?.apiKey),toolChoice:r?.toolChoice},a=r?.reasoning?t(e,r.reasoning):void 0,o=a===`off`?void 0:a;return V(e,n,{...i,reasoningEffort:o,thinkingBudgets:r?.thinkingBudgets})};function H(e,t,n,r,i,a,o=$(e)){let s={"User-Agent":d(),...e.headers};if(e.provider===`github-copilot`){let e=h(t.messages),n=g({messages:t.messages,hasImages:e});Object.assign(s,n)}return a&&o.sendSessionAffinityHeaders&&(o.sessionAffinityFormat===`openrouter`?s[`x-session-id`]=a:(o.sessionAffinityFormat===`openai`&&(s.session_id=a),s[`x-client-request-id`]=a,s[`x-session-affinity`]=a)),r&&Object.assign(s,r),new x({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:s})}function U(e,t,n,r=$(e),i=B(n?.cacheRetention,n?.env),a=c(t.tools,r.supportsOpenAIGrammarTools)){let o=X(e,t,r,{grammarToolInputProperties:a}),s=J(r,i),l={model:e.id,messages:o,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&i!==`none`||i===`long`&&r.supportsLongCacheRetention?w(n?.sessionId):void 0,prompt_cache_retention:i===`long`&&r.supportsLongCacheRetention?`24h`:void 0};r.supportsUsageInStreaming!==!1&&(l.stream_options={include_usage:!0}),r.supportsStore&&(l.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?l.max_tokens=n.maxTokens:l.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(l.temperature=n.temperature);let u=r.deferredToolsMode===`kimi`?k(t.messages):new Set,d=t.tools?.filter(e=>!u.has(e.name));d&&d.length>0?(l.tools=Z(d,r),r.zaiToolStream&&(l.tool_stream=!0)):O(t.messages)&&(l.tools=[]),s&&ae(o,l.tools,s),n?.toolChoice&&(l.tool_choice=n.toolChoice);let f=W(r),p=G(e,n,l);if(r.thinkingFormat===`zai`&&e.reasoning){let t=l;if(t.thinking=n?.reasoningEffort?{type:`enabled`,clear_thinking:!1}:{type:`disabled`},n?.reasoningEffort&&r.supportsReasoningEffort){let r=e.thinkingLevelMap?.[n.reasoningEffort],i=r===void 0?n.reasoningEffort:r;typeof i==`string`&&(t.reasoning_effort=i)}}else if(r.thinkingFormat===`qwen`&&e.reasoning){if(l.enable_thinking=!!n?.reasoningEffort,n?.reasoningEffort&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;typeof t==`string`&&(l.reasoning_effort=t)}}else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)l.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat===`chat-template`&&e.reasoning){let t=K(e,n,r.chatTemplateKwargs,p);t&&(l.chat_template_kwargs=t)}else if(r.thinkingFormat===`baseten`&&e.reasoning){let t=l,i=K(e,n,r.chatTemplateArgs,p);if(i&&(t.chat_template_args=i),r.supportsReasoningEffort){let r=n?.reasoningEffort,i=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off,a=i===void 0?r:i;typeof a==`string`&&(t.reasoning_effort=a)}}else if(r.thinkingFormat===`deepseek`&&e.reasoning)n?.reasoningEffort?l.thinking={type:`enabled`}:e.thinkingLevelMap?.off!==null&&(l.thinking={type:`disabled`}),n?.reasoningEffort&&r.supportsReasoningEffort&&(l.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(r.thinkingFormat===`openrouter`&&e.reasoning){let t=l;n?.reasoningEffort?t.reasoning={effort:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort}:e.thinkingLevelMap?.off!==null&&(t.reasoning={effort:e.thinkingLevelMap?.off??`none`})}else if(r.thinkingFormat===`ant-ling`&&e.reasoning&&n?.reasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort];typeof t==`string`&&(l.reasoning={effort:t})}else if(r.thinkingFormat===`together`&&e.reasoning){let t=l;t.reasoning={enabled:!!n?.reasoningEffort},n?.reasoningEffort&&r.supportsReasoningEffort&&(t.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort)}else if(r.thinkingFormat===`string-thinking`&&e.reasoning){let t=l;n?.reasoningEffort?t.thinking=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:e.thinkingLevelMap?.off!==null&&(t.thinking=e.thinkingLevelMap?.off??`none`)}else if(n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)l.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.off;typeof t==`string`&&(l.reasoning_effort=t)}if(f&&p!==void 0&&Object.assign(l,{[f]:p}),e.compat?.openRouterRouting&&(l.provider=e.compat.openRouterRouting),e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),l.providerOptions={gateway:e}}}return n?.samplingParams&&Object.assign(l,n.samplingParams),l}function W(e){if(e.thinkingTokenBudgetField)return e.thinkingTokenBudgetField;if(e.supportsThinkingTokenBudget)return`thinking_token_budget`}function G(e,t,n){if(!t?.reasoningEffort||!e.reasoning)return;let r=n.max_tokens??n.max_completion_tokens??e.maxTokens,i=_(y(t.reasoningEffort,t.thinkingBudgets),r);return i>0?i:void 0}function K(e,t,n,r){let i={};for(let[a,o]of Object.entries(n)){let n=q(e,t,o,r);n!==void 0&&(i[a]=n)}return Object.keys(i).length>0?i:void 0}function q(e,t,n,r){if(typeof n!=`object`||!n)return n;let i=t?.reasoningEffort;if(!i&&n.omitWhenOff)return;if(n.$var===`thinking.enabled`)return!!i;if(n.$var===`thinking.budget`)return r;let a=i?e.thinkingLevelMap?.[i]:e.thinkingLevelMap?.off;return a===void 0?i:typeof a==`string`?a:void 0}function J(e,t){if(e.cacheControlFormat!==`anthropic`||t===`none`)return;let n=t===`long`&&e.supportsLongCacheRetention?`1h`:void 0;return{type:`ephemeral`,...n?{ttl:n}:{}}}function ae(e,t,n){oe(e,n),ce(t,n),se(e,n)}function oe(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){le(n,t);return}}function se(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`||r.role===`tool`)&&ue(r,t))return}}function ce(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function le(e,t){return Y(e,t)}function ue(e,t){return e.role===`user`||e.role===`assistant`||e.role===`tool`?Y(e,t):!1}function Y(e,t){let n=e.content;if(typeof n==`string`)return n.length!==0&&(e.content=[{type:`text`,text:n,cache_control:t}],!0);if(!Array.isArray(n))return!1;for(let e=n.length-1;e>=0;e--){let r=n[e];if(r?.type===`text`){let e=r;return e.cache_control=t,!0}}return!1}function X(e,t,n,r){let i=[],a=t=>{if(t.includes(`|`)){let e=t.indexOf(`|`),n=t.slice(0,e).replace(/[^a-zA-Z0-9_-]/g,`_`),r=t.slice(e+1).replace(/[^a-zA-Z0-9_-]/g,`_`),i=r.length>0?`${n}_${r}`:n;if(i.length<=40)return i;let a=T(t).slice(0,8);return`${n.slice(0,Math.max(1,40-a.length-1))}_${a}`}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},o=b(t.messages,e,e=>a(e));if(t.systemPrompt){let r=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;i.push({role:r,content:m(t.systemPrompt)})}let s=null;for(let a=0;a<o.length;a++){let c=o[a];if(n.requiresAssistantAfterToolResult&&s===`toolResult`&&c.role===`user`&&i.push({role:`assistant`,content:`I have processed the tool results.`}),c.role===`user`){if(typeof c.content==`string`)i.push({role:`user`,content:m(c.content)});else{let e=c.content.map(e=>e.type===`text`?{type:`text`,text:m(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;i.push({role:`user`,content:e})}}else if(c.role===`assistant`){let t={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},a=c.content.filter(j).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:m(e.text)})),o=a.map(e=>e.text).join(``),s=c.content.filter(M),l=c.content.filter(N),d=s.map(e=>ee(e.thinkingSignature)).find(e=>e!==void 0),f=l.map(e=>te(e.thoughtSignature)).filter(e=>e!==void 0),p=d??(f.length>0?f:void 0),h=s.filter(e=>e.thinking.trim().length>0);if(h.length>0){if(n.requiresThinkingAsText)t.content=[{type:`text`,text:h.map(e=>m(e.thinking)).join(`
|
|
2
2
|
|
|
3
3
|
`)},...a];else if(o.length>0&&(t.content=o),!p){let n=h[0].thinkingSignature;e.provider===`opencode-go`&&n===`reasoning`&&(n=`reasoning_content`),n&&re(n)&&(t[n]=h.map(e=>e.thinking).join(`
|
|
4
4
|
`))}}else o.length>0&&(t.content=o);l.length>0&&(t.tool_calls=l.map(e=>{let t=r?.grammarToolInputProperties?.get(e.name);return t===void 0?{id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}:{id:e.id,type:`custom`,custom:{name:e.name,input:m(u(e.name,e.arguments,t))}}})),p&&(t.reasoning_details=p),n.requiresReasoningContentOnAssistantMessages&&e.reasoning&&t.reasoning_content===void 0&&(t.reasoning_content=``);let g=t.content;if(!(g!=null&&g.length>0)&&!t.tool_calls)continue;i.push(t)}else if(c.role===`toolResult`){let r=[],c=new Set,l=a;for(;l<o.length&&o[l].role===`toolResult`;l++){let t=o[l],a=t.content.filter(j).map(e=>e.text).join(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./diagnostics-DN_idNHx.js";import{n as t}from"./models-
|
|
1
|
+
import{i as e}from"./diagnostics-DN_idNHx.js";import{n as t}from"./models-YdybRRvT.js";import{t as n}from"./provider-env-CTOcDKrQ.js";import{t as r}from"./deferred-tools-C1IEsG5C.js";import{t as i}from"./headers-CbDaTl3c.js";import{n as a,s as o}from"./constrained-sampling-CNZLpVD5.js";import{t as s}from"./provider-retry-C8PJzY_l.js";import{n as c,t as l}from"./github-copilot-headers-DRgtIyTm.js";import{r as u}from"./transform-messages-BsQjTIEJ.js";import{n as d}from"./openai-BKEGagiR.js";import{n as f,t as p}from"./error-body-pkrba6pf.js";import{t as m}from"./openai-prompt-cache-DXo9f3w5.js";import{n as h,r as g,t as _}from"./openai-responses-shared-CdC6rVE7.js";var v=new Set([`openai`,`openai-codex`,`opencode`]),y=16;function b(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function x(e,t,n){if(t)return t;if(b(n,`authorization`)||b(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function S(e){return e.provider===`openrouter`||e.baseUrl.includes(`openrouter.ai`)?`openrouter`:`openai`}function C(e,t){return e||(n(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}function w(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,sessionAffinityFormat:e.compat?.sessionAffinityFormat??S(e),supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0,supportsStrictMode:e.compat?.supportsStrictMode??!1,supportsOpenAIGrammarTools:e.compat?.supportsOpenAIGrammarTools??!1,supportsAdditionalTools:e.compat?.supportsAdditionalTools??!1,supportsToolSearch:e.compat?.supportsToolSearch??!1,supportsExplicitPromptCacheMode:e.compat?.supportsExplicitPromptCacheMode??!1}}function T(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function E(e){return p(f(e),`OpenAI API error`)}var D=(t,n,r)=>{let o=new e;return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let c=x(t.provider,r?.apiKey,r?.headers),l=C(r?.cacheRetention,r?.env)===`none`?void 0:r?.sessionId,u=w(t),d=a(n.tools,u.supportsOpenAIGrammarTools),f=k(t,n,c,r?.headers,r?.fetch,l),p=A(t,n,r,u,d),m=await r?.onPayload?.(p,t);m!==void 0&&(p=m);let h={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:0},{data:_,response:v}=await s(()=>f.responses.create(p,h).withResponse(),{maxRetries:r?.maxRetries,maxRetryDelayMs:r?.maxRetryDelayMs,signal:r?.signal});if(await r?.onResponse?.({status:v.status,headers:i(v.headers)},t),o.push({type:`start`,partial:e}),await g(_,e,o,t,{serviceTier:r?.serviceTier,grammarToolInputProperties:d,applyServiceTierPricing:(e,n)=>M(e,n,t)}),r?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`pending`)throw Error(`OpenAI Responses stream ended without a stop reason`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(e.errorMessage||`An unknown error occurred`);o.push({type:`done`,reason:e.stopReason,message:e}),o.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson,delete t.customInput;e.stopReason=r?.signal?.aborted?`aborted`:`error`,e.errorMessage=E(t),o.push({type:`error`,reason:e.stopReason,error:e}),o.end()}})(),o},O=(e,n,r)=>{x(e.provider,r?.apiKey,r?.headers);let i={...u(e,n,r,r?.apiKey),toolChoice:r?.toolChoice},a=r?.reasoning?t(e,r.reasoning):void 0,o=a===`off`?void 0:a;return D(e,n,{...i,reasoningEffort:o})};function k(e,t,n,r,i,a){let s=w(e),u={"User-Agent":o(),...e.headers};if(e.provider===`github-copilot`){let e=c(t.messages),n=l({messages:t.messages,hasImages:e});Object.assign(u,n)}return a&&(s.sessionAffinityFormat===`openrouter`?u[`x-session-id`]=a:(s.sessionAffinityFormat===`openai`&&(u.session_id=a),u[`x-client-request-id`]=a)),r&&Object.assign(u,r),new d({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:u})}function A(e,t,n,i=w(e),o=a(t.tools,i.supportsOpenAIGrammarTools)){let s=i.supportsAdditionalTools?`additional-tools`:i.supportsToolSearch?`tool-search`:void 0,c=r(t,s!==void 0),l=_(e,t,v,{grammarToolInputProperties:o,deferredTools:c.deferred,deferredToolsMode:s,toolOptions:{supportsStrictMode:i.supportsStrictMode,supportsOpenAIGrammarTools:i.supportsOpenAIGrammarTools}}),u=C(n?.cacheRetention,n?.env),d=u===`none`&&i.supportsExplicitPromptCacheMode,f={model:e.id,input:l,stream:!0,prompt_cache_key:u===`none`?void 0:m(n?.sessionId),prompt_cache_retention:T(i,u),prompt_cache_options:d?{mode:`explicit`}:void 0,store:!1};return n?.maxTokens&&(f.max_output_tokens=Math.max(n.maxTokens,y)),n?.temperature!==void 0&&(f.temperature=n?.temperature),n?.serviceTier!==void 0&&(f.service_tier=n.serviceTier),c.immediate.length>0&&(f.tools=h(c.immediate,{supportsStrictMode:i.supportsStrictMode,supportsOpenAIGrammarTools:i.supportsOpenAIGrammarTools})),n?.toolChoice!==void 0&&(f.tool_choice=n.toolChoice),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(f.reasoning={effort:n?.reasoningEffort?e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:`medium`,summary:n?.reasoningSummary||`auto`},f.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(f.reasoning={effort:e.thinkingLevelMap?.off??`none`}),e.provider===`xai`&&(f.include=[`reasoning.encrypted_content`])),n?.samplingParams&&Object.assign(f,n.samplingParams),f}function j(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function M(e,t,n){let r=j(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{D as stream,O as streamSimple};
|
package/dist/ui/assets/{openai-responses-shared-BN7PRIa9.js → openai-responses-shared-CdC6rVE7.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./models-
|
|
1
|
+
import{t as e}from"./models-YdybRRvT.js";import{n as t}from"./json-parse-CgFfIg4Q.js";import{a as n,i as r,o as i,r as a,t as o}from"./constrained-sampling-CNZLpVD5.js";import{t as s}from"./sanitize-unicode-DmIE6hZJ.js";import{t as c}from"./transform-messages-BsQjTIEJ.js";import{t as l}from"./hash-yQufAZII.js";function u(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function d(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function f(e,t){let n=t.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
2
2
|
`),r=t.filter(e=>e.type===`image`),i=n.length>0;if(r.length===0||!e.input.includes(`image`))return s(i?n:r.length>0?`(see attached image)`:`(no tool output)`);let a=[];i&&a.push({type:`input_text`,text:s(n)});for(let e of r)a.push({type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});return a}function p(e,t,n,r){let i=[],o=new Set,u=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},p=e=>{let t=`fc_${l(e)}`;return t.length>64?t.slice(0,64):t},h=c(t.messages,e,(t,r,i)=>{if(!n.has(e.provider)||!t.includes(`|`))return u(t);let[a,o]=t.split(`|`),s=u(a),c=i.provider!==e.provider||i.api!==e.api?p(o):u(o);return c.startsWith(`fc_`)||(c=u(`fc_${c}`)),`${s}|${c}`});if((r?.includeSystemPrompt??!0)&&t.systemPrompt){let n=e.compat,r=e.reasoning&&n?.supportsDeveloperRole!==!1?`developer`:`system`;i.push({role:r,content:s(t.systemPrompt)})}let g=0;for(let t of h){if(t.role===`user`){if(typeof t.content==`string`)i.push({role:`user`,content:[{type:`input_text`,text:s(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{type:`input_text`,text:s(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});if(e.length===0)continue;i.push({role:`user`,content:e})}}else if(t.role===`assistant`){let n=[],o=t,c=o.provider===e.provider&&o.api===e.api,u=c&&o.model===e.id,f=c&&o.model!==e.id,p=0;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);n.push(t)}}else if(e.type===`text`){let t=e,r=d(t.textSignature),i=p===0?`msg_pi_${g}`:`msg_pi_${g}_${p}`;p++;let a=r?.id;a?a.length>64&&(a=`msg_${l(a)}`):a=i,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:s(t.text),annotations:[]}],status:`completed`,id:a,phase:r?.phase})}else if(e.type===`toolCall`){let t=e,[i,o]=t.id.split(`|`),c=r?.grammarToolInputProperties?.get(t.name),l=o;(f&&l?.startsWith(`fc_`)||c===void 0&&!l?.startsWith(`fc_`))&&(l=void 0);let d=u||r?.deferredTools?.has(t.name)===!0;c===void 0?n.push({type:`function_call`,id:l,call_id:i,name:t.name,arguments:JSON.stringify(t.arguments),...d&&t.namespace!==void 0?{namespace:t.namespace}:{}}):n.push({type:`custom_tool_call`,id:l,call_id:i,name:t.name,input:s(a(t.name,t.arguments,c)),...d&&t.namespace!==void 0?{namespace:t.namespace}:{}})}if(n.length===0)continue;i.push(...n)}else if(t.role===`toolResult`){let[n]=t.toolCallId.split(`|`),a=f(e,t.content);r?.grammarToolInputProperties?.has(t.toolName)?i.push({type:`custom_tool_call_output`,call_id:n,output:a}):i.push({type:`function_call_output`,call_id:n,output:a});let s=[];for(let e of t.addedToolNames??[]){let t=r?.deferredTools?.get(e);!t||o.has(e)||(o.add(e),s.push(t))}if(s.length>0&&r?.deferredToolsMode===`additional-tools`)i.push({type:`additional_tools`,role:`developer`,tools:m(s,r.toolOptions)});else if(s.length>0&&r?.deferredToolsMode===`tool-search`){let e=s.map(e=>e.name),n=`pi_tool_load_${l(`${t.toolCallId}:${e.join(`,`)}`)}`;i.push({type:`tool_search_call`,call_id:n,execution:`client`,status:`completed`,arguments:{query:e.join(` `),limit:e.length}}),i.push({type:`tool_search_output`,call_id:n,execution:`client`,status:`completed`,tools:m(s,{...r.toolOptions,deferLoading:!0})})}}g++}return i}function m(e,t){let a=t?.strict!==void 0&&t.strict,o=t?.supportsStrictMode??!0,s=t?.supportsOpenAIGrammarTools??!1;return e.map(e=>{let c=n(e,s);if(c)return{type:`custom`,name:e.name,description:e.description,format:{type:`grammar`,syntax:c.format,definition:c.definition},...t?.deferLoading?{defer_loading:!0}:{}};let l=i(e,o)??a,u={type:`function`,name:e.name,description:e.description,parameters:r(e,l===!0),...t?.deferLoading?{defer_loading:!0}:{}};return o&&(u.strict=l),u})}function h(e){let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``}function g(e,t,n){let r=e.customInput;if(!r)return;let i=o(r.jsonBuffer,r.property,t,n);return e.arguments={[r.property]:t},i}async function _(n,r,i,a,o){let s=!1,c=new Map,l=new Map,d=e=>{e.type===`message`&&e.phase===`final_answer`&&(r.stopReason=`stop`)},f=(e,t)=>{let n=c.get(e);return n?.type===t?n:void 0},p=(e,t)=>{t!==void 0&&i.push({type:`toolcall_delta`,contentIndex:e.contentIndex,delta:t,partial:r})},m=(e,t)=>{if(t.type===`reasoning`){let t={type:`thinking`,thinking:``};r.content.push(t);let n={type:`thinking`,block:t,contentIndex:r.content.length-1};return c.set(e,n),i.push({type:`thinking_start`,contentIndex:n.contentIndex,partial:r}),n}if(t.type===`message`){d(t);let n={type:`text`,text:``};r.content.push(n);let a={type:`text`,block:n,contentIndex:r.content.length-1};return c.set(e,a),i.push({type:`text_start`,contentIndex:a.contentIndex,partial:r}),a}if(t.type===`function_call`){let n={type:`toolCall`,id:`${t.call_id}|${t.id}`,name:t.name,arguments:{},...t.namespace===void 0?{}:{namespace:t.namespace},partialJson:t.arguments||``};r.content.push(n);let a={type:`toolCall`,block:n,contentIndex:r.content.length-1};return c.set(e,a),i.push({type:`toolcall_start`,contentIndex:a.contentIndex,partial:r}),a}if(t.type===`custom_tool_call`){let n=o?.grammarToolInputProperties?.get(t.name)??`input`,a=t.input||``,s={type:`toolCall`,id:`${t.call_id}|${t.id}`,name:t.name,arguments:{[n]:a},...t.namespace===void 0?{}:{namespace:t.namespace},customInput:{property:n,jsonBuffer:{input:``,started:!1,closed:!1}}};r.content.push(s);let l={type:`toolCall`,block:s,contentIndex:r.content.length-1};return c.set(e,l),i.push({type:`toolcall_start`,contentIndex:l.contentIndex,partial:r}),l}},_=(e,t)=>c.get(e)??m(e,t),y=e=>{for(let t of e){if(t.type!==`reasoning`||!t.encrypted_content)continue;let e=l.get(t.id);if(!e?.thinkingSignature)continue;let n=JSON.parse(e.thinkingSignature);n.encrypted_content||(e.thinkingSignature=JSON.stringify({...n,encrypted_content:t.encrypted_content}))}},b=t=>{if(s=!0,y(t.output??[]),t?.id&&(r.responseId=t.id),t?.usage){let e=t.usage.input_tokens_details,n=e?.cached_tokens||0,i=e?.cache_write_tokens||0;r.usage={input:Math.max(0,(t.usage.input_tokens||0)-n-i),output:t.usage.output_tokens||0,cacheRead:n,cacheWrite:i,reasoning:t.usage.output_tokens_details?.reasoning_tokens||0,totalTokens:t.usage.total_tokens||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}if(e(a,r.usage),o?.applyServiceTierPricing){let e=o.resolveServiceTier?o.resolveServiceTier(t?.service_tier,o.serviceTier):t?.service_tier??o.serviceTier;o.applyServiceTierPricing(r.usage,e)}let n=t?.status,i=t?.incomplete_details,c=typeof i?.reason==`string`?i.reason:void 0;r.rawStopReason=c?`${n}.${c}`:n;let l=v(n,c);r.stopReason=l.stopReason,r.errorMessage=l.errorMessage,r.content.some(e=>e.type===`toolCall`)&&r.stopReason===`stop`&&(r.stopReason=`toolUse`)};for await(let e of n)if(e.type===`response.created`)r.responseId=e.response.id;else if(e.type===`response.output_item.added`)m(e.output_index,e.item);else if(e.type===`response.reasoning_summary_text.delta`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=e.delta,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.reasoning_summary_part.done`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=`
|
|
3
3
|
|
|
4
4
|
`,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./compat-
|
|
1
|
+
import{a as e}from"./compat-Dy2zIWAW.js";import{r as t,s as n}from"./legacy-api-aliases-DoI0tM7F.js";import{K as r,_ as i}from"./account-store-BPOuwEUe.js";import"./main-CwH54Phg.js";import{fetchModels as a,getCatalog as o}from"./openrouter-models-Cfi7qjq5.js";import{loginIntercepted as s}from"./openrouter-oauth-DQBrEEUm.js";var c=`openrouter`,l=`https://openrouter.ai/api/v1`,u=`openai-completions`,d=`${c}-openai`,f={"HTTP-Referer":`https://sliccy.ai`,"X-Title":`SLICC`};function p(e){return{...e,baseUrl:l,api:u}}function m(e){return{...e??{},...f}}var h=(e,n,r={})=>t(p(e),n,{...r,apiKey:i(c)??r.apiKey,headers:m(r.headers)}),g=(e,t,r={})=>n(p(e),t,{...r,apiKey:i(c)??r.apiKey,headers:m(r.headers)}),_={id:c,name:`OpenRouter`,description:`Access OpenRouter models with one-click PKCE login. No pasted API key is required.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`anthropic/claude-sonnet-4.6`,oauthTokenDomains:[`openrouter.ai`,`*.openrouter.ai`],getModelIds:o,refreshModels:async()=>{await a()},onOAuthLoginIntercepted:async(e,t,n)=>{await s(e,()=>void 0,n),await a().catch(()=>void 0),t()},onOAuthLogout:async()=>{await r({providerId:c,accessToken:``})}};function v(){e({api:d,stream:h,streamSimple:g})}export{_ as config,v as register};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./diagnostics-DN_idNHx.js";import{a as t}from"./compat-
|
|
1
|
+
import{a as e}from"./diagnostics-DN_idNHx.js";import{a as t}from"./compat-Dy2zIWAW.js";import{r as n,s as r}from"./legacy-api-aliases-DoI0tM7F.js";import{K as i,_ as a}from"./account-store-BPOuwEUe.js";import"./main-CwH54Phg.js";import{FREE_ROUTER_FALLBACK as o,fetchModels as s,getFreeCatalog as c,isModelInFreeCatalog as l}from"./openrouter-models-Cfi7qjq5.js";import{loginIntercepted as u}from"./openrouter-oauth-DQBrEEUm.js";var d=`openrouter-free`,f=`https://openrouter.ai/api/v1`,p=`openai-completions`,m=`${d}-openai`,h={"HTTP-Referer":`https://sliccy.ai`,"X-Title":`SLICC`};function g(e){return{...e,baseUrl:f,api:p}}function _(e){return{...e??{},...h}}function v(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:m,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 y(t){let n=e(),r=Error(`OpenRouter (Free) refused "${t.id}" — it is not in the current free catalog. Choose another free model or refresh the catalog.`);return queueMicrotask(()=>{n.push(v(t,r)),n.end()}),n}var b=(e,t,r={})=>l(e.id)?n(g(e),t,{...r,apiKey:a(d)??r.apiKey,headers:_(r.headers)}):y(e),x=(e,t,n={})=>l(e.id)?r(g(e),t,{...n,apiKey:a(d)??n.apiKey,headers:_(n.headers)}):y(e),S={id:d,name:`OpenRouter (Free)`,description:`Currently free OpenRouter models that support vision and tools. Catalog refreshes from OpenRouter; paid models are excluded.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:o.id,oauthTokenDomains:[`openrouter.ai`,`*.openrouter.ai`],getModelIds:c,refreshModels:async()=>{await s()},onOAuthLoginIntercepted:async(e,t,n)=>{await u(e,()=>void 0,{...n,providerId:d}),await s().catch(()=>void 0),t()},onOAuthLogout:async()=>{await i({providerId:d,accessToken:``})}};function C(){t({api:m,stream:b,streamSimple:x})}export{S as config,C as register};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as e,a as t}from"./account-store-
|
|
1
|
+
import{_ as e,a as t}from"./account-store-DCNh6_f3.js";import{a as n}from"./diagnostics-DN_idNHx.js";import{a as r}from"./compat-uEPf6-XW.js";import{r as i,s as a}from"./legacy-api-aliases-jKEvBgOL.js";import"./provider-settings-C_VIs5bh.js";import{FREE_ROUTER_FALLBACK as o,fetchModels as s,getFreeCatalog as c,isModelInFreeCatalog as l}from"./openrouter-models-DyyLIGVe.js";import{loginIntercepted as u}from"./openrouter-oauth-Ci3YPqRM.js";const d=`openrouter-free`,f=`${d}-openai`,p={"HTTP-Referer":`https://sliccy.ai`,"X-Title":`SLICC`};function m(e){return{...e,baseUrl:`https://openrouter.ai/api/v1`,api:`openai-completions`}}function h(e){return{...e??{},...p}}function g(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:f,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 _(e){let t=n(),r=Error(`OpenRouter (Free) refused "${e.id}" — it is not in the current free catalog. Choose another free model or refresh the catalog.`);return queueMicrotask(()=>{t.push(g(e,r)),t.end()}),t}const v=(e,n,r={})=>l(e.id)?i(m(e),n,{...r,apiKey:t(d)??r.apiKey,headers:h(r.headers)}):_(e),y=(e,n,r={})=>l(e.id)?a(m(e),n,{...r,apiKey:t(d)??r.apiKey,headers:h(r.headers)}):_(e),b={id:d,name:`OpenRouter (Free)`,description:`Currently free OpenRouter models that support vision and tools. Catalog refreshes from OpenRouter; paid models are excluded.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:o.id,oauthTokenDomains:[`openrouter.ai`,`*.openrouter.ai`],getModelIds:c,refreshModels:async()=>{await s()},onOAuthLoginIntercepted:async(e,t,n)=>{await u(e,()=>void 0,{...n,providerId:d}),await s().catch(()=>void 0),t()},onOAuthLogout:async()=>{await e({providerId:d,accessToken:``})}};function x(){r({api:f,stream:v,streamSimple:y})}export{b as config,x as register};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as e}from"./account-store-
|
|
1
|
+
import{_ as e}from"./account-store-DCNh6_f3.js";import"./provider-settings-C_VIs5bh.js";import{n as t,t as n}from"./pkce-hGf_TEnP.js";const r=`http://127.0.0.1:3000/callback`,i=`http://127.0.0.1:3000/*`;function a(e,t){let n=new URL(`https://openrouter.ai/auth`);return n.searchParams.set(`callback_url`,e),n.searchParams.set(`code_challenge`,t),n.searchParams.set(`code_challenge_method`,`S256`),n.toString()}function o(e){if(!e)throw Error(`OpenRouter OAuth login was cancelled or timed out`);let t;try{t=new URL(e)}catch{throw Error(`OpenRouter OAuth returned an invalid callback URL`)}let n=t.searchParams.get(`code`);if(!n)throw Error(`OpenRouter OAuth redirect did not include an authorization code`);return n}async function s(e,t,n=fetch){let r=await n(`https://openrouter.ai/api/v1/auth/keys`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:e,code_verifier:t,code_challenge_method:`S256`}),signal:AbortSignal.timeout(3e4)});if(!r.ok){let e=await r.text();throw Error(`OpenRouter key exchange failed (${r.status}): ${e||`(empty response body)`}`)}let i;try{i=await r.json()}catch{throw Error(`OpenRouter key exchange returned invalid JSON`)}let a=i&&typeof i==`object`&&typeof i.key==`string`?i.key.trim():``;if(!a)throw Error(`OpenRouter key exchange returned an empty or invalid API key`);return a}async function c(c,l,u){let d=u?.providerId??`openrouter`,f=t(),p=await n(f),m=await s(o(await c({authorizeUrl:a(r,p),redirectUriPattern:i,onCapture:`close`})),f);await e({providerId:d,accessToken:m,tokenExpiresAt:2**53-1,baseUrl:`https://openrouter.ai/api/v1`}),l()}export{r as OPENROUTER_CALLBACK_URL,i as OPENROUTER_REDIRECT_URI_PATTERN,a as buildAuthorizeUrl,n as deriveCodeChallenge,s as exchangeCodeForKey,t as generateCodeVerifier,c as loginIntercepted,o as parseCallbackCode};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{K as e}from"./account-store-
|
|
1
|
+
import{K as e}from"./account-store-BPOuwEUe.js";import"./main-CwH54Phg.js";import{n as t,t as n}from"./pkce-hGf_TEnP.js";var r=`https://openrouter.ai/auth`,i=`https://openrouter.ai/api/v1/auth/keys`,a=`https://openrouter.ai/api/v1`,o=`http://127.0.0.1:3000/callback`,s=`http://127.0.0.1:3000/*`;function c(e,t){let n=new URL(r);return n.searchParams.set(`callback_url`,e),n.searchParams.set(`code_challenge`,t),n.searchParams.set(`code_challenge_method`,`S256`),n.toString()}function l(e){if(!e)throw Error(`OpenRouter OAuth login was cancelled or timed out`);let t;try{t=new URL(e)}catch{throw Error(`OpenRouter OAuth returned an invalid callback URL`)}let n=t.searchParams.get(`code`);if(!n)throw Error(`OpenRouter OAuth redirect did not include an authorization code`);return n}async function u(e,t,n=fetch){let r=await n(i,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:e,code_verifier:t,code_challenge_method:`S256`}),signal:AbortSignal.timeout(3e4)});if(!r.ok){let e=await r.text();throw Error(`OpenRouter key exchange failed (${r.status}): ${e||`(empty response body)`}`)}let a;try{a=await r.json()}catch{throw Error(`OpenRouter key exchange returned invalid JSON`)}let o=a&&typeof a==`object`&&typeof a.key==`string`?a.key.trim():``;if(!o)throw Error(`OpenRouter key exchange returned an empty or invalid API key`);return o}async function d(r,i,d){let f=d?.providerId??`openrouter`,p=t(),m=await u(l(await r({authorizeUrl:c(o,await n(p)),redirectUriPattern:s,onCapture:`close`})),p);await e({providerId:f,accessToken:m,tokenExpiresAt:2**53-1,baseUrl:a}),i()}export{o as OPENROUTER_CALLBACK_URL,s as OPENROUTER_REDIRECT_URI_PATTERN,c as buildAuthorizeUrl,n as deriveCodeChallenge,u as exchangeCodeForKey,t as generateCodeVerifier,d as loginIntercepted,l as parseCallbackCode};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as e,a as t}from"./account-store-
|
|
1
|
+
import{_ as e,a as t}from"./account-store-DCNh6_f3.js";import{a as n}from"./compat-uEPf6-XW.js";import{r,s as i}from"./legacy-api-aliases-jKEvBgOL.js";import"./provider-settings-C_VIs5bh.js";import{fetchModels as a,getCatalog as o}from"./openrouter-models-DyyLIGVe.js";import{loginIntercepted as s}from"./openrouter-oauth-Ci3YPqRM.js";const c=`openrouter`,l=`${c}-openai`,u={"HTTP-Referer":`https://sliccy.ai`,"X-Title":`SLICC`};function d(e){return{...e,baseUrl:`https://openrouter.ai/api/v1`,api:`openai-completions`}}function f(e){return{...e??{},...u}}const p=(e,n,i={})=>r(d(e),n,{...i,apiKey:t(c)??i.apiKey,headers:f(i.headers)}),m=(e,n,r={})=>i(d(e),n,{...r,apiKey:t(c)??r.apiKey,headers:f(r.headers)}),h={id:c,name:`OpenRouter`,description:`Access OpenRouter models with one-click PKCE login. No pasted API key is required.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`anthropic/claude-sonnet-4.6`,oauthTokenDomains:[`openrouter.ai`,`*.openrouter.ai`],getModelIds:o,refreshModels:async()=>{await a()},onOAuthLoginIntercepted:async(e,t,n)=>{await s(e,()=>void 0,n),await a().catch(()=>void 0),t()},onOAuthLogout:async()=>{await e({providerId:c,accessToken:``})}};function g(){n({api:l,stream:p,streamSimple:m})}export{h as config,g as register};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Async as e,FileSystem as t,InMemory as n,IndexFS as r,Inode as i,Sync as a,a as o,d as s,f as c,h as l,i as u,isFile as d,m as f,n as p,o as m,p as h,r as g,resolveMountConfig as _,s as v,t as y,u as b,v as x}from"./dist-HBVgABmW.js";import{i as S,r as C}from"./fs-
|
|
1
|
+
import{Async as e,FileSystem as t,InMemory as n,IndexFS as r,Inode as i,Sync as a,a as o,d as s,f as c,h as l,i as u,isFile as d,m as f,n as p,o as m,p as h,r as g,resolveMountConfig as _,s as v,t as y,u as b,v as x}from"./dist-HBVgABmW.js";import{i as S,r as C}from"./fs-CB72Wfta.js";function w(e){switch(e.name){case`TypeMismatchError`:return`EPERM`;case`IndexSizeError`:case`HierarchyRequestError`:case`InvalidCharacterError`:case`InvalidStateError`:case`SyntaxError`:case`NamespaceError`:case`ConstraintError`:case`VersionError`:case`URLMismatchError`:case`InvalidNodeTypeError`:return`EINVAL`;case`WrongDocumentError`:return`EXDEV`;case`NoModificationAllowedError`:case`InvalidModificationError`:case`InvalidAccessError`:case`SecurityError`:case`NotAllowedError`:return`EACCES`;case`NotFoundError`:return`ENOENT`;case`NotSupportedError`:return`ENOTSUP`;case`InUseAttributeError`:return`EBUSY`;case`NetworkError`:return`ENETDOWN`;case`AbortError`:return`EINTR`;case`QuotaExceededError`:return`ENOSPC`;case`TimeoutError`:return`ETIMEDOUT`;case`ReadOnlyError`:return`EROFS`;default:return`EIO`}}function T(e,t){if(e instanceof f)return e;let n=e instanceof DOMException?h[w(e)]:h.EIO,r=new f(n,e.message);return r.stack=e.stack,Error.captureStackTrace?.(r,T),r.cause=e.cause,r}function E(e){return typeof e==`object`&&!!e&&e.constructor.name==`SharedArrayBuffer`}function D(e){return e instanceof ArrayBuffer?e.resizable:E(e)?e.growable:!1}function O(e,t){return e.kind==t}var k=class extends e(r){async _loadHandles(e,t){for await(let[n,r]of t.entries()){let t=u(e,n);this._handles.set(t,r),O(r,`directory`)&&await this._loadHandles(t,r)}}async _loadMetadata(e){if(this._handles.set(`/`,this.root),await this._loadHandles(`/`,this.root),e){let t=await(await(await this.get(`file`,e)).getFile()).text(),n=JSON.parse(t);this.index.fromJSON(n);return}c(`webaccessfs: no metadata file specified, generating new metadata`);for(let[e,t]of this._handles){let n=this.index._alloc();if(O(t,`file`)){let{lastModified:r,size:a}=await t.getFile();this.index.set(e,new i({mode:420|v,size:a,mtimeMs:r,ino:n,data:n+1,nlink:1}));continue}if(!O(t,`directory`))throw l(`EIO`,`Invalid handle`);this.index.set(e,new i({mode:511|o,size:0,ino:n,data:n+1,nlink:1}))}}constructor(e,t=!1){super(2003133025,`webaccessfs`),this.root=e,this.disableHandleCache=t,this._handles=new Map,this._sync=n.create({label:`accessfs-cache`}),this.attributes.set(`no_buffer_resize`,!0),t&&this.attributes.set(`no_handle_cache`,!0)}async stat(e){try{return await super.stat(e)}catch(t){if(t.code!=`ENOENT`)throw t;let n=await this.get(null,e),r=this.index._alloc(),a=new i({ino:r,data:r+1,nlink:1});if(O(n,`file`)){let e=await n.getFile();a.update({mode:420|v,size:e.size,mtimeMs:e.lastModified})}else a.update({mode:o|511,size:0});return this.index.set(e,a),a}}async touch(e,t){let n=this.index.get(e);if(!n)throw l(`ENOENT`);if(typeof t.size!=`number`||!d(n))return await super.touch(e,t);let r=await this.get(`file`,e).catch(e=>{if(e.code!=`ENOENT`)throw e});if(!r)return await super.touch(e,t);let{size:i}=await r.getFile();if(i==t.size)return await super.touch(e,t);let a=await r.createWritable({keepExistingData:!!t.size});try{await a.truncate(t.size)}catch{await a.write({type:`truncate`,size:t.size})}await a.close(),await super.touch(e,t)}async readdir(e){let t=await this.get(`directory`,e);return await Array.fromAsync(t.keys())}async remove(e){let t=await this.get(`directory`,g(e));for(let t of this._handles.keys())g(t)==e&&this._handles.delete(t);this._handles.delete(e),await t.removeEntry(p(e),{recursive:!0}).catch(t=>{let n=T(t,e);n.code!=`ENOENT`&&x(n)})}removeSync(){throw s(l(`ENOSYS`))}async read(e,t,n,r){if(r<=n)return;let i=await this.get(`file`,e),a=r-n,o=()=>b(l(`EIO`,[`Unexpected mismatch in file data size. This should not happen.`,`tried to read ${a} bytes at ${n}.`,`path: ${e}`].join(`
|
|
2
2
|
`+` `.repeat(24))));if(typeof i.createSyncAccessHandle==`function`){let e;try{e=await i.createSyncAccessHandle();let r=t.subarray(0,a);if(e.read(r,{at:n})<a)throw o();return}catch(e){if(e&&e.code===`EIO`)throw e}finally{e?.close()}}let s=e=>e instanceof DOMException&&e.name===`NotReadableError`,c=e=>new Promise(t=>setTimeout(t,25*(e+1))),u,d=!1;for(let e=0;;e++){let t;try{t=await i.getFile()}catch(t){if(!s(t)||e>=2)throw t;await c(e);continue}try{d=typeof t.slice==`function`,u=await(d?t.slice(n,r):t).arrayBuffer();break}catch(t){if(!s(t)||e>=2)throw t;await c(e)}}if(!d&&u.byteLength<r||d&&u.byteLength<a)throw o();t.set(d?new Uint8Array(u):new Uint8Array(u,n,a))}async write(e,t,n){if(D(t.buffer)||E(t.buffer)){let e=new Uint8Array(new ArrayBuffer(t.byteLength),t.byteOffset,t.byteLength);e.set(t),t=e}let r=this.index.get(e);if(!r)throw l(`ENOENT`);let i=(r.mode&m)==o,a;try{a=await this.get(i?`directory`:`file`,e)}catch{a=await(await this.get(`directory`,g(e)))[i?`getDirectoryHandle`:`getFileHandle`](p(e),{create:!0}).catch(t=>x(T(t,e))),this.disableHandleCache||this._handles.set(e,a)}if(i)return;if(O(a,`directory`)){s(l(`EIO`,`Mismatch in entry kind on write`));return}if(typeof a.createSyncAccessHandle==`function`){let i;try{i=await a.createSyncAccessHandle()}catch{i=void 0}if(i){try{let r=i.write(t,{at:n||0});if(r<t.byteLength)throw l(`EIO`,`short write: ${r} of ${t.byteLength} bytes at ${n||0} to ${e}`);i.flush()}finally{i.close()}let{size:o,lastModified:s}=await a.getFile();r.update({size:o,mtimeMs:s}),this.index.set(e,r);return}}let c=await a.createWritable({keepExistingData:!0});if(n)try{await c.seek(n)}catch{await c.write({type:`seek`,position:n})}await c.write(t),await c.close();let{size:u,lastModified:d}=await a.getFile();r.update({size:u,mtimeMs:d}),this.index.set(e,r)}async writeFile(e,t){return this.write(e,t,0)}async _create(e,t){let n=await(await this.get(`directory`,g(e))).getFileHandle(p(e),{create:!0}).catch(t=>x(T(t,e)));this.disableHandleCache||this._handles.set(e,n)}async _mkdir(e){let t=await(await this.get(`directory`,g(e))).getDirectoryHandle(p(e),{create:!0}).catch(t=>x(T(t,e)));this.disableHandleCache||this._handles.set(e,t)}async get(e=null,t){let n=this._handles.get(t);if(!this.disableHandleCache&&n){if(e&&!O(n,e))throw l(e==`directory`?`ENOTDIR`:`EISDIR`);return n}if(t==`/`)return this.root;let r=t.slice(1).split(`/`),i=this.root;for(let e=0;e<r.length-1;++e)i=await i.getDirectoryHandle(r[e]).catch(e=>x(e.name==`TypeMismatchError`?l(`ENOTDIR`):T(e,t)));try{let n=await i[e==`file`?`getFileHandle`:`getDirectoryHandle`](r.at(-1));return this.disableHandleCache||this._handles.set(t,n),n}catch(n){if(n.name!=`TypeMismatchError`)throw T(n,t);if(e===null){let e=await i.getFileHandle(r.at(-1)).catch(e=>x(T(e,t)));return this.disableHandleCache||this._handles.set(t,e),e}throw l(e==`file`?`EISDIR`:`ENOTDIR`)}}},A={name:`WebAccess`,options:{handle:{type:`object`,required:!0},metadata:{type:`string`,required:!1},disableHandleCache:{type:`boolean`,required:!1},maxOpenFilesForCopy:{type:`number`,required:!1}},async create(e){let t=new k(e.handle,e.disableHandleCache);return t._crossCopySemaphore=new y(e.maxOpenFilesForCopy??128),await t._loadMetadata(e.metadata),t}};a(t);var j=16;async function M({handle:e,dbName:t,asyncCache:n,onRepairProgress:r,withWriteLock:i}){let a=()=>i(()=>C(e,r));try{let e=await a();e?.changed&&console.warn(`[virtual-fs] repaired metadata sidecar before mount (#2146)`,{dbName:t,kindFixed:e.kindFixed,sizesFixed:e.sizesFixed,dropped:e.dropped,inosReassigned:e.inosReassigned,nlinksFixed:e.nlinksFixed,selfEntryDropped:e.selfEntryDropped})}catch{}return S(()=>_({backend:A,handle:e,metadata:`/.metadata.json`,maxOpenFilesForCopy:j,disableAsyncCache:n===!1}),a,e=>console.warn(`[virtual-fs] repaired poisoned metadata sidecar; retrying mount`,{dbName:t,kindFixed:e.kindFixed,sizesFixed:e.sizesFixed,dropped:e.dropped,nlinksFixed:e.nlinksFixed,selfEntryDropped:e.selfEntryDropped}))}export{M as resolveOpfsMount};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secrets-bridge-client-B_CG-HIg.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/port-bridge-client-BiWcfZSc.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/proxied-fetch-DiXk_XGs.js","assets/base64-ELzoYfwP.js","assets/fetch-body-1l9I58Vk.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/mount-bridge-client-CaHZ1pkb.js","assets/types-D8gIX-W-.js","assets/page-approval-service-DRZEjhrX.js","assets/float-topology-B0_dG7En.js","assets/esptool-operations-CiccBbBW.js","assets/rom-eeWiO07Z.js","assets/usb-claim-broker-Dacw2Z3M.js","assets/usb-device-registry--JwKRTYp.js","assets/providers-
|
|
2
|
-
import{t as e}from"./preload-helper-Czpn1I53.js";import{c as t,o as n,s as r}from"./feature-flags-DvsApnS-.js";import"./proxied-fetch-DiXk_XGs.js";import{Y as i,m as a}from"./account-store-BIWge689.js";import{s as o,t as s}from"./api-endpoint-DuEQRZ4g.js";import"./main-CUMpx04_.js";import{n as c,r as l}from"./hid-device-registry-B2R-0rNt.js";import{a as u,i as d}from"./serial-port-registry-CCqklAEr.js";import{_ as f,a as ee,c as te,d as ne,f as re,g as ie,h as ae,i as oe,l as se,m as ce,n as le,o as ue,p as de,r as fe,s as pe,t as me,u as he,v as ge}from"./hid-operations-C97SZtrY.js";import{a as p,i as m}from"./usb-device-registry--JwKRTYp.js";import{a as h,c as g,d as _,f as v,g as y,h as b,i as x,l as S,m as C,n as w,o as T,p as E,r as D,s as O,t as k,u as A}from"./usb-operations-v1mGAdRY.js";function j(){return{"secrets-bridge":async({type:t,payload:n})=>{let{callSecretsBridge:r}=await e(async()=>{let{callSecretsBridge:e}=await import(`./secrets-bridge-client-B_CG-HIg.js`).then(e=>e.t);return{callSecretsBridge:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));return{response:await r(t,n)}}}}function M(){return{"mount-sign-and-forward":async({type:t,envelope:n})=>{let{callMountBridge:r}=await e(async()=>{let{callMountBridge:e}=await import(`./mount-bridge-client-CaHZ1pkb.js`);return{callMountBridge:e}},__vite__mapDeps([10,2,3,4,5,1,6,7,8,9,11]));return{response:await r(t,n)}}}}function N(){return{"sudo-request":async({request:t,mode:n})=>{let{resolveSudoApprovalInPage:r}=await e(async()=>{let{resolveSudoApprovalInPage:e}=await import(`./page-approval-service-DRZEjhrX.js`);return{resolveSudoApprovalInPage:e}},__vite__mapDeps([12,4,13,5,1,3,6,7,8,9]));return r(t,n??`resolve`)}}}function P(){return{"secret-request":async t=>{let{getSecretRequestSurface:n}=await e(async()=>{let{getSecretRequestSurface:e}=await import(`./secret-request-registry-DrOMKR1H.js`);return{getSecretRequestSurface:e}},[]),r=n();return r?r(t):{stored:!1,reason:`unavailable`}}}}function F(){return{"proxied-fetch":async({url:t,method:n,headers:r,body:i})=>{let{collectViaExtensionDelegate:a}=await e(async()=>{let{collectViaExtensionDelegate:e}=await import(`./proxied-fetch-DiXk_XGs.js`).then(e=>e.i);return{collectViaExtensionDelegate:e}},__vite__mapDeps([5,1,3,6,7,8,9])),{head:o,body:s}=await a(t,{method:n,headers:r,body:i});return{head:o,body:s}}}}function I(e){return ye(e.emitEvent),{"usb-list":async()=>({devices:await S(R(),V())}),"usb-request":async({filters:e})=>({device:await v(R(),V(),e)}),"usb-device-info":({handle:e})=>({device:O(R(),e)}),"usb-open":async({handle:e})=>(await A(R(),e),{done:!0}),"usb-close":async({handle:e,owner:t,force:n})=>(await x(R(),e,{owner:t,force:n}),{done:!0}),"usb-select-configuration":async({handle:e,configurationValue:t})=>(await C(R(),e,t),{done:!0}),"usb-claim-interface":async({handle:e,interfaceNumber:t,owner:n,wait:r})=>(await w(R(),e,t,{owner:n,wait:r}),{done:!0}),"usb-release-interface":async({handle:e,interfaceNumber:t,owner:n})=>(await _(R(),e,t,{owner:n}),{done:!0}),"usb-cancel-claim-wait":async({handle:e,interfaceNumber:t,owner:n})=>(await k(R(),e,t,n??`usb`),{done:!0}),"usb-drop-owner":async({owner:e})=>(await g(R(),e),{done:!0}),"usb-control-transfer-in":async({handle:e,setup:t,length:n})=>h(R(),e,t,n),"usb-control-transfer-out":async({handle:e,setup:t,bytes:n})=>T(R(),e,t,n),"usb-transfer-in":async({handle:e,endpointNumber:t,length:n})=>b(R(),e,t,n),"usb-transfer-out":async({handle:e,endpointNumber:t,bytes:n})=>y(R(),e,t,n),"usb-reset":async({handle:e,owner:t,force:n})=>(await E(R(),e,{owner:t,force:n}),{done:!0}),"usb-clear-halt":async({handle:e,direction:t,endpointNumber:n})=>(await D(R(),e,t,n),{done:!0})}}function L(e,t){return{"hid-list":async()=>({devices:await fe(H(),U())}),"hid-request":async({filters:e})=>({devices:await ue(H(),U(),e)}),"hid-device-info":({handle:e})=>({device:le(H(),e)}),"hid-open":async({handle:e})=>(await oe(H(),e),{done:!0}),"hid-close":async({handle:e})=>(await me(H(),e),{done:!0}),"hid-send-report":async({handle:e,reportId:t,bytes:n})=>(await te(H(),e,t,n),{done:!0}),"hid-send-feature-report":async({handle:e,reportId:t,bytes:n})=>(await pe(H(),e,t,n),{done:!0}),"hid-receive-feature-report":async({handle:e,reportId:t})=>ee(H(),e,t),"hid-subscribe-input-reports":async({handle:n})=>{t.get(n)?.();let r=await se(H(),n,t=>{e.emitEvent?.(`hid-input-report`,{handle:n,reportId:t.reportId,bytes:t.bytes})});return t.set(n,r),{done:!0}},"hid-unsubscribe-input-reports":({handle:e})=>(t.get(e)?.(),t.delete(e),{done:!0})}}function _e(){return{"serial-list":async()=>({devices:await de(W(),G())}),"serial-request":async({filters:e})=>({device:await ie(W(),G(),e)}),"serial-device-info":({handle:e})=>({device:ne(W(),e)}),"serial-open":async({handle:e,options:t})=>(await ce(W(),e,t),{done:!0}),"serial-close":async({handle:e})=>(await he(W(),e),{done:!0}),"serial-read":async({handle:e,maxBytes:t,until:n,timeoutMs:r})=>{let i=await ae(W(),e,{maxBytes:t,until:n?new Uint8Array(n):void 0,timeoutMs:r});return{bytes:i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)}},"serial-write":async({handle:e,bytes:t})=>({bytesWritten:await ge(W(),e,new Uint8Array(t))}),"serial-get-signals":async({handle:e})=>({signals:await re(W(),e)}),"serial-set-signals":async({handle:e,signals:t})=>(await f(W(),e,t),{done:!0})}}function ve(t){return{"esptool-chip-info":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolChipInfo(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-read-mac":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolReadMac(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-erase-flash":async({handle:n,baudRate:r})=>(await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolEraseFlash(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-flash":async({handle:n,baudRate:r,eraseAll:i,segments:a})=>(await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolFlash(W(),n,r,i,a.map(e=>({address:e.address,data:new Uint8Array(e.bytes)})),e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-read-flash":async({handle:n,baudRate:r,address:i,size:a})=>{let o=await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolReadFlash(W(),n,r,i,a,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e}));return{bytes:o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength)}},"esptool-read-reg":async({handle:n,baudRate:r,address:i})=>(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolReadReg(W(),n,r,i,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-flash-id":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolFlashId(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-erase-region":async({handle:n,baudRate:r,address:i,size:a})=>(await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolEraseRegion(W(),n,r,i,a,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-run":async({handle:n,baudRate:r})=>(await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolRun(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0})}}function R(){return p()}var z=null,B;function ye(t){B=t,!(z||!t)&&e(()=>import(`./usb-claim-broker-Dacw2Z3M.js`).then(e=>{z||=e.addClaimListener(R(),e=>{B?.(`usb-claim-event`,e)})}),__vite__mapDeps([16,17,1]))}function V(){let e=m();if(!e)throw Error(`WebUSB is unavailable in this browser`);return e}function H(){return l()}function U(){let e=c();if(!e)throw Error(`WebHID is unavailable in this browser`);return e}function W(){return u()}function G(){let e=d();if(!e)throw Error(`Web Serial is unavailable in this browser`);return e}function be(t){return{"tray-reset":async()=>{if(!t.resetTray)throw Error(`host reset: no active tray session to reset`);return await t.resetTray()},"tray-webhook-rotate":async()=>{if(!t.rotateWebhook)throw Error(`webhook rotate: no active leader tray`);return await t.rotateWebhook()},"tray-webhook-revoke":async e=>{if(!t.revokeWebhook)throw Error(`webhook delete: no active leader tray`);return await t.revokeWebhook(e.webhookId),{ok:!0}},"tray-open-preview":async e=>{if(!t.mintPreview)throw Error(`serve: no active leader tray; cannot mint preview`);return await t.mintPreview(e)},"tray-revoke-preview":async e=>{if(!t.revokePreview)throw Error(`serve: no active leader tray; cannot revoke preview`);return await t.revokePreview(e)},"tray-list-previews":async()=>{if(!t.listPreviews)throw Error(`serve: no active leader tray; cannot list previews`);return await t.listPreviews()},"tray-mint-biscotto":async e=>{if(!t.mintBiscotto)throw Error(`biscotto: no active leader tray; cannot mint a seat`);return await t.mintBiscotto(e)},"tray-revoke-biscotto":async e=>{if(!t.revokeBiscotto)throw Error(`biscotto revoke: no active leader tray; cannot revoke a seat`);return await t.revokeBiscotto(e)},"tray-list-biscotti":async()=>{if(!t.listBiscotti)throw Error(`biscotti: no active leader tray; cannot list seats`);return await t.listBiscotti()},"tray-preview-logs":async({previewToken:e})=>{if(!t.getPreviewLifecycleRecords)throw Error(`serve --logs: no active leader tray; cannot read preview logs`);return t.getPreviewLifecycleRecords(e)},"tray-preview-truncate":async({previewToken:e})=>{if(!t.truncatePreviewLifecycleRecords)throw Error(`serve --truncate: no active leader tray; cannot truncate preview logs`);return t.truncatePreviewLifecycleRecords(e)},"tray-leave":async({workerBaseUrl:e,requestId:n})=>{if(!t.leaveTray)throw Error(`host leave: tray leave is not available in this environment`);return await t.leaveTray({workerBaseUrl:e,requestId:n})},"tray-join":async({joinUrl:e,requestId:n})=>{if(!t.joinTray)throw Error(`host join: tray join is not available in this environment`);return await t.joinTray({joinUrl:e,requestId:n})},"cherry-emit":async({runtimeId:e,name:n,detail:r})=>{if(!t.emitCherrySliccEvent)throw Error(`cherry-emit: not available in this environment`);return{delivered:t.emitCherrySliccEvent(e,n,r)}},"tray-exec":async e=>{if(!t.execOnRemote)throw Error(`ssh: no active leader tray in this environment`);return await t.execOnRemote(e)},"tray-exec-signal":({execToken:e})=>(t.signalRemoteExec?.({execToken:e}),{ok:!0}),"tray-computer-native":async e=>{if(!t.computerNative)throw Error(`computer native: no active leader tray in this environment`);return await t.computerNative(e)},"oauth-extras-set":({providerId:e,domains:t})=>(i(e,t),{storeAfter:a()}),"silent-renew":async({providerId:t})=>{let{getRegisteredProviderConfig:n}=await e(async()=>{let{getRegisteredProviderConfig:e}=await import(`./providers-BxT3TeA_.js`).then(e=>e.r);return{getRegisteredProviderConfig:e}},__vite__mapDeps([18,1,3])),r=n(t);return r?.onSilentRenew?{accessToken:await r.onSilentRenew()}:{accessToken:null}},"save-oauth-accounts":({accountsJson:e})=>(localStorage.setItem(`slicc_accounts`,e),{storedJson:localStorage.getItem(`slicc_accounts`)??e})}}async function xe(e,t){if((typeof navigator<`u`?navigator.userActivation:void 0)?.isActive===!0)return K(window.open(e,`_blank`,`width=500,height=700,popup=yes`));let n=t?.()??null;if(n){let t=await Se(n,e);return t===void 0?null:K(t)}return K(window.open(e,`_blank`,`width=500,height=700,popup=yes`))}function K(e){return new Promise(t=>{let n=!1,r=null,i=()=>{n||(n=!0,window.removeEventListener(`message`,a),clearTimeout(c),r&&clearInterval(r))},a=n=>{if(n.data?.type!==`oauth-callback`||n.origin!==window.location.origin||e&&n.source!==e)return;if(i(),n.data.error){console.error(`[panel-rpc:oauth-popup] OAuth error:`,n.data.error),t(null);return}let r=n.data.redirectUrl;(typeof r==`string`||r==null)&&t(r??null)};window.addEventListener(`message`,a),r=setInterval(async()=>{if(!n)try{let e=await fetch(o(`/api/oauth-result`),{headers:s()});if(e.status===204||!e.ok)return;let r=await e.json();if(n)return;if(i(),r.error){console.error(`[panel-rpc:oauth-popup] Server relay OAuth error:`,r.error),t(null);return}t(r.redirectUrl??null)}catch(e){console.warn(`[panel-rpc:oauth-popup] Poll failed:`,e instanceof Error?e.message:String(e))}},1e3);let c=setTimeout(()=>{i();try{e?.close()}catch{}t(null)},12e4)})}async function Se(e,t){let n=await e.prompt({kinds:[`popup`],description:`Continue to sign in. A new window will open to the provider.`,grantLabel:`Continue`,requestOptions:{popup:{url:t}}});if(n.status!==`granted`)return;let r=n.grants.find(e=>e.kind===`popup`);return r&&r.kind===`popup`?r.window:null}async function Ce(t){let{captureDisplayMedia:n,sessionCaptureRequest:r}=await e(async()=>{let{captureDisplayMedia:e,sessionCaptureRequest:t}=await import(`./screencapture-media-DWFhjg7x.js`);return{captureDisplayMedia:e,sessionCaptureRequest:t}},[]),{mimeType:i,quality:a,mode:o,durationMs:s,audio:c,session:l,handle:u,maxWidth:d}=t,f=await n(o===`session`?r({session:l,handle:u,mimeType:i,quality:a,durationMs:s,maxWidth:d}):o===`video`?{mode:`video`,mimeType:i,durationMs:s??5e3,audio:!!c}:{mode:`image`,mimeType:i,quality:a});return{bytes:f.bytes.buffer.slice(f.bytes.byteOffset,f.bytes.byteOffset+f.bytes.byteLength),width:f.width,height:f.height,mimeType:f.mimeType,nativeWidth:f.nativeWidth,nativeHeight:f.nativeHeight,...f.durationMs===void 0?{}:{durationMs:f.durationMs},...f.handle===void 0?{}:{handle:f.handle}}}function we(){return{"page-info":()=>({origin:window.location.origin,href:window.location.href,title:document.title||``}),screencapture:e=>Ce(e),"speak-text":async({text:t,lang:n,voice:r,rate:i,pitch:a,volume:o})=>{let{speak:s}=await e(async()=>{let{speak:e}=await import(`./speak-cixBBa3H.js`);return{speak:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return await s({text:t,lang:n,voice:r,rate:i,pitch:a,volume:o}),{done:!0}},"list-voices":async()=>{let{kokoroVoicesIfReady:t}=await e(async()=>{let{kokoroVoicesIfReady:e}=await import(`./speak-cixBBa3H.js`);return{kokoroVoicesIfReady:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46])),n=t().map(e=>({name:e.id,lang:e.lang,default:!1,onDevice:e.onDevice}));if(typeof speechSynthesis>`u`){if(n.length>0)return{voices:n};throw Error(`speechSynthesis is unavailable in this page`)}let r=speechSynthesis.getVoices();if(r.length>0)return{voices:[...n,...r.map(X)]};let i=await new Promise(e=>{let t=()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())};speechSynthesis.addEventListener(`voiceschanged`,t),setTimeout(()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())},1e3)});return{voices:[...n,...i.map(X)]}},"speak-status":async()=>{let{kokoroStatus:t}=await e(async()=>{let{kokoroStatus:e}=await import(`./speak-cixBBa3H.js`);return{kokoroStatus:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return t()},"speak-warmup":async()=>{let{kokoroWarmup:t}=await e(async()=>{let{kokoroWarmup:e}=await import(`./speak-cixBBa3H.js`);return{kokoroWarmup:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return t()},"synthesize-to-wav":async({text:t,lang:n,voice:r,rate:i})=>{let{synthesizeToWav:a}=await e(async()=>{let{synthesizeToWav:e}=await import(`./speak-cixBBa3H.js`);return{synthesizeToWav:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46])),o=await a({text:t,...n===void 0?{}:{lang:n},...r===void 0?{}:{voice:r},...i===void 0?{}:{rate:i}});return{bytes:o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength)}},"play-audio":async({bytes:e,volume:t})=>{if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let n=new AudioContext;try{let r=await n.decodeAudioData(e.slice(0)),i=n.createBufferSource();if(i.buffer=r,t!==void 0){let e=n.createGain();e.gain.value=Math.max(0,Math.min(1,t)),i.connect(e),e.connect(n.destination)}else i.connect(n.destination);await new Promise(e=>{i.onended=()=>e(),i.start()})}finally{try{await n.close()}catch{}}return{done:!0}},"play-chime":async({tone:e})=>{let t={success:[880,1320],error:[440,220],notify:[660,660]},[n,r]=t[e??`notify`]??t.notify;if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let i=new AudioContext;try{let e=i.currentTime;for(let[t,a]of[n,r].entries()){let n=i.createOscillator();n.type=`sine`,n.frequency.value=a;let r=i.createGain();r.gain.setValueAtTime(1e-4,e+t*.18),r.gain.exponentialRampToValueAtTime(.2,e+t*.18+.02),r.gain.exponentialRampToValueAtTime(1e-4,e+t*.18+.18),n.connect(r),r.connect(i.destination),n.start(e+t*.18),n.stop(e+t*.18+.2)}await new Promise(e=>setTimeout(e,450))}finally{try{await i.close()}catch{}}return{done:!0}}}}function Te(e={}){return{"clipboard-read-text":async()=>{if(!navigator.clipboard?.readText)throw Error(`clipboard API unavailable`);return{text:await navigator.clipboard.readText()}},"clipboard-write-text":async({text:e})=>{if(!navigator.clipboard?.writeText)throw Error(`clipboard API unavailable`);return await Z(),await navigator.clipboard.writeText(e),{done:!0}},"clipboard-write-image":async({bytes:e,mimeType:t})=>{if(!navigator.clipboard?.write||typeof ClipboardItem>`u`)throw Error(`clipboard image API unavailable`);let n,r=new Blob([e],{type:t});return n=t===`image/png`?r:await je(r),await Z(),await navigator.clipboard.write([new ClipboardItem({"image/png":n})]),{done:!0}},"window-open":async({url:e,target:t,features:n})=>({opened:window.open(e,t??`_blank`,n??`noopener,noreferrer`)!==null}),"oauth-popup":async({url:t})=>{let n=await e.delegateOAuthLogin?.(t);return n?.delegated?{redirectUrl:n.redirectUrl,error:n.error}:{redirectUrl:await xe(t,e.getPermissionsSurface)}},"oauth-route":async()=>({delegate:await e.shouldDelegateOAuth?.()===!0}),"capture-camera":async e=>await ke(e),"enumerate-media-devices":async()=>{if(!navigator.mediaDevices?.enumerateDevices)throw Error(`enumerateDevices is not supported in this browser`);let e=await navigator.mediaDevices.enumerateDevices(),t=e=>({deviceId:e.deviceId,label:e.label||``,...e.groupId?{groupId:e.groupId}:{}});return{videoinputs:e.filter(e=>e.kind===`videoinput`).map(t),audioinputs:e.filter(e=>e.kind===`audioinput`).map(t)}}}}function Ee(){return{"hear-capture":async t=>{let{hearCapture:n}=await e(async()=>{let{hearCapture:e}=await import(`./hear-B3Htg_ED.js`);return{hearCapture:e}},__vite__mapDeps([47,4,48,49,3,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,9,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return await n(t??{})},"hear-transcribe":async({bytes:t,lang:n})=>{let{hearTranscribe:r}=await e(async()=>{let{hearTranscribe:e}=await import(`./hear-B3Htg_ED.js`);return{hearTranscribe:e}},__vite__mapDeps([47,4,48,49,3,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,9,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return await r(t,n)},"hear-status":async()=>{let{hearStatus:t}=await e(async()=>{let{hearStatus:e}=await import(`./hear-B3Htg_ED.js`);return{hearStatus:e}},__vite__mapDeps([47,4,48,49,3,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,9,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return t()},"hear-warmup":async()=>{let{hearWarmup:t}=await e(async()=>{let{hearWarmup:e}=await import(`./hear-B3Htg_ED.js`);return{hearWarmup:e}},__vite__mapDeps([47,4,48,49,3,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,9,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return t()}}}var q=null,J;function De(t){J=t,!(q||!t)&&e(()=>import(`./screencapture-media-DWFhjg7x.js`).then(e=>{q||=e.displaySessions.onEnded(t=>{J?.(e.SCREENCAPTURE_SESSION_ENDED_CHANNEL,{handle:t})})}),[])}var Oe=1500;async function ke(e){if(!navigator.mediaDevices?.getUserMedia)throw Error(`getUserMedia is not supported in this browser`);let t=e.mode===`photo`||e.captureVideo!==!1,n=!!e.captureAudio&&e.mode===`video`;if(!t&&!n)throw Error(`camera capture: at least one of video or audio must be requested`);let r=await Ae({wantVideo:t,videoDeviceId:t?await Y(e.deviceId,`videoinput`):void 0,audioDeviceId:n?await Y(e.audioDeviceId,`audioinput`):void 0,wantAudio:n,width:e.width,height:e.height,frameRate:e.frameRate,exact:!!e.exactSize});try{let n=null,i=0,a=0;if(t){n=document.createElement(`video`),n.srcObject=r,n.muted=!0,n.playsInline=!0;let e=n;await new Promise((t,n)=>{e.onloadedmetadata=()=>e.play().then(()=>t()).catch(n),e.onerror=()=>n(Error(`Failed to load camera stream`))}),await new Promise(e=>requestAnimationFrame(()=>e())),await new Promise(e=>requestAnimationFrame(()=>e())),i=e.videoWidth,a=e.videoHeight}if(e.mode===`photo`){if(!n)throw Error(`photo capture requires a video track`);let t=e.warmupMs??Oe;t>0&&await new Promise(e=>setTimeout(e,t));let r=document.createElement(`canvas`);r.width=i,r.height=a;let o=r.getContext(`2d`);if(!o)throw Error(`Failed to get canvas context`);o.drawImage(n,0,0,i,a);let s=await new Promise((t,n)=>{r.toBlob(e=>e?t(e):n(Error(`Failed to encode photo`)),e.mimeType,e.quality)});return{bytes:await s.arrayBuffer(),mimeType:s.type||e.mimeType,width:i,height:a}}let o=Math.max(100,Math.min(e.durationMs??5e3,6e4)),s=typeof MediaRecorder<`u`&&MediaRecorder.isTypeSupported(e.mimeType)?e.mimeType:`video/webm`,c=new MediaRecorder(r,{mimeType:s}),l=[];c.ondataavailable=e=>{e.data&&e.data.size>0&&l.push(e.data)};let u=new Promise(e=>{c.onstop=()=>e()});c.start(),await new Promise(e=>setTimeout(e,o)),c.stop(),await u;let d=new Blob(l,{type:s});return{bytes:await d.arrayBuffer(),mimeType:d.type||s,width:i,height:a,durationMs:o}}finally{r.getTracks().forEach(e=>{e.stop()})}}async function Y(e,t){if(e===void 0||e===``)return;if(!/^\d+$/.test(e))return e;if(!navigator.mediaDevices?.enumerateDevices)return;let n=parseInt(e,10);return(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===t)[n]?.deviceId}async function Ae(e){let t=t=>{if(!e.wantVideo)return!1;let n={};return e.videoDeviceId&&(n.deviceId={exact:e.videoDeviceId}),e.width&&(n.width=t===`exact`?{exact:e.width}:{ideal:e.width}),e.height&&(n.height=t===`exact`?{exact:e.height}:{ideal:e.height}),e.frameRate&&(n.frameRate=t===`exact`?{exact:e.frameRate}:{ideal:e.frameRate}),Object.keys(n).length>0?n:!0},n=()=>e.wantAudio?!e.audioDeviceId||{deviceId:{exact:e.audioDeviceId}}:!1;try{return await navigator.mediaDevices.getUserMedia({video:t(e.exact?`exact`:`ideal`),audio:n()})}catch(r){let i=r?.name;if(!e.exact||i!==`OverconstrainedError`&&i!==`NotReadableError`)throw r;return console.warn(`panel-rpc:capture-camera: exact ${e.width??`?`}x${e.height??`?`}@${e.frameRate??`?`} unmet, falling back to ideal`),await navigator.mediaDevices.getUserMedia({video:t(`ideal`),audio:n()})}}function X(e){return{name:e.name,lang:e.lang,default:e.default,onDevice:!1}}async function je(e){let t=URL.createObjectURL(e);try{let e=new Image;await new Promise((n,r)=>{e.onload=()=>n(),e.onerror=()=>r(Error(`Failed to load image for clipboard conversion`)),e.src=t});let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)throw Error(`Failed to get canvas context`);return r.drawImage(e,0,0),await new Promise((e,t)=>{n.toBlob(n=>n?e(n):t(Error(`PNG re-encode failed`)),`image/png`)})}finally{URL.revokeObjectURL(t)}}async function Z(e=3e5){typeof document>`u`||typeof document.hasFocus==`function`&&(document.hasFocus()||await new Promise((t,n)=>{let r=()=>{window.removeEventListener(`focus`,i),document.removeEventListener(`visibilitychange`,a),clearTimeout(o)},i=()=>{document.hasFocus()&&(r(),t())},a=()=>{document.visibilityState===`visible`&&document.hasFocus()&&(r(),t())},o=setTimeout(()=>{r(),n(Error(`timed out waiting for window focus`))},e);window.addEventListener(`focus`,i),document.addEventListener(`visibilitychange`,a)}))}function Q(e){let t=new Map,n=()=>{if(!e.sliccSidecar)throw Error(`slicc: sidecar attachments are not available in this environment`);return e.sliccSidecar},r=async(e,r)=>{let i=n(),a=new AbortController;t.set(e,a);try{return await r(i,a.signal)}finally{t.delete(e)}};return{"slicc-attach":async({joinUrl:e,name:t,connectTimeoutMs:r})=>await n().attach({joinUrl:e,name:t,connectTimeoutMs:r}),"slicc-detach":({name:e})=>({detached:n().detach(e)}),"slicc-list":()=>({attachments:n().list()}),"slicc-prompt":async({name:e,text:t,runToken:n,steer:i,timeoutMs:a})=>await r(n,async(n,r)=>await n.prompt(e,t,{steer:i,timeoutMs:a,signal:r})),"slicc-exec":async({name:e,command:t,runToken:n,cwd:i,env:a,timeoutMs:o,stdin:s})=>await r(n,async(n,r)=>await n.exec(e,t,{cwd:i,env:a,timeoutMs:o,stdin:s,signal:r})),"slicc-watch":async({name:e,runToken:t,durationMs:n,scoopJid:i,untilIdle:a})=>await r(t,async(t,r)=>await t.watch(e,{durationMs:n,scoopJid:i,untilIdle:a,signal:r})),"slicc-cancel":({runToken:e})=>(t.get(e)?.abort(),{ok:!0})}}function Me(e){return{"list-remote-targets":async()=>e.listRemoteTargets?{targets:(await e.listRemoteTargets()).filter(e=>e.targetId.includes(`:`)).map(e=>({targetId:e.targetId,title:e.title,url:e.url}))}:{targets:[]},"remote-cdp-send":async({runtimeId:t,localTargetId:n,method:r,params:i,sessionId:a,timeout:o})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.send({runtimeId:t,localTargetId:n,method:r,params:i,sessionId:a,timeout:o})},"remote-cdp-subscribe":async({runtimeId:t,localTargetId:n,event:r})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.subscribe({runtimeId:t,localTargetId:n,event:r})},"remote-cdp-unsubscribe":async({runtimeId:t,localTargetId:n,event:r})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.unsubscribe({runtimeId:t,localTargetId:n,event:r})},"remote-cdp-detach":async({runtimeId:t,localTargetId:n})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.detach({runtimeId:t,localTargetId:n})},"remote-open-tab":async({runtimeId:t,url:n})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.openTab({runtimeId:t,url:n})}}}function Ne(e,t){return t===void 0?e.length>0&&e.every(e=>e===`camera`||e===`microphone`):t}function Pe(t){return{"permission-request":async n=>{let r=t.getPermissionsSurface?.()??null;if(!r)throw Error(`permission-request: permission surface unavailable`);let i=await r.prompt({kinds:n.kinds,description:n.description,heading:n.heading,grantLabel:n.grantLabel,cancelLabel:n.cancelLabel,skipIfGranted:Ne(n.kinds,n.skipIfGranted)});if(i.status!==`granted`){let e=i.message?`: ${i.message}`:``;throw Error(`permission-request: ${i.reason??i.status}${e}`)}let a=[];for(let t of i.grants)switch(t.kind){case`usb`:{let e=R().register(t.device);a.push({kind:`usb`,handle:e});break}case`hid`:{let e=H().register(t.device);a.push({kind:`hid`,handle:e});break}case`serial`:{let e=W().register(t.port);a.push({kind:`serial`,handle:e});break}case`filesystem`:{let{storePendingHandle:n}=await e(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-qcWGbpG5.js`);return{storePendingHandle:e}},__vite__mapDeps([50,4,51,9])),r=`pendingMount:rpc-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;await n(r,t.handle),a.push({kind:`filesystem`,idbKey:r,dirName:t.handle.name});break}case`camera`:case`microphone`:case`screenshare`:for(let e of t.stream.getTracks())e.stop();a.push({kind:t.kind,ok:!0})}return{grants:a}}}}function Fe(e){let t=n().find(t=>t.id===e);return t?t.id:null}function Ie(){return{"feature-flag-set":({id:e,value:n})=>{let i=Fe(e);if(!i)throw Error(`unknown flag ${e}`);if(t(i,n),r()[i]!==n)throw Error(`flag ${e} cannot be overridden on this float`);return{overridesJson:localStorage.getItem(`slicc_feature_flags`)??`{}`}}}}function Le(){return{"theme-apply":async({themeJson:t,action:n})=>{let{importTheme:r,saveCustomTheme:i,setActiveTheme:a,clearActiveTheme:o,applyThemeOverrides:s}=await e(async()=>{let{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}=await import(`./theme-engine-ZV7CeqWw.js`).then(e=>e._);return{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}},__vite__mapDeps([52,1,4]));if(n===`reset`)return o(),s(),{applied:null};if(t){let e=r(t);return i(e),a(e.id),s(),{applied:e.id}}return{applied:null}}}}function Re(){return{"layout-apply":async t=>{let{getLayoutApplier:n}=await e(async()=>{let{getLayoutApplier:e}=await import(`./layout-apply-registry-Cw730jao.js`);return{getLayoutApplier:e}},[]),r=n();return r?await r(t)??{applied:!0}:{applied:!1,error:`no layout is mounted`}}}}function $(){let e=globalThis;if(!e.__slicc_browser)throw Error(`no browser API on this page`);return e.__slicc_browser}function ze(){return{"computer-tab-screenshot":async t=>{let{screenshotTab:n}=await e(async()=>{let{screenshotTab:e}=await import(`./tab-8LaHojfd.js`);return{screenshotTab:e}},__vite__mapDeps([53,54,24,55]));return n($(),t.targetId,{maxWidth:t.maxWidth,format:t.format})},"computer-tab-input":async t=>{let{inputTab:n}=await e(async()=>{let{inputTab:e}=await import(`./tab-8LaHojfd.js`);return{inputTab:e}},__vite__mapDeps([53,54,24,55]));return await n($(),t.targetId,t.events),{ok:!0}}}}function Be(e={}){let t=new Map;return De(e.emitEvent),{...we(),...Te(e),...Ee(),...be(e),...Q(e),...I(e),...L(e,t),..._e(),...ve(e),...Me(e),...Pe(e),...F(),...N(),...P(),...j(),...M(),...Le(),...Re(),...Ie(),...ze()}}export{Be as createStandalonePanelRpcHandlers};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secrets-bridge-client-B_CG-HIg.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/port-bridge-client-BiWcfZSc.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/proxied-fetch-DiXk_XGs.js","assets/base64-ELzoYfwP.js","assets/fetch-body-1l9I58Vk.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/mount-bridge-client-CaHZ1pkb.js","assets/types-D8gIX-W-.js","assets/page-approval-service-DRZEjhrX.js","assets/float-topology-B0_dG7En.js","assets/esptool-operations-CiccBbBW.js","assets/rom-eeWiO07Z.js","assets/usb-claim-broker-Dacw2Z3M.js","assets/usb-device-registry--JwKRTYp.js","assets/providers-Dp-BrqwV.js","assets/speak-B8zg07BA.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-B6ny7zNo.js","assets/wc-shell-DVdpBOjU.js","assets/mime-types-D0xZwlMO.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-BPOuwEUe.js","assets/core-D8SLLGdB.js","assets/compat-Dy2zIWAW.js","assets/models-YdybRRvT.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-B-zmcypy.js","assets/libesm-BypnjKEL.js","assets/feature-flags-DvsApnS-.js","assets/secret-topology-CZv6A9HW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-Bz7u6y4g.js","assets/bedrock-camp-extra-models-IBZyfEdZ.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-CKoAhRMv.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-dEBJiC8z.js","assets/wc-shell-WkeczD9x.css","assets/shared-BDXQKitm.js","assets/hear-NNKlAYIB.js","assets/permissions-surface-registry-CilCRwhh.js","assets/whisper-session-BQAiBLbf.js","assets/mount-picker-popup-qcWGbpG5.js","assets/picker-popup-sQtXmfAo.js","assets/theme-engine-ZV7CeqWw.js","assets/tab-8LaHojfd.js","assets/slicc-app-url-BKHBBuTR.js","assets/scale-D09IlqOK.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{c as t,o as n,s as r}from"./feature-flags-DvsApnS-.js";import"./proxied-fetch-DiXk_XGs.js";import{Y as i,m as a}from"./account-store-BPOuwEUe.js";import{s as o,t as s}from"./api-endpoint-DuEQRZ4g.js";import"./main-CwH54Phg.js";import{n as c,r as l}from"./hid-device-registry-B2R-0rNt.js";import{a as u,i as d}from"./serial-port-registry-CCqklAEr.js";import{_ as f,a as ee,c as te,d as ne,f as re,g as ie,h as ae,i as oe,l as se,m as ce,n as le,o as ue,p as de,r as fe,s as pe,t as me,u as he,v as ge}from"./hid-operations-C97SZtrY.js";import{a as p,i as m}from"./usb-device-registry--JwKRTYp.js";import{a as h,c as g,d as _,f as v,g as y,h as b,i as x,l as S,m as C,n as w,o as T,p as E,r as D,s as O,t as k,u as A}from"./usb-operations-v1mGAdRY.js";function j(){return{"secrets-bridge":async({type:t,payload:n})=>{let{callSecretsBridge:r}=await e(async()=>{let{callSecretsBridge:e}=await import(`./secrets-bridge-client-B_CG-HIg.js`).then(e=>e.t);return{callSecretsBridge:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));return{response:await r(t,n)}}}}function M(){return{"mount-sign-and-forward":async({type:t,envelope:n})=>{let{callMountBridge:r}=await e(async()=>{let{callMountBridge:e}=await import(`./mount-bridge-client-CaHZ1pkb.js`);return{callMountBridge:e}},__vite__mapDeps([10,2,3,4,5,1,6,7,8,9,11]));return{response:await r(t,n)}}}}function N(){return{"sudo-request":async({request:t,mode:n})=>{let{resolveSudoApprovalInPage:r}=await e(async()=>{let{resolveSudoApprovalInPage:e}=await import(`./page-approval-service-DRZEjhrX.js`);return{resolveSudoApprovalInPage:e}},__vite__mapDeps([12,4,13,5,1,3,6,7,8,9]));return r(t,n??`resolve`)}}}function P(){return{"secret-request":async t=>{let{getSecretRequestSurface:n}=await e(async()=>{let{getSecretRequestSurface:e}=await import(`./secret-request-registry-DrOMKR1H.js`);return{getSecretRequestSurface:e}},[]),r=n();return r?r(t):{stored:!1,reason:`unavailable`}}}}function F(){return{"proxied-fetch":async({url:t,method:n,headers:r,body:i})=>{let{collectViaExtensionDelegate:a}=await e(async()=>{let{collectViaExtensionDelegate:e}=await import(`./proxied-fetch-DiXk_XGs.js`).then(e=>e.i);return{collectViaExtensionDelegate:e}},__vite__mapDeps([5,1,3,6,7,8,9])),{head:o,body:s}=await a(t,{method:n,headers:r,body:i});return{head:o,body:s}}}}function I(e){return ye(e.emitEvent),{"usb-list":async()=>({devices:await S(R(),V())}),"usb-request":async({filters:e})=>({device:await v(R(),V(),e)}),"usb-device-info":({handle:e})=>({device:O(R(),e)}),"usb-open":async({handle:e})=>(await A(R(),e),{done:!0}),"usb-close":async({handle:e,owner:t,force:n})=>(await x(R(),e,{owner:t,force:n}),{done:!0}),"usb-select-configuration":async({handle:e,configurationValue:t})=>(await C(R(),e,t),{done:!0}),"usb-claim-interface":async({handle:e,interfaceNumber:t,owner:n,wait:r})=>(await w(R(),e,t,{owner:n,wait:r}),{done:!0}),"usb-release-interface":async({handle:e,interfaceNumber:t,owner:n})=>(await _(R(),e,t,{owner:n}),{done:!0}),"usb-cancel-claim-wait":async({handle:e,interfaceNumber:t,owner:n})=>(await k(R(),e,t,n??`usb`),{done:!0}),"usb-drop-owner":async({owner:e})=>(await g(R(),e),{done:!0}),"usb-control-transfer-in":async({handle:e,setup:t,length:n})=>h(R(),e,t,n),"usb-control-transfer-out":async({handle:e,setup:t,bytes:n})=>T(R(),e,t,n),"usb-transfer-in":async({handle:e,endpointNumber:t,length:n})=>b(R(),e,t,n),"usb-transfer-out":async({handle:e,endpointNumber:t,bytes:n})=>y(R(),e,t,n),"usb-reset":async({handle:e,owner:t,force:n})=>(await E(R(),e,{owner:t,force:n}),{done:!0}),"usb-clear-halt":async({handle:e,direction:t,endpointNumber:n})=>(await D(R(),e,t,n),{done:!0})}}function L(e,t){return{"hid-list":async()=>({devices:await fe(H(),U())}),"hid-request":async({filters:e})=>({devices:await ue(H(),U(),e)}),"hid-device-info":({handle:e})=>({device:le(H(),e)}),"hid-open":async({handle:e})=>(await oe(H(),e),{done:!0}),"hid-close":async({handle:e})=>(await me(H(),e),{done:!0}),"hid-send-report":async({handle:e,reportId:t,bytes:n})=>(await te(H(),e,t,n),{done:!0}),"hid-send-feature-report":async({handle:e,reportId:t,bytes:n})=>(await pe(H(),e,t,n),{done:!0}),"hid-receive-feature-report":async({handle:e,reportId:t})=>ee(H(),e,t),"hid-subscribe-input-reports":async({handle:n})=>{t.get(n)?.();let r=await se(H(),n,t=>{e.emitEvent?.(`hid-input-report`,{handle:n,reportId:t.reportId,bytes:t.bytes})});return t.set(n,r),{done:!0}},"hid-unsubscribe-input-reports":({handle:e})=>(t.get(e)?.(),t.delete(e),{done:!0})}}function _e(){return{"serial-list":async()=>({devices:await de(W(),G())}),"serial-request":async({filters:e})=>({device:await ie(W(),G(),e)}),"serial-device-info":({handle:e})=>({device:ne(W(),e)}),"serial-open":async({handle:e,options:t})=>(await ce(W(),e,t),{done:!0}),"serial-close":async({handle:e})=>(await he(W(),e),{done:!0}),"serial-read":async({handle:e,maxBytes:t,until:n,timeoutMs:r})=>{let i=await ae(W(),e,{maxBytes:t,until:n?new Uint8Array(n):void 0,timeoutMs:r});return{bytes:i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)}},"serial-write":async({handle:e,bytes:t})=>({bytesWritten:await ge(W(),e,new Uint8Array(t))}),"serial-get-signals":async({handle:e})=>({signals:await re(W(),e)}),"serial-set-signals":async({handle:e,signals:t})=>(await f(W(),e,t),{done:!0})}}function ve(t){return{"esptool-chip-info":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolChipInfo(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-read-mac":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolReadMac(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-erase-flash":async({handle:n,baudRate:r})=>(await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolEraseFlash(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-flash":async({handle:n,baudRate:r,eraseAll:i,segments:a})=>(await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolFlash(W(),n,r,i,a.map(e=>({address:e.address,data:new Uint8Array(e.bytes)})),e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-read-flash":async({handle:n,baudRate:r,address:i,size:a})=>{let o=await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolReadFlash(W(),n,r,i,a,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e}));return{bytes:o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength)}},"esptool-read-reg":async({handle:n,baudRate:r,address:i})=>(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolReadReg(W(),n,r,i,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-flash-id":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolFlashId(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-erase-region":async({handle:n,baudRate:r,address:i,size:a})=>(await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolEraseRegion(W(),n,r,i,a,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-run":async({handle:n,baudRate:r})=>(await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolRun(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0})}}function R(){return p()}var z=null,B;function ye(t){B=t,!(z||!t)&&e(()=>import(`./usb-claim-broker-Dacw2Z3M.js`).then(e=>{z||=e.addClaimListener(R(),e=>{B?.(`usb-claim-event`,e)})}),__vite__mapDeps([16,17,1]))}function V(){let e=m();if(!e)throw Error(`WebUSB is unavailable in this browser`);return e}function H(){return l()}function U(){let e=c();if(!e)throw Error(`WebHID is unavailable in this browser`);return e}function W(){return u()}function G(){let e=d();if(!e)throw Error(`Web Serial is unavailable in this browser`);return e}function be(t){return{"tray-reset":async()=>{if(!t.resetTray)throw Error(`host reset: no active tray session to reset`);return await t.resetTray()},"tray-webhook-rotate":async()=>{if(!t.rotateWebhook)throw Error(`webhook rotate: no active leader tray`);return await t.rotateWebhook()},"tray-webhook-revoke":async e=>{if(!t.revokeWebhook)throw Error(`webhook delete: no active leader tray`);return await t.revokeWebhook(e.webhookId),{ok:!0}},"tray-open-preview":async e=>{if(!t.mintPreview)throw Error(`serve: no active leader tray; cannot mint preview`);return await t.mintPreview(e)},"tray-revoke-preview":async e=>{if(!t.revokePreview)throw Error(`serve: no active leader tray; cannot revoke preview`);return await t.revokePreview(e)},"tray-list-previews":async()=>{if(!t.listPreviews)throw Error(`serve: no active leader tray; cannot list previews`);return await t.listPreviews()},"tray-mint-biscotto":async e=>{if(!t.mintBiscotto)throw Error(`biscotto: no active leader tray; cannot mint a seat`);return await t.mintBiscotto(e)},"tray-revoke-biscotto":async e=>{if(!t.revokeBiscotto)throw Error(`biscotto revoke: no active leader tray; cannot revoke a seat`);return await t.revokeBiscotto(e)},"tray-list-biscotti":async()=>{if(!t.listBiscotti)throw Error(`biscotti: no active leader tray; cannot list seats`);return await t.listBiscotti()},"tray-preview-logs":async({previewToken:e})=>{if(!t.getPreviewLifecycleRecords)throw Error(`serve --logs: no active leader tray; cannot read preview logs`);return t.getPreviewLifecycleRecords(e)},"tray-preview-truncate":async({previewToken:e})=>{if(!t.truncatePreviewLifecycleRecords)throw Error(`serve --truncate: no active leader tray; cannot truncate preview logs`);return t.truncatePreviewLifecycleRecords(e)},"tray-leave":async({workerBaseUrl:e,requestId:n})=>{if(!t.leaveTray)throw Error(`host leave: tray leave is not available in this environment`);return await t.leaveTray({workerBaseUrl:e,requestId:n})},"tray-join":async({joinUrl:e,requestId:n})=>{if(!t.joinTray)throw Error(`host join: tray join is not available in this environment`);return await t.joinTray({joinUrl:e,requestId:n})},"cherry-emit":async({runtimeId:e,name:n,detail:r})=>{if(!t.emitCherrySliccEvent)throw Error(`cherry-emit: not available in this environment`);return{delivered:t.emitCherrySliccEvent(e,n,r)}},"tray-exec":async e=>{if(!t.execOnRemote)throw Error(`ssh: no active leader tray in this environment`);return await t.execOnRemote(e)},"tray-exec-signal":({execToken:e})=>(t.signalRemoteExec?.({execToken:e}),{ok:!0}),"tray-computer-native":async e=>{if(!t.computerNative)throw Error(`computer native: no active leader tray in this environment`);return await t.computerNative(e)},"oauth-extras-set":({providerId:e,domains:t})=>(i(e,t),{storeAfter:a()}),"silent-renew":async({providerId:t})=>{let{getRegisteredProviderConfig:n}=await e(async()=>{let{getRegisteredProviderConfig:e}=await import(`./providers-Dp-BrqwV.js`).then(e=>e.r);return{getRegisteredProviderConfig:e}},__vite__mapDeps([18,1,3])),r=n(t);return r?.onSilentRenew?{accessToken:await r.onSilentRenew()}:{accessToken:null}},"save-oauth-accounts":({accountsJson:e})=>(localStorage.setItem(`slicc_accounts`,e),{storedJson:localStorage.getItem(`slicc_accounts`)??e})}}async function xe(e,t){if((typeof navigator<`u`?navigator.userActivation:void 0)?.isActive===!0)return K(window.open(e,`_blank`,`width=500,height=700,popup=yes`));let n=t?.()??null;if(n){let t=await Se(n,e);return t===void 0?null:K(t)}return K(window.open(e,`_blank`,`width=500,height=700,popup=yes`))}function K(e){return new Promise(t=>{let n=!1,r=null,i=()=>{n||(n=!0,window.removeEventListener(`message`,a),clearTimeout(c),r&&clearInterval(r))},a=n=>{if(n.data?.type!==`oauth-callback`||n.origin!==window.location.origin||e&&n.source!==e)return;if(i(),n.data.error){console.error(`[panel-rpc:oauth-popup] OAuth error:`,n.data.error),t(null);return}let r=n.data.redirectUrl;(typeof r==`string`||r==null)&&t(r??null)};window.addEventListener(`message`,a),r=setInterval(async()=>{if(!n)try{let e=await fetch(o(`/api/oauth-result`),{headers:s()});if(e.status===204||!e.ok)return;let r=await e.json();if(n)return;if(i(),r.error){console.error(`[panel-rpc:oauth-popup] Server relay OAuth error:`,r.error),t(null);return}t(r.redirectUrl??null)}catch(e){console.warn(`[panel-rpc:oauth-popup] Poll failed:`,e instanceof Error?e.message:String(e))}},1e3);let c=setTimeout(()=>{i();try{e?.close()}catch{}t(null)},12e4)})}async function Se(e,t){let n=await e.prompt({kinds:[`popup`],description:`Continue to sign in. A new window will open to the provider.`,grantLabel:`Continue`,requestOptions:{popup:{url:t}}});if(n.status!==`granted`)return;let r=n.grants.find(e=>e.kind===`popup`);return r&&r.kind===`popup`?r.window:null}async function Ce(t){let{captureDisplayMedia:n,sessionCaptureRequest:r}=await e(async()=>{let{captureDisplayMedia:e,sessionCaptureRequest:t}=await import(`./screencapture-media-DWFhjg7x.js`);return{captureDisplayMedia:e,sessionCaptureRequest:t}},[]),{mimeType:i,quality:a,mode:o,durationMs:s,audio:c,session:l,handle:u,maxWidth:d}=t,f=await n(o===`session`?r({session:l,handle:u,mimeType:i,quality:a,durationMs:s,maxWidth:d}):o===`video`?{mode:`video`,mimeType:i,durationMs:s??5e3,audio:!!c}:{mode:`image`,mimeType:i,quality:a});return{bytes:f.bytes.buffer.slice(f.bytes.byteOffset,f.bytes.byteOffset+f.bytes.byteLength),width:f.width,height:f.height,mimeType:f.mimeType,nativeWidth:f.nativeWidth,nativeHeight:f.nativeHeight,...f.durationMs===void 0?{}:{durationMs:f.durationMs},...f.handle===void 0?{}:{handle:f.handle}}}function we(){return{"page-info":()=>({origin:window.location.origin,href:window.location.href,title:document.title||``}),screencapture:e=>Ce(e),"speak-text":async({text:t,lang:n,voice:r,rate:i,pitch:a,volume:o})=>{let{speak:s}=await e(async()=>{let{speak:e}=await import(`./speak-B8zg07BA.js`);return{speak:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return await s({text:t,lang:n,voice:r,rate:i,pitch:a,volume:o}),{done:!0}},"list-voices":async()=>{let{kokoroVoicesIfReady:t}=await e(async()=>{let{kokoroVoicesIfReady:e}=await import(`./speak-B8zg07BA.js`);return{kokoroVoicesIfReady:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46])),n=t().map(e=>({name:e.id,lang:e.lang,default:!1,onDevice:e.onDevice}));if(typeof speechSynthesis>`u`){if(n.length>0)return{voices:n};throw Error(`speechSynthesis is unavailable in this page`)}let r=speechSynthesis.getVoices();if(r.length>0)return{voices:[...n,...r.map(X)]};let i=await new Promise(e=>{let t=()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())};speechSynthesis.addEventListener(`voiceschanged`,t),setTimeout(()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())},1e3)});return{voices:[...n,...i.map(X)]}},"speak-status":async()=>{let{kokoroStatus:t}=await e(async()=>{let{kokoroStatus:e}=await import(`./speak-B8zg07BA.js`);return{kokoroStatus:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return t()},"speak-warmup":async()=>{let{kokoroWarmup:t}=await e(async()=>{let{kokoroWarmup:e}=await import(`./speak-B8zg07BA.js`);return{kokoroWarmup:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return t()},"synthesize-to-wav":async({text:t,lang:n,voice:r,rate:i})=>{let{synthesizeToWav:a}=await e(async()=>{let{synthesizeToWav:e}=await import(`./speak-B8zg07BA.js`);return{synthesizeToWav:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46])),o=await a({text:t,...n===void 0?{}:{lang:n},...r===void 0?{}:{voice:r},...i===void 0?{}:{rate:i}});return{bytes:o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength)}},"play-audio":async({bytes:e,volume:t})=>{if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let n=new AudioContext;try{let r=await n.decodeAudioData(e.slice(0)),i=n.createBufferSource();if(i.buffer=r,t!==void 0){let e=n.createGain();e.gain.value=Math.max(0,Math.min(1,t)),i.connect(e),e.connect(n.destination)}else i.connect(n.destination);await new Promise(e=>{i.onended=()=>e(),i.start()})}finally{try{await n.close()}catch{}}return{done:!0}},"play-chime":async({tone:e})=>{let t={success:[880,1320],error:[440,220],notify:[660,660]},[n,r]=t[e??`notify`]??t.notify;if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let i=new AudioContext;try{let e=i.currentTime;for(let[t,a]of[n,r].entries()){let n=i.createOscillator();n.type=`sine`,n.frequency.value=a;let r=i.createGain();r.gain.setValueAtTime(1e-4,e+t*.18),r.gain.exponentialRampToValueAtTime(.2,e+t*.18+.02),r.gain.exponentialRampToValueAtTime(1e-4,e+t*.18+.18),n.connect(r),r.connect(i.destination),n.start(e+t*.18),n.stop(e+t*.18+.2)}await new Promise(e=>setTimeout(e,450))}finally{try{await i.close()}catch{}}return{done:!0}}}}function Te(e={}){return{"clipboard-read-text":async()=>{if(!navigator.clipboard?.readText)throw Error(`clipboard API unavailable`);return{text:await navigator.clipboard.readText()}},"clipboard-write-text":async({text:e})=>{if(!navigator.clipboard?.writeText)throw Error(`clipboard API unavailable`);return await Z(),await navigator.clipboard.writeText(e),{done:!0}},"clipboard-write-image":async({bytes:e,mimeType:t})=>{if(!navigator.clipboard?.write||typeof ClipboardItem>`u`)throw Error(`clipboard image API unavailable`);let n,r=new Blob([e],{type:t});return n=t===`image/png`?r:await je(r),await Z(),await navigator.clipboard.write([new ClipboardItem({"image/png":n})]),{done:!0}},"window-open":async({url:e,target:t,features:n})=>({opened:window.open(e,t??`_blank`,n??`noopener,noreferrer`)!==null}),"oauth-popup":async({url:t})=>{let n=await e.delegateOAuthLogin?.(t);return n?.delegated?{redirectUrl:n.redirectUrl,error:n.error}:{redirectUrl:await xe(t,e.getPermissionsSurface)}},"oauth-route":async()=>({delegate:await e.shouldDelegateOAuth?.()===!0}),"capture-camera":async e=>await ke(e),"enumerate-media-devices":async()=>{if(!navigator.mediaDevices?.enumerateDevices)throw Error(`enumerateDevices is not supported in this browser`);let e=await navigator.mediaDevices.enumerateDevices(),t=e=>({deviceId:e.deviceId,label:e.label||``,...e.groupId?{groupId:e.groupId}:{}});return{videoinputs:e.filter(e=>e.kind===`videoinput`).map(t),audioinputs:e.filter(e=>e.kind===`audioinput`).map(t)}}}}function Ee(){return{"hear-capture":async t=>{let{hearCapture:n}=await e(async()=>{let{hearCapture:e}=await import(`./hear-NNKlAYIB.js`);return{hearCapture:e}},__vite__mapDeps([47,4,48,49,3,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,9,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return await n(t??{})},"hear-transcribe":async({bytes:t,lang:n})=>{let{hearTranscribe:r}=await e(async()=>{let{hearTranscribe:e}=await import(`./hear-NNKlAYIB.js`);return{hearTranscribe:e}},__vite__mapDeps([47,4,48,49,3,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,9,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return await r(t,n)},"hear-status":async()=>{let{hearStatus:t}=await e(async()=>{let{hearStatus:e}=await import(`./hear-NNKlAYIB.js`);return{hearStatus:e}},__vite__mapDeps([47,4,48,49,3,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,9,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return t()},"hear-warmup":async()=>{let{hearWarmup:t}=await e(async()=>{let{hearWarmup:e}=await import(`./hear-NNKlAYIB.js`);return{hearWarmup:e}},__vite__mapDeps([47,4,48,49,3,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,9,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return t()}}}var q=null,J;function De(t){J=t,!(q||!t)&&e(()=>import(`./screencapture-media-DWFhjg7x.js`).then(e=>{q||=e.displaySessions.onEnded(t=>{J?.(e.SCREENCAPTURE_SESSION_ENDED_CHANNEL,{handle:t})})}),[])}var Oe=1500;async function ke(e){if(!navigator.mediaDevices?.getUserMedia)throw Error(`getUserMedia is not supported in this browser`);let t=e.mode===`photo`||e.captureVideo!==!1,n=!!e.captureAudio&&e.mode===`video`;if(!t&&!n)throw Error(`camera capture: at least one of video or audio must be requested`);let r=await Ae({wantVideo:t,videoDeviceId:t?await Y(e.deviceId,`videoinput`):void 0,audioDeviceId:n?await Y(e.audioDeviceId,`audioinput`):void 0,wantAudio:n,width:e.width,height:e.height,frameRate:e.frameRate,exact:!!e.exactSize});try{let n=null,i=0,a=0;if(t){n=document.createElement(`video`),n.srcObject=r,n.muted=!0,n.playsInline=!0;let e=n;await new Promise((t,n)=>{e.onloadedmetadata=()=>e.play().then(()=>t()).catch(n),e.onerror=()=>n(Error(`Failed to load camera stream`))}),await new Promise(e=>requestAnimationFrame(()=>e())),await new Promise(e=>requestAnimationFrame(()=>e())),i=e.videoWidth,a=e.videoHeight}if(e.mode===`photo`){if(!n)throw Error(`photo capture requires a video track`);let t=e.warmupMs??Oe;t>0&&await new Promise(e=>setTimeout(e,t));let r=document.createElement(`canvas`);r.width=i,r.height=a;let o=r.getContext(`2d`);if(!o)throw Error(`Failed to get canvas context`);o.drawImage(n,0,0,i,a);let s=await new Promise((t,n)=>{r.toBlob(e=>e?t(e):n(Error(`Failed to encode photo`)),e.mimeType,e.quality)});return{bytes:await s.arrayBuffer(),mimeType:s.type||e.mimeType,width:i,height:a}}let o=Math.max(100,Math.min(e.durationMs??5e3,6e4)),s=typeof MediaRecorder<`u`&&MediaRecorder.isTypeSupported(e.mimeType)?e.mimeType:`video/webm`,c=new MediaRecorder(r,{mimeType:s}),l=[];c.ondataavailable=e=>{e.data&&e.data.size>0&&l.push(e.data)};let u=new Promise(e=>{c.onstop=()=>e()});c.start(),await new Promise(e=>setTimeout(e,o)),c.stop(),await u;let d=new Blob(l,{type:s});return{bytes:await d.arrayBuffer(),mimeType:d.type||s,width:i,height:a,durationMs:o}}finally{r.getTracks().forEach(e=>{e.stop()})}}async function Y(e,t){if(e===void 0||e===``)return;if(!/^\d+$/.test(e))return e;if(!navigator.mediaDevices?.enumerateDevices)return;let n=parseInt(e,10);return(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===t)[n]?.deviceId}async function Ae(e){let t=t=>{if(!e.wantVideo)return!1;let n={};return e.videoDeviceId&&(n.deviceId={exact:e.videoDeviceId}),e.width&&(n.width=t===`exact`?{exact:e.width}:{ideal:e.width}),e.height&&(n.height=t===`exact`?{exact:e.height}:{ideal:e.height}),e.frameRate&&(n.frameRate=t===`exact`?{exact:e.frameRate}:{ideal:e.frameRate}),Object.keys(n).length>0?n:!0},n=()=>e.wantAudio?!e.audioDeviceId||{deviceId:{exact:e.audioDeviceId}}:!1;try{return await navigator.mediaDevices.getUserMedia({video:t(e.exact?`exact`:`ideal`),audio:n()})}catch(r){let i=r?.name;if(!e.exact||i!==`OverconstrainedError`&&i!==`NotReadableError`)throw r;return console.warn(`panel-rpc:capture-camera: exact ${e.width??`?`}x${e.height??`?`}@${e.frameRate??`?`} unmet, falling back to ideal`),await navigator.mediaDevices.getUserMedia({video:t(`ideal`),audio:n()})}}function X(e){return{name:e.name,lang:e.lang,default:e.default,onDevice:!1}}async function je(e){let t=URL.createObjectURL(e);try{let e=new Image;await new Promise((n,r)=>{e.onload=()=>n(),e.onerror=()=>r(Error(`Failed to load image for clipboard conversion`)),e.src=t});let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)throw Error(`Failed to get canvas context`);return r.drawImage(e,0,0),await new Promise((e,t)=>{n.toBlob(n=>n?e(n):t(Error(`PNG re-encode failed`)),`image/png`)})}finally{URL.revokeObjectURL(t)}}async function Z(e=3e5){typeof document>`u`||typeof document.hasFocus==`function`&&(document.hasFocus()||await new Promise((t,n)=>{let r=()=>{window.removeEventListener(`focus`,i),document.removeEventListener(`visibilitychange`,a),clearTimeout(o)},i=()=>{document.hasFocus()&&(r(),t())},a=()=>{document.visibilityState===`visible`&&document.hasFocus()&&(r(),t())},o=setTimeout(()=>{r(),n(Error(`timed out waiting for window focus`))},e);window.addEventListener(`focus`,i),document.addEventListener(`visibilitychange`,a)}))}function Q(e){let t=new Map,n=()=>{if(!e.sliccSidecar)throw Error(`slicc: sidecar attachments are not available in this environment`);return e.sliccSidecar},r=async(e,r)=>{let i=n(),a=new AbortController;t.set(e,a);try{return await r(i,a.signal)}finally{t.delete(e)}};return{"slicc-attach":async({joinUrl:e,name:t,connectTimeoutMs:r})=>await n().attach({joinUrl:e,name:t,connectTimeoutMs:r}),"slicc-detach":({name:e})=>({detached:n().detach(e)}),"slicc-list":()=>({attachments:n().list()}),"slicc-prompt":async({name:e,text:t,runToken:n,steer:i,timeoutMs:a})=>await r(n,async(n,r)=>await n.prompt(e,t,{steer:i,timeoutMs:a,signal:r})),"slicc-exec":async({name:e,command:t,runToken:n,cwd:i,env:a,timeoutMs:o,stdin:s})=>await r(n,async(n,r)=>await n.exec(e,t,{cwd:i,env:a,timeoutMs:o,stdin:s,signal:r})),"slicc-watch":async({name:e,runToken:t,durationMs:n,scoopJid:i,untilIdle:a})=>await r(t,async(t,r)=>await t.watch(e,{durationMs:n,scoopJid:i,untilIdle:a,signal:r})),"slicc-cancel":({runToken:e})=>(t.get(e)?.abort(),{ok:!0})}}function Me(e){return{"list-remote-targets":async()=>e.listRemoteTargets?{targets:(await e.listRemoteTargets()).filter(e=>e.targetId.includes(`:`)).map(e=>({targetId:e.targetId,title:e.title,url:e.url}))}:{targets:[]},"remote-cdp-send":async({runtimeId:t,localTargetId:n,method:r,params:i,sessionId:a,timeout:o})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.send({runtimeId:t,localTargetId:n,method:r,params:i,sessionId:a,timeout:o})},"remote-cdp-subscribe":async({runtimeId:t,localTargetId:n,event:r})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.subscribe({runtimeId:t,localTargetId:n,event:r})},"remote-cdp-unsubscribe":async({runtimeId:t,localTargetId:n,event:r})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.unsubscribe({runtimeId:t,localTargetId:n,event:r})},"remote-cdp-detach":async({runtimeId:t,localTargetId:n})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.detach({runtimeId:t,localTargetId:n})},"remote-open-tab":async({runtimeId:t,url:n})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.openTab({runtimeId:t,url:n})}}}function Ne(e,t){return t===void 0?e.length>0&&e.every(e=>e===`camera`||e===`microphone`):t}function Pe(t){return{"permission-request":async n=>{let r=t.getPermissionsSurface?.()??null;if(!r)throw Error(`permission-request: permission surface unavailable`);let i=await r.prompt({kinds:n.kinds,description:n.description,heading:n.heading,grantLabel:n.grantLabel,cancelLabel:n.cancelLabel,skipIfGranted:Ne(n.kinds,n.skipIfGranted)});if(i.status!==`granted`){let e=i.message?`: ${i.message}`:``;throw Error(`permission-request: ${i.reason??i.status}${e}`)}let a=[];for(let t of i.grants)switch(t.kind){case`usb`:{let e=R().register(t.device);a.push({kind:`usb`,handle:e});break}case`hid`:{let e=H().register(t.device);a.push({kind:`hid`,handle:e});break}case`serial`:{let e=W().register(t.port);a.push({kind:`serial`,handle:e});break}case`filesystem`:{let{storePendingHandle:n}=await e(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-qcWGbpG5.js`);return{storePendingHandle:e}},__vite__mapDeps([50,4,51,9])),r=`pendingMount:rpc-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;await n(r,t.handle),a.push({kind:`filesystem`,idbKey:r,dirName:t.handle.name});break}case`camera`:case`microphone`:case`screenshare`:for(let e of t.stream.getTracks())e.stop();a.push({kind:t.kind,ok:!0})}return{grants:a}}}}function Fe(e){let t=n().find(t=>t.id===e);return t?t.id:null}function Ie(){return{"feature-flag-set":({id:e,value:n})=>{let i=Fe(e);if(!i)throw Error(`unknown flag ${e}`);if(t(i,n),r()[i]!==n)throw Error(`flag ${e} cannot be overridden on this float`);return{overridesJson:localStorage.getItem(`slicc_feature_flags`)??`{}`}}}}function Le(){return{"theme-apply":async({themeJson:t,action:n})=>{let{importTheme:r,saveCustomTheme:i,setActiveTheme:a,clearActiveTheme:o,applyThemeOverrides:s}=await e(async()=>{let{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}=await import(`./theme-engine-ZV7CeqWw.js`).then(e=>e._);return{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}},__vite__mapDeps([52,1,4]));if(n===`reset`)return o(),s(),{applied:null};if(t){let e=r(t);return i(e),a(e.id),s(),{applied:e.id}}return{applied:null}}}}function Re(){return{"layout-apply":async t=>{let{getLayoutApplier:n}=await e(async()=>{let{getLayoutApplier:e}=await import(`./layout-apply-registry-Cw730jao.js`);return{getLayoutApplier:e}},[]),r=n();return r?await r(t)??{applied:!0}:{applied:!1,error:`no layout is mounted`}}}}function $(){let e=globalThis;if(!e.__slicc_browser)throw Error(`no browser API on this page`);return e.__slicc_browser}function ze(){return{"computer-tab-screenshot":async t=>{let{screenshotTab:n}=await e(async()=>{let{screenshotTab:e}=await import(`./tab-8LaHojfd.js`);return{screenshotTab:e}},__vite__mapDeps([53,54,24,55]));return n($(),t.targetId,{maxWidth:t.maxWidth,format:t.format})},"computer-tab-input":async t=>{let{inputTab:n}=await e(async()=>{let{inputTab:e}=await import(`./tab-8LaHojfd.js`);return{inputTab:e}},__vite__mapDeps([53,54,24,55]));return await n($(),t.targetId,t.events),{ok:!0}}}}function Be(e={}){let t=new Map;return De(e.emitEvent),{...we(),...Te(e),...Ee(),...be(e),...Q(e),...I(e),...L(e,t),..._e(),...ve(e),...Me(e),...Pe(e),...F(),...N(),...P(),...j(),...M(),...Le(),...Re(),...Ie(),...ze()}}export{Be as createStandalonePanelRpcHandlers};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./logger-DDBAeTLF.js";import{F as t,H as n,J as r,K as i,M as a,U as o,V as s,W as c,Y as l,q as u}from"./wc-shell-
|
|
1
|
+
import{t as e}from"./logger-DDBAeTLF.js";import{F as t,H as n,J as r,K as i,M as a,U as o,V as s,W as c,Y as l,q as u}from"./wc-shell-DVdpBOjU.js";import"./virtual-device-paths-D45tpPP6.js";import{r as d}from"./icons-dEBJiC8z.js";import{setLayoutApplier as f}from"./layout-apply-registry-Cw730jao.js";var p=e(`add-panel-menu`),m=`slicc-add-panel-menu-style`,h=[`.slicc-addpanel{position:relative;}`,`.slicc-addpanel__btn{width:26px;height:26px;display:grid;place-items:center;`,`border:1px solid var(--line);border-radius:7px;background:var(--canvas);`,`color:var(--txt-2);cursor:pointer;padding:0;font-size:15px;line-height:1;}`,`.slicc-addpanel__btn:hover{background:var(--ghost);color:var(--ink);}`,`.slicc-addpanel__menu{position:absolute;top:32px;right:0;min-width:230px;`,`max-height:70vh;overflow:auto;background:var(--canvas);border:1px solid var(--line);`,`border-radius:10px;box-shadow:var(--shadow-pane);padding:6px;display:none;`,`font-family:var(--ui);font-size:12.5px;}`,`.slicc-addpanel__menu[open]{display:block;}`,`.slicc-addpanel__group{padding:6px 8px 2px;color:var(--txt-3);font-size:10.5px;`,`text-transform:uppercase;letter-spacing:.04em;}`,`.slicc-addpanel__item{width:100%;display:flex;align-items:center;gap:8px;`,`padding:6px 8px;border:none;background:none;border-radius:6px;cursor:pointer;`,`color:var(--ink);text-align:left;font:inherit;}`,`.slicc-addpanel__item:hover{background:var(--ghost);}`,`.slicc-addpanel__check{width:12px;flex:0 0 12px;color:var(--accent);}`,`.slicc-addpanel__sep{height:1px;background:var(--line);margin:5px 4px;}`,`.slicc-addpanel__item{position:relative;}`,`.slicc-addpanel__del{margin-left:auto;flex:0 0 auto;display:grid;place-items:center;`,`width:18px;height:18px;padding:0;border:none;border-radius:4px;background:transparent;`,`color:var(--ink);opacity:0;cursor:pointer;}`,`.slicc-addpanel__item:hover .slicc-addpanel__del{opacity:0.65;}`,`.slicc-addpanel__del:hover{opacity:1;background:var(--ghost);}`,`.slicc-addpanel__del:focus-visible{opacity:1;}`].join(``),g=typeof globalThis.prompt==`function`?globalThis.prompt.bind(globalThis):void 0;function ee(e){let t=e.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,`-`).replace(/^[-.]+|[-.]+$/g,``).slice(0,64);return t.length>0?t:null}function te(e){if(e.getElementById(m))return;let t=e.createElement(`style`);t.id=m,t.textContent=h,(e.head??e.documentElement).appendChild(t)}function _(e){te(document);let t=document.createElement(`div`);t.className=`slicc-addpanel`;let n=document.createElement(`button`);n.type=`button`,n.className=`slicc-addpanel__btn`,n.title=`Panels and layouts`,n.setAttribute(`aria-label`,`Panels and layouts`);let r=new DOMParser().parseFromString(d(`layout-dashboard`,{size:14}),`image/svg+xml`).documentElement;n.appendChild(r);let a=document.createElement(`div`);a.className=`slicc-addpanel__menu`,a.setAttribute(`role`,`menu`);let o=(e,t,n)=>{let r=document.createElement(`button`);r.type=`button`,r.className=`slicc-addpanel__item`,r.setAttribute(`role`,`menuitem`);let i=document.createElement(`span`);i.className=`slicc-addpanel__check`,i.textContent=t?`✓`:``;let a=document.createElement(`span`);return a.textContent=e,r.append(i,a),r.addEventListener(`click`,()=>{n(),m()}),r},s=t=>{let n=o(t,!1,()=>e.onLoadLayout(t)),r=document.createElement(`button`);return r.type=`button`,r.className=`slicc-addpanel__del`,r.title=`Delete "${t}"`,r.setAttribute(`aria-label`,`Delete layout ${t}`),r.appendChild(new DOMParser().parseFromString(d(`trash-2`,{size:11}),`image/svg+xml`).documentElement),r.addEventListener(`click`,n=>{n.stopPropagation(),e.onDeleteLayout(t),m()}),n.appendChild(r),n};function c(){let t=e.promptForName??g;if(!t){p.warn(`cannot save a layout: no prompt available`);return}let n=t(`Save this layout as:`,e.layout.getLayout().id);if(n===null)return;let r=ee(n);if(!r){p.warn(`layout not saved: the name reduced to nothing`,{raw:n});return}e.onSaveLayout(r)}let l=e=>{let t=document.createElement(`div`);return t.className=`slicc-addpanel__group`,t.textContent=e,t};async function f(){let t=new Set(e.layout.getPlacedPanelIds()),n=[],r={},u=i();for(let e of u)(r[e.origin]??=[]).push(e);for(let[i,a]of[[`builtin`,`Panels`],[`sprinkle`,`Sprinkles`],[`agent`,`Made by SLICC`]]){let s=r[i];if(s?.length){n.push(l(a));for(let r of s){let i=t.has(r.meta.id);n.push(o(r.meta.title,i,()=>e.onToggle(r.meta.id,!i)))}}}try{let{saved:t,presets:r}=await e.listLayoutNames(),i=document.createElement(`div`);i.className=`slicc-addpanel__sep`,n.push(i,l(`Layouts`));for(let e of t)n.push(s(e));for(let t of r)n.push(o(t,!1,()=>e.onLoadLayout(t)));n.push(o(`Save layout as…`,!1,c))}catch(e){p.warn(`could not list layouts for the menu`,{error:e})}a.replaceChildren(...n)}function m(){a.removeAttribute(`open`),document.removeEventListener(`pointerdown`,h,!0)}let h=e=>{t.contains(e.target)||m()};return n.addEventListener(`click`,()=>{if(a.hasAttribute(`open`)){m();return}f().then(()=>{a.setAttribute(`open`,``),document.addEventListener(`pointerdown`,h,!0)})}),u.addEventListener(`panel-registry-change`,()=>{a.hasAttribute(`open`)&&f()}),t.append(n,a),t}var v={chat:`chat`,sessionsRail:`sessions-rail`,dockRail:`dock-rail`,scoopSwitcher:`scoop-switcher`,floatbar:`floatbar`,files:`files`,term:`term`,memory:`memory`,monitor:`monitor`,browser:`browser`},y={[v.chat]:{id:v.chat,title:`Chat`,icon:`message-circle`,minWidth:320,preferredSize:3},[v.sessionsRail]:{id:v.sessionsRail,title:`Sessions`,icon:`history`,preferredSize:`44px`},[v.dockRail]:{id:v.dockRail,title:`Dock`,icon:`layout-grid`,preferredSize:`48px`},[v.scoopSwitcher]:{id:v.scoopSwitcher,title:`Scoops`,icon:`users`},[v.floatbar]:{id:v.floatbar,title:`Runtime`,icon:`activity`},[v.files]:{id:v.files,title:`Files`,icon:`folder`,minWidth:220},[v.term]:{id:v.term,title:`Terminal`,icon:`square-terminal`},[v.memory]:{id:v.memory,title:`Memory`,icon:`brain`},[v.monitor]:{id:v.monitor,title:`Monitor`,icon:`activity`},[v.browser]:{id:v.browser,title:`Browser`,icon:`globe`}};function b(e,t){let n=document.createElement(`slicc-panel`);n.setAttribute(`panel-id`,e);let r=y[e];return r?.title&&n.setAttribute(`aria-label`,r.title),n.appendChild(t),n}function x(){for(let e of Object.values(y))r({meta:e,source:{kind:`element`,tag:`slicc-panel`},origin:`builtin`})}function ne(e){if(!e?.startsWith(`sprinkle:`))return null;let t=e.slice(9);return t.length>0?t:null}function S(){return{when:{maxWidth:700},docks:[],zones:{center:[v.chat]},floating:[]}}function C(){return[{edge:`top`,size:`36px`,panels:[v.scoopSwitcher,v.floatbar],locked:!0},{edge:`left`,size:`44px`,panels:[v.sessionsRail],locked:!0},{edge:`right`,size:`48px`,panels:[v.dockRail],locked:!0}]}var w={version:1,id:`default`,title:`Default`,base:{docks:C(),zones:{center:[v.chat]}},variants:[S()]},T={default:w};function E(e){return T[e]??null}function D(){return Object.keys(T)}e(`sudo:sudoers`);var O=`/etc/slicc/layouts`;[`NOPASSWD Read /tmp`,`NOPASSWD Read /tmp/**`,`NOPASSWD Write /tmp`,`NOPASSWD Write /tmp/**`].join(`
|
|
2
2
|
`);var k=e(`layout-store`),A=`/workspace/layouts`,j=[A,O];function M(e,t){return`${t?.protected?O:A}/${e}.json`}async function N(e,t){try{if(!await e.exists(t))return null;let r=await e.readFile(t),i=n(JSON.parse(typeof r==`string`?r:String(r)));return`error`in i?(k.warn(`invalid layout document — ignoring`,{path:t,error:i.error}),null):i}catch(e){return k.warn(`failed to read layout`,{path:t,error:e instanceof Error?e.message:e}),null}}async function P(e,t,n){let r=n?.name??t.id,i=n?.protected?O:A,a=`${i}/${r}.json`;return await e.exists(i)||await e.mkdir(i,{recursive:!0}),await e.writeFile(a,`${JSON.stringify(t,null,2)}\n`),k.info(`layout saved`,{path:a}),a}async function F(e,t,n){let r=M(t,n);return await e.exists(r)?(await e.rm(r),!0):!1}async function I(e){let t=[],n=new Set;for(let r of j){let i;try{if(!await e.exists(r))continue;i=(await e.readDir(r)).filter(e=>e.type===`file`).map(e=>e.name)}catch(e){k.warn(`failed to list layout dir`,{dir:r,error:e});continue}for(let a of i){if(!a.endsWith(`.json`))continue;let i=a.slice(0,-5);if(n.has(i))continue;let o=`${r}/${a}`,s=await N(e,o);s&&(n.add(i),t.push({name:i,path:o,doc:s,protected:r===O}))}}return t}async function L(e,t){for(let n of j){let r=`${n}/${t}.json`,i=await N(e,r);if(i)return{name:t,path:r,doc:i,protected:n===O}}return null}function R(e,n,r){let i=e.getLayout(),a=t(i,e.environment());if(r){let e=a.zones??c(a.center??null);o(e,n)?a.zones||(a.zones=e,a.center=null):(a.zones=s(e,n,`right`),a.center=null)}i.panels={...i.panels,[n]:{...i.panels?.[n],visible:r}},e.setLayout(i)}var z=e(`apply-layout-doc`);function B(e){return{applied:!1,error:`layout ${e} needs a filesystem (unavailable here)`}}function V(e){return[`load`,`save`,`delete`,`docs`,`panels`,`show`,`hide`].includes(e.kind)}async function H(e,t){let n=e.fs?await L(e.fs,t):null;if(n)return e.layout.setLayout(n.doc),{applied:!0,output:`loaded layout "${t}" from ${n.path}`};let r=E(t);return r?(e.layout.setLayout(r),{applied:!0,output:`loaded preset "${t}"`}):{applied:!1,error:`unknown layout "${t}" — try: ${D().join(`, `)}`}}async function U(e,t,n){if(!e.fs)return B(`save`);let r={...e.layout.getLayout(),id:t};try{return{applied:!0,output:`saved layout to ${await P(e.fs,r,{name:t,protected:n})}`}}catch(e){let r=e instanceof Error?e.message:String(e);return z.warn(`layout save failed`,{name:t,protected:n,error:r}),{applied:!1,error:`could not save "${t}": ${r}`}}}async function W(e){let t=e.fs?await I(e.fs):[],n=[];if(t.length>0){n.push(`saved layouts:`);for(let e of t)n.push(` ${e.name}${e.protected?` (protected)`:``} ${e.path}`)}n.push(`presets: ${D().join(`, `)}`);let r=e.layout.getLayout();return n.push(`current: ${r.id}`),{applied:!0,output:n.join(`
|
|
3
3
|
`)}}function G(e){let t=new Set(e.layout.getPlacedPanelIds()),n={builtin:[],sprinkle:[],agent:[]};for(let e of i()){let r=t.has(e.meta.id)?`*`:` `;(n[e.origin]??=[]).push(` ${r} ${e.meta.id} ${e.meta.title}`)}let r=[];for(let[e,t]of Object.entries(n))t.length!==0&&(r.push(`${e}:`),r.push(...t));return r.push(`(* = currently placed)`),{applied:!0,output:r.join(`
|
|
4
4
|
`)}}function K(e,t,n){return R(e.layout,t,n),{applied:!0}}async function q(e,t){switch(t.kind){case`load`:return H(e,t.name);case`save`:return U(e,t.name,t.protected);case`delete`:return e.fs?await F(e.fs,t.name)||await F(e.fs,t.name,{protected:!0})?{applied:!0,output:`deleted layout "${t.name}"`}:{applied:!1,error:`no saved layout named "${t.name}"`}:B(`delete`);case`docs`:return W(e);case`panels`:return G(e);case`show`:return K(e,t.panelId,!0);case`hide`:return K(e,t.panelId,!1)}}var J=e(`panelize-shell`),Y=`slicc-panelize-style`,X=[`.wcui-avatar-strip{position:absolute;top:0;right:0;height:var(--barh,36px);`,`display:flex;align-items:center;gap:12px;padding:0 9px 0 14px;box-sizing:border-box;`,`pointer-events:auto;z-index:1;}`,`.wcui-frame slicc-layout{position:relative;z-index:1;}`,`slicc-layout .slicc-layout__dock--left,slicc-layout .slicc-layout__dock--right{flex:0 0 auto;}`,`slicc-layout .slicc-layout__dock--top,slicc-layout .slicc-layout__dock--bottom{flex:0 0 auto;}`,`slicc-layout .slicc-layout__dock--left{flex:0 0 auto!important;width:auto!important;}`,`slicc-layout .slicc-layout__dock--right{flex:0 0 auto!important;width:auto!important;}`,`slicc-panel[panel-id="sessions-rail"],slicc-panel[panel-id="dock-rail"]{`,`flex:0 0 auto;height:100%;align-self:stretch;overflow:hidden;}`,`slicc-panel[panel-id="dock-rail"]{width:48px;}`,`slicc-panel[panel-id="sessions-rail"]{width:auto;}`,`slicc-panel[panel-id="sessions-rail"]>*,slicc-panel[panel-id="dock-rail"]>*{`,`height:100%;flex:1 1 auto;min-height:0;}`,`slicc-panel[panel-id="scoop-switcher"],slicc-panel[panel-id="floatbar"]{`,`height:var(--barh,36px);min-height:var(--barh,36px);max-height:var(--barh,36px);}`,`slicc-panel[panel-id="chat"] slicc-chatpane{flex:1 1 0;width:100%;min-height:0;}`,`slicc-panel[panel-id="chat"] slicc-chat-thread{flex:1 1 0;min-height:0;overflow-y:auto;}`,`slicc-panel[panel-id="chat"] slicc-composer{flex:0 0 auto;}`,`slicc-panel[panel-id="scoop-switcher"]{flex:0 0 auto;justify-content:center;padding-left:14px;}`,`slicc-panel[panel-id="floatbar"]{flex:1 1 auto;align-items:center;justify-content:flex-end;`,`padding-right:var(--avatar-strip-w, 96px);}`,`slicc-panel[panel-id="scoop-switcher"],slicc-panel[panel-id="floatbar"]{flex-direction:row;}`,`slicc-panel[panel-id="term"][presentation="floating"]{`,`background:var(--term-bg,#0c0c0e);border-color:var(--term-border,#232329);`,`box-shadow:rgba(0,0,0,.35) 0 14px 36px -12px,rgba(0,0,0,.2) 0 4px 10px -4px;}`].join(``);function re(e){if(e.getElementById(Y))return;let t=e.createElement(`style`);t.id=Y,t.textContent=X,(e.head??e.documentElement).appendChild(t)}function Z(e){e.setAttribute(`active`,``),e.style.display=`flex`,e.style.flexDirection=`column`,e.style.position=`relative`,e.style.inset=`auto`,e.style.flex=`1 1 auto`,e.style.minHeight=`0`}var ie=new Set([v.files,v.term,v.memory,v.monitor,v.browser]);function ae(e,t,n,r){let i=(e,i)=>{let a=e.detail?.id;!a||!ie.has(a)||n.has(a)||(e.stopImmediatePropagation(),R(t,a,i),i?r?.onToolPanelActivate?.(a):r?.onToolPanelDeactivate?.(a))};e.addEventListener(`slicc-dock-select`,e=>i(e,!0),!0),e.addEventListener(`slicc-dock-collapse`,e=>i(e,!1),!0)}function oe(e,t){return{hostSprinkleSurface:(n,i)=>{let a=b(n,i);Z(i),t.set(n,a),e.appendChild(a),r({meta:{id:n,title:ne(n)??n},source:{kind:`element`,tag:`slicc-panel`},origin:`sprinkle`}),R(e,n,!0),J.info(`sprinkle panel hosted`,{surfaceId:n})},removeSprinkleSurface:n=>{t.get(n)?.remove(),t.delete(n),l(n);let r=e.getLayout();r.panels={...r.panels,[n]:{visible:!1}},e.setLayout(r)}}}var Q=`slicc-panel-layout:default`;function se(e,t){e.addEventListener(`slicc-layout-change`,t=>{let n=t.detail?.reason;if(n===`rearrange`||n===`resize`)try{localStorage.setItem(Q,JSON.stringify(e.getLayout()))}catch{}});let r=null;try{let e=localStorage.getItem(Q);if(e){let t=n(JSON.parse(e));`error`in t?J.warn(`stored layout rejected — using the default`,{error:t.error}):r=t}}catch(e){J.warn(`stored layout unreadable — using the default`,e)}e.setLayout(r??t)}var $=null;function ce(){return $}function le(e,t=w,n,r){if(e.frame.dataset.sliccPanelized===`1`)return J.warn(`panelizeShell called twice — ignoring the second call`),null;re(document),x();let i=n,o=document.createElement(`slicc-layout`),s=new Map,c=(e,t)=>{if(!t)return;let n=b(e,t);s.set(e,n),o.appendChild(n)};e.freezer.setAttribute(`docked`,``),e.frame.querySelector(`.wcui-appcol`)?.style.setProperty(`--rail-w`,`0px`),c(v.scoopSwitcher,e.switcher),c(v.floatbar,e.floatbar),c(v.sessionsRail,e.freezer),c(v.dockRail,e.dock),c(v.chat,e.chatPane);for(let t of[v.files,v.term,v.memory,v.monitor,v.browser]){let n=e.dockTree.querySelector(`slicc-surface[surface-id="${t}"]`);n instanceof HTMLElement&&(Z(n),c(t,n))}let l=document.createElement(`div`);l.className=`wcui-avatar-strip`,l.appendChild(_({layout:o,onToggle:(e,t)=>{q({layout:o,fs:i},{kind:t?`show`:`hide`,panelId:e})},onLoadLayout:e=>{q({layout:o,fs:i},{kind:`load`,name:e})},onSaveLayout:e=>{q({layout:o,fs:i},{kind:`save`,name:e,protected:!1}).then(t=>{t.error?J.warn(`layout save failed`,{name:e,error:t.error}):J.info(`layout saved`,{name:e,output:t.output})})},onDeleteLayout:e=>{q({layout:o,fs:i},{kind:`delete`,name:e})},listLayoutNames:async()=>({saved:i?(await I(i)).map(e=>e.name):[],presets:D()})})),l.appendChild(e.avatarMenu),a(l,document),e.shell.replaceWith(o),e.frame.querySelector(`slicc-nav`)?.remove(),se(o,t),ae(e.dock,o,e.overlaySurfaces,r),f(e=>V(e)?q({layout:o,fs:i},e):{applied:!1,error:`"${e.kind}" targets the old dock-tree; with panels use: load, save, show, hide, docs, panels`}),e.frame.dataset.sliccPanelized=`1`,J.info(`shell panelized`,{panels:s.size,layout:t.id});let u={layout:o,avatarStrip:l,panels:s,attachFs:e=>{i=e,J.info(`layout store attached`)},...oe(o,s)};return $=u,u}export{Q as PANEL_LAYOUT_STORAGE_KEY,ce as getPanelizedShell,le as panelizeShell};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e,n as t,t as n}from"./path-utils-DNJG-zQf.js";import{t as r}from"./types-D8gIX-W-.js";import"./fs-
|
|
1
|
+
import{a as e,n as t,t as n}from"./path-utils-DNJG-zQf.js";import{t as r}from"./types-D8gIX-W-.js";import"./fs-fMPWFoqu.js";import{t as i}from"./kernel-worker-CYrV9gTu.js";let a;function o(){return a??=import(`./edit-BnFODSzt.js`).then(({createEditTool:e})=>e()),a}function s(e){return{ok:!0,value:e}}function c(e){return{ok:!1,error:e}}var l=class extends Error{code;path;constructor(e,t,n,r){super(t,r===void 0?void 0:{cause:r}),this.code=e,this.path=n,this.name=`FileError`}},u=class extends Error{code=`shell_unavailable`;constructor(e){super(e),this.name=`ExecutionError`}};function d(e){if(!(e instanceof r))return`unknown`;switch(e.code){case`ENOENT`:return`not_found`;case`EACCES`:return`permission_denied`;case`ENOTDIR`:return`not_directory`;case`EISDIR`:return`is_directory`;case`EINVAL`:case`ELOOP`:return`invalid`;default:return`unknown`}}function f(e,t){if(e instanceof l)return e;let n=e instanceof Error?e:Error(String(e));return new l(d(e),n.message,t,n)}function p(e,t){return e?.aborted?c(new l(`aborted`,`aborted`,t)):null}var m=class{fs;cwd;constructor(e,t){this.fs=e,this.cwd=t}async absolutePath(e,r){return p(r,e)||s(t(e.startsWith(`/`)?e:n(this.cwd,e)))}async canonicalPath(e,t){let n=await this.absolutePath(e,t);if(!n.ok)return n;try{return s(await this.fs.realpath(n.value))}catch(e){return c(f(e,n.value))}}async fileInfo(t,n){let r=await this.absolutePath(t,n);if(!r.ok)return r;try{let t=await this.fs.lstat(r.value);return s({name:e(r.value).base,path:r.value,kind:t.type,size:t.size,mtimeMs:t.mtime})}catch(e){return c(f(e,r.value))}}async readTextFile(e,t){let n=await this.absolutePath(e,t);if(!n.ok)return n;try{let e=await this.fs.readTextFile(n.value);return p(t,n.value)??s(e)}catch(e){return c(f(e,n.value))}}async writeFile(e,t,n){let r=await this.absolutePath(e,n);if(!r.ok)return r;try{if(await this.fs.writeFile(r.value,t),typeof t==`string`){let e=await i(this.fs,r.value,t);if(e)return c(new l(`unknown`,e,r.value))}return p(n,r.value)??s(void 0)}catch(e){return c(f(e,r.value))}}unsupported(e,t){return c(new l(`not_supported`,`${e} is unavailable to the edit tool`,t))}async joinPath(e){return s(n(...e))}async readTextLines(e,t){let n=await this.readTextFile(e,t?.abortSignal);if(!n.ok)return n;let r=n.value.split(/\r?\n/);return s(t?.maxLines===void 0?r:r.slice(0,t.maxLines))}async readBinaryFile(e){return this.unsupported(`readBinaryFile`,e)}async appendFile(e){return this.unsupported(`appendFile`,e)}async renameFile(e){return this.unsupported(`renameFile`,e)}async listDir(e){return this.unsupported(`listDir`,e)}async exists(e){return this.unsupported(`exists`,e)}async createDir(e){return this.unsupported(`createDir`,e)}async remove(e){return this.unsupported(`remove`,e)}async createTempDir(){return this.unsupported(`createTempDir`)}async createTempFile(){return this.unsupported(`createTempFile`)}async exec(){return c(new u(`Shell is unavailable to the edit tool`))}async cleanup(){}};const h=new WeakMap;function g(e,t){let n=h.get(e);n||h.set(e,n=new Map);let r=n.get(t);return r||n.set(t,r=new m(e,t)),r}async function _(e,t,n,r){return{content:(await(await o()).execute(`slicc-edit`,n,r,void 0,{env:g(e,t)})).content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
2
2
|
`)}}export{_ as executePiEdit};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import{_ as t,l as n,r}from"./account-store-
|
|
1
|
+
import{t as e}from"./logger-LESFN7Hj.js";import{_ as t,l as n,r}from"./account-store-DCNh6_f3.js";import{i,s as a,t as o}from"./providers-Bi2j-s3f.js";import{a as s}from"./core-VO3EvqHP.js";import{t as c}from"./redirect-uri-CBCnYKsl.js";import{discoverAuth as l,refreshAccessToken as u,runAuthFlow as d}from"./oauth-D20BEoY6.js";import{n as f}from"./store-Bo7W8LfT.js";const p=e(`mcp-provider`);function m(){return typeof globalThis<`u`&&globalThis.indexedDB!==void 0}function h(e){return`mcp:${e}`}const g=new Map,_=new Set;async function v(e){if(e)return e;let{createProxiedFetch:t}=await import(`./proxied-fetch-DXaTHROw.js`).then(e=>e.a),n=t();return async(e,t)=>{let r=await n(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(r.body);return{ok:r.status>=200&&r.status<300,status:r.status,statusText:r.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>r.headers[e.toLowerCase()]??null}}}}async function y(e){let t=g.get(h(e.name));if(t)return t;let n=await v(e.fetchImpl),r=await l(e.serverUrl,void 0,n);return g.set(h(e.name),r),r}function b(e){let i=h(e.name),a=(()=>{try{return new URL(e.serverUrl).host}catch{return``}})();return{id:i,name:`MCP: ${e.name}`,description:`MCP server at ${e.serverUrl}`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:a?[a]:[],getModelIds:()=>[],onOAuthLogin:async(n,r)=>{let a=e.launcher??n,o=await v(e.fetchImpl),l=await y(e),u=await d({asMetadata:l,clientId:e.auth.clientId,scope:e.auth.scope,redirectUri:e.auth.redirectUri??await c(s()),launcher:a,fetchImpl:o});await t({providerId:i,accessToken:u.accessToken,refreshToken:u.refreshToken,tokenExpiresAt:u.expiresAt,scopes:u.scope}),r()},onSilentRenew:async()=>{if(!n(i))return null;let a=r().find(e=>e.providerId===i),o=a?.refreshToken;if(!o)return p.info(`No refresh token for MCP provider, skipping silent renewal`,{id:i}),null;try{let n=await y(e),r=n.grantTypes??[];if(r.length>0&&!r.includes(`refresh_token`))return p.info(`AS does not advertise refresh_token grant; skipping silent renewal`,{id:i}),null;let s=await v(e.fetchImpl),c=await u({tokenEndpoint:n.tokenEndpoint,clientId:e.auth.clientId,refreshToken:o,scope:e.auth.scope,fetchImpl:s});return await t({providerId:i,accessToken:c.accessToken,refreshToken:c.refreshToken??o,tokenExpiresAt:c.expiresAt,scopes:c.scope??a.scopes}),c.accessToken}catch(e){return p.warn(`MCP silent renewal failed`,{id:i,error:e instanceof Error?e.message:String(e)}),null}}}}function x(e){let t=h(e.name);if(_.has(t))return;let n=b(e);i(n),_.add(t),p.debug(`Registered MCP provider`,{id:t})}async function S(e,t={}){let n=h(e);if(_.has(n)&&o(n))return!0;if(!m())return!1;let r=await f(e);return r?(x({name:e,serverUrl:r.serverUrl,auth:r.auth,...t}),!0):!1}async function C(){if(!m())return[];let{readMcpAuthEntries:e}=await import(`./provider-store-access-kBtOqzc3.js`),t=await e(),n=[];for(let e of t)x({name:e.name,serverUrl:e.serverUrl,auth:e.auth}),n.push(h(e.name));return n}function w(e){let t=h(e);return _.delete(t),g.delete(t),a(t)}export{C as ensureAllMcpProvidersRegistered,S as ensureMcpProviderRegistered,x as registerMcpProvider,w as removeMcpProvider};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/fs-
|
|
2
|
-
import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{K as n,T as r,f as i}from"./account-store-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/fs-CB72Wfta.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/types-D8gIX-W-.js","assets/path-utils-DNJG-zQf.js","assets/bounded-walk-BjxKWNqp.js","assets/virtual-device-paths-D45tpPP6.js","assets/same-file-identity-DuEcSmPX.js","assets/mount-table-store-dY2IfQ5S.js","assets/proxied-fetch-DiXk_XGs.js","assets/base64-ELzoYfwP.js","assets/fetch-body-1l9I58Vk.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/oauth-service-_PUd0RqU.js","assets/panel-rpc-D3EPRnmw.js","assets/permissions-surface-registry-CilCRwhh.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{K as n,T as r,f as i}from"./account-store-BPOuwEUe.js";import{n as a}from"./float-topology-B0_dG7En.js";import{i as o}from"./providers-Dp-BrqwV.js";import{t as s}from"./global-db-CbuLl-zx.js";import{n as c,r as l,t as u}from"./bridge-token-required-DMk2va9k.js";import{n as d,r as f,t as p}from"./pkce-hGf_TEnP.js";import{t as m}from"./types-D8gIX-W-.js";var h=t(`mcp-store`),g=`/workspace/.mcp/servers.json`,_=1,v=null,y=null;async function b(){return v||=await e(()=>import(`./fs-CB72Wfta.js`).then(e=>e.t),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),v}async function x(e){if(e)return e;if(y&&y.dbName===`slicc-fs-global`)return y.instance;let{VirtualFS:t}=await b(),n=await t.create({dbName:s});return y={instance:n,dbName:s},n}function S(){return{version:_,servers:{}}}function C(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function w(e){if(!C(e))return null;let t={...e};return typeof t.url==`string`?(delete t.sessionId,t):null}function T(e){if(!C(e))return S();let t=e,n=typeof t.version==`number`?t.version:_,r={};if(C(t.servers))for(let[e,n]of Object.entries(t.servers)){let t=w(n);t&&(r[e]=t)}return{version:n,servers:r}}async function E(e){try{let t=await(await x(e)).readFile(g,{encoding:`utf-8`});try{return T(JSON.parse(t))}catch(e){return h.warn(`servers.json is not valid JSON; treating as empty`,{error:e instanceof Error?e.message:String(e)}),S()}}catch(e){if(e instanceof m&&e.code===`ENOENT`)return S();throw e}}async function D(e){return(await E(e)).servers}async function O(){let e=await D(),t=[];for(let[n,r]of Object.entries(e))!r?.url||!r.auth?.clientId||t.push({name:n,serverUrl:r.url,auth:r.auth});return t}var k=t(`mcp-oauth`);function A(e,t){let{discoveryPath:n,prmUrl:r,prmReason:i,asmUrl:a,asmReason:o}=t;if(!e)throw Error(n===`asm-origin-fallback`?`MCP OAuth discovery failed. PRM (${r}): ${i}. ASM fallback (${a}): ${o}.`:`ASM fetch failed: ${o} (${a})`);if(!(e.authorization_endpoint&&e.token_endpoint))throw Error(n===`asm-origin-fallback`?`MCP OAuth discovery failed. PRM (${r}): ${i}. ASM fallback (${a}) is missing required endpoints (authorization_endpoint, token_endpoint).`:`ASM at ${a} is missing required endpoints`)}async function j(e,t,n){let r=new URL(e).origin,i=t??`${r}/.well-known/oauth-protected-resource`,a=null,o=null;k.debug(`Fetching PRM`,{prmUrl:i});try{let e=await n(i,{headers:{Accept:`application/json`}});if(!e.ok)o=`${e.status} ${e.statusText}`;else{let t=await e.json();!t.authorization_servers||t.authorization_servers.length===0?o=`lists no authorization_servers`:a=t}}catch(e){o=e instanceof Error?e.message:String(e)}let s,c,l;a?.authorization_servers&&a.authorization_servers.length>0?(s=a.authorization_servers[0].replace(/\/+$/,``),c=`${s}/.well-known/oauth-authorization-server`,l=`prm`,k.debug(`Discovery via PRM`,{prmUrl:i,asmUrl:c})):(s=r,c=`${r}/.well-known/oauth-authorization-server`,l=`asm-origin-fallback`,k.debug(`PRM unavailable; falling back to ASM at server origin`,{prmUrl:i,prmReason:o,asmUrl:c}));let u=null,d=null;k.debug(`Fetching ASM`,{asmUrl:c});try{let e=await n(c,{headers:{Accept:`application/json`}});e.ok?u=await e.json():d=`${e.status} ${e.statusText}`}catch(e){d=e instanceof Error?e.message:String(e)}return A(u,{discoveryPath:l,prmUrl:i,prmReason:o,asmUrl:c,asmReason:d}),{issuer:u.issuer||s,authorizationEndpoint:u.authorization_endpoint,tokenEndpoint:u.token_endpoint,registrationEndpoint:u.registration_endpoint,supportedScopes:u.scopes_supported??a?.scopes_supported,codeChallengeMethods:u.code_challenge_methods_supported,grantTypes:u.grant_types_supported,discoveryPath:l}}function M(e){return!e||e.length===0||e.includes(`S256`)?`S256`:e.includes(`plain`)?`plain`:`S256`}async function N(e){let t=d();return e===`plain`?{codeVerifier:t,codeChallenge:t,method:e}:{codeVerifier:t,codeChallenge:await p(t),method:e}}function P(e){try{let t=new URL(e);return{code:t.searchParams.get(`code`),state:t.searchParams.get(`state`)}}catch{return{code:null,state:null}}}async function F(e){let t=await N(M(e.asMetadata.codeChallengeMethods)),n=f(),r=new URLSearchParams({response_type:`code`,client_id:e.clientId,redirect_uri:e.redirectUri,code_challenge:t.codeChallenge,code_challenge_method:t.method,state:n});e.scope&&r.set(`scope`,e.scope);let i=`${e.asMetadata.authorizationEndpoint}?${r.toString()}`,a=await e.launcher(i);if(!a)throw Error(`MCP OAuth flow cancelled or timed out`);let{code:o,state:s}=P(a);if(!o)throw Error("MCP OAuth redirect missing `code` parameter");if(s!==n)throw Error(`MCP OAuth state mismatch — possible CSRF`);return L({tokenEndpoint:e.asMetadata.tokenEndpoint,clientId:e.clientId,code:o,codeVerifier:t.codeVerifier,redirectUri:e.redirectUri,fetchImpl:e.fetchImpl})}function I(e){if(e.error||!e.access_token)throw Error(`Token endpoint error: ${e.error??`no_access_token`}${e.error_description?` — ${e.error_description}`:``}`);return{accessToken:e.access_token,refreshToken:e.refresh_token,expiresAt:e.expires_in?Date.now()+e.expires_in*1e3:void 0,scope:e.scope,tokenType:e.token_type}}async function L(e){let t=new URLSearchParams({grant_type:`authorization_code`,code:e.code,redirect_uri:e.redirectUri,client_id:e.clientId,code_verifier:e.codeVerifier}).toString(),n=await e.fetchImpl(e.tokenEndpoint,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:t}),r=await n.json();if(!n.ok&&!r.access_token)throw Error(`Token exchange failed: ${n.status} ${n.statusText}${r.error?` (${r.error})`:``}`);return I(r)}async function R(e){if(c())throw new u;let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e.refreshToken,client_id:e.clientId});e.scope&&t.set(`scope`,e.scope);let n=await e.fetchImpl(e.tokenEndpoint,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:t.toString()}),r=await n.json();if(l(n.status,JSON.stringify(r)))throw new u;if(!n.ok&&!r.access_token)throw Error(`Token refresh failed: ${n.status} ${n.statusText}${r.error?` (${r.error})`:``}`);return I(r)}var z=`/auth/mcp-callback`;async function B(t){if(t===`extension-direct`){let e=chrome;return e.identity?.getRedirectURL?.(`mcp-callback`)??`https://${e.runtime?.id??``}.chromiumapp.org/mcp-callback`}if(t===`node-rest`){let{getLocalApiBaseUrl:t}=await e(async()=>{let{getLocalApiBaseUrl:e}=await import(`./proxied-fetch-DiXk_XGs.js`).then(e=>e.i);return{getLocalApiBaseUrl:e}},__vite__mapDeps([10,1,2,11,12,13,14])),n=t();if(n)return`${n}/auth/callback`}let{getOAuthPageOrigin:n}=await e(async()=>{let{getOAuthPageOrigin:e}=await import(`./oauth-service-_PUd0RqU.js`);return{getOAuthPageOrigin:e}},__vite__mapDeps([15,2,10,1,11,12,13,14,16,17])),{origin:r}=await n();return`${r}${t===`extension-delegate`?z:`/auth/callback`}`}var V=t(`mcp-provider`),H=`mcp:`;function U(){return typeof globalThis<`u`&&globalThis.indexedDB!==void 0}function W(e){return`${H}${e}`}var G=new Map,K=new Set;async function q(t){if(t)return t;let{createProxiedFetch:n}=await e(async()=>{let{createProxiedFetch:e}=await import(`./proxied-fetch-DiXk_XGs.js`).then(e=>e.i);return{createProxiedFetch:e}},__vite__mapDeps([10,1,2,11,12,13,14])),r=n();return async(e,t)=>{let n=await r(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(n.body);return{ok:n.status>=200&&n.status<300,status:n.status,statusText:n.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>n.headers[e.toLowerCase()]??null}}}}async function J(e){let t=G.get(W(e.name));if(t)return t;let n=await q(e.fetchImpl),r=await j(e.serverUrl,void 0,n);return G.set(W(e.name),r),r}function Y(e){let t=W(e.name),o=(()=>{try{return new URL(e.serverUrl).host}catch{return``}})();return{id:t,name:`MCP: ${e.name}`,description:`MCP server at ${e.serverUrl}`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:o?[o]:[],getModelIds:()=>[],onOAuthLogin:async(r,i)=>{let o=e.launcher??r,s=await q(e.fetchImpl),c=await F({asMetadata:await J(e),clientId:e.auth.clientId,scope:e.auth.scope,redirectUri:e.auth.redirectUri??await B(a()),launcher:o,fetchImpl:s});await n({providerId:t,accessToken:c.accessToken,refreshToken:c.refreshToken,tokenExpiresAt:c.expiresAt,scopes:c.scope}),i()},onSilentRenew:async()=>{if(!r(t))return null;let a=i().find(e=>e.providerId===t),o=a?.refreshToken;if(!o)return V.info(`No refresh token for MCP provider, skipping silent renewal`,{id:t}),null;try{let r=await J(e),i=r.grantTypes??[];if(i.length>0&&!i.includes(`refresh_token`))return V.info(`AS does not advertise refresh_token grant; skipping silent renewal`,{id:t}),null;let s=await q(e.fetchImpl),c=await R({tokenEndpoint:r.tokenEndpoint,clientId:e.auth.clientId,refreshToken:o,scope:e.auth.scope,fetchImpl:s});return await n({providerId:t,accessToken:c.accessToken,refreshToken:c.refreshToken??o,tokenExpiresAt:c.expiresAt,scopes:c.scope??a.scopes}),c.accessToken}catch(e){return V.warn(`MCP silent renewal failed`,{id:t,error:e instanceof Error?e.message:String(e)}),null}}}}function X(e){let t=W(e.name);if(K.has(t))return;let n=Y(e);o(n),K.add(t),V.debug(`Registered MCP provider`,{id:t})}async function Z(){if(!U())return[];let{readMcpAuthEntries:t}=await e(async()=>{let{readMcpAuthEntries:e}=await import(`./provider-store-access-BLTrDV2N.js`);return{readMcpAuthEntries:e}},[]),n=await t(),r=[];for(let e of n)X({name:e.name,serverUrl:e.serverUrl,auth:e.auth}),r.push(W(e.name));return r}export{Z as ensureAllMcpProvidersRegistered,O as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./logger-LESFN7Hj.js";import"./account-store-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./logger-LESFN7Hj.js";import"./account-store-DCNh6_f3.js";import"./core-VO3EvqHP.js";import"./tray-runtime-config-CTm013-K.js";var n=e({copyTextToClipboard:()=>r});async function r(e){if(!e)return!1;if(typeof navigator<`u`&&navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}if(typeof document>`u`)return!1;try{let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.cssText=`position:fixed; opacity:0; pointer-events:none; left:-9999px;`,document.body.appendChild(t),t.select();let n=document.execCommand?.(`copy`)??!1;return document.body.removeChild(t),n}catch{return!1}}t(`provider-settings`);export{n as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./provider-okk2DhJ-.js";export{e as readMcpAuthEntries};
|