@amd-gaia/agent-ui 0.25.4-rc.4 → 0.25.4-rc.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/assets/AdvancedSettings-3RM8Obyx.js +1 -0
  2. package/dist/assets/ConnectorsPane-C2ErbEHk.js +1 -0
  3. package/dist/assets/{DocumentLibrary-BWvkvxTu.js → DocumentLibrary-BUUeUqKi.js} +2 -2
  4. package/dist/assets/FileBrowser-BGVQQMFv.js +4 -0
  5. package/dist/assets/MemoryDashboard-DkvaokBj.js +1 -0
  6. package/dist/assets/MemoryDashboard-DwrWAXi6.css +1 -0
  7. package/dist/assets/MobileAccessModal-C8L7ZA2z.js +2 -0
  8. package/dist/assets/ScheduleManager-CjHJ4NbD.css +1 -0
  9. package/dist/assets/ScheduleManager-FRIPnQnw.js +1 -0
  10. package/dist/assets/api-By968363.js +4 -0
  11. package/dist/assets/apiBase-DSN0u9ls.js +3 -0
  12. package/dist/assets/index-8uiHNHOH.js +78 -0
  13. package/dist/assets/index-CNhwlnjv.css +1 -0
  14. package/dist/assets/{zap-D7aLu_f0.js → zap-B97NJZKh.js} +1 -1
  15. package/dist/index.html +4 -4
  16. package/dist/sw.js +1 -1
  17. package/package.json +1 -1
  18. package/preload.cjs +3 -0
  19. package/services/backend-installer.cjs +117 -8
  20. package/services/engine-install.cjs +77 -5
  21. package/services/lock-holders.cjs +200 -0
  22. package/dist/assets/AdvancedSettings-DoIDd09m.js +0 -1
  23. package/dist/assets/ConnectorsPane-CK3h7C7E.js +0 -1
  24. package/dist/assets/FileBrowser-DhqWGirJ.js +0 -4
  25. package/dist/assets/MemoryDashboard-BF-o8284.js +0 -1
  26. package/dist/assets/MemoryDashboard-Dt6zI60b.css +0 -1
  27. package/dist/assets/MobileAccessModal-51t2kQaJ.js +0 -2
  28. package/dist/assets/ScheduleManager-2xjZsnLK.js +0 -2
  29. package/dist/assets/ScheduleManager-D5c4gVIt.css +0 -1
  30. package/dist/assets/api-BzlFpP4T.js +0 -4
  31. package/dist/assets/apiBase-BMkGbdXt.js +0 -1
  32. package/dist/assets/index-C_Cx5IlD.css +0 -1
  33. package/dist/assets/index-hAcJijAU.js +0 -78
@@ -0,0 +1,4 @@
1
+ import{P as e,t}from"./apiBase-DSN0u9ls.js";var n=`gaia:draft:`,r=e=>`chat:${e}`,i=`new-chat`;function a(t){try{return localStorage.getItem(n+t)??``}catch(n){return e.ui.warn(`Couldn't read the saved draft for ${t}`,n),``}}function o(t,r){try{r?localStorage.setItem(n+t,r):localStorage.removeItem(n+t)}catch(n){e.ui.warn(`Couldn't save the draft for ${t}`,n)}}function s(e){o(e,``)}function c(e){if(!(e instanceof L)||e.httpStatus!==409||!e.body)return null;let{code:t,acknowledge:n}=e.body;return(t===`no_fit`||t===`low_disk`)&&typeof n==`string`?e.body:null}async function l(){return V(`GET`,`/onboarding/preflight`)}async function u(e=!1){return V(`GET`,`/setup/check?skip_chat_model=${e}`)}async function d(e,t=!1,n={}){return V(`POST`,`/setup/run`,{skip_chat_model:e,gaia_lemonade:t,acknowledge_low_disk:!!n.acknowledgeLowDisk,keep_trying:!!n.keepTrying,extra_models:n.extraModels??[],server_only:!!n.serverOnly,upgrade_embedded:!!n.upgradeEmbedded})}async function f(e){return V(`POST`,`/setup/cancel`,e?{model_id:e}:void 0)}async function p(e,t){return V(`POST`,`/setup/models/skip`,{model_id:e,skipped:t})}async function m(e,t={}){return V(`POST`,`/setup/models/download`,{model_id:e,acknowledge_low_disk:!!t.acknowledgeLowDisk,keep_trying:!!t.keepTrying})}async function h(e){return V(`POST`,`/setup/models/remove`,{model_id:e})}async function g(){return V(`GET`,`/setup/status`)}async function ee(){return V(`GET`,`/setup/plan`)}async function te(e,t=!1){return V(`POST`,`/setup/chat-model`,{model_id:e,acknowledge_no_fit:t})}async function ne(e){return V(`POST`,`/setup/vision-model`,{model_id:e})}async function re(e){return V(`GET`,`/setup/needs/${e}`)}async function ie(e){return V(`GET`,e==null?`/gpu-memory`:`/gpu-memory?setting_gb=${e}`)}async function ae(e){return V(`POST`,`/gpu-memory/apply`,{setting_gb:e,confirm:!0})}async function oe(){return V(`POST`,`/gpu-memory/revert`,{confirm:!0})}async function se(e){return V(`POST`,`/gpu-memory/pending`,{setting_gb:e})}async function ce(){return V(`DELETE`,`/gpu-memory/pending`)}async function le(){return V(`GET`,`/onboarding/start`)}async function ue(){return V(`POST`,`/setup/report`)}async function de(e){let n=await fetch(`${t()}/setup/report/${encodeURIComponent(e)}`,{headers:B});if(!n.ok)throw new L(`Couldn't read the report (HTTP ${n.status}).`,n.status,await n.text().catch(()=>``),null);return n.blob()}async function fe(){return V(`GET`,`/connectors`)}async function pe(e){return V(`GET`,`/connectors/${e}`)}async function me(e,t,n=[]){return V(`POST`,`/connectors/${e}/authorize`,{scopes:t,grant_agents:n},B)}async function he(e,t,n=[]){return V(`POST`,`/connectors/${e}/authorize-device`,{scopes:t,grant_agents:n},B)}async function ge(e,t){return V(`POST`,`/connectors/${e}/configure`,{config:t},B)}async function _e(e){await V(`DELETE`,`/connectors/${e}`,void 0,B)}async function ve(e){return V(`POST`,`/connectors/${e}/enable`,{},B)}async function ye(e){return V(`POST`,`/connectors/${e}/disable`,{},B)}async function be(){return V(`GET`,`/connectors/agent-mcps`)}async function _(e){return V(`GET`,`/connectors/${e}/grants`)}async function v(e,t,n){await V(`PUT`,`/connectors/${e}/grants/${encodeURIComponent(t)}`,{scopes:n},B)}async function y(e,t){await V(`DELETE`,`/connectors/${e}/grants/${encodeURIComponent(t)}`,void 0,B)}async function b(e){return V(`GET`,`/connectors/${e}/activations`)}async function x(e,t,n){return V(`PUT`,`/connectors/${e}/activations/${encodeURIComponent(t)}`,n?{scopes:n}:{},B)}async function S(e,t){await V(`DELETE`,`/connectors/${e}/activations/${encodeURIComponent(t)}`,void 0,B)}async function C(e){return V(`POST`,`/chat/cancel`,{session_id:e})}async function w(e,t){return V(`POST`,`/chat/followup`,{session_id:e,text:t})}async function T(e){return V(`GET`,`/chat/followup/${encodeURIComponent(e)}`)}async function E(e){return V(`GET`,`/chat/context/${encodeURIComponent(e)}`)}async function D(e){return V(`GET`,`/chat/performance/${encodeURIComponent(e)}`)}async function O(e,t,n){return V(`POST`,`/chat/retry-with`,{session_id:e,message_id:t,model:n})}async function k(e,t,n){return V(`POST`,`/chat/retry-with/choose`,{session_id:e,message_id:t,keep:n})}async function A(){return V(`GET`,`/chat/active`)}async function j(e,t,n={}){return V(`POST`,`/chat/confirm-tool`,{session_id:e,approved:t,always:n.always??!1,...n.confirmId?{confirm_id:n.confirmId}:{}})}async function M(e,t,n){return V(`POST`,`/chat/user-input`,{session_id:e,request_id:t,value:n})}async function N(e){return V(`GET`,`/chat/permissions/${encodeURIComponent(e)}`)}async function xe(){return V(`GET`,`/chat/permissions`)}async function Se(e){return V(`PUT`,`/chat/permissions`,{mode:e})}async function Ce(e,t){return V(`PUT`,`/chat/permissions/${encodeURIComponent(e)}`,{mode:t})}async function we(e,t){let n=t?`?key=${encodeURIComponent(t)}`:``;return V(`DELETE`,`/chat/permissions/${encodeURIComponent(e)}/grants${n}`)}var P=t();function F(e){try{let t=JSON.parse(e).detail;return Array.isArray(t)?t.map(e=>e?.msg??JSON.stringify(e)).join(`; `)||e:t&&typeof t==`object`&&typeof t.message==`string`?t.message:t&&typeof t!=`string`?JSON.stringify(t):t||e}catch{return e}}function I(e){try{let t=JSON.parse(e).detail?.status;return typeof t==`string`?t:null}catch{return null}}function Te(e){try{let t=JSON.parse(e).detail;return Array.isArray(t)?t.map(e=>Array.isArray(e?.loc)?e.loc[e.loc.length-1]:void 0).filter(e=>typeof e==`string`):[]}catch{return[]}}function Ee(e){try{let t=JSON.parse(e).detail;return t&&typeof t==`object`&&!Array.isArray(t)?t:null}catch{return null}}var L=class extends Error{httpStatus;detail;reason;fields;body;constructor(e,t,n,r,i=[],a=null){super(e),this.name=`ApiError`,this.httpStatus=t,this.detail=n,this.reason=r,this.fields=i,this.body=a}};function R(e){return e.trim().toLowerCase()===`internal server error`}function De(e){let t=e.trim();return t!==``&&!R(t)&&!/^[<{[]/.test(t)}function z(e,t){switch(e){case 403:return t||`Access denied.`;case 404:return t||`The requested item was not found.`;case 413:return t||`File too large to process.`;case 500:return De(t)?t:`Server error. Please try again.`;case 502:return`Service unavailable. Is the backend running?`;case 503:return t||`Service unavailable.`;default:return t||`Request failed (HTTP ${e})`}}var B={"x-gaia-ui":`1`,"x-gaia-client":`agent-ui`},Oe=/key|token|secret|password/i;function ke(e){return!e||typeof e!=`object`||Array.isArray(e)?e:Object.fromEntries(Object.entries(e).map(([e,t])=>[e,Oe.test(e)&&typeof t==`string`&&t?`***`:t]))}async function V(t,n,r,i,a){let o=`${P}${n}`,s=e.api.time();e.api.info(`${t} ${o}`,r===void 0?``:{body:ke(r)});let c=r===void 0?{}:{"Content-Type":`application/json`},l={method:t,headers:{...B,...i,...c},body:r===void 0?void 0:JSON.stringify(r),signal:a},u;try{u=await fetch(o,l)}catch(n){throw e.api.error(`${t} ${o} - network error`,n),n}if(!u.ok){let n=await u.text().catch(()=>``);e.api.error(`${t} ${o} - HTTP ${u.status}`,{errorText:n});let r=F(n);throw new L(z(u.status,r),u.status,r,I(n),Te(n),Ee(n))}let d=u.headers.get(`content-type`)||``;if(!d.includes(`application/json`)){let r=await u.text().catch(()=>``);if(u.status===204||r.trim()===``){e.api.timed(`${t} ${o} -> ${u.status} (no body)`,s);return}throw e.api.error(`${t} ${o} -> ${u.status} (non-JSON body)`,{contentType:d,preview:r.slice(0,200)}),Error(`${t} ${n}: expected JSON, got ${d||`no Content-Type`} (HTTP ${u.status}: ${r.slice(0,120)})`)}let f=await u.json();return e.api.timed(`${t} ${o} -> ${u.status}`,s,f),f}async function Ae(e){return V(`GET`,`/system/status`,void 0,void 0,e)}async function je(){return V(`POST`,`/system/warm-up`)}async function Me(){return V(`GET`,`/system/warm-up`)}async function Ne(){return V(`GET`,`/system/model-server`)}async function Pe(e){return V(`PUT`,`/system/model-server/backend`,{backend:e})}async function Fe(){return V(`GET`,`/settings`)}async function Ie(e){return V(`PUT`,`/settings`,e)}async function H(e,t,n=!1){return V(`POST`,`/system/load-model`,{model_name:e,ctx_size:t,force:n})}async function Le(e,t,n=e=>window.confirm(e)){try{return await H(e,t),!0}catch(r){if(!(r instanceof L)||r.httpStatus!==409)throw r;return n(`${r.detail}
2
+
3
+ Load ${e} anyway?`)?(await H(e,t,!0),!0):!1}}async function Re(e,t=!1){return V(`POST`,`/system/download-model`,{model_name:e,force:t})}async function ze(){return V(`GET`,`/agents`)}async function Be(e){return V(`POST`,`/agents/install`,{id:e})}async function Ve(e){return V(`GET`,`/agents/${encodeURIComponent(e)}/install-status`)}async function He(){return V(`GET`,`/lemonade/target`)}async function Ue(){return V(`GET`,`/lemonade/detect`)}async function We(e){try{return await V(`POST`,`/lemonade/target`,e)}catch(e){throw e instanceof L&&e.httpStatus===502&&e.detail?new L(e.detail,e.httpStatus,e.detail,e.reason,e.fields):e}}async function Ge(){return V(`GET`,`/providers`)}async function Ke(){return V(`GET`,`/providers/active`)}async function qe(e,t){return V(`POST`,`/providers/${encodeURIComponent(e)}/connect`,t)}var Je=2e3;async function Ye(e,t,n,r=()=>!1){for(;;)try{return await qe(e,t)}catch(e){if(!(e instanceof L)||e.httpStatus!==409||r())throw e;n(e.detail),await new Promise(e=>setTimeout(e,Je))}}async function Xe(e){return V(`DELETE`,`/providers/${encodeURIComponent(e)}/key`)}async function Ze(e){return V(`GET`,`/providers/${encodeURIComponent(e)}/models`)}async function Qe(e){return V(`GET`,`/providers/local/context?model=${encodeURIComponent(e)}`)}async function $e(e,t){return V(`PUT`,`/providers/local/context`,{model:e,ctx_size:t})}async function et(){return V(`GET`,`/providers/local/status`)}async function tt(e=!1){return V(`POST`,`/providers/local/restart`,{confirm:e})}async function nt(e){return V(`POST`,`/providers/select`,{model:e})}async function rt(e,t){return V(`POST`,`/providers/local/custom/check`,{url:e,quant:t||null})}async function it(e,t){return V(`POST`,`/providers/local/custom`,{url:e,quant:t||null})}async function at(e){return V(`DELETE`,`/providers/local/custom/${encodeURIComponent(e)}`)}async function ot(e){return V(`GET`,`/spending/prices/${encodeURIComponent(e)}`)}async function st(){return V(`GET`,`/spending`)}async function ct(e){return V(`PUT`,`/spending/limit`,{limit_usd:e})}async function lt(){return V(`POST`,`/spending/allow-month`)}async function ut(){return V(`GET`,`/skills`)}async function dt(){let e=new Map,t=0;for(let n=0;;n+=200){let r=await V(`GET`,`/sessions?limit=200&offset=${n}`);t=r.total;for(let t of r.sessions)e.has(t.id)||e.set(t.id,t);if(r.sessions.length<200||n+200>=t)break}return{sessions:[...e.values()],total:t}}async function ft(e={}){return V(`POST`,`/sessions`,e)}async function pt(e,t){return V(`PUT`,`/sessions/${e}`,t)}async function mt(e){await V(`DELETE`,`/sessions/${e}`),s(r(e))}async function ht(e){return V(`GET`,`/sessions/${e}`)}async function gt(e,t){return V(`PUT`,`/sessions/${e}/pin`,{pinned:t})}async function _t(e,t,n){return V(`GET`,`/sessions/search?${new URLSearchParams({q:e,include_automated:String(t)})}`,void 0,void 0,n)}async function vt(e){return V(`POST`,`/sessions/${e}/read`)}async function yt(e){return V(`PATCH`,`/sessions/${e}/private`)}async function bt(e){let{total:t}=await V(`GET`,`/sessions/${e}/messages?limit=1&offset=0`);return t}async function xt(e){let t=`/sessions/${e}/messages`,n=await V(`GET`,`${t}?limit=100&offset=0`),r=[...n.messages],i=n.total;for(;r.length<i;){let e=await V(`GET`,`${t}?limit=${Math.min(100,i-r.length)}&offset=${r.length}`);if(e.messages.length===0)throw Error(`Incomplete transcript received. Please reload the conversation.`);r.push(...e.messages)}return{messages:r,total:i}}async function St(e){return V(`GET`,`/sessions/${e}/export?format=markdown`)}async function Ct(e,t){return V(`DELETE`,`/sessions/${e}/messages/${t}`)}async function wt(e,t){return V(`DELETE`,`/sessions/${e}/messages/${t}/and-below`)}var Tt=new Set([`status`,`step`,`thinking`,`commentary`,`plan`,`tool_start`,`tool_end`,`tool_result`,`tool_args`,`tool_confirm`,`agent_error`,`permission_request`,`needs_confirmation`,`needs_input`,`policy_alert`,`followup_taken`,`followup_returned`,`followup_unavailable`,`context_usage`]);function Et(t,n,r,i,a,o,s){let c;c=typeof r==`function`?{onChunk:r,onAgentEvent:()=>{},onDone:i||(()=>{}),onError:a||(t=>{e.stream.error(`Unhandled stream error`,t)})}:r;let l=new AbortController,u=e.stream.time();e.stream.info(`Starting SSE stream for session=${t}`,{messageLength:n.length});let d=Y(l,c,U,kt);return fetch(`${P}/chat/send`,{method:`POST`,headers:{...B,"Content-Type":`application/json`},body:JSON.stringify({session_id:t,message:n,stream:!0,...o?{agent_type:o}:{},...s?{device:s}:{}}),signal:l.signal}).then(e=>(d.received(),d.connected(),X(e,c,u,{silentCloseIsError:!0}))).catch(t=>{d.received(),d.timedOut()?(e.stream.error(`No answer to /chat/send within ${U/1e3}s`),c.onError(new J(`send`,U))):t.name===`AbortError`?e.stream.warn(`Stream aborted by user`):(e.stream.error(`Stream fetch error`,t),c.onError(t))}),l}var Dt=3e4,Ot=6e5,U=9e4,kt=3e3,W=`Waiting for GAIA to start this answer…`,G=3e4,K=class extends Error{idleMs;constructor(e){super(`The connection to GAIA went silent for ${Math.round(e/1e3)} s.`),this.idleMs=e,this.name=`StreamStalledError`}},q=class extends Error{cause;unreachable;constructor(e,t=!1){super(`The connection to GAIA was cut: ${e instanceof Error?e.message:String(e)}`),this.cause=e,this.unreachable=t,this.name=`StreamDroppedError`}},J=class extends Error{endpoint;timeoutMs;constructor(e,t){super(`GAIA did not start answering within ${Math.round(t/1e3)} s.`),this.endpoint=e,this.timeoutMs=t,this.name=`StreamTimeoutError`}};function Y(e,t,n,r){let i=!1,a=r===void 0?void 0:setTimeout(()=>{t.onAgentEvent({type:`status`,status:`working`,phase:`waiting`,message:W})},r),o=setTimeout(()=>{i=!0,e.abort()},n),s=!1;return{received:()=>{clearTimeout(a),clearTimeout(o)},connected:()=>{s||(s=!0,t.onConnected?.())},timedOut:()=>i}}async function At(e,t){let n,r=new Promise((e,r)=>{n=setTimeout(()=>r(new K(t)),t)});try{return await Promise.race([e.read(),r])}finally{clearTimeout(n)}}async function X(t,n,r,{silentCloseIsError:i=!1}={}){if(e.stream.info(`SSE connection opened -> HTTP ${t.status}`),!t.ok){let r=await t.text().catch(()=>``);e.stream.error(`SSE connection failed: HTTP ${t.status}`,r);let i=F(r),a=i&&!R(i)?i:z(t.status,i);n.onError(new L(a,t.status,i,I(r)));return}let a=t.body?.getReader();if(!a){e.stream.error(`No response body reader available`),n.onError(Error(`No response body`));return}let o=new TextDecoder,s=``,c=!1,l=0,u=0,d=0,f=!1,p=!1,m=!1;try{for(;;){let t;try{t=await At(a,f?Ot:Dt)}catch(t){if(t?.name===`AbortError`)throw t;if(!(t instanceof K)){if(e.stream.error(`SSE connection cut mid-stream`,t),c||p)return;if(m)break;throw new q(t)}if(e.stream.error(`SSE stream silent for ${t.idleMs/1e3}s; dropping the connection`),await a.cancel().catch(t=>e.stream.warn(`Could not cancel the stalled stream`,t)),c||p)return;if(m)break;throw t}let{done:i,value:h}=t;if(i){e.stream.debug(`SSE reader done (stream ended)`);break}s+=o.decode(h,{stream:!0});let g=s.split(`
4
+ `);s=g.pop()||``;for(let t of g)if(t.startsWith(`data: `)){let i=t.slice(6).trim();if(!i)continue;try{let t=JSON.parse(i);if(f=t.type===`status`&&t.phase===`queued`,t.type===`chunk`)l++,u+=(t.content||``).length,(l<=3||l%50==0)&&e.stream.debug(`Chunk #${l} (+${(t.content||``).length} chars)`),n.onChunk(t);else if(t.type===`answer`)n.onChunk(t);else if(t.type===`done`)c=!0,e.stream.timed(`Stream complete: ${l} chunks, ${u} chars, ${d} agent events`,r),n.onDone(t);else if(t.type===`error`)e.stream.error(`Stream error event:`,t.content),p=!0,n.onError(Error(t.content||`Unknown error`));else if(t.type===`agent_created`)e.stream.info(`Agent created: ${t.agent_id}`),n.onAgentCreated?.(t);else if(t.type===`mcp_status`){let n=t.servers??[];e.stream.debug(`MCP status: ${n.length} server(s)`,n);for(let t of n)t.connected||e.stream.warn(`MCP server "${t.name}" is not connected: ${t.error??`no error reported`}`)}else Tt.has(t.type)?(d++,t.type===`agent_error`&&!t.recoverable&&(m=!0),e.stream.debug(`Agent event: ${t.type}`,t),n.onAgentEvent(t)):e.stream.warn(`Unknown SSE event type: ${t.type}`,t)}catch{e.stream.warn(`Malformed SSE data, skipping`,{raw:i.slice(0,100)})}}}}finally{a.releaseLock()}if(!c){if(e.stream.timed(`SSE connection closed without done event: ${l} chunks, ${d} agent events`,r),i&&l===0&&d===0&&!p){n.onError(Error(`GAIA closed the connection before any answer arrived. Send the message again; if it keeps happening, check the GAIA server log.`));return}n.onDone({type:`done`})}}function jt(t,n){let r=new AbortController,i=e.stream.time();e.stream.info(`Attaching to background run for session=${t}`);let a=Y(r,n,G);return fetch(`${P}/chat/attach?session_id=${encodeURIComponent(t)}`,{method:`GET`,signal:r.signal}).then(r=>{if(a.received(),a.connected(),r.status===404)e.stream.info(`Run for session=${t} finished before the attach`),n.onDone({type:`done`,content:``});else return X(r,n,i)}).catch(t=>{a.received(),a.timedOut()?(e.stream.error(`No answer to /chat/attach within ${G/1e3}s`),n.onError(new J(`attach`,G))):t.name===`AbortError`?e.stream.warn(`Run attach detached by client`):t instanceof TypeError?(e.stream.error(`Run attach could not connect`,t),n.onError(new q(t,!0))):(e.stream.error(`Run attach fetch error`,t),n.onError(t))}),r}async function Mt(){return V(`GET`,`/documents`)}async function Nt(e){return V(`POST`,`/documents/upload-path`,{filepath:e})}async function Pt(t){let n=`${P}/documents/upload`,r=e.api.time();e.api.info(`POST ${n}`,{fileName:t.name,size:t.size});let i=new FormData;i.append(`file`,t);let a;try{a=await fetch(n,{method:`POST`,headers:B,body:i})}catch(t){throw e.api.error(`POST ${n} - network error`,t),t}if(!a.ok){let t=await a.text().catch(()=>``);e.api.error(`POST ${n} - HTTP ${a.status}`,{errorText:t});let r=F(t);throw new L(z(a.status,r),a.status,r,I(t))}let o=await a.json();return e.api.timed(`POST ${n} -> ${a.status}`,r,o),o}async function Ft(e){return V(`DELETE`,`/documents/${e}`)}async function It(e){return V(`GET`,`/documents/${e}/status`)}function Lt(e,t){let n=new URL(`${P}/documents/${encodeURIComponent(e)}/file`,window.location.href);return t&&(n.hash=`page=${t}`),n.href}async function Rt(e){return V(`POST`,`/documents/${e}/cancel`)}async function zt(e){return V(`POST`,`/documents/${e}/reindex`)}async function Bt(e,t){return V(`POST`,`/sessions/${e}/documents`,{document_id:t})}async function Vt(e,t){return V(`DELETE`,`/sessions/${e}/documents/${t}`)}async function Ht(e){return V(`GET`,`/files/browse${e?`?path=${encodeURIComponent(e)}`:``}`)}async function Ut(e,t=!0){return V(`POST`,`/documents/index-folder`,{folder_path:e,recursive:t})}async function Wt(e,t=!0){return V(`POST`,`/files/open`,{path:e,reveal:t})}async function Gt(e){return V(`POST`,`/files/open`,{path:e,launch:!0})}async function Kt(e){return V(`POST`,`/files/status`,{paths:e})}async function qt(t){let n=`${P}/files/upload`,r=e.api.time();e.api.info(`POST ${n}`,{fileName:t.name,size:t.size});let i=new FormData;i.append(`file`,t);let a=await fetch(n,{method:`POST`,headers:B,body:i});if(!a.ok){let t=await a.text().catch(()=>``);e.api.error(`POST ${n} - HTTP ${a.status}`,{errorText:t});let r=F(t);throw new L(z(a.status,r),a.status,r,I(t))}let o=await a.json();return e.api.timed(`POST ${n} -> ${a.status}`,r,o),o}async function Jt(e,t,n){let r=new URLSearchParams({query:e});return t&&r.set(`file_types`,t),n&&r.set(`max_results`,String(n)),V(`GET`,`/files/search?${r}`)}async function Yt(e,t){let n=new URLSearchParams({path:e});return t&&n.set(`lines`,String(t)),V(`GET`,`/files/preview?${n}`)}async function Xt(){return V(`POST`,`/tunnel/start`)}async function Zt(){return V(`POST`,`/tunnel/stop`)}async function Qt(){return V(`GET`,`/tunnel/status`)}async function $t(){return V(`GET`,`/mcp/status`)}async function en(){return V(`GET`,`/schedules`)}function Z(){return Intl.DateTimeFormat().resolvedOptions().timeZone||void 0}async function tn(e,t,n){return V(`POST`,`/schedules`,{name:e,interval:t,prompt:n,timezone:Z()})}async function nn(e,t){return V(`PUT`,`/schedules/${encodeURIComponent(e)}`,{status:t})}async function rn(e){return V(`POST`,`/schedules/${encodeURIComponent(e)}/run`)}async function an(e){return V(`DELETE`,`/schedules/${encodeURIComponent(e)}`)}async function on(e,t=20){return V(`GET`,`/schedules/${encodeURIComponent(e)}/results?limit=${t}`)}async function sn(e){return V(`POST`,`/schedules/parse`,{input:e,timezone:Z()})}async function cn(e){return V(`GET`,`/sessions/${encodeURIComponent(e)}/changes`)}async function ln(e,t){return V(`GET`,`/sessions/${encodeURIComponent(e)}/changes/${encodeURIComponent(t)}/diff`)}async function Q(e,t,n=!1){return V(`POST`,`/sessions/${encodeURIComponent(e)}/changes/${encodeURIComponent(t)}/undo`,{force:n})}async function un(){return V(`GET`,`/settings/undo`)}async function dn(e,t){return V(`PUT`,`/settings/undo`,{retention_days:e,max_mb:t})}var $=e=>`/sessions/${encodeURIComponent(e)}`;async function fn(e){return V(`GET`,`${$(e)}/environment`)}async function pn(e,t){return V(`POST`,`${$(e)}/environment/folders`,{path:t})}async function mn(e,t){return V(`POST`,`${$(e)}/environment/folders/remove`,{path:t})}async function hn(e,t){return V(`PUT`,`${$(e)}/environment/internet`,{on:t})}async function gn(e){return V(`GET`,`${$(e)}/outputs`)}async function _n(e){return V(`GET`,`${$(e)}/capabilities`)}async function vn(e){return V(`GET`,`${$(e)}/changes/total`)}async function yn(e,t=!1){return V(`POST`,`${$(e)}/changes/undo`,{force:t})}async function bn(e){return V(`GET`,`${$(e)}/changes/git`)}async function xn(e,t,n){return V(`POST`,`${$(e)}/changes/git/commit`,{root:t,message:n,confirmed:!0})}async function Sn(e,t,n,r){return V(`POST`,`${$(e)}/changes/git/pr`,{root:t,title:n,body:r,confirmed:!0})}export{Me as $,xe as $t,_n as A,ie as An,We as At,xt as B,p as Bn,Ie as Bt,Ue as C,u as Cn,rn as Ct,Xe as D,ce as Dn,Et as Dt,St as E,ue as En,nt as Et,Kt as F,le as Fn,yt as Ft,vn as G,a as Gn,C as Gt,gn as H,i as Hn,Pt as Ht,He as I,se as In,yn as It,st as J,A as Jt,bn as K,o as Kn,k as Kt,et as L,h as Ln,Q as Lt,Qe as M,l as Mn,ct as Mt,It as N,ee as Nn,Xt as Nt,Ke as O,m as On,$e as Ot,fn as P,g as Pn,Zt as Pt,un as Q,N as Qt,$t as R,oe as Rn,nn as Rt,Vt as S,f as Sn,tt as St,Re as T,ne as Tn,_t as Tt,on as U,r as Un,Nt as Ut,Ne as V,d as Vn,dn as Vt,ht as W,s as Wn,qt as Wt,Qt as X,E as Xt,Ae as Y,D as Yt,ln as Z,T as Zt,Ft as _,b as _n,Yt as _t,pn as a,Ce as an,Ge as at,an as b,y as bn,mn as bt,jt as c,he as cn,ut as ct,rt as d,ye as dn,vt as dt,M as en,Ut as et,xn as f,_e as fn,Gt as ft,ft as g,be as gn,gt,tn as h,v as hn,sn as ht,it as i,Se as in,Ze as it,ot as j,re as jn,Pe as jt,Ve as k,de as kn,hn as kt,Ht as l,ge as ln,cn as lt,Sn as m,pe as mn,F as mt,W as n,we as nn,ze as nt,lt as o,x as on,en as ot,Ye as p,ve as pn,Wt as pt,Fe as q,j as qt,J as r,w as rn,Mt as rt,Bt as s,me as sn,dt as st,L as t,O as tn,Be as tt,Rt as u,S as un,Le as ut,Ct as v,_ as vn,zt as vt,Lt as w,te as wn,Jt as wt,mt as x,ae as xn,je as xt,wt as y,fe as yn,at as yt,bt as z,c as zn,pt as zt};