sliccy 3.26.0 → 3.28.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.
Files changed (133) hide show
  1. package/dist/node-server/_cloud_core/src/cone-config/index.d.ts +77 -0
  2. package/dist/node-server/_cloud_core/src/cone-config/index.d.ts.map +1 -0
  3. package/dist/node-server/_cloud_core/src/cone-config/index.js +209 -0
  4. package/dist/node-server/_cloud_core/src/index.d.ts +1 -0
  5. package/dist/node-server/_cloud_core/src/index.d.ts.map +1 -1
  6. package/dist/node-server/_cloud_core/src/index.js +6 -0
  7. package/dist/node-server/_cloud_core/src/operations/resume.d.ts +13 -0
  8. package/dist/node-server/_cloud_core/src/operations/resume.d.ts.map +1 -1
  9. package/dist/node-server/_cloud_core/src/operations/resume.js +117 -3
  10. package/dist/node-server/_cloud_core/src/operations/start.d.ts +3 -0
  11. package/dist/node-server/_cloud_core/src/operations/start.d.ts.map +1 -1
  12. package/dist/node-server/_cloud_core/src/operations/start.js +8 -0
  13. package/dist/node-server/_cloud_core/src/types.d.ts +7 -0
  14. package/dist/node-server/_cloud_core/src/types.d.ts.map +1 -1
  15. package/dist/node-server/_cloud_core/tests/cone-config/cone-config.test.d.ts +2 -0
  16. package/dist/node-server/_cloud_core/tests/cone-config/cone-config.test.d.ts.map +1 -0
  17. package/dist/node-server/_cloud_core/tests/cone-config/cone-config.test.js +119 -0
  18. package/dist/node-server/_cloud_core/tests/resume-cone-config.test.d.ts +2 -0
  19. package/dist/node-server/_cloud_core/tests/resume-cone-config.test.d.ts.map +1 -0
  20. package/dist/node-server/_cloud_core/tests/resume-cone-config.test.js +57 -0
  21. package/dist/node-server/_cloud_core/tests/start-cone-config.test.d.ts +2 -0
  22. package/dist/node-server/_cloud_core/tests/start-cone-config.test.d.ts.map +1 -0
  23. package/dist/node-server/_cloud_core/tests/start-cone-config.test.js +65 -0
  24. package/dist/node-server/hosted-bootstrap.d.ts +9 -13
  25. package/dist/node-server/hosted-bootstrap.js +51 -8
  26. package/dist/node-server/index.js +2 -0
  27. package/dist/node-server/secrets-reload-endpoint.d.ts +7 -0
  28. package/dist/node-server/secrets-reload-endpoint.js +7 -0
  29. package/dist/ui/assets/{adobe-CqrEgLNi.js → adobe-BsI2QHM-.js} +1 -1
  30. package/dist/ui/assets/adobe-CMOt6RBV.js +2 -0
  31. package/dist/ui/assets/{agent-bridge-DLoHpCQV.js → agent-bridge-hW415QAE.js} +1 -1
  32. package/dist/ui/assets/{agent-message-to-chat-DAB_RuwN.js → agent-message-to-chat-DxvgRMh2.js} +1 -1
  33. package/dist/ui/assets/{anthropic-M0Z3vEYG.js → anthropic-6xJJ2YZO.js} +1 -1
  34. package/dist/ui/assets/{anthropic-BlLRyvML.js → anthropic-BC6K6cdY.js} +2 -2
  35. package/dist/ui/assets/{apps-BEDw2CRe.js → apps-Dr9FIzjl.js} +1 -1
  36. package/dist/ui/assets/azure-openai-BMUF5f0d.js +1 -0
  37. package/dist/ui/assets/{azure-openai-k9R7HvYf.js → azure-openai-BaAPMfG9.js} +1 -1
  38. package/dist/ui/assets/{azure-openai-responses-DDHZ47hL.js → azure-openai-responses-CG2x6ghy.js} +1 -1
  39. package/dist/ui/assets/azure-openai-responses-DJv1qDQU.js +1 -0
  40. package/dist/ui/assets/{biome_wasm-CTxVnl7G.js → biome_wasm-BzCoRiez.js} +1 -1
  41. package/dist/ui/assets/{bsh-watchdog-CkHKF91q.js → bsh-watchdog-BhyyrsLG.js} +1 -1
  42. package/dist/ui/assets/{cdp-BwSaINyX.js → cdp-CVhzXRUr.js} +4 -4
  43. package/dist/ui/assets/{cdp-ws-page-bridge-BZg_arql.js → cdp-ws-page-bridge-DIQyPbnc.js} +1 -1
  44. package/dist/ui/assets/cloud-DhBwfVPK.js +1 -0
  45. package/dist/ui/assets/cloud-DwpQLDy4.css +1 -0
  46. package/dist/ui/assets/{common-BXJu90Rc.js → common-CuKB31Bx.js} +1 -1
  47. package/dist/ui/assets/connect-surface-CCGvblVO.js +103 -0
  48. package/dist/ui/assets/cost-command-7TPmiftF.js +1 -0
  49. package/dist/ui/assets/{es-48UZpaVV.js → es-Cv6f-0s7.js} +1 -1
  50. package/dist/ui/assets/{follower-sprinkle-bridge-jm6CXbz1.js → follower-sprinkle-bridge-DEAKinMn.js} +1 -1
  51. package/dist/ui/assets/github-8u3THsb9.js +1 -0
  52. package/dist/ui/assets/github-IUCTxlu3.js +2 -0
  53. package/dist/ui/assets/github-copilot-BpjWdMXh.js +2 -0
  54. package/dist/ui/assets/{github-copilot-C2tBzQ4u.js → github-copilot-DgFjN6KZ.js} +1 -1
  55. package/dist/ui/assets/google-CE3pVXMY.js +1 -0
  56. package/dist/ui/assets/{google-BZiIgeFw.js → google-fooyUc87.js} +1 -1
  57. package/dist/ui/assets/{google-shared-BcE4P_yG.js → google-shared-C_9EKNrW.js} +1 -1
  58. package/dist/ui/assets/{google-shared--uY0bz2s.js → google-shared-CvX1HGJK.js} +1 -1
  59. package/dist/ui/assets/{google-vertex-D9lRdxr2.js → google-vertex-FAi9wG7t.js} +1 -1
  60. package/dist/ui/assets/{google-vertex-CwZ7zLwx.js → google-vertex-Wf1pkd9h.js} +1 -1
  61. package/dist/ui/assets/hosted-config-apply-BuSIcpqX.js +1 -0
  62. package/dist/ui/assets/{intercepted-oauth-D2d-qzF2.js → intercepted-oauth-onIAQjXH.js} +1 -1
  63. package/dist/ui/assets/{kernel-worker-qa_GIQ_O.js → kernel-worker-DrqmmlLF.js} +1185 -1062
  64. package/dist/ui/assets/{lick-ws-bridge-lwDDVM1H.js → lick-ws-bridge-DEwdAGsC.js} +1 -1
  65. package/dist/ui/assets/{local-llm-s5TSv3VA.js → local-llm-Q03t5xci.js} +2 -2
  66. package/dist/ui/assets/{magick-wasm-Dg17fb8P.js → magick-wasm-BA_z-_am.js} +1 -1
  67. package/dist/ui/assets/{main-pholQCCK.js → main-BlxLnse7.js} +188 -188
  68. package/dist/ui/assets/main-cherry-D44F4Vlh.js +1 -0
  69. package/dist/ui/assets/{mistral-8auDf7Jd.js → mistral-DEjW9qqh.js} +2 -2
  70. package/dist/ui/assets/{mistral-DWhJFHHy.js → mistral-yWGuKrq4.js} +1 -1
  71. package/dist/ui/assets/{nodejs-BMz0dS6L.js → nodejs-CfVKCb8p.js} +1 -1
  72. package/dist/ui/assets/{nuke-command-Ct7N3bt9.js → nuke-command-BHFb7iYV.js} +1 -1
  73. package/dist/ui/assets/{oauth-B_aSN2_9.js → oauth-DaANiDrq.js} +1 -1
  74. package/dist/ui/assets/oauth-bootstrap-DdTo_8kc.js +2 -0
  75. package/dist/ui/assets/{oauth-service-CSONhiAr.js → oauth-service-CGlrsCXI.js} +1 -1
  76. package/dist/ui/assets/{oauth-service-CWG5aTag.js → oauth-service-Ct9lZUcR.js} +1 -1
  77. package/dist/ui/assets/offscreen-client-DQeDUS4X.js +1 -0
  78. package/dist/ui/assets/{onboarding-orchestrator-sLJH00ba.js → onboarding-orchestrator-BN98n0DZ.js} +1 -1
  79. package/dist/ui/assets/{openai-codex-kcOw2Vdc.js → openai-codex-DCZS82Tv.js} +1 -1
  80. package/dist/ui/assets/openai-codex-H4Rpya6U.js +1 -0
  81. package/dist/ui/assets/{openai-codex-responses-OSkMGGNT.js → openai-codex-responses-BOKYXvIU.js} +5 -5
  82. package/dist/ui/assets/{openai-codex-responses-DUtA00zk.js → openai-codex-responses-D8oxdjNx.js} +1 -1
  83. package/dist/ui/assets/openai-completions-zAlP8W8O.js +5 -0
  84. package/dist/ui/assets/openai-responses-1AuAFhF4.js +1 -0
  85. package/dist/ui/assets/{openai-responses-D4FZMY-V.js → openai-responses-Bm1d6S7j.js} +1 -1
  86. package/dist/ui/assets/{openai-responses-shared-brUOwaY9.js → openai-responses-shared-CyGENinm.js} +1 -1
  87. package/dist/ui/assets/{openai-responses-shared-D1uRqOzX.js → openai-responses-shared-DtjQSz4-.js} +4 -4
  88. package/dist/ui/assets/{openrouter-yGOsBjDk.js → openrouter-BjNEb_vt.js} +1 -1
  89. package/dist/ui/assets/openrouter-Cy7d-Hse.js +1 -0
  90. package/dist/ui/assets/panel-rpc-handlers-BIBd7qwX.js +1 -0
  91. package/dist/ui/assets/{provider-B2-C4Uc0.js → provider-B4kcdYSm.js} +2 -2
  92. package/dist/ui/assets/{provider-B-Z77g0j.js → provider-D62HUJ72.js} +1 -1
  93. package/dist/ui/assets/provider-store-access-DUMZRNG6.js +1 -0
  94. package/dist/ui/assets/provider-store-access-XwHcqQAV.js +1 -0
  95. package/dist/ui/assets/{proxied-fetch-fouZMPr0.js → proxied-fetch-Ku3mKDDw.js} +1 -1
  96. package/dist/ui/assets/{pyodide-D0Y6NsDy.js → pyodide-BzzXGKXZ.js} +2 -2
  97. package/dist/ui/assets/{remote-terminal-view-B5-dZXNa.js → remote-terminal-view-Aip8SZl4.js} +1 -1
  98. package/dist/ui/assets/{secret-env-BTjJvpLw.js → secret-env-BXrNc3Yc.js} +1 -1
  99. package/dist/ui/assets/{slicc-editor-BjOPBIPG.js → slicc-editor-DxNnkMN4.js} +1 -1
  100. package/dist/ui/assets/{spawn-8eiTHKfU.js → spawn-NJPpLzuU.js} +1 -1
  101. package/dist/ui/assets/{sql-wasm-B1Tsjops.js → sql-wasm-BatnsmsR.js} +1 -1
  102. package/dist/ui/assets/{store-DRudQTL3.js → store-Cu-dZ-Qd.js} +1 -1
  103. package/dist/ui/assets/{tray-leave-runtime-Cs2vcG7Q.js → tray-leave-runtime-B3OyxolX.js} +1 -1
  104. package/dist/ui/assets/{typescript-CpCsC2U4.js → typescript-DAY1Zzuh.js} +1 -1
  105. package/dist/ui/assets/{upgrade-detection-B_PXlklw.js → upgrade-detection-BSSXcDy5.js} +1 -1
  106. package/dist/ui/assets/{web-oHZ28cEx.js → web-CJrS_pPN.js} +1 -1
  107. package/dist/ui/assets/{ws-subscribers-BKg2braa.js → ws-subscribers-B8hdAhNQ.js} +1 -1
  108. package/dist/ui/assets/{xai-grok-CrDfS2o4.js → xai-grok-CKHIBDys.js} +1 -1
  109. package/dist/ui/assets/{xai-grok-BIGY0Sih.js → xai-grok-Cil1zzx5.js} +1 -1
  110. package/dist/ui/electron-overlay-entry.js +3 -3
  111. package/dist/ui/index.html +1 -1
  112. package/dist/ui/packages/webapp/cloud/index.html +44 -6
  113. package/dist/ui/packages/webapp/index.html +1 -1
  114. package/package.json +5 -3
  115. package/dist/ui/assets/adobe-ccKB80po.js +0 -2
  116. package/dist/ui/assets/azure-openai-9hADAfm8.js +0 -1
  117. package/dist/ui/assets/azure-openai-responses-BylSyLnY.js +0 -1
  118. package/dist/ui/assets/cloud-CZM-12lk.js +0 -1
  119. package/dist/ui/assets/cloud-CyzxzXN0.css +0 -1
  120. package/dist/ui/assets/cost-command-BoMWdldA.js +0 -1
  121. package/dist/ui/assets/github-BJKlBN9d.js +0 -2
  122. package/dist/ui/assets/github-C4AFIIt2.js +0 -1
  123. package/dist/ui/assets/github-copilot-BgQsh-to.js +0 -2
  124. package/dist/ui/assets/google-CnX2AAb4.js +0 -1
  125. package/dist/ui/assets/oauth-bootstrap-g4iVUmBv.js +0 -2
  126. package/dist/ui/assets/offscreen-client-VoSRhHbL.js +0 -1
  127. package/dist/ui/assets/openai-codex-vn0_7U9V.js +0 -1
  128. package/dist/ui/assets/openai-completions-XCsW7xai.js +0 -5
  129. package/dist/ui/assets/openai-responses-DYkL5h7J.js +0 -1
  130. package/dist/ui/assets/openrouter-B3noN2UV.js +0 -1
  131. package/dist/ui/assets/panel-rpc-handlers-HU3Mwr0v.js +0 -1
  132. package/dist/ui/assets/provider-store-access-BSELjH0e.js +0 -1
  133. package/dist/ui/assets/provider-store-access-hpnqQa7b.js +0 -1
@@ -1 +1 @@
1
- import{OffscreenClient as e}from"./offscreen-client-VoSRhHbL.js";function t(e){let t=!1,n=()=>{t||(t=!0,typeof e.start==`function`&&e.start())};return{onMessage:t=>{let r=e=>{t(e.data)};return e.addEventListener(`message`,r),n(),()=>{e.removeEventListener(`message`,r)}},send:t=>{e.postMessage(t)}}}function n(e){let n=t(e);return{onMessage:e=>n.onMessage(e),send:e=>{n.send({source:`panel`,payload:e})}}}function r(e,n){let r=t(e),i=new Map,a=r.onMessage(async e=>{let t=e;if(t?.type){if(t.type===`cdp-cmd`){let t=e;try{let e=await n.send(t.method,t.params,t.sessionId);r.send({type:`cdp-response`,id:t.id,result:e})}catch(e){r.send({type:`cdp-response`,id:t.id,error:e instanceof Error?e.message:String(e)})}return}if(t.type===`cdp-subscribe`){let t=e;if(i.has(t.event))return;let a=e=>{r.send({type:`cdp-event`,method:t.event,params:e})};i.set(t.event,a),n.on(t.event,a);return}if(t.type===`cdp-unsubscribe`){let t=e,r=i.get(t.event);if(!r)return;i.delete(t.event),n.off(t.event,r);return}}});return()=>{a();for(let[e,t]of i)n.off(e,t);i.clear()}}function i(){let e={};if(typeof localStorage>`u`)return e;for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);if(n===null)continue;let r=localStorage.getItem(n);r!==null&&(e[n]=r)}return e}function a(t){let{worker:i,realCdpTransport:a,callbacks:o}=t,s=t.readyTimeoutMs??3e4,c=t.localStorageSeed??{},l=new MessageChannel,u=new MessageChannel,d=new e(o,n(l.port1)),f=r(u.port1,a),p=null,m=new Promise((e,t)=>{let n=null,r=null;p=()=>{r!==null&&(l.port1.removeEventListener(`message`,r),r=null),n!==null&&(clearTimeout(n),n=null)},r=t=>{t.data?.type===`kernel-worker-ready`&&(p?.(),e())},l.port1.addEventListener(`message`,r),n=setTimeout(()=>{p?.(),t(Error(`Kernel worker did not signal ready within ${s}ms`))},s)}),h={type:`kernel-worker-init`,kernelPort:l.port2,cdpPort:u.port2,localStorageSeed:c,instanceId:t.instanceId};i.postMessage(h,[l.port2,u.port2]);let g=!1;return{client:d,ready:m,dispose(){if(!g){g=!0,p?.(),f();try{i.postMessage({type:`kernel-worker-shutdown`})}catch{}i.terminate(),l.port1.close(),u.port1.close()}}}}function o(e){return a({worker:e.workerUrl?new Worker(e.workerUrl,{type:`module`}):new Worker(new URL(`/assets/kernel-worker-qa_GIQ_O.js`,``+import.meta.url),{type:`module`}),realCdpTransport:e.realCdpTransport,callbacks:e.callbacks,readyTimeoutMs:e.readyTimeoutMs,localStorageSeed:e.localStorageSeed??i(),instanceId:e.instanceId})}export{o as spawnKernelWorker};
1
+ import{OffscreenClient as e}from"./offscreen-client-DQeDUS4X.js";function t(e){let t=!1,n=()=>{t||(t=!0,typeof e.start==`function`&&e.start())};return{onMessage:t=>{let r=e=>{t(e.data)};return e.addEventListener(`message`,r),n(),()=>{e.removeEventListener(`message`,r)}},send:t=>{e.postMessage(t)}}}function n(e){let n=t(e);return{onMessage:e=>n.onMessage(e),send:e=>{n.send({source:`panel`,payload:e})}}}function r(e,n){let r=t(e),i=new Map,a=r.onMessage(async e=>{let t=e;if(t?.type){if(t.type===`cdp-cmd`){let t=e;try{let e=await n.send(t.method,t.params,t.sessionId);r.send({type:`cdp-response`,id:t.id,result:e})}catch(e){r.send({type:`cdp-response`,id:t.id,error:e instanceof Error?e.message:String(e)})}return}if(t.type===`cdp-subscribe`){let t=e;if(i.has(t.event))return;let a=e=>{r.send({type:`cdp-event`,method:t.event,params:e})};i.set(t.event,a),n.on(t.event,a);return}if(t.type===`cdp-unsubscribe`){let t=e,r=i.get(t.event);if(!r)return;i.delete(t.event),n.off(t.event,r);return}}});return()=>{a();for(let[e,t]of i)n.off(e,t);i.clear()}}function i(){let e={};if(typeof localStorage>`u`)return e;for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);if(n===null)continue;let r=localStorage.getItem(n);r!==null&&(e[n]=r)}return e}function a(t){let{worker:i,realCdpTransport:a,callbacks:o}=t,s=t.readyTimeoutMs??3e4,c=t.localStorageSeed??{},l=new MessageChannel,u=new MessageChannel,d=new e(o,n(l.port1)),f=r(u.port1,a),p=null,m=new Promise((e,t)=>{let n=null,r=null;p=()=>{r!==null&&(l.port1.removeEventListener(`message`,r),r=null),n!==null&&(clearTimeout(n),n=null)},r=t=>{t.data?.type===`kernel-worker-ready`&&(p?.(),e())},l.port1.addEventListener(`message`,r),n=setTimeout(()=>{p?.(),t(Error(`Kernel worker did not signal ready within ${s}ms`))},s)}),h={type:`kernel-worker-init`,kernelPort:l.port2,cdpPort:u.port2,localStorageSeed:c,instanceId:t.instanceId};i.postMessage(h,[l.port2,u.port2]);let g=!1;return{client:d,ready:m,dispose(){if(!g){g=!0,p?.(),f();try{i.postMessage({type:`kernel-worker-shutdown`})}catch{}i.terminate(),l.port1.close(),u.port1.close()}}}}function o(e){return a({worker:e.workerUrl?new Worker(e.workerUrl,{type:`module`}):new Worker(new URL(`/assets/kernel-worker-DrqmmlLF.js`,``+import.meta.url),{type:`module`}),realCdpTransport:e.realCdpTransport,callbacks:e.callbacks,readyTimeoutMs:e.readyTimeoutMs,localStorageSeed:e.localStorageSeed??i(),instanceId:e.instanceId})}export{o as spawnKernelWorker};
@@ -1,2 +1,2 @@
1
- import{$ as e,ft as t}from"./kernel-worker-qa_GIQ_O.js";var n=t(((t,n)=>{var r=void 0,i=function(t){return r||(r=new Promise(function(r,i){var a=t===void 0?{}:t,o=a.onAbort;a.onAbort=function(e){i(Error(e)),o&&o(e)},a.postRun=a.postRun||[],a.postRun.push(function(){r(a)}),n=void 0;var s;s||=a===void 0?{}:a;var c=!!globalThis.window,l=!!globalThis.WorkerGlobalScope,u=globalThis.process?.versions?.node&&globalThis.process?.type!=`renderer`;s.onRuntimeInitialized=function(){function e(e,t){switch(typeof t){case`boolean`:O(e,+!!t);break;case`number`:ge(e,t);break;case`string`:T(e,t,-1,-1);break;case`object`:if(t===null)_e(e);else if(t.length!=null){var n=Ft(t.length);v.set(t,n),E(e,n,t.length,-1),Z(n)}else A(e,`Wrong API use : tried to return a value of an unknown type (`+t+`).`,-1);break;default:_e(e)}}function t(e,t){for(var n=[],r=0;r<e;r+=1){var i=D(t+4*r,`i32`),a=de(i);if(a===1||a===2)i=he(i);else if(a===3)i=pe(i);else if(a===4){a=i,i=fe(a),a=me(a);for(var o=new Uint8Array(i),s=0;s<i;s+=1)o[s]=v[a+s];i=o}else i=null;n.push(i)}return n}function n(e,t){this.Qa=e,this.db=t,this.Oa=1,this.lb=[]}function r(e,t){if(this.db=t,this.eb=kt(e),this.eb===null)throw Error(`Unable to allocate memory for the SQL string`);this.kb=this.eb,this.Za=this.qb=null}function i(e){if(this.filename=`dbfile_`+(4294967295*Math.random()>>>0),e!=null){var t=this.filename,n=`/`,r=t;if(n&&(n=typeof n==`string`?n:Ve(n),r=t?be(n+`/`+t):n),t=Me(!0,!0),r=nt(r,t),e){if(typeof e==`string`){n=Array(e.length);for(var i=0,o=e.length;i<o;++i)n[i]=e.charCodeAt(i);e=n}lt(r,t|146),n=G(r,577),mt(n,e,0,e.length,0),dt(n),lt(r,t)}}this.handleError(c(this.filename,a)),this.db=D(a,`i32`),ye(this.db),this.fb={},this.Sa={}}var a=Q(4),o=s.cwrap,c=o(`sqlite3_open`,`number`,[`string`,`number`]),l=o(`sqlite3_close_v2`,`number`,[`number`]),u=o(`sqlite3_exec`,`number`,[`number`,`string`,`number`,`number`,`number`]),ee=o(`sqlite3_changes`,`number`,[`number`]),te=o(`sqlite3_prepare_v2`,`number`,[`number`,`string`,`number`,`number`,`number`]),ne=o(`sqlite3_sql`,`string`,[`number`]),d=o(`sqlite3_normalized_sql`,`string`,[`number`]),f=o(`sqlite3_prepare_v2`,`number`,[`number`,`number`,`number`,`number`,`number`]),p=o(`sqlite3_bind_text`,`number`,[`number`,`number`,`number`,`number`,`number`]),m=o(`sqlite3_bind_blob`,`number`,[`number`,`number`,`number`,`number`,`number`]),re=o(`sqlite3_bind_double`,`number`,[`number`,`number`,`number`]),h=o(`sqlite3_bind_int`,`number`,[`number`,`number`,`number`]),g=o(`sqlite3_bind_parameter_index`,`number`,[`number`,`string`]),ie=o(`sqlite3_step`,`number`,[`number`]),ae=o(`sqlite3_errmsg`,`string`,[`number`]),_=o(`sqlite3_column_count`,`number`,[`number`]),y=o(`sqlite3_data_count`,`number`,[`number`]),b=o(`sqlite3_column_double`,`number`,[`number`,`number`]),x=o(`sqlite3_column_text`,`string`,[`number`,`number`]),S=o(`sqlite3_column_blob`,`number`,[`number`,`number`]),oe=o(`sqlite3_column_bytes`,`number`,[`number`,`number`]),se=o(`sqlite3_column_type`,`number`,[`number`,`number`]),C=o(`sqlite3_column_name`,`string`,[`number`,`number`]),ce=o(`sqlite3_reset`,`number`,[`number`]),w=o(`sqlite3_clear_bindings`,`number`,[`number`]),le=o(`sqlite3_finalize`,`number`,[`number`]),ue=o(`sqlite3_create_function_v2`,`number`,`number string number number number number number number number`.split(` `)),de=o(`sqlite3_value_type`,`number`,[`number`]),fe=o(`sqlite3_value_bytes`,`number`,[`number`]),pe=o(`sqlite3_value_text`,`string`,[`number`]),me=o(`sqlite3_value_blob`,`number`,[`number`]),he=o(`sqlite3_value_double`,`number`,[`number`]),ge=o(`sqlite3_result_double`,``,[`number`,`number`]),_e=o(`sqlite3_result_null`,``,[`number`]),T=o(`sqlite3_result_text`,``,[`number`,`string`,`number`,`number`]),E=o(`sqlite3_result_blob`,``,[`number`,`number`,`number`,`number`]),O=o(`sqlite3_result_int`,``,[`number`,`number`]),A=o(`sqlite3_result_error`,``,[`number`,`string`,`number`]),ve=o(`sqlite3_aggregate_context`,`number`,[`number`,`number`]),ye=o(`RegisterExtensionFunctions`,`number`,[`number`]),xe=o(`sqlite3_update_hook`,`number`,[`number`,`number`,`number`]);n.prototype.bind=function(e){if(!this.Qa)throw`Statement closed`;return this.reset(),Array.isArray(e)?this.Cb(e):typeof e==`object`&&e?this.Db(e):!0},n.prototype.step=function(){if(!this.Qa)throw`Statement closed`;this.Oa=1;var e=ie(this.Qa);switch(e){case 100:return!0;case 101:return!1;default:throw this.db.handleError(e)}},n.prototype.wb=function(e){return e??(e=this.Oa,this.Oa+=1),b(this.Qa,e)},n.prototype.Gb=function(e){if(e??(e=this.Oa,this.Oa+=1),e=x(this.Qa,e),typeof BigInt!=`function`)throw Error(`BigInt is not supported`);return BigInt(e)},n.prototype.Hb=function(e){return e??(e=this.Oa,this.Oa+=1),x(this.Qa,e)},n.prototype.getBlob=function(e){e??(e=this.Oa,this.Oa+=1);var t=oe(this.Qa,e);e=S(this.Qa,e);for(var n=new Uint8Array(t),r=0;r<t;r+=1)n[r]=v[e+r];return n},n.prototype.get=function(e,t){t||={},e!=null&&this.bind(e)&&this.step(),e=[];for(var n=y(this.Qa),r=0;r<n;r+=1)switch(se(this.Qa,r)){case 1:var i=t.useBigInt?this.Gb(r):this.wb(r);e.push(i);break;case 2:e.push(this.wb(r));break;case 3:e.push(this.Hb(r));break;case 4:e.push(this.getBlob(r));break;default:e.push(null)}return e},n.prototype.getColumnNames=function(){for(var e=[],t=_(this.Qa),n=0;n<t;n+=1)e.push(C(this.Qa,n));return e},n.prototype.getAsObject=function(e,t){e=this.get(e,t),t=this.getColumnNames();for(var n={},r=0;r<t.length;r+=1)n[t[r]]=e[r];return n},n.prototype.getSQL=function(){return ne(this.Qa)},n.prototype.getNormalizedSQL=function(){return d(this.Qa)},n.prototype.run=function(e){return e!=null&&this.bind(e),this.step(),this.reset()},n.prototype.tb=function(e,t){t??(t=this.Oa,this.Oa+=1),e=kt(e),this.lb.push(e),this.db.handleError(p(this.Qa,t,e,-1,0))},n.prototype.Bb=function(e,t){t??(t=this.Oa,this.Oa+=1);var n=Ft(e.length);v.set(e,n),this.lb.push(n),this.db.handleError(m(this.Qa,t,n,e.length,0))},n.prototype.sb=function(e,t){t??(t=this.Oa,this.Oa+=1),this.db.handleError((e===(e|0)?h:re)(this.Qa,t,e))},n.prototype.Eb=function(e){e??(e=this.Oa,this.Oa+=1),m(this.Qa,e,0,0,0)},n.prototype.ub=function(e,t){switch(t??(t=this.Oa,this.Oa+=1),typeof e){case`string`:this.tb(e,t);return;case`number`:this.sb(e,t);return;case`bigint`:this.tb(e.toString(),t);return;case`boolean`:this.sb(e+0,t);return;case`object`:if(e===null){this.Eb(t);return}if(e.length!=null){this.Bb(e,t);return}}throw`Wrong API use : tried to bind a value of an unknown type (`+e+`).`},n.prototype.Db=function(e){var t=this;return Object.keys(e).forEach(function(n){var r=g(t.Qa,n);r!==0&&t.ub(e[n],r)}),!0},n.prototype.Cb=function(e){for(var t=0;t<e.length;t+=1)this.ub(e[t],t+1);return!0},n.prototype.reset=function(){return this.freemem(),w(this.Qa)===0&&ce(this.Qa)===0},n.prototype.freemem=function(){for(var e;(e=this.lb.pop())!==void 0;)Z(e)},n.prototype.free=function(){this.freemem();var e=le(this.Qa)===0;return delete this.db.fb[this.Qa],this.Qa=0,e},r.prototype.next=function(){if(this.eb===null)return{done:!0};if(this.Za!==null&&(this.Za.free(),this.Za=null),!this.db.db)throw this.nb(),Error(`Database closed`);var e=zt(),t=Q(4);k(a),k(t);try{this.db.handleError(f(this.db.db,this.kb,-1,a,t)),this.kb=D(t,`i32`);var r=D(a,`i32`);return r===0?(this.nb(),{done:!0}):(this.Za=new n(r,this.db),this.db.fb[r]=this.Za,{value:this.Za,done:!1})}catch(e){throw this.qb=j(this.kb),this.nb(),e}finally{Rt(e)}},r.prototype.nb=function(){Z(this.eb),this.eb=null},r.prototype.getRemainingSQL=function(){return this.qb===null?j(this.kb):this.qb},typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`&&(r.prototype[Symbol.iterator]=function(){return this}),i.prototype.run=function(e,t){if(!this.db)throw`Database closed`;if(t){e=this.prepare(e,t);try{e.step()}finally{e.free()}}else this.handleError(u(this.db,e,0,0,a));return this},i.prototype.exec=function(e,t,r){if(!this.db)throw`Database closed`;var i=null,o=null,s=null;try{s=o=kt(e);var c=Q(4);for(e=[];D(s,`i8`)!==0;){k(a),k(c),this.handleError(f(this.db,s,-1,a,c));var l=D(a,`i32`);if(s=D(c,`i32`),l!==0){var u=null;for(i=new n(l,this),t!=null&&i.bind(t);i.step();)u===null&&(u={columns:i.getColumnNames(),values:[]},e.push(u)),u.values.push(i.get(null,r));i.free()}}return e}catch(e){throw i&&i.free(),e}finally{o&&Z(o)}},i.prototype.each=function(e,t,n,r,i){typeof t==`function`&&(r=n,n=t,t=void 0),e=this.prepare(e,t);try{for(;e.step();)n(e.getAsObject(null,i))}finally{e.free()}if(typeof r==`function`)return r()},i.prototype.prepare=function(e,t){if(k(a),this.handleError(te(this.db,e,-1,a,0)),e=D(a,`i32`),e===0)throw`Nothing to prepare`;var r=new n(e,this);return t!=null&&r.bind(t),this.fb[e]=r},i.prototype.iterateStatements=function(e){return new r(e,this)},i.prototype.export=function(){Object.values(this.fb).forEach(function(e){e.free()}),Object.values(this.Sa).forEach(X),this.Sa={},this.handleError(l(this.db));var e=ht(this.filename);return this.handleError(c(this.filename,a)),this.db=D(a,`i32`),ye(this.db),e},i.prototype.close=function(){this.db!==null&&(Object.values(this.fb).forEach(function(e){e.free()}),Object.values(this.Sa).forEach(X),this.Sa={},this.Ya&&=(X(this.Ya),void 0),this.handleError(l(this.db)),ot(`/`+this.filename),this.db=null)},i.prototype.handleError=function(e){if(e===0)return null;throw e=ae(this.db),Error(e)},i.prototype.getRowsModified=function(){return ee(this.db)},i.prototype.create_function=function(n,r){Object.prototype.hasOwnProperty.call(this.Sa,n)&&(X(this.Sa[n]),delete this.Sa[n]);var i=Pt(function(n,i,a){i=t(i,a);try{var o=r.apply(null,i)}catch(e){A(n,e,-1);return}e(n,o)},`viii`);return this.Sa[n]=i,this.handleError(ue(this.db,n,r.length,1,0,i,0,0,0)),this},i.prototype.create_aggregate=function(n,r){var i=r.init||function(){return null},a=r.finalize||function(e){return e},o=r.step;if(!o)throw`An aggregate function must have a step function in `+n;var s={};Object.hasOwnProperty.call(this.Sa,n)&&(X(this.Sa[n]),delete this.Sa[n]),r=n+`__finalize`,Object.hasOwnProperty.call(this.Sa,r)&&(X(this.Sa[r]),delete this.Sa[r]);var c=Pt(function(e,n,r){var a=ve(e,1);Object.hasOwnProperty.call(s,a)||(s[a]=i()),n=t(n,r),n=[s[a]].concat(n);try{s[a]=o.apply(null,n)}catch(t){delete s[a],A(e,t,-1)}},`viii`),l=Pt(function(t){var n=ve(t,1);try{var r=a(s[n])}catch(e){delete s[n],A(t,e,-1);return}e(t,r),delete s[n]},`vi`);return this.Sa[n]=c,this.Sa[r]=l,this.handleError(ue(this.db,n,o.length-1,1,0,0,c,l,0)),this},i.prototype.updateHook=function(e){return this.Ya&&=(xe(this.db,0,0),X(this.Ya),void 0),e?(this.Ya=Pt(function(t,n,r,i,a){switch(n){case 18:t=`insert`;break;case 23:t=`update`;break;case 9:t=`delete`;break;default:throw`unknown operationCode in updateHook callback: `+n}if(r=j(r),i=j(i),a>2**53-1)throw`rowId too big to fit inside a Number`;e(t,r,i,Number(a))},`viiiij`),xe(this.db,this.Ya,0),this):this},s.Database=i};var ee=`./this.program`,te=(e,t)=>{throw t},ne=globalThis.document?.currentScript?.src;typeof __filename<`u`?ne=__filename:l&&(ne=self.location.href);var d=``,f,p;if(u){var m=e();d=__dirname+`/`,p=e=>(e=_(e)?new URL(e):e,m.readFileSync(e)),f=async e=>(e=_(e)?new URL(e):e,m.readFileSync(e,void 0)),1<process.argv.length&&(ee=process.argv[1].replace(/\\/g,`/`)),process.argv.slice(2),n!==void 0&&(n.exports=s),te=(e,t)=>{throw process.exitCode=e,t}}else if(c||l){try{d=new URL(`.`,ne).href}catch{}l&&(p=e=>{var t=new XMLHttpRequest;return t.open(`GET`,e,!1),t.responseType=`arraybuffer`,t.send(null),new Uint8Array(t.response)}),f=async e=>{if(_(e))return new Promise((t,n)=>{var r=new XMLHttpRequest;r.open(`GET`,e,!0),r.responseType=`arraybuffer`,r.onload=()=>{r.status==200||r.status==0&&r.response?t(r.response):n(r.status)},r.onerror=n,r.send(null)});var t=await fetch(e,{credentials:`same-origin`});if(t.ok)return t.arrayBuffer();throw Error(t.status+` : `+t.url)}}var re=console.log.bind(console),h=console.error.bind(console),g,ie=!1,ae,_=e=>e.startsWith(`file://`),v,y,b,x,S,oe,se,C;function ce(){var e=Bt.buffer;v=new Int8Array(e),b=new Int16Array(e),y=new Uint8Array(e),new Uint16Array(e),x=new Int32Array(e),S=new Uint32Array(e),oe=new Float32Array(e),se=new Float64Array(e),C=new BigInt64Array(e),new BigUint64Array(e)}function w(e){throw s.onAbort?.(e),e=`Aborted(`+e+`)`,h(e),ie=!0,new WebAssembly.RuntimeError(e+`. Build with -sASSERTIONS for more info.`)}var le;async function ue(e){if(!g)try{var t=await f(e);return new Uint8Array(t)}catch{}if(e==le&&g)e=new Uint8Array(g);else if(p)e=p(e);else throw`both async and sync fetching of the wasm failed`;return e}async function de(e,t){try{var n=await ue(e);return await WebAssembly.instantiate(n,t)}catch(e){h(`failed to asynchronously prepare wasm: ${e}`),w(e)}}async function fe(e){var t=le;if(!g&&!_(t)&&!u)try{var n=fetch(t,{credentials:`same-origin`});return await WebAssembly.instantiateStreaming(n,e)}catch(e){h(`wasm streaming compile failed: ${e}`),h(`falling back to ArrayBuffer instantiation`)}return de(t,e)}class pe{name=`ExitStatus`;constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var me=e=>{for(;0<e.length;)e.shift()(s)},he=[],ge=[],_e=()=>{var e=s.preRun.shift();ge.push(e)},T=0,E=null;function D(e,t=`i8`){switch(t.endsWith(`*`)&&(t=`*`),t){case`i1`:return v[e];case`i8`:return v[e];case`i16`:return b[e>>1];case`i32`:return x[e>>2];case`i64`:return C[e>>3];case`float`:return oe[e>>2];case`double`:return se[e>>3];case`*`:return S[e>>2];default:w(`invalid type for getValue: ${t}`)}}var O=!0;function k(e){var t=`i32`;switch(t.endsWith(`*`)&&(t=`*`),t){case`i1`:v[e]=0;break;case`i8`:v[e]=0;break;case`i16`:b[e>>1]=0;break;case`i32`:x[e>>2]=0;break;case`i64`:C[e>>3]=BigInt(0);break;case`float`:oe[e>>2]=0;break;case`double`:se[e>>3]=0;break;case`*`:S[e>>2]=0;break;default:w(`invalid type for setValue: ${t}`)}}var A=new TextDecoder,ve=(e,t,n,r)=>{if(n=t+n,r)return n;for(;e[t]&&!(t>=n);)++t;return t},j=(e,t,n)=>e?A.decode(y.subarray(e,ve(y,e,t,n))):``,ye=(e,t)=>{for(var n=0,r=e.length-1;0<=r;r--){var i=e[r];i===`.`?e.splice(r,1):i===`..`?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n;n--)e.unshift(`..`);return e},be=e=>{var t=e.charAt(0)===`/`,n=e.slice(-1)===`/`;return(e=ye(e.split(`/`).filter(e=>!!e),!t).join(`/`))||t||(e=`.`),e&&n&&(e+=`/`),(t?`/`:``)+e},xe=e=>{var t=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1);return e=t[0],t=t[1],!e&&!t?`.`:(t&&=t.slice(0,-1),e+t)},Se=e=>e&&e.match(/([^\/]+|\/)\/*$/)[1],Ce=()=>{if(u){var t=e();return e=>t.randomFillSync(e)}return e=>crypto.getRandomValues(e)},we=e=>{(we=Ce())(e)},Te=(...e)=>{for(var t=``,n=!1,r=e.length-1;-1<=r&&!n;r--){if(n=0<=r?e[r]:`/`,typeof n!=`string`)throw TypeError(`Arguments to path.resolve must be strings`);if(!n)return``;t=n+`/`+t,n=n.charAt(0)===`/`}return t=ye(t.split(`/`).filter(e=>!!e),!n).join(`/`),(n?`/`:``)+t||`.`},M=e=>{var t=ve(e,0);return A.decode(e.buffer?e.subarray(0,t):new Uint8Array(e.slice(0,t)))},Ee=[],N=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);127>=r?t++:2047>=r?t+=2:55296<=r&&57343>=r?(t+=4,++n):t+=3}return t},P=(e,t,n,r)=>{if(!(0<r))return 0;var i=n;r=n+r-1;for(var a=0;a<e.length;++a){var o=e.codePointAt(a);if(127>=o){if(n>=r)break;t[n++]=o}else if(2047>=o){if(n+1>=r)break;t[n++]=192|o>>6,t[n++]=128|o&63}else if(65535>=o){if(n+2>=r)break;t[n++]=224|o>>12,t[n++]=128|o>>6&63,t[n++]=128|o&63}else{if(n+3>=r)break;t[n++]=240|o>>18,t[n++]=128|o>>12&63,t[n++]=128|o>>6&63,t[n++]=128|o&63,a++}}return t[n]=0,n-i},De=[];function Oe(e,t){De[e]={input:[],output:[],cb:t},$e(e,ke)}var ke={open(e){var t=De[e.node.rdev];if(!t)throw new R(43);e.tty=t,e.seekable=!1},close(e){e.tty.cb.fsync(e.tty)},fsync(e){e.tty.cb.fsync(e.tty)},read(e,t,n,r){if(!e.tty||!e.tty.cb.xb)throw new R(60);for(var i=0,a=0;a<r;a++){try{var o=e.tty.cb.xb(e.tty)}catch{throw new R(29)}if(o===void 0&&i===0)throw new R(6);if(o==null)break;i++,t[n+a]=o}return i&&(e.node.atime=Date.now()),i},write(e,t,n,r){if(!e.tty||!e.tty.cb.rb)throw new R(60);try{for(var i=0;i<r;i++)e.tty.cb.rb(e.tty,t[n+i])}catch{throw new R(29)}return r&&(e.node.mtime=e.node.ctime=Date.now()),i}},Ae={xb(){a:{if(!Ee.length){var e=null;if(u){var t=Buffer.alloc(256),n=0,r=process.stdin.fd;try{n=m.readSync(r,t,0,256)}catch(e){if(e.toString().includes(`EOF`))n=0;else throw e}0<n&&(e=t.slice(0,n).toString(`utf-8`))}else globalThis.window?.prompt&&(e=window.prompt(`Input: `),e!==null&&(e+=`
1
+ import{$ as e,ft as t}from"./kernel-worker-DrqmmlLF.js";var n=t(((t,n)=>{var r=void 0,i=function(t){return r||(r=new Promise(function(r,i){var a=t===void 0?{}:t,o=a.onAbort;a.onAbort=function(e){i(Error(e)),o&&o(e)},a.postRun=a.postRun||[],a.postRun.push(function(){r(a)}),n=void 0;var s;s||=a===void 0?{}:a;var c=!!globalThis.window,l=!!globalThis.WorkerGlobalScope,u=globalThis.process?.versions?.node&&globalThis.process?.type!=`renderer`;s.onRuntimeInitialized=function(){function e(e,t){switch(typeof t){case`boolean`:O(e,+!!t);break;case`number`:ge(e,t);break;case`string`:T(e,t,-1,-1);break;case`object`:if(t===null)_e(e);else if(t.length!=null){var n=Ft(t.length);v.set(t,n),E(e,n,t.length,-1),Z(n)}else A(e,`Wrong API use : tried to return a value of an unknown type (`+t+`).`,-1);break;default:_e(e)}}function t(e,t){for(var n=[],r=0;r<e;r+=1){var i=D(t+4*r,`i32`),a=de(i);if(a===1||a===2)i=he(i);else if(a===3)i=pe(i);else if(a===4){a=i,i=fe(a),a=me(a);for(var o=new Uint8Array(i),s=0;s<i;s+=1)o[s]=v[a+s];i=o}else i=null;n.push(i)}return n}function n(e,t){this.Qa=e,this.db=t,this.Oa=1,this.lb=[]}function r(e,t){if(this.db=t,this.eb=kt(e),this.eb===null)throw Error(`Unable to allocate memory for the SQL string`);this.kb=this.eb,this.Za=this.qb=null}function i(e){if(this.filename=`dbfile_`+(4294967295*Math.random()>>>0),e!=null){var t=this.filename,n=`/`,r=t;if(n&&(n=typeof n==`string`?n:Ve(n),r=t?be(n+`/`+t):n),t=Me(!0,!0),r=nt(r,t),e){if(typeof e==`string`){n=Array(e.length);for(var i=0,o=e.length;i<o;++i)n[i]=e.charCodeAt(i);e=n}lt(r,t|146),n=G(r,577),mt(n,e,0,e.length,0),dt(n),lt(r,t)}}this.handleError(c(this.filename,a)),this.db=D(a,`i32`),ye(this.db),this.fb={},this.Sa={}}var a=Q(4),o=s.cwrap,c=o(`sqlite3_open`,`number`,[`string`,`number`]),l=o(`sqlite3_close_v2`,`number`,[`number`]),u=o(`sqlite3_exec`,`number`,[`number`,`string`,`number`,`number`,`number`]),ee=o(`sqlite3_changes`,`number`,[`number`]),te=o(`sqlite3_prepare_v2`,`number`,[`number`,`string`,`number`,`number`,`number`]),ne=o(`sqlite3_sql`,`string`,[`number`]),d=o(`sqlite3_normalized_sql`,`string`,[`number`]),f=o(`sqlite3_prepare_v2`,`number`,[`number`,`number`,`number`,`number`,`number`]),p=o(`sqlite3_bind_text`,`number`,[`number`,`number`,`number`,`number`,`number`]),m=o(`sqlite3_bind_blob`,`number`,[`number`,`number`,`number`,`number`,`number`]),re=o(`sqlite3_bind_double`,`number`,[`number`,`number`,`number`]),h=o(`sqlite3_bind_int`,`number`,[`number`,`number`,`number`]),g=o(`sqlite3_bind_parameter_index`,`number`,[`number`,`string`]),ie=o(`sqlite3_step`,`number`,[`number`]),ae=o(`sqlite3_errmsg`,`string`,[`number`]),_=o(`sqlite3_column_count`,`number`,[`number`]),y=o(`sqlite3_data_count`,`number`,[`number`]),b=o(`sqlite3_column_double`,`number`,[`number`,`number`]),x=o(`sqlite3_column_text`,`string`,[`number`,`number`]),S=o(`sqlite3_column_blob`,`number`,[`number`,`number`]),oe=o(`sqlite3_column_bytes`,`number`,[`number`,`number`]),se=o(`sqlite3_column_type`,`number`,[`number`,`number`]),C=o(`sqlite3_column_name`,`string`,[`number`,`number`]),ce=o(`sqlite3_reset`,`number`,[`number`]),w=o(`sqlite3_clear_bindings`,`number`,[`number`]),le=o(`sqlite3_finalize`,`number`,[`number`]),ue=o(`sqlite3_create_function_v2`,`number`,`number string number number number number number number number`.split(` `)),de=o(`sqlite3_value_type`,`number`,[`number`]),fe=o(`sqlite3_value_bytes`,`number`,[`number`]),pe=o(`sqlite3_value_text`,`string`,[`number`]),me=o(`sqlite3_value_blob`,`number`,[`number`]),he=o(`sqlite3_value_double`,`number`,[`number`]),ge=o(`sqlite3_result_double`,``,[`number`,`number`]),_e=o(`sqlite3_result_null`,``,[`number`]),T=o(`sqlite3_result_text`,``,[`number`,`string`,`number`,`number`]),E=o(`sqlite3_result_blob`,``,[`number`,`number`,`number`,`number`]),O=o(`sqlite3_result_int`,``,[`number`,`number`]),A=o(`sqlite3_result_error`,``,[`number`,`string`,`number`]),ve=o(`sqlite3_aggregate_context`,`number`,[`number`,`number`]),ye=o(`RegisterExtensionFunctions`,`number`,[`number`]),xe=o(`sqlite3_update_hook`,`number`,[`number`,`number`,`number`]);n.prototype.bind=function(e){if(!this.Qa)throw`Statement closed`;return this.reset(),Array.isArray(e)?this.Cb(e):typeof e==`object`&&e?this.Db(e):!0},n.prototype.step=function(){if(!this.Qa)throw`Statement closed`;this.Oa=1;var e=ie(this.Qa);switch(e){case 100:return!0;case 101:return!1;default:throw this.db.handleError(e)}},n.prototype.wb=function(e){return e??(e=this.Oa,this.Oa+=1),b(this.Qa,e)},n.prototype.Gb=function(e){if(e??(e=this.Oa,this.Oa+=1),e=x(this.Qa,e),typeof BigInt!=`function`)throw Error(`BigInt is not supported`);return BigInt(e)},n.prototype.Hb=function(e){return e??(e=this.Oa,this.Oa+=1),x(this.Qa,e)},n.prototype.getBlob=function(e){e??(e=this.Oa,this.Oa+=1);var t=oe(this.Qa,e);e=S(this.Qa,e);for(var n=new Uint8Array(t),r=0;r<t;r+=1)n[r]=v[e+r];return n},n.prototype.get=function(e,t){t||={},e!=null&&this.bind(e)&&this.step(),e=[];for(var n=y(this.Qa),r=0;r<n;r+=1)switch(se(this.Qa,r)){case 1:var i=t.useBigInt?this.Gb(r):this.wb(r);e.push(i);break;case 2:e.push(this.wb(r));break;case 3:e.push(this.Hb(r));break;case 4:e.push(this.getBlob(r));break;default:e.push(null)}return e},n.prototype.getColumnNames=function(){for(var e=[],t=_(this.Qa),n=0;n<t;n+=1)e.push(C(this.Qa,n));return e},n.prototype.getAsObject=function(e,t){e=this.get(e,t),t=this.getColumnNames();for(var n={},r=0;r<t.length;r+=1)n[t[r]]=e[r];return n},n.prototype.getSQL=function(){return ne(this.Qa)},n.prototype.getNormalizedSQL=function(){return d(this.Qa)},n.prototype.run=function(e){return e!=null&&this.bind(e),this.step(),this.reset()},n.prototype.tb=function(e,t){t??(t=this.Oa,this.Oa+=1),e=kt(e),this.lb.push(e),this.db.handleError(p(this.Qa,t,e,-1,0))},n.prototype.Bb=function(e,t){t??(t=this.Oa,this.Oa+=1);var n=Ft(e.length);v.set(e,n),this.lb.push(n),this.db.handleError(m(this.Qa,t,n,e.length,0))},n.prototype.sb=function(e,t){t??(t=this.Oa,this.Oa+=1),this.db.handleError((e===(e|0)?h:re)(this.Qa,t,e))},n.prototype.Eb=function(e){e??(e=this.Oa,this.Oa+=1),m(this.Qa,e,0,0,0)},n.prototype.ub=function(e,t){switch(t??(t=this.Oa,this.Oa+=1),typeof e){case`string`:this.tb(e,t);return;case`number`:this.sb(e,t);return;case`bigint`:this.tb(e.toString(),t);return;case`boolean`:this.sb(e+0,t);return;case`object`:if(e===null){this.Eb(t);return}if(e.length!=null){this.Bb(e,t);return}}throw`Wrong API use : tried to bind a value of an unknown type (`+e+`).`},n.prototype.Db=function(e){var t=this;return Object.keys(e).forEach(function(n){var r=g(t.Qa,n);r!==0&&t.ub(e[n],r)}),!0},n.prototype.Cb=function(e){for(var t=0;t<e.length;t+=1)this.ub(e[t],t+1);return!0},n.prototype.reset=function(){return this.freemem(),w(this.Qa)===0&&ce(this.Qa)===0},n.prototype.freemem=function(){for(var e;(e=this.lb.pop())!==void 0;)Z(e)},n.prototype.free=function(){this.freemem();var e=le(this.Qa)===0;return delete this.db.fb[this.Qa],this.Qa=0,e},r.prototype.next=function(){if(this.eb===null)return{done:!0};if(this.Za!==null&&(this.Za.free(),this.Za=null),!this.db.db)throw this.nb(),Error(`Database closed`);var e=zt(),t=Q(4);k(a),k(t);try{this.db.handleError(f(this.db.db,this.kb,-1,a,t)),this.kb=D(t,`i32`);var r=D(a,`i32`);return r===0?(this.nb(),{done:!0}):(this.Za=new n(r,this.db),this.db.fb[r]=this.Za,{value:this.Za,done:!1})}catch(e){throw this.qb=j(this.kb),this.nb(),e}finally{Rt(e)}},r.prototype.nb=function(){Z(this.eb),this.eb=null},r.prototype.getRemainingSQL=function(){return this.qb===null?j(this.kb):this.qb},typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`&&(r.prototype[Symbol.iterator]=function(){return this}),i.prototype.run=function(e,t){if(!this.db)throw`Database closed`;if(t){e=this.prepare(e,t);try{e.step()}finally{e.free()}}else this.handleError(u(this.db,e,0,0,a));return this},i.prototype.exec=function(e,t,r){if(!this.db)throw`Database closed`;var i=null,o=null,s=null;try{s=o=kt(e);var c=Q(4);for(e=[];D(s,`i8`)!==0;){k(a),k(c),this.handleError(f(this.db,s,-1,a,c));var l=D(a,`i32`);if(s=D(c,`i32`),l!==0){var u=null;for(i=new n(l,this),t!=null&&i.bind(t);i.step();)u===null&&(u={columns:i.getColumnNames(),values:[]},e.push(u)),u.values.push(i.get(null,r));i.free()}}return e}catch(e){throw i&&i.free(),e}finally{o&&Z(o)}},i.prototype.each=function(e,t,n,r,i){typeof t==`function`&&(r=n,n=t,t=void 0),e=this.prepare(e,t);try{for(;e.step();)n(e.getAsObject(null,i))}finally{e.free()}if(typeof r==`function`)return r()},i.prototype.prepare=function(e,t){if(k(a),this.handleError(te(this.db,e,-1,a,0)),e=D(a,`i32`),e===0)throw`Nothing to prepare`;var r=new n(e,this);return t!=null&&r.bind(t),this.fb[e]=r},i.prototype.iterateStatements=function(e){return new r(e,this)},i.prototype.export=function(){Object.values(this.fb).forEach(function(e){e.free()}),Object.values(this.Sa).forEach(X),this.Sa={},this.handleError(l(this.db));var e=ht(this.filename);return this.handleError(c(this.filename,a)),this.db=D(a,`i32`),ye(this.db),e},i.prototype.close=function(){this.db!==null&&(Object.values(this.fb).forEach(function(e){e.free()}),Object.values(this.Sa).forEach(X),this.Sa={},this.Ya&&=(X(this.Ya),void 0),this.handleError(l(this.db)),ot(`/`+this.filename),this.db=null)},i.prototype.handleError=function(e){if(e===0)return null;throw e=ae(this.db),Error(e)},i.prototype.getRowsModified=function(){return ee(this.db)},i.prototype.create_function=function(n,r){Object.prototype.hasOwnProperty.call(this.Sa,n)&&(X(this.Sa[n]),delete this.Sa[n]);var i=Pt(function(n,i,a){i=t(i,a);try{var o=r.apply(null,i)}catch(e){A(n,e,-1);return}e(n,o)},`viii`);return this.Sa[n]=i,this.handleError(ue(this.db,n,r.length,1,0,i,0,0,0)),this},i.prototype.create_aggregate=function(n,r){var i=r.init||function(){return null},a=r.finalize||function(e){return e},o=r.step;if(!o)throw`An aggregate function must have a step function in `+n;var s={};Object.hasOwnProperty.call(this.Sa,n)&&(X(this.Sa[n]),delete this.Sa[n]),r=n+`__finalize`,Object.hasOwnProperty.call(this.Sa,r)&&(X(this.Sa[r]),delete this.Sa[r]);var c=Pt(function(e,n,r){var a=ve(e,1);Object.hasOwnProperty.call(s,a)||(s[a]=i()),n=t(n,r),n=[s[a]].concat(n);try{s[a]=o.apply(null,n)}catch(t){delete s[a],A(e,t,-1)}},`viii`),l=Pt(function(t){var n=ve(t,1);try{var r=a(s[n])}catch(e){delete s[n],A(t,e,-1);return}e(t,r),delete s[n]},`vi`);return this.Sa[n]=c,this.Sa[r]=l,this.handleError(ue(this.db,n,o.length-1,1,0,0,c,l,0)),this},i.prototype.updateHook=function(e){return this.Ya&&=(xe(this.db,0,0),X(this.Ya),void 0),e?(this.Ya=Pt(function(t,n,r,i,a){switch(n){case 18:t=`insert`;break;case 23:t=`update`;break;case 9:t=`delete`;break;default:throw`unknown operationCode in updateHook callback: `+n}if(r=j(r),i=j(i),a>2**53-1)throw`rowId too big to fit inside a Number`;e(t,r,i,Number(a))},`viiiij`),xe(this.db,this.Ya,0),this):this},s.Database=i};var ee=`./this.program`,te=(e,t)=>{throw t},ne=globalThis.document?.currentScript?.src;typeof __filename<`u`?ne=__filename:l&&(ne=self.location.href);var d=``,f,p;if(u){var m=e();d=__dirname+`/`,p=e=>(e=_(e)?new URL(e):e,m.readFileSync(e)),f=async e=>(e=_(e)?new URL(e):e,m.readFileSync(e,void 0)),1<process.argv.length&&(ee=process.argv[1].replace(/\\/g,`/`)),process.argv.slice(2),n!==void 0&&(n.exports=s),te=(e,t)=>{throw process.exitCode=e,t}}else if(c||l){try{d=new URL(`.`,ne).href}catch{}l&&(p=e=>{var t=new XMLHttpRequest;return t.open(`GET`,e,!1),t.responseType=`arraybuffer`,t.send(null),new Uint8Array(t.response)}),f=async e=>{if(_(e))return new Promise((t,n)=>{var r=new XMLHttpRequest;r.open(`GET`,e,!0),r.responseType=`arraybuffer`,r.onload=()=>{r.status==200||r.status==0&&r.response?t(r.response):n(r.status)},r.onerror=n,r.send(null)});var t=await fetch(e,{credentials:`same-origin`});if(t.ok)return t.arrayBuffer();throw Error(t.status+` : `+t.url)}}var re=console.log.bind(console),h=console.error.bind(console),g,ie=!1,ae,_=e=>e.startsWith(`file://`),v,y,b,x,S,oe,se,C;function ce(){var e=Bt.buffer;v=new Int8Array(e),b=new Int16Array(e),y=new Uint8Array(e),new Uint16Array(e),x=new Int32Array(e),S=new Uint32Array(e),oe=new Float32Array(e),se=new Float64Array(e),C=new BigInt64Array(e),new BigUint64Array(e)}function w(e){throw s.onAbort?.(e),e=`Aborted(`+e+`)`,h(e),ie=!0,new WebAssembly.RuntimeError(e+`. Build with -sASSERTIONS for more info.`)}var le;async function ue(e){if(!g)try{var t=await f(e);return new Uint8Array(t)}catch{}if(e==le&&g)e=new Uint8Array(g);else if(p)e=p(e);else throw`both async and sync fetching of the wasm failed`;return e}async function de(e,t){try{var n=await ue(e);return await WebAssembly.instantiate(n,t)}catch(e){h(`failed to asynchronously prepare wasm: ${e}`),w(e)}}async function fe(e){var t=le;if(!g&&!_(t)&&!u)try{var n=fetch(t,{credentials:`same-origin`});return await WebAssembly.instantiateStreaming(n,e)}catch(e){h(`wasm streaming compile failed: ${e}`),h(`falling back to ArrayBuffer instantiation`)}return de(t,e)}class pe{name=`ExitStatus`;constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var me=e=>{for(;0<e.length;)e.shift()(s)},he=[],ge=[],_e=()=>{var e=s.preRun.shift();ge.push(e)},T=0,E=null;function D(e,t=`i8`){switch(t.endsWith(`*`)&&(t=`*`),t){case`i1`:return v[e];case`i8`:return v[e];case`i16`:return b[e>>1];case`i32`:return x[e>>2];case`i64`:return C[e>>3];case`float`:return oe[e>>2];case`double`:return se[e>>3];case`*`:return S[e>>2];default:w(`invalid type for getValue: ${t}`)}}var O=!0;function k(e){var t=`i32`;switch(t.endsWith(`*`)&&(t=`*`),t){case`i1`:v[e]=0;break;case`i8`:v[e]=0;break;case`i16`:b[e>>1]=0;break;case`i32`:x[e>>2]=0;break;case`i64`:C[e>>3]=BigInt(0);break;case`float`:oe[e>>2]=0;break;case`double`:se[e>>3]=0;break;case`*`:S[e>>2]=0;break;default:w(`invalid type for setValue: ${t}`)}}var A=new TextDecoder,ve=(e,t,n,r)=>{if(n=t+n,r)return n;for(;e[t]&&!(t>=n);)++t;return t},j=(e,t,n)=>e?A.decode(y.subarray(e,ve(y,e,t,n))):``,ye=(e,t)=>{for(var n=0,r=e.length-1;0<=r;r--){var i=e[r];i===`.`?e.splice(r,1):i===`..`?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n;n--)e.unshift(`..`);return e},be=e=>{var t=e.charAt(0)===`/`,n=e.slice(-1)===`/`;return(e=ye(e.split(`/`).filter(e=>!!e),!t).join(`/`))||t||(e=`.`),e&&n&&(e+=`/`),(t?`/`:``)+e},xe=e=>{var t=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1);return e=t[0],t=t[1],!e&&!t?`.`:(t&&=t.slice(0,-1),e+t)},Se=e=>e&&e.match(/([^\/]+|\/)\/*$/)[1],Ce=()=>{if(u){var t=e();return e=>t.randomFillSync(e)}return e=>crypto.getRandomValues(e)},we=e=>{(we=Ce())(e)},Te=(...e)=>{for(var t=``,n=!1,r=e.length-1;-1<=r&&!n;r--){if(n=0<=r?e[r]:`/`,typeof n!=`string`)throw TypeError(`Arguments to path.resolve must be strings`);if(!n)return``;t=n+`/`+t,n=n.charAt(0)===`/`}return t=ye(t.split(`/`).filter(e=>!!e),!n).join(`/`),(n?`/`:``)+t||`.`},M=e=>{var t=ve(e,0);return A.decode(e.buffer?e.subarray(0,t):new Uint8Array(e.slice(0,t)))},Ee=[],N=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);127>=r?t++:2047>=r?t+=2:55296<=r&&57343>=r?(t+=4,++n):t+=3}return t},P=(e,t,n,r)=>{if(!(0<r))return 0;var i=n;r=n+r-1;for(var a=0;a<e.length;++a){var o=e.codePointAt(a);if(127>=o){if(n>=r)break;t[n++]=o}else if(2047>=o){if(n+1>=r)break;t[n++]=192|o>>6,t[n++]=128|o&63}else if(65535>=o){if(n+2>=r)break;t[n++]=224|o>>12,t[n++]=128|o>>6&63,t[n++]=128|o&63}else{if(n+3>=r)break;t[n++]=240|o>>18,t[n++]=128|o>>12&63,t[n++]=128|o>>6&63,t[n++]=128|o&63,a++}}return t[n]=0,n-i},De=[];function Oe(e,t){De[e]={input:[],output:[],cb:t},$e(e,ke)}var ke={open(e){var t=De[e.node.rdev];if(!t)throw new R(43);e.tty=t,e.seekable=!1},close(e){e.tty.cb.fsync(e.tty)},fsync(e){e.tty.cb.fsync(e.tty)},read(e,t,n,r){if(!e.tty||!e.tty.cb.xb)throw new R(60);for(var i=0,a=0;a<r;a++){try{var o=e.tty.cb.xb(e.tty)}catch{throw new R(29)}if(o===void 0&&i===0)throw new R(6);if(o==null)break;i++,t[n+a]=o}return i&&(e.node.atime=Date.now()),i},write(e,t,n,r){if(!e.tty||!e.tty.cb.rb)throw new R(60);try{for(var i=0;i<r;i++)e.tty.cb.rb(e.tty,t[n+i])}catch{throw new R(29)}return r&&(e.node.mtime=e.node.ctime=Date.now()),i}},Ae={xb(){a:{if(!Ee.length){var e=null;if(u){var t=Buffer.alloc(256),n=0,r=process.stdin.fd;try{n=m.readSync(r,t,0,256)}catch(e){if(e.toString().includes(`EOF`))n=0;else throw e}0<n&&(e=t.slice(0,n).toString(`utf-8`))}else globalThis.window?.prompt&&(e=window.prompt(`Input: `),e!==null&&(e+=`
2
2
  `));if(!e){e=null;break a}t=Array(N(e)+1),e=P(e,t,0,t.length),t.length=e,Ee=t}e=Ee.shift()}return e},rb(e,t){t===null||t===10?(re(M(e.output)),e.output=[]):t!=0&&e.output.push(t)},fsync(e){0<e.output?.length&&(re(M(e.output)),e.output=[])},Tb(){return{Ob:25856,Qb:5,Nb:191,Pb:35387,Mb:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},Ub(){return 0},Vb(){return[24,80]}},je={rb(e,t){t===null||t===10?(h(M(e.output)),e.output=[]):t!=0&&e.output.push(t)},fsync(e){0<e.output?.length&&(h(M(e.output)),e.output=[])}},F={Wa:null,Xa(){return F.createNode(null,`/`,16895,0)},createNode(e,t,n,r){if((n&61440)==24576||(n&61440)==4096)throw new R(63);return F.Wa||={dir:{node:{Ta:F.La.Ta,Ua:F.La.Ua,lookup:F.La.lookup,hb:F.La.hb,rename:F.La.rename,unlink:F.La.unlink,rmdir:F.La.rmdir,readdir:F.La.readdir,symlink:F.La.symlink},stream:{Va:F.Ma.Va}},file:{node:{Ta:F.La.Ta,Ua:F.La.Ua},stream:{Va:F.Ma.Va,read:F.Ma.read,write:F.Ma.write,ib:F.Ma.ib,jb:F.Ma.jb}},link:{node:{Ta:F.La.Ta,Ua:F.La.Ua,readlink:F.La.readlink},stream:{}},vb:{node:{Ta:F.La.Ta,Ua:F.La.Ua},stream:Qe}},n=We(e,t,n,r),V(n.mode)?(n.La=F.Wa.dir.node,n.Ma=F.Wa.dir.stream,n.Na={}):(n.mode&61440)==32768?(n.La=F.Wa.file.node,n.Ma=F.Wa.file.stream,n.Ra=0,n.Na=null):(n.mode&61440)==40960?(n.La=F.Wa.link.node,n.Ma=F.Wa.link.stream):(n.mode&61440)==8192&&(n.La=F.Wa.vb.node,n.Ma=F.Wa.vb.stream),n.atime=n.mtime=n.ctime=Date.now(),e&&(e.Na[t]=n,e.atime=e.mtime=e.ctime=n.atime),n},Sb(e){return e.Na?e.Na.subarray?e.Na.subarray(0,e.Ra):new Uint8Array(e.Na):new Uint8Array},La:{Ta(e){var t={};return t.dev=(e.mode&61440)==8192?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,V(e.mode)?t.size=4096:(e.mode&61440)==32768?t.size=e.Ra:(e.mode&61440)==40960?t.size=e.link.length:t.size=0,t.atime=new Date(e.atime),t.mtime=new Date(e.mtime),t.ctime=new Date(e.ctime),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},Ua(e,t){for(var n of[`mode`,`atime`,`mtime`,`ctime`])t[n]!=null&&(e[n]=t[n]);t.size!==void 0&&(t=t.size,e.Ra!=t&&(t==0?(e.Na=null,e.Ra=0):(n=e.Na,e.Na=new Uint8Array(t),n&&e.Na.set(n.subarray(0,Math.min(t,e.Ra))),e.Ra=t)))},lookup(){throw F.mb||(F.mb=new R(44),F.mb.stack=`<generic error, no stack>`),F.mb},hb(e,t,n,r){return F.createNode(e,t,n,r)},rename(e,t,n){try{var r=B(t,n)}catch{}if(r){if(V(e.mode))for(var i in r.Na)throw new R(55);Ue(r)}delete e.parent.Na[e.name],t.Na[n]=e,e.name=n,t.ctime=t.mtime=e.parent.ctime=e.parent.mtime=Date.now()},unlink(e,t){delete e.Na[t],e.ctime=e.mtime=Date.now()},rmdir(e,t){var n=B(e,t),r;for(r in n.Na)throw new R(55);delete e.Na[t],e.ctime=e.mtime=Date.now()},readdir(e){return[`.`,`..`,...Object.keys(e.Na)]},symlink(e,t,n){return e=F.createNode(e,t,41471,0),e.link=n,e},readlink(e){if((e.mode&61440)!=40960)throw new R(28);return e.link}},Ma:{read(e,t,n,r,i){var a=e.node.Na;if(i>=e.node.Ra)return 0;if(e=Math.min(e.node.Ra-i,r),8<e&&a.subarray)t.set(a.subarray(i,i+e),n);else for(r=0;r<e;r++)t[n+r]=a[i+r];return e},write(e,t,n,r,i,a){if(t.buffer===v.buffer&&(a=!1),!r)return 0;if(e=e.node,e.mtime=e.ctime=Date.now(),t.subarray&&(!e.Na||e.Na.subarray)){if(a)return e.Na=t.subarray(n,n+r),e.Ra=r;if(e.Ra===0&&i===0)return e.Na=t.slice(n,n+r),e.Ra=r;if(i+r<=e.Ra)return e.Na.set(t.subarray(n,n+r),i),r}a=i+r;var o=e.Na?e.Na.length:0;if(o>=a||(a=Math.max(a,o*(1048576>o?2:1.125)>>>0),o!=0&&(a=Math.max(a,256)),o=e.Na,e.Na=new Uint8Array(a),0<e.Ra&&e.Na.set(o.subarray(0,e.Ra),0)),e.Na.subarray&&t.subarray)e.Na.set(t.subarray(n,n+r),i);else for(a=0;a<r;a++)e.Na[i+a]=t[n+a];return e.Ra=Math.max(e.Ra,i+r),r},Va(e,t,n){if(n===1?t+=e.position:n===2&&(e.node.mode&61440)==32768&&(t+=e.node.Ra),0>t)throw new R(28);return t},ib(e,t,n,r,i){if((e.node.mode&61440)!=32768)throw new R(43);if(e=e.node.Na,i&2||!e||e.buffer!==v.buffer){i=!0,r=65536*Math.ceil(t/65536);var a=It(65536,r);if(a&&y.fill(0,a,a+r),r=a,!r)throw new R(48);e&&((0<n||n+t<e.length)&&(e=e.subarray?e.subarray(n,n+t):Array.prototype.slice.call(e,n,n+t)),v.set(e,r))}else i=!1,r=e.byteOffset;return{Kb:r,Ab:i}},jb(e,t,n,r){return F.Ma.write(e,t,0,r,n,!1),0}}},Me=(e,t)=>{var n=0;return e&&(n|=365),t&&(n|=146),n},Ne=null,Pe={},I=[],Fe=1,L=null,Ie=!1,Le=!0,Re={},R=class{name=`ErrnoError`;constructor(e){this.Pa=e}},ze=class{gb={};node=null;get flags(){return this.gb.flags}set flags(e){this.gb.flags=e}get position(){return this.gb.position}set position(e){this.gb.position=e}},Be=class{La={};Ma={};ab=null;constructor(e,t,n,r){e||=this,this.parent=e,this.Xa=e.Xa,this.id=Fe++,this.name=t,this.mode=n,this.rdev=r,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&365)==365}set read(e){e?this.mode|=365:this.mode&=-366}get write(){return(this.mode&146)==146}set write(e){e?this.mode|=146:this.mode&=-147}};function z(e,t={}){if(!e)throw new R(44);t.ob??=!0,e.charAt(0)===`/`||(e=`//`+e);var n=0;a:for(;40>n;n++){e=e.split(`/`).filter(e=>!!e);for(var r=Ne,i=`/`,a=0;a<e.length;a++){var o=a===e.length-1;if(o&&t.parent)break;if(e[a]!==`.`)if(e[a]===`..`)if(i=xe(i),r===r.parent){e=i+`/`+e.slice(a+1).join(`/`),n--;continue a}else r=r.parent;else{i=be(i+`/`+e[a]);try{r=B(r,e[a])}catch(e){if(e?.Pa===44&&o&&t.Jb)return{path:i};throw e}if(!r.ab||o&&!t.ob||(r=r.ab.root),(r.mode&61440)==40960&&(!o||t.$a)){if(!r.La.readlink)throw new R(52);r=r.La.readlink(r),r.charAt(0)===`/`||(r=xe(i)+`/`+r),e=r+`/`+e.slice(a+1).join(`/`);continue a}}}return{path:i,node:r}}throw new R(32)}function Ve(e){for(var t;;){if(e===e.parent)return e=e.Xa.zb,t?e[e.length-1]===`/`?e+t:`${e}/${t}`:e;t=t?`${e.name}/${t}`:e.name,e=e.parent}}function He(e,t){for(var n=0,r=0;r<t.length;r++)n=(n<<5)-n+t.charCodeAt(r)|0;return(e+n>>>0)%L.length}function Ue(e){var t=He(e.parent.id,e.name);if(L[t]===e)L[t]=e.bb;else for(t=L[t];t;){if(t.bb===e){t.bb=e.bb;break}t=t.bb}}function B(e,t){var n=V(e.mode)?(n=H(e,`x`))?n:e.La.lookup?0:2:54;if(n)throw new R(n);for(n=L[He(e.id,t)];n;n=n.bb){var r=n.name;if(n.parent.id===e.id&&r===t)return n}return e.La.lookup(e,t)}function We(e,t,n,r){return e=new Be(e,t,n,r),t=He(e.parent.id,e.name),e.bb=L[t],L[t]=e}function V(e){return(e&61440)==16384}function Ge(e){var t=[`r`,`w`,`rw`][e&3];return e&512&&(t+=`w`),t}function H(e,t){if(Le)return 0;if(!t.includes(`r`)||e.mode&292){if(t.includes(`w`)&&!(e.mode&146)||t.includes(`x`)&&!(e.mode&73))return 2}else return 2;return 0}function Ke(e,t){if(!V(e.mode))return 54;try{return B(e,t),20}catch{}return H(e,`wx`)}function qe(e,t,n){try{var r=B(e,t)}catch(e){return e.Pa}if(e=H(e,`wx`))return e;if(n){if(!V(r.mode))return 54;if(r===r.parent||Ve(r)===`/`)return 10}else if(V(r.mode))return 31;return 0}function Je(e){if(!e)throw new R(63);return e}function U(e){if(e=I[e],!e)throw new R(8);return e}function Ye(e,t=-1){if(e=Object.assign(new ze,e),t==-1)a:{for(t=0;4096>=t;t++)if(!I[t])break a;throw new R(33)}return e.fd=t,I[t]=e}function Xe(e,t=-1){return e=Ye(e,t),e.Ma?.Rb?.(e),e}function Ze(e,t,n){var r=e?.Ma.Ua;e=r?e:t,r??=t.La.Ua,Je(r),r(e,n)}var Qe={open(e){e.Ma=Pe[e.node.rdev].Ma,e.Ma.open?.(e)},Va(){throw new R(70)}};function $e(e,t){Pe[e]={Ma:t}}function et(e,t){var n=t===`/`;if(n&&Ne)throw new R(10);if(!n&&t){var r=z(t,{ob:!1});if(t=r.path,r=r.node,r.ab)throw new R(10);if(!V(r.mode))throw new R(54)}t={type:e,Wb:{},zb:t,Ib:[]},e=e.Xa(t),e.Xa=t,t.root=e,n?Ne=e:r&&(r.ab=t,r.Xa&&r.Xa.Ib.push(t))}function tt(e,t,n){var r=z(e,{parent:!0}).node;if(e=Se(e),!e)throw new R(28);if(e===`.`||e===`..`)throw new R(20);var i=Ke(r,e);if(i)throw new R(i);if(!r.La.hb)throw new R(63);return r.La.hb(r,e,t,n)}function nt(e,t=438){return tt(e,t&4095|32768,0)}function W(e,t=511){return tt(e,t&1023|16384,0)}function rt(e,t,n){n===void 0&&(n=t,t=438),tt(e,t|8192,n)}function it(e,t){if(!Te(e))throw new R(44);var n=z(t,{parent:!0}).node;if(!n)throw new R(44);t=Se(t);var r=Ke(n,t);if(r)throw new R(r);if(!n.La.symlink)throw new R(63);n.La.symlink(n,t,e)}function at(e){var t=z(e,{parent:!0}).node;e=Se(e);var n=B(t,e),r=qe(t,e,!0);if(r)throw new R(r);if(!t.La.rmdir)throw new R(63);if(n.ab)throw new R(10);t.La.rmdir(t,e),Ue(n)}function ot(e){var t=z(e,{parent:!0}).node;if(!t)throw new R(44);e=Se(e);var n=B(t,e),r=qe(t,e,!1);if(r)throw new R(r);if(!t.La.unlink)throw new R(63);if(n.ab)throw new R(10);t.La.unlink(t,e),Ue(n)}function st(e,t){return e=z(e,{$a:!t}).node,Je(e.La.Ta)(e)}function ct(e,t,n,r){Ze(e,t,{mode:n&4095|t.mode&-4096,ctime:Date.now(),Fb:r})}function lt(e,t){e=typeof e==`string`?z(e,{$a:!0}).node:e,ct(null,e,t)}function ut(e,t,n){if(V(t.mode))throw new R(31);if((t.mode&61440)!=32768)throw new R(28);var r=H(t,`w`);if(r)throw new R(r);Ze(e,t,{size:n,timestamp:Date.now()})}function G(e,t,n=438){if(e===``)throw new R(44);if(typeof t==`string`){var r={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[t];if(r===void 0)throw Error(`Unknown file open mode: ${t}`);t=r}if(n=t&64?n&4095|32768:0,typeof e==`object`)r=e;else{var i=e.endsWith(`/`);e=z(e,{$a:!(t&131072),Jb:!0}),r=e.node,e=e.path}var a=!1;if(t&64)if(r){if(t&128)throw new R(20)}else{if(i)throw new R(31);r=tt(e,n|511,0),a=!0}if(!r)throw new R(44);if((r.mode&61440)==8192&&(t&=-513),t&65536&&!V(r.mode))throw new R(54);if(!a&&(i=r?(r.mode&61440)==40960?32:V(r.mode)&&(Ge(t)!==`r`||t&576)?31:H(r,Ge(t)):44))throw new R(i);return t&512&&!a&&(i=r,i=typeof i==`string`?z(i,{$a:!0}).node:i,ut(null,i,0)),t&=-131713,i=Ye({node:r,path:Ve(r),flags:t,seekable:!0,position:0,Ma:r.Ma,Lb:[],error:!1}),i.Ma.open&&i.Ma.open(i),a&&lt(r,n&511),!s.logReadFiles||t&1||e in Re||(Re[e]=1),i}function dt(e){if(e.fd===null)throw new R(8);e.pb&&=null;try{e.Ma.close&&e.Ma.close(e)}catch(e){throw e}finally{I[e.fd]=null}e.fd=null}function ft(e,t,n){if(e.fd===null)throw new R(8);if(!e.seekable||!e.Ma.Va)throw new R(70);if(n!=0&&n!=1&&n!=2)throw new R(28);e.position=e.Ma.Va(e,t,n),e.Lb=[]}function pt(e,t,n,r,i){if(0>r||0>i)throw new R(28);if(e.fd===null||(e.flags&2097155)==1)throw new R(8);if(V(e.node.mode))throw new R(31);if(!e.Ma.read)throw new R(28);var a=i!==void 0;if(!a)i=e.position;else if(!e.seekable)throw new R(70);return t=e.Ma.read(e,t,n,r,i),a||(e.position+=t),t}function mt(e,t,n,r,i){if(0>r||0>i)throw new R(28);if(e.fd===null||!(e.flags&2097155))throw new R(8);if(V(e.node.mode))throw new R(31);if(!e.Ma.write)throw new R(28);e.seekable&&e.flags&1024&&ft(e,0,2);var a=i!==void 0;if(!a)i=e.position;else if(!e.seekable)throw new R(70);return t=e.Ma.write(e,t,n,r,i,void 0),a||(e.position+=t),t}function ht(e){var t=t||0,n=`binary`;n!==`utf8`&&n!==`binary`&&w(`Invalid encoding type "${n}"`),t=G(e,t),e=st(e).size;var r=new Uint8Array(e);return pt(t,r,0,e,0),n===`utf8`&&(r=M(r)),dt(t),r}function K(e,t,n){e=be(`/dev/`+e);var r=Me(!!t,!!n);K.yb??=64;var i=K.yb++<<8|0;$e(i,{open(e){e.seekable=!1},close(){n?.buffer?.length&&n(10)},read(e,n,r,i){for(var a=0,o=0;o<i;o++){try{var s=t()}catch{throw new R(29)}if(s===void 0&&a===0)throw new R(6);if(s==null)break;a++,n[r+o]=s}return a&&(e.node.atime=Date.now()),a},write(e,t,r,i){for(var a=0;a<i;a++)try{n(t[r+a])}catch{throw new R(29)}return i&&(e.node.mtime=e.node.ctime=Date.now()),a}}),rt(e,r,i)}var q={};function J(e,t,n){if(t.charAt(0)===`/`)return t;if(e=e===-100?`/`:U(e).path,t.length==0){if(!n)throw new R(44);return e}return e+`/`+t}function gt(e,t){S[e>>2]=t.dev,S[e+4>>2]=t.mode,S[e+8>>2]=t.nlink,S[e+12>>2]=t.uid,S[e+16>>2]=t.gid,S[e+20>>2]=t.rdev,C[e+24>>3]=BigInt(t.size),x[e+32>>2]=4096,x[e+36>>2]=t.blocks;var n=t.atime.getTime(),r=t.mtime.getTime(),i=t.ctime.getTime();return C[e+40>>3]=BigInt(Math.floor(n/1e3)),S[e+48>>2]=n%1e3*1e6,C[e+56>>3]=BigInt(Math.floor(r/1e3)),S[e+64>>2]=r%1e3*1e6,C[e+72>>3]=BigInt(Math.floor(i/1e3)),S[e+80>>2]=i%1e3*1e6,C[e+88>>3]=BigInt(t.ino),0}var _t=void 0,vt=()=>{var e=x[_t>>2];return _t+=4,e},yt=0,bt=[0,31,60,91,121,152,182,213,244,274,305,335],xt=[0,31,59,90,120,151,181,212,243,273,304,334],St={},Ct=e=>{ae=e,O||0<yt||(s.onExit?.(e),ie=!0),te(e,new pe(e))},wt=e=>{if(!ie)try{e()}catch(e){e instanceof pe||e==`unwind`||te(1,e)}finally{if(!(O||0<yt))try{ae=e=ae,Ct(e)}catch(e){e instanceof pe||e==`unwind`||te(1,e)}}},Tt={},Et=()=>{if(!Dt){var e={USER:`web_user`,LOGNAME:`web_user`,PATH:`/`,PWD:`/`,HOME:`/home/web_user`,LANG:(globalThis.navigator?.language??`C`).replace(`-`,`_`)+`.UTF-8`,_:ee||`./this.program`},t;for(t in Tt)Tt[t]===void 0?delete e[t]:e[t]=Tt[t];var n=[];for(t in e)n.push(`${t}=${e[t]}`);Dt=n}return Dt},Dt,Ot=(e,t,n,r)=>{var i={string:e=>{var t=0;if(e!=null&&e!==0){t=N(e)+1;var n=Q(t);P(e,y,n,t),t=n}return t},array:e=>{var t=Q(e.length);return v.set(e,t),t}};e=s[`_`+e];var a=[],o=0;if(r)for(var c=0;c<r.length;c++){var l=i[n[c]];l?(o===0&&(o=zt()),a[c]=l(r[c])):a[c]=r[c]}return n=e(...a),n=function(e){return o!==0&&Rt(o),t===`string`?j(e):t===`boolean`?!!e:e}(n)},kt=e=>{var t=N(e)+1,n=Ft(t);return n&&P(e,y,n,t),n},Y,At=[],X=e=>{Y.delete($.get(e)),$.set(e,null),At.push(e)},jt=e=>{let t=e.length;return[t%128|128,t>>7,...e]},Mt={i:127,p:127,j:126,f:125,d:124,e:111},Nt=e=>jt(Array.from(e,e=>Mt[e])),Pt=(e,t)=>{if(!Y){Y=new WeakMap;var n=$.length;if(Y)for(var r=0;r<0+n;r++){var i=$.get(r);i&&Y.set(i,r)}}if(n=Y.get(e)||0)return n;n=At.length?At.pop():$.grow(1);try{$.set(n,e)}catch(r){if(!(r instanceof TypeError))throw r;t=Uint8Array.of(0,97,115,109,1,0,0,0,1,...jt([1,96,...Nt(t.slice(1)),...Nt(t[0]===`v`?``:t[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),t=new WebAssembly.Module(t),t=new WebAssembly.Instance(t,{e:{f:e}}).exports.f,$.set(n,t)}return Y.set(e,n),n};if(L=Array(4096),et(F,`/`),W(`/tmp`),W(`/home`),W(`/home/web_user`),(function(){W(`/dev`),$e(259,{read:()=>0,write:(e,t,n,r)=>r,Va:()=>0}),rt(`/dev/null`,259),Oe(1280,Ae),Oe(1536,je),rt(`/dev/tty`,1280),rt(`/dev/tty1`,1536);var e=new Uint8Array(1024),t=0,n=()=>(t===0&&(we(e),t=e.byteLength),e[--t]);K(`random`,n),K(`urandom`,n),W(`/dev/shm`),W(`/dev/shm/tmp`)})(),(function(){W(`/proc`);var e=W(`/proc/self`);W(`/proc/self/fd`),et({Xa(){var t=We(e,`fd`,16895,73);return t.Ma={Va:F.Ma.Va},t.La={lookup(e,t){e=+t;var n=U(e);return e={parent:null,Xa:{zb:`fake`},La:{readlink:()=>n.path},id:e+1},e.parent=e},readdir(){return Array.from(I.entries()).filter(([,e])=>e).map(([e])=>e.toString())}},t}},`/proc/self/fd`)})(),s.noExitRuntime&&(O=s.noExitRuntime),s.print&&(re=s.print),s.printErr&&(h=s.printErr),s.wasmBinary&&(g=s.wasmBinary),s.thisProgram&&(ee=s.thisProgram),s.preInit)for(typeof s.preInit==`function`&&(s.preInit=[s.preInit]);0<s.preInit.length;)s.preInit.shift()();s.stackSave=()=>zt(),s.stackRestore=e=>Rt(e),s.stackAlloc=e=>Q(e),s.cwrap=(e,t,n,r)=>{var i=!n||n.every(e=>e===`number`||e===`boolean`);return t!==`string`&&i&&!r?s[`_`+e]:(...r)=>Ot(e,t,n,r)},s.addFunction=Pt,s.removeFunction=X,s.UTF8ToString=j,s.stringToNewUTF8=kt,s.writeArrayToMemory=(e,t)=>{v.set(e,t)};var Ft,Z,It,Lt,Rt,Q,zt,Bt,$,Vt={a:(e,t,n,r)=>w(`Assertion failed: ${j(e)}, at: `+[t?j(t):`unknown filename`,n,r?j(r):`unknown function`]),i:function(e,t){try{return e=j(e),lt(e,t),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},L:function(e,t,n){try{if(t=j(t),t=J(e,t),n&-8)return-28;var r=z(t,{$a:!0}).node;return r?(e=``,n&4&&(e+=`r`),n&2&&(e+=`w`),n&1&&(e+=`x`),e&&H(r,e)?-2:0):-44}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},j:function(e,t){try{var n=U(e);return ct(n,n.node,t,!1),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},h:function(e){try{var t=U(e);return Ze(t,t.node,{timestamp:Date.now(),Fb:!1}),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},b:function(e,t,n){_t=n;try{var r=U(e);switch(t){case 0:var i=vt();if(0>i)break;for(;I[i];)i++;return Xe(r,i).fd;case 1:case 2:return 0;case 3:return r.flags;case 4:return i=vt(),r.flags|=i,0;case 12:return i=vt(),b[i+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},g:function(e,t){try{var n=U(e),r=n.node,i=n.Ma.Ta;return e=i?n:r,i??=r.La.Ta,Je(i),gt(t,i(e))}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},H:function(e,t){t=-9007199254740992>t||9007199254740992<t?NaN:Number(t);try{if(isNaN(t))return-61;var n=U(e);if(0>t||!(n.flags&2097155))throw new R(28);return ut(n,n.node,t),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},G:function(e,t){try{if(t===0)return-28;var n=N(`/`)+1;return t<n?-68:(P(`/`,y,e,t),n)}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},K:function(e,t){try{return e=j(e),gt(t,st(e,!0))}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},C:function(e,t,n){try{return t=j(t),t=J(e,t),W(t,n),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},J:function(e,t,n,r){try{t=j(t);var i=r&256;return t=J(e,t,r&4096),gt(n,i?st(t,!0):st(t))}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},x:function(e,t,n,r){_t=r;try{t=j(t),t=J(e,t);var i=r?vt():0;return G(t,n,i).fd}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},v:function(e,t,n,r){try{if(t=j(t),t=J(e,t),0>=r)return-28;var i=z(t).node;if(!i)throw new R(44);if(!i.La.readlink)throw new R(28);var a=i.La.readlink(i),o=Math.min(r,N(a)),s=v[n+o];return P(a,y,n,r+1),v[n+o]=s,o}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},u:function(e){try{return e=j(e),at(e),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},f:function(e,t){try{return e=j(e),gt(t,st(e))}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},r:function(e,t,n){try{if(t=j(t),t=J(e,t),n)if(n===512)at(t);else return-28;else ot(t);return 0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},q:function(e,t,n){try{t=j(t),t=J(e,t,!0);var r=Date.now(),i,a;if(n){var o=S[n>>2]+4294967296*x[n+4>>2],s=x[n+8>>2];i=s==1073741823?r:s==1073741822?null:1e3*o+s/1e6,n+=16,o=S[n>>2]+4294967296*x[n+4>>2],s=x[n+8>>2],a=s==1073741823?r:s==1073741822?null:1e3*o+s/1e6}else a=i=r;if((a??i)!==null){e=i;var c=z(t,{$a:!0}).node;Je(c.La.Ua)(c,{atime:e,mtime:a})}return 0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},m:()=>w(``),l:()=>{O=!1,yt=0},A:function(e,t){e=-9007199254740992>e||9007199254740992<e?NaN:Number(e),e=new Date(1e3*e),x[t>>2]=e.getSeconds(),x[t+4>>2]=e.getMinutes(),x[t+8>>2]=e.getHours(),x[t+12>>2]=e.getDate(),x[t+16>>2]=e.getMonth(),x[t+20>>2]=e.getFullYear()-1900,x[t+24>>2]=e.getDay();var n=e.getFullYear();x[t+28>>2]=(n%4!=0||n%100==0&&n%400!=0?xt:bt)[e.getMonth()]+e.getDate()-1|0,x[t+36>>2]=-(60*e.getTimezoneOffset()),n=new Date(e.getFullYear(),6,1).getTimezoneOffset();var r=new Date(e.getFullYear(),0,1).getTimezoneOffset();x[t+32>>2]=(n!=r&&e.getTimezoneOffset()==Math.min(r,n))|0},y:function(e,t,n,r,i,a,o){i=-9007199254740992>i||9007199254740992<i?NaN:Number(i);try{var s=U(r);if(t&2&&!(n&2)&&(s.flags&2097155)!=2||(s.flags&2097155)==1)throw new R(2);if(!s.Ma.ib)throw new R(43);if(!e)throw new R(28);var c=s.Ma.ib(s,e,i,t,n),l=c.Kb;return x[a>>2]=c.Ab,S[o>>2]=l,0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},z:function(e,t,n,r,i,a){a=-9007199254740992>a||9007199254740992<a?NaN:Number(a);try{var o=U(i);if(n&2){if(n=a,(o.node.mode&61440)!=32768)throw new R(43);if(!(r&2)){var s=y.slice(e,e+t);o.Ma.jb&&o.Ma.jb(o,s,n,t,r)}}}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return-e.Pa}},n:(e,t)=>(St[e]&&(clearTimeout(St[e].id),delete St[e]),t&&(St[e]={id:setTimeout(()=>{delete St[e],wt(()=>Lt(e,performance.now()))},t),Xb:t}),0),B:(e,t,n,r)=>{var i=new Date().getFullYear(),a=new Date(i,0,1).getTimezoneOffset();i=new Date(i,6,1).getTimezoneOffset(),S[e>>2]=60*Math.max(a,i),x[t>>2]=Number(a!=i),t=e=>{var t=Math.abs(e);return`UTC${0<=e?`-`:`+`}${String(Math.floor(t/60)).padStart(2,`0`)}${String(t%60).padStart(2,`0`)}`},e=t(a),t=t(i),i<a?(P(e,y,n,17),P(t,y,r,17)):(P(e,y,r,17),P(t,y,n,17))},d:()=>Date.now(),s:()=>2147483648,c:()=>performance.now(),o:e=>{var t=y.length;if(e>>>=0,2147483648<e)return!1;for(var n=1;4>=n;n*=2){var r=t*(1+.2/n);r=Math.min(r,e+100663296);a:{r=(Math.min(2147483648,65536*Math.ceil(Math.max(e,r)/65536))-Bt.buffer.byteLength+65535)/65536|0;try{Bt.grow(r),ce();var i=1;break a}catch{}i=void 0}if(i)return!0}return!1},E:(e,t)=>{var n=0,r=0,i;for(i of Et()){var a=t+n;S[e+r>>2]=a,n+=P(i,y,a,1/0)+1,r+=4}return 0},F:(e,t)=>{var n=Et();S[e>>2]=n.length,e=0;for(var r of n)e+=N(r)+1;return S[t>>2]=e,0},e:function(e){try{return dt(U(e)),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return e.Pa}},p:function(e,t){try{var n=U(e);return v[t]=n.tty?2:V(n.mode)?3:(n.mode&61440)==40960?7:4,b[t+2>>1]=0,C[t+8>>3]=BigInt(0),C[t+16>>3]=BigInt(0),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return e.Pa}},w:function(e,t,n,r){try{a:{var i=U(e);e=t;for(var a,o=t=0;o<n;o++){var s=S[e>>2],c=S[e+4>>2];e+=8;var l=pt(i,v,s,c,a);if(0>l){var u=-1;break a}if(t+=l,l<c)break;a!==void 0&&(a+=l)}u=t}return S[r>>2]=u,0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return e.Pa}},D:function(e,t,n,r){t=-9007199254740992>t||9007199254740992<t?NaN:Number(t);try{if(isNaN(t))return 61;var i=U(e);return ft(i,t,n),C[r>>3]=BigInt(i.position),i.pb&&t===0&&n===0&&(i.pb=null),0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return e.Pa}},I:function(e){try{var t=U(e);return t.Ma?.fsync?.(t)}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return e.Pa}},t:function(e,t,n,r){try{a:{var i=U(e);e=t;for(var a,o=t=0;o<n;o++){var s=S[e>>2],c=S[e+4>>2];e+=8;var l=mt(i,v,s,c,a);if(0>l){var u=-1;break a}if(t+=l,l<c)break;a!==void 0&&(a+=l)}u=t}return S[r>>2]=u,0}catch(e){if(q===void 0||e.name!==`ErrnoError`)throw e;return e.Pa}},k:Ct};function Ht(){function e(){if(s.calledRun=!0,!ie){if(!s.noFSInit&&!Ie){var e,t;Ie=!0,e??=s.stdin,t??=s.stdout,n??=s.stderr,e?K(`stdin`,e):it(`/dev/tty`,`/dev/stdin`),t?K(`stdout`,null,t):it(`/dev/tty`,`/dev/stdout`),n?K(`stderr`,null,n):it(`/dev/tty1`,`/dev/stderr`),G(`/dev/stdin`,0),G(`/dev/stdout`,1),G(`/dev/stderr`,1)}if(Ut.N(),Le=!1,s.onRuntimeInitialized?.(),s.postRun)for(typeof s.postRun==`function`&&(s.postRun=[s.postRun]);s.postRun.length;){var n=s.postRun.shift();he.push(n)}me(he)}}if(0<T)E=Ht;else{if(s.preRun)for(typeof s.preRun==`function`&&(s.preRun=[s.preRun]);s.preRun.length;)_e();me(ge),0<T?E=Ht:s.setStatus?(s.setStatus(`Running...`),setTimeout(()=>{setTimeout(()=>s.setStatus(``),1),e()},1)):e()}}var Ut;return(async function(){function e(e){return e=Ut=e.exports,s._sqlite3_free=e.P,s._sqlite3_value_text=e.Q,s._sqlite3_prepare_v2=e.R,s._sqlite3_step=e.S,s._sqlite3_reset=e.T,s._sqlite3_exec=e.U,s._sqlite3_finalize=e.V,s._sqlite3_column_name=e.W,s._sqlite3_column_text=e.X,s._sqlite3_column_type=e.Y,s._sqlite3_errmsg=e.Z,s._sqlite3_clear_bindings=e._,s._sqlite3_value_blob=e.$,s._sqlite3_value_bytes=e.aa,s._sqlite3_value_double=e.ba,s._sqlite3_value_int=e.ca,s._sqlite3_value_type=e.da,s._sqlite3_result_blob=e.ea,s._sqlite3_result_double=e.fa,s._sqlite3_result_error=e.ga,s._sqlite3_result_int=e.ha,s._sqlite3_result_int64=e.ia,s._sqlite3_result_null=e.ja,s._sqlite3_result_text=e.ka,s._sqlite3_aggregate_context=e.la,s._sqlite3_column_count=e.ma,s._sqlite3_data_count=e.na,s._sqlite3_column_blob=e.oa,s._sqlite3_column_bytes=e.pa,s._sqlite3_column_double=e.qa,s._sqlite3_bind_blob=e.ra,s._sqlite3_bind_double=e.sa,s._sqlite3_bind_int=e.ta,s._sqlite3_bind_text=e.ua,s._sqlite3_bind_parameter_index=e.va,s._sqlite3_sql=e.wa,s._sqlite3_normalized_sql=e.xa,s._sqlite3_changes=e.ya,s._sqlite3_close_v2=e.za,s._sqlite3_create_function_v2=e.Aa,s._sqlite3_update_hook=e.Ba,s._sqlite3_open=e.Ca,Ft=s._malloc=e.Da,Z=s._free=e.Ea,s._RegisterExtensionFunctions=e.Fa,It=e.Ga,Lt=e.Ha,Rt=e.Ia,Q=e.Ja,zt=e.Ka,Bt=e.M,$=e.O,ce(),T--,s.monitorRunDependencies?.(T),T==0&&E&&(e=E,E=null,e()),Ut}T++,s.monitorRunDependencies?.(T);var t={a:Vt};return s.instantiateWasm?new Promise(n=>{s.instantiateWasm(t,(t,r)=>{n(e(t,r))})}):(le??=s.locateFile?s.locateFile(`sql-wasm.wasm`,d):d+`sql-wasm.wasm`,e((await fe(t)).instance))})(),Ht(),a}),r)};typeof t==`object`&&typeof n==`object`?(n.exports=i,n.exports.default=i):typeof define==`function`&&define.amd?define([],function(){return i}):typeof t==`object`&&(t.Module=i)}));export default n();
@@ -1 +1 @@
1
- import{dt as e,h as t,mt as n,y as r}from"./kernel-worker-qa_GIQ_O.js";var i=n({MCP_STORE_PATH:()=>o,deleteServer:()=>_,getServer:()=>h,listServers:()=>v,readMcpAuthEntries:()=>b,readMcpAuthEntry:()=>y,readServersFile:()=>p,setServer:()=>g,writeServersFile:()=>m});const a=e(`mcp-store`),o=`/workspace/.mcp/servers.json`;let s=null,c=null;async function l(){return s||=await import(`./kernel-worker-qa_GIQ_O.js`).then(e=>e.v),s}async function u(e){if(e)return e;if(c&&c.dbName===`slicc-fs-global`)return c.instance;let{VirtualFS:n}=await l(),r=await n.create({dbName:t});return c={instance:r,dbName:t},r}function d(){return{version:1,servers:{}}}function f(e){if(!e||typeof e!=`object`)return d();let t=e,n=typeof t.version==`number`?t.version:1,r={};if(t.servers&&typeof t.servers==`object`)for(let[e,n]of Object.entries(t.servers)){if(!n||typeof n!=`object`)continue;let t=n;typeof t.url==`string`&&(r[e]=t)}return{version:n,servers:r}}async function p(e){try{let t=await(await u(e)).readFile(o,{encoding:`utf-8`});try{return f(JSON.parse(t))}catch(e){return a.warn(`servers.json is not valid JSON; treating as empty`,{error:e instanceof Error?e.message:String(e)}),d()}}catch(e){return e instanceof r&&e.code===`ENOENT`||a.warn(`Failed to read servers.json`,{error:e instanceof Error?e.message:String(e)}),d()}}async function m(e,t){let n=await u(t);await n.mkdir(`/workspace/.mcp`,{recursive:!0});let r={version:e.version||1,servers:e.servers??{}};await n.writeFile(o,JSON.stringify(r,null,2))}async function h(e,t){return(await p(t)).servers[e]??null}async function g(e,t,n){let r=await p(n),i={...r.servers[e],...t};return r.servers[e]=i,await m(r,n),i}async function _(e,t){let n=await p(t);return e in n.servers?(delete n.servers[e],await m(n,t),!0):!1}async function v(e){return(await p(e)).servers}async function y(e){let t=await h(e);return!t?.url||!t.auth?.clientId?null:{name:e,serverUrl:t.url,auth:t.auth}}async function b(){let e=await v(),t=[];for(let[n,r]of Object.entries(e))!r?.url||!r.auth?.clientId||t.push({name:n,serverUrl:r.url,auth:r.auth});return t}export{y as n,i as r,b as t};
1
+ import{dt as e,h as t,mt as n,y as r}from"./kernel-worker-DrqmmlLF.js";var i=n({MCP_STORE_PATH:()=>o,deleteServer:()=>_,getServer:()=>h,listServers:()=>v,readMcpAuthEntries:()=>b,readMcpAuthEntry:()=>y,readServersFile:()=>p,setServer:()=>g,writeServersFile:()=>m});const a=e(`mcp-store`),o=`/workspace/.mcp/servers.json`;let s=null,c=null;async function l(){return s||=await import(`./kernel-worker-DrqmmlLF.js`).then(e=>e.v),s}async function u(e){if(e)return e;if(c&&c.dbName===`slicc-fs-global`)return c.instance;let{VirtualFS:n}=await l(),r=await n.create({dbName:t});return c={instance:r,dbName:t},r}function d(){return{version:1,servers:{}}}function f(e){if(!e||typeof e!=`object`)return d();let t=e,n=typeof t.version==`number`?t.version:1,r={};if(t.servers&&typeof t.servers==`object`)for(let[e,n]of Object.entries(t.servers)){if(!n||typeof n!=`object`)continue;let t=n;typeof t.url==`string`&&(r[e]=t)}return{version:n,servers:r}}async function p(e){try{let t=await(await u(e)).readFile(o,{encoding:`utf-8`});try{return f(JSON.parse(t))}catch(e){return a.warn(`servers.json is not valid JSON; treating as empty`,{error:e instanceof Error?e.message:String(e)}),d()}}catch(e){return e instanceof r&&e.code===`ENOENT`||a.warn(`Failed to read servers.json`,{error:e instanceof Error?e.message:String(e)}),d()}}async function m(e,t){let n=await u(t);await n.mkdir(`/workspace/.mcp`,{recursive:!0});let r={version:e.version||1,servers:e.servers??{}};await n.writeFile(o,JSON.stringify(r,null,2))}async function h(e,t){return(await p(t)).servers[e]??null}async function g(e,t,n){let r=await p(n),i={...r.servers[e],...t};return r.servers[e]=i,await m(r,n),i}async function _(e,t){let n=await p(t);return e in n.servers?(delete n.servers[e],await m(n,t),!0):!1}async function v(e){return(await p(e)).servers}async function y(e){let t=await h(e);return!t?.url||!t.auth?.clientId?null:{name:e,serverUrl:t.url,auth:t.auth}}async function b(){let e=await v(),t=[];for(let[n,r]of Object.entries(e))!r?.url||!r.auth?.clientId||t.push({name:n,serverUrl:r.url,auth:r.auth});return t}export{y as n,i as r,b as t};
@@ -1 +1 @@
1
- import{C as e,w as t}from"./main-pholQCCK.js";async function n(n,i){let a=i.getLeader()?`leader`:i.getFollower()?`follower`:`inactive`,o=i.getLeader();i.setLeader(null);let s=i.getFollower();i.setFollower(null),i.clearLeaderHooks();let{requestId:c}=n;try{o?.stop()}catch(e){i.log.error(`Leader stop threw during tray-leave — resources may have leaked`,{requestId:c,error:e instanceof Error?e.message:String(e)})}try{s?.stop()}catch(e){i.log.error(`Follower stop threw during tray-leave — resources may have leaked`,{requestId:c,error:e instanceof Error?e.message:String(e)})}if(r(()=>i.storage.removeItem(e),i.log,`join-clear`,c),n.workerBaseUrl===null)return r(()=>i.storage.removeItem(t),i.log,`worker-clear`,c),a===`inactive`?{kind:`noop`}:{kind:`left`,previousMode:a};let l=n.workerBaseUrl,u;try{u=i.startLeader(l)}catch(e){throw i.log.error(`startLeader failed during tray-leave — runtime is now dormant`,{workerBaseUrl:l,requestId:c,error:e instanceof Error?e.message:String(e)}),r(()=>i.storage.removeItem(t),i.log,`worker-clear-on-failure`,c),e}return i.setLeader(u),i.wireLeaderHooks(u),r(()=>i.storage.setItem(t,l),i.log,`worker-set`,c),{kind:`switched`,previousMode:a,workerBaseUrl:l}}function r(e,t,n,r){try{e()}catch(e){t.error(`tray-leave storage write failed`,{kind:n,requestId:r,error:e instanceof Error?e.message:String(e)})}}export{n as performTrayLeave};
1
+ import{D as e,O as t}from"./main-BlxLnse7.js";async function n(n,i){let a=i.getLeader()?`leader`:i.getFollower()?`follower`:`inactive`,o=i.getLeader();i.setLeader(null);let s=i.getFollower();i.setFollower(null),i.clearLeaderHooks();let{requestId:c}=n;try{o?.stop()}catch(e){i.log.error(`Leader stop threw during tray-leave — resources may have leaked`,{requestId:c,error:e instanceof Error?e.message:String(e)})}try{s?.stop()}catch(e){i.log.error(`Follower stop threw during tray-leave — resources may have leaked`,{requestId:c,error:e instanceof Error?e.message:String(e)})}if(r(()=>i.storage.removeItem(e),i.log,`join-clear`,c),n.workerBaseUrl===null)return r(()=>i.storage.removeItem(t),i.log,`worker-clear`,c),a===`inactive`?{kind:`noop`}:{kind:`left`,previousMode:a};let l=n.workerBaseUrl,u;try{u=i.startLeader(l)}catch(e){throw i.log.error(`startLeader failed during tray-leave — runtime is now dormant`,{workerBaseUrl:l,requestId:c,error:e instanceof Error?e.message:String(e)}),r(()=>i.storage.removeItem(t),i.log,`worker-clear-on-failure`,c),e}return i.setLeader(u),i.wireLeaderHooks(u),r(()=>i.storage.setItem(t,l),i.log,`worker-set`,c),{kind:`switched`,previousMode:a,workerBaseUrl:l}}function r(e,t,n,r){try{e()}catch(e){t.error(`tray-leave storage write failed`,{kind:n,requestId:r,error:e instanceof Error?e.message:String(e)})}}export{n as performTrayLeave};
@@ -1,4 +1,4 @@
1
- import{$ as e,ft as t,ht as n}from"./kernel-worker-qa_GIQ_O.js";var r=t(((t,r)=>{
1
+ import{$ as e,ft as t,ht as n}from"./kernel-worker-DrqmmlLF.js";var r=t(((t,r)=>{
2
2
  /*! *****************************************************************************
3
3
  Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  Licensed under the Apache License, Version 2.0 (the "License"); you may not use
@@ -1 +1 @@
1
- import{ct as e,lt as t}from"./kernel-worker-qa_GIQ_O.js";const n=`slicc:last-seen-version`;function r(){return{version:`3.26.0`,releasedAt:`2026-06-02T21:10:36Z`}}async function i(){let t=await e(n);return t&&t.length>0?t:null}async function a(e){await t(n,e)}async function o(){let e=r(),t=await i();return t===null?(await a(e.version),{bundled:e,lastSeen:null,isUpgrade:!1}):t===e.version?{bundled:e,lastSeen:t,isUpgrade:!1}:{bundled:e,lastSeen:t,isUpgrade:!0}}async function s(e){await a(e)}export{o as detectUpgrade,s as recordVersionSeen};
1
+ import{ct as e,lt as t}from"./kernel-worker-DrqmmlLF.js";const n=`slicc:last-seen-version`;function r(){return{version:`3.28.0`,releasedAt:`2026-06-03T14:03:15Z`}}async function i(){let t=await e(n);return t&&t.length>0?t:null}async function a(e){await t(n,e)}async function o(){let e=r(),t=await i();return t===null?(await a(e.version),{bundled:e,lastSeen:null,isUpgrade:!1}):t===e.version?{bundled:e,lastSeen:t,isUpgrade:!1}:{bundled:e,lastSeen:t,isUpgrade:!0}}async function s(e){await a(e)}export{o as detectUpgrade,s as recordVersionSeen};
@@ -1 +1 @@
1
- import{ft as e,gt as t}from"./kernel-worker-qa_GIQ_O.js";import{t as n}from"./common-BXJu90Rc.js";import{n as r,t as i}from"./biome_wasm-CTxVnl7G.js";var a=e((e=>{var a=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),o=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),s=e&&e.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!==`default`&&a(n,t,r[i]);return o(n,t),n}})();Object.defineProperty(e,"__esModule",{value:!0}),e.Biome=void 0;let c=s((r(),t(i))),l=n();e.Biome=class extends l.BiomeCommon{constructor(){super(c)}}}));export default a();
1
+ import{ft as e,gt as t}from"./kernel-worker-DrqmmlLF.js";import{t as n}from"./common-CuKB31Bx.js";import{n as r,t as i}from"./biome_wasm-BzCoRiez.js";var a=e((e=>{var a=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),o=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),s=e&&e.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!==`default`&&a(n,t,r[i]);return o(n,t),n}})();Object.defineProperty(e,"__esModule",{value:!0}),e.Biome=void 0;let c=s((r(),t(i))),l=n();e.Biome=class extends l.BiomeCommon{constructor(){super(c)}}}));export default a();
@@ -1 +1 @@
1
- import{dt as e,tt as t}from"./kernel-worker-qa_GIQ_O.js";const n=e(`ws-subscribers`);var r=class{subs=new Map;tabRefs=new Map;bridge;webhooks;dispatcher;unsubscribeBridge;seq=1;constructor(e){this.bridge=e.bridge,this.webhooks=e.webhooks,this.dispatcher=e.dispatcher,this.unsubscribeBridge=this.bridge.onMatchedFrame((e,t)=>{this.handleFrame(e,t)})}async observe(e){this.validateSink(e);let t=`wssub-${this.seq++}-${Date.now().toString(36)}`,n={id:t,targetId:e.targetId,urlMatch:e.urlMatch,filter:e.filter,forward:e.forward,scoopJid:e.scoopJid,createdAt:new Date().toISOString()},r=this.tabRefs.get(e.targetId)??0;r===0&&await this.bridge.installRouter(e.targetId),this.tabRefs.set(e.targetId,r+1);try{await this.bridge.registerSelector(e.targetId,t,e.urlMatch,e.filter)}catch(t){throw this.releaseTab(e.targetId),t}return this.subs.set(t,n),this.toInfo(n)}async update(e,t){let n=this.subs.get(e);if(!n)throw Error(`browser.websocket: subscriber not found: ${e}`);let r=t.urlMatch,i=t.filter;return await this.bridge.updateSelector(n.targetId,e,r,i),t.urlMatch===null?delete n.urlMatch:t.urlMatch!==void 0&&(n.urlMatch=t.urlMatch),t.filter===null?delete n.filter:t.filter!==void 0&&(n.filter=t.filter),this.toInfo(n)}async close(e){let t=this.subs.get(e);if(!t)return!1;this.subs.delete(e);try{await this.bridge.unregisterSelector(t.targetId,e)}catch(t){n.warn(`unregisterSelector failed during close`,{id:e,error:t instanceof Error?t.message:String(t)})}return this.releaseTab(t.targetId),!0}list(){return Array.from(this.subs.values(),e=>this.toInfo(e))}async dropForScoop(e){let t=Array.from(this.subs.values()).filter(t=>t.scoopJid===e);for(let e of t)await this.close(e.id);return t.length}dispose(){this.unsubscribeBridge(),this.subs.clear(),this.tabRefs.clear()}validateSink(e){let n=e.forward;if(!n||typeof n!=`object`)throw Error(`browser.websocket: forward.sink is required`);switch(n.sink){case`webhook`:if(typeof n.webhookId!=`string`||!n.webhookId.trim())throw Error(`browser.websocket: webhook sink requires a webhookId`);if(!this.webhooks.has(n.webhookId))throw Error(`browser.websocket: webhookId "${n.webhookId}" is not registered; create it with \`webhook create\` first`);return;case`scoop`:if(typeof n.scoopJid!=`string`||!n.scoopJid.trim())throw Error(`browser.websocket: scoop sink requires a scoopJid`);return;case`vfs`:{if(typeof n.path!=`string`||!n.path.startsWith(`/workspace/`))throw Error(`browser.websocket: vfs sink path must be an absolute /workspace/... path`);let e=t(n.path);if(!e.startsWith(`/workspace/`)&&e!==`/workspace`)throw Error(`browser.websocket: vfs sink path escapes /workspace/ after normalization (got "${n.path}" → "${e}")`);return}case`log`:return;default:throw Error(`browser.websocket: unknown sink "${n.sink??``}"`)}}releaseTab(e){let t=(this.tabRefs.get(e)??1)-1;t<=0?this.tabRefs.delete(e):this.tabRefs.set(e,t)}toInfo(e){let t={id:e.id,targetId:e.targetId,forward:e.forward,createdAt:e.createdAt};return e.urlMatch!==void 0&&(t.urlMatch=e.urlMatch),e.filter!==void 0&&(t.filter=e.filter),e.scoopJid!==void 0&&(t.scoopJid=e.scoopJid),t}async handleFrame(e,t){let r=this.subs.get(e);if(!r)return;let i=r.forward;try{switch(i.sink){case`webhook`:await this.dispatcher.webhook(i.webhookId,t);return;case`scoop`:await this.dispatcher.scoop(i.scoopJid,t);return;case`vfs`:await this.dispatcher.vfs(i.path,t);return;case`log`:this.dispatcher.log(t);return}}catch(t){n.warn(`sink dispatch failed`,{subId:e,sink:i.sink,error:t instanceof Error?t.message:String(t)})}}};export{r as WsSubscriberRegistry};
1
+ import{dt as e,tt as t}from"./kernel-worker-DrqmmlLF.js";const n=e(`ws-subscribers`);var r=class{subs=new Map;tabRefs=new Map;bridge;webhooks;dispatcher;unsubscribeBridge;seq=1;constructor(e){this.bridge=e.bridge,this.webhooks=e.webhooks,this.dispatcher=e.dispatcher,this.unsubscribeBridge=this.bridge.onMatchedFrame((e,t)=>{this.handleFrame(e,t)})}async observe(e){this.validateSink(e);let t=`wssub-${this.seq++}-${Date.now().toString(36)}`,n={id:t,targetId:e.targetId,urlMatch:e.urlMatch,filter:e.filter,forward:e.forward,scoopJid:e.scoopJid,createdAt:new Date().toISOString()},r=this.tabRefs.get(e.targetId)??0;r===0&&await this.bridge.installRouter(e.targetId),this.tabRefs.set(e.targetId,r+1);try{await this.bridge.registerSelector(e.targetId,t,e.urlMatch,e.filter)}catch(t){throw this.releaseTab(e.targetId),t}return this.subs.set(t,n),this.toInfo(n)}async update(e,t){let n=this.subs.get(e);if(!n)throw Error(`browser.websocket: subscriber not found: ${e}`);let r=t.urlMatch,i=t.filter;return await this.bridge.updateSelector(n.targetId,e,r,i),t.urlMatch===null?delete n.urlMatch:t.urlMatch!==void 0&&(n.urlMatch=t.urlMatch),t.filter===null?delete n.filter:t.filter!==void 0&&(n.filter=t.filter),this.toInfo(n)}async close(e){let t=this.subs.get(e);if(!t)return!1;this.subs.delete(e);try{await this.bridge.unregisterSelector(t.targetId,e)}catch(t){n.warn(`unregisterSelector failed during close`,{id:e,error:t instanceof Error?t.message:String(t)})}return this.releaseTab(t.targetId),!0}list(){return Array.from(this.subs.values(),e=>this.toInfo(e))}async dropForScoop(e){let t=Array.from(this.subs.values()).filter(t=>t.scoopJid===e);for(let e of t)await this.close(e.id);return t.length}dispose(){this.unsubscribeBridge(),this.subs.clear(),this.tabRefs.clear()}validateSink(e){let n=e.forward;if(!n||typeof n!=`object`)throw Error(`browser.websocket: forward.sink is required`);switch(n.sink){case`webhook`:if(typeof n.webhookId!=`string`||!n.webhookId.trim())throw Error(`browser.websocket: webhook sink requires a webhookId`);if(!this.webhooks.has(n.webhookId))throw Error(`browser.websocket: webhookId "${n.webhookId}" is not registered; create it with \`webhook create\` first`);return;case`scoop`:if(typeof n.scoopJid!=`string`||!n.scoopJid.trim())throw Error(`browser.websocket: scoop sink requires a scoopJid`);return;case`vfs`:{if(typeof n.path!=`string`||!n.path.startsWith(`/workspace/`))throw Error(`browser.websocket: vfs sink path must be an absolute /workspace/... path`);let e=t(n.path);if(!e.startsWith(`/workspace/`)&&e!==`/workspace`)throw Error(`browser.websocket: vfs sink path escapes /workspace/ after normalization (got "${n.path}" → "${e}")`);return}case`log`:return;default:throw Error(`browser.websocket: unknown sink "${n.sink??``}"`)}}releaseTab(e){let t=(this.tabRefs.get(e)??1)-1;t<=0?this.tabRefs.delete(e):this.tabRefs.set(e,t)}toInfo(e){let t={id:e.id,targetId:e.targetId,forward:e.forward,createdAt:e.createdAt};return e.urlMatch!==void 0&&(t.urlMatch=e.urlMatch),e.filter!==void 0&&(t.filter=e.filter),e.scoopJid!==void 0&&(t.scoopJid=e.scoopJid),t}async handleFrame(e,t){let r=this.subs.get(e);if(!r)return;let i=r.forward;try{switch(i.sink){case`webhook`:await this.dispatcher.webhook(i.webhookId,t);return;case`scoop`:await this.dispatcher.scoop(i.scoopJid,t);return;case`vfs`:await this.dispatcher.vfs(i.path,t);return;case`log`:this.dispatcher.log(t);return}}catch(t){n.warn(`sink dispatch failed`,{subId:e,sink:i.sink,error:t instanceof Error?t.message:String(t)})}}};export{r as WsSubscriberRegistry};
@@ -1 +1 @@
1
- import{G as e,V as t,l as n,q as r,r as i,tt as a}from"./main-pholQCCK.js";import{XaiErrorCode as o,XaiOAuthError as s}from"./xai-grok-errors-bnlIBeu-.js";import{resolveModels as c,toModelMetadata as l}from"./xai-grok-models-CeEBaUMC.js";import{sanitizePayload as u}from"./xai-grok-sanitize-CR2JoOJd.js";var d=`xai-grok`,f=`https://auth.x.ai`,p=`${f}/oauth2/authorize`,m=`${f}/oauth2/token`,h=`b1a00492-073a-47ea-816f-4c329264a828`,g=`openid profile email offline_access grok-cli:access api:access`,_=`http://127.0.0.1:56121/callback`,v=`http://127.0.0.1:56121/*`,y=`https://api.x.ai/v1`,b=`openai-responses`,x=`${d}-openai`;function S(){return typeof process>`u`?null:{}.PI_XAI_OAUTH_MODELS??null}var C=c(S());function w(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function T(e){let t=new Uint8Array(e);return crypto.getRandomValues(t),t}function E(){return w(T(32))}async function D(e){let t=new TextEncoder().encode(e);return w(new Uint8Array(await crypto.subtle.digest(`SHA-256`,t)))}function O(){return w(T(16))}async function k(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,code:e,redirect_uri:_,client_id:h,code_verifier:t}),r=await fetch(m,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw new s(`xAI token exchange failed: ${r.status} ${await r.text()}`,o.TOKEN_EXCHANGE_FAILED);let i=await r.json();if(!i.access_token)throw new s(`xAI token exchange did not return access_token.`,o.TOKEN_EXCHANGE_INVALID);return i}async function A(e){try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:h}),n=await fetch(m,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});return n.ok?await n.json():(console.error(`[xai-grok] refresh failed:`,n.status,await n.text()),null)}catch(e){return console.error(`[xai-grok] refresh error:`,e instanceof Error?e.message:String(e)),null}}function j(){return i().find(e=>e.providerId===d)}async function M(){let e=j();if(!e?.accessToken)throw new s("Not signed in to xAI Grok — run /login or `oauth-token xai-grok`",o.AUTH_MISSING,!0);let t=e.tokenExpiresAt??0;if(t&&Date.now()+6e4<t)return e.accessToken;if(e.refreshToken){let t=await A(e.refreshToken);if(t?.access_token)return await n({providerId:d,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??21600)*1e3}),t.access_token}return e.accessToken}function N(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:x,provider:d,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function P(e,t){return n=>!n||typeof n!=`object`?n:u(n,e,t)}function F(e,t){return t?{...e??{},"x-grok-conv-id":t}:e}var I=(e,n,i={})=>{let a=r();return(async()=>{try{let r=await M(),o=i.sessionId,s=t({...e,baseUrl:y,api:b},n,{...i,apiKey:r,headers:F(i.headers,o),onPayload:P(e.id,o)});for await(let e of s)a.push(e);a.end()}catch(t){console.error(`[xai-grok] Stream error:`,t instanceof Error?t.message:String(t)),a.push(N(e,t)),a.end()}})(),a},L=(t,n,i)=>{let a=r();return(async()=>{try{let r=await M(),o=i?.sessionId,s=e({...t,baseUrl:y,api:b},n,{...i,apiKey:r,headers:F(i?.headers,o),onPayload:P(t.id,o)});for await(let e of s)a.push(e);a.end()}catch(e){console.error(`[xai-grok] Stream error:`,e instanceof Error?e.message:String(e)),a.push(N(t,e)),a.end()}})(),a},R={id:d,name:`xAI Grok (SuperGrok OAuth)`,description:`Grok via xAI OAuth — uses your SuperGrok subscription, no API key needed. Default model is Grok Heavy.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`grok-4.20-multi-agent-0309`,oauthTokenDomains:[`api.x.ai`,`*.x.ai`,`auth.x.ai`,`accounts.x.ai`],getModelIds:()=>C.map(e=>{let t=l(e);return e.thinkingLevelMap?{...t,thinkingLevelMap:e.thinkingLevelMap}:t}),onOAuthLoginIntercepted:async(e,t,r)=>{let i=E(),a=await D(i),c=O(),l=O(),u=new URL(p);u.searchParams.set(`response_type`,`code`),u.searchParams.set(`client_id`,h),u.searchParams.set(`redirect_uri`,_),u.searchParams.set(`scope`,r?.scopes??g),u.searchParams.set(`code_challenge`,a),u.searchParams.set(`code_challenge_method`,`S256`),u.searchParams.set(`state`,c),u.searchParams.set(`nonce`,l),u.searchParams.set(`plan`,`generic`),u.searchParams.set(`referrer`,`slicc`);let f=await e({authorizeUrl:u.toString(),redirectUriPattern:v,onCapture:`close`});if(!f)throw new s(`xAI OAuth login was cancelled or timed out`,o.CALLBACK_TIMEOUT);let m=new URL(f),b=m.searchParams.get(`code`),x=m.searchParams.get(`state`);if(!b)throw new s(`xAI OAuth redirect did not include a code`,o.CODE_MISSING);if(x!==c)throw new s(`xAI OAuth state mismatch — possible CSRF, aborting`,o.STATE_MISMATCH);let S=await k(b,i);await n({providerId:d,accessToken:S.access_token,refreshToken:S.refresh_token,tokenExpiresAt:Date.now()+(S.expires_in??21600)*1e3,baseUrl:y}),t()},onOAuthLogout:async()=>{await n({providerId:d,accessToken:``})},onSilentRenew:async()=>{let e=j();if(!e?.refreshToken)return null;let t=await A(e.refreshToken);return t?.access_token?(await n({providerId:d,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??21600)*1e3}),t.access_token):null}};function z(){a({api:x,stream:I,streamSimple:L})}export{o as XaiErrorCode,s as XaiOAuthError,R as config,z as register};
1
+ import{G as e,Y as t,Z as n,at as r,f as i,r as a}from"./main-BlxLnse7.js";import{XaiErrorCode as o,XaiOAuthError as s}from"./xai-grok-errors-bnlIBeu-.js";import{resolveModels as c,toModelMetadata as l}from"./xai-grok-models-CeEBaUMC.js";import{sanitizePayload as u}from"./xai-grok-sanitize-CR2JoOJd.js";var d=`xai-grok`,f=`https://auth.x.ai`,p=`${f}/oauth2/authorize`,m=`${f}/oauth2/token`,h=`b1a00492-073a-47ea-816f-4c329264a828`,g=`openid profile email offline_access grok-cli:access api:access`,_=`http://127.0.0.1:56121/callback`,v=`http://127.0.0.1:56121/*`,y=`https://api.x.ai/v1`,b=`openai-responses`,x=`${d}-openai`;function S(){return typeof process>`u`?null:{}.PI_XAI_OAUTH_MODELS??null}var C=c(S());function w(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function T(e){let t=new Uint8Array(e);return crypto.getRandomValues(t),t}function E(){return w(T(32))}async function D(e){let t=new TextEncoder().encode(e);return w(new Uint8Array(await crypto.subtle.digest(`SHA-256`,t)))}function O(){return w(T(16))}async function k(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,code:e,redirect_uri:_,client_id:h,code_verifier:t}),r=await fetch(m,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw new s(`xAI token exchange failed: ${r.status} ${await r.text()}`,o.TOKEN_EXCHANGE_FAILED);let i=await r.json();if(!i.access_token)throw new s(`xAI token exchange did not return access_token.`,o.TOKEN_EXCHANGE_INVALID);return i}async function A(e){try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:h}),n=await fetch(m,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});return n.ok?await n.json():(console.error(`[xai-grok] refresh failed:`,n.status,await n.text()),null)}catch(e){return console.error(`[xai-grok] refresh error:`,e instanceof Error?e.message:String(e)),null}}function j(){return a().find(e=>e.providerId===d)}async function M(){let e=j();if(!e?.accessToken)throw new s("Not signed in to xAI Grok — run /login or `oauth-token xai-grok`",o.AUTH_MISSING,!0);let t=e.tokenExpiresAt??0;if(t&&Date.now()+6e4<t)return e.accessToken;if(e.refreshToken){let t=await A(e.refreshToken);if(t?.access_token)return await i({providerId:d,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??21600)*1e3}),t.access_token}return e.accessToken}function N(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:x,provider:d,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function P(e,t){return n=>!n||typeof n!=`object`?n:u(n,e,t)}function F(e,t){return t?{...e??{},"x-grok-conv-id":t}:e}var I=(t,r,i={})=>{let a=n();return(async()=>{try{let n=await M(),o=i.sessionId,s=e({...t,baseUrl:y,api:b},r,{...i,apiKey:n,headers:F(i.headers,o),onPayload:P(t.id,o)});for await(let e of s)a.push(e);a.end()}catch(e){console.error(`[xai-grok] Stream error:`,e instanceof Error?e.message:String(e)),a.push(N(t,e)),a.end()}})(),a},L=(e,r,i)=>{let a=n();return(async()=>{try{let n=await M(),o=i?.sessionId,s=t({...e,baseUrl:y,api:b},r,{...i,apiKey:n,headers:F(i?.headers,o),onPayload:P(e.id,o)});for await(let e of s)a.push(e);a.end()}catch(t){console.error(`[xai-grok] Stream error:`,t instanceof Error?t.message:String(t)),a.push(N(e,t)),a.end()}})(),a},R={id:d,name:`xAI Grok (SuperGrok OAuth)`,description:`Grok via xAI OAuth — uses your SuperGrok subscription, no API key needed. Default model is Grok Heavy.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`grok-4.20-multi-agent-0309`,oauthTokenDomains:[`api.x.ai`,`*.x.ai`,`auth.x.ai`,`accounts.x.ai`],getModelIds:()=>C.map(e=>{let t=l(e);return e.thinkingLevelMap?{...t,thinkingLevelMap:e.thinkingLevelMap}:t}),onOAuthLoginIntercepted:async(e,t,n)=>{let r=E(),a=await D(r),c=O(),l=O(),u=new URL(p);u.searchParams.set(`response_type`,`code`),u.searchParams.set(`client_id`,h),u.searchParams.set(`redirect_uri`,_),u.searchParams.set(`scope`,n?.scopes??g),u.searchParams.set(`code_challenge`,a),u.searchParams.set(`code_challenge_method`,`S256`),u.searchParams.set(`state`,c),u.searchParams.set(`nonce`,l),u.searchParams.set(`plan`,`generic`),u.searchParams.set(`referrer`,`slicc`);let f=await e({authorizeUrl:u.toString(),redirectUriPattern:v,onCapture:`close`});if(!f)throw new s(`xAI OAuth login was cancelled or timed out`,o.CALLBACK_TIMEOUT);let m=new URL(f),b=m.searchParams.get(`code`),x=m.searchParams.get(`state`);if(!b)throw new s(`xAI OAuth redirect did not include a code`,o.CODE_MISSING);if(x!==c)throw new s(`xAI OAuth state mismatch — possible CSRF, aborting`,o.STATE_MISMATCH);let S=await k(b,r);await i({providerId:d,accessToken:S.access_token,refreshToken:S.refresh_token,tokenExpiresAt:Date.now()+(S.expires_in??21600)*1e3,baseUrl:y}),t()},onOAuthLogout:async()=>{await i({providerId:d,accessToken:``})},onSilentRenew:async()=>{let e=j();if(!e?.refreshToken)return null;let t=await A(e.refreshToken);return t?.access_token?(await i({providerId:d,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??21600)*1e3}),t.access_token):null}};function z(){r({api:x,stream:I,streamSimple:L})}export{o as XaiErrorCode,s as XaiOAuthError,R as config,z as register};
@@ -1 +1 @@
1
- import{B as e,K as t,T as n,W as r,b as i,et as a}from"./kernel-worker-qa_GIQ_O.js";import{XaiErrorCode as o,XaiOAuthError as s}from"./xai-grok-errors-ByEMMSoz.js";import{resolveModels as c,toModelMetadata as l}from"./xai-grok-models-B0Tf--xf.js";import{sanitizePayload as u}from"./xai-grok-sanitize-CV6qvaEF.js";const d=`xai-grok`,f=`https://auth.x.ai`,p=`${f}/oauth2/authorize`,m=`${f}/oauth2/token`,h=`b1a00492-073a-47ea-816f-4c329264a828`,g=`http://127.0.0.1:56121/callback`,_=`https://api.x.ai/v1`,v=`openai-responses`,y=`${d}-openai`;function b(){return typeof process>`u`?null:{}.PI_XAI_OAUTH_MODELS??null}const x=c(b());function S(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function C(e){let t=new Uint8Array(e);return crypto.getRandomValues(t),t}function w(){return S(C(32))}async function T(e){let t=new TextEncoder().encode(e);return S(new Uint8Array(await crypto.subtle.digest(`SHA-256`,t)))}function E(){return S(C(16))}async function D(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,code:e,redirect_uri:g,client_id:h,code_verifier:t}),r=await fetch(m,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw new s(`xAI token exchange failed: ${r.status} ${await r.text()}`,o.TOKEN_EXCHANGE_FAILED);let i=await r.json();if(!i.access_token)throw new s(`xAI token exchange did not return access_token.`,o.TOKEN_EXCHANGE_INVALID);return i}async function O(e){try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:h}),n=await fetch(m,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});return n.ok?await n.json():(console.error(`[xai-grok] refresh failed:`,n.status,await n.text()),null)}catch(e){return console.error(`[xai-grok] refresh error:`,e instanceof Error?e.message:String(e)),null}}function k(){return i().find(e=>e.providerId===d)}async function A(){let e=k();if(!e?.accessToken)throw new s("Not signed in to xAI Grok — run /login or `oauth-token xai-grok`",o.AUTH_MISSING,!0);let t=e.tokenExpiresAt??0;if(t&&Date.now()+6e4<t)return e.accessToken;if(e.refreshToken){let t=await O(e.refreshToken);if(t?.access_token)return await n({providerId:d,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??21600)*1e3}),t.access_token}return e.accessToken}function j(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:y,provider:d,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function M(e,t){return n=>!n||typeof n!=`object`?n:u(n,e,t)}function N(e,t){return t?{...e??{},"x-grok-conv-id":t}:e}const P=(n,r,i={})=>{let a=t();return(async()=>{try{let t=await A(),o=i.sessionId,s=e({...n,baseUrl:_,api:v},r,{...i,apiKey:t,headers:N(i.headers,o),onPayload:M(n.id,o)});for await(let e of s)a.push(e);a.end()}catch(e){console.error(`[xai-grok] Stream error:`,e instanceof Error?e.message:String(e)),a.push(j(n,e)),a.end()}})(),a},F=(e,n,i)=>{let a=t();return(async()=>{try{let t=await A(),o=i?.sessionId,s=r({...e,baseUrl:_,api:v},n,{...i,apiKey:t,headers:N(i?.headers,o),onPayload:M(e.id,o)});for await(let e of s)a.push(e);a.end()}catch(t){console.error(`[xai-grok] Stream error:`,t instanceof Error?t.message:String(t)),a.push(j(e,t)),a.end()}})(),a},I={id:d,name:`xAI Grok (SuperGrok OAuth)`,description:`Grok via xAI OAuth — uses your SuperGrok subscription, no API key needed. Default model is Grok Heavy.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`grok-4.20-multi-agent-0309`,oauthTokenDomains:[`api.x.ai`,`*.x.ai`,`auth.x.ai`,`accounts.x.ai`],getModelIds:()=>x.map(e=>{let t=l(e);return e.thinkingLevelMap?{...t,thinkingLevelMap:e.thinkingLevelMap}:t}),onOAuthLoginIntercepted:async(e,t,r)=>{let i=w(),a=await T(i),c=E(),l=E(),u=new URL(p);u.searchParams.set(`response_type`,`code`),u.searchParams.set(`client_id`,h),u.searchParams.set(`redirect_uri`,g),u.searchParams.set(`scope`,r?.scopes??`openid profile email offline_access grok-cli:access api:access`),u.searchParams.set(`code_challenge`,a),u.searchParams.set(`code_challenge_method`,`S256`),u.searchParams.set(`state`,c),u.searchParams.set(`nonce`,l),u.searchParams.set(`plan`,`generic`),u.searchParams.set(`referrer`,`slicc`);let f=await e({authorizeUrl:u.toString(),redirectUriPattern:`http://127.0.0.1:56121/*`,onCapture:`close`});if(!f)throw new s(`xAI OAuth login was cancelled or timed out`,o.CALLBACK_TIMEOUT);let m=new URL(f),v=m.searchParams.get(`code`),y=m.searchParams.get(`state`);if(!v)throw new s(`xAI OAuth redirect did not include a code`,o.CODE_MISSING);if(y!==c)throw new s(`xAI OAuth state mismatch — possible CSRF, aborting`,o.STATE_MISMATCH);let b=await D(v,i);await n({providerId:d,accessToken:b.access_token,refreshToken:b.refresh_token,tokenExpiresAt:Date.now()+(b.expires_in??21600)*1e3,baseUrl:_}),t()},onOAuthLogout:async()=>{await n({providerId:d,accessToken:``})},onSilentRenew:async()=>{let e=k();if(!e?.refreshToken)return null;let t=await O(e.refreshToken);return t?.access_token?(await n({providerId:d,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??21600)*1e3}),t.access_token):null}};function L(){a({api:y,stream:P,streamSimple:F})}export{o as XaiErrorCode,s as XaiOAuthError,I as config,L as register};
1
+ import{B as e,K as t,T as n,W as r,b as i,et as a}from"./kernel-worker-DrqmmlLF.js";import{XaiErrorCode as o,XaiOAuthError as s}from"./xai-grok-errors-ByEMMSoz.js";import{resolveModels as c,toModelMetadata as l}from"./xai-grok-models-B0Tf--xf.js";import{sanitizePayload as u}from"./xai-grok-sanitize-CV6qvaEF.js";const d=`xai-grok`,f=`https://auth.x.ai`,p=`${f}/oauth2/authorize`,m=`${f}/oauth2/token`,h=`b1a00492-073a-47ea-816f-4c329264a828`,g=`http://127.0.0.1:56121/callback`,_=`https://api.x.ai/v1`,v=`openai-responses`,y=`${d}-openai`;function b(){return typeof process>`u`?null:{}.PI_XAI_OAUTH_MODELS??null}const x=c(b());function S(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function C(e){let t=new Uint8Array(e);return crypto.getRandomValues(t),t}function w(){return S(C(32))}async function T(e){let t=new TextEncoder().encode(e);return S(new Uint8Array(await crypto.subtle.digest(`SHA-256`,t)))}function E(){return S(C(16))}async function D(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,code:e,redirect_uri:g,client_id:h,code_verifier:t}),r=await fetch(m,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw new s(`xAI token exchange failed: ${r.status} ${await r.text()}`,o.TOKEN_EXCHANGE_FAILED);let i=await r.json();if(!i.access_token)throw new s(`xAI token exchange did not return access_token.`,o.TOKEN_EXCHANGE_INVALID);return i}async function O(e){try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:h}),n=await fetch(m,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});return n.ok?await n.json():(console.error(`[xai-grok] refresh failed:`,n.status,await n.text()),null)}catch(e){return console.error(`[xai-grok] refresh error:`,e instanceof Error?e.message:String(e)),null}}function k(){return i().find(e=>e.providerId===d)}async function A(){let e=k();if(!e?.accessToken)throw new s("Not signed in to xAI Grok — run /login or `oauth-token xai-grok`",o.AUTH_MISSING,!0);let t=e.tokenExpiresAt??0;if(t&&Date.now()+6e4<t)return e.accessToken;if(e.refreshToken){let t=await O(e.refreshToken);if(t?.access_token)return await n({providerId:d,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??21600)*1e3}),t.access_token}return e.accessToken}function j(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:y,provider:d,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function M(e,t){return n=>!n||typeof n!=`object`?n:u(n,e,t)}function N(e,t){return t?{...e??{},"x-grok-conv-id":t}:e}const P=(n,r,i={})=>{let a=t();return(async()=>{try{let t=await A(),o=i.sessionId,s=e({...n,baseUrl:_,api:v},r,{...i,apiKey:t,headers:N(i.headers,o),onPayload:M(n.id,o)});for await(let e of s)a.push(e);a.end()}catch(e){console.error(`[xai-grok] Stream error:`,e instanceof Error?e.message:String(e)),a.push(j(n,e)),a.end()}})(),a},F=(e,n,i)=>{let a=t();return(async()=>{try{let t=await A(),o=i?.sessionId,s=r({...e,baseUrl:_,api:v},n,{...i,apiKey:t,headers:N(i?.headers,o),onPayload:M(e.id,o)});for await(let e of s)a.push(e);a.end()}catch(t){console.error(`[xai-grok] Stream error:`,t instanceof Error?t.message:String(t)),a.push(j(e,t)),a.end()}})(),a},I={id:d,name:`xAI Grok (SuperGrok OAuth)`,description:`Grok via xAI OAuth — uses your SuperGrok subscription, no API key needed. Default model is Grok Heavy.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`grok-4.20-multi-agent-0309`,oauthTokenDomains:[`api.x.ai`,`*.x.ai`,`auth.x.ai`,`accounts.x.ai`],getModelIds:()=>x.map(e=>{let t=l(e);return e.thinkingLevelMap?{...t,thinkingLevelMap:e.thinkingLevelMap}:t}),onOAuthLoginIntercepted:async(e,t,r)=>{let i=w(),a=await T(i),c=E(),l=E(),u=new URL(p);u.searchParams.set(`response_type`,`code`),u.searchParams.set(`client_id`,h),u.searchParams.set(`redirect_uri`,g),u.searchParams.set(`scope`,r?.scopes??`openid profile email offline_access grok-cli:access api:access`),u.searchParams.set(`code_challenge`,a),u.searchParams.set(`code_challenge_method`,`S256`),u.searchParams.set(`state`,c),u.searchParams.set(`nonce`,l),u.searchParams.set(`plan`,`generic`),u.searchParams.set(`referrer`,`slicc`);let f=await e({authorizeUrl:u.toString(),redirectUriPattern:`http://127.0.0.1:56121/*`,onCapture:`close`});if(!f)throw new s(`xAI OAuth login was cancelled or timed out`,o.CALLBACK_TIMEOUT);let m=new URL(f),v=m.searchParams.get(`code`),y=m.searchParams.get(`state`);if(!v)throw new s(`xAI OAuth redirect did not include a code`,o.CODE_MISSING);if(y!==c)throw new s(`xAI OAuth state mismatch — possible CSRF, aborting`,o.STATE_MISMATCH);let b=await D(v,i);await n({providerId:d,accessToken:b.access_token,refreshToken:b.refresh_token,tokenExpiresAt:Date.now()+(b.expires_in??21600)*1e3,baseUrl:_}),t()},onOAuthLogout:async()=>{await n({providerId:d,accessToken:``})},onSilentRenew:async()=>{let e=k();if(!e?.refreshToken)return null;let t=await O(e.refreshToken);return t?.access_token?(await n({providerId:d,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??21600)*1e3}),t.access_token):null}};function L(){a({api:y,stream:P,streamSimple:F})}export{o as XaiErrorCode,s as XaiOAuthError,I as config,L as register};
@@ -50,7 +50,7 @@
50
50
  </g><g id="Left_Eye" data-name="Left Eye">
51
51
  <circle id="Right_Eye_Outline" data-name="Right Eye Outline" cx="175.1" cy="250.34" r="64.78" style="fill: #fff; stroke: #000; stroke-miterlimit: 10; stroke-width: 6px;"/>
52
52
  <path id="Left_Pupil" data-name="Left Pupil" d="M213.74,233.23c-.13,1.98-.7,3.97-1.76,5.81-3.71,6.43-11.93,8.63-18.36,4.92-6.43-3.71-8.63-11.93-4.92-18.36,2.32-4.02,6.4-6.38,10.7-6.69-3.8-1.78-8.03-2.8-12.51-2.8-16.37,0-29.64,13.27-29.64,29.64s13.27,29.64,29.64,29.64,29.64-13.27,29.64-29.64c0-4.48-1.02-8.72-2.81-12.53Z" style="fill: rgb(0, 0, 0);"/>
53
- </g></g></g></svg>`;var H=[{id:"chat",label:"Chat"},{id:"terminal",label:"Terminal"},{id:"files",label:"Files"},{id:"memory",label:"Memory"}],j=H,M="chat",fe=new Set(H.map(r=>r.id));function u(r,e=M){return r&&r.length>0?r:e}var ne=["top-left","top-right","bottom-left","bottom-right","top","right","bottom","left"],ae="top-right",se=6,ie=12,le=.6;function f(r,e=ae){return ne.includes(r)?r:e}function C(r={}){return{open:r.open??!1,activeTab:u(r.activeTab,M),corner:f(r.corner)}}function Z(r){return{...r,open:!r.open}}function T(r,e){return r.open===e?r:{...r,open:e}}function A(r,e){let t=u(e,r.activeTab);return r.activeTab===t?r:{...r,activeTab:t}}function R(r,e){let t=f(e,r.corner);return r.corner===t?r:{...r,corner:t}}function O(r,e){return r>=se||r>=ie&&e>=le}function $({clientX:r,clientY:e,viewportWidth:t,viewportHeight:o,velocityXPxPerMs:n=0,velocityYPxPerMs:a=0,flickProjectionMs:s=180}){let l=q(r+n*s,0,t),p=q(e+a*s,0,o),i=l/t,c=p/o,d=i>1/3&&i<2/3,h=c>1/3&&c<2/3;if(d&&h){let m=c,b=1-c,S=i,g=1-i,w=Math.min(m,b,S,g);return w===m?"top":w===b?"bottom":w===S?"left":"right"}if(d)return c<.5?"top":"bottom";if(h)return i<.5?"left":"right";let E=i<.5?"left":"right";return`${c<.5?"top":"bottom"}-${E}`}function q(r,e,t){return Math.min(Math.max(r,e),t)}var W="slicc-electron-overlay:set-tab";var U="slicc-electron-overlay-root",N="slicc-electron-overlay",de="Semicolon",J=";",ge="slicc-electron-overlay:toggle",L="slicc-electron-launcher",k="slicc-electron-sidebar",v="",y=18,Q="slicc-electron-overlay-launcher-corner";function V(r,e){let t=r.createElement("style");return t.textContent=e,t}function z(r){return r.replace(/<\?xml[^?]*\?>\s*/i,"")}function G(r,e){let o=new DOMParser().parseFromString(e,"image/svg+xml").documentElement;return r.importNode(o,!0)}var X=`
53
+ </g></g></g></svg>`;var H=[{id:"chat",label:"Chat"},{id:"terminal",label:"Terminal"},{id:"files",label:"Files"},{id:"memory",label:"Memory"}],j=H,M="chat",fe=new Set(H.map(r=>r.id));function u(r,e=M){return r&&r.length>0?r:e}var ne=["top-left","top-right","bottom-left","bottom-right","top","right","bottom","left"],ae="top-right",se=6,ie=12,le=.6;function f(r,e=ae){return ne.includes(r)?r:e}function C(r={}){return{open:r.open??!1,activeTab:u(r.activeTab,M),corner:f(r.corner)}}function Z(r){return{...r,open:!r.open}}function T(r,e){return r.open===e?r:{...r,open:e}}function R(r,e){let t=u(e,r.activeTab);return r.activeTab===t?r:{...r,activeTab:t}}function A(r,e){let t=f(e,r.corner);return r.corner===t?r:{...r,corner:t}}function O(r,e){return r>=se||r>=ie&&e>=le}function $({clientX:r,clientY:e,viewportWidth:t,viewportHeight:o,velocityXPxPerMs:n=0,velocityYPxPerMs:a=0,flickProjectionMs:s=180}){let l=q(r+n*s,0,t),p=q(e+a*s,0,o),i=l/t,c=p/o,d=i>1/3&&i<2/3,h=c>1/3&&c<2/3;if(d&&h){let m=c,b=1-c,S=i,g=1-i,w=Math.min(m,b,S,g);return w===m?"top":w===b?"bottom":w===S?"left":"right"}if(d)return c<.5?"top":"bottom";if(h)return i<.5?"left":"right";let E=i<.5?"left":"right";return`${c<.5?"top":"bottom"}-${E}`}function q(r,e,t){return Math.min(Math.max(r,e),t)}var W="slicc-electron-overlay:set-tab";var U="slicc-electron-overlay-root",N="slicc-electron-overlay",de="Semicolon",J=";",ge="slicc-electron-overlay:toggle",L="slicc-electron-launcher",k="slicc-electron-sidebar",v="",y=18,Q="slicc-electron-overlay-launcher-corner";function V(r,e){let t=r.createElement("style");return t.textContent=e,t}function z(r){return r.replace(/<\?xml[^?]*\?>\s*/i,"")}function G(r,e){let o=new DOMParser().parseFromString(e,"image/svg+xml").documentElement;return r.importNode(o,!0)}var X=`
54
54
  :host {
55
55
  color-scheme: dark light;
56
56
  --s2-gray-25: #1a1a1a;
@@ -255,7 +255,7 @@
255
255
  iframe { border: 0; width: 100%; height: 100%; display: block; background: var(--s2-bg-base); }
256
256
  .empty-state { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 24px; text-align: center; color: var(--s2-content-secondary); font-size: 13px; line-height: 1.5; }
257
257
  .empty-state[hidden] { display: none; }
258
- `));let n=t.createElement("div");n.className="backdrop",n.setAttribute("part","backdrop"),n.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("slicc-overlay-close",{bubbles:!0,composed:!0}))}),e.appendChild(n);let a=t.createElement("aside");a.className="sidebar",a.setAttribute("part","sidebar"),a.setAttribute("aria-label","SLICC overlay sidebar");let s=t.createElement("header");s.className="header";let l=t.createElement("div");l.className="header__brand";let p=t.createElement("div"),i=t.createElement("div");i.className="header__title",i.textContent="slicc";let c=t.createElement("div");c.className="header__subtitle",c.textContent="electron float",p.appendChild(i),p.appendChild(c),l.appendChild(p),s.appendChild(l);let d=t.createElement("button");d.type="button",d.className="header__close",d.setAttribute("aria-label","Close SLICC overlay"),d.textContent="\xD7",d.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("slicc-overlay-close",{bubbles:!0,composed:!0}))}),s.appendChild(d),a.appendChild(s);let h=t.createElement("div");h.className="tab-bar",h.setAttribute("role","tablist"),h.setAttribute("aria-label","SLICC overlay tabs");for(let{id:b,label:S}of j){let g=t.createElement("button");g.type="button",g.className="tab-bar__tab"+(b===o?" tab-bar__tab--active":""),g.setAttribute("role","tab"),g.setAttribute("aria-selected",String(b===o)),g.dataset.tab=b,g.textContent=S,this.tabButtons.set(b,g),g.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("slicc-overlay-select-tab",{bubbles:!0,composed:!0,detail:{tab:b}}))}),h.appendChild(g)}a.appendChild(h);let E=t.createElement("div");E.className="viewport";let x=t.createElement("iframe");x.title="SLICC electron float",this.iframe=x,x.addEventListener("load",()=>{this.frameLoaded=!0,this.postActiveTab()}),E.appendChild(x);let m=t.createElement("div");m.className="empty-state",m.textContent="Starting the local SLICC runtime\u2026",this.emptyState=m,E.appendChild(m),a.appendChild(E),e.appendChild(a),this.iframe?.addEventListener("load",()=>{this.frameLoaded=!0,this.postActiveTab()})}sync(){let e=u(this.getAttribute("active-tab")),t=this.getAttribute("app-url")?.trim()??v;for(let[o,n]of this.tabButtons){let a=o===e;n.classList.toggle("tab-bar__tab--active",a),n.setAttribute("aria-selected",String(a))}this.emptyState?.toggleAttribute("hidden",!!t),this.syncFrameUrl(t,e),this.postActiveTab()}syncFrameUrl(e,t){if(this.iframe){if(!e){this.currentAppUrl&&(this.currentAppUrl=v,this.frameLoaded=!1,this.lastPostedTab=null,this.iframe.removeAttribute("src"));return}e!==this.currentAppUrl&&(this.currentAppUrl=e,this.frameLoaded=!1,this.lastPostedTab=null,this.iframe.src=he(e,t))}}postActiveTab(){if(!this.frameLoaded||!this.iframe?.contentWindow)return;let e=u(this.getAttribute("active-tab"));this.lastPostedTab!==e&&(this.iframe.contentWindow.postMessage({type:W,tab:e},"*"),this.lastPostedTab=e)}},_=class extends HTMLElement{static observedAttributes=["open","active-tab","app-url","corner"];state=C();appUrlValue=v;syncingAttributes=!1;connectedCallback(){this.state=C({open:this.hasAttribute("open"),activeTab:u(this.getAttribute("active-tab")),corner:f(this.getAttribute("corner")??D(this.ownerDocument.defaultView))}),this.appUrlValue=this.getAttribute("app-url")?.trim()??v,this.shadowRoot||this.render(),this.syncChildren(),I(this.ownerDocument.defaultView,this.state.corner),this.ownerDocument.addEventListener("keydown",this.onKeyDown,!0),this.ownerDocument.defaultView?.addEventListener("message",this.onMessage)}disconnectedCallback(){this.ownerDocument.removeEventListener("keydown",this.onKeyDown,!0),this.ownerDocument.defaultView?.removeEventListener("message",this.onMessage)}attributeChangedCallback(){this.syncingAttributes||(this.state=C({open:this.hasAttribute("open"),activeTab:u(this.getAttribute("active-tab")),corner:f(this.getAttribute("corner")??D(this.ownerDocument.defaultView))}),this.appUrlValue=this.getAttribute("app-url")?.trim()??v,this.syncChildren(),I(this.ownerDocument.defaultView,this.state.corner))}get open(){return this.state.open}set open(e){this.applyState(T(this.state,e))}get activeTab(){return this.state.activeTab}set activeTab(e){this.applyState(A(this.state,e))}get corner(){return this.state.corner}set corner(e){this.applyState(R(this.state,e))}get appUrl(){return this.appUrlValue}set appUrl(e){let t=e.trim();t!==this.appUrlValue&&(this.appUrlValue=t,this.syncingAttributes=!0,t?this.setAttribute("app-url",t):this.removeAttribute("app-url"),this.syncingAttributes=!1,this.syncChildren())}toggle(){this.applyState(Z(this.state))}showSidebar(){this.applyState(T(this.state,!0))}hideSidebar(){this.applyState(T(this.state,!1))}applyState(e){e.open===this.state.open&&e.activeTab===this.state.activeTab&&e.corner===this.state.corner||(this.state=e,this.syncingAttributes=!0,this.toggleAttribute("open",e.open),this.setAttribute("active-tab",e.activeTab),this.setAttribute("corner",e.corner),this.syncingAttributes=!1,this.syncChildren(),I(this.ownerDocument.defaultView,this.state.corner))}onKeyDown=e=>{if((e.key===J||e.code===de)&&(e.metaKey||e.ctrlKey)&&!e.shiftKey&&!e.altKey&&!e.repeat){e.preventDefault(),e.stopPropagation(),this.toggle();return}e.key!=="Escape"||!this.state.open||this.hideSidebar()};onMessage=e=>{e.data&&typeof e.data=="object"&&"type"in e.data&&e.data.type===ge&&this.toggle()};render(){let e=this.attachShadow({mode:"open"}),t=this.ownerDocument;e.appendChild(V(t,`
258
+ `));let n=t.createElement("div");n.className="backdrop",n.setAttribute("part","backdrop"),n.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("slicc-overlay-close",{bubbles:!0,composed:!0}))}),e.appendChild(n);let a=t.createElement("aside");a.className="sidebar",a.setAttribute("part","sidebar"),a.setAttribute("aria-label","SLICC overlay sidebar");let s=t.createElement("header");s.className="header";let l=t.createElement("div");l.className="header__brand";let p=t.createElement("div"),i=t.createElement("div");i.className="header__title",i.textContent="slicc";let c=t.createElement("div");c.className="header__subtitle",c.textContent="electron float",p.appendChild(i),p.appendChild(c),l.appendChild(p),s.appendChild(l);let d=t.createElement("button");d.type="button",d.className="header__close",d.setAttribute("aria-label","Close SLICC overlay"),d.textContent="\xD7",d.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("slicc-overlay-close",{bubbles:!0,composed:!0}))}),s.appendChild(d),a.appendChild(s);let h=t.createElement("div");h.className="tab-bar",h.setAttribute("role","tablist"),h.setAttribute("aria-label","SLICC overlay tabs");for(let{id:b,label:S}of j){let g=t.createElement("button");g.type="button",g.className="tab-bar__tab"+(b===o?" tab-bar__tab--active":""),g.setAttribute("role","tab"),g.setAttribute("aria-selected",String(b===o)),g.dataset.tab=b,g.textContent=S,this.tabButtons.set(b,g),g.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("slicc-overlay-select-tab",{bubbles:!0,composed:!0,detail:{tab:b}}))}),h.appendChild(g)}a.appendChild(h);let E=t.createElement("div");E.className="viewport";let x=t.createElement("iframe");x.title="SLICC electron float",this.iframe=x,x.addEventListener("load",()=>{this.frameLoaded=!0,this.postActiveTab()}),E.appendChild(x);let m=t.createElement("div");m.className="empty-state",m.textContent="Starting the local SLICC runtime\u2026",this.emptyState=m,E.appendChild(m),a.appendChild(E),e.appendChild(a),this.iframe?.addEventListener("load",()=>{this.frameLoaded=!0,this.postActiveTab()})}sync(){let e=u(this.getAttribute("active-tab")),t=this.getAttribute("app-url")?.trim()??v;for(let[o,n]of this.tabButtons){let a=o===e;n.classList.toggle("tab-bar__tab--active",a),n.setAttribute("aria-selected",String(a))}this.emptyState?.toggleAttribute("hidden",!!t),this.syncFrameUrl(t,e),this.postActiveTab()}syncFrameUrl(e,t){if(this.iframe){if(!e){this.currentAppUrl&&(this.currentAppUrl=v,this.frameLoaded=!1,this.lastPostedTab=null,this.iframe.removeAttribute("src"));return}e!==this.currentAppUrl&&(this.currentAppUrl=e,this.frameLoaded=!1,this.lastPostedTab=null,this.iframe.src=he(e,t))}}postActiveTab(){if(!this.frameLoaded||!this.iframe?.contentWindow)return;let e=u(this.getAttribute("active-tab"));this.lastPostedTab!==e&&(this.iframe.contentWindow.postMessage({type:W,tab:e},"*"),this.lastPostedTab=e)}},_=class extends HTMLElement{static observedAttributes=["open","active-tab","app-url","corner"];state=C();appUrlValue=v;syncingAttributes=!1;connectedCallback(){this.state=C({open:this.hasAttribute("open"),activeTab:u(this.getAttribute("active-tab")),corner:f(this.getAttribute("corner")??D(this.ownerDocument.defaultView))}),this.appUrlValue=this.getAttribute("app-url")?.trim()??v,this.shadowRoot||this.render(),this.syncChildren(),I(this.ownerDocument.defaultView,this.state.corner),this.ownerDocument.addEventListener("keydown",this.onKeyDown,!0),this.ownerDocument.defaultView?.addEventListener("message",this.onMessage)}disconnectedCallback(){this.ownerDocument.removeEventListener("keydown",this.onKeyDown,!0),this.ownerDocument.defaultView?.removeEventListener("message",this.onMessage)}attributeChangedCallback(){this.syncingAttributes||(this.state=C({open:this.hasAttribute("open"),activeTab:u(this.getAttribute("active-tab")),corner:f(this.getAttribute("corner")??D(this.ownerDocument.defaultView))}),this.appUrlValue=this.getAttribute("app-url")?.trim()??v,this.syncChildren(),I(this.ownerDocument.defaultView,this.state.corner))}get open(){return this.state.open}set open(e){this.applyState(T(this.state,e))}get activeTab(){return this.state.activeTab}set activeTab(e){this.applyState(R(this.state,e))}get corner(){return this.state.corner}set corner(e){this.applyState(A(this.state,e))}get appUrl(){return this.appUrlValue}set appUrl(e){let t=e.trim();t!==this.appUrlValue&&(this.appUrlValue=t,this.syncingAttributes=!0,t?this.setAttribute("app-url",t):this.removeAttribute("app-url"),this.syncingAttributes=!1,this.syncChildren())}toggle(){this.applyState(Z(this.state))}showSidebar(){this.applyState(T(this.state,!0))}hideSidebar(){this.applyState(T(this.state,!1))}applyState(e){e.open===this.state.open&&e.activeTab===this.state.activeTab&&e.corner===this.state.corner||(this.state=e,this.syncingAttributes=!0,this.toggleAttribute("open",e.open),this.setAttribute("active-tab",e.activeTab),this.setAttribute("corner",e.corner),this.syncingAttributes=!1,this.syncChildren(),I(this.ownerDocument.defaultView,this.state.corner))}onKeyDown=e=>{if((e.key===J||e.code===de)&&(e.metaKey||e.ctrlKey)&&!e.shiftKey&&!e.altKey&&!e.repeat){e.preventDefault(),e.stopPropagation(),this.toggle();return}e.key!=="Escape"||!this.state.open||this.hideSidebar()};onMessage=e=>{e.data&&typeof e.data=="object"&&"type"in e.data&&e.data.type===ge&&this.toggle()};render(){let e=this.attachShadow({mode:"open"}),t=this.ownerDocument;e.appendChild(V(t,`
259
259
  ${X}
260
260
  :host {
261
261
  all: initial;
@@ -266,4 +266,4 @@
266
266
  z-index: 2147483647;
267
267
  contain: layout style paint;
268
268
  }
269
- `));let o=t.createElement(L);o.addEventListener("slicc-overlay-toggle",()=>this.toggle()),o.addEventListener("slicc-overlay-move",a=>{let s=a.detail?.corner;this.applyState(R(this.state,s))}),e.appendChild(o);let n=t.createElement(k);n.addEventListener("slicc-overlay-close",()=>this.hideSidebar()),n.addEventListener("slicc-overlay-select-tab",a=>{let s=a.detail?.tab;this.applyState(A(this.state,s))}),e.appendChild(n)}syncChildren(){let e=this.shadowRoot;if(!e)return;let t=e.querySelector(L),o=e.querySelector(k);!t||!o||(t.toggleAttribute("open",this.state.open),t.setAttribute("corner",this.state.corner),o.toggleAttribute("open",this.state.open),o.setAttribute("corner",this.state.corner),o.setAttribute("active-tab",this.state.activeTab),this.appUrlValue?o.setAttribute("app-url",this.appUrlValue):o.removeAttribute("app-url"))}};function ue(r=customElements){r.get(L)||r.define(L,P),r.get(k)||r.define(k,Y),r.get(N)||r.define(N,_)}function ee(r=document,e={}){ue(r.defaultView?.customElements??customElements);let t=r.getElementById(U),o;return t instanceof _?o=t:(t?.remove(),o=r.createElement(N)),o.id=U,o.isConnected||(r.body??r.documentElement).appendChild(o),typeof e.open=="boolean"&&(o.open=e.open),e.activeTab!==void 0&&(o.activeTab=u(e.activeTab)),e.appUrl!==void 0&&(o.appUrl=e.appUrl??v),e.corner!==void 0&&(o.corner=e.corner??D(r.defaultView)),o}function te(r=document){r.getElementById(U)?.remove()}function D(r){try{return f(r?.localStorage.getItem(Q))}catch{return f(null)}}function I(r,e){try{r?.localStorage.setItem(Q,e)}catch{}}function K(r,e,t){return Math.min(Math.max(r,e),t)}window.__SLICC_ELECTRON_OVERLAY__={inject(r={}){try{ee(document,r)}catch(e){console.error("[slicc-overlay] Injection failed:",e)}},remove(){try{te(document)}catch(r){console.error("[slicc-overlay] Removal failed:",r)}}};})();
269
+ `));let o=t.createElement(L);o.addEventListener("slicc-overlay-toggle",()=>this.toggle()),o.addEventListener("slicc-overlay-move",a=>{let s=a.detail?.corner;this.applyState(A(this.state,s))}),e.appendChild(o);let n=t.createElement(k);n.addEventListener("slicc-overlay-close",()=>this.hideSidebar()),n.addEventListener("slicc-overlay-select-tab",a=>{let s=a.detail?.tab;this.applyState(R(this.state,s))}),e.appendChild(n)}syncChildren(){let e=this.shadowRoot;if(!e)return;let t=e.querySelector(L),o=e.querySelector(k);!t||!o||(t.toggleAttribute("open",this.state.open),t.setAttribute("corner",this.state.corner),o.toggleAttribute("open",this.state.open),o.setAttribute("corner",this.state.corner),o.setAttribute("active-tab",this.state.activeTab),this.appUrlValue?o.setAttribute("app-url",this.appUrlValue):o.removeAttribute("app-url"))}};function ue(r=customElements){r.get(L)||r.define(L,P),r.get(k)||r.define(k,Y),r.get(N)||r.define(N,_)}function ee(r=document,e={}){ue(r.defaultView?.customElements??customElements);let t=r.getElementById(U),o;return t instanceof _?o=t:(t?.remove(),o=r.createElement(N)),o.id=U,o.isConnected||(r.body??r.documentElement).appendChild(o),typeof e.open=="boolean"&&(o.open=e.open),e.activeTab!==void 0&&(o.activeTab=u(e.activeTab)),e.appUrl!==void 0&&(o.appUrl=e.appUrl??v),e.corner!==void 0&&(o.corner=e.corner??D(r.defaultView)),o}function te(r=document){r.getElementById(U)?.remove()}function D(r){try{return f(r?.localStorage.getItem(Q))}catch{return f(null)}}function I(r,e){try{r?.localStorage.setItem(Q,e)}catch{}}function K(r,e,t){return Math.min(Math.max(r,e),t)}window.__SLICC_ELECTRON_OVERLAY__={inject(r={}){try{ee(document,r)}catch(e){console.error("[slicc-overlay] Injection failed:",e)}},remove(){try{te(document)}catch(r){console.error("[slicc-overlay] Removal failed:",r)}}};})();
@@ -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-pholQCCK.js"></script>
8
+ <script type="module" crossorigin src="/assets/main-BlxLnse7.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-Dezn_h7o.js">
10
10
  <link rel="stylesheet" crossorigin href="/assets/main-BxXY3xQw.css">
11
11
  </head>
@@ -4,9 +4,9 @@
4
4
  <meta charset="utf-8" />
5
5
  <title>SLICC cloud cones</title>
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1" />
7
- <script type="module" crossorigin src="/assets/cloud-CZM-12lk.js"></script>
7
+ <script type="module" crossorigin src="/assets/cloud-DhBwfVPK.js"></script>
8
8
  <link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-Dezn_h7o.js">
9
- <link rel="stylesheet" crossorigin href="/assets/cloud-CyzxzXN0.css">
9
+ <link rel="stylesheet" crossorigin href="/assets/cloud-DwpQLDy4.css">
10
10
  </head>
11
11
  <body>
12
12
  <header>
@@ -22,12 +22,50 @@
22
22
  </main>
23
23
 
24
24
  <main id="signed-in" class="hidden">
25
- <section class="create-row">
26
- <input id="cone-name" placeholder="name (optional)" autocomplete="off" />
27
- <button id="create-btn">+ New cone</button>
28
- <span id="create-status" class="status"></span>
25
+ <section id="create-card" class="card create-card">
26
+ <h2 class="card__title">New cone</h2>
27
+
28
+ <label class="field">
29
+ <span class="field__label">Name <span class="field__hint">optional</span></span>
30
+ <input id="cone-name" placeholder="my-cone" autocomplete="off" />
31
+ </label>
32
+
33
+ <div class="field">
34
+ <span class="field__label">Providers</span>
35
+ <p id="providers-empty" class="field__empty">
36
+ Connect a provider to choose a model and start a cone.
37
+ </p>
38
+ <div id="account-list" class="account-list"></div>
39
+ <div class="providers-actions">
40
+ <button id="connect-btn" class="btn-secondary">Connect a provider</button>
41
+ <button id="add-adobe-btn" class="btn-ghost hidden">+ Add Adobe (default)</button>
42
+ </div>
43
+ </div>
44
+
45
+ <label class="field gated">
46
+ <span class="field__label">Model</span>
47
+ <select id="cone-model">
48
+ <option value="">Select model…</option>
49
+ </select>
50
+ </label>
51
+
52
+ <div class="field gated">
53
+ <span class="field__label">Secrets <span class="field__hint">optional</span></span>
54
+ <p class="field__desc">
55
+ Injected into the cone's environment for the listed domains.
56
+ </p>
57
+ <div id="secret-rows" class="secret-rows"></div>
58
+ <button id="add-secret" class="btn-ghost">+ Add secret</button>
59
+ </div>
60
+
61
+ <div class="create-actions gated">
62
+ <button id="create-btn" class="btn-primary">+ Create cone</button>
63
+ <span id="create-status" class="status"></span>
64
+ </div>
29
65
  </section>
66
+
30
67
  <section class="list">
68
+ <h2 class="list__title">Your cones</h2>
31
69
  <ul id="cone-list"></ul>
32
70
  <div id="cap-info" class="cap-info"></div>
33
71
  </section>
@@ -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-pholQCCK.js"></script>
8
+ <script type="module" crossorigin src="/assets/main-BlxLnse7.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-Dezn_h7o.js">
10
10
  <link rel="stylesheet" crossorigin href="/assets/main-BxXY3xQw.css">
11
11
  </head>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sliccy",
3
- "version": "3.26.0",
3
+ "version": "3.28.0",
4
4
  "description": "Browser-based coding agent with thin CLI server",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -27,6 +27,7 @@
27
27
  "packages/shared-ts",
28
28
  "packages/cloud-core",
29
29
  "packages/webapp",
30
+ "packages/cherry",
30
31
  "packages/node-server",
31
32
  "packages/chrome-extension",
32
33
  "packages/cloudflare-worker",
@@ -36,12 +37,12 @@
36
37
  "scripts": {
37
38
  "dev": "tsx packages/node-server/src/index.ts --dev",
38
39
  "dev:electron": "tsx packages/node-server/src/index.ts --dev --electron",
39
- "build": "npm run build -w @slicc/shared-ts && npm run build -w @slicc/cloud-core && npm run build -w @slicc/webapp && npm run build -w @slicc/node-server && npm run build -w @slicc/chrome-extension && npm run build -w @slicc/cloudflare-worker && npm run build -w @slicc/swift-server && npm run build -w @slicc/swift-launcher",
40
+ "build": "npm run build -w @slicc/shared-ts && npm run build -w @slicc/cloud-core && npm run build -w @slicc/webapp && npm run build -w @ai-ecoverse/cherry && npm run build -w @slicc/node-server && npm run build -w @slicc/chrome-extension && npm run build -w @slicc/cloudflare-worker && npm run build -w @slicc/swift-server && npm run build -w @slicc/swift-launcher",
40
41
  "start": "node dist/node-server/index.js",
41
42
  "start:electron": "node dist/node-server/index.js --electron",
42
43
  "preflight": "node packages/dev-tools/tools/preflight-deps.mjs",
43
44
  "pretypecheck": "npm run preflight",
44
- "typecheck": "tsc --noEmit -p tsconfig.cli.json && tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.worker.json && tsc --noEmit -p tsconfig.webapp-worker.json && tsc --noEmit -p packages/cloud-core/tsconfig.json",
45
+ "typecheck": "tsc --noEmit -p tsconfig.cli.json && tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.worker.json && tsc --noEmit -p tsconfig.webapp-worker.json && tsc --noEmit -p packages/cloud-core/tsconfig.json && tsc --noEmit -p packages/cherry/tsconfig.json",
45
46
  "pretest": "npm run preflight",
46
47
  "test": "vitest run",
47
48
  "test:coverage": "vitest run --coverage",
@@ -49,6 +50,7 @@
49
50
  "test:coverage:node-server": "vitest run --project node-server --coverage --coverage.thresholds.lines=65 --coverage.thresholds.statements=65 --coverage.thresholds.functions=65 --coverage.thresholds.branches=55",
50
51
  "test:coverage:chrome-extension": "vitest run --project chrome-extension --coverage --coverage.exclude='**/node_modules/**' --coverage.exclude='**/dist/**' --coverage.exclude='**/tests/**' --coverage.exclude='**/*.d.ts' --coverage.exclude='**/*.config.{ts,js,mjs}' --coverage.exclude='**/types.ts' --coverage.exclude='**/index.html' --coverage.exclude='**/shims/**' --coverage.exclude='packages/*/src/**/*.test.ts' --coverage.exclude='packages/webapp/src/scoops/**' --coverage.exclude='packages/webapp/src/net/**' --coverage.exclude='packages/webapp/src/shell/**' --coverage.exclude='packages/webapp/src/core/proxy-error.ts' --coverage.exclude='packages/node-server/src/**' --coverage.thresholds.lines=55 --coverage.thresholds.statements=55 --coverage.thresholds.functions=60 --coverage.thresholds.branches=45",
51
52
  "test:coverage:webapp": "vitest run --project webapp --coverage",
53
+ "test:coverage:cherry": "vitest run --project cherry --coverage",
52
54
  "test:server-integration": "vitest run --config packages/node-server/tests/integration/server/vitest.config.ts",
53
55
  "test:e2e": "npx playwright test --config packages/webapp/tests/e2e/playwright.config.ts",
54
56
  "start:extension": "npm run build -w @slicc/chrome-extension && npm run dev -- --profile=extension",
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/oauth-service-CSONhiAr.js","assets/main-pholQCCK.js","assets/modulepreload-polyfill-Dezn_h7o.js","assets/main-BxXY3xQw.css"])))=>i.map(i=>d[i]);
2
- import{B as e,H as t,Q as n,R as r,W as i,Z as a,et as o,l as s,n as c,o as l,q as u,r as d,tt as f}from"./main-pholQCCK.js";import{getOAuthPageOrigin as p}from"./oauth-service-CSONhiAr.js";var m={proxyEndpoint:`https://adobe-llm-proxy.paolo-moz.workers.dev`,redirectUri:`https://www.sliccy.ai/auth/callback`,extensionRedirectUri:`https://akjjllgokmbgpbdbmafpiefnhidlmbgf.chromiumapp.org/adobe`},h=5*6e4;function g(e=h){let t=0;return{async run(n,r=Date.now()){if(r<t)return null;let i=null;try{i=await n()}catch(e){console.debug(`[silent-renew-backoff] renew threw:`,e instanceof Error?e.message:String(e)),i=null}return t=i?0:r+e,i},inCooldown(e=Date.now()){return e<t}}}var _=Object.assign({"/packages/webapp/providers/adobe-config.json":m})[`/packages/webapp/providers/adobe-config.json`]??{clientId:``,proxyEndpoint:``,scopes:`openid,profile,email`};function v(){let e=l(`adobe`);if(e)return e.replace(/\/$/,``);if(_.proxyEndpoint)return _.proxyEndpoint.replace(/\/$/,``);throw Error(`Adobe proxy endpoint not configured — set it in Settings or adobe-config.json`)}var y=new Map,b=new Map;async function x(e){let t=y.get(e);if(t)return t;try{let t=await fetch(`${e}/v1/config`,{headers:{[L]:`3.26.0`}});if(t.ok){let n=await t.json();return y.set(e,n),n}console.warn(`[adobe] Proxy /v1/config returned ${t.status}, falling back to build-time config`)}catch(e){console.warn(`[adobe] Failed to fetch proxy config:`,e instanceof Error?e.message:String(e))}let n={};return y.set(e,n),n}function S(e){let t=e.clientId||_.clientId;if(!t)throw Error(`Could not determine IMS client ID — proxy /v1/config did not return one and adobe-config.json is empty`);return t}function C(e){return e.scopes||_.scopes}function w(e){return e.imsEnvironment||_.imsEnvironment||`prod`}var T={prod:`https://ims-na1.adobelogin.com`,stg1:`https://ims-na1-stg1.adobelogin.com`};function E(e){return T[e??_.imsEnvironment??`prod`]??T.prod}var D=typeof chrome<`u`&&!!chrome?.runtime?.id;function O(){return d().find(e=>e.providerId===`adobe`)}async function k(e,t){try{let n=await fetch(`${E(t)}/ims/userinfo/v2`,{headers:{Authorization:`Bearer ${e}`}});if(n.ok){let e=await n.json();return{name:e.displayName||e.name||e.email,avatar:e.picture||e.avatar_url}}console.warn(`[adobe] User profile fetch returned ${n.status}, account will have no display name`)}catch(e){console.warn(`[adobe] Failed to fetch user profile:`,e instanceof Error?e.message:String(e))}return{}}function A(e){let t=e.indexOf(`#`);if(t<0)return null;let n=new URLSearchParams(e.slice(t+1)),r=n.get(`access_token`);return r?{accessToken:r,expiresIn:parseInt(n.get(`expires_in`)??`86400`,10)}:null}var j={id:`adobe`,name:`Adobe`,description:`Claude via Adobe — login with your Adobe ID`,requiresApiKey:!1,requiresBaseUrl:!_.proxyEndpoint,baseUrlPlaceholder:`https://your-proxy.example.com`,baseUrlDescription:`Anthropic-compatible proxy endpoint`,isOAuth:!0,defaultModelId:`sonnet`,oauthTokenDomains:[`ims-na1.adobelogin.com`,`ims-na1-stg1.adobelogin.com`,`*.adobelogin.com`,`*.adobe.io`,`firefall.adobe.io`,`admin.hlx.page`,`admin.hlx.live`,`admin.aem.page`,`admin.aem.live`],getModelIds:()=>{let e=e=>{let t={id:e.id,name:e.name??e.id},n=b.get(e.id);return n?.api&&(t.api=n.api),n?.context_window!==void 0&&(t.context_window=n.context_window),n?.max_tokens!==void 0&&(t.max_tokens=n.max_tokens),n?.reasoning!==void 0&&(t.reasoning=n.reasoning),n?.input&&(t.input=n.input),/haiku/i.test(e.id)&&(t.compat={supportsEagerToolInputStreaming:!1}),t};for(let t of q.values())if(t.length){let n=t.map(t=>e({id:t.id,name:t.name??t.id}));try{localStorage.setItem(`slicc-adobe-models`,JSON.stringify(n))}catch{}return n}for(let t of y.values())if(t.models?.length)return t.models.map(e);try{let e=localStorage.getItem(`slicc-adobe-models`);if(e){let t=JSON.parse(e);if(t.length)return t}}catch{}return[{id:`claude-sonnet-4-6`,name:`Claude Sonnet 4.6`}]},onOAuthLogin:async(e,t,n)=>{let r=v(),i=await x(r),a=S(i),o=C(i),c=w(i),l=D?null:await p(),u=D?_.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:_.redirectUri??`${l.origin}/auth/callback`,d=D?void 0:btoa(JSON.stringify({port:parseInt(new URL(l.href).port||`5710`,10),path:`/auth/callback`,nonce:crypto.randomUUID()})),f=d?JSON.parse(atob(d)).nonce:null,m=new URLSearchParams({client_id:a,scope:o,response_type:`token`,redirect_uri:u});d&&m.set(`state`,d),n?.forceReauth&&m.set(`prompt`,`login`);let h=await e(`${E(c)}/ims/authorize/v2?${m}`);if(!h)return;if(f&&h)try{if(new URL(h).searchParams.get(`nonce`)!==f){console.error(`[adobe] OAuth nonce mismatch — possible CSRF`);return}}catch(e){console.warn(`[adobe] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}let g=A(h);if(!g){console.error(`[adobe] Could not extract token from redirect URL`);return}let y=await k(g.accessToken,c);await s({providerId:`adobe`,accessToken:g.accessToken,tokenExpiresAt:Date.now()+g.expiresIn*1e3,userName:y.name,userAvatar:y.avatar,baseUrl:_.proxyEndpoint?void 0:r}),await J().catch(e=>console.warn(`[adobe] Failed to fetch models after login:`,e instanceof Error?e.message:String(e))),t()},onOAuthLogout:async()=>{let e=O();if(e?.accessToken)try{let t=y.values().next().value??{},n=t.clientId||_.clientId,r=w(t);if(n){let t=await fetch(`${E(r)}/ims/revoke`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:new URLSearchParams({token:e.accessToken,token_type_hint:`access_token`,client_id:n})});t.ok||console.warn(`[adobe] Token revocation returned ${t.status}, token may still be valid server-side`)}}catch(e){console.warn(`[adobe] Failed to revoke token:`,e instanceof Error?e.message:String(e))}await s({providerId:`adobe`,accessToken:``})},onSilentRenew:async()=>O()?.accessToken?I():null},M=null,N=g();async function P(){let e=O();if(!e?.accessToken)throw Error(`Not logged in to Adobe — please log in first`);if((e.tokenExpiresAt??0)-Date.now()>6e4)return e.accessToken;console.log(`[adobe] Token expired or expiring soon, attempting silent renewal...`);let t=await N.run(()=>I());if(t)return t;let n=O();if((n?.tokenExpiresAt??0)-Date.now()>0&&n?.accessToken)return n.accessToken;throw Error(`Adobe session expired — please log in again`)}function F(){let e=O();return e?.tokenExpiresAt?Date.now()>e.tokenExpiresAt-6e4:!0}async function I(){return typeof window>`u`?null:M||(M=(async()=>{try{let e=v(),t=await x(e),n=S(t),r=C(t),i=w(t),a=D?_.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:_.redirectUri??`${window.location.origin}/auth/callback`,c=D?void 0:btoa(JSON.stringify({port:parseInt(new URL(window.location.href).port||`5710`,10),path:`/auth/callback`,nonce:crypto.randomUUID()})),l=c?JSON.parse(atob(c)).nonce:null,u=new URLSearchParams({client_id:n,scope:r,response_type:`token`,redirect_uri:a,prompt:`none`});c&&u.set(`state`,c);let d=`${E(i)}/ims/authorize/v2?${u}`,{createOAuthLauncher:f}=await o(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-CSONhiAr.js`);return{createOAuthLauncher:e}},__vite__mapDeps([0,1,2,3])),p=await f()(d,{interactive:!1});if(!p)return null;if(l&&p)try{if(new URL(p).searchParams.get(`nonce`)!==l)return console.error(`[adobe] OAuth nonce mismatch — possible CSRF`),null}catch(e){console.warn(`[adobe] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}let m=A(p);if(!m)return null;let h=O();return await s({providerId:`adobe`,accessToken:m.accessToken,tokenExpiresAt:Date.now()+m.expiresIn*1e3,userName:h?.userName,userAvatar:h?.userAvatar,baseUrl:_.proxyEndpoint?void 0:e}),console.log(`[adobe] Token renewed silently`),await J().catch(e=>console.warn(`[adobe] Failed to refresh models after silent renewal:`,e instanceof Error?e.message:String(e))),m.accessToken}catch(e){return console.warn(`[adobe] Silent renewal error:`,e instanceof Error?e.message:String(e)),null}finally{M=null}})(),M)}var L=`X-Slicc-Version`;function R(e){let t={},n=L.toLowerCase();if(e.headers)for(let[r,i]of Object.entries(e.headers))r.toLowerCase()!==n&&(t[r]=i);return t[L]=`3.26.0`,{...e,headers:t}}var z=`adobe-provider-fallback`,B=new Set;function V(e,t){if(e.headers){for(let t of Object.keys(e.headers))if(t.toLowerCase()===`x-session-id`)return e}return B.has(t)||(B.add(t),console.warn(`[adobe] Missing X-Session-Id from ${t} — using daily fallback. Attach an X-Session-Id header at the call site (see scoop-context.ts streamWithSessionId or docs/pitfalls.md).`)),{...e,headers:{...e.headers??{},"X-Session-Id":c(z)}}}function H(){B.clear()}function U(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:`adobe-anthropic`,provider:`adobe`,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()}}}var W=(t,n,i={})=>{let a=u();return(async()=>{try{let o=await P();if(String(t.api).includes(`openai`)){let r=e({...t,baseUrl:`${v()}/v1`,api:`openai-completions`,compat:{...t.compat,supportsStore:!1,supportsDeveloperRole:!1}},n,R(V({...i,apiKey:o},`streamAdobe[openai]`)));for await(let e of r)a.push(e)}else{let e=r({...t,baseUrl:v(),api:`anthropic-messages`},n,R(V({...i,apiKey:o},`streamAdobe[anthropic]`)));for await(let t of e)a.push(t)}a.end()}catch(e){console.error(`[adobe] Stream error:`,e instanceof Error?e.message:String(e)),a.push(U(t,e)),a.end()}})(),a},G=(e,n,r)=>{let a=u();return(async()=>{try{let o=await P();if(String(e.api).includes(`openai`)){let t=i({...e,baseUrl:`${v()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},n,R(V({...r,apiKey:o},`streamSimpleAdobe[openai]`)));for await(let e of t)a.push(e)}else{let i=t({...e,baseUrl:v(),api:`anthropic-messages`},n,R(V({...r,apiKey:o},`streamSimpleAdobe[anthropic]`)));for await(let e of i)a.push(e)}a.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),a.push(U(e,t)),a.end()}})(),a};async function K(){try{let e=await P(),t=v(),r=await fetch(`${t}/v1/models`,{headers:{Authorization:`Bearer ${e}`,[L]:`3.26.0`}});if(r.ok){let e=await r.json();if(e.data?.length){for(let t of e.data){let e={id:t.id,name:t.name};t.api!==void 0&&(e.api=t.api),t.context_window!==void 0&&(e.context_window=t.context_window),t.max_tokens!==void 0&&(e.max_tokens=t.max_tokens),t.reasoning!==void 0&&(e.reasoning=t.reasoning),t.input!==void 0&&(e.input=t.input),b.set(t.id,e)}let r=new Map;for(let e of n())try{for(let t of a(e))r.set(t.id,t)}catch{}return e.data.map(e=>{let n=r.get(e.id),i=`adobe-${e.api===`openai`?`openai`:`anthropic`}`;return n?{...n,provider:`adobe`,api:i}:{id:e.id,name:e.name??e.id,provider:`adobe`,api:i,baseUrl:t,contextWindow:2e5,maxTokens:16384,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},inputCost:0,outputCost:0,cacheReadCost:0,cacheWriteCost:0,reasoning:!0}})}}else console.warn(`[adobe] Proxy /v1/models returned ${r.status}, falling back to Anthropic models`)}catch(e){console.warn(`[adobe] Failed to fetch proxy models:`,e instanceof Error?e.message:String(e))}return a(`anthropic`).map(e=>({...e,provider:`adobe`,api:`adobe-anthropic`}))}var q=new Map;async function J(){let e=v(),t=q.get(e);if(t)return t;let n=await K();return q.set(e,n),n}function Y(){f({api:`adobe-anthropic`,stream:W,streamSimple:G}),f({api:`adobe-openai`,stream:W,streamSimple:G})}export{H as __resetAdobeSessionIdWarningCacheForTests,j as config,J as getAdobeModels,P as getValidAccessToken,F as isTokenExpired,Y as register};
@@ -1 +0,0 @@
1
- import{J as e,a as t,f as n,m as r,q as i,s as a,tt as o}from"./main-pholQCCK.js";import{t as s}from"./openai-Cn5LRPCm.js";var c=`azure-openai`,l=`2024-12-01-preview`,u={id:c,name:`Azure OpenAI`,description:`GPT models via Azure AI Foundry`,requiresApiKey:!0,apiKeyPlaceholder:`Azure API key`,apiKeyEnvVar:`AZURE_OPENAI_API_KEY`,requiresBaseUrl:!0,baseUrlPlaceholder:`https://your-resource.cognitiveservices.azure.com/`,baseUrlDescription:`Azure resource endpoint`,requiresDeployment:!0,deploymentPlaceholder:`gpt-4.1-mini, gpt-4o, o4-mini`,deploymentDescription:`Comma-separated deployment names (from Azure Portal → Deployments)`,requiresApiVersion:!0,apiVersionDefault:l,apiVersionDescription:`Azure OpenAI API version`,getModelIds:()=>{let e=a(c);if(!e)return[{id:`azure-unconfigured`,name:`Azure OpenAI (set deployments in Settings)`}];let t=e.split(`,`).map(e=>e.trim()).filter(Boolean);return t.length===0?[{id:`azure-unconfigured`,name:`Azure OpenAI (set deployments in Settings)`}]:t.map(e=>{let t=e.startsWith(`o1`)||e.startsWith(`o3`)||e.startsWith(`o4`);return{id:e,name:`${e} (Azure)`,reasoning:t,input:[`text`,`image`]}})}};function d(e){return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(0,64)}function f(e,t){let r=n(e.messages,t,d),i=[];for(let e of r)if(e.role===`user`)if(typeof e.content==`string`)i.push({role:`user`,content:e.content});else{let t=e.content.map(e=>e.type===`text`?{type:`text`,text:e.text??``}:e.type===`image`?{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}}:{type:`text`,text:JSON.stringify(e)});i.push({role:`user`,content:t})}else if(e.role===`assistant`){let t=e.content,n=t.filter(e=>e.type===`text`).map(e=>e.text??``).join(``),r=t.filter(e=>e.type===`toolCall`).map(e=>({id:e.id??``,type:`function`,function:{name:e.name??``,arguments:JSON.stringify(e.arguments??{})}}));r.length?i.push({role:`assistant`,content:n||null,tool_calls:r}):i.push({role:`assistant`,content:n})}else if(e.role===`toolResult`){let t=e.content;i.push({role:`tool`,tool_call_id:e.toolCallId??``,content:t?.map(e=>e.type===`text`?e.text??``:JSON.stringify(e)).join(``)||``})}return i}function p(e){if(e?.length)return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters}}))}function m(e){let t=e.content.find(e=>e.type===`text`);if(t)return{block:t,index:e.content.indexOf(t)};let n={type:`text`,text:``};return e.content.push(n),{block:n,index:e.content.length-1}}function h(e,t){return e.content.find(e=>e.type===`toolCall`&&e.id===t)}var g=(n,r,a={})=>{let o=i();return(async()=>{let i={role:`assistant`,content:[],api:`azure-openai-anthropic`,provider:c,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let u=a.apiKey;if(!u)throw Error(`Azure API key is required`);let d=n.baseUrl;if(!d)throw Error(`Azure endpoint is required`);let g=n.id,_={};n.headers&&Object.assign(_,n.headers),a.headers&&Object.assign(_,a.headers);let v=t(c)||l,y=new s({endpoint:d.replace(/\/+$/,``),apiKey:u,deployment:g,apiVersion:v,dangerouslyAllowBrowser:!0,defaultHeaders:_}),b=[...r.systemPrompt?[{role:`system`,content:r.systemPrompt}]:[],...f(r,n)],x=p(r.tools),S=await y.chat.completions.create({model:g,messages:b,stream:!0,stream_options:{include_usage:!0},...a.maxTokens?{max_completion_tokens:a.maxTokens}:{},...a.temperature===void 0?{}:{temperature:a.temperature},...x?{tools:x}:{}});o.push({type:`start`,partial:i});for await(let t of S){t.usage&&(i.usage.input=t.usage.prompt_tokens??0,i.usage.output=t.usage.completion_tokens??0,i.usage.totalTokens=t.usage.total_tokens??0,e(n,i.usage));for(let e of t.choices??[]){let t=e.delta;if(t){if(t.content){let{block:e,index:n}=m(i);e.text===``&&o.push({type:`text_start`,contentIndex:n,partial:i}),e.text+=t.content,o.push({type:`text_delta`,contentIndex:n,delta:t.content,partial:i})}if(t.tool_calls)for(let e of t.tool_calls){let t=e.id?h(i,e.id):void 0;if(!t&&e.id&&(t={type:`toolCall`,id:e.id,name:e.function?.name??``,arguments:{},_partialJson:``},i.content.push(t),o.push({type:`toolcall_start`,contentIndex:i.content.length-1,partial:i})),t&&e.function?.arguments){t._partialJson+=e.function.arguments;try{t.arguments=JSON.parse(t._partialJson)}catch{}o.push({type:`toolcall_delta`,contentIndex:i.content.indexOf(t),delta:e.function.arguments,partial:i})}}e.finish_reason&&(i.stopReason=e.finish_reason===`tool_calls`?`toolUse`:e.finish_reason===`length`?`length`:`stop`)}}}for(let e of i.content){let t=i.content.indexOf(e);if(e.type===`toolCall`){let n=e;try{n.arguments=JSON.parse(n._partialJson||`{}`)}catch{}delete n._partialJson,o.push({type:`toolcall_end`,contentIndex:t,toolCall:e,partial:i})}else e.type===`text`&&o.push({type:`text_end`,contentIndex:t,content:e.text,partial:i})}o.push({type:`done`,reason:i.stopReason,message:i}),o.end()}catch(e){i.stopReason=a.signal?.aborted?`aborted`:`error`,i.errorMessage=e instanceof Error?e.message:JSON.stringify(e),o.push({type:`error`,reason:i.stopReason,error:i}),o.end()}})(),o},_=(e,t,n)=>{let i=n?.apiKey;if(!i)throw Error(`Azure API key is required`);return g(e,t,{...r(e,n,i)})};function v(){o({api:`azure-openai-anthropic`,stream:g,streamSimple:_})}export{u as config,v as register};
@@ -1 +0,0 @@
1
- import{$ as e,K as t,Y as n,m as r}from"./main-pholQCCK.js";import{t as i}from"./headers-DO1UzNKu.js";import{t as a}from"./openai-Cn5LRPCm.js";import{n as o,r as s,t as c}from"./openai-responses-shared-D1uRqOzX.js";var l=`v1`,u=new Set([`openai`,`openai-codex`,`opencode`,`azure-openai-responses`]);function d(e){let t=new Map;if(!e)return t;for(let n of e.split(`,`)){let e=n.trim();if(!e)continue;let[r,i]=e.split(`=`,2);!r||!i||t.set(r.trim(),i.trim())}return t}function f(e,t){return t?.azureDeploymentName?t.azureDeploymentName:d({}.AZURE_OPENAI_DEPLOYMENT_NAME_MAP).get(e.id)||e.id}function p(e){if(e instanceof Error){let t=e.status,n=typeof t==`number`?t:void 0;return n===void 0?e.message:`Azure OpenAI API error (${n}): ${e.message}`}try{return JSON.stringify(e)}catch{return String(e)}}var m=(n,r,a)=>{let o=new t;return(async()=>{let t=f(n,a),c={role:`assistant`,content:[],api:`azure-openai-responses`,provider:n.provider,model:n.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let l=y(n,a?.apiKey||e(n.provider)||``,a),u=b(n,r,a,t),d=await a?.onPayload?.(u,n);d!==void 0&&(u=d);let f={...a?.signal?{signal:a.signal}:{},...a?.timeoutMs===void 0?{}:{timeout:a.timeoutMs},...a?.maxRetries===void 0?{}:{maxRetries:a.maxRetries}},{data:p,response:m}=await l.responses.create(u,f).withResponse();if(await a?.onResponse?.({status:m.status,headers:i(m.headers)},n),o.push({type:`start`,partial:c}),await s(p,c,o,n),a?.signal?.aborted)throw Error(`Request was aborted`);if(c.stopReason===`aborted`||c.stopReason===`error`)throw Error(`An unknown error occurred`);o.push({type:`done`,reason:c.stopReason,message:c}),o.end()}catch(e){for(let e of c.content)delete e.index,delete e.partialJson;c.stopReason=a?.signal?.aborted?`aborted`:`error`,c.errorMessage=p(e),o.push({type:`error`,reason:c.stopReason,error:c}),o.end()}})(),o},h=(t,i,a)=>{let o=a?.apiKey||e(t.provider);if(!o)throw Error(`No API key for provider: ${t.provider}`);let s=r(t,a,o),c=a?.reasoning?n(t,a.reasoning):void 0,l=c===`off`?void 0:c;return m(t,i,{...s,reasoningEffort:l})};function g(e){let t=e.trim().replace(/\/+$/,``),n;try{n=new URL(t)}catch{throw Error(`Invalid Azure OpenAI base URL: ${e}`)}let r=n.hostname.endsWith(`.openai.azure.com`)||n.hostname.endsWith(`.cognitiveservices.azure.com`),i=n.pathname.replace(/\/+$/,``);return r&&(i===``||i===`/`||i===`/openai`)&&(n.pathname=`/openai/v1`,n.search=``),n.toString().replace(/\/+$/,``)}function _(e){return`https://${e}.openai.azure.com/openai/v1`}function v(e,t){let n=t?.azureApiVersion||{}.AZURE_OPENAI_API_VERSION||l,r=t?.azureBaseUrl?.trim()||{}.AZURE_OPENAI_BASE_URL?.trim()||void 0,i=t?.azureResourceName||{}.AZURE_OPENAI_RESOURCE_NAME,a=r;if(!a&&i&&(a=_(i)),!a&&e.baseUrl&&(a=e.baseUrl),!a)throw Error(`Azure OpenAI base URL is required. Set AZURE_OPENAI_BASE_URL or AZURE_OPENAI_RESOURCE_NAME, or pass azureBaseUrl, azureResourceName, or model.baseUrl.`);return{baseUrl:g(a),apiVersion:n}}function y(e,t,n){if(!t){if(!{}.AZURE_OPENAI_API_KEY)throw Error(`Azure OpenAI API key is required. Set AZURE_OPENAI_API_KEY environment variable or pass it as an argument.`);t={}.AZURE_OPENAI_API_KEY}let r={...e.headers};n?.headers&&Object.assign(r,n.headers);let{baseUrl:i,apiVersion:o}=v(e,n);return new a({apiKey:t,apiVersion:o,dangerouslyAllowBrowser:!0,defaultHeaders:r,baseURL:i})}function b(e,t,n,r){let i={model:r,input:c(e,t,u),stream:!0,prompt_cache_key:n?.sessionId};return n?.maxTokens&&(i.max_output_tokens=n?.maxTokens),n?.temperature!==void 0&&(i.temperature=n?.temperature),t.tools&&t.tools.length>0&&(i.tools=o(t.tools)),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(i.reasoning={effort:n?.reasoningEffort?e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:`medium`,summary:n?.reasoningSummary||`auto`},i.include=[`reasoning.encrypted_content`]):e.thinkingLevelMap?.off!==null&&(i.reasoning={effort:e.thinkingLevelMap?.off??`none`})),i}export{m as streamAzureOpenAIResponses,h as streamSimpleAzureOpenAIResponses};
@@ -1 +0,0 @@
1
- import"./modulepreload-polyfill-Dezn_h7o.js";var e=`cloud-ims-token`,t=`cloud-ims-token-exp`,n=null;async function r(){if(n)return n;let e=await fetch(`/api/cloud/config`);if(!e.ok)throw Error(`config fetch failed: `+e.status);return n=await e.json(),n}function i(){let n=localStorage.getItem(e),r=parseInt(localStorage.getItem(t)||`0`,10);return!n||r<Date.now()?null:n}function a(n,r){localStorage.setItem(e,n),localStorage.setItem(t,String(Date.now()+(parseInt(r,10)||0)*1e3))}function o(){localStorage.removeItem(e),localStorage.removeItem(t)}function s(e){let t=document.getElementById(`toast`);t.textContent=e,t.classList.remove(`hidden`),setTimeout(()=>t.classList.add(`hidden`),4e3)}function c(){document.getElementById(`signed-out`).classList.add(`hidden`),document.getElementById(`signed-in`).classList.remove(`hidden`),document.getElementById(`user-box`).classList.remove(`hidden`),document.getElementById(`user-label`).textContent=`signed in`}function l(){document.getElementById(`signed-out`).classList.remove(`hidden`),document.getElementById(`signed-in`).classList.add(`hidden`),document.getElementById(`user-box`).classList.add(`hidden`)}async function u(){let e=await r(),t=new URL(e.imsRelayUrl).host===window.location.host,n=/^(localhost|127\.0\.0\.1)$/.test(window.location.hostname),i=crypto.randomUUID(),o,s;if(t)o=window.location.origin+e.imsReceivePath,s=i;else if(n){o=e.imsRelayUrl;let t=Number(window.location.port)||(window.location.protocol===`https:`?443:80);s=btoa(JSON.stringify({source:`local`,port:t,path:e.imsReceivePath,nonce:i}))}else o=e.imsRelayUrl,s=btoa(JSON.stringify({source:`remote`,origin:window.location.origin,path:e.imsReceivePath,nonce:i}));return new Promise((t,n)=>{let r=new URLSearchParams({client_id:e.imsClientId,scope:e.imsScope,response_type:`token`,redirect_uri:o,state:s});if(!window.open(`${e.imsAuthorizeUrl}?${r}`,`sliccy-cloud-ims`,`width=480,height=640`))return n(Error(`popup blocked`));function i(e){e.origin===window.location.origin&&(e.data?.type===`sliccy.cloud.imsToken`?(window.removeEventListener(`message`,i),a(e.data.token,e.data.expiresIn),t()):e.data?.type===`sliccy.cloud.imsError`&&(window.removeEventListener(`message`,i),n(Error(e.data.error))))}window.addEventListener(`message`,i)})}async function d(e,t={}){let n=i();if(!n)throw Error(`not authenticated`);let r=await fetch(e,{...t,headers:{...t.headers||{},Authorization:`Bearer ${n}`,...t.body?{"content-type":`application/json`}:{}}});if(r.status===401)throw o(),l(),s(`Session expired — please sign in again.`),Error(`unauthorized`);if(!r.ok){let e=await r.json().catch(()=>({error:`unknown`,message:r.statusText}));throw Object.assign(Error(e.message||`error`),{code:e.error})}return r.json()}function f(e){if(!e)return`just now`;let t=new Date(e),n=Math.max(0,(Date.now()-t.getTime())/1e3);return n<60?`${Math.floor(n)}s ago`:n<3600?`${Math.floor(n/60)} min ago`:`${Math.floor(n/3600)} hr ago`}function p(e){let t=document.getElementById(`cone-list`);t.replaceChildren();for(let n of e){let e=document.createElement(`li`);e.className=`cone ${n.state}`;let r=document.createElement(`div`),i=document.createElement(`span`);i.className=`state-dot`,r.appendChild(i);let a=document.createElement(`strong`);a.textContent=n.name||n.sandboxId,r.appendChild(a),r.appendChild(document.createTextNode(` `));let o=document.createElement(`span`);o.className=`status`,o.textContent=`${n.state} · ${f(n.lastSeen)}`,r.appendChild(o),e.appendChild(r);let s=document.createElement(`div`);if(s.className=`cone-actions`,n.state===`running`&&n.joinUrl){let e=document.createElement(`a`);e.href=n.joinUrl,e.target=`_blank`,e.rel=`noopener noreferrer`,e.title=`This link grants follower access — only share with people you trust to see this cone.`,e.textContent=`Open ↗`,s.appendChild(e)}if(n.state===`running`){let t=document.createElement(`button`);t.textContent=`Pause`,t.addEventListener(`click`,()=>v(e,n.sandboxId,`pause`)),s.appendChild(t)}if(n.state===`paused`){let t=document.createElement(`button`);t.textContent=`Resume`,t.addEventListener(`click`,()=>v(e,n.sandboxId,`resume`)),s.appendChild(t)}let c=document.createElement(`button`);c.textContent=`Kill`,c.addEventListener(`click`,()=>v(e,n.sandboxId,`kill`)),s.appendChild(c),e.appendChild(s),h.has(n.sandboxId)&&_(e,h.get(n.sandboxId)),t.appendChild(e)}let r=e.filter(e=>e.state===`running`||e.state===`reserved`).length,i=e.filter(e=>e.state===`paused`).length,a=n.capRunning??1,o=n.capPaused??5;document.getElementById(`cap-info`).textContent=`${r} running · ${i} paused (cap: ${a}/${o})`;let s=document.getElementById(`create-btn`),c=r>=a,l=i>=o;s.disabled=c||l,c?s.title=`Cap reached (${r}/${a} running). Pause or kill another first.`:l?s.title=`Paused cap reached (${i}/${o}). Resume or kill a paused cone first.`:s.title=``}async function m(){try{p((await d(`/api/cloud/list`)).cones||[])}catch(e){e.message!==`unauthorized`&&s(`List failed: `+e.message)}}var h=new Map,g={pause:{label:`Pausing…`,path:`/api/cloud/pause`,confirm:null},resume:{label:`Resuming…`,path:`/api/cloud/resume`,confirm:null},kill:{label:`Killing…`,path:`/api/cloud/kill`,confirm:`Kill this cone? This cannot be undone.`}};function _(e,t){e.classList.add(`cone--busy`);for(let t of e.querySelectorAll(`button`))t.disabled=!0;let n=e.querySelector(`.cone-busy-badge`);if(!n){n=document.createElement(`span`),n.className=`cone-busy-badge`;let t=e.querySelector(`.status`);t&&t.appendChild(n)}n.textContent=` · `+t}async function v(e,t,n){let r=g[n];if(r&&!(r.confirm&&!confirm(r.confirm))){h.set(t,r.label),_(e,r.label);try{await d(r.path,{method:`POST`,body:JSON.stringify({sandboxId:t})})}catch(e){s(n.charAt(0).toUpperCase()+n.slice(1)+` failed: `+e.message)}finally{h.delete(t),await m()}}}document.getElementById(`sign-in-btn`).addEventListener(`click`,async()=>{try{await u(),c(),await m()}catch(e){s(`Sign-in failed: `+e.message)}}),document.getElementById(`sign-out-btn`).addEventListener(`click`,async()=>{let e=i();if(e)try{await fetch(`/api/cloud/sign-out`,{method:`POST`,headers:{Authorization:`Bearer ${e}`}})}catch{}o(),l()});var y=document.getElementById(`create-btn`);y.addEventListener(`click`,async()=>{if(y.disabled)return;let e=document.getElementById(`cone-name`),t=document.getElementById(`create-status`),n=e.value.trim()||void 0,r=y.textContent;y.disabled=!0,y.textContent=`Starting…`,t.textContent=`creating cone (this can take 30s)…`;try{let r=await d(`/api/cloud/start`,{method:`POST`,body:JSON.stringify({name:n})});t.textContent=`ready`,e.value=``,await m(),r.joinUrl&&window.open(r.joinUrl,`_blank`,`noopener,noreferrer`)}catch(e){s(`Create failed: `+e.message),t.textContent=``}finally{y.disabled=!1,y.textContent=r,setTimeout(()=>t.textContent=``,3e3)}}),window.addEventListener(`focus`,()=>{i()&&m()});var b=document.getElementById(`sign-in-btn`);b.disabled=!0,b.textContent=`Loading…`,r().then(()=>{b.disabled=!1,b.textContent=`Sign in with Adobe`,i()?(c(),m()):l()}).catch(e=>{b.textContent=`Config error`,s(`Could not load IMS config: `+e.message),l()});
@@ -1 +0,0 @@
1
- :root{--bg:#fbfaf7;--surface:#fff;--border:#ece8df;--text:#1f1d1a;--muted:#6e655d;--accent:#e8516b;--accent-deep:#c4344f;--accent-soft:#fce4e8;--running:#2ec27e;--paused:#c5b8a6;--dead:#d96363;--shadow:0 2px 8px #281e190f;--radius:14px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);min-height:100vh;margin:0;padding:32px 24px;font:14.5px/1.55 -apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}main,header{max-width:720px;margin:0 auto}header{border-radius:var(--radius);box-shadow:var(--shadow);background:linear-gradient(135deg,#ffe8d6 0%,#ffc9c9 100%);justify-content:space-between;align-items:center;margin-bottom:24px;padding:20px 24px;display:flex}header h1{letter-spacing:-.01em;color:#4a2a1f;margin:0;font-size:22px;font-weight:600}header h1:before{content:"🍦 "}#user-label{color:var(--muted);margin-right:12px;font-size:13px}.hidden{display:none}button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:8px 14px;transition:all .15s}button:hover:not(:disabled){border-color:var(--accent);color:var(--accent-deep)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}.cone--busy{opacity:.7}.cone-busy-badge{color:var(--accent-deep);font-weight:500}.cone--busy .cone-busy-badge:before{content:"";border:2px solid var(--accent);vertical-align:-1px;border-top-color:#0000;border-radius:50%;width:10px;height:10px;margin-right:6px;animation:.8s linear infinite cone-spin;display:inline-block}@keyframes cone-spin{to{transform:rotate(360deg)}}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#sign-in-btn,#create-btn{background:var(--accent);color:#fff;border-color:var(--accent);padding:10px 18px;font-weight:500}#sign-in-btn:hover:not(:disabled),#create-btn:hover:not(:disabled){background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}#signed-out{text-align:center;padding:48px 24px}.create-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:10px;margin:20px 0 24px;padding:16px;display:flex}#cone-name{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;flex:1;padding:10px 14px}#cone-name:focus{border-color:var(--accent);background:var(--surface);outline:none}#cone-list{margin:0;padding:0;list-style:none}.cone{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);justify-content:space-between;align-items:center;margin-bottom:12px;padding:16px 18px;transition:transform .15s;display:flex}.cone:hover{transform:translateY(-1px)}.state-dot{border-radius:50%;width:10px;height:10px;margin-right:10px;display:inline-block;box-shadow:0 0 0 3px #ffffffb3}.cone.running .state-dot{background:var(--running)}.cone.paused .state-dot{background:var(--paused)}.cone.dead .state-dot{background:var(--dead)}.cone.reserved .state-dot{background:var(--accent)}.cone strong{font-weight:600}.cone-actions{gap:8px;display:flex}.cone-actions a{background:var(--accent-soft);color:var(--accent-deep);border:1px solid #0000;border-radius:8px;align-items:center;padding:8px 12px;font-weight:500;text-decoration:none;display:inline-flex}.cone-actions a:hover{border-color:var(--accent)}.status{color:var(--muted);font-size:12px}.cap-info{color:var(--muted);text-align:right;margin-top:12px;padding-right:6px;font-size:12px}.toast{color:#fff;background:#2b2723;border-radius:10px;max-width:320px;padding:14px 18px;font-size:13.5px;animation:.3s toast-in;position:fixed;top:24px;right:24px;box-shadow:0 6px 20px #0003}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@@ -1 +0,0 @@
1
- import"./main-pholQCCK.js";function e(e){}export{e as registerSessionCostsProvider};