import{i as e,n as t,t as n}from"./Dsjmnbas.js";var r=`devframe:client-id`,i;function a(t=globalThis.window){try{let n=t?.sessionStorage;if(n){let t=n.getItem(r);return t||(t=e(),n.setItem(r,t)),t}}catch{}return i??=e(),i}function o(e){e.client.register({name:`devframe:agent:invoke-client-tool`,type:`action`,jsonSerializable:!0,handler:async(e,t)=>{let r=n().find(t=>t.id===e);if(!r)throw Error(`[devframe/agent] browser tool "${e}" not found`);return await r.invoke(t)}});let r=!1,i=!1,o=0,s=()=>{r||i||(r=!0,queueMicrotask(async()=>{if(r=!1,i)return;let t=n().map(({invoke:e,...t})=>t);(t.length!==0||o!==0)&&(o=t.length,await e.callOptional(`devframe:agent:sync-client-tools`,a(),t).catch(()=>{}))}))},c=t(s),l=e.events.on(`connection:status`,e=>{e===`connected`&&s()});return s(),()=>{i=!0,c(),l()}}export{o as setupBrowserAgentRpcBridge};