sliccy 6.110.0 → 6.110.2

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.
Files changed (101) hide show
  1. package/dist/node-server/_cloud_core/src/operations/start.d.ts.map +1 -1
  2. package/dist/node-server/_cloud_core/src/operations/start.js +152 -132
  3. package/dist/ui/.vite/manifest.json +132 -132
  4. package/dist/ui/assets/{account-store-DmTUzOwD.js → account-store-8sKKUZ8J.js} +1 -1
  5. package/dist/ui/assets/{account-store-C3hpxUnj.js → account-store-Bg1KKHOx.js} +1 -1
  6. package/dist/ui/assets/{adobe-C6blUXjx.js → adobe-0CWIpyju.js} +1 -1
  7. package/dist/ui/assets/{adobe-CeRHOrV3.js → adobe-ChXsF6gw.js} +1 -1
  8. package/dist/ui/assets/{agent-bridge-BytMhrHG.js → agent-bridge-B43SVYcu.js} +1 -1
  9. package/dist/ui/assets/{agent-panels-CW3VQhe5.js → agent-panels-9uCI5yeM.js} +1 -1
  10. package/dist/ui/assets/{apply-layout-C9oYfek3.js → apply-layout-Bz-0rXhV.js} +1 -1
  11. package/dist/ui/assets/{apps-buLjOZpb.js → apps-C16RztyU.js} +1 -1
  12. package/dist/ui/assets/{azure-openai-BQJFNoBY.js → azure-openai-BCKGDF-y.js} +1 -1
  13. package/dist/ui/assets/{azure-openai-BvVWJJJ0.js → azure-openai-DoQszniP.js} +1 -1
  14. package/dist/ui/assets/cdp-ws-page-bridge-CtHmog_w.js +1 -0
  15. package/dist/ui/assets/{cerebras-CokNYO8b.js → cerebras-CQwhL4Ig.js} +1 -1
  16. package/dist/ui/assets/{cerebras-BjJmr6-W.js → cerebras-kH_bQsg2.js} +1 -1
  17. package/dist/ui/assets/{connect-surface-BHqqK_uZ.js → connect-surface-BMrb-EnN.js} +1 -1
  18. package/dist/ui/assets/{directed-approval-CGapNvBZ.js → directed-approval-zeD_orXz.js} +1 -1
  19. package/dist/ui/assets/{dist-DhiPJE96.js → dist-BKQr3WRb.js} +1 -1
  20. package/dist/ui/assets/{dist-CIyvNQb4.js → dist-CBELmDjr.js} +1 -1
  21. package/dist/ui/assets/dist-DHO9E-gl.js +2 -0
  22. package/dist/ui/assets/dist-iMxkf8fm.js +2 -0
  23. package/dist/ui/assets/{fs-D9DlVz0g.js → fs-BsqtoiKD.js} +2 -2
  24. package/dist/ui/assets/{fs-b7tPDGDe.js → fs-DKRiXKHo.js} +1 -1
  25. package/dist/ui/assets/{github-rMrWcSVm.js → github-DGUqMidV.js} +1 -1
  26. package/dist/ui/assets/{github-CAYwnl-b.js → github-DqsEulTB.js} +2 -2
  27. package/dist/ui/assets/{github-copilot-BaohZB3G.js → github-copilot-DJf8cE1K.js} +1 -1
  28. package/dist/ui/assets/{github-copilot-BaEPoc2l.js → github-copilot-Xp2l1YxD.js} +1 -1
  29. package/dist/ui/assets/{github-install-9ynDwgiQ.js → github-install-DRa8AaBY.js} +1 -1
  30. package/dist/ui/assets/{github-zip-nBMk_5yk.js → github-zip-BpPiUirA.js} +1 -1
  31. package/dist/ui/assets/{js-realm-worker-adzmez5_.js → js-realm-worker-D6DSLfXh.js} +10 -10
  32. package/dist/ui/assets/{kernel-worker-DqzdssFu.js → kernel-worker-DQDT4Cud.js} +530 -530
  33. package/dist/ui/assets/{local-llm--yLtHAZU.js → local-llm-Cjzjpqa1.js} +1 -1
  34. package/dist/ui/assets/{local-llm-CiMne0-B.js → local-llm-OBHKAcNH.js} +1 -1
  35. package/dist/ui/assets/{main-CfZo7HyV.js → main-BK-7ArIz.js} +3 -3
  36. package/dist/ui/assets/{mount-CC0djJXQ.js → mount-BrQpW9eO.js} +1 -1
  37. package/dist/ui/assets/{mount-rYO-8m8f.js → mount-Rb9VVKip.js} +2 -2
  38. package/dist/ui/assets/{mount-recovery-CvuTQnTL.js → mount-recovery-Cb-AXW35.js} +1 -1
  39. package/dist/ui/assets/{new-session-BS3W0s9e.js → new-session-CF4YpiQ9.js} +2 -2
  40. package/dist/ui/assets/{oauth-bootstrap-DpG29VCH.js → oauth-bootstrap-YFOy1SIX.js} +2 -2
  41. package/dist/ui/assets/{onboarding-orchestrator-BI0_TR0Z.js → onboarding-orchestrator-Dmh6rOJl.js} +1 -1
  42. package/dist/ui/assets/{openai-codex-BJ4JLVfo.js → openai-codex-84EHUcAD.js} +1 -1
  43. package/dist/ui/assets/{openai-codex-C8aOD0t8.js → openai-codex-DY_L0KSA.js} +1 -1
  44. package/dist/ui/assets/{openrouter-DHg1gMnT.js → openrouter-meLV8ehE.js} +1 -1
  45. package/dist/ui/assets/{openrouter-oauth-DukR2YjX.js → openrouter-oauth-CblQ27-K.js} +1 -1
  46. package/dist/ui/assets/{openrouter-oauth-CRVMrh7E.js → openrouter-oauth-DudFNSW4.js} +1 -1
  47. package/dist/ui/assets/{openrouter-LCca2Pyd.js → openrouter-z7GGvxCM.js} +1 -1
  48. package/dist/ui/assets/{panel-rpc-handlers-p0z9KK9s.js → panel-rpc-handlers-DmiAyTiy.js} +2 -2
  49. package/dist/ui/assets/{panelize-shell-DRCqD-hf.js → panelize-shell-65i9Hq7n.js} +1 -1
  50. package/dist/ui/assets/{provider-8X1TXGOz.js → provider-BE0mTIGf.js} +1 -1
  51. package/dist/ui/assets/{provider-CMYr90tG.js → provider-BLbTGk-_.js} +2 -2
  52. package/dist/ui/assets/{provider-settings-BbKZBkmj.js → provider-settings-Dq-yRgMh.js} +1 -1
  53. package/dist/ui/assets/provider-store-access-CJdYrcvf.js +1 -0
  54. package/dist/ui/assets/provider-store-access-NHOQWINx.js +1 -0
  55. package/dist/ui/assets/{providers-B3XsxeEV.js → providers-B3OPYf2o.js} +2 -2
  56. package/dist/ui/assets/{providers-DuNEVEmM.js → providers-BlPz5ou6.js} +1 -1
  57. package/dist/ui/assets/{quick-llm-BQeXAXhA.js → quick-llm-CcFoANd_.js} +1 -1
  58. package/dist/ui/assets/{recovery-screen-Dg10xiZK.js → recovery-screen-44Uu5Cgy.js} +1 -1
  59. package/dist/ui/assets/{run-74Dp3xqK.js → run-BQu73khp.js} +1 -1
  60. package/dist/ui/assets/{setup-feature-flags-remote-BDXotdTe.js → setup-feature-flags-remote-ITlSmr_i.js} +1 -1
  61. package/dist/ui/assets/sidecar-repair-Ddcz9Mvv.js +1 -0
  62. package/dist/ui/assets/{skills-fw01LxeE.js → skills-B0o8gPTv.js} +1 -1
  63. package/dist/ui/assets/slicc-version-BrPYMXS9.js +1 -0
  64. package/dist/ui/assets/{state-YABVHFPR.js → state-BSTmV4yO.js} +1 -1
  65. package/dist/ui/assets/{store-DuMDTOYq.js → store-C3RMRz9d.js} +1 -1
  66. package/dist/ui/assets/{store--DLIZTf_.js → store-CzQ9Fvfr.js} +1 -1
  67. package/dist/ui/assets/{sudo-Lv8DoXxd.js → sudo-CPH7ANoV.js} +1 -1
  68. package/dist/ui/assets/{sync-dialog-B8ssqjz4.js → sync-dialog-vSEl3KxP.js} +1 -1
  69. package/dist/ui/assets/{tray-sidecar-B1xCDlFe.js → tray-sidecar-BIcoXTJN.js} +1 -1
  70. package/dist/ui/assets/{upgrade-detection-TlqXRH1-.js → upgrade-detection-TsOPChOa.js} +1 -1
  71. package/dist/ui/assets/{voice-reply-CGJnZqW1.js → voice-reply-O_Z2C0eg.js} +1 -1
  72. package/dist/ui/assets/{wc-attach-DANq4_X7.js → wc-attach-DM5yRZRS.js} +2 -2
  73. package/dist/ui/assets/{wc-extension-BRZxL5Z1.js → wc-extension-Dg5dOqTK.js} +2 -2
  74. package/dist/ui/assets/{wc-float-label-KQOIpgnm.js → wc-float-label-Bmp3gmHN.js} +1 -1
  75. package/dist/ui/assets/{wc-floatbar-online-D1LOCURF.js → wc-floatbar-online-B8ug4UwE.js} +1 -1
  76. package/dist/ui/assets/{wc-follower-D7D0OBf3.js → wc-follower-G03aUmAn.js} +3 -3
  77. package/dist/ui/assets/{wc-follower-oauth-DZllVzrT.js → wc-follower-oauth-D15d_vbh.js} +1 -1
  78. package/dist/ui/assets/{wc-live-RnON2Ugk.js → wc-live-CiwhsK8i.js} +7 -7
  79. package/dist/ui/assets/{wc-nav-Clor2VFZ.js → wc-nav-D8Bi3zRA.js} +2 -2
  80. package/dist/ui/assets/{wc-onboarding-BUmFCg_U.js → wc-onboarding-DUBWYyMl.js} +2 -2
  81. package/dist/ui/assets/{wc-placeholder-8Judy9cG.js → wc-placeholder-CPMV2eO3.js} +3 -3
  82. package/dist/ui/assets/{wc-settings-Bvx2BLQv.js → wc-settings-M8e_JWQh.js} +3 -3
  83. package/dist/ui/assets/{wc-shell-CsfCsd9q.js → wc-shell-WlrdsROD.js} +2 -2
  84. package/dist/ui/assets/{wc-shortcut-config-BK4O1f_G.js → wc-shortcut-config-BftmZXGf.js} +1 -1
  85. package/dist/ui/assets/{wc-sprinkles-D65r5HD-.js → wc-sprinkles-DhXJLTUO.js} +2 -2
  86. package/dist/ui/assets/{wc-transcript-export-UUnE-lk6.js → wc-transcript-export-DjpmBvLP.js} +2 -2
  87. package/dist/ui/assets/{wc-tray-CPQsc5Us.js → wc-tray-BdgbNPhM.js} +4 -4
  88. package/dist/ui/assets/welcome-detection-0SaDZUV0.js +1 -0
  89. package/dist/ui/assets/{xai-grok-DoYWlKs_.js → xai-grok-CVEtAfJK.js} +1 -1
  90. package/dist/ui/assets/{xai-grok-IHkw5Jqa.js → xai-grok-DH1oX2E5.js} +1 -1
  91. package/dist/ui/index.html +3 -3
  92. package/dist/ui/packages/webapp/index.html +3 -3
  93. package/package.json +2 -2
  94. package/dist/ui/assets/cdp-ws-page-bridge-DI26JBMr.js +0 -1
  95. package/dist/ui/assets/dist-CLbkZ_1_.js +0 -2
  96. package/dist/ui/assets/dist-ChNj9ewx.js +0 -2
  97. package/dist/ui/assets/provider-store-access-D5VrJP0f.js +0 -1
  98. package/dist/ui/assets/provider-store-access-DxHrtPBD.js +0 -1
  99. package/dist/ui/assets/sidecar-repair-Mh9rQVbp.js +0 -1
  100. package/dist/ui/assets/slicc-version-DF86HAGG.js +0 -1
  101. package/dist/ui/assets/welcome-detection-D7QFjBKz.js +0 -1
@@ -1 +1 @@
1
- import{H as e,d as t}from"./account-store-C3hpxUnj.js";import{a as n}from"./diagnostics-DN_idNHx.js";import{c as r,u as i}from"./claude-model-version-C0HLsjny.js";import{c as a,i as o,r as s,s as c}from"./legacy-api-aliases-7-tLus57.js";import"./main-CfZo7HyV.js";import{n as l,r as u,t as d}from"./pkce-hGf_TEnP.js";import{XaiErrorCode as f,XaiOAuthError as p}from"./xai-grok-errors-bnlIBeu-.js";var m=`xai-grok`,h=`https://auth.x.ai`,g=`${h}/oauth2/authorize`,_=`${h}/oauth2/token`,v=`b1a00492-073a-47ea-816f-4c329264a828`,y=`openid profile email offline_access grok-cli:access api:access`,b=`http://127.0.0.1:56121/callback`,x=`http://127.0.0.1:56121/*`,S=`https://api.x.ai/v1`,C=`grok-4.5`,w=`${m}-openai`;function T(){return r(`xai`)}function E(e){return{id:e.id,name:e.name,api:`openai`,reasoning:e.reasoning,input:e.input,context_window:e.contextWindow,max_tokens:e.maxTokens,compat:e.compat,thinkingLevelMap:e.thinkingLevelMap}}function D(e){let t=T(),n=t.find(t=>t.id===e.id);if(!n&&(console.warn(`xAI model "${e.id}" is no longer in the pi-ai catalog; falling back to default "${C}"`),n=t.find(e=>e.id===C),!n))throw Error(`xAI default model "${C}" is not registered by pi-ai`);if(n.api!==`openai-responses`&&n.api!==`openai-completions`)throw Error(`Unsupported pi-ai API "${n.api}" for xAI model "${e.id}"`);return{...e,...n,baseUrl:S}}async function O(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,code:e,redirect_uri:b,client_id:v,code_verifier:t}),r=await fetch(_,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw new p(`xAI token exchange failed: ${r.status} ${await r.text()}`,f.TOKEN_EXCHANGE_FAILED);let i=await r.json();if(!i.access_token)throw new p(`xAI token exchange did not return access_token.`,f.TOKEN_EXCHANGE_INVALID);return i}async function k(e){try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:v}),n=await fetch(_,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});return n.ok?await n.json():(console.error(`[xai-grok] refresh failed:`,n.status,await n.text()),null)}catch(e){return console.error(`[xai-grok] refresh error:`,e instanceof Error?e.message:String(e)),null}}function A(){return t().find(e=>e.providerId===m)}async function j(){let t=A();if(!t?.accessToken)throw new p("Not signed in to xAI Grok — run /login or `oauth-token xai-grok`",f.AUTH_MISSING,!0);let n=t.tokenExpiresAt??0;if(n&&Date.now()+6e4<n)return t.accessToken;if(t.refreshToken){let n=await k(t.refreshToken);if(n?.access_token)return await e({providerId:m,accessToken:n.access_token,refreshToken:n.refresh_token??t.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??21600)*1e3,scopes:n.scope??t.scopes}),n.access_token}return t.accessToken}function M(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:w,provider:m,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 N(e,t){return t?{...e??{},"x-grok-conv-id":t}:e}var P=(e,t,r={})=>{let i=n();return(async()=>{try{let n=await j(),a=r.sessionId,c=D(e),l={...r,apiKey:n,headers:N(r.headers,a)},u=c.api===`openai-responses`?o(c,t,l):s(c,t,l);for await(let e of u)i.push(e);i.end()}catch(t){console.error(`[xai-grok] Stream error:`,t instanceof Error?t.message:String(t)),i.push(M(e,t)),i.end()}})(),i},F=(e,t,r)=>{let i=n();return(async()=>{try{let n=await j(),o=r?.sessionId,s=D(e),l={...r,apiKey:n,headers:N(r?.headers,o)},u=s.api===`openai-responses`?a(s,t,l):c(s,t,l);for await(let e of u)i.push(e);i.end()}catch(t){console.error(`[xai-grok] Stream error:`,t instanceof Error?t.message:String(t)),i.push(M(e,t)),i.end()}})(),i},I={id:m,name:`xAI Grok (SuperGrok OAuth)`,description:`Grok via xAI OAuth — uses your SuperGrok subscription, no API key needed. Default model is Grok 4.5.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:C,oauthTokenDomains:[`api.x.ai`,`*.x.ai`,`auth.x.ai`,`accounts.x.ai`],getModelIds:()=>T().map(E),onOAuthLoginIntercepted:async(t,n,r)=>{let i=l(),a=await d(i),o=u(),s=u(),c=new URL(g);c.searchParams.set(`response_type`,`code`),c.searchParams.set(`client_id`,v),c.searchParams.set(`redirect_uri`,b),c.searchParams.set(`scope`,r?.scopes??y),c.searchParams.set(`code_challenge`,a),c.searchParams.set(`code_challenge_method`,`S256`),c.searchParams.set(`state`,o),c.searchParams.set(`nonce`,s),c.searchParams.set(`plan`,`generic`),c.searchParams.set(`referrer`,`slicc`);let h=await t({authorizeUrl:c.toString(),redirectUriPattern:x,onCapture:`close`});if(!h)throw new p(`xAI OAuth login was cancelled or timed out`,f.CALLBACK_TIMEOUT);let _=new URL(h),C=_.searchParams.get(`code`),w=_.searchParams.get(`state`);if(!C)throw new p(`xAI OAuth redirect did not include a code`,f.CODE_MISSING);if(w!==o)throw new p(`xAI OAuth state mismatch — possible CSRF, aborting`,f.STATE_MISMATCH);let T=await O(C,i);await e({providerId:m,accessToken:T.access_token,refreshToken:T.refresh_token,tokenExpiresAt:Date.now()+(T.expires_in??21600)*1e3,baseUrl:S,scopes:T.scope}),n()},onOAuthLogout:async()=>{await e({providerId:m,accessToken:``})},onSilentRenew:async()=>{let t=A();if(!t?.refreshToken)return null;let n=await k(t.refreshToken);return n?.access_token?(await e({providerId:m,accessToken:n.access_token,refreshToken:n.refresh_token??t.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??21600)*1e3,scopes:n.scope??t.scopes}),n.access_token):null}};function L(){i({api:w,stream:P,streamSimple:F})}export{f as XaiErrorCode,p as XaiOAuthError,I as config,L as register};
1
+ import{H as e,d as t}from"./account-store-Bg1KKHOx.js";import{a as n}from"./diagnostics-DN_idNHx.js";import{c as r,u as i}from"./claude-model-version-C0HLsjny.js";import{c as a,i as o,r as s,s as c}from"./legacy-api-aliases-7-tLus57.js";import"./main-BK-7ArIz.js";import{n as l,r as u,t as d}from"./pkce-hGf_TEnP.js";import{XaiErrorCode as f,XaiOAuthError as p}from"./xai-grok-errors-bnlIBeu-.js";var m=`xai-grok`,h=`https://auth.x.ai`,g=`${h}/oauth2/authorize`,_=`${h}/oauth2/token`,v=`b1a00492-073a-47ea-816f-4c329264a828`,y=`openid profile email offline_access grok-cli:access api:access`,b=`http://127.0.0.1:56121/callback`,x=`http://127.0.0.1:56121/*`,S=`https://api.x.ai/v1`,C=`grok-4.5`,w=`${m}-openai`;function T(){return r(`xai`)}function E(e){return{id:e.id,name:e.name,api:`openai`,reasoning:e.reasoning,input:e.input,context_window:e.contextWindow,max_tokens:e.maxTokens,compat:e.compat,thinkingLevelMap:e.thinkingLevelMap}}function D(e){let t=T(),n=t.find(t=>t.id===e.id);if(!n&&(console.warn(`xAI model "${e.id}" is no longer in the pi-ai catalog; falling back to default "${C}"`),n=t.find(e=>e.id===C),!n))throw Error(`xAI default model "${C}" is not registered by pi-ai`);if(n.api!==`openai-responses`&&n.api!==`openai-completions`)throw Error(`Unsupported pi-ai API "${n.api}" for xAI model "${e.id}"`);return{...e,...n,baseUrl:S}}async function O(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,code:e,redirect_uri:b,client_id:v,code_verifier:t}),r=await fetch(_,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw new p(`xAI token exchange failed: ${r.status} ${await r.text()}`,f.TOKEN_EXCHANGE_FAILED);let i=await r.json();if(!i.access_token)throw new p(`xAI token exchange did not return access_token.`,f.TOKEN_EXCHANGE_INVALID);return i}async function k(e){try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:v}),n=await fetch(_,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});return n.ok?await n.json():(console.error(`[xai-grok] refresh failed:`,n.status,await n.text()),null)}catch(e){return console.error(`[xai-grok] refresh error:`,e instanceof Error?e.message:String(e)),null}}function A(){return t().find(e=>e.providerId===m)}async function j(){let t=A();if(!t?.accessToken)throw new p("Not signed in to xAI Grok — run /login or `oauth-token xai-grok`",f.AUTH_MISSING,!0);let n=t.tokenExpiresAt??0;if(n&&Date.now()+6e4<n)return t.accessToken;if(t.refreshToken){let n=await k(t.refreshToken);if(n?.access_token)return await e({providerId:m,accessToken:n.access_token,refreshToken:n.refresh_token??t.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??21600)*1e3,scopes:n.scope??t.scopes}),n.access_token}return t.accessToken}function M(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:w,provider:m,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 N(e,t){return t?{...e??{},"x-grok-conv-id":t}:e}var P=(e,t,r={})=>{let i=n();return(async()=>{try{let n=await j(),a=r.sessionId,c=D(e),l={...r,apiKey:n,headers:N(r.headers,a)},u=c.api===`openai-responses`?o(c,t,l):s(c,t,l);for await(let e of u)i.push(e);i.end()}catch(t){console.error(`[xai-grok] Stream error:`,t instanceof Error?t.message:String(t)),i.push(M(e,t)),i.end()}})(),i},F=(e,t,r)=>{let i=n();return(async()=>{try{let n=await j(),o=r?.sessionId,s=D(e),l={...r,apiKey:n,headers:N(r?.headers,o)},u=s.api===`openai-responses`?a(s,t,l):c(s,t,l);for await(let e of u)i.push(e);i.end()}catch(t){console.error(`[xai-grok] Stream error:`,t instanceof Error?t.message:String(t)),i.push(M(e,t)),i.end()}})(),i},I={id:m,name:`xAI Grok (SuperGrok OAuth)`,description:`Grok via xAI OAuth — uses your SuperGrok subscription, no API key needed. Default model is Grok 4.5.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:C,oauthTokenDomains:[`api.x.ai`,`*.x.ai`,`auth.x.ai`,`accounts.x.ai`],getModelIds:()=>T().map(E),onOAuthLoginIntercepted:async(t,n,r)=>{let i=l(),a=await d(i),o=u(),s=u(),c=new URL(g);c.searchParams.set(`response_type`,`code`),c.searchParams.set(`client_id`,v),c.searchParams.set(`redirect_uri`,b),c.searchParams.set(`scope`,r?.scopes??y),c.searchParams.set(`code_challenge`,a),c.searchParams.set(`code_challenge_method`,`S256`),c.searchParams.set(`state`,o),c.searchParams.set(`nonce`,s),c.searchParams.set(`plan`,`generic`),c.searchParams.set(`referrer`,`slicc`);let h=await t({authorizeUrl:c.toString(),redirectUriPattern:x,onCapture:`close`});if(!h)throw new p(`xAI OAuth login was cancelled or timed out`,f.CALLBACK_TIMEOUT);let _=new URL(h),C=_.searchParams.get(`code`),w=_.searchParams.get(`state`);if(!C)throw new p(`xAI OAuth redirect did not include a code`,f.CODE_MISSING);if(w!==o)throw new p(`xAI OAuth state mismatch — possible CSRF, aborting`,f.STATE_MISMATCH);let T=await O(C,i);await e({providerId:m,accessToken:T.access_token,refreshToken:T.refresh_token,tokenExpiresAt:Date.now()+(T.expires_in??21600)*1e3,baseUrl:S,scopes:T.scope}),n()},onOAuthLogout:async()=>{await e({providerId:m,accessToken:``})},onSilentRenew:async()=>{let t=A();if(!t?.refreshToken)return null;let n=await k(t.refreshToken);return n?.access_token?(await e({providerId:m,accessToken:n.access_token,refreshToken:n.refresh_token??t.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??21600)*1e3,scopes:n.scope??t.scopes}),n.access_token):null}};function L(){i({api:w,stream:P,streamSimple:F})}export{f as XaiErrorCode,p as XaiOAuthError,I as config,L as register};
@@ -1 +1 @@
1
- import{g as e,n as t}from"./account-store-DmTUzOwD.js";import{a as n}from"./diagnostics-DN_idNHx.js";import{a as r,r as i}from"./compat-Dujkqs4W.js";import{c as a,i as o,r as s,s as c}from"./legacy-api-aliases-PgIrFmtQ.js";import"./provider-settings-BbKZBkmj.js";import{n as l,r as u,t as d}from"./pkce-hGf_TEnP.js";import{XaiErrorCode as f,XaiOAuthError as p}from"./xai-grok-errors-ByEMMSoz.js";const m=`xai-grok`,h=`https://auth.x.ai`,g=`${h}/oauth2/authorize`,_=`${h}/oauth2/token`,v=`b1a00492-073a-47ea-816f-4c329264a828`,y=`http://127.0.0.1:56121/callback`,b=`https://api.x.ai/v1`,x=`grok-4.5`,S=`${m}-openai`;function C(){return i(`xai`)}function w(e){return{id:e.id,name:e.name,api:`openai`,reasoning:e.reasoning,input:e.input,context_window:e.contextWindow,max_tokens:e.maxTokens,compat:e.compat,thinkingLevelMap:e.thinkingLevelMap}}function T(e){let t=C(),n=t.find(t=>t.id===e.id);if(!n&&(console.warn(`xAI model "${e.id}" is no longer in the pi-ai catalog; falling back to default "${x}"`),n=t.find(e=>e.id===x),!n))throw Error(`xAI default model "${x}" is not registered by pi-ai`);if(n.api!==`openai-responses`&&n.api!==`openai-completions`)throw Error(`Unsupported pi-ai API "${n.api}" for xAI model "${e.id}"`);return{...e,...n,baseUrl:b}}async function E(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,code:e,redirect_uri:y,client_id:v,code_verifier:t}),r=await fetch(_,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw new p(`xAI token exchange failed: ${r.status} ${await r.text()}`,f.TOKEN_EXCHANGE_FAILED);let i=await r.json();if(!i.access_token)throw new p(`xAI token exchange did not return access_token.`,f.TOKEN_EXCHANGE_INVALID);return i}async function D(e){try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:v}),n=await fetch(_,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});return n.ok?await n.json():(console.error(`[xai-grok] refresh failed:`,n.status,await n.text()),null)}catch(e){return console.error(`[xai-grok] refresh error:`,e instanceof Error?e.message:String(e)),null}}function O(){return t().find(e=>e.providerId===m)}async function k(){let t=O();if(!t?.accessToken)throw new p("Not signed in to xAI Grok — run /login or `oauth-token xai-grok`",f.AUTH_MISSING,!0);let n=t.tokenExpiresAt??0;if(n&&Date.now()+6e4<n)return t.accessToken;if(t.refreshToken){let n=await D(t.refreshToken);if(n?.access_token)return await e({providerId:m,accessToken:n.access_token,refreshToken:n.refresh_token??t.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??21600)*1e3,scopes:n.scope??t.scopes}),n.access_token}return t.accessToken}function A(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:S,provider:m,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 j(e,t){return t?{...e??{},"x-grok-conv-id":t}:e}const M=(e,t,r={})=>{let i=n();return(async()=>{try{let n=await k(),a=r.sessionId,c=T(e),l={...r,apiKey:n,headers:j(r.headers,a)},u=c.api===`openai-responses`?o(c,t,l):s(c,t,l);for await(let e of u)i.push(e);i.end()}catch(t){console.error(`[xai-grok] Stream error:`,t instanceof Error?t.message:String(t)),i.push(A(e,t)),i.end()}})(),i},N=(e,t,r)=>{let i=n();return(async()=>{try{let n=await k(),o=r?.sessionId,s=T(e),l={...r,apiKey:n,headers:j(r?.headers,o)},u=s.api===`openai-responses`?a(s,t,l):c(s,t,l);for await(let e of u)i.push(e);i.end()}catch(t){console.error(`[xai-grok] Stream error:`,t instanceof Error?t.message:String(t)),i.push(A(e,t)),i.end()}})(),i},P={id:m,name:`xAI Grok (SuperGrok OAuth)`,description:`Grok via xAI OAuth — uses your SuperGrok subscription, no API key needed. Default model is Grok 4.5.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:x,oauthTokenDomains:[`api.x.ai`,`*.x.ai`,`auth.x.ai`,`accounts.x.ai`],getModelIds:()=>C().map(w),onOAuthLoginIntercepted:async(t,n,r)=>{let i=l(),a=await d(i),o=u(),s=u(),c=new URL(g);c.searchParams.set(`response_type`,`code`),c.searchParams.set(`client_id`,v),c.searchParams.set(`redirect_uri`,y),c.searchParams.set(`scope`,r?.scopes??`openid profile email offline_access grok-cli:access api:access`),c.searchParams.set(`code_challenge`,a),c.searchParams.set(`code_challenge_method`,`S256`),c.searchParams.set(`state`,o),c.searchParams.set(`nonce`,s),c.searchParams.set(`plan`,`generic`),c.searchParams.set(`referrer`,`slicc`);let h=await t({authorizeUrl:c.toString(),redirectUriPattern:`http://127.0.0.1:56121/*`,onCapture:`close`});if(!h)throw new p(`xAI OAuth login was cancelled or timed out`,f.CALLBACK_TIMEOUT);let _=new URL(h),x=_.searchParams.get(`code`),S=_.searchParams.get(`state`);if(!x)throw new p(`xAI OAuth redirect did not include a code`,f.CODE_MISSING);if(S!==o)throw new p(`xAI OAuth state mismatch — possible CSRF, aborting`,f.STATE_MISMATCH);let C=await E(x,i);await e({providerId:m,accessToken:C.access_token,refreshToken:C.refresh_token,tokenExpiresAt:Date.now()+(C.expires_in??21600)*1e3,baseUrl:b,scopes:C.scope}),n()},onOAuthLogout:async()=>{await e({providerId:m,accessToken:``})},onSilentRenew:async()=>{let t=O();if(!t?.refreshToken)return null;let n=await D(t.refreshToken);return n?.access_token?(await e({providerId:m,accessToken:n.access_token,refreshToken:n.refresh_token??t.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??21600)*1e3,scopes:n.scope??t.scopes}),n.access_token):null}};function F(){r({api:S,stream:M,streamSimple:N})}export{f as XaiErrorCode,p as XaiOAuthError,P as config,F as register};
1
+ import{g as e,n as t}from"./account-store-8sKKUZ8J.js";import{a as n}from"./diagnostics-DN_idNHx.js";import{a as r,r as i}from"./compat-Dujkqs4W.js";import{c as a,i as o,r as s,s as c}from"./legacy-api-aliases-PgIrFmtQ.js";import"./provider-settings-Dq-yRgMh.js";import{n as l,r as u,t as d}from"./pkce-hGf_TEnP.js";import{XaiErrorCode as f,XaiOAuthError as p}from"./xai-grok-errors-ByEMMSoz.js";const m=`xai-grok`,h=`https://auth.x.ai`,g=`${h}/oauth2/authorize`,_=`${h}/oauth2/token`,v=`b1a00492-073a-47ea-816f-4c329264a828`,y=`http://127.0.0.1:56121/callback`,b=`https://api.x.ai/v1`,x=`grok-4.5`,S=`${m}-openai`;function C(){return i(`xai`)}function w(e){return{id:e.id,name:e.name,api:`openai`,reasoning:e.reasoning,input:e.input,context_window:e.contextWindow,max_tokens:e.maxTokens,compat:e.compat,thinkingLevelMap:e.thinkingLevelMap}}function T(e){let t=C(),n=t.find(t=>t.id===e.id);if(!n&&(console.warn(`xAI model "${e.id}" is no longer in the pi-ai catalog; falling back to default "${x}"`),n=t.find(e=>e.id===x),!n))throw Error(`xAI default model "${x}" is not registered by pi-ai`);if(n.api!==`openai-responses`&&n.api!==`openai-completions`)throw Error(`Unsupported pi-ai API "${n.api}" for xAI model "${e.id}"`);return{...e,...n,baseUrl:b}}async function E(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,code:e,redirect_uri:y,client_id:v,code_verifier:t}),r=await fetch(_,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw new p(`xAI token exchange failed: ${r.status} ${await r.text()}`,f.TOKEN_EXCHANGE_FAILED);let i=await r.json();if(!i.access_token)throw new p(`xAI token exchange did not return access_token.`,f.TOKEN_EXCHANGE_INVALID);return i}async function D(e){try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:v}),n=await fetch(_,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});return n.ok?await n.json():(console.error(`[xai-grok] refresh failed:`,n.status,await n.text()),null)}catch(e){return console.error(`[xai-grok] refresh error:`,e instanceof Error?e.message:String(e)),null}}function O(){return t().find(e=>e.providerId===m)}async function k(){let t=O();if(!t?.accessToken)throw new p("Not signed in to xAI Grok — run /login or `oauth-token xai-grok`",f.AUTH_MISSING,!0);let n=t.tokenExpiresAt??0;if(n&&Date.now()+6e4<n)return t.accessToken;if(t.refreshToken){let n=await D(t.refreshToken);if(n?.access_token)return await e({providerId:m,accessToken:n.access_token,refreshToken:n.refresh_token??t.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??21600)*1e3,scopes:n.scope??t.scopes}),n.access_token}return t.accessToken}function A(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:S,provider:m,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 j(e,t){return t?{...e??{},"x-grok-conv-id":t}:e}const M=(e,t,r={})=>{let i=n();return(async()=>{try{let n=await k(),a=r.sessionId,c=T(e),l={...r,apiKey:n,headers:j(r.headers,a)},u=c.api===`openai-responses`?o(c,t,l):s(c,t,l);for await(let e of u)i.push(e);i.end()}catch(t){console.error(`[xai-grok] Stream error:`,t instanceof Error?t.message:String(t)),i.push(A(e,t)),i.end()}})(),i},N=(e,t,r)=>{let i=n();return(async()=>{try{let n=await k(),o=r?.sessionId,s=T(e),l={...r,apiKey:n,headers:j(r?.headers,o)},u=s.api===`openai-responses`?a(s,t,l):c(s,t,l);for await(let e of u)i.push(e);i.end()}catch(t){console.error(`[xai-grok] Stream error:`,t instanceof Error?t.message:String(t)),i.push(A(e,t)),i.end()}})(),i},P={id:m,name:`xAI Grok (SuperGrok OAuth)`,description:`Grok via xAI OAuth — uses your SuperGrok subscription, no API key needed. Default model is Grok 4.5.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:x,oauthTokenDomains:[`api.x.ai`,`*.x.ai`,`auth.x.ai`,`accounts.x.ai`],getModelIds:()=>C().map(w),onOAuthLoginIntercepted:async(t,n,r)=>{let i=l(),a=await d(i),o=u(),s=u(),c=new URL(g);c.searchParams.set(`response_type`,`code`),c.searchParams.set(`client_id`,v),c.searchParams.set(`redirect_uri`,y),c.searchParams.set(`scope`,r?.scopes??`openid profile email offline_access grok-cli:access api:access`),c.searchParams.set(`code_challenge`,a),c.searchParams.set(`code_challenge_method`,`S256`),c.searchParams.set(`state`,o),c.searchParams.set(`nonce`,s),c.searchParams.set(`plan`,`generic`),c.searchParams.set(`referrer`,`slicc`);let h=await t({authorizeUrl:c.toString(),redirectUriPattern:`http://127.0.0.1:56121/*`,onCapture:`close`});if(!h)throw new p(`xAI OAuth login was cancelled or timed out`,f.CALLBACK_TIMEOUT);let _=new URL(h),x=_.searchParams.get(`code`),S=_.searchParams.get(`state`);if(!x)throw new p(`xAI OAuth redirect did not include a code`,f.CODE_MISSING);if(S!==o)throw new p(`xAI OAuth state mismatch — possible CSRF, aborting`,f.STATE_MISMATCH);let C=await E(x,i);await e({providerId:m,accessToken:C.access_token,refreshToken:C.refresh_token,tokenExpiresAt:Date.now()+(C.expires_in??21600)*1e3,baseUrl:b,scopes:C.scope}),n()},onOAuthLogout:async()=>{await e({providerId:m,accessToken:``})},onSilentRenew:async()=>{let t=O();if(!t?.refreshToken)return null;let n=await D(t.refreshToken);return n?.access_token?(await e({providerId:m,accessToken:n.access_token,refreshToken:n.refresh_token??t.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??21600)*1e3,scopes:n.scope??t.scopes}),n.access_token):null}};function F(){r({api:S,stream:M,streamSimple:N})}export{f as XaiErrorCode,p as XaiOAuthError,P as config,F as register};
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>slicc</title>
7
7
  <link rel="icon" type="image/png" href="/logos/sliccy-color-1scoops-32x32.png" />
8
- <script type="module" crossorigin src="/assets/main-CfZo7HyV.js"></script>
8
+ <script type="module" crossorigin src="/assets/main-BK-7ArIz.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-Dd_uD5pT.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-P2Xu9kJm.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-Czpn1I53.js">
@@ -30,10 +30,10 @@
30
30
  <link rel="modulepreload" crossorigin href="/assets/secrets-bridge-client-CHZomqvU.js">
31
31
  <link rel="modulepreload" crossorigin href="/assets/image-markers-CxJ9ZBgw.js">
32
32
  <link rel="modulepreload" crossorigin href="/assets/tool-ui-DfXu6quJ.js">
33
- <link rel="modulepreload" crossorigin href="/assets/providers-B3XsxeEV.js">
33
+ <link rel="modulepreload" crossorigin href="/assets/providers-B3OPYf2o.js">
34
34
  <link rel="modulepreload" crossorigin href="/assets/panel-rpc-B3MSVImO.js">
35
35
  <link rel="modulepreload" crossorigin href="/assets/bedrock-camp-compat-CgBMwna8.js">
36
- <link rel="modulepreload" crossorigin href="/assets/account-store-C3hpxUnj.js">
36
+ <link rel="modulepreload" crossorigin href="/assets/account-store-Bg1KKHOx.js">
37
37
  <link rel="modulepreload" crossorigin href="/assets/runtime-env-CgsZ7LTp.js">
38
38
  <link rel="modulepreload" crossorigin href="/assets/telemetry-BVzuNdvW.js">
39
39
  <link rel="modulepreload" crossorigin href="/assets/messages-BD4p8GuF.js">
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>slicc</title>
7
7
  <link rel="icon" type="image/png" href="/logos/sliccy-color-1scoops-32x32.png" />
8
- <script type="module" crossorigin src="/assets/main-CfZo7HyV.js"></script>
8
+ <script type="module" crossorigin src="/assets/main-BK-7ArIz.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-Dd_uD5pT.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-P2Xu9kJm.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-Czpn1I53.js">
@@ -30,10 +30,10 @@
30
30
  <link rel="modulepreload" crossorigin href="/assets/secrets-bridge-client-CHZomqvU.js">
31
31
  <link rel="modulepreload" crossorigin href="/assets/image-markers-CxJ9ZBgw.js">
32
32
  <link rel="modulepreload" crossorigin href="/assets/tool-ui-DfXu6quJ.js">
33
- <link rel="modulepreload" crossorigin href="/assets/providers-B3XsxeEV.js">
33
+ <link rel="modulepreload" crossorigin href="/assets/providers-B3OPYf2o.js">
34
34
  <link rel="modulepreload" crossorigin href="/assets/panel-rpc-B3MSVImO.js">
35
35
  <link rel="modulepreload" crossorigin href="/assets/bedrock-camp-compat-CgBMwna8.js">
36
- <link rel="modulepreload" crossorigin href="/assets/account-store-C3hpxUnj.js">
36
+ <link rel="modulepreload" crossorigin href="/assets/account-store-Bg1KKHOx.js">
37
37
  <link rel="modulepreload" crossorigin href="/assets/runtime-env-CgsZ7LTp.js">
38
38
  <link rel="modulepreload" crossorigin href="/assets/telemetry-BVzuNdvW.js">
39
39
  <link rel="modulepreload" crossorigin href="/assets/messages-BD4p8GuF.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sliccy",
3
- "version": "6.110.0",
3
+ "version": "6.110.2",
4
4
  "description": "Browser-based coding agent with thin CLI server",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -104,7 +104,7 @@
104
104
  "verify": "bash packages/dev-tools/tools/pre-push-lint-gate.sh"
105
105
  },
106
106
  "dependencies": {
107
- "e2b": "2.44.1",
107
+ "e2b": "2.45.0",
108
108
  "express": "5.2.1",
109
109
  "pyodide": "314.0.5",
110
110
  "werift": "0.24.4",
@@ -1 +0,0 @@
1
- import{t as e}from"./logger-LESFN7Hj.js";function t(e){let t=e;if(t.__sliccWsRouter)return;let n=new Map;function r(e){if(e!==void 0)try{return new RegExp(e)}catch{return null}}function i(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function a(e,t){for(let n of Object.keys(t)){let r=t[n],o=e[n];if(i(r)){if(!i(o)||!a(o,r))return!1;continue}if(!Object.is(o,r))return!1}return!0}function o(e,t){if(t===`text`)return e;try{return JSON.parse(e)}catch{return}}function s(e,t){if(!t||t.length===0||!i(e))return e;let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function c(e,n){let r=t.__sliccWsRouterReport;if(typeof r==`function`)try{r(JSON.stringify({subId:e,payload:n}))}catch{}}function l(e,t){if(n.size!==0)for(let r of n.values()){if(r.urlMatch!==void 0){let t=r._urlMatchRe;if(t===null||t&&!t.test(e))continue}let n=o(t,r.filter?.parseAs);n!==void 0&&(r.filter?.where&&Object.keys(r.filter.where).length>0&&(!i(n)||!a(n,r.filter.where))||c(r.id,s(n,r.filter?.project)))}}let u=new WeakSet;function d(e){u.has(e)||(u.add(e),e.addEventListener(`message`,t=>{if(typeof t.data==`string`)try{l(e.url,t.data)}catch{}}))}let f=e.WebSocket;if(!f)return;let p=f.prototype.send;f.prototype.send=function(e){d(this),p.call(this,e)},Object.defineProperty(t,"__sliccWsRouter",{value:{register(e){n.set(e.id,{...e,_urlMatchRe:r(e.urlMatch)})},update(e,t){let i=n.get(e);if(!i)return;let a={...i,id:e};Object.prototype.hasOwnProperty.call(t,`urlMatch`)&&(t.urlMatch===null?(delete a.urlMatch,a._urlMatchRe=void 0):typeof t.urlMatch==`string`&&(a.urlMatch=t.urlMatch,a._urlMatchRe=r(t.urlMatch))),Object.prototype.hasOwnProperty.call(t,`filter`)&&(t.filter===null?delete a.filter:t.filter!==void 0&&(a.filter=t.filter)),n.set(e,a)},unregister(e){n.delete(e)},_dispatch:l},configurable:!1})}const n=`(${t.toString()})(globalThis);`,r=e(`cdp-ws-page-bridge`),i=`__sliccWsRouterReport`;var a=class{browser;installs=new Map;frameHandler=null;bindingListenerAttached=!1;onBindingCalled=e=>{if(e.name!==i)return;let t=e.payload;if(typeof t!=`string`)return;let n;try{n=JSON.parse(t)}catch{return}if(typeof n!=`object`||!n)return;let a=n,o=a.subId;if(typeof o!=`string`)return;let s=a.payload;try{this.frameHandler?.(o,s)}catch(e){r.warn(`frame handler threw`,{subId:o,error:e instanceof Error?e.message:String(e)})}};constructor(e){this.browser=e.browser}async installRouter(e){if(this.installs.has(e))return;this.ensureBindingListener();let t=await this.browser.withTab(e,async()=>{await this.browser.sendCDP(`Runtime.enable`),await this.browser.sendCDP(`Runtime.addBinding`,{name:i});let e=await this.browser.sendCDP(`Page.addScriptToEvaluateOnNewDocument`,{source:n});return await this.browser.sendCDP(`Runtime.evaluate`,{expression:n,returnByValue:!0}),e}),r=typeof t.identifier==`string`?t.identifier:null;this.installs.set(e,{scriptIdentifier:r})}async registerSelector(e,t,n,r){await this.evalRouterCall(e,`register`,{id:t,...n===void 0?{}:{urlMatch:n},...r===void 0?{}:{filter:r}})}async updateSelector(e,t,n,r){await this.browser.withTab(e,async()=>{let e={};n===null?e.urlMatch=null:n!==void 0&&(e.urlMatch=n),r===null?e.filter=null:r!==void 0&&(e.filter=r);let i=`window.__sliccWsRouter && window.__sliccWsRouter.update(${JSON.stringify(t)}, ${JSON.stringify(e)})`;await this.browser.sendCDP(`Runtime.evaluate`,{expression:i,returnByValue:!0})})}async unregisterSelector(e,t){await this.browser.withTab(e,async()=>{let e=`window.__sliccWsRouter && window.__sliccWsRouter.unregister(${JSON.stringify(t)})`;await this.browser.sendCDP(`Runtime.evaluate`,{expression:e,returnByValue:!0})})}onMatchedFrame(e){return this.frameHandler=e,()=>{this.frameHandler===e&&(this.frameHandler=null)}}dispose(){this.bindingListenerAttached&&=(this.browser.getTransport().off(`Runtime.bindingCalled`,this.onBindingCalled),!1),this.installs.clear(),this.frameHandler=null}ensureBindingListener(){this.bindingListenerAttached||=(this.browser.getTransport().on(`Runtime.bindingCalled`,this.onBindingCalled),!0)}async evalRouterCall(e,t,n){await this.browser.withTab(e,async()=>{let e=`window.__sliccWsRouter && window.__sliccWsRouter.${t}(${JSON.stringify(n)})`;await this.browser.sendCDP(`Runtime.evaluate`,{expression:e,returnByValue:!0})})}};export{a as CdpWsPageBridge};
@@ -1,2 +0,0 @@
1
- import{C as e,D as t,E as n,O as r,S as i,T as a,_ as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as m,k as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,u as C,w,x as T}from"./dist-DhiPJE96.js";function E(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 D(e,t){if(e instanceof a)return e;let n=e instanceof DOMException?w[E(e)]:w.EIO,r=new a(n,e.message);return r.stack=e.stack,Error.captureStackTrace?.(r,D),r.cause=e.cause,r}function O(e){return typeof e==`object`&&!!e&&e.constructor.name==`SharedArrayBuffer`}function k(e){return e instanceof ArrayBuffer?e.resizable:O(e)?e.growable:!1}function A(e,t){return e.kind==t}var j=class extends x(m){async _loadHandles(e,t){for await(let[n,r]of t.entries()){let t=_(e,n);this._handles.set(t,r),A(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}let t=1;for(let[e,r]of this._handles){if(A(r,`file`)){let{lastModified:n,size:i}=await r.getFile();this.index.set(e,new C({ino:t,data:t+1,nlink:1,mode:420|o,size:i,mtimeMs:n})),t+=2;continue}if(!A(r,`directory`))throw n(`EIO`,`Invalid handle`);this.index.set(e,new C({ino:t,data:t+1,nlink:1,mode:511|p,size:0})),t+=2}}constructor(e,t=!1){super(2003133025,`webaccessfs`),this.root=e,this.disableHandleCache=t,this._handles=new Map,this._sync=s.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 C({ino:r,data:r+1,nlink:1});if(A(n,`file`)){let e=await n.getFile();i.update({mode:420|o,size:e.size,mtimeMs:e.lastModified})}else i.update({mode:p|511,size:0});return this.index.set(e,i),i}}async readdir(e){let t=await this.get(`directory`,e);return await Array.fromAsync(t.keys())}async createFile(e,t){let n=await super.createFile(e,t);try{let t=await(await this.get(`directory`,b(e))).getFileHandle(d(e),{create:!0});this.disableHandleCache||this._handles.set(e,t)}catch(t){this.index.delete(e),this._handles.delete(e),h(D(t,e))}return n}async remove(e){let t=await this.get(`directory`,b(e));for(let t of this._handles.keys())b(t)==e&&this._handles.delete(t);this._handles.delete(e),await t.removeEntry(d(e),{recursive:!0}).catch(t=>{let n=D(t,e);n.code!=`ENOENT`&&h(n)})}removeSync(){throw T(n(`ENOSYS`))}async read(e,t,r,i){if(i<=r)return;let a=await(await(await this.get(`file`,e)).getFile()).arrayBuffer();if(a.byteLength<i-r)throw c(n(`EIO`,[`Unexpected mismatch in file data size. This should not happen.`,`tried to read ${i-r} bytes but the file is ${a.byteLength} bytes.`,`path: ${e}`].join(`
2
- `+` `.repeat(24))));t.set(new Uint8Array(a,r,i-r))}async write(e,t,r){if(k(t.buffer)||O(t.buffer)){let e=new Uint8Array(new ArrayBuffer(t.byteLength),t.byteOffset,t.byteLength);e.set(t),t=e}let i=this.index.get(e);if(!i)throw n(`ENOENT`);let a=(i.mode&f)==p,o;try{o=await this.get(a?`directory`:`file`,e)}catch{o=await(await this.get(`directory`,b(e)))[a?`getDirectoryHandle`:`getFileHandle`](d(e),{create:!0}).catch(t=>h(D(t,e))),this.disableHandleCache||this._handles.set(e,o)}if(a)return;if(A(o,`directory`)){T(n(`EIO`,`Mismatch in entry kind on write`));return}let s=!r&&t.byteLength>=i.size,c=await o.createWritable({keepExistingData:!s});if(r)try{await c.seek(r)}catch{await c.write({type:`seek`,position:r})}await c.write(t),await c.close();let{size:l,lastModified:u}=await o.getFile();i.update({size:l,mtimeMs:u}),this.index.set(e,i)}async writeFile(e,t){return this.write(e,t,0)}async _mkdir(e){let t=await(await this.get(`directory`,b(e))).getDirectoryHandle(d(e),{create:!0}).catch(t=>h(D(t,e)));this.disableHandleCache||this._handles.set(e,t)}async get(e=null,t){let r=this._handles.get(t);if(!this.disableHandleCache&&r){if(e&&!A(r,e))throw n(e==`directory`?`ENOTDIR`:`EISDIR`);return r}if(t==`/`)return this.root;let i=t.slice(1).split(`/`),a=this.root;for(let e=0;e<i.length-1;++e)a=await a.getDirectoryHandle(i[e]).catch(e=>h(D(e,t)));try{let n=await a[e==`file`?`getFileHandle`:`getDirectoryHandle`](i.at(-1));return this.disableHandleCache||this._handles.set(t,n),n}catch(r){if(r.name!=`TypeMismatchError`)throw D(r,t);if(e===null){let e=await a.getFileHandle(i.at(-1)).catch(e=>h(D(e,t)));return this.disableHandleCache||this._handles.set(t,e),e}throw n(e==`file`?`EISDIR`:`ENOTDIR`)}}},M={name:`WebAccess`,options:{handle:{type:`object`,required:!0},metadata:{type:`string`,required:!1},disableHandleCache:{type:`boolean`,required:!1}},async create(e){let t=new j(e.handle,e.disableHandleCache);return await t._loadMetadata(e.metadata),t}};function N(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=t=>{t.preventDefault(),n(D(e.error))}})}var P=class extends l{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 N(this._idb.getAllKeys())).map(Number)}async get(e){let t=await N(this._idb.get(e));return t&&this.store.cache.set(e,new Uint8Array(t)),t}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 N(this._idb.put(t,e))}setSync(e,t){this.async(this.set(e,t))}remove(e){return this.store.cache.delete(e),N(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(D(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(D(this.tx.error)),this.tx.abort(),e}};async function F(t,n=globalThis.indexedDB){let r=n.open(t);return r.onupgradeneeded=()=>{let n=r.result;n.objectStoreNames.contains(t)&&(e(`Found unexpected object store: `+t),n.deleteObjectStore(t)),n.createObjectStore(t)},await N(r)}var I=class{constructor(e){this.db=e,this.cache=new Map}sync(){return Promise.resolve()}get name(){return this.db.name}transaction(){return new P(this.db.transaction(this.name,`readwrite`),this)}},L=new WeakMap;async function R(e){if(!(e instanceof IDBFactory))return!1;try{return(await N(e.open(`__zenfs_test`))).close(),!0}catch{return!1}finally{e?.deleteDatabase(`__zenfs_test`)}}var z={name:`IndexedDB`,options:{storeName:{type:`string`,required:!1},idbFactory:{type:`object`,required:!1}},async isAvailable({idbFactory:e=globalThis.indexedDB}){if(L.has(e))return L.get(e);let t=R(e);return L.set(e,t),t},async create(e){let t=new I(await F(e.storeName||`zenfs`,e.idbFactory)),n=new S(t);if(e?.disableAsyncCache)return i(`Async preloading disabled for IndexedDB`),n;let r=t.transaction();for(let e of await r.keys())await r.get(e);return n}},B=class{get name(){return V.name}constructor(e){this.storage=e}clear(){this.storage.clear()}clearSync(){this.storage.clear()}async sync(){}transaction(){return new y(this)}keys(){return Object.keys(this.storage).map(e=>Number(e))}get(e){let t=this.storage.getItem(e.toString());if(typeof t==`string`)return r(t)}set(e,r){try{this.storage.setItem(e.toString(),t(r))}catch{throw n(`ENOSPC`)}}delete(e){try{this.storage.removeItem(e.toString())}catch(t){throw n(`EIO`,`Unable to delete '${e}': ${t}`)}}},V={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 S(new B(e))}};function H(e){let t={};for(let n of u){let r=e.getAttribute(n);r!=null&&(t[n]=parseInt(r,16))}return new C(t)}function U(e,t){for(let n of Object.keys(t))!(n in u)||t[n]===void 0||e.setAttribute(n,t[n].toString(16))}function W(e,t=!1){let n;try{let r=t?e.textContent:e.getAttribute(`paths`);n=JSON.parse(r||`[]`)}catch{n=[]}return n}var G=class extends v(g){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 H(this.get(`stat`,e))}createFileSync(e,t){let n=this.statSync(b(e)),r=new C({mode:t.mode|o,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(H(t).mode&16384)throw n(`EISDIR`);this.remove(`unlink`,t,e)}rmdirSync(e){let t=this.get(`rmdir`,e);if(t.textContent?.length)throw n(`ENOTEMPTY`);if(!(H(t).mode&16384))throw n(`ENOTDIR`);this.remove(`rmdir`,t,e)}mkdirSync(e,t){let n=this.statSync(b(e)),r=new C({mode:t.mode|p,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(!(H(t).mode&16384))throw n(`ENOTDIR`);try{return JSON.parse(t.textContent)}catch(e){throw n(`EIO`,`Invalid directory listing: `+e)}}linkSync(e,t){let n=this.get(`link`,e);this.add(`link`,n,t)}touchSync(e,t){U(this.get(`touch`,e),t)}syncSync(){}readSync(e,t,n,i){let a=this.get(`read`,e),o=r(a.textContent.slice(n,i));t.set(o)}writeSync(e,n,r){let i=this.get(`write`,e),a=t(n),o=i.textContent.slice(r+a.length);i.textContent=i.textContent.slice(0,r)+a+o}toString(){return new XMLSerializer().serializeToString(this.root)}get(e,t){let r=this.root.children;if(!r)throw n(`EIO`);for(let e=0;e<r.length;e++)if(W(r[e]).includes(t))return r[e];throw n(`ENOENT`)}create(e,t,r){if(this.existsSync(t))throw n(`EEXIST`);let i=document.createElement(`file`);return this.add(e,i,t),U(i,new C({...r,uid:r.mode})),this.root.append(i),i}add(e,t,n,r=!1){let i=W(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,b(n));this.add(e,t,d(n),!0)}}remove(e,t,n,r=!1){let i=W(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,b(n));this.remove(e,t,d(n),!0)}}}},K={name:`XML`,options:{root:{type:`object`,required:!1}},isAvailable(){return!0},create(e){return new G(e.root)}};export{z as IndexedDB,I as IndexedDBStore,P as IndexedDBTransaction,M as WebAccess,j as WebAccessFS,V as WebStorage,B as WebStorageStore,K as XML,G as XMLFS};
@@ -1,2 +0,0 @@
1
- import{C as e,D as t,E as n,O as r,S as i,T as a,_ as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as m,k as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,u as C,w,x as T}from"./dist-CIyvNQb4.js";function E(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 D(e,t){if(e instanceof a)return e;let n=e instanceof DOMException?w[E(e)]:w.EIO,r=new a(n,e.message);return r.stack=e.stack,Error.captureStackTrace?.(r,D),r.cause=e.cause,r}function O(e){return typeof e==`object`&&!!e&&e.constructor.name==`SharedArrayBuffer`}function k(e){return e instanceof ArrayBuffer?e.resizable:O(e)?e.growable:!1}function A(e,t){return e.kind==t}var j=class extends x(m){async _loadHandles(e,t){for await(let[n,r]of t.entries()){let t=_(e,n);this._handles.set(t,r),A(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}let t=1;for(let[e,r]of this._handles){if(A(r,`file`)){let{lastModified:n,size:i}=await r.getFile();this.index.set(e,new C({ino:t,data:t+1,nlink:1,mode:420|o,size:i,mtimeMs:n})),t+=2;continue}if(!A(r,`directory`))throw n(`EIO`,`Invalid handle`);this.index.set(e,new C({ino:t,data:t+1,nlink:1,mode:511|p,size:0})),t+=2}}constructor(e,t=!1){super(2003133025,`webaccessfs`),this.root=e,this.disableHandleCache=t,this._handles=new Map,this._sync=s.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 C({ino:r,data:r+1,nlink:1});if(A(n,`file`)){let e=await n.getFile();i.update({mode:420|o,size:e.size,mtimeMs:e.lastModified})}else i.update({mode:p|511,size:0});return this.index.set(e,i),i}}async readdir(e){let t=await this.get(`directory`,e);return await Array.fromAsync(t.keys())}async createFile(e,t){let n=await super.createFile(e,t);try{let t=await(await this.get(`directory`,b(e))).getFileHandle(d(e),{create:!0});this.disableHandleCache||this._handles.set(e,t)}catch(t){this.index.delete(e),this._handles.delete(e),h(D(t,e))}return n}async remove(e){let t=await this.get(`directory`,b(e));for(let t of this._handles.keys())b(t)==e&&this._handles.delete(t);this._handles.delete(e),await t.removeEntry(d(e),{recursive:!0}).catch(t=>{let n=D(t,e);n.code!=`ENOENT`&&h(n)})}removeSync(){throw T(n(`ENOSYS`))}async read(e,t,r,i){if(i<=r)return;let a=await(await(await this.get(`file`,e)).getFile()).arrayBuffer();if(a.byteLength<i-r)throw c(n(`EIO`,[`Unexpected mismatch in file data size. This should not happen.`,`tried to read ${i-r} bytes but the file is ${a.byteLength} bytes.`,`path: ${e}`].join(`
2
- `+` `.repeat(24))));t.set(new Uint8Array(a,r,i-r))}async write(e,t,r){if(k(t.buffer)||O(t.buffer)){let e=new Uint8Array(new ArrayBuffer(t.byteLength),t.byteOffset,t.byteLength);e.set(t),t=e}let i=this.index.get(e);if(!i)throw n(`ENOENT`);let a=(i.mode&f)==p,o;try{o=await this.get(a?`directory`:`file`,e)}catch{o=await(await this.get(`directory`,b(e)))[a?`getDirectoryHandle`:`getFileHandle`](d(e),{create:!0}).catch(t=>h(D(t,e))),this.disableHandleCache||this._handles.set(e,o)}if(a)return;if(A(o,`directory`)){T(n(`EIO`,`Mismatch in entry kind on write`));return}let s=!r&&t.byteLength>=i.size,c=await o.createWritable({keepExistingData:!s});if(r)try{await c.seek(r)}catch{await c.write({type:`seek`,position:r})}await c.write(t),await c.close();let{size:l,lastModified:u}=await o.getFile();i.update({size:l,mtimeMs:u}),this.index.set(e,i)}async writeFile(e,t){return this.write(e,t,0)}async _mkdir(e){let t=await(await this.get(`directory`,b(e))).getDirectoryHandle(d(e),{create:!0}).catch(t=>h(D(t,e)));this.disableHandleCache||this._handles.set(e,t)}async get(e=null,t){let r=this._handles.get(t);if(!this.disableHandleCache&&r){if(e&&!A(r,e))throw n(e==`directory`?`ENOTDIR`:`EISDIR`);return r}if(t==`/`)return this.root;let i=t.slice(1).split(`/`),a=this.root;for(let e=0;e<i.length-1;++e)a=await a.getDirectoryHandle(i[e]).catch(e=>h(D(e,t)));try{let n=await a[e==`file`?`getFileHandle`:`getDirectoryHandle`](i.at(-1));return this.disableHandleCache||this._handles.set(t,n),n}catch(r){if(r.name!=`TypeMismatchError`)throw D(r,t);if(e===null){let e=await a.getFileHandle(i.at(-1)).catch(e=>h(D(e,t)));return this.disableHandleCache||this._handles.set(t,e),e}throw n(e==`file`?`EISDIR`:`ENOTDIR`)}}};const M={name:`WebAccess`,options:{handle:{type:`object`,required:!0},metadata:{type:`string`,required:!1},disableHandleCache:{type:`boolean`,required:!1}},async create(e){let t=new j(e.handle,e.disableHandleCache);return await t._loadMetadata(e.metadata),t}};function N(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=t=>{t.preventDefault(),n(D(e.error))}})}var P=class extends l{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 N(this._idb.getAllKeys())).map(Number)}async get(e){let t=await N(this._idb.get(e));return t&&this.store.cache.set(e,new Uint8Array(t)),t}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 N(this._idb.put(t,e))}setSync(e,t){this.async(this.set(e,t))}remove(e){return this.store.cache.delete(e),N(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(D(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(D(this.tx.error)),this.tx.abort(),e}};async function F(t,n=globalThis.indexedDB){let r=n.open(t);return r.onupgradeneeded=()=>{let n=r.result;n.objectStoreNames.contains(t)&&(e(`Found unexpected object store: `+t),n.deleteObjectStore(t)),n.createObjectStore(t)},await N(r)}var I=class{constructor(e){this.db=e,this.cache=new Map}sync(){return Promise.resolve()}get name(){return this.db.name}transaction(){return new P(this.db.transaction(this.name,`readwrite`),this)}};const L=new WeakMap;async function R(e){if(!(e instanceof IDBFactory))return!1;try{return(await N(e.open(`__zenfs_test`))).close(),!0}catch{return!1}finally{e?.deleteDatabase(`__zenfs_test`)}}const z={name:`IndexedDB`,options:{storeName:{type:`string`,required:!1},idbFactory:{type:`object`,required:!1}},async isAvailable({idbFactory:e=globalThis.indexedDB}){if(L.has(e))return L.get(e);let t=R(e);return L.set(e,t),t},async create(e){let t=new I(await F(e.storeName||`zenfs`,e.idbFactory)),n=new S(t);if(e?.disableAsyncCache)return i(`Async preloading disabled for IndexedDB`),n;let r=t.transaction();for(let e of await r.keys())await r.get(e);return n}};var B=class{get name(){return V.name}constructor(e){this.storage=e}clear(){this.storage.clear()}clearSync(){this.storage.clear()}async sync(){}transaction(){return new y(this)}keys(){return Object.keys(this.storage).map(e=>Number(e))}get(e){let t=this.storage.getItem(e.toString());if(typeof t==`string`)return r(t)}set(e,r){try{this.storage.setItem(e.toString(),t(r))}catch{throw n(`ENOSPC`)}}delete(e){try{this.storage.removeItem(e.toString())}catch(t){throw n(`EIO`,`Unable to delete '${e}': ${t}`)}}};const V={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 S(new B(e))}};function H(e){let t={};for(let n of u){let r=e.getAttribute(n);r!=null&&(t[n]=parseInt(r,16))}return new C(t)}function U(e,t){for(let n of Object.keys(t))!(n in u)||t[n]===void 0||e.setAttribute(n,t[n].toString(16))}function W(e,t=!1){let n;try{let r=t?e.textContent:e.getAttribute(`paths`);n=JSON.parse(r||`[]`)}catch{n=[]}return n}var G=class extends v(g){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 H(this.get(`stat`,e))}createFileSync(e,t){let n=this.statSync(b(e)),r=new C({mode:t.mode|o,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(H(t).mode&16384)throw n(`EISDIR`);this.remove(`unlink`,t,e)}rmdirSync(e){let t=this.get(`rmdir`,e);if(t.textContent?.length)throw n(`ENOTEMPTY`);if(!(H(t).mode&16384))throw n(`ENOTDIR`);this.remove(`rmdir`,t,e)}mkdirSync(e,t){let n=this.statSync(b(e)),r=new C({mode:t.mode|p,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(!(H(t).mode&16384))throw n(`ENOTDIR`);try{return JSON.parse(t.textContent)}catch(e){throw n(`EIO`,`Invalid directory listing: `+e)}}linkSync(e,t){let n=this.get(`link`,e);this.add(`link`,n,t)}touchSync(e,t){U(this.get(`touch`,e),t)}syncSync(){}readSync(e,t,n,i){let a=this.get(`read`,e),o=r(a.textContent.slice(n,i));t.set(o)}writeSync(e,n,r){let i=this.get(`write`,e),a=t(n),o=i.textContent.slice(r+a.length);i.textContent=i.textContent.slice(0,r)+a+o}toString(){return new XMLSerializer().serializeToString(this.root)}get(e,t){let r=this.root.children;if(!r)throw n(`EIO`);for(let e=0;e<r.length;e++)if(W(r[e]).includes(t))return r[e];throw n(`ENOENT`)}create(e,t,r){if(this.existsSync(t))throw n(`EEXIST`);let i=document.createElement(`file`);return this.add(e,i,t),U(i,new C({...r,uid:r.mode})),this.root.append(i),i}add(e,t,n,r=!1){let i=W(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,b(n));this.add(e,t,d(n),!0)}}remove(e,t,n,r=!1){let i=W(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,b(n));this.remove(e,t,d(n),!0)}}}};const K={name:`XML`,options:{root:{type:`object`,required:!1}},isAvailable(){return!0},create(e){return new G(e.root)}};export{z as IndexedDB,I as IndexedDBStore,P as IndexedDBTransaction,M as WebAccess,j as WebAccessFS,V as WebStorage,B as WebStorageStore,K as XML,G as XMLFS};
@@ -1 +0,0 @@
1
- import{t as e}from"./provider-CMYr90tG.js";export{e as readMcpAuthEntries};
@@ -1 +0,0 @@
1
- import{t as e}from"./store--DLIZTf_.js";export{e as readMcpAuthEntries};
@@ -1 +0,0 @@
1
- import{a as e,r as t}from"./fs-D9DlVz0g.js";export{t as repairOpfsMetadataSidecar,e as resolveWithSidecarRepair};
@@ -1 +0,0 @@
1
- function e(){return{version:`6.110.0`,releasedAt:`2026-08-29T07:24:07Z`,buildId:`6.110.0-mte21er3`}}let t=null;function n(e){t=e}function r(){return t}export{e as n,n as r,r as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./wc-onboarding-BUmFCg_U.js";export{e as hasOnboardingFinalLickInHistory};