diff --git a/.pi/agent/AGENTS.md b/.pi/agent/AGENTS.md index 4f99a217..905090d5 100755 --- a/.pi/agent/AGENTS.md +++ b/.pi/agent/AGENTS.md @@ -62,7 +62,7 @@ - Go:默认已有 `GOPROXY=https://goproxy.cn,direct`;若仍不可用,设置 `http_proxy`/`https_proxy` 环境变量 - Docker pull:配置 Docker daemon 代理或使用 `docker pull` 前设置环境变量 - 代理地址汇总:HTTP 代理 `http://192.168.1.1:17892`、SOCKS5 代理 `socks5://192.168.1.1:17891`(由 smywrt mihomo 提供) -- 操作完成后如非必要应及时取消代理,避免影响内网服务访问 +- 操作完成���如非必要应及时取消代理,避免影响内网服务访问 ## SproutClaw 项目规范 - 当用户要求安装 npm 扩展时,默认使用 `pi install npm:<包名>` 命令安装 diff --git a/brotli_dec_wasm_bg-Dn-Szc7i.wasm b/brotli_dec_wasm_bg-Dn-Szc7i.wasm new file mode 100644 index 00000000..fb944379 Binary files /dev/null and b/brotli_dec_wasm_bg-Dn-Szc7i.wasm differ diff --git a/llvm-y0xlpkPY.js b/llvm-y0xlpkPY.js new file mode 100644 index 00000000..c31afe0e --- /dev/null +++ b/llvm-y0xlpkPY.js @@ -0,0 +1,4 @@ +(function(){"use strict";var M={exports:{}},ge=M.exports,se;function ye(){return se||(se=1,(function(l,e){(function(t,s){s(e)})(ge,(function(t){class s{kept_object;room_id;id;bc;constructor(i,c){this.kept_object=i,this.room_id=`shared-object-${c}`,this.id="parent",this.bc=new globalThis.BroadcastChannel(this.room_id),this.register()}register(){const i=this.bc;i.onmessage=c=>{const r=c.data;if(r.msg===void 0)throw new Error("Invalid message");this.is_my_msg(r)||r.to===this.id&&(r.msg==="func_call::call"&&this.func_call(r),r.msg==="get::get"&&this.get(r))}}is_my_msg(i){return i.from===this.id}func_call(i){const c=this.bc,{names:r,args:o,id:a}=i;try{if(r.length===1&&r[0]===".self"){const u=this.kept_object(...o);c.postMessage({msg:"func_call::return",ret:u,id:a,from:this.id,to:i.from});return}let f=this.kept_object;for(const u of r)f=f[u];const d=f(...o);c.postMessage({msg:"func_call::return",ret:d,id:a,from:this.id,to:i.from})}catch(f){c.postMessage({msg:"func_call::error",error:f,id:a,from:this.id,to:i.from})}}get(i){const c=this.bc,{names:r,id:o}=i;try{let a=this.kept_object;for(const f of r)a=a[f];c.postMessage({msg:"get::return",ret:a,id:o,from:this.id,to:i.from,can_post:!0})}catch(a){if(a.name==="DataCloneError"){c.postMessage({msg:"get::data_clone_error",error:a,id:o,from:this.id,to:i.from,can_post:!1});return}c.postMessage({msg:"get::error",error:a,id:o,from:this.id,to:i.from,can_post:!1})}}}class n{room_id;id;map=new Map;bc;callbacks=[];constructor(i){this.room_id=`shared-object-${i}`,this.id=this.get_id(),this.bc=new globalThis.BroadcastChannel(this.room_id),this.register()}is_my_msg(i){return i.from===this.id}proxy(){return new Proxy(()=>{},{get:(i,c)=>this.get([c]),apply:(i,c,r)=>this.call([".self"],r)})}addCallback(i){this.callbacks.push(i)}removeCallback(i){const c=this.callbacks.indexOf(i);c!==-1&&this.callbacks.splice(c,1)}register(){const i=this.bc;i.onmessage=c=>{const r=c.data;if(r.msg===void 0)throw new Error("Invalid message");if(!this.is_my_msg(r)&&r.to===this.id){if(r.msg.startsWith("func_call::")){const o=this.map.get(r.id);if(o!==void 0)o(r),this.map.delete(r.id);else throw new Error("what happened? unreachable code")}if(r.msg.startsWith("get::")){const o=this.map.get(r.id);if(o!==void 0)o(r),this.map.delete(r.id);else throw new Error("what happened? unreachable code")}}}}get_id(){return Math.random().toString(36).slice(2)}check_msg_error(i){if(i.msg.endsWith("::error"))throw i.error}get(i){const{promise:c,resolve:r}=Promise.withResolvers(),o=this.get_id();this.map.set(o,r),this.postMessage({msg:"get::get",names:i,id:o,from:this.id,to:"parent"});let a=!1;const d=(async()=>{const h=await c;if(this.check_msg_error(h),h.msg==="get::return"||h.msg==="get::data_clone_error"){a&&console.warn(`Warning! +Objects that cannot be transferred are being retrieved.`);const w=h;return w.can_post?w.ret:new Proxy(()=>{},{get:(g,y)=>y==="then"?(a=!0,Promise.resolve(d)):this.get([...i,y]),apply:(g,y,b)=>this.call(i,b)})}throw new Error("what happened? unreachable code")})();return new Proxy(()=>{},{get:(h,w)=>w==="then"?(a=!0,d.then.bind(d)):this.get([...i,w]),apply:(h,w,g)=>this.call(i,g)})}async call(i,c){const{promise:r,resolve:o}=Promise.withResolvers(),a=this.get_id();this.map.set(a,o),this.postMessage({msg:"func_call::call",names:i,args:c,id:a});const f=await r;if(this.check_msg_error(f),f.msg==="func_call::return")return f.ret;throw new Error("what happened? unreachable code")}async call_callback(i){const{name:c,args:r,id:o}=i;try{if(i.msg==="callback::call"){const a=this.callbacks.find(d=>d.name===c);if(a===void 0)throw new Error("function not found");const f=a(...r);if(f instanceof Promise){this.postMessage({msg:"callback::promise",id:o});const d=await f;this.postMessage({msg:"callback::promise_return",ret:d,id:o})}else this.postMessage({msg:"callback::return",ret:f,id:o})}}catch(a){this.postMessage({msg:"callback::error",error:a,id:o})}}postMessage(i){this.bc.postMessage({...i,from:this.id,to:"parent"})}}t.SharedObject=s,t.SharedObjectRef=n,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})}))})(M,M.exports)),M.exports}var ne=ye();const G=0,Y=1,S=0,m=8,oe=28,ie=37,be=52,ae=58;class W{static read_bytes(e,t){const s=new W;return s.buf=e.getUint32(t,!0),s.buf_len=e.getUint32(t+4,!0),s}static read_bytes_array(e,t,s){const n=[];for(let _=0;_{}}new xe(!1);class _e extends Error{constructor(e){super("exit with exit code "+e),this.code=e}}class F{share_arrays_memory;constructor(e=new SharedArrayBuffer(10*1024*1024)){this.share_arrays_memory=e;const t=new Int32Array(this.share_arrays_memory);Atomics.store(t,0,0),Atomics.store(t,1,0),Atomics.store(t,2,12)}static init_self(e){return new F(e.share_arrays_memory)}async async_write(e,t,s){const n=new Int32Array(this.share_arrays_memory);for(;;){let _;const{value:i}=Atomics.waitAsync(n,0,1);if(i instanceof Promise?_=await i:_=i,_==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(n,0,0,1)!==0)continue;const r=this.write_inner(e,t,s);return Atomics.store(n,0,0),Atomics.notify(n,0,1),r}}block_write(e,t,s){for(;;){const n=new Int32Array(this.share_arrays_memory);if(Atomics.wait(n,0,1)==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(n,0,0,1)!==0)continue;const c=this.write_inner(e,t,s);return Atomics.store(n,0,0),Atomics.notify(n,0,1),c}}write_inner(e,t,s){const n=new Int32Array(this.share_arrays_memory),_=new Uint8Array(this.share_arrays_memory),i=Atomics.add(n,1,1);let c;i===0?c=Atomics.store(n,2,12):c=Atomics.load(n,2);const r=this.share_arrays_memory.byteLength,o=e.byteLength,a=c+o;if(rthis.share_arrays_memory.byteLength)throw new Error("over memory");Atomics.store(s,2,i);const c=new Int32Array(this.share_arrays_memory,n);c[0]=e.length,c[1]=e.length,c.set(e,2),new Uint32Array(this.share_arrays_memory,n+8+e.length*4).set(t),Atomics.add(s,1,1),this.release_lock()}get_data(e){const t=new Int32Array(this.share_arrays_memory);if(Atomics.load(t,1)===0)return;this.block_lock();const n=Atomics.load(t,1),_=[];let i=12;for(let c=0;c{const e=new Error(l.message);return e.name=l.name,e.stack=l.stack?.replace(/.wasm:/g,`.wasm +`),e.cause=l.cause,e};class ${allocator;lock;signature_input;constructor(e,t,s){this.allocator=e,this.lock=t,this.signature_input=s}block_lock_base_func(){const e=new Int32Array(this.lock);for(;;){if(Atomics.wait(e,0,1)==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(e,0,0,1)===0)return}}async async_lock_base_func(){const e=new Int32Array(this.lock);for(;;){const{value:t}=Atomics.waitAsync(e,0,1);if(await t==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(e,0,0,1)===0)return}}call_base_func(){const e=new Int32Array(this.lock);Atomics.store(e,2,1),Atomics.store(e,1,0),Atomics.notify(e,1,1)}block_wait_base_func(){const e=new Int32Array(this.lock);if(Atomics.wait(e,2,1)==="timed-out")throw new Error("timed-out lock")}async async_wait_base_func(){const e=new Int32Array(this.lock),{value:t}=Atomics.waitAsync(e,2,1);if(await t==="timed-out")throw new Error("timed-out lock")}release_base_func(){const e=new Int32Array(this.lock);Atomics.store(e,0,0),Atomics.notify(e,0,1)}new_worker(e,t,s){console.log("new_worker",e,t,s),this.block_lock_base_func();const n=new Int32Array(this.signature_input);Atomics.store(n,0,1);const _=new TextEncoder().encode(e);this.allocator.block_write(_,this.signature_input,1),Atomics.store(n,3,t?.type==="module"?1:0);const i=JSON.stringify(s),c=new TextEncoder().encode(i);this.allocator.block_write(c,this.signature_input,4),this.call_base_func(),this.block_wait_base_func();const r=Atomics.load(n,0);return this.release_base_func(),new Be(r)}async async_start_on_thread(e,t,s){await this.async_lock_base_func();const n=new Int32Array(this.signature_input);Atomics.store(n,0,2);const _=new TextEncoder().encode(e);await this.allocator.async_write(_,this.signature_input,1),Atomics.store(n,3,t?.type==="module"?1:0);const i=JSON.stringify(s),c=new TextEncoder().encode(i);await this.allocator.async_write(c,this.signature_input,4),this.call_base_func(),await this.async_wait_base_func(),this.release_base_func()}block_start_on_thread(e,t,s){this.block_lock_base_func();const n=new Int32Array(this.signature_input);Atomics.store(n,0,2);const _=new TextEncoder().encode(e);this.allocator.block_write(_,this.signature_input,1),Atomics.store(n,3,t?.type==="module"?1:0);const i=JSON.stringify(s),c=new TextEncoder().encode(i);this.allocator.block_write(c,this.signature_input,4),this.call_base_func(),this.block_wait_base_func(),this.release_base_func()}static init_self(e){return new $(F.init_self(e.allocator),e.lock,e.signature_input)}done_notify(e){const t=new Int32Array(this.lock,12);if(Atomics.compareExchange(t,0,0,2)!==0){console.error("what happened?");return}Atomics.store(t,1,e),Atomics.notify(t,0)===0&&Atomics.store(t,0,0)}async async_wait_done_or_error(){const e=new Int32Array(this.lock,12);Atomics.store(e,0,0);let t;const{value:s}=Atomics.waitAsync(e,0,0);if(s instanceof Promise?t=await s:t=s,t==="timed-out")throw new Error("timed-out");const n=Atomics.load(e,0);if(n===3)return Atomics.compareExchange(e,0,3,0)!==3&&console.error("what happened?"),0;if(n===2){const d=Atomics.compareExchange(e,0,2,0),u=Atomics.load(e,1);return d!==2&&console.error("what happened?"),u}if(n!==1)throw new Error("unknown code");const _=Atomics.load(e,1),i=Atomics.load(e,2),c=this.allocator.get_memory(_,i),r=new TextDecoder().decode(c),o=JSON.parse(r),a=de(o);throw Atomics.compareExchange(e,0,1,0)!==1&&console.error("what happened?"),a}block_wait_done_or_error(){const e=new Int32Array(this.lock,12);if(Atomics.store(e,0,0),Atomics.wait(e,0,0)==="timed-out")throw new Error("timed-out");const s=Atomics.load(e,0);if(s===3)return Atomics.compareExchange(e,0,3,0)!==3&&console.error("what happened?"),0;if(s===2){const f=Atomics.compareExchange(e,0,2,0),d=Atomics.load(e,1);return f!==2&&console.error("what happened?"),d}if(s!==1)throw new Error("unknown code");const n=Atomics.load(e,1),_=Atomics.load(e,2),i=this.allocator.get_memory(n,_),c=new TextDecoder().decode(i),r=JSON.parse(c),o=de(r);throw Atomics.compareExchange(e,0,1,0)!==1&&console.error("what happened?"),o}}class Be{id;constructor(e){this.id=e}get_id(){return this.id}}const Se=()=>{const l='let worker_background;class AllocatorUseArrayBuffer{share_arrays_memory;constructor(r=new SharedArrayBuffer(0xa00000)){this.share_arrays_memory=r;let e=new Int32Array(this.share_arrays_memory);Atomics.store(e,0,0),Atomics.store(e,1,0),Atomics.store(e,2,12)}static init_self(r){return new AllocatorUseArrayBuffer(r.share_arrays_memory)}async async_write(r,e,t){let o=new Int32Array(this.share_arrays_memory);for(;;){let{value:s}=Atomics.waitAsync(o,0,1);if("timed-out"===(s instanceof Promise?await s:s))throw Error("timed-out lock");if(0!==Atomics.compareExchange(o,0,0,1))continue;let i=this.write_inner(r,e,t);return Atomics.store(o,0,0),Atomics.notify(o,0,1),i}}block_write(r,e,t){for(;;){let o=new Int32Array(this.share_arrays_memory);if("timed-out"===Atomics.wait(o,0,1))throw Error("timed-out lock");if(0!==Atomics.compareExchange(o,0,0,1))continue;let s=this.write_inner(r,e,t);return Atomics.store(o,0,0),Atomics.notify(o,0,1),s}}write_inner(r,e,t){let o,s,i=new Int32Array(this.share_arrays_memory),a=new Uint8Array(this.share_arrays_memory);o=0===Atomics.add(i,1,1)?Atomics.store(i,2,12):Atomics.load(i,2);let n=this.share_arrays_memory.byteLength,c=r.byteLength,l=o+c;if(n({message:r.message,name:r.name,stack:r.stack,cause:r.cause}),WorkerBackground=class r{override_object;allocator;lock;signature_input;workers=[void 0];start_worker;listen_holder;constructor(r,e,t,o){this.override_object=r,this.lock=e??new SharedArrayBuffer(24),this.allocator=t??new AllocatorUseArrayBuffer(new SharedArrayBuffer(10240)),this.signature_input=o??new SharedArrayBuffer(24),this.listen_holder=this.listen()}static init_self(e,t){return new r(e,t.lock,AllocatorUseArrayBuffer.init_self(t.allocator),t.signature_input)}assign_worker_id(){for(let r=1;r{let r=Atomics.load(e,1),t=Atomics.load(e,2),o=this.allocator.get_memory(r,t);return this.allocator.free(r,t),new Worker(new TextDecoder().decode(o),{type:1===Atomics.load(e,3)?"module":"classic"})},s=()=>{let r=Atomics.load(e,4),t=Atomics.load(e,5),o=this.allocator.get_memory(r,t);return this.allocator.free(r,t),JSON.parse(new TextDecoder().decode(o))};switch(Atomics.load(e,0)){case 1:{let r=o(),t=s(),i=this.assign_worker_id();console.debug("new worker "+i),this.workers[i]=r;let{promise:a,resolve:n}=Promise.withResolvers();r.onmessage=async r=>{let{msg:e}=r.data;if("ready"===e&&n(),"done"===e&&(this.workers[i].terminate(),this.workers[i]=void 0,console.debug(`worker ${i} done so terminate`)),"error"===e||"exit"===e){this.workers[i].terminate(),this.workers[i]=void 0;let t=0;for(let r of this.workers)void 0!==r&&(r.terminate(),"error"===e?console.warn("wasi throw error but child process exists, terminate "+t):console.debug("wasi exit but child process exists, terminate "+t)),t++;void 0!==this.start_worker&&(this.start_worker.terminate(),"error"===e?console.warn("wasi throw error but wasi exists, terminate wasi"):console.debug("wasi exit but wasi exists, terminate wasi")),this.workers=[void 0],this.start_worker=void 0;let o=new Int32Array(this.lock,12);if("error"===e){let e=r.data.error,t=serialize(e),[s,i]=await this.allocator.async_write(new TextEncoder().encode(JSON.stringify(t)),this.lock,4);if(0!==Atomics.compareExchange(o,0,0,1)){console.error("what happened?"),this.allocator.free(s,i);return}1!==Atomics.notify(o,0)&&(console.error(e),this.allocator.free(s,i),Atomics.store(o,0,0))}else{let e=r.data.code;if(0!==Atomics.compareExchange(o,0,0,2))return void console.error("what happened?");Atomics.store(o,1,e),0===Atomics.notify(o,0)&&Atomics.store(o,0,0)}}},r.postMessage({...this.override_object,...t,worker_id:i,worker_background_ref:this.ref()}),await a,Atomics.store(e,0,i);break}case 2:{console.debug("start worker create"),this.start_worker=o();let r=s();this.start_worker.onmessage=async r=>{let{msg:e}=r.data;if("done"===e){let r=0;for(let e of this.workers)void 0!==e&&(e.terminate(),console.warn("wasi done but worker exists, terminate "+r)),r++;this.start_worker.terminate(),this.start_worker=void 0;let e=new Int32Array(this.lock,12);Atomics.store(e,0,3),0===Atomics.notify(e,0)&&Atomics.store(e,0,0),console.debug("start worker done so terminate")}if("error"===e||"exit"===e){let t=0;for(let r of this.workers)void 0!==r&&(r.terminate(),"error"===e?console.warn("wasi throw error but worker exists, terminate "+t):console.debug("wasi exit but worker exists, terminate "+t)),t++;void 0!==this.start_worker&&(this.start_worker.terminate(),"error"===e?console.warn("wasi throw error but wasi exists, terminate start worker"):console.debug("wasi exit but wasi exists, terminate start worker")),this.workers=[void 0],this.start_worker=void 0;let o=new Int32Array(this.lock,12);if("error"===e){let e=r.data.error,t=serialize(e),[s,i]=await this.allocator.async_write(new TextEncoder().encode(JSON.stringify(t)),this.lock,4);if(0!==Atomics.compareExchange(o,0,0,1)){console.error("what happened?"),this.allocator.free(s,i);return}if(0===Atomics.notify(o,0))throw this.allocator.free(s,i),Atomics.store(o,0,0),e}else{let e=r.data.code;if(0!==Atomics.compareExchange(o,0,0,2))return void console.error("what happened?");Atomics.store(o,1,e),0===Atomics.notify(o,0)&&Atomics.store(o,0,0)}}},this.start_worker.postMessage({...this.override_object,...r,worker_background_ref:this.ref()})}}Atomics.store(r,1,1),Atomics.store(r,2,0),0===Atomics.notify(r,2,1)&&console.warn("notify failed, waiter is late")}}};globalThis.onmessage=r=>{let{override_object:e,worker_background_ref_object:t}=r.data;worker_background=WorkerBackground.init_self(e,t),postMessage("ready")};',e=new Blob([l],{type:"application/javascript"});return URL.createObjectURL(e)},je=()=>({allocator:{share_arrays_memory:new SharedArrayBuffer(10*1024)},lock:new SharedArrayBuffer(24),signature_input:new SharedArrayBuffer(24)});class N{share_memory;wasi_farm_refs_object;worker_url;worker_background_ref;worker_background_ref_object;worker_background_worker;worker_background_worker_promise;constructor(e,t,s,n=16777216,_,i,c){if(this.worker_url=e,this.wasi_farm_refs_object=t,s===void 0){const o=n/65536;if(o<16)throw new Error("The stack size must be at least 16 bytes.");const a=1073741824/65536;this.share_memory={memory:new WebAssembly.Memory({initial:o,maximum:a,shared:!0})}}else this.share_memory=s;if(_===void 0){let r;c?r=c:r=Se(),this.worker_background_worker=new Worker(r,{type:"module"}),c||URL.revokeObjectURL(r);const{promise:o,resolve:a}=Promise.withResolvers();this.worker_background_worker_promise=o,this.worker_background_worker.onmessage=()=>{this.worker_background_worker_promise=void 0,a()},this.worker_background_ref_object=je(),this.worker_background_ref=$.init_self(this.worker_background_ref_object),this.worker_background_worker.postMessage({override_object:{sl_object:this.get_object(),thread_spawn_wasm:i},worker_background_ref_object:structuredClone(this.worker_background_ref_object)})}else this.worker_background_ref_object=_,this.worker_background_ref=$.init_self(this.worker_background_ref_object)}async wait_worker_background_worker(){if(this.worker_background_worker_promise){await this.worker_background_worker_promise;return}}check_worker_background_worker(){if(this.worker_background_worker_promise)throw new Error("worker_background_worker is not ready.")}thread_spawn(e,t,s,n){return this.worker_background_ref.new_worker(this.worker_url,{type:"module"},{this_is_thread_spawn:!0,start_arg:e,args:t,env:s,fd_map:n}).get_id()}async async_start_on_thread(e,t,s){if(!self.Worker.toString().includes("[native code]"))if(self.Worker.toString().includes("function"))console.warn("SubWorker(new Worker on Worker) is polyfilled maybe.");else throw new Error("SubWorker(new Worker on Worker) is not supported.");await this.worker_background_ref.async_start_on_thread(this.worker_url,{type:"module"},{this_is_thread_spawn:!0,this_is_start:!0,args:e,env:t,fd_map:s})}block_start_on_thread(e,t,s){if(!self.Worker.toString().includes("[native code]"))if(self.Worker.toString().includes("function"))console.warn("SubWorker(new Worker on Worker) is polyfilled maybe.");else throw new Error("SubWorker(new Worker on Worker) is not supported.");this.worker_background_ref.block_start_on_thread(this.worker_url,{type:"module"},{this_is_thread_spawn:!0,this_is_start:!0,args:e,env:t,fd_map:s})}static init_self(e){return new N(e.worker_url,e.wasi_farm_refs_object,e.share_memory,void 0,e.worker_background_ref_object)}static init_self_with_worker_background_ref(e,t){return new N(e.worker_url,e.wasi_farm_refs_object,e.share_memory,void 0,t)}get_share_memory(){return this.share_memory}get_object(){return{share_memory:this.share_memory,wasi_farm_refs_object:this.wasi_farm_refs_object,worker_url:this.worker_url,worker_background_ref_object:this.worker_background_ref_object}}done_notify(e){this.worker_background_ref.done_notify(e)}async async_wait_done_or_error(){if(this.worker_background_worker===void 0)throw new Error("worker_background_worker is undefined.");return await this.worker_background_ref.async_wait_done_or_error()}block_wait_done_or_error(){if(this.worker_background_worker===void 0)throw new Error("worker_background_worker is undefined.");return this.worker_background_ref.block_wait_done_or_error()}}class Oe{args;env;wasi_farm_refs;id_in_wasi_farm_ref;inst;wasiImport;wasiThreadImport;can_array_buffer;can_thread_spawn;thread_spawner;async wait_worker_background_worker(){await this.thread_spawner?.wait_worker_background_worker()}check_worker_background_worker(){this.thread_spawner?.check_worker_background_worker()}fd_map=[];get_fd_and_wasi_ref(e){const t=this.fd_map[e];if(!t)return[void 0,void 0];const[s,n]=t;return[s,this.wasi_farm_refs[n]]}get_fd_and_wasi_ref_n(e){const t=this.fd_map[e];if(!t)return[void 0,void 0];const[s,n]=t;return[s,n]}start(e){this.inst=e;try{if(e.exports._start(),this.can_thread_spawn){if(!this.thread_spawner)throw new Error("thread_spawner is not defined");this.thread_spawner.done_notify(0)}return 0}catch(t){if(t instanceof _e)return this.can_thread_spawn&&this.thread_spawner.done_notify(t.code),t.code;throw t}}start_only(e){this.inst=e,e.exports._start()}async async_start_on_thread(){if(!this.can_thread_spawn||!this.thread_spawner)throw new Error("thread_spawn is not supported");if(await this.wait_worker_background_worker(),this.inst)throw new Error("what happened?");const e=this.thread_spawner.get_share_memory();for(const n in e)new Uint8Array(e[n].buffer).fill(0);const t=this.thread_spawner.async_wait_done_or_error();return await this.thread_spawner.async_start_on_thread(this.args,this.env,this.fd_map),await t}block_start_on_thread(){if(!this.can_thread_spawn||!this.thread_spawner)throw new Error("thread_spawn is not supported");if(console.log("block_start_on_thread"),this.check_worker_background_worker(),console.log("block_start_on_thread"),this.inst)throw new Error("what happened?");const e=this.thread_spawner.get_share_memory();for(const s in e)new Uint8Array(e[s].buffer).fill(0);console.log("block_start_on_thread: start"),this.thread_spawner.block_start_on_thread(this.args,this.env,this.fd_map),console.log("block_start_on_thread: wait");const t=this.thread_spawner.block_wait_done_or_error();return console.log("block_start_on_thread: done"),t}wasi_thread_start(e,t,s){this.inst=e,e.exports.wasi_thread_start(t,s)}initialize(e){this.inst=e,e.exports._initialize&&e.exports._initialize()}mapping_fds(e,t){this.fd_map=[void 0,void 0,void 0];for(let s=0;s0)for(let t=0;t=U.length){y.set(U,z.buf);break}y.set(U.slice(B,B+z.buf_len),z.buf),B+=z.buf_len}}return v},fd_prestat_get(o,a){r.check_fds();const[f,d]=r.get_fd_and_wasi_ref(o);if(f===void 0||d===void 0)return m;const[u,h]=d.fd_prestat_get(f);if(u){const[w,g]=u,y=new DataView(r.inst.exports.memory.buffer);y.setUint32(a,w,!0),y.setUint32(a+4,g,!0)}return h},fd_prestat_dir_name(o,a,f){r.check_fds();const[d,u]=r.get_fd_and_wasi_ref(o);if(d===void 0||u===void 0)return[void 0,m];const[h,w]=u.fd_prestat_dir_name(d,f);return h&&new Uint8Array(r.inst.exports.memory.buffer).set(h,a),w},fd_pwrite(o,a,f,d,u){r.check_fds();const[h,w]=r.get_fd_and_wasi_ref(o);if(h===void 0||w===void 0)return m;const g=new DataView(r.inst.exports.memory.buffer),y=new Uint8Array(r.inst.exports.memory.buffer),b=L.read_bytes_array(g,a,f),p=new Uint8Array(b.reduce((U,B)=>U+B.buf_len,0));let v=0;for(const U of b)p.set(y.slice(U.buf,U.buf+U.buf_len),v),v+=U.buf_len;const[I,E]=w.fd_pwrite(h,p,d);return I&&g.setUint32(u,I,!0),E},fd_read(o,a,f,d){r.check_fds();const[u,h]=r.get_fd_and_wasi_ref(o);if(u===void 0||h===void 0)return m;const w=new DataView(r.inst.exports.memory.buffer),g=new Uint8Array(r.inst.exports.memory.buffer),y=new Uint32Array(w.buffer,a,f*2),[b,p]=h.fd_read(u,y);if(b){const v=W.read_bytes_array(w,a,f),[I,E]=b;w.setUint32(d,I,!0);let U=0;for(const B of v){if(U+B.buf_len>=E.length){g.set(E,B.buf);break}g.set(E.slice(U,U+B.buf_len),B.buf),U+=B.buf_len}}return p},fd_readdir(o,a,f,d,u){r.check_fds();const[h,w]=r.get_fd_and_wasi_ref(o);if(h===void 0||w===void 0)return[void 0,m];const g=new DataView(r.inst.exports.memory.buffer),y=new Uint8Array(r.inst.exports.memory.buffer),[b,p]=w.fd_readdir(h,f,d);if(b){const[v,I]=b;g.setUint32(u,I,!0),y.set(v,a)}return p},fd_renumber(o,a){r.check_fds();const[f,d]=r.get_fd_and_wasi_ref(a);if(f!==void 0&&d!==void 0){const u=d.fd_close(f);if(r.check_fds(),u!==S)return u}if(r.fd_map[a])throw new Error("fd is already mapped");return r.fd_map[a]=r.fd_map[o],r.fd_map[o]=void 0,S},fd_seek(o,a,f,d){r.check_fds();const[u,h]=r.get_fd_and_wasi_ref(o);if(u===void 0||h===void 0)return[void 0,m];const[w,g]=h.fd_seek(u,a,f);return w&&new DataView(r.inst.exports.memory.buffer).setBigUint64(d,w,!0),g},fd_sync(o){r.check_fds();const[a,f]=r.get_fd_and_wasi_ref(o);return a===void 0||f===void 0?m:f.fd_sync(a)},fd_tell(o,a){r.check_fds();const[f,d]=r.get_fd_and_wasi_ref(o);if(f===void 0||d===void 0)return[void 0,m];const[u,h]=d.fd_tell(f);return u&&new DataView(r.inst.exports.memory.buffer).setBigUint64(a,u,!0),h},fd_write(o,a,f,d){r.check_fds();const[u,h]=r.get_fd_and_wasi_ref(o);if(u===void 0||h===void 0)return m;const w=new DataView(r.inst.exports.memory.buffer),g=new Uint8Array(r.inst.exports.memory.buffer),y=L.read_bytes_array(w,a,f),b=new Uint8Array(y.reduce((E,U)=>E+U.buf_len,0));let p=0;for(const E of y)b.set(g.slice(E.buf,E.buf+E.buf_len),p),p+=E.buf_len;const[v,I]=h.fd_write(u,b);return v&&w.setUint32(d,v,!0),I},path_create_directory(o,a,f){r.check_fds();const[d,u]=r.get_fd_and_wasi_ref(o);if(d===void 0||u===void 0)return m;const w=new Uint8Array(r.inst.exports.memory.buffer).slice(a,a+f);return u.path_create_directory(d,w)},path_filestat_get(o,a,f,d,u){r.check_fds();const[h,w]=r.get_fd_and_wasi_ref(o);if(h===void 0||w===void 0)return[void 0,m];const g=new DataView(r.inst.exports.memory.buffer),b=new Uint8Array(r.inst.exports.memory.buffer).slice(f,f+d),[p,v]=w.path_filestat_get(h,a,b);return p&&p.write_bytes(g,u),v},path_filestat_set_times(o,a,f,d,u,h,w){r.check_fds();const[g,y]=r.get_fd_and_wasi_ref(o);if(g===void 0||y===void 0)return[void 0,m];const p=new Uint8Array(r.inst.exports.memory.buffer).slice(f,f+d);return y.path_filestat_set_times(g,a,p,u,h,w)},path_link(o,a,f,d,u,h,w){r.check_fds();const[g,y]=r.get_fd_and_wasi_ref(o),[b,p]=r.get_fd_and_wasi_ref(u);if(g===void 0||y===void 0||b===void 0||p===void 0||y!==p)return m;const v=new Uint8Array(r.inst.exports.memory.buffer),I=v.slice(f,f+d),E=v.slice(h,h+w);return y.path_link(g,a,I,b,E)},path_open(o,a,f,d,u,h,w,g,y){r.check_fds();const[b,p]=r.get_fd_and_wasi_ref_n(o);if(b===void 0||p===void 0)return m;const v=r.wasi_farm_refs[p],E=new Uint8Array(r.inst.exports.memory.buffer).slice(f,f+d),[U,B]=v.path_open(b,a,E,u,h,w,g);if(U){if(r.fd_map.includes([U,p]))throw new Error("opened_fd already exists");const z=r.map_new_fd_and_notify(U,p);new DataView(r.inst.exports.memory.buffer).setUint32(y,z,!0)}return B},path_readlink(o,a,f,d,u,h){r.check_fds();const[w,g]=r.get_fd_and_wasi_ref(o);if(w===void 0||g===void 0)return[void 0,m];const y=new Uint8Array(r.inst.exports.memory.buffer),b=y.slice(a,a+f),[p,v]=g.path_readlink(w,b,u);return p&&(new DataView(r.inst.exports.memory.buffer).setUint32(h,p.length,!0),y.set(p,d)),v},path_remove_directory(o,a,f){r.check_fds();const[d,u]=r.get_fd_and_wasi_ref(o);if(d===void 0||u===void 0)return m;const w=new Uint8Array(r.inst.exports.memory.buffer).slice(a,a+f);return u.path_remove_directory(d,w)},path_rename(o,a,f,d,u,h){if(o===d)return S;r.check_fds();const[w,g]=r.get_fd_and_wasi_ref(o),[y,b]=r.get_fd_and_wasi_ref(d);if(w===void 0||g===void 0||y===void 0||b===void 0||g!==b)return m;const p=new Uint8Array(r.inst.exports.memory.buffer),v=p.slice(a,a+f),I=p.slice(u,u+h);return g.path_rename(w,v,y,I)},path_symlink(o,a,f,d,u){r.check_fds();const[h,w]=r.get_fd_and_wasi_ref(f);if(h===void 0||w===void 0)return m;const g=new Uint8Array(r.inst.exports.memory.buffer),y=g.slice(o,o+a),b=g.slice(d,d+u);return w.path_symlink(y,h,b)},path_unlink_file(o,a,f){r.check_fds();const[d,u]=r.get_fd_and_wasi_ref(o);if(d===void 0||u===void 0)return m;const w=new Uint8Array(r.inst.exports.memory.buffer).slice(a,a+f);return u.path_unlink_file(d,w)},poll_oneoff(o,a,f,d){if(f===0)return oe;if(f>1)return console.error("poll_oneoff: only a single subscription is supported"),ae;const u=new DataView(r.inst.exports.memory.buffer),h=H.read_bytes(u,o),w=h.eventtype,g=h.clockid,y=h.timeout;if(w!==ke)return console.error("poll_oneoff: only clock subscriptions are supported"),ae;let b;if(g===Y)b=()=>BigInt(Math.round(performance.now()*1e6));else if(g===G)b=()=>BigInt(new Date().getTime())*1000000n;else return oe;const p=((h.flags&ve)!==0?y:b()+y)-h.precision;for(;p>b(););return new Ue(h.userdata,S,w).write_bytes(u,a),u.setUint32(d,1,!0),S},proc_exit(o){throw r.check_fds(),new _e(o)},proc_raise(o){throw r.check_fds(),`raised signal ${o}`},sched_yield(){r.check_fds()},random_get(o,a){r.check_fds();const f=new Uint8Array(r.inst.exports.memory.buffer).subarray(o,o+a);if("crypto"in globalThis&&!(r.inst.exports.memory.buffer instanceof SharedArrayBuffer))for(let d=0;d{if(r.check_fds(),!r.can_thread_spawn||!r.thread_spawner)throw new Error("thread_spawn is not allowed");return r.thread_spawner.thread_spawn(o,r.args,r.env,r.fd_map)}}}}let A;const ue=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&ue.decode();let C=null;function D(){return(C===null||C.byteLength===0)&&(C=new Uint8Array(A.memory.buffer)),C}function X(l,e){return l=l>>>0,ue.decode(D().subarray(l,l+e))}const O=new Array(128).fill(void 0);O.push(void 0,null,!0,!1);let V=O.length;function le(l){V===O.length&&O.push(O.length+1);const e=V;return V=O[e],O[e]=l,e}function he(l){return O[l]}function Te(l){l<132||(O[l]=V,V=l)}function ee(l){const e=he(l);return Te(l),e}let T=0;function te(l,e){const t=e(l.length*1,1)>>>0;return D().set(l,t/1),T=l.length,t}let P=null;function j(){return(P===null||P.byteLength===0)&&(P=new Int32Array(A.memory.buffer)),P}function Re(l,e){return l=l>>>0,D().subarray(l/1,l/1+e)}const J=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},ze=typeof J.encodeInto=="function"?function(l,e){return J.encodeInto(l,e)}:function(l,e){const t=J.encode(l);return e.set(t),{read:l.length,written:t.length}};function De(l,e,t){if(t===void 0){const c=J.encode(l),r=e(c.length,1)>>>0;return D().subarray(r,r+c.length).set(c),T=c.length,r}let s=l.length,n=e(s,1)>>>0;const _=D();let i=0;for(;i127)break;_[n+i]=c}if(i!==s){i!==0&&(l=l.slice(i)),n=t(n,s,s=i+l.length*3,1)>>>0;const c=D().subarray(n+i,n+s),r=ze(l,c);i+=r.written,n=t(n,s,i,1)>>>0}return T=i,n}const re=Object.freeze({ResultSuccess:1,1:"ResultSuccess",NeedsMoreInput:2,2:"NeedsMoreInput",NeedsMoreOutput:3,3:"NeedsMoreOutput"}),Me=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(l=>A.__wbg_brotlidecstream_free(l>>>0));class We{__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,Me.unregister(this),e}free(){const e=this.__destroy_into_raw();A.__wbg_brotlidecstream_free(e)}constructor(){const e=A.brotlidecstream_new();return this.__wbg_ptr=e>>>0,this}dec(e,t){try{const i=A.__wbindgen_add_to_stack_pointer(-16),c=te(e,A.__wbindgen_malloc),r=T;A.brotlidecstream_dec(i,this.__wbg_ptr,c,r,t);var s=j()[i/4+0],n=j()[i/4+1],_=j()[i/4+2];if(_)throw ee(n);return q.__wrap(s)}finally{A.__wbindgen_add_to_stack_pointer(16)}}decompress(e,t){try{const i=A.__wbindgen_add_to_stack_pointer(-16),c=te(e,A.__wbindgen_malloc),r=T;A.brotlidecstream_dec(i,this.__wbg_ptr,c,r,t);var s=j()[i/4+0],n=j()[i/4+1],_=j()[i/4+2];if(_)throw ee(n);return q.__wrap(s)}finally{A.__wbindgen_add_to_stack_pointer(16)}}total_out(){return A.brotlidecstream_total_out(this.__wbg_ptr)>>>0}}const me=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(l=>A.__wbg_brotlistreamresult_free(l>>>0));class q{static __wrap(e){e=e>>>0;const t=Object.create(q.prototype);return t.__wbg_ptr=e,me.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,me.unregister(this),e}free(){const e=this.__destroy_into_raw();A.__wbg_brotlistreamresult_free(e)}get code(){return A.__wbg_get_brotlistreamresult_code(this.__wbg_ptr)}set code(e){A.__wbg_set_brotlistreamresult_code(this.__wbg_ptr,e)}get buf(){try{const n=A.__wbindgen_add_to_stack_pointer(-16);A.__wbg_get_brotlistreamresult_buf(n,this.__wbg_ptr);var e=j()[n/4+0],t=j()[n/4+1],s=Re(e,t).slice();return A.__wbindgen_free(e,t*1,1),s}finally{A.__wbindgen_add_to_stack_pointer(16)}}set buf(e){const t=te(e,A.__wbindgen_malloc),s=T;A.__wbg_set_brotlistreamresult_buf(this.__wbg_ptr,t,s)}get input_offset(){return A.__wbg_get_brotlistreamresult_input_offset(this.__wbg_ptr)>>>0}set input_offset(e){A.__wbg_set_brotlistreamresult_input_offset(this.__wbg_ptr,e)}}typeof FinalizationRegistry>"u"||new FinalizationRegistry(l=>A.__wbg_decompressstream_free(l>>>0));async function Le(l,e){if(typeof Response=="function"&&l instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(l,e)}catch(s){if(l.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",s);else throw s}const t=await l.arrayBuffer();return await WebAssembly.instantiate(t,e)}else{const t=await WebAssembly.instantiate(l,e);return t instanceof WebAssembly.Instance?{instance:t,module:l}:t}}function Ne(){const l={};return l.wbg={},l.wbg.__wbindgen_error_new=function(e,t){const s=new Error(X(e,t));return le(s)},l.wbg.__wbindgen_object_drop_ref=function(e){ee(e)},l.wbg.__wbg_new_abda76e883ba8a5f=function(){const e=new Error;return le(e)},l.wbg.__wbg_stack_658279fe44541cf6=function(e,t){const s=he(t).stack,n=De(s,A.__wbindgen_malloc,A.__wbindgen_realloc),_=T;j()[e/4+1]=_,j()[e/4+0]=n},l.wbg.__wbg_error_f851667af71bcfc6=function(e,t){let s,n;try{s=e,n=t,console.error(X(e,t))}finally{A.__wbindgen_free(s,n,1)}},l.wbg.__wbindgen_throw=function(e,t){throw new Error(X(e,t))},l}function Ce(l,e){return A=l.exports,we.__wbindgen_wasm_module=e,P=null,C=null,A}async function we(l){if(A!==void 0)return A;typeof l>"u"&&(l=new URL(""+new URL("brotli_dec_wasm_bg-Dn-Szc7i.wasm",self.location.href).href,self.location.href));const e=Ne();(typeof l=="string"||typeof Request=="function"&&l instanceof Request||typeof URL=="function"&&l instanceof URL)&&(l=fetch(l));const{instance:t,module:s}=await Le(await l,e);return Ce(t,s)}var Ve=""+new URL("brotli_dec_wasm_bg-Dn-Szc7i.wasm?wasm",self.location.href).href;const Pe=we(Ve),Fe=1024*1024,$e=async()=>{await Pe;const l=new We;return new TransformStream({transform(t,s){let n,_=0;do{const i=t.slice(_),c=l.decompress(i,Fe);s.enqueue(c.buf),n=c.code,_+=c.input_offset}while(n===re.NeedsMoreOutput);n!==re.NeedsMoreInput&&n!==re.ResultSuccess&&s.error(`Brotli decompression failed with code ${n}`)},flush(t){t.terminate()}})},Je=async l=>{const e=await fetch(l);if(!e.ok)throw new Error("Failed to fetch wasm");if(!e.body)throw new Error("No body in response");return e.body.pipeThrough(await $e())},qe=async l=>{const e=new Response(await Je(l),{headers:{"Content-Type":"application/wasm"}});return await WebAssembly.compileStreaming(e)},Ke=()=>qe("https://oligamiq.github.io/rust_wasm/v0.2.0/llvm_opt.wasm.br");let Ge=class{enable(e){this.log=Ye(e===void 0?!0:e,this.prefix)}get enabled(){return this.isEnabled}constructor(e){this.isEnabled=e,this.prefix="wasi:",this.enable(e)}};function Ye(l,e){return l?console.log.bind(console,"%c%s","color: #265BA0",e):()=>{}}new Ge(!1);function He(l,e){return new Proxy(l,{get(t,s,n){const _=Reflect.get(t,s,n);return e.includes(s)?_:function(...i){console.log(s,"(",...i,")");const c=Reflect.apply(_,n,i);return console.log(" =",c),c}}})}const Ze=[];globalThis.addEventListener("message",async l=>{const{wasi_refs:e,ctx:t}=l.data,s=new ne.SharedObjectRef(t.waiter_id).proxy();for(;!await s.is_rustc_fetch_end();)await new Promise(n=>setTimeout(n,100));console.log("loading llvm"),await Qe(e,t)});let K,R;const Qe=async(l,e)=>{const t=await Ke();console.log("linker_wasm",t),R=new Oe(l,["llvm"],[]),K=await WebAssembly.instantiate(t,{wasi_snapshot_preview1:He(R.wasiImport,[])});const s=K.exports.memory.buffer,n=new Uint8Array(s).slice();Ze.push(new ne.SharedObject((..._)=>{try{_[0]!=="llvm"?R.args=["llvm",..._]:R.args=_,console.log(`wasi.start: ${R.args}`),console.log(R),new Uint8Array(K.exports.memory.buffer).set(n),R.start(K),console.log("wasi.start done")}catch(i){console.error(i)}},e.llvm_id)),console.log("llvm loaded")}})(); diff --git a/packages/ai/src/image-models.generated.ts b/packages/ai/src/image-models.generated.ts index 09c74180..563f02a1 100644 --- a/packages/ai/src/image-models.generated.ts +++ b/packages/ai/src/image-models.generated.ts @@ -4,21 +4,21 @@ import type { ImagesApi, ImagesModel } from "./types.ts"; export const IMAGE_MODELS = { - openrouter: { + "openrouter": { "black-forest-labs/flux.2-flex": { id: "black-forest-labs/flux.2-flex", name: "Black Forest Labs: FLUX.2 Flex", api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "black-forest-labs/flux.2-klein-4b": { id: "black-forest-labs/flux.2-klein-4b", @@ -26,14 +26,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "black-forest-labs/flux.2-max": { id: "black-forest-labs/flux.2-max", @@ -41,14 +41,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "black-forest-labs/flux.2-pro": { id: "black-forest-labs/flux.2-pro", @@ -56,14 +56,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "bytedance-seed/seedream-4.5": { id: "bytedance-seed/seedream-4.5", @@ -71,14 +71,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["image", "text"], + input: ["image","text"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "google/gemini-2.5-flash-image": { id: "google/gemini-2.5-flash-image", @@ -86,14 +86,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["image", "text"], - output: ["image", "text"], - cost: { - input: 0.3, - output: 2.5, - cacheRead: 0.03, - cacheWrite: 0.08333333333333334, - }, + input: ["image","text"], + output: ["image","text"], + cost: { + "input": 0.3, + "output": 2.5, + "cacheRead": 0.03, + "cacheWrite": 0.08333333333333334 + } } satisfies ImagesModel<"openrouter-images">, "google/gemini-3-pro-image-preview": { id: "google/gemini-3-pro-image-preview", @@ -101,14 +101,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["image", "text"], - output: ["image", "text"], - cost: { - input: 2, - output: 12, - cacheRead: 0.19999999999999998, - cacheWrite: 0.375, - }, + input: ["image","text"], + output: ["image","text"], + cost: { + "input": 2, + "output": 12, + "cacheRead": 0.19999999999999998, + "cacheWrite": 0.375 + } } satisfies ImagesModel<"openrouter-images">, "google/gemini-3.1-flash-image-preview": { id: "google/gemini-3.1-flash-image-preview", @@ -116,14 +116,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["image", "text"], - output: ["image", "text"], - cost: { - input: 0.5, - output: 3, - cacheRead: 0, - cacheWrite: 0, - }, + input: ["image","text"], + output: ["image","text"], + cost: { + "input": 0.5, + "output": 3, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "microsoft/mai-image-2.5": { id: "microsoft/mai-image-2.5", @@ -131,14 +131,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 5, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 5, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "openai/gpt-5-image": { id: "openai/gpt-5-image", @@ -146,14 +146,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["image", "text"], - output: ["image", "text"], - cost: { - input: 10, - output: 10, - cacheRead: 1.25, - cacheWrite: 0, - }, + input: ["image","text"], + output: ["image","text"], + cost: { + "input": 10, + "output": 10, + "cacheRead": 1.25, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "openai/gpt-5-image-mini": { id: "openai/gpt-5-image-mini", @@ -161,14 +161,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["image", "text"], - output: ["image", "text"], - cost: { - input: 2.5, - output: 2, - cacheRead: 0.25, - cacheWrite: 0, - }, + input: ["image","text"], + output: ["image","text"], + cost: { + "input": 2.5, + "output": 2, + "cacheRead": 0.25, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "openai/gpt-5.4-image-2": { id: "openai/gpt-5.4-image-2", @@ -176,14 +176,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["image", "text"], - output: ["image", "text"], - cost: { - input: 8, - output: 15, - cacheRead: 2, - cacheWrite: 0, - }, + input: ["image","text"], + output: ["image","text"], + cost: { + "input": 8, + "output": 15, + "cacheRead": 2, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "openrouter/auto": { id: "openrouter/auto", @@ -191,14 +191,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], - output: ["text", "image"], - cost: { - input: -1000000, - output: -1000000, - cacheRead: 0, - cacheWrite: 0, - }, + input: ["text","image"], + output: ["text","image"], + cost: { + "input": -1000000, + "output": -1000000, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "recraft/recraft-v3": { id: "recraft/recraft-v3", @@ -206,14 +206,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "recraft/recraft-v4": { id: "recraft/recraft-v4", @@ -221,14 +221,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "recraft/recraft-v4-pro": { id: "recraft/recraft-v4-pro", @@ -236,14 +236,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "recraft/recraft-v4-pro-vector": { id: "recraft/recraft-v4-pro-vector", @@ -251,14 +251,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "recraft/recraft-v4-vector": { id: "recraft/recraft-v4-vector", @@ -266,14 +266,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "recraft/recraft-v4.1": { id: "recraft/recraft-v4.1", @@ -281,14 +281,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "recraft/recraft-v4.1-pro": { id: "recraft/recraft-v4.1-pro", @@ -296,14 +296,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "recraft/recraft-v4.1-pro-vector": { id: "recraft/recraft-v4.1-pro-vector", @@ -311,14 +311,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "recraft/recraft-v4.1-utility": { id: "recraft/recraft-v4.1-utility", @@ -326,14 +326,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "recraft/recraft-v4.1-utility-pro": { id: "recraft/recraft-v4.1-utility-pro", @@ -341,14 +341,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "recraft/recraft-v4.1-vector": { id: "recraft/recraft-v4.1-vector", @@ -356,14 +356,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "sourceful/riverflow-v2-fast": { id: "sourceful/riverflow-v2-fast", @@ -371,14 +371,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "sourceful/riverflow-v2-fast-preview": { id: "sourceful/riverflow-v2-fast-preview", @@ -386,14 +386,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "sourceful/riverflow-v2-max-preview": { id: "sourceful/riverflow-v2-max-preview", @@ -401,14 +401,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "sourceful/riverflow-v2-pro": { id: "sourceful/riverflow-v2-pro", @@ -416,14 +416,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "sourceful/riverflow-v2-standard-preview": { id: "sourceful/riverflow-v2-standard-preview", @@ -431,14 +431,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "sourceful/riverflow-v2.5-fast": { id: "sourceful/riverflow-v2.5-fast", @@ -446,14 +446,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "sourceful/riverflow-v2.5-pro": { id: "sourceful/riverflow-v2.5-pro", @@ -461,14 +461,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, "x-ai/grok-imagine-image-quality": { id: "x-ai/grok-imagine-image-quality", @@ -476,14 +476,14 @@ export const IMAGE_MODELS = { api: "openrouter-images", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", - input: ["text", "image"], + input: ["text","image"], output: ["image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, + cost: { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + } } satisfies ImagesModel<"openrouter-images">, }, } as const satisfies Record>>; diff --git a/rustc-BE50aTE-.js b/rustc-BE50aTE-.js new file mode 100644 index 00000000..e5eccf79 --- /dev/null +++ b/rustc-BE50aTE-.js @@ -0,0 +1,8 @@ +(function(){"use strict";var M={exports:{}},pe=M.exports,ae;function ke(){return ae||(ae=1,(function(l,e){(function(t,s){s(e)})(pe,(function(t){class s{kept_object;room_id;id;bc;constructor(i,_){this.kept_object=i,this.room_id=`shared-object-${_}`,this.id="parent",this.bc=new globalThis.BroadcastChannel(this.room_id),this.register()}register(){const i=this.bc;i.onmessage=_=>{const r=_.data;if(r.msg===void 0)throw new Error("Invalid message");this.is_my_msg(r)||r.to===this.id&&(r.msg==="func_call::call"&&this.func_call(r),r.msg==="get::get"&&this.get(r))}}is_my_msg(i){return i.from===this.id}func_call(i){const _=this.bc,{names:r,args:o,id:a}=i;try{if(r.length===1&&r[0]===".self"){const u=this.kept_object(...o);_.postMessage({msg:"func_call::return",ret:u,id:a,from:this.id,to:i.from});return}let c=this.kept_object;for(const u of r)c=c[u];const d=c(...o);_.postMessage({msg:"func_call::return",ret:d,id:a,from:this.id,to:i.from})}catch(c){_.postMessage({msg:"func_call::error",error:c,id:a,from:this.id,to:i.from})}}get(i){const _=this.bc,{names:r,id:o}=i;try{let a=this.kept_object;for(const c of r)a=a[c];_.postMessage({msg:"get::return",ret:a,id:o,from:this.id,to:i.from,can_post:!0})}catch(a){if(a.name==="DataCloneError"){_.postMessage({msg:"get::data_clone_error",error:a,id:o,from:this.id,to:i.from,can_post:!1});return}_.postMessage({msg:"get::error",error:a,id:o,from:this.id,to:i.from,can_post:!1})}}}class n{room_id;id;map=new Map;bc;callbacks=[];constructor(i){this.room_id=`shared-object-${i}`,this.id=this.get_id(),this.bc=new globalThis.BroadcastChannel(this.room_id),this.register()}is_my_msg(i){return i.from===this.id}proxy(){return new Proxy(()=>{},{get:(i,_)=>this.get([_]),apply:(i,_,r)=>this.call([".self"],r)})}addCallback(i){this.callbacks.push(i)}removeCallback(i){const _=this.callbacks.indexOf(i);_!==-1&&this.callbacks.splice(_,1)}register(){const i=this.bc;i.onmessage=_=>{const r=_.data;if(r.msg===void 0)throw new Error("Invalid message");if(!this.is_my_msg(r)&&r.to===this.id){if(r.msg.startsWith("func_call::")){const o=this.map.get(r.id);if(o!==void 0)o(r),this.map.delete(r.id);else throw new Error("what happened? unreachable code")}if(r.msg.startsWith("get::")){const o=this.map.get(r.id);if(o!==void 0)o(r),this.map.delete(r.id);else throw new Error("what happened? unreachable code")}}}}get_id(){return Math.random().toString(36).slice(2)}check_msg_error(i){if(i.msg.endsWith("::error"))throw i.error}get(i){const{promise:_,resolve:r}=Promise.withResolvers(),o=this.get_id();this.map.set(o,r),this.postMessage({msg:"get::get",names:i,id:o,from:this.id,to:"parent"});let a=!1;const d=(async()=>{const h=await _;if(this.check_msg_error(h),h.msg==="get::return"||h.msg==="get::data_clone_error"){a&&console.warn(`Warning! +Objects that cannot be transferred are being retrieved.`);const m=h;return m.can_post?m.ret:new Proxy(()=>{},{get:(g,y)=>y==="then"?(a=!0,Promise.resolve(d)):this.get([...i,y]),apply:(g,y,b)=>this.call(i,b)})}throw new Error("what happened? unreachable code")})();return new Proxy(()=>{},{get:(h,m)=>m==="then"?(a=!0,d.then.bind(d)):this.get([...i,m]),apply:(h,m,g)=>this.call(i,g)})}async call(i,_){const{promise:r,resolve:o}=Promise.withResolvers(),a=this.get_id();this.map.set(a,o),this.postMessage({msg:"func_call::call",names:i,args:_,id:a});const c=await r;if(this.check_msg_error(c),c.msg==="func_call::return")return c.ret;throw new Error("what happened? unreachable code")}async call_callback(i){const{name:_,args:r,id:o}=i;try{if(i.msg==="callback::call"){const a=this.callbacks.find(d=>d.name===_);if(a===void 0)throw new Error("function not found");const c=a(...r);if(c instanceof Promise){this.postMessage({msg:"callback::promise",id:o});const d=await c;this.postMessage({msg:"callback::promise_return",ret:d,id:o})}else this.postMessage({msg:"callback::return",ret:c,id:o})}}catch(a){this.postMessage({msg:"callback::error",error:a,id:o})}}postMessage(i){this.bc.postMessage({...i,from:this.id,to:"parent"})}}t.SharedObject=s,t.SharedObjectRef=n,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})}))})(M,M.exports)),M.exports}var G=ke();let k;const _e=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&_e.decode();let D=null;function z(){return(D===null||D.byteLength===0)&&(D=new Uint8Array(k.memory.buffer)),D}function H(l,e){return l=l>>>0,_e.decode(z().subarray(l,l+e))}const O=new Array(128).fill(void 0);O.push(void 0,null,!0,!1);let W=O.length;function ce(l){W===O.length&&O.push(O.length+1);const e=W;return W=O[e],O[e]=l,e}function fe(l){return O[l]}function Ae(l){l<132||(O[l]=W,W=l)}function Z(l){const e=fe(l);return Ae(l),e}let R=0;function Q(l,e){const t=e(l.length*1,1)>>>0;return z().set(l,t/1),R=l.length,t}let L=null;function j(){return(L===null||L.byteLength===0)&&(L=new Int32Array(k.memory.buffer)),L}function ve(l,e){return l=l>>>0,z().subarray(l/1,l/1+e)}const F=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},Ue=typeof F.encodeInto=="function"?function(l,e){return F.encodeInto(l,e)}:function(l,e){const t=F.encode(l);return e.set(t),{read:l.length,written:t.length}};function xe(l,e,t){if(t===void 0){const _=F.encode(l),r=e(_.length,1)>>>0;return z().subarray(r,r+_.length).set(_),R=_.length,r}let s=l.length,n=e(s,1)>>>0;const f=z();let i=0;for(;i127)break;f[n+i]=_}if(i!==s){i!==0&&(l=l.slice(i)),n=t(n,s,s=i+l.length*3,1)>>>0;const _=z().subarray(n+i,n+s),r=Ue(l,_);i+=r.written,n=t(n,s,i,1)>>>0}return R=i,n}const X=Object.freeze({ResultSuccess:1,1:"ResultSuccess",NeedsMoreInput:2,2:"NeedsMoreInput",NeedsMoreOutput:3,3:"NeedsMoreOutput"}),Ee=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(l=>k.__wbg_brotlidecstream_free(l>>>0));class Ie{__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,Ee.unregister(this),e}free(){const e=this.__destroy_into_raw();k.__wbg_brotlidecstream_free(e)}constructor(){const e=k.brotlidecstream_new();return this.__wbg_ptr=e>>>0,this}dec(e,t){try{const i=k.__wbindgen_add_to_stack_pointer(-16),_=Q(e,k.__wbindgen_malloc),r=R;k.brotlidecstream_dec(i,this.__wbg_ptr,_,r,t);var s=j()[i/4+0],n=j()[i/4+1],f=j()[i/4+2];if(f)throw Z(n);return $.__wrap(s)}finally{k.__wbindgen_add_to_stack_pointer(16)}}decompress(e,t){try{const i=k.__wbindgen_add_to_stack_pointer(-16),_=Q(e,k.__wbindgen_malloc),r=R;k.brotlidecstream_dec(i,this.__wbg_ptr,_,r,t);var s=j()[i/4+0],n=j()[i/4+1],f=j()[i/4+2];if(f)throw Z(n);return $.__wrap(s)}finally{k.__wbindgen_add_to_stack_pointer(16)}}total_out(){return k.brotlidecstream_total_out(this.__wbg_ptr)>>>0}}const de=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(l=>k.__wbg_brotlistreamresult_free(l>>>0));class ${static __wrap(e){e=e>>>0;const t=Object.create($.prototype);return t.__wbg_ptr=e,de.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,de.unregister(this),e}free(){const e=this.__destroy_into_raw();k.__wbg_brotlistreamresult_free(e)}get code(){return k.__wbg_get_brotlistreamresult_code(this.__wbg_ptr)}set code(e){k.__wbg_set_brotlistreamresult_code(this.__wbg_ptr,e)}get buf(){try{const n=k.__wbindgen_add_to_stack_pointer(-16);k.__wbg_get_brotlistreamresult_buf(n,this.__wbg_ptr);var e=j()[n/4+0],t=j()[n/4+1],s=ve(e,t).slice();return k.__wbindgen_free(e,t*1,1),s}finally{k.__wbindgen_add_to_stack_pointer(16)}}set buf(e){const t=Q(e,k.__wbindgen_malloc),s=R;k.__wbg_set_brotlistreamresult_buf(this.__wbg_ptr,t,s)}get input_offset(){return k.__wbg_get_brotlistreamresult_input_offset(this.__wbg_ptr)>>>0}set input_offset(e){k.__wbg_set_brotlistreamresult_input_offset(this.__wbg_ptr,e)}}typeof FinalizationRegistry>"u"||new FinalizationRegistry(l=>k.__wbg_decompressstream_free(l>>>0));async function Be(l,e){if(typeof Response=="function"&&l instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(l,e)}catch(s){if(l.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",s);else throw s}const t=await l.arrayBuffer();return await WebAssembly.instantiate(t,e)}else{const t=await WebAssembly.instantiate(l,e);return t instanceof WebAssembly.Instance?{instance:t,module:l}:t}}function Se(){const l={};return l.wbg={},l.wbg.__wbindgen_error_new=function(e,t){const s=new Error(H(e,t));return ce(s)},l.wbg.__wbindgen_object_drop_ref=function(e){Z(e)},l.wbg.__wbg_new_abda76e883ba8a5f=function(){const e=new Error;return ce(e)},l.wbg.__wbg_stack_658279fe44541cf6=function(e,t){const s=fe(t).stack,n=xe(s,k.__wbindgen_malloc,k.__wbindgen_realloc),f=R;j()[e/4+1]=f,j()[e/4+0]=n},l.wbg.__wbg_error_f851667af71bcfc6=function(e,t){let s,n;try{s=e,n=t,console.error(H(e,t))}finally{k.__wbindgen_free(s,n,1)}},l.wbg.__wbindgen_throw=function(e,t){throw new Error(H(e,t))},l}function je(l,e){return k=l.exports,ue.__wbindgen_wasm_module=e,L=null,D=null,k}async function ue(l){if(k!==void 0)return k;typeof l>"u"&&(l=new URL(""+new URL("brotli_dec_wasm_bg-Dn-Szc7i.wasm",self.location.href).href,self.location.href));const e=Se();(typeof l=="string"||typeof Request=="function"&&l instanceof Request||typeof URL=="function"&&l instanceof URL)&&(l=fetch(l));const{instance:t,module:s}=await Be(await l,e);return je(t,s)}var Oe=""+new URL("brotli_dec_wasm_bg-Dn-Szc7i.wasm?wasm",self.location.href).href;const Re=ue(Oe),Te=1024*1024,ze=async()=>{await Re;const l=new Ie;return new TransformStream({transform(t,s){let n,f=0;do{const i=t.slice(f),_=l.decompress(i,Te);s.enqueue(_.buf),n=_.code,f+=_.input_offset}while(n===X.NeedsMoreOutput);n!==X.NeedsMoreInput&&n!==X.ResultSuccess&&s.error(`Brotli decompression failed with code ${n}`)},flush(t){t.terminate()}})},Me=async l=>{const e=await fetch(l);if(!e.ok)throw new Error("Failed to fetch wasm");if(!e.body)throw new Error("No body in response");return e.body.pipeThrough(await ze())},De=async l=>{const e=new Response(await Me(l),{headers:{"Content-Type":"application/wasm"}});return await WebAssembly.compileStreaming(e)},We=()=>De("https://oligamiq.github.io/rust_wasm/v0.2.0/rustc_opt.wasm.br"),ee=0,te=1,S=0,w=8,le=28,he=37,Le=52,we=58;class N{static read_bytes(e,t){const s=new N;return s.buf=e.getUint32(t,!0),s.buf_len=e.getUint32(t+4,!0),s}static read_bytes_array(e,t,s){const n=[];for(let f=0;f{}}new $e(!1);class me extends Error{constructor(e){super("exit with exit code "+e),this.code=e}}class J{share_arrays_memory;constructor(e=new SharedArrayBuffer(10*1024*1024)){this.share_arrays_memory=e;const t=new Int32Array(this.share_arrays_memory);Atomics.store(t,0,0),Atomics.store(t,1,0),Atomics.store(t,2,12)}static init_self(e){return new J(e.share_arrays_memory)}async async_write(e,t,s){const n=new Int32Array(this.share_arrays_memory);for(;;){let f;const{value:i}=Atomics.waitAsync(n,0,1);if(i instanceof Promise?f=await i:f=i,f==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(n,0,0,1)!==0)continue;const r=this.write_inner(e,t,s);return Atomics.store(n,0,0),Atomics.notify(n,0,1),r}}block_write(e,t,s){for(;;){const n=new Int32Array(this.share_arrays_memory);if(Atomics.wait(n,0,1)==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(n,0,0,1)!==0)continue;const _=this.write_inner(e,t,s);return Atomics.store(n,0,0),Atomics.notify(n,0,1),_}}write_inner(e,t,s){const n=new Int32Array(this.share_arrays_memory),f=new Uint8Array(this.share_arrays_memory),i=Atomics.add(n,1,1);let _;i===0?_=Atomics.store(n,2,12):_=Atomics.load(n,2);const r=this.share_arrays_memory.byteLength,o=e.byteLength,a=_+o;if(rthis.share_arrays_memory.byteLength)throw new Error("over memory");Atomics.store(s,2,i);const _=new Int32Array(this.share_arrays_memory,n);_[0]=e.length,_[1]=e.length,_.set(e,2),new Uint32Array(this.share_arrays_memory,n+8+e.length*4).set(t),Atomics.add(s,1,1),this.release_lock()}get_data(e){const t=new Int32Array(this.share_arrays_memory);if(Atomics.load(t,1)===0)return;this.block_lock();const n=Atomics.load(t,1),f=[];let i=12;for(let _=0;_{const e=new Error(l.message);return e.name=l.name,e.stack=l.stack?.replace(/.wasm:/g,`.wasm +`),e.cause=l.cause,e};class q{allocator;lock;signature_input;constructor(e,t,s){this.allocator=e,this.lock=t,this.signature_input=s}block_lock_base_func(){const e=new Int32Array(this.lock);for(;;){if(Atomics.wait(e,0,1)==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(e,0,0,1)===0)return}}async async_lock_base_func(){const e=new Int32Array(this.lock);for(;;){const{value:t}=Atomics.waitAsync(e,0,1);if(await t==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(e,0,0,1)===0)return}}call_base_func(){const e=new Int32Array(this.lock);Atomics.store(e,2,1),Atomics.store(e,1,0),Atomics.notify(e,1,1)}block_wait_base_func(){const e=new Int32Array(this.lock);if(Atomics.wait(e,2,1)==="timed-out")throw new Error("timed-out lock")}async async_wait_base_func(){const e=new Int32Array(this.lock),{value:t}=Atomics.waitAsync(e,2,1);if(await t==="timed-out")throw new Error("timed-out lock")}release_base_func(){const e=new Int32Array(this.lock);Atomics.store(e,0,0),Atomics.notify(e,0,1)}new_worker(e,t,s){console.log("new_worker",e,t,s),this.block_lock_base_func();const n=new Int32Array(this.signature_input);Atomics.store(n,0,1);const f=new TextEncoder().encode(e);this.allocator.block_write(f,this.signature_input,1),Atomics.store(n,3,t?.type==="module"?1:0);const i=JSON.stringify(s),_=new TextEncoder().encode(i);this.allocator.block_write(_,this.signature_input,4),this.call_base_func(),this.block_wait_base_func();const r=Atomics.load(n,0);return this.release_base_func(),new Ke(r)}async async_start_on_thread(e,t,s){await this.async_lock_base_func();const n=new Int32Array(this.signature_input);Atomics.store(n,0,2);const f=new TextEncoder().encode(e);await this.allocator.async_write(f,this.signature_input,1),Atomics.store(n,3,t?.type==="module"?1:0);const i=JSON.stringify(s),_=new TextEncoder().encode(i);await this.allocator.async_write(_,this.signature_input,4),this.call_base_func(),await this.async_wait_base_func(),this.release_base_func()}block_start_on_thread(e,t,s){this.block_lock_base_func();const n=new Int32Array(this.signature_input);Atomics.store(n,0,2);const f=new TextEncoder().encode(e);this.allocator.block_write(f,this.signature_input,1),Atomics.store(n,3,t?.type==="module"?1:0);const i=JSON.stringify(s),_=new TextEncoder().encode(i);this.allocator.block_write(_,this.signature_input,4),this.call_base_func(),this.block_wait_base_func(),this.release_base_func()}static init_self(e){return new q(J.init_self(e.allocator),e.lock,e.signature_input)}done_notify(e){const t=new Int32Array(this.lock,12);if(Atomics.compareExchange(t,0,0,2)!==0){console.error("what happened?");return}Atomics.store(t,1,e),Atomics.notify(t,0)===0&&Atomics.store(t,0,0)}async async_wait_done_or_error(){const e=new Int32Array(this.lock,12);Atomics.store(e,0,0);let t;const{value:s}=Atomics.waitAsync(e,0,0);if(s instanceof Promise?t=await s:t=s,t==="timed-out")throw new Error("timed-out");const n=Atomics.load(e,0);if(n===3)return Atomics.compareExchange(e,0,3,0)!==3&&console.error("what happened?"),0;if(n===2){const d=Atomics.compareExchange(e,0,2,0),u=Atomics.load(e,1);return d!==2&&console.error("what happened?"),u}if(n!==1)throw new Error("unknown code");const f=Atomics.load(e,1),i=Atomics.load(e,2),_=this.allocator.get_memory(f,i),r=new TextDecoder().decode(_),o=JSON.parse(r),a=be(o);throw Atomics.compareExchange(e,0,1,0)!==1&&console.error("what happened?"),a}block_wait_done_or_error(){const e=new Int32Array(this.lock,12);if(Atomics.store(e,0,0),Atomics.wait(e,0,0)==="timed-out")throw new Error("timed-out");const s=Atomics.load(e,0);if(s===3)return Atomics.compareExchange(e,0,3,0)!==3&&console.error("what happened?"),0;if(s===2){const c=Atomics.compareExchange(e,0,2,0),d=Atomics.load(e,1);return c!==2&&console.error("what happened?"),d}if(s!==1)throw new Error("unknown code");const n=Atomics.load(e,1),f=Atomics.load(e,2),i=this.allocator.get_memory(n,f),_=new TextDecoder().decode(i),r=JSON.parse(_),o=be(r);throw Atomics.compareExchange(e,0,1,0)!==1&&console.error("what happened?"),o}}class Ke{id;constructor(e){this.id=e}get_id(){return this.id}}const Ye=()=>{const l='let worker_background;class AllocatorUseArrayBuffer{share_arrays_memory;constructor(r=new SharedArrayBuffer(0xa00000)){this.share_arrays_memory=r;let e=new Int32Array(this.share_arrays_memory);Atomics.store(e,0,0),Atomics.store(e,1,0),Atomics.store(e,2,12)}static init_self(r){return new AllocatorUseArrayBuffer(r.share_arrays_memory)}async async_write(r,e,t){let o=new Int32Array(this.share_arrays_memory);for(;;){let{value:s}=Atomics.waitAsync(o,0,1);if("timed-out"===(s instanceof Promise?await s:s))throw Error("timed-out lock");if(0!==Atomics.compareExchange(o,0,0,1))continue;let i=this.write_inner(r,e,t);return Atomics.store(o,0,0),Atomics.notify(o,0,1),i}}block_write(r,e,t){for(;;){let o=new Int32Array(this.share_arrays_memory);if("timed-out"===Atomics.wait(o,0,1))throw Error("timed-out lock");if(0!==Atomics.compareExchange(o,0,0,1))continue;let s=this.write_inner(r,e,t);return Atomics.store(o,0,0),Atomics.notify(o,0,1),s}}write_inner(r,e,t){let o,s,i=new Int32Array(this.share_arrays_memory),a=new Uint8Array(this.share_arrays_memory);o=0===Atomics.add(i,1,1)?Atomics.store(i,2,12):Atomics.load(i,2);let n=this.share_arrays_memory.byteLength,c=r.byteLength,l=o+c;if(n({message:r.message,name:r.name,stack:r.stack,cause:r.cause}),WorkerBackground=class r{override_object;allocator;lock;signature_input;workers=[void 0];start_worker;listen_holder;constructor(r,e,t,o){this.override_object=r,this.lock=e??new SharedArrayBuffer(24),this.allocator=t??new AllocatorUseArrayBuffer(new SharedArrayBuffer(10240)),this.signature_input=o??new SharedArrayBuffer(24),this.listen_holder=this.listen()}static init_self(e,t){return new r(e,t.lock,AllocatorUseArrayBuffer.init_self(t.allocator),t.signature_input)}assign_worker_id(){for(let r=1;r{let r=Atomics.load(e,1),t=Atomics.load(e,2),o=this.allocator.get_memory(r,t);return this.allocator.free(r,t),new Worker(new TextDecoder().decode(o),{type:1===Atomics.load(e,3)?"module":"classic"})},s=()=>{let r=Atomics.load(e,4),t=Atomics.load(e,5),o=this.allocator.get_memory(r,t);return this.allocator.free(r,t),JSON.parse(new TextDecoder().decode(o))};switch(Atomics.load(e,0)){case 1:{let r=o(),t=s(),i=this.assign_worker_id();console.debug("new worker "+i),this.workers[i]=r;let{promise:a,resolve:n}=Promise.withResolvers();r.onmessage=async r=>{let{msg:e}=r.data;if("ready"===e&&n(),"done"===e&&(this.workers[i].terminate(),this.workers[i]=void 0,console.debug(`worker ${i} done so terminate`)),"error"===e||"exit"===e){this.workers[i].terminate(),this.workers[i]=void 0;let t=0;for(let r of this.workers)void 0!==r&&(r.terminate(),"error"===e?console.warn("wasi throw error but child process exists, terminate "+t):console.debug("wasi exit but child process exists, terminate "+t)),t++;void 0!==this.start_worker&&(this.start_worker.terminate(),"error"===e?console.warn("wasi throw error but wasi exists, terminate wasi"):console.debug("wasi exit but wasi exists, terminate wasi")),this.workers=[void 0],this.start_worker=void 0;let o=new Int32Array(this.lock,12);if("error"===e){let e=r.data.error,t=serialize(e),[s,i]=await this.allocator.async_write(new TextEncoder().encode(JSON.stringify(t)),this.lock,4);if(0!==Atomics.compareExchange(o,0,0,1)){console.error("what happened?"),this.allocator.free(s,i);return}1!==Atomics.notify(o,0)&&(console.error(e),this.allocator.free(s,i),Atomics.store(o,0,0))}else{let e=r.data.code;if(0!==Atomics.compareExchange(o,0,0,2))return void console.error("what happened?");Atomics.store(o,1,e),0===Atomics.notify(o,0)&&Atomics.store(o,0,0)}}},r.postMessage({...this.override_object,...t,worker_id:i,worker_background_ref:this.ref()}),await a,Atomics.store(e,0,i);break}case 2:{console.debug("start worker create"),this.start_worker=o();let r=s();this.start_worker.onmessage=async r=>{let{msg:e}=r.data;if("done"===e){let r=0;for(let e of this.workers)void 0!==e&&(e.terminate(),console.warn("wasi done but worker exists, terminate "+r)),r++;this.start_worker.terminate(),this.start_worker=void 0;let e=new Int32Array(this.lock,12);Atomics.store(e,0,3),0===Atomics.notify(e,0)&&Atomics.store(e,0,0),console.debug("start worker done so terminate")}if("error"===e||"exit"===e){let t=0;for(let r of this.workers)void 0!==r&&(r.terminate(),"error"===e?console.warn("wasi throw error but worker exists, terminate "+t):console.debug("wasi exit but worker exists, terminate "+t)),t++;void 0!==this.start_worker&&(this.start_worker.terminate(),"error"===e?console.warn("wasi throw error but wasi exists, terminate start worker"):console.debug("wasi exit but wasi exists, terminate start worker")),this.workers=[void 0],this.start_worker=void 0;let o=new Int32Array(this.lock,12);if("error"===e){let e=r.data.error,t=serialize(e),[s,i]=await this.allocator.async_write(new TextEncoder().encode(JSON.stringify(t)),this.lock,4);if(0!==Atomics.compareExchange(o,0,0,1)){console.error("what happened?"),this.allocator.free(s,i);return}if(0===Atomics.notify(o,0))throw this.allocator.free(s,i),Atomics.store(o,0,0),e}else{let e=r.data.code;if(0!==Atomics.compareExchange(o,0,0,2))return void console.error("what happened?");Atomics.store(o,1,e),0===Atomics.notify(o,0)&&Atomics.store(o,0,0)}}},this.start_worker.postMessage({...this.override_object,...r,worker_background_ref:this.ref()})}}Atomics.store(r,1,1),Atomics.store(r,2,0),0===Atomics.notify(r,2,1)&&console.warn("notify failed, waiter is late")}}};globalThis.onmessage=r=>{let{override_object:e,worker_background_ref_object:t}=r.data;worker_background=WorkerBackground.init_self(e,t),postMessage("ready")};',e=new Blob([l],{type:"application/javascript"});return URL.createObjectURL(e)},Ge=()=>({allocator:{share_arrays_memory:new SharedArrayBuffer(10*1024)},lock:new SharedArrayBuffer(24),signature_input:new SharedArrayBuffer(24)});class V{share_memory;wasi_farm_refs_object;worker_url;worker_background_ref;worker_background_ref_object;worker_background_worker;worker_background_worker_promise;constructor(e,t,s,n=16777216,f,i,_){if(this.worker_url=e,this.wasi_farm_refs_object=t,s===void 0){const o=n/65536;if(o<16)throw new Error("The stack size must be at least 16 bytes.");const a=1073741824/65536;this.share_memory={memory:new WebAssembly.Memory({initial:o,maximum:a,shared:!0})}}else this.share_memory=s;if(f===void 0){let r;_?r=_:r=Ye(),this.worker_background_worker=new Worker(r,{type:"module"}),_||URL.revokeObjectURL(r);const{promise:o,resolve:a}=Promise.withResolvers();this.worker_background_worker_promise=o,this.worker_background_worker.onmessage=()=>{this.worker_background_worker_promise=void 0,a()},this.worker_background_ref_object=Ge(),this.worker_background_ref=q.init_self(this.worker_background_ref_object),this.worker_background_worker.postMessage({override_object:{sl_object:this.get_object(),thread_spawn_wasm:i},worker_background_ref_object:structuredClone(this.worker_background_ref_object)})}else this.worker_background_ref_object=f,this.worker_background_ref=q.init_self(this.worker_background_ref_object)}async wait_worker_background_worker(){if(this.worker_background_worker_promise){await this.worker_background_worker_promise;return}}check_worker_background_worker(){if(this.worker_background_worker_promise)throw new Error("worker_background_worker is not ready.")}thread_spawn(e,t,s,n){return this.worker_background_ref.new_worker(this.worker_url,{type:"module"},{this_is_thread_spawn:!0,start_arg:e,args:t,env:s,fd_map:n}).get_id()}async async_start_on_thread(e,t,s){if(!self.Worker.toString().includes("[native code]"))if(self.Worker.toString().includes("function"))console.warn("SubWorker(new Worker on Worker) is polyfilled maybe.");else throw new Error("SubWorker(new Worker on Worker) is not supported.");await this.worker_background_ref.async_start_on_thread(this.worker_url,{type:"module"},{this_is_thread_spawn:!0,this_is_start:!0,args:e,env:t,fd_map:s})}block_start_on_thread(e,t,s){if(!self.Worker.toString().includes("[native code]"))if(self.Worker.toString().includes("function"))console.warn("SubWorker(new Worker on Worker) is polyfilled maybe.");else throw new Error("SubWorker(new Worker on Worker) is not supported.");this.worker_background_ref.block_start_on_thread(this.worker_url,{type:"module"},{this_is_thread_spawn:!0,this_is_start:!0,args:e,env:t,fd_map:s})}static init_self(e){return new V(e.worker_url,e.wasi_farm_refs_object,e.share_memory,void 0,e.worker_background_ref_object)}static init_self_with_worker_background_ref(e,t){return new V(e.worker_url,e.wasi_farm_refs_object,e.share_memory,void 0,t)}get_share_memory(){return this.share_memory}get_object(){return{share_memory:this.share_memory,wasi_farm_refs_object:this.wasi_farm_refs_object,worker_url:this.worker_url,worker_background_ref_object:this.worker_background_ref_object}}done_notify(e){this.worker_background_ref.done_notify(e)}async async_wait_done_or_error(){if(this.worker_background_worker===void 0)throw new Error("worker_background_worker is undefined.");return await this.worker_background_ref.async_wait_done_or_error()}block_wait_done_or_error(){if(this.worker_background_worker===void 0)throw new Error("worker_background_worker is undefined.");return this.worker_background_ref.block_wait_done_or_error()}}class He{args;env;wasi_farm_refs;id_in_wasi_farm_ref;inst;wasiImport;wasiThreadImport;can_array_buffer;can_thread_spawn;thread_spawner;async wait_worker_background_worker(){await this.thread_spawner?.wait_worker_background_worker()}check_worker_background_worker(){this.thread_spawner?.check_worker_background_worker()}fd_map=[];get_fd_and_wasi_ref(e){const t=this.fd_map[e];if(!t)return[void 0,void 0];const[s,n]=t;return[s,this.wasi_farm_refs[n]]}get_fd_and_wasi_ref_n(e){const t=this.fd_map[e];if(!t)return[void 0,void 0];const[s,n]=t;return[s,n]}start(e){this.inst=e;try{if(e.exports._start(),this.can_thread_spawn){if(!this.thread_spawner)throw new Error("thread_spawner is not defined");this.thread_spawner.done_notify(0)}return 0}catch(t){if(t instanceof me)return this.can_thread_spawn&&this.thread_spawner.done_notify(t.code),t.code;throw t}}start_only(e){this.inst=e,e.exports._start()}async async_start_on_thread(){if(!this.can_thread_spawn||!this.thread_spawner)throw new Error("thread_spawn is not supported");if(await this.wait_worker_background_worker(),this.inst)throw new Error("what happened?");const e=this.thread_spawner.get_share_memory();for(const n in e)new Uint8Array(e[n].buffer).fill(0);const t=this.thread_spawner.async_wait_done_or_error();return await this.thread_spawner.async_start_on_thread(this.args,this.env,this.fd_map),await t}block_start_on_thread(){if(!this.can_thread_spawn||!this.thread_spawner)throw new Error("thread_spawn is not supported");if(console.log("block_start_on_thread"),this.check_worker_background_worker(),console.log("block_start_on_thread"),this.inst)throw new Error("what happened?");const e=this.thread_spawner.get_share_memory();for(const s in e)new Uint8Array(e[s].buffer).fill(0);console.log("block_start_on_thread: start"),this.thread_spawner.block_start_on_thread(this.args,this.env,this.fd_map),console.log("block_start_on_thread: wait");const t=this.thread_spawner.block_wait_done_or_error();return console.log("block_start_on_thread: done"),t}wasi_thread_start(e,t,s){this.inst=e,e.exports.wasi_thread_start(t,s)}initialize(e){this.inst=e,e.exports._initialize&&e.exports._initialize()}mapping_fds(e,t){this.fd_map=[void 0,void 0,void 0];for(let s=0;s0)for(let t=0;t=U.length){y.set(U,T.buf);break}y.set(U.slice(B,B+T.buf_len),T.buf),B+=T.buf_len}}return v},fd_prestat_get(o,a){r.check_fds();const[c,d]=r.get_fd_and_wasi_ref(o);if(c===void 0||d===void 0)return w;const[u,h]=d.fd_prestat_get(c);if(u){const[m,g]=u,y=new DataView(r.inst.exports.memory.buffer);y.setUint32(a,m,!0),y.setUint32(a+4,g,!0)}return h},fd_prestat_dir_name(o,a,c){r.check_fds();const[d,u]=r.get_fd_and_wasi_ref(o);if(d===void 0||u===void 0)return[void 0,w];const[h,m]=u.fd_prestat_dir_name(d,c);return h&&new Uint8Array(r.inst.exports.memory.buffer).set(h,a),m},fd_pwrite(o,a,c,d,u){r.check_fds();const[h,m]=r.get_fd_and_wasi_ref(o);if(h===void 0||m===void 0)return w;const g=new DataView(r.inst.exports.memory.buffer),y=new Uint8Array(r.inst.exports.memory.buffer),b=C.read_bytes_array(g,a,c),p=new Uint8Array(b.reduce((U,B)=>U+B.buf_len,0));let v=0;for(const U of b)p.set(y.slice(U.buf,U.buf+U.buf_len),v),v+=U.buf_len;const[I,E]=m.fd_pwrite(h,p,d);return I&&g.setUint32(u,I,!0),E},fd_read(o,a,c,d){r.check_fds();const[u,h]=r.get_fd_and_wasi_ref(o);if(u===void 0||h===void 0)return w;const m=new DataView(r.inst.exports.memory.buffer),g=new Uint8Array(r.inst.exports.memory.buffer),y=new Uint32Array(m.buffer,a,c*2),[b,p]=h.fd_read(u,y);if(b){const v=N.read_bytes_array(m,a,c),[I,E]=b;m.setUint32(d,I,!0);let U=0;for(const B of v){if(U+B.buf_len>=E.length){g.set(E,B.buf);break}g.set(E.slice(U,U+B.buf_len),B.buf),U+=B.buf_len}}return p},fd_readdir(o,a,c,d,u){r.check_fds();const[h,m]=r.get_fd_and_wasi_ref(o);if(h===void 0||m===void 0)return[void 0,w];const g=new DataView(r.inst.exports.memory.buffer),y=new Uint8Array(r.inst.exports.memory.buffer),[b,p]=m.fd_readdir(h,c,d);if(b){const[v,I]=b;g.setUint32(u,I,!0),y.set(v,a)}return p},fd_renumber(o,a){r.check_fds();const[c,d]=r.get_fd_and_wasi_ref(a);if(c!==void 0&&d!==void 0){const u=d.fd_close(c);if(r.check_fds(),u!==S)return u}if(r.fd_map[a])throw new Error("fd is already mapped");return r.fd_map[a]=r.fd_map[o],r.fd_map[o]=void 0,S},fd_seek(o,a,c,d){r.check_fds();const[u,h]=r.get_fd_and_wasi_ref(o);if(u===void 0||h===void 0)return[void 0,w];const[m,g]=h.fd_seek(u,a,c);return m&&new DataView(r.inst.exports.memory.buffer).setBigUint64(d,m,!0),g},fd_sync(o){r.check_fds();const[a,c]=r.get_fd_and_wasi_ref(o);return a===void 0||c===void 0?w:c.fd_sync(a)},fd_tell(o,a){r.check_fds();const[c,d]=r.get_fd_and_wasi_ref(o);if(c===void 0||d===void 0)return[void 0,w];const[u,h]=d.fd_tell(c);return u&&new DataView(r.inst.exports.memory.buffer).setBigUint64(a,u,!0),h},fd_write(o,a,c,d){r.check_fds();const[u,h]=r.get_fd_and_wasi_ref(o);if(u===void 0||h===void 0)return w;const m=new DataView(r.inst.exports.memory.buffer),g=new Uint8Array(r.inst.exports.memory.buffer),y=C.read_bytes_array(m,a,c),b=new Uint8Array(y.reduce((E,U)=>E+U.buf_len,0));let p=0;for(const E of y)b.set(g.slice(E.buf,E.buf+E.buf_len),p),p+=E.buf_len;const[v,I]=h.fd_write(u,b);return v&&m.setUint32(d,v,!0),I},path_create_directory(o,a,c){r.check_fds();const[d,u]=r.get_fd_and_wasi_ref(o);if(d===void 0||u===void 0)return w;const m=new Uint8Array(r.inst.exports.memory.buffer).slice(a,a+c);return u.path_create_directory(d,m)},path_filestat_get(o,a,c,d,u){r.check_fds();const[h,m]=r.get_fd_and_wasi_ref(o);if(h===void 0||m===void 0)return[void 0,w];const g=new DataView(r.inst.exports.memory.buffer),b=new Uint8Array(r.inst.exports.memory.buffer).slice(c,c+d),[p,v]=m.path_filestat_get(h,a,b);return p&&p.write_bytes(g,u),v},path_filestat_set_times(o,a,c,d,u,h,m){r.check_fds();const[g,y]=r.get_fd_and_wasi_ref(o);if(g===void 0||y===void 0)return[void 0,w];const p=new Uint8Array(r.inst.exports.memory.buffer).slice(c,c+d);return y.path_filestat_set_times(g,a,p,u,h,m)},path_link(o,a,c,d,u,h,m){r.check_fds();const[g,y]=r.get_fd_and_wasi_ref(o),[b,p]=r.get_fd_and_wasi_ref(u);if(g===void 0||y===void 0||b===void 0||p===void 0||y!==p)return w;const v=new Uint8Array(r.inst.exports.memory.buffer),I=v.slice(c,c+d),E=v.slice(h,h+m);return y.path_link(g,a,I,b,E)},path_open(o,a,c,d,u,h,m,g,y){r.check_fds();const[b,p]=r.get_fd_and_wasi_ref_n(o);if(b===void 0||p===void 0)return w;const v=r.wasi_farm_refs[p],E=new Uint8Array(r.inst.exports.memory.buffer).slice(c,c+d),[U,B]=v.path_open(b,a,E,u,h,m,g);if(U){if(r.fd_map.includes([U,p]))throw new Error("opened_fd already exists");const T=r.map_new_fd_and_notify(U,p);new DataView(r.inst.exports.memory.buffer).setUint32(y,T,!0)}return B},path_readlink(o,a,c,d,u,h){r.check_fds();const[m,g]=r.get_fd_and_wasi_ref(o);if(m===void 0||g===void 0)return[void 0,w];const y=new Uint8Array(r.inst.exports.memory.buffer),b=y.slice(a,a+c),[p,v]=g.path_readlink(m,b,u);return p&&(new DataView(r.inst.exports.memory.buffer).setUint32(h,p.length,!0),y.set(p,d)),v},path_remove_directory(o,a,c){r.check_fds();const[d,u]=r.get_fd_and_wasi_ref(o);if(d===void 0||u===void 0)return w;const m=new Uint8Array(r.inst.exports.memory.buffer).slice(a,a+c);return u.path_remove_directory(d,m)},path_rename(o,a,c,d,u,h){if(o===d)return S;r.check_fds();const[m,g]=r.get_fd_and_wasi_ref(o),[y,b]=r.get_fd_and_wasi_ref(d);if(m===void 0||g===void 0||y===void 0||b===void 0||g!==b)return w;const p=new Uint8Array(r.inst.exports.memory.buffer),v=p.slice(a,a+c),I=p.slice(u,u+h);return g.path_rename(m,v,y,I)},path_symlink(o,a,c,d,u){r.check_fds();const[h,m]=r.get_fd_and_wasi_ref(c);if(h===void 0||m===void 0)return w;const g=new Uint8Array(r.inst.exports.memory.buffer),y=g.slice(o,o+a),b=g.slice(d,d+u);return m.path_symlink(y,h,b)},path_unlink_file(o,a,c){r.check_fds();const[d,u]=r.get_fd_and_wasi_ref(o);if(d===void 0||u===void 0)return w;const m=new Uint8Array(r.inst.exports.memory.buffer).slice(a,a+c);return u.path_unlink_file(d,m)},poll_oneoff(o,a,c,d){if(c===0)return le;if(c>1)return console.error("poll_oneoff: only a single subscription is supported"),we;const u=new DataView(r.inst.exports.memory.buffer),h=re.read_bytes(u,o),m=h.eventtype,g=h.clockid,y=h.timeout;if(m!==Ve)return console.error("poll_oneoff: only clock subscriptions are supported"),we;let b;if(g===te)b=()=>BigInt(Math.round(performance.now()*1e6));else if(g===ee)b=()=>BigInt(new Date().getTime())*1000000n;else return le;const p=((h.flags&Pe)!==0?y:b()+y)-h.precision;for(;p>b(););return new Fe(h.userdata,S,m).write_bytes(u,a),u.setUint32(d,1,!0),S},proc_exit(o){throw r.check_fds(),new me(o)},proc_raise(o){throw r.check_fds(),`raised signal ${o}`},sched_yield(){r.check_fds()},random_get(o,a){r.check_fds();const c=new Uint8Array(r.inst.exports.memory.buffer).subarray(o,o+a);if("crypto"in globalThis&&!(r.inst.exports.memory.buffer instanceof SharedArrayBuffer))for(let d=0;d{if(r.check_fds(),!r.can_thread_spawn||!r.thread_spawner)throw new Error("thread_spawn is not allowed");return r.thread_spawner.thread_spawn(o,r.args,r.env,r.fd_map)}}}}var Ze=""+new URL("thread_spawn-BZ5YoPRh.js",self.location.href).href,Qe=""+new URL("worker_background_worker-BEBzMHuk.js",self.location.href).href;let P,oe;const K=[];let Y,ie;globalThis.addEventListener("message",async l=>{if(l.data.ctx)Y=l.data.ctx,P=new G.SharedObjectRef(Y.terminal_id).proxy(),await P(`loading rustc\r +`),ie=new G.SharedObjectRef(Y.waiter_id).proxy(),oe=await We(),await ie.end_rustc_fetch();else if(l.data.wasi_ref){const{wasi_ref:e}=l.data;for(K.push(e);!oe;)await new Promise(s=>setTimeout(s,100));for(await P(`loaded rustc\r +`);K.length===1;)await new Promise(s=>setTimeout(s,100));await P(`loaded wasi\r +`);const t=new He(K,[],["RUST_MIN_STACK=16777216"],{can_thread_spawn:!0,thread_spawn_worker_url:new URL(Ze,self.location.href).href,thread_spawn_wasm:oe,share_memory:{memory:new WebAssembly.Memory({initial:399,maximum:16384,shared:!0})},worker_background_worker_url:Qe});await t.wait_worker_background_worker(),new G.SharedObject((...s)=>{try{t.args=["rustc",...s],console.log("wasi.start"),t.block_start_on_thread(),console.log("wasi.start done")}catch(n){P(`${n.toString()}\r +`)}},Y.rustc_id),ie.rustc()}else l.data.wasi_ref_ui&&K.push(l.data.wasi_ref_ui)})})(); diff --git a/util_cmd-T00NCR0H.js b/util_cmd-T00NCR0H.js new file mode 100644 index 00000000..4e0184d6 --- /dev/null +++ b/util_cmd-T00NCR0H.js @@ -0,0 +1,6 @@ +(function(){"use strict";var O={exports:{}},ee=O.exports,F;function te(){return F||(F=1,(function(v,e){(function(t,s){s(e)})(ee,(function(t){class s{kept_object;room_id;id;bc;constructor(_,f){this.kept_object=_,this.room_id=`shared-object-${f}`,this.id="parent",this.bc=new globalThis.BroadcastChannel(this.room_id),this.register()}register(){const _=this.bc;_.onmessage=f=>{const r=f.data;if(r.msg===void 0)throw new Error("Invalid message");this.is_my_msg(r)||r.to===this.id&&(r.msg==="func_call::call"&&this.func_call(r),r.msg==="get::get"&&this.get(r))}}is_my_msg(_){return _.from===this.id}func_call(_){const f=this.bc,{names:r,args:i,id:n}=_;try{if(r.length===1&&r[0]===".self"){const l=this.kept_object(...i);f.postMessage({msg:"func_call::return",ret:l,id:n,from:this.id,to:_.from});return}let a=this.kept_object;for(const l of r)a=a[l];const d=a(...i);f.postMessage({msg:"func_call::return",ret:d,id:n,from:this.id,to:_.from})}catch(a){f.postMessage({msg:"func_call::error",error:a,id:n,from:this.id,to:_.from})}}get(_){const f=this.bc,{names:r,id:i}=_;try{let n=this.kept_object;for(const a of r)n=n[a];f.postMessage({msg:"get::return",ret:n,id:i,from:this.id,to:_.from,can_post:!0})}catch(n){if(n.name==="DataCloneError"){f.postMessage({msg:"get::data_clone_error",error:n,id:i,from:this.id,to:_.from,can_post:!1});return}f.postMessage({msg:"get::error",error:n,id:i,from:this.id,to:_.from,can_post:!1})}}}class o{room_id;id;map=new Map;bc;callbacks=[];constructor(_){this.room_id=`shared-object-${_}`,this.id=this.get_id(),this.bc=new globalThis.BroadcastChannel(this.room_id),this.register()}is_my_msg(_){return _.from===this.id}proxy(){return new Proxy(()=>{},{get:(_,f)=>this.get([f]),apply:(_,f,r)=>this.call([".self"],r)})}addCallback(_){this.callbacks.push(_)}removeCallback(_){const f=this.callbacks.indexOf(_);f!==-1&&this.callbacks.splice(f,1)}register(){const _=this.bc;_.onmessage=f=>{const r=f.data;if(r.msg===void 0)throw new Error("Invalid message");if(!this.is_my_msg(r)&&r.to===this.id){if(r.msg.startsWith("func_call::")){const i=this.map.get(r.id);if(i!==void 0)i(r),this.map.delete(r.id);else throw new Error("what happened? unreachable code")}if(r.msg.startsWith("get::")){const i=this.map.get(r.id);if(i!==void 0)i(r),this.map.delete(r.id);else throw new Error("what happened? unreachable code")}}}}get_id(){return Math.random().toString(36).slice(2)}check_msg_error(_){if(_.msg.endsWith("::error"))throw _.error}get(_){const{promise:f,resolve:r}=Promise.withResolvers(),i=this.get_id();this.map.set(i,r),this.postMessage({msg:"get::get",names:_,id:i,from:this.id,to:"parent"});let n=!1;const d=(async()=>{const u=await f;if(this.check_msg_error(u),u.msg==="get::return"||u.msg==="get::data_clone_error"){n&&console.warn(`Warning! +Objects that cannot be transferred are being retrieved.`);const m=u;return m.can_post?m.ret:new Proxy(()=>{},{get:(w,y)=>y==="then"?(n=!0,Promise.resolve(d)):this.get([..._,y]),apply:(w,y,g)=>this.call(_,g)})}throw new Error("what happened? unreachable code")})();return new Proxy(()=>{},{get:(u,m)=>m==="then"?(n=!0,d.then.bind(d)):this.get([..._,m]),apply:(u,m,w)=>this.call(_,w)})}async call(_,f){const{promise:r,resolve:i}=Promise.withResolvers(),n=this.get_id();this.map.set(n,i),this.postMessage({msg:"func_call::call",names:_,args:f,id:n});const a=await r;if(this.check_msg_error(a),a.msg==="func_call::return")return a.ret;throw new Error("what happened? unreachable code")}async call_callback(_){const{name:f,args:r,id:i}=_;try{if(_.msg==="callback::call"){const n=this.callbacks.find(d=>d.name===f);if(n===void 0)throw new Error("function not found");const a=n(...r);if(a instanceof Promise){this.postMessage({msg:"callback::promise",id:i});const d=await a;this.postMessage({msg:"callback::promise_return",ret:d,id:i})}else this.postMessage({msg:"callback::return",ret:a,id:i})}}catch(n){this.postMessage({msg:"callback::error",error:n,id:i})}}postMessage(_){this.bc.postMessage({..._,from:this.id,to:"parent"})}}t.SharedObject=s,t.SharedObjectRef=o,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})}))})(O,O.exports)),O.exports}var S=te();const N=0,V=1,B=0,h=8,K=28,Y=37,re=52,G=58;class R{static read_bytes(e,t){const s=new R;return s.buf=e.getUint32(t,!0),s.buf_len=e.getUint32(t+4,!0),s}static read_bytes_array(e,t,s){const o=[];for(let c=0;c{}}new _e(!1);class q extends Error{constructor(e){super("exit with exit code "+e),this.code=e}}class z{share_arrays_memory;constructor(e=new SharedArrayBuffer(10*1024*1024)){this.share_arrays_memory=e;const t=new Int32Array(this.share_arrays_memory);Atomics.store(t,0,0),Atomics.store(t,1,0),Atomics.store(t,2,12)}static init_self(e){return new z(e.share_arrays_memory)}async async_write(e,t,s){const o=new Int32Array(this.share_arrays_memory);for(;;){let c;const{value:_}=Atomics.waitAsync(o,0,1);if(_ instanceof Promise?c=await _:c=_,c==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(o,0,0,1)!==0)continue;const r=this.write_inner(e,t,s);return Atomics.store(o,0,0),Atomics.notify(o,0,1),r}}block_write(e,t,s){for(;;){const o=new Int32Array(this.share_arrays_memory);if(Atomics.wait(o,0,1)==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(o,0,0,1)!==0)continue;const f=this.write_inner(e,t,s);return Atomics.store(o,0,0),Atomics.notify(o,0,1),f}}write_inner(e,t,s){const o=new Int32Array(this.share_arrays_memory),c=new Uint8Array(this.share_arrays_memory),_=Atomics.add(o,1,1);let f;_===0?f=Atomics.store(o,2,12):f=Atomics.load(o,2);const r=this.share_arrays_memory.byteLength,i=e.byteLength,n=f+i;if(rthis.share_arrays_memory.byteLength)throw new Error("over memory");Atomics.store(s,2,_);const f=new Int32Array(this.share_arrays_memory,o);f[0]=e.length,f[1]=e.length,f.set(e,2),new Uint32Array(this.share_arrays_memory,o+8+e.length*4).set(t),Atomics.add(s,1,1),this.release_lock()}get_data(e){const t=new Int32Array(this.share_arrays_memory);if(Atomics.load(t,1)===0)return;this.block_lock();const o=Atomics.load(t,1),c=[];let _=12;for(let f=0;f{const e=new Error(v.message);return e.name=v.name,e.stack=v.stack?.replace(/.wasm:/g,`.wasm +`),e.cause=v.cause,e};class W{allocator;lock;signature_input;constructor(e,t,s){this.allocator=e,this.lock=t,this.signature_input=s}block_lock_base_func(){const e=new Int32Array(this.lock);for(;;){if(Atomics.wait(e,0,1)==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(e,0,0,1)===0)return}}async async_lock_base_func(){const e=new Int32Array(this.lock);for(;;){const{value:t}=Atomics.waitAsync(e,0,1);if(await t==="timed-out")throw new Error("timed-out lock");if(Atomics.compareExchange(e,0,0,1)===0)return}}call_base_func(){const e=new Int32Array(this.lock);Atomics.store(e,2,1),Atomics.store(e,1,0),Atomics.notify(e,1,1)}block_wait_base_func(){const e=new Int32Array(this.lock);if(Atomics.wait(e,2,1)==="timed-out")throw new Error("timed-out lock")}async async_wait_base_func(){const e=new Int32Array(this.lock),{value:t}=Atomics.waitAsync(e,2,1);if(await t==="timed-out")throw new Error("timed-out lock")}release_base_func(){const e=new Int32Array(this.lock);Atomics.store(e,0,0),Atomics.notify(e,0,1)}new_worker(e,t,s){console.log("new_worker",e,t,s),this.block_lock_base_func();const o=new Int32Array(this.signature_input);Atomics.store(o,0,1);const c=new TextEncoder().encode(e);this.allocator.block_write(c,this.signature_input,1),Atomics.store(o,3,t?.type==="module"?1:0);const _=JSON.stringify(s),f=new TextEncoder().encode(_);this.allocator.block_write(f,this.signature_input,4),this.call_base_func(),this.block_wait_base_func();const r=Atomics.load(o,0);return this.release_base_func(),new de(r)}async async_start_on_thread(e,t,s){await this.async_lock_base_func();const o=new Int32Array(this.signature_input);Atomics.store(o,0,2);const c=new TextEncoder().encode(e);await this.allocator.async_write(c,this.signature_input,1),Atomics.store(o,3,t?.type==="module"?1:0);const _=JSON.stringify(s),f=new TextEncoder().encode(_);await this.allocator.async_write(f,this.signature_input,4),this.call_base_func(),await this.async_wait_base_func(),this.release_base_func()}block_start_on_thread(e,t,s){this.block_lock_base_func();const o=new Int32Array(this.signature_input);Atomics.store(o,0,2);const c=new TextEncoder().encode(e);this.allocator.block_write(c,this.signature_input,1),Atomics.store(o,3,t?.type==="module"?1:0);const _=JSON.stringify(s),f=new TextEncoder().encode(_);this.allocator.block_write(f,this.signature_input,4),this.call_base_func(),this.block_wait_base_func(),this.release_base_func()}static init_self(e){return new W(z.init_self(e.allocator),e.lock,e.signature_input)}done_notify(e){const t=new Int32Array(this.lock,12);if(Atomics.compareExchange(t,0,0,2)!==0){console.error("what happened?");return}Atomics.store(t,1,e),Atomics.notify(t,0)===0&&Atomics.store(t,0,0)}async async_wait_done_or_error(){const e=new Int32Array(this.lock,12);Atomics.store(e,0,0);let t;const{value:s}=Atomics.waitAsync(e,0,0);if(s instanceof Promise?t=await s:t=s,t==="timed-out")throw new Error("timed-out");const o=Atomics.load(e,0);if(o===3)return Atomics.compareExchange(e,0,3,0)!==3&&console.error("what happened?"),0;if(o===2){const d=Atomics.compareExchange(e,0,2,0),l=Atomics.load(e,1);return d!==2&&console.error("what happened?"),l}if(o!==1)throw new Error("unknown code");const c=Atomics.load(e,1),_=Atomics.load(e,2),f=this.allocator.get_memory(c,_),r=new TextDecoder().decode(f),i=JSON.parse(r),n=X(i);throw Atomics.compareExchange(e,0,1,0)!==1&&console.error("what happened?"),n}block_wait_done_or_error(){const e=new Int32Array(this.lock,12);if(Atomics.store(e,0,0),Atomics.wait(e,0,0)==="timed-out")throw new Error("timed-out");const s=Atomics.load(e,0);if(s===3)return Atomics.compareExchange(e,0,3,0)!==3&&console.error("what happened?"),0;if(s===2){const a=Atomics.compareExchange(e,0,2,0),d=Atomics.load(e,1);return a!==2&&console.error("what happened?"),d}if(s!==1)throw new Error("unknown code");const o=Atomics.load(e,1),c=Atomics.load(e,2),_=this.allocator.get_memory(o,c),f=new TextDecoder().decode(_),r=JSON.parse(f),i=X(r);throw Atomics.compareExchange(e,0,1,0)!==1&&console.error("what happened?"),i}}class de{id;constructor(e){this.id=e}get_id(){return this.id}}const le=()=>{const v='let worker_background;class AllocatorUseArrayBuffer{share_arrays_memory;constructor(r=new SharedArrayBuffer(0xa00000)){this.share_arrays_memory=r;let e=new Int32Array(this.share_arrays_memory);Atomics.store(e,0,0),Atomics.store(e,1,0),Atomics.store(e,2,12)}static init_self(r){return new AllocatorUseArrayBuffer(r.share_arrays_memory)}async async_write(r,e,t){let o=new Int32Array(this.share_arrays_memory);for(;;){let{value:s}=Atomics.waitAsync(o,0,1);if("timed-out"===(s instanceof Promise?await s:s))throw Error("timed-out lock");if(0!==Atomics.compareExchange(o,0,0,1))continue;let i=this.write_inner(r,e,t);return Atomics.store(o,0,0),Atomics.notify(o,0,1),i}}block_write(r,e,t){for(;;){let o=new Int32Array(this.share_arrays_memory);if("timed-out"===Atomics.wait(o,0,1))throw Error("timed-out lock");if(0!==Atomics.compareExchange(o,0,0,1))continue;let s=this.write_inner(r,e,t);return Atomics.store(o,0,0),Atomics.notify(o,0,1),s}}write_inner(r,e,t){let o,s,i=new Int32Array(this.share_arrays_memory),a=new Uint8Array(this.share_arrays_memory);o=0===Atomics.add(i,1,1)?Atomics.store(i,2,12):Atomics.load(i,2);let n=this.share_arrays_memory.byteLength,c=r.byteLength,l=o+c;if(n({message:r.message,name:r.name,stack:r.stack,cause:r.cause}),WorkerBackground=class r{override_object;allocator;lock;signature_input;workers=[void 0];start_worker;listen_holder;constructor(r,e,t,o){this.override_object=r,this.lock=e??new SharedArrayBuffer(24),this.allocator=t??new AllocatorUseArrayBuffer(new SharedArrayBuffer(10240)),this.signature_input=o??new SharedArrayBuffer(24),this.listen_holder=this.listen()}static init_self(e,t){return new r(e,t.lock,AllocatorUseArrayBuffer.init_self(t.allocator),t.signature_input)}assign_worker_id(){for(let r=1;r{let r=Atomics.load(e,1),t=Atomics.load(e,2),o=this.allocator.get_memory(r,t);return this.allocator.free(r,t),new Worker(new TextDecoder().decode(o),{type:1===Atomics.load(e,3)?"module":"classic"})},s=()=>{let r=Atomics.load(e,4),t=Atomics.load(e,5),o=this.allocator.get_memory(r,t);return this.allocator.free(r,t),JSON.parse(new TextDecoder().decode(o))};switch(Atomics.load(e,0)){case 1:{let r=o(),t=s(),i=this.assign_worker_id();console.debug("new worker "+i),this.workers[i]=r;let{promise:a,resolve:n}=Promise.withResolvers();r.onmessage=async r=>{let{msg:e}=r.data;if("ready"===e&&n(),"done"===e&&(this.workers[i].terminate(),this.workers[i]=void 0,console.debug(`worker ${i} done so terminate`)),"error"===e||"exit"===e){this.workers[i].terminate(),this.workers[i]=void 0;let t=0;for(let r of this.workers)void 0!==r&&(r.terminate(),"error"===e?console.warn("wasi throw error but child process exists, terminate "+t):console.debug("wasi exit but child process exists, terminate "+t)),t++;void 0!==this.start_worker&&(this.start_worker.terminate(),"error"===e?console.warn("wasi throw error but wasi exists, terminate wasi"):console.debug("wasi exit but wasi exists, terminate wasi")),this.workers=[void 0],this.start_worker=void 0;let o=new Int32Array(this.lock,12);if("error"===e){let e=r.data.error,t=serialize(e),[s,i]=await this.allocator.async_write(new TextEncoder().encode(JSON.stringify(t)),this.lock,4);if(0!==Atomics.compareExchange(o,0,0,1)){console.error("what happened?"),this.allocator.free(s,i);return}1!==Atomics.notify(o,0)&&(console.error(e),this.allocator.free(s,i),Atomics.store(o,0,0))}else{let e=r.data.code;if(0!==Atomics.compareExchange(o,0,0,2))return void console.error("what happened?");Atomics.store(o,1,e),0===Atomics.notify(o,0)&&Atomics.store(o,0,0)}}},r.postMessage({...this.override_object,...t,worker_id:i,worker_background_ref:this.ref()}),await a,Atomics.store(e,0,i);break}case 2:{console.debug("start worker create"),this.start_worker=o();let r=s();this.start_worker.onmessage=async r=>{let{msg:e}=r.data;if("done"===e){let r=0;for(let e of this.workers)void 0!==e&&(e.terminate(),console.warn("wasi done but worker exists, terminate "+r)),r++;this.start_worker.terminate(),this.start_worker=void 0;let e=new Int32Array(this.lock,12);Atomics.store(e,0,3),0===Atomics.notify(e,0)&&Atomics.store(e,0,0),console.debug("start worker done so terminate")}if("error"===e||"exit"===e){let t=0;for(let r of this.workers)void 0!==r&&(r.terminate(),"error"===e?console.warn("wasi throw error but worker exists, terminate "+t):console.debug("wasi exit but worker exists, terminate "+t)),t++;void 0!==this.start_worker&&(this.start_worker.terminate(),"error"===e?console.warn("wasi throw error but wasi exists, terminate start worker"):console.debug("wasi exit but wasi exists, terminate start worker")),this.workers=[void 0],this.start_worker=void 0;let o=new Int32Array(this.lock,12);if("error"===e){let e=r.data.error,t=serialize(e),[s,i]=await this.allocator.async_write(new TextEncoder().encode(JSON.stringify(t)),this.lock,4);if(0!==Atomics.compareExchange(o,0,0,1)){console.error("what happened?"),this.allocator.free(s,i);return}if(0===Atomics.notify(o,0))throw this.allocator.free(s,i),Atomics.store(o,0,0),e}else{let e=r.data.code;if(0!==Atomics.compareExchange(o,0,0,2))return void console.error("what happened?");Atomics.store(o,1,e),0===Atomics.notify(o,0)&&Atomics.store(o,0,0)}}},this.start_worker.postMessage({...this.override_object,...r,worker_background_ref:this.ref()})}}Atomics.store(r,1,1),Atomics.store(r,2,0),0===Atomics.notify(r,2,1)&&console.warn("notify failed, waiter is late")}}};globalThis.onmessage=r=>{let{override_object:e,worker_background_ref_object:t}=r.data;worker_background=WorkerBackground.init_self(e,t),postMessage("ready")};',e=new Blob([v],{type:"application/javascript"});return URL.createObjectURL(e)},ue=()=>({allocator:{share_arrays_memory:new SharedArrayBuffer(10*1024)},lock:new SharedArrayBuffer(24),signature_input:new SharedArrayBuffer(24)});class T{share_memory;wasi_farm_refs_object;worker_url;worker_background_ref;worker_background_ref_object;worker_background_worker;worker_background_worker_promise;constructor(e,t,s,o=16777216,c,_,f){if(this.worker_url=e,this.wasi_farm_refs_object=t,s===void 0){const i=o/65536;if(i<16)throw new Error("The stack size must be at least 16 bytes.");const n=1073741824/65536;this.share_memory={memory:new WebAssembly.Memory({initial:i,maximum:n,shared:!0})}}else this.share_memory=s;if(c===void 0){let r;f?r=f:r=le(),this.worker_background_worker=new Worker(r,{type:"module"}),f||URL.revokeObjectURL(r);const{promise:i,resolve:n}=Promise.withResolvers();this.worker_background_worker_promise=i,this.worker_background_worker.onmessage=()=>{this.worker_background_worker_promise=void 0,n()},this.worker_background_ref_object=ue(),this.worker_background_ref=W.init_self(this.worker_background_ref_object),this.worker_background_worker.postMessage({override_object:{sl_object:this.get_object(),thread_spawn_wasm:_},worker_background_ref_object:structuredClone(this.worker_background_ref_object)})}else this.worker_background_ref_object=c,this.worker_background_ref=W.init_self(this.worker_background_ref_object)}async wait_worker_background_worker(){if(this.worker_background_worker_promise){await this.worker_background_worker_promise;return}}check_worker_background_worker(){if(this.worker_background_worker_promise)throw new Error("worker_background_worker is not ready.")}thread_spawn(e,t,s,o){return this.worker_background_ref.new_worker(this.worker_url,{type:"module"},{this_is_thread_spawn:!0,start_arg:e,args:t,env:s,fd_map:o}).get_id()}async async_start_on_thread(e,t,s){if(!self.Worker.toString().includes("[native code]"))if(self.Worker.toString().includes("function"))console.warn("SubWorker(new Worker on Worker) is polyfilled maybe.");else throw new Error("SubWorker(new Worker on Worker) is not supported.");await this.worker_background_ref.async_start_on_thread(this.worker_url,{type:"module"},{this_is_thread_spawn:!0,this_is_start:!0,args:e,env:t,fd_map:s})}block_start_on_thread(e,t,s){if(!self.Worker.toString().includes("[native code]"))if(self.Worker.toString().includes("function"))console.warn("SubWorker(new Worker on Worker) is polyfilled maybe.");else throw new Error("SubWorker(new Worker on Worker) is not supported.");this.worker_background_ref.block_start_on_thread(this.worker_url,{type:"module"},{this_is_thread_spawn:!0,this_is_start:!0,args:e,env:t,fd_map:s})}static init_self(e){return new T(e.worker_url,e.wasi_farm_refs_object,e.share_memory,void 0,e.worker_background_ref_object)}static init_self_with_worker_background_ref(e,t){return new T(e.worker_url,e.wasi_farm_refs_object,e.share_memory,void 0,t)}get_share_memory(){return this.share_memory}get_object(){return{share_memory:this.share_memory,wasi_farm_refs_object:this.wasi_farm_refs_object,worker_url:this.worker_url,worker_background_ref_object:this.worker_background_ref_object}}done_notify(e){this.worker_background_ref.done_notify(e)}async async_wait_done_or_error(){if(this.worker_background_worker===void 0)throw new Error("worker_background_worker is undefined.");return await this.worker_background_ref.async_wait_done_or_error()}block_wait_done_or_error(){if(this.worker_background_worker===void 0)throw new Error("worker_background_worker is undefined.");return this.worker_background_ref.block_wait_done_or_error()}}class J{args;env;wasi_farm_refs;id_in_wasi_farm_ref;inst;wasiImport;wasiThreadImport;can_array_buffer;can_thread_spawn;thread_spawner;async wait_worker_background_worker(){await this.thread_spawner?.wait_worker_background_worker()}check_worker_background_worker(){this.thread_spawner?.check_worker_background_worker()}fd_map=[];get_fd_and_wasi_ref(e){const t=this.fd_map[e];if(!t)return[void 0,void 0];const[s,o]=t;return[s,this.wasi_farm_refs[o]]}get_fd_and_wasi_ref_n(e){const t=this.fd_map[e];if(!t)return[void 0,void 0];const[s,o]=t;return[s,o]}start(e){this.inst=e;try{if(e.exports._start(),this.can_thread_spawn){if(!this.thread_spawner)throw new Error("thread_spawner is not defined");this.thread_spawner.done_notify(0)}return 0}catch(t){if(t instanceof q)return this.can_thread_spawn&&this.thread_spawner.done_notify(t.code),t.code;throw t}}start_only(e){this.inst=e,e.exports._start()}async async_start_on_thread(){if(!this.can_thread_spawn||!this.thread_spawner)throw new Error("thread_spawn is not supported");if(await this.wait_worker_background_worker(),this.inst)throw new Error("what happened?");const e=this.thread_spawner.get_share_memory();for(const o in e)new Uint8Array(e[o].buffer).fill(0);const t=this.thread_spawner.async_wait_done_or_error();return await this.thread_spawner.async_start_on_thread(this.args,this.env,this.fd_map),await t}block_start_on_thread(){if(!this.can_thread_spawn||!this.thread_spawner)throw new Error("thread_spawn is not supported");if(console.log("block_start_on_thread"),this.check_worker_background_worker(),console.log("block_start_on_thread"),this.inst)throw new Error("what happened?");const e=this.thread_spawner.get_share_memory();for(const s in e)new Uint8Array(e[s].buffer).fill(0);console.log("block_start_on_thread: start"),this.thread_spawner.block_start_on_thread(this.args,this.env,this.fd_map),console.log("block_start_on_thread: wait");const t=this.thread_spawner.block_wait_done_or_error();return console.log("block_start_on_thread: done"),t}wasi_thread_start(e,t,s){this.inst=e,e.exports.wasi_thread_start(t,s)}initialize(e){this.inst=e,e.exports._initialize&&e.exports._initialize()}mapping_fds(e,t){this.fd_map=[void 0,void 0,void 0];for(let s=0;s0)for(let t=0;t=U.length){y.set(U,j.buf);break}y.set(U.slice(I,I+j.buf_len),j.buf),I+=j.buf_len}}return b},fd_prestat_get(i,n){r.check_fds();const[a,d]=r.get_fd_and_wasi_ref(i);if(a===void 0||d===void 0)return h;const[l,u]=d.fd_prestat_get(a);if(l){const[m,w]=l,y=new DataView(r.inst.exports.memory.buffer);y.setUint32(n,m,!0),y.setUint32(n+4,w,!0)}return u},fd_prestat_dir_name(i,n,a){r.check_fds();const[d,l]=r.get_fd_and_wasi_ref(i);if(d===void 0||l===void 0)return[void 0,h];const[u,m]=l.fd_prestat_dir_name(d,a);return u&&new Uint8Array(r.inst.exports.memory.buffer).set(u,n),m},fd_pwrite(i,n,a,d,l){r.check_fds();const[u,m]=r.get_fd_and_wasi_ref(i);if(u===void 0||m===void 0)return h;const w=new DataView(r.inst.exports.memory.buffer),y=new Uint8Array(r.inst.exports.memory.buffer),g=D.read_bytes_array(w,n,a),p=new Uint8Array(g.reduce((U,I)=>U+I.buf_len,0));let b=0;for(const U of g)p.set(y.slice(U.buf,U.buf+U.buf_len),b),b+=U.buf_len;const[k,x]=m.fd_pwrite(u,p,d);return k&&w.setUint32(l,k,!0),x},fd_read(i,n,a,d){r.check_fds();const[l,u]=r.get_fd_and_wasi_ref(i);if(l===void 0||u===void 0)return h;const m=new DataView(r.inst.exports.memory.buffer),w=new Uint8Array(r.inst.exports.memory.buffer),y=new Uint32Array(m.buffer,n,a*2),[g,p]=u.fd_read(l,y);if(g){const b=R.read_bytes_array(m,n,a),[k,x]=g;m.setUint32(d,k,!0);let U=0;for(const I of b){if(U+I.buf_len>=x.length){w.set(x,I.buf);break}w.set(x.slice(U,U+I.buf_len),I.buf),U+=I.buf_len}}return p},fd_readdir(i,n,a,d,l){r.check_fds();const[u,m]=r.get_fd_and_wasi_ref(i);if(u===void 0||m===void 0)return[void 0,h];const w=new DataView(r.inst.exports.memory.buffer),y=new Uint8Array(r.inst.exports.memory.buffer),[g,p]=m.fd_readdir(u,a,d);if(g){const[b,k]=g;w.setUint32(l,k,!0),y.set(b,n)}return p},fd_renumber(i,n){r.check_fds();const[a,d]=r.get_fd_and_wasi_ref(n);if(a!==void 0&&d!==void 0){const l=d.fd_close(a);if(r.check_fds(),l!==B)return l}if(r.fd_map[n])throw new Error("fd is already mapped");return r.fd_map[n]=r.fd_map[i],r.fd_map[i]=void 0,B},fd_seek(i,n,a,d){r.check_fds();const[l,u]=r.get_fd_and_wasi_ref(i);if(l===void 0||u===void 0)return[void 0,h];const[m,w]=u.fd_seek(l,n,a);return m&&new DataView(r.inst.exports.memory.buffer).setBigUint64(d,m,!0),w},fd_sync(i){r.check_fds();const[n,a]=r.get_fd_and_wasi_ref(i);return n===void 0||a===void 0?h:a.fd_sync(n)},fd_tell(i,n){r.check_fds();const[a,d]=r.get_fd_and_wasi_ref(i);if(a===void 0||d===void 0)return[void 0,h];const[l,u]=d.fd_tell(a);return l&&new DataView(r.inst.exports.memory.buffer).setBigUint64(n,l,!0),u},fd_write(i,n,a,d){r.check_fds();const[l,u]=r.get_fd_and_wasi_ref(i);if(l===void 0||u===void 0)return h;const m=new DataView(r.inst.exports.memory.buffer),w=new Uint8Array(r.inst.exports.memory.buffer),y=D.read_bytes_array(m,n,a),g=new Uint8Array(y.reduce((x,U)=>x+U.buf_len,0));let p=0;for(const x of y)g.set(w.slice(x.buf,x.buf+x.buf_len),p),p+=x.buf_len;const[b,k]=u.fd_write(l,g);return b&&m.setUint32(d,b,!0),k},path_create_directory(i,n,a){r.check_fds();const[d,l]=r.get_fd_and_wasi_ref(i);if(d===void 0||l===void 0)return h;const m=new Uint8Array(r.inst.exports.memory.buffer).slice(n,n+a);return l.path_create_directory(d,m)},path_filestat_get(i,n,a,d,l){r.check_fds();const[u,m]=r.get_fd_and_wasi_ref(i);if(u===void 0||m===void 0)return[void 0,h];const w=new DataView(r.inst.exports.memory.buffer),g=new Uint8Array(r.inst.exports.memory.buffer).slice(a,a+d),[p,b]=m.path_filestat_get(u,n,g);return p&&p.write_bytes(w,l),b},path_filestat_set_times(i,n,a,d,l,u,m){r.check_fds();const[w,y]=r.get_fd_and_wasi_ref(i);if(w===void 0||y===void 0)return[void 0,h];const p=new Uint8Array(r.inst.exports.memory.buffer).slice(a,a+d);return y.path_filestat_set_times(w,n,p,l,u,m)},path_link(i,n,a,d,l,u,m){r.check_fds();const[w,y]=r.get_fd_and_wasi_ref(i),[g,p]=r.get_fd_and_wasi_ref(l);if(w===void 0||y===void 0||g===void 0||p===void 0||y!==p)return h;const b=new Uint8Array(r.inst.exports.memory.buffer),k=b.slice(a,a+d),x=b.slice(u,u+m);return y.path_link(w,n,k,g,x)},path_open(i,n,a,d,l,u,m,w,y){r.check_fds();const[g,p]=r.get_fd_and_wasi_ref_n(i);if(g===void 0||p===void 0)return h;const b=r.wasi_farm_refs[p],x=new Uint8Array(r.inst.exports.memory.buffer).slice(a,a+d),[U,I]=b.path_open(g,n,x,l,u,m,w);if(U){if(r.fd_map.includes([U,p]))throw new Error("opened_fd already exists");const j=r.map_new_fd_and_notify(U,p);new DataView(r.inst.exports.memory.buffer).setUint32(y,j,!0)}return I},path_readlink(i,n,a,d,l,u){r.check_fds();const[m,w]=r.get_fd_and_wasi_ref(i);if(m===void 0||w===void 0)return[void 0,h];const y=new Uint8Array(r.inst.exports.memory.buffer),g=y.slice(n,n+a),[p,b]=w.path_readlink(m,g,l);return p&&(new DataView(r.inst.exports.memory.buffer).setUint32(u,p.length,!0),y.set(p,d)),b},path_remove_directory(i,n,a){r.check_fds();const[d,l]=r.get_fd_and_wasi_ref(i);if(d===void 0||l===void 0)return h;const m=new Uint8Array(r.inst.exports.memory.buffer).slice(n,n+a);return l.path_remove_directory(d,m)},path_rename(i,n,a,d,l,u){if(i===d)return B;r.check_fds();const[m,w]=r.get_fd_and_wasi_ref(i),[y,g]=r.get_fd_and_wasi_ref(d);if(m===void 0||w===void 0||y===void 0||g===void 0||w!==g)return h;const p=new Uint8Array(r.inst.exports.memory.buffer),b=p.slice(n,n+a),k=p.slice(l,l+u);return w.path_rename(m,b,y,k)},path_symlink(i,n,a,d,l){r.check_fds();const[u,m]=r.get_fd_and_wasi_ref(a);if(u===void 0||m===void 0)return h;const w=new Uint8Array(r.inst.exports.memory.buffer),y=w.slice(i,i+n),g=w.slice(d,d+l);return m.path_symlink(y,u,g)},path_unlink_file(i,n,a){r.check_fds();const[d,l]=r.get_fd_and_wasi_ref(i);if(d===void 0||l===void 0)return h;const m=new Uint8Array(r.inst.exports.memory.buffer).slice(n,n+a);return l.path_unlink_file(d,m)},poll_oneoff(i,n,a,d){if(a===0)return K;if(a>1)return console.error("poll_oneoff: only a single subscription is supported"),G;const l=new DataView(r.inst.exports.memory.buffer),u=C.read_bytes(l,i),m=u.eventtype,w=u.clockid,y=u.timeout;if(m!==ie)return console.error("poll_oneoff: only clock subscriptions are supported"),G;let g;if(w===V)g=()=>BigInt(Math.round(performance.now()*1e6));else if(w===N)g=()=>BigInt(new Date().getTime())*1000000n;else return K;const p=((u.flags&ne)!==0?y:g()+y)-u.precision;for(;p>g(););return new ae(u.userdata,B,m).write_bytes(l,n),l.setUint32(d,1,!0),B},proc_exit(i){throw r.check_fds(),new q(i)},proc_raise(i){throw r.check_fds(),`raised signal ${i}`},sched_yield(){r.check_fds()},random_get(i,n){r.check_fds();const a=new Uint8Array(r.inst.exports.memory.buffer).subarray(i,i+n);if("crypto"in globalThis&&!(r.inst.exports.memory.buffer instanceof SharedArrayBuffer))for(let d=0;d{if(r.check_fds(),!r.can_thread_spawn||!r.thread_spawner)throw new Error("thread_spawn is not allowed");return r.thread_spawner.thread_spawn(i,r.args,r.env,r.fd_map)}}}}var he=""+new URL("lsr-Dbxw99Em.wasm",self.location.href).href,me=""+new URL("tre-CYGRhTVw.wasm",self.location.href).href;const M=0,we=0;let ye=class{enable(e){this.log=ge(e===void 0?!0:e,this.prefix)}get enabled(){return this.isEnabled}constructor(e){this.isEnabled=e,this.prefix="wasi:",this.enable(e)}};function ge(v,e){return v?console.log.bind(console,"%c%s","color: #265BA0",e):()=>{}}new ye(!1);const Z=(v,e)=>{const t=e;let s=v;s.startsWith("/")||(s=`/${s}`);let o;const c=new Map;for(let w=0;wf&&(_=w,f=p)}if(console.log("matched_fd",_),f===0)throw new Error("no matched dir");console.log("matched_dir_name",c.get(_));const i=r.slice(f).join("/");console.log("rest_path",i);const[n,a]=t.get_fd_and_wasi_ref_n(_),[d,l]=t.wasi_farm_refs[a].path_open(n,0,new TextEncoder().encode(i),0,0n,0n,0);if(t.map_new_fd_and_notify(d,a),l!==M)throw new Error("failed to open file");let u=new Uint8Array,m=0n;for(;;){console.log("offset",m);const w=new Uint32Array(2);w[0]=0,w[1]=1024;const[y,g]=t.wasi_farm_refs[a].fd_pread(d,w,m);if(g!==M)throw new Error("failed to read file");if(!y)throw new Error("failed to read file");const[p,b]=y;if(p===0)break;const k=new Uint8Array(u.length+p);if(k.set(u),k.set(b,u.length),u=k,m+=BigInt(p),p<1024)break}return t.wasi_farm_refs[a].fd_close(d),u},L=[];globalThis.addEventListener("message",async v=>{const{wasi_refs:e,ctx:t}=v.data;console.log("loading lsr and tre");const s=new S.SharedObjectRef(t.terminal_id).proxy(),o=new S.SharedObjectRef(t.waiter_id).proxy(),c=new S.SharedObjectRef(t.download_by_url_id).proxy(),_=await WebAssembly.compile(await(await fetch(he)).arrayBuffer()),f=new J(e,[],[]),r=await WebAssembly.instantiate(_,{wasi_snapshot_preview1:f.wasiImport}),i=r.exports.memory.buffer,n=new Uint8Array(i).slice();L.push(new S.SharedObject((...y)=>{new Uint8Array(r.exports.memory.buffer).set(n),f.args=["lsr",...y],f.start(r)},t.ls_id));const a=await WebAssembly.compile(await(await fetch(me)).arrayBuffer()),d=new J(e,[],[]),l=await WebAssembly.instantiate(a,{wasi_snapshot_preview1:d.wasiImport});console.log("tree_inst",l);const u=l.exports.memory.buffer,m=new Uint8Array(u).slice();L.push(new S.SharedObject((...y)=>{d.args=["tre",...y],new Uint8Array(l.exports.memory.buffer).set(m),d.start(l)},t.tree_id)),console.log("lsr_inst",r),console.log("lsr and tre loaded");const w=new J(e,[],[]);L.push(new S.SharedObject((...y)=>{(async g=>{const p=g[0],b=g.slice(1);try{const k=Z(p,w),x=await WebAssembly.compile(k),U=await WebAssembly.instantiate(x,{wasi_snapshot_preview1:w.wasiImport});w.args=[p,...b],w.start(U)}catch(k){s(`Error: ${k}\r +`)}o.set_end_of_exec(!0)})(y)},t.exec_file_id)),L.push(new S.SharedObject(y=>{(async g=>{console.log("exec_file",g);try{const p=Z(g,w),b=new Blob([p]),k=URL.createObjectURL(b);await c(k,g.split("/").pop()),URL.revokeObjectURL(k)}catch(p){s(`Error: ${p}\r +`)}o.set_end_of_exec(!0)})(y)},t.download_id))})})(); diff --git a/wasm32-wasip1.tar.br b/wasm32-wasip1.tar.br new file mode 100644 index 00000000..a3276c96 Binary files /dev/null and b/wasm32-wasip1.tar.br differ