sliccy 6.238.2 → 6.238.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ui/.vite/manifest.json +181 -181
- package/dist/ui/assets/{account-store-CLw42Fru.js → account-store-BhO6674m.js} +1 -1
- package/dist/ui/assets/{account-store-31cxummp.js → account-store-F-Mv2jhq.js} +1 -1
- package/dist/ui/assets/{adobe-BAOdeR6A.js → adobe-BWfwqCCE.js} +1 -1
- package/dist/ui/assets/{adobe-pjfER-WX.js → adobe-CE013Yh9.js} +1 -1
- package/dist/ui/assets/{agent-panels-ClWyfRiy.js → agent-panels-C240XnE3.js} +1 -1
- package/dist/ui/assets/{almost-bash-shell-headless-HcCFdtfi.js → almost-bash-shell-headless-fNurv5o-.js} +12 -12
- package/dist/ui/assets/{apply-layout-DtU7s70A.js → apply-layout-CG2JIbac.js} +1 -1
- package/dist/ui/assets/{azure-openai-16OjK7MW.js → azure-openai-B9OavxYe.js} +1 -1
- package/dist/ui/assets/{azure-openai-2TldVerJ.js → azure-openai-UFY55YAj.js} +1 -1
- package/dist/ui/assets/{cdp-PMwUQne0.js → cdp-C5t7mXZM.js} +1 -1
- package/dist/ui/assets/{cerebras-CZvVC6ct.js → cerebras-DEpuGzBa.js} +1 -1
- package/dist/ui/assets/{cerebras-Q_C5CmzI.js → cerebras-DUuctPCJ.js} +1 -1
- package/dist/ui/assets/{composer-speech-B0V8REcq.js → composer-speech-DIMNgZ8b.js} +1 -1
- package/dist/ui/assets/{connect-surface-BGMEPn4t.js → connect-surface-dcUS4HJr.js} +1 -1
- package/dist/ui/assets/{directed-approval-pLlyTlwa.js → directed-approval-DIDc_c7s.js} +1 -1
- package/dist/ui/assets/{emscripten-vfs-hook-H9599noy.js → emscripten-vfs-hook-BYfEuG6F.js} +1 -1
- package/dist/ui/assets/{frozen-archive-writer-YfpsS6Au.js → frozen-archive-writer-KX98l5_f.js} +1 -1
- package/dist/ui/assets/{gelatiere-unit-DoZciEc0.js → gelatiere-unit-DnZDIKOI.js} +1 -1
- package/dist/ui/assets/{github-C0JkJ4-X.js → github-BhlOSAvj.js} +1 -1
- package/dist/ui/assets/{github-B0GZ69T6.js → github-DWRV441E.js} +1 -1
- package/dist/ui/assets/{github-copilot-6zjU0UsW.js → github-copilot-B1amr7M3.js} +1 -1
- package/dist/ui/assets/{github-copilot-DbVywZN-.js → github-copilot-BEaNIiC_.js} +1 -1
- package/dist/ui/assets/{hear-PNcT_h1V.js → hear-DW8pY4Og.js} +1 -1
- package/dist/ui/assets/{js-realm-worker-DPtEPsQE.js → js-realm-worker-ChqOTHDg.js} +2 -2
- package/dist/ui/assets/{jsh-executor-qcdlZs_U.js → jsh-executor-Nk8jkXdD.js} +2 -2
- package/dist/ui/assets/{kernel-worker-CkGJtXT8.js → kernel-worker-C9FIXco3.js} +8 -8
- package/dist/ui/assets/{lick-ws-bridge-BRyT27BZ.js → lick-ws-bridge-C6wgcXz-.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-DCphRN_U.js → lick-ws-bridge-D7fhjL45.js} +1 -1
- package/dist/ui/assets/{live-session-curation-NUhwcw--.js → live-session-curation-BPTgFkXk.js} +1 -1
- package/dist/ui/assets/{live-session-snapshot-BeRCm1Nl.js → live-session-snapshot-wiiUBO2R.js} +1 -1
- package/dist/ui/assets/{local-llm-CtOUVB_I.js → local-llm-BMH9xa1Q.js} +1 -1
- package/dist/ui/assets/{local-llm-BXkyCJ_z.js → local-llm-CKMK56hC.js} +1 -1
- package/dist/ui/assets/{main-Dz8oxllC.js → main-BGJNaIvk.js} +3 -3
- package/dist/ui/assets/{main-cherry-BIyXJ_3M.js → main-cherry-BVKRIIZI.js} +1 -1
- package/dist/ui/assets/{mcp-command-DFAER6FF.js → mcp-command-SRT8kl-t.js} +9 -9
- package/dist/ui/assets/{memory-curation-seam-DbGKr9Qe.js → memory-curation-seam-PauQFLC2.js} +1 -1
- package/dist/ui/assets/{memory-health-DhHUtC2W.js → memory-health-C_suAQsM.js} +1 -1
- package/dist/ui/assets/{memory-write-execute-CBCk5a7F.js → memory-write-execute-Dd_ETRGd.js} +1 -1
- package/dist/ui/assets/{merge-folded-cost-into-frozen-Dw-_UA2z.js → merge-folded-cost-into-frozen-B-Ey-QBw.js} +1 -1
- package/dist/ui/assets/{new-session-BUSZCuxQ.js → new-session-BypOt4eg.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-D8AxQ1UY.js → oauth-bootstrap-BqT_OsrW.js} +2 -2
- package/dist/ui/assets/{onboarding-orchestrator-DLdo_5OL.js → onboarding-orchestrator-BqTIhk88.js} +1 -1
- package/dist/ui/assets/{openai-codex-C6EGG09A.js → openai-codex-CQzDcCY4.js} +1 -1
- package/dist/ui/assets/{openai-codex-BWfnGR1c.js → openai-codex-CvFHEMdp.js} +1 -1
- package/dist/ui/assets/{openrouter-Cd4M2AC9.js → openrouter-AXu_70vQ.js} +1 -1
- package/dist/ui/assets/{openrouter-free-P0Xql0dR.js → openrouter-free-B0hfVxSO.js} +1 -1
- package/dist/ui/assets/{openrouter-free-CWrvYeNH.js → openrouter-free-BPs2Hwkp.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-DhzFBQj1.js → openrouter-oauth-C8VmQkUe.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-CpETMetI.js → openrouter-oauth-nB_7sggI.js} +1 -1
- package/dist/ui/assets/{openrouter-Cnz8aWy1.js → openrouter-pF01SNjT.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-2KrUyWoh.js → panel-rpc-handlers-BR6JZT2o.js} +2 -2
- package/dist/ui/assets/{panelize-shell-BDbzN4ZN.js → panelize-shell-Dgi-F-xl.js} +1 -1
- package/dist/ui/assets/{pi-edit-execution-DruO8N4U.js → pi-edit-execution-DbB2FUoo.js} +1 -1
- package/dist/ui/assets/{provider-C-FUejo2.js → provider-Cs2AjgyG.js} +1 -1
- package/dist/ui/assets/{provider-DqpPcXNC.js → provider-Ddhs0GZ1.js} +1 -1
- package/dist/ui/assets/{provider-settings-BvpuRRhI.js → provider-settings-C-f_poxs.js} +1 -1
- package/dist/ui/assets/provider-store-access-C-932Vdq.js +1 -0
- package/dist/ui/assets/provider-store-access-CL9hj3st.js +1 -0
- package/dist/ui/assets/{providers-jD6rCt0u.js → providers-CbNoKGkZ.js} +2 -2
- package/dist/ui/assets/{providers-00axKtF9.js → providers-D7ZRGs5H.js} +1 -1
- package/dist/ui/assets/{quick-llm-Cx7uDkYg.js → quick-llm-BHbNmwsM.js} +1 -1
- package/dist/ui/assets/{realm-inprocess-dFpgqzhW.js → realm-inprocess-Dol531a-.js} +2 -2
- package/dist/ui/assets/{realm-unhandled-rejections-Blp7ZN8C.js → realm-unhandled-rejections-Dahg__vS.js} +1 -1
- package/dist/ui/assets/{realm-unhandled-rejections-DtlG5cWZ.js → realm-unhandled-rejections-DqrD9Dhk.js} +1 -1
- package/dist/ui/assets/{recovery-screen-CBqYteQO.js → recovery-screen-DJGj-P_1.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-X7kW2LxE.js → remote-terminal-view-BJptzWf8.js} +2 -2
- package/dist/ui/assets/{restore-BqarpWVq.js → restore-jODnFWpD.js} +1 -1
- package/dist/ui/assets/{run-CcKwxzLY.js → run-B9vQKnCv.js} +1 -1
- package/dist/ui/assets/{run-BL31T-_Z.js → run-CMLNX44D.js} +2 -2
- package/dist/ui/assets/{run-l4-ivwOu.js → run-DZs1EoVO.js} +1 -1
- package/dist/ui/assets/{run-DvuN8Fn9.js → run-DdLkDnJp.js} +2 -2
- package/dist/ui/assets/{session-command-memory-_ama7cso.js → session-command-memory-DzvkhPn3.js} +2 -2
- package/dist/ui/assets/{session-jsonl-CXVf4Wha.js → session-jsonl-BisYVOVY.js} +1 -1
- package/dist/ui/assets/{session-jsonl-deH2Aa3g.js → session-jsonl-ClZrfQ5n.js} +1 -1
- package/dist/ui/assets/{session-search-index-DF1RrbAV.js → session-search-index-CcPieQPO.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-DVMDmUlc.js → setup-feature-flags-remote-DUTUiYaF.js} +1 -1
- package/dist/ui/assets/{setup-model-catalog-spckEhB7.js → setup-model-catalog-Btxd2xbe.js} +1 -1
- package/dist/ui/assets/{silent-renew-backoff-cI7-L6ZH.js → silent-renew-backoff-CsmMO-v2.js} +1 -1
- package/dist/ui/assets/slicc-version-CxZE3zd0.js +1 -0
- package/dist/ui/assets/{soundscape-BiMkGsdL.js → soundscape-CwC7Jo-x.js} +1 -1
- package/dist/ui/assets/{speak-4zKEV89Z.js → speak-C0ZYWOtd.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-fCGR1PM3.js → sprinkle-manager-VQKpIY-D.js} +1 -1
- package/dist/ui/assets/{sprinkle-renderer-Dz9sFggb.js → sprinkle-renderer-B3YXboLF.js} +1 -1
- package/dist/ui/assets/{sudo-DIy3Tv_K.js → sudo-Dja73IBO.js} +1 -1
- package/dist/ui/assets/{supervisor-jHdimydd.js → supervisor-DvJnzQOn.js} +1 -1
- package/dist/ui/assets/{sync-dialog-DRMVOJG5.js → sync-dialog-DIYUfjYC.js} +1 -1
- package/dist/ui/assets/{transformers-env-x-PCt3wI.js → transformers-env-vSfAUkXl.js} +1 -1
- package/dist/ui/assets/{tray-leader-C5LqCGmj.js → tray-leader-0DWnRMH6.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-BlIyiXG2.js → tray-leave-runtime-BDN_wBKO.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-B-QapNna.js → tray-sidecar-KEglZXNy.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-CJITafNt.js → upgrade-detection-sgCt6Y2B.js} +1 -1
- package/dist/ui/assets/{voice-reply-Cd-5pJIs.js → voice-reply-pl35vHvG.js} +1 -1
- package/dist/ui/assets/{wc-attach-CC-5pK7A.js → wc-attach-C6xmM0YA.js} +2 -2
- package/dist/ui/assets/{wc-browser-Db8oxDQT.js → wc-browser-DIHxk00d.js} +1 -1
- package/dist/ui/assets/{wc-computers-CZPS1Eh7.js → wc-computers-fuajFzUa.js} +1 -1
- package/dist/ui/assets/{wc-detached-DWYp5wAP.js → wc-detached-DDIgzLAx.js} +1 -1
- package/dist/ui/assets/{wc-extension-5IglZTwJ.js → wc-extension-DEkff_Zb.js} +2 -2
- package/dist/ui/assets/{wc-follower-9iDYp3OE.js → wc-follower-CA57KPvG.js} +3 -3
- package/dist/ui/assets/{wc-follower-oauth-QbGGYO0B.js → wc-follower-oauth-c9U4xcHo.js} +1 -1
- package/dist/ui/assets/{wc-gelatiere-BjdhvBxs.js → wc-gelatiere-B0q3o-5d.js} +1 -1
- package/dist/ui/assets/{wc-live-BFxhQ5Xo.js → wc-live-zDl8eb1m.js} +5 -5
- package/dist/ui/assets/{wc-nav-DLvCv4mT.js → wc-nav-CDTd8c_C.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-CJR0jxsa.js → wc-onboarding-Pi4eCu42.js} +2 -2
- package/dist/ui/assets/{wc-permissions-osnYtYLb.js → wc-permissions-C_kUk8Qh.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-C4ikML_h.js → wc-placeholder-C25x-Mjy.js} +3 -3
- package/dist/ui/assets/{wc-secret-request-B3lpntmP.js → wc-secret-request-BHQVwsul.js} +1 -1
- package/dist/ui/assets/{wc-settings-C4ZOprvY.js → wc-settings-CrrXcFxH.js} +3 -3
- package/dist/ui/assets/{wc-shell-Cx3tnmkh.js → wc-shell-aFXmYz5Q.js} +3 -3
- package/dist/ui/assets/{wc-shortcut-config-Cs8WeBXf.js → wc-shortcut-config-C_dmx5Wl.js} +1 -1
- package/dist/ui/assets/{wc-sprinkles-DGi3j1Ev.js → wc-sprinkles-X6XXwEad.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-Uk4DpVPz.js → wc-transcript-export-BAbfXxjP.js} +2 -2
- package/dist/ui/assets/{wc-tray-DselVbJr.js → wc-tray-BhHgS0qt.js} +4 -4
- package/dist/ui/assets/welcome-detection-BxzeCfVu.js +1 -0
- package/dist/ui/assets/{whisper-session-BtQ1Vj74.js → whisper-session-an9QTEOa.js} +2 -2
- package/dist/ui/assets/{xai-grok-BYbyfA0E.js → xai-grok-CaZdHe80.js} +1 -1
- package/dist/ui/assets/{xai-grok-0uY_cbQl.js → xai-grok-DKGNxpCm.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/ui/packages/webapp/index.html +3 -3
- package/package.json +1 -1
- package/dist/ui/assets/provider-store-access-CTsEO0b_.js +0 -1
- package/dist/ui/assets/provider-store-access-DXdBN4uE.js +0 -1
- package/dist/ui/assets/slicc-version-CnSXxWG8.js +0 -1
- package/dist/ui/assets/welcome-detection-CN0SSbnT.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import{r as t,t as n}from"./base64-BPBW1Gzr.js";import{n as r}from"./bridge-protocol-31SWTdS5.js";import{a as i,n as a,o,s,t as c}from"./handoff-link-B3It6xQY.js";import{C as l,d as u,f as d,i as f,u as p}from"./account-store-CLw42Fru.js";import{c as m,d as h,n as g,r as _,s as v}from"./proxied-fetch-F-dCBEfh.js";import{t as ee}from"./sha256-DynDhwRL.js";import{t as te}from"./runtime-env-DadgceZk.js";import{t as ne}from"./slugify-BYJ6QVAt.js";import{i as re,n as ie,r as ae,t as oe}from"./host-command-CvUauhDf.js";import{a as se,c as ce,d as y,f as le,i as ue,l as de,m as fe,n as pe,o as me,p as he,r as ge,s as _e,t as ve,u as ye}from"./snapshot-HHgn9isb.js";import{n as be,t as b}from"./panel-rpc-accessor-B4BfPLSo.js";import{a as xe,c as Se,n as Ce,o as we,s as Te,t as Ee}from"./feature-flags-QlgHaQc1.js";import{t as De}from"./providers-00axKtF9.js";import{r as Oe}from"./binary-cache-bSOhqXB1.js";import{i as ke,n as Ae,r as je}from"./fetch-body-CuwTaJC_.js";import{s as Me,t as Ne}from"./api-endpoint-D8lUKmPu.js";import{t as Pe}from"./compat-nGhSz-U1.js";import"./core-C1m4D34S.js";import{n as Fe,t as Ie}from"./mime-types-D7IV6i7k.js";import{n as Le,t as Re}from"./float-topology-COIC4j_U.js";import{t as ze}from"./secrets-bridge-client-GOCzDscb.js";import{a as Be,i as Ve,n as He,r as Ue}from"./tool-ui-DRnUkp2g.js";import{a as We,i as Ge,n as x,t as S}from"./path-utils-DNJG-zQf.js";import{n as Ke,r as qe,t as Je}from"./merge-file-core-VJlzucJY.js";import{n as Ye,t as Xe}from"./types-D8gIX-W-.js";import{i as Ze}from"./mount-index-CQfmUPuZ.js";import{a as Qe,i as $e,n as et,o as tt,s as nt,t as rt}from"./signed-fetch-DeDG40wV.js";import{o as it}from"./mount-table-store-DrF_Ifaz.js";import{t as at}from"./remote-cache-UwMD8EkX.js";import{n as ot}from"./fs-D_cFUSir.js";import{a as st}from"./tray-leader-status-CpkFr6n7.js";import{n as ct,t as lt}from"./slicc-version-CnSXxWG8.js";import{a as ut,i as dt,o as ft,r as C,t as pt}from"./browser-CGX7MbCQ.js";import{t as w}from"./subcommand-flags-BZi7j78Q.js";import{n as mt,r as ht,t as T}from"./subcommand-help-CgO7wRS5.js";import{n as gt}from"./cost-command-TMcbUPyN.js";import{d as _t,g as vt,i as yt,n as bt,o as xt}from"./sudoers-BdBYQPUn.js";import{t as St}from"./sudo-refusal-DVwTXFRE.js";import{n as Ct}from"./types-Dj5TU-Qg.js";import{a as wt,c as Tt,i as Et,l as Dt,n as Ot,o as kt,r as At,t as jt}from"./types-JfhqX7lD.js";import{n as E,t as Mt}from"./boundary-DjgipyWT.js";import"./rest-paths-Dia19u9P.js";import{t as Nt}from"./html-B_Hg2WOy.js";import{n as Pt}from"./llm-session-id-CKpY5F_-.js";import{t as Ft}from"./src-CUSndb9K.js";import{i as It,o as Lt}from"./browser-DuyhpHbR.js";import{a as Rt,c as zt,i as Bt,n as Vt,o as Ht,s as Ut,t as Wt}from"./pipe-status-BBrT3VeG.js";import{i as Gt,r as Kt,t as qt}from"./mount-picker-popup-BMils9JY.js";import{t as Jt}from"./buffer-B5d1xHaH.js";import"./buffer-polyfill-BwLbCySD.js";import{A as Yt,B as D,C as Xt,D as O,E as Zt,F as Qt,G as $t,H as k,I as A,J as en,K as tn,L as nn,M as rn,N as an,O as on,P as sn,R as cn,S as ln,T as un,U as dn,V as fn,W as pn,Y as mn,_ as hn,a as gn,b as _n,c as vn,d as yn,f as bn,g as xn,h as Sn,i as Cn,j as wn,k as Tn,l as En,m as Dn,n as On,o as kn,p as j,q as An,r as jn,s as Mn,t as Nn,u as Pn,v as Fn,w as In,x as Ln,y as Rn,z as zn}from"./isomorphic-git-r9mnHMnp.js";import"./global-db-DJXlpNui.js";import{C as Bn,S as M,a as Vn,b as Hn,c as Un,d as Wn,f as Gn,g as Kn,i as qn,l as Jn,m as Yn,n as Xn,o as Zn,p as Qn,r as $n,s as er,t as tr,u as nr,x as rr,y as N}from"./state-Dx_7TiP6.js";import{a as ir,i as ar,r as or,t as sr}from"./git-config-Bdgu8kD2.js";import{a as P,i as cr,r as lr,t as ur}from"./just-bash-compat-B-SPHuh_.js";import{h as dr,i as fr,r as pr}from"./stdio-tty-CipJs8Mm.js";import{i as mr,r as hr}from"./global-prefix-DqCuANmV.js";import{t as gr}from"./wasm-programs-Bd5YaoqY.js";import{a as _r,n as vr,o as yr,r as br,s as xr}from"./jsh-discovery-CnvNKojr.js";import{C as Sr,a as Cr,b as wr,c as Tr,d as Er,f as Dr,h as Or,i as kr,l as Ar,m as jr,n as Mr,o as Nr,p as Pr,r as Fr,s as Ir,t as F,u as Lr,v as Rr,y as zr}from"./shared-D-ZRFYou.js";import{_ as Br,a as Vr,b as Hr,d as Ur,f as Wr,g as Gr,h as Kr,i as qr,l as Jr,m as Yr,p as Xr,r as Zr,s as Qr,u as $r,v as ei,y as ti}from"./require-guards-dUdxJmkR.js";import{_ as ni,a as ri,b as ii,c as ai,d as oi,f as si,g as ci,h as li,l as ui,m as di,n as fi,p as pi,s as mi,t as hi,u as gi,v as _i,x as vi,y as yi}from"./jsh-executor-qcdlZs_U.js";import{n as bi,t as xi}from"./esbuild-wasm-DeTghvWH.js";import{n as Si}from"./wasm-compiler-Ct7QZURL.js";import{a as Ci,o as wi,s as Ti,t as Ei}from"./usb-device-registry-DFzxaOky.js";import{i as Di,r as Oi,t as ki}from"./script-catalog-D5joO5l7.js";import{a as Ai,c as ji,o as Mi,s as Ni,t as Pi}from"./types-Dzr0qYl3.js";import{a as Fi,c as Ii,d as Li,f as Ri,n as zi,r as Bi,u as Vi}from"./github-zip-CMSbKC3q.js";import{i as Hi,t as Ui}from"./github-auth-D-_-pCrt.js";import{a as Wi,i as Gi,o as Ki,r as qi,t as Ji}from"./provenance-DdmsQ3Nr.js";import{a as Yi,c as Xi,i as Zi,n as Qi,o as $i,r as ea,s as ta}from"./github-install-NHKpL-_w.js";import{n as na,t as ra}from"./magick-wasm-BbnwhVj1.js";import{i as ia,n as aa,r as oa,t as sa}from"./pdf-raster-BWk6ezTX.js";import{n as ca}from"./lick-target-env-8JxfVcIV.js";import{t as la}from"./tmpdir-env-ate4iNcK.js";import{n as ua,t as da}from"./keyboard-TcuVIW9F.js";import{n as fa,t as pa}from"./hf-defaults-BwJdGLgk.js";import{t as ma}from"./ffmpeg-wasm-sx-3yVAE.js";import{t as ha}from"./local-llm-CtOUVB_I.js";import{i as ga,n as _a,r as va,t as ya}from"./tar-BWIPCxI2.js";import{a as ba,c as xa,i as Sa,o as Ca,r as wa,s as Ta}from"./v86-vm-DCm7zA2r.js";import{n as Ea,r as Da}from"./lick-urls-CgPiVwD-.js";let Oa=null;function ka(e){Oa=e!==null&&Number.isFinite(e)&&e>0?e:null}function Aa(){if(Oa!==null)return Oa;let e=globalThis.performance?.timeOrigin;return typeof e==`number`&&Number.isFinite(e)&&e>0?e:Date.now()}new URL(r).hostname;const ja=/^([0-9a-f]{32})--(?:[0-9a-f]{8}-)?([0-9a-f]+)$/i;function Ma(e){let t;try{t=new URL(e.includes(`://`)?e:`https://${e}`).hostname}catch{return null}let n=ja.exec(t.split(`.`)[0]??``);if(!n||!t.includes(`.`))return null;let r=n[1].toLowerCase();return`${[r.slice(0,8),r.slice(8,12),r.slice(12,16),r.slice(16,20),r.slice(20)].join(`-`)}.${n[2].toLowerCase()}`}[`ghp_`,`gho_`,`ghu_`,`ghs_`,`ghr_`,`github_pat_`,`sk-`,`pk-`,`xoxb-`,`xoxp-`,`xoxa-`,`xoxs-`,`AKIA`,`ABIA`,`ACCA`,`ASIA`,`sk-ant-`,`Bearer `].sort((e,t)=>t.length-e.length);function Na(e,t){let n=e.toLowerCase(),r=t.toLowerCase();if(n===`*`)return!0;if(!n.startsWith(`*.`))return n===r;let i=n.slice(1);return r.length>i.length&&r.endsWith(i)}function Pa(e,t){return e.some(e=>Na(e,t))}const Fa=`slicc-transcript`,Ia=[`canonical-agent-history-unavailable`,`tool-data-may-be-truncated`,`model-metadata-unavailable`,`scoop-history-unavailable`,`attachment-file-missing`,`attachment-association-unavailable`,`complete-snapshot-unavailable`],La=new Set(`/export/format./export/producer/application./session/id./session/state./session/completeness/status./session/completeness/missing/*./conversations/*/id./conversations/*/kind./conversations/*/parentConversationId./conversations/*/messages/*/id./conversations/*/messages/*/role./conversations/*/messages/*/timestamp./conversations/*/messages/*/toolCallId./conversations/*/messages/*/content/*/type./conversations/*/messages/*/content/*/id./conversations/*/messages/*/content/*/name./conversations/*/messages/*/content/*/attachmentId./delegations/*/sourceConversationId./delegations/*/targetConversationId./delegations/*/toolCallId./attachments/*/id./attachments/*/path./attachments/*/sha256./attachments/*/sourceConversationId./attachments/*/sourceMessageId./attachments/*/handling./attachments/*/missingReason`.split(`.`));function Ra(e){return La.has(e.replace(/\/\d+(?=\/|$)/g,`/*`))}var za=class extends Error{code;detail;constructor(e,t){super(t?`${e}: ${t}`:e),this.code=e,this.detail=t,this.name=`TranscriptExportError`}};const Ba=new Set(Ia),Va=/^[0-9a-fA-F]{64}$/,Ha=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/;function I(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ua(e){return typeof e==`string`&&Va.test(e)}function Wa(e){return Ha.test(e)&&Number.isFinite(Date.parse(e))}function Ga(e,t){let n=t.map(e=>`"${e}"`),r=n[n.length-1];return n.length===2?`${e} must be ${n[0]} or ${r}`:`${e} must be ${n.slice(0,-1).join(`, `)}, or ${r}`}function Ka(e,t,n){return typeof e!=`string`||!t.includes(e)?{ok:!1,error:Ga(n,t)}:{ok:!0}}function qa(e,t,n){for(let r=0;r<e.length;r++){let i=t(e[r],`${n}[${r}]`);if(!i.ok)return i}return{ok:!0}}function Ja(e,t){let n=e.type;if(n===`text`){if(typeof e.text!=`string`)return{ok:!1,error:`${t}.text must be a string`}}else if(n===`tool-call`){if(typeof e.id!=`string`||e.id===``)return{ok:!1,error:`${t}.id must be a non-empty string`};if(typeof e.name!=`string`||e.name===``)return{ok:!1,error:`${t}.name must be a non-empty string`};if(!(`input`in e))return{ok:!1,error:`${t}.input must be present`}}else if(typeof e.attachmentId!=`string`||e.attachmentId===``)return{ok:!1,error:`${t}.attachmentId must be a non-empty string`};return{ok:!0}}function Ya(e,t){if(!I(e))return{ok:!1,error:`${t} must be a non-null object`};let n=Ka(e.type,[`text`,`tool-call`,`attachment-ref`],`${t}.type`);return n.ok?Ja(e,t):n}function Xa(e,t){for(let n of[`input`,`output`,`cacheRead`,`cacheWrite`,`totalTokens`]){let r=e[n];if(typeof r!=`number`)return{ok:!1,error:`${t}.${n} must be a number`};if(!Number.isInteger(r)||r<0)return{ok:!1,error:`${t}.${n} must be a non-negative integer`}}return{ok:!0}}function Za(e,t){for(let n of[`input`,`output`,`cacheRead`,`cacheWrite`,`total`]){let r=e[n];if(typeof r!=`number`)return{ok:!1,error:`${t}.${n} must be a number`};if(!Number.isFinite(r)||r<0)return{ok:!1,error:`${t}.${n} must be a finite non-negative number`}}return{ok:!0}}function Qa(e,t){let n=Xa(e,t);if(!n.ok)return n;let r=e.cost;return I(r)?Za(r,`${t}.cost`):{ok:!1,error:`${t}.cost must be a non-null object`}}function $a(e,t){if(typeof e.id!=`string`)return{ok:!1,error:`${t}.id must be a string`};if(typeof e.sequence!=`number`)return{ok:!1,error:`${t}.sequence must be a number`};let n=e.sequence;return!Number.isInteger(n)||n<1?{ok:!1,error:`${t}.sequence must be a positive integer`}:typeof e.timestamp==`string`?Wa(e.timestamp)?{ok:!0}:{ok:!1,error:`${t}.timestamp must be a valid ISO 8601 date-time string`}:{ok:!1,error:`${t}.timestamp must be a string`}}function eo(e,t){let n=e.toolCallId;return typeof n!=`string`||n===``?{ok:!1,error:`${t}.toolCallId must be a non-empty string for tool-result messages`}:{ok:!0}}function to(e,t){let n=e.usage;return n===void 0?{ok:!0}:I(n)?Qa(n,`${t}.usage`):{ok:!1,error:`${t}.usage must be a non-null object`}}function no(e,t){if(!I(e))return{ok:!1,error:`${t} must be a non-null object`};let n=Ka(e.role,[`user`,`assistant`,`tool-result`],`${t}.role`);if(!n.ok)return n;if(e.role===`tool-result`){let n=eo(e,t);if(!n.ok)return n}let r=$a(e,t);if(!r.ok)return r;let i=e.content;if(!Array.isArray(i))return{ok:!1,error:`${t}.content must be an array`};let a=qa(i,Ya,`${t}.content`);return a.ok?to(e,t):a}function ro(e,t){if(!I(e))return{ok:!1,error:`${t} must be a non-null object`};if(typeof e.id!=`string`)return{ok:!1,error:`${t}.id must be a string`};if(typeof e.name!=`string`)return{ok:!1,error:`${t}.name must be a string`};let n=Ka(e.kind,[`cone`,`scoop`],`${t}.kind`);if(!n.ok)return n;let r=e.messages;return Array.isArray(r)?qa(r,no,`${t}.messages`):{ok:!1,error:`${t}.messages must be an array`}}function io(e,t){for(let n of[`id`,`path`,`originalName`,`mimeType`,`sha256`,`sourceConversationId`,`sourceMessageId`])if(typeof e[n]!=`string`)return{ok:!1,error:`${t}.${n} must be a string`};return{ok:!0}}function ao(e,t){let n=e.path,r=e.sha256,i=e.byteLength;return n===``?{ok:!1,error:`${t}.path must be non-empty when present`}:Ua(r)?!Number.isInteger(i)||i<0?{ok:!1,error:`${t}.byteLength must be a non-negative integer when present`}:e.missingReason===void 0?{ok:!0}:{ok:!1,error:`${t}.missingReason must be absent when present is true`}:{ok:!1,error:`${t}.sha256 must be a 64-char hex string when present`}}const oo=[`attachment-file-missing`,`attachment-association-unavailable`];function so(e,t){let n=e.path,r=e.sha256,i=e.byteLength;return n===``?r===``?i===0?Ka(e.missingReason,oo,`${t}.missingReason`):{ok:!1,error:`${t}.byteLength must be zero when not present`}:{ok:!1,error:`${t}.sha256 must be empty when not present`}:{ok:!1,error:`${t}.path must be empty when not present`}}function co(e,t){return e.present?ao(e,t):so(e,t)}function lo(e,t){if(!I(e))return{ok:!1,error:`${t} must be a non-null object`};let n=io(e,t);if(!n.ok)return n;if(typeof e.byteLength!=`number`)return{ok:!1,error:`${t}.byteLength must be a number`};if(typeof e.present!=`boolean`)return{ok:!1,error:`${t}.present must be a boolean`};let r=Ka(e.handling,[`text-redacted`,`binary-unchanged`],`${t}.handling`);return r.ok?co(e,t):r}function uo(e,t){let n=Ka(e.kind,[`json`,`attachment`],`${t}.kind`);if(!n.ok)return n;if(e.kind===`json`){if(typeof e.pointer!=`string`)return{ok:!1,error:`${t}.pointer must be a string`};let n=e.pointer;if(n!==``&&!n.startsWith(`/`))return{ok:!1,error:`${t}.pointer must be a valid RFC 6901 JSON pointer`}}else if(typeof e.attachmentId!=`string`||e.attachmentId===``)return{ok:!1,error:`${t}.attachmentId must be a non-empty string`};return{ok:!0}}function fo(e,t){if(!I(e))return{ok:!1,error:`${t} must be a non-null object`};if(typeof e.id!=`string`)return{ok:!1,error:`${t}.id must be a string`};if(typeof e.category!=`string`)return{ok:!1,error:`${t}.category must be a string`};let n=Ka(e.detector,[`known-secret`,`credential-pattern`,`pre-obfuscated`],`${t}.detector`);if(!n.ok)return n;let r=e.target;return I(r)?uo(r,`${t}.target`):{ok:!1,error:`${t}.target must be a non-null object`}}function po(e,t){return I(e)?typeof e.sourceConversationId==`string`?typeof e.targetConversationId==`string`?{ok:!0}:{ok:!1,error:`${t}.targetConversationId must be a string`}:{ok:!1,error:`${t}.sourceConversationId must be a string`}:{ok:!1,error:`${t} must be a non-null object`}}function mo(e,t){return typeof e!=`string`||!Ba.has(e)?{ok:!1,error:`${t} is not a valid completeness reason`}:{ok:!0}}function ho(e){if(!I(e))return{ok:!1,error:`export must be a non-null object`};if(typeof e.id!=`string`)return{ok:!1,error:`export.id must be a string`};if(typeof e.generatedAt!=`string`)return{ok:!1,error:`export.generatedAt must be a string`};if(e.format!==`slicc-transcript`)return{ok:!1,error:`export.format must equal "slicc-transcript"`};let t=e.producer;return I(t)?t.application===`slicc`?typeof t.version==`string`?{ok:!0}:{ok:!1,error:`export.producer.version must be a string`}:{ok:!1,error:`export.producer.application must equal "slicc"`}:{ok:!1,error:`export.producer must be a non-null object`}}function go(e){if(!I(e))return{ok:!1,error:`session.completeness must be a non-null object`};let t=Ka(e.status,[`complete`,`partial`],`session.completeness.status`);return t.ok?Array.isArray(e.missing)?qa(e.missing,mo,`session.completeness.missing`):{ok:!1,error:`session.completeness.missing must be an array`}:t}function _o(e){if(!I(e))return{ok:!1,error:`session must be a non-null object`};if(typeof e.id!=`string`)return{ok:!1,error:`session.id must be a string`};if(typeof e.title!=`string`)return{ok:!1,error:`session.title must be a string`};let t=Ka(e.state,[`active`,`frozen`],`session.state`);return t.ok?go(e.completeness):t}function vo(e){if(!I(e))return{ok:!1,error:`privacy must be a non-null object`};if(e.reasoningExcluded!==!0)return{ok:!1,error:`privacy.reasoningExcluded must be true`};let t=e.excludedReasoningBlocks;if(typeof t!=`number`)return{ok:!1,error:`privacy.excludedReasoningBlocks must be a number`};if(!Number.isInteger(t)||t<0)return{ok:!1,error:`privacy.excludedReasoningBlocks must be a non-negative integer`};if(e.binaryAttachments!==`included-unchanged`)return{ok:!1,error:`privacy.binaryAttachments must equal "included-unchanged"`};if(!I(e.redactionCounts))return{ok:!1,error:`privacy.redactionCounts must be a non-null object`};let n=e.redactions;return Array.isArray(n)?qa(n,fo,`privacy.redactions`):{ok:!1,error:`privacy.redactions must be an array`}}function yo(e){let t=e.conversations;if(!Array.isArray(t))return{ok:!1,error:`conversations must be an array`};let n=qa(t,ro,`conversations`);if(!n.ok)return n;let r=e.delegations;if(!Array.isArray(r))return{ok:!1,error:`delegations must be an array`};let i=qa(r,po,`delegations`);if(!i.ok)return i;let a=e.attachments;return Array.isArray(a)?qa(a,lo,`attachments`):{ok:!1,error:`attachments must be an array`}}function bo(e){let t=new Set,n=new Set;for(let r of e){if(!I(r)||typeof r.id!=`string`)continue;if(t.has(r.id))return{ok:!1,error:`duplicate conversation id "${r.id}"`};t.add(r.id);let e=r.messages;if(Array.isArray(e)){for(let t of e)if(!(!I(t)||typeof t.id!=`string`)){if(n.has(t.id))return{ok:!1,error:`duplicate message id "${t.id}"`};n.add(t.id)}}}return{ok:!0}}function xo(e){for(let t of e){if(!I(t))continue;let e=t.messages;if(!Array.isArray(e))continue;let n=typeof t.id==`string`?t.id:`?`,r=0;for(let t of e){if(!I(t)||typeof t.sequence!=`number`)continue;let e=t.sequence;if(e<=r)return{ok:!1,error:`sequences in conversation "${n}" must be strictly increasing`};r=e}}return{ok:!0}}function So(e){let t=[];for(let n of e){if(!I(n))continue;let e=n.content;if(Array.isArray(e))for(let n of e)I(n)&&n.type===`tool-call`&&typeof n.id==`string`&&t.push(n.id)}return t}function Co(e){let t=new Set;for(let n of e){if(!I(n))continue;let e=n.messages;if(Array.isArray(e))for(let n of So(e))t.add(n)}return t}function wo(e,t){for(let n of e){if(!I(n))continue;let e=n.messages;if(Array.isArray(e))for(let n of e){if(!I(n)||n.role!==`tool-result`)continue;let e=n.toolCallId;if(typeof e==`string`&&e!==``&&!t.has(e))return{ok:!1,error:`tool-result message references unknown toolCallId "${e}"`}}}return{ok:!0}}function To(e){return wo(e,Co(e))}function Eo(e,t){for(let n of e){if(!I(n)||n.type!==`attachment-ref`)continue;let e=n.attachmentId;if(typeof e!=`string`||!t.has(e))return{ok:!1,error:`attachment-ref references unknown attachmentId "${e}"`}}return{ok:!0}}function Do(e,t){for(let n of e){if(!I(n))continue;let e=n.messages;if(Array.isArray(e))for(let n of e){if(!I(n))continue;let e=n.content;if(!Array.isArray(e))continue;let r=Eo(e,t);if(!r.ok)return r}}return{ok:!0}}function Oo(e,t){let n=new Set;for(let e of t)I(e)&&typeof e.id==`string`&&n.add(e.id);return Do(e,n)}function ko(e){let t=new Map;for(let n of e){if(!I(n)||typeof n.id!=`string`)continue;let e=new Set,r=n.messages;if(Array.isArray(r))for(let t of r)I(t)&&typeof t.id==`string`&&e.add(t.id);t.set(n.id,e)}return t}function Ao(e,t){let n=ko(t);for(let t=0;t<e.length;t++){let r=e[t];if(!I(r))continue;let i=r.sourceConversationId,a=r.sourceMessageId;if(typeof i!=`string`||typeof a!=`string`)continue;let o=n.get(i);if(!o)return{ok:!1,error:`attachments[${t}].sourceConversationId "${i}" does not exist`};if(!o.has(a))return{ok:!1,error:`attachments[${t}].sourceMessageId "${a}" does not exist in conversation "${i}"`}}return{ok:!0}}function jo(e){let t=new Map;for(let n of e){if(!I(n)||typeof n.id!=`string`)continue;let e=Array.isArray(n.messages)?n.messages:[];t.set(n.id,new Set(So(e)))}return t}function Mo(e,t,n){for(let r=0;r<e.length;r++){let i=e[r];if(!I(i))continue;let a=i.sourceConversationId,o=i.targetConversationId;if(typeof a!=`string`||!t.has(a))return{ok:!1,error:`delegations[${r}].sourceConversationId "${a}" does not exist`};if(typeof o!=`string`||!t.has(o))return{ok:!1,error:`delegations[${r}].targetConversationId "${o}" does not exist`};let s=i.toolCallId;if(typeof s==`string`&&s!==``&&!n.get(a)?.has(s))return{ok:!1,error:`delegations[${r}].toolCallId "${s}" does not exist in source conversation "${a}"`}}return{ok:!0}}function No(e,t){let n=new Set;for(let e of t)I(e)&&typeof e.id==`string`&&n.add(e.id);return Mo(e,n,jo(t))}function Po(e,t,n){if(e.kind!==`attachment`)return{ok:!0};let r=e.attachmentId;return typeof r!=`string`||!t.has(r)?{ok:!1,error:`${n}.attachmentId "${r}" does not reference a known attachment`}:{ok:!0}}function Fo(e,t){let n=new Set;for(let e of t)I(e)&&typeof e.id==`string`&&n.add(e.id);for(let t=0;t<e.length;t++){let r=e[t];if(!I(r))continue;let i=r.target;if(!I(i))continue;let a=Po(i,n,`privacy.redactions[${t}].target`);if(!a.ok)return a}return{ok:!0}}function Io(e){let t=e.conversations,n=e.attachments,r=e.delegations,i=e.privacy,a=Array.isArray(i?.redactions)?i.redactions:[],o=bo(t);if(!o.ok)return o;let s=xo(t);if(!s.ok)return s;let c=To(t);if(!c.ok)return c;let l=Oo(t,n);if(!l.ok)return l;let u=Ao(n,t);if(!u.ok)return u;let d=No(r,t);return d.ok?Fo(a,n):d}function Lo(e){let t=yo(e);return t.ok?Io(e):t}function Ro(e){if(!I(e))return{ok:!1,error:`document must be a non-null object`};if(e.schemaVersion!==1)return{ok:!1,error:`schemaVersion must equal 1`};let t=ho(e.export);if(!t.ok)return t;let n=_o(e.session);if(!n.ok)return n;let r=vo(e.privacy);return r.ok?Lo(e):r}async function zo(e,t,n){let r=await n({method:`GET`,path:`/${e}/sites/${t}/config.json`,origin:tt});if(r.status===401||r.status===403)throw Error(`not authorized to read the site config for ${e}/${t} — log in via Settings → Providers → Adobe, or pass --backend to skip the probe`);if(r.status===404)throw Error(`no site config for ${e}/${t} — check the org and site names`);if(r.status>=400)throw Error(`site config probe failed for ${e}/${t}: ${r.status}`);let i;try{i=await r.json()}catch(n){throw Error(`site config for ${e}/${t} is not JSON: ${n instanceof Error?n.message:String(n)}`)}let a=i.content?.source?.url;return{backend:Bo(a),sourceUrl:a}}function Bo(e){if(!e)return`da`;let t;try{t=new URL(e).host}catch{return`da`}return t===`api.aem.live`?`aem`:`da`}const Vo=`slicc-sprinkle-routes`;function Ho(){try{let e=localStorage.getItem(Vo);return e?JSON.parse(e):{}}catch{return{}}}function Uo(e){try{localStorage.setItem(Vo,JSON.stringify(e))}catch{}}function Wo(e){return Ho()[e]}function Go(e,t){let n=Ho();n[e]=t,Uo(n)}function Ko(e){let t=Ho();delete t[e],Uo(t)}function qo(){return Ho()}function Jo(e,t,n){return Tt(t,n,`${e} adapter does not implement ${t}.${n}`)}function Yo(e,t,n,r){let i=n.filter(e=>typeof r?.[e]==`function`),a=n.map(n=>{let i=r?.[n];return[n,typeof i==`function`?i:()=>Promise.resolve(Jo(e,t,n))]});return{...Object.fromEntries(a),allowlist:i,supports:e=>i.includes(e)}}function Xo(e){let{adapter:t,pageGestures:n}=e,r=n??{};return{adapter:t,browser:Yo(t,`browser`,Ot,e.browser),network:Yo(t,`network`,wt,e.network),secrets:Yo(t,`secrets`,kt,e.secrets),devices:Yo(t,`devices`,At,{usbRequest:r.usbRequest,serialRequest:r.serialRequest,hidRequest:r.hidRequest,...e.devices}),mounts:Yo(t,`mounts`,Et,{pickDirectory:r.pickDirectory,...e.mounts}),approvals:Yo(t,`approvals`,jt,e.approvals)}}function Zo(e={}){return Xo({adapter:`connect`,pageGestures:e.pageGestures})}function Qo(e){let t=Mt(()=>import(`./extension-ops-OtrqWANJ.js`).then(t=>t.createExtensionOps(e)));return Xo({adapter:e.adapter,pageGestures:e.pageGestures,network:{crossOriginFetch:e=>E(`network`,`crossOriginFetch`,async()=>(await t()).crossOriginFetch(e))},secrets:{listMaskedEnv:()=>E(`secrets`,`listMaskedEnv`,async()=>(await t()).secrets.listMaskedEnv()),getMasked:e=>E(`secrets`,`getMasked`,async()=>(await t()).secrets.getMasked(e)),set:e=>E(`secrets`,`set`,async()=>(await t()).secrets.set(e)),delete:e=>E(`secrets`,`delete`,async()=>(await t()).secrets.delete(e))},mounts:{signRequest:e=>E(`mounts`,`signRequest`,async()=>(await t()).signRequest(e))},approvals:{request:e=>E(`approvals`,`request`,async()=>(await t()).requestApproval(e))}})}function $o(e={}){let t=Mt(()=>import(`./rest-ops-j0P6ql7f.js`).then(t=>t.createRestOps(e)),e.controlTimeoutMs??1e4);return Xo({adapter:`node-rest`,pageGestures:e.pageGestures,network:{localNodeServer:()=>Promise.resolve({ok:!0,value:{available:!0}}),crossOriginFetch:e=>E(`network`,`crossOriginFetch`,async()=>(await t()).crossOriginFetch(e))},secrets:{listMaskedEnv:()=>E(`secrets`,`listMaskedEnv`,async()=>(await t()).secrets.listMaskedEnv()),getMasked:e=>E(`secrets`,`getMasked`,async()=>(await t()).secrets.getMasked(e)),set:e=>E(`secrets`,`set`,async()=>(await t()).secrets.set(e)),delete:e=>E(`secrets`,`delete`,async()=>(await t()).secrets.delete(e))},mounts:{signRequest:e=>E(`mounts`,`signRequest`,async()=>(await t()).signRequest(e))},approvals:{request:e=>E(`approvals`,`request`,async()=>(await t()).requestApproval(e))}})}function es(e,t={}){let{pageGestures:n}=t;switch(e){case`node-rest`:return $o({pageGestures:n});case`extension-direct`:case`extension-delegate`:return Qo({adapter:e,pageGestures:n});case`connect`:return Zo({pageGestures:n})}}const ts=e(`quick-llm`);async function ns(e){let t=f();if(!t)return ts.debug(`No API key for active provider — skipping`),null;let n=d(),r=u(),i;if(i=e.modelId?os(n,e.modelId)??os(n,r):rs(n,r),!i)return ts.debug(`No model available for provider`,{providerId:n}),null;let a={role:`user`,content:e.prompt,timestamp:Date.now()},o={};i.provider===`adobe`&&(o[`X-Session-Id`]=ss());try{let n=(await Pe(i,{systemPrompt:e.system,messages:[a]},{apiKey:t,maxTokens:e.maxTokens??60,temperature:e.temperature??.3,signal:e.signal,headers:Object.keys(o).length>0?o:void 0})).content.filter(e=>e.type===`text`).map(e=>e.text).join(``).trim();return n.length>0?n:null}catch(e){return ts.debug(`Quick label call failed`,{error:e instanceof Error?e.message:String(e)}),null}}function rs(e,t){let n=p(e);if(n.length===0)return;let r=n.find(e=>e.id===t)??n[0],i=as(r.id),a=n.filter(e=>is(e,r,i));return a.length===0?r:(a.sort((e,t)=>(e.cost?.input??0)-(t.cost?.input??0)),a[0])}function is(e,t,n){if(e.id===t.id)return!1;let r=t.cost?.input??1/0;if((e.cost?.input??1/0)>=r)return!1;let i=e.id.toLowerCase();switch(n){case`claude`:return i.includes(`haiku`);case`gpt`:return/(^|-)mini(-|$)|(^|-)nano(-|$)/.test(i);case`gemini`:return i.includes(`flash`);case`grok`:return/(^|-)mini(-|$)|(^|-)fast(-|$)/.test(i);case`unknown`:return!0}}function as(e){let t=e.toLowerCase();return t.includes(`claude`)?`claude`:t.includes(`gemini`)?`gemini`:t.includes(`grok`)?`grok`:/^(gpt|o\d)/.test(t)?`gpt`:`unknown`}function os(e,t){return p(e).find(e=>e.id===t)}function ss(){return Pt(`ui-quick-llm`)}const cs=e(`sudo-suggest`),ls=[`You generalize a single shell command into a minimal glob pattern for an`,`allow-list rule. Output ONLY the pattern on one line — no prose, no quotes,`,`no backticks. Keep the leading command/sub-command verbatim and replace only`,`the volatile tail (args, paths, refs) with a single trailing "*".`,`Examples:`,` git push origin main -> git push*`,` rm -rf build/cache -> rm -rf*`,` npm install left-pad -> npm install*`].join(`
|
|
1
|
+
import{t as e}from"./logger-LESFN7Hj.js";import{r as t,t as n}from"./base64-BPBW1Gzr.js";import{n as r}from"./bridge-protocol-31SWTdS5.js";import{a as i,n as a,o,s,t as c}from"./handoff-link-B3It6xQY.js";import{C as l,d as u,f as d,i as f,u as p}from"./account-store-BhO6674m.js";import{c as m,d as h,n as g,r as _,s as v}from"./proxied-fetch-F-dCBEfh.js";import{t as ee}from"./sha256-DynDhwRL.js";import{t as te}from"./runtime-env-DadgceZk.js";import{t as ne}from"./slugify-BYJ6QVAt.js";import{i as re,n as ie,r as ae,t as oe}from"./host-command-CvUauhDf.js";import{a as se,c as ce,d as y,f as le,i as ue,l as de,m as fe,n as pe,o as me,p as he,r as ge,s as _e,t as ve,u as ye}from"./snapshot-HHgn9isb.js";import{n as be,t as b}from"./panel-rpc-accessor-B4BfPLSo.js";import{a as xe,c as Se,n as Ce,o as we,s as Te,t as Ee}from"./feature-flags-QlgHaQc1.js";import{t as De}from"./providers-D7ZRGs5H.js";import{r as Oe}from"./binary-cache-bSOhqXB1.js";import{i as ke,n as Ae,r as je}from"./fetch-body-CuwTaJC_.js";import{s as Me,t as Ne}from"./api-endpoint-D8lUKmPu.js";import{t as Pe}from"./compat-nGhSz-U1.js";import"./core-C1m4D34S.js";import{n as Fe,t as Ie}from"./mime-types-D7IV6i7k.js";import{n as Le,t as Re}from"./float-topology-COIC4j_U.js";import{t as ze}from"./secrets-bridge-client-GOCzDscb.js";import{a as Be,i as Ve,n as He,r as Ue}from"./tool-ui-DRnUkp2g.js";import{a as We,i as Ge,n as x,t as S}from"./path-utils-DNJG-zQf.js";import{n as Ke,r as qe,t as Je}from"./merge-file-core-VJlzucJY.js";import{n as Ye,t as Xe}from"./types-D8gIX-W-.js";import{i as Ze}from"./mount-index-CQfmUPuZ.js";import{a as Qe,i as $e,n as et,o as tt,s as nt,t as rt}from"./signed-fetch-DeDG40wV.js";import{o as it}from"./mount-table-store-DrF_Ifaz.js";import{t as at}from"./remote-cache-UwMD8EkX.js";import{n as ot}from"./fs-D_cFUSir.js";import{a as st}from"./tray-leader-status-CpkFr6n7.js";import{n as ct,t as lt}from"./slicc-version-CxZE3zd0.js";import{a as ut,i as dt,o as ft,r as C,t as pt}from"./browser-CGX7MbCQ.js";import{t as w}from"./subcommand-flags-BZi7j78Q.js";import{n as mt,r as ht,t as T}from"./subcommand-help-CgO7wRS5.js";import{n as gt}from"./cost-command-TMcbUPyN.js";import{d as _t,g as vt,i as yt,n as bt,o as xt}from"./sudoers-BdBYQPUn.js";import{t as St}from"./sudo-refusal-DVwTXFRE.js";import{n as Ct}from"./types-Dj5TU-Qg.js";import{a as wt,c as Tt,i as Et,l as Dt,n as Ot,o as kt,r as At,t as jt}from"./types-JfhqX7lD.js";import{n as E,t as Mt}from"./boundary-DjgipyWT.js";import"./rest-paths-Dia19u9P.js";import{t as Nt}from"./html-B_Hg2WOy.js";import{n as Pt}from"./llm-session-id-CKpY5F_-.js";import{t as Ft}from"./src-CUSndb9K.js";import{i as It,o as Lt}from"./browser-DuyhpHbR.js";import{a as Rt,c as zt,i as Bt,n as Vt,o as Ht,s as Ut,t as Wt}from"./pipe-status-BBrT3VeG.js";import{i as Gt,r as Kt,t as qt}from"./mount-picker-popup-BMils9JY.js";import{t as Jt}from"./buffer-B5d1xHaH.js";import"./buffer-polyfill-BwLbCySD.js";import{A as Yt,B as D,C as Xt,D as O,E as Zt,F as Qt,G as $t,H as k,I as A,J as en,K as tn,L as nn,M as rn,N as an,O as on,P as sn,R as cn,S as ln,T as un,U as dn,V as fn,W as pn,Y as mn,_ as hn,a as gn,b as _n,c as vn,d as yn,f as bn,g as xn,h as Sn,i as Cn,j as wn,k as Tn,l as En,m as Dn,n as On,o as kn,p as j,q as An,r as jn,s as Mn,t as Nn,u as Pn,v as Fn,w as In,x as Ln,y as Rn,z as zn}from"./isomorphic-git-r9mnHMnp.js";import"./global-db-DJXlpNui.js";import{C as Bn,S as M,a as Vn,b as Hn,c as Un,d as Wn,f as Gn,g as Kn,i as qn,l as Jn,m as Yn,n as Xn,o as Zn,p as Qn,r as $n,s as er,t as tr,u as nr,x as rr,y as N}from"./state-Dx_7TiP6.js";import{a as ir,i as ar,r as or,t as sr}from"./git-config-Bdgu8kD2.js";import{a as P,i as cr,r as lr,t as ur}from"./just-bash-compat-B-SPHuh_.js";import{h as dr,i as fr,r as pr}from"./stdio-tty-CipJs8Mm.js";import{i as mr,r as hr}from"./global-prefix-DqCuANmV.js";import{t as gr}from"./wasm-programs-Bd5YaoqY.js";import{a as _r,n as vr,o as yr,r as br,s as xr}from"./jsh-discovery-CnvNKojr.js";import{C as Sr,a as Cr,b as wr,c as Tr,d as Er,f as Dr,h as Or,i as kr,l as Ar,m as jr,n as Mr,o as Nr,p as Pr,r as Fr,s as Ir,t as F,u as Lr,v as Rr,y as zr}from"./shared-D-ZRFYou.js";import{_ as Br,a as Vr,b as Hr,d as Ur,f as Wr,g as Gr,h as Kr,i as qr,l as Jr,m as Yr,p as Xr,r as Zr,s as Qr,u as $r,v as ei,y as ti}from"./require-guards-dUdxJmkR.js";import{_ as ni,a as ri,b as ii,c as ai,d as oi,f as si,g as ci,h as li,l as ui,m as di,n as fi,p as pi,s as mi,t as hi,u as gi,v as _i,x as vi,y as yi}from"./jsh-executor-Nk8jkXdD.js";import{n as bi,t as xi}from"./esbuild-wasm-DeTghvWH.js";import{n as Si}from"./wasm-compiler-Ct7QZURL.js";import{a as Ci,o as wi,s as Ti,t as Ei}from"./usb-device-registry-DFzxaOky.js";import{i as Di,r as Oi,t as ki}from"./script-catalog-D5joO5l7.js";import{a as Ai,c as ji,o as Mi,s as Ni,t as Pi}from"./types-Dzr0qYl3.js";import{a as Fi,c as Ii,d as Li,f as Ri,n as zi,r as Bi,u as Vi}from"./github-zip-CMSbKC3q.js";import{i as Hi,t as Ui}from"./github-auth-D-_-pCrt.js";import{a as Wi,i as Gi,o as Ki,r as qi,t as Ji}from"./provenance-DdmsQ3Nr.js";import{a as Yi,c as Xi,i as Zi,n as Qi,o as $i,r as ea,s as ta}from"./github-install-NHKpL-_w.js";import{n as na,t as ra}from"./magick-wasm-BbnwhVj1.js";import{i as ia,n as aa,r as oa,t as sa}from"./pdf-raster-BWk6ezTX.js";import{n as ca}from"./lick-target-env-8JxfVcIV.js";import{t as la}from"./tmpdir-env-ate4iNcK.js";import{n as ua,t as da}from"./keyboard-TcuVIW9F.js";import{n as fa,t as pa}from"./hf-defaults-BwJdGLgk.js";import{t as ma}from"./ffmpeg-wasm-sx-3yVAE.js";import{t as ha}from"./local-llm-BMH9xa1Q.js";import{i as ga,n as _a,r as va,t as ya}from"./tar-BWIPCxI2.js";import{a as ba,c as xa,i as Sa,o as Ca,r as wa,s as Ta}from"./v86-vm-DCm7zA2r.js";import{n as Ea,r as Da}from"./lick-urls-CgPiVwD-.js";let Oa=null;function ka(e){Oa=e!==null&&Number.isFinite(e)&&e>0?e:null}function Aa(){if(Oa!==null)return Oa;let e=globalThis.performance?.timeOrigin;return typeof e==`number`&&Number.isFinite(e)&&e>0?e:Date.now()}new URL(r).hostname;const ja=/^([0-9a-f]{32})--(?:[0-9a-f]{8}-)?([0-9a-f]+)$/i;function Ma(e){let t;try{t=new URL(e.includes(`://`)?e:`https://${e}`).hostname}catch{return null}let n=ja.exec(t.split(`.`)[0]??``);if(!n||!t.includes(`.`))return null;let r=n[1].toLowerCase();return`${[r.slice(0,8),r.slice(8,12),r.slice(12,16),r.slice(16,20),r.slice(20)].join(`-`)}.${n[2].toLowerCase()}`}[`ghp_`,`gho_`,`ghu_`,`ghs_`,`ghr_`,`github_pat_`,`sk-`,`pk-`,`xoxb-`,`xoxp-`,`xoxa-`,`xoxs-`,`AKIA`,`ABIA`,`ACCA`,`ASIA`,`sk-ant-`,`Bearer `].sort((e,t)=>t.length-e.length);function Na(e,t){let n=e.toLowerCase(),r=t.toLowerCase();if(n===`*`)return!0;if(!n.startsWith(`*.`))return n===r;let i=n.slice(1);return r.length>i.length&&r.endsWith(i)}function Pa(e,t){return e.some(e=>Na(e,t))}const Fa=`slicc-transcript`,Ia=[`canonical-agent-history-unavailable`,`tool-data-may-be-truncated`,`model-metadata-unavailable`,`scoop-history-unavailable`,`attachment-file-missing`,`attachment-association-unavailable`,`complete-snapshot-unavailable`],La=new Set(`/export/format./export/producer/application./session/id./session/state./session/completeness/status./session/completeness/missing/*./conversations/*/id./conversations/*/kind./conversations/*/parentConversationId./conversations/*/messages/*/id./conversations/*/messages/*/role./conversations/*/messages/*/timestamp./conversations/*/messages/*/toolCallId./conversations/*/messages/*/content/*/type./conversations/*/messages/*/content/*/id./conversations/*/messages/*/content/*/name./conversations/*/messages/*/content/*/attachmentId./delegations/*/sourceConversationId./delegations/*/targetConversationId./delegations/*/toolCallId./attachments/*/id./attachments/*/path./attachments/*/sha256./attachments/*/sourceConversationId./attachments/*/sourceMessageId./attachments/*/handling./attachments/*/missingReason`.split(`.`));function Ra(e){return La.has(e.replace(/\/\d+(?=\/|$)/g,`/*`))}var za=class extends Error{code;detail;constructor(e,t){super(t?`${e}: ${t}`:e),this.code=e,this.detail=t,this.name=`TranscriptExportError`}};const Ba=new Set(Ia),Va=/^[0-9a-fA-F]{64}$/,Ha=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/;function I(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ua(e){return typeof e==`string`&&Va.test(e)}function Wa(e){return Ha.test(e)&&Number.isFinite(Date.parse(e))}function Ga(e,t){let n=t.map(e=>`"${e}"`),r=n[n.length-1];return n.length===2?`${e} must be ${n[0]} or ${r}`:`${e} must be ${n.slice(0,-1).join(`, `)}, or ${r}`}function Ka(e,t,n){return typeof e!=`string`||!t.includes(e)?{ok:!1,error:Ga(n,t)}:{ok:!0}}function qa(e,t,n){for(let r=0;r<e.length;r++){let i=t(e[r],`${n}[${r}]`);if(!i.ok)return i}return{ok:!0}}function Ja(e,t){let n=e.type;if(n===`text`){if(typeof e.text!=`string`)return{ok:!1,error:`${t}.text must be a string`}}else if(n===`tool-call`){if(typeof e.id!=`string`||e.id===``)return{ok:!1,error:`${t}.id must be a non-empty string`};if(typeof e.name!=`string`||e.name===``)return{ok:!1,error:`${t}.name must be a non-empty string`};if(!(`input`in e))return{ok:!1,error:`${t}.input must be present`}}else if(typeof e.attachmentId!=`string`||e.attachmentId===``)return{ok:!1,error:`${t}.attachmentId must be a non-empty string`};return{ok:!0}}function Ya(e,t){if(!I(e))return{ok:!1,error:`${t} must be a non-null object`};let n=Ka(e.type,[`text`,`tool-call`,`attachment-ref`],`${t}.type`);return n.ok?Ja(e,t):n}function Xa(e,t){for(let n of[`input`,`output`,`cacheRead`,`cacheWrite`,`totalTokens`]){let r=e[n];if(typeof r!=`number`)return{ok:!1,error:`${t}.${n} must be a number`};if(!Number.isInteger(r)||r<0)return{ok:!1,error:`${t}.${n} must be a non-negative integer`}}return{ok:!0}}function Za(e,t){for(let n of[`input`,`output`,`cacheRead`,`cacheWrite`,`total`]){let r=e[n];if(typeof r!=`number`)return{ok:!1,error:`${t}.${n} must be a number`};if(!Number.isFinite(r)||r<0)return{ok:!1,error:`${t}.${n} must be a finite non-negative number`}}return{ok:!0}}function Qa(e,t){let n=Xa(e,t);if(!n.ok)return n;let r=e.cost;return I(r)?Za(r,`${t}.cost`):{ok:!1,error:`${t}.cost must be a non-null object`}}function $a(e,t){if(typeof e.id!=`string`)return{ok:!1,error:`${t}.id must be a string`};if(typeof e.sequence!=`number`)return{ok:!1,error:`${t}.sequence must be a number`};let n=e.sequence;return!Number.isInteger(n)||n<1?{ok:!1,error:`${t}.sequence must be a positive integer`}:typeof e.timestamp==`string`?Wa(e.timestamp)?{ok:!0}:{ok:!1,error:`${t}.timestamp must be a valid ISO 8601 date-time string`}:{ok:!1,error:`${t}.timestamp must be a string`}}function eo(e,t){let n=e.toolCallId;return typeof n!=`string`||n===``?{ok:!1,error:`${t}.toolCallId must be a non-empty string for tool-result messages`}:{ok:!0}}function to(e,t){let n=e.usage;return n===void 0?{ok:!0}:I(n)?Qa(n,`${t}.usage`):{ok:!1,error:`${t}.usage must be a non-null object`}}function no(e,t){if(!I(e))return{ok:!1,error:`${t} must be a non-null object`};let n=Ka(e.role,[`user`,`assistant`,`tool-result`],`${t}.role`);if(!n.ok)return n;if(e.role===`tool-result`){let n=eo(e,t);if(!n.ok)return n}let r=$a(e,t);if(!r.ok)return r;let i=e.content;if(!Array.isArray(i))return{ok:!1,error:`${t}.content must be an array`};let a=qa(i,Ya,`${t}.content`);return a.ok?to(e,t):a}function ro(e,t){if(!I(e))return{ok:!1,error:`${t} must be a non-null object`};if(typeof e.id!=`string`)return{ok:!1,error:`${t}.id must be a string`};if(typeof e.name!=`string`)return{ok:!1,error:`${t}.name must be a string`};let n=Ka(e.kind,[`cone`,`scoop`],`${t}.kind`);if(!n.ok)return n;let r=e.messages;return Array.isArray(r)?qa(r,no,`${t}.messages`):{ok:!1,error:`${t}.messages must be an array`}}function io(e,t){for(let n of[`id`,`path`,`originalName`,`mimeType`,`sha256`,`sourceConversationId`,`sourceMessageId`])if(typeof e[n]!=`string`)return{ok:!1,error:`${t}.${n} must be a string`};return{ok:!0}}function ao(e,t){let n=e.path,r=e.sha256,i=e.byteLength;return n===``?{ok:!1,error:`${t}.path must be non-empty when present`}:Ua(r)?!Number.isInteger(i)||i<0?{ok:!1,error:`${t}.byteLength must be a non-negative integer when present`}:e.missingReason===void 0?{ok:!0}:{ok:!1,error:`${t}.missingReason must be absent when present is true`}:{ok:!1,error:`${t}.sha256 must be a 64-char hex string when present`}}const oo=[`attachment-file-missing`,`attachment-association-unavailable`];function so(e,t){let n=e.path,r=e.sha256,i=e.byteLength;return n===``?r===``?i===0?Ka(e.missingReason,oo,`${t}.missingReason`):{ok:!1,error:`${t}.byteLength must be zero when not present`}:{ok:!1,error:`${t}.sha256 must be empty when not present`}:{ok:!1,error:`${t}.path must be empty when not present`}}function co(e,t){return e.present?ao(e,t):so(e,t)}function lo(e,t){if(!I(e))return{ok:!1,error:`${t} must be a non-null object`};let n=io(e,t);if(!n.ok)return n;if(typeof e.byteLength!=`number`)return{ok:!1,error:`${t}.byteLength must be a number`};if(typeof e.present!=`boolean`)return{ok:!1,error:`${t}.present must be a boolean`};let r=Ka(e.handling,[`text-redacted`,`binary-unchanged`],`${t}.handling`);return r.ok?co(e,t):r}function uo(e,t){let n=Ka(e.kind,[`json`,`attachment`],`${t}.kind`);if(!n.ok)return n;if(e.kind===`json`){if(typeof e.pointer!=`string`)return{ok:!1,error:`${t}.pointer must be a string`};let n=e.pointer;if(n!==``&&!n.startsWith(`/`))return{ok:!1,error:`${t}.pointer must be a valid RFC 6901 JSON pointer`}}else if(typeof e.attachmentId!=`string`||e.attachmentId===``)return{ok:!1,error:`${t}.attachmentId must be a non-empty string`};return{ok:!0}}function fo(e,t){if(!I(e))return{ok:!1,error:`${t} must be a non-null object`};if(typeof e.id!=`string`)return{ok:!1,error:`${t}.id must be a string`};if(typeof e.category!=`string`)return{ok:!1,error:`${t}.category must be a string`};let n=Ka(e.detector,[`known-secret`,`credential-pattern`,`pre-obfuscated`],`${t}.detector`);if(!n.ok)return n;let r=e.target;return I(r)?uo(r,`${t}.target`):{ok:!1,error:`${t}.target must be a non-null object`}}function po(e,t){return I(e)?typeof e.sourceConversationId==`string`?typeof e.targetConversationId==`string`?{ok:!0}:{ok:!1,error:`${t}.targetConversationId must be a string`}:{ok:!1,error:`${t}.sourceConversationId must be a string`}:{ok:!1,error:`${t} must be a non-null object`}}function mo(e,t){return typeof e!=`string`||!Ba.has(e)?{ok:!1,error:`${t} is not a valid completeness reason`}:{ok:!0}}function ho(e){if(!I(e))return{ok:!1,error:`export must be a non-null object`};if(typeof e.id!=`string`)return{ok:!1,error:`export.id must be a string`};if(typeof e.generatedAt!=`string`)return{ok:!1,error:`export.generatedAt must be a string`};if(e.format!==`slicc-transcript`)return{ok:!1,error:`export.format must equal "slicc-transcript"`};let t=e.producer;return I(t)?t.application===`slicc`?typeof t.version==`string`?{ok:!0}:{ok:!1,error:`export.producer.version must be a string`}:{ok:!1,error:`export.producer.application must equal "slicc"`}:{ok:!1,error:`export.producer must be a non-null object`}}function go(e){if(!I(e))return{ok:!1,error:`session.completeness must be a non-null object`};let t=Ka(e.status,[`complete`,`partial`],`session.completeness.status`);return t.ok?Array.isArray(e.missing)?qa(e.missing,mo,`session.completeness.missing`):{ok:!1,error:`session.completeness.missing must be an array`}:t}function _o(e){if(!I(e))return{ok:!1,error:`session must be a non-null object`};if(typeof e.id!=`string`)return{ok:!1,error:`session.id must be a string`};if(typeof e.title!=`string`)return{ok:!1,error:`session.title must be a string`};let t=Ka(e.state,[`active`,`frozen`],`session.state`);return t.ok?go(e.completeness):t}function vo(e){if(!I(e))return{ok:!1,error:`privacy must be a non-null object`};if(e.reasoningExcluded!==!0)return{ok:!1,error:`privacy.reasoningExcluded must be true`};let t=e.excludedReasoningBlocks;if(typeof t!=`number`)return{ok:!1,error:`privacy.excludedReasoningBlocks must be a number`};if(!Number.isInteger(t)||t<0)return{ok:!1,error:`privacy.excludedReasoningBlocks must be a non-negative integer`};if(e.binaryAttachments!==`included-unchanged`)return{ok:!1,error:`privacy.binaryAttachments must equal "included-unchanged"`};if(!I(e.redactionCounts))return{ok:!1,error:`privacy.redactionCounts must be a non-null object`};let n=e.redactions;return Array.isArray(n)?qa(n,fo,`privacy.redactions`):{ok:!1,error:`privacy.redactions must be an array`}}function yo(e){let t=e.conversations;if(!Array.isArray(t))return{ok:!1,error:`conversations must be an array`};let n=qa(t,ro,`conversations`);if(!n.ok)return n;let r=e.delegations;if(!Array.isArray(r))return{ok:!1,error:`delegations must be an array`};let i=qa(r,po,`delegations`);if(!i.ok)return i;let a=e.attachments;return Array.isArray(a)?qa(a,lo,`attachments`):{ok:!1,error:`attachments must be an array`}}function bo(e){let t=new Set,n=new Set;for(let r of e){if(!I(r)||typeof r.id!=`string`)continue;if(t.has(r.id))return{ok:!1,error:`duplicate conversation id "${r.id}"`};t.add(r.id);let e=r.messages;if(Array.isArray(e)){for(let t of e)if(!(!I(t)||typeof t.id!=`string`)){if(n.has(t.id))return{ok:!1,error:`duplicate message id "${t.id}"`};n.add(t.id)}}}return{ok:!0}}function xo(e){for(let t of e){if(!I(t))continue;let e=t.messages;if(!Array.isArray(e))continue;let n=typeof t.id==`string`?t.id:`?`,r=0;for(let t of e){if(!I(t)||typeof t.sequence!=`number`)continue;let e=t.sequence;if(e<=r)return{ok:!1,error:`sequences in conversation "${n}" must be strictly increasing`};r=e}}return{ok:!0}}function So(e){let t=[];for(let n of e){if(!I(n))continue;let e=n.content;if(Array.isArray(e))for(let n of e)I(n)&&n.type===`tool-call`&&typeof n.id==`string`&&t.push(n.id)}return t}function Co(e){let t=new Set;for(let n of e){if(!I(n))continue;let e=n.messages;if(Array.isArray(e))for(let n of So(e))t.add(n)}return t}function wo(e,t){for(let n of e){if(!I(n))continue;let e=n.messages;if(Array.isArray(e))for(let n of e){if(!I(n)||n.role!==`tool-result`)continue;let e=n.toolCallId;if(typeof e==`string`&&e!==``&&!t.has(e))return{ok:!1,error:`tool-result message references unknown toolCallId "${e}"`}}}return{ok:!0}}function To(e){return wo(e,Co(e))}function Eo(e,t){for(let n of e){if(!I(n)||n.type!==`attachment-ref`)continue;let e=n.attachmentId;if(typeof e!=`string`||!t.has(e))return{ok:!1,error:`attachment-ref references unknown attachmentId "${e}"`}}return{ok:!0}}function Do(e,t){for(let n of e){if(!I(n))continue;let e=n.messages;if(Array.isArray(e))for(let n of e){if(!I(n))continue;let e=n.content;if(!Array.isArray(e))continue;let r=Eo(e,t);if(!r.ok)return r}}return{ok:!0}}function Oo(e,t){let n=new Set;for(let e of t)I(e)&&typeof e.id==`string`&&n.add(e.id);return Do(e,n)}function ko(e){let t=new Map;for(let n of e){if(!I(n)||typeof n.id!=`string`)continue;let e=new Set,r=n.messages;if(Array.isArray(r))for(let t of r)I(t)&&typeof t.id==`string`&&e.add(t.id);t.set(n.id,e)}return t}function Ao(e,t){let n=ko(t);for(let t=0;t<e.length;t++){let r=e[t];if(!I(r))continue;let i=r.sourceConversationId,a=r.sourceMessageId;if(typeof i!=`string`||typeof a!=`string`)continue;let o=n.get(i);if(!o)return{ok:!1,error:`attachments[${t}].sourceConversationId "${i}" does not exist`};if(!o.has(a))return{ok:!1,error:`attachments[${t}].sourceMessageId "${a}" does not exist in conversation "${i}"`}}return{ok:!0}}function jo(e){let t=new Map;for(let n of e){if(!I(n)||typeof n.id!=`string`)continue;let e=Array.isArray(n.messages)?n.messages:[];t.set(n.id,new Set(So(e)))}return t}function Mo(e,t,n){for(let r=0;r<e.length;r++){let i=e[r];if(!I(i))continue;let a=i.sourceConversationId,o=i.targetConversationId;if(typeof a!=`string`||!t.has(a))return{ok:!1,error:`delegations[${r}].sourceConversationId "${a}" does not exist`};if(typeof o!=`string`||!t.has(o))return{ok:!1,error:`delegations[${r}].targetConversationId "${o}" does not exist`};let s=i.toolCallId;if(typeof s==`string`&&s!==``&&!n.get(a)?.has(s))return{ok:!1,error:`delegations[${r}].toolCallId "${s}" does not exist in source conversation "${a}"`}}return{ok:!0}}function No(e,t){let n=new Set;for(let e of t)I(e)&&typeof e.id==`string`&&n.add(e.id);return Mo(e,n,jo(t))}function Po(e,t,n){if(e.kind!==`attachment`)return{ok:!0};let r=e.attachmentId;return typeof r!=`string`||!t.has(r)?{ok:!1,error:`${n}.attachmentId "${r}" does not reference a known attachment`}:{ok:!0}}function Fo(e,t){let n=new Set;for(let e of t)I(e)&&typeof e.id==`string`&&n.add(e.id);for(let t=0;t<e.length;t++){let r=e[t];if(!I(r))continue;let i=r.target;if(!I(i))continue;let a=Po(i,n,`privacy.redactions[${t}].target`);if(!a.ok)return a}return{ok:!0}}function Io(e){let t=e.conversations,n=e.attachments,r=e.delegations,i=e.privacy,a=Array.isArray(i?.redactions)?i.redactions:[],o=bo(t);if(!o.ok)return o;let s=xo(t);if(!s.ok)return s;let c=To(t);if(!c.ok)return c;let l=Oo(t,n);if(!l.ok)return l;let u=Ao(n,t);if(!u.ok)return u;let d=No(r,t);return d.ok?Fo(a,n):d}function Lo(e){let t=yo(e);return t.ok?Io(e):t}function Ro(e){if(!I(e))return{ok:!1,error:`document must be a non-null object`};if(e.schemaVersion!==1)return{ok:!1,error:`schemaVersion must equal 1`};let t=ho(e.export);if(!t.ok)return t;let n=_o(e.session);if(!n.ok)return n;let r=vo(e.privacy);return r.ok?Lo(e):r}async function zo(e,t,n){let r=await n({method:`GET`,path:`/${e}/sites/${t}/config.json`,origin:tt});if(r.status===401||r.status===403)throw Error(`not authorized to read the site config for ${e}/${t} — log in via Settings → Providers → Adobe, or pass --backend to skip the probe`);if(r.status===404)throw Error(`no site config for ${e}/${t} — check the org and site names`);if(r.status>=400)throw Error(`site config probe failed for ${e}/${t}: ${r.status}`);let i;try{i=await r.json()}catch(n){throw Error(`site config for ${e}/${t} is not JSON: ${n instanceof Error?n.message:String(n)}`)}let a=i.content?.source?.url;return{backend:Bo(a),sourceUrl:a}}function Bo(e){if(!e)return`da`;let t;try{t=new URL(e).host}catch{return`da`}return t===`api.aem.live`?`aem`:`da`}const Vo=`slicc-sprinkle-routes`;function Ho(){try{let e=localStorage.getItem(Vo);return e?JSON.parse(e):{}}catch{return{}}}function Uo(e){try{localStorage.setItem(Vo,JSON.stringify(e))}catch{}}function Wo(e){return Ho()[e]}function Go(e,t){let n=Ho();n[e]=t,Uo(n)}function Ko(e){let t=Ho();delete t[e],Uo(t)}function qo(){return Ho()}function Jo(e,t,n){return Tt(t,n,`${e} adapter does not implement ${t}.${n}`)}function Yo(e,t,n,r){let i=n.filter(e=>typeof r?.[e]==`function`),a=n.map(n=>{let i=r?.[n];return[n,typeof i==`function`?i:()=>Promise.resolve(Jo(e,t,n))]});return{...Object.fromEntries(a),allowlist:i,supports:e=>i.includes(e)}}function Xo(e){let{adapter:t,pageGestures:n}=e,r=n??{};return{adapter:t,browser:Yo(t,`browser`,Ot,e.browser),network:Yo(t,`network`,wt,e.network),secrets:Yo(t,`secrets`,kt,e.secrets),devices:Yo(t,`devices`,At,{usbRequest:r.usbRequest,serialRequest:r.serialRequest,hidRequest:r.hidRequest,...e.devices}),mounts:Yo(t,`mounts`,Et,{pickDirectory:r.pickDirectory,...e.mounts}),approvals:Yo(t,`approvals`,jt,e.approvals)}}function Zo(e={}){return Xo({adapter:`connect`,pageGestures:e.pageGestures})}function Qo(e){let t=Mt(()=>import(`./extension-ops-OtrqWANJ.js`).then(t=>t.createExtensionOps(e)));return Xo({adapter:e.adapter,pageGestures:e.pageGestures,network:{crossOriginFetch:e=>E(`network`,`crossOriginFetch`,async()=>(await t()).crossOriginFetch(e))},secrets:{listMaskedEnv:()=>E(`secrets`,`listMaskedEnv`,async()=>(await t()).secrets.listMaskedEnv()),getMasked:e=>E(`secrets`,`getMasked`,async()=>(await t()).secrets.getMasked(e)),set:e=>E(`secrets`,`set`,async()=>(await t()).secrets.set(e)),delete:e=>E(`secrets`,`delete`,async()=>(await t()).secrets.delete(e))},mounts:{signRequest:e=>E(`mounts`,`signRequest`,async()=>(await t()).signRequest(e))},approvals:{request:e=>E(`approvals`,`request`,async()=>(await t()).requestApproval(e))}})}function $o(e={}){let t=Mt(()=>import(`./rest-ops-j0P6ql7f.js`).then(t=>t.createRestOps(e)),e.controlTimeoutMs??1e4);return Xo({adapter:`node-rest`,pageGestures:e.pageGestures,network:{localNodeServer:()=>Promise.resolve({ok:!0,value:{available:!0}}),crossOriginFetch:e=>E(`network`,`crossOriginFetch`,async()=>(await t()).crossOriginFetch(e))},secrets:{listMaskedEnv:()=>E(`secrets`,`listMaskedEnv`,async()=>(await t()).secrets.listMaskedEnv()),getMasked:e=>E(`secrets`,`getMasked`,async()=>(await t()).secrets.getMasked(e)),set:e=>E(`secrets`,`set`,async()=>(await t()).secrets.set(e)),delete:e=>E(`secrets`,`delete`,async()=>(await t()).secrets.delete(e))},mounts:{signRequest:e=>E(`mounts`,`signRequest`,async()=>(await t()).signRequest(e))},approvals:{request:e=>E(`approvals`,`request`,async()=>(await t()).requestApproval(e))}})}function es(e,t={}){let{pageGestures:n}=t;switch(e){case`node-rest`:return $o({pageGestures:n});case`extension-direct`:case`extension-delegate`:return Qo({adapter:e,pageGestures:n});case`connect`:return Zo({pageGestures:n})}}const ts=e(`quick-llm`);async function ns(e){let t=f();if(!t)return ts.debug(`No API key for active provider — skipping`),null;let n=d(),r=u(),i;if(i=e.modelId?os(n,e.modelId)??os(n,r):rs(n,r),!i)return ts.debug(`No model available for provider`,{providerId:n}),null;let a={role:`user`,content:e.prompt,timestamp:Date.now()},o={};i.provider===`adobe`&&(o[`X-Session-Id`]=ss());try{let n=(await Pe(i,{systemPrompt:e.system,messages:[a]},{apiKey:t,maxTokens:e.maxTokens??60,temperature:e.temperature??.3,signal:e.signal,headers:Object.keys(o).length>0?o:void 0})).content.filter(e=>e.type===`text`).map(e=>e.text).join(``).trim();return n.length>0?n:null}catch(e){return ts.debug(`Quick label call failed`,{error:e instanceof Error?e.message:String(e)}),null}}function rs(e,t){let n=p(e);if(n.length===0)return;let r=n.find(e=>e.id===t)??n[0],i=as(r.id),a=n.filter(e=>is(e,r,i));return a.length===0?r:(a.sort((e,t)=>(e.cost?.input??0)-(t.cost?.input??0)),a[0])}function is(e,t,n){if(e.id===t.id)return!1;let r=t.cost?.input??1/0;if((e.cost?.input??1/0)>=r)return!1;let i=e.id.toLowerCase();switch(n){case`claude`:return i.includes(`haiku`);case`gpt`:return/(^|-)mini(-|$)|(^|-)nano(-|$)/.test(i);case`gemini`:return i.includes(`flash`);case`grok`:return/(^|-)mini(-|$)|(^|-)fast(-|$)/.test(i);case`unknown`:return!0}}function as(e){let t=e.toLowerCase();return t.includes(`claude`)?`claude`:t.includes(`gemini`)?`gemini`:t.includes(`grok`)?`grok`:/^(gpt|o\d)/.test(t)?`gpt`:`unknown`}function os(e,t){return p(e).find(e=>e.id===t)}function ss(){return Pt(`ui-quick-llm`)}const cs=e(`sudo-suggest`),ls=[`You generalize a single shell command into a minimal glob pattern for an`,`allow-list rule. Output ONLY the pattern on one line — no prose, no quotes,`,`no backticks. Keep the leading command/sub-command verbatim and replace only`,`the volatile tail (args, paths, refs) with a single trailing "*".`,`Examples:`,` git push origin main -> git push*`,` rm -rf build/cache -> rm -rf*`,` npm install left-pad -> npm install*`].join(`
|
|
2
2
|
`),us=[`You generalize a single filesystem path into a minimal glob pattern for an`,`allow-list rule. Output ONLY the pattern on one line — no prose, no quotes,`,`no backticks. Keep the meaningful directory prefix and replace the volatile`,`leaf (and below) with "**". Examples:`,` /workspace/.git/config -> /workspace/.git/**`,` /shared/secrets/openai.key -> /shared/secrets/**`,` /workspace/src/app/main.ts -> /workspace/src/**`].join(`
|
|
3
3
|
`);async function ds(e,t){if(e.suggestedPattern&&e.suggestedPattern.trim().length>0)return e.suggestedPattern.trim();let n=e.detail.trim();if(e.kind===`guest-message`||e.kind===`guest-tool`)return n;let r=e.kind===`command`?ls:us,i=null;try{i=await ns({prompt:n,system:r,maxTokens:40,temperature:0,signal:t})}catch(e){cs.debug(`suggestPattern: quickLabel threw`,{error:e instanceof Error?e.message:String(e)}),i=null}return fs(i)||n}function fs(e){if(!e)return null;let t=(e.split(`
|
|
4
4
|
`,1)[0]?.trim()??``).replace(/^`+/,``).replace(/`+$/,``).replace(/^["']/,``).replace(/["']$/,``).trim();return t.length===0?null:t}const ps=e(`sudo:capability-gesture`);function ms(e,t={}){let n=t.suggest??ds;return{async requestApproval(t,r){let i=r?.signal,a;if(t.suggestedPattern)a=t.suggestedPattern;else try{a=await n(t,i)}catch{a=t.detail}if(i?.aborted)return ps.warn(`sudo approval aborted before prompting — denying`,{detail:t.detail}),Ct();if(!e)return ps.warn(`no CapabilityBroker injected for the sudo gesture hop — denying (composition bug, never a guessed transport)`,{detail:t.detail}),Ct();let o=await e.approvals.request({kind:t.kind,detail:t.detail,suggestedPattern:a,...t.requester?{requester:t.requester}:{},...t.reason?{reason:t.reason}:{},...t.approver?{approver:t.approver}:{},...i?{signal:i}:{}});return o.ok?Dt(o.value,a):(ps.warn(`capability broker approvals.request failed — denying`,{message:o.message}),Ct())}}}const hs=e(`sudo:tray-first`);function gs(e,t={}){let n=t.suggest??ds,r=t.timeoutMs??6e5,i=t.getClient??(async()=>{let{getPanelRpcClient:e}=await import(`./panel-rpc-CR9k3qWE.js`).then(e=>e.r);return e()});return{async requestApproval(t,a){if(a?.signal?.aborted)return Ct();let o=t.suggestedPattern;if(!o)try{o=await n(t,a?.signal)}catch{o=t.detail}let s={...t,suggestedPattern:o},c=null;try{c=await i()}catch(e){hs.debug?.(`panel-RPC client lookup threw — using native broker`,{error:e instanceof Error?e.message:String(e)})}if(c)try{let e=await c.call(`sudo-request`,{request:s,mode:`tray-first`},{timeoutMs:r});if(e?.handled!==!1)return vs(e?.decision,o)}catch(e){hs.warn(`tray-first sudo probe failed — using native broker`,{error:e instanceof Error?e.message:String(e)})}return e.requestApproval(s,a)}}}const _s=[`user-timeout`,`cone-timeout`,`unavailable`];function vs(e,t){if(!e||typeof e!=`object`)return Ct();let n=e,r=n.attestation===`biometric`||n.attestation===`passcode`||n.attestation===`none`?n.attestation:void 0;if(n.decision===`allow`)return{decision:`allow`,...r?{attestation:r}:{}};if(n.decision===`always`)return{decision:`always`,pattern:typeof n.pattern==`string`&&n.pattern.trim().length>0?n.pattern.trim():t,...r?{attestation:r}:{}};if(n.decision!==`deny`)return Ct();let i=_s.find(e=>e===n.reason);return i?{decision:`deny`,reason:i}:{decision:`deny`}}function ys(e,t){return{requestApproval(n){return t.enqueueSudoRequest(e,n)}}}function bs(){return`lick-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}var xs=class{pending=new Map;timeoutMs;newId;setTimer;clearTimer;onAutoSettle;constructor(e={}){this.timeoutMs=e.timeoutMs??3e5,this.newId=e.newId??bs,this.setTimer=e.setTimer??((e,t)=>setTimeout(e,t)),this.clearTimer=e.clearTimer??(e=>clearTimeout(e)),this.onAutoSettle=e.onAutoSettle??(()=>{})}notifyAutoSettle(e,t,n){try{this.onAutoSettle(e,t,n)}catch{}}register(e,t,n){let r=this.newId();return{id:r,pending:new Promise(i=>{let a=null;Number.isFinite(this.timeoutMs)&&this.timeoutMs>0&&(a=this.setTimer(()=>{let e=this.pending.get(r);e&&(this.pending.delete(r),e.resolve(ae(`cone-timeout`)),this.notifyAutoSettle(r,`expired`,e.scoopJid))},this.timeoutMs)),this.pending.set(r,{scoopJid:e,request:t,resolve:i,timerHandle:a,approverJid:n})})}}resolve(e,t){let n=this.pending.get(e);return n?(this.pending.delete(e),n.timerHandle!=null&&this.clearTimer(n.timerHandle),n.resolve(t),!0):!1}failScoop(e){let t=0;for(let[n,r]of this.pending)r.scoopJid===e&&(this.pending.delete(n),r.timerHandle!=null&&this.clearTimer(r.timerHandle),r.resolve({decision:`deny`,reason:`unavailable`}),this.notifyAutoSettle(n,`scoop-dropped`,r.scoopJid),t++);return t}failAll(){let e=0;for(let[t,n]of this.pending)n.timerHandle!=null&&this.clearTimer(n.timerHandle),n.resolve({decision:`deny`,reason:`unavailable`}),this.notifyAutoSettle(t,`shutdown`,n.scoopJid),e++;return this.pending.clear(),e}get(e){let t=this.pending.get(e);return t?{id:e,scoopJid:t.scoopJid,request:t.request,...t.approverJid?{approverJid:t.approverJid}:{}}:null}list(){let e=[];for(let[t,n]of this.pending)e.push({id:t,scoopJid:n.scoopJid,request:n.request,...n.approverJid?{approverJid:n.approverJid}:{}});return e}size(){return this.pending.size}};e(`sudo-panel`),typeof globalThis.confirm==`function`&&globalThis.confirm.bind(globalThis),typeof globalThis.prompt==`function`&&globalThis.prompt.bind(globalThis),e(`sudo:page`),e(`sudo`);function Ss(e){return re(Cs(e))}function Cs(e){let t=ms(e);return e?.adapter===`extension-direct`||e?.adapter===`extension-delegate`?t:gs(t)}let ws=null;function Ts(e){return ws=e,()=>{ws===e&&(ws=null)}}function Es(){if(!ws)throw new za(`session-not-found`);return ws}const Ds=`focus`,Os={type:`leaf`,surfaceId:`chat`};function ks(e,t={},n={}){return{zones:{top:null,left:null,middle:null,right:null,bottom:null,...e},rowFr:{top:1,center:1,bottom:1,...n},colFr:{left:1,middle:1,right:1,...t}}}const As={focus:{name:`focus`,tree:ks({left:Os},{left:3,middle:1})}};function js(e){return As[e]??null}const Ms=`progress`;async function Ns(){try{let e=await Kt();if(e.cancelled)throw Error(`mount: cancelled`);if(e.error)throw Error(`mount: ${e.error}`);if(e.handleInIdb&&typeof e.idbKey==`string`){let t=await qt(e.idbKey);if(!t)throw Error(`mount: no directory handle found in storage`);return await Gt(t),t}throw Error(`mount: unexpected popup result`)}catch(e){throw Error(`mount: ${e instanceof Error?e.message:String(e)}`)}}async function Ps(){if(typeof window>`u`||!(`showDirectoryPicker`in window))throw Error(`mount: local picker requires a user gesture in the panel (unavailable in this runtime). Ask the agent to mount it instead.`);try{return await window.showDirectoryPicker({mode:`readwrite`})}catch(e){throw e instanceof Error&&e.name===`AbortError`?Error(`mount: cancelled`):Error(`mount: ${e instanceof Error?e.message:String(e)}`)}}async function Fs(e,t){let n;try{({grants:n}=await e.call(`permission-request`,{kinds:[`filesystem`],description:`A command in the terminal asks to mount a local directory at ${t}.`},{timeoutMs:3e5}))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(t.replace(/^permission-request: /,``))}let r=n.find(e=>e.kind===`filesystem`);if(!r||!(`idbKey`in r))throw Error(`no directory selected`);let i=await qt(r.idbKey);if(!i)throw Error(`no directory handle found in storage`);return await Gt(i),i}function Is(e){let t={positional:[],noProbe:!1,clearCache:!1,bodies:!1,json:!1};for(let n=0;n<e.length;n++){let r=e[n];if(r===`--source`)t.source=e[++n];else if(r===`--profile`)t.profile=e[++n];else if(r===`--backend`){let r=e[++n];r===`da`||r===`aem`?t.backend=r:t.backendError=r}else r===`--no-probe`?t.noProbe=!0:r===`--max-body-mb`?t.maxBodyMb=Number(e[++n]):r===`--clear-cache`?t.clearCache=!0:r===`--bodies`?t.bodies=!0:r===`--json`?t.json=!0:t.positional.push(r)}return t}function Ls(e){let t=e.match(/^(da|aem):\/\/([^/]+)\/([^/]+)(?:\/(.*))?$/);return t?{scheme:t[1],org:t[2],name:t[3],path:(t[4]??``).replace(/^\/+/,``).replace(/\/+$/,``)}:null}const Rs=new Set([`--source`,`--profile`,`--backend`,`--max-body-mb`]);function zs(e){for(let t=0;t<e.length;t++){let n=e[t];if(n===`--`)return!1;if(n===`--help`||n===`-h`)return!0;Rs.has(n)&&t++}return!1}function Bs(e){return`aem://${e.org}/${e.name}${e.path?`/${e.path}`:``}`}var Vs=class{options;signedFetchS3;signedFetchDa;constructor(e){this.options=e,this.signedFetchS3=e.signedFetchS3,this.signedFetchDa=e.signedFetchDa}async execute(e,t,n){let r=e[0];if(r===`--help`||r===`-h`)return this.help();if(r===`unmount`||r===`-u`)return this.handleUnmount(e.slice(1),t,`mount unmount`);if(r===`list`||r===`-l`||r===`--list`)return this.handleList();if(r===`refresh`)return this.handleRefresh(e.slice(1),t,n);if(r===`info`)return this.handleInfo(e.slice(1),t);let i=Is(e);if(i.positional.length===0)return this.usageError(`mount: mount point required`);let a=this.resolvePath(i.positional[0],t);return i.backendError===void 0?i.source?i.source.startsWith(`s3://`)?this.mountS3(a,i):i.source.startsWith(`da://`)||i.source.startsWith(`aem://`)?this.mountAdobe(a,i):this.usageError(`mount: invalid source '${i.source}' — expected s3://..., da://... or aem://...`):this.mountLocal(a,n):this.usageError(`mount: invalid --backend '${i.backendError}' — expected 'da' or 'aem'`)}async executeUmount(e,t){return this.handleUnmount(e,t,`umount`)}async mountLocal(e,t){try{if((this.options.isScoop??(()=>!1))())throw Error(`mount: cannot mount local directories from a scoop (no UI). Ask the cone.`);let n=Be();if(!n){let n=await Hs(e);if(n)return await this.options.fs.mount(e,n,{env:t}),{stdout:`Mounted '${n.describe().displayName}' → ${e}\nIndexing in background for fast file discovery.\nNote: External changes are not auto-detected — use 'mount refresh ${e}' after modifying files outside the browser.\n`,stderr:``,exitCode:0}}let r=be()?null:b(),i;if(n){let t=this.options.acquireLocalMountViaToolUI;if(!t)throw Error(`mount: tool UI not available in this runtime`);i=await t(n,e)}else i=te()?await Ns():r?await Fs(r,e):await Ps();let a=Ze.fromHandle(i,{mountId:it()});return await this.options.fs.mount(e,a,{env:t}),{stdout:`Mounted '${a.describe().displayName}' → ${e}\nIndexing in background for fast file discovery.\nNote: External changes are not auto-detected — use 'mount refresh ${e}' after modifying files outside the browser.\n`,stderr:``,exitCode:0}}catch(e){return{stdout:``,stderr:`mount: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async mountS3(e,t){if(!t.source)return this.usageError(`mount: --source required`);let n=t.profile??`default`,r=it(),i=new at({mountId:r,ttlMs:3e4}),a=new $e({source:t.source,profile:n,cache:i,maxBodyBytes:t.maxBodyMb?t.maxBodyMb*1024*1024:void 0,mountId:r,signedFetch:this.signedFetchS3??et(n)});if(!t.noProbe)try{await a.readDir(`/`)}catch(e){return await a.close(),{stdout:``,stderr:`mount: probe failed for ${t.source} — ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}return await this.options.fs.mount(e,a),{stdout:`Mounted '${a.describe().displayName}' → ${e} (profile: ${n})\n`,stderr:``,exitCode:0}}async mountAdobe(e,t){if(!t.source)return this.usageError(`mount: --source required`);let n=t.profile??`default`,r=this.signedFetchDa??rt(),i=Ls(t.source);if(!i)return this.usageError(`mount: invalid source '${t.source}' — expected da://org/repo or aem://org/site`);let a=i.scheme===`aem`?`aem`:`da`,o=``;if(t.backend)a=t.backend;else if(i.scheme===`da`)try{a=(await zo(i.org,i.name,r)).backend,a===`aem`&&(o=`mount: ${i.org}/${i.name} is on Helix 6 — its content lives in the Source Bus at https://api.aem.live/${i.org}/sites/${i.name}/source, not admin.da.live. Mounting through aem://${i.org}/${i.name}. Pass --backend da to force the old endpoint.\n`)}catch(e){return{stdout:``,stderr:`mount: could not determine the content source for ${t.source} — ${e instanceof Error?e.message:String(e)}. Pass --backend da or --backend aem to skip this probe.\n`,exitCode:1}}let s=it(),c=new at({mountId:s,ttlMs:3e4}),l={source:a===`aem`?Bs(i):`da://${i.org}/${i.name}${i.path?`/${i.path}`:``}`,profile:n,cache:c,maxBodyBytes:t.maxBodyMb?t.maxBodyMb*1024*1024:void 0,mountId:s,signedFetch:r},u=a===`aem`?new nt(l):new Qe(l);if(!t.noProbe)try{await u.readDir(`/`)}catch(e){return await u.close(),{stdout:``,stderr:o+`mount: probe failed for ${l.source} — ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}return await this.options.fs.mount(e,u),{stdout:`Mounted '${u.describe().displayName}' → ${e} (profile: ${n})\n`,stderr:o,exitCode:0}}async handleUnmount(e,t,n){if(zs(e))return n===`umount`?this.umountHelp():this.help();let r=Is(e);if(r.positional.length===0)return{stdout:``,stderr:`${n}: path required\n`,exitCode:1};let i=this.resolvePath(r.positional[0],t);try{let e,t;if(r.clearCache){let{getAllMountEntries:n}=await import(`./mount-table-store-DrF_Ifaz.js`).then(e=>e.r),r=(await n()).find(e=>e.targetPath===i),a=r?.descriptor.kind;r&&(a===`s3`||a===`da`||a===`aem`)&&(e=r.descriptor.mountId,t=r.descriptor.kind)}await this.options.fs.unmount(i);let n=``;if(r.clearCache&&e&&t){let{RemoteMountCache:t}=await import(`./remote-cache-UwMD8EkX.js`).then(e=>e.n);await new t({mountId:e,ttlMs:3e4}).clearMount(),n=` (cache cleared)`}else r.clearCache&&(n=` (no remote cache to clear)`);return{stdout:`Unmounted ${i}${n}\n`,stderr:``,exitCode:0}}catch(e){return{stdout:``,stderr:`${n}: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async handleList(){try{let e=this.options.fs.listMounts();if(e.length===0)return{stdout:`No active mounts
|
|
@@ -288,7 +288,7 @@ Examples:
|
|
|
288
288
|
skill list
|
|
289
289
|
skill info bluebubbles
|
|
290
290
|
skill read bluebubbles
|
|
291
|
-
`,stderr:``,exitCode:0};let r=t[0],i=await import(`./kernel-worker-
|
|
291
|
+
`,stderr:``,exitCode:0};let r=t[0],i=await import(`./kernel-worker-C9FIXco3.js`).then(e=>e.r);try{switch(r){case`list`:return Wh(t,e,i,n.env.get(`PATH`));case`info`:{let n=t[1];if(!n)return{stdout:``,stderr:`skill: info requires a skill name
|
|
292
292
|
`,exitCode:1};let r=await i.getSkillInfo(e,n);return r?{stdout:Hh(r),stderr:``,exitCode:0}:{stdout:``,stderr:`skill: "${n}" not found\n`,exitCode:1}}case`read`:{let n=t[1];if(!n)return{stdout:``,stderr:`skill: read requires a skill name
|
|
293
293
|
`,exitCode:1};let r=await i.readSkillInstructions(e,n);return r===null?{stdout:``,stderr:`skill: no SKILL.md found for "${n}"\n`,exitCode:1}:{stdout:r+`
|
|
294
294
|
`,stderr:``,exitCode:0}}default:return{stdout:``,stderr:`skill: unknown command "${r}"\n`,exitCode:1}}}catch(e){return{stdout:``,stderr:`skill: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}})}const Kh=[{names:[`--branch`,`-b`],validate:e=>!e.startsWith(`-`)&&i(e),error:`upskill: --branch must be a git ref of [A-Za-z0-9._/-]+ with no "..", leading "-"/"/", trailing "/" or ".lock", or shell metacharacters`,apply:(e,t)=>{e.branch=t}},{names:[`--from`],validate:e=>Zi(e)!==null,error:`upskill: --from requires a GitHub source (owner/repo, owner/repo@branch, or a github.com URL)`,apply:(e,t)=>{e.from=t}},{names:[`--path`,`-p`],validate:e=>o(e),error:`upskill: --path must be a repo-relative sub-path of [A-Za-z0-9._/-]+ with no "..", leading "-"/"/", or shell metacharacters`,apply:(e,t)=>{e.path=t}}];function qh(e){let t={skills:[],dryRun:!1,json:!1};for(let n=0;n<e.length;n++){let r=e[n],i=Kh.find(e=>e.names.includes(r));if(i){let r=e[++n];if(!r||!i.validate(r))return t.error=i.error,t;i.apply(t,r)}else if(r===`--dry-run`||r===`-n`)t.dryRun=!0;else if(r===`--json`)t.json=!0;else if(r.startsWith(`-`))return t.error=`upskill: unknown option "${r}" for update`,t;else t.skills.push(r)}return t}function Jh(e,t){return!e||!t||e.byteLength!==t.byteLength?!1:e.every((e,n)=>e===t[n])}async function Yh(e,t){try{let n=await e.readFile(t,{encoding:`binary`});return n instanceof Uint8Array?n:new TextEncoder().encode(String(n))}catch{return}}async function Xh(e,t,n,r){let i=await Yh(e,t);return Li(n)?i?{status:`kept-local`,write:!1}:{status:`added`,write:!0}:i?Jh(i,r)?{status:`unchanged`,write:!1}:{status:`updated`,write:!0}:{status:`added`,write:!0}}async function Zh(e,t,n,r){let i={changes:[],writes:[],removals:[]};for(let[r,a]of n){let n=`${t}/${r}`,{status:o,write:s}=await Xh(e,n,r,a);i.changes.push({path:r,status:o}),s&&i.writes.push({path:n,content:a})}let a=new Set(r.files??[]);for(let r of await Ri(e,t)){if(n.has(r))continue;let e=a.has(r);i.changes.push({path:r,status:e?`removed`:`kept-local`}),e&&i.removals.push(`${t}/${r}`)}return i.changes.sort((e,t)=>e.path.localeCompare(t.path)),i}async function Qh(e,t,n,r,i,a){let o={skill:n,source:`${r.kind}:${r.source}`,ref:i??r.ref,from:r.sha,outcome:`current`,changes:[]},[s,c]=r.source.split(`/`);if(!s||!c)return{...o,outcome:`error`,error:`unusable source "${r.source}"`};let l=(r.path??``).replace(/^\/|\/$/g,``),u=await Ui(t),d=await Gi(s,c,o.ref,u,!0,l||void 0);if(d&&r.sha===d&&await $h(e,n,r))return{...o,to:d,outcome:`current`,changes:[]};let f=await eg(s,c,l,n,o.ref,t,u);if(`error`in f)return{...o,outcome:`error`,error:f.error};let p=f.files,m=f.path;if(p.size===0)return{...o,outcome:`error`,error:`no files at ${s}/${c}${m?`/${m}`:``} — the skill may have moved or been removed upstream`};let{changes:h,writes:g,removals:_}=await Zh(e,`${Ai}/${n}`,p,r),v=g.length>0||_.length>0;if(a)return{...o,outcome:v?`updated`:`current`,changes:h};let ee=d??r.sha;return v&&await ag(e,{changes:h,writes:g,removals:_}),await Ki(e,n,{...r,ref:o.ref,path:m,sha:ee,files:[...p.keys()].sort()}),{...o,to:ee,outcome:v?`updated`:`current`,changes:h}}async function $h(e,t,n){if(!n.files?.length)return!1;for(let r of n.files)if(!await e.exists(`/workspace/skills/${t}/${r}`))return!1;return!0}async function eg(e,t,n,r,i,a,o){let s=await Bi(e,t,a,i??`main`);if(s.status===`ok`){let i=Fi(s.files),a=n||tg(i,r);return a===null?{error:`could not find "${r}/SKILL.md" in ${e}/${t} — pass --path <dir> to say where the skill lives`}:{files:ig(i,a),path:a}}try{return{files:rg(ng(await zi(e,t,n,i,o))),path:n}}catch(e){let t=e instanceof Error?e.message:String(e);return{error:`${s.message}; Contents API fallback failed: ${t}`}}}function tg(e,t){let n=[];for(let r of Object.keys(e))r===`SKILL.md`?n.push(``):(r.endsWith(`/${t}/SKILL.md`)||r===`${t}/SKILL.md`)&&n.push(r.slice(0,-9));return n.length===0?null:(n.sort((e,t)=>e.split(`/`).length-t.split(`/`).length||e.localeCompare(t)),n[0])}function ng(e){return new Map([...e].filter(([e])=>Ii(e)))}function rg(e){return new Map([...e].sort(([e],[t])=>e.localeCompare(t)))}function ig(e,t){let n=t?`${t}/`:``,r=new Map;for(let[t,i]of Object.entries(e)){if(!t.startsWith(n)||t.endsWith(`/`))continue;let e=t.slice(n.length);Ii(e)&&r.set(e,i)}return rg(r)}async function ag(e,t){for(let n of t.writes){let t=n.path.slice(0,n.path.lastIndexOf(`/`));await e.mkdir(t,{recursive:!0}),await e.writeFile(n.path,n.content)}for(let n of t.removals)await e.rm(n).catch(()=>{})}async function og(e,t,n,r,i){let a={skill:n,source:`${r.kind}:${r.source}`,outcome:`current`,changes:[]},[o,s]=r.source.split(`/`);if(!o||!s)return{...a,outcome:`error`,error:`unusable source "${r.source}"`};let c=await Lh(o,s,t);if(!c.ok)return{...a,outcome:`error`,error:c.error};let l=`${Ai}/${n}/SKILL.md`,u=await Yh(e,l),d=new TextEncoder().encode(c.content),f=u!==void 0&&Fh(new TextDecoder().decode(u))===Fh(c.content);if(Jh(u,d)||f)return{...a,changes:[{path:`SKILL.md`,status:`unchanged`}]};let p=u?`updated`:`added`;return i||(await e.mkdir(`${Ai}/${n}`,{recursive:!0}),await e.writeFile(l,d),await Ki(e,n,{...r,files:[`SKILL.md`]})),{...a,outcome:`updated`,changes:[{path:`SKILL.md`,status:p}]}}function sg(e,t){if(e.outcome===`error`)return` ${e.skill}: failed — ${e.error}\n`;let n=new Map;for(let t of e.changes)n.set(t.status,(n.get(t.status)??0)+1);let r=e.to&&e.to!==e.from?` → ${e.to.slice(0,7)}`:``;if(e.outcome===`current`)return` ${e.skill}: already current (${e.source}${r})\n`;let i=t?`would update`:`updated`,a=` ${e.skill}: ${i} from ${e.source}${r}\n`;for(let t of e.changes)t.status!==`unchanged`&&(a+=` ${t.status.padEnd(10)} ${t.path}\n`);let o=n.get(`kept-local`)??0;return o>0&&(a+=` (${o} kept-local — dotfiles and local additions are never touched)\n`),a}function cg(e,t,n,r){let i=Zi(t);return i?{version:1,kind:`github`,source:`${i.owner}/${i.repo}`,skill:e,ref:r??i.branch,path:n??i.path,installed:new Date().toISOString()}:null}async function lg(e,t,n){if(t.length===0){let t=await Wi(e);return{targets:t.provenanced,missing:[],skipped:t.unattributed}}let r=[],i=[];for(let a of t){let t=await qi(e,a);if(t){r.push({name:a,provenance:t});continue}if(!await e.exists(`/workspace/skills/${a}`)){i.push({name:a,reason:`not-installed`});continue}let o=n.from?cg(a,n.from,n.path,n.branch):null;o?r.push({name:a,provenance:o}):i.push({name:a,reason:`no-provenance`})}return{targets:r,missing:i,skipped:[]}}function ug(e){return e.reason===`not-installed`?`upskill: no skill named "${e.name}" is installed — check \`upskill list\`
|
|
@@ -299,7 +299,7 @@ Examples:
|
|
|
299
299
|
`}function pg(e,t,n,r,i){let a=t?`Skill update (dry run — nothing written):
|
|
300
300
|
`:`Skill update:
|
|
301
301
|
`;for(let n of e)a+=sg(n,t);if(i.length>0&&(a+=fg(i)),!n&&r&&e.length>0){let n=i.length>0?`all ${dg(e.length,`skill`)} with provenance ${e.length===1?`is`:`are`}`:`all skills are`;a+=t?`\n${n.charAt(0).toUpperCase()}${n.slice(1)} current.\n`:`\nNothing to update — ${n} current.\n`}return a}async function mg(e,t,n){let{targets:r,missing:i,skipped:a}=await lg(e,n.skills,{skills:n.skills,dryRun:n.dryRun,json:!1,branch:n.branch,from:n.from,path:n.path}),o=[];for(let i of r)o.push(i.provenance.kind===`browse.sh`?await og(e,t,i.name,i.provenance,n.dryRun):await Qh(e,t,i.name,i.provenance,n.branch,n.dryRun));return{results:o,skipped:a,missing:i}}async function hg(e,t,n){let r=qh(e);if(r.error)return{stdout:``,stderr:`${r.error}\n`,exitCode:1};let{results:i,missing:a,skipped:o}=await mg(t,n,r);if(i.length===0)return a.length===0&&o.length>0?{stdout:r.json?`${JSON.stringify({ok:!0,dryRun:r.dryRun,results:[],skipped:o})}\n`:pg([],r.dryRun,!1,!0,o),stderr:``,exitCode:0}:{stdout:``,stderr:a.length?a.map(ug).join(``):"upskill: no skill has install provenance yet — reinstall a skill, or run `upskill update <skill> --from <owner>/<repo>`, to record its source\n",exitCode:1};let s=i.filter(e=>e.outcome===`error`),c=i.some(e=>e.outcome===`updated`);c&&!r.dryRun&&await Xi();let l=a.map(ug).join(``)+s.map(e=>`upskill: ${e.skill}: ${e.error}\n`).join(``),u=s.length===0&&a.length===0;return r.json?{stdout:`${JSON.stringify({ok:u,dryRun:r.dryRun,results:i,skipped:o})}\n`,stderr:l,exitCode:+!u}:{stdout:pg(i,r.dryRun,c,u,o),stderr:l,exitCode:+!u}}function gg(e){let t={outdated:!1,json:!1};for(let n of e)if(n===`--outdated`)t.outdated=!0;else if(n===`--json`)t.json=!0;else if(n.startsWith(`-`))return t.error=`upskill: unknown option "${n}" for list`,t;else return t.error=`upskill: unexpected argument "${n}" for list`,t;return t}function _g(e){return e.to&&e.from&&e.to!==e.from?` ${e.from.slice(0,7)} → ${e.to.slice(0,7)}`:e.to?` ${e.to.slice(0,7)}`:``}function vg(e,t){let n=e.filter(e=>e.outcome===`updated`),r=[];if(n.length===0)r.push(`No outdated skills.`);else{r.push(`Outdated skills:`,``);for(let e of n)r.push(` ${e.skill} ${e.source}${_g(e)}`)}if(t.length>0){let e=t.length===1?`skill`:`skills`;r.push(``,`Skipped ${t.length} ${e} with no install provenance — not checked.`)}let i=e.filter(e=>e.outcome===`error`);if(i.length>0){let e=i.length===1?`skill`:`skills`;r.push(``,`Could not check ${i.length} ${e}:`);for(let e of i)r.push(` ${e.skill}: failed — ${e.error}`)}return`${r.join(`
|
|
302
|
-
`)}\n`}async function yg(e,t,n){let r=await(await import(`./kernel-worker-
|
|
302
|
+
`)}\n`}async function yg(e,t,n){let r=await(await import(`./kernel-worker-C9FIXco3.js`).then(e=>e.r)).discoverSkills(e),{collisions:i}=await br(e,_r(n));return t?{stdout:`${JSON.stringify({ok:!0,skills:r,commandCollisions:i})}\n`,stderr:``,exitCode:0}:r.length===0?{stdout:`No discoverable local skills found.\n\n${zh()}`,stderr:``,exitCode:0}:{...xr(`upskill`,Vh(r,`Discoverable local skills`),i,{builtinNames:new Set(ft())}),exitCode:0}}async function bg(e,t,n){let{results:r,skipped:i}=await mg(e,t,{skills:[],dryRun:!0}),a=r.filter(e=>e.outcome===`updated`),o=r.filter(e=>e.outcome===`error`),s=o.length===0,c=o.map(e=>`upskill: ${e.skill}: ${e.error}\n`).join(``);return n?{stdout:`${JSON.stringify({ok:s,results:[...a,...o],skipped:i})}\n`,stderr:c,exitCode:+!s}:{stdout:vg(r,i),stderr:c,exitCode:+!s}}async function xg(e,t,n,r){let i=gg(e);return i.error?{stdout:``,stderr:`${i.error}\n`,exitCode:1}:i.outdated?bg(t,n,i.json):yg(t,i.json,r)}async function Sg(e,t){let n=`${ji}/experimental/search?q=${encodeURIComponent(e)}&contentType=skills&page%5Bsize%5D=20`,r;try{r=await t(n,{headers:{Accept:`application/json`}})}catch(e){throw Error(Hi(e,n))}if(r.status!==200)throw Error(`Tessl returned HTTP ${r.status}`);let i=ke(r.body);if(!i.data)return[];let a=new Map;for(let e of i.data){if(e.type!==`skill`)continue;let t=e.attributes,n=Yi(t.sourceUrl),r=n?`${n.owner}/${n.repo}`:void 0,i=t.scores.aggregate==null?null:Math.round(t.scores.aggregate*100),o=t.sourceUrl||e.id,s=a.get(o);if(s&&s.qualityScore!=null&&i!=null&&s.qualityScore>=i)continue;let c=t.path.replace(/\/SKILL\.md$/i,``),l=c.split(`/`).pop()||t.name,u=n?`upskill ${n.owner}/${n.repo} --path ${c.split(`/`).slice(0,-1).join(`/`)||`.`} --skill ${l}`:`upskill tessl:${t.name}`;a.set(o,{name:t.name,displayName:t.name,summary:t.description||``,source:`tessl`,qualityScore:i,installHint:u,featured:t.featured,sourceRepo:r})}return Array.from(a.values())}async function Cg(e,t){let n=`${ji}/experimental/search?q=${encodeURIComponent(e)}&contentType=skills&page%5Bsize%5D=5`,r;try{r=await t(n,{headers:{Accept:`application/json`}})}catch(e){return{error:`Tessl search failed: ${Hi(e,n)}`}}if(r.status!==200)return{error:`Tessl search failed (HTTP ${r.status})`};let i=ke(r.body).data?.find(t=>t.type===`skill`&&t.attributes.name===e);if(!i)return{error:`skill "${e}" not found on Tessl registry`};let a=Yi(i.attributes.sourceUrl);if(!a)return{error:`skill "${e}" has no GitHub source URL`};let o=i.attributes.path.replace(/\/SKILL\.md$/i,``);return{owner:a.owner,repo:a.repo,skillPath:o,skillName:e}}const wg=[{label:`Tessl`,host:new URL(ji).host,fetch:Sg},{label:`browse.sh`,host:new URL(Pi).host,fetch:kh}];function Tg(e){let t=[],n=e.reduce((e,t)=>Math.max(e,t.length),0);for(let r=0;r<n;r++)for(let n of e)r<n.length&&t.push(n[r]);return t}async function Eg(e,t,n=1){let r=await Promise.allSettled(wg.map(n=>n.fetch(e,t))),i=r.map(e=>e.status===`fulfilled`?e.value:[]),a=r.every(e=>e.status===`rejected`),o=Tg(i),s=``;for(let e=0;e<r.length;e++){let t=r[e];if(t.status===`rejected`){let n=wg[e],r=t.reason instanceof Error?t.reason.message:String(t.reason);s+=`warning: ${n.label} registry unavailable (${n.host}): ${r}\n`}}if(o.length===0){let t=a?`${s}upskill: registries failed to respond\n`:s;return{stdout:`No skills found for "${e}"\n\nTry a different search term or browse the registries at https://tessl.io/registry or https://browse.sh\n`,stderr:t,exitCode:+!!a}}let c=o.length,l=Math.ceil(c/10),u=Math.max(1,Math.min(n,l)),d=(u-1)*10,f=o.slice(d,d+10),p=`Search results for "${e}" (page ${u}/${l}, ${c} total):\n\n`;for(let e of f){let t=e.qualityScore==null?` `:String(e.qualityScore).padStart(3),n=`[${e.source}]`,r=e.sourceRepo?` ${e.sourceRepo}`:``;p+=` ${e.name.padEnd(30)} ${t} ${n.padEnd(10)}${r}\n`,e.summary&&(p+=` ${e.summary}\n`),p+=`
|
|
303
303
|
`}return u<l&&(p+=`Showing ${d+1}-${d+f.length} of ${c}. `,p+=`Next page: upskill search ${e} --page ${u+1}\n\n`),p+=`To install:
|
|
304
304
|
`,p+=` From Tessl: upskill <owner/repo> --skill <name>
|
|
305
305
|
`,p+=` From browse.sh: upskill browse:<hostname>/<task>
|
|
@@ -322,7 +322,7 @@ Examples:
|
|
|
322
322
|
`,{stdout:s,stderr:``,exitCode:0}}function Ng(e){return!e||e.startsWith(`-`)?{stdout:``,stderr:`upskill: --branch requires a value
|
|
323
323
|
`,exitCode:1}:i(e)?null:{stdout:``,stderr:`upskill: --branch must be a git ref of [A-Za-z0-9._/-]+ with no "..", leading "-"/"/", trailing "/" or ".lock", or shell metacharacters
|
|
324
324
|
`,exitCode:1}}function Pg(e){let t={selectedSkills:[],listOnly:!1,installAll:!1,force:!1,sourceRef:``},n=0;for(;n<e.length;){let r=e[n];if(r===`--skill`)t.selectedSkills.push(e[++n]);else if(r===`--path`||r===`-p`){let r=e[++n];if(typeof r!=`string`||!o(r))return t.earlyReturn={stdout:``,stderr:`upskill: --path must be a repo-relative sub-path of [A-Za-z0-9._/-]+ with no "..", leading "-"/"/", or shell metacharacters
|
|
325
|
-
`,exitCode:1},t;t.subPath=r}else if(r===`--list`)t.listOnly=!0;else if(r===`--all`)t.installAll=!0;else if(r===`--force`)t.force=!0;else if(r===`--branch`||r===`-b`){let r=Ng(e[n+1]);if(r)return t.earlyReturn=r,t;t.branch=e[++n]}else r.startsWith(`-`)||(t.sourceRef=r);n++}return t}async function Fg(e,t,n){if(!t)return{stdout:``,stderr:`upskill: ${e} requires a skill name\n`,exitCode:1};let r=await import(`./kernel-worker-
|
|
325
|
+
`,exitCode:1},t;t.subPath=r}else if(r===`--list`)t.listOnly=!0;else if(r===`--all`)t.installAll=!0;else if(r===`--force`)t.force=!0;else if(r===`--branch`||r===`-b`){let r=Ng(e[n+1]);if(r)return t.earlyReturn=r,t;t.branch=e[++n]}else r.startsWith(`-`)||(t.sourceRef=r);n++}return t}async function Fg(e,t,n){if(!t)return{stdout:``,stderr:`upskill: ${e} requires a skill name\n`,exitCode:1};let r=await import(`./kernel-worker-C9FIXco3.js`).then(e=>e.r);if(e===`info`){let e=await r.getSkillInfo(n,t);if(!e)return{stdout:``,stderr:`upskill: skill "${t}" not found\n`,exitCode:1};let i=await qi(n,t),a=i?Ji(i):"Installed from: (no provenance recorded — reinstall to enable `upskill update`)\n";return{stdout:Hh(e)+a,stderr:``,exitCode:0}}let i=await r.readSkillInstructions(n,t);return i===null?{stdout:``,stderr:`upskill: no SKILL.md found for "${t}"\n`,exitCode:1}:{stdout:i+`
|
|
326
326
|
`,stderr:``,exitCode:0}}async function Ig(e,t,n,r,i,a,o,s){let c=``,l=``,u=0,d=e.length;for(let f=0;f<e.length;f++){let p=e[f],m=await $i(p.path,p.name,r,i,a,s?{...s,path:p.path}:void 0),h=f+1,g=((Date.now()-o)/1e3).toFixed(1),_=(Date.now()-o)/h,v=h<d?` (~${Math.round((d-h)*_/1e3)}s remaining)`:``;m.ok?(c+=`[${h}/${d}] Installed "${p.name}" from ${t}/${n} (${g}s)${v}\n`,u++):(c+=`[${h}/${d}] Failed "${p.name}": ${m.error}${v}\n`,l+=`upskill: ${m.error}\n`)}return{output:c,errors:l,successCount:u}}async function Lg(e,t,n,r,i,a,o,s){let c=``,l=``,u=0,d=e.length;for(let f=0;f<e.length;f++){let p=e[f],m=await Qi(t,n,p.path,p.name,i,r,a,void 0,o),h=f+1,g=((Date.now()-s)/1e3).toFixed(1),_=(Date.now()-s)/h,v=h<d?` (~${Math.round((d-h)*_/1e3)}s remaining)`:``;m.exitCode===0?(c+=`[${h}/${d}] Installed "${p.name}" from ${t}/${n} (${g}s)${v}\n`,u++):(c+=`[${h}/${d}] Failed "${p.name}": ${m.stderr.trim()}${v}\n`,l+=m.stderr)}return{output:c,errors:l,successCount:u}}async function Rg(e,t,n,r,i,a,o,s){let c=``,l=``,u=0;for(let d of e){let e=await Qi(t,n,d.path,d.name,i,r,a,o,s);e.exitCode===0?(c+=e.stdout,u++):l+=e.stderr}return{output:c,errors:l,successCount:u}}function zg(e,t,n){let r=`Available skills in ${t}/${n}:\n\n`;for(let t of e)r+=` ${t.name.padEnd(30)} ${t.path}\n`;return r+=`\nFound ${e.length} skill(s)\n`,r}async function Bg(e,t,n,r){let{owner:i,repo:a}=e,o=t.branch??e.branch,s=t.subPath??e.path,c=await Ui(r),l=await ea(i,a,c,s,r,o);if(l.error)return{stdout:``,stderr:`upskill: failed to list skills: ${l.error}\n`,exitCode:1};if(l.skills.length===0)return{stdout:`No skills found in ${i}/${a}${s?`/`+s:``}\n`,stderr:``,exitCode:0};if(t.listOnly)return{stdout:zg(l.skills,i,a)+`\nTo install: upskill ${t.sourceRef} --skill <name>\nTo install all: upskill ${t.sourceRef} --all\n`,stderr:``,exitCode:0};let u=l.skills;if(t.selectedSkills.length>0){u=l.skills.filter(e=>t.selectedSkills.includes(e.name));for(let e of t.selectedSkills)if(!l.skills.find(t=>t.name===e))return{stdout:``,stderr:`upskill: skill "${e}" not found in ${i}/${a}\n`,exitCode:1}}else if(!t.installAll)return{stdout:zg(l.skills,i,a)+`\nTo install specific skills: upskill ${t.sourceRef} --skill <name>\nTo install all: upskill ${t.sourceRef} --all\n`,stderr:``,exitCode:0};let d=u.length,f=Date.now(),p=``,m=``,h=0;if(d>1){let e=await Bi(i,a,r,o);if(e.status===`ok`){let r=await Gi(i,a,o,c,!0,s),l=await Ig(u,i,a,Fi(e.files),n,t.force,f,{kind:`github`,source:`${i}/${a}`,ref:o,sha:r});({output:p,errors:m,successCount:h}=l)}else{let e=await Lg(u,i,a,c,n,t.force,o,f);({output:p,errors:m,successCount:h}=e)}}else({output:p,errors:m,successCount:h}=await Rg(u,i,a,c,n,t.force,r,o));let g=((Date.now()-f)/1e3).toFixed(1);return h>0&&(p+=`\nInstalled ${h} skill(s)${d>1?` in ${g}s`:``}\n`,await Xi()),{stdout:p,stderr:m,exitCode:+!!m}}async function Vg(e,t,n,r,i){switch(e[0]){case`tabs`:return jg(t,n,r,e.includes(`--json`));case`recommendations`:return Mg(t,n,e.includes(`--install`));case`update`:case`upgrade`:return hg(e.slice(1),t,n);case`list`:return xg(e.slice(1),t,n,i);case`info`:case`read`:return Fg(e[0],e[1],t);case`search`:return Ug(e,n);default:return null}}function Hg(e,t,n){return C(`upskill`,async(r,i)=>{if(r.length===0||r.includes(`--help`)||r.includes(`-h`))return Uh();let a=await Vg(r,e,t,n,i.env.get(`PATH`));if(a)return a;let o=Pg(r);if(o.earlyReturn)return o.earlyReturn;if(!o.sourceRef)return Uh();if(o.sourceRef.startsWith(`tessl:`))return Wg(o.sourceRef,o.force,e,t);let s=Mh(o.sourceRef);if(s)return Rh(s.hostname,s.task,e,t,o.force);let c=Zi(o.sourceRef);return c?Bg(c,o,e,t):{stdout:``,stderr:`upskill: unrecognized source "${o.sourceRef}"\n\nExpected: owner/repo, tessl:<name>, or browse:<hostname>/<task>\n`,exitCode:1}})}async function Ug(e,t){let n=[...e.slice(1)],r=n.indexOf(`--page`),i=1;r>=0&&(i=parseInt(n[r+1],10)||1,n.splice(r,2));let a=n.join(` `);return a?Eg(a,t,i):Uh()}async function Wg(e,t,n,r){let i=e.slice(6);if(!i)return{stdout:``,stderr:`upskill: tessl: requires a skill name
|
|
327
327
|
`,exitCode:1};let a=await Cg(i,r);if(`error`in a)return{stdout:``,stderr:`upskill: ${a.error}\n`,exitCode:1};let o=await Ui(r);return Qi(a.owner,a.repo,a.skillPath,a.skillName,n,o,t,r)}function Gg(){return{stdout:`usage: afplay [-v volume] [-r rate] <file>
|
|
328
328
|
|
|
@@ -1353,7 +1353,7 @@ Options:
|
|
|
1353
1353
|
--global Resolve only from the shared global prefix (/shared/lib/node_modules)
|
|
1354
1354
|
-h, --help Show this help message
|
|
1355
1355
|
`}async function tk(e,t){let n=await e.readFile(t);return typeof n==`string`?n:new TextDecoder().decode(n)}async function nk(e,t){try{return(await e.stat(t)).type===`file`}catch{return!1}}async function rk(e,t){try{return(await e.stat(t)).type===`directory`}catch{return!1}}function*ik(e,t=!1){if(t){yield hr;return}let n=x(e);for(;yield S(n,`node_modules`),n!==`/`;)n=We(n).dir;yield hr}async function ak(e,t,n,r=!1){for(let i of ik(t,r)){let t=S(i,`.bin`,n);if(!await nk(e,t))continue;let r=await tk(e,t),a=$O.exec(r),o=We(t).dir;return{binFilePath:a?S(o,a[1]):t,argvName:t}}return null}function ok(e){if(e.startsWith(`@`)){let t=e.indexOf(`/`);if(t!==-1)return e.slice(t+1)}return e}function sk(e,t){if(typeof e==`string`)return{binName:ok(t),binPath:e};if(typeof e!=`object`||!e)return null;let n=[t,ok(t)];for(let t of n){let n=Object.getOwnPropertyDescriptor(e,t)?.value;if(typeof n==`string`)return{binName:t,binPath:n}}let r=Object.entries(e).filter(e=>typeof e[1]==`string`);if(r.length===1){let[e,t]=r[0];return{binName:e,binPath:t}}return null}async function ck(e,t,n,r=!1){for(let i of ik(t,r)){let t=S(i,n),r=S(t,`package.json`);if(!await nk(e,r))continue;let a;try{a=JSON.parse(await tk(e,r))}catch{return null}let o=sk(a.bin,n);if(!o)return null;let s=o.binPath.replace(/^\.\//,``);return{binFilePath:S(t,s),argvName:S(i,`.bin`,o.binName)}}return null}async function lk(e,t,n,r=!1){return await ak(e,t,n,r)??await ck(e,t,n,r)}async function uk(e,t,n){for(let r of ik(t))if(await nk(e,S(r,n,`package.json`)))return!0;return!1}function dk(e){return e instanceof Error?e.message:String(e)}function fk(e,t){return{stdout:``,stderr:`${e}: ${t}\n`,exitCode:1}}async function pk(e,t,n,r){try{let{installPackages:i}=await import(`./installer-iQBJzSUD.js`),a=await i([t],{fs:r.fs,fetch:r.fetch,cwd:n.cwd});if(a.errors.length>0)return{error:fk(e,`failed to install '${t}': ${dk(a.errors[0].error)}`)};let o=a.results.map(t=>`${e}: installed ${t.name}@${t.version}`);return{progress:o.length>0?`${o.join(`
|
|
1356
|
-
`)}\n`:``}}catch(n){return{error:fk(e,`failed to install '${t}': ${dk(n)}`)}}}async function mk(e,t,n,r){return await nk(r,n)?null:await rk(r,n)?fk(e,`bin target '${n}' is a directory, not a file`):fk(e,`bin file '${n}' for '${t}' does not exist`)}async function hk(e,t,n,r,i,a){if(await uk(a.fs,i.cwd,t))return{error:fk(e,`package '${t}' does not expose an executable bin`)};let o=r?void 0:XO(t);if(o)return{error:{stdout:``,stderr:QO(e,t,n,o),exitCode:1}};let s=await pk(e,t,i,a);if(`error`in s)return s;let c=await lk(a.fs,i.cwd,t);return c?{resolved:c,installProgress:s.progress}:{error:fk(e,`package '${t}' was installed but does not expose an executable bin`)}}function gk(e,t){return{name:e,trusted:!0,async execute(n,r){if(n.length===0||n[0]===`--help`||n[0]===`-h`)return{stdout:ek(e),stderr:``,exitCode:+(n.length===0)};let i=n[0]===`--force`,a=i?n.slice(1):n,o=a[0]===`--global`;o&&(a=a.slice(1));let s=a;if(s.length===0)return{stdout:ek(e),stderr:``,exitCode:1};let c=s[0],l=s.slice(1),u;try{u=await lk(t.fs,r.cwd,c,o)}catch(t){return fk(e,dk(t))}let d=``;if(!u){if(o)return fk(e,`no global bin '${c}' found in ${hr}`);let n=await hk(e,c,l,i,r,t);if(`error`in n)return n.error;u=n.resolved,d=n.installProgress}let f=await mk(e,c,u.binFilePath,t.fs);if(f)return f;let p=_i(await tk(t.fs,u.binFilePath)),m=[`node`,u.argvName,...l],h=await hi(p,m,r,void 0,{filename:u.binFilePath});return{stdout:h.stdout,stderr:d+h.stderr,exitCode:h.exitCode}}}}function _k(e={}){return C(`jshd`,async(t,n)=>{let{runJshd:r}=await import(`./run-
|
|
1356
|
+
`)}\n`:``}}catch(n){return{error:fk(e,`failed to install '${t}': ${dk(n)}`)}}}async function mk(e,t,n,r){return await nk(r,n)?null:await rk(r,n)?fk(e,`bin target '${n}' is a directory, not a file`):fk(e,`bin file '${n}' for '${t}' does not exist`)}async function hk(e,t,n,r,i,a){if(await uk(a.fs,i.cwd,t))return{error:fk(e,`package '${t}' does not expose an executable bin`)};let o=r?void 0:XO(t);if(o)return{error:{stdout:``,stderr:QO(e,t,n,o),exitCode:1}};let s=await pk(e,t,i,a);if(`error`in s)return s;let c=await lk(a.fs,i.cwd,t);return c?{resolved:c,installProgress:s.progress}:{error:fk(e,`package '${t}' was installed but does not expose an executable bin`)}}function gk(e,t){return{name:e,trusted:!0,async execute(n,r){if(n.length===0||n[0]===`--help`||n[0]===`-h`)return{stdout:ek(e),stderr:``,exitCode:+(n.length===0)};let i=n[0]===`--force`,a=i?n.slice(1):n,o=a[0]===`--global`;o&&(a=a.slice(1));let s=a;if(s.length===0)return{stdout:ek(e),stderr:``,exitCode:1};let c=s[0],l=s.slice(1),u;try{u=await lk(t.fs,r.cwd,c,o)}catch(t){return fk(e,dk(t))}let d=``;if(!u){if(o)return fk(e,`no global bin '${c}' found in ${hr}`);let n=await hk(e,c,l,i,r,t);if(`error`in n)return n.error;u=n.resolved,d=n.installProgress}let f=await mk(e,c,u.binFilePath,t.fs);if(f)return f;let p=_i(await tk(t.fs,u.binFilePath)),m=[`node`,u.argvName,...l],h=await hi(p,m,r,void 0,{filename:u.binFilePath});return{stdout:h.stdout,stderr:d+h.stderr,exitCode:h.exitCode}}}}function _k(e={}){return C(`jshd`,async(t,n)=>{let{runJshd:r}=await import(`./run-DdLkDnJp.js`);return r(t,n,e)})}const vk=new Set([`SIGINT`,`SIGTERM`,`SIGKILL`,`SIGSTOP`,`SIGCONT`]);function yk(e={}){return C(`kill`,async t=>{if(t.length===0||t.includes(`--help`)||t.includes(`-h`))return Tk();let n=e.processManager??bk();if(!n)return{stdout:``,stderr:`kill: no process manager available in this runtime
|
|
1357
1357
|
`,exitCode:1};let r=xk(t);if(!r.ok)return{stdout:``,stderr:r.stderr,exitCode:r.exitCode};let{allDelivered:i,errors:a}=Sk(n,r.pids,r.signal);return{stdout:``,stderr:a.length?`${a.join(`
|
|
1358
1358
|
`)}\n`:``,exitCode:+!i}})}function bk(){let e=globalThis.__slicc_pm;return e instanceof Object&&typeof e.signal==`function`?e:null}function xk(e){let t=`SIGTERM`,n=[];for(let r=0;r<e.length;r++){let i=e[r];if(i===`-s`||i===`--signal`){let n=e[++r];if(!n)return{ok:!1,stderr:`kill: -s requires a signal name
|
|
1359
1359
|
`,exitCode:2};let i=Ck(n);if(i instanceof Error)return{ok:!1,stderr:`kill: ${i.message}\n`,exitCode:2};t=i;continue}if(i.startsWith(`-`)){let e=wk(i);if(e instanceof Error)return{ok:!1,stderr:`kill: ${e.message}\n`,exitCode:2};t=e;continue}let a=Number.parseInt(i,10);if(!Number.isFinite(a)||String(a)!==i)return{ok:!1,stderr:`kill: invalid pid '${i}'\n`,exitCode:2};n.push(a)}return n.length===0?{ok:!1,stderr:`kill: no pids supplied
|
|
@@ -1426,7 +1426,7 @@ Common base URLs:
|
|
|
1426
1426
|
`)+`
|
|
1427
1427
|
`,stderr:``,exitCode:0}}function Qk(e,t){let n=t.models.length;return{stdout:[`✓ ${e} (${Jk(t.runtime,!1)})`,` Saved ${n} model${n===1?``:`s`} to Settings:`,...Yk(t.models)].join(`
|
|
1428
1428
|
`)+`
|
|
1429
|
-
`,stderr:``,exitCode:0}}function $k(){return C(Kk,async e=>{if(e.includes(`--help`)||e.includes(`-h`))return{stdout:qk(),stderr:``,exitCode:0};let{getApiKeyForProvider:t,getRawApiKeyForProvider:n,getBaseUrlForProvider:r,addAccount:i}=await import(`./account-store-
|
|
1429
|
+
`,stderr:``,exitCode:0}}function $k(){return C(Kk,async e=>{if(e.includes(`--help`)||e.includes(`-h`))return{stdout:qk(),stderr:``,exitCode:0};let{getApiKeyForProvider:t,getRawApiKeyForProvider:n,getBaseUrlForProvider:r,addAccount:i}=await import(`./account-store-BhO6674m.js`).then(e=>e.t),{verifyConnection:a}=await import(`./local-llm-BMH9xa1Q.js`).then(e=>e.n),o=e[0]??`status`;if(o!==`status`&&o!==`discover`)return{stdout:``,stderr:`Unknown subcommand: ${o}. See \`local-llm --help\`.\n`,exitCode:2};let s=r(Kk);if(!s)return{stdout:``,stderr:`Local LLM is not configured. Open Settings → Providers → Local LLM and set a base URL.
|
|
1430
1430
|
`,exitCode:1};let c=await a(s,t(Kk)??void 0);if(!c.ok)return Xk(s,c);if(o===`discover`){let e=n(Kk)??``;return i(Kk,e,s,c.models.join(`, `)),Qk(s,c)}return Zk(s,c)})}function eA(){return{stdout:`usage: man <topic>
|
|
1431
1431
|
|
|
1432
1432
|
Fetches documentation for a given topic from sliccy.com.
|
|
@@ -1445,7 +1445,7 @@ Notes:
|
|
|
1445
1445
|
Document-Isolation-Policy). Embedded floats cannot be isolated and
|
|
1446
1446
|
report why instead.
|
|
1447
1447
|
- The browser randomizes measurement timing — expect a short delay.
|
|
1448
|
-
`,stderr:``,exitCode:0};let r=e.isIsolated?e.isIsolated():globalThis.crossOriginIsolated===!0,i=e.measure??aA();if(!r&&!e.measure)return rA(`memory measurement requires a cross-origin-isolated runtime (Document-Isolation-Policy) — this runtime is not isolated`);if(!i)return rA(`performance.measureUserAgentSpecificMemory is not available in this browser`);let a;try{a=await i()}catch(e){return rA(e instanceof Error?e.message:String(e))}return n.json?{stdout:`${JSON.stringify(a,null,2)}\n`,stderr:``,exitCode:0}:{stdout:sA(a),stderr:``,exitCode:0}})}function lA(e){return C(`memory`,async t=>{let{runMemory:n}=await import(`./run-
|
|
1448
|
+
`,stderr:``,exitCode:0};let r=e.isIsolated?e.isIsolated():globalThis.crossOriginIsolated===!0,i=e.measure??aA();if(!r&&!e.measure)return rA(`memory measurement requires a cross-origin-isolated runtime (Document-Isolation-Policy) — this runtime is not isolated`);if(!i)return rA(`performance.measureUserAgentSpecificMemory is not available in this browser`);let a;try{a=await i()}catch(e){return rA(e instanceof Error?e.message:String(e))}return n.json?{stdout:`${JSON.stringify(a,null,2)}\n`,stderr:``,exitCode:0}:{stdout:sA(a),stderr:``,exitCode:0}})}function lA(e){return C(`memory`,async t=>{let{runMemory:n}=await import(`./run-DZs1EoVO.js`);return n(t,e)})}function uA(){return C(`mktemp`,async(e,t)=>{let{runMktemp:n}=await import(`./run-dAJe7sKp.js`);return n(e,t)})}const dA=`/.cache/artificial-analysis.json`,fA=[`--all`,`--all-versions`,`--json`,`--refresh`,`--no-benchmarks`,`--help`,`-h`],pA=[`--provider`];function mA(e){return{stdout:``,stderr:e.endsWith(`
|
|
1449
1449
|
`)?e:`${e}\n`,exitCode:1}}async function hA(e){try{let t=await e.readFile(dA),n=JSON.parse(t);if(Date.now()-n.fetchedAt<864e5)return n.models}catch{}return null}function gA(){try{return localStorage.getItem(`aa_api_key`)}catch{return null}}function _A(e){return e.map(e=>{let t=e;return{slug:t.slug??``,name:t.name??``,creator_slug:t.model_creator?.slug??``,intelligence_index:t.evaluations?.artificial_analysis_intelligence_index??null,coding_index:t.evaluations?.artificial_analysis_coding_index??null,speed_tps:t.median_output_tokens_per_second??null}})}async function vA(e,t){let n={fetchedAt:Date.now(),models:t};try{await e.mkdir(`/.cache`,{recursive:!0}),await e.writeFile(dA,JSON.stringify(n))}catch{}}async function yA(e,t=!1){if(e&&!t){let t=await hA(e);if(t)return t}let n={Accept:`application/json`},r=gA();r&&(n[`x-api-key`]=r);let i=g(),a;try{a=await i(`https://artificialanalysis.ai/api/v2/data/llms/models`,{method:`GET`,headers:n})}catch{return[]}if(a.status===401||a.status<200||a.status>=300)return[];let o;try{o=JSON.parse(new TextDecoder().decode(a.body))}catch{return[]}if(typeof o!=`object`||!o)return[];let s=o,c=_A(Array.isArray(s)?s:s.data??s.models??[]);return e&&c.length>0&&await vA(e,c),c}function bA(e){return e.toLowerCase().replace(/\./g,`-`).replace(/-\d{8}$/,``).replace(/-\d{4}$/,``)}function xA(e,t){let n=e.toLowerCase(),r=t.find(e=>e.slug===n);if(r)return r;let i=bA(e),a=t.find(e=>bA(e.slug)===i);if(a)return a;let o=t.filter(e=>n.includes(e.slug)||e.slug.includes(n));if(o.length!==0)return o.sort((e,t)=>t.slug.length-e.slug.length),o[0]}function SA(){return`models - list available LLM models
|
|
1450
1450
|
|
|
1451
1451
|
Usage: models [options]
|
|
@@ -1460,7 +1460,7 @@ Options:
|
|
|
1460
1460
|
-h, --help Show this help message
|
|
1461
1461
|
`}function CA(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`.replace(`.0M`,`M`):e>=1e3?`${(e/1e3).toFixed(0)}K`:`${e}`}function wA(e){return`$${e.toFixed(2)}`}const TA=/\b(embedding|embed|tts|whisper|dall-e|image-gen|audio|vision-preview)\b/i;function EA(e){let t=`${e.id} ${e.name??``}`;return!TA.test(t)}function DA(e){let t=e.match(/^(claude-(?:opus|sonnet|haiku))/);if(t)return t[1];let n=e.match(/^(gpt-\d+)(?:\.\d+)?(-[a-z][-a-z]*)?$/);if(n)return n[1]+(n[2]??``);let r=e.match(/^gemini-[\d.]+-(.+)$/);if(r)return`gemini-${r[1]}`;let i=e.match(/^gemini-(\d+)-(.+)$/);if(i)return`gemini-${i[2]}`;let a=e.match(/^grok-[\d.]+-([\w-]+)$/);if(a)return`grok-${a[1]}`;if(e.match(/^(grok)-[\d.]+$/))return`grok`;let o=e.match(/^(o\d+(?:-[a-z]+)?)(?:-\d.*)?$/);if(o)return o[1]}function OA(e){let t=e.toLowerCase();return t=t.replace(/-\d{8}$/,``),t=t.replace(/-\d{4}$/,``),t=t.replace(/-(preview|latest)$/,``),DA(t)??t.replace(/-[\d.]+$/,``)}function kA(e){let t=new Map;for(let n of e){let e=OA(n.id);(!t.has(e)||n.selected)&&t.set(e,n)}return[...t.values()]}function AA(e,t,n,r,i){let a=i?xA(e.id,i):void 0,o={id:e.id,name:e.name,provider:t,cost:e.cost??{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:e.contextWindow??0,maxTokens:e.maxTokens??0,reasoning:!!e.reasoning,input:e.input??[`text`],selected:e.id===n&&t===r};return a?.intelligence_index!=null&&(o.intelligence=a.intelligence_index),a?.coding_index!=null&&(o.codingScore=a.coding_index),a?.speed_tps!=null&&(o.speed=a.speed_tps),o}function jA(e,t,n,r){let i=[];i.push(`Models for "${e}" (${t}):\n`);for(let e of n){let t=e.selected?` ► `:` `,n=e.id.padEnd(30),r=`${wA(e.cost.input)} / ${wA(e.cost.output)}`,a=`${CA(e.contextWindow)} ctx`,o=e.intelligence==null?``:`IQ:${e.intelligence}`,s=e.speed==null?``:`${Math.round(e.speed)} t/s`,c=e.reasoning?`reasoning`:``,l=o||s?`${o.padEnd(6)} ${s.padEnd(8)}`:``;i.push(`${t}${n} ${r.padEnd(16)} ${a.padEnd(10)} ${l} ${c}`)}return i.push(`\n ${n.length} model${n.length===1?``:`s`} available.`),r&&i.push(` Intelligence data: artificialanalysis.ai`),i.join(`
|
|
1462
1462
|
`)+`
|
|
1463
|
-
`}function MA(e){let t=w(e,{bool:fA,value:pA});return`error`in t?t:{jsonMode:t.bools.has(`--json`),allMode:t.bools.has(`--all`),allVersions:t.bools.has(`--all-versions`),forceRefresh:t.bools.has(`--refresh`),noBenchmarks:t.bools.has(`--no-benchmarks`),explicitProvider:t.values.get(`--provider`)}}function NA(e,t,n){if(t.explicitProvider){let n=e.getAvailableProviders();return n.includes(t.explicitProvider)?[t.explicitProvider]:{error:`Unknown provider: ${t.explicitProvider}. Available: ${n.join(`, `)}\n`}}return t.allMode?[...new Set(e.getAccounts().map(e=>e.providerId))]:[n]}function PA(e,t,n,r,i,a){let o=e.getProviderModels(t).filter(EA);if(o.length===0)return[];let s=o.map(e=>AA(e,t,n,r,i)).sort((e,t)=>t.cost.input-e.cost.input);return a||(s=kA(s)),s}function FA(e,t,n,r){let i=`${e}:${t}`,a=`${n}:${r}`;return i===a?`Currently using: ${i}\n`:`Currently using: ${i} (selected ${a} — resolved to a different model)\n`}async function IA(e,t){if(T(e,{valueFlags:pA}))return{stdout:SA(),stderr:``,exitCode:0};let n=MA(e);if(`error`in n)return mA(`models: ${n.error}`);let r=await import(`./account-store-
|
|
1463
|
+
`}function MA(e){let t=w(e,{bool:fA,value:pA});return`error`in t?t:{jsonMode:t.bools.has(`--json`),allMode:t.bools.has(`--all`),allVersions:t.bools.has(`--all-versions`),forceRefresh:t.bools.has(`--refresh`),noBenchmarks:t.bools.has(`--no-benchmarks`),explicitProvider:t.values.get(`--provider`)}}function NA(e,t,n){if(t.explicitProvider){let n=e.getAvailableProviders();return n.includes(t.explicitProvider)?[t.explicitProvider]:{error:`Unknown provider: ${t.explicitProvider}. Available: ${n.join(`, `)}\n`}}return t.allMode?[...new Set(e.getAccounts().map(e=>e.providerId))]:[n]}function PA(e,t,n,r,i,a){let o=e.getProviderModels(t).filter(EA);if(o.length===0)return[];let s=o.map(e=>AA(e,t,n,r,i)).sort((e,t)=>t.cost.input-e.cost.input);return a||(s=kA(s)),s}function FA(e,t,n,r){let i=`${e}:${t}`,a=`${n}:${r}`;return i===a?`Currently using: ${i}\n`:`Currently using: ${i} (selected ${a} — resolved to a different model)\n`}async function IA(e,t){if(T(e,{valueFlags:pA}))return{stdout:SA(),stderr:``,exitCode:0};let n=MA(e);if(`error`in n)return mA(`models: ${n.error}`);let r=await import(`./account-store-BhO6674m.js`).then(e=>e.t);if(r.getAccounts().length===0)return mA(`No provider accounts configured. Run the provider settings to add one.
|
|
1464
1464
|
`);let i=r.resolveCurrentModel(),a=i.id,o=i.provider,s=r.getSelectedProvider(),c=r.getSelectedModelId(),l;if(!n.noBenchmarks){let e=await yA(t,n.forceRefresh);e.length>0&&(l=e)}let u=NA(r,n,s);if(`error`in u)return mA(u.error);let d=[],f=[];for(let e of u){let t=PA(r,e,a,o,l,n.allVersions);if(t.length===0){if(!n.allMode)return mA(`No models available for provider ${e}.\n`);continue}if(d.push(...t),!n.jsonMode){let n=r.getProviderConfig(e);f.push(jA(n.name,e,t,!!l))}}return n.jsonMode?{stdout:JSON.stringify(d,null,2)+`
|
|
1465
1465
|
`,stderr:``,exitCode:0}:(n.allVersions||f.push(`Showing latest versions only. Use --all-versions to see all.
|
|
1466
1466
|
`),f.push(FA(o,a,s,c)),{stdout:f.join(`
|
|
@@ -1518,7 +1518,7 @@ Examples:
|
|
|
1518
1518
|
`)}\n`,stderr:``,exitCode:0}}async function sj(e,t,n){if(!t||!n)return{stdout:``,stderr:`oauth-domain add: requires <providerId> and <domain>
|
|
1519
1519
|
`,exitCode:1};let r=e.getExtraOAuthDomains(t),i=n.toLowerCase();return r.some(e=>e.toLowerCase()===i)?{stdout:`(${n} already in ${t} extras)\n`,stderr:``,exitCode:0}:(await e.setExtraOAuthDomainsAsync(t,[...r,n]),{stdout:`Added ${n} to ${t}. Reload the page to apply.\n`,stderr:``,exitCode:0})}async function cj(e,t,n){if(!t||!n)return{stdout:``,stderr:`oauth-domain remove: requires <providerId> and <domain>
|
|
1520
1520
|
`,exitCode:1};let r=e.getExtraOAuthDomains(t),i=n.toLowerCase(),a=r.filter(e=>e.toLowerCase()!==i);return a.length===r.length?{stdout:`(${n} not found in ${t} extras)\n`,stderr:``,exitCode:0}:(await e.setExtraOAuthDomainsAsync(t,a),{stdout:`Removed ${n} from ${t}. Reload the page to apply.\n`,stderr:``,exitCode:0})}async function lj(e,t){return t?(await e.setExtraOAuthDomainsAsync(t,[]),{stdout:`Cleared extra domains for ${t}. Reload the page to apply.\n`,stderr:``,exitCode:0}):{stdout:``,stderr:`oauth-domain clear: requires <providerId>
|
|
1521
|
-
`,exitCode:1}}async function uj(e,t,n,r){switch(t){case`list`:return oj(e,n);case`add`:return sj(e,n,r);case`remove`:return cj(e,n,r);case`clear`:return lj(e,n);default:return{stdout:``,stderr:`oauth-domain: unknown subcommand "${t}"\n${ij()}`,exitCode:1}}}function dj(){return C(`oauth-domain`,async e=>{if(e.length===0||T(e))return{stdout:ij(),stderr:``,exitCode:0};let t=w(e);if(`error`in t)return aj(t.error);let[n,r,i]=t.positionals,a=await import(`./account-store-
|
|
1521
|
+
`,exitCode:1}}async function uj(e,t,n,r){switch(t){case`list`:return oj(e,n);case`add`:return sj(e,n,r);case`remove`:return cj(e,n,r);case`clear`:return lj(e,n);default:return{stdout:``,stderr:`oauth-domain: unknown subcommand "${t}"\n${ij()}`,exitCode:1}}}function dj(){return C(`oauth-domain`,async e=>{if(e.length===0||T(e))return{stdout:ij(),stderr:``,exitCode:0};let t=w(e);if(`error`in t)return aj(t.error);let[n,r,i]=t.positionals,a=await import(`./account-store-BhO6674m.js`).then(e=>e.t);try{return await uj(a,n,r,i)}catch(e){return aj(e instanceof Error?e.message:String(e))}})}function fj(){return C(`oauth-token`,async(e,t)=>{let{runOAuthToken:n}=await import(`./run-CMLNX44D.js`);return n(e,t)})}const pj=[`--download`,`-d`,`--view`,`-v`],mj=[`--size`],hj={low:256,medium:768,high:1536};function gj(){return{stdout:`usage: open [--download|-d] [--view|-v [--size <spec>]] <url|path> [url|path...]
|
|
1522
1522
|
|
|
1523
1523
|
VFS paths are served in a new browser tab via the preview service worker.
|
|
1524
1524
|
URLs (http/https/etc.) are opened directly in a new tab.
|
|
@@ -1544,7 +1544,7 @@ Examples:
|
|
|
1544
1544
|
`);let i=!1;try{i=(await t.fs.stat(e)).isDirectory}catch{}let a=await Tr(t.fs,i?e:Nr(e)),o=Hr(e,a),s;try{s=await r(o)}catch(e){return G(`${e instanceof Error?e.message:String(e)}\n`)}return Tj(`opened ${e} → ${o}${Ej(s)}`)}async function Nj(e,t,n,r){if(!Dr(e)&&e.endsWith(`.shtml`)&&t.fs)return Oj(e,t,r.sprinkleManager,r.canOpenWindow,r.openExternal);if(!n.view&&!r.canOpenWindow)return G(`open: browser APIs are unavailable in this environment
|
|
1545
1545
|
`);if(Dr(e))return kj(e,r.canOpenWindow,r.openExternal);let i=t.fs.resolvePath(t.cwd,e);return n.view?Aj(e,i,t,n.sizeSpec):n.download?jj(e,i,t,r.hasDom):Mj(i,t,r.canOpenWindow,r.openExternal)}function Pj(e){return C(`open`,async(t,n)=>{if(t.length===0||T(t,{valueFlags:mj}))return gj();let r=wj(t);if(`error`in r)return{stdout:``,stderr:`${r.error}\n`,exitCode:1};let{download:i,view:a,sizeSpec:o,targets:s}=r;if(s.length===0)return gj();let c=globalThis.__slicc_sprinkleManager,l=typeof window<`u`&&typeof document<`u`,u=l?null:b(),d={canOpenWindow:!!e||l||!!u,hasDom:l,sprinkleManager:c,openExternal:Dj(e,l,u)},f=[];for(let e of s){let t=await Nj(e,n,{view:a,download:i,sizeSpec:o},d);if(!t.ok)return t.result;f.push(t.message)}return{stdout:f.join(`
|
|
1546
1546
|
`)+`
|
|
1547
|
-
`,stderr:``,exitCode:0}})}function Fj(){return C(`patch`,async(e,t)=>{let{runPatch:n}=await import(`./run-
|
|
1547
|
+
`,stderr:``,exitCode:0}})}function Fj(){return C(`patch`,async(e,t)=>{let{runPatch:n}=await import(`./run-B9vQKnCv.js`);return n(e,t)})}function Ij(e=`pdftk`){return C(e,async(t,n)=>{let{runPdftk:r}=await import(`./run-BEs473Sp.js`);return r(e,t,n)})}function Lj(){return{stdout:`usage: pdftoppm [options] <input.pdf> [output-prefix]
|
|
1548
1548
|
|
|
1549
1549
|
Rasterize PDF pages to images. Writes <prefix>-<n>.<ext> per page, where <n>
|
|
1550
1550
|
is zero-padded to the digit width of the last page (out-1.png for a 9-page
|
|
@@ -1839,7 +1839,7 @@ Limits and lifetime:
|
|
|
1839
1839
|
`,exitCode:1};if(e.ttlMs!==void 0&&e.maxTabs!==void 0)return{stdout:``,stderr:`serve: --ttl cannot be combined with --max-tabs
|
|
1840
1840
|
`,exitCode:1}}async function RP(e,t,n){if(e.ttlMs!==void 0){if(!t)throw Error(`persistent snapshot filesystem unavailable`);return AP(t,n)}}async function zP(e,t,n,r){if(e.length===0||e.includes(`--help`)||e.includes(`-h`))return mP();let i=bP(e);if(i.error)return{stdout:``,stderr:i.error,exitCode:1};let a=await IP(i);if(a)return a;if(!i.directory)return mP();let o=LP(i);if(o)return o;let s=await xP(i.directory,i.entry,t.fs,t.cwd);if(SP(s))return s;let{fullDirectory:c,entryPath:l}=s,u;try{u=await RP(i,r,c)}catch(e){return{stdout:``,stderr:`serve: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}let d=i.project?`serve: --project is obsolete; ignored (root-absolute paths work natively under unified preview)
|
|
1841
1841
|
`:``,f=await PP(!i.noBridge&&i.bridge,d);return f.ok?FP(i,c,l,f.webhookId,d,u,n):f.result}function BP(e,t){return C(`serve`,(n,r)=>zP(n,r,e,t))}const VP=`usage: session export [--id <id>] [--output <path>]
|
|
1842
|
-
`;function HP(e){if(e.includes(`\0`))return{ok:!1,reason:`path must not contain NUL bytes`};if(e.includes(`\\`))return{ok:!1,reason:`path must not contain backslashes`};let t=e.split(`/`);for(let e of t)if(e===`..`)return{ok:!1,reason:`path must not contain ".."/traversal segments`};return{ok:!0}}function UP(e){let t=null,n=null,r=e.slice(1);for(let e=0;e<r.length;e++){let i=r[e];if(i===`--id`){if(t!==null)return{ok:!1,stderr:`session export: duplicate flag --id\n${VP}`};let n=r[e+1];if(!n||n.startsWith(`-`))return{ok:!1,stderr:`session export: --id requires a value\n${VP}`};t=n,e++}else if(i===`--output`){if(n!==null)return{ok:!1,stderr:`session export: duplicate flag --output\n${VP}`};let t=r[e+1];if(!t||t.startsWith(`-`))return{ok:!1,stderr:`session export: --output requires a path\n${VP}`};n=t,e++}else if(i.startsWith(`-`))return{ok:!1,stderr:`session export: unknown flag ${i}\n${VP}`};else return{ok:!1,stderr:`session export: unexpected argument ${JSON.stringify(i)}\n${VP}`}}return{ok:!0,args:{sessionId:t,outputPath:n}}}async function WP(e){let t=[],n=0;for await(let r of e.chunks)t.push(r),n+=r.byteLength;let r=new Uint8Array(n),i=0;for(let e of t)r.set(e,i),i+=e.byteLength;let a=await e.completion;if(a.byteLength!==n||Ft(r)!==a.sha256)throw new za(`transfer-corrupt`);return r}async function GP(e,t){let n=UP(e);if(!n.ok)return{stdout:``,stderr:n.stderr,exitCode:1};let{sessionId:r,outputPath:i}=n.args;if(i!==null){let e=HP(i);if(!e.ok)return{stdout:``,stderr:`session export: --output ${e.reason}\n${VP}`,exitCode:1}}let a=r==null?{kind:`active`}:{kind:`frozen`,sessionId:r};try{let e=await Es().export(a,{}),n=await WP(e),r=i??`/workspace/${e.filename}`;return await t.fs.writeFile(r,n),{stdout:`exported ${r}\n`,stderr:``,exitCode:0}}catch(e){return{stdout:``,stderr:`session export: ${e instanceof za?e.code:e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}function KP(){return C(`session`,async(e,t)=>{if(e[0]===`export`&&!T(e))return GP(e,t);let{dispatchSessionMemoryAware:n}=await import(`./session-command-memory-
|
|
1842
|
+
`;function HP(e){if(e.includes(`\0`))return{ok:!1,reason:`path must not contain NUL bytes`};if(e.includes(`\\`))return{ok:!1,reason:`path must not contain backslashes`};let t=e.split(`/`);for(let e of t)if(e===`..`)return{ok:!1,reason:`path must not contain ".."/traversal segments`};return{ok:!0}}function UP(e){let t=null,n=null,r=e.slice(1);for(let e=0;e<r.length;e++){let i=r[e];if(i===`--id`){if(t!==null)return{ok:!1,stderr:`session export: duplicate flag --id\n${VP}`};let n=r[e+1];if(!n||n.startsWith(`-`))return{ok:!1,stderr:`session export: --id requires a value\n${VP}`};t=n,e++}else if(i===`--output`){if(n!==null)return{ok:!1,stderr:`session export: duplicate flag --output\n${VP}`};let t=r[e+1];if(!t||t.startsWith(`-`))return{ok:!1,stderr:`session export: --output requires a path\n${VP}`};n=t,e++}else if(i.startsWith(`-`))return{ok:!1,stderr:`session export: unknown flag ${i}\n${VP}`};else return{ok:!1,stderr:`session export: unexpected argument ${JSON.stringify(i)}\n${VP}`}}return{ok:!0,args:{sessionId:t,outputPath:n}}}async function WP(e){let t=[],n=0;for await(let r of e.chunks)t.push(r),n+=r.byteLength;let r=new Uint8Array(n),i=0;for(let e of t)r.set(e,i),i+=e.byteLength;let a=await e.completion;if(a.byteLength!==n||Ft(r)!==a.sha256)throw new za(`transfer-corrupt`);return r}async function GP(e,t){let n=UP(e);if(!n.ok)return{stdout:``,stderr:n.stderr,exitCode:1};let{sessionId:r,outputPath:i}=n.args;if(i!==null){let e=HP(i);if(!e.ok)return{stdout:``,stderr:`session export: --output ${e.reason}\n${VP}`,exitCode:1}}let a=r==null?{kind:`active`}:{kind:`frozen`,sessionId:r};try{let e=await Es().export(a,{}),n=await WP(e),r=i??`/workspace/${e.filename}`;return await t.fs.writeFile(r,n),{stdout:`exported ${r}\n`,stderr:``,exitCode:0}}catch(e){return{stdout:``,stderr:`session export: ${e instanceof za?e.code:e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}function KP(){return C(`session`,async(e,t)=>{if(e[0]===`export`&&!T(e))return GP(e,t);let{dispatchSessionMemoryAware:n}=await import(`./session-command-memory-DzvkhPn3.js`);return n(e,t,VP)})}function qP(){return C(`slicc`,async(e,t)=>{let{runSlicc:n}=await import(`./run-BRFnmkzR.js`);return await n(e,t)})}const JP=`leader`;function YP(){try{let e=globalThis.localStorage?.getItem(`slicc.leaderSprinkleInstances`);if(e)return JSON.parse(e)}catch{}return[]}function XP(e){return+!!e.leader+e.followers.length}function ZP(){return{stdout:`usage: sprinkle <subcommand> [args]
|
|
1843
1843
|
|
|
1844
1844
|
list [--runtime <id>] List sprinkles + an instance line per runtime
|
|
1845
1845
|
open <name> Open a sprinkle by name
|
|
@@ -3251,6 +3251,6 @@ pass --wait to block and print the full result.`,PB=new Set([`list`,`status`,`st
|
|
|
3251
3251
|
`,stderr:``,exitCode:0};let n;try{n=oV(e)}catch(e){return JB(e.message)}let r=n.positional[0],i=n.positional[1],a=!r||r===`-`,o;try{o=await cV(t,r,a)}catch{return JB(`${r}: No such file or directory`)}if(n.revert){let e=ZB(o),r=n.plain?nV(e):rV(e);return i?(await t.fs.writeFile(t.fs.resolvePath(t.cwd,i),r),{stdout:``,stderr:``,exitCode:0}):{stdout:ZB(r),stderr:``,exitCode:0}}let{data:s,base:c}=uV(n,o),l=lV(n,s,c,r,a);return i?(await t.fs.writeFile(t.fs.resolvePath(t.cwd,i),l),{stdout:``,stderr:``,exitCode:0}):{stdout:l,stderr:``,exitCode:0}})}async function fV(e,t,n,r){if((await e.fs.stat(t)).isFile)return r[n]=await e.fs.readFileBuffer(t),1;let i=await e.fs.readdir(t),a=0;for(let o of i){let i=Or(t,o),s=n?`${n}/${o}`:o;a+=await fV(e,i,s,r)}return a}function pV(){return{stdout:`usage: zip [-r] <archive.zip> <path> [path...]
|
|
3252
3252
|
`,stderr:``,exitCode:0}}function mV(){return C(`zip`,async(e,t)=>{if(e.length===0||e.includes(`--help`)||e.includes(`-h`))return pV();let n=!1,r=[];for(let t of e){if(t===`-r`){n=!0;continue}if(t.startsWith(`-`))return{stdout:``,stderr:`zip: unsupported option ${t}\n`,exitCode:1};r.push(t)}if(r.length<2)return{stdout:``,stderr:`zip: expected archive path and at least one input path
|
|
3253
3253
|
`,exitCode:1};let i=t.fs.resolvePath(t.cwd,r[0]),a=r.slice(1),o={},s=0;for(let e of a){let r=t.fs.resolvePath(t.cwd,e),i=await t.fs.stat(r),a=(e.startsWith(`/`)?e.slice(1):e.replace(/^\.\//,``))||kr(r);if(i.isDirectory&&!n)return{stdout:``,stderr:`zip: ${e} is a directory (use -r)\n`,exitCode:1};s+=await fV(t,r,a,o)}if(s===0)return{stdout:``,stderr:`zip: nothing to do
|
|
3254
|
-
`,exitCode:1};let c=Lt(o);return await t.fs.writeFile(i,c),{stdout:`created ${i} (${s} file(s))\n`,stderr:``,exitCode:0}})}function hV(e){let t;return C(`mcp`,async(n,r)=>{if(!t){let{createMcpCommand:n}=await import(`./mcp-command-
|
|
3254
|
+
`,exitCode:1};let c=Lt(o);return await t.fs.writeFile(i,c),{stdout:`created ${i} (${s} file(s))\n`,stderr:``,exitCode:0}})}function hV(e){let t;return C(`mcp`,async(n,r)=>{if(!t){let{createMcpCommand:n}=await import(`./mcp-command-SRT8kl-t.js`);t=n({fs:e.fs,scriptCatalog:e.scriptCatalog,connectionManager:e.mcpConnectionManager})}return t.execute(n,r)})}function gV(e){return{setEnv:e.setEnv,unsetEnv:e.unsetEnv,broker:e.sudoCommand?.broker}}function _V(e){let{fs:t,fetch:n}=e;if(!t||!n)return[];let r={fs:t,fetch:n,scriptCatalog:e.scriptCatalog,syncScriptCommands:e.syncScriptCommands};return[DO(`ipk`,r),DO(`npm`,r),DO(`i`,r),gk(`ipx`,{fs:t,fetch:n}),gk(`npx`,{fs:t,fetch:n}),Cb(`di`,{fs:t,fetch:n}),Cb(`uv`,{fs:t,fetch:n}),VL({fs:t,fetch:n})]}function vV(e){let t={buildProcessConfig:e.buildProcessConfig};return[`python3`,`python`,`pyodide`].map(e=>XM(e,t))}function yV(e){let t=e.scriptCatalog;return{buildProcessConfig:e.buildProcessConfig,terminal:e.terminal,gate:e.gateNativeCommand,commands:t&&(()=>t.getWasmCommands()),gitIdentity:e.gitIdentity}}function bV(e={}){let t=[ME({getJshCommands:e.getJshCommands,getWorkflowCommands:e.getWorkflowCommands}),oe(),OF(),qP(),BP(e.browserAPI,e.fs),Pj(e.browserAPI),Ry(e.browserAPI),LD(e),mV(),_L(),lI(e.fs?{fs:e.fs}:{}),FF(),HF(),zF(),Nv(),fz(yV(e)),iC(yV(e)),dV(),SF(`sqlite3`),SF(`sqllite`),EI(),KI(),zx(),hv(),ZA({buildProcessConfig:e.buildProcessConfig}),ZA({buildProcessConfig:e.buildProcessConfig},`jsh`),...vV(e),..._V(e),...e.fs?[rC({fs:e.fs})]:[],...e.fs?[lA({fs:e.fs})]:[],...e.fetch?[UE({fetch:e.fetch,streamFetch:e.streamFetch})]:[],MS(),NS(),GS(),Dz(e.webhook),fB(),Ly(e.crontask),hV(e),eM({fs:e.fs,fetch:e.fetch}),nC(),pF(),Fj(),Ij(`pdftk`),Ij(`pdf`),gv(`biscotto`,{getParentJid:e.getParentJid,isScoop:e.isScoop}),gv(`biscotti`,{getParentJid:e.getParentJid,isScoop:e.isScoop}),Kj(`pdftoppm`),Kj(`pdftocairo`),qj(`pdftotext`),xy(`convert`),xy(`magick`),SB({fs:e.fs,scriptCatalog:e.scriptCatalog,getStaticBuiltins:e.getStaticBuiltins,getScriptRegisteredNames:e.getScriptRegisteredNames}),XI(),fL(),ND(),PD(),pL(),uA(),eN(),nA(),ux(),fj(),dj(),$k(),dP(gV(e)),Rp(e.gitCredential),pN({fs:e.fs}),zN(),Av(),jv(),Mv(`xclip`),Mv(`xsel`),RN(),bC(),s_(),c_(),LA(e.fs),gt(),nj(),l_({getParentJid:e.getParentJid}),vx(),SM({processManager:e.processManager}),nR({processManager:e.processManager}),yk({processManager:e.processManager}),_k({processManager:e.processManager,scriptCatalog:e.scriptCatalog}),...d_(),cA(),Gk(),DR(),hD(),bS(),UR({processManager:e.processManager}),Iv({processManager:e.processManager,browser:e.browserAPI,sudoBroker:e.sudoCommand?.broker}),jS(),Cv({registry:e.cherryRuntimeRegistry}),qy(),$y({fs:e.fs}),eb({fs:e.fs}),AF(e.sudoCommand),zB({getParentJid:e.getParentJid,syncScriptCommands:e.syncScriptCommands}),pB(),KP()];return e.fs&&(Yj(),t.push(...$n.map(t=>kE(t,e.browserAPI,e.fs,{isScoop:e.isScoop})))),t}let xV=null;function SV(e){xV=e}function CV(e){xV?.(e)}var wV=Jt();const TV={user:`user`,home:om},EV=new Set([`root`,`nobody`,`nogroup`]),DV=/^[A-Za-z_][A-Za-z0-9_.-]*$/;function OV(e){return{user:DV.test(e.user)&&!EV.has(e.user)?e.user:TV.user,home:e.home.startsWith(`/`)&&!/[:\n]/.test(e.home)?e.home:TV.home}}function kV(e,t){let{user:n,home:r}=OV(t);if(e===`/etc/passwd`)return[`root:x:0:0:root:/root:/bin/bash`,`${n}:x:1000:1000:SLICC user:${r}:/bin/bash`,`nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin`,``].join(`
|
|
3255
3255
|
`);if(e===`/etc/group`)return[`root:x:0:`,`${n}:x:1000:`,`nogroup:x:65534:`,``].join(`
|
|
3256
3256
|
`)}function AV(e,t=TV){let n=kV(e,t);return n===void 0?void 0:new TextEncoder().encode(n)}function jV(e){return e===`/etc`?[`group`,`passwd`]:[]}function MV(e){return e?.code===`ENOENT`}const NV=Reflect.get(ut,`DefenseInDepthBox`);function PV(e){return(typeof e==`string`?e:e?.encoding)??`utf8`}function FV(e,t){if(typeof e!=`string`)return e;let n=PV(t);if(n===`binary`||n===`latin1`){let t=Oe(e);if(t)return t}return wV.Buffer.from(e,n)}function IV(e){return e===`/bin`?`/usr/bin`:e.startsWith(`/bin/`)?`/usr${e}`:e}function LV(e){let t=/^[A-Za-z0-9._+-]+$/.test(e)?e:`'${e.replace(/'/g,`'\\''`)}'`;return new TextEncoder().encode(`#!/bin/sh\n# SLICC command\nexec ${t} "$@"\n`)}function RV(e,t){let n=jV(e).filter(e=>!t.includes(e));return n.length?[...t,...n].sort():t}function zV(e,t){let n=jV(e).filter(e=>!t.some(t=>t.name===e));if(!n.length)return t;let r=n.map(e=>({name:e,isFile:!0,isDirectory:!1,isSymbolicLink:!1}));return[...t,...r].sort((e,t)=>e.name.localeCompare(t.name))}var BV=class{vfs;registeredCommandsFn=null;identityFn=null;listingStats=new Map;listingStatsMax;listingStatsTtlMs;constructor(e,t){this.vfs=e,this.listingStatsMax=Math.max(1,t?.listingStatsMax??2e4),this.listingStatsTtlMs=t?.listingStatsTtlMs??1e3,this.updateMetadataBatch=this.updateMetadataBatch.bind(this),this.symlinkBatch=this.symlinkBatch.bind(this)}get listingStatsSize(){return this.listingStats.size}primeListingStats(e,t){let n=Date.now();if(t.length>this.listingStatsMax){this.listingStats.clear();return}this.sweepExpiredListingStats(n),this.listingStats.size+t.length>this.listingStatsMax&&this.listingStats.clear();let r=e===`/`?`/`:`${e}/`;for(let e of t){let t=Ye(e),i=`${r}${e.name}`;this.listingStats.delete(i),t&&this.listingStats.set(i,{stats:t,at:n})}}sweepExpiredListingStats(e){for(let[t,n]of this.listingStats){if(e-n.at<=this.listingStatsTtlMs)break;this.listingStats.delete(t)}}primedStats(e){let t=this.listingStats.get(e);if(t){if(Date.now()-t.at>this.listingStatsTtlMs){this.listingStats.delete(e);return}return t.stats}}dropListingStats(){this.listingStats.clear()}setRegisteredCommandsFn(e){this.registeredCommandsFn=e}setIdentityFn(e){this.identityFn=e}identityFile(e){return AV(e,this.identityFn?.()??TV)}isVirtualBinCommand(e){return e.length>0&&!e.includes(`/`)&&this.getVirtualBinCommands().includes(e)}getVirtualBinCommands(){return this.registeredCommandsFn?.()??[]}virtualUsrStat(e){let t=IV(e);if(t===`/usr`||t===`/usr/bin`)return{isFile:!1,isDirectory:!0,isSymbolicLink:!1,mode:493,size:0,mtime:new Date(0)};if(t.startsWith(`/usr/bin/`)){let e=t.slice(9);if(this.isVirtualBinCommand(e))return{isFile:!0,isDirectory:!1,isSymbolicLink:!1,mode:493,size:LV(e).length,mtime:new Date(0)}}return null}canWrite(e){let t=this.vfs;return typeof t.canWrite!=`function`||t.canWrite(e)}listMountPoints(){let e=this.vfs;return typeof e.listMountPoints==`function`?e.listMountPoints():[]}trusted(e){let t=NV?.runTrustedAsync;return t?t(e):Promise.resolve().then(e)}async readFile(e,t){return this.trusted(async()=>{let n=x(e),r=await this.readRaw(n),i=PV(t),a=wV.Buffer.from(r.buffer,r.byteOffset,r.byteLength).toString(i);return i!==`hex`&&i!==`base64`&&m(a,r),a})}async readFileBuffer(e){return this.trusted(()=>this.readRaw(x(e)))}async readRaw(e){let t=IV(e);if(t.startsWith(`/usr/bin/`)&&this.isVirtualBinCommand(t.slice(9)))return LV(t.slice(9));let n;try{n=await this.vfs.readFile(e,{encoding:`binary`})}catch(t){let n=this.identityFile(e);if(n&&MV(t))return n;throw t}return n instanceof Uint8Array?n:new TextEncoder().encode(n)}identityStat(e,t){let n=this.identityFile(e);if(!(!n||!MV(t)))return{isFile:!0,isDirectory:!1,isSymbolicLink:!1,mode:420,size:n.length,mtime:new Date(0)}}async readFileBytes(e){let t=await this.readFileBuffer(e);return wV.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString(`latin1`)}async getNativeFile(e){return this.trusted(()=>this.vfs.getNativeFile(x(e)))}async readFileRange(e,t,n){return this.trusted(()=>this.vfs.readFileRange(x(e),t,n))}async writeFile(e,t,n){return this.dropListingStats(),this.trusted(async()=>{let r=x(e);await this.vfs.writeFile(r,FV(t,n))})}async appendFile(e,t,n){return this.dropListingStats(),this.trusted(()=>this.vfs.appendFile(x(e),FV(t,n)))}async exists(e){return this.trusted(async()=>{let t=x(e);return this.virtualUsrStat(t)?!0:await this.vfs.exists(t)||this.identityFile(t)!==void 0})}async stat(e){return this.trusted(async()=>{let t=x(e);try{return await this.statVfs(t)}catch(e){let n=this.identityStat(t,e);if(n)return n;throw e}})}async statVfs(e){let t=this.virtualUsrStat(e);if(t)return t;let n=this.vfs.statSync(e);if(n)return{isFile:n.type===`file`,isDirectory:n.type===`directory`,isSymbolicLink:!!n.isSymlink,mode:n.mode??(n.type===`directory`?493:420),size:n.size,mtime:new Date(n.mtime),identity:n.identity,dev:n.dev,ino:n.identity===void 0?void 0:n.ino};let r=this.primedStats(e)??await this.vfs.stat(e);return{isFile:r.type===`file`,isDirectory:r.type===`directory`,isSymbolicLink:!!r.isSymlink,mode:r.mode??(r.type===`directory`?493:420),size:r.size,mtime:new Date(r.mtime),identity:r.identity,dev:r.dev,ino:r.identity===void 0?void 0:r.ino}}async lstat(e){return this.trusted(async()=>{let t=x(e);try{return await this.lstatVfs(t)}catch(e){let n=this.identityStat(t,e);if(n)return n;throw e}})}async lstatVfs(e){let t=this.virtualUsrStat(e);if(t)return t;let n=this.vfs.lstatSync(e);if(n)return{isFile:n.type===`file`,isDirectory:n.type===`directory`,isSymbolicLink:n.type===`symlink`,mode:n.mode??(n.type===`directory`?493:n.type===`symlink`?511:420),size:n.size,mtime:new Date(n.mtime),identity:n.identity,dev:n.dev,ino:n.identity===void 0?void 0:n.ino};let r=this.primedStats(e)??await this.vfs.lstat(e);return{isFile:r.type===`file`,isDirectory:r.type===`directory`,isSymbolicLink:r.type===`symlink`,mode:r.mode??(r.type===`directory`?493:r.type===`symlink`?511:420),size:r.size,mtime:new Date(r.mtime),identity:r.identity,dev:r.dev,ino:r.identity===void 0?void 0:r.ino}}async mkdir(e,t){return this.dropListingStats(),this.trusted(async()=>{await this.vfs.mkdir(x(e),t)})}async readdir(e){return this.trusted(async()=>{let t=x(e);if(t===`/usr`)return[`bin`];if(IV(t)===`/usr/bin`)return this.getVirtualBinCommands().slice().sort();let n=this.vfs.readDirSync(t);if(n!==null)return RV(t,n.map(e=>e.name));let r=await this.vfs.readDir(t,{includeStats:!0});return this.primeListingStats(t,r),RV(t,r.map(e=>e.name))})}async readdirWithFileTypes(e){return this.trusted(async()=>{let t=x(e);if(t===`/usr`)return[{name:`bin`,isFile:!1,isDirectory:!0,isSymbolicLink:!1}];if(IV(t)===`/usr/bin`)return this.getVirtualBinCommands().slice().sort().map(e=>({name:e,isFile:!0,isDirectory:!1,isSymbolicLink:!1}));let n=this.vfs.readDirSync(t);if(n!==null)return zV(t,this.mapFastEntriesToDirents(n));let r=await this.vfs.readDir(t,{includeStats:!0});return this.primeListingStats(t,r),zV(t,this.mapAsyncEntriesToDirents(r))})}mapFastEntriesToDirents(e){return e.map(e=>this.entryToDirent(e))}mapAsyncEntriesToDirents(e){return e.map(e=>this.entryToDirent(e))}entryToDirent(e){return e.type===`symlink`?{name:e.name,isFile:!1,isDirectory:!1,isSymbolicLink:!0}:{name:e.name,isFile:e.type===`file`,isDirectory:e.type===`directory`,isSymbolicLink:!1}}async rm(e,t){return this.dropListingStats(),this.trusted(async()=>{await this.vfs.rm(x(e),t)})}async cp(e,t,n){return this.dropListingStats(),this.trusted(async()=>{let r=x(e),i=x(t),a;try{a=await this.vfs.stat(r)}catch(e){let t=this.identityFile(r);if(!t||!MV(e))throw e;await this.vfs.writeFile(i,t);return}if(a.type===`directory`){if(!n?.recursive)throw new Xe(`EISDIR`,`is a directory`,r);await this.cpDir(r,i)}else await this.vfs.copyFile(r,i)})}async cpDir(e,t){await this.vfs.mkdir(t,{recursive:!0});let n=await this.vfs.readDir(e);for(let r of n){let n=S(e,r.name),i=S(t,r.name);r.type===`directory`?await this.cpDir(n,i):await this.vfs.copyFile(n,i)}let r=new Set(n.map(e=>e.name));for(let n of jV(e)){let i=r.has(n)?void 0:this.identityFile(S(e,n));i&&await this.vfs.writeFile(S(t,n),i)}}async mv(e,t){return this.dropListingStats(),this.trusted(async()=>{await this.vfs.rename(x(e),x(t))})}async rename(e,t){return this.mv(e,t)}resolvePath(e,t){return t.startsWith(`/`)?x(t):x(S(e,t))}getAllPaths(){return[]}async chmod(e,t){return this.dropListingStats(),this.trusted(()=>this.vfs.chmod(x(e),t))}async updateMetadataBatch(e){return this.dropListingStats(),this.trusted(()=>this.vfs.updateMetadataBatch(e.map(e=>({...e,path:x(e.path)}))))}async symlinkBatch(e){return this.dropListingStats(),this.trusted(()=>this.vfs.symlinkBatch(e.map(e=>({target:e.target,path:x(e.path)}))))}async symlink(e,t){return this.dropListingStats(),this.trusted(async()=>{await this.vfs.symlink(e,x(t))})}async link(e,t){throw Error(`Hard links not supported in VirtualFS`)}async readlink(e){return this.trusted(async()=>this.vfs.readlink(x(e)))}async realpath(e){return this.trusted(async()=>this.vfs.realpath(x(e)))}async utimes(e,t,n){return this.dropListingStats(),this.trusted(()=>this.vfs.utimes(x(e),t,n))}invalidatePaths(e){this.dropListingStats();let t=this.vfs;t.invalidatePaths&&t.invalidatePaths(e)}async forgetSidecarConsistency(){await this.vfs.forgetSidecarConsistency?.()}};function VV(e){return e&&typeof e.getWatcher==`function`?e.getWatcher?.()??null:e&&typeof e.getUnderlyingFS==`function`?VV(e.getUnderlyingFS?.()):null}const HV=e(`almost-bash-shell`);function UV(e){if(!(`__SLICC_RUN_PID`in e)&&!(`__SLICC_OUTPUT_TEE__`in e)&&!(`__SLICC_SUDO_REASON`in e)&&!(`__SLICC_PIPESTATUS`in e)&&!(`__SLICC_PIPESTATUS_EX`in e))return{...e};let{[nm]:t,[rm]:n,[Gp]:r,[Wt]:i,[Vt]:a,...o}=e;return o}function WV(e){let t=new AbortController,n=e.filter(e=>e!==void 0),r=()=>t.abort();for(let e of n)e.aborted?t.abort():e.addEventListener(`abort`,r,{once:!0});return{signal:t.signal,release(){for(let e of n)e.removeEventListener(`abort`,r)}}}var GV=class e{options;bash;vfsAdapter;gitCommands;mountCommands;lastEnv;cwd;umask=18;builtinCommandNames;staticBuiltinNames;allowedCommands;scriptCatalog;initialJshSync=null;ownsScriptCatalog;commandGate;jshRegistry;gnuBashFallback;pendingEnvWrites=new Map;activeShellPid;progress;activeRunSignal;commandAbort=new AbortController;scriptRun=null;scriptRunsActive=0;registryNames=new Set;outputTees=new Map;nextOutputTeeId=0;resolveJshProcessConfig=e=>this.buildJshProcessConfig(im(e));static buildAllowedCommandSet(e){return e.sudo?.defaultDisposition===`require-approval`||!e.allowedCommands||e.allowedCommands.includes(`*`)?null:new Set(e.allowedCommands)}static buildInitialEnv(e,t){return{HOME:om,PATH:vr,USER:`user`,SHELL:`/bin/bash`,TMPDIR:`/tmp`,PWD:t,...e.env}}buildSupplementalCommands(e,t,n){return bV({onMediaPreview:async e=>this.renderMediaPreview(e),getJshCommands:()=>this.getJshCommandNames(),getWorkflowCommands:()=>this.getWorkflowCommandNames(),syncScriptCommands:()=>this.syncJshCommands(),getStaticBuiltins:()=>[...this.staticBuiltinNames],getScriptRegisteredNames:()=>this.jshRegistry.scriptRegisteredNames(),fs:e.fs,fetch:t,streamFetch:n,scriptCatalog:this.scriptCatalog,browserAPI:e.browserAPI,webhook:e.webhook,crontask:e.crontask,getParentJid:e.getParentJid,isScoop:e.isScoop,buildProcessConfig:this.resolveJshProcessConfig,terminal:e.terminal,gateNativeCommand:this.gateNativeCommand,processManager:e.processManager,sudoCommand:e.sudo?{broker:e.sudo.broker,persistGrant:async e=>{this.commandGate.queueGrant(e)},suppressNextGate:e=>this.commandGate.registerSudoBypass(e)}:void 0,setEnv:(e,t)=>{this.pendingEnvWrites.set(e,t),this.lastEnv[e]=t},unsetEnv:e=>{this.pendingEnvWrites.set(e,null),delete this.lastEnv[e]},gitCredential:{githubToken:(e,t)=>this.gitCommands.githubCredential(e,t),githubDomains:Bp},gitIdentity:()=>this.gitCommands.identity(),mcpConnectionManager:e.mcpConnectionManager})}constructor(t){this.options=t,this.vfsAdapter=new BV(t.fs),this.progress=new fm({scrubLabel:t.scrubProgressLabel}),this.allowedCommands=e.buildAllowedCommandSet(t),this.commandGate=new Jp({getSudo:()=>this.options.sudo,fs:t.fs});let n=t.cwd??`/`,r=e.buildInitialEnv(t,n);this.gitCommands=new mp({fs:t.fs,authorName:r.GIT_AUTHOR_NAME??`User`,authorEmail:r.GIT_AUTHOR_EMAIL??`user@example.com`,ensureFreshGithubToken:zp}),this.mountCommands=new Vs({fs:t.fs,isScoop:t.isScoop,acquireLocalMountViaToolUI:Zm});let i=t.jshDiscoveryFs??t.fs,a=t.bshDiscoveryFs??t.fs,o=VV(i)??VV(a);this.scriptCatalog=t.scriptCatalog??new ki({jshFs:i,bshFs:a,watcher:o}),this.ownsScriptCatalog=!t.scriptCatalog,o&&o.watch(`/`,e=>e.endsWith(`.jsh`)||e.endsWith(`.workflow.js`)||gr(e),()=>{this.syncJshCommands().catch(()=>void 0)});let s=this.createGitCustomCommand(),c=g({progress:_m(this.progress)}),l=_({progress:_m(this.progress)}),u=this.buildSupplementalCommands(t,c,l),d=[s,this.createMountCustomCommand(),this.createUmountCustomCommand(),Gh(t.fs),Hg(t.fs,c,t.browserAPI),...u].filter(e=>this.isCommandAllowed(e.name)),f=[...ft(),...dt()],p=this.allowedCommands?f.filter(e=>this.isCommandAllowed(e)):void 0;if(this.bash=new pt({fs:this.vfsAdapter,cwd:n,env:{},fetch:c,commands:p,customCommands:d,sleep:Rm(this.progress,{isAborted:()=>this.activeRunSignal?.aborted??!1}),executionLimitProfile:t.executionLimitProfile,executionLimits:Xp(t.isScoop?.()??!1,t.executionLimits)}),this.bash.registerTransformPlugin(ah),this.allowedCommands!==null){let e=this.bash;for(let t of dt())this.isCommandAllowed(t)||e.commands.delete(t)}{let e=this.bash;for(let[t,n]of e.commands)e.commands.set(t,this.wrapCommandForDispatch(n));this.registryNames=new Set(e.commands.keys())}let m=d.map(e=>e.name),h=p??[...ft(),...dt()];this.builtinCommandNames=new Set([...h,...m]),this.staticBuiltinNames=new Set(this.builtinCommandNames),this.vfsAdapter.setRegisteredCommandsFn(()=>[...this.builtinCommandNames]),this.vfsAdapter.setIdentityFn(()=>({user:this.lastEnv.USER??`user`,home:this.lastEnv.HOME??`/home/user`})),this.lastEnv={...r},this.cwd=n,this.bindCollaborators(t),this.startInitialJshSync()}bindCollaborators(e){let t=this;this.jshRegistry=new dm({get bash(){return t.bash},scriptCatalog:this.scriptCatalog,discoveryFs:e.jshDiscoveryFs??e.fs,vfsAdapter:this.vfsAdapter,get cwd(){return t.cwd},get lastEnv(){return t.lastEnv},get umask(){return t.umask},builtinCommandNames:this.builtinCommandNames,isCommandAllowed:e=>this.isCommandAllowed(e),wrapCommandForDispatch:e=>this.wrapCommandForDispatch(e),path:()=>this.lastEnv.PATH,buildJshProcessConfig:e=>this.buildJshProcessConfig(e),gateNativeCommand:this.gateNativeCommand,gitIdentity:()=>this.gitCommands.identity()}),this.gnuBashFallback=new am({gnuBash:e.gnuBash===!0,get lastEnv(){return t.lastEnv},get cwd(){return t.cwd},get umask(){return t.umask},vfsAdapter:this.vfsAdapter,get bash(){return t.bash},scriptCatalog:this.scriptCatalog,outputTees:this.outputTees,gateNativeCommand:this.gateNativeCommand,buildJshProcessConfig:e=>this.buildJshProcessConfig(e),gitIdentity:()=>this.gitCommands.identity(),flushPendingCommandGrants:()=>this.commandGate.flushPendingCommandGrants(),applyPendingEnvWrites:()=>this.applyPendingEnvWrites(),syncJshCommands:()=>this.syncJshCommands(),adoptCwd:e=>{this.cwd=e},adoptEnv:e=>{this.lastEnv=e}})}getBash(){return this.bash}getCwd(){return this.cwd}getScriptCatalog(){return this.scriptCatalog}getEnv(){return{...this.lastEnv}}setMaskedEnvVar(e,t){this.pendingEnvWrites.set(e,t),this.lastEnv[e]=t}applySessionOverrides(e){e.cwd!==void 0&&(this.cwd=e.cwd,this.lastEnv.PWD=e.cwd),e.env&&Object.assign(this.lastEnv,e.env)}async getJshCommandNames(){return this.jshRegistry.getJshCommandNames()}async syncJshCommands(){return this.jshRegistry.syncJshCommands()}cancelActiveCommand(){this.commandAbort.abort(),this.commandAbort=new AbortController}async executeCommand(e,t,n,r=``,i){let a=this.activeShellPid;n!==void 0&&(this.activeShellPid=n);let o=i?.onOutput?`tee-${this.nextOutputTeeId+=1}`:void 0;o&&i?.onOutput&&this.outputTees.set(o,i.onOutput);try{let a=await this.runCommand(e,t,n,r,o,i?.capturePipeStatus);return{stdout:a.stdout,stderr:a.stderr,exitCode:a.exitCode,...a.pipeStatus===void 0?{}:{pipeStatus:a.pipeStatus}}}finally{this.activeShellPid=a,o&&this.outputTees.delete(o)}}async executeScriptFile(e,t=[]){return fi(e,t,{fs:this.vfsAdapter,cwd:this.cwd,env:new Map(Object.entries(this.lastEnv)),stdin:``,exec:(e,t)=>this.bash.exec(e,{env:t?.env??this.lastEnv,cwd:t?.cwd??this.cwd,umask:this.umask,...t?.env===void 0?{}:{replaceEnv:!0}})},this.buildJshProcessConfig())}dispose(){this.ownsScriptCatalog&&this.scriptCatalog.dispose()}async renderMediaPreview(e){throw Error(`terminal preview is unavailable in headless mode`)}startInitialJshSync(){this.initialJshSync=this.initHomeAndProfile().then(()=>this.syncJshCommands()).catch(()=>void 0).finally(()=>{this.initialJshSync=null})}async initHomeAndProfile(){let e=this.options.fs;try{let t=this.options.env?.HOME??await sm(e);this.lastEnv.HOME=t,this.options.env?.USER||(this.lastEnv.USER=cm(t));let n=`${t.replace(/\/+$/,``)}/.profile`;if(!await e.exists(n).catch(()=>!1))return;let r=await this.bash.exec(`. "$HOME/.profile"`,{env:this.lastEnv,cwd:this.cwd,umask:this.umask});if(typeof r.umask==`number`&&(this.umask=r.umask),r.env){let{PWD:e,...t}=r.env;this.lastEnv={...t,PWD:this.lastEnv.PWD??this.cwd}}}catch(e){HV.warn(`HOME/profile init failed; continuing with defaults`,e)}}async waitForInitialJshSync(e){let t=this.initialJshSync;if(t===null)return;if(!e){await t;return}if(e.aborted)return;let n;try{await new Promise(r=>{n=()=>r(),e.addEventListener(`abort`,n,{once:!0}),t.then(()=>r(),()=>r())})}finally{n&&e.removeEventListener(`abort`,n)}}async runCommand(e,t,n,r=``,i,a=!1){if(CV(e.trim().split(/\s+/)[0]||`unknown`),v(),await this.waitForInitialJshSync(t),await this.gnuBashFallback.usesGnuBash())return this.gnuBashFallback.runOnGnuBash(e,t,n,r,i,a);let o=qp(e),s={env:{...this.lastEnv,...n===void 0?{}:{[nm]:String(n)},...i===void 0?{}:{[rm]:i},...o?{[Gp]:o}:{}},cwd:this.cwd,umask:this.umask,signal:t,...r===``?{}:{stdin:r,stdinKind:`bytes`}},c=this.lastEnv.PATH,l=WV([t,this.commandAbort.signal]);s.signal=l.signal,this.activeRunSignal=l.signal;let u=this.beginScriptRun(e),d;try{d=await this.bash.exec(Ht(e,a),s)}finally{l.release(),this.activeRunSignal===l.signal&&(this.activeRunSignal=void 0),this.endScriptRun(u)}if(await this.commandGate.flushPendingCommandGrants(),d=Bt(d,a),typeof d.umask==`number`&&(this.umask=d.umask),d.env&&(this.lastEnv=UV(d.env)),d.env&&this.lastEnv.PATH!==c&&await this.syncJshCommands().catch(()=>void 0),this.applyPendingEnvWrites(),d.env?.PWD&&(this.cwd=d.env.PWD),d.exitCode===127){let t=await this.jshRegistry.tryJshFallback(e,n);if(t)return this.syncJshCommands().catch(()=>void 0),t}if(d.exitCode!==0&&d.stderr.includes(`Permission denied`)){let{withShebangExecHint:e}=await import(`./shebang-exec-hint-CSwess-H.js`).then(e=>e.n);return Rt(await e(d,this.cwd,this.vfsAdapter),d.pipeStatus)}return d}applyPendingEnvWrites(){for(let[e,t]of this.pendingEnvWrites)t===null?delete this.lastEnv[e]:this.lastEnv[e]=t;this.pendingEnvWrites.clear()}gateNativeCommand=async(e,t,n)=>{if(this.allowedCommands!==null&&!this.isCommandAllowed(e))return{stderr:`bash: ${e}: command not found\n`,exitCode:127};if(!this.commandGate.isTransparentGatingEnabled()||Op.has(e))return null;let r=await this.commandGate.gateCommandDispatch(e,t,n[Gp]);return r?{stderr:r.stderr,exitCode:r.exitCode}:null};wrapCommandForDispatch(e){let t=this.commandGate.wrapCommandForSudo(e),n=e.name===`timeout`?Hm(t,this.progress):Wm(t,this.progress),r=()=>this.scriptRun?.stepDone(),i=(e,t)=>this.teeCommandOutput(e,t),a=this.outputTees;return{...n,async execute(e,t){let o=t.env?.get(rm),s=o?a.get(o):void 0;s&&(t.writeStdout=s);try{let r=await Km(()=>n.execute(e,t),t.signal);return i(t.env,r),r}finally{r()}}}}teeCommandOutput(e,t){let n=e?.get(rm);if(!n)return;let r=this.outputTees.get(n);if(!r)return;let i=[t.stdout,t.stderr].filter(Boolean).join(``);i&&r(i)}beginScriptRun(e){if(this.scriptRunsActive+=1,!this.progress.hasSink())return null;if(this.scriptRunsActive>1)return this.scriptRun?.end(),this.scriptRun=null,null;let t={totalSteps:null};try{t=Nm(this.bash.transform(e).ast,this.registryNames)}catch{t={totalSteps:null}}return this.scriptRun=new Fm(t,this.progress,Pm(e)),this.scriptRun}endScriptRun(e){this.scriptRunsActive=Math.max(0,this.scriptRunsActive-1),e&&(e.end(),this.scriptRun===e&&(this.scriptRun=null))}isCommandAllowed(e){return this.allowedCommands===null||this.allowedCommands.has(Op.get(e)??e)}createGitCustomCommand(){let e=this.gitCommands;return C(`git`,async(t,n)=>{let r=n.cwd,i=await e.execute(t,r,n.env,P(n.stdin));return{stdout:i.stdout,stderr:i.stderr,exitCode:i.exitCode}})}createMountCustomCommand(){let e=this.mountCommands;return C(`mount`,async(t,n)=>{let r=n.cwd,i=await e.execute(t,r,n.env);return{stdout:i.stdout,stderr:i.stderr,exitCode:i.exitCode}})}createUmountCustomCommand(){let e=this.mountCommands;return C(`umount`,async(t,n)=>{let r=n.cwd,i=await e.executeUmount(t,r);return{stdout:i.stdout,stderr:i.stderr,exitCode:i.exitCode}})}async getWorkflowCommandNames(){return this.jshRegistry.getWorkflowCommandNames()}buildJshProcessConfig(e){if(!(!this.options.processManager||!this.options.processOwner))return{processManager:this.options.processManager,owner:this.options.processOwner,getParentPid:()=>e??this.activeShellPid??this.options.getCurrentShellPid?.()}}};export{za as _,kB as a,ka as b,Ms as c,xs as d,ys as f,Fa as g,Wo as h,TB as i,Ts as l,$o as m,BV as n,CB as o,es as p,SV as r,om as s,GV as t,Ss as u,Ra as v,Ro as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{CHAT_SURFACE_ID as e}from"./wc-sprinkles-
|
|
1
|
+
import{CHAT_SURFACE_ID as e}from"./wc-sprinkles-X6XXwEad.js";var t=`focus`,n={type:`leaf`,surfaceId:`chat`};function r(e,t={},n={}){return{zones:{top:null,left:null,middle:null,right:null,bottom:null,...e},rowFr:{top:1,center:1,bottom:1,...n},colFr:{left:1,middle:1,right:1,...t}}}var i={focus:{name:`focus`,tree:r({left:n},{left:3,middle:1})}};function a(e){return i[e]??null}function o(n,r){switch(r.kind){case`set`:n.applyLayout(r.tree);break;case`reset`:{let e=a(t);e&&n.applyLayout(e.tree);break}case`chat`:n.moveSurfaceToZone(e,r.zone);break;case`open`:n.placeSurface(r.zone,r.surfaceId);break;case`close`:n.removeSurface(r.surfaceId);break;case`move`:n.moveSurfaceToZone(r.surfaceId,r.zone);break;case`size`:n.setSurfaceSize(r.surfaceId,r.size)}}export{o as applyLayout};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as e,o as t}from"./account-store-
|
|
1
|
+
import{c as e,o as t}from"./account-store-BhO6674m.js";import{a as n}from"./diagnostics-Cag7MsZI.js";import{t as r}from"./models-CET5SEuw.js";import{a as i}from"./compat-nGhSz-U1.js";import{n as a,t as o}from"./pi-transcript-context-4pjVPiVC.js";import{r as s,t as c}from"./transform-messages-BeurHGV0.js";function l(e,t,n,r,i){if(r===`m`)throw TypeError(`Private method is not writable`);if(r===`a`&&!i)throw TypeError(`Private accessor was defined without a setter`);if(typeof t==`function`?e!==t||!i:!t.has(e))throw TypeError(`Cannot write private member to an object whose class did not declare it`);return r===`a`?i.call(e,n):i?i.value=n:t.set(e,n),n}function u(e,t,n,r){if(n===`a`&&!r)throw TypeError(`Private accessor was defined without a getter`);if(typeof t==`function`?e!==t||!r:!t.has(e))throw TypeError(`Cannot read private member from an object whose class did not declare it`);return n===`m`?r:n===`a`?r.call(e):r?r.value:t.get(e)}let d=function(){let{crypto:e}=globalThis;if(e?.randomUUID)return d=e.randomUUID.bind(e),e.randomUUID();let t=new Uint8Array(1),n=e?()=>e.getRandomValues(t)[0]:()=>Math.random()*255&255;return`10000000-1000-4000-8000-100000000000`.replace(/[018]/g,e=>(e^n()&15>>e/4).toString(16))};function f(e){return typeof e==`object`&&!!e&&(`name`in e&&e.name===`AbortError`||`message`in e&&String(e.message).includes(`FetchRequestCanceledException`))}const p=e=>{if(e instanceof Error)return e;if(typeof e==`object`&&e){try{if(Object.prototype.toString.call(e)===`[object Error]`){let t=Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return Error(JSON.stringify(e))}catch{}}return Error(e)};var m=class extends Error{},h=class e extends m{constructor(t,n,r,i){super(`${e.makeMessage(t,n,r)}`),this.status=t,this.headers=i,this.requestID=i?.get(`x-request-id`),this.error=n;let a=n;this.code=a?.code,this.param=a?.param,this.type=a?.type}static makeMessage(e,t,n){let r=t?.message?typeof t.message==`string`?t.message:JSON.stringify(t.message):t?JSON.stringify(t):n;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||`(no status code or body)`}static generate(t,n,r,i){if(!t||!i)return new _({message:r,cause:p(n)});let a=n?.error;return t===400?new y(t,a,r,i):t===401?new b(t,a,r,i):t===403?new x(t,a,r,i):t===404?new ee(t,a,r,i):t===409?new te(t,a,r,i):t===422?new ne(t,a,r,i):t===429?new re(t,a,r,i):t>=500?new ie(t,a,r,i):new e(t,a,r,i)}},g=class extends h{constructor({message:e}={}){super(void 0,void 0,e||`Request was aborted.`,void 0)}},_=class extends h{constructor({message:e,cause:t}){super(void 0,void 0,e||`Connection error.`,void 0),t&&(this.cause=t)}},v=class extends _{constructor({message:e}={}){super({message:e??`Request timed out.`})}},y=class extends h{},b=class extends h{},x=class extends h{},ee=class extends h{},te=class extends h{},ne=class extends h{},re=class extends h{},ie=class extends h{},ae=class extends m{constructor(){super(`Could not parse response content as the length limit was reached`)}},oe=class extends m{constructor(){super(`Could not parse response content as the request was rejected by the content filter`)}},se=class extends Error{constructor(e){super(e)}},ce=class extends h{constructor(e,t,n){let r=`OAuth2 authentication error`,i;if(t&&typeof t==`object`){let e=t;i=e.error;let n=e.error_description;n&&typeof n==`string`?r=n:i&&(r=i)}super(e,t,r,n),this.error_code=i}},le=class extends m{constructor(e,t,n){super(e),this.provider=t,this.cause=n}};const ue=/^[a-z][a-z0-9+.-]*:/i,de=e=>ue.test(e);let S=e=>(S=Array.isArray,S(e)),fe=S;function pe(e){return typeof e==`object`?e??{}:{}}function me(e){if(!e)return!0;for(let t in e)return!1;return!0}function he(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function C(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}const ge=(e,t)=>{if(typeof t!=`number`||!Number.isInteger(t))throw new m(`${e} must be an integer`);if(t<0)throw new m(`${e} must be a positive integer`);return t},_e=e=>{try{return JSON.parse(e)}catch{return}},ve=e=>new Promise(t=>setTimeout(t,e));function ye(){if(typeof fetch<`u`)return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function be(...e){let t=globalThis.ReadableStream;if(t===void 0)throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new t(...e)}function xe(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return be({start(){},async pull(e){let{done:n,value:r}=await t.next();n?e.close():e.enqueue(r)},async cancel(){await t.return?.()}})}function Se(e){if(e[Symbol.asyncIterator])return e;let t=e.getReader();return{async next(){try{let e=await t.read();return e?.done&&t.releaseLock(),e}catch(e){throw t.releaseLock(),e}},async return(){let e=t.cancel();return t.releaseLock(),await e,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function Ce(e){if(typeof e!=`object`||!e)return;if(e[Symbol.asyncIterator]){await e[Symbol.asyncIterator]().return?.();return}let t=e.getReader(),n=t.cancel();t.releaseLock(),await n}let we;function w(e){let t;return(we??=(t=new globalThis.TextEncoder,t.encode.bind(t)))(e)}let Te;function Ee(e){let t;return(Te??=(t=new globalThis.TextDecoder,t.decode.bind(t)))(e)}var De,T,E,D,Oe,ke,Ae;const je=65536;var Me=class{constructor(){De.add(this),T.set(this,void 0),E.set(this,void 0),D.set(this,void 0),Oe.set(this,void 0),ke.set(this,void 0),l(this,T,new Uint8Array,`f`),l(this,E,0,`f`),l(this,D,0,`f`),l(this,Oe,0,`f`),l(this,ke,!1,`f`)}decode(e){if(e==null)return[];let t;if(t=e instanceof ArrayBuffer?new Uint8Array(e):typeof e==`string`?w(e):e,t.length===0||u(this,ke,`f`)&&(l(this,ke,!1,`f`),t[0]===10&&(t=t.subarray(1)),t.length===0))return[];u(this,De,`m`,Ae).call(this,t);let n=[],r;for(;(r=Ne(u(this,T,`f`),u(this,Oe,`f`),u(this,D,`f`)))!=null;){let e=Ee(u(this,T,`f`).subarray(u(this,E,`f`),r.preceding));n.push(e),l(this,E,r.index,`f`),r.carriage&&(u(this,E,`f`)<u(this,D,`f`)&&u(this,T,`f`)[u(this,E,`f`)]===10?l(this,E,u(this,E,`f`)+1,`f`):u(this,E,`f`)===u(this,D,`f`)&&l(this,ke,!0,`f`)),l(this,Oe,u(this,E,`f`),`f`)}if(l(this,Oe,u(this,D,`f`),`f`),u(this,E,`f`)===u(this,D,`f`))l(this,E,0,`f`),l(this,D,0,`f`),l(this,Oe,0,`f`),u(this,T,`f`).length>je&&l(this,T,new Uint8Array,`f`);else if(n.length>0&&u(this,T,`f`).length>je){let e=u(this,D,`f`)-u(this,E,`f`);if(e<=je||u(this,T,`f`).length>e*4){let t=e<=je?Math.min(Math.max(e*2,256),je):e*2,n=new Uint8Array(t);n.set(u(this,T,`f`).subarray(u(this,E,`f`),u(this,D,`f`))),l(this,T,n,`f`),l(this,E,0,`f`),l(this,D,e,`f`),l(this,Oe,e,`f`)}}return n}flush(){return l(this,ke,!1,`f`),u(this,E,`f`)===u(this,D,`f`)?[]:this.decode(`
|
|
2
2
|
`)}};T=new WeakMap,E=new WeakMap,D=new WeakMap,Oe=new WeakMap,ke=new WeakMap,De=new WeakSet,Ae=function(e){if(u(this,D,`f`)+e.length>u(this,T,`f`).length){let t=u(this,D,`f`)-u(this,E,`f`);if(u(this,E,`f`)>=u(this,T,`f`).length/2&&t+e.length<=u(this,T,`f`).length)u(this,T,`f`).copyWithin(0,u(this,E,`f`),u(this,D,`f`));else{let n=Math.max(u(this,T,`f`).length*2,t+e.length,256),r=new Uint8Array(n);r.set(u(this,T,`f`).subarray(u(this,E,`f`),u(this,D,`f`))),l(this,T,r,`f`)}l(this,Oe,u(this,Oe,`f`)-u(this,E,`f`),`f`),l(this,D,t,`f`),l(this,E,0,`f`)}u(this,T,`f`).set(e,u(this,D,`f`)),l(this,D,u(this,D,`f`)+e.length,`f`)},Me.NEWLINE_CHARS=new Set([`
|
|
3
3
|
`,`\r`]),Me.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function Ne(e,t,n){for(let r=t;r<n;r++){if(e[r]===10)return{preceding:r,index:r+1,carriage:!1};if(e[r]===13)return{preceding:r,index:r+1,carriage:!0}}return null}function Pe(e){for(let t=0;t<e.length-1;t++){let n=Fe(e,t);if(n>0){let r=t+n,i=Fe(e,r);if(i>0)return r+i}}return-1}function Fe(e,t){return e[t]===10?1:e[t]===13?e[t+1]===10?2:1:0}const Ie={off:0,error:200,warn:300,info:400,debug:500},Le=(e,t,n)=>{if(e){if(he(Ie,e))return e;O(n).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(Ie))}`)}};function Re(){}function ze(e,t,n){return!t||Ie[e]>Ie[n]?Re:t[e].bind(t)}const Be={error:Re,warn:Re,info:Re,debug:Re};let Ve=new WeakMap;function O(e){let t=e.logger,n=e.logLevel??`off`;if(!t)return Be;let r=Ve.get(t);if(r&&r[0]===n)return r[1];let i={error:ze(`error`,t,n),warn:ze(`warn`,t,n),info:ze(`info`,t,n),debug:ze(`debug`,t,n)};return Ve.set(t,[n,i]),i}const He=e=>(e.options&&(e.options={...e.options},delete e.options.headers),e.headers&&=Object.fromEntries((e.headers instanceof Headers?[...e.headers]:Object.entries(e.headers)).map(([e,t])=>[e,e.toLowerCase()===`authorization`||e.toLowerCase()===`api-key`||e.toLowerCase()===`x-api-key`||e.toLowerCase()===`x-amz-security-token`||e.toLowerCase()===`cookie`||e.toLowerCase()===`set-cookie`?`***`:t])),`retryOfRequestLogID`in e&&(e.retryOfRequestLogID&&(e.retryOf=e.retryOfRequestLogID),delete e.retryOfRequestLogID),e);var Ue,We=class e{constructor(e,t,n){Ue.set(this,void 0),this.iterator=e,this.controller=t,l(this,Ue,n,`f`)}static fromSSEResponse(t,n,r,i){let a=!1,o=r?O(r):console;async function*s(){if(a)throw new m("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");a=!0;let e=!1,r=!1;try{for await(let e of Ge(t,n)){if(e.data.startsWith(`[DONE]`)){r=!0;break}if(e.event===null||!e.event.startsWith(`thread.`)){let n;try{n=JSON.parse(e.data)}catch(t){throw o.error(`Could not parse message into JSON:`,e.data),o.error(`From chunk:`,e.raw),t}if(n&&n.error)throw new h(void 0,n.error,void 0,t.headers);yield i?{event:e.event,data:n}:n}else{let t;try{t=JSON.parse(e.data)}catch(t){throw console.error(`Could not parse message into JSON:`,e.data),console.error(`From chunk:`,e.raw),t}if(e.event===`error`)throw new h(void 0,t.error,t.message,void 0);yield{event:e.event,data:t}}}e=!0}catch(e){if(r||f(e)||n.signal.aborted&&e===n.signal.reason)return;throw e}finally{e||n.abort()}}return new e(s,n,r)}static fromReadableStream(t,n,r){let i=!1;async function*a(){let e=new Me,r=t.getReader(),i=!1,a,o=()=>{a??=r.cancel(),a.catch(()=>void 0)};n.signal.addEventListener(`abort`,o,{once:!0});try{if(n.signal.aborted){o();return}for(;;){let{value:t,done:a}=await r.read();if(a){i=!0;break}if(n.signal.aborted)return;for(let r of e.decode(t)){if(n.signal.aborted)return;yield r}}if(n.signal.aborted)return;for(let t of e.flush()){if(n.signal.aborted)return;yield t}}finally{n.signal.removeEventListener(`abort`,o),i||o(),r.releaseLock()}}async function*o(){if(i)throw new m("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");i=!0;let e=!1;try{for await(let t of a())e||t&&(yield JSON.parse(t));e=!0}catch(e){if(n.signal.aborted||f(e))return;throw e}finally{e||n.abort()}}return new e(o,n,r)}[(Ue=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let t=[],n=[],r=this.iterator(),i=e=>({next:()=>{if(e.length===0){let e=r.next();t.push(e),n.push(e)}return e.shift()}});return[new e(()=>i(t),this.controller,u(this,Ue,`f`)),new e(()=>i(n),this.controller,u(this,Ue,`f`))]}toReadableStream(){let e;return be({start:async()=>{e=this[Symbol.asyncIterator]()},async pull(t){try{let{value:n,done:r}=await e.next();if(r)return t.close();let i=w(JSON.stringify(n)+`
|
|
4
4
|
`);t.enqueue(i)}catch(e){t.error(e)}},async cancel(){await e.return?.()}})}};async function*Ge(e,t){if(!e.body)throw t.abort(),globalThis.navigator!==void 0&&globalThis.navigator.product===`ReactNative`?new m(`The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api`):new m(`Attempted to iterate over a response with no body`);let n=new qe,r=new Me,i=Se(e.body);for await(let e of Ke(i))for(let t of r.decode(e)){let e=n.decode(t);e&&(yield e)}for(let e of r.flush()){let t=n.decode(e);t&&(yield t)}}async function*Ke(e){let t=new Uint8Array,n=0,r=0,i=0;for await(let a of e){if(a==null)continue;let e;if(e=a instanceof ArrayBuffer?new Uint8Array(a):typeof a==`string`?w(a):a,r+e.length>t.length){let a=r-n;if(n>=t.length/2&&a+e.length<=t.length)t.copyWithin(0,n,r);else{let i=new Uint8Array(Math.max(t.length*2,a+e.length));i.set(t.subarray(n,r)),t=i}i-=n,n=0,r=a}t.set(e,r),r+=e.length;let o;for(;(o=Pe(t.subarray(i,r)))!==-1;)o+=i,yield t.slice(n,o),n=o,i=n;i=Math.max(n,r-3)}r>n&&(yield t.slice(n,r))}var qe=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith(`\r`)&&(e=e.slice(0,-1)),!e){if(!this.event&&!this.data.length)return null;let e={event:this.event,data:this.data.join(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e}from"./diagnostics-Cag7MsZI.js";import{t}from"./models-Xc0Gclrk.js";import{a as n}from"./compat-BAGLwgqY.js";import{b as r,g as i}from"./account-store-
|
|
1
|
+
import{a as e}from"./diagnostics-Cag7MsZI.js";import{t}from"./models-Xc0Gclrk.js";import{a as n}from"./compat-BAGLwgqY.js";import{b as r,g as i}from"./account-store-F-Mv2jhq.js";import{r as a,t as o}from"./transform-messages-k2mfzJwY.js";import{n as s,t as c}from"./pi-transcript-context-miZCMig3.js";function l(e,t,n,r,i){if(r===`m`)throw TypeError(`Private method is not writable`);if(r===`a`&&!i)throw TypeError(`Private accessor was defined without a setter`);if(typeof t==`function`?e!==t||!i:!t.has(e))throw TypeError(`Cannot write private member to an object whose class did not declare it`);return r===`a`?i.call(e,n):i?i.value=n:t.set(e,n),n}function u(e,t,n,r){if(n===`a`&&!r)throw TypeError(`Private accessor was defined without a getter`);if(typeof t==`function`?e!==t||!r:!t.has(e))throw TypeError(`Cannot read private member from an object whose class did not declare it`);return n===`m`?r:n===`a`?r.call(e):r?r.value:t.get(e)}var d=function(){let{crypto:e}=globalThis;if(e?.randomUUID)return d=e.randomUUID.bind(e),e.randomUUID();let t=new Uint8Array(1),n=e?()=>e.getRandomValues(t)[0]:()=>Math.random()*255&255;return`10000000-1000-4000-8000-100000000000`.replace(/[018]/g,e=>(e^n()&15>>e/4).toString(16))};function f(e){return typeof e==`object`&&!!e&&(`name`in e&&e.name===`AbortError`||`message`in e&&String(e.message).includes(`FetchRequestCanceledException`))}var p=e=>{if(e instanceof Error)return e;if(typeof e==`object`&&e){try{if(Object.prototype.toString.call(e)===`[object Error]`){let t=Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return Error(JSON.stringify(e))}catch{}}return Error(e)},m=class extends Error{},h=class e extends m{constructor(t,n,r,i){super(`${e.makeMessage(t,n,r)}`),this.status=t,this.headers=i,this.requestID=i?.get(`x-request-id`),this.error=n;let a=n;this.code=a?.code,this.param=a?.param,this.type=a?.type}static makeMessage(e,t,n){let r=t?.message?typeof t.message==`string`?t.message:JSON.stringify(t.message):t?JSON.stringify(t):n;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||`(no status code or body)`}static generate(t,n,r,i){if(!t||!i)return new _({message:r,cause:p(n)});let a=n?.error;return t===400?new y(t,a,r,i):t===401?new b(t,a,r,i):t===403?new x(t,a,r,i):t===404?new ee(t,a,r,i):t===409?new te(t,a,r,i):t===422?new ne(t,a,r,i):t===429?new re(t,a,r,i):t>=500?new ie(t,a,r,i):new e(t,a,r,i)}},g=class extends h{constructor({message:e}={}){super(void 0,void 0,e||`Request was aborted.`,void 0)}},_=class extends h{constructor({message:e,cause:t}){super(void 0,void 0,e||`Connection error.`,void 0),t&&(this.cause=t)}},v=class extends _{constructor({message:e}={}){super({message:e??`Request timed out.`})}},y=class extends h{},b=class extends h{},x=class extends h{},ee=class extends h{},te=class extends h{},ne=class extends h{},re=class extends h{},ie=class extends h{},ae=class extends m{constructor(){super(`Could not parse response content as the length limit was reached`)}},oe=class extends m{constructor(){super(`Could not parse response content as the request was rejected by the content filter`)}},se=class extends Error{constructor(e){super(e)}},ce=class extends h{constructor(e,t,n){let r=`OAuth2 authentication error`,i;if(t&&typeof t==`object`){let e=t;i=e.error;let n=e.error_description;n&&typeof n==`string`?r=n:i&&(r=i)}super(e,t,r,n),this.error_code=i}},le=class extends m{constructor(e,t,n){super(e),this.provider=t,this.cause=n}},ue=/^[a-z][a-z0-9+.-]*:/i,de=e=>ue.test(e),S=e=>(S=Array.isArray,S(e)),fe=S;function pe(e){return typeof e==`object`?e??{}:{}}function me(e){if(!e)return!0;for(let t in e)return!1;return!0}function he(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function C(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var ge=(e,t)=>{if(typeof t!=`number`||!Number.isInteger(t))throw new m(`${e} must be an integer`);if(t<0)throw new m(`${e} must be a positive integer`);return t},_e=e=>{try{return JSON.parse(e)}catch{return}},ve=e=>new Promise(t=>setTimeout(t,e));function ye(){if(typeof fetch<`u`)return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function be(...e){let t=globalThis.ReadableStream;if(t===void 0)throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new t(...e)}function xe(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return be({start(){},async pull(e){let{done:n,value:r}=await t.next();n?e.close():e.enqueue(r)},async cancel(){await t.return?.()}})}function Se(e){if(e[Symbol.asyncIterator])return e;let t=e.getReader();return{async next(){try{let e=await t.read();return e?.done&&t.releaseLock(),e}catch(e){throw t.releaseLock(),e}},async return(){let e=t.cancel();return t.releaseLock(),await e,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function Ce(e){if(typeof e!=`object`||!e)return;if(e[Symbol.asyncIterator]){await e[Symbol.asyncIterator]().return?.();return}let t=e.getReader(),n=t.cancel();t.releaseLock(),await n}var we;function w(e){let t;return(we??=(t=new globalThis.TextEncoder,t.encode.bind(t)))(e)}var Te;function Ee(e){let t;return(Te??=(t=new globalThis.TextDecoder,t.decode.bind(t)))(e)}var De,T,E,D,O,Oe,ke,Ae=65536,je=class{constructor(){De.add(this),T.set(this,void 0),E.set(this,void 0),D.set(this,void 0),O.set(this,void 0),Oe.set(this,void 0),l(this,T,new Uint8Array,`f`),l(this,E,0,`f`),l(this,D,0,`f`),l(this,O,0,`f`),l(this,Oe,!1,`f`)}decode(e){if(e==null)return[];let t;if(t=e instanceof ArrayBuffer?new Uint8Array(e):typeof e==`string`?w(e):e,t.length===0||u(this,Oe,`f`)&&(l(this,Oe,!1,`f`),t[0]===10&&(t=t.subarray(1)),t.length===0))return[];u(this,De,`m`,ke).call(this,t);let n=[],r;for(;(r=Me(u(this,T,`f`),u(this,O,`f`),u(this,D,`f`)))!=null;){let e=Ee(u(this,T,`f`).subarray(u(this,E,`f`),r.preceding));n.push(e),l(this,E,r.index,`f`),r.carriage&&(u(this,E,`f`)<u(this,D,`f`)&&u(this,T,`f`)[u(this,E,`f`)]===10?l(this,E,u(this,E,`f`)+1,`f`):u(this,E,`f`)===u(this,D,`f`)&&l(this,Oe,!0,`f`)),l(this,O,u(this,E,`f`),`f`)}if(l(this,O,u(this,D,`f`),`f`),u(this,E,`f`)===u(this,D,`f`))l(this,E,0,`f`),l(this,D,0,`f`),l(this,O,0,`f`),u(this,T,`f`).length>Ae&&l(this,T,new Uint8Array,`f`);else if(n.length>0&&u(this,T,`f`).length>Ae){let e=u(this,D,`f`)-u(this,E,`f`);if(e<=Ae||u(this,T,`f`).length>e*4){let t=e<=Ae?Math.min(Math.max(e*2,256),Ae):e*2,n=new Uint8Array(t);n.set(u(this,T,`f`).subarray(u(this,E,`f`),u(this,D,`f`))),l(this,T,n,`f`),l(this,E,0,`f`),l(this,D,e,`f`),l(this,O,e,`f`)}}return n}flush(){return l(this,Oe,!1,`f`),u(this,E,`f`)===u(this,D,`f`)?[]:this.decode(`
|
|
2
2
|
`)}};T=new WeakMap,E=new WeakMap,D=new WeakMap,O=new WeakMap,Oe=new WeakMap,De=new WeakSet,ke=function(e){if(u(this,D,`f`)+e.length>u(this,T,`f`).length){let t=u(this,D,`f`)-u(this,E,`f`);if(u(this,E,`f`)>=u(this,T,`f`).length/2&&t+e.length<=u(this,T,`f`).length)u(this,T,`f`).copyWithin(0,u(this,E,`f`),u(this,D,`f`));else{let n=Math.max(u(this,T,`f`).length*2,t+e.length,256),r=new Uint8Array(n);r.set(u(this,T,`f`).subarray(u(this,E,`f`),u(this,D,`f`))),l(this,T,r,`f`)}l(this,O,u(this,O,`f`)-u(this,E,`f`),`f`),l(this,D,t,`f`),l(this,E,0,`f`)}u(this,T,`f`).set(e,u(this,D,`f`)),l(this,D,u(this,D,`f`)+e.length,`f`)},je.NEWLINE_CHARS=new Set([`
|
|
3
3
|
`,`\r`]),je.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function Me(e,t,n){for(let r=t;r<n;r++){if(e[r]===10)return{preceding:r,index:r+1,carriage:!1};if(e[r]===13)return{preceding:r,index:r+1,carriage:!0}}return null}function Ne(e){for(let t=0;t<e.length-1;t++){let n=Pe(e,t);if(n>0){let r=t+n,i=Pe(e,r);if(i>0)return r+i}}return-1}function Pe(e,t){return e[t]===10?1:e[t]===13?e[t+1]===10?2:1:0}var Fe={off:0,error:200,warn:300,info:400,debug:500},Ie=(e,t,n)=>{if(e){if(he(Fe,e))return e;k(n).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(Fe))}`)}};function Le(){}function Re(e,t,n){return!t||Fe[e]>Fe[n]?Le:t[e].bind(t)}var ze={error:Le,warn:Le,info:Le,debug:Le},Be=new WeakMap;function k(e){let t=e.logger,n=e.logLevel??`off`;if(!t)return ze;let r=Be.get(t);if(r&&r[0]===n)return r[1];let i={error:Re(`error`,t,n),warn:Re(`warn`,t,n),info:Re(`info`,t,n),debug:Re(`debug`,t,n)};return Be.set(t,[n,i]),i}var Ve=e=>(e.options&&(e.options={...e.options},delete e.options.headers),e.headers&&=Object.fromEntries((e.headers instanceof Headers?[...e.headers]:Object.entries(e.headers)).map(([e,t])=>[e,e.toLowerCase()===`authorization`||e.toLowerCase()===`api-key`||e.toLowerCase()===`x-api-key`||e.toLowerCase()===`x-amz-security-token`||e.toLowerCase()===`cookie`||e.toLowerCase()===`set-cookie`?`***`:t])),`retryOfRequestLogID`in e&&(e.retryOfRequestLogID&&(e.retryOf=e.retryOfRequestLogID),delete e.retryOfRequestLogID),e),He,Ue=class e{constructor(e,t,n){He.set(this,void 0),this.iterator=e,this.controller=t,l(this,He,n,`f`)}static fromSSEResponse(t,n,r,i){let a=!1,o=r?k(r):console;async function*s(){if(a)throw new m("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");a=!0;let e=!1,r=!1;try{for await(let e of We(t,n)){if(e.data.startsWith(`[DONE]`)){r=!0;break}if(e.event===null||!e.event.startsWith(`thread.`)){let n;try{n=JSON.parse(e.data)}catch(t){throw o.error(`Could not parse message into JSON:`,e.data),o.error(`From chunk:`,e.raw),t}if(n&&n.error)throw new h(void 0,n.error,void 0,t.headers);yield i?{event:e.event,data:n}:n}else{let t;try{t=JSON.parse(e.data)}catch(t){throw console.error(`Could not parse message into JSON:`,e.data),console.error(`From chunk:`,e.raw),t}if(e.event===`error`)throw new h(void 0,t.error,t.message,void 0);yield{event:e.event,data:t}}}e=!0}catch(e){if(r||f(e)||n.signal.aborted&&e===n.signal.reason)return;throw e}finally{e||n.abort()}}return new e(s,n,r)}static fromReadableStream(t,n,r){let i=!1;async function*a(){let e=new je,r=t.getReader(),i=!1,a,o=()=>{a??=r.cancel(),a.catch(()=>void 0)};n.signal.addEventListener(`abort`,o,{once:!0});try{if(n.signal.aborted){o();return}for(;;){let{value:t,done:a}=await r.read();if(a){i=!0;break}if(n.signal.aborted)return;for(let r of e.decode(t)){if(n.signal.aborted)return;yield r}}if(n.signal.aborted)return;for(let t of e.flush()){if(n.signal.aborted)return;yield t}}finally{n.signal.removeEventListener(`abort`,o),i||o(),r.releaseLock()}}async function*o(){if(i)throw new m("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");i=!0;let e=!1;try{for await(let t of a())e||t&&(yield JSON.parse(t));e=!0}catch(e){if(n.signal.aborted||f(e))return;throw e}finally{e||n.abort()}}return new e(o,n,r)}[(He=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let t=[],n=[],r=this.iterator(),i=e=>({next:()=>{if(e.length===0){let e=r.next();t.push(e),n.push(e)}return e.shift()}});return[new e(()=>i(t),this.controller,u(this,He,`f`)),new e(()=>i(n),this.controller,u(this,He,`f`))]}toReadableStream(){let e;return be({start:async()=>{e=this[Symbol.asyncIterator]()},async pull(t){try{let{value:n,done:r}=await e.next();if(r)return t.close();let i=w(JSON.stringify(n)+`
|
|
4
4
|
`);t.enqueue(i)}catch(e){t.error(e)}},async cancel(){await e.return?.()}})}};async function*We(e,t){if(!e.body)throw t.abort(),globalThis.navigator!==void 0&&globalThis.navigator.product===`ReactNative`?new m(`The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api`):new m(`Attempted to iterate over a response with no body`);let n=new qe,r=new je,i=Se(e.body);for await(let e of Ke(i))for(let t of r.decode(e)){let e=n.decode(t);e&&(yield e)}for(let e of r.flush()){let t=n.decode(e);t&&(yield t)}}var Ge=3;async function*Ke(e){let t=new Uint8Array,n=0,r=0,i=0;for await(let a of e){if(a==null)continue;let e;if(e=a instanceof ArrayBuffer?new Uint8Array(a):typeof a==`string`?w(a):a,r+e.length>t.length){let a=r-n;if(n>=t.length/2&&a+e.length<=t.length)t.copyWithin(0,n,r);else{let i=new Uint8Array(Math.max(t.length*2,a+e.length));i.set(t.subarray(n,r)),t=i}i-=n,n=0,r=a}t.set(e,r),r+=e.length;let o;for(;(o=Ne(t.subarray(i,r)))!==-1;)o+=i,yield t.slice(n,o),n=o,i=n;i=Math.max(n,r-Ge)}r>n&&(yield t.slice(n,r))}var qe=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith(`\r`)&&(e=e.slice(0,-1)),!e){if(!this.event&&!this.data.length)return null;let e={event:this.event,data:this.data.join(`
|