@neuralnomads/codenomad-dev 0.14.0-dev-20260416-657e78da → 0.14.0-dev-20260418-e022a158

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/server/http-server.js +2 -31
  2. package/dist/server/routes/workspaces.js +118 -0
  3. package/dist/workspaces/git-mutations.js +98 -0
  4. package/dist/workspaces/git-status.js +323 -0
  5. package/dist/workspaces/git-worktrees.js +18 -1
  6. package/dist/workspaces/worktree-directory.js +74 -0
  7. package/package.json +1 -1
  8. package/public/assets/{ChangesTab-CFkk3tAp.js → ChangesTab-DUZlwLiK.js} +2 -2
  9. package/public/assets/{DiffToolbar-CQQLR1mp.js → DiffToolbar-C32dRoEE.js} +1 -1
  10. package/public/assets/{FilesTab-CXgucPtN.js → FilesTab-BHR_yoxs.js} +2 -2
  11. package/public/assets/GitChangesTab-glvFfIqf.js +2 -0
  12. package/public/assets/{SplitFilePanel-CupweEA5.js → SplitFilePanel-c1Cyzd2Q.js} +1 -1
  13. package/public/assets/StatusTab-D_y6grlM.js +1 -0
  14. package/public/assets/{bundle-full-B-5u6Iv3.js → bundle-full-xErn6pK2.js} +1 -1
  15. package/public/assets/{diff-viewer-_ehhYA-Z.js → diff-viewer-Ti4vD-Wf.js} +1 -1
  16. package/public/assets/index-Buu9pQM-.js +1 -0
  17. package/public/assets/index-D5K3x-5q.js +1 -0
  18. package/public/assets/index-DAUGrHIr.js +1 -0
  19. package/public/assets/index-DCKsvmLK.js +1 -0
  20. package/public/assets/{index-BqiNjV6R.js → index-DNjsUvJP.js} +1 -1
  21. package/public/assets/index-KGa2MZ03.js +1 -0
  22. package/public/assets/index-MN-xsoRk.js +2 -0
  23. package/public/assets/{index-CxQr-wOF.js → index-RbYx88R2.js} +1 -1
  24. package/public/assets/index-Vi334d28.js +1 -0
  25. package/public/assets/index-s309YxXV.css +1 -0
  26. package/public/assets/{loading-Dck2H3XH.js → loading-8z6r7QGU.js} +1 -1
  27. package/public/assets/main-BL6QgWzz.js +48 -0
  28. package/public/assets/{markdown-CFV9kR80.js → markdown-CN__9g8I.js} +3 -3
  29. package/public/assets/monaco-viewer-C8arwHE9.js +26 -0
  30. package/public/assets/{todo-Ghwirj-b.js → todo-CGjayFGz.js} +1 -1
  31. package/public/assets/{tool-call-BC2Pv3uG.js → tool-call-Wyw279OP.js} +3 -3
  32. package/public/assets/{unified-picker-Dw0kTXoT.js → unified-picker-DqT__5EQ.js} +1 -1
  33. package/public/assets/{wrap-text-D2MJk2ad.js → wrap-text-DJEP0aF1.js} +1 -1
  34. package/public/index.html +4 -4
  35. package/public/loading.html +4 -4
  36. package/public/sw.js +1 -1
  37. package/public/assets/GitChangesTab-BidSb28_.js +0 -2
  38. package/public/assets/StatusTab-C2Pl_Vce.js +0 -1
  39. package/public/assets/index-BnfDkr8C.js +0 -1
  40. package/public/assets/index-BntAaLZs.js +0 -1
  41. package/public/assets/index-BwCEJ4BE.css +0 -1
  42. package/public/assets/index-DXaitXVC.js +0 -1
  43. package/public/assets/index-DzRzoTK8.js +0 -2
  44. package/public/assets/index-ShHad48G.js +0 -1
  45. package/public/assets/index-_EaXFUIj.js +0 -1
  46. package/public/assets/index-mMh5TJvW.js +0 -1
  47. package/public/assets/main-BsIf5lOY.js +0 -50
  48. package/public/assets/monaco-viewer-CMM6n0T3.js +0 -25
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/monaco-viewer-CMM6n0T3.js","assets/git-diff-vendor-CSgooKT_.js","assets/fast-diff-vendor-DgdwVvTQ.js","assets/highlight-vendor-8FKMu9os.js","assets/git-diff-vendor-HAZkIolJ.css"])))=>i.map(i=>d[i]);
2
- import{_ as B}from"./index-DzRzoTK8.js";import{m as V,t as h,i as r,d as $,a as D,f as K}from"./monaco-viewer-CMM6n0T3.js";import{c as f,n as d,a as w,S as c,F as R,z as G,A as N}from"./git-diff-vendor-CSgooKT_.js";import{D as j}from"./DiffToolbar-CQQLR1mp.js";import{S as q}from"./SplitFilePanel-CupweEA5.js";import{R as H}from"./main-BsIf5lOY.js";import"./fast-diff-vendor-DgdwVvTQ.js";import"./highlight-vendor-8FKMu9os.js";import"./wrap-text-D2MJk2ad.js";var S=h("<div class=file-viewer-empty><span class=file-viewer-empty-text>"),J=h('<div class="file-viewer-panel flex-1"><div class="file-viewer-content file-viewer-content--monaco">'),Q=h('<div class="p-3 text-xs text-secondary">'),A=h('<span class="text-[10px] text-secondary">'),z=h("<span class=file-list-item-additions>+"),O=h("<span class=file-list-item-deletions>-"),T=h("<div><div class=file-list-item-content><div class=file-list-item-path><span class=file-path-text></span></div><div class=file-list-item-stats>"),U=h("<span class=files-tab-selected-path><span class=file-path-text>"),X=h('<div class=files-tab-stats style="flex:0 0 auto"><span class="files-tab-stat files-tab-stat-additions"><span class=files-tab-stat-value>+</span></span><span class="files-tab-stat files-tab-stat-deletions"><span class=files-tab-stat-value>-'),Y=h("<button type=button class=files-header-icon-button style=margin-left:auto>"),Z=h("<span class=text-error>");const p=N(()=>B(()=>import("./monaco-viewer-CMM6n0T3.js").then(e=>e.ad),__vite__mapDeps([0,1,2,3,4])).then(e=>({default:e.MonacoDiffViewer}))),ce=e=>{const P=f(()=>e.activeSessionId()),y=f(()=>!!(P()&&P()!=="info")),M=f(()=>y()?e.entries():null),b=f(()=>{const o=M();return Array.isArray(o)?[...o].sort((s,g)=>String(s.path||"").localeCompare(String(g.path||""))):[]}),F=f(()=>b().reduce((o,s)=>(o.additions+=typeof s.added=="number"?s.added:0,o.deletions+=typeof s.removed=="number"?s.removed:0,o),{additions:0,deletions:0})),L=f(()=>b().filter(o=>o&&o.status!=="deleted")),I=f(()=>{const o=b(),s=e.selectedPath(),g=e.mostChangedPath();return(o.find(_=>_.path===s)||(g?o.find(_=>_.path===g):void 0))??null}),W=f(()=>y()?M()===null?e.t("instanceShell.gitChanges.loading"):L().length===0?e.t("instanceShell.gitChanges.empty"):e.t("instanceShell.filesShell.viewerEmpty"):e.t("instanceShell.gitChanges.noSessionSelected"));return V(()=>{const o=F(),s=I(),g=b(),x=L(),_=()=>(()=>{var t=J(),l=t.firstChild;return r(l,d(c,{get when(){return e.selectedLoading()},get fallback(){return d(c,{get when(){return e.selectedError()},get fallback(){return d(c,{get when(){return V(()=>!!(s&&e.selectedBefore()!==null&&e.selectedAfter()!==null&&s.status!=="deleted"))()?{path:s.path,before:e.selectedBefore(),after:e.selectedAfter()}:null},get fallback(){return(()=>{var i=S(),a=i.firstChild;return r(a,W),i})()},children:i=>d(G,{get fallback(){return(()=>{var a=S(),u=a.firstChild;return r(u,()=>e.t("instanceInfo.loading")),a})()},get children(){return d(p,{get scopeKey(){return e.scopeKey()},get path(){return String(i().path||"")},get before(){return String(i().before||"")},get after(){return String(i().after||"")},get viewMode(){return e.diffViewMode()},get contextMode(){return e.diffContextMode()},get wordWrap(){return e.diffWordWrapMode()}})}})})},children:i=>(()=>{var a=S(),u=a.firstChild;return r(u,i),a})()})},get children(){var i=S(),a=i.firstChild;return r(a,()=>e.t("instanceInfo.loading")),i}})),t})(),k=()=>(()=>{var t=Q();return r(t,W),t})();return d(q,{get header(){return[(()=>{var t=U(),l=t.firstChild;return r(l,()=>(s==null?void 0:s.path)||e.t("instanceShell.rightPanel.tabs.gitChanges")),w(()=>$(t,"title",(s==null?void 0:s.path)||e.t("instanceShell.rightPanel.tabs.gitChanges"))),t})(),(()=>{var t=X(),l=t.firstChild,i=l.firstChild;i.firstChild;var a=l.nextSibling,u=a.firstChild;return u.firstChild,r(i,()=>o.additions,null),r(u,()=>o.deletions,null),r(t,d(c,{get when(){return e.statusError()},children:v=>(()=>{var n=Z();return r(n,v),n})()}),null),t})(),(()=>{var t=Y();return t.$$click=()=>e.onRefresh(),r(t,d(H,{get class(){return`h-4 w-4${e.statusLoading()?" animate-spin":""}`}})),w(l=>{var i=e.t("instanceShell.rightPanel.actions.refresh"),a=e.t("instanceShell.rightPanel.actions.refresh"),u=!y()||e.statusLoading()||M()===null;return i!==l.e&&$(t,"title",l.e=i),a!==l.t&&$(t,"aria-label",l.t=a),u!==l.a&&(t.disabled=l.a=u),l},{e:void 0,t:void 0,a:void 0}),t})(),d(j,{get viewMode(){return e.diffViewMode()},get contextMode(){return e.diffContextMode()},get wordWrapMode(){return e.diffWordWrapMode()},get onViewModeChange(){return e.onViewModeChange},get onContextModeChange(){return e.onContextModeChange},get onWordWrapModeChange(){return e.onWordWrapModeChange}})]},list:{panel:()=>d(c,{get when(){return x.length>0},get fallback(){return k()},get children(){return d(R,{each:g,children:t=>(()=>{var l=T(),i=l.firstChild,a=i.firstChild,u=a.firstChild,v=a.nextSibling;return l.$$click=()=>{e.onOpenFile(t.path)},r(u,()=>t.path),r(v,d(c,{get when(){return t.status==="deleted"},get children(){var n=A();return r(n,()=>e.t("instanceShell.gitChanges.deleted")),n}}),null),r(v,d(c,{get when(){return t.status!=="deleted"},get children(){return[(()=>{var n=z();return n.firstChild,r(n,()=>t.added,null),n})(),(()=>{var n=O();return n.firstChild,r(n,()=>t.removed,null),n})()]}}),null),w(n=>{var C=`file-list-item ${e.selectedPath()===t.path?"file-list-item-active":""}`,m=t.path;return C!==n.e&&D(l,n.e=C),m!==n.t&&$(a,"title",n.t=m),n},{e:void 0,t:void 0}),l})()})}}),overlay:()=>d(c,{get when(){return x.length>0},get fallback(){return k()},get children(){return d(R,{each:g,children:t=>(()=>{var l=T(),i=l.firstChild,a=i.firstChild,u=a.firstChild,v=a.nextSibling;return l.$$click=()=>e.onOpenFile(t.path),r(u,()=>t.path),r(v,d(c,{get when(){return t.status==="deleted"},get children(){var n=A();return r(n,()=>e.t("instanceShell.gitChanges.deleted")),n}}),null),r(v,d(c,{get when(){return t.status!=="deleted"},get children(){return[(()=>{var n=z();return n.firstChild,r(n,()=>t.added,null),n})(),(()=>{var n=O();return n.firstChild,r(n,()=>t.removed,null),n})()]}}),null),w(n=>{var C=`file-list-item ${e.selectedPath()===t.path?"file-list-item-active":""}`,m=t.path,E=t.path;return C!==n.e&&D(l,n.e=C),m!==n.t&&$(l,"title",n.t=m),E!==n.a&&$(a,"title",n.a=E),n},{e:void 0,t:void 0,a:void 0}),l})()})}})},get viewer(){return _()},get listOpen(){return e.listOpen()},get onToggleList(){return e.onToggleList},get splitWidth(){return e.splitWidth()},get onResizeMouseDown(){return e.onResizeMouseDown},get onResizeTouchStart(){return e.onResizeTouchStart},get isPhoneLayout(){return e.isPhoneLayout()},get overlayAriaLabel(){return e.t("instanceShell.rightPanel.tabs.gitChanges")}})})};K(["click"]);export{ce as default};
@@ -1 +0,0 @@
1
- import{m as Pe,P as Xe,t as _,i as h,a as Ye,d as O,f as Ge}from"./monaco-viewer-CMM6n0T3.js";import{n as d,m as S,b as T,o as k,k as ee,l as te,q as ae,s as M,d as I,c as W,S as J,t as Qe,w as we,a as he,F as ge}from"./git-diff-vendor-CSgooKT_.js";import{I as ce,P as Ze,Q as F,T as re,U as Je,V as et,W as ke,X as Ie,Y as Te,Z as tt,_ as fe,$ as le,a0 as de,a1 as $e,a2 as ne,a3 as oe,a4 as nt,a5 as me,a6 as ot,a7 as st,a8 as A,a9 as be,aa as it,ab as rt,ac as lt,ad as R,ae as at,af as ct,ag as Se,ah as dt,ai as pe,aj as ut,ak as gt,al as ft,am as pt}from"./main-BsIf5lOY.js";import{u as ht}from"./index-DzRzoTK8.js";import{T as mt}from"./todo-Ghwirj-b.js";import"./fast-diff-vendor-DgdwVvTQ.js";import"./highlight-vendor-8FKMu9os.js";const bt=[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}],["path",{d:"M4 2C2.8 3.7 2 5.7 2 8",key:"tap9e0"}],["path",{d:"M22 8c0-2.3-.8-4.3-2-6",key:"5bb3ad"}]],vt=e=>d(ce,S(e,{name:"BellRing",iconNode:bt})),yt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],xt=e=>d(ce,S(e,{name:"Info",iconNode:yt})),Ct=[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]],wt=e=>d(ce,S(e,{name:"TerminalSquare",iconNode:Ct})),St=[["polygon",{points:"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2",key:"h1p8hx"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],Pt=e=>d(ce,S(e,{name:"XOctagon",iconNode:St}));var De=ee();function kt(){return te(De)}function It(){const e=kt();if(e===void 0)throw new Error("[kobalte]: `useDomCollectionContext` must be used within a `DomCollectionProvider` component");return e}function Oe(e,o){return!!(o.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}function Tt(e,o){var t;const l=o.ref();if(!l)return-1;let r=e.length;if(!r)return-1;for(;r--;){const n=(t=e[r])==null?void 0:t.ref();if(n&&Oe(n,l))return r+1}return 0}function $t(e){const o=e.map((r,t)=>[t,r]);let l=!1;return o.sort(([r,t],[n,s])=>{const i=t.ref(),c=s.ref();return i===c||!i||!c?0:Oe(i,c)?(r>n&&(l=!0),-1):(r<n&&(l=!0),1)}),l?o.map(([r,t])=>t):e}function _e(e,o){const l=$t(e);e!==l&&o(l)}function Dt(e){var t,n;const o=e[0],l=(t=e[e.length-1])==null?void 0:t.ref();let r=(n=o==null?void 0:o.ref())==null?void 0:n.parentElement;for(;r;){if(l&&r.contains(l))return r;r=r.parentElement}return re(r).body}function Ot(e,o){T(()=>{const l=setTimeout(()=>{_e(e(),o)});k(()=>clearTimeout(l))})}function _t(e,o){if(typeof IntersectionObserver!="function"){Ot(e,o);return}let l=[];T(()=>{const r=()=>{const s=!!l.length;l=e(),s&&_e(e(),o)},t=Dt(e()),n=new IntersectionObserver(r,{root:t});for(const s of e()){const i=s.ref();i&&n.observe(i)}k(()=>n.disconnect())})}function Mt(e={}){const[o,l]=Ze({value:()=>et(e.items),onChange:n=>{var s;return(s=e.onItemsChange)==null?void 0:s.call(e,n)}});_t(o,l);const r=n=>(l(s=>{const i=Tt(s,n);return Je(s,n,i)}),()=>{l(s=>{const i=s.filter(c=>c.ref()!==n.ref());return s.length===i.length?s:i})});return{DomCollectionProvider:n=>d(De.Provider,{value:{registerItem:r},get children(){return n.children}})}}function Et(e){const o=It(),l=F({shouldRegisterItem:!0},e);T(()=>{if(!l.shouldRegisterItem)return;const r=o.registerItem(l.getItem());k(r)})}var At={};be(At,{Arrow:()=>ke,Content:()=>Ee,Portal:()=>Ae,Root:()=>Re,Tooltip:()=>Z,Trigger:()=>Fe,useTooltipContext:()=>ue});var Me=ee();function ue(){const e=te(Me);if(e===void 0)throw new Error("[kobalte]: `useTooltipContext` must be used within a `Tooltip` component");return e}function Ee(e){const o=ue(),l=F({id:o.generateId("content")},e),[r,t]=M(l,["ref","style"]);return T(()=>k(o.registerContentId(t.id))),d(J,{get when(){return o.contentPresent()},get children(){return d($e.Positioner,{get children(){return d(nt,S({ref(n){var s=ne(i=>{o.setContentRef(i)},r.ref);typeof s=="function"&&s(n)},role:"tooltip",disableOutsidePointerEvents:!1,get style(){return me({"--kb-tooltip-content-transform-origin":"var(--kb-popper-content-transform-origin)",position:"relative"},r.style)},onFocusOutside:n=>n.preventDefault(),onDismiss:()=>o.hideTooltip(!0)},()=>o.dataset(),t))}})}})}function Ae(e){const o=ue();return d(J,{get when(){return o.contentPresent()},get children(){return d(Xe,e)}})}function Rt(e,o,l){const r=e.split("-")[0],t=o.getBoundingClientRect(),n=l.getBoundingClientRect(),s=[],i=t.left+t.width/2,c=t.top+t.height/2;switch(r){case"top":s.push([t.left,c]),s.push([n.left,n.bottom]),s.push([n.left,n.top]),s.push([n.right,n.top]),s.push([n.right,n.bottom]),s.push([t.right,c]);break;case"right":s.push([i,t.top]),s.push([n.left,n.top]),s.push([n.right,n.top]),s.push([n.right,n.bottom]),s.push([n.left,n.bottom]),s.push([i,t.bottom]);break;case"bottom":s.push([t.left,c]),s.push([n.left,n.top]),s.push([n.left,n.bottom]),s.push([n.right,n.bottom]),s.push([n.right,n.top]),s.push([t.right,c]);break;case"left":s.push([i,t.top]),s.push([n.right,n.top]),s.push([n.left,n.top]),s.push([n.left,n.bottom]),s.push([n.right,n.bottom]),s.push([i,t.bottom]);break}return s}var H={},Ft=0,X=!1,E,Q,Y;function Re(e){const o=`tooltip-${ae()}`,l=`${++Ft}`,r=F({id:o,openDelay:700,closeDelay:300,skipDelayDuration:300},e),[t,n]=M(r,["id","open","defaultOpen","onOpenChange","disabled","triggerOnFocusOnly","openDelay","closeDelay","skipDelayDuration","ignoreSafeArea","forceMount"]);let s;const[i,c]=I(),[a,f]=I(),[u,g]=I(),[y,v]=I(n.placement),x=Ie({open:()=>t.open,defaultOpen:()=>t.defaultOpen,onOpenChange:b=>{var P;return(P=t.onOpenChange)==null?void 0:P.call(t,b)}}),{present:$}=Te({show:()=>t.forceMount||x.isOpen(),element:()=>u()??null}),m=()=>{H[l]=C},w=()=>{for(const b in H)b!==l&&(H[b](!0),delete H[b])},C=(b=!1)=>{b||t.closeDelay&&t.closeDelay<=0?(window.clearTimeout(s),s=void 0,x.close()):s||(s=window.setTimeout(()=>{s=void 0,x.close()},t.closeDelay)),window.clearTimeout(E),E=void 0,t.skipDelayDuration&&t.skipDelayDuration>=0&&(Y=window.setTimeout(()=>{window.clearTimeout(Y),Y=void 0},t.skipDelayDuration)),X&&(window.clearTimeout(Q),Q=window.setTimeout(()=>{delete H[l],Q=void 0,X=!1},t.closeDelay))},p=()=>{clearTimeout(s),s=void 0,w(),m(),X=!0,x.open(),window.clearTimeout(E),E=void 0,window.clearTimeout(Q),Q=void 0,window.clearTimeout(Y),Y=void 0},q=()=>{w(),m(),!x.isOpen()&&!E&&!X?E=window.setTimeout(()=>{E=void 0,X=!0,p()},t.openDelay):x.isOpen()||p()},K=(b=!1)=>{!b&&t.openDelay&&t.openDelay>0&&!s&&!Y?q():p()},z=()=>{window.clearTimeout(E),E=void 0,X=!1},B=()=>{window.clearTimeout(s),s=void 0},U=b=>fe(a(),b)||fe(u(),b),D=b=>{const P=a(),N=u();if(!(!P||!N))return Rt(b,P,N)},L=b=>{const P=b.target;if(U(P)){B();return}if(!t.ignoreSafeArea){const N=D(y());if(N&&ot(st(b),N)){B();return}}s||C()};T(()=>{if(!x.isOpen())return;const b=re();b.addEventListener("pointermove",L,!0),k(()=>{b.removeEventListener("pointermove",L,!0)})}),T(()=>{const b=a();if(!b||!x.isOpen())return;const P=ze=>{const Ve=ze.target;fe(Ve,b)&&C(!0)},N=tt();N.addEventListener("scroll",P,{capture:!0}),k(()=>{N.removeEventListener("scroll",P,{capture:!0})})}),k(()=>{clearTimeout(s),H[l]&&delete H[l]});const ie={dataset:W(()=>({"data-expanded":x.isOpen()?"":void 0,"data-closed":x.isOpen()?void 0:""})),isOpen:x.isOpen,isDisabled:()=>t.disabled??!1,triggerOnFocusOnly:()=>t.triggerOnFocusOnly??!1,contentId:i,contentPresent:$,openTooltip:K,hideTooltip:C,cancelOpening:z,generateId:de(()=>r.id),registerContentId:le(c),isTargetOnTooltip:U,setTriggerRef:f,setContentRef:g};return d(Me.Provider,{value:ie,get children(){return d($e,S({anchorRef:a,contentRef:u,onCurrentPlacementChange:v},n))}})}function Fe(e){let o;const l=ue(),[r,t]=M(e,["ref","onPointerEnter","onPointerLeave","onPointerDown","onClick","onFocus","onBlur"]);let n=!1,s=!1,i=!1;const c=()=>{n=!1},a=()=>{!l.isOpen()&&(s||i)&&l.openTooltip(i)},f=m=>{l.isOpen()&&!s&&!i&&l.hideTooltip(m)},u=m=>{A(m,r.onPointerEnter),!(m.pointerType==="touch"||l.triggerOnFocusOnly()||l.isDisabled()||m.defaultPrevented)&&(s=!0,a())},g=m=>{A(m,r.onPointerLeave),m.pointerType!=="touch"&&(s=!1,i=!1,l.isOpen()?f():l.cancelOpening())},y=m=>{A(m,r.onPointerDown),n=!0,re(o).addEventListener("pointerup",c,{once:!0})},v=m=>{A(m,r.onClick),s=!1,i=!1,f(!0)},x=m=>{A(m,r.onFocus),!(l.isDisabled()||m.defaultPrevented||n)&&(i=!0,a())},$=m=>{A(m,r.onBlur);const w=m.relatedTarget;l.isTargetOnTooltip(w)||(s=!1,i=!1,f(!0))};return k(()=>{re(o).removeEventListener("pointerup",c)}),d(oe,S({as:"button",ref(m){var w=ne(C=>{l.setTriggerRef(C),o=C},r.ref);typeof w=="function"&&w(m)},get"aria-describedby"(){return Pe(()=>!!l.isOpen())()?l.contentId():void 0},onPointerEnter:u,onPointerLeave:g,onPointerDown:y,onClick:v,onFocus:x,onBlur:$},()=>l.dataset(),t))}var Z=Object.assign(Re,{Arrow:ke,Content:Ee,Portal:Ae,Trigger:Fe}),Kt={};be(Kt,{Collapsible:()=>Bt,Content:()=>ve,Root:()=>ye,Trigger:()=>xe,useCollapsibleContext:()=>se});var Ke=ee();function se(){const e=te(Ke);if(e===void 0)throw new Error("[kobalte]: `useCollapsibleContext` must be used within a `Collapsible.Root` component");return e}function ve(e){const[o,l]=I(),r=se(),t=F({id:r.generateId("content")},e),[n,s]=M(t,["ref","id","style"]),{present:i}=Te({show:r.shouldMount,element:()=>o()??null}),[c,a]=I(0),[f,u]=I(0);let y=r.isOpen()||i();return Qe(()=>{const v=requestAnimationFrame(()=>{y=!1});k(()=>{cancelAnimationFrame(v)})}),T(we(i,()=>{if(!o())return;o().style.transitionDuration="0s",o().style.animationName="none";const v=o().getBoundingClientRect();a(v.height),u(v.width),y||(o().style.transitionDuration="",o().style.animationName="")})),T(we(r.isOpen,v=>{!v&&o()&&(o().style.transitionDuration="",o().style.animationName="")},{defer:!0})),T(()=>k(r.registerContentId(n.id))),d(J,{get when(){return i()},get children(){return d(oe,S({as:"div",ref(v){var x=ne(l,n.ref);typeof x=="function"&&x(v)},get id(){return n.id},get style(){return me({"--kb-collapsible-content-height":c()?`${c()}px`:void 0,"--kb-collapsible-content-width":f()?`${f()}px`:void 0},n.style)}},()=>r.dataset(),s))}})}function ye(e){const o=`collapsible-${ae()}`,l=F({id:o},e),[r,t]=M(l,["open","defaultOpen","onOpenChange","disabled","forceMount"]),[n,s]=I(),i=Ie({open:()=>r.open,defaultOpen:()=>r.defaultOpen,onOpenChange:f=>{var u;return(u=r.onOpenChange)==null?void 0:u.call(r,f)}}),c=W(()=>({"data-expanded":i.isOpen()?"":void 0,"data-closed":i.isOpen()?void 0:"","data-disabled":r.disabled?"":void 0})),a={dataset:c,isOpen:i.isOpen,disabled:()=>r.disabled??!1,shouldMount:()=>r.forceMount||i.isOpen(),contentId:n,toggle:i.toggle,generateId:de(()=>t.id),registerContentId:le(s)};return d(Ke.Provider,{value:a,get children(){return d(oe,S({as:"div"},c,t))}})}function xe(e){const o=se(),[l,r]=M(e,["onClick"]);return d(it,S({get"aria-expanded"(){return o.isOpen()},get"aria-controls"(){return Pe(()=>!!o.isOpen())()?o.contentId():void 0},get disabled(){return o.disabled()},onClick:n=>{A(n,l.onClick),o.toggle()}},()=>o.dataset(),r))}var Bt=Object.assign(ye,{Content:ve,Trigger:xe}),G={};be(G,{Accordion:()=>Lt,Content:()=>Ne,Header:()=>Ue,Item:()=>je,Root:()=>We,Trigger:()=>qe,useAccordionContext:()=>Ce});var Be=ee();function Le(){const e=te(Be);if(e===void 0)throw new Error("[kobalte]: `useAccordionItemContext` must be used within a `Accordion.Item` component");return e}function Ne(e){const o=Le(),l=o.generateId("content"),r=F({id:l},e),[t,n]=M(r,["id","style"]);return T(()=>k(o.registerContentId(t.id))),d(ve,S({role:"region",get"aria-labelledby"(){return o.triggerId()},get style(){return me({"--kb-accordion-content-height":"var(--kb-collapsible-content-height)","--kb-accordion-content-width":"var(--kb-collapsible-content-width)"},t.style)}},n))}function Ue(e){const o=se();return d(oe,S({as:"h3"},()=>o.dataset(),e))}var He=ee();function Ce(){const e=te(He);if(e===void 0)throw new Error("[kobalte]: `useAccordionContext` must be used within a `Accordion.Root` component");return e}function je(e){const o=Ce(),l=`${o.generateId("item")}-${ae()}`,r=F({id:l},e),[t,n]=M(r,["value","disabled"]),[s,i]=I(),[c,a]=I(),f=()=>o.listState().selectionManager(),u=()=>f().isSelected(t.value),g={value:()=>t.value,triggerId:s,contentId:c,generateId:de(()=>n.id),registerTriggerId:le(i),registerContentId:le(a)};return d(Be.Provider,{value:g,get children(){return d(ye,S({get open(){return u()},get disabled(){return t.disabled}},n))}})}function We(e){let o;const l=`accordion-${ae()}`,r=F({id:l,multiple:!1,collapsible:!1,shouldFocusWrap:!0},e),[t,n]=M(r,["id","ref","value","defaultValue","onChange","multiple","collapsible","shouldFocusWrap","onKeyDown","onMouseDown","onFocusIn","onFocusOut"]),[s,i]=I([]),{DomCollectionProvider:c}=Mt({items:s,onItemsChange:i}),a=rt({selectedKeys:()=>t.value,defaultSelectedKeys:()=>t.defaultValue,onSelectionChange:g=>{var y;return(y=t.onChange)==null?void 0:y.call(t,Array.from(g))},disallowEmptySelection:()=>!t.multiple&&!t.collapsible,selectionMode:()=>t.multiple?"multiple":"single",dataSource:s});a.selectionManager().setFocusedKey("item-1");const f=lt({selectionManager:()=>a.selectionManager(),collection:()=>a.collection(),disallowEmptySelection:()=>a.selectionManager().disallowEmptySelection(),shouldFocusWrap:()=>t.shouldFocusWrap,disallowTypeAhead:!0,allowsTabNavigation:!0},()=>o),u={listState:()=>a,generateId:de(()=>t.id)};return d(c,{get children(){return d(He.Provider,{value:u,get children(){return d(oe,S({as:"div",get id(){return t.id},ref(g){var y=ne(v=>o=v,t.ref);typeof y=="function"&&y(g)},get onKeyDown(){return R([t.onKeyDown,f.onKeyDown])},get onMouseDown(){return R([t.onMouseDown,f.onMouseDown])},get onFocusIn(){return R([t.onFocusIn])},get onFocusOut(){return R([t.onFocusOut,f.onFocusOut])}},n))}})}})}function qe(e){let o;const l=Ce(),r=Le(),t=se(),n=r.generateId("trigger"),s=F({id:n},e),[i,c]=M(s,["ref","onPointerDown","onPointerUp","onClick","onKeyDown","onMouseDown","onFocus"]);Et({getItem:()=>({ref:()=>o,type:"item",key:r.value(),textValue:"",disabled:t.disabled()})});const a=at({key:()=>r.value(),selectionManager:()=>l.listState().selectionManager(),disabled:()=>t.disabled(),shouldSelectOnPressUp:!0},()=>o),f=u=>{["Enter"," "].includes(u.key)&&u.preventDefault(),A(u,i.onKeyDown),A(u,a.onKeyDown)};return T(()=>k(r.registerTriggerId(c.id))),d(xe,S({ref(u){var g=ne(y=>o=y,i.ref);typeof g=="function"&&g(u)},get"data-key"(){return a.dataKey()},get onPointerDown(){return R([i.onPointerDown,a.onPointerDown])},get onPointerUp(){return R([i.onPointerUp,a.onPointerUp])},get onClick(){return R([i.onClick,a.onClick])},onKeyDown:f,get onMouseDown(){return R([i.onMouseDown,a.onMouseDown])},get onFocus(){return R([i.onFocus,a.onFocus])}},c))}var Lt=Object.assign(We,{Content:Ne,Header:Ue,Item:je,Trigger:qe}),Nt=_('<div><div class="flex flex-wrap items-center gap-2 text-xs text-primary"><div class="inline-flex items-center gap-1 rounded-full border border-base px-2 py-0.5 text-xs text-primary"><span class="uppercase text-[10px] tracking-wide text-muted"></span><span class="font-semibold text-primary"></span></div><div class="inline-flex items-center gap-1 rounded-full border border-base px-2 py-0.5 text-xs text-primary"><span class="uppercase text-[10px] tracking-wide text-muted"></span><span class="font-semibold text-primary"></span></div><div class="inline-flex items-center gap-1 rounded-full border border-base px-2 py-0.5 text-xs text-primary"><span class="uppercase text-[10px] tracking-wide text-muted"></span><span class="font-semibold text-primary">');const Ut=e=>{const{t:o}=ht(),l=W(()=>ct(e.instanceId,e.sessionId)??{cost:0,contextWindow:0,isSubscriptionModel:!1,inputTokens:0,outputTokens:0,reasoningTokens:0,actualUsageTokens:0,modelOutputLimit:0,contextAvailableTokens:null}),r=W(()=>l().inputTokens??0),t=W(()=>l().outputTokens??0),n=W(()=>{const i=l().isSubscriptionModel?0:l().cost;return i>0?i:0}),s=W(()=>`$${n().toFixed(2)}`);return(()=>{var i=Nt(),c=i.firstChild,a=c.firstChild,f=a.firstChild,u=f.nextSibling,g=a.nextSibling,y=g.firstChild,v=y.nextSibling,x=g.nextSibling,$=x.firstChild,m=$.nextSibling;return h(f,()=>o("contextUsagePanel.labels.input")),h(u,()=>Se(r())),h(y,()=>o("contextUsagePanel.labels.output")),h(v,()=>Se(t())),h($,()=>o("contextUsagePanel.labels.cost")),h(m,s),he(()=>Ye(i,`session-context-panel px-4 py-2 ${e.class??""}`)),i})()};var j=_('<div class="right-panel-empty right-panel-empty--left"><span class=text-xs>'),Ht=_('<div class="rounded-md border border-base bg-surface-secondary px-3 py-2"><div class="flex items-start justify-between gap-3"><div class=min-w-0><div class="text-sm font-medium text-primary"></div><p class="mt-1 text-xs text-secondary">'),jt=_('<div class="flex flex-col gap-3 min-h-0"><div class="flex items-center justify-between gap-2 text-[11px] text-secondary"><span></span><span class="flex items-center gap-2"><span style=color:var(--session-status-idle-fg)></span><span style=color:var(--session-status-working-fg)></span></span></div><div class="rounded-md border border-base bg-surface-secondary p-2 max-h-[40vh] overflow-y-auto"><div class="flex flex-col">'),Wt=_('<button type=button class="border-b border-base last:border-b-0 text-left hover:bg-surface-muted rounded-sm"><div class="flex items-center justify-between gap-3"><div class="text-xs font-mono text-primary min-w-0 flex-1 overflow-hidden whitespace-nowrap"style=text-overflow:ellipsis;direction:rtl;text-align:left;unicode-bidi:plaintext></div><div class="flex items-center gap-2 text-[11px] flex-shrink-0"><span style=color:var(--session-status-idle-fg)></span><span style=color:var(--session-status-working-fg)>'),qt=_('<div class="flex flex-col gap-2">'),zt=_("<span>"),Vt=_('<div class=status-process-card><div class=status-process-header><span class=status-process-title></span><div class=status-process-meta><span></span><span></span></div></div><div class=status-process-actions><button type=button class="button-tertiary w-full p-1 inline-flex items-center justify-center"></button><button type=button class="button-tertiary w-full p-1 inline-flex items-center justify-center"></button><button type=button class="button-tertiary w-full p-1 inline-flex items-center justify-center">'),Xt=_("<div class=status-tab-container>"),Yt=_("<span class=section-left><span class=section-label>");const on=e=>{const o=i=>e.expandedItems().includes(i),s=[{id:"yolo-mode",labelKey:"instanceShell.rightPanel.sections.yoloMode",tooltipKey:"instanceShell.rightPanel.sections.yoloMode.tooltip",render:()=>{const i=e.activeSession();return i?(()=>{var c=Ht(),a=c.firstChild,f=a.firstChild,u=f.firstChild,g=u.nextSibling;return h(u,()=>e.t("instanceShell.yoloMode.title")),h(g,()=>e.t("instanceShell.yoloMode.description")),h(a,d(ft,{get checked(){return gt(e.instanceId,i.id)},color:"warning",size:"small",get inputProps(){return{"aria-label":e.t("instanceShell.yoloMode.title")}},onChange:()=>ut(e.instanceId,i.id)}),null),c})():(()=>{var c=j(),a=c.firstChild;return h(a,()=>e.t("instanceShell.yoloMode.noSessionSelected")),c})()}},{id:"session-changes",labelKey:"instanceShell.rightPanel.sections.sessionChanges",tooltipKey:"instanceShell.rightPanel.sections.sessionChanges.tooltip",render:()=>{const i=e.activeSessionId();if(!i||i==="info")return(()=>{var u=j(),g=u.firstChild;return h(g,()=>e.t("instanceShell.sessionChanges.noSessionSelected")),u})();const c=e.activeSessionDiffs();if(c===void 0)return(()=>{var u=j(),g=u.firstChild;return h(g,()=>e.t("instanceShell.sessionChanges.loading")),u})();if(!Array.isArray(c)||c.length===0)return(()=>{var u=j(),g=u.firstChild;return h(g,()=>e.t("instanceShell.sessionChanges.empty")),u})();const a=[...c].sort((u,g)=>String(u.file||"").localeCompare(String(g.file||""))),f=a.reduce((u,g)=>(u.additions+=typeof g.additions=="number"?g.additions:0,u.deletions+=typeof g.deletions=="number"?g.deletions:0,u),{additions:0,deletions:0});return(()=>{var u=jt(),g=u.firstChild,y=g.firstChild,v=y.nextSibling,x=v.firstChild,$=x.nextSibling,m=g.nextSibling,w=m.firstChild;return h(y,()=>e.t("instanceShell.sessionChanges.filesChanged",{count:a.length})),h(x,()=>`+${f.additions}`),h($,()=>`-${f.deletions}`),h(w,d(ge,{each:a,children:C=>(()=>{var p=Wt(),q=p.firstChild,K=q.firstChild,z=K.nextSibling,B=z.firstChild,U=B.nextSibling;return p.$$click=()=>e.onOpenChangesTab(C.file),h(K,()=>C.file),h(B,()=>`+${C.additions}`),h(U,()=>`-${C.deletions}`),he(D=>{var L=e.t("instanceShell.sessionChanges.actions.show"),V=C.file;return L!==D.e&&O(p,"title",D.e=L),V!==D.t&&O(K,"title",D.t=V),D},{e:void 0,t:void 0}),p})()})),u})()}},{id:"plan",labelKey:"instanceShell.rightPanel.sections.plan",tooltipKey:"instanceShell.rightPanel.sections.plan.tooltip",render:()=>{const i=e.activeSessionId();if(!i||i==="info")return(()=>{var a=j(),f=a.firstChild;return h(f,()=>e.t("instanceShell.plan.noSessionSelected")),a})();const c=e.latestTodoState();return c?d(mt,{state:c,get emptyLabel(){return e.t("instanceShell.plan.empty")},showStatusLabel:!1}):(()=>{var a=j(),f=a.firstChild;return h(f,()=>e.t("instanceShell.plan.empty")),a})()}},{id:"background-processes",labelKey:"instanceShell.rightPanel.sections.backgroundProcesses",tooltipKey:"instanceShell.rightPanel.sections.backgroundProcesses.tooltip",render:()=>{const i=e.backgroundProcessList();return i.length===0?(()=>{var c=j(),a=c.firstChild;return h(a,()=>e.t("instanceShell.backgroundProcesses.empty")),c})():(()=>{var c=qt();return h(c,d(ge,{each:i,children:a=>(()=>{var f=Vt(),u=f.firstChild,g=u.firstChild,y=g.nextSibling,v=y.firstChild,x=v.nextSibling,$=u.nextSibling,m=$.firstChild,w=m.nextSibling,C=w.nextSibling;return h(g,()=>a.title),h(v,d(vt,{class:"h-3.5 w-3.5"})),h(x,()=>e.t("instanceShell.backgroundProcesses.status",{status:a.status})),h(y,d(J,{get when(){return typeof a.outputSizeBytes=="number"},get children(){var p=zt();return h(p,()=>e.t("instanceShell.backgroundProcesses.output",{sizeKb:Math.round((a.outputSizeBytes??0)/1024)})),p}}),null),m.$$click=()=>e.onOpenBackgroundOutput(a),h(m,d(wt,{class:"h-4 w-4"})),w.$$click=()=>e.onStopBackgroundProcess(a.id),h(w,d(Pt,{class:"h-4 w-4"})),C.$$click=()=>e.onTerminateBackgroundProcess(a.id),h(C,d(pt,{class:"h-4 w-4"})),he(p=>{var q=!!a.notifyEnabled,K=!a.notifyEnabled,z=e.t(a.notifyEnabled?"instanceShell.backgroundProcesses.notify.enabled":"instanceShell.backgroundProcesses.notify.disabled"),B=e.t(a.notifyEnabled?"instanceShell.backgroundProcesses.notify.enabled":"instanceShell.backgroundProcesses.notify.disabled"),U=e.t("instanceShell.backgroundProcesses.actions.output"),D=e.t("instanceShell.backgroundProcesses.actions.output"),L=a.status!=="running",V=e.t("instanceShell.backgroundProcesses.actions.stop"),ie=e.t("instanceShell.backgroundProcesses.actions.stop"),b=e.t("instanceShell.backgroundProcesses.actions.terminate"),P=e.t("instanceShell.backgroundProcesses.actions.terminate");return q!==p.e&&v.classList.toggle("text-success",p.e=q),K!==p.t&&v.classList.toggle("text-tertiary",p.t=K),z!==p.a&&O(v,"aria-label",p.a=z),B!==p.o&&O(v,"title",p.o=B),U!==p.i&&O(m,"aria-label",p.i=U),D!==p.n&&O(m,"title",p.n=D),L!==p.s&&(w.disabled=p.s=L),V!==p.h&&O(w,"aria-label",p.h=V),ie!==p.r&&O(w,"title",p.r=ie),b!==p.d&&O(C,"aria-label",p.d=b),P!==p.l&&O(C,"title",p.l=P),p},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0}),f})()})),c})()}},{id:"mcp",labelKey:"instanceShell.rightPanel.sections.mcp",tooltipKey:"instanceShell.rightPanel.sections.mcp.tooltip",render:()=>d(pe,{get initialInstance(){return e.instance},sections:["mcp"],showSectionHeadings:!1,class:"space-y-2"})},{id:"lsp",labelKey:"instanceShell.rightPanel.sections.lsp",tooltipKey:"instanceShell.rightPanel.sections.lsp.tooltip",render:()=>d(pe,{get initialInstance(){return e.instance},sections:["lsp"],showSectionHeadings:!1,class:"space-y-2"})},{id:"plugins",labelKey:"instanceShell.rightPanel.sections.plugins",tooltipKey:"instanceShell.rightPanel.sections.plugins.tooltip",render:()=>d(pe,{get initialInstance(){return e.instance},sections:["plugins"],showSectionHeadings:!1,class:"space-y-2"})}];return(()=>{var i=Xt();return h(i,d(J,{get when(){return e.activeSession()},children:c=>d(Ut,{get instanceId(){return e.instanceId},get sessionId(){return c().id},class:"status-tab-context-panel"})}),null),h(i,d(G.Root,{class:"right-panel-accordion",collapsible:!0,multiple:!0,get value(){return e.expandedItems()},get onChange(){return e.onExpandedItemsChange},get children(){return d(ge,{each:s,children:c=>d(G.Item,{get value(){return c.id},class:"right-panel-accordion-item",get children(){return[d(G.Header,{class:"right-panel-accordion-header-row",get children(){return[d(G.Trigger,{class:"right-panel-accordion-trigger",get children(){return[(()=>{var a=Yt(),f=a.firstChild;return h(f,()=>e.t(c.labelKey)),a})(),d(dt,{get class(){return`right-panel-accordion-chevron ${o(c.id)?"right-panel-accordion-chevron-expanded":""}`}})]}}),d(Z,{openDelay:200,gutter:4,placement:"top",get children(){return[d(Z.Trigger,{as:"button",type:"button",class:"section-info-trigger",get"aria-label"(){return e.t(c.tooltipKey)},get children(){return d(xt,{class:"section-info-icon"})}}),d(Z.Portal,{get children(){return d(Z.Content,{class:"section-info-tooltip",get children(){return e.t(c.tooltipKey)}})}})]}})]}}),d(G.Content,{class:"right-panel-accordion-content",get children(){return c.render()}})]}})})}}),null),i})()};Ge(["click"]);export{on as default};
@@ -1 +0,0 @@
1
- import{m as e}from"./index-DzRzoTK8.js";import"./git-diff-vendor-CSgooKT_.js";import"./fast-diff-vendor-DgdwVvTQ.js";import"./highlight-vendor-8FKMu9os.js";import"./monaco-viewer-CMM6n0T3.js";const s={"advancedSettings.title":"Расширенные настройки","advancedSettings.environmentVariables.title":"Переменные окружения","advancedSettings.environmentVariables.subtitle":"Применяются при запуске нового экземпляра OpenCode","advancedSettings.actions.close":"Закрыть"},t={"app.launchError.title":"Не удалось запустить OpenCode","app.launchError.description":"Не удалось запустить выбранный бинарник OpenCode. Просмотрите вывод ошибки ниже или выберите другой бинарник в настройках OpenCode.","app.launchError.binaryPathLabel":"Путь к бинарнику","app.launchError.errorOutputLabel":"Вывод ошибки","app.launchError.openAdvancedSettings":"Открыть настройки OpenCode","app.launchError.close":"Закрыть","app.launchError.closeTitle":"Закрыть (Esc)","app.launchError.fallbackMessage":"Не удалось запустить рабочее пространство","app.stopInstance.confirmMessage":"Остановить экземпляр OpenCode? Это остановит сервер.","app.stopInstance.title":"Остановить экземпляр","app.stopInstance.confirmLabel":"Остановить","app.stopInstance.cancelLabel":"Оставить запущенным","emptyState.logoAlt":"Логотип CodeNomad","emptyState.brandTitle":"CodeNomad","emptyState.tagline":"Выберите папку, чтобы начать писать код с AI","emptyState.actions.selectFolder":"Выбрать папку","emptyState.actions.selecting":"Выбор…","emptyState.keyboardShortcut":"Горячая клавиша: {shortcut}","emptyState.examples":"Примеры: {example}","emptyState.multipleInstances":"Можно иметь несколько экземпляров одной и той же папки","releases.upgradeRequired.title":"Требуется обновление","releases.upgradeRequired.message.withVersion":"Обновите CodeNomad до версии {version}, чтобы использовать последний UI.","releases.upgradeRequired.message.noVersion":"Обновите CodeNomad, чтобы использовать последний UI.","releases.upgradeRequired.action.getUpdate":"Получить обновление","releases.uiUpdated.title":"UI обновлён","releases.uiUpdated.message":"UI теперь обновлён до {version}.","releases.devUpdateAvailable.title":"Доступна dev-сборка","releases.devUpdateAvailable.message":"Доступна новая dev-сборка: {version}.","releases.devUpdateAvailable.action":"Открыть релиз"},o={"commandPalette.title":"Палитра команд","commandPalette.description":"Поиск и запуск команд","commandPalette.searchPlaceholder":"Введите команду или начните поиск…","commandPalette.empty":'Команды по запросу "{query}" не найдены',"commandPalette.category.customCommands":"Пользовательские команды","commandPalette.category.instance":"Экземпляр","commandPalette.category.session":"Сессия","commandPalette.category.agentModel":"Агент и модель","commandPalette.category.inputFocus":"Ввод и фокус","commandPalette.category.system":"Система","commandPalette.category.other":"Другое","commands.newInstance.label":"Новый экземпляр","commands.newInstance.description":"Открыть выбор папки для создания нового экземпляра","commands.newInstance.keywords":"папка, проект, рабочее пространство","commands.closeInstance.label":"Закрыть вкладку","commands.closeInstance.description":"Закрыть текущую верхнеуровневую вкладку","commands.closeInstance.keywords":"остановить, выйти, закрыть, вкладка","commands.nextInstance.label":"Следующая вкладка","commands.nextInstance.description":"Переключиться на следующую верхнеуровневую вкладку","commands.nextInstance.keywords":"переключить, навигация, вкладка","commands.previousInstance.label":"Предыдущая вкладка","commands.previousInstance.description":"Переключиться на предыдущую верхнеуровневую вкладку","commands.previousInstance.keywords":"переключить, навигация, вкладка","commands.newSession.label":"Новая сессия","commands.newSession.description":"Создать новую родительскую сессию","commands.newSession.keywords":"создать, начать","commands.closeSession.label":"Закрыть сессию","commands.closeSession.description":"Закрыть текущую родительскую сессию","commands.closeSession.keywords":"закрыть, остановить","commands.scrubSessions.label":"Очистить сессии","commands.scrubSessions.description":"Удалить пустые сессии, завершенные сессии субагентов и лишние форкнутые сессии.","commands.scrubSessions.keywords":"очистка, пустые, сессии, удалить, убрать","commands.instanceInfo.label":"Информация об экземпляре","commands.instanceInfo.description":"Открыть обзор экземпляра с логами и статусом","commands.instanceInfo.keywords":"информация, логи, консоль, вывод","commands.nextSession.label":"Следующая сессия","commands.nextSession.description":"Переключиться на следующую вкладку сессии","commands.nextSession.keywords":"переключить, навигация","commands.previousSession.label":"Предыдущая сессия","commands.previousSession.description":"Переключиться на предыдущую вкладку сессии","commands.previousSession.keywords":"переключить, навигация","commands.compactSession.label":"Компактировать сессию","commands.compactSession.description":"Суммировать и компактировать текущую сессию","commands.compactSession.keywords":"суммировать, сжать","commands.compactSession.errorFallback":"Не удалось компактировать сессию","commands.compactSession.alert.title":"Компактация не удалась","commands.compactSession.alert.message":"Компактация не удалась: {message}","commands.undoLastMessage.label":"Отменить последнее сообщение","commands.undoLastMessage.description":"Откатить последнее сообщение","commands.undoLastMessage.keywords":"откат, отмена","commands.undoLastMessage.none.title":"Нечего отменять","commands.undoLastMessage.none.message":"Нечего отменять","commands.undoLastMessage.failed.title":"Не удалось отменить","commands.undoLastMessage.failed.message":"Не удалось откатить сообщение","commands.openModelSelector.label":"Открыть выбор модели","commands.openModelSelector.description":"Выбрать другую модель","commands.openModelSelector.keywords":"модель, llm, ai","commands.selectModelVariant.label":"Выбрать вариант модели","commands.selectModelVariant.description":"Выбрать интенсивность размышлений для текущей модели","commands.selectModelVariant.keywords":"вариант, thinking, reasoning, интенсивность","commands.openAgentSelector.label":"Открыть выбор агента","commands.openAgentSelector.description":"Выбрать другого агента","commands.openAgentSelector.keywords":"агент, режим","commands.clearInput.label":"Очистить ввод","commands.clearInput.description":"Очистить поле prompt","commands.clearInput.keywords":"очистить, сброс","commands.promptSubmitShortcut.label.default":"Enter: Новая строка, Cmd/Ctrl+Enter: Отправить промпт","commands.promptSubmitShortcut.label.swapped":"Enter: Отправить промпт, Cmd/Ctrl+Enter: Новая строка","commands.promptSubmitShortcut.description":"Поменять местами Enter и Cmd/Ctrl+Enter в поле ввода промпта","commands.promptSubmitShortcut.keywords":"enter, отправить, новая строка, сочетание, cmd, ctrl, промпт","commands.thinkingBlocks.label.show":"Показать размышления","commands.thinkingBlocks.label.hide":"Скрыть размышления","commands.thinkingBlocks.description":"Показать или скрыть секции размышлений ИИ","commands.thinkingBlocks.keywords":"thinking, reasoning, переключить, показать, скрыть","commands.timelineToolCalls.label.show":"Показать Tool Calls в таймлайне","commands.timelineToolCalls.label.hide":"Скрыть Tool Calls в таймлайне","commands.timelineToolCalls.description":"Переключить отображение вызовов инструментов в таймлайне сообщений","commands.timelineToolCalls.keywords":"таймлайн, tool, переключить","commands.keyboardShortcutHints.label.show":"Показать подсказки сочетаний","commands.keyboardShortcutHints.label.hide":"Скрыть подсказки сочетаний","commands.keyboardShortcutHints.description":"Показать или скрыть подсказки сочетаний клавиш в интерфейсе","commands.keyboardShortcutHints.description.disabledWeb":"Отключено в WebUI (подсказки всегда скрыты)","commands.keyboardShortcutHints.keywords":"shortcut, shortcuts, keyboard, keybind, подсказки","commands.common.expanded":"Развернуто","commands.common.collapsed":"Свернуто","commands.common.visible":"Видимо","commands.common.hidden":"Скрыто","commands.common.enabled":"Включено","commands.common.disabled":"Выключено","commands.thinkingBlocksDefault.label":"Вид размышлений: {state}","commands.thinkingBlocksDefault.description":"Свернуть / Развернуть секции размышлений ИИ, когда они показаны","commands.thinkingBlocksDefault.keywords":"thinking, reasoning, развернуть, свернуть, по умолчанию","commands.diffViewSplit.label":"Раздельный просмотр diff","commands.diffViewSplit.description":"Показывать diff вызовов инструментов рядом","commands.diffViewSplit.keywords":"diff, split, просмотр","commands.diffViewUnified.label":"Единый просмотр diff","commands.diffViewUnified.description":"Показывать diff вызовов инструментов в одну колонку","commands.diffViewUnified.keywords":"diff, unified, просмотр","commands.toolOutputsDefault.label":"Выводы инструментов по умолчанию · {state}","commands.toolOutputsDefault.description":"Переключить, разворачивать ли выводы инструментов по умолчанию","commands.toolOutputsDefault.keywords":"tool, output, развернуть, свернуть","commands.diagnosticsDefault.label":"Диагностика по умолчанию · {state}","commands.diagnosticsDefault.description":"Переключить, разворачивать ли вывод диагностики по умолчанию","commands.diagnosticsDefault.keywords":"diagnostics, развернуть, свернуть","commands.toolInputsVisibility.label":"Видимость входных данных инструмента · {state}","commands.toolInputsVisibility.description":"Установить видимость аргументов входа вызовов инструментов по умолчанию","commands.toolInputsVisibility.keywords":"инструмент, вход, аргументы, видимость, скрыть, показать, раскрыть, свернуть, tool, inputs, arguments, visibility, hide, show, expand, collapse","commands.tokenUsageDisplay.label":"Отображение token-статистики · {state}","commands.tokenUsageDisplay.description":"Показать или скрыть статистику token и стоимости для сообщений ассистента","commands.tokenUsageDisplay.keywords":"token, usage, cost, статистика","commands.autoCleanupBlankSessions.label":"Авто-очистка пустых сессий · {state}","commands.autoCleanupBlankSessions.description":"Автоматически очищать пустые сессии при создании новых","commands.autoCleanupBlankSessions.keywords":"auto, cleanup, пустые, сессии, переключить","commands.showHelp.label":"Показать справку","commands.showHelp.description":"Показать горячие клавиши и справку","commands.showHelp.keywords":"горячие клавиши, справка","commands.custom.argumentsPrompt.message":"Аргументы для /{name}","commands.custom.argumentsPrompt.title":"Пользовательская команда","commands.custom.argumentsPrompt.inputLabel":"Аргументы","commands.custom.argumentsPrompt.inputPlaceholder":"например: foo bar","commands.custom.argumentsPrompt.confirmLabel":"Запустить","commands.custom.argumentsPrompt.cancelLabel":"Отмена","commands.custom.argumentsPrompt.openFailed.message":"Не удалось открыть prompt аргументов.","commands.custom.argumentsPrompt.openFailed.title":"Аргументы команды","commands.custom.entries.descriptionFallback":"Пользовательская команда","commands.custom.sessionRequired.message":"Выберите сессию перед запуском пользовательской команды.","commands.custom.sessionRequired.title":"Требуется сессия","commands.custom.runFailed.message":"Не удалось запустить пользовательскую команду. Проверьте консоль для подробностей.","commands.custom.runFailed.title":"Команда не выполнена","unifiedPicker.loading.searching":"Поиск…","unifiedPicker.loading.loadingWorkspace":"Загрузка рабочего пространства…","unifiedPicker.title.command":"Выберите команду","unifiedPicker.title.mention":"Выберите агента или файл","unifiedPicker.empty":"Ничего не найдено","unifiedPicker.sections.commands":"КОМАНДЫ","unifiedPicker.sections.agents":"АГЕНТЫ","unifiedPicker.sections.files":"ФАЙЛЫ","unifiedPicker.badge.subagent":"субагент","unifiedPicker.footer.navigate":"навигация","unifiedPicker.footer.select":"выбрать","unifiedPicker.footer.close":"закрыть"},i={"alertDialog.fallbackTitle.info":"Внимание","alertDialog.fallbackTitle.warning":"Пожалуйста, проверьте","alertDialog.fallbackTitle.error":"Что-то пошло не так","alertDialog.actions.confirm":"Подтвердить","alertDialog.actions.run":"Запустить","alertDialog.actions.ok":"ОК","alertDialog.actions.cancel":"Отмена","alertDialog.prompt.inputLabel":"Ввод","backgroundProcessOutputDialog.title":"Фоновый вывод","backgroundProcessOutputDialog.actions.close":"Закрыть","backgroundProcessOutputDialog.loading":"Загрузка вывода…","backgroundProcessOutputDialog.truncatedNotice":"Вывод обрезан для отображения.","backgroundProcessOutputDialog.loadErrorFallback":"Не удалось загрузить вывод."},n={"directoryBrowser.defaultDescription":"Просматривайте папки в пределах настроенного корня рабочего пространства.","directoryBrowser.close":"Закрыть","directoryBrowser.currentFolder":"Текущая папка","directoryBrowser.selectCurrent":"Выбрать текущую","directoryBrowser.newFolder":"Новая папка","directoryBrowser.creating":"Создание…","directoryBrowser.loadingFolders":"Загрузка папок…","directoryBrowser.noFolders":"Папки недоступны.","directoryBrowser.upOneLevel":"На уровень выше","directoryBrowser.select":"Выбрать","directoryBrowser.load.errorFallback":"Не удалось загрузить файловую систему","directoryBrowser.createFolder.promptMessage":"Создайте новую папку в текущем каталоге.","directoryBrowser.createFolder.title":"Новая папка","directoryBrowser.createFolder.inputLabel":"Имя папки","directoryBrowser.createFolder.inputPlaceholder":"например my-new-project","directoryBrowser.createFolder.confirmLabel":"Создать","directoryBrowser.createFolder.cancelLabel":"Отмена","directoryBrowser.createFolder.invalidNameMessage":"Введите одно имя папки.","directoryBrowser.createFolder.invalidNameDetail":"Имя папки не может содержать слэши, '..' или '~'.","directoryBrowser.createFolder.errorFallback":"Не удалось создать папку","filesystemBrowser.descriptionFallback":"Найдите путь в пределах настроенного корня рабочего пространства.","filesystemBrowser.rootLabel":"Корень: {root}","filesystemBrowser.actions.close":"Закрыть","filesystemBrowser.actions.retry":"Повторить","filesystemBrowser.actions.select":"Выбрать","filesystemBrowser.filterLabel":"Фильтр","filesystemBrowser.search.placeholder.directories":"Поиск папок","filesystemBrowser.search.placeholder.files":"Поиск файлов","filesystemBrowser.currentFolder.label":"Текущая папка","filesystemBrowser.currentFolder.selectCurrent":"Выбрать текущую","filesystemBrowser.loading.filesystem":"файловую систему","filesystemBrowser.loading.workspaceRoot":"корень рабочего пространства","filesystemBrowser.loading.loadingWithPath":"Загрузка {path}…","filesystemBrowser.empty.noEntries":"Ничего не найдено.","filesystemBrowser.navigation.upOneLevel":"На уровень выше","filesystemBrowser.hints.navigate":"Навигация","filesystemBrowser.hints.select":"Выбрать","filesystemBrowser.hints.close":"Закрыть","filesystemBrowser.errors.loadFilesystemFallback":"Не удалось загрузить файловую систему","filesystemBrowser.errors.openDirectoryFallback":"Не удалось открыть каталог"},a={"folderSelection.language.ariaLabel":"Язык","folderSelection.logoAlt":"Логотип CodeNomad","folderSelection.tagline":"Выберите папку, чтобы начать писать код с AI","folderSelection.links.github":"GitHub CodeNomad","folderSelection.links.githubStars":"Звезды GitHub CodeNomad","folderSelection.links.discord":"Discord CodeNomad","folderSelection.empty.title":"Нет недавних папок","folderSelection.empty.description":"Выберите папку, чтобы начать","folderSelection.recent.title":"Недавние папки","folderSelection.recent.subtitle.one":"Доступна {count} папка","folderSelection.recent.subtitle.other":"Доступно {count} папок","folderSelection.recent.remove":"Убрать из недавних","folderSelection.browse.title":"Выбрать папку","folderSelection.browse.subtitle":"Выберите любую папку на компьютере","folderSelection.browse.button":"Обзор папок","folderSelection.browse.buttonOpening":"Открытие…","folderSelection.actions.title":"Открыть папку или подключить сервер","folderSelection.actions.subtitle":"Откройте локальную папку или подключитесь к серверу CodeNomad","folderSelection.actions.connectButton":"Подключить сервер CodeNomad","folderSelection.advancedSettings":"Расширенные настройки","folderSelection.opencode":"OpenCode","folderSelection.hints.navigate":"Навигация","folderSelection.hints.select":"Выбрать","folderSelection.hints.remove":"Убрать","folderSelection.hints.browse":"Обзор","folderSelection.loading.title":"Запуск экземпляра…","folderSelection.loading.subtitle":"Подождите, пока мы подготовим рабочее пространство.","folderSelection.drop.title":"Перетащите папку, чтобы открыть ее","folderSelection.drop.subtitle":"Запустите новый экземпляр в перетащенной папке.","folderSelection.drop.invalidTitle":"Не удалось открыть перетащенный элемент","folderSelection.drop.invalidMessage":"Перетащите папку, чтобы запустить новый экземпляр.","folderSelection.dialog.title":"Выберите рабочее пространство","folderSelection.dialog.description":"Выберите рабочее пространство, чтобы начать писать код.","folderSelection.tabs.local":"Локальные папки","folderSelection.tabs.servers":"Серверы","folderSelection.servers.title":"Сохраненные серверы","folderSelection.servers.subtitle":"Откройте сохраненный удаленный сервер CodeNomad в новом окне","folderSelection.servers.count":"{count} серверов","folderSelection.servers.empty.title":"Нет сохраненных серверов","folderSelection.servers.empty.description":"Добавьте удаленный сервер, чтобы быстро подключаться к нему с этого устройства","folderSelection.servers.connectTitle":"Подключиться к серверу","folderSelection.servers.connectSubtitle":"Сохраните удаленный сервер CodeNomad и откройте его в новом окне","folderSelection.servers.connectButton":"Подключиться к серверу","folderSelection.servers.remove":"Удалить сохраненный сервер","folderSelection.servers.skipTls":"Самоподписанный TLS","folderSelection.servers.errorTitle":"Ошибка удаленного подключения","folderSelection.servers.dialog.title":"Подключиться к серверу","folderSelection.servers.dialog.description":"Добавьте удаленный сервер CodeNomad и при желании сразу откройте его.","folderSelection.servers.dialog.name":"Имя сервера","folderSelection.servers.dialog.namePlaceholder":"Продакшн сервер","folderSelection.servers.dialog.url":"URL сервера","folderSelection.servers.dialog.urlPlaceholder":"https://server.example.com","folderSelection.servers.dialog.skipTls":"Пропустить проверку TLS для самоподписанных сертификатов.","folderSelection.servers.dialog.cancel":"Отмена","folderSelection.servers.dialog.save":"Сохранить","folderSelection.servers.dialog.connect":"Подключиться","folderSelection.servers.dialog.connecting":"Подключение...","folderSelection.servers.dialog.errorRequired":"Имя сервера и URL обязательны.","folderSelection.servers.dialog.errorConnect":"Не удалось подключиться к удаленному серверу.","folderSelection.sidecars.button":"Open SideCar"},l={"instanceTabs.new.title":"Новый экземпляр (Cmd/Ctrl+N)","instanceTabs.new.ariaLabel":"Новый экземпляр","instanceTabs.remote.title":"Удаленное подключение","instanceTabs.remote.ariaLabel":"Удаленное подключение","instanceInfo.title":"Информация об экземпляре","instanceInfo.labels.folder":"Папка","instanceInfo.labels.project":"Проект","instanceInfo.labels.versionControl":"Система контроля версий","instanceInfo.labels.opencodeVersion":"Версия OpenCode","instanceInfo.labels.binaryPath":"Путь к бинарнику","instanceInfo.labels.environmentVariables":"Переменные окружения ({count})","instanceInfo.loading":"Загрузка…","instanceInfo.server.title":"Сервер","instanceInfo.server.port":"Порт:","instanceInfo.server.pid":"PID:","instanceInfo.server.status":"Статус:","instanceTab.status.permission":"Ожидание разрешения","instanceTab.status.compacting":"Компактация","instanceTab.status.working":"Работает","instanceTab.status.idle":"Простой","instanceTab.status.ariaLabel":"Статус экземпляра: {status}","instanceTab.actions.close.ariaLabel":"Закрыть экземпляр","instanceShell.leftPanel.sessionsTitle":"Сессии","instanceShell.leftPanel.instanceInfo":"Информация об экземпляре","instanceShell.leftDrawer.pin":"Закрепить левую панель","instanceShell.leftDrawer.unpin":"Открепить левую панель","instanceShell.leftDrawer.toggle.pinned":"Левая панель закреплена","instanceShell.leftDrawer.toggle.open":"Открыть левую панель","instanceShell.leftDrawer.toggle.close":"Закрыть левую панель","instanceShell.rightDrawer.pin":"Закрепить правую панель","instanceShell.rightDrawer.unpin":"Открепить правую панель","instanceShell.rightDrawer.toggle.pinned":"Правая панель закреплена","instanceShell.rightDrawer.toggle.open":"Открыть правую панель","instanceShell.rightDrawer.toggle.close":"Закрыть правую панель","instanceShell.fullscreen.enter":"Полный экран","instanceShell.fullscreen.exit":"Выйти из полного экрана","instanceShell.metrics.usedLabel":"Использовано","instanceShell.metrics.availableLabel":"Доступно","instanceShell.commandPalette.openAriaLabel":"Открыть палитру команд","instanceShell.commandPalette.button":"Палитра команд","instanceShell.connection.ariaLabel":"Соединение {status}","instanceShell.connection.connected":"Подключено","instanceShell.connection.connecting":"Подключение…","instanceShell.connection.disconnected":"Отключено","instanceShell.connection.unknown":"Неизвестно","instanceWelcome.shortcuts.newSession":"Новая сессия","instanceWelcome.empty.title":"Нет предыдущих сессий","instanceWelcome.empty.description":"Создайте новую сессию ниже, чтобы начать","instanceWelcome.loading.title":"Загрузка сессий","instanceWelcome.loading.description":"Получаем ваши предыдущие сессии…","instanceWelcome.resume.title":"Продолжить сессию","instanceWelcome.resume.subtitle.one":"{count} сессия доступна","instanceWelcome.resume.subtitle.other":"{count} сессий доступно","instanceWelcome.session.untitled":"Сессия без названия","instanceWelcome.new.title":"Начать новую сессию","instanceWelcome.new.subtitle":"Мы автоматически используем последнего агента/модель","instanceWelcome.new.createButton":"Создать сессию","instanceWelcome.overlay.close":"Закрыть","instanceWelcome.actions.viewInstanceInfo":"Показать информацию об экземпляре","instanceWelcome.actions.renameTitle":"Переименовать сессию","instanceWelcome.actions.deleteTitle":"Удалить сессию","instanceWelcome.hints.navigate":"Навигация","instanceWelcome.hints.jump":"Перейти","instanceWelcome.hints.firstLast":"Первый/последний","instanceWelcome.hints.resume":"Продолжить","instanceWelcome.hints.delete":"Удалить","instanceWelcome.toasts.renameError":"Не удалось переименовать сессию","instanceDisconnected.title":"Экземпляр отключен","instanceDisconnected.folderFallback":"это рабочее пространство","instanceDisconnected.reasonFallback":"Сервер перестал отвечать","instanceDisconnected.description":"{folder} больше недоступно. Закройте вкладку, чтобы продолжить работу.","instanceDisconnected.details.title":"Подробности","instanceDisconnected.details.folderLabel":"Папка:","instanceDisconnected.actions.closeInstance":"Закрыть экземпляр","instanceShell.empty.title":"Сессия не выбрана","instanceShell.empty.description":"Выберите сессию, чтобы просмотреть сообщения","instanceShell.rightPanel.title":"Панель состояния","instanceShell.rightPanel.tabs.changes":"Изменения","instanceShell.rightPanel.tabs.gitChanges":"Изменения Git","instanceShell.rightPanel.tabs.files":"Файлы","instanceShell.rightPanel.tabs.status":"Статус","instanceShell.rightPanel.tabs.ariaLabel":"Вкладки правой панели","instanceShell.rightPanel.actions.refresh":"Обновить","instanceShell.rightPanel.actions.save":"Сохранить (Ctrl+S)","instanceShell.rightPanel.actions.saveConfirm.message":'Сохранить изменения в "{path}" перед переключением?',"instanceShell.rightPanel.actions.saveConfirm.confirmLabel":"Сохранить","instanceShell.rightPanel.actions.saveConfirm.cancelLabel":"Отменить изменения","instanceShell.rightPanel.actions.conflict.message":"Файл был изменён агентом. Перезаписать изменения агента?","instanceShell.rightPanel.actions.conflict.confirmLabel":"Перезаписать","instanceShell.rightPanel.actions.conflict.cancelLabel":"Отмена","instanceShell.rightPanel.actions.refreshDirty.message":"Файл имеет несохранённые изменения. Обновление отменит ваши правки. Продолжить?","instanceShell.rightPanel.actions.refreshDirty.confirmLabel":"Обновить","instanceShell.rightPanel.actions.refreshDirty.cancelLabel":"Отмена","instanceShell.rightPanel.toast.saveSuccess":"Файл успешно сохранён","instanceShell.rightPanel.toast.saveError":"Не удалось сохранить файл","instanceShell.rightPanel.sections.yoloMode":"Режим Yolo","instanceShell.rightPanel.sections.yoloMode.tooltip":"Автоматически одобряет запросы разрешений для текущей сессии. Включайте только если доверяете запускаемым инструментам.","instanceShell.rightPanel.sections.sessionChanges":"Изменения сессии","instanceShell.rightPanel.sections.sessionChanges.tooltip":"Файлы, измененные в текущей сессии. Показывает добавления и удаления для каждого файла.","instanceShell.rightPanel.sections.plan":"План","instanceShell.rightPanel.sections.plan.tooltip":"Дорожная карта агента для этой сессии. Отслеживает задачи и их статус выполнения.","instanceShell.rightPanel.sections.backgroundProcesses":"Фоновые оболочки","instanceShell.rightPanel.sections.backgroundProcesses.tooltip":"Долгоработающие процессы, запущенные агентом. Вы можете следить за их выводом, останавливать или завершать их.","instanceShell.rightPanel.sections.mcp":"MCP-серверы","instanceShell.rightPanel.sections.mcp.tooltip":"Серверы протокола Model Context Protocol, расширяющие возможности агента внешними инструментами.","instanceShell.rightPanel.sections.lsp":"LSP-серверы","instanceShell.rightPanel.sections.lsp.tooltip":"Серверы протокола Language Server Protocol, обеспечивающие интеллектуальную поддержку кода и диагностику.","instanceShell.rightPanel.sections.plugins":"Плагины","instanceShell.rightPanel.sections.plugins.tooltip":"Плагины, настраивающие поведение интерфейса и сервера, добавляющие функции поверх MCP и LSP.","instanceShell.sessionChanges.noSessionSelected":"Выберите сессию, чтобы просмотреть изменения.","instanceShell.sessionChanges.loading":"Загрузка изменений...","instanceShell.sessionChanges.empty":"Пока нет изменений.","instanceShell.sessionChanges.filesChanged":"Изменено файлов: {count}","instanceShell.sessionChanges.actions.show":"Показать изменения","instanceShell.gitChanges.loading":"Загрузка изменений Git...","instanceShell.gitChanges.empty":"Изменений Git пока нет.","instanceShell.gitChanges.deleted":"Удалено","instanceShell.filesShell.fileListTitle":"Список файлов","instanceShell.filesShell.mobileSelectorLabel":"Выбрать файл","instanceShell.filesShell.mobileSelectorEmpty":"Выберите файл","instanceShell.filesShell.viewerTitle":"Просмотр изменений","instanceShell.filesShell.viewerPlaceholder":"Подробный рендер изменений будет добавлен на следующем этапе.","instanceShell.filesShell.viewerEmpty":"Файл не выбран.","instanceShell.plan.noSessionSelected":"Выберите сессию, чтобы просмотреть план.","instanceShell.plan.empty":"Пока ничего не запланировано.","instanceShell.yoloMode.noSessionSelected":"Выберите сессию, чтобы настроить режим Yolo.","instanceShell.yoloMode.title":"Режим Yolo","instanceShell.yoloMode.description":"Автоматически одобряет запросы разрешений для этой сессии. По умолчанию выключен.","instanceShell.yoloMode.badge":"Yolo","instanceShell.yoloMode.badgeAriaLabel":"Режим Yolo включен","instanceShell.backgroundProcesses.empty":"Нет фоновых процессов.","instanceShell.backgroundProcesses.status":"Статус: {status}","instanceShell.backgroundProcesses.output":"Вывод: {sizeKb}KB","instanceShell.backgroundProcesses.notify.enabled":"Уведомление о завершении включено","instanceShell.backgroundProcesses.notify.disabled":"Уведомление о завершении выключено","instanceShell.backgroundProcesses.actions.output":"Вывод","instanceShell.backgroundProcesses.actions.stop":"Остановить","instanceShell.backgroundProcesses.actions.terminate":"Завершить","versionPill.appWithVersion":"Приложение {version}","versionPill.ui":"UI","versionPill.uiWithVersion":"UI {version}","versionPill.source":" ({source})","opencodeBinarySelector.title":"Бинарник OpenCode","opencodeBinarySelector.subtitle":"Выберите, какой исполняемый файл OpenCode запускать","opencodeBinarySelector.customPath.placeholder":"Введите путь к бинарнику opencode…","opencodeBinarySelector.actions.add":"Добавить","opencodeBinarySelector.actions.browse":"Выбрать бинарник…","opencodeBinarySelector.actions.removeTitle":"Удалить бинарник","opencodeBinarySelector.badge.systemPath":"Использовать бинарник из системного PATH","opencodeBinarySelector.status.checkingVersions":"Проверка версий…","opencodeBinarySelector.status.checking":"Проверка…","opencodeBinarySelector.dialog.title":"Выберите бинарник OpenCode","opencodeBinarySelector.dialog.description":"Просматривайте файлы, доступные через CLI-сервер.","opencodeBinarySelector.validation.invalidBinary":"Неверный бинарник OpenCode","opencodeBinarySelector.validation.alreadyValidating":"Проверка уже выполняется","opencodeBinarySelector.display.systemPath":"{name} (system PATH)","opencodeBinarySelector.versionLabel":"v{version}"},r={"loadingScreen.logoAlt":"Логотип CodeNomad","loadingScreen.status.issue":"Возникла проблема","loadingScreen.actions.showAnother":"Показать другое","loadingScreen.errors.missingRoot":"Корневой элемент загрузки не найден","loadingScreen.phrases.neurons":"Разогреваем нейроны AI…","loadingScreen.phrases.daydreaming":"Убеждаем AI перестать мечтать…","loadingScreen.phrases.goggles":"Полируем кодовые очки AI…","loadingScreen.phrases.reorganizingFiles":"Просим AI перестать реорганизовывать ваши файлы…","loadingScreen.phrases.coffee":"Подкармливаем AI дополнительным кофе…","loadingScreen.phrases.nodeModules":"Учимся не удалять node_modules (снова)…","loadingScreen.phrases.actNatural":"Просим AI вести себя естественно до вашего прихода…","loadingScreen.phrases.rewritingHistory":"Просим AI перестать переписывать историю…","loadingScreen.phrases.stretch":"Даем AI размяться перед кодинг-спринтом…","loadingScreen.phrases.keyboardControl":"Убеждаем AI вернуть вам управление клавиатурой…"},c={"logsView.title":"Логи сервера","logsView.actions.show":"Показать логи сервера","logsView.actions.hide":"Скрыть логи сервера","logsView.envVars.title":"Переменные окружения ({count})","logsView.paused.title":"Логи сервера приостановлены","logsView.paused.description":"Включите стриминг, чтобы наблюдать за активностью сервера OpenCode.","logsView.empty.waiting":"Ожидание вывода сервера…","logsView.scrollToBottom":"Прокрутить вниз","infoView.logs.title":"Логи сервера","infoView.logs.actions.show":"Показать логи сервера","infoView.logs.actions.hide":"Скрыть логи сервера","infoView.logs.paused.title":"Логи сервера приостановлены","infoView.logs.paused.description":"Включите стриминг, чтобы наблюдать за активностью сервера OpenCode.","infoView.logs.empty.waiting":"Ожидание вывода сервера…","infoView.logs.scrollToBottom":"Прокрутить вниз","infoView.dispose.actions.dispose":"Сбросить инстанс","infoView.dispose.actions.disposing":"Сброс...","infoView.dispose.confirm.title":"Сбросить инстанс?","infoView.dispose.confirm.message":"Это очистит кэш состояния проекта для этого каталога и перезагрузит инстанс.","infoView.dispose.confirm.confirmLabel":"Сбросить","infoView.dispose.confirm.cancelLabel":"Отмена","infoView.dispose.toast.success":"Инстанс сброшен. Перезагрузка...","infoView.dispose.toast.error":"Не удалось сбросить инстанс."},d={"markdown.codeBlock.copy.label":"Копировать","markdown.codeBlock.copy.copied":"Скопировано!","markdown.codeBlock.copy.failed":"Не удалось","markdown.copy":"Копировать"},m={"messageListHeader.sidebar.openSessionListAriaLabel":"Открыть список сессий","messageListHeader.metrics.usedLabel":"Использовано","messageListHeader.metrics.availableLabel":"Доступно","messageListHeader.commandPalette.ariaLabel":"Открыть палитру команд","messageListHeader.commandPalette.button":"Палитра команд","messageListHeader.connection.connected":"Подключено","messageListHeader.connection.connecting":"Подключение…","messageListHeader.connection.disconnected":"Отключено","messageSection.empty.logoAlt":"Логотип CodeNomad","messageSection.empty.brandTitle":"CodeNomad","messageSection.empty.title":"Начните разговор","messageSection.empty.description":"Введите сообщение ниже или откройте палитру команд:","messageSection.empty.tips.commandPalette":"Палитра команд","messageSection.empty.tips.askAboutCodebase":"Спросите о своей кодовой базе","messageSection.empty.tips.attachFilesPrefix":"Прикрепляйте файлы через","messageSection.loading.messages":"Загрузка сообщений…","messageSection.scroll.toFirstAriaLabel":"Прокрутить к первому сообщению","messageSection.scroll.toLatestAriaLabel":"Прокрутить к последнему сообщению","messageSection.scroll.enableHoldAriaLabel":"Включить удержание для длинных ответов ассистента","messageSection.scroll.disableHoldAriaLabel":"Выключить удержание для длинных ответов ассистента","messageSection.quote.addAsQuote":"Добавить как цитату","messageSection.quote.addAsCode":"Добавить как код","messageSection.quote.copy":"Копировать","messageSection.quote.copied":"Скопировано!","messageSection.quote.copyFailed":"Не удалось скопировать","messageTimeline.ariaLabel":"Таймлайн сообщений","messageTimeline.segment.user.label":"Вы","messageTimeline.segment.assistant.label":"Асс.","messageTimeline.segment.compaction.label":"Компактация","messageTimeline.tool.fallbackLabel":"Вызов инструмента","messageTimeline.tooltip.userFallback":"Сообщение пользователя","messageTimeline.tooltip.assistantFallback":"Ответ ассистента","messageTimeline.tooltip.compaction.auto":"Автокомпактация","messageTimeline.tooltip.compaction.manual":"Компактация пользователем","messageTimeline.text.filePrefix":"[Файл] {filename}","messageTimeline.text.attachment":"Вложение","messageBlock.tool.header":"Вызов инструмента","messageBlock.tool.unknown":"неизвестно","messageBlock.tool.goToSession.label":"Перейти к сессии","messageBlock.tool.goToSession.title":"Перейти к сессии","messageBlock.tool.goToSession.unavailableTitle":"Сессия пока недоступна","messageBlock.tool.deletePart.label":"Удалить часть","messageBlock.tool.deletePart.deleting":"Удаление...","messageBlock.tool.deletePart.title":"Удалить этот вывод инструмента","messageBlock.tool.deletePart.failed.title":"Ошибка удаления","messageBlock.tool.deletePart.failed.message":"Не удалось удалить вывод инструмента","messageBlock.compaction.ariaLabel":"Компактация сессии","messageBlock.compaction.autoLabel":"Сессия автоматически компактирована","messageBlock.compaction.manualLabel":"Сессия компактирована вами","messageBlock.usage.input":"Ввод","messageBlock.usage.output":"Вывод","messageBlock.usage.reasoning":"Рассуждения","messageBlock.usage.cacheRead":"Чтение кэша","messageBlock.usage.cacheWrite":"Запись кэша","messageBlock.usage.cost":"Стоимость","messageBlock.step.agentLabel":"Агент: {agent}","messageBlock.step.modelLabel":"Модель: {model}","messageBlock.reasoning.thinkingLabel":"Размышления","messageBlock.reasoning.expandAriaLabel":"Развернуть размышления","messageBlock.reasoning.collapseAriaLabel":"Свернуть размышления","messageBlock.reasoning.indicator.hide":"Скрыть","messageBlock.reasoning.indicator.view":"Показать","messageBlock.reasoning.detailsAriaLabel":"Детали рассуждений","codeBlockInline.actions.copy":"Копировать","codeBlockInline.actions.copied":"Скопировано!","messageItem.speaker.you":"Вы","messageItem.speaker.assistant":"Ассистент","messageItem.actions.revert":"Откатить","messageItem.actions.revertTitle":"Отменить изменения до этого места (удалит сообщения)","messageItem.actions.fork":"Форк","messageItem.actions.forkTitle":"Форкнуть от этого сообщения","messageItem.actions.copy":"Копировать","messageItem.actions.copyTitle":"Копировать сообщение","messageItem.actions.copied":"Скопировано!","messageItem.actions.speak":"Озвучить сообщение","messageItem.actions.generatingSpeech":"Генерация аудио","messageItem.actions.stopSpeech":"Остановить воспроизведение","messageItem.actions.speak.error.title":"Не удалось воспроизвести речь","messageItem.actions.speak.error.unsupported":"В этом браузере воспроизведение речи не поддерживается.","messageItem.actions.speak.error.unavailable":"Воспроизведение речи недоступно, пока не настроены голосовые параметры.","messageItem.actions.speak.error.generate":"Не удалось сгенерировать аудио для этого сообщения.","messageItem.actions.deleteMessage":"Удалить сообщение (без отката изменений)","messageItem.actions.deleteMessagesUpTo":"Удалить сообщения до этого места (без отката изменений)","messageItem.actions.deletingMessage":"Удаление...","messageItem.actions.deleteMessageFailedTitle":"Ошибка удаления","messageItem.actions.deleteMessageFailedMessage":"Не удалось удалить сообщение","messageItem.selection.checkboxAriaLabel":"Выбрать сообщение для удаления","messageSection.bulkDelete.toolbarAriaLabel":"Выбранные элементы ({count})","messageSection.bulkDelete.deleteSelectedTitle":"Удалить выбранные элементы","messageSection.bulkDelete.selectAllTitle":"Выбрать все сообщения","messageSection.bulkDelete.moreOptionsTitle":"Больше настроек","messageSection.bulkDelete.selectionModeLabel":"Выбор","messageSection.bulkDelete.selectionModeAll":"Все","messageSection.bulkDelete.selectionModeTools":"Только инструменты","messageSection.bulkDelete.selectionHint.toggle":"Выбрать элемент","messageSection.bulkDelete.selectionHint.range":"Выбрать диапазон","messageSection.bulkDelete.selectionHint.clear":"Очистить выбор","messageSection.bulkDelete.cancelTitle":"Отменить выбор","messageSection.bulkDelete.failedTitle":"Ошибка удаления","messageSection.bulkDelete.failedMessage":"Не удалось удалить выбранные элементы","messageItem.status.queued":"В ОЧЕРЕДИ","messageItem.status.generating":"Генерация…","messageItem.status.sending":"Отправка…","messageItem.status.failedToSend":"Не удалось отправить сообщение","messagePart.actions.delete":"Удалить часть","messagePart.actions.deleting":"Удаление...","messagePart.actions.deleteTitle":"Удалить этот элемент","messagePart.actions.deleteFailedTitle":"Ошибка удаления","messagePart.actions.deleteFailedMessage":"Не удалось удалить элемент","messageItem.attachment.defaultName":"вложение","messageItem.attachment.downloadAriaLabel":"Скачать {name}","messageItem.agentMeta.agentLabel":"Агент: {agent}","messageItem.agentMeta.modelLabel":"Модель: {model}","messageItem.errors.authenticationFallback":"Ошибка аутентификации","messageItem.errors.outputLengthExceeded":"Превышена длина вывода сообщения","messageItem.errors.requestAborted":"Запрос был прерван","messageItem.errors.unknownFallback":"Произошла неизвестная ошибка","attachmentChip.removeAriaLabel":"Удалить вложение","expandButton.toggleAriaLabel":"Переключить высоту поля ввода","promptInput.placeholder.shell":"Выполнить команду shell (Esc для выхода)…","promptInput.placeholder.default":"Введите сообщение, @file, @agent или вставьте изображения и текст…","promptInput.hints.shell.exit":"чтобы выйти из режима shell","promptInput.hints.shell.enable":"Режим shell","promptInput.hints.commands":"Команды","promptInput.history.previousAriaLabel":"Предыдущий prompt","promptInput.history.nextAriaLabel":"Следующий prompt","promptInput.overlay.newLine":"Новая строка","promptInput.overlay.send":"Отправить","promptInput.overlay.filesAgents":"Файлы/агенты","promptInput.overlay.history":"История","promptInput.overlay.attachments":"• прикреплено файлов: {count}","promptInput.overlay.shellModeActive":"Режим shell активен","promptInput.overlay.press":"Нажмите","promptInput.overlay.againToAbort":"еще раз, чтобы прервать сессию","promptInput.stopSession.ariaLabel":"Остановить сессию","promptInput.stopSession.title":"Остановить сессию","promptInput.clear.ariaLabel":"Очистить текст prompt","promptInput.clear.title":"Очистить текст prompt","promptInput.send.ariaLabel":"Отправить сообщение","promptInput.send.errorFallback":"Не удалось отправить сообщение","promptInput.send.errorTitle":"Не удалось отправить","promptInput.conversationMode.enable.title":"Включить режим разговора","promptInput.conversationMode.disable.title":"Выключить режим разговора","promptInput.conversationMode.error.title":"Сбой озвучивания разговора","promptInput.conversationMode.error.message":"Не удалось продолжить озвучивание ответов ассистента.","promptInput.voiceInput.start.title":"Начать голосовой ввод","promptInput.voiceInput.stop.title":"Остановить запись и расшифровать","promptInput.voiceInput.transcribing.title":"Идёт расшифровка аудио","promptInput.voiceInput.error.title":"Сбой голосового ввода","promptInput.voiceInput.error.permission":"Для записи голосового ввода требуется доступ к микрофону.","promptInput.voiceInput.error.permissionDenied":"macOS запретила доступ к микрофону.","promptInput.voiceInput.error.unsupported":"Голосовой ввод не поддерживается в этом браузере.","promptInput.voiceInput.error.transcribe":"Не удалось расшифровать записанное аудио."},p={"remoteAccess.eyebrow":"Удаленная передача управления","remoteAccess.title":"Подключитесь к CodeNomad удаленно","remoteAccess.subtitle":"Используйте адреса ниже, чтобы открыть CodeNomad с другого устройства.","remoteAccess.close":"Закрыть удаленный доступ","remoteAccess.refresh":"Обновить","remoteAccess.sections.listeningMode.label":"Режим прослушивания","remoteAccess.sections.listeningMode.help":"Разрешайте или ограничивайте удаленную передачу управления, привязываясь ко всем интерфейсам или только к localhost.","remoteAccess.toggle.on":"Вкл","remoteAccess.toggle.off":"Выкл","remoteAccess.toggle.title":"Разрешить подключения с других IP","remoteAccess.toggle.caption.all":"Привязка к 0.0.0.0","remoteAccess.toggle.caption.local":"Привязка к 127.0.0.1","remoteAccess.toggle.note":"Изменение требует перезапуска и временно остановит все активные экземпляры. Поделитесь адресами ниже после перезапуска сервера.","remoteAccess.listeningMode.restartConfirm.message":"Перезапустить, чтобы применить режим прослушивания? Это остановит все запущенные экземпляры.","remoteAccess.listeningMode.restartConfirm.title.all":"Открыть для других устройств","remoteAccess.listeningMode.restartConfirm.title.local":"Ограничить этим устройством","remoteAccess.listeningMode.restartConfirm.confirmLabel":"Перезапустить сейчас","remoteAccess.listeningMode.restartConfirm.cancelLabel":"Отмена","remoteAccess.restart.errorManual":"Не удалось перезапустить автоматически. Перезапустите приложение, чтобы применить изменение.","remoteAccess.sections.serverPassword.label":"Пароль сервера","remoteAccess.sections.serverPassword.help":"Для удаленной передачи управления требуется пароль. Установите запоминающийся пароль, чтобы разрешить вход с других устройств.","remoteAccess.authStatus.unavailable":"Статус аутентификации недоступен.","remoteAccess.username":"Имя пользователя: {username}","remoteAccess.password.status.set":"Для удаленного доступа установлен пароль.","remoteAccess.password.status.unset":"Пока не установлен запоминающийся пароль. Установите его, чтобы разрешить вход при удаленной передаче управления.","remoteAccess.password.actions.cancel":"Отмена","remoteAccess.password.actions.change":"Изменить пароль","remoteAccess.password.actions.set":"Установить пароль","remoteAccess.password.form.newPassword":"Новый пароль","remoteAccess.password.form.confirmPassword":"Подтвердите пароль","remoteAccess.password.form.placeholder":"Не менее 8 символов","remoteAccess.password.error.tooShort":"Пароль должен быть не короче 8 символов.","remoteAccess.password.error.mismatch":"Пароли не совпадают.","remoteAccess.password.save.saving":"Сохранение…","remoteAccess.password.save.label":"Сохранить пароль","remoteAccess.sections.addresses.label":"Доступные адреса","remoteAccess.sections.addresses.help":"Откройте или отсканируйте с другой машины, чтобы передать управление.","remoteAccess.addresses.loading":"Загрузка адресов…","remoteAccess.addresses.none":"Пока нет доступных адресов.","remoteAccess.addresses.actions.showOther":"Показать еще {count} адресов","remoteAccess.addresses.actions.hideOther":"Скрыть остальные адреса","remoteAccess.address.scope.network":"Сеть","remoteAccess.address.scope.loopback":"Loopback","remoteAccess.address.scope.internal":"Внутренний","remoteAccess.address.open":"Открыть","remoteAccess.address.showQr":"Показать QR","remoteAccess.address.hideQr":"Скрыть QR","remoteAccess.address.qrAlt":"QR для {url}"},g={"sessionPicker.title":"OpenCode • {folder}","sessionPicker.empty.noPrevious":"Нет предыдущих сессий","sessionPicker.resume.title":"Продолжить сессию ({count}):","sessionPicker.session.untitled":"Без названия","sessionPicker.divider.or":"или","sessionPicker.new.title":"Начать новую сессию:","sessionPicker.agents.loading":"Загрузка агентов…","sessionPicker.actions.creating":"Создание…","sessionPicker.actions.createSession":"Создать сессию","sessionPicker.actions.cancel":"Отмена","sessionList.header.title":"Сессии","sessionList.session.untitled":"Без названия","sessionList.status.working":"Работает","sessionList.status.compacting":"Компактация","sessionList.status.idle":"Простой","sessionList.status.retrying":"Повтор","sessionList.status.retryingIn":"Повтор через {seconds}с","sessionList.status.retryTooltip":"{message} (Попытка {attempt})","sessionList.status.retryToast":"{countdown}: {message} (Попытка {attempt})","sessionList.status.needsPermission":"Требуется разрешение","sessionList.status.needsInput":"Требуется ввод","sessionList.expand.collapseAriaLabel":"Свернуть сессию","sessionList.expand.expandAriaLabel":"Развернуть сессию","sessionList.expand.collapseTitle":"Свернуть","sessionList.expand.expandTitle":"Развернуть","sessionList.actions.newSession.ariaLabel":"Новая сессия","sessionList.actions.newSession.title":"Новая сессия","sessionList.actions.copyId.ariaLabel":"Скопировать ID сессии","sessionList.actions.copyId.title":"Скопировать ID сессии","sessionList.actions.reload.ariaLabel":"Обновить сессию","sessionList.actions.reload.title":"Обновить сессию","sessionList.actions.rename.ariaLabel":"Переименовать сессию","sessionList.actions.rename.title":"Переименовать сессию","sessionList.actions.delete.ariaLabel":"Удалить сессию","sessionList.actions.delete.title":"Удалить сессию","sessionList.copyId.success":"ID сессии скопирован","sessionList.copyId.error":"Не удалось скопировать ID сессии","sessionList.reload.error":"Не удалось обновить сессию","sessionList.delete.error":"Не удалось удалить сессию","sessionList.delete.title":"Удалить сессию","sessionList.delete.confirmMessage":'Удалить "{label}"? Это действие нельзя отменить.',"sessionList.delete.confirmLabel":"Удалить","sessionList.delete.cancelLabel":"Отмена","sessionList.rename.error":"Не удалось переименовать сессию","sessionList.filter.placeholder":"Поиск сессий…","sessionList.filter.ariaLabel":"Поиск сессий","sessionList.selection.selectAllLabel":"Выбрать все","sessionList.selection.selectAllAriaLabel":"Выбрать все сессии","sessionList.selection.clearLabel":"Очистить","sessionList.selection.clearAriaLabel":"Очистить выбор","sessionList.selection.checkboxAriaLabel":"Выбрать сессию","sessionList.bulkDelete.button":"Удалить {count}","sessionList.bulkDelete.ariaLabel":"Удалить {count} выбранных сессий","sessionList.bulkDelete.title":"Удалить сессии","sessionList.bulkDelete.confirmMessage":"Удалить {count} выбранных сессий? Это действие нельзя отменить.","sessionList.bulkDelete.confirmLabel":"Удалить","sessionList.bulkDelete.cancelLabel":"Отмена","sessionList.bulkDelete.error":"Не удалось удалить {count} сессий","sessionRenameDialog.title":"Переименовать сессию","sessionRenameDialog.description.withLabel":'Обновите название для "{label}".',"sessionRenameDialog.description.default":"Установите новое название для этой сессии.","sessionRenameDialog.input.label":"Название сессии","sessionRenameDialog.input.placeholder":"Введите название сессии","sessionRenameDialog.actions.cancel":"Отмена","sessionRenameDialog.actions.rename":"Переименовать","sessionRenameDialog.actions.renaming":"Переименование…","sessionView.fallback.sessionNotFound":"Сессия не найдена","sessionView.alerts.abortFailed.message":"Не удалось остановить сессию","sessionView.alerts.abortFailed.title":"Не удалось остановить","sessionView.alerts.revertFailed.message":"Не удалось откатиться к сообщению","sessionView.alerts.revertFailed.title":"Не удалось откатиться","sessionView.alerts.deleteUpToFailed.message":"Не удалось удалить сообщения","sessionView.alerts.deleteUpToFailed.title":"Ошибка удаления","sessionView.alerts.forkFailed.message":"Не удалось форкнуть сессию","sessionView.alerts.forkFailed.title":"Не удалось форкнуть","sessionView.attachments.expandPastedTextAriaLabel":"Развернуть вставленный текст","sessionView.attachments.insertPastedTextTitle":"Вставить вставленный текст","sessionView.attachments.removeAriaLabel":"Удалить вложение","sessionEvents.sessionCompactedToast":"Сессия {label} была компактирована","sessionEvents.sessionError.unknown":"Неизвестная ошибка","sessionEvents.sessionError.title":"Ошибка сессии","sessionEvents.sessionError.message":"Ошибка: {message}","sessionState.cleanup.deepConfirm.message":"Эта очистка может быть медленной и может удалить сессии, которые вы не хотели удалять. Вы уверены?","sessionState.cleanup.deepConfirm.title":"Глубокая очистка сессий","sessionState.cleanup.deepConfirm.detail":"Глубокая очистка сессий удалит все сессии без сообщений, уберет завершенные сессии субагентов и очистит неиспользуемые форки сессий.","sessionState.cleanup.deepConfirm.confirmLabel":"Продолжить","sessionState.cleanup.deepConfirm.cancelLabel":"Отмена","sessionState.cleanup.toast.one":"Удалена {count} пустая сессия","sessionState.cleanup.toast.other":"Удалено {count} пустых сессий"},u={"instanceServiceStatus.sections.lsp":"LSP-серверы","instanceServiceStatus.sections.mcp":"MCP-серверы","instanceServiceStatus.sections.plugins":"Плагины","instanceServiceStatus.lsp.loading":"Загрузка LSP-серверов…","instanceServiceStatus.lsp.empty":"LSP-серверы не обнаружены.","instanceServiceStatus.lsp.status.connected":"Подключено","instanceServiceStatus.lsp.status.error":"Ошибка","instanceServiceStatus.mcp.loading":"Загрузка MCP-серверов…","instanceServiceStatus.mcp.empty":"MCP-серверы не обнаружены.","instanceServiceStatus.mcp.toggleAriaLabel":"Переключить MCP-сервер {name}","instanceServiceStatus.plugins.loading":"Загрузка плагинов…","instanceServiceStatus.plugins.empty":"Плагины не настроены.","permissionBanner.pendingRequests.one":"{count} ожидающий запрос","permissionBanner.pendingRequests.other":"{count} ожидающих запросов","permissionBanner.detail.permission.one":"{count} разрешение","permissionBanner.detail.permission.other":"{count} разрешений","permissionBanner.detail.question.one":"{count} вопрос","permissionBanner.detail.question.other":"{count} вопросов","permissionBanner.detail.wrapper":" ({detail})","agentSelector.placeholder":"Выберите агента…","agentSelector.badge.subagent":"субагент","agentSelector.none":"Нет","agentSelector.trigger.primary":"Агент: {agent}","modelSelector.placeholder.search":"Поиск моделей…","modelSelector.none":"Нет","modelSelector.trigger.primary":"Модель: {model}","modelSelector.favoritesOnly.toggle.ariaLabel":"Только избранное","modelSelector.favoritesOnly.showAll":"Показать все модели","modelSelector.favorite.add":"Добавить в избранное","modelSelector.favorite.remove":"Удалить из избранного","thinkingSelector.variant.default":"По умолчанию","thinkingSelector.label":"Размышления: {variant}","envEditor.title":"Переменные окружения","envEditor.count.one":"({count} переменная)","envEditor.count.other":"({count} переменных)","envEditor.fields.name.placeholder":"Имя переменной","envEditor.fields.name.readOnlyTitle":"Имя переменной (только чтение)","envEditor.fields.value.placeholder":"Значение переменной","envEditor.actions.remove.title":"Удалить переменную","envEditor.actions.add.title":"Добавить переменную","envEditor.empty":"Переменные окружения не настроены. Добавьте переменные выше, чтобы настроить окружение OpenCode.","envEditor.help":"Эти переменные будут доступны в окружении OpenCode при запуске экземпляров.","contextUsagePanel.headings.tokens":"Tokens","contextUsagePanel.headings.context":"Контекст","contextUsagePanel.labels.input":"Ввод","contextUsagePanel.labels.output":"Вывод","contextUsagePanel.labels.cost":"Стоимость","contextUsagePanel.labels.used":"Использовано","contextUsagePanel.labels.available":"Доступно","contextUsagePanel.unavailable":"--","settings.title":"Settings","settings.navigationAriaLabel":"Settings sections","settings.close":"Close settings","settings.content.eyebrow":"Workspace preferences","settings.open.title":"Open settings","settings.open.ariaLabel":"Open settings","settings.nav.appearance":"Appearance","settings.nav.notifications":"Notifications","settings.nav.remote":"Remote Access","settings.nav.speech":"Speech","settings.nav.opencode":"OpenCode","settings.scope.device":"This device","settings.scope.server":"Server setting","settings.common.enabled":"Enabled","settings.common.disabled":"Отключено","settings.section.appearance.title":"Appearance","settings.section.appearance.subtitle":"Adjust how the app looks on this device.","settings.appearance.theme.title":"Theme","settings.appearance.theme.subtitle":"Choose the color mode used throughout the app.","settings.appearance.theme.option.system":"Match your operating system setting","settings.appearance.theme.option.light":"Use the light appearance","settings.appearance.theme.option.dark":"Use the dark appearance","settings.section.notifications.title":"Notifications","settings.section.notifications.subtitle":"Control OS-level notifications for session activity.","settings.notifications.permission.granted":"Granted","settings.notifications.permission.denied":"Denied","settings.notifications.permission.default":"Not granted","settings.notifications.permission.unsupported":"Unsupported","settings.notifications.messages.unsupportedEnvironment":"OS notifications are not supported in this environment.","settings.notifications.messages.permissionDenied":"Notification permission denied. Enable notifications in your system or browser settings.","settings.notifications.messages.permissionNotGranted":"Notification permission not granted.","settings.notifications.messages.unsupportedGeneral":"Notifications are not supported in this environment.","settings.notifications.messages.permissionGranted":"Permission granted. You can now enable notifications.","settings.notifications.messages.permissionRequestDenied":"Permission denied. You may need to enable notifications in your system or browser settings.","settings.notifications.sessionStatus.title":"Session status notifications","settings.notifications.sessionStatus.subtitle":"Receive alerts when sessions need your attention.","settings.notifications.enable.title":"Enable notifications","settings.notifications.enable.permission":"Permission: {permission}","settings.notifications.requestPermission.title":"Request permission","settings.notifications.requestPermission.subtitle":"Allow the app to send notifications on this device.","settings.notifications.requestPermission.action":"Request","settings.notifications.allowVisible.title":"Notify when the app is focused","settings.notifications.allowVisible.subtitle":"Keep alerts enabled even while this window is visible.","settings.notifications.unsupportedNote":"Notifications are not supported in this environment. The notifications control stays disabled.","settings.notifications.events.title":"Notify me when","settings.notifications.events.subtitle":"Choose which session events should send alerts.","settings.notifications.events.needsInput":"Session needs input","settings.notifications.events.idle":"Session becomes idle","settings.notifications.status.enabled":"Notifications enabled","settings.notifications.status.disabled":"Notifications disabled","settings.notifications.status.unsupported":"Notifications unsupported","settings.section.remote.title":"Remote Access","settings.section.remote.subtitle":"Review how this server is exposed on your network and secure access credentials.","settings.section.opencode.title":"OpenCode","settings.section.opencode.subtitle":"Choose the OpenCode binary and environment used for new instances.","settings.opencode.runtime.title":"Runtime","settings.opencode.runtime.subtitle":"Configure which OpenCode binary new instances launch with.","settings.opencode.logLevel.title":"Уровень логирования OpenCode","settings.opencode.logLevel.subtitle":"Задайте уровень логирования, используемый при запуске новых экземпляров OpenCode.","settings.opencode.logLevel.selector.title":"Подробность логов","settings.opencode.logLevel.selector.subtitle":"Выберите, сколько логов должны выводить новые экземпляры OpenCode.","settings.opencode.logLevel.option.debug":"Отладка","settings.opencode.logLevel.option.info":"Информация","settings.opencode.logLevel.option.warn":"Предупреждение","settings.opencode.logLevel.option.error":"Ошибка","settings.appearance.behavior.title":"Взаимодействие","settings.appearance.behavior.subtitle":"Значения по умолчанию для сообщений, диффов и ввода.","settings.behavior.keyboardHints.title":"Подсказки сочетаний клавиш","settings.behavior.keyboardHints.subtitle":"Показывать подсказки сочетаний клавиш по всему интерфейсу.","settings.behavior.thinking.title":"Разделы размышлений","settings.behavior.thinking.subtitle":"Показывать или скрывать разделы размышлений ИИ в сообщениях.","settings.behavior.thinkingDefault.title":"Размышления по умолчанию","settings.behavior.thinkingDefault.subtitle":"Выберите, начинать ли разделы размышлений развернутыми или свернутыми.","settings.behavior.timelineTools.title":"Вызовы инструментов в таймлайне","settings.behavior.timelineTools.subtitle":"Показывать или скрывать записи вызовов инструментов в таймлайне сообщений.","settings.behavior.diffView.title":"Вид диффа","settings.behavior.diffView.subtitle":"Выберите, как отображаются диффы вызовов инструментов.","settings.behavior.diffView.option.split":"Раздельный","settings.behavior.diffView.option.unified":"Единый","settings.behavior.toolOutputsDefault.title":"Выводы инструментов по умолчанию","settings.behavior.toolOutputsDefault.subtitle":"Выберите, начинать ли выводы инструментов развернутыми или свернутыми.","settings.behavior.diagnosticsDefault.title":"Диагностика по умолчанию","settings.behavior.diagnosticsDefault.subtitle":"Выберите, начинать ли вывод диагностики развернутым или свернутым.","settings.behavior.toolInputsVisibility.title":"Видимость входных данных инструмента","settings.behavior.toolInputsVisibility.subtitle":"Задайте видимость по умолчанию для входных аргументов вызовов инструментов.","settings.behavior.usageMetrics.title":"Метрики использования токенов","settings.behavior.usageMetrics.subtitle":"Показывать или скрывать статистику токенов и стоимости в сообщениях ассистента.","settings.behavior.autoCleanup.title":"Автоочистка пустых сессий","settings.behavior.autoCleanup.subtitle":"Автоматически очищать пустые сессии при создании новых.","settings.behavior.promptVoiceInput.title":"Prompt voice input","settings.behavior.promptVoiceInput.subtitle":"Show the microphone control for speech-to-text prompt input when speech is configured.","settings.behavior.promptSubmit.title":"Enter для отправки","settings.behavior.promptSubmit.subtitle":"Enter отправляет; Cmd/Ctrl+Enter вставляет новую строку.","settings.speech.title":"Речь","settings.speech.subtitle":"Настройте преобразование речи в текст сейчас и подготовьте основу для синтеза речи в будущих функциях.","settings.speech.provider.title":"Провайдер","settings.speech.provider.subtitle":"Речевые запросы используют серверный речевой адаптер.","settings.speech.provider.openaiCompatible":"OpenAI-compatible","settings.speech.status.loading":"Проверка конфигурации...","settings.speech.status.configured":"Настроено","settings.speech.status.missing":"Отсутствует API-ключ","settings.speech.status.error":"Речевой сервис недоступен","settings.speech.apiKey.title":"API key","settings.speech.apiKey.subtitle":"Используется для речевых запросов, управляемых CodeNomad.","settings.speech.apiKey.placeholder":"Введите новый API-ключ","settings.speech.apiKey.storedNote":"Сохранённый API-ключ скрыт. Введите новое значение, чтобы заменить его, или оставьте поле пустым, чтобы сохранить текущий ключ.","settings.speech.apiKey.clearAction":"Удалить сохранённый ключ","settings.speech.apiKey.clearPending":"Сохранённый API-ключ будет удалён после сохранения.","settings.speech.baseUrl.title":"Base URL","settings.speech.baseUrl.subtitle":"Необязательная переопределяющая ссылка для речевых endpoint'ов, совместимых с OpenAI.","settings.speech.baseUrl.placeholder":"https://api.openai.com/v1","settings.speech.sttModel.title":"Модель распознавания","settings.speech.sttModel.subtitle":"Модель, используемая для преобразования голосового ввода в тексте запроса.","settings.speech.ttsModel.title":"Речевая модель","settings.speech.ttsModel.subtitle":"Модель синтеза речи по умолчанию, зарезервированная для будущих функций воспроизведения.","settings.speech.ttsVoice.title":"Голос по умолчанию","settings.speech.ttsVoice.subtitle":"Голос синтеза речи по умолчанию, зарезервированный для будущих функций воспроизведения.","settings.speech.playbackMode.title":"Режим воспроизведения","settings.speech.playbackMode.subtitle":"Выберите, начинать ли воспроизведение TTS во время поступления аудио или только после полной генерации файла.","settings.speech.playbackMode.streaming":"Потоковый","settings.speech.playbackMode.buffered":"Буферизованный","settings.speech.ttsFormat.title":"Формат вывода","settings.speech.ttsFormat.subtitle":"Выберите аудиоформат для синтезированной речи. Поддержка потокового режима зависит от провайдера и браузера.","settings.speech.help":"Голосовой ввод появляется, когда распознавание речи настроено и поддерживается. Для воспроизведения сообщений используются выбранные здесь режим и формат TTS.","settings.speech.compatibility.streamingUnavailable":"Текущая конфигурация голосового провайдера не заявляет поддержку потокового TTS. Переключите режим воспроизведения на buffered, если хотите, чтобы воспроизведение работало уже сейчас.","settings.speech.compatibility.browserStreamingUnavailable":"Ваш текущий браузер не может воспроизводить потоково выбранный формат TTS. Выберите buffered-воспроизведение или переключитесь на другой формат.","settings.speech.compatibility.runtimeNote":"В режиме streaming по-прежнему доступны все форматы. Некоторые сочетания браузера и провайдера все равно могут завершаться ошибкой во время воспроизведения.","settings.speech.testPlayback.action":"Проверить воспроизведение","settings.speech.testPlayback.generating":"Генерация примера","settings.speech.testPlayback.stop":"Остановить пример","settings.speech.testPlayback.sample":"Спасибо, что используете CodeNomad, ваши настройки речи работают нормально.","settings.speech.testPlayback.note":"Тест сразу использует текущие режим и формат. Сначала сохраните изменения API key, Base URL, модели или голоса, если хотите проверить и их.","settings.speech.save.action":"Сохранить","settings.speech.save.saving":"Сохранение...","settings.speech.save.saved":"Сохранено","settings.speech.save.unsaved":"Есть несохранённые изменения","settings.speech.save.error":"Не удалось сохранить","settings.nav.sidecars":"SideCars","settings.section.sidecars.eyebrow":"Server services","settings.section.sidecars.title":"SideCars","settings.section.sidecars.subtitle":"Configure local services listening on fixed ports that the server can proxy into tabs.","sidecars.form.name":"Name","sidecars.form.validation":"Enter a valid SideCar name and port.","sidecars.form.port":"Port","sidecars.form.insecure":"Use HTTP","sidecars.form.protocol":"Protocol","sidecars.form.protocol.help":"Choose how the proxy should connect to the local service.","sidecars.form.protocol.https":"HTTPS","sidecars.form.protocol.http":"HTTP","sidecars.form.prefixMode":"Prefix mode","sidecars.form.prefixMode.help":"Choose whether the SideCar receives the public /sidecars path prefix.","sidecars.form.prefixMode.strip":"Strip prefix","sidecars.form.prefixMode.preserve":"Preserve prefix","sidecars.form.add":"Add SideCar","sidecars.kind.port":"Port","sidecars.status.running":"Running","sidecars.status.stopped":"Stopped","sidecars.basePath":"Base path","sidecars.settings.listTitle":"Configured SideCars","sidecars.settings.listSubtitle":"Review the port-based SideCars available in the picker.","sidecars.settings.empty":"No SideCars configured yet.","sidecars.picker.title":"Open SideCar","sidecars.picker.loading":"Loading SideCars...","sidecars.picker.subtitle":"Choose an available SideCar to open in a new tab.","sidecars.picker.empty":"No port-based SideCars are available yet.","sidecars.picker.close":"Close","sidecars.open.errorTitle":"Unable to open SideCar","sidecars.open.notFound":"SideCar not found.","sidecars.open.notRunning":"SideCar is not reachable on its configured port.","sidecars.back":"Back","sidecars.refresh":"Refresh","sidecars.path":"Path","sidecars.go":"Go"},h={"time.relative.justNow":"только что","time.relative.daysAgoShort":"{count}д назад","time.relative.hoursAgoShort":"{count}ч назад","time.relative.minutesAgoShort":"{count}м назад"},b={"toolCall.pending.waitingToRun":"Ожидание запуска…","toolCall.error.label":"Ошибка:","toolCall.header.copyTitle":"Copy tool call title","toolCall.header.copyAriaLabel":"Copy tool call title","toolCall.header.showInputTitle":"Show Tool Arguments","toolCall.header.showInputAriaLabel":"Show Tool Arguments","toolCall.header.hideInputTitle":"Hide Tool Arguments","toolCall.header.hideInputAriaLabel":"Hide Tool Arguments","toolCall.io.input":"Tool Input","toolCall.io.output":"Tool Output","toolCall.diff.label":"Diff","toolCall.diff.label.withPath":"Diff · {path}","toolCall.diff.viewMode.ariaLabel":"Режим просмотра diff","toolCall.diff.viewMode.split":"Раздельный","toolCall.diff.viewMode.unified":"Единый","toolCall.diff.switchToSplit":"Переключить на раздельный вид","toolCall.diff.switchToUnified":"Переключить на единый вид","toolCall.diff.enableWordWrap":"Включить перенос слов","toolCall.diff.disableWordWrap":"Выключить перенос слов","toolCall.diff.copyPatch":"Скопировать patch","toolCall.diagnostics.title":"Диагностика","toolCall.diagnostics.ariaLabel":"Диагностика","toolCall.diagnostics.ariaLabel.withLabel":"Диагностика {label}","toolCall.diagnostics.severity.error.short":"ERR","toolCall.diagnostics.severity.warning.short":"WARN","toolCall.diagnostics.severity.info.short":"INFO","toolCall.renderer.toolName.shell":"Shell","toolCall.renderer.toolName.fetch":"Fetch","toolCall.renderer.toolName.invalid":"Неверный","toolCall.renderer.toolName.plan":"План","toolCall.renderer.toolName.applyPatch":"Применить патч","toolCall.renderer.action.working":"Выполняется…","toolCall.renderer.action.writingCommand":"Запись команды…","toolCall.renderer.action.preparingEdit":"Подготовка правки…","toolCall.renderer.action.readingFile":"Чтение файла…","toolCall.renderer.action.preparingWrite":"Подготовка записи…","toolCall.renderer.action.preparingPatch":"Подготовка патча…","toolCall.renderer.action.planning":"Планирование…","toolCall.renderer.action.fetchingFromWeb":"Получение из интернета…","toolCall.renderer.action.findingFiles":"Поиск файлов…","toolCall.renderer.action.searchingContent":"Поиск по содержимому…","toolCall.renderer.action.listingDirectory":"Просмотр каталога…","toolCall.renderer.bash.title.timeout":"Таймаут: {timeout}","toolCall.renderer.read.detail.offset":"Смещение: {offset}","toolCall.renderer.read.detail.limit":"Лимит: {limit}","toolCall.renderer.todo.empty":"Пока нет пунктов плана.","toolCall.renderer.todo.status.pending":"Ожидает","toolCall.renderer.todo.status.inProgress":"В процессе","toolCall.renderer.todo.status.completed":"Завершено","toolCall.renderer.todo.status.cancelled":"Отменено","toolCall.renderer.todo.title.plan":"План","toolCall.renderer.todo.title.creating":"Создание плана","toolCall.renderer.todo.title.completing":"Завершение плана","toolCall.renderer.todo.title.updating":"Обновление плана","toolCall.permission.status.required":"Требуется разрешение","toolCall.permission.status.queued":"Разрешение в очереди","toolCall.permission.requestedDiff.label":"Запрошенный diff","toolCall.permission.requestedDiff.withPath":"Запрошенный diff · {path}","toolCall.permission.queuedText":"Ожидание предыдущих ответов по разрешениям.","toolCall.permission.actions.allowOnce":"Разрешить один раз","toolCall.permission.actions.alwaysAllow":"Всегда разрешать","toolCall.permission.actions.deny":"Запретить","toolCall.permission.shortcuts.allowOnce":"Разрешить один раз","toolCall.permission.shortcuts.alwaysAllow":"Всегда разрешать","toolCall.permission.shortcuts.deny":"Запретить","toolCall.permission.errors.unableToUpdate":"Не удалось обновить разрешение","permissionApproval.title":"Запросы","permissionApproval.empty":"Нет ожидающих запросов.","permissionApproval.kind.permission":"Разрешение","permissionApproval.kind.question":"Вопрос","permissionApproval.questionCount.one":"{count} вопрос","permissionApproval.questionCount.other":"{count} вопросов","permissionApproval.status.active":"Активно","permissionApproval.actions.closeAriaLabel":"Закрыть","permissionApproval.actions.goToSession":"Перейти к сессии","permissionApproval.actions.loadingSession":"Загрузка…","permissionApproval.actions.loadSession":"Загрузить сессию","permissionApproval.actions.allowOnce":"Разрешить один раз","permissionApproval.actions.alwaysAllow":"Всегда разрешать","permissionApproval.actions.deny":"Запретить","permissionApproval.fallbackHint":"Загрузите сессию для получения подробностей.","permissionApproval.errors.unableToUpdatePermission":"Не удалось обновить разрешение","toolCall.question.status.required":"Требуется ответ","toolCall.question.status.queued":"Вопрос в очереди","toolCall.question.status.questions":"Вопросы","toolCall.question.action.awaitingAnswers":"Ожидание ответов…","toolCall.question.title.questions":"Вопросы","toolCall.question.title.askingQuestions":"Задаем вопросы","toolCall.question.type.one":"Вопрос","toolCall.question.type.other":"Вопросы","toolCall.question.number":"В{number}:","toolCall.question.multiple":"Несколько","toolCall.question.custom.title":"Введите свой ответ","toolCall.question.custom.label":"Свой ответ","toolCall.question.custom.placeholder":"Введите свой ответ","toolCall.question.actions.submit":"Отправить","toolCall.question.actions.dismiss":"Скрыть","toolCall.question.shortcuts.submit":"Отправить","toolCall.question.shortcuts.dismiss":"Скрыть","toolCall.question.queuedText":"Ожидание предыдущих ответов.","toolCall.question.validation.answerAll":"Ответьте на все вопросы перед отправкой.","toolCall.question.errors.unableToReply":"Не удалось ответить","toolCall.question.errors.unableToDismiss":"Не удалось скрыть","toolCall.task.action.delegating":"Делегирование…","toolCall.task.sections.prompt":"Prompt","toolCall.task.sections.steps":"Шаги","toolCall.task.sections.output":"Вывод","toolCall.task.steps.count":"{count} шагов","toolCall.task.meta.agentModel":"Агент: {agent} • Модель: {model}","toolCall.task.meta.agent":"Агент: {agent}","toolCall.task.meta.model":"Модель: {model}","toolCall.status.pending":"В ожидании","toolCall.status.running":"Выполняется","toolCall.status.completed":"Завершено","toolCall.status.error":"Ошибка","toolCall.status.unknown":"Неизвестно","toolCall.applyPatch.action.preparing":"Подготовка apply_patch…","toolCall.applyPatch.title.withFileCount.one":"{tool} ({count} файл)","toolCall.applyPatch.title.withFileCount.other":"{tool} ({count} файлов)","toolCall.applyPatch.fileFallback":"Файл {number}"},k=e(a,s,r,h,t,i,n,l,c,g,m,b,d,u,p,o);export{k as ruMessages};
@@ -1 +0,0 @@
1
- import{m as e}from"./index-DzRzoTK8.js";import"./git-diff-vendor-CSgooKT_.js";import"./fast-diff-vendor-DgdwVvTQ.js";import"./highlight-vendor-8FKMu9os.js";import"./monaco-viewer-CMM6n0T3.js";const a={"advancedSettings.title":"Configuración avanzada","advancedSettings.environmentVariables.title":"Variables de entorno","advancedSettings.environmentVariables.subtitle":"Se aplican cada vez que inicia una nueva instancia de OpenCode","advancedSettings.actions.close":"Cerrar"},s={"app.launchError.title":"No se pudo iniciar OpenCode","app.launchError.description":"No pudimos iniciar el binario de OpenCode seleccionado. Revisa la salida de error abajo o elige un binario distinto en la configuración de OpenCode.","app.launchError.binaryPathLabel":"Ruta del binario","app.launchError.errorOutputLabel":"Salida de error","app.launchError.openAdvancedSettings":"Abrir Configuración de OpenCode","app.launchError.close":"Cerrar","app.launchError.closeTitle":"Cerrar (Esc)","app.launchError.fallbackMessage":"No se pudo iniciar el workspace","app.stopInstance.confirmMessage":"¿Detener la instancia de OpenCode? Esto detendrá el servidor.","app.stopInstance.title":"Detener instancia","app.stopInstance.confirmLabel":"Detener","app.stopInstance.cancelLabel":"Seguir ejecutándose","emptyState.logoAlt":"Logo de CodeNomad","emptyState.brandTitle":"CodeNomad","emptyState.tagline":"Selecciona una carpeta para empezar a programar con IA","emptyState.actions.selectFolder":"Seleccionar carpeta","emptyState.actions.selecting":"Seleccionando...","emptyState.keyboardShortcut":"Atajo de teclado: {shortcut}","emptyState.examples":"Ejemplos: {example}","emptyState.multipleInstances":"Puedes tener varias instancias de la misma carpeta","releases.upgradeRequired.title":"Actualización requerida","releases.upgradeRequired.message.withVersion":"Actualiza a CodeNomad {version} para usar la UI más reciente.","releases.upgradeRequired.message.noVersion":"Actualiza CodeNomad para usar la UI más reciente.","releases.upgradeRequired.action.getUpdate":"Obtener actualización","releases.uiUpdated.title":"UI actualizada","releases.uiUpdated.message":"La UI ahora está actualizada a {version}.","releases.devUpdateAvailable.title":"Compilación dev disponible","releases.devUpdateAvailable.message":"Hay una nueva compilación dev disponible: {version}.","releases.devUpdateAvailable.action":"Ver release"},o={"commandPalette.title":"Paleta de comandos","commandPalette.description":"Busca y ejecuta comandos","commandPalette.searchPlaceholder":"Escribe un comando o busca...","commandPalette.empty":'No se encontraron comandos para "{query}"',"commandPalette.category.customCommands":"Comandos personalizados","commandPalette.category.instance":"Instancia","commandPalette.category.session":"Sesión","commandPalette.category.agentModel":"Agente y modelo","commandPalette.category.inputFocus":"Entrada y foco","commandPalette.category.system":"Sistema","commandPalette.category.other":"Otro","commands.newInstance.label":"Nueva instancia","commands.newInstance.description":"Abrir el selector de carpetas para crear una nueva instancia","commands.newInstance.keywords":"carpeta, proyecto, workspace","commands.closeInstance.label":"Cerrar pestaña","commands.closeInstance.description":"Cerrar la pestaña superior actual","commands.closeInstance.keywords":"detener, salir, cerrar, pestaña","commands.nextInstance.label":"Siguiente pestaña","commands.nextInstance.description":"Cambiar a la siguiente pestaña superior","commands.nextInstance.keywords":"cambiar, navegar, pestaña","commands.previousInstance.label":"Pestaña anterior","commands.previousInstance.description":"Cambiar a la pestaña superior anterior","commands.previousInstance.keywords":"cambiar, navegar, pestaña","commands.newSession.label":"Nueva sesión","commands.newSession.description":"Crear una nueva sesión principal","commands.newSession.keywords":"crear, iniciar","commands.closeSession.label":"Cerrar sesión","commands.closeSession.description":"Cerrar la sesión principal actual","commands.closeSession.keywords":"cerrar, detener","commands.scrubSessions.label":"Depurar sesiones","commands.scrubSessions.description":"Eliminar sesiones vacías, sesiones de subagente que ya completaron su tarea principal y sesiones bifurcadas innecesarias.","commands.scrubSessions.keywords":"limpieza, blanco, vacías, sesiones, quitar, eliminar, depurar","commands.instanceInfo.label":"Info de la instancia","commands.instanceInfo.description":"Abrir el resumen de la instancia para ver logs y estado","commands.instanceInfo.keywords":"info, logs, consola, salida","commands.nextSession.label":"Siguiente sesión","commands.nextSession.description":"Cambiar a la siguiente pestaña de sesión","commands.nextSession.keywords":"cambiar, navegar","commands.previousSession.label":"Sesión anterior","commands.previousSession.description":"Cambiar a la pestaña de sesión anterior","commands.previousSession.keywords":"cambiar, navegar","commands.compactSession.label":"Compactar sesión","commands.compactSession.description":"Resumir y compactar la sesión actual","commands.compactSession.keywords":"resumir, comprimir","commands.compactSession.errorFallback":"No se pudo compactar la sesión","commands.compactSession.alert.title":"La compactación falló","commands.compactSession.alert.message":"La compactación falló: {message}","commands.undoLastMessage.label":"Deshacer último mensaje","commands.undoLastMessage.description":"Revertir el último mensaje","commands.undoLastMessage.keywords":"revertir, deshacer","commands.undoLastMessage.none.title":"No hay acciones para deshacer","commands.undoLastMessage.none.message":"Nada que deshacer","commands.undoLastMessage.failed.title":"No se pudo deshacer","commands.undoLastMessage.failed.message":"No se pudo revertir el mensaje","commands.openModelSelector.label":"Abrir selector de modelo","commands.openModelSelector.description":"Elegir un modelo diferente","commands.openModelSelector.keywords":"modelo, llm, IA","commands.selectModelVariant.label":"Seleccionar variante del modelo","commands.selectModelVariant.description":"Elegir un nivel de esfuerzo de pensamiento para el modelo actual","commands.selectModelVariant.keywords":"variante, pensamiento, razonamiento, esfuerzo","commands.openAgentSelector.label":"Abrir selector de agente","commands.openAgentSelector.description":"Elegir un agente diferente","commands.openAgentSelector.keywords":"agente, modo","commands.clearInput.label":"Limpiar entrada","commands.clearInput.description":"Borrar el área de texto del prompt","commands.clearInput.keywords":"limpiar, reiniciar","commands.promptSubmitShortcut.label.default":"Enter: Nueva linea, Cmd/Ctrl+Enter: Enviar prompt","commands.promptSubmitShortcut.label.swapped":"Enter: Enviar prompt, Cmd/Ctrl+Enter: Nueva linea","commands.promptSubmitShortcut.description":"Intercambiar el comportamiento de Enter y Cmd/Ctrl+Enter en la entrada de prompt","commands.promptSubmitShortcut.keywords":"enter, enviar, salto de linea, atajo, teclado, cmd, ctrl, prompt","commands.thinkingBlocks.label.show":"Mostrar pensamiento","commands.thinkingBlocks.label.hide":"Ocultar pensamiento","commands.thinkingBlocks.description":"Mostrar u ocultar secciones de pensamiento de IA","commands.thinkingBlocks.keywords":"pensamiento, razonamiento, alternar, mostrar, ocultar","commands.timelineToolCalls.label.show":"Mostrar llamadas de herramienta en la línea de tiempo","commands.timelineToolCalls.label.hide":"Ocultar llamadas de herramienta en la línea de tiempo","commands.timelineToolCalls.description":"Alternar entradas de llamadas de herramienta en la línea de tiempo de mensajes","commands.timelineToolCalls.keywords":"línea de tiempo, herramienta, alternar","commands.keyboardShortcutHints.label.show":"Mostrar atajos de teclado","commands.keyboardShortcutHints.label.hide":"Ocultar atajos de teclado","commands.keyboardShortcutHints.description":"Mostrar u ocultar sugerencias de atajos de teclado en la interfaz","commands.keyboardShortcutHints.description.disabledWeb":"Desactivado en WebUI (los atajos siempre se ocultan)","commands.keyboardShortcutHints.keywords":"atajo, atajos, teclado, keybind, pistas","commands.common.expanded":"Expandido","commands.common.collapsed":"Colapsado","commands.common.visible":"Visible","commands.common.hidden":"Oculto","commands.common.enabled":"Activado","commands.common.disabled":"Desactivado","commands.thinkingBlocksDefault.label":"Vista de pensamiento: {state}","commands.thinkingBlocksDefault.description":"Contraer / Expandir secciones de pensamiento de IA cuando se muestran","commands.thinkingBlocksDefault.keywords":"pensamiento, razonamiento, expandir, colapsar, por defecto","commands.diffViewSplit.label":"Usar vista de diff dividida","commands.diffViewSplit.description":"Mostrar diffs de llamadas de herramienta lado a lado","commands.diffViewSplit.keywords":"diff, dividir, vista","commands.diffViewUnified.label":"Usar vista de diff unificada","commands.diffViewUnified.description":"Mostrar diffs de llamadas de herramienta en línea","commands.diffViewUnified.keywords":"diff, unificada, vista","commands.toolOutputsDefault.label":"Salidas de herramientas por defecto · {state}","commands.toolOutputsDefault.description":"Alternar la expansión por defecto de las salidas de herramientas","commands.toolOutputsDefault.keywords":"herramienta, salida, expandir, colapsar","commands.diagnosticsDefault.label":"Diagnósticos por defecto · {state}","commands.diagnosticsDefault.description":"Alternar la expansión por defecto de la salida de diagnósticos","commands.diagnosticsDefault.keywords":"diagnósticos, expandir, colapsar","commands.toolInputsVisibility.label":"Visibilidad de entradas de herramientas · {state}","commands.toolInputsVisibility.description":"Configurar la visibilidad por defecto de los argumentos de entrada de llamadas de herramienta","commands.toolInputsVisibility.keywords":"herramienta, entradas, argumentos, visibilidad, ocultar, mostrar, expandir, colapsar","commands.tokenUsageDisplay.label":"Mostrar uso de tokens · {state}","commands.tokenUsageDisplay.description":"Mostrar u ocultar estadísticas de tokens y costo en los mensajes del asistente","commands.tokenUsageDisplay.keywords":"token, uso, costo, estadísticas","commands.autoCleanupBlankSessions.label":"Auto-limpieza de sesiones vacías · {state}","commands.autoCleanupBlankSessions.description":"Limpiar automáticamente las sesiones vacías al crear nuevas","commands.autoCleanupBlankSessions.keywords":"auto, limpieza, vacías, sesiones, alternar","commands.showHelp.label":"Mostrar ayuda","commands.showHelp.description":"Mostrar atajos de teclado y ayuda","commands.showHelp.keywords":"atajos, ayuda","commands.custom.argumentsPrompt.message":"Argumentos para /{name}","commands.custom.argumentsPrompt.title":"Comando personalizado","commands.custom.argumentsPrompt.inputLabel":"Argumentos","commands.custom.argumentsPrompt.inputPlaceholder":"p. ej. foo bar","commands.custom.argumentsPrompt.confirmLabel":"Ejecutar","commands.custom.argumentsPrompt.cancelLabel":"Cancelar","commands.custom.argumentsPrompt.openFailed.message":"No se pudo abrir el diálogo de argumentos.","commands.custom.argumentsPrompt.openFailed.title":"Argumentos del comando","commands.custom.entries.descriptionFallback":"Comando personalizado","commands.custom.sessionRequired.message":"Selecciona una sesión antes de ejecutar un comando personalizado.","commands.custom.sessionRequired.title":"Se requiere sesión","commands.custom.runFailed.message":"No se pudo ejecutar el comando personalizado. Revisa la consola para más detalles.","commands.custom.runFailed.title":"El comando falló","unifiedPicker.loading.searching":"Buscando...","unifiedPicker.loading.loadingWorkspace":"Cargando workspace...","unifiedPicker.title.command":"Seleccionar comando","unifiedPicker.title.mention":"Seleccionar agente o archivo","unifiedPicker.empty":"No se encontraron resultados","unifiedPicker.sections.commands":"COMANDOS","unifiedPicker.sections.agents":"AGENTES","unifiedPicker.sections.files":"ARCHIVOS","unifiedPicker.badge.subagent":"subagente","unifiedPicker.footer.navigate":"navegar","unifiedPicker.footer.select":"seleccionar","unifiedPicker.footer.close":"cerrar"},t={"alertDialog.fallbackTitle.info":"Aviso","alertDialog.fallbackTitle.warning":"Por favor revisa","alertDialog.fallbackTitle.error":"Algo salió mal","alertDialog.actions.confirm":"Confirmar","alertDialog.actions.run":"Ejecutar","alertDialog.actions.ok":"OK","alertDialog.actions.cancel":"Cancelar","alertDialog.prompt.inputLabel":"Entrada","backgroundProcessOutputDialog.title":"Salida en segundo plano","backgroundProcessOutputDialog.actions.close":"Cerrar","backgroundProcessOutputDialog.loading":"Cargando salida...","backgroundProcessOutputDialog.truncatedNotice":"Salida truncada para mostrar.","backgroundProcessOutputDialog.loadErrorFallback":"No se pudo cargar la salida."},i={"directoryBrowser.defaultDescription":"Explora carpetas bajo la raíz del workspace configurado.","directoryBrowser.close":"Cerrar","directoryBrowser.currentFolder":"Carpeta actual","directoryBrowser.selectCurrent":"Seleccionar actual","directoryBrowser.newFolder":"Nueva carpeta","directoryBrowser.creating":"Creando…","directoryBrowser.loadingFolders":"Cargando carpetas…","directoryBrowser.noFolders":"No hay carpetas disponibles.","directoryBrowser.upOneLevel":"Subir un nivel","directoryBrowser.select":"Seleccionar","directoryBrowser.load.errorFallback":"No se pudo cargar el sistema de archivos","directoryBrowser.createFolder.promptMessage":"Crea una nueva carpeta en el directorio actual.","directoryBrowser.createFolder.title":"Nueva carpeta","directoryBrowser.createFolder.inputLabel":"Nombre de la carpeta","directoryBrowser.createFolder.inputPlaceholder":"p. ej. mi-nuevo-proyecto","directoryBrowser.createFolder.confirmLabel":"Crear","directoryBrowser.createFolder.cancelLabel":"Cancelar","directoryBrowser.createFolder.invalidNameMessage":"Introduce un único nombre de carpeta.","directoryBrowser.createFolder.invalidNameDetail":"Los nombres de carpeta no pueden incluir barras, '..' ni '~'.","directoryBrowser.createFolder.errorFallback":"No se pudo crear la carpeta","filesystemBrowser.descriptionFallback":"Busca una ruta bajo la raíz del workspace configurado.","filesystemBrowser.rootLabel":"Raíz: {root}","filesystemBrowser.actions.close":"Cerrar","filesystemBrowser.actions.retry":"Reintentar","filesystemBrowser.actions.select":"Seleccionar","filesystemBrowser.filterLabel":"Filtro","filesystemBrowser.search.placeholder.directories":"Buscar carpetas","filesystemBrowser.search.placeholder.files":"Buscar archivos","filesystemBrowser.currentFolder.label":"Carpeta actual","filesystemBrowser.currentFolder.selectCurrent":"Seleccionar actual","filesystemBrowser.loading.filesystem":"sistema de archivos","filesystemBrowser.loading.workspaceRoot":"raíz del workspace","filesystemBrowser.loading.loadingWithPath":"Cargando {path}…","filesystemBrowser.empty.noEntries":"No se encontraron elementos.","filesystemBrowser.navigation.upOneLevel":"Subir un nivel","filesystemBrowser.hints.navigate":"Navegar","filesystemBrowser.hints.select":"Seleccionar","filesystemBrowser.hints.close":"Cerrar","filesystemBrowser.errors.loadFilesystemFallback":"No se pudo cargar el sistema de archivos","filesystemBrowser.errors.openDirectoryFallback":"No se pudo abrir el directorio"},n={"folderSelection.language.ariaLabel":"Idioma","folderSelection.logoAlt":"Logo de CodeNomad","folderSelection.tagline":"Selecciona una carpeta para empezar a programar con AI","folderSelection.links.github":"GitHub de CodeNomad","folderSelection.links.githubStars":"Estrellas de GitHub de CodeNomad","folderSelection.links.discord":"Discord de CodeNomad","folderSelection.empty.title":"No hay carpetas recientes","folderSelection.empty.description":"Busca una carpeta para comenzar","folderSelection.recent.title":"Carpetas recientes","folderSelection.recent.subtitle.one":"{count} carpeta disponible","folderSelection.recent.subtitle.other":"{count} carpetas disponibles","folderSelection.recent.remove":"Eliminar de recientes","folderSelection.browse.title":"Buscar carpeta","folderSelection.browse.subtitle":"Selecciona cualquier carpeta en tu ordenador","folderSelection.browse.button":"Buscar carpetas","folderSelection.browse.buttonOpening":"Abriendo...","folderSelection.actions.title":"Abrir carpeta o conectar servidor","folderSelection.actions.subtitle":"Abre una carpeta local o conéctate a un servidor de CodeNomad","folderSelection.actions.connectButton":"Conectar servidor CodeNomad","folderSelection.advancedSettings":"Configuración avanzada","folderSelection.opencode":"OpenCode","folderSelection.hints.navigate":"Navegar","folderSelection.hints.select":"Seleccionar","folderSelection.hints.remove":"Eliminar","folderSelection.hints.browse":"Buscar","folderSelection.loading.title":"Iniciando instancia...","folderSelection.loading.subtitle":"Espera mientras preparamos tu espacio de trabajo.","folderSelection.drop.title":"Suelta una carpeta para abrirla","folderSelection.drop.subtitle":"Inicia una nueva instancia en la carpeta soltada.","folderSelection.drop.invalidTitle":"No se pudo abrir el elemento soltado","folderSelection.drop.invalidMessage":"Suelta una carpeta para iniciar una nueva instancia.","folderSelection.dialog.title":"Seleccionar workspace","folderSelection.dialog.description":"Selecciona un workspace para empezar a programar.","folderSelection.tabs.local":"Carpetas locales","folderSelection.tabs.servers":"Servidores","folderSelection.servers.title":"Servidores guardados","folderSelection.servers.subtitle":"Abre un servidor remoto de CodeNomad guardado en una ventana nueva","folderSelection.servers.count":"{count} servidores","folderSelection.servers.empty.title":"No hay servidores guardados","folderSelection.servers.empty.description":"Añade un servidor remoto para volver a conectarte rápidamente desde este dispositivo","folderSelection.servers.connectTitle":"Conectar a un servidor","folderSelection.servers.connectSubtitle":"Guarda un servidor remoto de CodeNomad y ábrelo en una ventana nueva","folderSelection.servers.connectButton":"Conectar a un servidor","folderSelection.servers.remove":"Eliminar servidor guardado","folderSelection.servers.skipTls":"TLS autofirmado","folderSelection.servers.errorTitle":"Falló la conexión remota","folderSelection.servers.dialog.title":"Conectar a un servidor","folderSelection.servers.dialog.description":"Añade un servidor remoto de CodeNomad y ábrelo ahora si quieres.","folderSelection.servers.dialog.name":"Nombre del servidor","folderSelection.servers.dialog.namePlaceholder":"Servidor de producción","folderSelection.servers.dialog.url":"URL del servidor","folderSelection.servers.dialog.urlPlaceholder":"https://server.example.com","folderSelection.servers.dialog.skipTls":"Omitir la verificación TLS para certificados autofirmados.","folderSelection.servers.dialog.cancel":"Cancelar","folderSelection.servers.dialog.save":"Guardar","folderSelection.servers.dialog.connect":"Conectar","folderSelection.servers.dialog.connecting":"Conectando...","folderSelection.servers.dialog.errorRequired":"El nombre y la URL del servidor son obligatorios.","folderSelection.servers.dialog.errorConnect":"No se pudo conectar al servidor remoto.","folderSelection.sidecars.button":"Open SideCar"},r={"instanceTabs.new.title":"Nueva instancia (Cmd/Ctrl+N)","instanceTabs.new.ariaLabel":"Nueva instancia","instanceTabs.remote.title":"Conexión remota","instanceTabs.remote.ariaLabel":"Conexión remota","instanceInfo.title":"Información de la instancia","instanceInfo.labels.folder":"Carpeta","instanceInfo.labels.project":"Proyecto","instanceInfo.labels.versionControl":"Control de versiones","instanceInfo.labels.opencodeVersion":"Versión de OpenCode","instanceInfo.labels.binaryPath":"Ruta del binario","instanceInfo.labels.environmentVariables":"Variables de entorno ({count})","instanceInfo.loading":"Cargando...","instanceInfo.server.title":"Servidor","instanceInfo.server.port":"Puerto:","instanceInfo.server.pid":"PID:","instanceInfo.server.status":"Estado:","instanceTab.status.permission":"Esperando permiso","instanceTab.status.compacting":"Compactando","instanceTab.status.working":"Trabajando","instanceTab.status.idle":"Inactiva","instanceTab.status.ariaLabel":"Estado de la instancia: {status}","instanceTab.actions.close.ariaLabel":"Cerrar instancia","instanceShell.leftPanel.sessionsTitle":"Sesiones","instanceShell.leftPanel.instanceInfo":"Info de la instancia","instanceShell.leftDrawer.pin":"Fijar panel izquierdo","instanceShell.leftDrawer.unpin":"Desfijar panel izquierdo","instanceShell.leftDrawer.toggle.pinned":"Panel izquierdo fijado","instanceShell.leftDrawer.toggle.open":"Abrir panel izquierdo","instanceShell.leftDrawer.toggle.close":"Cerrar panel izquierdo","instanceShell.rightDrawer.pin":"Fijar panel derecho","instanceShell.rightDrawer.unpin":"Desfijar panel derecho","instanceShell.rightDrawer.toggle.pinned":"Panel derecho fijado","instanceShell.rightDrawer.toggle.open":"Abrir panel derecho","instanceShell.rightDrawer.toggle.close":"Cerrar panel derecho","instanceShell.fullscreen.enter":"Pantalla completa","instanceShell.fullscreen.exit":"Salir de pantalla completa","instanceShell.metrics.usedLabel":"Usado","instanceShell.metrics.availableLabel":"Disp.","instanceShell.commandPalette.openAriaLabel":"Abrir paleta de comandos","instanceShell.commandPalette.button":"Paleta de comandos","instanceShell.connection.ariaLabel":"Conexión {status}","instanceShell.connection.connected":"Conectada","instanceShell.connection.connecting":"Conectando...","instanceShell.connection.disconnected":"Desconectada","instanceShell.connection.unknown":"Desconocida","instanceWelcome.shortcuts.newSession":"Nueva sesión","instanceWelcome.empty.title":"No hay sesiones anteriores","instanceWelcome.empty.description":"Crea una nueva sesión abajo para comenzar","instanceWelcome.loading.title":"Cargando sesiones","instanceWelcome.loading.description":"Obteniendo tus sesiones anteriores...","instanceWelcome.resume.title":"Reanudar sesión","instanceWelcome.resume.subtitle.one":"{count} sesión disponible","instanceWelcome.resume.subtitle.other":"{count} sesiones disponibles","instanceWelcome.session.untitled":"Sesión sin título","instanceWelcome.new.title":"Iniciar nueva sesión","instanceWelcome.new.subtitle":"Reutilizaremos tu último agente/modelo automáticamente","instanceWelcome.new.createButton":"Crear sesión","instanceWelcome.overlay.close":"Cerrar","instanceWelcome.actions.viewInstanceInfo":"Ver info de la instancia","instanceWelcome.actions.renameTitle":"Renombrar sesión","instanceWelcome.actions.deleteTitle":"Eliminar sesión","instanceWelcome.hints.navigate":"Navegar","instanceWelcome.hints.jump":"Saltar","instanceWelcome.hints.firstLast":"Primero/Último","instanceWelcome.hints.resume":"Reanudar","instanceWelcome.hints.delete":"Eliminar","instanceWelcome.toasts.renameError":"No se pudo renombrar la sesión","instanceDisconnected.title":"Instancia desconectada","instanceDisconnected.folderFallback":"este workspace","instanceDisconnected.reasonFallback":"El servidor dejó de responder","instanceDisconnected.description":"{folder} ya no se puede alcanzar. Cierra la pestaña para seguir trabajando.","instanceDisconnected.details.title":"Detalles","instanceDisconnected.details.folderLabel":"Carpeta:","instanceDisconnected.actions.closeInstance":"Cerrar instancia","instanceShell.empty.title":"No hay sesión seleccionada","instanceShell.empty.description":"Selecciona una sesión para ver mensajes","instanceShell.rightPanel.title":"Panel de estado","instanceShell.rightPanel.tabs.changes":"Cambios","instanceShell.rightPanel.tabs.gitChanges":"Cambios de Git","instanceShell.rightPanel.tabs.files":"Archivos","instanceShell.rightPanel.tabs.status":"Estado","instanceShell.rightPanel.tabs.ariaLabel":"Pestañas del panel derecho","instanceShell.rightPanel.actions.refresh":"Actualizar","instanceShell.rightPanel.actions.save":"Guardar (Ctrl+S)","instanceShell.rightPanel.actions.saveConfirm.message":'¿Deseas guardar los cambios en "{path}" antes de cambiar?',"instanceShell.rightPanel.actions.saveConfirm.confirmLabel":"Guardar","instanceShell.rightPanel.actions.saveConfirm.cancelLabel":"Descartar cambios","instanceShell.rightPanel.actions.conflict.message":"El archivo fue modificado por el agente. ¿Sobrescribir los cambios del agente?","instanceShell.rightPanel.actions.conflict.confirmLabel":"Sobrescribir","instanceShell.rightPanel.actions.conflict.cancelLabel":"Cancelar","instanceShell.rightPanel.actions.refreshDirty.message":"El archivo tiene cambios sin guardar. Actualizar discardará tus ediciones. ¿Continuar?","instanceShell.rightPanel.actions.refreshDirty.confirmLabel":"Actualizar","instanceShell.rightPanel.actions.refreshDirty.cancelLabel":"Cancelar","instanceShell.rightPanel.toast.saveSuccess":"Archivo guardado exitosamente","instanceShell.rightPanel.toast.saveError":"Error al guardar el archivo","instanceShell.rightPanel.sections.yoloMode":"Modo yolo","instanceShell.rightPanel.sections.yoloMode.tooltip":"Aprueba automaticamente las solicitudes de permiso de la sesion actual. Usalo solo si confias en las herramientas que se estan ejecutando.","instanceShell.rightPanel.sections.sessionChanges":"Cambios de sesión","instanceShell.rightPanel.sections.sessionChanges.tooltip":"Archivos modificados en la sesión actual. Muestra las adiciones y eliminaciones de cada archivo.","instanceShell.rightPanel.sections.plan":"Plan","instanceShell.rightPanel.sections.plan.tooltip":"Hoja de ruta del agente para esta sesión. Realiza el seguimiento de tareas, subtareas y su estado de finalización.","instanceShell.rightPanel.sections.backgroundProcesses":"Shells en segundo plano","instanceShell.rightPanel.sections.backgroundProcesses.tooltip":"Procesos de larga duración iniciados por el agente. Puedes supervisar su salida, detenerlos o terminarlos.","instanceShell.rightPanel.sections.mcp":"Servidores MCP","instanceShell.rightPanel.sections.mcp.tooltip":"Servidores del Model Context Protocol (MCP) que amplían las capacidades del agente con herramientas y servicios externos.","instanceShell.rightPanel.sections.lsp":"Servidores LSP","instanceShell.rightPanel.sections.lsp.tooltip":"Servidores del Language Server Protocol (LSP) que proporcionan inteligencia de código, diagnósticos y funciones específicas del lenguaje.","instanceShell.rightPanel.sections.plugins":"Plugins","instanceShell.rightPanel.sections.plugins.tooltip":"Plugins que personalizan el comportamiento de la UI y del servidor, y añaden funciones más allá de MCP y LSP.","instanceShell.sessionChanges.noSessionSelected":"Selecciona una sesión para ver los cambios.","instanceShell.sessionChanges.loading":"Obteniendo cambios de la sesión...","instanceShell.sessionChanges.empty":"Aún no hay cambios.","instanceShell.sessionChanges.filesChanged":"{count} archivos cambiados","instanceShell.sessionChanges.actions.show":"Mostrar cambios","instanceShell.gitChanges.loading":"Cargando cambios de Git...","instanceShell.gitChanges.empty":"Aún no hay cambios de Git.","instanceShell.gitChanges.deleted":"Eliminado","instanceShell.filesShell.fileListTitle":"Lista de archivos","instanceShell.filesShell.mobileSelectorLabel":"Seleccionar archivo","instanceShell.filesShell.mobileSelectorEmpty":"Selecciona un archivo","instanceShell.filesShell.viewerTitle":"Visor de cambios","instanceShell.filesShell.viewerPlaceholder":"La vista detallada se agregará en el siguiente paso.","instanceShell.filesShell.viewerEmpty":"Ningún archivo seleccionado.","instanceShell.plan.noSessionSelected":"Selecciona una sesión para ver el plan.","instanceShell.plan.empty":"Aún no hay nada planificado.","instanceShell.yoloMode.noSessionSelected":"Selecciona una sesion para configurar el modo yolo.","instanceShell.yoloMode.title":"Modo yolo","instanceShell.yoloMode.description":"Aprueba automaticamente las solicitudes de permiso de esta sesion. Esta desactivado por defecto.","instanceShell.yoloMode.badge":"Modo yolo","instanceShell.yoloMode.badgeAriaLabel":"Modo yolo activado","instanceShell.backgroundProcesses.empty":"No hay procesos en segundo plano.","instanceShell.backgroundProcesses.status":"Estado: {status}","instanceShell.backgroundProcesses.output":"Salida: {sizeKb} KB","instanceShell.backgroundProcesses.notify.enabled":"Notificacion de finalizacion activada","instanceShell.backgroundProcesses.notify.disabled":"Notificacion de finalizacion desactivada","instanceShell.backgroundProcesses.actions.output":"Salida","instanceShell.backgroundProcesses.actions.stop":"Detener","instanceShell.backgroundProcesses.actions.terminate":"Terminar","versionPill.appWithVersion":"App {version}","versionPill.ui":"UI","versionPill.uiWithVersion":"UI {version}","versionPill.source":" ({source})","opencodeBinarySelector.title":"Binario de OpenCode","opencodeBinarySelector.subtitle":"Elige qué ejecutable de OpenCode debe ejecutarse","opencodeBinarySelector.customPath.placeholder":"Introduce la ruta al binario de opencode…","opencodeBinarySelector.actions.add":"Agregar","opencodeBinarySelector.actions.browse":"Explorar binario…","opencodeBinarySelector.actions.removeTitle":"Quitar binario","opencodeBinarySelector.badge.systemPath":"Usar binario del PATH del sistema","opencodeBinarySelector.status.checkingVersions":"Comprobando versiones…","opencodeBinarySelector.status.checking":"Comprobando…","opencodeBinarySelector.dialog.title":"Seleccionar binario de OpenCode","opencodeBinarySelector.dialog.description":"Explora los archivos expuestos por el servidor del CLI.","opencodeBinarySelector.validation.invalidBinary":"Binario de OpenCode no válido","opencodeBinarySelector.validation.alreadyValidating":"Ya se está validando","opencodeBinarySelector.display.systemPath":"{name} (PATH del sistema)","opencodeBinarySelector.versionLabel":"v{version}"},l={"loadingScreen.logoAlt":"Logo de CodeNomad","loadingScreen.status.issue":"Se produjo un problema","loadingScreen.actions.showAnother":"Mostrar otra","loadingScreen.errors.missingRoot":"No se encontró el elemento raíz de carga","loadingScreen.phrases.neurons":"Calentando las neuronas de la IA…","loadingScreen.phrases.daydreaming":"Convenciendo a la IA de dejar de soñar despierta…","loadingScreen.phrases.goggles":"Puliendo las gafas de código de la IA…","loadingScreen.phrases.reorganizingFiles":"Pidiéndole a la IA que deje de reorganizar tus archivos…","loadingScreen.phrases.coffee":"Dándole más café a la IA…","loadingScreen.phrases.nodeModules":"Enseñándole a la IA a no borrar node_modules (otra vez)…","loadingScreen.phrases.actNatural":"Diciéndole a la IA que actúe natural antes de que llegues…","loadingScreen.phrases.rewritingHistory":"Pidiéndole a la IA que deje de reescribir la historia…","loadingScreen.phrases.stretch":"Dejando que la IA se estire antes de su sprint de código…","loadingScreen.phrases.keyboardControl":"Convenciendo a la IA de devolverte el control del teclado…"},c={"logsView.title":"Registros del servidor","logsView.actions.show":"Mostrar registros del servidor","logsView.actions.hide":"Ocultar registros del servidor","logsView.envVars.title":"Variables de entorno ({count})","logsView.paused.title":"Los registros del servidor están en pausa","logsView.paused.description":"Activa el streaming para ver la actividad de tu servidor de OpenCode.","logsView.empty.waiting":"Esperando la salida del servidor...","logsView.scrollToBottom":"Desplazarse al final","infoView.logs.title":"Registros del servidor","infoView.logs.actions.show":"Mostrar registros del servidor","infoView.logs.actions.hide":"Ocultar registros del servidor","infoView.logs.paused.title":"Los registros del servidor están en pausa","infoView.logs.paused.description":"Activa el streaming para ver la actividad de tu servidor de OpenCode.","infoView.logs.empty.waiting":"Esperando la salida del servidor...","infoView.logs.scrollToBottom":"Desplazarse al final","infoView.dispose.actions.dispose":"Desechar instancia","infoView.dispose.actions.disposing":"Desechando...","infoView.dispose.confirm.title":"¿Desechar instancia?","infoView.dispose.confirm.message":"Esto borra el estado en caché por proyecto para este directorio y recarga la instancia.","infoView.dispose.confirm.confirmLabel":"Desechar","infoView.dispose.confirm.cancelLabel":"Cancelar","infoView.dispose.toast.success":"Instancia desechada. Recargando...","infoView.dispose.toast.error":"No se pudo desechar la instancia."},d={"markdown.codeBlock.copy.label":"Copiar","markdown.codeBlock.copy.copied":"¡Copiado!","markdown.codeBlock.copy.failed":"Error","markdown.copy":"Copiar"},m={"messageListHeader.sidebar.openSessionListAriaLabel":"Abrir lista de sesiones","messageListHeader.metrics.usedLabel":"Usado","messageListHeader.metrics.availableLabel":"Disp.","messageListHeader.commandPalette.ariaLabel":"Abrir paleta de comandos","messageListHeader.commandPalette.button":"Paleta de comandos","messageListHeader.connection.connected":"Conectado","messageListHeader.connection.connecting":"Conectando...","messageListHeader.connection.disconnected":"Desconectado","messageSection.empty.logoAlt":"Logo de CodeNomad","messageSection.empty.brandTitle":"CodeNomad","messageSection.empty.title":"Inicia una conversación","messageSection.empty.description":"Escribe un mensaje abajo o abre la Paleta de comandos:","messageSection.empty.tips.commandPalette":"Paleta de comandos","messageSection.empty.tips.askAboutCodebase":"Pregunta sobre tu codebase","messageSection.empty.tips.attachFilesPrefix":"Adjunta archivos con","messageSection.loading.messages":"Cargando mensajes...","messageSection.scroll.toFirstAriaLabel":"Desplazarse al primer mensaje","messageSection.scroll.toLatestAriaLabel":"Desplazarse al último mensaje","messageSection.scroll.enableHoldAriaLabel":"Activar pausa para respuestas largas del asistente","messageSection.scroll.disableHoldAriaLabel":"Desactivar pausa para respuestas largas del asistente","messageSection.quote.addAsQuote":"Añadir como cita","messageSection.quote.addAsCode":"Añadir como código","messageSection.quote.copy":"Copiar","messageSection.quote.copied":"¡Copiado!","messageSection.quote.copyFailed":"No se pudo copiar","messageTimeline.ariaLabel":"Línea de tiempo de mensajes","messageTimeline.segment.user.label":"Tú","messageTimeline.segment.assistant.label":"Asist.","messageTimeline.segment.compaction.label":"Compactación","messageTimeline.tool.fallbackLabel":"Llamada de herramienta","messageTimeline.tooltip.userFallback":"Mensaje del usuario","messageTimeline.tooltip.assistantFallback":"Respuesta del asistente","messageTimeline.tooltip.compaction.auto":"Compactación automática","messageTimeline.tooltip.compaction.manual":"Compactación manual","messageTimeline.text.filePrefix":"[Archivo] {filename}","messageTimeline.text.attachment":"Adjunto","messageBlock.tool.header":"Llamada de herramienta","messageBlock.tool.unknown":"desconocido","messageBlock.tool.goToSession.label":"Ir a sesión","messageBlock.tool.goToSession.title":"Ir a la sesión","messageBlock.tool.goToSession.unavailableTitle":"La sesión aún no está disponible","messageBlock.tool.deletePart.label":"Eliminar parte","messageBlock.tool.deletePart.deleting":"Eliminando...","messageBlock.tool.deletePart.title":"Eliminar esta salida de herramienta","messageBlock.tool.deletePart.failed.title":"Error al eliminar","messageBlock.tool.deletePart.failed.message":"No se pudo eliminar la salida de herramienta","messageBlock.compaction.ariaLabel":"Compactación de sesión","messageBlock.compaction.autoLabel":"Sesión compactada automáticamente","messageBlock.compaction.manualLabel":"Sesión compactada por ti","messageBlock.usage.input":"Entrada","messageBlock.usage.output":"Salida","messageBlock.usage.reasoning":"Razonamiento","messageBlock.usage.cacheRead":"Lectura de cache","messageBlock.usage.cacheWrite":"Escritura de cache","messageBlock.usage.cost":"Costo","messageBlock.step.agentLabel":"Agente: {agent}","messageBlock.step.modelLabel":"Modelo: {model}","messageBlock.reasoning.thinkingLabel":"Pensamiento","messageBlock.reasoning.expandAriaLabel":"Expandir pensamiento","messageBlock.reasoning.collapseAriaLabel":"Colapsar pensamiento","messageBlock.reasoning.indicator.hide":"Ocultar","messageBlock.reasoning.indicator.view":"Ver","messageBlock.reasoning.detailsAriaLabel":"Detalles del razonamiento","codeBlockInline.actions.copy":"Copiar","codeBlockInline.actions.copied":"¡Copiado!","messageItem.speaker.you":"Tú","messageItem.speaker.assistant":"Asistente","messageItem.actions.revert":"Revertir","messageItem.actions.revertTitle":"Deshacer cambios hasta aqui (elimina mensajes)","messageItem.actions.fork":"Fork","messageItem.actions.forkTitle":"Fork desde este mensaje","messageItem.actions.copy":"Copiar","messageItem.actions.copyTitle":"Copiar mensaje","messageItem.actions.copied":"¡Copiado!","messageItem.actions.speak":"Reproducir mensaje","messageItem.actions.generatingSpeech":"Generando audio","messageItem.actions.stopSpeech":"Detener reproduccion","messageItem.actions.speak.error.title":"La reproduccion de voz fallo","messageItem.actions.speak.error.unsupported":"La reproduccion de voz no es compatible con este navegador.","messageItem.actions.speak.error.unavailable":"La reproduccion de voz no estara disponible hasta que la configuracion de voz este lista.","messageItem.actions.speak.error.generate":"No se pudo generar audio para este mensaje.","messageItem.actions.deleteMessage":"Eliminar mensaje (no deshace cambios)","messageItem.actions.deleteMessagesUpTo":"Eliminar mensajes hasta aqui (no deshace cambios)","messageItem.actions.deletingMessage":"Eliminando...","messageItem.actions.deleteMessageFailedTitle":"Error al eliminar","messageItem.actions.deleteMessageFailedMessage":"No se pudo eliminar el mensaje","messageItem.selection.checkboxAriaLabel":"Seleccionar mensaje para eliminar","messageSection.bulkDelete.toolbarAriaLabel":"Elementos seleccionados ({count})","messageSection.bulkDelete.deleteSelectedTitle":"Eliminar elementos seleccionados","messageSection.bulkDelete.selectAllTitle":"Seleccionar todos los mensajes","messageSection.bulkDelete.moreOptionsTitle":"Más opciones","messageSection.bulkDelete.selectionModeLabel":"Selección","messageSection.bulkDelete.selectionModeAll":"Todo","messageSection.bulkDelete.selectionModeTools":"Solo herramientas","messageSection.bulkDelete.selectionHint.toggle":"Seleccionar elemento","messageSection.bulkDelete.selectionHint.range":"Seleccionar rango","messageSection.bulkDelete.selectionHint.clear":"Borrar selección","messageSection.bulkDelete.cancelTitle":"Cancelar selección","messageSection.bulkDelete.failedTitle":"Error al eliminar","messageSection.bulkDelete.failedMessage":"No se pudieron eliminar los elementos seleccionados","messageItem.status.queued":"EN COLA","messageItem.status.generating":"Generando...","messageItem.status.sending":"Enviando...","messageItem.status.failedToSend":"No se pudo enviar el mensaje","messagePart.actions.delete":"Eliminar parte","messagePart.actions.deleting":"Eliminando...","messagePart.actions.deleteTitle":"Eliminar este elemento","messagePart.actions.deleteFailedTitle":"Error al eliminar","messagePart.actions.deleteFailedMessage":"No se pudo eliminar el elemento","messageItem.attachment.defaultName":"adjunto","messageItem.attachment.downloadAriaLabel":"Descargar {name}","messageItem.agentMeta.agentLabel":"Agente: {agent}","messageItem.agentMeta.modelLabel":"Modelo: {model}","messageItem.errors.authenticationFallback":"Error de autenticación","messageItem.errors.outputLengthExceeded":"Se excedió la longitud de salida del mensaje","messageItem.errors.requestAborted":"La solicitud fue abortada","messageItem.errors.unknownFallback":"Se produjo un error desconocido","attachmentChip.removeAriaLabel":"Quitar adjunto","expandButton.toggleAriaLabel":"Alternar altura de entrada del chat","promptInput.placeholder.shell":"Ejecuta un comando de shell (Esc para salir)...","promptInput.placeholder.default":"Escribe tu mensaje, @file, @agent, o pega imágenes y texto...","promptInput.hints.shell.exit":"para salir del modo shell","promptInput.hints.shell.enable":"Modo shell","promptInput.hints.commands":"Comandos","promptInput.history.previousAriaLabel":"Prompt anterior","promptInput.history.nextAriaLabel":"Siguiente prompt","promptInput.overlay.newLine":"Nueva línea","promptInput.overlay.send":"Enviar","promptInput.overlay.filesAgents":"Archivos/agentes","promptInput.overlay.history":"Historial","promptInput.overlay.attachments":"• {count} archivo(s) adjunto(s)","promptInput.overlay.shellModeActive":"Modo shell activo","promptInput.overlay.press":"Pulsa","promptInput.overlay.againToAbort":"otra vez para abortar la sesión","promptInput.stopSession.ariaLabel":"Detener sesión","promptInput.stopSession.title":"Detener sesión","promptInput.clear.ariaLabel":"Borrar el texto del prompt","promptInput.clear.title":"Borrar el texto del prompt","promptInput.send.ariaLabel":"Enviar mensaje","promptInput.send.errorFallback":"No se pudo enviar el mensaje","promptInput.send.errorTitle":"Error al enviar","promptInput.conversationMode.enable.title":"Activar modo conversacion","promptInput.conversationMode.disable.title":"Desactivar modo conversacion","promptInput.conversationMode.error.title":"Fallo la reproduccion de la conversacion","promptInput.conversationMode.error.message":"No se pudieron seguir reproduciendo las respuestas del asistente.","promptInput.voiceInput.start.title":"Iniciar entrada de voz","promptInput.voiceInput.stop.title":"Detener grabación y transcribir","promptInput.voiceInput.transcribing.title":"Transcribiendo audio","promptInput.voiceInput.error.title":"La entrada de voz falló","promptInput.voiceInput.error.permission":"Se requiere acceso al micrófono para grabar la entrada de voz.","promptInput.voiceInput.error.permissionDenied":"macOS denegó el acceso al micrófono.","promptInput.voiceInput.error.unsupported":"La entrada de voz no es compatible con este navegador.","promptInput.voiceInput.error.transcribe":"No se pudo transcribir el audio grabado."},p={"remoteAccess.eyebrow":"Transferencia remota","remoteAccess.title":"Conectar a CodeNomad de forma remota","remoteAccess.subtitle":"Usa las direcciones de abajo para abrir CodeNomad desde otro dispositivo.","remoteAccess.close":"Cerrar acceso remoto","remoteAccess.refresh":"Actualizar","remoteAccess.sections.listeningMode.label":"Modo de escucha","remoteAccess.sections.listeningMode.help":"Permite o limita las transferencias remotas vinculando a todas las interfaces o solo a localhost.","remoteAccess.toggle.on":"Activado","remoteAccess.toggle.off":"Desactivado","remoteAccess.toggle.title":"Permitir conexiones desde otras IP","remoteAccess.toggle.caption.all":"Vinculado a 0.0.0.0","remoteAccess.toggle.caption.local":"Vinculado a 127.0.0.1","remoteAccess.toggle.note":"Cambiar esto requiere reiniciar y detiene temporalmente todas las instancias activas. Comparte las direcciones de abajo una vez que el servidor se reinicie.","remoteAccess.listeningMode.restartConfirm.message":"¿Reiniciar para aplicar el modo de escucha? Esto detendrá todas las instancias en ejecución.","remoteAccess.listeningMode.restartConfirm.title.all":"Abrir a otros dispositivos","remoteAccess.listeningMode.restartConfirm.title.local":"Limitar a este dispositivo","remoteAccess.listeningMode.restartConfirm.confirmLabel":"Reiniciar ahora","remoteAccess.listeningMode.restartConfirm.cancelLabel":"Cancelar","remoteAccess.restart.errorManual":"No se pudo reiniciar automáticamente. Reinicia la app para aplicar el cambio.","remoteAccess.sections.serverPassword.label":"Contraseña del servidor","remoteAccess.sections.serverPassword.help":"Las transferencias remotas requieren una contraseña. Define una fácil de recordar para habilitar inicios de sesión desde otros dispositivos.","remoteAccess.authStatus.unavailable":"Estado de autenticación no disponible.","remoteAccess.username":"Usuario: {username}","remoteAccess.password.status.set":"Hay una contraseña configurada para el acceso remoto.","remoteAccess.password.status.unset":"Aún no hay una contraseña fácil de recordar. Configura una para permitir inicios de sesión por transferencia remota.","remoteAccess.password.actions.cancel":"Cancelar","remoteAccess.password.actions.change":"Cambiar contraseña","remoteAccess.password.actions.set":"Configurar contraseña","remoteAccess.password.form.newPassword":"Nueva contraseña","remoteAccess.password.form.confirmPassword":"Confirmar contraseña","remoteAccess.password.form.placeholder":"Al menos 8 caracteres","remoteAccess.password.error.tooShort":"La contraseña debe tener al menos 8 caracteres.","remoteAccess.password.error.mismatch":"Las contraseñas no coinciden.","remoteAccess.password.save.saving":"Guardando…","remoteAccess.password.save.label":"Guardar contraseña","remoteAccess.sections.addresses.label":"Direcciones accesibles","remoteAccess.sections.addresses.help":"Abre o escanea desde otra máquina para transferir el control.","remoteAccess.addresses.loading":"Cargando direcciones…","remoteAccess.addresses.none":"Aún no hay direcciones disponibles.","remoteAccess.addresses.actions.showOther":"Mostrar {count} direcciones más","remoteAccess.addresses.actions.hideOther":"Ocultar otras direcciones","remoteAccess.address.scope.network":"Red","remoteAccess.address.scope.loopback":"Loopback","remoteAccess.address.scope.internal":"Interna","remoteAccess.address.open":"Abrir","remoteAccess.address.showQr":"Mostrar QR","remoteAccess.address.hideQr":"Ocultar QR","remoteAccess.address.qrAlt":"QR para {url}"},u={"sessionPicker.title":"OpenCode • {folder}","sessionPicker.empty.noPrevious":"No hay sesiones anteriores","sessionPicker.resume.title":"Reanudar una sesión ({count}):","sessionPicker.session.untitled":"Sin título","sessionPicker.divider.or":"o","sessionPicker.new.title":"Iniciar nueva sesión:","sessionPicker.agents.loading":"Cargando agentes...","sessionPicker.actions.creating":"Creando...","sessionPicker.actions.createSession":"Crear sesión","sessionPicker.actions.cancel":"Cancelar","sessionList.header.title":"Sesiones","sessionList.session.untitled":"Sin título","sessionList.status.working":"Trabajando","sessionList.status.compacting":"Compactando","sessionList.status.idle":"Inactiva","sessionList.status.retrying":"Reintentando","sessionList.status.retryingIn":"Reintentando en {seconds}s","sessionList.status.retryTooltip":"{message} (Intento {attempt})","sessionList.status.retryToast":"{countdown}: {message} (Intento {attempt})","sessionList.status.needsPermission":"Requiere permiso","sessionList.status.needsInput":"Requiere entrada","sessionList.expand.collapseAriaLabel":"Colapsar sesión","sessionList.expand.expandAriaLabel":"Expandir sesión","sessionList.expand.collapseTitle":"Colapsar","sessionList.expand.expandTitle":"Expandir","sessionList.actions.newSession.ariaLabel":"Nueva sesión","sessionList.actions.newSession.title":"Nueva sesión","sessionList.actions.copyId.ariaLabel":"Copiar ID de sesión","sessionList.actions.copyId.title":"Copiar ID de sesión","sessionList.actions.reload.ariaLabel":"Recargar sesión","sessionList.actions.reload.title":"Recargar sesión","sessionList.actions.rename.ariaLabel":"Renombrar sesión","sessionList.actions.rename.title":"Renombrar sesión","sessionList.actions.delete.ariaLabel":"Eliminar sesión","sessionList.actions.delete.title":"Eliminar sesión","sessionList.copyId.success":"ID de sesión copiado","sessionList.copyId.error":"No se pudo copiar el ID de sesión","sessionList.reload.error":"No se pudo recargar la sesión","sessionList.delete.error":"No se pudo eliminar la sesión","sessionList.delete.title":"Eliminar sesión","sessionList.delete.confirmMessage":'¿Eliminar "{label}"? Esto no se puede deshacer.',"sessionList.delete.confirmLabel":"Eliminar","sessionList.delete.cancelLabel":"Cancelar","sessionList.rename.error":"No se pudo renombrar la sesión","sessionList.filter.placeholder":"Buscar sesiones…","sessionList.filter.ariaLabel":"Buscar sesiones","sessionList.selection.selectAllLabel":"Seleccionar todo","sessionList.selection.selectAllAriaLabel":"Seleccionar todas las sesiones","sessionList.selection.clearLabel":"Limpiar","sessionList.selection.clearAriaLabel":"Limpiar selección","sessionList.selection.checkboxAriaLabel":"Seleccionar sesión","sessionList.bulkDelete.button":"Eliminar {count}","sessionList.bulkDelete.ariaLabel":"Eliminar {count} sesiones seleccionadas","sessionList.bulkDelete.title":"Eliminar sesiones","sessionList.bulkDelete.confirmMessage":"¿Eliminar {count} sesiones seleccionadas? Esto no se puede deshacer.","sessionList.bulkDelete.confirmLabel":"Eliminar","sessionList.bulkDelete.cancelLabel":"Cancelar","sessionList.bulkDelete.error":"No se pudieron eliminar {count} sesiones","sessionRenameDialog.title":"Renombrar sesión","sessionRenameDialog.description.withLabel":'Actualiza el título de "{label}".',"sessionRenameDialog.description.default":"Establece un nuevo título para esta sesión.","sessionRenameDialog.input.label":"Nombre de la sesión","sessionRenameDialog.input.placeholder":"Introduce un nombre de sesión","sessionRenameDialog.actions.cancel":"Cancelar","sessionRenameDialog.actions.rename":"Renombrar","sessionRenameDialog.actions.renaming":"Renombrando…","sessionView.fallback.sessionNotFound":"No se encontró la sesión","sessionView.alerts.abortFailed.message":"No se pudo detener la sesión","sessionView.alerts.abortFailed.title":"No se pudo detener","sessionView.alerts.revertFailed.message":"No se pudo revertir al mensaje","sessionView.alerts.revertFailed.title":"No se pudo revertir","sessionView.alerts.deleteUpToFailed.message":"No se pudieron eliminar los mensajes","sessionView.alerts.deleteUpToFailed.title":"Error al eliminar","sessionView.alerts.forkFailed.message":"No se pudo hacer fork de la sesión","sessionView.alerts.forkFailed.title":"No se pudo hacer fork","sessionView.attachments.expandPastedTextAriaLabel":"Expandir texto pegado","sessionView.attachments.insertPastedTextTitle":"Insertar texto pegado","sessionView.attachments.removeAriaLabel":"Quitar adjunto","sessionEvents.sessionCompactedToast":"La sesión {label} fue compactada","sessionEvents.sessionError.unknown":"Error desconocido","sessionEvents.sessionError.title":"Error de sesión","sessionEvents.sessionError.message":"Error: {message}","sessionState.cleanup.deepConfirm.message":"Esta limpieza puede ser lenta y puede eliminar sesiones que no pretendías eliminar. ¿Estás seguro?","sessionState.cleanup.deepConfirm.title":"Limpieza profunda de sesiones","sessionState.cleanup.deepConfirm.detail":"La limpieza profunda de sesiones eliminará todas las sesiones sin mensajes, quitará cualquier sesión de subagente finalizada y limpiará cualquier fork no usado de una sesión.","sessionState.cleanup.deepConfirm.confirmLabel":"Continuar","sessionState.cleanup.deepConfirm.cancelLabel":"Cancelar","sessionState.cleanup.toast.one":"Se limpió {count} sesión vacía","sessionState.cleanup.toast.other":"Se limpiaron {count} sesiones vacías"},g={"instanceServiceStatus.sections.lsp":"Servidores LSP","instanceServiceStatus.sections.mcp":"Servidores MCP","instanceServiceStatus.sections.plugins":"Plugins","instanceServiceStatus.lsp.loading":"Cargando servidores LSP...","instanceServiceStatus.lsp.empty":"No se detectaron servidores LSP.","instanceServiceStatus.lsp.status.connected":"Conectado","instanceServiceStatus.lsp.status.error":"Error","instanceServiceStatus.mcp.loading":"Cargando servidores MCP...","instanceServiceStatus.mcp.empty":"No se detectaron servidores MCP.","instanceServiceStatus.mcp.toggleAriaLabel":"Alternar servidor MCP {name}","instanceServiceStatus.plugins.loading":"Cargando plugins...","instanceServiceStatus.plugins.empty":"No hay plugins configurados.","permissionBanner.pendingRequests.one":"{count} solicitud pendiente","permissionBanner.pendingRequests.other":"{count} solicitudes pendientes","permissionBanner.detail.permission.one":"{count} permiso","permissionBanner.detail.permission.other":"{count} permisos","permissionBanner.detail.question.one":"{count} pregunta","permissionBanner.detail.question.other":"{count} preguntas","permissionBanner.detail.wrapper":" ({detail})","agentSelector.placeholder":"Seleccionar agente...","agentSelector.badge.subagent":"subagente","agentSelector.none":"Ninguno","agentSelector.trigger.primary":"Agente: {agent}","modelSelector.placeholder.search":"Buscar modelos...","modelSelector.none":"Ninguno","modelSelector.trigger.primary":"Modelo: {model}","modelSelector.favoritesOnly.toggle.ariaLabel":"Alternar solo favoritos","modelSelector.favoritesOnly.showAll":"Mostrar todos los modelos","modelSelector.favorite.add":"Agregar a favoritos","modelSelector.favorite.remove":"Quitar de favoritos","thinkingSelector.variant.default":"Por defecto","thinkingSelector.label":"Pensamiento: {variant}","envEditor.title":"Variables de entorno","envEditor.count.one":"({count} variable)","envEditor.count.other":"({count} variables)","envEditor.fields.name.placeholder":"Nombre de la variable","envEditor.fields.name.readOnlyTitle":"Nombre de la variable (solo lectura)","envEditor.fields.value.placeholder":"Valor de la variable","envEditor.actions.remove.title":"Quitar variable","envEditor.actions.add.title":"Agregar variable","envEditor.empty":"No hay variables de entorno configuradas. Agrega variables arriba para personalizar el entorno de OpenCode.","envEditor.help":"Estas variables estarán disponibles en el entorno de OpenCode al iniciar instancias.","contextUsagePanel.headings.tokens":"Tokens","contextUsagePanel.headings.context":"Contexto","contextUsagePanel.labels.input":"Entrada","contextUsagePanel.labels.output":"Salida","contextUsagePanel.labels.cost":"Costo","contextUsagePanel.labels.used":"Usado","contextUsagePanel.labels.available":"Disp.","contextUsagePanel.unavailable":"--","settings.title":"Settings","settings.navigationAriaLabel":"Settings sections","settings.close":"Close settings","settings.content.eyebrow":"Workspace preferences","settings.open.title":"Open settings","settings.open.ariaLabel":"Open settings","settings.nav.appearance":"Appearance","settings.nav.notifications":"Notifications","settings.nav.remote":"Remote Access","settings.nav.speech":"Speech","settings.nav.opencode":"OpenCode","settings.scope.device":"This device","settings.scope.server":"Server setting","settings.common.enabled":"Enabled","settings.common.disabled":"Desactivado","settings.section.appearance.title":"Appearance","settings.section.appearance.subtitle":"Adjust how the app looks on this device.","settings.appearance.theme.title":"Theme","settings.appearance.theme.subtitle":"Choose the color mode used throughout the app.","settings.appearance.theme.option.system":"Match your operating system setting","settings.appearance.theme.option.light":"Use the light appearance","settings.appearance.theme.option.dark":"Use the dark appearance","settings.section.notifications.title":"Notifications","settings.section.notifications.subtitle":"Control OS-level notifications for session activity.","settings.notifications.permission.granted":"Granted","settings.notifications.permission.denied":"Denied","settings.notifications.permission.default":"Not granted","settings.notifications.permission.unsupported":"Unsupported","settings.notifications.messages.unsupportedEnvironment":"OS notifications are not supported in this environment.","settings.notifications.messages.permissionDenied":"Notification permission denied. Enable notifications in your system or browser settings.","settings.notifications.messages.permissionNotGranted":"Notification permission not granted.","settings.notifications.messages.unsupportedGeneral":"Notifications are not supported in this environment.","settings.notifications.messages.permissionGranted":"Permission granted. You can now enable notifications.","settings.notifications.messages.permissionRequestDenied":"Permission denied. You may need to enable notifications in your system or browser settings.","settings.notifications.sessionStatus.title":"Session status notifications","settings.notifications.sessionStatus.subtitle":"Receive alerts when sessions need your attention.","settings.notifications.enable.title":"Enable notifications","settings.notifications.enable.permission":"Permission: {permission}","settings.notifications.requestPermission.title":"Request permission","settings.notifications.requestPermission.subtitle":"Allow the app to send notifications on this device.","settings.notifications.requestPermission.action":"Request","settings.notifications.allowVisible.title":"Notify when the app is focused","settings.notifications.allowVisible.subtitle":"Keep alerts enabled even while this window is visible.","settings.notifications.unsupportedNote":"Notifications are not supported in this environment. The notifications control stays disabled.","settings.notifications.events.title":"Notify me when","settings.notifications.events.subtitle":"Choose which session events should send alerts.","settings.notifications.events.needsInput":"Session needs input","settings.notifications.events.idle":"Session becomes idle","settings.notifications.status.enabled":"Notifications enabled","settings.notifications.status.disabled":"Notifications disabled","settings.notifications.status.unsupported":"Notifications unsupported","settings.section.remote.title":"Remote Access","settings.section.remote.subtitle":"Review how this server is exposed on your network and secure access credentials.","settings.section.opencode.title":"OpenCode","settings.section.opencode.subtitle":"Choose the OpenCode binary and environment used for new instances.","settings.opencode.runtime.title":"Runtime","settings.opencode.runtime.subtitle":"Configure which OpenCode binary new instances launch with.","settings.opencode.logLevel.title":"Nivel de logs de OpenCode","settings.opencode.logLevel.subtitle":"Define el nivel de logs usado al iniciar nuevas instancias de OpenCode.","settings.opencode.logLevel.selector.title":"Verbosidad de logs","settings.opencode.logLevel.selector.subtitle":"Elige cuanta informacion deben registrar las nuevas instancias de OpenCode.","settings.opencode.logLevel.option.debug":"Depuracion","settings.opencode.logLevel.option.info":"Informacion","settings.opencode.logLevel.option.warn":"Advertencia","settings.opencode.logLevel.option.error":"Error","settings.appearance.behavior.title":"Interaccion","settings.appearance.behavior.subtitle":"Valores predeterminados de mensajes, diffs y entrada.","settings.behavior.keyboardHints.title":"Sugerencias de atajos de teclado","settings.behavior.keyboardHints.subtitle":"Muestra sugerencias de atajos de teclado en toda la interfaz.","settings.behavior.thinking.title":"Secciones de pensamiento","settings.behavior.thinking.subtitle":"Muestra u oculta las secciones de pensamiento de la IA en los mensajes.","settings.behavior.thinkingDefault.title":"Pensamiento por defecto","settings.behavior.thinkingDefault.subtitle":"Elige si las secciones de pensamiento comienzan expandidas o contraidas.","settings.behavior.timelineTools.title":"Llamadas de herramientas en la linea de tiempo","settings.behavior.timelineTools.subtitle":"Muestra u oculta entradas de llamadas de herramientas en la linea de tiempo de mensajes.","settings.behavior.diffView.title":"Vista de diferencias","settings.behavior.diffView.subtitle":"Elige como se muestran los diffs de llamadas de herramientas.","settings.behavior.diffView.option.split":"Dividida","settings.behavior.diffView.option.unified":"Unificada","settings.behavior.toolOutputsDefault.title":"Salidas de herramientas por defecto","settings.behavior.toolOutputsDefault.subtitle":"Elige si las salidas de herramientas comienzan expandidas o contraidas.","settings.behavior.diagnosticsDefault.title":"Diagnosticos por defecto","settings.behavior.diagnosticsDefault.subtitle":"Elige si la salida de diagnosticos comienza expandida o contraida.","settings.behavior.toolInputsVisibility.title":"Visibilidad de entradas de herramientas","settings.behavior.toolInputsVisibility.subtitle":"Establece la visibilidad por defecto de los argumentos de entrada de las llamadas de herramientas.","settings.behavior.usageMetrics.title":"Metricas de uso de tokens","settings.behavior.usageMetrics.subtitle":"Muestra u oculta estadisticas de tokens y costo en mensajes del asistente.","settings.behavior.autoCleanup.title":"Limpieza automatica de sesiones en blanco","settings.behavior.autoCleanup.subtitle":"Limpia automaticamente las sesiones en blanco al crear nuevas.","settings.behavior.promptVoiceInput.title":"Prompt voice input","settings.behavior.promptVoiceInput.subtitle":"Show the microphone control for speech-to-text prompt input when speech is configured.","settings.behavior.promptSubmit.title":"Enter para enviar","settings.behavior.promptSubmit.subtitle":"Usa Enter para enviar; Cmd/Ctrl+Enter inserta una nueva linea.","settings.speech.title":"Voz","settings.speech.subtitle":"Configura ahora el reconocimiento de voz y prepara la base de texto a voz para funciones futuras.","settings.speech.provider.title":"Proveedor","settings.speech.provider.subtitle":"Las solicitudes de voz usan el adaptador de voz del servidor.","settings.speech.provider.openaiCompatible":"OpenAI-compatible","settings.speech.status.loading":"Comprobando configuración...","settings.speech.status.configured":"Configurado","settings.speech.status.missing":"Falta la clave API","settings.speech.status.error":"Servicio de voz no disponible","settings.speech.apiKey.title":"API key","settings.speech.apiKey.subtitle":"Se usa para las solicitudes de voz gestionadas por CodeNomad.","settings.speech.apiKey.placeholder":"Introduce una nueva clave API","settings.speech.apiKey.storedNote":"Hay una clave API guardada y oculta. Introduce un nuevo valor para reemplazarla o deja el campo vacío para conservarla.","settings.speech.apiKey.clearAction":"Borrar clave guardada","settings.speech.apiKey.clearPending":"La clave API guardada se eliminará al guardar.","settings.speech.baseUrl.title":"Base URL","settings.speech.baseUrl.subtitle":"Anulación opcional para endpoints de voz compatibles con OpenAI.","settings.speech.baseUrl.placeholder":"https://api.openai.com/v1","settings.speech.sttModel.title":"Modelo de transcripción","settings.speech.sttModel.subtitle":"Modelo usado para las solicitudes de voz a texto en el prompt.","settings.speech.ttsModel.title":"Modelo de voz","settings.speech.ttsModel.subtitle":"Modelo predeterminado de texto a voz reservado para futuras funciones de reproducción.","settings.speech.ttsVoice.title":"Voz predeterminada","settings.speech.ttsVoice.subtitle":"Voz predeterminada de texto a voz reservada para futuras funciones de reproducción.","settings.speech.playbackMode.title":"Modo de reproduccion","settings.speech.playbackMode.subtitle":"Elige si TTS empieza a reproducirse mientras llega el audio o despues de generar el archivo completo.","settings.speech.playbackMode.streaming":"Streaming","settings.speech.playbackMode.buffered":"Buffered","settings.speech.ttsFormat.title":"Formato de salida","settings.speech.ttsFormat.subtitle":"Elige el formato de audio para la voz sintetizada. La compatibilidad de streaming depende de tu proveedor y navegador.","settings.speech.help":"La entrada de voz del prompt aparece cuando la transcripcion de voz esta configurada y es compatible. La reproduccion de mensajes usa el modo y formato TTS seleccionados aqui.","settings.speech.compatibility.streamingUnavailable":"Tu configuracion actual del proveedor de voz no anuncia TTS por streaming. Cambia el modo de reproduccion a buffered si quieres que la reproduccion funcione ahora.","settings.speech.compatibility.browserStreamingUnavailable":"Tu navegador actual no puede reproducir por streaming el formato TTS seleccionado. Elige reproduccion buffered o cambia a otro formato.","settings.speech.compatibility.runtimeNote":"Todos los formatos siguen disponibles en modo streaming. Algunas combinaciones de navegador y proveedor aun pueden fallar al reproducir.","settings.speech.testPlayback.action":"Probar reproduccion","settings.speech.testPlayback.generating":"Generando muestra","settings.speech.testPlayback.stop":"Detener muestra","settings.speech.testPlayback.sample":"Gracias por usar CodeNomad, tu configuracion de voz funciona correctamente.","settings.speech.testPlayback.note":"La prueba usa de inmediato el modo y formato actuales. Guarda primero los cambios de API key, base URL, modelo o voz si tambien quieres probarlos.","settings.speech.save.action":"Guardar","settings.speech.save.saving":"Guardando...","settings.speech.save.saved":"Guardado","settings.speech.save.unsaved":"Cambios sin guardar","settings.speech.save.error":"Error al guardar","settings.nav.sidecars":"SideCars","settings.section.sidecars.eyebrow":"Server services","settings.section.sidecars.title":"SideCars","settings.section.sidecars.subtitle":"Configure local services listening on fixed ports that the server can proxy into tabs.","sidecars.form.name":"Name","sidecars.form.validation":"Enter a valid SideCar name and port.","sidecars.form.port":"Port","sidecars.form.insecure":"Use HTTP","sidecars.form.protocol":"Protocol","sidecars.form.protocol.help":"Choose how the proxy should connect to the local service.","sidecars.form.protocol.https":"HTTPS","sidecars.form.protocol.http":"HTTP","sidecars.form.prefixMode":"Prefix mode","sidecars.form.prefixMode.help":"Choose whether the SideCar receives the public /sidecars path prefix.","sidecars.form.prefixMode.strip":"Strip prefix","sidecars.form.prefixMode.preserve":"Preserve prefix","sidecars.form.add":"Add SideCar","sidecars.kind.port":"Port","sidecars.status.running":"Running","sidecars.status.stopped":"Stopped","sidecars.basePath":"Base path","sidecars.settings.listTitle":"Configured SideCars","sidecars.settings.listSubtitle":"Review the port-based SideCars available in the picker.","sidecars.settings.empty":"No SideCars configured yet.","sidecars.picker.title":"Open SideCar","sidecars.picker.loading":"Loading SideCars...","sidecars.picker.subtitle":"Choose an available SideCar to open in a new tab.","sidecars.picker.empty":"No port-based SideCars are available yet.","sidecars.picker.close":"Close","sidecars.open.errorTitle":"Unable to open SideCar","sidecars.open.notFound":"SideCar not found.","sidecars.open.notRunning":"SideCar is not reachable on its configured port.","sidecars.back":"Back","sidecars.refresh":"Refresh","sidecars.path":"Path","sidecars.go":"Go"},b={"time.relative.justNow":"justo ahora","time.relative.daysAgoShort":"hace {count} d","time.relative.hoursAgoShort":"hace {count} h","time.relative.minutesAgoShort":"hace {count} m"},h={"toolCall.pending.waitingToRun":"Esperando para ejecutar...","toolCall.error.label":"Error:","toolCall.header.copyTitle":"Copy tool call title","toolCall.header.copyAriaLabel":"Copy tool call title","toolCall.header.showInputTitle":"Show Tool Arguments","toolCall.header.showInputAriaLabel":"Show Tool Arguments","toolCall.header.hideInputTitle":"Hide Tool Arguments","toolCall.header.hideInputAriaLabel":"Hide Tool Arguments","toolCall.io.input":"Tool Input","toolCall.io.output":"Tool Output","toolCall.diff.label":"Diff","toolCall.diff.label.withPath":"Diff · {path}","toolCall.diff.viewMode.ariaLabel":"Modo de vista de diff","toolCall.diff.viewMode.split":"Dividida","toolCall.diff.viewMode.unified":"Unificada","toolCall.diff.switchToSplit":"Cambiar a vista dividida","toolCall.diff.switchToUnified":"Cambiar a vista unificada","toolCall.diff.enableWordWrap":"Activar ajuste de línea","toolCall.diff.disableWordWrap":"Desactivar ajuste de línea","toolCall.diff.copyPatch":"Copiar patch","toolCall.diagnostics.title":"Diagnósticos","toolCall.diagnostics.ariaLabel":"Diagnósticos","toolCall.diagnostics.ariaLabel.withLabel":"Diagnósticos {label}","toolCall.diagnostics.severity.error.short":"ERR","toolCall.diagnostics.severity.warning.short":"WARN","toolCall.diagnostics.severity.info.short":"INFO","toolCall.renderer.toolName.shell":"Shell","toolCall.renderer.toolName.fetch":"Fetch","toolCall.renderer.toolName.invalid":"Inválido","toolCall.renderer.toolName.plan":"Plan","toolCall.renderer.toolName.applyPatch":"Aplicar patch","toolCall.renderer.action.working":"Trabajando...","toolCall.renderer.action.writingCommand":"Escribiendo comando...","toolCall.renderer.action.preparingEdit":"Preparando edición...","toolCall.renderer.action.readingFile":"Leyendo archivo...","toolCall.renderer.action.preparingWrite":"Preparando escritura...","toolCall.renderer.action.preparingPatch":"Preparando patch...","toolCall.renderer.action.planning":"Planificando...","toolCall.renderer.action.fetchingFromWeb":"Obteniendo desde la web...","toolCall.renderer.action.findingFiles":"Buscando archivos...","toolCall.renderer.action.searchingContent":"Buscando contenido...","toolCall.renderer.action.listingDirectory":"Listando directorio...","toolCall.renderer.bash.title.timeout":"Tiempo de espera: {timeout}","toolCall.renderer.read.detail.offset":"Desplazamiento: {offset}","toolCall.renderer.read.detail.limit":"Límite: {limit}","toolCall.renderer.todo.empty":"Aún no hay elementos del plan.","toolCall.renderer.todo.status.pending":"Pendiente","toolCall.renderer.todo.status.inProgress":"En progreso","toolCall.renderer.todo.status.completed":"Completado","toolCall.renderer.todo.status.cancelled":"Cancelado","toolCall.renderer.todo.title.plan":"Plan","toolCall.renderer.todo.title.creating":"Creando plan","toolCall.renderer.todo.title.completing":"Completando plan","toolCall.renderer.todo.title.updating":"Actualizando plan","toolCall.permission.status.required":"Permiso requerido","toolCall.permission.status.queued":"Permiso en cola","toolCall.permission.requestedDiff.label":"Diff solicitado","toolCall.permission.requestedDiff.withPath":"Diff solicitado · {path}","toolCall.permission.queuedText":"Esperando respuestas de permisos anteriores.","toolCall.permission.actions.allowOnce":"Permitir una vez","toolCall.permission.actions.alwaysAllow":"Permitir siempre","toolCall.permission.actions.deny":"Denegar","toolCall.permission.shortcuts.allowOnce":"Permitir una vez","toolCall.permission.shortcuts.alwaysAllow":"Permitir siempre","toolCall.permission.shortcuts.deny":"Denegar","toolCall.permission.errors.unableToUpdate":"No se pudo actualizar el permiso","permissionApproval.title":"Solicitudes","permissionApproval.empty":"No hay solicitudes pendientes.","permissionApproval.kind.permission":"Permiso","permissionApproval.kind.question":"Pregunta","permissionApproval.questionCount.one":"{count} pregunta","permissionApproval.questionCount.other":"{count} preguntas","permissionApproval.status.active":"Activa","permissionApproval.actions.closeAriaLabel":"Cerrar","permissionApproval.actions.goToSession":"Ir a sesión","permissionApproval.actions.loadingSession":"Cargando…","permissionApproval.actions.loadSession":"Cargar sesión","permissionApproval.actions.allowOnce":"Permitir una vez","permissionApproval.actions.alwaysAllow":"Permitir siempre","permissionApproval.actions.deny":"Denegar","permissionApproval.fallbackHint":"Carga la sesión para más información.","permissionApproval.errors.unableToUpdatePermission":"No se pudo actualizar el permiso","toolCall.question.status.required":"Pregunta requerida","toolCall.question.status.queued":"Pregunta en cola","toolCall.question.status.questions":"Preguntas","toolCall.question.action.awaitingAnswers":"Esperando respuestas...","toolCall.question.title.questions":"Preguntas","toolCall.question.title.askingQuestions":"Haciendo preguntas","toolCall.question.type.one":"Pregunta","toolCall.question.type.other":"Preguntas","toolCall.question.number":"P{number}:","toolCall.question.multiple":"Múltiple","toolCall.question.custom.title":"Escribe una respuesta personalizada","toolCall.question.custom.label":"Respuesta personalizada","toolCall.question.custom.placeholder":"Escribe tu propia respuesta","toolCall.question.actions.submit":"Enviar","toolCall.question.actions.dismiss":"Descartar","toolCall.question.shortcuts.submit":"Enviar","toolCall.question.shortcuts.dismiss":"Descartar","toolCall.question.queuedText":"Esperando respuestas anteriores.","toolCall.question.validation.answerAll":"Responde todas las preguntas antes de enviar.","toolCall.question.errors.unableToReply":"No se pudo responder","toolCall.question.errors.unableToDismiss":"No se pudo descartar","toolCall.task.action.delegating":"Delegando...","toolCall.task.sections.prompt":"Prompt","toolCall.task.sections.steps":"Pasos","toolCall.task.sections.output":"Salida","toolCall.task.steps.count":"{count} pasos","toolCall.task.meta.agentModel":"Agente: {agent} • Modelo: {model}","toolCall.task.meta.agent":"Agente: {agent}","toolCall.task.meta.model":"Modelo: {model}","toolCall.status.pending":"Pendiente","toolCall.status.running":"En ejecución","toolCall.status.completed":"Completado","toolCall.status.error":"Error","toolCall.status.unknown":"Desconocido","toolCall.applyPatch.action.preparing":"Preparando apply_patch...","toolCall.applyPatch.title.withFileCount.one":"{tool} ({count} archivo)","toolCall.applyPatch.title.withFileCount.other":"{tool} ({count} archivos)","toolCall.applyPatch.fileFallback":"Archivo {number}"},w=e(n,a,l,b,s,t,i,r,c,u,m,h,d,g,p,o);export{w as esMessages};