@amd-gaia/agent-ui 0.25.3 → 0.25.4-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/AdvancedSettings-B4MY5XPH.js +1 -0
- package/dist/assets/ConnectorsPane-B71QL-Kl.js +1 -0
- package/dist/assets/DocumentLibrary-CM6o8j2T.css +1 -0
- package/dist/assets/DocumentLibrary-c78Y6arz.js +4 -0
- package/dist/assets/FileBrowser-Cna3BsT7.css +1 -0
- package/dist/assets/FileBrowser-DwEPODjV.js +4 -0
- package/dist/assets/MemoryDashboard-BQhg3t2B.js +1 -0
- package/dist/assets/{MemoryDashboard-Mo721-BI.css → MemoryDashboard-Dt6zI60b.css} +1 -1
- package/dist/assets/MobileAccessModal-RI4HtcYe.js +2 -0
- package/dist/assets/ScheduleManager-tcyjbGY9.js +2 -0
- package/dist/assets/apiBase-DRtaTd8u.js +1 -0
- package/dist/assets/index-C9zLn8zo.css +1 -0
- package/dist/assets/index-CKOG_8jk.js +78 -0
- package/dist/assets/{zap-BogJn9oN.js → zap-BdhDcjhB.js} +1 -1
- package/dist/index.html +3 -3
- package/package.json +4 -3
- package/services/agent-seeder.cjs +22 -13
- package/services/backend-installer.cjs +2 -2
- package/dist/assets/AdvancedSettings-DERzP9Jc.js +0 -1
- package/dist/assets/ConnectorsPane-s0fFxmus.js +0 -1
- package/dist/assets/DocumentLibrary-CIKp6qld.css +0 -1
- package/dist/assets/DocumentLibrary-DqapN_Tr.js +0 -4
- package/dist/assets/FileBrowser-Dil1lZJ4.css +0 -1
- package/dist/assets/FileBrowser-vAJV41RT.js +0 -4
- package/dist/assets/MemoryDashboard-CP5wVWkY.js +0 -1
- package/dist/assets/MobileAccessModal-B31mPs50.js +0 -2
- package/dist/assets/ScheduleManager-b0gTAf2R.js +0 -2
- package/dist/assets/apiBase-CS6zLsJY.js +0 -1
- package/dist/assets/index-C-EM_5yl.css +0 -1
- package/dist/assets/index-Cae5Fje-.js +0 -78
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./browser-KnDALPx_.js","./rolldown-runtime-XKyaHtl9.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e}from"./rolldown-runtime-XKyaHtl9.js";import{S as t,T as n,i as r,n as i,r as a}from"./apiBase-DRtaTd8u.js";import{Ft as o,Lt as s,W as c,Wt as l,bn as u,dn as d,i as f,ot as p}from"./index-CKOG_8jk.js";var m=e(n(),1),h=null;function g({isOpen:n,onClose:g,onStop:_,error:v}){let[y,b]=(0,m.useState)(null),[x,S]=(0,m.useState)(!1),[C,w]=(0,m.useState)(null),T=(0,m.useRef)(null);o(n,g);let E=(0,m.useRef)(null);c(E,n);let D=(0,m.useCallback)(async()=>{try{let e=await p();return b(e),e}catch(e){return t.system.error(`Failed to fetch tunnel status`,e),null}},[]);(0,m.useEffect)(()=>{if(!n||v)return;D();let e=setInterval(async()=>{let t=await D();t?.active&&t?.url&&clearInterval(e)},2e3);return()=>clearInterval(e)},[n,v,D]),(0,m.useEffect)(()=>{if(!y?.active||!y.url||!y.token||!T.current)return;let n=`${y.url}/?token=${y.token}`;t.system.info(`Generating QR code for: ${n}`),(async()=>{if(w(null),!h)try{let t=await f(()=>import(`./browser-KnDALPx_.js`).then(t=>e(t.default,1)),__vite__mapDeps([0,1]),import.meta.url);h=t.default||t}catch{t.system.error(`QR code library not available - install with: npm install qrcode`),w(`QR code unavailable on this build. Use the link below instead.`);return}let r=getComputedStyle(document.documentElement),i=r.getPropertyValue(`--text-primary`).trim(),a=r.getPropertyValue(`--bg-primary`).trim();if(!i||!a)t.system.error(`QR code skipped: --text-primary/--bg-primary did not resolve. styles/index.css must be loaded before this modal renders.`),w(`QR code unavailable — the theme did not load. Use the link below instead.`);else try{await h.toCanvas(T.current,n,{width:200,margin:2,color:{dark:i,light:a}})}catch(e){t.system.error(`QR code generation failed`,e),w(`QR code could not be drawn. Use the link below instead.`)}})()},[y?.active,y?.url,y?.token]);let O=(0,m.useRef)(null),k=(0,m.useCallback)(()=>{if(!y?.url||!y?.token)return;let e=`${y.url}/?token=${y.token}`;navigator.clipboard.writeText(e).then(()=>{S(!0),O.current&&clearTimeout(O.current),O.current=setTimeout(()=>S(!1),2e3)})},[y]);if((0,m.useEffect)(()=>()=>{O.current&&clearTimeout(O.current)},[]),!n)return null;let A=y?.active&&y?.url&&y?.token?`${y.url}/?token=${y.token}`:``;return a(`div`,{ref:E,className:`modal-overlay`,onClick:g,role:`dialog`,"aria-modal":`true`,"aria-label":`Mobile access`,children:r(`div`,{className:`modal-panel mobile-modal`,onClick:e=>e.stopPropagation(),children:[r(`div`,{className:`modal-header`,children:[r(`h3`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[a(l,{size:18}),`Mobile access`]}),a(`button`,{className:`btn-icon`,onClick:g,"aria-label":`Close`,children:a(s,{size:18})})]}),r(`div`,{className:`modal-body mobile-modal-body`,children:[r(`div`,{className:`tunnel-status`,children:[a(`span`,{className:`status-dot ${y?.active?`active`:v?`error`:`starting`}`}),a(`span`,{children:y?.active?`Tunnel active`:v?`Couldn't start mobile access`:`Starting tunnel...`}),!y?.active&&!v&&a(`span`,{className:`tunnel-spinner`})]}),v&&a(`div`,{className:`tunnel-error`,children:v}),!v&&a(`div`,{className:`qr-code-area`,children:y?.active?r(i.Fragment,{children:[a(`canvas`,{ref:T,hidden:!!C}),C&&a(`div`,{className:`qr-placeholder error`,children:C})]}):r(`div`,{className:`qr-placeholder`,children:[a(`div`,{className:`placeholder-spinner`}),a(`span`,{children:`Connecting...`})]})}),y?.active&&A&&r(`div`,{className:`tunnel-url-area`,children:[a(`label`,{children:`Mobile URL`}),r(`div`,{className:`tunnel-url-row`,children:[a(`input`,{type:`text`,readOnly:!0,value:A}),r(`button`,{className:`copy-url-btn ${x?`copied`:``}`,onClick:k,title:`Copy URL`,children:[a(x?u:d,{size:13}),x?`Copied`:`Copy`]})]})]}),y?.active&&y?.publicIp&&y?.url&&!y.url.includes(`ngrok-free.app`)&&r(`div`,{className:`tunnel-password-hint`,children:[a(`label`,{children:`Tunnel password`}),a(`div`,{className:`tunnel-password-value`,children:y.publicIp}),a(`span`,{className:`tunnel-password-note`,children:`Enter this when the tunnel page asks for a password`})]}),!v&&a(`div`,{className:`mobile-instructions`,children:r(`ol`,{children:[a(`li`,{children:C?`Open the mobile URL above on your phone`:`Scan the QR code with your phone's camera`}),y?.url&&!y.url.includes(`ngrok-free.app`)&&a(`li`,{children:`Enter the tunnel password shown above when prompted`}),a(`li`,{children:`Chat with GAIA from your mobile device`}),a(`li`,{children:`Your data stays secure via encrypted tunnel`})]})}),r(`div`,{className:`mobile-access-actions`,children:[y?.active&&_&&a(`button`,{className:`btn-danger`,onClick:_,title:`Close the tunnel and revoke the mobile URL`,children:`Stop tunnel`}),a(`button`,{className:`btn-secondary`,onClick:g,children:`Close`})]})]})]})})}export{g as MobileAccessModal};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-XKyaHtl9.js";import{S as t,T as n,i as r,n as i,r as a,w as o}from"./apiBase-DRtaTd8u.js";import{n as s,t as c}from"./zap-BdhDcjhB.js";import{Ft as l,Ht as u,It as d,Lt as f,W as p,Yt as m,dt as h,fn as g,n as _,qt as v}from"./index-CKOG_8jk.js";var y={name:`play`,size:24,node:[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]};y.node;var b=o(y),x=e(n(),1),S=8e3;function C(e,t){if(!e)return`never`;let n=new Date(e),r=(t||new Date).getTime()-n.getTime(),i=Math.floor(r/1e3);if(i<0){let e=Math.abs(i);if(e<60)return`in ${e}s`;let t=Math.floor(e/60);if(t<60)return`in ${t}m`;let n=Math.floor(t/60);return n<24?`in ${n}h`:`in ${Math.floor(n/24)}d`}if(i<60)return`just now`;let a=Math.floor(i/60);if(a<60)return`${a}m ago`;let o=Math.floor(a/60);return o<24?`${o}h ago`:n.toLocaleDateString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function w(e,t){if(!e)return`never`;let n=C(e,t),r=new Date(e);return r.getTime()<=(t||new Date).getTime()?n:`${r.toLocaleString(void 0,{weekday:`short`,hour:`numeric`,minute:`2-digit`})} (${n})`}function T(e){if(!e)return!1;let t=new Date(e).getTime()-Date.now();return t>0&&t<6e4}function E(e){let[t,n]=e.split(`:`).map(Number),r=t>=12?`PM`:`AM`;return`${t===0?12:t>12?t-12:t}:${n.toString().padStart(2,`0`)} ${r}`}function D(e){let t=e>=12?`PM`:`AM`;return`${e===0?12:e>12?e-12:e} ${t}`}function O(e){let t=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`];return e.length===5&&!e.includes(5)&&!e.includes(6)?`Weekdays`:e.length===2&&e.includes(5)&&e.includes(6)?`Weekends`:e.length===7?`Every day`:e.map(e=>t[e]).join(`, `)}function k({schedule:e}){let{selectedSchedule:n,selectSchedule:o,updateScheduleStatus:l,runScheduleNow:f,deleteSchedule:p,results:h,resultsLoading:v,loadSchedules:y,loadResults:E}=_(),{setCurrentSession:D,setShowSchedules:O}=d(),k=n===e.name,[A,j]=(0,x.useState)(!1),M=(0,x.useRef)(null),N=(0,x.useCallback)(()=>{M.current&&=(clearTimeout(M.current),null)},[]);(0,x.useEffect)(()=>N,[N]);let[P,F]=(0,x.useState)(()=>new Date),I=(0,x.useRef)(null);(0,x.useEffect)(()=>{let t=e.status===`active`&&T(e.next_run_at);return t&&!I.current?I.current=setInterval(()=>{F(new Date),e.next_run_at&&new Date(e.next_run_at).getTime()<=Date.now()&&y()},1e3):!t&&I.current&&(clearInterval(I.current),I.current=null),()=>{I.current&&=(clearInterval(I.current),null)}},[e.status,e.next_run_at,y]);let L=(0,x.useRef)(e.last_run_at);(0,x.useEffect)(()=>{k&&e.last_run_at!==L.current&&(L.current=e.last_run_at,E(e.name))},[k,e.last_run_at,e.name,E]);let R=e.last_run_at&&Date.now()-new Date(e.last_run_at).getTime()<5e3,z=(0,x.useCallback)(n=>{n.stopPropagation();let r=e.status===`active`?`paused`:`active`;t.ui.info(`Schedule "${e.name}": ${e.status} -> ${r}`),l(e.name,r)},[e.name,e.status,l]),B=(0,x.useCallback)(n=>{n.stopPropagation(),t.ui.info(`Schedule "${e.name}": run now`),f(e.name)},[e.name,f]),V=(0,x.useCallback)(n=>{n.stopPropagation(),N(),A?(t.ui.info(`Deleting schedule "${e.name}"`),p(e.name)):(j(!0),M.current=setTimeout(()=>{M.current=null,j(!1)},S))},[e.name,A,p,N]),H=(0,x.useCallback)(n=>{n.stopPropagation(),e.session_id&&(t.ui.info(`Opening chat session for schedule "${e.name}"`),D(e.session_id),O(!1))},[e.session_id,e.name,D,O]);return r(`div`,{className:`schedule-card ${k?`selected`:``} ${R?`just-ran`:``}`,onClick:()=>o(k?null:e.name),children:[r(`div`,{className:`schedule-card-header`,children:[a(`span`,{className:`schedule-card-name`,children:e.name}),a(`span`,{className:`schedule-card-status ${e.status}`,children:e.status})]}),a(`div`,{className:`schedule-card-prompt`,children:e.prompt}),r(`div`,{className:`schedule-card-meta`,children:[r(`span`,{title:e.description,children:[a(g,{size:11}),` `,e.description]}),r(`span`,{children:[`Runs: `,e.run_count]}),e.error_count>0&&r(`span`,{children:[`Errors: `,e.error_count]}),r(`span`,{children:[`Last: `,C(e.last_run_at)]}),r(`span`,{children:[`Next: `,w(e.next_run_at,P)]})]}),e.last_error&&r(`div`,{className:`schedule-card-error`,children:[`Last run failed: `,e.last_error]}),r(`div`,{className:`schedule-card-actions`,children:[e.session_id&&r(`button`,{className:`btn-sm chat`,onClick:H,title:`Open chat session`,children:[a(s,{size:11}),` Open Chat`]}),r(`button`,{className:`btn-sm`,onClick:B,disabled:e.running,title:`Run it once now, to try it. Its next scheduled run stays as it is.`,children:[a(c,{size:11}),` `,e.running?`Running…`:`Run now`]}),a(`button`,{className:`btn-sm`,onClick:z,title:e.status===`active`?`Pause`:`Resume`,children:e.status===`active`?r(i.Fragment,{children:[a(m,{size:11}),` Pause`]}):r(i.Fragment,{children:[a(b,{size:11}),` Resume`]})}),r(`button`,{className:`btn-sm danger`,onClick:V,title:`Delete`,children:[a(u,{size:11}),` `,A?`Confirm?`:`Delete`]})]}),k&&r(`div`,{className:`schedule-results`,children:[a(`h4`,{children:`Execution history`}),v?a(`p`,{className:`schedule-results-empty`,children:`Loading...`}):h.length===0?a(`p`,{className:`schedule-results-empty`,children:`No executions yet`}):a(`div`,{className:`schedule-results-list`,children:h.map(e=>r(`div`,{className:`schedule-result-item`,children:[a(`div`,{className:`schedule-result-time`,children:C(e.executed_at)}),e.error?a(`div`,{className:`schedule-result-content schedule-result-error`,children:e.error}):a(`div`,{className:`schedule-result-content`,children:e.result||`(no output)`})]},e.id))})]})]})}function A(){let{setShowSchedules:e}=d(),{schedules:n,loading:o,error:s,actionError:c,loadSchedules:u,createSchedule:m,dismissActionError:y}=_(),b=(0,x.useCallback)(()=>e(!1),[e]);l(!0,b);let S=(0,x.useRef)(null);p(S,!0);let[C,w]=(0,x.useState)(!1),[T,A]=(0,x.useState)(``),[j,M]=(0,x.useState)(``),[N,P]=(0,x.useState)(``),[F,I]=(0,x.useState)(null),[L,R]=(0,x.useState)(!1),[z,B]=(0,x.useState)(!1),[V,H]=(0,x.useState)(null),U=(0,x.useId)(),W=`${U}-when`,G=`${U}-when-error`,K=`${U}-name`,q=`${U}-prompt`,J=!L&&F!==null&&!F.valid,Y=(0,x.useRef)(null);(0,x.useEffect)(()=>{if(!T.trim())I(null);else return Y.current&&clearTimeout(Y.current),Y.current=window.setTimeout(async()=>{R(!0);try{let e=await h(T);I(e)}catch{I(null)}finally{R(!1)}},400),()=>{Y.current&&clearTimeout(Y.current)}},[T]);let X=(0,x.useRef)(null);(0,x.useEffect)(()=>(t.ui.info(`Schedule Manager opened`),u(),X.current=window.setInterval(()=>u(),5e3),()=>{X.current&&clearInterval(X.current),y()}),[u,y]);let Z=T.trim()&&j.trim()&&N.trim()&&(F===null||F.valid),Q=(0,x.useCallback)(async()=>{if(Z){B(!0),H(null);try{await m(j.trim(),T.trim(),N.trim()),A(``),M(``),P(``),I(null),w(!1),t.ui.info(`Schedule "${j}" created`)}catch(e){let t=e instanceof Error?e.message:`Failed to create schedule`;H(t)}finally{B(!1)}}},[Z,j,T,N,m]);return a(`div`,{ref:S,className:`modal-overlay`,onClick:()=>e(!1),role:`dialog`,"aria-modal":`true`,"aria-label":`Scheduled tasks`,children:r(`div`,{className:`modal-panel schedule-modal`,onClick:e=>e.stopPropagation(),children:[r(`div`,{className:`modal-header`,children:[a(`h3`,{children:`Scheduled tasks`}),a(`button`,{className:`btn-icon`,onClick:()=>e(!1),"aria-label":`Close schedule manager`,children:a(f,{size:18})})]}),r(`div`,{className:`modal-body`,children:[a(`section`,{className:`schedule-section`,children:C?r(`div`,{className:`schedule-create-form`,children:[r(`div`,{className:`schedule-field`,children:[a(`label`,{className:`schedule-field-label`,htmlFor:W,children:`When to run`}),a(`textarea`,{id:W,className:`schedule-nl-input`,placeholder:`Describe your schedule in natural language...
|
|
2
|
+
Examples: "every 30m", "daily at 9pm", "every hour from 8am to 6pm on weekdays"`,value:T,onChange:e=>A(e.target.value),"aria-invalid":J,"aria-describedby":J?G:void 0,autoFocus:!0,rows:2})]}),(F||L)&&a(`div`,{className:`schedule-parsed-preview ${F?.valid?`valid`:`invalid`}`,"aria-live":`polite`,children:L?a(`span`,{className:`schedule-parsed-loading`,children:`Parsing...`}):F?r(i.Fragment,{children:[F.valid?a(`div`,{className:`schedule-parsed-description`,children:F.description}):r(`div`,{id:G,children:[a(`div`,{className:`schedule-parsed-description`,children:`GAIA didn't understand that schedule.`}),a(`div`,{className:`schedule-parsed-hint`,children:F.description})]}),F.valid&&F.next_run_at&&r(`div`,{className:`schedule-parsed-next`,children:[`Next run: `,new Date(F.next_run_at).toLocaleString()]}),F.valid&&r(`div`,{className:`schedule-parsed-details`,children:[F.time_of_day&&r(`span`,{className:`schedule-parsed-tag`,children:[a(g,{size:10}),` `,E(F.time_of_day)]}),F.start_hour!=null&&F.end_hour!=null&&r(`span`,{className:`schedule-parsed-tag`,children:[a(g,{size:10}),` `,D(F.start_hour),` - `,D(F.end_hour)]}),F.days_of_week&&a(`span`,{className:`schedule-parsed-tag`,children:O(F.days_of_week)})]})]}):null}),r(`div`,{className:`schedule-field`,children:[a(`label`,{className:`schedule-field-label`,htmlFor:K,children:`Name`}),a(`div`,{className:`schedule-form-row`,children:a(`input`,{id:K,type:`text`,placeholder:`Schedule name (e.g. daily-summary)`,value:j,onChange:e=>M(e.target.value),className:!j.trim()&&T.trim()?`schedule-field-missing`:``})})]}),r(`div`,{className:`schedule-field`,children:[a(`label`,{className:`schedule-field-label`,htmlFor:q,children:`Prompt`}),a(`textarea`,{id:q,className:`schedule-prompt-input ${!N.trim()&&T.trim()?`schedule-field-missing`:``}`,placeholder:`Prompt to execute on each run...`,value:N,onChange:e=>P(e.target.value)})]}),V&&a(`p`,{className:`schedule-form-error`,children:V}),r(`div`,{className:`schedule-create-actions`,children:[a(`button`,{className:`btn-secondary`,onClick:()=>{w(!1),H(null),I(null),A(``),M(``),P(``)},children:`Cancel`}),a(`button`,{className:`btn-primary`,onClick:Q,disabled:!Z||z,children:z?`Creating...`:`Create Schedule`})]})]}):r(`button`,{className:`btn-primary`,onClick:()=>w(!0),children:[a(v,{size:14}),` New schedule`]})}),r(`section`,{className:`schedule-section`,children:[a(`h4`,{children:`Active schedules`}),c&&r(`div`,{className:`schedule-action-error`,role:`alert`,children:[a(`span`,{children:c}),a(`button`,{className:`btn-icon`,onClick:y,"aria-label":`Dismiss error`,children:a(f,{size:14})})]}),o?a(`p`,{className:`schedule-empty`,children:`Loading schedules...`}):s?a(`p`,{className:`schedule-empty`,children:s}):n.length===0?a(`p`,{className:`schedule-empty`,children:`No scheduled tasks yet. Create one to get started.`}):a(`div`,{className:`schedule-list`,children:n.map(e=>a(k,{schedule:e},e.id))})]})]})]})})}export{A as ScheduleManager};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e,t}from"./rolldown-runtime-XKyaHtl9.js";var n=t((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.for(`react.view_transition`),m=Symbol.iterator;function h(e){return typeof e!=`object`||!e?null:(e=m&&e[m]||e[`@@iterator`],typeof e==`function`?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function b(){}b.prototype=y.prototype;function x(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}var S=x.prototype=new b;S.constructor=x,_(S,y.prototype),S.isPureReactComponent=!0;var C=Array.isArray;function w(){}var T={H:null,A:null,T:null,S:null},E=Object.prototype.hasOwnProperty;function D(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function O(e,t){return D(e.type,t,e.props)}function k(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function A(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var j=/\/+/g;function M(e,t){return typeof e==`object`&&e&&e.key!=null?A(``+e.key):t.toString(36)}function N(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(w,w):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function P(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,P(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+M(e,0):a,C(o)?(i=``,c!=null&&(i=c.replace(j,`$&/`)+`/`),P(o,r,i,``,function(e){return e})):o!=null&&(k(o)&&(o=O(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(j,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(C(e))for(var u=0;u<e.length;u++)a=e[u],s=l+M(a,u),c+=P(a,r,i,s,o);else if(u=h(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+M(a,u++),c+=P(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return P(N(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function F(e,t,n){if(e==null)return e;var r=[],i=0;return P(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function I(e){if(e._status===-1){var t=e._result,n=t();n.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t,n.status===void 0&&(n.status=`fulfilled`,n.value=t))},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t,n.status===void 0&&(n.status=`rejected`,n.reason=t))}),e._status===-1&&(e._status=0,e._result=n)}if(e._status===1)return e._result.default;throw e._result}var L=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)};function R(e){var t=T.T,n={};n.types=t===null?null:t.types,T.T=n;try{var r=e(),i=T.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(w,L)}catch(e){L(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),T.T=t}}function z(e){var t=T.T;if(t!==null){var n=t.types;n===null?t.types=[e]:n.indexOf(e)===-1&&n.push(e)}else R(z.bind(null,e))}var B={map:F,forEach:function(e,t,n){F(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return F(e,function(){t++}),t},toArray:function(e){return F(e,function(e){return e})||[]},only:function(e){if(!k(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=B,e.Component=y,e.Fragment=r,e.Profiler=a,e.PureComponent=x,e.StrictMode=i,e.Suspense=l,e.ViewTransition=p,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=T,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return T.H.useMemoCache(e)}},e.addTransitionType=z,e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=_({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!E.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return D(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)E.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return D(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=k,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:I}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=R,e.unstable_useCacheRefresh=function(){return T.H.useCacheRefresh()},e.use=function(e){return T.H.use(e)},e.useActionState=function(e,t,n){return T.H.useActionState(e,t,n)},e.useCallback=function(e,t){return T.H.useCallback(e,t)},e.useContext=function(e){return T.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return T.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return T.H.useEffect(e,t)},e.useEffectEvent=function(e){return T.H.useEffectEvent(e)},e.useId=function(){return T.H.useId()},e.useImperativeHandle=function(e,t,n){return T.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return T.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return T.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return T.H.useMemo(e,t)},e.useOptimistic=function(e,t){return T.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return T.H.useReducer(e,t,n)},e.useRef=function(e){return T.H.useRef(e)},e.useState=function(e){return T.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return T.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return T.H.useTransition()},e.version=`19.3.1`})),r=t(((e,t)=>{t.exports=n()})),i=e(r(),1),a=e=>e?.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();function o(e,t,n=[]){if(t==null)throw Error(`[lucide]: iconNode is required when icon name is used`);return{name:a(e),size:24,node:t,...n.length>0?{aliases:n}:{}}}var s=e=>{let t=``,n=!1;for(let r of e)r===`-`||r===`_`||r<=` `?n=t.length>0:(t.length===0?t+=r.toLowerCase():t+=n?r.toUpperCase():r,n=!1);return t},c=e=>{let t=s(e);return t.charAt(0).toUpperCase()+t.slice(1)},l=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),u={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`};function d(e){return e!=null}function f(e,t={}){let n=t.attributeNames??{},r=e=>n[e]??e,i=e.size??e.width??u.width,a=e.size??e.height??u.height,o=e.aliases?.filter(e=>typeof e==`string`&&e.trim()!==``).map(e=>`lucide-${e}`)??[],s=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(` `).filter(Boolean)??[],f=t.includeDefaultClasses===!1?l(...c):l(`lucide`,...s,...c),p=t.absoluteStrokeWidth?Number(t.strokeWidth??u[`stroke-width`])*Number(e.size??e.width??u.width)/Number(t.size??t.width??u.width):t.strokeWidth??u[`stroke-width`];return[`svg`,{...Object.entries(u).reduce((e,[t,n])=>(e[r(t)]=n,e),{}),...`color`in t&&t.color&&{[r(`stroke`)]:t.color},...`size`in t&&d(t.size)&&{[r(`width`)]:t.size,[r(`height`)]:t.size},...`width`in t&&d(t.width)&&{[r(`width`)]:t.width},...`height`in t&&d(t.height)&&{[r(`height`)]:t.height},[r(`stroke-width`)]:p,...f&&{[r(`class`)]:f},[r(`viewBox`)]:`0 0 ${i} ${a}`,...t.hasA11yProp===!1?{[r(`aria-hidden`)]:`true`}:{},...`attributes`in t&&t.attributes},e.node.map(e=>{let[n,i,a]=e,o=t.nonScalingStroke?{[r(`vector-effect`)]:`non-scaling-stroke`,...i}:i;return a?[n,o,a]:[n,o]})]}function p(e,t={}){return f(e,{...t,attributeNames:{...t.attributeNames,class:`className`,"stroke-width":`strokeWidth`,"stroke-linecap":`strokeLinecap`,"stroke-linejoin":`strokeLinejoin`,"vector-effect":`vectorEffect`}})}var m=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},h=(0,i.createContext)({}),g=()=>(0,i.useContext)(h),_=(0,i.forwardRef)(({color:e,size:t,width:n,height:r,strokeWidth:a,absoluteStrokeWidth:o,nonScalingStroke:s,className:c=``,children:u,iconNode:d=[],icon:f={node:d,aliases:[],size:24},...h},_)=>{let{size:v=24,strokeWidth:y=2,absoluteStrokeWidth:b=!1,nonScalingStroke:x=!1,color:S=`currentColor`,className:C=``}=g()??{},w=!!u||m(h),[T,E,D=[]]=p(f,{color:e??S,width:n??t??v,height:r??t??v,strokeWidth:a??y,absoluteStrokeWidth:o??b,nonScalingStroke:s??x,className:l(C,c),hasA11yProp:w,attributes:h});return(0,i.createElement)(T,{ref:_,...E},[...D.map(([e,t])=>(0,i.createElement)(e,t)),...Array.isArray(u)?u:[u]])});function v(e,t=[],n=[]){let r=typeof e==`string`?o(e,t,n):e,a=(0,i.forwardRef)(({className:e,...t},n)=>(0,i.createElement)(_,{ref:n,icon:r,className:e,...t}));return r.name&&(a.displayName=c(r.name)),a}var y={api:`#4fc3f7`,store:`#ce93d8`,chat:`#81c784`,stream:`#ffb74d`,ui:`#90a4ae`,doc:`#a1887f`,system:`#e57373`,nav:`#fff176`},b={api:`fetch`,store:`state`,chat:`chat`,stream:`stream`,ui:`ui`,doc:`docs`,system:`sys`,nav:`nav`},x=(()=>{try{if(localStorage.getItem(`gaia-debug`)===`true`)return!0;if(typeof location<`u`){let e=new URLSearchParams(location.search);if(e.has(`debug`)||e.has(`verbose`))return!0}}catch{}return!1})();function S(){let e=new Date;return e.toLocaleTimeString(`en-US`,{hour12:!1})+`.`+String(e.getMilliseconds()).padStart(3,`0`)}function C(e){let t=y[e]||`#ccc`,n=`%c[${b[e]||e}]`,r=`color: ${t}; font-weight: bold;`,i=`color: #888; font-weight: normal;`;return{info:(e,...t)=>{if(!x)return;let a=S();t.length>0?console.log(`${n} %c${a} %c${e}`,r,i,`color: inherit;`,...t):console.log(`${n} %c${a} %c${e}`,r,i,`color: inherit;`)},warn:(e,...t)=>{let a=S();console.warn(`${n} %c${a} %c${e}`,r,i,`color: inherit;`,...t)},error:(e,...t)=>{let a=S();console.error(`${n} %c${a} %c${e}`,r,i,`color: inherit;`,...t)},debug:(e,...t)=>{if(!x)return;let a=S();console.debug(`${n} %c${a} %c${e}`,r,i,`color: #999;`,...t)},timed:(e,t,...a)=>{if(!x)return;let o=Math.round(performance.now()-t),s=S(),c=o>2e3?`color: #e57373;`:o>500?`color: #ffb74d;`:`color: #81c784;`;a.length>0?console.log(`${n} %c${s} %c${e} %c(${o}ms)`,r,i,`color: inherit;`,c,...a):console.log(`${n} %c${s} %c${e} %c(${o}ms)`,r,i,`color: inherit;`,c)},time:()=>performance.now()}}var w={api:C(`api`),store:C(`store`),chat:C(`chat`),stream:C(`stream`),ui:C(`ui`),doc:C(`doc`),system:C(`system`),nav:C(`nav`)};function T(e){console.log(`%c GAIA %c v`+e+` %c Local AI Desktop`,`background: #7A5A22; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px 0 0 4px;`,`background: #333; color: #fff; padding: 4px 8px;`,`background: #1a1a1a; color: #888; padding: 4px 8px; border-radius: 0 4px 4px 0;`),console.log(x?`%cVerbose logging enabled. Categories: [fetch] [state] [chat] [stream] [ui] [docs] [sys] [nav]`:`%cVerbose logging: add ?debug to URL or run localStorage.setItem("gaia-debug","true")`,`color: #666; font-style: italic;`)}var E={meta:{code:`ar`,nativeName:`العربية`,englishName:`Arabic`,dir:`rtl`,showEnglishInBrackets:!0},messages:{"sidebar.label":`المحادثات`,"sidebar.expand":`توسيع الشريط الجانبي`,"sidebar.collapse":`طي الشريط الجانبي`,"sidebar.search":`البحث في المحادثات`,"sidebar.newChat":`محادثة جديدة`,"sidebar.memory":`الذاكرة`,"sidebar.schedules":`المهام المجدولة`,"sidebar.documents":`المستندات`,"sidebar.recent":`المحادثات الأخيرة`,"sidebar.noMatch":`لا توجد محادثات مطابقة.`,"sidebar.searching":`جارٍ البحث داخل المحادثات…`,"sidebar.searchCapped":`نعرض أحدث {n} محادثة تذكر هذا. اكتب المزيد لتضييق النتائج.`,"sidebar.matchCount.one":`المحادثات المطابقة: {n}`,"sidebar.matchCount.other":`المحادثات المطابقة: {n}`,"sidebar.empty":`لا توجد محادثات بعد.`,"sidebar.group.needsYou":`بانتظارك`,"sidebar.group.pinned":`المثبّتة`,"sidebar.group.today":`اليوم`,"sidebar.group.yesterday":`أمس`,"sidebar.group.prev7":`آخر 7 أيام`,"sidebar.group.prev30":`آخر 30 يومًا`,"sidebar.group.older":`أقدم`,"sidebar.hideBackground":`إخفاء عمليات الخلفية`,"sidebar.showBackground.one":`إظهار عمليات الخلفية: {n}`,"sidebar.showBackground.other":`إظهار عمليات الخلفية: {n}`,"sidebar.notifications":`الإشعارات`,"sidebar.notificationsUnread":`الإشعارات، غير المقروءة: {n}`,"sidebar.mobileAccess":`الوصول من الهاتف`,"sidebar.mobileAccessOn":`الوصول من الهاتف مفعّل`,"sidebar.settings":`الإعدادات`,"row.status.running":`قيد التشغيل`,"row.status.queued":`بانتظار معالج الرسومات`,"row.status.waiting":`بانتظارك`,"row.status.done":`اكتملت`,"row.status.failed":`فشلت`,"row.unread":`غير مقروءة`,"row.private":`محادثة خاصة`,"row.rename":`إعادة تسمية`,"row.renameAria":`إعادة تسمية {title}`,"row.saveName":`حفظ الاسم`,"row.cancelRename":`إلغاء إعادة التسمية`,"row.moreActions":`مزيد من الإجراءات لـ {title}`,"row.actions":`إجراءات المحادثة`,"row.pin":`تثبيت`,"row.unpin":`إلغاء التثبيت`,"row.pinToTop":`تثبيت في الأعلى`,"row.pinAria":`تثبيت {title}`,"row.unpinAria":`إلغاء تثبيت {title}`,"row.delete":`حذف`,"row.deleteAria":`حذف {title}`,"row.deleteConfirm":`حذف؟`,"row.confirmDeleteAria":`تأكيد حذف {title}`,"row.clickAgain":`انقر مرة أخرى للحذف`,"row.tapAgain":`{label} اضغط مرة أخرى`,"newChat.label":`محادثة جديدة`,"newChat.greeting.morning":`صباح الخير. ما الذي سنعمل عليه؟`,"newChat.greeting.afternoon":`مساء الخير. ما الذي سنعمل عليه؟`,"newChat.greeting.evening":`مساء الخير. ما الذي سنعمل عليه؟`,"newChat.warmup.ready":`جارٍ تجهيز GAIA… {s} ث`,"newChat.warmup.loading":`جارٍ تحميل {model}… {s} ث`,"newChat.warmup.loadingOn":`جارٍ تحميل {model} على {where}… {s} ث`,"device.gpu":`معالج الرسومات GPU`,"device.npu":`المعالج العصبي NPU`,"device.cpu":`المعالج المركزي CPU`,"newChat.assistantUnavailable":`لم يبدأ مساعد GAIA بعد.`,"newChat.tryAgain":`إعادة المحاولة`,"newChat.details":`التفاصيل`,"newChat.docs.forChat":`مستندات هذه المحادثة`,"newChat.docs.dontAttach":`عدم إرفاق {name}`,"newChat.docs.more.one":`مستندات أخرى في مكتبتك: {n}.`,"newChat.docs.more.other":`مستندات أخرى في مكتبتك: {n}.`,"newChat.docs.library.one":`عدد المستندات في مكتبتك: {n}، ولا تبحث هذه المحادثة إلا في المستندات التي ترفقها بها.`,"newChat.docs.library.other":`عدد المستندات في مكتبتك: {n}، ولا تبحث هذه المحادثة إلا في المستندات التي ترفقها بها.`,"newChat.docs.attachIt":`إرفاقه`,"newChat.docs.attachAll":`إرفاق المستندات كلها ({n})`,"newChat.docs.choose":`اختيار`,"newChat.setupFailed.title":`لم يكتمل الإعداد الأولي لـ GAIA، لذا ستفشل المحادثة التي تستخدم نموذج هذا الجهاز.`,"newChat.setupFailed.hint":`استخدم نموذجًا سحابيًا، أو اختر نموذجًا أصغر.`,"newChat.setupFailed.choose":`اختيار نموذج`,"newChat.cardsLabel":`أفكار للبدء`,"card.document-brief.title":`اسأل عن مستنداتك`,"card.document-brief.note.one":`المستندات المفهرسة: {n}`,"card.document-brief.note.other":`المستندات المفهرسة: {n}`,"card.inbox-triage.title":`فرز بريدي الوارد`,"card.inbox-triage.note":`حساب البريد المتصل`,"card.research-report.title":`البحث في موضوع`,"card.research-report.note":`تقرير موثّق بالمصادر من الويب`,"card.coding.title":`العمل على الشيفرة`,"card.coding.note":`في {folder}`,"card.summarize.title":`تلخيص محتوى`,"card.summarize.note":`مستند أو نص تفريغ أو رسالة بريد`,"card.check-in.title":`المتابعة`,"card.check-in.note":`تابع من حيث توقفت`,"composer.placeholder":`اسأل GAIA عن أي شيء`,"composer.reply":`الرد على GAIA`,"composer.queueNext":`أضف رسالتك التالية إلى قائمة الانتظار`,"composer.starting":`جارٍ تشغيل GAIA…`,"composer.message":`الرسالة`,"composer.attached":`الملفات المرفقة`,"composer.uploading":`جارٍ الرفع…`,"composer.remove":`إزالة {name}`,"composer.tooLong":`الرسالة أطول من أن تُرسل: عدد الأحرف {sent} والحد الأقصى {max}.`,"composer.tooLongHint":`احفظها في ملف وأرفقه بزر +، وسيتمكن GAIA من قراءتها كاملة.`,"composer.attach":`إرفاق ملفات`,"composer.queue":`إضافة الرسالة إلى قائمة الانتظار`,"composer.queueTitle":`أضفها إلى قائمة الانتظار لتُرسل عند انتهاء هذا الرد (Enter)`,"composer.stop":`إيقاف`,"composer.stopping":`جارٍ الإيقاف…`,"composer.send":`إرسال`,"composer.private":`خاصة`,"composer.memoryOn":`الذاكرة مفعّلة`,"composer.memoryOff":`الذاكرة متوقفة`,"composer.memoryUnknown":`حالة الذاكرة غير معروفة`,"composer.memoryOffTitle":`الذاكرة متوقفة في الإعدادات، لذا لا تُحفظ أي محادثة في الذاكرة`,"composer.memoryUnknownTitle":`تعذّرت قراءة إعداد الذاكرة. فعّل المحادثة الخاصة لإبقاء هذه المحادثة خارج الذاكرة في كل الأحوال.`,"composer.privateOn":`تفعيل المحادثة الخاصة`,"composer.privateOnTitle":`تفعيل المحادثة الخاصة. لن تُحفظ في الذاكرة.`,"composer.privateOff":`إيقاف المحادثة الخاصة`,"composer.privateOffTitle":`إيقاف المحادثة الخاصة. لن تُحفظ هذه المحادثة في الذاكرة.`,"agentNotice.missing":`وكيل GAIA غير مثبّت، لذا لا يمكن بدء محادثات جديدة بعد.`,"agentNotice.install":`تثبيت وكيل GAIA`,"agentNotice.installing":`جارٍ تثبيت وكيل GAIA… {percent}%`,"agentNotice.failed":`تعذّر تثبيت وكيل GAIA: {error}`,"agentNotice.retry":`إعادة المحاولة`,"msg.sent":`أُرسلت في {time}`,"msg.replied":`تم الرد في {time}`,"msg.thinking":`جارٍ التفكير...`,"msg.resend":`إعادة إرسال الرسالة`,"msg.copy":`نسخ الرسالة`,"msg.copied":`تم النسخ!`,"msg.copiedAria":`تم النسخ إلى الحافظة`,"msg.delete":`حذف الرسالة`,"msg.confirmDelete":`انقر مرة أخرى للتأكيد`,"msg.confirmDeleteAria":`تأكيد حذف الرسالة`,"msg.error":`حدث خطأ ما`,"msg.showAll":`عرض الكل`,"msg.showLess":`عرض أقل`,"msg.stopped":`تم الإيقاف`,"msg.stoppedUnconfirmed":`تم الإيقاف. لم يؤكد GAIA الإيقاف، لذا قد تنقص بعض الخطوات هنا. أعد تحميل المحادثة لترى ما حفظه.`,"msg.stoppedError":`تم الإيقاف. أبلغ GAIA عن خطأ أثناء الإيقاف: {error}`,"msg.about":`حول هذه الإجابة`,"msg.timestamp":`وقت الرسالة`,"code.copy":`نسخ`,"citation.open":`فتح {name}`,"citation.openPage":`فتح الصفحة {page}`,"code.copied":`تم النسخ`,"code.copyAria":`نسخ الشيفرة`,"retry.button":`إعادة المحاولة بنموذج آخر`,"retry.head":`إعادة المحاولة باستخدام…`,"activity.thinking":`جارٍ التفكير`,"activity.thought":`فكّر`,"activity.thoughtFor":`فكّر لمدة {time}`,"activity.waiting":`بانتظارك`,"activity.usedSkill":`استخدم مهارة {name}`,"activity.blocked":`محظور بموجب السياسة`,"activity.hitError":`واجه خطأ`,"activity.madePlan":`وضع خطة`,"activity.thoughtThrough":`فكّر في الأمر`,"activity.summarySep":`، `,"activity.summaryMore":`{list} و{n} أخرى`,"activity.filterPlaceholder":`تصفية الخطوات…`,"activity.filterByTool":`التصفية حسب اسم الأداة`,"activity.filterByStatus":`التصفية حسب الحالة`,"activity.filter.all":`الكل`,"activity.filter.success":`نجحت`,"activity.filter.error":`خطأ`,"activity.identicalCalls":`استدعاءات متطابقة: {n}`,"activity.detail.tool":`الأداة`,"activity.detail.via":`عبر {server}`,"activity.detail.arguments":`الوسائط`,"activity.detail.output":`المخرجات`,"activity.detail.error":`خطأ`,"activity.detail.result":`النتيجة`,"activity.truncated":`اقتُطعت المخرجات لتجاوزها الحد المسموح`,"activity.files.more":`+{n} أخرى`,"activity.files.showing":`عرض {shown} من أصل {total} ملف`,"activity.files.file":`ملف {n}`,"activity.plan":`الخطة`,"activity.planDone":`اكتمل {done} من {total}`,"activity.planItem":`{status}: {text}`,"activity.planStatus.done":`اكتملت`,"activity.planStatus.running":`قيد التنفيذ`,"activity.planStatus.failed":`فشلت`,"activity.planStatus.stopped":`توقفت`,"activity.planStatus.pending":`لم تبدأ`,"activity.errorOccurred":`حدث خطأ`,"activity.policy.title":`درع السياسات`,"activity.policy.tool":`الأداة`,"activity.policy.rules":`القواعد`,"activity.policy.policy":`السياسة`,"activity.policy.receipt":`الإيصال`,"activity.policy.receiptUnavailable":`الإيصال غير متاح`,"activity.chunks":`المقاطع المسترجعة: {n}`,"activity.chunkPage":`ص {page}`,"activity.terminal":`الطرفية`,"activity.exit":`رمز الخروج {code}`,"activity.copyOutput":`نسخ المخرجات`,"activity.copyOutputAria":`نسخ مخرجات الأمر`,"activity.noOutput":`لا توجد مخرجات`,"activity.openPath":`فتح: {path}`,"tool.failed":`تعذّر: {label}`,"tool.unfinished":`لم يكتمل: {label}`,"tool.default.done":`استخدم أداة`,"tool.default.active":`استخدام أداة`,"tool.mcp.done":`أداة MCP`,"tool.mcp.active":`تشغيل أداة MCP`,"tool.named.done":`استخدم {what}`,"tool.named.active":`استخدام {what}`,"tool.search_file.done":`بحث في الملفات`,"tool.search_file.active":`البحث في الملفات`,"tool.search_files.done":`بحث في الملفات`,"tool.search_files.active":`البحث في الملفات`,"tool.search_file_content.done":`بحث في المحتوى`,"tool.search_file_content.active":`البحث في المحتوى`,"tool.search_directory.done":`بحث في المجلد`,"tool.search_directory.active":`البحث في المجلد`,"tool.read_file.done":`قرأ ملفًا`,"tool.read_file.active":`قراءة ملف`,"tool.write_file.done":`كتب ملفًا`,"tool.write_file.active":`كتابة ملف`,"tool.get_file_info.done":`اطّلع على معلومات الملف`,"tool.get_file_info.active":`جلب معلومات الملف`,"tool.browse_directory.done":`استعرض المجلد`,"tool.browse_directory.active":`استعراض المجلد`,"tool.list_directory.done":`اطّلع على محتويات المجلد`,"tool.list_directory.active":`سرد محتويات المجلد`,"tool.list_recent_files.done":`اطّلع على الملفات الأخيرة`,"tool.list_recent_files.active":`سرد الملفات الأخيرة`,"tool.analyze_data_file.done":`حلّل البيانات`,"tool.analyze_data_file.active":`تحليل البيانات`,"tool.run_shell_command.done":`نفّذ أمرًا`,"tool.run_shell_command.active":`تنفيذ أمر`,"tool.execute_code.done":`نفّذ الشيفرة`,"tool.execute_code.active":`تنفيذ الشيفرة`,"tool.query_documents.done":`استعلم في المستندات`,"tool.query_documents.active":`الاستعلام في المستندات`,"tool.query_specific_file.done":`استعلم في ملف`,"tool.query_specific_file.active":`الاستعلام في ملف`,"tool.search_indexed_chunks.done":`بحث في المقاطع`,"tool.search_indexed_chunks.active":`البحث في المقاطع`,"tool.semantic_search.done":`بحث في المستندات`,"tool.semantic_search.active":`البحث في المستندات`,"tool.evaluate_retrieval.done":`قيّم نتائج الاسترجاع`,"tool.evaluate_retrieval.active":`تقييم نتائج الاسترجاع`,"tool.index_document.done":`فهرس مستندًا`,"tool.index_document.active":`فهرسة مستند`,"tool.index_documents.done":`فهرس المستندات`,"tool.index_documents.active":`فهرسة المستندات`,"tool.index_directory.done":`فهرس المجلد`,"tool.index_directory.active":`فهرسة المجلد`,"tool.index_file.done":`فهرس ملفًا`,"tool.index_file.active":`فهرسة ملف`,"tool.list_indexed_documents.done":`استعرض المستندات`,"tool.list_indexed_documents.active":`استعراض المستندات`,"tool.summarize_document.done":`لخّص المستند`,"tool.summarize_document.active":`تلخيص المستند`,"tool.dump_document.done":`استخرج النص`,"tool.dump_document.active":`استخراج النص`,"tool.rag_status.done":`تحقّق من حالة RAG`,"tool.rag_status.active":`التحقق من حالة RAG`,"tool.add_watch_directory.done":`أضاف مجلدًا للمراقبة`,"tool.add_watch_directory.active":`إضافة مجلد للمراقبة`,"tool.web_search.done":`بحث في الويب`,"tool.web_search.active":`البحث في الويب`,"tool.search_web.done":`بحث في الويب`,"tool.search_web.active":`البحث في الويب`,"tool.fetch_page.done":`قرأ صفحة ويب`,"tool.fetch_page.active":`قراءة صفحة ويب`,"tool.fetch_webpage.done":`قرأ صفحة ويب`,"tool.fetch_webpage.active":`قراءة صفحة ويب`,"tool.analyze_data.done":`حلّل البيانات`,"tool.analyze_data.active":`تحليل البيانات`,"tool.find_files.done":`عثر على ملفات`,"tool.find_files.active":`البحث عن ملفات`,"tool.edit_file.done":`حرّر ملفًا`,"tool.edit_file.active":`تحرير ملف`,"tool.recall.done":`استرجع من الذاكرة`,"tool.recall.active":`الاسترجاع من الذاكرة`,"tool.remember.done":`حفظ في الذاكرة`,"tool.remember.active":`الحفظ في الذاكرة`,"tool.update_memory.done":`حدّث الذاكرة`,"tool.update_memory.active":`تحديث الذاكرة`,"tool.forget.done":`حذف من الذاكرة`,"tool.forget.active":`الحذف من الذاكرة`,"tool.search_past_conversations.done":`بحث في المحادثات السابقة`,"tool.search_past_conversations.active":`البحث في المحادثات السابقة`,"tool.request_user_input.done":`طرح سؤالًا عليك`,"tool.request_user_input.active":`طرح سؤال عليك`,"tool.load_skill.done":`استخدم مهارة`,"tool.load_skill.active":`تحميل مهارة`,"tool.unload_skill.done":`وضع مهارة جانبًا`,"tool.unload_skill.active":`إبعاد مهارة`,"tool.list_skills.done":`تحقّق من المهارات`,"tool.list_skills.active":`التحقق من المهارات`,"tool.search_skill_hub.done":`بحث في المهارات`,"tool.search_skill_hub.active":`البحث في المهارات`,"tool.install_skill.done":`ثبّت مهارة`,"tool.install_skill.active":`تثبيت مهارة`,"tool.capture_skill.done":`حفظ مهارة`,"tool.capture_skill.active":`حفظ المهارة`,"tool.remove_skill.done":`أزال مهارة`,"tool.remove_skill.active":`إزالة مهارة`,"tool.skill_status.done":`تحقّق من مهارة`,"tool.skill_status.active":`التحقق من مهارة`,"docs.title":`مكتبة المستندات`,"docs.close":`إغلاق مكتبة المستندات`,"docs.untitledChat":`محادثة بلا عنوان`,"docs.addTo":`إضافة المستندات إلى`,"docs.thisChat":`هذه المحادثة: {chat}`,"docs.nextChat":`محادثتك الجديدة التالية`,"docs.nextChatOnly":`تُرفق المستندات التي تضيفها هنا بمحادثتك الجديدة التالية.`,"docs.hint":`لا تبحث المحادثة إلا في المستندات المرفقة بها.`,"docs.drop":`أفلت الملفات هنا لفهرستها`,"docs.dropHint":`ملفات PDF وTXT وMD والشيفرة البرمجية، وأكثر من 50 صيغة أخرى`,"docs.pathPlaceholder":`أو أدخل مسار ملف أو مجلد: {example}`,"docs.pathAria":`مسار الملف المراد فهرسته`,"docs.index":`فهرسة`,"docs.browse":`تصفح الملفات`,"docs.browseTitle":`تصفح الملفات على هذا الجهاز`,"docs.count.one":`المستندات: {n}`,"docs.count.other":`المستندات: {n}`,"docs.chunks.one":`المقاطع: {n}`,"docs.chunks.other":`المقاطع: {n}`,"docs.empty":`لم تتم فهرسة أي مستندات بعد`,"docs.emptyHint":`أفلت الملفات أعلاه أو أدخل مسار ملف`,"docs.indexingFile":`جارٍ فهرسة {name}...`,"docs.indexingFolder":`جارٍ فهرسة المستندات في {name}...`,"docs.willAttach":`سيُرفق {name} بمحادثتك الجديدة التالية.`,"docs.attached":`تم إرفاق {name} بـ {chat}.`,"docs.indexing":`جارٍ الفهرسة...`,"docs.indexingLabel":`جارٍ الفهرسة`,"docs.progress.reading":`قراءة الصفحة {done} من {total}`,"docs.progress.readingCount":`قراءة الصفحة {done}`,"docs.progress.embedding":`تضمين المقاطع: {done} من {total}`,"docs.progress.embeddingCount":`تضمين المقطع {done}`,"docs.cancelIndexing":`إلغاء الفهرسة`,"docs.cancelIndexingAria":`إلغاء فهرسة {name}`,"docs.cancel":`إلغاء`,"docs.failed":`فشلت`,"docs.cantRead":`تتعذّر قراءته`,"docs.failedAria":`فشلت: {error}`,"docs.indexingFailed":`فشلت الفهرسة`,"docs.retry":`إعادة المحاولة`,"docs.retrying":`جارٍ إعادة المحاولة…`,"docs.retryTitle":`إعادة محاولة الفهرسة`,"docs.retryTitleFix":`إعادة محاولة الفهرسة (أصلح الملف أولًا، وإلا فستفشل مجددًا)`,"docs.retryAria":`إعادة محاولة فهرسة {name}`,"docs.noReason":`لم يسجّل GAIA السبب. أعد المحاولة لترى الخطأ.`,"docs.cancelled":`أُلغيت`,"docs.missing":`الملف مفقود`,"docs.indexedAt":`تاريخ الفهرسة: {time}`,"docs.openFolder":`فتح المجلد: {path}`,"docs.openFolderAria":`فتح المجلد الذي يحتوي على {name}`,"docs.useIn":`استخدامه في {chat}`,"docs.useNext":`استخدامه في محادثتك التالية`,"docs.attachAria":`إرفاق {name} بـ {chat}`,"docs.attachNextAria":`إرفاق {name} بمحادثتك التالية`,"docs.remove":`إزالة`,"docs.removeAria":`إزالة {name}`,"docs.dismissFolder":`إغلاق نتيجة فهرسة المجلد`,"time.justNow":`الآن`,"time.minutesAgo":`قبل {n} د`,"time.hoursAgo":`قبل {n} س`,"time.yesterday":`أمس`,"time.daysAgo":`قبل {n} ي`,"sp.label":`لوحة الجلسة`,"sp.resize":`تغيير حجم لوحة الجلسة`,"sp.title":`هذه المحادثة`,"sp.close":`إغلاق لوحة الجلسة`,"sp.closeShort":`إغلاق`,"sp.show":`إظهار لوحة الجلسة`,"sp.hide":`إخفاء لوحة الجلسة`,"sp.showWarn":`إظهار لوحة الجلسة: تعذّر الحصول على بيانات مباشرة`,"sp.section.answer":`هذه الإجابة`,"sp.section.context":`السياق والأداء`,"sp.checking":`جارٍ التحقق…`,"sp.open":`فتح`,"sp.showInFolder":`إظهار في المجلد`,"sp.goToTurn":`الانتقال إلى الدور`,"sp.cancel":`إلغاء`,"sp.couldntOpen":`تعذّر فتح {name}: {error}`,"sp.gone":`لم يعد موجودًا على القرص`,"rail.pending":`جارٍ العمل على هذه الإجابة. ستظهر هنا مصادرها وملفاتها ووجهة بياناتها عند انتهائها.`,"rail.noLive":`تعذّر الحصول على بيانات مباشرة`,"rail.noLiveWhy":`فشلت كل عمليات البحث على الويب في هذا الدور، لذا لا تستند الإجابة إلى معلومات حديثة.`,"rail.error":`تعذّر تجميع مصادر هذا الدور وتفاصيله: {error}`,"rail.sources":`المصادر`,"rail.searchResult":`نتيجة بحث`,"rail.pages.one":`ص {list}`,"rail.pages.other":`الصفحات {list}`,"rail.passages.one":`المقاطع: {n}`,"rail.passages.other":`المقاطع: {n}`,"rail.files":`الملفات`,"rail.changedSince":`تغيّر منذ هذا الدور`,"rail.checkFailed":`تعذّر التحقق مما إذا كانت هذه الملفات قد تغيّرت: {error}`,"rail.thisTurn":`هذا الدور`,"rail.model":`النموذج`,"rail.cloudModel":`{name} (سحابي)`,"rail.thisPc":`هذا الجهاز`,"rail.notReported":`لم يُبلَّغ عنه`,"rail.documents":`المستندات`,"rail.docsSent":`جرى البحث على هذا الجهاز. وأُرسلت المقاطع المستخدمة إلى {provider}.`,"rail.docsLocal":`قُرئت على هذا الجهاز وبقيت فيه.`,"rail.docsSearched":`جرى البحث على هذا الجهاز.`,"rail.websites":`المواقع`,"rail.noSites":`لا شيء من أدوات الويب في GAIA`,"rail.cost":`التكلفة`,"rail.costLocal":`لا رسوم سحابية`,"rail.costAbout":"نحو ${usd} بسعر القائمة","rail.costUnknownModel":`غير معروفة لهذا النموذج`,"rail.costUnknown":`غير معروفة`,"env.title":`البيئة`,"env.offline":`غير متصل`,"env.runsOn":`يعمل على`,"env.cloudPlace":`{name} (سحابي)`,"env.notKnownYet":`غير معروف بعد`,"env.thisPc":`هذا الجهاز`,"env.notLoaded":`{model} · غير محمّل الآن`,"env.inUse":`المستخدم: {gb} غيغابايت`,"env.inUseUnknown":`الذاكرة المستخدمة غير معروفة`,"env.free":`المتاح: {gb} غيغابايت`,"env.reach":`الملفات التي يمكن لـ GAIA الوصول إليها`,"env.readWrite":`يمكنه القراءة والكتابة`,"env.flagshipScope":`هذه المجلدات هي نقطة بداية GAIA وليست حدًا: يمكنه أيضًا فتح مجلدات داخل مجلد المستخدم، مجلدًا تلو الآخر، لكن لا يفتح مجلد المستخدم كله دفعة واحدة. وفي وضع السؤال يستأذنك قبل فتح مجلد جديد أو تغيير أي شيء.`,"env.agentScope":`هذه المجلدات هي نقطة بداية وكيل هذه المحادثة، وهو يطبّق حدوده الخاصة.`,"env.foldersError":`تعذّرت قراءة مجلدات هذه المحادثة: {error}`,"env.nothing":`لا شيء بعد. لا يمكن لـ GAIA قراءة أي مجلد أو الكتابة فيه في هذه المحادثة.`,"env.fewerFiles":`إظهار ملفات أقل`,"env.allFiles":`إظهار كل الملفات ({n})`,"env.ownProcess":`يعمل وكيل هذه المحادثة في عملية مستقلة، لذا لا يمكن تغيير مجلداته من هنا.`,"env.removed":`أُزيل: {names}. يُمنع GAIA من الوصول إليه حتى تضيفه مجددًا.`,"env.addFolder":`إضافة مجلد`,"env.remove":`إزالة {path} من هذه المحادثة`,"env.removeShort":`إزالة من هذه المحادثة`,"env.source.added":`أضفته أنت`,"env.source.gaia_documents":`مجلد مستندات GAIA`,"env.source.scratch":`مجلد GAIA المؤقت`,"env.source.document":`مستند في هذه المحادثة`,"env.source.working_folder":`المجلد الذي بدأ منه GAIA`,"env.source.approved":`وافقت عليه خلال هذه المحادثة`,"env.source.allowed_paths":`محدد عبر GAIA_ALLOWED_PATHS`,"env.internet":`الإنترنت`,"env.internetFor":`الإنترنت لهذه المحادثة`,"env.on":`مفعّل`,"env.off":`متوقف`,"env.offBlocked":`متوقف: البحث على الويب والصفحات محظورة`,"env.phone":`الوصول من الهاتف`,"env.stopping":`جارٍ الإيقاف…`,"env.starting":`جارٍ التشغيل…`,"env.phoneConnected":`{name} متصل`,"env.noPhone":`لا يوجد هاتف متصل بعد`,"env.qr":`إظهار رمز QR`,"env.permission":`وضع الأذونات`,"env.ask":`السؤال`,"env.fullAccessWarn":`يتيح الوصول الكامل لـ GAIA تغيير الملفات وتشغيل الأوامر على هذا الجهاز دون استئذان.`,"env.turnOn":`تفعيله`,"perm.ask":`السؤال قبل التنفيذ`,"perm.askNote":`يستأذنك GAIA قبل تعديل الملفات أو تشغيل الأوامر أو استخدام أدوات تُحدث تغييرات.`,"perm.full":`وصول كامل`,"perm.fullNote":`يشغّل كل أداة وأمر دون استئذان، في هذه المحادثة فقط.`,"offline.text":`غير متصل: الإنترنت متوقف لهذه المحادثة، لذا لن يبحث GAIA في الويب ولن يفتح الصفحات.`,"offline.error":`تعذّر تفعيله: {error}`,"offline.turnOn":`تفعيل`,"out.title":`المخرجات`,"out.kind.file":`ملف`,"out.kind.export":`تصدير`,"out.kind.image":`صورة`,"out.kind.document":`مستند مفهرس`,"out.kind.memory":`ذاكرة محفوظة`,"out.kind.schedule":`مهمة مجدولة`,"out.change.created":`أُنشئ`,"out.change.edited":`عُدّل`,"out.change.deleted":`حُذف`,"out.kindChanged":`{kind}: {change}`,"out.justNow":`الآن`,"out.minAgo":`قبل {n} د`,"out.hAgo":`قبل {n} س`,"out.undone":`تم التراجع`,"out.listError":`تعذّر سرد ما أنتجته هذه المحادثة: {error}`,"out.empty":`لا شيء بعد. تظهر هنا الملفات والمستندات والصور والذكريات التي تنشئها هذه المحادثة.`,"out.listLabel":`ما أنتجته هذه المحادثة`,"out.notLoaded":`هذا الدور غير محمّل في المحادثة حاليًا.`,"out.goToAria":`الانتقال إلى الدور الذي أنشأ {name}`,"out.fewer":`إظهار أقل`,"out.more":`إظهار المزيد ({n})`,"chg.title":`التغييرات`,"chg.files.one":`الملفات: {n}`,"chg.files.other":`الملفات: {n}`,"chg.summary":`{files} · +{add} −{del}`,"chg.total":`{files} تغيّرت، +{add} −{del}`,"chg.error":`تعذّر حصر تغييرات هذه المحادثة: {error}`,"chg.uncounted.one":`ملفات ثنائية أو كبيرة لم تُعدّ أسطرها: {n}`,"chg.uncounted.other":`ملفات ثنائية أو كبيرة لم تُعدّ أسطرها: {n}`,"chg.pending":`ما زال الرد قيد التشغيل؛ تُضاف تغييراته عند انتهائه.`,"chg.edited":`عُدّل`,"chg.created":`أُنشئ`,"chg.deleted":`حُذف`,"chg.turns":`الأدوار: {n}`,"chg.outside":`تغيّر خارج GAIA: {when}`,"chg.goToLast":`الانتقال إلى آخر دور غيّر {name}`,"chg.review":`مراجعة التغييرات`,"chg.wait":`انتظر حتى ينتهي الرد`,"chg.undoing":`جارٍ التراجع…`,"chg.undoAll":`التراجع عن الكل`,"chg.confirmLabel":`تأكيد التراجع عن الكل`,"chg.confirm.one":`إعادة {files} إلى ما كانت عليه قبل هذه المحادثة؟ سيُتراجع عن تغييرات الملفات في كل الأدوار.`,"chg.confirm.other":`إعادة {files} إلى ما كانت عليه قبل هذه المحادثة؟ سيُتراجع عن تغييرات الملفات في كل الأدوار.`,"chg.undoAnyway":`التراجع على أي حال وفقدان تلك التغييرات`,"chg.keep":`الإبقاء عليها`,"chg.gitError":`تعذّر التحقق من وجود مستودع git: {error}`,"pick.label":`إضافة مجلد إلى هذه المحادثة`,"pick.title":`إضافة مجلد`,"pick.note":`سيتمكن GAIA من قراءة كل ما في المجلد الذي تختاره والكتابة فيه، في هذه المحادثة فقط.`,"pick.path":`مسار المجلد`,"pick.go":`انتقال`,"pick.onlyHidden":`لا توجد هنا إلا مجلدات مخفية. فعّل «إظهار المخفي» لرؤيتها.`,"pick.none":`لا توجد مجلدات بالداخل.`,"pick.loading":`جارٍ التحميل…`,"perm.chipAria":`وضع الأذونات: {mode}`,"perm.fullLower":`وصول كامل`,"perm.askLower":`السؤال قبل التنفيذ`,"pick.showHidden":`إظهار المخفي`,"pick.up":`مستوى واحد للأعلى`,"pick.use":`استخدام هذا المجلد`,"ctx.sheetAria":`السياق والأداء`,"ctx.unknown":`غير معروف`,"ctx.tokens":`الرموز: {n}`,"ctx.rate":`{n} رمز/ث`,"ctx.rateTitle":`{n} رمز في الثانية`,"ctx.cloud":`سحابي`,"ctx.cloudVia":`سحابي · {provider}`,"ctx.notLoadedNow":`غير محمّل الآن`,"ctx.took":`استغرق`,"ctx.tookHint":`من إرسال الرسالة حتى حفظ الإجابة`,"ctx.split":`التوزيع`,"ctx.inModel":`داخل النموذج`,"ctx.runningTools":`تشغيل الأدوات`,"ctx.waitingOnYou":`بانتظارك`,"ctx.gaiaItself":`GAIA نفسه`,"ctx.inGaia":`داخل GAIA`,"ctx.inGaiaHint":`كل ما لم يكن النموذج: الأدوات وانتظارك وعمل GAIA نفسه`,"ctx.src.server":`أبلغ عنه خادم النموذج`,"ctx.src.client":`قاسه GAIA على البث، بما في ذلك الشبكة`,"ctx.toolOutside":`عمل أدوات خارج خطوة`,"ctx.firstWord":`أول كلمة`,"ctx.in":`خلال`,"ctx.readingPrompt":`قراءة الطلب`,"ctx.readingHint":`الملء المسبق: رموز الطلب الجديدة على زمن أول رمز`,"ctx.tooFewTitle":`الرموز الجديدة أقل من أن تعطي سرعة قراءة؛ والباقي جاء من الذاكرة المؤقتة`,"ctx.onlyNew":`رموز جديدة فقط: {n}`,"ctx.approx":`تقريبي`,"ctx.approxTitle":`قاسه GAIA من أول كلمة، لذا يشمل وقت الشبكة والانتظار`,"ctx.writing":`كتابة الإجابة`,"ctx.writingHint":`سرعة التوليد، موزونة بعدد الرموز`,"ctx.tokensInOut":`الرموز الداخلة والخارجة`,"ctx.cache":`مُعاد من الذاكرة المؤقتة`,"ctx.cacheHint":`رموز الطلب التي لم يحتج الخادم إلى قراءتها مجددًا`,"ctx.modelCalls":`استدعاءات النموذج`,"ctx.toolCalls":`استدعاءات الأدوات`,"ctx.none":`لا شيء`,"ctx.loads":`تحميلات النموذج`,"ctx.costLocalTitle":`يعمل على هذا الجهاز`,"ctx.costLocal":`$0 · على هذا الجهاز`,"ctx.listPriceTitle":"${usd} بسعر القائمة","ctx.about":"نحو ${usd}","ctx.turns":`الأدوار المقيسة`,"ctx.totalTime":`الوقت الإجمالي`,"ctx.unpricedTitle":`أدوار على نموذج بلا سعر معروف: {n}`,"ctx.unpriced":"${usd} + {n} بلا تسعير","ctx.live":`حاضر في النافذة`,"ctx.putAway":`أُبعد`,"ctx.putAwayHint":`نتائج أدوات أقدم نُقلت خارج الطلب؛ وما زالت قابلة للقراءة`,"ctx.results.one":`النتائج: {n}`,"ctx.results.other":`النتائج: {n}`,"ctx.summarized":`لُخّص`,"ctx.summarizedHint":`دُمجت أدوار أقدم في ملخص متجدد؛ ويبقى الأصل محفوظًا`,"ctx.earlier.one":`الأدوار السابقة: {n}`,"ctx.earlier.other":`الأدوار السابقة: {n}`,"ctx.summarizedNote":`لُخّصت الرسائل السابقة، وما زال البحث فيها ممكنًا.`,"ctx.filling":`النافذة تمتلئ. تُنقل نتائج الأدوات الأقدم خارج الطلب وتبقى قابلة للقراءة، وقد تخرج أقدم الأدوار من نطاق رؤية النموذج. لكنها تبقى محفوظة، ويمكنك أن تطلب من GAIA استرجاعها.`,"ctx.context":`السياق`,"ctx.measuring":`جارٍ القياس…`,"ctx.used":`المستخدم {pct}%`,"ctx.of":`من`,"ctx.tokensWord":`رمز`,"ctx.windowTitle":`يسمح GAIA بهذا القدر من النافذة، لذا تخرج الأدوار الأقدم من الرؤية أبكر مما يحتاجه النموذج`,"ctx.gaiaUses":`يستخدم GAIA`,"ctx.ofModel":`من أصل نافذة النموذج البالغة`,"ctx.freeRow":`متاح`,"ctx.reserve":`منها محجوز للرد`,"ctx.exactTokenizer":`عُدّ كل جزء بمُرمِّز {model} نفسه.`,"ctx.estimated":`تقديري: {reason}`,"ctx.sharedTokenizer":`عُدّ بمُرمِّز مشترك.`,"ctx.lastRequest":`حمل الطلب الأخير {n} رمزًا كما عدّها خادم النموذج، بما في ذلك تنسيق المحادثة.`,"ctx.onDemand":`أدوات إضافية تُحمَّل عند الحاجة فقط: {n}`,"ctx.sentNow":`المُرسلة الآن: {n}. لا تكلّف هذه شيئًا حتى يحتاجها دور ما:`,"ctx.hood":`التفاصيل التقنية`,"ctx.show":`عرض`,"ctx.lastTurn":`آخر دور`,"ctx.memory":`ذاكرة النموذج`,"ctx.memoryHint":`أوزان النموذج + ذاكرة KV المؤقتة عند هذه النافذة؛ والذاكرة المتاحة الآن`,"ctx.gbModel":`النموذج {gb} غيغابايت`,"ctx.gbCache":`الذاكرة المؤقتة {gb} غيغابايت`,"ctx.freeUnknown":`المتاح غير معروف`,"ctx.afterNext":`يظهر بعد إجابة GAIA التالية في هذه المحادثة.`,"ctx.latestAnswer":`آخر إجابة:`,"ctx.notMeasured":`لم تُقَس.`,"settings.title":`الإعدادات`,"settings.sections":`أقسام الإعدادات`,"settings.close":`إغلاق الإعدادات`,"settings.loading":`جارٍ التحميل…`,"settings.section.general":`عام`,"settings.section.model":`النموذج`,"settings.section.permissions":`الأذونات`,"settings.section.skills":`المهارات`,"settings.section.connectors":`الموصلات`,"settings.section.memory":`الذاكرة`,"settings.section.notifications":`الإشعارات`,"settings.section.privacy":`الخصوصية`,"settings.section.advanced":`متقدم`,"settings.language":`اللغة`,"settings.languageHint":`تغيّر تسميات التطبيق واتجاه تخطيطه، لا اللغة التي يجيب بها GAIA.`,"settings.appearance":`المظهر`,"settings.theme.light":`فاتح`,"settings.theme.dark":`داكن`,"settings.theme.system":`مطابقة النظام`,"settings.colors":`الألوان`,"palette.default":`رمادي دافئ`,"palette.stone":`حجر وحبر`,"palette.marble":`رخام أزرق`,"palette.glacier":`جليد`,"palette.forest":`أرض الغابة`,"palette.sage":`مريمية وضباب`,"palette.basalt":`بازلت وأشنة`,"palette.gold":`جرافيت وذهب`,"palette.dusk":`غسق`,"settings.colors.custom":`مخصص`,"settings.colors.accent":`اللون المميز`,"settings.colors.accentHint":`الأزرار والروابط ومؤشر التركيز`,"settings.colors.base":`صبغة الخلفية`,"settings.colors.baseHint":`اللون الذي تميل إليه الدرجات الرمادية`,"settings.colors.reset":`إعادة تعيين`,"settings.colors.hint":`تتكيّف ألوان النص تلقائيًا ليبقى كل شيء مقروءًا في الوضعين الفاتح والداكن.`,"settings.shortcuts":`اختصارات لوحة المفاتيح`,"settings.shortcut.send":`إرسال`,"settings.shortcut.newLine":`سطر جديد`,"settings.shortcut.stop":`إيقاف الإجابة`,"settings.shortcut.newChat":`محادثة جديدة`,"settings.shortcut.search":`البحث في المحادثات`,"settings.shortcut.sidebar":`إظهار الشريط الجانبي أو إخفاؤه`,"settings.shortcut.settings":`الإعدادات`,"setup.title":`إعداد GAIA`,"setup.lede.start":`بضع دقائق من الإعداد، ثم محادثتك الأولى.`,"setup.lede.running":`جارٍ الإعداد. يستمر الإعداد حتى لو انتقلت إلى نافذة أخرى.`,"setup.lede.done":`كل شيء جاهز.`,"setup.check.title":`فحص هذا الجهاز`,"setup.where.title":`اختر مكان تشغيل GAIA`,"setup.where.local":`على هذا الجهاز`,"setup.where.localNote":`خاص. تعمل النماذج على عتاد AMD لديك؛ لا يغادر شيء هذا الجهاز.`,"setup.where.fireworksNote":`نماذج سحابية أسرع وأكبر. تحتاج إلى مفتاح API؛ يُرسَل سجل المحادثة إلى Fireworks AI.`,"setup.where.amdNote":`لموظفي AMD. تحتاج إلى مفتاح البوابة؛ يُرسَل سجل المحادثة إلى البوابة.`,"setup.server.install":`تثبيت خادم النماذج المحلي`,"setup.server.aboutMinute":`نحو دقيقة واحدة`,"setup.server.yours":`استخدام خادم Lemonade الخاص بك`,"setup.back":`رجوع`,"setup.continue":`متابعة`,"setup.continueAnyway":`المتابعة على أي حال`,"setup.cancel":`إلغاء`,"setup.finish":`إنهاء الإعداد`,"setup.tryAgain":`إعادة المحاولة`,"setup.reconnect":`إعادة الاتصال`,"setup.keepTrying":`واصل المحاولة إذا انقطع الاتصال (حتى دقيقتين)`,"setup.resume.banner":`لم يكتمل التنزيل في المرة السابقة. هل تريد الاستئناف؟`,"setup.resume.resume":`استئناف`,"setup.models.title":`اختر نماذجك`,"setup.models.lede":`هذه هي النماذج التي سيستخدمها GAIA على هذا الجهاز. ألغِ تحديد ما لا تريده؛ يمكنك إضافتها لاحقًا من الإعدادات.`,"setup.models.cloudLede":`تعمل المحادثة في السحابة. ما زال GAIA يحتاج إلى هذا النموذج الصغير على هذا الجهاز للبحث في ملفاتك وتذكّر الأشياء.`,"setup.models.cloudNote":`النماذج السحابية لا تحتاج إلى تنزيل.`,"setup.models.loading":`جارٍ قراءة النماذج على هذا الجهاز…`,"setup.models.listFailed":`تعذّرت قراءة قائمة النماذج من Lemonade: {reason}`,"setup.models.useRecommended":`استخدام المجموعة الموصى بها`,"setup.models.useRecommendedNote":`المجموعة الموصى بها هي قائمة الإعداد نفسه لهذا الجهاز. لا يستطيع GAIA معرفة مدى ملاءمة كل نموذج حتى تُقرأ القائمة.`,"setup.models.allPresent":`كل شيء موجود بالفعل على هذا الجهاز.`,"setup.models.change":`تغيير النماذج`,"setup.models.resetRecommended":`تحديد النماذج الموصى بها فقط`,"setup.models.neverDeletes":`إلغاء التحديد لا يحذف أي نموذج أبدًا.`,"setup.models.more":`نماذج أخرى يمكن لـ GAIA تنزيلها: {n}`,"setup.models.moreLabel":`نماذج أخرى يمكن لـ GAIA تنزيلها`,"setup.models.installed":`نماذج أخرى موجودة في Lemonade: {n}`,"setup.models.installedLabel":`نماذج أخرى موجودة في Lemonade`,"setup.models.search":`البحث في النماذج`,"setup.models.useAsDefault":`استخدامه نموذجًا للمحادثة`,"setup.models.defaultChat":`نموذج المحادثة الافتراضي`,"setup.models.noChat":`لم يُختر نموذج للمحادثة`,"setup.models.noChatReason":`اختر نموذج محادثة واحدًا على الأقل، أو اختر مزوّدًا سحابيًا في الخطوة 2.`,"setup.models.npu":`NPU`,"setup.models.recommended":`موصى به لهذا الجهاز`,"setup.models.fitUnknown":`الملاءمة غير معروفة`,"setup.models.purpose.chat":`محادثة`,"setup.models.purpose.vision":`رؤية`,"setup.models.purpose.documents":`مستندات`,"setup.models.line.chat":`يجيب عن محادثاتك.`,"setup.models.line.vision":`يقرأ الصور ولقطات الشاشة.`,"setup.models.line.documents":`يتيح لـ GAIA البحث في ملفاتك وتذكّر الأشياء.`,"setup.models.fit.ok":`يحتاج إلى نحو {need} من الذاكرة؛ لدى هذا الجهاز {have} للنماذج.`,"setup.models.fit.unknown":`تعذّر على GAIA قراءة ذاكرة هذا الجهاز، لذا لا يستطيع معرفة ما إذا كان هذا النموذج مناسبًا.`,"setup.models.status.onPc":`على هذا الجهاز`,"setup.models.status.download":`تنزيل {size}`,"setup.models.status.partial":`نُزّل جزئيًا، يتبقى {size}`,"setup.models.status.sizeUnknown":`الحجم غير معروف`,"setup.models.status.downloading":`جارٍ تنزيل {done} من {total}`,"setup.models.warn.tooBig":`يحتاج إلى نحو {need}؛ لدى هذا الجهاز {have}. قد يكون بطيئًا جدًا أو يفشل في التحميل.`,"setup.models.warn.tooBigNoNumbers":`قد لا يعمل على هذا الجهاز: {reason}`,"setup.models.warn.vision":`من دون {name}، لا يستطيع GAIA قراءة الصور أو لقطات الشاشة. يمكنك إضافته لاحقًا من الإعدادات.`,"setup.models.warn.documents":`من دون {name}، لا يستطيع GAIA البحث في ملفاتك أو تذكّر الأشياء. يمكنك إضافته لاحقًا من الإعدادات.`,"setup.summary.label":`إجمالي التنزيل`,"setup.summary.download":`التنزيل`,"setup.summary.free":`المساحة الحرة`,"setup.summary.freeOn":`المساحة الحرة على {drive}`,"setup.summary.after":`بعد التنزيل`,"setup.summary.sizeUnknown":`الحجم غير معروف`,"setup.summary.freeUnknown":`المساحة الحرة غير معروفة`,"setup.summary.theDrive":`قرص النماذج`,"setup.summary.short":`يلزم {need}؛ المتاح {free} فقط على {drive}. حرّر {freeUp}، أو ألغِ تحديد نماذج أخرى.`,"setup.summary.shortDrop":`يلزم {need}؛ المتاح {free} فقط على {drive}. حرّر {freeUp} أو ألغِ تحديد {name} (يوفّر {saves}).`,"setup.summary.spoken":`التنزيل {download}. يتبقى {after} حرة بعده.`,"setup.summary.spokenNoDisk":`التنزيل {download}. المساحة الحرة غير معروفة.`,"setup.summary.spokenUnknown":`حجم التنزيل غير معروف.`,"setup.confirm.noFitOne":`قد لا يناسب {name} هذا الجهاز. هل تريد تنزيله على أي حال؟`,"setup.confirm.noFitMany":`قد لا تناسب بعض النماذج هذا الجهاز. هل تريد تنزيلها على أي حال؟`,"setup.confirm.noFitServerTitle":`قد لا يعمل هذا النموذج على هذا الجهاز`,"setup.confirm.lowDiskTitle":`لا توجد مساحة حرة كافية على القرص`,"setup.confirm.downloadAnyway":`التنزيل على أي حال`,"setup.confirm.useAnyway":`استخدامه على أي حال`,"setup.confirm.pickSmaller":`اختيار نموذج أصغر`,"setup.confirm.changeModels":`تغيير النماذج`,"setup.download.title":`تنزيل النماذج والتحقق منها`,"setup.download.verifying":`جارٍ التحقق من تحميل النماذج…`,"setup.download.finishNote":`اكتملت التنزيلات. «إنهاء الإعداد» يتحقق من أنها تُحمَّل.`,"setup.download.stoppedBeforeCheck":`توقف الإعداد قبل أن يتحقق من تحميل النماذج. احتُفظ بها؛ «إنهاء الإعداد» يتحقق منها الآن.`,"setup.state.queued":`في الانتظار`,"setup.state.downloading":`جارٍ التنزيل`,"setup.state.verifying":`جارٍ التحقق`,"setup.state.ready":`جاهز`,"setup.state.failed":`فشل`,"setup.state.skipped":`تم التخطي`,"setup.state.cancelled":`أُلغي`,"setup.state.unchecked":`اكتمل التنزيل`,"setup.progress.overallLabel":`التنزيل الإجمالي`,"setup.progress.overallPct":`الإجمالي {n}%`,"setup.progress.percent":`{n} بالمئة`,"setup.progress.of":`{done} من {total}`,"setup.progress.left":`يتبقى {eta}`,"setup.progress.estimating":`جارٍ التقدير…`,"setup.progress.failedCount":`فشل: {n}`,"setup.progress.rowLabel":`{name}، {state}`,"setup.progress.waitingCheck":`اكتمل التنزيل. يتحقق GAIA من تحميله بعد انتهاء البقية.`,"setup.progress.unchecked":`اكتمل التنزيل واحتُفظ به. يتحقق GAIA من تحميله عند إنهاء الإعداد.`,"setup.redownload.title":`تنزيل {name} من جديد؟`,"setup.redownload.body":`نُزّل {name} لكنه لم يُحمَّل. يحذف GAIA النسخة الموجودة على هذا الجهاز وينزّله من جديد ({size}).`,"setup.redownload.confirm":`الحذف والتنزيل من جديد`,"setup.redownload.keep":`الإبقاء عليه`,"setup.progress.checkingLoad":`جارٍ التحقق من تحميله…`,"setup.progress.checkingFor":`جارٍ التحقق من تحميله… {n} ث`,"setup.progress.keptPartial":`احتُفظ بـ {done}. يتابع الاستئناف من هناك.`,"setup.progress.retrying":`انقطع الاتصال. تُعاد المحاولة لمدة {n} ثانية أخرى…`,"setup.progress.stalled":`لا بيانات منذ {n} ثانية. ما زالت المحاولة جارية…`,"setup.progress.stuck":`يبدو أن التنزيل متوقف. إعادة المحاولة؟`,"setup.progress.details":`التفاصيل`,"setup.progress.retry":`إعادة المحاولة`,"setup.progress.resume":`استئناف`,"setup.progress.resumeAll":`استئناف الكل`,"setup.progress.retryLater":`تصبح إعادة المحاولة متاحة بعد انتهاء التنزيلات الأخرى.`,"setup.progress.skipModel":`تخطي هذا النموذج`,"setup.progress.cancel":`إلغاء`,"setup.progress.keepsGoing":`تستمر التنزيلات حتى لو انتقلت إلى نافذة أخرى.`,"setup.progress.cancelTitle":`إيقاف التنزيل؟`,"setup.progress.cancelBody":`تبقى النماذج المكتملة. ويُحتفظ بالتنزيلات الجزئية لتتمكن من الاستئناف.`,"setup.progress.cancelConfirm":`إيقاف`,"setup.progress.cancelKeep":`متابعة التنزيل`,"setup.progress.announceState":`{name}: {state}`,"setup.progress.announceFailed":`فشل تنزيل {name}.`,"setup.progress.announceOverall":`اكتمل {n} بالمئة من التنزيلات.`,"setup.fail.network":`انقطع الاتصال أثناء تنزيل {name}. اضغط «إعادة المحاولة» للمتابعة من حيث توقف.`,"setup.fail.diskFull":`نفدت مساحة القرص بعد {done} من {name}. حرّر {need} واضغط «إعادة المحاولة». لم يُفقد شيء؛ يتابع التنزيل من حيث توقف.`,"setup.fail.verify":`نُزّل {name} لكنه لم يُحمَّل. «إعادة المحاولة» تحذفه وتنزّله من جديد.`,"setup.fail.lemonade":`تعذّر على Lemonade تنزيل {name}. رسالته في «التفاصيل».`,"setup.eta.sec":`نحو {n} ث`,"setup.eta.min":`نحو {n} د`,"setup.eta.long":`أكثر من ساعتين`,"setup.eta.secSpoken":`يتبقى نحو {n} ثانية`,"setup.eta.minSpoken":`يتبقى نحو {n} دقيقة`,"setup.ready.title":`GAIA جاهز.`,"setup.ready.answersLocal":`يجيب {model} على هذا الجهاز.`,"setup.ready.answersCloud":`يجيب {model} في السحابة.`,"setup.ready.start":`ابدأ المحادثة`,"setup.ready.chat":`المحادثة`,"setup.ready.vision":`الرؤية`,"setup.ready.visionOff":`متوقفة. أضف {name} من الإعدادات لقراءة الصور.`,"setup.ready.documents":`المستندات`,"setup.ready.notInstalled":`غير مثبّت (أضفه لاحقًا من الإعدادات)`,"setup.ready.gpu":`ذاكرة GPU`,"setup.ready.gpuNow":`أصبحت ذاكرة GPU الآن {gb}.`,"setup.ready.gpuChanged":`تغيّرت ذاكرة GPU.`,"gpu.title":`امنح GPU ذاكرة أكبر`,"gpu.settingsTitle":`ذاكرة GPU`,"gpu.body":`يتشارك هذا الجهاز {total} بين المعالج وGPU. لدى GPU الآن {gpu}. تعمل النماذج على GPU، لذا فالمزيد هنا يعني نماذج أكبر.`,"gpu.split.aria":`تقسيم الذاكرة: المعالج {cpu}، GPU {gpu}`,"gpu.split.gpu":`GPU {gb}`,"gpu.split.added":`إضافة {gb}`,"gpu.split.ariaTarget":`تقسيم الذاكرة بعد التغيير: المعالج {cpu}، GPU {gpu} (الآن {now})`,"gpu.split.cpu":`المعالج {gb}`,"gpu.presets.label":`ذاكرة GPU`,"gpu.presets.gpu":`GPU {gb}`,"gpu.unlock.one":`مع {gb} لـ GPU، يصبح {a} مناسبًا.`,"gpu.unlock.two":`مع {gb} لـ GPU، يصبح {a} و{b} مناسبين.`,"gpu.unlock.none":`مع {gb} لـ GPU، تُحمَّل النماذج الأكبر أسرع وتتسع لمحادثات أطول.`,"gpu.reserve":`يحتفظ GAIA بما لا يقل عن {gb} لنظام {os} وتطبيقاتك.`,"gpu.needs":`تغييره يحتاج إلى إذن المسؤول وإعادة التشغيل.`,"gpu.noPresets":`لا يستطيع هذا الجهاز منح GPU ذاكرة أكبر مع إبقاء ما يكفي للنظام.`,"gpu.apply":`تطبيق`,"gpu.showMe":`أرني كيف`,"gpu.skip":`التخطي الآن`,"gpu.undo":`تراجع`,"gpu.ok":`حسنًا`,"gpu.tryAgain":`إعادة المحاولة`,"gpu.keep":`الإبقاء على {gb}`,"gpu.waiting":`في انتظار الإذن…`,"gpu.applied":`تم. أعد تشغيل جهازك لاستخدام {gb}.`,"gpu.appliedAny":`تم. أعد تشغيل جهازك لاستخدام ذاكرة GPU الجديدة.`,"gpu.denied":`لم يُمنح الإذن، لذا لم يتغير شيء.`,"gpu.consent.title":`منح GPU {gb}؟`,"gpu.consent.titleAny":`منح GPU ذاكرة أكبر؟`,"gpu.consent.body":`سيغيّر GAIA الإعداد {name} فيصبح لدى GPU {gb}. يحتاج هذا إلى إذن المسؤول وإعادة التشغيل. لا يتغير شيء آخر، ويمكنك التراجع عنه من الإعدادات.`,"gpu.consent.bodyAny":`سيغيّر GAIA الإعداد {name} فيصبح لدى GPU ذاكرة أكبر. يحتاج هذا إلى إذن المسؤول وإعادة التشغيل. لا يتغير شيء آخر، ويمكنك التراجع عنه من الإعدادات.`,"gpu.consent.saved":`لدى GPU الآن {gb}. يحفظ GAIA هذا الإعداد لتتمكن من التراجع.`,"gpu.revert.title":`التراجع عن تغيير ذاكرة GPU؟`,"gpu.revert.body":`سيعيد GAIA ذاكرة GPU إلى ما كانت عليه قبل أن يغيّرها. يحتاج هذا إلى إذن المسؤول وإعادة التشغيل.`,"gpu.pending.restart":`أعد تشغيل جهازك لاستخدام {gb}.`,"gpu.pending.restartAny":`أعد تشغيل جهازك لاستخدام ذاكرة GPU الجديدة.`,"gpu.pending.restartHow":`لا يعيد GAIA تشغيله بنفسه أبدًا؛ احفظ عملك أولًا.`,"gpu.pending.downloadsFirst":`يمكن أن تبدأ التنزيلات الآن؛ أعد التشغيل عند انتهائها.`,"gpu.pending.tookEffect":`أصبحت ذاكرة GPU الآن {gb}.`,"gpu.pending.notApplied":`ما زال الجهاز يُبلغ عن {gb}. ربما لم يُطبَّق التغيير. أعد المحاولة، أو اتبع الخطوات لضبطه بنفسك.`,"gpu.guided.lede":`لمنح GPU {gb}:`,"gpu.guided.loading":`جارٍ جلب الخطوات لهذا الجهاز…`,"gpu.guided.done":`فعلت ذلك`,"gpu.guided.back":`رجوع`,"gpu.copy":`نسخ`,"gpu.copied":`تم النسخ`,"gpu.copyAria":`نسخ {what}`,"gpu.copyFailed":`تعذّر النسخ: {reason}. حدّد النص وانسخه بدلًا من ذلك.`,"settings.models.title":`النماذج على هذا الجهاز`,"settings.models.warn.kept":`يبقى {name} على هذا الجهاز. إلغاء تحديده يمنع الإعداد فقط من تنزيله مجددًا؛ «إزالة» تحذفه.`,"settings.models.warn.vision":`من دون {name}، لا يستطيع GAIA قراءة الصور أو لقطات الشاشة. حدّده لتنزيله.`,"settings.models.warn.documents":`من دون {name}، لا يستطيع GAIA البحث في ملفاتك أو تذكّر الأشياء. حدّده لتنزيله.`,"settings.models.lede":`حدّد ما تريده على هذا الجهاز. تُنزَّل النماذج المحددة الناقصة عند التطبيق؛ وإلغاء التحديد لا يحذف أي نموذج.`,"settings.models.apply":`تطبيق التغييرات`,"settings.models.applyDownload":`تطبيق: تنزيل {size}`,"settings.models.applying":`جارٍ الحفظ…`,"settings.models.applied":`تم الحفظ.`,"settings.models.remove":`إزالة`,"settings.models.removeAria":`إزالة {name}`,"settings.models.removeTitle":`إزالة {name}؟`,"settings.models.removeBody":`يحرّر هذا {size}. يمكنك تنزيله مرة أخرى.`,"settings.models.removeVision":`يحرّر هذا {size} ويوقف قراءة الصور. يمكنك تنزيله مرة أخرى.`,"settings.models.removeConfirm":`إزالة`,"settings.models.keep":`الإبقاء عليه`,"settings.models.removed":`أُزيل {name}؛ تحررت {size}.`,"settings.models.unavailable":`خادم النماذج المحلي لا يستجيب، لذا لا يستطيع GAIA عرض النماذج على هذا الجهاز بعد.`,"settings.models.downloads":`التنزيلات`,"download.chip":`جارٍ التنزيل {done} من {count} · {pct}%`,"download.chipFailed":`فشل أحد التنزيلات`,"download.chipAria":`تنزيلات النماذج. افتح الإعدادات لعرضها.`}},D={"sidebar.label":`Chats`,"sidebar.expand":`Expand sidebar`,"sidebar.collapse":`Collapse sidebar`,"sidebar.search":`Search chats`,"sidebar.newChat":`New chat`,"sidebar.memory":`Memory`,"sidebar.schedules":`Scheduled tasks`,"sidebar.documents":`Documents`,"sidebar.recent":`Recent chats`,"sidebar.noMatch":`No chats match.`,"sidebar.searching":`Searching inside chats…`,"sidebar.searchCapped":`Showing the {n} newest chats that mention this. Type more to narrow it down.`,"sidebar.matchCount.one":`{n} chat matches`,"sidebar.matchCount.other":`{n} chats match`,"sidebar.empty":`No chats yet.`,"sidebar.group.needsYou":`Needs you`,"sidebar.group.pinned":`Pinned`,"sidebar.group.today":`Today`,"sidebar.group.yesterday":`Yesterday`,"sidebar.group.prev7":`Previous 7 days`,"sidebar.group.prev30":`Previous 30 days`,"sidebar.group.older":`Older`,"sidebar.hideBackground":`Hide background runs`,"sidebar.showBackground.one":`Show {n} background run`,"sidebar.showBackground.other":`Show {n} background runs`,"sidebar.notifications":`Notifications`,"sidebar.notificationsUnread":`Notifications, {n} unread`,"sidebar.mobileAccess":`Mobile access`,"sidebar.mobileAccessOn":`Mobile access is on`,"sidebar.settings":`Settings`,"row.status.running":`Running`,"row.status.queued":`Waiting for the GPU`,"row.status.waiting":`Waiting for you`,"row.status.done":`Done`,"row.status.failed":`Failed`,"row.unread":`unread`,"row.private":`Private chat`,"row.rename":`Rename`,"row.renameAria":`Rename {title}`,"row.saveName":`Save name`,"row.cancelRename":`Cancel rename`,"row.moreActions":`More actions for {title}`,"row.actions":`Chat actions`,"row.pin":`Pin`,"row.unpin":`Unpin`,"row.pinToTop":`Pin to top`,"row.pinAria":`Pin {title}`,"row.unpinAria":`Unpin {title}`,"row.delete":`Delete`,"row.deleteAria":`Delete {title}`,"row.deleteConfirm":`Delete?`,"row.confirmDeleteAria":`Confirm delete {title}`,"row.clickAgain":`Click again to delete`,"row.tapAgain":`{label} Tap again`,"newChat.label":`New chat`,"newChat.greeting.morning":`Good morning. What should we work on?`,"newChat.greeting.afternoon":`Good afternoon. What should we work on?`,"newChat.greeting.evening":`Good evening. What should we work on?`,"newChat.warmup.ready":`Getting GAIA ready… {s}s`,"newChat.warmup.loading":`Loading {model}… {s}s`,"newChat.warmup.loadingOn":`Loading {model} on {where}… {s}s`,"device.gpu":`your GPU`,"device.npu":`your NPU`,"device.cpu":`the CPU`,"newChat.assistantUnavailable":`GAIA’s assistant didn’t start yet.`,"newChat.tryAgain":`Try again`,"newChat.details":`Details`,"newChat.docs.forChat":`Documents for this chat`,"newChat.docs.dontAttach":`Don't attach {name}`,"newChat.docs.more.one":`{n} more document in your library.`,"newChat.docs.more.other":`{n} more documents in your library.`,"newChat.docs.library.one":`Your library has {n} document; this chat can search only the ones you attach.`,"newChat.docs.library.other":`Your library has {n} documents; this chat can search only the ones you attach.`,"newChat.docs.attachIt":`Attach it`,"newChat.docs.attachAll":`Attach all {n}`,"newChat.docs.choose":`Choose`,"newChat.setupFailed.title":`GAIA’s first-run setup didn’t finish, so a chat on this PC’s model will fail.`,"newChat.setupFailed.hint":`Use a cloud model, or pick a smaller one.`,"newChat.setupFailed.choose":`Choose a model`,"newChat.cardsLabel":`Things to try`,"card.document-brief.title":`Ask about your documents`,"card.document-brief.note.one":`{n} indexed document`,"card.document-brief.note.other":`{n} indexed documents`,"card.inbox-triage.title":`Triage my inbox`,"card.inbox-triage.note":`Your connected mail account`,"card.research-report.title":`Research a topic`,"card.research-report.note":`A cited report from the web`,"card.coding.title":`Work on code`,"card.coding.note":`In {folder}`,"card.summarize.title":`Summarize something`,"card.summarize.note":`A document, transcript or email`,"card.check-in.title":`Check in`,"card.check-in.note":`Pick up where you left off`,"composer.placeholder":`Ask GAIA anything`,"composer.reply":`Reply to GAIA`,"composer.queueNext":`Queue your next message`,"composer.starting":`GAIA is starting…`,"composer.message":`Message`,"composer.attached":`Attached files`,"composer.uploading":`Uploading…`,"composer.remove":`Remove {name}`,"composer.tooLong":`Too long to send: {sent} of {max} characters.`,"composer.tooLongHint":`Save it as a file and attach it with +, and GAIA can read all of it.`,"composer.attach":`Attach files`,"composer.queue":`Queue message`,"composer.queueTitle":`Queue it to send when this reply ends (Enter)`,"composer.stop":`Stop`,"composer.stopping":`Stopping…`,"composer.send":`Send`,"composer.private":`Private`,"composer.memoryOn":`Memory on`,"composer.memoryOff":`Memory off`,"composer.memoryUnknown":`Memory unknown`,"composer.memoryOffTitle":`Memory is off in Settings, so no chat is saved to memory`,"composer.memoryUnknownTitle":`Couldn't read the memory setting. Turn on private chat to keep this chat out of memory either way.`,"composer.privateOn":`Turn on private chat`,"composer.privateOnTitle":`Turn on private chat. It won't be saved to memory.`,"composer.privateOff":`Turn off private chat`,"composer.privateOffTitle":`Turn off private chat. This chat won't be saved to memory.`,"agentNotice.missing":`The GAIA agent isn't installed, so new chats can't start yet.`,"agentNotice.install":`Install GAIA agent`,"agentNotice.installing":`Installing the GAIA agent… {percent}%`,"agentNotice.failed":`The GAIA agent could not be installed: {error}`,"agentNotice.retry":`Try again`,"msg.sent":`Sent {time}`,"msg.replied":`Replied {time}`,"msg.thinking":`Thinking...`,"msg.resend":`Resend message`,"msg.copy":`Copy message`,"msg.copied":`Copied!`,"msg.copiedAria":`Copied to clipboard`,"msg.delete":`Delete message`,"msg.confirmDelete":`Click again to confirm`,"msg.confirmDeleteAria":`Confirm delete message`,"msg.error":`Something went wrong`,"msg.showAll":`Show all`,"msg.showLess":`Show less`,"msg.stopped":`Stopped`,"msg.stoppedUnconfirmed":`Stopped. GAIA did not confirm the stop, so some steps may be missing here. Reload the chat to see what it saved.`,"msg.stoppedError":`Stopped. GAIA reported an error while stopping: {error}`,"msg.about":`About this answer`,"msg.timestamp":`Message timestamp`,"code.copy":`Copy`,"citation.open":`Open {name}`,"citation.openPage":`Open page {page}`,"code.copied":`Copied`,"code.copyAria":`Copy code`,"retry.button":`Retry with another model`,"retry.head":`Retry with…`,"activity.thinking":`Thinking`,"activity.thought":`Thought`,"activity.thoughtFor":`Thought for {time}`,"activity.waiting":`Waiting for you`,"activity.usedSkill":`Used {name} skill`,"activity.blocked":`Blocked by policy`,"activity.hitError":`Hit an error`,"activity.madePlan":`Made a plan`,"activity.thoughtThrough":`Thought it through`,"activity.summarySep":`, `,"activity.summaryMore":`{list} and {n} more`,"activity.filterPlaceholder":`Filter steps…`,"activity.filterByTool":`Filter by tool name`,"activity.filterByStatus":`Filter by status`,"activity.filter.all":`All`,"activity.filter.success":`Success`,"activity.filter.error":`Error`,"activity.identicalCalls":`{n} identical calls`,"activity.detail.tool":`Tool`,"activity.detail.via":`via {server}`,"activity.detail.arguments":`Arguments`,"activity.detail.output":`Output`,"activity.detail.error":`Error`,"activity.detail.result":`Result`,"activity.truncated":`Output was truncated (exceeded size limit)`,"activity.files.more":`+{n} more`,"activity.files.showing":`Showing {shown} of {total} files`,"activity.files.file":`File {n}`,"activity.plan":`Plan`,"activity.planDone":`{done} of {total} done`,"activity.planItem":`{status}: {text}`,"activity.planStatus.done":`Done`,"activity.planStatus.running":`Running`,"activity.planStatus.failed":`Failed`,"activity.planStatus.stopped":`Stopped`,"activity.planStatus.pending":`Not started`,"activity.errorOccurred":`An error occurred`,"activity.policy.title":`Policy Shield`,"activity.policy.tool":`Tool`,"activity.policy.rules":`Rules`,"activity.policy.policy":`Policy`,"activity.policy.receipt":`Receipt`,"activity.policy.receiptUnavailable":`Receipt unavailable`,"activity.chunks":`Retrieved Chunks ({n})`,"activity.chunkPage":`p.{page}`,"activity.terminal":`Terminal`,"activity.exit":`exit {code}`,"activity.copyOutput":`Copy output`,"activity.copyOutputAria":`Copy command output`,"activity.noOutput":`No output`,"activity.openPath":`Open: {path}`,"tool.failed":`{label} failed`,"tool.unfinished":`{label} didn't finish`,"tool.default.done":`Used tool`,"tool.default.active":`Using tool`,"tool.mcp.done":`MCP tool`,"tool.mcp.active":`Running MCP tool`,"tool.named.done":`Used {what}`,"tool.named.active":`Using {what}`,"tool.search_file.done":`Searched files`,"tool.search_file.active":`Searching files`,"tool.search_files.done":`Searched files`,"tool.search_files.active":`Searching files`,"tool.search_file_content.done":`Searched content`,"tool.search_file_content.active":`Searching content`,"tool.search_directory.done":`Searched directory`,"tool.search_directory.active":`Searching directory`,"tool.read_file.done":`Read file`,"tool.read_file.active":`Reading file`,"tool.write_file.done":`Wrote file`,"tool.write_file.active":`Writing file`,"tool.get_file_info.done":`Got file info`,"tool.get_file_info.active":`Getting file info`,"tool.browse_directory.done":`Browsed directory`,"tool.browse_directory.active":`Browsing directory`,"tool.list_directory.done":`Listed directory`,"tool.list_directory.active":`Listing directory`,"tool.list_recent_files.done":`Listed recent files`,"tool.list_recent_files.active":`Listing recent files`,"tool.analyze_data_file.done":`Analyzed data`,"tool.analyze_data_file.active":`Analyzing data`,"tool.run_shell_command.done":`Ran command`,"tool.run_shell_command.active":`Running command`,"tool.execute_code.done":`Executed code`,"tool.execute_code.active":`Executing code`,"tool.query_documents.done":`Queried documents`,"tool.query_documents.active":`Querying documents`,"tool.query_specific_file.done":`Queried file`,"tool.query_specific_file.active":`Querying file`,"tool.search_indexed_chunks.done":`Searched chunks`,"tool.search_indexed_chunks.active":`Searching chunks`,"tool.semantic_search.done":`Searched documents`,"tool.semantic_search.active":`Searching documents`,"tool.evaluate_retrieval.done":`Evaluated retrieval`,"tool.evaluate_retrieval.active":`Evaluating retrieval`,"tool.index_document.done":`Indexed document`,"tool.index_document.active":`Indexing document`,"tool.index_documents.done":`Indexed documents`,"tool.index_documents.active":`Indexing documents`,"tool.index_directory.done":`Indexed directory`,"tool.index_directory.active":`Indexing directory`,"tool.index_file.done":`Indexed file`,"tool.index_file.active":`Indexing file`,"tool.list_indexed_documents.done":`Listed documents`,"tool.list_indexed_documents.active":`Listing documents`,"tool.summarize_document.done":`Summarized`,"tool.summarize_document.active":`Summarizing`,"tool.dump_document.done":`Extracted text`,"tool.dump_document.active":`Extracting text`,"tool.rag_status.done":`Checked RAG status`,"tool.rag_status.active":`Checking RAG`,"tool.add_watch_directory.done":`Added watch dir`,"tool.add_watch_directory.active":`Adding watch dir`,"tool.web_search.done":`Searched web`,"tool.web_search.active":`Searching web`,"tool.search_web.done":`Searched web`,"tool.search_web.active":`Searching web`,"tool.fetch_page.done":`Read web page`,"tool.fetch_page.active":`Reading web page`,"tool.fetch_webpage.done":`Read web page`,"tool.fetch_webpage.active":`Reading web page`,"tool.analyze_data.done":`Analyzed data`,"tool.analyze_data.active":`Analyzing data`,"tool.find_files.done":`Found files`,"tool.find_files.active":`Finding files`,"tool.edit_file.done":`Edited file`,"tool.edit_file.active":`Editing file`,"tool.recall.done":`Recalled memory`,"tool.recall.active":`Recalling memory`,"tool.remember.done":`Saved to memory`,"tool.remember.active":`Saving to memory`,"tool.update_memory.done":`Updated memory`,"tool.update_memory.active":`Updating memory`,"tool.forget.done":`Deleted from memory`,"tool.forget.active":`Deleting from memory`,"tool.search_past_conversations.done":`Searched past chats`,"tool.search_past_conversations.active":`Searching past chats`,"tool.request_user_input.done":`Asked you`,"tool.request_user_input.active":`Asking you`,"tool.load_skill.done":`Used skill`,"tool.load_skill.active":`Loading skill`,"tool.unload_skill.done":`Put away skill`,"tool.unload_skill.active":`Putting away skill`,"tool.list_skills.done":`Checked skills`,"tool.list_skills.active":`Checking skills`,"tool.search_skill_hub.done":`Searched skills`,"tool.search_skill_hub.active":`Searching skills`,"tool.install_skill.done":`Installed skill`,"tool.install_skill.active":`Installing skill`,"tool.capture_skill.done":`Saved skill`,"tool.capture_skill.active":`Saving skill`,"tool.remove_skill.done":`Removed skill`,"tool.remove_skill.active":`Removing skill`,"tool.skill_status.done":`Checked skill`,"tool.skill_status.active":`Checking skill`,"docs.title":`Document library`,"docs.close":`Close document library`,"docs.untitledChat":`Untitled chat`,"docs.addTo":`Add documents to`,"docs.thisChat":`This chat: {chat}`,"docs.nextChat":`Your next new chat`,"docs.nextChatOnly":`Documents you add here are attached to your next new chat.`,"docs.hint":`A chat searches only the documents attached to it.`,"docs.drop":`Drop files here to index`,"docs.dropHint":`PDF, TXT, MD, code files, and 50+ formats`,"docs.pathPlaceholder":`Or enter a file or folder path: {example}`,"docs.pathAria":`File path to index`,"docs.index":`Index`,"docs.browse":`Browse files`,"docs.browseTitle":`Browse files on this computer`,"docs.count.one":`{n} document`,"docs.count.other":`{n} documents`,"docs.chunks.one":`{n} chunk`,"docs.chunks.other":`{n} chunks`,"docs.empty":`No documents indexed yet`,"docs.emptyHint":`Drop files above or enter a file path`,"docs.indexingFile":`Indexing {name}...`,"docs.indexingFolder":`Indexing the documents in {name}...`,"docs.willAttach":`{name} will be attached to your next new chat.`,"docs.attached":`Attached {name} to {chat}.`,"docs.indexing":`Indexing...`,"docs.indexingLabel":`Indexing`,"docs.progress.reading":`Reading page {done} of {total}`,"docs.progress.readingCount":`Reading page {done}`,"docs.progress.embedding":`Embedding {done} of {total}`,"docs.progress.embeddingCount":`Embedding chunk {done}`,"docs.cancelIndexing":`Cancel indexing`,"docs.cancelIndexingAria":`Cancel indexing {name}`,"docs.cancel":`Cancel`,"docs.failed":`Failed`,"docs.cantRead":`Can't be read`,"docs.failedAria":`Failed: {error}`,"docs.indexingFailed":`Indexing failed`,"docs.retry":`Retry`,"docs.retrying":`Retrying…`,"docs.retryTitle":`Retry indexing`,"docs.retryTitleFix":`Retry indexing (fix the file first, or this fails again)`,"docs.retryAria":`Retry indexing {name}`,"docs.noReason":`GAIA didn't record why. Retry to see the error.`,"docs.cancelled":`Cancelled`,"docs.missing":`File missing`,"docs.indexedAt":`Indexed: {time}`,"docs.openFolder":`Open folder: {path}`,"docs.openFolderAria":`Open containing folder for {name}`,"docs.useIn":`Use in {chat}`,"docs.useNext":`Use in your next chat`,"docs.attachAria":`Attach {name} to {chat}`,"docs.attachNextAria":`Attach {name} to your next chat`,"docs.remove":`Remove`,"docs.removeAria":`Remove {name}`,"docs.dismissFolder":`Dismiss folder indexing result`,"time.justNow":`just now`,"time.minutesAgo":`{n}m ago`,"time.hoursAgo":`{n}h ago`,"time.yesterday":`yesterday`,"time.daysAgo":`{n}d ago`,"sp.label":`Session panel`,"sp.resize":`Resize session panel`,"sp.title":`This chat`,"sp.close":`Close session panel`,"sp.closeShort":`Close`,"sp.show":`Show session panel`,"sp.hide":`Hide session panel`,"sp.showWarn":`Show session panel: couldn't get live data`,"sp.section.answer":`This answer`,"sp.section.context":`Context & performance`,"sp.checking":`Checking…`,"sp.open":`Open`,"sp.showInFolder":`Show in folder`,"sp.goToTurn":`Go to turn`,"sp.cancel":`Cancel`,"sp.couldntOpen":`Couldn't open {name}: {error}`,"sp.gone":`No longer on disk`,"rail.pending":`Working on this answer. Its sources, files and where its data went appear here when it finishes.`,"rail.noLive":`Couldn't get live data`,"rail.noLiveWhy":`Every web lookup this turn failed, so the answer isn't based on current information.`,"rail.error":`Couldn't put together this turn's sources and details: {error}`,"rail.sources":`Sources`,"rail.searchResult":`search result`,"rail.pages.one":`p. {list}`,"rail.pages.other":`pp. {list}`,"rail.passages.one":`{n} passage`,"rail.passages.other":`{n} passages`,"rail.files":`Files`,"rail.changedSince":`Changed since this turn`,"rail.checkFailed":`Couldn't check whether these files changed: {error}`,"rail.thisTurn":`This turn`,"rail.model":`Model`,"rail.cloudModel":`{name} (cloud)`,"rail.thisPc":`This PC`,"rail.notReported":`Not reported`,"rail.documents":`Documents`,"rail.docsSent":`Searched on this PC. The passages used were sent to {provider}.`,"rail.docsLocal":`Read on this PC and stayed here.`,"rail.docsSearched":`Searched on this PC.`,"rail.websites":`Websites`,"rail.noSites":`None from GAIA's web tools`,"rail.cost":`Cost`,"rail.costLocal":`No cloud charges`,"rail.costAbout":"About ${usd} at list price","rail.costUnknownModel":`Not known for this model`,"rail.costUnknown":`Not known`,"env.title":`Environment`,"env.offline":`Offline`,"env.runsOn":`Runs on`,"env.cloudPlace":`{name} (cloud)`,"env.notKnownYet":`Not known yet`,"env.thisPc":`This PC`,"env.notLoaded":`{model} · not loaded right now`,"env.inUse":`{gb} GB in use`,"env.inUseUnknown":`Memory in use unknown`,"env.free":`{gb} GB free`,"env.reach":`Files GAIA can reach`,"env.readWrite":`Can read and write`,"env.flagshipScope":`These folders are where GAIA starts, not a limit: it can also open folders inside your user folder, one at a time, but never the whole user folder at once. In Ask mode it asks before it opens a new folder or changes anything.`,"env.agentScope":`These folders are where this chat's agent starts; it applies its own limits.`,"env.foldersError":`Couldn't read this chat's folders: {error}`,"env.nothing":`Nothing yet. GAIA can't read or write any folder in this chat.`,"env.fewerFiles":`Show fewer files`,"env.allFiles":`Show all {n} files`,"env.ownProcess":`This chat's agent runs as its own process, so its folders can't be changed from here.`,"env.removed":`Removed: {names}. GAIA is refused there until you add it back.`,"env.addFolder":`Add folder`,"env.remove":`Remove {path} from this chat`,"env.removeShort":`Remove from this chat`,"env.source.added":`Added by you`,"env.source.gaia_documents":`GAIA's documents folder`,"env.source.scratch":`GAIA's scratch folder`,"env.source.document":`Document in this chat`,"env.source.working_folder":`Folder GAIA started in`,"env.source.approved":`Approved during this chat`,"env.source.allowed_paths":`Set by GAIA_ALLOWED_PATHS`,"env.internet":`Internet`,"env.internetFor":`Internet for this chat`,"env.on":`On`,"env.off":`Off`,"env.offBlocked":`Off: web search and pages are blocked`,"env.phone":`Phone access`,"env.stopping":`Stopping…`,"env.starting":`Starting…`,"env.phoneConnected":`{name} connected`,"env.noPhone":`No phone connected yet`,"env.qr":`Show QR code`,"env.permission":`Permission mode`,"env.ask":`Ask`,"env.fullAccessWarn":`Full access lets GAIA change files and run commands on this PC without asking.`,"env.turnOn":`Turn it on`,"perm.ask":`Ask before acting`,"perm.askNote":`GAIA asks before it edits files, runs commands or uses tools that change things.`,"perm.full":`Full access`,"perm.fullNote":`Runs every tool and command without asking, in this chat only.`,"offline.text":`Offline: internet is off for this chat, so GAIA won't search the web or open pages.`,"offline.error":`Couldn't turn it on: {error}`,"offline.turnOn":`Turn on`,"out.title":`Outputs`,"out.kind.file":`File`,"out.kind.export":`Export`,"out.kind.image":`Image`,"out.kind.document":`Indexed document`,"out.kind.memory":`Memory saved`,"out.kind.schedule":`Scheduled task`,"out.change.created":`created`,"out.change.edited":`edited`,"out.change.deleted":`deleted`,"out.kindChanged":`{kind} {change}`,"out.justNow":`just now`,"out.minAgo":`{n} min ago`,"out.hAgo":`{n} h ago`,"out.undone":`Undone`,"out.listError":`Couldn't list what this chat produced: {error}`,"out.empty":`Nothing yet. Files, documents, images and memories this chat makes appear here.`,"out.listLabel":`What this chat produced`,"out.notLoaded":`That turn isn't loaded in the chat right now.`,"out.goToAria":`Go to the turn that made {name}`,"out.fewer":`Show fewer`,"out.more":`Show {n} more`,"chg.title":`Changes`,"chg.files.one":`{n} file`,"chg.files.other":`{n} files`,"chg.summary":`{files} · +{add} −{del}`,"chg.total":`{files} changed, +{add} −{del}`,"chg.error":`Couldn't total this chat's changes: {error}`,"chg.uncounted.one":`{n} binary or large file not line-counted`,"chg.uncounted.other":`{n} binary or large files not line-counted`,"chg.pending":`A reply is still running; its changes are added when it ends.`,"chg.edited":`Edited`,"chg.created":`Created`,"chg.deleted":`Deleted`,"chg.turns":`{n} turns`,"chg.outside":`Changed outside GAIA: {when}`,"chg.goToLast":`Go to the last turn that changed {name}`,"chg.review":`Review changes`,"chg.wait":`Wait for the reply to finish`,"chg.undoing":`Undoing…`,"chg.undoAll":`Undo all`,"chg.confirmLabel":`Confirm undo all`,"chg.confirm.one":`Put {files} back the way it was before this chat? Every turn's file changes are undone.`,"chg.confirm.other":`Put {files} back the way they were before this chat? Every turn's file changes are undone.`,"chg.undoAnyway":`Undo anyway and lose those changes`,"chg.keep":`Keep them`,"chg.gitError":`Couldn't check for a git repository: {error}`,"pick.label":`Add a folder to this chat`,"pick.title":`Add a folder`,"pick.note":`GAIA will be able to read and write everything in the folder you pick, in this chat only.`,"pick.path":`Folder path`,"pick.go":`Go`,"pick.onlyHidden":`Only hidden folders here. Turn on Show hidden to see them.`,"pick.none":`No folders inside.`,"pick.loading":`Loading…`,"perm.chipAria":`Permission mode: {mode}`,"perm.fullLower":`full access`,"perm.askLower":`ask before acting`,"pick.showHidden":`Show hidden`,"pick.up":`Up one level`,"pick.use":`Use this folder`,"ctx.sheetAria":`Context and performance`,"ctx.unknown":`unknown`,"ctx.tokens":`{n} tokens`,"ctx.rate":`{n} tokens/s`,"ctx.rateTitle":`{n} tokens per second`,"ctx.cloud":`Cloud`,"ctx.cloudVia":`Cloud · {provider}`,"ctx.notLoadedNow":`Not loaded now`,"ctx.took":`Took`,"ctx.tookHint":`From sending the message to the answer being saved`,"ctx.split":`split`,"ctx.inModel":`In the model`,"ctx.runningTools":`Running tools`,"ctx.waitingOnYou":`Waiting on you`,"ctx.gaiaItself":`GAIA itself`,"ctx.inGaia":`In GAIA`,"ctx.inGaiaHint":`Everything that was not the model: tools, waiting on you, and GAIA's own work`,"ctx.src.server":`Reported by the model server`,"ctx.src.client":`Measured by GAIA on the stream, network included`,"ctx.toolOutside":`tool work outside a step`,"ctx.firstWord":`First word`,"ctx.in":`in`,"ctx.readingPrompt":`Reading the prompt`,"ctx.readingHint":`Prefill: new prompt tokens over time to first token`,"ctx.tooFewTitle":`Too few new tokens to give a reading speed; the rest came from the cache`,"ctx.onlyNew":`only {n} new tokens`,"ctx.approx":`approx.`,"ctx.approxTitle":`Measured by GAIA from the first word, so it includes network and queue time`,"ctx.writing":`Writing the answer`,"ctx.writingHint":`Generation speed, weighted by tokens`,"ctx.tokensInOut":`Tokens in → out`,"ctx.cache":`Reused from cache`,"ctx.cacheHint":`Prompt tokens the server did not have to read again`,"ctx.modelCalls":`Model calls`,"ctx.toolCalls":`Tool calls`,"ctx.none":`none`,"ctx.loads":`Model loads`,"ctx.costLocalTitle":`Runs on this PC`,"ctx.costLocal":`$0 · on this PC`,"ctx.listPriceTitle":"${usd} at list price","ctx.about":"about ${usd}","ctx.turns":`Turns measured`,"ctx.totalTime":`Total time`,"ctx.unpricedTitle":`{n} turn(s) on a model with no known price`,"ctx.unpriced":"${usd} + {n} unpriced","ctx.live":`Live in the window`,"ctx.putAway":`Put away`,"ctx.putAwayHint":`Older tool results moved out of the prompt; still readable`,"ctx.results.one":`{n} result`,"ctx.results.other":`{n} results`,"ctx.summarized":`Summarized`,"ctx.summarizedHint":`Older turns folded into a running summary; the originals stay saved`,"ctx.earlier.one":`{n} earlier turn`,"ctx.earlier.other":`{n} earlier turns`,"ctx.summarizedNote":`Earlier messages summarized — still searchable.`,"ctx.filling":`The window is filling up. Older tool results move out of the prompt and stay readable, and the oldest turns may drop out of the model's view. They stay saved, and you can ask GAIA to recall them.`,"ctx.context":`Context`,"ctx.measuring":`Measuring…`,"ctx.used":`{pct}% used`,"ctx.of":`of`,"ctx.tokensWord":`tokens`,"ctx.windowTitle":`GAIA admits this much of the window, so older turns drop out of view sooner than the model would need`,"ctx.gaiaUses":`GAIA uses`,"ctx.ofModel":`of the model's`,"ctx.freeRow":`Free`,"ctx.reserve":`of which kept for the reply`,"ctx.exactTokenizer":`Each part counted with {model}'s own tokenizer.`,"ctx.estimated":`Estimated: {reason}`,"ctx.sharedTokenizer":`counted with a shared tokenizer.`,"ctx.lastRequest":`The last request carried {n} tokens as the model server counted them, chat formatting included.`,"ctx.onDemand":`{n} more tools load only when needed`,"ctx.sentNow":`Sent now: {n}. These cost nothing until a turn needs them:`,"ctx.hood":`Under the hood`,"ctx.show":`Show`,"ctx.lastTurn":`Last turn`,"ctx.memory":`Model memory`,"ctx.memoryHint":`Model weights + KV cache at this window; free memory now`,"ctx.gbModel":`{gb} GB model`,"ctx.gbCache":`{gb} GB cache`,"ctx.freeUnknown":`free unknown`,"ctx.afterNext":`Shown after GAIA's next answer in this chat.`,"ctx.latestAnswer":`Latest answer:`,"ctx.notMeasured":`It was not measured.`,"settings.title":`Settings`,"settings.sections":`Settings sections`,"settings.close":`Close settings`,"settings.loading":`Loading…`,"settings.section.general":`General`,"settings.section.model":`Model`,"settings.section.permissions":`Permissions`,"settings.section.skills":`Skills`,"settings.section.connectors":`Connectors`,"settings.section.memory":`Memory`,"settings.section.notifications":`Notifications`,"settings.section.privacy":`Privacy`,"settings.section.advanced":`Advanced`,"settings.language":`Language`,"settings.languageHint":`Changes the app’s labels and layout, not the language GAIA answers in.`,"settings.appearance":`Appearance`,"settings.theme.light":`Light`,"settings.theme.dark":`Dark`,"settings.theme.system":`Match system`,"settings.colors":`Colors`,"palette.default":`Warm gray`,"palette.stone":`Stone and ink`,"palette.marble":`Blue marble`,"palette.glacier":`Glacier`,"palette.forest":`Forest floor`,"palette.sage":`Sage and mist`,"palette.basalt":`Basalt and lichen`,"palette.gold":`Graphite and gold`,"palette.dusk":`Dusk`,"settings.colors.custom":`Custom`,"settings.colors.accent":`Accent`,"settings.colors.accentHint":`Buttons, links and focus`,"settings.colors.base":`Background tint`,"settings.colors.baseHint":`The color the grays lean toward`,"settings.colors.reset":`Reset`,"settings.colors.hint":`Text colors adjust on their own so everything stays readable in light and dark.`,"settings.shortcuts":`Keyboard shortcuts`,"settings.shortcut.send":`Send`,"settings.shortcut.newLine":`New line`,"settings.shortcut.stop":`Stop the answer`,"settings.shortcut.newChat":`New chat`,"settings.shortcut.search":`Search chats`,"settings.shortcut.sidebar":`Show or hide the sidebar`,"settings.shortcut.settings":`Settings`,"setup.title":`Set up GAIA`,"setup.lede.start":`A few minutes of setup, then your first chat.`,"setup.lede.running":`Setting things up. Setup keeps going if you switch away.`,"setup.lede.done":`All set.`,"setup.check.title":`Check this PC`,"setup.where.title":`Choose where GAIA runs`,"setup.where.local":`On this PC`,"setup.where.localNote":`Private. Models run on your AMD hardware; nothing leaves this machine.`,"setup.where.fireworksNote":`Faster, larger cloud models. Needs an API key; chat history is sent to Fireworks AI.`,"setup.where.amdNote":`For AMD employees. Needs a gateway key; chat history is sent to the gateway.`,"setup.server.install":`Install the local model server`,"setup.server.aboutMinute":`about 1 minute`,"setup.server.yours":`Use your Lemonade Server`,"setup.back":`Back`,"setup.continue":`Continue`,"setup.continueAnyway":`Continue anyway`,"setup.cancel":`Cancel`,"setup.finish":`Finish setup`,"setup.tryAgain":`Try again`,"setup.reconnect":`Reconnect`,"setup.keepTrying":`Keep trying if the connection drops (up to 2 minutes)`,"setup.resume.banner":`Last time’s download didn’t finish. Resume?`,"setup.resume.resume":`Resume`,"setup.models.title":`Choose your models`,"setup.models.lede":`These are the models GAIA will use on this PC. Untick any you don’t want; you can add them later in Settings.`,"setup.models.cloudLede":`Chat runs in the cloud. GAIA still needs this small model on this PC to search your files and remember things.`,"setup.models.cloudNote":`Cloud models need no download.`,"setup.models.loading":`Reading the models on this PC…`,"setup.models.listFailed":`Couldn’t read the model list from Lemonade: {reason}`,"setup.models.useRecommended":`Use the recommended set`,"setup.models.useRecommendedNote":`The recommended set is setup’s own list for this PC. GAIA can’t tell how each one fits until the list can be read.`,"setup.models.allPresent":`Everything is already on this PC.`,"setup.models.change":`Change models`,"setup.models.resetRecommended":`Tick only the recommended models`,"setup.models.neverDeletes":`Unticking never deletes a model.`,"setup.models.more":`More models GAIA can download ({n})`,"setup.models.moreLabel":`More models GAIA can download`,"setup.models.installed":`Other models already in Lemonade ({n})`,"setup.models.installedLabel":`Other models already in Lemonade`,"setup.models.search":`Search models`,"setup.models.useAsDefault":`Use as the chat model`,"setup.models.defaultChat":`Default chat model`,"setup.models.noChat":`No chat model picked`,"setup.models.noChatReason":`Pick at least one chat model, or choose a cloud provider in step 2.`,"setup.models.npu":`NPU`,"setup.models.recommended":`Recommended for this PC`,"setup.models.fitUnknown":`Fit unknown`,"setup.models.purpose.chat":`Chat`,"setup.models.purpose.vision":`Vision`,"setup.models.purpose.documents":`Documents`,"setup.models.line.chat":`Answers your chats.`,"setup.models.line.vision":`Reads images and screenshots.`,"setup.models.line.documents":`Lets GAIA search your files and remember things.`,"setup.models.fit.ok":`Needs about {need} of memory; this PC has {have} for models.`,"setup.models.fit.unknown":`GAIA couldn’t read this PC’s memory, so it can’t tell if this fits.`,"setup.models.status.onPc":`On this PC`,"setup.models.status.download":`Download {size}`,"setup.models.status.partial":`Partly downloaded, {size} left`,"setup.models.status.sizeUnknown":`Size unknown`,"setup.models.status.downloading":`Downloading {done} of {total}`,"setup.models.warn.tooBig":`Needs about {need}; this PC has {have}. It may be very slow or fail to load.`,"setup.models.warn.tooBigNoNumbers":`May not run on this PC: {reason}`,"setup.models.warn.vision":`Without {name}, GAIA can’t read images or screenshots. You can add it later in Settings.`,"setup.models.warn.documents":`Without {name}, GAIA can’t search your files or remember things. You can add it later in Settings.`,"setup.summary.label":`Download total`,"setup.summary.download":`Download`,"setup.summary.free":`Free`,"setup.summary.freeOn":`Free on {drive}`,"setup.summary.after":`After`,"setup.summary.sizeUnknown":`Size unknown`,"setup.summary.freeUnknown":`Free space unknown`,"setup.summary.theDrive":`the model drive`,"setup.summary.short":`Needs {need}; only {free} free on {drive}. Free {freeUp}, or untick more models.`,"setup.summary.shortDrop":`Needs {need}; only {free} free on {drive}. Free {freeUp} or untick {name} (saves {saves}).`,"setup.summary.spoken":`Download {download}. {after} free after.`,"setup.summary.spokenNoDisk":`Download {download}. Free space unknown.`,"setup.summary.spokenUnknown":`Download size unknown.`,"setup.confirm.noFitOne":`{name} may not fit this PC. Download it anyway?`,"setup.confirm.noFitMany":`Some models may not fit this PC. Download them anyway?`,"setup.confirm.noFitServerTitle":`This model may not run on this PC`,"setup.confirm.lowDiskTitle":`Not enough free disk space`,"setup.confirm.downloadAnyway":`Download anyway`,"setup.confirm.useAnyway":`Use it anyway`,"setup.confirm.pickSmaller":`Pick a smaller one`,"setup.confirm.changeModels":`Change models`,"setup.download.title":`Download and check the models`,"setup.download.verifying":`Checking that the models load…`,"setup.download.finishNote":`The downloads are done. Finish setup checks that they load.`,"setup.download.stoppedBeforeCheck":`Setup stopped before it could check that the models load. They are kept; Finish setup checks them now.`,"setup.state.queued":`Queued`,"setup.state.downloading":`Downloading`,"setup.state.verifying":`Verifying`,"setup.state.ready":`Ready`,"setup.state.failed":`Failed`,"setup.state.skipped":`Skipped`,"setup.state.cancelled":`Cancelled`,"setup.state.unchecked":`Downloaded`,"setup.progress.overallLabel":`Overall download`,"setup.progress.overallPct":`Overall {n}%`,"setup.progress.percent":`{n} percent`,"setup.progress.of":`{done} of {total}`,"setup.progress.left":`{eta} left`,"setup.progress.estimating":`Estimating…`,"setup.progress.failedCount":`Failed: {n}`,"setup.progress.rowLabel":`{name}, {state}`,"setup.progress.waitingCheck":`Downloaded. GAIA checks that it loads once the others finish.`,"setup.progress.unchecked":`Downloaded and kept. GAIA checks that it loads when you finish setup.`,"setup.redownload.title":`Download {name} again?`,"setup.redownload.body":`{name} downloaded but didn’t load. GAIA deletes the copy on this PC and downloads it again ({size}).`,"setup.redownload.confirm":`Delete and download again`,"setup.redownload.keep":`Keep it`,"setup.progress.checkingLoad":`Checking that it loads…`,"setup.progress.checkingFor":`Checking that it loads… {n} s`,"setup.progress.keptPartial":`{done} kept. Resume continues from there.`,"setup.progress.retrying":`The connection dropped. Trying again for {n} more seconds…`,"setup.progress.stalled":`No data for {n} seconds. Still trying…`,"setup.progress.stuck":`The download seems stuck. Retry?`,"setup.progress.details":`Details`,"setup.progress.retry":`Retry`,"setup.progress.resume":`Resume`,"setup.progress.resumeAll":`Resume all`,"setup.progress.retryLater":`Retry becomes available once the other downloads finish.`,"setup.progress.skipModel":`Skip this model`,"setup.progress.cancel":`Cancel`,"setup.progress.keepsGoing":`Downloads keep going if you switch away.`,"setup.progress.cancelTitle":`Stop downloading?`,"setup.progress.cancelBody":`Finished models stay. Partial downloads are kept so you can resume.`,"setup.progress.cancelConfirm":`Stop`,"setup.progress.cancelKeep":`Keep downloading`,"setup.progress.announceState":`{name}: {state}`,"setup.progress.announceFailed":`{name} failed to download.`,"setup.progress.announceOverall":`Downloads {n} percent done.`,"setup.fail.network":`The connection dropped while downloading {name}. Press Retry to continue from where it stopped.`,"setup.fail.diskFull":`Ran out of disk space after {done} of {name}. Free {need} and press Retry. Nothing was lost; the download continues from where it stopped.`,"setup.fail.verify":`{name} downloaded but didn’t load. Retry deletes it and downloads it again.`,"setup.fail.lemonade":`Lemonade couldn’t download {name}. Details has its message.`,"setup.eta.sec":`about {n} sec`,"setup.eta.min":`about {n} min`,"setup.eta.long":`over 2 hours`,"setup.eta.secSpoken":`about {n} seconds left`,"setup.eta.minSpoken":`about {n} minutes left`,"setup.ready.title":`GAIA is ready.`,"setup.ready.answersLocal":`{model} answers on this PC.`,"setup.ready.answersCloud":`{model} answers in the cloud.`,"setup.ready.start":`Start chatting`,"setup.ready.chat":`Chat`,"setup.ready.vision":`Vision`,"setup.ready.visionOff":`Off. Add {name} in Settings to read images.`,"setup.ready.documents":`Documents`,"setup.ready.notInstalled":`Not installed (add later in Settings)`,"setup.ready.gpu":`GPU memory`,"setup.ready.gpuNow":`GPU memory is now {gb}.`,"setup.ready.gpuChanged":`GPU memory changed.`,"gpu.title":`Give the GPU more memory`,"gpu.settingsTitle":`GPU memory`,"gpu.body":`This PC shares {total} between the CPU and the GPU. The GPU has {gpu} now. Models run on the GPU, so more here means bigger models.`,"gpu.split.aria":`Memory split: CPU {cpu}, GPU {gpu}`,"gpu.split.gpu":`GPU {gb}`,"gpu.split.added":`Added {gb}`,"gpu.split.ariaTarget":`Memory split after the change: CPU {cpu}, GPU {gpu} (now {now})`,"gpu.split.cpu":`CPU {gb}`,"gpu.presets.label":`GPU memory`,"gpu.presets.gpu":`GPU {gb}`,"gpu.unlock.one":`With {gb} for the GPU, {a} fits.`,"gpu.unlock.two":`With {gb} for the GPU, {a} and {b} fit.`,"gpu.unlock.none":`With {gb} for the GPU, bigger models load faster and hold longer chats.`,"gpu.reserve":`GAIA keeps at least {gb} for {os} and your apps.`,"gpu.needs":`Changing it needs administrator permission and a restart.`,"gpu.noPresets":`This PC can’t give the GPU more memory and still keep enough for the system.`,"gpu.apply":`Apply`,"gpu.showMe":`Show me how`,"gpu.skip":`Skip for now`,"gpu.undo":`Undo`,"gpu.ok":`OK`,"gpu.tryAgain":`Try again`,"gpu.keep":`Keep {gb}`,"gpu.waiting":`Waiting for permission…`,"gpu.applied":`Done. Restart your PC to use {gb}.`,"gpu.appliedAny":`Done. Restart your PC to use the new GPU memory.`,"gpu.denied":`Permission wasn’t given, so nothing changed.`,"gpu.consent.title":`Give the GPU {gb}?`,"gpu.consent.titleAny":`Give the GPU more memory?`,"gpu.consent.body":`GAIA will change {name} so the GPU has {gb}. This needs administrator permission and a restart. Nothing else changes, and you can change it back in Settings.`,"gpu.consent.bodyAny":`GAIA will change {name} so the GPU has more memory. This needs administrator permission and a restart. Nothing else changes, and you can change it back in Settings.`,"gpu.consent.saved":`The GPU has {gb} now. GAIA saves this setting so you can undo.`,"gpu.revert.title":`Undo the GPU memory change?`,"gpu.revert.body":`GAIA will put GPU memory back the way it was before GAIA changed it. This needs administrator permission and a restart.`,"gpu.pending.restart":`Restart your PC to use {gb}.`,"gpu.pending.restartAny":`Restart your PC to use the new GPU memory.`,"gpu.pending.restartHow":`GAIA never restarts it for you; save your work first.`,"gpu.pending.downloadsFirst":`Downloads can start now; restart when they finish.`,"gpu.pending.tookEffect":`GPU memory is now {gb}.`,"gpu.pending.notApplied":`The PC still reports {gb}. The change may not have applied. Try again, or follow the steps to set it yourself.`,"gpu.guided.lede":`To give the GPU {gb}:`,"gpu.guided.loading":`Getting the steps for this PC…`,"gpu.guided.done":`I’ve done this`,"gpu.guided.back":`Back`,"gpu.copy":`Copy`,"gpu.copied":`Copied`,"gpu.copyAria":`Copy {what}`,"gpu.copyFailed":`Couldn’t copy: {reason}. Select the text and copy it instead.`,"settings.models.title":`Models on this PC`,"settings.models.warn.kept":`{name} stays on this PC. Unticking it only stops setup from downloading it again; Remove deletes it.`,"settings.models.warn.vision":`Without {name}, GAIA can’t read images or screenshots. Tick it to download it.`,"settings.models.warn.documents":`Without {name}, GAIA can’t search your files or remember things. Tick it to download it.`,"settings.models.lede":`Tick what you want on this PC. Ticked models that are missing download when you apply; unticking never deletes one.`,"settings.models.apply":`Apply changes`,"settings.models.applyDownload":`Apply: download {size}`,"settings.models.applying":`Saving…`,"settings.models.applied":`Saved.`,"settings.models.remove":`Remove`,"settings.models.removeAria":`Remove {name}`,"settings.models.removeTitle":`Remove {name}?`,"settings.models.removeBody":`This frees {size}. You can download it again.`,"settings.models.removeVision":`This frees {size} and turns off reading images. You can download it again.`,"settings.models.removeConfirm":`Remove`,"settings.models.keep":`Keep`,"settings.models.removed":`Removed {name}; {size} freed.`,"settings.models.unavailable":`The local model server isn’t answering, so GAIA can’t list the models on this PC yet.`,"settings.models.downloads":`Downloads`,"download.chip":`Downloading {done} of {count} · {pct}%`,"download.chipFailed":`A download failed`,"download.chipAria":`Model downloads. Open Settings to see them.`},O={meta:{code:`en`,nativeName:`English`,englishName:`English`,dir:`ltr`,showEnglishInBrackets:!1},messages:D},k=[O,E],A=O.meta.code,j=new Map(k.map(e=>[e.meta.code,e]));function M(e){return typeof e==`string`&&j.has(e)}function N(e){let t=j.get(e);if(!t)throw Error(`Unknown UI locale "${e}". Registered: ${[...j.keys()].join(`, `)}. Add it to LOCALES in src/i18n/registry.ts.`);return t}var P=``,F=``,I=``,L=``;function R(e,t){return`${t===`rtl`?F:P}${e}${L}`}function z(e,t,n){return N(e).meta.dir===`rtl`?`${t} ${R(`(${n})`,`ltr`)}`:`${t} (${n})`}function B(e){return e.nativeName===e.englishName?e.nativeName:e.dir===`rtl`?`${R(e.nativeName,`rtl`)} ${R(`(${e.englishName})`,`ltr`)}`:`${e.nativeName} (${e.englishName})`}var V=(e,t)=>({ref:e,params:t});function H(e,t,n,r=!1){return e.messages[t].replace(/\{(\w+)\}/g,(i,a)=>{let o=n?.[a];if(o===void 0)throw Error(`Message "${t}" needs a {${a}} param, and the caller passed none.`);return typeof o==`object`?H(e,o.ref,o.params,r):r&&typeof o==`string`?`${I}${o}${L}`:String(o)})}function U(e,t,n){return W(e,e=>e(t,n))}function W(e,t){let n=N(e),r=n.meta.dir===`rtl`,i=t((e,t)=>H(n,e,t,r));if(!n.meta.showEnglishInBrackets||n===O)return i;let a=t((e,t)=>H(O,e,t,r));return i===a?i:`${R(i,n.meta.dir)}${K}${R(`(${a})`,`ltr`)}`}function G(e,t,n){let r=N(e);return H(r,t,n,r.meta.dir===`rtl`)}var K=` `;function q(e){let t=e.indexOf(`${L}${K}${P}(`);return t<0?[e]:[e.slice(0,t+1),e.slice(t+1+1)]}function J(e,t){let n=0;for(let r=t;r<e.length;r++){let t=e[r];if(t===P||t===F||t===I)n++;else if(t===L&&--n===0)return r}return-1}function Y(e){let t=`${P}(`,n=`${L}${K}${t}`,r=[],i=0,a=e.startsWith(t)?-1:0;for(;;){let t=a<0?-1:e.indexOf(n,a);if(a>=0&&t<0)break;let o=a<0?0:t+1+1,s=J(e,o);if(s<0)break;o>i&&r.push({text:e.slice(i,o),gloss:!1}),r.push({text:e.slice(o,s+1),gloss:!0}),i=s+1,a=s}return r.length===0?null:(i<e.length&&r.push({text:e.slice(i),gloss:!1}),r)}function ee(e,t){return`${e}.${t===1?`one`:`other`}`}function te(e){return Object.prototype.hasOwnProperty.call(O.messages,e)}function ne(e){let{meta:t}=N(e);document.documentElement.lang=t.code,document.documentElement.dir=t.dir}var re=t((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),X=t(((e,t)=>{t.exports=re()})),Z=X(),ie=new Set([`option`,`optgroup`,`title`,`textarea`,`style`,`script`,`text`,`tspan`,`textPath`,`desc`]);function ae(e,t){let n=Y(e);if(!n)return e;let r=n.map(({text:e,gloss:t},n)=>t?(0,Z.jsxs)(`small`,{className:`i18n-gloss`,lang:`en`,children:[e]},n):e);return(0,Z.jsxs)(`i18n-label`,{children:r},t)}function Q(e,t){if(typeof e==`string`)return ae(e,t);if(!Array.isArray(e))return e;let n;return e.forEach((t,r)=>{let i=Q(t,`i18n-${r}`);i!==t&&(n??=[...e],n[r]=i)}),n??e}function $(e,t){if(typeof e!=`string`||ie.has(e))return t;let{children:n}=t,r=Q(n);return r===n?t:{...t,children:r}}var oe=(e,t,n)=>(0,Z.jsx)(e,$(e,t),n),se=(e,t,n)=>(0,Z.jsxs)(e,$(e,t),n),ce=/^https?:\/\/(127\.0\.0\.1|localhost):\d+\/api$/,le=`http://localhost:4200/api`;function ue(){if(typeof window>`u`)return`/api`;if(window.location.protocol===`file:`){let e=new URLSearchParams(window.location.search).get(`api`);return e&&ce.test(e)?e:le}return`/api`}export{T as C,w as S,r as T,V as _,X as a,z as b,ne as c,N as d,M as f,ee as g,B as h,se as i,q as l,R as m,Z as n,A as o,te as p,oe as r,k as s,ue as t,W as u,U as v,v as w,D as x,G as y};
|