sliccy 6.154.7 → 6.155.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ui/.vite/manifest.json +178 -178
- package/dist/ui/assets/SKILL-B--riEXN.js +1 -0
- package/dist/ui/assets/{account-store-Bv7LV6_A.js → account-store-BL68LrFT.js} +1 -1
- package/dist/ui/assets/{account-store-CuTDBQ6V.js → account-store-FUhuBOfI.js} +1 -1
- package/dist/ui/assets/{adobe-Bld04yf4.js → adobe-BaHLL9uH.js} +1 -1
- package/dist/ui/assets/{adobe-yrm9KfZU.js → adobe-DNHcSDh3.js} +1 -1
- package/dist/ui/assets/{agent-bridge-BOK0bK1-.js → agent-bridge-Vz3IOG0A.js} +1 -1
- package/dist/ui/assets/{agent-panels-JSKGPWny.js → agent-panels-CPSe8uIz.js} +1 -1
- package/dist/ui/assets/{apply-layout-Dol4QpYX.js → apply-layout-G6vw7FBS.js} +1 -1
- package/dist/ui/assets/{apps-DdAoo50J.js → apps-CLm3AutR.js} +1 -1
- package/dist/ui/assets/{azure-openai-CROWb3eo.js → azure-openai--n3vcQWx.js} +1 -1
- package/dist/ui/assets/{azure-openai-D16OgVVX.js → azure-openai-N9FaZSuP.js} +1 -1
- package/dist/ui/assets/{budget-usage-source-CiFTPdLG.js → budget-usage-source-C6vq4Afr.js} +1 -1
- package/dist/ui/assets/{cdp-ChTjN36Y.js → cdp-C7C40sWI.js} +1 -1
- package/dist/ui/assets/{cerebras-BGd53Y6O.js → cerebras-B4z1b7WX.js} +1 -1
- package/dist/ui/assets/{cerebras-DEjugWgo.js → cerebras-BecGzlaM.js} +1 -1
- package/dist/ui/assets/{composer-speech-BvDGMHRN.js → composer-speech-uDoOk80y.js} +1 -1
- package/dist/ui/assets/{connect-surface-BxeM6wzG.js → connect-surface-CkYbO0v8.js} +1 -1
- package/dist/ui/assets/{directed-approval-DAIXE0nO.js → directed-approval-DdGH8Fat.js} +1 -1
- package/dist/ui/assets/dist-BCg-GYyx.js +2 -0
- package/dist/ui/assets/dist-ByarBBEi.js +2 -0
- package/dist/ui/assets/{dist-BPPG9gF6.js → dist-CtH2hxRt.js} +9 -9
- package/dist/ui/assets/{dist-BnmWpUNI.js → dist-VS1DwNvU.js} +10 -10
- package/dist/ui/assets/{fs-BEbWmRDq.js → fs-BOdMXcsi.js} +2 -2
- package/dist/ui/assets/fs-CL93DUyC.js +1 -0
- package/dist/ui/assets/{github-D6e0X_mv.js → github-CQwdOEdJ.js} +2 -2
- package/dist/ui/assets/{github-Bc1z9Z3b.js → github-FRM6nHar.js} +1 -1
- package/dist/ui/assets/{github-auth-BPlvszS_.js → github-auth-DgdBb7y7.js} +1 -1
- package/dist/ui/assets/{github-copilot-BQU9xIRH.js → github-copilot-CNY2SweM.js} +1 -1
- package/dist/ui/assets/{github-copilot-CtFddSBT.js → github-copilot-D6XJxicV.js} +1 -1
- package/dist/ui/assets/{github-install-BUmd5jOm.js → github-install-PNSinMst.js} +1 -1
- package/dist/ui/assets/{github-zip-BbIUjzA4.js → github-zip-BCXSTlT0.js} +1 -1
- package/dist/ui/assets/{hear-CYy8tVN1.js → hear-DAaE31Ez.js} +1 -1
- package/dist/ui/assets/{help-C1vcRsvu.js → help-HkZtBCNF.js} +1 -1
- package/dist/ui/assets/{js-realm-worker-JtICkZ9q.js → js-realm-worker-Bp1ohy2N.js} +1 -1
- package/dist/ui/assets/{kernel-worker-JOBY7Wxs.js → kernel-worker-dGdJLKhc.js} +156 -155
- package/dist/ui/assets/{local-llm-_OhXJtNu.js → local-llm-BKrrjR68.js} +1 -1
- package/dist/ui/assets/{local-llm-CJWLILc_.js → local-llm-BL_WYiZZ.js} +1 -1
- package/dist/ui/assets/{main-CpKPiVl7.js → main-DW-YS69h.js} +3 -3
- package/dist/ui/assets/{main-cherry-D8WCpwBV.js → main-cherry-B0AQVdvI.js} +1 -1
- package/dist/ui/assets/{memory-curation-seam-BxXS_BMa.js → memory-curation-seam-CD-ZRKzr.js} +1 -1
- package/dist/ui/assets/{mount-B-qjx7RD.js → mount-DlOEB7Cf.js} +1 -1
- package/dist/ui/assets/{mount-CIGA8r4q.js → mount-igEB5Saa.js} +3 -3
- package/dist/ui/assets/{mount-recovery-DNUbi0Ni.js → mount-recovery-WObwrrJB.js} +1 -1
- package/dist/ui/assets/{new-session-Bat4OTXx.js → new-session-BlbJzLQE.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-D2j6OHaC.js → oauth-bootstrap-DHGSi_vM.js} +2 -2
- package/dist/ui/assets/{onboarding-orchestrator-Za4dEXZ8.js → onboarding-orchestrator-ILCQMWeH.js} +1 -1
- package/dist/ui/assets/{openai-codex-f1f3Poo1.js → openai-codex-ByOwob9t.js} +1 -1
- package/dist/ui/assets/{openai-codex-CcJ89ggy.js → openai-codex-zHgcCFMl.js} +1 -1
- package/dist/ui/assets/{openrouter-B52C9XuH.js → openrouter-CvwSbwg3.js} +1 -1
- package/dist/ui/assets/{openrouter-free-CiLvReDo.js → openrouter-free-Bw5mRfKy.js} +1 -1
- package/dist/ui/assets/{openrouter-free--eNgGfax.js → openrouter-free-DAXjSSCv.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-DOQfi9TX.js → openrouter-oauth-CsQP_eqX.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-Iv8iz92e.js → openrouter-oauth-DKr2TOOt.js} +1 -1
- package/dist/ui/assets/{openrouter-DN9cM8UA.js → openrouter-ooroqv_7.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-DtxsALXP.js → panel-rpc-handlers-g22Ng2gw.js} +2 -2
- package/dist/ui/assets/{panelize-shell-Dk8A0fzt.js → panelize-shell-25ZtCwHW.js} +1 -1
- package/dist/ui/assets/{pi-edit-execution-BVNON_7G.js → pi-edit-execution-jG5wiCuj.js} +1 -1
- package/dist/ui/assets/probe-info-B9GqJE41.js +2 -0
- package/dist/ui/assets/{provider-BEV4Nyb0.js → provider-B0ZPEVNo.js} +2 -2
- package/dist/ui/assets/{provider-jRSVQQyi.js → provider-iX6700HG.js} +1 -1
- package/dist/ui/assets/provider-settings-jhJRRTGA.js +1 -0
- package/dist/ui/assets/provider-store-access-BtES6Ln2.js +1 -0
- package/dist/ui/assets/provider-store-access-z34_fP_u.js +1 -0
- package/dist/ui/assets/{providers-DsDlOFZz.js → providers-DAeL97z_.js} +1 -1
- package/dist/ui/assets/{providers-CkE3X7zj.js → providers-DjUwvFlY.js} +2 -2
- package/dist/ui/assets/{quick-llm-hedJ8LEL.js → quick-llm-CM0bq0Rp.js} +1 -1
- package/dist/ui/assets/{recovery-screen-DU8WFnpT.js → recovery-screen-C2-cTzHe.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-BXjdqm7-.js → remote-terminal-view-D4Ah4AQY.js} +1 -1
- package/dist/ui/assets/{run-dk5KyxT2.js → run-2dG-kPkW.js} +1 -1
- package/dist/ui/assets/{run-C-InHvWx.js → run-BZq150_-.js} +2 -2
- package/dist/ui/assets/{run-DTXbRzQ6.js → run-wZKGk8f1.js} +1 -1
- package/dist/ui/assets/{session-jsonl-CpQqgq2a.js → session-jsonl-BUM105sQ.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-DJTSDAP-.js → setup-feature-flags-remote-CYaTMUGI.js} +1 -1
- package/dist/ui/assets/sidecar-repair-Dyo_uNW9.js +1 -0
- package/dist/ui/assets/{silent-renew-backoff-pEjTpf6Y.js → silent-renew-backoff-CMcARSwp.js} +1 -1
- package/dist/ui/assets/{skills-D1r_dXXN.js → skills-BpO1a28c.js} +1 -1
- package/dist/ui/assets/slicc-version-pkH5Cy8d.js +1 -0
- package/dist/ui/assets/{snapshot-jBfySyLF.js → snapshot-CUbnB6HL.js} +1 -1
- package/dist/ui/assets/{snapshot-features-Bn7BtW7K.js → snapshot-features-j6dx6n8x.js} +1 -1
- package/dist/ui/assets/{soundscape-gtJZ30qF.js → soundscape-BswqsuUI.js} +1 -1
- package/dist/ui/assets/{speak-D6N7JGfl.js → speak-BjUpeuE_.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-Bgirnz_O.js → sprinkle-manager--VjyaGhT.js} +1 -1
- package/dist/ui/assets/{sprinkle-renderer-CpbS9Pze.js → sprinkle-renderer-DST9wDsJ.js} +1 -1
- package/dist/ui/assets/{state-gI8eLPCJ.js → state-D4U_z-EK.js} +1 -1
- package/dist/ui/assets/{store-CoFkhkC_.js → store-B8MYU0Oj.js} +1 -1
- package/dist/ui/assets/{store-CJoMqbUo.js → store-DChdcXsg.js} +1 -1
- package/dist/ui/assets/{sudo-CdUi7Bt1.js → sudo-Zjjvq0o1.js} +1 -1
- package/dist/ui/assets/{sync-dialog-uCJmhtr8.js → sync-dialog-CQpxesIG.js} +1 -1
- package/dist/ui/assets/{transformers-env-GrfzOgRv.js → transformers-env-Bfs2yK-G.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-B_1w3n4t.js → tray-sidecar-DoJ0KYqF.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-L60JNTNb.js → upgrade-detection-BJO1N35I.js} +1 -1
- package/dist/ui/assets/{upskill-lick-skip-Jcllnh6l.js → upskill-lick-skip-ETmK7gKp.js} +1 -1
- package/dist/ui/assets/{voice-reply-DqNiHN6M.js → voice-reply-CxLeD2UU.js} +1 -1
- package/dist/ui/assets/{wc-attach-8_xsR0qy.js → wc-attach-BqTZtL4F.js} +2 -2
- package/dist/ui/assets/{wc-extension-oYf2HrE6.js → wc-extension-C_P8Z5_f.js} +2 -2
- package/dist/ui/assets/{wc-follower-oauth-CljtR185.js → wc-follower-oauth-CqVmKcTQ.js} +1 -1
- package/dist/ui/assets/{wc-follower-BYsj_5x0.js → wc-follower-w1PZlnC3.js} +3 -3
- package/dist/ui/assets/{wc-gelatiere-CP4serB8.js → wc-gelatiere-ErLykEqr.js} +1 -1
- package/dist/ui/assets/{wc-live-CkxSC9Ez.js → wc-live-Kx0jpvxz.js} +5 -5
- package/dist/ui/assets/{wc-nav-XvRTYo98.js → wc-nav-DMxSQWF8.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-iCoaOIma.js → wc-onboarding-W0FpgTat.js} +2 -2
- package/dist/ui/assets/{wc-permissions-brfCnfZb.js → wc-permissions-BsGMi4OQ.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-em6OiHpb.js → wc-placeholder-CI7UKO4Z.js} +3 -3
- package/dist/ui/assets/{wc-secret-request-BjM8NPKG.js → wc-secret-request-DaAszAFd.js} +1 -1
- package/dist/ui/assets/{wc-settings-BtBwNeN8.js → wc-settings-B-FsPgww.js} +3 -3
- package/dist/ui/assets/{wc-shell-DC9WMYcH.js → wc-shell-Bqj2G2_K.js} +4 -4
- package/dist/ui/assets/{wc-shortcut-config-BEsAGNLx.js → wc-shortcut-config-B5nHTfK6.js} +1 -1
- package/dist/ui/assets/{wc-shortcuts-CETptwt9.js → wc-shortcuts-Cbk5hDbX.js} +1 -1
- package/dist/ui/assets/{wc-sprinkles-DLNH0Ist.js → wc-sprinkles-DnBxgn1Q.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-CidB32Dc.js → wc-transcript-export-7tvwdvKC.js} +2 -2
- package/dist/ui/assets/{wc-tray-BbFFd7U-.js → wc-tray-DwUCXdrJ.js} +4 -4
- package/dist/ui/assets/welcome-detection-BePZ1gj8.js +1 -0
- package/dist/ui/assets/{whisper-session-BvALr1gE.js → whisper-session-DoxUb6hK.js} +2 -2
- package/dist/ui/assets/{xai-grok-DWDEwZSo.js → xai-grok-BHDMfFJ3.js} +1 -1
- package/dist/ui/assets/{xai-grok-Ht4qQwUs.js → xai-grok-CIVOagKi.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/ui/packages/webapp/index.html +3 -3
- package/package.json +2 -2
- package/dist/ui/assets/SKILL-CLF3MdfR.js +0 -1
- package/dist/ui/assets/dist-CFI3XeIO.js +0 -2
- package/dist/ui/assets/dist-Ciikigd5.js +0 -2
- package/dist/ui/assets/fs-CjgMvwqK.js +0 -1
- package/dist/ui/assets/provider-settings-Dc0Uksht.js +0 -1
- package/dist/ui/assets/provider-store-access-BYCBOZrX.js +0 -1
- package/dist/ui/assets/provider-store-access-CcCQNG5q.js +0 -1
- package/dist/ui/assets/sidecar-repair-CPDaW6WS.js +0 -1
- package/dist/ui/assets/slicc-version-Do_Qzxe9.js +0 -1
- package/dist/ui/assets/welcome-detection-DW2ROqam.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./logger-DDBAeTLF.js";import"./navigation-watcher-BpA1OwJw.js";import"./wc-follower-oauth-CljtR185.js";import{n as t,t as n}from"./pending-request-table-k-D7ZZsL.js";var r=e(`cdp`);function i(e){return e===4001?`CDP connection superseded by another SLICC tab/window on this instance`:e===4002?`CDP connection reset by proxy (upstream Chrome connection was re-established)`:`CDP connection closed`}var a=class{ws=null;nextId=1;_superseded=!1;pending=new n;listeners=new Map;_state=`disconnected`;stateListeners=new Set;lastNotifiedState=`disconnected`;lastNotifiedReason;get state(){return this._state}onStateChange(e){return this.stateListeners.add(e),()=>{this.stateListeners.delete(e)}}get superseded(){return this._superseded}async connect(e){if(this._state!==`disconnected`)throw Error(`Cannot connect: state is ${this._state}`);if(!e?.url)throw Error(`CDPClient.connect() requires a WebSocket URL`);let{url:t,timeout:n=5e3,protocols:i}=e;return this._state=`connecting`,new Promise((e,a)=>{let o=setTimeout(()=>{this.cleanup(),a(Error(`CDP connection timed out after ${n}ms`))},n);try{this.ws=i===void 0?new WebSocket(t):new WebSocket(t,i)}catch(e){clearTimeout(o),this._state=`disconnected`,a(e);return}this.ws.onopen=()=>{clearTimeout(o),this._state=`connected`,this._superseded=!1,r.info(`Connected`,{url:t}),this.notifyState(`connected`),e()},this.ws.onerror=e=>{clearTimeout(o),this._state===`connecting`&&(r.error(`Connection failed`,{url:t}),this.cleanup(),a(Error(`CDP WebSocket connection failed`)))},this.ws.onmessage=e=>{this.handleMessage(e.data)},this.ws.onclose=e=>{this.handleClose(e?.code)}})}disconnect(){this.ws&&(this.ws.onclose=null,this.ws.close()),this._superseded=!1,this.cleanup(),r.info(`Disconnected`)}async send(e,t,n,i=3e4){if(this._state!==`connected`||!this.ws)throw Error(`CDP client is not connected`);let a=this.nextId++,o={id:a,method:e};t&&(o.params=t),n&&(o.sessionId=n),r.debug(`Send`,{method:e,id:a,sessionId:n});let s=this.pending.issue(a,i,`CDP command timed out after ${i}ms: ${e}`);return this.ws.send(JSON.stringify(o)),s}on(e,t){let n=this.listeners.get(e);n||(n=new Set,this.listeners.set(e,n)),n.add(t)}off(e,t){let n=this.listeners.get(e);n&&(n.delete(t),n.size===0&&this.listeners.delete(e))}once(e,n=3e4){return t(t=>(this.on(e,t),()=>this.off(e,t)),n,`Timed out waiting for event: ${e}`)}handleMessage(e){let t;try{t=JSON.parse(e)}catch{return}if(`id`in t&&typeof t.id==`number`){let e=t;r.debug(`Response`,{id:e.id,hasError:!!e.error}),e.error?(r.error(`Command error`,{id:e.id,code:e.error.code,message:e.error.message}),this.pending.reject(e.id,Error(`CDP error: ${e.error.message} (${e.error.code})`))):this.pending.resolve(e.id,e.result??{});return}if(`method`in t){let e=t;r.debug(`Event`,{method:e.method,sessionId:e.sessionId});let n=this.listeners.get(e.method);if(n){let t=e.sessionId?{...e.params,sessionId:e.sessionId}:e.params??{};for(let e of n)try{e(t)}catch{}}}}handleClose(e){e===4001?(this._superseded=!0,r.warn(`CDP slot superseded by another SLICC tab/window on this instance`,{code:e})):e===4002?r.warn(`CDP proxy reset its upstream Chrome connection — sessions dropped`,{code:e,pendingCommands:this.pending.size}):r.error(`Connection closed unexpectedly`,{pendingCommands:this.pending.size}),this.cleanup(i(e))}cleanup(e=`CDP client disconnected`){this.ws=null,this._state=`disconnected`,this.pending.rejectAll(e),this.notifyState(`disconnected`,e)}notifyState(e,t){if(e!==this.lastNotifiedState||t!==this.lastNotifiedReason){this.lastNotifiedState=e,this.lastNotifiedReason=t;for(let n of this.stateListeners)try{n(e,t)}catch{}}}},o=class extends Error{step;name=`CommandAbortedError`;constructor(e){super(`Browser command aborted while ${e}. A CDP round trip already in flight cannot be cancelled, so it may still have been applied to the page; nothing after it was started.`),this.step=e}};function s(e,t){if(e?.aborted)throw new o(t)}function c(e,t){return e?{signal:e,error:()=>new o(t)}:void 0}function l(e,t,n){return new Promise((r,i)=>{if(t?.aborted){i(new o(n));return}let a=()=>{clearTimeout(s),i(new o(n))},s=setTimeout(()=>{t?.removeEventListener(`abort`,a),r()},e);t?.addEventListener(`abort`,a,{once:!0})})}function u(e,t,n){return t?t.aborted?Promise.reject(new o(n)):new Promise((r,i)=>{let a=()=>i(new o(n));t.addEventListener(`abort`,a,{once:!0}),e.then(()=>{t.removeEventListener(`abort`,a),r()},e=>{t.removeEventListener(`abort`,a),i(e instanceof Error?e:Error(String(e)))})}):e}var d=e(`har-recorder`),f=class{recordings=new Map;client;fs;eventCleanup=new Map;constructor(e,t){this.client=e,this.fs=t}async startRecording(e,t,n,r){let i=`rec-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;s(r,`about to enable Network on tab ${e}`),await this.client.send(`Network.enable`,{},t),s(r,`about to enable Page on tab ${e}`),await this.client.send(`Page.enable`,{},t),s(r,`about to read the URL of tab ${e}`);let a=(await this.client.send(`Runtime.evaluate`,{expression:`location.href`,returnByValue:!0},t)).result?.value??`about:blank`,o={id:i,targetId:e,sessionId:t,filterCode:n,pendingRequests:new Map,entries:[],startTime:Date.now(),currentUrl:a,snapshotCount:0};return this.recordings.set(i,o),this.setupEventListeners(o),await this.ensureDir(`/recordings/${i}`),d.debug(`Started recording`,{recordingId:i,targetId:e,currentUrl:a}),i}setupEventListeners(e){let{sessionId:t,id:n}=e,r=n=>{let r=n;r.sessionId===t&&this.handleRequestWillBeSent(e,r)},i=n=>{let r=n;r.sessionId===t&&this.handleResponseReceived(e,r)},a=r=>{let i=r;i.sessionId===t&&this.handleLoadingFinished(e,i).catch(e=>{d.error(`Failed to process loadingFinished event`,{recordingId:n,requestId:i.requestId,error:e instanceof Error?e.message:String(e)})})},o=n=>{let r=n;r.sessionId===t&&this.handleLoadingFailed(e,r)},s=r=>{let i=r;if(i.sessionId!==t)return;let a=i.frame;if(!a?.parentId&&a?.url){let t=[...e.entries],r=e.currentUrl;e.currentUrl=a.url,e.entries=[],e.pendingRequests.clear(),this.saveSnapshotWithEntries(e,`navigation`,t,r).catch(e=>{d.error(`Failed to save navigation snapshot`,{recordingId:n,error:e instanceof Error?e.message:String(e)})})}};this.client.on(`Network.requestWillBeSent`,r),this.client.on(`Network.responseReceived`,i),this.client.on(`Network.loadingFinished`,a),this.client.on(`Network.loadingFailed`,o),this.client.on(`Page.frameNavigated`,s),this.eventCleanup.set(n,()=>{this.client.off(`Network.requestWillBeSent`,r),this.client.off(`Network.responseReceived`,i),this.client.off(`Network.loadingFinished`,a),this.client.off(`Network.loadingFailed`,o),this.client.off(`Page.frameNavigated`,s)})}handleRequestWillBeSent(e,t){let{requestId:n,request:r,timestamp:i}=t;!n||!r||i==null||e.pendingRequests.set(n,{requestId:n,startTime:i*1e3,request:{method:r.method,url:r.url,headers:r.headers,postData:r.postData}})}handleResponseReceived(e,t){let{requestId:n,response:r}=t;if(!n||!r)return;let i=e.pendingRequests.get(n);i&&(i.response={status:r.status,statusText:r.statusText,headers:r.headers,mimeType:r.mimeType},i.timing=r.timing)}async handleLoadingFinished(e,t){let{requestId:n,timestamp:r}=t;if(!n||r==null)return;let i=e.pendingRequests.get(n);if(!i)return;i.endTime=r*1e3;try{let t=await this.client.send(`Network.getResponseBody`,{requestId:n},e.sessionId);i.responseBody=t.body,i.responseBodyBase64=t.base64Encoded===!0}catch{}let a=this.buildHarEntry(i);a&&e.entries.push(a),e.pendingRequests.delete(n)}handleLoadingFailed(e,t){let{requestId:n}=t;n&&e.pendingRequests.delete(n)}buildHarEntry(e){if(!e.response)return null;let{request:t,response:n,timing:r,startTime:i,endTime:a,responseBody:o,responseBodyBase64:s}=e,c=a?a-i:0,l=[];try{let e=new URL(t.url);l=Array.from(e.searchParams.entries()).map(([e,t])=>({name:e,value:t}))}catch{}let u=r?(()=>{let e=(e,t)=>{if(e==null||t==null||e<0||t<0)return-1;let n=t-e;return n>=0?n:-1},t=r.dnsStart>=0?r.dnsStart:r.connectStart>=0?r.connectStart:0;return{blocked:t>0?t:-1,dns:e(r.dnsStart,r.dnsEnd),connect:e(r.connectStart,r.connectEnd),ssl:e(r.sslStart,r.sslEnd),send:e(r.sendStart,r.sendEnd),wait:e(r.sendEnd,r.receiveHeadersStart),receive:e(r.receiveHeadersStart,r.receiveHeadersEnd)}})():{blocked:-1,dns:-1,connect:-1,ssl:-1,send:0,wait:c,receive:0},d={size:o?.length??0,mimeType:n.mimeType??`application/octet-stream`};o&&(d.text=o,s&&(d.encoding=`base64`));let f;return t.postData&&(f={mimeType:t.headers[`content-type`]??t.headers[`Content-Type`]??`text/plain`,text:t.postData}),{startedDateTime:new Date(i).toISOString(),time:c,request:{method:t.method,url:t.url,httpVersion:`HTTP/1.1`,cookies:[],headers:Object.entries(t.headers).map(([e,t])=>({name:e,value:t})),queryString:l,postData:f,headersSize:-1,bodySize:t.postData?.length??0},response:{status:n.status,statusText:n.statusText,httpVersion:`HTTP/1.1`,cookies:[],headers:Object.entries(n.headers).map(([e,t])=>({name:e,value:t})),content:d,redirectURL:n.headers.location??n.headers.Location??``,headersSize:-1,bodySize:d.size},cache:{},timings:u}}async saveSnapshot(e,t){return this.saveSnapshotWithEntries(e,t,e.entries,e.currentUrl)}async applyFilter(e,t){return p(e,t)}async saveSnapshotWithEntries(e,t,n,r){if(n.length===0)return d.debug(`No entries to save`,{recordingId:e.id,trigger:t}),null;let i=e.filterCode?await this.applyFilter(n,e.filterCode):n;if(i.length===0)return d.debug(`All entries filtered out`,{recordingId:e.id,trigger:t}),null;e.snapshotCount++;let a=new Date().toISOString().replace(/[:.]/g,`-`),o=this.urlToSlug(r),s=`${e.snapshotCount.toString().padStart(3,`0`)}-${a}-${t}-${o}.har`,c=`/recordings/${e.id}/${s}`,l={log:{version:`1.2`,creator:{name:`SLICC HAR Recorder`,version:`1.0.0`},entries:i}};return await this.fs.writeFile(c,JSON.stringify(l,null,2)),d.debug(`Saved HAR snapshot`,{recordingId:e.id,path:c,entryCount:i.length}),c}urlToSlug(e){try{let t=new URL(e);return`${t.hostname}${t.pathname}`.replace(/[^a-zA-Z0-9]/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``).slice(0,50)||`page`}catch{return`page`}}async stopRecording(e){let t=this.recordings.get(e);if(!t)throw Error(`Recording not found: ${e}`);await this.saveSnapshot(t,`close`);let n=this.eventCleanup.get(e);n&&(n(),this.eventCleanup.delete(e));try{await this.client.send(`Network.disable`,{},t.sessionId)}catch{}this.recordings.delete(e);let r=`/recordings/${e}`;return d.debug(`Stopped recording`,{recordingId:e,snapshotCount:t.snapshotCount}),r}getRecording(e){return this.recordings.get(e)}getRecordingByTarget(e){for(let[t,n]of this.recordings)if(n.targetId===e)return t}async ensureDir(e){await this.fs.mkdir(e,{recursive:!0})}};function p(e,t){try{let n=Function(`entry`,`return (${t})(entry);`),r=[];for(let t of e)try{let e=n(t);if(e===!1)continue;typeof e==`object`&&e?r.push(e):r.push(t)}catch(e){d.error(`Filter function error on entry, keeping it`,{error:e instanceof Error?e.message:String(e)}),r.push(t)}return r}catch(t){return d.error(`Failed to compile filter, returning unfiltered`,{error:t instanceof Error?t.message:String(t)}),e}}var m=`(function() {
|
|
1
|
+
import{t as e}from"./logger-DDBAeTLF.js";import"./navigation-watcher-BpA1OwJw.js";import"./wc-follower-oauth-CqVmKcTQ.js";import{n as t,t as n}from"./pending-request-table-k-D7ZZsL.js";var r=e(`cdp`);function i(e){return e===4001?`CDP connection superseded by another SLICC tab/window on this instance`:e===4002?`CDP connection reset by proxy (upstream Chrome connection was re-established)`:`CDP connection closed`}var a=class{ws=null;nextId=1;_superseded=!1;pending=new n;listeners=new Map;_state=`disconnected`;stateListeners=new Set;lastNotifiedState=`disconnected`;lastNotifiedReason;get state(){return this._state}onStateChange(e){return this.stateListeners.add(e),()=>{this.stateListeners.delete(e)}}get superseded(){return this._superseded}async connect(e){if(this._state!==`disconnected`)throw Error(`Cannot connect: state is ${this._state}`);if(!e?.url)throw Error(`CDPClient.connect() requires a WebSocket URL`);let{url:t,timeout:n=5e3,protocols:i}=e;return this._state=`connecting`,new Promise((e,a)=>{let o=setTimeout(()=>{this.cleanup(),a(Error(`CDP connection timed out after ${n}ms`))},n);try{this.ws=i===void 0?new WebSocket(t):new WebSocket(t,i)}catch(e){clearTimeout(o),this._state=`disconnected`,a(e);return}this.ws.onopen=()=>{clearTimeout(o),this._state=`connected`,this._superseded=!1,r.info(`Connected`,{url:t}),this.notifyState(`connected`),e()},this.ws.onerror=e=>{clearTimeout(o),this._state===`connecting`&&(r.error(`Connection failed`,{url:t}),this.cleanup(),a(Error(`CDP WebSocket connection failed`)))},this.ws.onmessage=e=>{this.handleMessage(e.data)},this.ws.onclose=e=>{this.handleClose(e?.code)}})}disconnect(){this.ws&&(this.ws.onclose=null,this.ws.close()),this._superseded=!1,this.cleanup(),r.info(`Disconnected`)}async send(e,t,n,i=3e4){if(this._state!==`connected`||!this.ws)throw Error(`CDP client is not connected`);let a=this.nextId++,o={id:a,method:e};t&&(o.params=t),n&&(o.sessionId=n),r.debug(`Send`,{method:e,id:a,sessionId:n});let s=this.pending.issue(a,i,`CDP command timed out after ${i}ms: ${e}`);return this.ws.send(JSON.stringify(o)),s}on(e,t){let n=this.listeners.get(e);n||(n=new Set,this.listeners.set(e,n)),n.add(t)}off(e,t){let n=this.listeners.get(e);n&&(n.delete(t),n.size===0&&this.listeners.delete(e))}once(e,n=3e4){return t(t=>(this.on(e,t),()=>this.off(e,t)),n,`Timed out waiting for event: ${e}`)}handleMessage(e){let t;try{t=JSON.parse(e)}catch{return}if(`id`in t&&typeof t.id==`number`){let e=t;r.debug(`Response`,{id:e.id,hasError:!!e.error}),e.error?(r.error(`Command error`,{id:e.id,code:e.error.code,message:e.error.message}),this.pending.reject(e.id,Error(`CDP error: ${e.error.message} (${e.error.code})`))):this.pending.resolve(e.id,e.result??{});return}if(`method`in t){let e=t;r.debug(`Event`,{method:e.method,sessionId:e.sessionId});let n=this.listeners.get(e.method);if(n){let t=e.sessionId?{...e.params,sessionId:e.sessionId}:e.params??{};for(let e of n)try{e(t)}catch{}}}}handleClose(e){e===4001?(this._superseded=!0,r.warn(`CDP slot superseded by another SLICC tab/window on this instance`,{code:e})):e===4002?r.warn(`CDP proxy reset its upstream Chrome connection — sessions dropped`,{code:e,pendingCommands:this.pending.size}):r.error(`Connection closed unexpectedly`,{pendingCommands:this.pending.size}),this.cleanup(i(e))}cleanup(e=`CDP client disconnected`){this.ws=null,this._state=`disconnected`,this.pending.rejectAll(e),this.notifyState(`disconnected`,e)}notifyState(e,t){if(e!==this.lastNotifiedState||t!==this.lastNotifiedReason){this.lastNotifiedState=e,this.lastNotifiedReason=t;for(let n of this.stateListeners)try{n(e,t)}catch{}}}},o=class extends Error{step;name=`CommandAbortedError`;constructor(e){super(`Browser command aborted while ${e}. A CDP round trip already in flight cannot be cancelled, so it may still have been applied to the page; nothing after it was started.`),this.step=e}};function s(e,t){if(e?.aborted)throw new o(t)}function c(e,t){return e?{signal:e,error:()=>new o(t)}:void 0}function l(e,t,n){return new Promise((r,i)=>{if(t?.aborted){i(new o(n));return}let a=()=>{clearTimeout(s),i(new o(n))},s=setTimeout(()=>{t?.removeEventListener(`abort`,a),r()},e);t?.addEventListener(`abort`,a,{once:!0})})}function u(e,t,n){return t?t.aborted?Promise.reject(new o(n)):new Promise((r,i)=>{let a=()=>i(new o(n));t.addEventListener(`abort`,a,{once:!0}),e.then(()=>{t.removeEventListener(`abort`,a),r()},e=>{t.removeEventListener(`abort`,a),i(e instanceof Error?e:Error(String(e)))})}):e}var d=e(`har-recorder`),f=class{recordings=new Map;client;fs;eventCleanup=new Map;constructor(e,t){this.client=e,this.fs=t}async startRecording(e,t,n,r){let i=`rec-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;s(r,`about to enable Network on tab ${e}`),await this.client.send(`Network.enable`,{},t),s(r,`about to enable Page on tab ${e}`),await this.client.send(`Page.enable`,{},t),s(r,`about to read the URL of tab ${e}`);let a=(await this.client.send(`Runtime.evaluate`,{expression:`location.href`,returnByValue:!0},t)).result?.value??`about:blank`,o={id:i,targetId:e,sessionId:t,filterCode:n,pendingRequests:new Map,entries:[],startTime:Date.now(),currentUrl:a,snapshotCount:0};return this.recordings.set(i,o),this.setupEventListeners(o),await this.ensureDir(`/recordings/${i}`),d.debug(`Started recording`,{recordingId:i,targetId:e,currentUrl:a}),i}setupEventListeners(e){let{sessionId:t,id:n}=e,r=n=>{let r=n;r.sessionId===t&&this.handleRequestWillBeSent(e,r)},i=n=>{let r=n;r.sessionId===t&&this.handleResponseReceived(e,r)},a=r=>{let i=r;i.sessionId===t&&this.handleLoadingFinished(e,i).catch(e=>{d.error(`Failed to process loadingFinished event`,{recordingId:n,requestId:i.requestId,error:e instanceof Error?e.message:String(e)})})},o=n=>{let r=n;r.sessionId===t&&this.handleLoadingFailed(e,r)},s=r=>{let i=r;if(i.sessionId!==t)return;let a=i.frame;if(!a?.parentId&&a?.url){let t=[...e.entries],r=e.currentUrl;e.currentUrl=a.url,e.entries=[],e.pendingRequests.clear(),this.saveSnapshotWithEntries(e,`navigation`,t,r).catch(e=>{d.error(`Failed to save navigation snapshot`,{recordingId:n,error:e instanceof Error?e.message:String(e)})})}};this.client.on(`Network.requestWillBeSent`,r),this.client.on(`Network.responseReceived`,i),this.client.on(`Network.loadingFinished`,a),this.client.on(`Network.loadingFailed`,o),this.client.on(`Page.frameNavigated`,s),this.eventCleanup.set(n,()=>{this.client.off(`Network.requestWillBeSent`,r),this.client.off(`Network.responseReceived`,i),this.client.off(`Network.loadingFinished`,a),this.client.off(`Network.loadingFailed`,o),this.client.off(`Page.frameNavigated`,s)})}handleRequestWillBeSent(e,t){let{requestId:n,request:r,timestamp:i}=t;!n||!r||i==null||e.pendingRequests.set(n,{requestId:n,startTime:i*1e3,request:{method:r.method,url:r.url,headers:r.headers,postData:r.postData}})}handleResponseReceived(e,t){let{requestId:n,response:r}=t;if(!n||!r)return;let i=e.pendingRequests.get(n);i&&(i.response={status:r.status,statusText:r.statusText,headers:r.headers,mimeType:r.mimeType},i.timing=r.timing)}async handleLoadingFinished(e,t){let{requestId:n,timestamp:r}=t;if(!n||r==null)return;let i=e.pendingRequests.get(n);if(!i)return;i.endTime=r*1e3;try{let t=await this.client.send(`Network.getResponseBody`,{requestId:n},e.sessionId);i.responseBody=t.body,i.responseBodyBase64=t.base64Encoded===!0}catch{}let a=this.buildHarEntry(i);a&&e.entries.push(a),e.pendingRequests.delete(n)}handleLoadingFailed(e,t){let{requestId:n}=t;n&&e.pendingRequests.delete(n)}buildHarEntry(e){if(!e.response)return null;let{request:t,response:n,timing:r,startTime:i,endTime:a,responseBody:o,responseBodyBase64:s}=e,c=a?a-i:0,l=[];try{let e=new URL(t.url);l=Array.from(e.searchParams.entries()).map(([e,t])=>({name:e,value:t}))}catch{}let u=r?(()=>{let e=(e,t)=>{if(e==null||t==null||e<0||t<0)return-1;let n=t-e;return n>=0?n:-1},t=r.dnsStart>=0?r.dnsStart:r.connectStart>=0?r.connectStart:0;return{blocked:t>0?t:-1,dns:e(r.dnsStart,r.dnsEnd),connect:e(r.connectStart,r.connectEnd),ssl:e(r.sslStart,r.sslEnd),send:e(r.sendStart,r.sendEnd),wait:e(r.sendEnd,r.receiveHeadersStart),receive:e(r.receiveHeadersStart,r.receiveHeadersEnd)}})():{blocked:-1,dns:-1,connect:-1,ssl:-1,send:0,wait:c,receive:0},d={size:o?.length??0,mimeType:n.mimeType??`application/octet-stream`};o&&(d.text=o,s&&(d.encoding=`base64`));let f;return t.postData&&(f={mimeType:t.headers[`content-type`]??t.headers[`Content-Type`]??`text/plain`,text:t.postData}),{startedDateTime:new Date(i).toISOString(),time:c,request:{method:t.method,url:t.url,httpVersion:`HTTP/1.1`,cookies:[],headers:Object.entries(t.headers).map(([e,t])=>({name:e,value:t})),queryString:l,postData:f,headersSize:-1,bodySize:t.postData?.length??0},response:{status:n.status,statusText:n.statusText,httpVersion:`HTTP/1.1`,cookies:[],headers:Object.entries(n.headers).map(([e,t])=>({name:e,value:t})),content:d,redirectURL:n.headers.location??n.headers.Location??``,headersSize:-1,bodySize:d.size},cache:{},timings:u}}async saveSnapshot(e,t){return this.saveSnapshotWithEntries(e,t,e.entries,e.currentUrl)}async applyFilter(e,t){return p(e,t)}async saveSnapshotWithEntries(e,t,n,r){if(n.length===0)return d.debug(`No entries to save`,{recordingId:e.id,trigger:t}),null;let i=e.filterCode?await this.applyFilter(n,e.filterCode):n;if(i.length===0)return d.debug(`All entries filtered out`,{recordingId:e.id,trigger:t}),null;e.snapshotCount++;let a=new Date().toISOString().replace(/[:.]/g,`-`),o=this.urlToSlug(r),s=`${e.snapshotCount.toString().padStart(3,`0`)}-${a}-${t}-${o}.har`,c=`/recordings/${e.id}/${s}`,l={log:{version:`1.2`,creator:{name:`SLICC HAR Recorder`,version:`1.0.0`},entries:i}};return await this.fs.writeFile(c,JSON.stringify(l,null,2)),d.debug(`Saved HAR snapshot`,{recordingId:e.id,path:c,entryCount:i.length}),c}urlToSlug(e){try{let t=new URL(e);return`${t.hostname}${t.pathname}`.replace(/[^a-zA-Z0-9]/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``).slice(0,50)||`page`}catch{return`page`}}async stopRecording(e){let t=this.recordings.get(e);if(!t)throw Error(`Recording not found: ${e}`);await this.saveSnapshot(t,`close`);let n=this.eventCleanup.get(e);n&&(n(),this.eventCleanup.delete(e));try{await this.client.send(`Network.disable`,{},t.sessionId)}catch{}this.recordings.delete(e);let r=`/recordings/${e}`;return d.debug(`Stopped recording`,{recordingId:e,snapshotCount:t.snapshotCount}),r}getRecording(e){return this.recordings.get(e)}getRecordingByTarget(e){for(let[t,n]of this.recordings)if(n.targetId===e)return t}async ensureDir(e){await this.fs.mkdir(e,{recursive:!0})}};function p(e,t){try{let n=Function(`entry`,`return (${t})(entry);`),r=[];for(let t of e)try{let e=n(t);if(e===!1)continue;typeof e==`object`&&e?r.push(e):r.push(t)}catch(e){d.error(`Filter function error on entry, keeping it`,{error:e instanceof Error?e.message:String(e)}),r.push(t)}return r}catch(t){return d.error(`Failed to compile filter, returning unfiltered`,{error:t instanceof Error?t.message:String(t)}),e}}var m=`(function() {
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
// ===== DOM Utilities =====
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as e}from"./account-store-
|
|
1
|
+
import{_ as e}from"./account-store-FUhuBOfI.js";import{a as t}from"./diagnostics-DN_idNHx.js";import{d as n}from"./claude-model-version-CSATLzrT.js";import{r,s as i}from"./legacy-api-aliases-bAJ0Klzq.js";var a=`cerebras`,o=`https://api.cerebras.ai/v1`,s=`openai-completions`,c=`${a}-openai`,l=`slicc-cerebras-models`,u=[],d=[{id:`gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai`,reasoning:!0,input:[`text`],context_window:131072,max_tokens:40960},{id:`gemma-4-31b`,name:`Gemma 4 31B`,api:`openai`,reasoning:!1,input:[`text`,`image`],context_window:131072,max_tokens:40960},{id:`zai-glm-4.7`,name:`Z.AI GLM-4.7`,api:`openai`,reasoning:!1,input:[`text`],context_window:131072,max_tokens:40960}];function f(e){try{localStorage.setItem(l,JSON.stringify(e))}catch{}}function p(){try{let e=localStorage.getItem(l);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)&&t.length>0?t:[]}catch{return[]}}function m(e){let t=e.id??``,n=d.find(e=>e.id===t);return{id:t,name:e.name??n?.name??t,api:`openai`,reasoning:e.capabilities?.reasoning??n?.reasoning??!1,input:e.capabilities?.vision?[`text`,`image`]:n?.input??[`text`],context_window:e.limits?.max_context_length??n?.context_window??8192,max_tokens:e.limits?.max_completion_tokens??n?.max_tokens??4096}}async function h(e){let t=await fetch(`${o}/models`,{headers:{Authorization:`Bearer ${e}`}});if(!t.ok)throw Error(`GET /v1/models → ${t.status} ${t.statusText}`);let n=((await t.json()).data??[]).map(m).filter(e=>e.id.length>0);n.length>0&&(u=n,f(n))}function g(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:c,provider:a,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function _(e){console.error(`[cerebras] Stream error:`,e instanceof Error?e.message:String(e))}var v=(e,n,r={})=>{let i=t();return y(i,e,n,r).catch(_),i};async function y(e,t,n,i){try{let a={...t,baseUrl:o,api:s},c=r(a,n,i);for await(let t of c)e.push(t);e.end()}catch(n){_(n),e.push(g(t,n)),e.end()}}var b=(e,n,r)=>{let i=t();return x(i,e,n,r).catch(_),i};async function x(e,t,n,r){try{let a={...t,baseUrl:o,api:s},c=i(a,n,r);for await(let t of c)e.push(t);e.end()}catch(n){_(n),e.push(g(t,n)),e.end()}}var S={id:a,name:`Cerebras`,description:`Ultra-fast inference on Cerebras hardware. Get an API key at cloud.cerebras.ai.`,requiresApiKey:!0,requiresBaseUrl:!1,getModelIds:()=>{if(u.length>0)return u;let e=p();return e.length>0?e:d},refreshModels:async t=>{let n=t??e(a)??``;if(n)try{await h(n)}catch(e){console.warn(`[cerebras] Failed to refresh model list:`,e instanceof Error?e.message:String(e))}}};function C(){n({api:c,stream:v,streamSimple:b})}export{S as config,C as register};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./account-store-
|
|
1
|
+
import{a as e}from"./account-store-BL68LrFT.js";import{a as t}from"./diagnostics-DN_idNHx.js";import{a as n}from"./compat-uEPf6-XW.js";import{r,s as i}from"./legacy-api-aliases-jKEvBgOL.js";const a=`cerebras`,o=`https://api.cerebras.ai/v1`,s=`openai-completions`,c=`${a}-openai`,l=`slicc-cerebras-models`;let u=[];const d=[{id:`gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai`,reasoning:!0,input:[`text`],context_window:131072,max_tokens:40960},{id:`gemma-4-31b`,name:`Gemma 4 31B`,api:`openai`,reasoning:!1,input:[`text`,`image`],context_window:131072,max_tokens:40960},{id:`zai-glm-4.7`,name:`Z.AI GLM-4.7`,api:`openai`,reasoning:!1,input:[`text`],context_window:131072,max_tokens:40960}];function f(e){try{localStorage.setItem(l,JSON.stringify(e))}catch{}}function p(){try{let e=localStorage.getItem(l);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)&&t.length>0?t:[]}catch{return[]}}function m(e){let t=e.id??``,n=d.find(e=>e.id===t);return{id:t,name:e.name??n?.name??t,api:`openai`,reasoning:e.capabilities?.reasoning??n?.reasoning??!1,input:e.capabilities?.vision?[`text`,`image`]:n?.input??[`text`],context_window:e.limits?.max_context_length??n?.context_window??8192,max_tokens:e.limits?.max_completion_tokens??n?.max_tokens??4096}}async function h(e){let t=await fetch(`${o}/models`,{headers:{Authorization:`Bearer ${e}`}});if(!t.ok)throw Error(`GET /v1/models → ${t.status} ${t.statusText}`);let n=((await t.json()).data??[]).map(m).filter(e=>e.id.length>0);n.length>0&&(u=n,f(n))}function g(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:c,provider:a,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function _(e){console.error(`[cerebras] Stream error:`,e instanceof Error?e.message:String(e))}const v=(e,n,r={})=>{let i=t();return y(i,e,n,r).catch(_),i};async function y(e,t,n,i){try{let a={...t,baseUrl:o,api:s},c=r(a,n,i);for await(let t of c)e.push(t);e.end()}catch(n){_(n),e.push(g(t,n)),e.end()}}const b=(e,n,r)=>{let i=t();return x(i,e,n,r).catch(_),i};async function x(e,t,n,r){try{let a={...t,baseUrl:o,api:s},c=i(a,n,r);for await(let t of c)e.push(t);e.end()}catch(n){_(n),e.push(g(t,n)),e.end()}}const S={id:a,name:`Cerebras`,description:`Ultra-fast inference on Cerebras hardware. Get an API key at cloud.cerebras.ai.`,requiresApiKey:!0,requiresBaseUrl:!1,getModelIds:()=>{if(u.length>0)return u;let e=p();return e.length>0?e:d},refreshModels:async t=>{let n=t??e(a)??``;if(n)try{await h(n)}catch(e){console.warn(`[cerebras] Failed to refresh model list:`,e instanceof Error?e.message:String(e))}}};function C(){n({api:c,stream:v,streamSimple:b})}export{S as config,C as register};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./logger-DDBAeTLF.js";import{q as t}from"./wc-shortcuts-
|
|
1
|
+
import{t as e}from"./logger-DDBAeTLF.js";import{q as t}from"./wc-shortcuts-Cbk5hDbX.js";import{n}from"./runtime-env-Dlaokqg1.js";import{t as r}from"./permissions-surface-registry-CilCRwhh.js";import{t as i}from"./speech-assets-bridge-CFYafE89.js";import{o as a}from"./transformers-env-Bfs2yK-G.js";import{i as o,t as s}from"./whisper-session-DoxUb6hK.js";var c=e(`speech:composer`),l=5e3,u=(e,t,n)=>new Promise((r,i)=>{let a=setTimeout(()=>i(Error(`${n} timed out after ${t}ms`)),t);e.then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e)})}),d=class{#e;#t;#n;#r;#i;#a=null;#o=!1;#s={engine:`builtin`,state:`idle`};#c=a();#l=new Set;#u=null;constructor(e={}){this.#e=e.builtin??t(),this.#t=e.loadWhisper??o,this.#n=e.startSession??s,this.#r=e.getPermissionSurface??f,this.#i=e.ensureAssets??v}permission(){return this.#e.permission()}async requestPermission(){let e=this.#r();if(e)try{let t=await e.request(`microphone`);return t?(this.#p(t.stream),!0):!1}catch(e){return c.warn(`permission surface microphone request failed`,e),!1}return this.#e.requestPermission()}microphones(){return this.#e.microphones()}status(){return this.#s}onStatus(e){return this.#l.add(e),e(this.#s),()=>this.#l.delete(e)}warmup(){this.#o||(this.#o=!0,this.#c=a(),this.#_({engine:`builtin`,state:`downloading`}),this.#d().then(e=>{this.#a=e,this.#_({engine:`enhanced`,state:`ready`})},e=>{this.#o=!1,this.#_({engine:`builtin`,state:`unavailable`,message:m(e)}),c.warn(`enhanced speech engine unavailable`,e)}))}async#d(){let e=null;try{await this.#i(e=>this.#h(e))}catch(t){e=t,c.warn(`speech asset staging failed; trying already-present assets`,t)}try{return await this.#t(e=>this.#g(e))}catch(t){throw e??t}}async start(e){let t=this.#a;if(t){let n=null;try{return n=await this.#f(e.deviceId),await this.#n(t,{deviceId:e.deviceId,lang:e.lang,onPartial:e.onPartial,onError:e.onError,stream:n??void 0})}catch(e){if(n)for(let e of n.getTracks())e.stop();c.warn(`whisper session failed to start; falling back to builtin`,e)}}return this.#e.start(e)}async#f(e){let t=e&&e!=="default"?e:void 0,n=this.#m();if(n){if(!t&&p(n))return n;for(let e of n.getTracks())e.stop()}let r=this.#r();if(!r)return null;let i={audio:!t||{deviceId:{exact:t}}},a=await u(r.request(`microphone`,{constraints:i}),l,`microphone capture`);if(!a)throw Error(`microphone permission denied`);return a.stream}#p(e){if(this.#u&&this.#u!==e)for(let e of this.#u.getTracks())e.stop();this.#u=e}#m(){let e=this.#u;return this.#u=null,e}get enhancedReady(){return this.#a!==null}#h(e){if(this.#s.state!==`downloading`)return;(e.bytesTotal!=null||e.bytesLoaded!=null)&&this.#c.update(e.asset,e.bytesLoaded??0,e.bytesTotal??0);let t=this.#c.snapshot();t.total<=0||this.#_({engine:`builtin`,state:`downloading`,download:{loaded:t.loaded,total:t.total,etaSeconds:t.etaSeconds}})}#g(e){this.#s.state===`downloading`&&this.#_({engine:`builtin`,state:`downloading`,download:{loaded:e.loaded,total:e.total,etaSeconds:e.etaSeconds}})}#_(e){this.#s=e;for(let t of this.#l)t(e)}};function f(){let e=r();return e?{async request(t,n){let r=await e.request(t,n);return r?.kind===`microphone`?{kind:`microphone`,stream:r.stream}:null}}:null}function p(e){let t=e.getTracks();return t.length>0&&t.some(e=>e.readyState!==`ended`)}function m(e){return`Enhanced speech unavailable: ${e instanceof Error?e.message:String(e)}`}var h=n,g;function _(e){g=e}function v(e){return h()?Promise.resolve():i({instanceId:g,onProgress:e})}var y=null;function b(){return y??=new d,y}export{b as getComposerSpeech,_ as setComposerSpeechInstanceId};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{T as e,f as t,p as n,z as r}from"./account-store-
|
|
1
|
+
import{T as e,f as t,p as n,z as r}from"./account-store-FUhuBOfI.js";import{n as i}from"./main-DW-YS69h.js";var a=`slicc_cloud_model_catalog`,o=`adobe`;function s(t){if(t===o)return!1;let n=e(t);return!(n.hidden||n.onOAuthLoginIntercepted)}function c(){try{let e=n().map(e=>({providerId:e.providerId,providerName:e.providerName,models:e.models.map(e=>({id:e.id,name:e.name}))}));localStorage.setItem(a,JSON.stringify(e))}catch{}}async function l(n){for(;n.firstChild;)n.removeChild(n.firstChild);n.className=`connect-surface`;let a=document.createElement(`h1`);a.className=`connect-surface__title`,a.textContent=`Connect providers`,n.appendChild(a);let l=document.createElement(`p`);l.className=`connect-surface__desc`,l.textContent=`Log in or add API keys for the providers your cone should use, then click Done to return to the dashboard.`,n.appendChild(l);let u=document.createElement(`div`);u.className=`connect-surface__accounts`,n.appendChild(u);function d(){for(;u.firstChild;)u.removeChild(u.firstChild);let n=t().filter(e=>e.providerId!==o);if(n.length===0){let e=document.createElement(`div`);e.className=`connect-surface__empty`,e.textContent=`No providers connected yet.`,u.appendChild(e)}else{let t=document.createElement(`div`);t.className=`connect-surface__accounts-list`;for(let i of n){let n=e(i.providerId),a=document.createElement(`div`);a.className=`connect-surface__account-row`;let o=document.createElement(`div`);o.className=`connect-surface__account-info`;let s=document.createElement(`div`);s.className=`connect-surface__account-name`,s.textContent=n.name,o.appendChild(s);let l=document.createElement(`div`);l.className=`connect-surface__account-detail`,l.textContent=i.userName?i.userName:i.accessToken?`Logged in`:i.apiKey?`API key set`:`No credentials`,o.appendChild(l),a.appendChild(o);let u=document.createElement(`button`);u.className=`connect-surface__remove-btn`,u.textContent=`Remove`,u.onclick=async()=>{await r(i.providerId),c(),d()},a.appendChild(u),t.appendChild(a)}u.appendChild(t)}let a=document.createElement(`button`);a.className=`connect-surface__add-btn`,a.textContent=n.length===0?`Add provider`:`Manage providers`,a.onclick=async()=>{await i({startInAddAccount:!0,providerFilter:s})&&(c(),d())},u.appendChild(a)}d(),c();let f=document.createElement(`div`);f.className=`connect-surface__footer`;let p=document.createElement(`button`);if(p.className=`connect-surface__done-btn`,p.textContent=`Done — return to dashboard`,p.onclick=()=>{c(),window.close()},f.appendChild(p),n.appendChild(f),!document.getElementById(`connect-surface-style`)){let e=document.createElement(`style`);e.id=`connect-surface-style`,e.textContent=`
|
|
2
2
|
.connect-surface {
|
|
3
3
|
padding: 2rem;
|
|
4
4
|
max-width: 560px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import{t}from"./agent-bridge-
|
|
1
|
+
import{t as e}from"./logger-LESFN7Hj.js";import{t}from"./agent-bridge-Vz3IOG0A.js";import{S as n}from"./record-YqlVEfh_.js";const r=e(`directed-approval`);function i(e,t){if(e.kind===`user`)return a(`the user tier is not a directed approval`);if(e.kind===`agent`)return a(`agent approvals are not enqueued to a unit`);let r=e.unitJid;if(!t.scoops.has(r))return a(`the requesting unit is not registered`);let i=t.ownerRootOf(r);if(!i)return a(`no owning cone for the requesting unit`);let o=e.kind===`cone`?i:[...t.scoops.values()].find(t=>t.parentJid===i.jid&&(t.name===e.scoopName||t.folder===e.scoopName));return o?n(o).canResolveApprovals?{ok:!0,requesterJid:r,approver:o}:a(`the named approver cannot resolve approvals`):a(`delegated approver not found under this cone`)}function a(e){return r.warn(`Directed approval failing closed`,{reason:e}),{ok:!1,reason:e}}const o={decision:`deny`};async function s(e,n){let a=e.approver;if(a?.kind===`agent`){let i=globalThis[t];if(!i)return r.warn(`No agent bridge available for an approver agent — denying`),o;let{approverRunnerFor:s}=await import(`./approver-agent-CCkU0PVa.js`),c=n.getSharedFs(),l=await s({spawn:e=>i.spawn(e),readSharedFile:async e=>{if(!c)return null;try{let t=await c.readFile(e,{encoding:`utf-8`});return typeof t==`string`?t:null}catch{return null}},findUnit:e=>{let t=n.scoops.get(e);return t?{workspace:n.workspaceFor(t),folder:t.folder}:void 0}})({kind:e.kind===`guest-tool`?`guest-tool`:`guest-message`,requester:e.requester??`an unidentified requester`,detail:e.detail},a.unitJid);return r.info(`Approver agent verdict`,{decision:l.decision,reason:l.reason}),l.decision===`allow`?{decision:`allow`}:o}if(a&&a.kind!==`user`){let t=i(a,n);return t.ok?n.enqueue(t.requesterJid,e,{approver:t.approver}):o}return n.approveAsUser(e)}export{s as runDirectedApproval};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{A as e,C as t,D as n,E as r,O as i,S as a,T as o,_ as s,a as c,c as l,d as u,f as d,g as f,h as p,i as m,j as h,k as g,l as _,m as v,n as y,o as b,p as x,r as S,s as C,u as w,v as T,w as E,y as D}from"./dist-VS1DwNvU.js";function O(e){switch(e.name){case`TypeMismatchError`:return`EPERM`;case`IndexSizeError`:case`HierarchyRequestError`:case`InvalidCharacterError`:case`InvalidStateError`:case`SyntaxError`:case`NamespaceError`:case`ConstraintError`:case`VersionError`:case`URLMismatchError`:case`InvalidNodeTypeError`:return`EINVAL`;case`WrongDocumentError`:return`EXDEV`;case`NoModificationAllowedError`:case`InvalidModificationError`:case`InvalidAccessError`:case`SecurityError`:case`NotAllowedError`:return`EACCES`;case`NotFoundError`:return`ENOENT`;case`NotSupportedError`:return`ENOTSUP`;case`InUseAttributeError`:return`EBUSY`;case`NetworkError`:return`ENETDOWN`;case`AbortError`:return`EINTR`;case`QuotaExceededError`:return`ENOSPC`;case`TimeoutError`:return`ETIMEDOUT`;case`ReadOnlyError`:return`EROFS`;default:return`EIO`}}function k(e,t){if(e instanceof n)return e;let i=e instanceof DOMException?r[O(e)]:r.EIO,a=new n(i,e.message);return a.stack=e.stack,Error.captureStackTrace?.(a,k),a.cause=e.cause,a}function A(e){return typeof e==`object`&&!!e&&e.constructor.name==`SharedArrayBuffer`}function j(e){return e instanceof ArrayBuffer?e.resizable:A(e)?e.growable:!1}function M(e,t){return e.kind==t}var N=class extends S(m){async _loadHandles(e,t){for await(let[n,r]of t.entries()){let t=f(e,n);this._handles.set(t,r),M(r,`directory`)&&await this._loadHandles(t,r)}}async _loadMetadata(e){if(this._handles.set(`/`,this.root),await this._loadHandles(`/`,this.root),e){let t=await(await(await this.get(`file`,e)).getFile()).text(),n=JSON.parse(t);this.index.fromJSON(n);return}E(`webaccessfs: no metadata file specified, generating new metadata`);for(let[e,t]of this._handles){let n=this.index._alloc();if(M(t,`file`)){let{lastModified:r,size:i}=await t.getFile();this.index.set(e,new u({mode:420|D,size:i,mtimeMs:r,ino:n,data:n+1,nlink:1}));continue}if(!M(t,`directory`))throw i(`EIO`,`Invalid handle`);this.index.set(e,new u({mode:511|s,size:0,ino:n,data:n+1,nlink:1}))}}constructor(e,t=!1){super(2003133025,`webaccessfs`),this.root=e,this.disableHandleCache=t,this._handles=new Map,this._sync=b.create({label:`accessfs-cache`}),this.attributes.set(`no_buffer_resize`,!0),t&&this.attributes.set(`no_handle_cache`,!0)}async stat(e){try{return await super.stat(e)}catch(t){if(t.code!=`ENOENT`)throw t;let n=await this.get(null,e),r=this.index._alloc(),i=new u({ino:r,data:r+1,nlink:1});if(M(n,`file`)){let e=await n.getFile();i.update({mode:420|D,size:e.size,mtimeMs:e.lastModified})}else i.update({mode:s|511,size:0});return this.index.set(e,i),i}}async touch(e,t){let n=this.index.get(e);if(!n)throw i(`ENOENT`);if(typeof t.size!=`number`||!x(n))return await super.touch(e,t);let r=await this.get(`file`,e).catch(e=>{if(e.code!=`ENOENT`)throw e});if(!r)return await super.touch(e,t);let{size:a}=await r.getFile();if(a==t.size)return await super.touch(e,t);let o=await r.createWritable({keepExistingData:!!t.size});try{await o.truncate(t.size)}catch{await o.write({type:`truncate`,size:t.size})}await o.close(),await super.touch(e,t)}async readdir(e){let t=await this.get(`directory`,e);return await Array.fromAsync(t.keys())}async remove(e){let t=await this.get(`directory`,p(e));for(let t of this._handles.keys())p(t)==e&&this._handles.delete(t);this._handles.delete(e),await t.removeEntry(v(e),{recursive:!0}).catch(t=>{let n=k(t,e);n.code!=`ENOENT`&&h(n)})}removeSync(){throw t(i(`ENOSYS`))}async read(e,t,n,r){if(r<=n)return;let o=await this.get(`file`,e),s;for(let e=0;;e++){let t=await o.getFile();try{s=await t.arrayBuffer();break}catch(t){if(!(t instanceof DOMException)||t.name!==`NotReadableError`||e>=2)throw t}}if(s.byteLength<r-n)throw a(i(`EIO`,[`Unexpected mismatch in file data size. This should not happen.`,`tried to read ${r-n} bytes but the file is ${s.byteLength} bytes.`,`path: ${e}`].join(`
|
|
2
|
+
`+` `.repeat(24))));t.set(new Uint8Array(s,n,r-n))}async write(e,n,r){if(j(n.buffer)||A(n.buffer)){let e=new Uint8Array(new ArrayBuffer(n.byteLength),n.byteOffset,n.byteLength);e.set(n),n=e}let a=this.index.get(e);if(!a)throw i(`ENOENT`);let o=(a.mode&T)==s,c;try{c=await this.get(o?`directory`:`file`,e)}catch{c=await(await this.get(`directory`,p(e)))[o?`getDirectoryHandle`:`getFileHandle`](v(e),{create:!0}).catch(t=>h(k(t,e))),this.disableHandleCache||this._handles.set(e,c)}if(o)return;if(M(c,`directory`)){t(i(`EIO`,`Mismatch in entry kind on write`));return}let l=await c.createWritable({keepExistingData:!0});if(r)try{await l.seek(r)}catch{await l.write({type:`seek`,position:r})}await l.write(n),await l.close();let{size:u,lastModified:d}=await c.getFile();a.update({size:u,mtimeMs:d}),this.index.set(e,a)}async writeFile(e,t){return this.write(e,t,0)}async _create(e,t){let n=await(await this.get(`directory`,p(e))).getFileHandle(v(e),{create:!0}).catch(t=>h(k(t,e)));this.disableHandleCache||this._handles.set(e,n)}async _mkdir(e){let t=await(await this.get(`directory`,p(e))).getDirectoryHandle(v(e),{create:!0}).catch(t=>h(k(t,e)));this.disableHandleCache||this._handles.set(e,t)}async get(e=null,t){let n=this._handles.get(t);if(!this.disableHandleCache&&n){if(e&&!M(n,e))throw i(e==`directory`?`ENOTDIR`:`EISDIR`);return n}if(t==`/`)return this.root;let r=t.slice(1).split(`/`),a=this.root;for(let e=0;e<r.length-1;++e)a=await a.getDirectoryHandle(r[e]).catch(e=>h(e.name==`TypeMismatchError`?i(`ENOTDIR`):k(e,t)));try{let n=await a[e==`file`?`getFileHandle`:`getDirectoryHandle`](r.at(-1));return this.disableHandleCache||this._handles.set(t,n),n}catch(n){if(n.name!=`TypeMismatchError`)throw k(n,t);if(e===null){let e=await a.getFileHandle(r.at(-1)).catch(e=>h(k(e,t)));return this.disableHandleCache||this._handles.set(t,e),e}throw i(e==`file`?`EISDIR`:`ENOTDIR`)}}};const P={name:`WebAccess`,options:{handle:{type:`object`,required:!0},metadata:{type:`string`,required:!1},disableHandleCache:{type:`boolean`,required:!1},maxOpenFilesForCopy:{type:`number`,required:!1}},async create(e){let t=new N(e.handle,e.disableHandleCache);return t._crossCopySemaphore=new c(e.maxOpenFilesForCopy??128),await t._loadMetadata(e.metadata),t}};function F(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=t=>{t.preventDefault(),n(k(e.error))}})}var I=class extends _{async(e){this.asyncDone=this.asyncDone.then(()=>e)}constructor(e,t){super(t),this.tx=e,this.store=t,this.asyncDone=Promise.resolve(),this._idb=e.objectStore(t.name)}async keys(){return(await F(this._idb.getAllKeys())).map(Number)}async get(e){let t=await F(this._idb.get(e));return t&&this.store.cache.set(e,new Uint8Array(t)),t}async preload(){let[e,t]=await Promise.all([F(this._idb.getAllKeys()),F(this._idb.getAll())]);for(let n=0;n<e.length;n++){let r=t[n];r&&this.store.cache.set(Number(e[n]),r)}}getSync(e,t,n){if(!this.store.cache.has(e))return;let r=new Uint8Array(this.store.cache.get(e));return n??=r.byteLength,r.subarray(t,n)}async set(e,t){this.store.cache.set(e,new Uint8Array(t)),await F(this._idb.put(t,e))}setSync(e,t){this.async(this.set(e,t))}remove(e){return this.store.cache.delete(e),F(this._idb.delete(e))}removeSync(e){this.store.cache.delete(e),this.async(this.remove(e))}async commit(){await this.asyncDone;let{promise:e,resolve:t,reject:n}=Promise.withResolvers();return this.tx.oncomplete=()=>t(),this.tx.onerror=()=>n(k(this.tx.error)),this.tx.commit(),e}async abort(){await this.asyncDone;let{promise:e,resolve:t,reject:n}=Promise.withResolvers();return this.tx.onabort=()=>t(),this.tx.onerror=()=>n(k(this.tx.error)),this.tx.abort(),e}};async function L(e,t=globalThis.indexedDB){let n=t.open(e);return n.onupgradeneeded=()=>{let t=n.result;t.objectStoreNames.contains(e)&&(o(`Found unexpected object store: `+e),t.deleteObjectStore(e)),t.createObjectStore(e)},await F(n)}var R=class{constructor(e){this.db=e,this.cache=new Map}sync(){return Promise.resolve()}get name(){return this.db.name}transaction(){return new I(this.db.transaction(this.name,`readwrite`),this)}};const z=new WeakMap;async function B(e){if(!(e instanceof IDBFactory))return!1;try{return(await F(e.open(`__zenfs_test`))).close(),!0}catch{return!1}finally{e?.deleteDatabase(`__zenfs_test`)}}const V={name:`IndexedDB`,options:{storeName:{type:`string`,required:!1},idbFactory:{type:`object`,required:!1}},async isAvailable({idbFactory:e=globalThis.indexedDB}){if(z.has(e))return z.get(e);let t=B(e);return z.set(e,t),t},async create(e){let t=new R(await L(e.storeName||`zenfs`,e.idbFactory)),n=new l(t);return e?.disableAsyncCache?(E(`Async preloading disabled for IndexedDB`),n):(await t.transaction().preload(),n)}};var H=class{get name(){return U.name}constructor(e){this.storage=e}clear(){this.storage.clear()}clearSync(){this.storage.clear()}async sync(){}transaction(){return new C(this)}keys(){return Object.keys(this.storage).map(e=>Number(e))}get(t){let n=this.storage.getItem(t.toString());if(typeof n==`string`)return e(n)}set(e,t){try{this.storage.setItem(e.toString(),g(t))}catch{throw i(`ENOSPC`)}}delete(e){try{this.storage.removeItem(e.toString())}catch(t){throw i(`EIO`,`Unable to delete '${e}': ${t}`)}}};const U={name:`WebStorage`,options:{storage:{type:`object`,required:!1}},isAvailable(e){return(e?.storage??globalThis.localStorage)instanceof globalThis.Storage},create({storage:e=globalThis.localStorage}){return new l(new H(e))}};function W(e){let t={};for(let n of d){let r=e.getAttribute(n);r!=null&&(t[n]=parseInt(r,16))}return new u(t)}function G(e,t){for(let n of Object.keys(t))!(n in d)||t[n]===void 0||e.setAttribute(n,t[n].toString(16))}function K(e,t=!1){let n;try{let r=t?e.textContent:e.getAttribute(`paths`);n=JSON.parse(r||`[]`)}catch{n=[]}return n}var q=class extends y(w){constructor(e=new DOMParser().parseFromString(`<fs></fs>`,`application/xml`).documentElement){super(544763244,`xmltmpfs`),this.root=e;try{this.mkdirSync(`/`,{uid:0,gid:0,mode:511})}catch(e){let t=e;if(t.code!=`EEXIST`)throw t}}renameSync(e,t){let n=this.get(`rename`,e);this.remove(`rename`,n,e),this.add(`rename`,n,t)}statSync(e){return W(this.get(`stat`,e))}createFileSync(e,t){let n=this.statSync(p(e)),r=new u({mode:t.mode|D,uid:n.mode&2048?n.uid:t.uid,gid:n.mode&1024?n.gid:t.gid});return this.create(`createFile`,e,r),r}unlinkSync(e){let t=this.get(`unlink`,e);if(W(t).mode&16384)throw i(`EISDIR`);this.remove(`unlink`,t,e)}rmdirSync(e){let t=this.get(`rmdir`,e);if(t.textContent?.length)throw i(`ENOTEMPTY`);if(!(W(t).mode&16384))throw i(`ENOTDIR`);this.remove(`rmdir`,t,e)}mkdirSync(e,t){let n=this.statSync(p(e)),r=new u({mode:t.mode|s,uid:n.mode&2048?n.uid:t.uid,gid:n.mode&1024?n.gid:t.gid});return this.create(`mkdir`,e,r).textContent=`[]`,r}readdirSync(e){let t=this.get(`readdir`,e);if(!(W(t).mode&16384))throw i(`ENOTDIR`);try{return JSON.parse(t.textContent)}catch(e){throw i(`EIO`,`Invalid directory listing: `+e)}}linkSync(e,t){let n=this.get(`link`,e);this.add(`link`,n,t)}touchSync(e,t){G(this.get(`touch`,e),t)}syncSync(){}readSync(t,n,r,i){let a=this.get(`read`,t),o=e(a.textContent.slice(r,i));n.set(o)}writeSync(e,t,n){let r=this.get(`write`,e),i=g(t),a=r.textContent.slice(n+i.length);r.textContent=r.textContent.slice(0,n)+i+a}toString(){return new XMLSerializer().serializeToString(this.root)}get(e,t){let n=this.root.children;if(!n)throw i(`EIO`);for(let e=0;e<n.length;e++)if(K(n[e]).includes(t))return n[e];throw i(`ENOENT`)}create(e,t,n){if(this.existsSync(t))throw i(`EEXIST`);let r=document.createElement(`file`);return this.add(e,r,t),G(r,new u({...n,uid:n.mode})),this.root.append(r),r}add(e,t,n,r=!1){let i=K(t,r);if(i.push(n),r){t.textContent=JSON.stringify(i);return}if(t.setAttribute(`paths`,JSON.stringify(i)),t.setAttribute(`nlink`,i.length.toString(16)),n!=`/`){let t=this.get(e,p(n));this.add(e,t,v(n),!0)}}remove(e,t,n,r=!1){let i=K(t,r),a=i.indexOf(n);if(a!=-1){if(i.splice(a,1),r){t.textContent=JSON.stringify(i);return}if(i.length?(t.setAttribute(`paths`,JSON.stringify(i)),t.setAttribute(`nlink`,i.length.toString(16))):t.remove(),n!=`/`){let t=this.get(e,p(n));this.remove(e,t,v(n),!0)}}}};const J={name:`XML`,options:{root:{type:`object`,required:!1}},isAvailable(){return!0},create(e){return new q(e.root)}};export{V as IndexedDB,R as IndexedDBStore,I as IndexedDBTransaction,P as WebAccess,N as WebAccessFS,U as WebStorage,H as WebStorageStore,J as XML,q as XMLFS};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{A as e,C as t,D as n,E as r,O as i,S as a,T as o,_ as s,a as c,c as l,d as u,f as d,g as f,h as p,i as m,j as h,k as g,l as _,m as v,n as y,o as b,p as x,r as S,s as C,u as w,v as T,w as E,y as D}from"./dist-CtH2hxRt.js";function O(e){switch(e.name){case`TypeMismatchError`:return`EPERM`;case`IndexSizeError`:case`HierarchyRequestError`:case`InvalidCharacterError`:case`InvalidStateError`:case`SyntaxError`:case`NamespaceError`:case`ConstraintError`:case`VersionError`:case`URLMismatchError`:case`InvalidNodeTypeError`:return`EINVAL`;case`WrongDocumentError`:return`EXDEV`;case`NoModificationAllowedError`:case`InvalidModificationError`:case`InvalidAccessError`:case`SecurityError`:case`NotAllowedError`:return`EACCES`;case`NotFoundError`:return`ENOENT`;case`NotSupportedError`:return`ENOTSUP`;case`InUseAttributeError`:return`EBUSY`;case`NetworkError`:return`ENETDOWN`;case`AbortError`:return`EINTR`;case`QuotaExceededError`:return`ENOSPC`;case`TimeoutError`:return`ETIMEDOUT`;case`ReadOnlyError`:return`EROFS`;default:return`EIO`}}function k(e,t){if(e instanceof n)return e;let i=e instanceof DOMException?r[O(e)]:r.EIO,a=new n(i,e.message);return a.stack=e.stack,Error.captureStackTrace?.(a,k),a.cause=e.cause,a}function A(e){return typeof e==`object`&&!!e&&e.constructor.name==`SharedArrayBuffer`}function j(e){return e instanceof ArrayBuffer?e.resizable:A(e)?e.growable:!1}function M(e,t){return e.kind==t}var N=class extends S(m){async _loadHandles(e,t){for await(let[n,r]of t.entries()){let t=f(e,n);this._handles.set(t,r),M(r,`directory`)&&await this._loadHandles(t,r)}}async _loadMetadata(e){if(this._handles.set(`/`,this.root),await this._loadHandles(`/`,this.root),e){let t=await(await(await this.get(`file`,e)).getFile()).text(),n=JSON.parse(t);this.index.fromJSON(n);return}E(`webaccessfs: no metadata file specified, generating new metadata`);for(let[e,t]of this._handles){let n=this.index._alloc();if(M(t,`file`)){let{lastModified:r,size:i}=await t.getFile();this.index.set(e,new u({mode:420|D,size:i,mtimeMs:r,ino:n,data:n+1,nlink:1}));continue}if(!M(t,`directory`))throw i(`EIO`,`Invalid handle`);this.index.set(e,new u({mode:511|s,size:0,ino:n,data:n+1,nlink:1}))}}constructor(e,t=!1){super(2003133025,`webaccessfs`),this.root=e,this.disableHandleCache=t,this._handles=new Map,this._sync=b.create({label:`accessfs-cache`}),this.attributes.set(`no_buffer_resize`,!0),t&&this.attributes.set(`no_handle_cache`,!0)}async stat(e){try{return await super.stat(e)}catch(t){if(t.code!=`ENOENT`)throw t;let n=await this.get(null,e),r=this.index._alloc(),i=new u({ino:r,data:r+1,nlink:1});if(M(n,`file`)){let e=await n.getFile();i.update({mode:420|D,size:e.size,mtimeMs:e.lastModified})}else i.update({mode:s|511,size:0});return this.index.set(e,i),i}}async touch(e,t){let n=this.index.get(e);if(!n)throw i(`ENOENT`);if(typeof t.size!=`number`||!x(n))return await super.touch(e,t);let r=await this.get(`file`,e).catch(e=>{if(e.code!=`ENOENT`)throw e});if(!r)return await super.touch(e,t);let{size:a}=await r.getFile();if(a==t.size)return await super.touch(e,t);let o=await r.createWritable({keepExistingData:!!t.size});try{await o.truncate(t.size)}catch{await o.write({type:`truncate`,size:t.size})}await o.close(),await super.touch(e,t)}async readdir(e){let t=await this.get(`directory`,e);return await Array.fromAsync(t.keys())}async remove(e){let t=await this.get(`directory`,p(e));for(let t of this._handles.keys())p(t)==e&&this._handles.delete(t);this._handles.delete(e),await t.removeEntry(v(e),{recursive:!0}).catch(t=>{let n=k(t,e);n.code!=`ENOENT`&&h(n)})}removeSync(){throw t(i(`ENOSYS`))}async read(e,t,n,r){if(r<=n)return;let o=await this.get(`file`,e),s;for(let e=0;;e++){let t=await o.getFile();try{s=await t.arrayBuffer();break}catch(t){if(!(t instanceof DOMException)||t.name!==`NotReadableError`||e>=2)throw t}}if(s.byteLength<r-n)throw a(i(`EIO`,[`Unexpected mismatch in file data size. This should not happen.`,`tried to read ${r-n} bytes but the file is ${s.byteLength} bytes.`,`path: ${e}`].join(`
|
|
2
|
+
`+` `.repeat(24))));t.set(new Uint8Array(s,n,r-n))}async write(e,n,r){if(j(n.buffer)||A(n.buffer)){let e=new Uint8Array(new ArrayBuffer(n.byteLength),n.byteOffset,n.byteLength);e.set(n),n=e}let a=this.index.get(e);if(!a)throw i(`ENOENT`);let o=(a.mode&T)==s,c;try{c=await this.get(o?`directory`:`file`,e)}catch{c=await(await this.get(`directory`,p(e)))[o?`getDirectoryHandle`:`getFileHandle`](v(e),{create:!0}).catch(t=>h(k(t,e))),this.disableHandleCache||this._handles.set(e,c)}if(o)return;if(M(c,`directory`)){t(i(`EIO`,`Mismatch in entry kind on write`));return}let l=await c.createWritable({keepExistingData:!0});if(r)try{await l.seek(r)}catch{await l.write({type:`seek`,position:r})}await l.write(n),await l.close();let{size:u,lastModified:d}=await c.getFile();a.update({size:u,mtimeMs:d}),this.index.set(e,a)}async writeFile(e,t){return this.write(e,t,0)}async _create(e,t){let n=await(await this.get(`directory`,p(e))).getFileHandle(v(e),{create:!0}).catch(t=>h(k(t,e)));this.disableHandleCache||this._handles.set(e,n)}async _mkdir(e){let t=await(await this.get(`directory`,p(e))).getDirectoryHandle(v(e),{create:!0}).catch(t=>h(k(t,e)));this.disableHandleCache||this._handles.set(e,t)}async get(e=null,t){let n=this._handles.get(t);if(!this.disableHandleCache&&n){if(e&&!M(n,e))throw i(e==`directory`?`ENOTDIR`:`EISDIR`);return n}if(t==`/`)return this.root;let r=t.slice(1).split(`/`),a=this.root;for(let e=0;e<r.length-1;++e)a=await a.getDirectoryHandle(r[e]).catch(e=>h(e.name==`TypeMismatchError`?i(`ENOTDIR`):k(e,t)));try{let n=await a[e==`file`?`getFileHandle`:`getDirectoryHandle`](r.at(-1));return this.disableHandleCache||this._handles.set(t,n),n}catch(n){if(n.name!=`TypeMismatchError`)throw k(n,t);if(e===null){let e=await a.getFileHandle(r.at(-1)).catch(e=>h(k(e,t)));return this.disableHandleCache||this._handles.set(t,e),e}throw i(e==`file`?`EISDIR`:`ENOTDIR`)}}},P={name:`WebAccess`,options:{handle:{type:`object`,required:!0},metadata:{type:`string`,required:!1},disableHandleCache:{type:`boolean`,required:!1},maxOpenFilesForCopy:{type:`number`,required:!1}},async create(e){let t=new N(e.handle,e.disableHandleCache);return t._crossCopySemaphore=new c(e.maxOpenFilesForCopy??128),await t._loadMetadata(e.metadata),t}};function F(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=t=>{t.preventDefault(),n(k(e.error))}})}var I=class extends _{async(e){this.asyncDone=this.asyncDone.then(()=>e)}constructor(e,t){super(t),this.tx=e,this.store=t,this.asyncDone=Promise.resolve(),this._idb=e.objectStore(t.name)}async keys(){return(await F(this._idb.getAllKeys())).map(Number)}async get(e){let t=await F(this._idb.get(e));return t&&this.store.cache.set(e,new Uint8Array(t)),t}async preload(){let[e,t]=await Promise.all([F(this._idb.getAllKeys()),F(this._idb.getAll())]);for(let n=0;n<e.length;n++){let r=t[n];r&&this.store.cache.set(Number(e[n]),r)}}getSync(e,t,n){if(!this.store.cache.has(e))return;let r=new Uint8Array(this.store.cache.get(e));return n??=r.byteLength,r.subarray(t,n)}async set(e,t){this.store.cache.set(e,new Uint8Array(t)),await F(this._idb.put(t,e))}setSync(e,t){this.async(this.set(e,t))}remove(e){return this.store.cache.delete(e),F(this._idb.delete(e))}removeSync(e){this.store.cache.delete(e),this.async(this.remove(e))}async commit(){await this.asyncDone;let{promise:e,resolve:t,reject:n}=Promise.withResolvers();return this.tx.oncomplete=()=>t(),this.tx.onerror=()=>n(k(this.tx.error)),this.tx.commit(),e}async abort(){await this.asyncDone;let{promise:e,resolve:t,reject:n}=Promise.withResolvers();return this.tx.onabort=()=>t(),this.tx.onerror=()=>n(k(this.tx.error)),this.tx.abort(),e}};async function L(e,t=globalThis.indexedDB){let n=t.open(e);return n.onupgradeneeded=()=>{let t=n.result;t.objectStoreNames.contains(e)&&(o(`Found unexpected object store: `+e),t.deleteObjectStore(e)),t.createObjectStore(e)},await F(n)}var R=class{constructor(e){this.db=e,this.cache=new Map}sync(){return Promise.resolve()}get name(){return this.db.name}transaction(){return new I(this.db.transaction(this.name,`readwrite`),this)}},z=new WeakMap;async function B(e){if(!(e instanceof IDBFactory))return!1;try{return(await F(e.open(`__zenfs_test`))).close(),!0}catch{return!1}finally{e?.deleteDatabase(`__zenfs_test`)}}var V={name:`IndexedDB`,options:{storeName:{type:`string`,required:!1},idbFactory:{type:`object`,required:!1}},async isAvailable({idbFactory:e=globalThis.indexedDB}){if(z.has(e))return z.get(e);let t=B(e);return z.set(e,t),t},async create(e){let t=new R(await L(e.storeName||`zenfs`,e.idbFactory)),n=new l(t);return e?.disableAsyncCache?(E(`Async preloading disabled for IndexedDB`),n):(await t.transaction().preload(),n)}},H=class{get name(){return U.name}constructor(e){this.storage=e}clear(){this.storage.clear()}clearSync(){this.storage.clear()}async sync(){}transaction(){return new C(this)}keys(){return Object.keys(this.storage).map(e=>Number(e))}get(t){let n=this.storage.getItem(t.toString());if(typeof n==`string`)return e(n)}set(e,t){try{this.storage.setItem(e.toString(),g(t))}catch{throw i(`ENOSPC`)}}delete(e){try{this.storage.removeItem(e.toString())}catch(t){throw i(`EIO`,`Unable to delete '${e}': ${t}`)}}},U={name:`WebStorage`,options:{storage:{type:`object`,required:!1}},isAvailable(e){return(e?.storage??globalThis.localStorage)instanceof globalThis.Storage},create({storage:e=globalThis.localStorage}){return new l(new H(e))}};function W(e){let t={};for(let n of d){let r=e.getAttribute(n);r!=null&&(t[n]=parseInt(r,16))}return new u(t)}function G(e,t){for(let n of Object.keys(t))!(n in d)||t[n]===void 0||e.setAttribute(n,t[n].toString(16))}function K(e,t=!1){let n;try{let r=t?e.textContent:e.getAttribute(`paths`);n=JSON.parse(r||`[]`)}catch{n=[]}return n}var q=class extends y(w){constructor(e=new DOMParser().parseFromString(`<fs></fs>`,`application/xml`).documentElement){super(544763244,`xmltmpfs`),this.root=e;try{this.mkdirSync(`/`,{uid:0,gid:0,mode:511})}catch(e){let t=e;if(t.code!=`EEXIST`)throw t}}renameSync(e,t){let n=this.get(`rename`,e);this.remove(`rename`,n,e),this.add(`rename`,n,t)}statSync(e){return W(this.get(`stat`,e))}createFileSync(e,t){let n=this.statSync(p(e)),r=new u({mode:t.mode|D,uid:n.mode&2048?n.uid:t.uid,gid:n.mode&1024?n.gid:t.gid});return this.create(`createFile`,e,r),r}unlinkSync(e){let t=this.get(`unlink`,e);if(W(t).mode&16384)throw i(`EISDIR`);this.remove(`unlink`,t,e)}rmdirSync(e){let t=this.get(`rmdir`,e);if(t.textContent?.length)throw i(`ENOTEMPTY`);if(!(W(t).mode&16384))throw i(`ENOTDIR`);this.remove(`rmdir`,t,e)}mkdirSync(e,t){let n=this.statSync(p(e)),r=new u({mode:t.mode|s,uid:n.mode&2048?n.uid:t.uid,gid:n.mode&1024?n.gid:t.gid});return this.create(`mkdir`,e,r).textContent=`[]`,r}readdirSync(e){let t=this.get(`readdir`,e);if(!(W(t).mode&16384))throw i(`ENOTDIR`);try{return JSON.parse(t.textContent)}catch(e){throw i(`EIO`,`Invalid directory listing: `+e)}}linkSync(e,t){let n=this.get(`link`,e);this.add(`link`,n,t)}touchSync(e,t){G(this.get(`touch`,e),t)}syncSync(){}readSync(t,n,r,i){let a=this.get(`read`,t),o=e(a.textContent.slice(r,i));n.set(o)}writeSync(e,t,n){let r=this.get(`write`,e),i=g(t),a=r.textContent.slice(n+i.length);r.textContent=r.textContent.slice(0,n)+i+a}toString(){return new XMLSerializer().serializeToString(this.root)}get(e,t){let n=this.root.children;if(!n)throw i(`EIO`);for(let e=0;e<n.length;e++)if(K(n[e]).includes(t))return n[e];throw i(`ENOENT`)}create(e,t,n){if(this.existsSync(t))throw i(`EEXIST`);let r=document.createElement(`file`);return this.add(e,r,t),G(r,new u({...n,uid:n.mode})),this.root.append(r),r}add(e,t,n,r=!1){let i=K(t,r);if(i.push(n),r){t.textContent=JSON.stringify(i);return}if(t.setAttribute(`paths`,JSON.stringify(i)),t.setAttribute(`nlink`,i.length.toString(16)),n!=`/`){let t=this.get(e,p(n));this.add(e,t,v(n),!0)}}remove(e,t,n,r=!1){let i=K(t,r),a=i.indexOf(n);if(a!=-1){if(i.splice(a,1),r){t.textContent=JSON.stringify(i);return}if(i.length?(t.setAttribute(`paths`,JSON.stringify(i)),t.setAttribute(`nlink`,i.length.toString(16))):t.remove(),n!=`/`){let t=this.get(e,p(n));this.remove(e,t,v(n),!0)}}}},J={name:`XML`,options:{root:{type:`object`,required:!1}},isAvailable(){return!0},create(e){return new q(e.root)}};export{V as IndexedDB,R as IndexedDBStore,I as IndexedDBTransaction,P as WebAccess,N as WebAccessFS,U as WebStorage,H as WebStorageStore,J as XML,q as XMLFS};
|