@bigduu/lotus 2026.5.11 → 2026.5.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{App-D9R-_Pem.css → App-DNZiQHSs.css} +1 -1
- package/dist/assets/App-bVqmFSlk.js +224 -0
- package/dist/assets/{FeatureGuide-BNBq_PLn.js → FeatureGuide-BlFyQEho.js} +1 -1
- package/dist/assets/MetricsService-PUxHq4VE.js +1 -0
- package/dist/assets/SubAgentsPanel-B1pN_aEg.js +1 -0
- package/dist/assets/{_baseUniq-DVrw3Tro.js → _baseUniq-Rkm-pzcz.js} +1 -1
- package/dist/assets/{architectureDiagram-Q4EWVU46-BZE_2gaA.js → architectureDiagram-Q4EWVU46-Dr89vzdU.js} +1 -1
- package/dist/assets/{blockDiagram-DXYQGD6D-CI8uSrzU.js → blockDiagram-DXYQGD6D-TGOxvREa.js} +1 -1
- package/dist/assets/{c4Diagram-AHTNJAMY-DYfj69gY.js → c4Diagram-AHTNJAMY-CBv5o-M1.js} +1 -1
- package/dist/assets/{chunk-4BX2VUAB-Cw-2rap4.js → chunk-4BX2VUAB-CxLevY_l.js} +1 -1
- package/dist/assets/{chunk-4TB4RGXK-jxTPHq0D.js → chunk-4TB4RGXK-CZ85N7UX.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-DmAIxchJ.js → chunk-55IACEB6-CyMcswjM.js} +1 -1
- package/dist/assets/{chunk-EDXVE4YY-FvClTRCF.js → chunk-EDXVE4YY-KspsFgAM.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-Dv-f6b4O.js → chunk-FMBD7UC4-BH440Lco.js} +1 -1
- package/dist/assets/{chunk-OYMX7WX6-CUAa_Yz6.js → chunk-OYMX7WX6-D5KuKqj-.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-D1FDs1aQ.js → chunk-QZHKN3VN-CYjk1VsY.js} +1 -1
- package/dist/assets/{chunk-YZCP3GAM-C2iPLYG9.js → chunk-YZCP3GAM-D1Ua-1JA.js} +1 -1
- package/dist/assets/classDiagram-6PBFFD2Q-D76pdmuK.js +1 -0
- package/dist/assets/classDiagram-v2-HSJHXN6E-D76pdmuK.js +1 -0
- package/dist/assets/clone-L6_2PEie.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-CidaofdU.js → cose-bilkent-S5V4N54A-DBcT_Wx0.js} +1 -1
- package/dist/assets/{dagre-KV5264BT-B5okAMLc.js → dagre-KV5264BT-DXZkFF5A.js} +1 -1
- package/dist/assets/{diagram-5BDNPKRD-DqlBY-17.js → diagram-5BDNPKRD-BsQPI1ko.js} +1 -1
- package/dist/assets/{diagram-G4DWMVQ6-BuAFDD-X.js → diagram-G4DWMVQ6-BO9UfQRh.js} +1 -1
- package/dist/assets/{diagram-MMDJMWI5-CFv_32_w.js → diagram-MMDJMWI5-DkWy2py4.js} +1 -1
- package/dist/assets/{diagram-TYMM5635-CEU-9NCq.js → diagram-TYMM5635-DkuaI_3A.js} +1 -1
- package/dist/assets/en-US-CnZu52UQ.js +3 -0
- package/dist/assets/{erDiagram-SMLLAGMA-BGcZ-Hfc.js → erDiagram-SMLLAGMA-5BQBJx-k.js} +1 -1
- package/dist/assets/{flowDiagram-DWJPFMVM-CCSeCjR1.js → flowDiagram-DWJPFMVM-CBv8eO1S.js} +1 -1
- package/dist/assets/{ganttDiagram-T4ZO3ILL-BqAoxnNO.js → ganttDiagram-T4ZO3ILL-CkWwjmoY.js} +1 -1
- package/dist/assets/{gitGraphDiagram-UUTBAWPF-DJ0V7_Rv.js → gitGraphDiagram-UUTBAWPF-Cq7iSNVm.js} +1 -1
- package/dist/assets/{graph-BxbYGKIB.js → graph-DP71R45G.js} +1 -1
- package/dist/assets/index-BBEDlZ5R.js +1 -0
- package/dist/assets/index-Bcpx4-c6.js +1 -0
- package/dist/assets/{index-Dgw8qH4q.js → index-BfCdANOc.js} +1 -1
- package/dist/assets/index-C1smAwgR.js +1 -0
- package/dist/assets/index-CIgS9N5-.js +1 -0
- package/dist/assets/index-CWTKRCxw.js +21 -0
- package/dist/assets/index-D9ODTr93.css +1 -0
- package/dist/assets/index-Dyeykeg3.js +8 -0
- package/dist/assets/index-GggL5P0b.js +1 -0
- package/dist/assets/index-Y7yrhp6h.js +1 -0
- package/dist/assets/{index-DJeQeDwp.js → index-YqZv5PIH.js} +1 -1
- package/dist/assets/index-ZWAEbTDI.js +1 -0
- package/dist/assets/index-oQX-HGAT.js +1 -0
- package/dist/assets/index-rcVNW1p_.js +1 -0
- package/dist/assets/{index.es-BhiHSeCT.js → index.es-usLOUMSp.js} +1 -1
- package/dist/assets/{infoDiagram-42DDH7IO-Cemw9omR.js → infoDiagram-42DDH7IO-Cs719lD3.js} +1 -1
- package/dist/assets/{ishikawaDiagram-UXIWVN3A-BYRE-suN.js → ishikawaDiagram-UXIWVN3A-zTI5fHSR.js} +1 -1
- package/dist/assets/{journeyDiagram-VCZTEJTY-BRkAfzxG.js → journeyDiagram-VCZTEJTY-DINdIE0t.js} +1 -1
- package/dist/assets/{kanban-definition-6JOO6SKY-DrTcKNPa.js → kanban-definition-6JOO6SKY-BWZUu9_H.js} +1 -1
- package/dist/assets/{layout-B2E_GeCC.js → layout-QZEMSKRD.js} +1 -1
- package/dist/assets/main-BEVjNwcv.js +8 -0
- package/dist/assets/{min-5KBdYKFY.js → min-BB314uX0.js} +1 -1
- package/dist/assets/{mindmap-definition-QFDTVHPH-sq4qw8uy.js → mindmap-definition-QFDTVHPH-GgqTvonx.js} +1 -1
- package/dist/assets/{pieDiagram-DEJITSTG-C8vOtX53.js → pieDiagram-DEJITSTG-wmUFaxVG.js} +1 -1
- package/dist/assets/{quadrantDiagram-34T5L4WZ-LV5yQE3M.js → quadrantDiagram-34T5L4WZ-Bt7Nxjyo.js} +1 -1
- package/dist/assets/{requirementDiagram-MS252O5E-Bq6y8VCF.js → requirementDiagram-MS252O5E-4eb0TnXV.js} +1 -1
- package/dist/assets/{sankeyDiagram-XADWPNL6-DvABiNaK.js → sankeyDiagram-XADWPNL6-H6jXqw4X.js} +1 -1
- package/dist/assets/{sequenceDiagram-FGHM5R23-Bv9Ckauz.js → sequenceDiagram-FGHM5R23-DgqfEZPw.js} +1 -1
- package/dist/assets/{stateDiagram-FHFEXIEX-CwYUsnc5.js → stateDiagram-FHFEXIEX-CZrwRbTi.js} +1 -1
- package/dist/assets/stateDiagram-v2-QKLJ7IA2-CwhUMrAy.js +1 -0
- package/dist/assets/{timeline-definition-GMOUNBTQ-BgidC49j.js → timeline-definition-GMOUNBTQ-CMjl6c48.js} +1 -1
- package/dist/assets/vendor-antd-C8lKwvI6.js +502 -0
- package/dist/assets/{vendor-charts-BYce7JXy.js → vendor-charts-bhMup2Pu.js} +1 -1
- package/dist/assets/{vendor-markdown-DzaXAW9Q.js → vendor-markdown-DZuK0SxV.js} +1 -1
- package/dist/assets/{vendor-mermaid-De-Yacw-.js → vendor-mermaid-C1Gk9PtT.js} +4 -4
- package/dist/assets/{vendor-pdf-DHgAFQ2M.js → vendor-pdf-DB-djSmA.js} +4 -4
- package/dist/assets/{vennDiagram-DHZGUBPP-Bzkbjibi.js → vennDiagram-DHZGUBPP-CJuHv1C-.js} +1 -1
- package/dist/assets/{wardley-RL74JXVD-CBRp4POe.js → wardley-RL74JXVD-3f0MBifK.js} +1 -1
- package/dist/assets/{wardleyDiagram-NUSXRM2D-DAhT4-uz.js → wardleyDiagram-NUSXRM2D-DsfJX8FP.js} +1 -1
- package/dist/assets/{xychartDiagram-5P7HB3ND-CXfA4uSx.js → xychartDiagram-5P7HB3ND-DnywOWSH.js} +1 -1
- package/dist/assets/zh-CN-NcKxgANL.js +3 -0
- package/dist/index.html +4 -4
- package/package.json +2 -2
- package/dist/assets/App-BocqxYkX.js +0 -223
- package/dist/assets/SubAgentsPanel-XAgdP-xO.js +0 -1
- package/dist/assets/classDiagram-6PBFFD2Q-DVvX4wPS.js +0 -1
- package/dist/assets/classDiagram-v2-HSJHXN6E-DVvX4wPS.js +0 -1
- package/dist/assets/clone-DRAA6Q7k.js +0 -1
- package/dist/assets/en-US-DLwJLted.js +0 -3
- package/dist/assets/index-BEkwZ-K8.js +0 -1
- package/dist/assets/index-C8GkXwzS.js +0 -1
- package/dist/assets/index-CucuFwVZ.css +0 -1
- package/dist/assets/index-DC9Ggtrl.js +0 -1
- package/dist/assets/index-DHJJSQ2h.js +0 -1
- package/dist/assets/index-DMaXHadP.js +0 -21
- package/dist/assets/index-DRVv9Wt_.js +0 -1
- package/dist/assets/index-DaK9qR94.js +0 -1
- package/dist/assets/index-dBIF9Wdr.js +0 -1
- package/dist/assets/index-o5s-6ubE.js +0 -8
- package/dist/assets/index-pOHcR4B7.js +0 -1
- package/dist/assets/index-rWoFDRGk.js +0 -1
- package/dist/assets/main-TSfsr__P.js +0 -6
- package/dist/assets/stateDiagram-v2-QKLJ7IA2-aegiqwuH.js +0 -1
- package/dist/assets/vendor-antd-DODjfilb.js +0 -502
- package/dist/assets/zh-CN-B74Ip0pW.js +0 -3
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{j as r}from"./vendor-markdown-DzaXAW9Q.js";import{R as pe,u as he,a as s}from"./vendor-i18n-BNURlJ23.js";import{u as Y,f as ye,h as qe,i as B,r as ge,j as ve,s as xe,k as Z,l as L,C as H}from"./App-BocqxYkX.js";import{K as Ee,j as we,E as Q,v as Ce,ad as Se,ae as F,S as ee,O as je,t as Pe}from"./vendor-antd-DODjfilb.js";import"./vendor-mermaid-De-Yacw-.js";import"./main-TSfsr__P.js";const Re="_questionCard_15meh_1",Te="_questionHeader_15meh_8",ke="_headerLeft_15meh_27",De="_questionIcon_15meh_35",be="_questionText_15meh_40",Ne="_collapseBtn_15meh_52",Be="_questionBody_15meh_57",Le="_optionsGroup_15meh_61",He="_optionItem_15meh_65",Fe="_customHint_15meh_81",Ie="_questionFooter_15meh_93",a={questionCard:Re,questionHeader:Te,headerLeft:ke,questionIcon:De,questionText:be,collapseBtn:Ne,questionBody:Be,optionsGroup:Le,optionItem:He,customHint:Fe,questionFooter:Ie},{Text:j}=we,{useToken:Oe}=Pe,ze=n=>{const f=(n||"").replace(/\\r\\n/g,`
|
|
2
|
-
`).replace(/\\n/g,`
|
|
3
|
-
`).replace(/\r\n?/g,`
|
|
4
|
-
`).trim();return f?f.includes(`
|
|
5
|
-
`)?f:f.replace(/\s+(?=\d+[).]\s)/g,`
|
|
6
|
-
`).replace(/\s+(?=[一二三四五六七八九十]+[、.]\s)/g,`
|
|
7
|
-
`).replace(/\s+(?=[-*•]\s)/g,`
|
|
8
|
-
`):""},te=({sessionId:n,onResponseSubmitted:f,onQuestionAppeared:I})=>{const{t:h}=he(),{token:y}=Oe(),{message:P}=Ee.useApp(),[O,q]=s.useState(null),[d,g]=s.useState(null),[R,z]=s.useState(!1),[oe,T]=s.useState(!0),[E,w]=s.useState(!1),i=s.useRef(0),m=s.useRef(0),_=s.useRef(null),C=s.useRef(I);C.current=I;const[S,ne]=s.useState(()=>typeof document>"u"?!0:!document.hidden),{markRespondStart:re,markSettleTimeout:k,setPendingQuestion:G,clearPendingQuestion:D,sessionModelRef:p,sessionReasoningEffort:se,inputReasoningEffort:le,eventPendingQuestion:c,isCurrentSession:b}=Y(ye(e=>{var l,u,x,J,X;const o=n?e.chats.find(_e=>_e.id===n)??null:null;return{markRespondStart:e.markRespondStart,markSettleTimeout:e.markSettleTimeout,setPendingQuestion:e.setPendingQuestion,clearPendingQuestion:e.clearPendingQuestion,sessionModelRef:((l=o==null?void 0:o.config)==null?void 0:l.model_ref)??null,sessionReasoningEffort:((u=o==null?void 0:o.config)==null?void 0:u.reasoningEffort)??null,inputReasoningEffort:n?((J=(x=e.inputStates)==null?void 0:x[n])==null?void 0:J.reasoningEffort)??null:null,eventPendingQuestion:n?((X=e.executionBySession[n])==null?void 0:X.interaction.pendingQuestion)??null:null,isCurrentSession:e.currentSessionId===n}})),A=c!==null,t=s.useMemo(()=>c?{has_pending_question:!0,question:c.question,options:c.options,allow_custom:c.allowCustom,tool_call_id:c.toolCallId??void 0}:O,[c,O]),v=qe(p),M=B(e=>e.currentProvider),V=B(e=>e.providerConfig),ae=s.useMemo(()=>ge(V,v,(p==null?void 0:p.provider)??M),[v,p==null?void 0:p.provider,V,M]),ie=s.useMemo(()=>n?ve(n):void 0,[n]),ce=se??le??ie??ae??"medium",$=Y(xe(n)),K=s.useCallback(async()=>{try{const e=await Z.get(`respond/${n}/pending`);e.has_pending_question?(q(o=>{const l=L({sessionId:n,question:e.question,options:e.options,allowCustom:e.allow_custom,toolCallId:e.tool_call_id});return(o!=null&&o.has_pending_question?L({sessionId:n,question:o.question,options:o.options,allowCustom:o.allow_custom,toolCallId:o.tool_call_id}):null)===l?o??e:e}),i.current=0,m.current=0):(q(null),_.current=null,i.current+=1,i.current>=6?m.current=2:i.current>=2&&(m.current=1))}catch(e){if(e instanceof Error&&e.message.includes("404")){q(null),_.current=null,i.current+=1;return}q(null),_.current=null,i.current+=1,i.current>=6?m.current=2:i.current>=2&&(m.current=1),console.error("Failed to fetch pending question:",e)}finally{T(!1)}},[n]);s.useEffect(()=>{i.current=0,m.current=0,_.current=null,T(!0),g(null),w(!1)},[n]),s.useEffect(()=>{if(typeof document>"u")return;const e=()=>{ne(!document.hidden)};return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)},[]),s.useEffect(()=>{var e;if(t!=null&&t.has_pending_question){const o=L({sessionId:n,question:t==null?void 0:t.question,options:t==null?void 0:t.options,allowCustom:t==null?void 0:t.allow_custom,toolCallId:t==null?void 0:t.tool_call_id}),l=_.current===o;A||G(n,{question:(t==null?void 0:t.question)||"",options:(t==null?void 0:t.options)||[],allowCustom:(t==null?void 0:t.allow_custom)??!0,toolCallId:(t==null?void 0:t.tool_call_id)??null}),l||(g(null),w(!1),(e=C.current)==null||e.call(C)),_.current=o}else _.current=null,D(n)},[A,t==null?void 0:t.allow_custom,t==null?void 0:t.has_pending_question,t==null?void 0:t.options,t==null?void 0:t.question,t==null?void 0:t.tool_call_id,n,G,D]);const U=s.useCallback(()=>{if(c)return null;if(t!=null&&t.has_pending_question)return S?5e3:15e3;if($)return b?S?5e3:15e3:null;if(!b||!S)return null;const e=m.current;return e===0?3e4:e===1?6e4:12e4},[c,t==null?void 0:t.has_pending_question,$,b,S]);s.useEffect(()=>{if(c){T(!1);return}let e=!1,o=null;const l=async()=>{if(e||R||(await K(),e))return;const u=U();u!==null&&(o=setTimeout(l,u))};return l(),()=>{e=!0,o&&clearTimeout(o)}},[c,K,U,R]),s.useEffect(()=>{if(typeof window>"u")return;const e=o=>{var x;const u=((x=o.detail)==null?void 0:x.sessionId)??null;!u||u!==n||(q(null),g(null),i.current=0)};return window.addEventListener(H,e),()=>{window.removeEventListener(H,e)}},[n]);const ue=s.useCallback(e=>{g(e)},[]),fe=async()=>{if(!d||d==="custom"){P.warning(h("components.questionDialog.selectOptionWarning"));return}z(!0),re(n,(t==null?void 0:t.tool_call_id)??null),await new Promise(e=>setTimeout(e,0));try{const e={};B.getState().isProviderModelRefEnabled()&&v&&(e.model_ref=v,e.provider=v.provider);const o=await Z.post(`respond/${n}`,{response:d,reasoning_effort:ce,...e});P.success(h("components.questionDialog.responseSubmitted")),q(null),g(null),i.current=0,D(n),typeof window<"u"&&window.dispatchEvent(new CustomEvent(H,{detail:{sessionId:n}}));const l=o==null?void 0:o.auto_resume_status;l==="error"?(console.error("[QuestionDialog] Failed to auto-resume agent execution"),k(n)):(!l||!["started","already_running"].includes(l))&&k(n),f==null||f()}catch(e){console.error("Failed to submit response:",e),P.error(e instanceof Error?e.message:h("components.questionDialog.submitFailed")),k(n)}finally{z(!1)}};if(oe||!(t!=null&&t.has_pending_question))return null;const{question:de,options:N,allow_custom:me}=t,W=ze(de);return r.jsxs("div",{className:a.questionCard,style:{background:y.colorBgContainer,borderColor:y.colorBorderSecondary,border:`1px solid ${y.colorBorderSecondary}`},children:[r.jsxs("div",{className:a.questionHeader,"data-collapsed":E?"true":"false",onClick:()=>w(e=>!e),role:"button",tabIndex:0,onKeyDown:e=>{(e.key==="Enter"||e.key===" ")&&w(o=>!o)},children:[r.jsxs("span",{className:a.headerLeft,children:[r.jsx("span",{className:a.questionIcon,children:"🤔"}),r.jsx(j,{strong:!0,className:a.questionText,style:{color:y.colorPrimary,whiteSpace:"pre-wrap"},title:E?W:void 0,children:W})]}),r.jsx(Q,{type:"text",size:"small",icon:E?r.jsx(Ce,{}):r.jsx(Se,{}),className:a.collapseBtn,tabIndex:-1})]}),!E&&r.jsxs("div",{className:a.questionBody,children:[r.jsx(F.Group,{className:a.optionsGroup,value:d,onChange:e=>ue(e.target.value),children:r.jsxs(ee,{direction:"vertical",size:4,style:{width:"100%"},children:[N==null?void 0:N.map((e,o)=>r.jsx(F,{value:e,className:a.optionItem,children:r.jsx(j,{style:{color:y.colorText},children:e})},o)),me&&r.jsx(F,{value:"custom",className:a.optionItem,children:r.jsxs(ee,{size:4,children:[r.jsx(je,{}),r.jsx(j,{style:{color:y.colorText},children:h("components.questionDialog.otherTypeBelow")})]})})]})}),d==="custom"&&r.jsx("div",{className:a.customHint,children:r.jsx(j,{type:"secondary",style:{fontSize:12},children:h("components.questionDialog.customAnswerTip")})}),d&&d!=="custom"&&r.jsx("div",{className:a.questionFooter,children:r.jsx(Q,{type:"primary",size:"small",onClick:fe,loading:R,children:h("components.questionDialog.confirm")})})]})]})};te.displayName="QuestionDialog";const Ge=pe.memo(te);Ge.displayName="QuestionDialog";export{Ge as QuestionDialog,Ge as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as t,M as D,r as E,h as F}from"./vendor-markdown-DzaXAW9Q.js";import{u as I,a as p}from"./vendor-i18n-BNURlJ23.js";import{S as y,E as v,C as H,j as T,L as X,ae as A,l as j,ag as O,ah as Y,ai as q,aj as K,V,G as J,m as N,t as Q}from"./vendor-antd-DODjfilb.js";import{q as U,u as z,t as W}from"./App-BocqxYkX.js";import"./vendor-mermaid-De-Yacw-.js";import"./main-TSfsr__P.js";const Z=({buttons:r,className:e,style:m,size:l="middle",align:i="right"})=>{const h={className:e,style:{width:"100%",justifyContent:i==="left"?"flex-start":i==="center"?"center":"flex-end",...m}};return t.jsx(y,{...h,children:r.map(a=>t.jsx(v,{type:a.type||"default",disabled:a.disabled,loading:a.loading,danger:a.danger,onClick:a.onClick,size:l,icon:a.icon,children:a.text},a.key))})},_=(r,e)=>({key:"cancel",text:e||"Cancel",type:"default",onClick:r}),k=(r,e)=>({key:"ok",text:(e==null?void 0:e.text)||"OK",type:"primary",disabled:e==null?void 0:e.disabled,loading:e==null?void 0:e.loading,onClick:r}),{Text:b,Paragraph:ee}=T,te=({content:r,token:e,showGradient:m,onClick:l})=>t.jsx(H,{size:"small",style:{marginLeft:e.marginLG,marginTop:e.marginXS,backgroundColor:e.colorBgLayout,borderColor:e.colorBorderSecondary},styles:{body:{padding:e.paddingMD}},onClick:l,children:t.jsxs("div",{style:{maxHeight:"60vh",overflowY:"auto",position:"relative",paddingRight:e.paddingXS},children:[t.jsx(D,{remarkPlugins:[E],components:{p:({children:i})=>t.jsx(ee,{style:{marginBottom:e.marginSM},children:i}),ol:({children:i})=>t.jsx("ol",{style:{marginBottom:e.marginSM,paddingLeft:e.paddingLG},children:i}),ul:({children:i})=>t.jsx("ul",{style:{marginBottom:e.marginSM,paddingLeft:e.paddingLG},children:i}),li:({children:i})=>t.jsx("li",{style:{marginBottom:e.marginXS},children:i}),h1:({children:i})=>t.jsx(b,{strong:!0,style:{fontSize:e.fontSizeHeading3,marginBottom:e.marginSM,display:"block"},children:i}),h2:({children:i})=>t.jsx(b,{strong:!0,style:{fontSize:e.fontSizeHeading4,marginBottom:e.marginSM,display:"block"},children:i}),code:({inline:i,className:h,children:a,...n})=>{const o=/language-(\w+)/.exec(h||"");return i?t.jsx("code",{className:h,style:{backgroundColor:e.colorFillTertiary,padding:"0 4px",borderRadius:e.borderRadiusSM,fontSize:e.fontSizeSM},...n,children:a}):t.jsx(F,{style:U,language:(o==null?void 0:o[1])||"text",PreTag:"div",wrapLongLines:!0,children:String(a).replace(/\n$/,"")})}},children:r||"No content available."}),m?t.jsx("div",{style:{position:"sticky",bottom:0,height:48,background:`linear-gradient(180deg, transparent, ${e.colorBgLayout})`,pointerEvents:"none",marginTop:-48}}):null]})}),{Text:M,Paragraph:re}=T,se=({prompt:r,token:e,isSelected:m,isExpanded:l,onSelect:i,onToggleExpand:h,onCopy:a})=>{const{t:n}=I(),o=r.content||"",{nonEmptyLineCount:f,wordCount:u,characterCount:P,showGradient:x}=p.useMemo(()=>{const S=(o?o.split(/\r?\n/):[]).filter(w=>w.trim().length>0).length,C=o.trim()?o.trim().split(/\s+/).filter(Boolean).length:0,g=o.length;return{nonEmptyLineCount:S,wordCount:C,characterCount:g,showGradient:!l&&g>600}},[o,l]);return t.jsx(X.Item,{style:{cursor:"pointer",padding:e.paddingMD,borderRadius:e.borderRadius,border:m?`2px solid ${e.colorPrimary}`:`1px solid ${e.colorBorderSecondary}`,marginBottom:e.marginXS,backgroundColor:m?e.colorPrimaryBg:e.colorBgContainer,transition:"all 0.2s ease"},onClick:()=>i(r.id),children:t.jsxs(y,{direction:"vertical",style:{width:"100%"},size:e.marginSM,children:[t.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",width:"100%",gap:e.marginSM},children:[t.jsxs(y,{align:"start",children:[t.jsx(A,{checked:m,onChange:()=>i(r.id),onClick:c=>c.stopPropagation()}),t.jsxs("div",{children:[t.jsx(M,{strong:!0,children:r.name||r.id}),t.jsx("div",{children:t.jsx(M,{code:!0,style:{fontSize:e.fontSizeSM,color:e.colorTextSecondary},children:r.id})})]}),r.isDefault?t.jsx(j,{color:"warning",children:n("chat.systemPromptSelector.defaultTag")}):null]}),t.jsxs(y,{size:"small",children:[t.jsx(v,{type:"text",size:"small",icon:l?t.jsx(O,{}):t.jsx(Y,{}),onClick:c=>{c.stopPropagation(),h(r.id)},children:n(l?"chat.systemPromptSelector.hide":"chat.systemPromptSelector.preview")}),t.jsx(v,{type:"text",size:"small",icon:t.jsx(q,{}),onClick:c=>a(c,r),children:n("chat.systemPromptSelector.copy")})]})]}),r.description?t.jsx(M,{type:"secondary",style:{marginLeft:e.marginLG,fontSize:e.fontSizeSM},children:r.description}):null,t.jsxs(y,{size:"small",wrap:!0,style:{marginLeft:e.marginLG},children:[t.jsx(j,{color:"processing",children:n("chat.systemPromptSelector.lines",{count:f})}),t.jsx(j,{color:"purple",children:n("chat.systemPromptSelector.words",{count:u})}),t.jsx(j,{color:"success",children:n("chat.systemPromptSelector.chars",{count:P})})]}),l?t.jsx(te,{content:o,token:e,showGradient:x,onClick:c=>c.stopPropagation()}):t.jsx(re,{type:"secondary",ellipsis:{rows:3},style:{marginLeft:e.marginLG,marginBottom:0,color:e.colorTextSecondary},children:o||n("chat.systemPromptSelector.noContent")})]})},r.id)},{Text:ie}=T,{useToken:ae}=Q,me=({open:r,onClose:e,onSelect:m,prompts:l,title:i,showCancelButton:h=!0})=>{const{t:a}=I(),{token:n}=ae(),[o,f]=K.useMessage(),u=z(s=>s.lastSelectedPromptId),P=z(s=>s.setLastSelectedPromptId),[x,c]=p.useState(null),[S,C]=p.useState(null),g=p.useMemo(()=>l.filter(s=>s.id&&s.id.trim()!==""),[l]),w=async(s,d)=>{s.stopPropagation();const L=d.content??"";try{await W(L),o.success(a("success.promptCopied",{name:d.name}))}catch($){console.error("[SystemPromptSelector] Failed to copy prompt:",$),o.error(a("error.copyPromptFailed"))}},G=i??a("chat.prompt.selectorTitle");p.useEffect(()=>{if(r){const s=g.find(L=>L.isDefault),d=u||(s==null?void 0:s.id)||(g.length>0?g[0].id:null);c(d)}},[r,u,g.length]);const R=s=>{c(s.id),P(s.id),m(s),e()},B=()=>{e()};return t.jsxs(t.Fragment,{children:[f,t.jsxs(V,{title:t.jsxs(y,{children:[t.jsx(N,{}),G]}),open:r,onCancel:B,width:700,footer:t.jsx(Z,{buttons:[...h?[_(B)]:[],k(()=>{const s=g.find(d=>d.id===x);s&&R(s)},{text:a("chat.prompt.createButton"),disabled:!x})]}),styles:{body:{maxHeight:"70vh",overflowY:"auto",padding:n.paddingMD}},children:[t.jsx("div",{style:{marginBottom:n.marginMD},children:t.jsx(ie,{type:"secondary",style:{fontSize:n.fontSizeSM},children:a("chat.prompt.helperText")})}),g.length===0?t.jsx(J,{description:a("chat.prompt.emptyDescription"),style:{margin:n.marginLG}}):t.jsx("div",{children:g.map(s=>t.jsx(se,{prompt:s,token:n,isSelected:x===s.id,isExpanded:S===s.id,onSelect:d=>c(d),onToggleExpand:d=>C(S===d?null:d),onCopy:w},s.id))})]})]})};export{me as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as s}from"./vendor-markdown-DzaXAW9Q.js";import{u as y,a as c}from"./vendor-i18n-BNURlJ23.js";import{u as x,s as j,E as N}from"./App-BocqxYkX.js";import{t as T,a5 as v,a6 as R,q as S,z as w,H as k,a2 as I,l as b,u as A}from"./vendor-antd-DODjfilb.js";import"./vendor-mermaid-De-Yacw-.js";import"./main-TSfsr__P.js";const M=5,$=5,C=5,D=o=>{if(!o)return"";try{const l=Date.now()-new Date(o).getTime();if(l<0)return"";const t=Math.floor(l/1e3);if(t<60)return"just now";const n=Math.floor(t/60);if(n<60)return`${n}m ago`;const i=Math.floor(n/60);if(i<24)return`${i}h ago`;const r=Math.floor(i/24);return r<30?`${r}d ago`:new Date(o).toLocaleDateString()}catch{return""}},E=(o,l)=>l?"is-running":o.lastRunStatus==="error"?"is-error":o.pinned?"is-pinned":"is-idle",h=({chat:o,onOpen:l,textSecondary:t})=>{const n=x(j(o.id)),i=o.config.workspacePath?o.config.workspacePath.split("/").pop()||o.config.workspacePath:null;return s.jsxs("button",{type:"button",className:"lotus-home-session-item",onClick:()=>l(o.id),children:[s.jsx("span",{className:`lotus-home-session-status ${E(o,n)}`}),s.jsxs("span",{className:"lotus-home-session-content",children:[s.jsx("span",{className:"lotus-home-session-title",children:o.title}),s.jsxs("span",{className:"lotus-home-session-meta",style:{color:t},children:[s.jsx("span",{children:D(o.updatedAt)}),i?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"lotus-home-session-meta-sep"}),s.jsxs("span",{children:[s.jsx(k,{style:{marginRight:3}}),i]})]}):null,o.messageCount!=null?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"lotus-home-session-meta-sep"}),s.jsxs("span",{children:[s.jsx(I,{style:{marginRight:3}}),o.messageCount]})]}):null]})]}),n?s.jsx(b,{color:"green",bordered:!1,style:{margin:0,fontSize:11},children:"Running"}):null,s.jsx(A,{className:"lotus-home-session-arrow"})]})},F=({onOpenSession:o})=>{const{t:l}=y(),{token:t}=T.useToken(),n=x(e=>e.chats),i=c.useCallback(e=>j(e)(x.getState()),[]),r=c.useMemo(()=>n.filter(e=>i(e.id)).slice(0,$),[n,i]),d=c.useMemo(()=>n.filter(e=>e.pinned&&!i(e.id)).slice(0,C),[n,i]),p=c.useMemo(()=>{const e=new Set(r.map(a=>a.id)),f=new Set(d.map(a=>a.id));return n.filter(a=>a.kind!=="child"&&!e.has(a.id)&&!f.has(a.id)).sort((a,u)=>{const g=a.updatedAt?new Date(a.updatedAt).getTime():a.createdAt;return(u.updatedAt?new Date(u.updatedAt).getTime():u.createdAt)-g}).slice(0,M)},[n,r,d]),m=c.useCallback(e=>{o(e)},[o]);return s.jsx("div",{className:"lotus-home-dashboard",children:s.jsxs("div",{className:"lotus-home-dashboard-inner",children:[s.jsxs("div",{className:"lotus-home-header",children:[s.jsx("span",{className:"lotus-home-header-icon",style:{background:`${t.colorPrimary}15`,color:t.colorPrimary},children:s.jsx(v,{})}),s.jsxs("div",{className:"lotus-home-header-text",children:[s.jsx("h2",{style:{color:t.colorText},children:l("home.title","Welcome to Bodhi")}),s.jsx("p",{style:{color:t.colorTextSecondary},children:l("home.subtitle","Here's an overview of your workspace.")})]})]}),s.jsx("div",{className:"lotus-home-launcher-shell","data-tour-id":"task-templates",children:s.jsx(N,{embedded:!0,layoutMode:"staggered"})}),s.jsxs("div",{className:"lotus-home-secondary-sections",children:[r.length>0?s.jsxs("div",{className:"lotus-home-section",children:[s.jsxs("div",{className:"lotus-home-section-title",style:{color:t.colorTextSecondary},children:[s.jsx(R,{className:"lotus-home-section-icon",style:{color:"#52c41a"}}),s.jsx("span",{children:l("home.sections.running","Running Now")})]}),s.jsx("div",{className:"lotus-home-session-list",children:r.map(e=>s.jsx(h,{chat:e,onOpen:m,textSecondary:t.colorTextTertiary},e.id))})]}):null,d.length>0?s.jsxs("div",{className:"lotus-home-section",children:[s.jsxs("div",{className:"lotus-home-section-title",style:{color:t.colorTextSecondary},children:[s.jsx(S,{className:"lotus-home-section-icon",style:{color:"#faad14"}}),s.jsx("span",{children:l("home.sections.pinned","Pinned")})]}),s.jsx("div",{className:"lotus-home-session-list",children:d.map(e=>s.jsx(h,{chat:e,onOpen:m,textSecondary:t.colorTextTertiary},e.id))})]}):null,p.length>0?s.jsxs("div",{className:"lotus-home-section",children:[s.jsxs("div",{className:"lotus-home-section-title",style:{color:t.colorTextSecondary},children:[s.jsx(w,{className:"lotus-home-section-icon"}),s.jsx("span",{children:l("home.sections.recent","Recent Sessions")})]}),s.jsx("div",{className:"lotus-home-session-list",children:p.map(e=>s.jsx(h,{chat:e,onOpen:m,textSecondary:t.colorTextTertiary},e.id))})]}):null,n.length===0?s.jsx("div",{className:"lotus-home-empty-hint",style:{color:t.colorTextTertiary},children:l("home.empty","No sessions yet. Create one to get started!")}):null]})]})})};export{F as HomeDashboard,F as default};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./App-BocqxYkX.js","./vendor-markdown-DzaXAW9Q.js","./vendor-i18n-BNURlJ23.js","./vendor-antd-DODjfilb.js","./vendor-mermaid-De-Yacw-.js","./App-D9R-_Pem.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{_ as m}from"./vendor-mermaid-De-Yacw-.js";import{j as l}from"./vendor-markdown-DzaXAW9Q.js";import{g as w,i as r,d as R,R as S}from"./vendor-i18n-BNURlJ23.js";import{au as F}from"./vendor-antd-DODjfilb.js";function L(e,t){for(var i=0;i<t.length;i++){const o=t[i];if(typeof o!="string"&&!Array.isArray(o)){for(const s in o)if(s!=="default"&&!(s in e)){const a=Object.getOwnPropertyDescriptor(o,s);a&&Object.defineProperty(e,s,a.get?a:{enumerable:!0,get:()=>o[s]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))o(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const p of a.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&o(p)}).observe(document,{childList:!0,subtree:!0});function i(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function o(s){if(s.ep)return;s.ep=!0;const a=i(s);fetch(s.href,a)}})();var u={},f;function E(){if(f)return u;f=1;var e=F();return u.createRoot=e.createRoot,u.hydrateRoot=e.hydrateRoot,u}var y=E();const M=w(y),X=L({__proto__:null,default:M},[y]),q={"en-US":()=>m(async()=>{const{enUsTranslation:e}=await import("./en-US-DLwJLted.js");return{enUsTranslation:e}},[],import.meta.url).then(({enUsTranslation:e})=>e),"zh-CN":()=>m(async()=>{const{zhCnTranslation:e}=await import("./zh-CN-B74Ip0pW.js");return{zhCnTranslation:e}},[],import.meta.url).then(({zhCnTranslation:e})=>e)},v=new Map,c=e=>{let t=v.get(e);return t||(t=q[e](),v.set(e,t)),t},D={common:{saveAnyway:"Enregistrer quand même",parentDirectory:"Répertoire des parents",currentPath:"Chemin actuel :",cancel:"Annuler",ok:"D'ACCORD",apply:"Appliquer",save:"Sauvegarder",delete:"Supprimer",yes:"Oui",no:"Non",home:"Maison",download:"Télécharger",directory:"Annuaire",file:"Déposer"},chat:{workspace:{modalTitle:"Définir le chemin de l'espace de travail",invalidTitle:"Chemin d'accès à l'espace de travail non valide",issuesDetected:"Problèmes potentiels détectés avec le chemin de l'espace de travail :",confirmSaveInvalid:"Voulez-vous toujours enregistrer ce chemin ?",errorEnterPath:"Veuillez saisir un chemin d'accès à l'espace de travail",errorSaveFailed:"Échec de l'enregistrement du chemin de l'espace de travail",placeholder:"par ex. /Utilisateurs/alice/Espace de travail/MonProjet",browseFolder:"Parcourir le dossier",descriptionTitle:"Description du chemin de l'espace de travail",descriptionP1:"Définissez un chemin d'accès à l'espace de travail afin que les références de fichiers et les outils de l'espace de travail puissent résoudre les fichiers de manière fiable.",descriptionP2:"Choisissez un dossier de projet existant. Vous pouvez toujours continuer avec un chemin non valide, mais les fonctionnalités associées risquent de ne pas fonctionner correctement.",checkTitle:"Vérification du chemin de l'espace de travail",checkDescription:"La validation du chemin de l'espace de travail a échoué.",label:"Espace de travail"},folderBrowser:{title:"Sélectionnez le dossier de l'espace de travail",selectCurrent:"Sélectionnez le dossier actuel",emptyFolder:"Ce dossier est vide",tip:'Astuce : cliquez sur un dossier pour y accéder, cliquez sur "Sélectionner le dossier actuel" pour confirmer'},input:{placeholder:"Envoyer un message...",placeholderWithReference:"Envoyer un message (inclut la référence)",placeholderWithWorkflows:"Envoyer un message... (tapez '/' pour les workflows)",toolCallsOnly:"Appels d'outils uniquement (outils autorisés : {{tools}})",autoPrefixMode:"Mode de préfixe automatique : {{prefix}} (tapez « / » pour sélectionner les outils)",toolSpecificMode:"Mode spécifique à l'outil (outils autorisés : {{tools}})",processingFiles:"Traitement des fichiers…",imageCountSingular:"Image {{count}}",imageCountPlural:"Images {{count}}",reasoning:{max:"Max."}},actions:{regenerate:"Régénérer la réponse",retryFailed:"Réessayer la demande ayant échoué",retryOptions:"Options de nouvelle tentative",cancelRequest:"Annuler la demande",sendMessage:"Envoyer un message",copyMessage:"Copier le message",referenceMessage:"Message de référence",generateTitle:"Générer un titre IA",unpin:"Détacher",pin:"Épingle"},fileReference:{title:"@ Référence du fichier",setWorkspace:"Définir l'espace de travail",noMatches:"Aucun fichier correspondant trouvé",emptyDirectory:"Le répertoire est vide"},commandSelector:{types:{mcp:"PCM"}},streaming:{assistant:"Assistant"}},settings:{configTab:{toolsLoadFailed:"Échec du chargement des outils disponibles",toolsReloadSuccess:"Liste d'outils rechargée",toolsSaveSuccess:"Paramètres de l'outil enregistrés avec succès",toolsSaveFailed:"Échec de l'enregistrement des paramètres de l'outil",languageHindi:"hindi"},modelLimits:{placeholders:{vendor:"OpenAI / Google / Moonshot"},columns:{notes:"Remarques",actions:"Actes"}},systemPromptManager:{title:"Gestion des invites système",addButton:"Ajouter une invite",defaultPromptLocked:"Les invites système par défaut sont verrouillées et ne peuvent pas être modifiées.",updateSuccess:"Invite mise à jour avec succès",addSuccess:"Invite ajoutée avec succès",saveError:"Échec de l'enregistrement de l'invite. Veuillez réessayer.",deleteSuccess:"Invite supprimée avec succès",deleteError:"Échec de la suppression de l'invite. Veuillez réessayer.",deleteConfirm:"Êtes-vous sûr de supprimer cette invite ?",defaultTag:"Par défaut (verrouillé)",editTitle:"Modifier l'invite système",addTitle:"Ajouter une nouvelle invite système",nameLabel:"Nom de l'invite",nameRequired:"Veuillez saisir le nom de l'invite !",descriptionLabel:"Description rapide",descriptionRequired:"Veuillez saisir la description de l'invite !",contentLabel:"Contenu rapide",contentRequired:"Veuillez saisir le contenu de l'invite !"},envVars:{title:"Variables d'environnement",description:"Les variables sont injectées dans les processus de l'outil Bash. Les variables secrètes sont chiffrées au repos.",fetchError:"Échec du chargement des variables d'environnement",created:"Variable créée",updated:"Variable mise à jour",saveError:"Échec de l'enregistrement de la variable",deleted:"Variable supprimée",deleteError:"Échec de la suppression de la variable",addButton:"Ajouter une variable",noVars:"Aucune variable d'environnement configurée",addTitle:"Ajouter une variable d'environnement",editTitle:"Modifier une variable",nameRequired:"Le nom de la variable est obligatoire",nameInvalid:"Doit commencer par une lettre ou un trait de soulignement, suivi de lettres, de chiffres ou de traits de soulignement",valueRequired:"La valeur est requise pour les nouvelles variables",valueEditHint:"Laisser vide pour conserver la valeur existante",valuePlaceholder:"Entrez la valeur",valuePlaceholderEdit:"Entrez une nouvelle valeur ou laissez vide",secretHint:"Les variables secrètes sont chiffrées sur le disque et masquées dans l'interface utilisateur",descriptionPlaceholder:"Description facultative",deleteConfirm:"Supprimer cette variable ?",notSet:"(non réglé)",empty:"(vide)",save:"Sauvegarder",cancel:"Annuler",name:"Nom",value:"Valeur",secret:"Secrète",descriptionField:"Description",type:"Taper",plain:"Plaine",descriptionCol:"Description",actions:"Actes",yes:"Oui",no:"Non"},hooksTab:{mode:{ocr:"ROC (Windows)",vision:"Vision (LLM)",placeholder:"Espace réservé"},modeLabel:"Mode"},providerTab:{fastModel:"Modèle rapide (facultatif)",fastModelHelp:"Modèle moins cher/plus rapide pour les tâches légères telles que la génération de titres, la correction de sirène et la synthèse. Utilise le modèle par défaut lorsqu'il n'est pas défini.",visionModel:"Modèle de vision (facultatif)",visionModelHelp:"Modèle capable de vision pour la compréhension des images. Lorsque hooks.image_fallback.mode est défini sur « vision », ce modèle décrit les images sous forme de texte afin que les modèles contenant uniquement du texte puissent les comprendre. Utilise le modèle par défaut lorsqu'il n'est pas défini.",sameAsDefault:"Identique au modèle par défaut",providerNames:{openai:"OpenAI",anthropic:"Anthropique",gemini:"Gémeaux",copilot:"Copilote"}},mcpTab:{statusHelp:{connecting:"Le serveur démarre ou se reconnecte",ready:"Le serveur est connecté et sert les outils normalement",degraded:"Le serveur est partiellement disponible ; certains outils peuvent échouer",stopped:"Le serveur ne fonctionne pas",error:"Le serveur n'a pas pu démarrer ou a rencontré des erreurs d'exécution"}},metricsDashboard:{sessionsCount:"{{count}} séances",tokensAmount:"{{value}} jetons",sessionsTabLabel:"Séances ({{count}})",roundColumns:{tokens:"Jetons"},multiplierSuffix:"x",sessionDetail:{messages:"Messages"}},page:{tabs:{prompts:"Invites",mermaid:"Sirène",mcp:"PCM",sessions:"Séances",hooks:"Crochets"}},appTab:{languageHindi:"hindi"},modelMappingCard:{modelTypeOpus:"Opus",modelTypeSonnet:"Sonnet",modelTypeHaiku:"Haïku"},mermaidTab:{switchAuto:"Auto",flowchartCurveOptions:{cardinal:"Cardinal"}},schedulesTab:{columns:{actions:"Actes"},actions:{sessions:"Séances"}},sessionsTab:{id:"identifiant"},mcpServerTable:{columns:{actions:"Actes"},transportOptions:{sse:"ESS",stdio:"Stdio"}},mcpServerForm:{modeJson:"JSON",transportOptions:{stdio:"Stdio",sse:"ESS"},arguments:"Arguments"},metricsTable:{session:{columns:{session:"Session",tokens:"Jetons",messages:"Messages",action:"Action"}},forward:{columns:{id:"IDENTIFIANT",type:"Taper",tokens:"Jetons"}}},charts:{total:"Total",prompt:"Rapide",chat:"Chat"}},components:{markdown:{codeCopiedSuccess:"Code copié dans le presse-papier",copyFailed:"Échec de la copie"},jsonSchema:{noProperties:"Aucune propriété dans le schéma",field:"Champ",type:"Taper",required:"Requis",yes:"Oui",no:"Non",default:"Défaut",description:"Description"},imageGrid:{ocr:"ROC"},tokenUsage:{messages:"Messages",tokens:"jetons"},approval:{workflow:"Flux de travail"}}},O={common:{saveAnyway:"फिर भी सहेजें",parentDirectory:"मूल निर्देशिका",currentPath:"वर्तमान पथ:",cancel:"रद्द करना",ok:"ठीक है",apply:"आवेदन करना",save:"बचाना",delete:"मिटाना",yes:"हाँ",no:"नहीं",home:"घर",download:"डाउनलोड करना",directory:"निर्देशिका",file:"फ़ाइल"},chat:{workspace:{placeholder:"जैसे /उपयोगकर्ता/ऐलिस/वर्कस्पेस/मायप्रोजेक्ट",descriptionP1:"एक कार्यस्थान पथ सेट करें ताकि फ़ाइल संदर्भ और कार्यस्थान उपकरण फ़ाइलों को विश्वसनीय रूप से हल कर सकें।",descriptionP2:"कोई मौजूदा प्रोजेक्ट फ़ोल्डर चुनें. आप अभी भी अमान्य पथ के साथ जारी रख सकते हैं, लेकिन हो सकता है कि संबंधित सुविधाएं ठीक से काम न करें।"},folderBrowser:{title:"कार्यस्थान फ़ोल्डर चुनें",selectCurrent:"वर्तमान फ़ोल्डर का चयन करें",emptyFolder:"यह फ़ोल्डर खाली है",tip:'युक्ति: दर्ज करने के लिए किसी फ़ोल्डर पर क्लिक करें, पुष्टि करने के लिए "वर्तमान फ़ोल्डर का चयन करें" पर क्लिक करें'},actions:{regenerate:"प्रतिक्रिया पुनः उत्पन्न करें",retryFailed:"विफल अनुरोध पुनः प्रयास करें",retryOptions:"पुनः प्रयास करें विकल्प",cancelRequest:"अनुरोध को रद्द करें",sendMessage:"मेसेज भेजें",copyMessage:"संदेश कॉपी करें",referenceMessage:"संदर्भ संदेश",generateTitle:"एआई शीर्षक उत्पन्न करें",unpin:"अनपिन",pin:"नत्थी करना"},fileReference:{title:"@फ़ाइल संदर्भ",setWorkspace:"कार्यक्षेत्र सेट करें",noMatches:"कोई मेल खाती फ़ाइलें नहीं मिलीं",emptyDirectory:"निर्देशिका खाली है"},commandSelector:{types:{mcp:"एमसीपी"}}},settings:{notifications:{deleteAllSuccess:"सभी सत्र हटा दिए गए (पिन किए गए को छोड़कर)",deleteEmptySuccess:"खाली सत्र हटा दिए गए (पिन किए गए को छोड़कर)",localStorageCleared:"स्थानीय भंडारण साफ़ कर दिया गया है",resetSuccessReloading:"Application reset successful. पुनः लोड हो रहा है...",resetFailed:"एप्लिकेशन रीसेट करने में विफल",autoTitleEnabled:"स्वतः शीर्षक निर्माण सक्षम",autoTitleDisabled:"स्वतः शीर्षक पीढ़ी अक्षम",autoTitleUpdateFailed:"स्वतः शीर्षक प्राथमिकता अद्यतन करने में विफल",promptEnhancementSaved:"सिस्टम प्रॉम्प्ट एन्हांसमेंट सहेजा गया"},appTab:{deleteAllTitle:"सभी सत्र हटाएँ",deleteAllDescription:"क्या आपको यकीन है? इससे पिन किए गए को छोड़कर सभी सत्र हटा दिए जाएंगे.",deleteAllButton:"सभी सत्र हटाएँ",deleteEmptyTitle:"खाली सत्र हटाएँ",deleteEmptyDescription:"क्या आपको यकीन है? इससे बिना किसी संदेश वाले (पिन किए गए को छोड़कर) सभी सत्र हटा दिए जाएंगे।",deleteEmptyButton:"खाली सत्र हटाएँ",clearLocalStorageTitle:"स्थानीय संग्रहण साफ़ करें",clearLocalStorageDescription:"क्या आपको यकीन है? यह सभी स्थानीय संग्रहण डेटा को हटा देगा और एप्लिकेशन को रीसेट कर देगा।",clearLocalStorageButton:"स्थानीय संग्रहण साफ़ करें",confirmDeleteAll:"हाँ, सभी हटा दें",confirmDeleteEmpty:"हां, खाली हटाएं",confirmClear:"हाँ, इसे साफ़ करें",dangerDescription:"इन कार्रवाइयों को पूर्ववत नहीं किया जा सकता. सारा डेटा स्थायी रूप से हटा दिया जाएगा.",resetApplicationTitle:"एप्लिकेशन रीसेट करें",resetApplicationIntro:"क्या आपको यकीन है? यह करेगा:",resetStepDeleteAllSessions:"सभी सत्र हटाएं (पिन किए गए सहित)",resetStepClearStorage:"सभी स्थानीय संग्रहण डेटा साफ़ करें",resetStepResetConfig:"config.json को डिफ़ॉल्ट पर रीसेट करें",resetStepSetupFlow:"अगले लॉन्च पर प्रारंभिक सेटअप प्रवाह ट्रिगर करें",resetStepReload:"एप्लिकेशन पुनः लोड करें",resetConfirm:"हाँ, सब कुछ रीसेट करें",resetButton:"एप्लिकेशन रीसेट करें (सभी डेटा)"},configTab:{loadConfigFailed:"कॉन्फ़िगरेशन लोड करने में विफल",invalidConfig:"अमान्य कॉन्फ़िगरेशन",saveConfigSuccess:"कॉन्फ़िगरेशन सफलतापूर्वक सहेजा गया",saveConfigFailed:"कॉन्फ़िगरेशन सहेजने में विफल",toolsLoadFailed:"उपलब्ध उपकरण लोड करने में विफल",toolsReloadSuccess:"टूल सूची पुनः लोड की गई",toolsSaveSuccess:"टूल सेटिंग सफलतापूर्वक सहेजी गईं",toolsSaveFailed:"टूल सेटिंग सहेजने में विफल",backendSaved:"बैकएंड यूआरएल सहेजा गया",backendResetDefault:"बैकएंड यूआरएल डिफ़ॉल्ट पर रीसेट हो गया"},modelMappingCard:{loadProviderFailed:"प्रदाता कॉन्फ़िगरेशन लोड करने में विफल",loadMappingsFailed:"मौजूदा मैपिंग लोड करने में विफल",loadModelsFailed:"मॉडल लोड करने में विफल",loadModelsHint:"मॉडल लोड करने में विफल. कृपया अपने प्रदाता कॉन्फ़िगरेशन की जाँच करें।",mappingSaved:"मॉडल मैपिंग सहेजी गई",mappingSaveFailed:"मॉडल मैपिंग सहेजने में विफल",enterModelName:"कृपया एक मॉडल नाम दर्ज करें",customMappingSaved:"कस्टम मॉडल मैपिंग सहेजी गई",customMappingSaveFailed:"कस्टम मॉडल मैपिंग सहेजने में विफल",mappedModelNotFound:'मैप किया गया मॉडल "{{model}}" वर्तमान प्रदाता के उपलब्ध मॉडल में नहीं मिला',cached:"(कैश्ड)",modelTypeOpus:"ओपुस",modelTypeSonnet:"गाथा",modelTypeHaiku:"हाइकू"},modelTab:{selectModelTitle:"मॉडल का चयन करें",loadingModels:"मॉडल लोड हो रहे हैं...",selectModelPlaceholder:"एक मॉडल चुनें",backendApiBaseUrlTitle:"बैकएंड एपीआई बेस यूआरएल",resetToDefault:"वितथ पर ले जाएं",backendApiHint:"/v1 (उदा. {{example}}) सहित पूर्ण आधार URL होना चाहिए।",save:"बचाना"},mermaidTab:{title:"जलपरी आरेख सेटिंग्स",description:"अनुकूलित करें कि आपकी चैट में मरमेड आरेख कैसे प्रस्तुत किए जाते हैं",themeLabel:"जलपरी थीम",themeTooltip:"एक अंतर्निर्मित मरमेड थीम चुनें। ऐप थीम के आधार पर प्रकाश और अंधेरे के बीच डिफ़ॉल्ट और न्यूट्रल ऑटो-स्विच।",themeOptions:{default:"डिफ़ॉल्ट (ऑटो लाइट/डार्क)",neutral:"तटस्थ (ऑटो लाइट/डार्क)",forest:"वन (हरा स्वर)",base:"आधार (न्यूनतम)",dark:"अँधेरा"},themeDescriptionsTitle:"थीम विवरण:",themeDescriptions:{default:"डिफ़ॉल्ट: क्लासिक मरमेड लुक, प्रकाश/अंधेरे में स्वतः अनुकूलित",neutral:"तटस्थ: ग्रे टोन, प्रकाश/अंधेरे के लिए स्वतः अनुकूलित",dark:"डार्क: हमेशा डार्क थीम",forest:"वन: हरा रंग योजना, तकनीकी आरेखों के लिए अच्छा है",base:"आधार: कस्टम थीम के लिए न्यूनतम स्टाइल"},globalCardTitle:"वैश्विक सेटिंग्स",fontSizeLabel:"फ़ॉन्ट आकार",fontSizeTooltip:"सभी आरेख पाठ के लिए आधार फ़ॉन्ट आकार (पिक्सेल में)",defaultZoomLabel:"डिफ़ॉल्ट ज़ूम",defaultZoomTooltip:"आरेखों के लिए प्रारंभिक ज़ूम स्तर (1.0 = 100%)",responsiveWidthLabel:"प्रतिक्रियाशील चौड़ाई",responsiveWidthTooltip:"आरेखों को कंटेनर की चौड़ाई के अनुकूल बनाने में सक्षम करें। निश्चित-चौड़ाई वाले आरेखों के लिए अक्षम करें.",flowchartCardTitle:"फ़्लोचार्ट सेटिंग्स",flowchartNodeSpacingLabel:"नोड रिक्ति",flowchartNodeSpacingTooltip:"नोड्स के बीच क्षैतिज दूरी",flowchartRankSpacingLabel:"रैंक रिक्ति",flowchartRankSpacingTooltip:"परतों के बीच लंबवत दूरी",flowchartCurveTypeLabel:"वक्र प्रकार",flowchartCurveTypeTooltip:"कनेक्शन के लिए वक्र का प्रकार",flowchartCurveOptions:{basis:"चिकना (आधार)",linear:"रेखीय",cardinal:"कार्डिनल"},sequenceCardTitle:"अनुक्रम आरेख सेटिंग्स",sequenceActorMarginLabel:"अभिनेता मार्जिन",sequenceActorMarginTooltip:"अभिनेताओं के बीच अंतर",sequenceMessageMarginLabel:"संदेश मार्जिन",sequenceMessageMarginTooltip:"संदेशों के बीच अंतर",sequenceActorWidthLabel:"अभिनेता चौड़ाई",sequenceActorWidthTooltip:"प्रत्येक अभिनेता बॉक्स की चौड़ाई",sequenceActorHeightLabel:"अभिनेता की ऊंचाई",sequenceActorHeightTooltip:"प्रत्येक अभिनेता बॉक्स की ऊंचाई",ganttCardTitle:"गैंट चार्ट सेटिंग्स",ganttBarHeightLabel:"बार की ऊंचाई",ganttBarHeightTooltip:"प्रत्येक कार्य पट्टी की ऊंचाई",ganttTopPaddingLabel:"शीर्ष गद्दी",ganttTopPaddingTooltip:"चार्ट के शीर्ष पर स्थान",resetToDefaults:"डिफ़ॉल्ट पर पुनः सेट करें",previewDescription:"परिवर्तन तुरंत लागू होते हैं. अपनी सेटिंग्स को क्रियान्वित होते देखने के लिए एक आरेख बनाने या देखने का प्रयास करें।",themeCardTitle:"विषय",switchAuto:"ऑटो",switchFixed:"तय",previewTitle:"पूर्व दर्शन"},modelLimits:{title:"टोकन बजट मॉडल सीमाएँ",descriptionPrefix:"संदर्भ बजटिंग के लिए प्रति-मॉडल टोकन सीमाएं कॉन्फ़िगर करें। ये सेटिंग्स बांस में विश्व स्तर पर कायम हैं",descriptionSuffix:"और बैकएंड रिज़ॉल्वर द्वारा उपयोग किया जाता है।",defaultsTitle:"मॉडल डिफ़ॉल्ट",defaultsDescription:"GPT-5 / GPT-4 / जेमिनी / किमी / GLM डिफ़ॉल्ट के साथ प्रीलोडेड। आप आवश्यकतानुसार संपादन जारी रख सकते हैं।",migratedFromLocalStorage:"स्थानीय भंडारण से वैश्विक कॉन्फिगरेशन में स्थानांतरित मॉडल सीमाएँ।",loadFailed:"मॉडल सीमा सेटिंग लोड करने में विफल",saveSuccess:"मॉडल सीमाएँ वैश्विक कॉन्फ़िगरेशन में सहेजी गईं",saveFailed:"मॉडल सीमा सेटिंग सहेजने में विफल",resetSuccess:"मॉडल सीमाएँ उत्पाद डिफ़ॉल्ट पर रीसेट हो गईं",resetFailed:"मॉडल सीमा सेटिंग रीसेट करने में विफल",defaults:{gpt54:"तर्क की गहराई के साथ शीर्ष स्तरीय क्षमता।",gpt53Codex:"कोड रीफैक्टरिंग वर्कफ़्लोज़ के लिए अनुकूलित।",gpt52Pro:"जटिल कार्यों के लिए मजबूत तार्किक स्थिरता।",gpt5Mini:"तेज़ और लागत प्रभावी सामान्य प्रयोजन विकल्प।",gpt41:"1M विंडो वाला क्लासिक बड़े-संदर्भ वाला मॉडल।",gpt4o:"कम विलंबता, रोजमर्रा की चैट के लिए उपयुक्त।",gemini25Pro:"मजबूत मल्टीमॉडल विश्लेषण क्षमताएं।",kimiK25:"दीर्घ-रूप वाली चीनी सामग्री के लिए पसंदीदा।",kimiCoding:"कोडिंग-केंद्रित परिदृश्यों के लिए ट्यून किया गया।",glm5:"एक-शॉट बड़े-दस्तावेज़ निर्माण के लिए अच्छा है।"},columns:{contextWindow:"प्रसंग विंडो",maxOutput:"अधिकतम आउटपुट",model:"नमूना",notes:"टिप्पणियाँ",actions:"कार्रवाई"},placeholders:{vendor:"ओपनएआई/गूगल/मूनशॉट",model:"जैसे जीपीटी-5.4-सोच",optional:"वैकल्पिक"},actions:{addRow:"लाइन जोड़ो",resetToDefaults:"डिफ़ॉल्ट पर पुनः सेट करें",remove:"निकालना",save:"बचाना",reload:"पुनः लोड करें"},validation:{atLeastOneRow:"कृपया कम से कम एक मॉडल सीमा पंक्ति रखें।",modelPatternEmpty:"मॉडल पैटर्न खाली नहीं हो सकता.",duplicateModelPattern:"डुप्लिकेट मॉडल पैटर्न: {{pattern}}",contextWindowMin:"{{pattern}} के लिए संदर्भ विंडो कम से कम 1000 होनी चाहिए।",maxOutputMin:"{{pattern}} के लिए अधिकतम आउटपुट कम से कम 1 होना चाहिए।",maxOutputExceedsContext:"{{pattern}} के लिए अधिकतम आउटपुट संदर्भ विंडो से कम या उसके बराबर होना चाहिए।",safetyMarginNegative:"{{pattern}} के लिए सुरक्षा मार्जिन नकारात्मक नहीं हो सकता।",safetyMarginTooLarge:"{{pattern}} के लिए सुरक्षा मार्जिन संदर्भ विंडो से छोटा होना चाहिए।"}},systemPromptManager:{title:"सिस्टम प्रॉम्प्ट प्रबंधन",addButton:"संकेत जोड़ें",defaultPromptLocked:"डिफ़ॉल्ट सिस्टम संकेत लॉक हैं और संपादित नहीं किए जा सकते।",updateSuccess:"संकेत सफलतापूर्वक अद्यतन किया गया",addSuccess:"संकेत सफलतापूर्वक जोड़ा गया",saveError:"संकेत सहेजने में विफल. कृपया पुन: प्रयास करें।",deleteSuccess:"संकेत सफलतापूर्वक हटा दिया गया",deleteError:"संकेत हटाने में विफल. कृपया पुन: प्रयास करें।",deleteConfirm:"क्या आप निश्चित रूप से इस संकेत को हटाना चाहते हैं?",defaultTag:"डिफ़ॉल्ट (लॉक)",editTitle:"सिस्टम प्रॉम्प्ट संपादित करें",addTitle:"नया सिस्टम प्रॉम्प्ट जोड़ें",nameLabel:"शीघ्र नाम",nameRequired:"कृपया प्रॉम्प्ट का नाम इनपुट करें!",descriptionLabel:"शीघ्र विवरण",descriptionRequired:"कृपया प्रॉम्प्ट का विवरण दर्ज करें!",contentLabel:"शीघ्र सामग्री",contentRequired:"कृपया प्रॉम्प्ट की सामग्री इनपुट करें!"},envVars:{title:"पर्यावरण चर",description:"वैरिएबल को बैश टूल प्रक्रियाओं में इंजेक्ट किया जाता है। गुप्त चर आराम से एन्क्रिप्ट किए गए हैं।",fetchError:"पर्यावरण चर लोड करने में विफल",created:"वेरिएबल बनाया गया",updated:"वेरिएबल अद्यतन किया गया",saveError:"वेरिएबल सहेजने में विफल",deleted:"वेरिएबल हटा दिया गया",deleteError:"वेरिएबल हटाने में विफल",addButton:"वेरिएबल जोड़ें",noVars:"कोई पर्यावरण चर कॉन्फ़िगर नहीं किया गया",addTitle:"पर्यावरण चर जोड़ें",editTitle:"वेरिएबल संपादित करें",nameRequired:"वेरिएबल नाम आवश्यक है",nameInvalid:"एक अक्षर या अंडरस्कोर से शुरू होना चाहिए, उसके बाद अक्षर, अंक या अंडरस्कोर होना चाहिए",valueRequired:"नए वेरिएबल के लिए मान आवश्यक है",valueEditHint:"मौजूदा मान बनाए रखने के लिए खाली छोड़ें",valuePlaceholder:"मान दर्ज करें",valuePlaceholderEdit:"नया मान दर्ज करें या खाली छोड़ दें",secretHint:"गुप्त चर डिस्क पर एन्क्रिप्ट किए गए हैं और यूआई में छिपाए गए हैं",descriptionPlaceholder:"वैकल्पिक विवरण",deleteConfirm:"यह वेरिएबल हटाएं?",notSet:"(सेट नहीं)",empty:"(खाली)",save:"बचाना",cancel:"रद्द करना",name:"नाम",value:"कीमत",secret:"गुप्त",descriptionField:"विवरण",type:"प्रकार",plain:"मैदान",descriptionCol:"विवरण",actions:"कार्रवाई",yes:"हाँ",no:"नहीं"},promptsTab:{title:"सिस्टम प्रॉम्प्ट एन्हांसमेंट",mermaidEnhancement:"जलपरी संवर्धन",taskListRules:"साझा कार्य नियम",copilotConclusionWithOptionsBeforeFinish:"समाप्त होने से पहले सह-पायलट ने_उपयोगकर्ता से पूछा",enhancementPlaceholder:"प्रत्येक सिस्टम प्रॉम्प्ट में जोड़ने के लिए वैश्विक एन्हांसमेंट टेक्स्ट जोड़ें।",saveEnhancement:"संवर्द्धन सहेजें",description:"प्रत्येक अनुरोध भेजे जाने से पहले इस पाठ को पहले जोड़ा जाता है, उसके बाद सक्षम सिस्टम संवर्द्धन जोड़ा जाता है।",switchOn:"पर",switchOff:"बंद"},hooksTab:{title:"छवि हुक",enableImagePreflight:"छवि प्रीफ़्लाइट हुक सक्षम करें",description:"प्लेसहोल्डर मोड छवियों को पाठ सारांश में फिर से लिखता है (यह उन टूल को तोड़ सकता है जो वास्तविक छवि डेटा की अपेक्षा करते हैं)। OCR वर्तमान में केवल विंडोज़ है।",loadFailed:"हुक सेटिंग्स लोड करने में विफल",updateFailed:"हुक अद्यतन करने में विफल",modeUpdateFailed:"हुक मोड अपडेट करने में विफल",enabled:"छवि हुक सक्षम",disabled:"छवि हुक अक्षम किए गए",modeUpdated:"इमेज हुक मोड इस पर सेट है: {{mode}}",mode:{ocr:"ओसीआर (विंडोज़)",vision:"विजन (एलएलएम)",placeholder:"प्लेसहोल्डर",error:"गलती"},modeLabel:"तरीका"},schedulesTab:{loadFailed:"शेड्यूल लोड करने में विफल",loadSessionsFailed:"शेड्यूल सत्र लोड करने में विफल",createFailed:"शेड्यूल बनाने में विफल",updateFailed:"शेड्यूल अपडेट करने में विफल",deleteFailed:"शेड्यूल हटाने में विफल",runNowFailed:"शेड्यूल चलाने में विफल",taskMessageRequired:"ऑटो एक्ज़ीक्यूट सक्षम होने पर कार्य संदेश आवश्यक है",created:"शेड्यूल बनाया गया",updated:"शेड्यूल अपडेट किया गया",deleted:"हटाया गया शेड्यूल",enqueuedRun:"कतारबद्ध भागो",optional:"(वैकल्पिक)",defaultName:"मेरी अनुसूची",createTitle:"शेड्यूल बनाएं",scheduleSessionsTitle:"सत्र अनुसूची",noSessionsYet:"अभी तक कोई सत्र नहीं.",editTitle:"शेड्यूल संपादित करें",columns:{autoExecute:"स्वतः निष्पादित",intervalSeconds:"अंतराल",nextRun:"अगला रन",lastRun:"आखरी बार",name:"नाम",model:"नमूना",enabled:"सक्रिय",actions:"कार्रवाई"},form:{intervalSeconds:"अंतराल सेकंड",taskMessage:"कार्य संदेश",taskMessagePlaceholder:"(वैकल्पिक) चलाने के लिए एक कार्य",modelPlaceholder:"(वैकल्पिक) उदा. जीपीटी-4ओ-मिनी",modelRequiredIfAuto:"यदि स्वतः निष्पादित हो तो आवश्यक है",autoExecute:"स्वतः निष्पादित",systemPrompt:"सिस्टम प्रॉम्प्ट",workspacePath:"कार्यक्षेत्र पथ",enhancePrompt:"प्रॉम्प्ट बढ़ाएँ",name:"नाम",enabled:"सक्रिय",model:"नमूना"},validation:{nameRequired:"नाम आवश्यक है",intervalRequired:"अंतराल आवश्यक है"},actions:{runNow:"अब दौड़े",create:"बनाएं",refresh:"ताज़ा करना",edit:"संपादन करना",sessions:"सत्र",delete:"मिटाना",open:"खुला",save:"बचाना"},yes:"हाँ",no:"नहीं",listTitle:"अनुसूचियों"},sessionsTab:{currentSessionTitle:"वर्तमान सत्र",clearMessages:"संदेश साफ़ करें",clearMessagesTitle:"सत्र संदेश साफ़ करें",clearMessagesContent:"यह वर्तमान सत्र के लिए संदेश/अनुलग्नक साफ़ करता है लेकिन सत्र प्रविष्टि रखता है।",sessionCleared:"सत्र साफ़ हो गया",noActiveSession:"कोई सक्रिय सत्र नहीं.",bulkCleanupTitle:"थोक सफ़ाई",keepPinned:"पिन करके रखें",deleteAll:"सभी हटा दो",deleteAllTitle:"सभी सत्र हटाएँ",deleteAllKeepPinned:"पिन किए गए को छोड़कर सभी सत्र हटा देता है।",deleteAllIncludePinned:"पिन किए गए सहित सभी सत्र हटा देता है।",deleteEmpty:"रिक्त हटाएँ",deleteEmptyTitle:"खाली सत्र हटाएँ",deleteEmptyKeepPinned:"पिन किए गए को छोड़कर खाली सत्र हटा देता है।",deleteEmptyIncludePinned:"पिन किए गए सहित खाली सत्र हटा देता है।",deleteChildren:"बच्चों को हटाएँ",deleteChildrenTitle:"बाल सत्र हटाएँ",deleteChildrenKeepPinned:"पिन किए गए को छोड़कर सभी चाइल्ड सत्र हटा देता है।",deleteChildrenIncludePinned:"पिन किए गए सहित सभी चाइल्ड सत्र हटा देता है।",cleanupComplete:"सफ़ाई पूर्ण",devResetTitle:"विकास रीसेट",devResetDescription:"सत्र संग्रहण के लिए ग्रीनफ़ील्ड रीसेट (सत्र हटाता है/ और session.json रीसेट करता है)।",devResetAction:"देव रीसेट सत्र",devResetConfirmTitle:"सत्र संग्रहण रीसेट करें (डेव)",devResetConfirmContent:"यह सभी सत्रों (पिन किए गए/चाइल्ड सहित) को हटा देता है और सत्र सूचकांक को रीसेट कर देता है। रीफ्रेश के बाद एक नया खाली सत्र बनाया जाएगा।",devResetDone:"सत्र संग्रहण रीसेट",id:"पहचान",kind:"दयालु",clear:"स्पष्ट",cancel:"रद्द करना",delete:"मिटाना",reset:"रीसेट करें"},workflowsTab:{description:"वर्कफ़्लो को `~/.bamboo/workflows` में मार्कडाउन फ़ाइलों के रूप में संग्रहीत किया जाता है। चैट में वर्कफ़्लो सम्मिलित करने के लिए `/name` का उपयोग करें।",loadFailed:"वर्कफ़्लो लोड करने में विफल",loadContentFailed:"वर्कफ़्लो सामग्री लोड करने में विफल",invalidName:"अमान्य वर्कफ़्लो नाम",nameAlreadyExists:"इस नाम का एक वर्कफ़्लो पहले से मौजूद है",saved:"वर्कफ़्लो सहेजा गया",saveFailed:"वर्कफ़्लो सहेजने में विफल",deleted:"वर्कफ़्लो हटा दिया गया",deleteFailed:"वर्कफ़्लो हटाने में विफल",newWorkflow:"नया वर्कफ़्लो",empty:"कोई वर्कफ़्लो नहीं मिला",namePlaceholder:"वर्कफ़्लो नाम",contentPlaceholder:`# वर्कफ़्लो शीर्षक
|
|
3
|
-
|
|
4
|
-
यहां वर्कफ़्लो चरणों का वर्णन करें.`,title:"वर्कफ़्लो",refresh:"ताज़ा करना",save:"बचाना"},providerTab:{title:"एलएलएम प्रदाता कॉन्फ़िगरेशन",description:'अपने पसंदीदा एलएलएम प्रदाता को कॉन्फ़िगर करें। जब आप "कॉन्फ़िगरेशन सहेजें और लागू करें" पर क्लिक करेंगे तो कॉन्फ़िगरेशन सहेजा और लागू किया जाएगा।',currentProvider:"वर्तमान प्रदाता",activeProvider:"सक्रिय एलएलएम प्रदाता",selectProviderRequired:"कृपया एक प्रदाता चुनें",saveAndApply:"कॉन्फ़िगरेशन सहेजें और लागू करें",loadConfigFailed:"प्रदाता कॉन्फ़िगरेशन लोड करने में विफल",checkStatusFailed:"स्थिति जाँचने में विफल",startCopilotAuthFailed:"कोपायलट प्रमाणीकरण प्रारंभ करने में विफल",copilotAuthSuccess:"सहपायलट प्रमाणीकरण सफल!",providerReloaded:"प्रदाता ने नए प्रमाणीकरण के साथ पुनः लोड किया।",completeAuthFailed:"प्रमाणीकरण पूर्ण होने में विफल रहा. कृपया पुन: प्रयास करें।",userCodeCopied:"उपयोगकर्ता कोड क्लिपबोर्ड पर कॉपी किया गया!",copyCodeFailedPrefix:"कोड कॉपी करने में विफल. कृपया मैन्युअल रूप से कॉपी करें:",logoutSuccess:"कोपायलट से लॉग आउट किया गया",logoutFailed:"कोपायलट से लॉगआउट करने में विफल",unknownError:"अज्ञात त्रुटि",invalidConfig:"अमान्य कॉन्फ़िगरेशन",invalidConfigPrefix:"अमान्य कॉन्फ़िगरेशन",fetchModelsCopilotFailed:"मॉडल लाने में विफल. कृपया कोपायलट को प्रमाणित करें और पुनः प्रयास करें।",fetchModelsFailed:"मॉडल लाने में विफल. कृपया अपनी एपीआई कुंजी और आधार यूआरएल जांचें।",noModelsReturned:"कोई मॉडल वापस नहीं आया. पहले कोपायलट को प्रमाणित करें, फिर मॉडल लाएँ।",foundModels:"{{count}} उपलब्ध मॉडल मिले",fetchModelsErrorPrefix:"मॉडल लाने में विफल",saveConfigSuccess:"कॉन्फ़िगरेशन सफलतापूर्वक सहेजा गया",saveConfigFailed:"कॉन्फ़िगरेशन सहेजने में विफल",saveConfigErrorPrefix:"कॉन्फ़िगरेशन सहेजने में विफल",applyConfigSuccess:"कॉन्फ़िगरेशन सफलतापूर्वक लागू किया गया. नई बातचीत के लिए परिवर्तन प्रभावी होंगे.",applyConfigFailed:"कॉन्फ़िगरेशन लागू करने में विफल",applyConfigErrorPrefix:"कॉन्फ़िगरेशन लागू करने में विफल",modelUpdated:"मॉडल सफलतापूर्वक अपडेट किया गया",updateModelFailed:"मॉडल अद्यतन करने में विफल",updateModelErrorPrefix:"मॉडल अद्यतन करने में विफल",fetchingModels:"मॉडल लाये जा रहे हैं...",refreshModelsFrom:"{{source}} से उपलब्ध मॉडल ताज़ा करें",fetchModelsFrom:"{{source}} से उपलब्ध मॉडल प्राप्त करें",saveModelChangeFailed:"मॉडल परिवर्तन सहेजने में विफल",fetchModelsFailedShort:"मॉडल लाने में विफल",openaiConfigTitle:"ओपनएआई कॉन्फ़िगरेशन",openaiConfigDescription:"GPT मॉडल का उपयोग करने के लिए अपनी OpenAI API कुंजी दर्ज करें। आप वैकल्पिक रूप से प्रॉक्सी सर्वर के लिए एक कस्टम बेस यूआरएल निर्दिष्ट कर सकते हैं।",openaiApiKey:"ओपनएआई एपीआई कुंजी",openaiApiKeyRequired:"कृपया अपनी OpenAI API कुंजी दर्ज करें",baseUrlOptional:"आधार यूआरएल (वैकल्पिक)",openaiBaseUrlHelp:"डिफ़ॉल्ट OpenAI API एंडपॉइंट का उपयोग करने के लिए खाली छोड़ दें। यदि आवश्यक हो तो पूर्ण पथ शामिल करें (उदाहरण के लिए, /v1)।",defaultModel:"डिफ़ॉल्ट मॉडल",fastModel:"तेज़ मॉडल (वैकल्पिक)",fastModelHelp:"शीर्षक निर्माण, जलपरी निर्धारण और सारांशीकरण जैसे हल्के कार्यों के लिए सस्ता/तेज़ मॉडल। सेट न होने पर डिफ़ॉल्ट मॉडल का उपयोग करता है।",visionModel:"विज़न मॉडल (वैकल्पिक)",visionModelHelp:"छवि समझ के लिए दृष्टि-सक्षम मॉडल। जबhooks.image_fallback.mode को 'विज़न' पर सेट किया जाता है, तो यह मॉडल छवियों को टेक्स्ट के रूप में वर्णित करता है ताकि केवल टेक्स्ट वाले मॉडल उन्हें समझ सकें। सेट न होने पर डिफ़ॉल्ट मॉडल का उपयोग करता है।",sameAsDefault:"डिफ़ॉल्ट मॉडल के समान",selectModelRequired:"कृपया एक मॉडल चुनें",selectModel:"एक मॉडल चुनें",responsesOnlyModelsOptional:"केवल प्रतिक्रियाएँ मॉडल (वैकल्पिक)",responsesOnlyHelp1:"कुछ मॉडल केवल OpenAI रिस्पॉन्स API (चैट/पूर्णता नहीं) का समर्थन करते हैं। बैम्बू को अपस्ट्रीम का उपयोग करने के लिए मजबूर करने के लिए यहां मॉडल आईडी जोड़ें",responsesOnlyHelp2:"सटीक मिलान (उदा. gpt-5.3-कोडेक्स) और अनुगामी * (उदा. gpt-5*) के साथ उपसर्ग मिलान का समर्थन करता है।",anthropicConfigTitle:"मानवशास्त्रीय विन्यास",anthropicConfigDescription:"क्लाउड मॉडल का उपयोग करने के लिए अपनी एंथ्रोपिक एपीआई कुंजी दर्ज करें।",anthropicApiKey:"एंथ्रोपिक एपीआई कुंजी",anthropicApiKeyRequired:"कृपया अपनी एंथ्रोपिक एपीआई कुंजी दर्ज करें",anthropicBaseUrlHelp:"डिफ़ॉल्ट एंथ्रोपिक एपीआई एंडपॉइंट का उपयोग करने के लिए खाली छोड़ दें। यदि आवश्यक हो तो पूर्ण पथ शामिल करें (उदाहरण के लिए, /v1)।",maxTokensOptional:"अधिकतम टोकन (वैकल्पिक)",maxTokensHelp:"उत्पन्न करने के लिए टोकन की अधिकतम संख्या",geminiConfigTitle:"गूगल जेमिनी कॉन्फ़िगरेशन",geminiConfigDescription:"जेमिनी मॉडल का उपयोग करने के लिए अपनी Google AI API कुंजी दर्ज करें।",geminiApiKey:"जेमिनी एपीआई कुंजी",geminiApiKeyRequired:"कृपया अपनी जेमिनी एपीआई कुंजी दर्ज करें",geminiBaseUrlHelp:"डिफ़ॉल्ट Google AI API एंडपॉइंट का उपयोग करने के लिए खाली छोड़ दें। यदि आवश्यक हो तो पूर्ण पथ शामिल करें।",copilotConfigTitle:"GitHub सहपायलट कॉन्फ़िगरेशन",copilotConfigDescription:"GitHub Copilot OAuth प्रमाणीकरण का उपयोग करता है। किसी API कुंजी की आवश्यकता नहीं है. सुनिश्चित करें कि आपके पास सक्रिय GitHub Copilot सदस्यता है।",authStatusTitle:"प्रमाणीकरण स्थिति",notAuthenticated:"प्रमाणित नहीं",logoutCopilot:"कोपायलट से लॉगआउट करें",authenticateCopilot:"सहपायलट को प्रमाणित करें",refreshStatus:"ताज़ा स्थिति",headlessAuth:"नेतृत्वहीन प्रमाणीकरण",headlessAuthHelp:"ब्राउज़र को स्वचालित रूप से खोलने के बजाय कंसोल में लॉगिन यूआरएल प्रिंट करें",noModelsLoaded:'अभी तक कोई मॉडल लोड नहीं किया गया. "बैकएंड से उपलब्ध मॉडल प्राप्त करें" पर क्लिक करें।',authFirstThenFetch:"पहले कोपायलट को प्रमाणित करें, फिर मॉडल लाएँ।",copilotUsageTitle:"GitHub Copilot का उपयोग करने के लिए:",copilotUsageStep1:"सुनिश्चित करें कि आपके पास सक्रिय GitHub Copilot सदस्यता है",copilotUsageStep2:'डिवाइस कोड प्रवाह प्रारंभ करने के लिए "प्रमाणीकृत सहपायलट" पर क्लिक करें',copilotUsageStep3:"प्रमाणीकरण पूरा करने के लिए अपने टर्मिनल में दिए गए निर्देशों का पालन करें",copilotAuthModalTitle:"सहपायलट प्रमाणीकरण",completedAuthorization:"मैंने प्राधिकरण पूरा कर लिया है",browserOpened:"ब्राउज़र अपने आप खुल गया",authStep1:"आपके ब्राउज़र में एक GitHub पेज खुल जाना चाहिए",authStep2:"नीचे दिए गए कोड को कॉपी करें और GitHub पेज पर पेस्ट करें",authStep3:'अधिकृत करने के लिए GitHub पर "जारी रखें" पर क्लिक करें',visitUrl:"1. इस यूआरएल पर जाएँ:",enterCode:"2. यह कोड दर्ज करें:",copied:"नकल की गई!",copyCode:"कोड कॉपी करें",afterContinueHint:'GitHub पर "जारी रखें" पर क्लिक करने के बाद, नीचे "मैंने प्राधिकरण पूरा कर लिया है" बटन पर क्लिक करें।',retry:"पुन: प्रयास करें",authenticated:"प्रमाणीकृत",cancel:"रद्द करना",providerNames:{openai:"ओपनएआई",anthropic:"anthropic",gemini:"मिथुन",copilot:"सह पायलट"}},mcpTab:{statusGuideTitle:"स्थिति मार्गदर्शिका:",statusHelp:{connecting:"सर्वर प्रारंभ हो रहा है या पुनः कनेक्ट हो रहा है",ready:"सर्वर जुड़ा हुआ है और उपकरण सामान्य रूप से परोस रहा है",degraded:"सर्वर आंशिक रूप से उपलब्ध है; कुछ उपकरण विफल हो सकते हैं",stopped:"सर्वर नहीं चल रहा है",error:"सर्वर प्रारंभ करने में विफल रहा या रनटाइम त्रुटियों का सामना करना पड़ा"},statusLastError:"अंतिम त्रुटि: {{error}}",serverDeleted:"एमसीपी सर्वर हटा दिया गया",deleteServerFailed:"MCP सर्वर को हटाने में विफल",connectedTo:"{{name}} से कनेक्टेड",connectServerFailed:"MCP सर्वर कनेक्ट करने में विफल",disconnected:"डिस्कनेक्ट किया गया {{name}}",disconnectServerFailed:"एमसीपी सर्वर को डिस्कनेक्ट करने में विफल",toolsRefreshedFor:"{{name}} के लिए उपकरण ताज़ा किए गए",refreshToolsFailed:"उपकरण ताज़ा करने में विफल",statusRefreshed:"एमसीपी स्थिति ताज़ा की गई",refreshStatusFailed:"MCP स्थिति ताज़ा करने में विफल",noServerForEditing:"संपादन के लिए कोई सर्वर चयनित नहीं",savedServer:"सहेजा गया{{name}}",addedServer:"जोड़ा गया{{name}}",saveServerFailed:"MCP सर्वर सहेजने में विफल",copiedConfig:"एमसीपी कॉन्फिगरेशन को क्लिपबोर्ड पर कॉपी किया गया",clipboardUnavailable:"क्लिपबोर्ड उपलब्ध नहीं है. निर्यात को मोडल में दिखाया गया है।",invalidJsonPrefix:"अमान्य JSON",unknownError:"अज्ञात त्रुटि",jsonMustBeObject:"JSON एक ऑब्जेक्ट होना चाहिए",missingMcpServers:`'mcpServers' गुम है। पूर्ण क्लाउड डेस्कटॉप-शैली कॉन्फिग भाग चिपकाएँ: { "mcpServers": {... } }`,importSummary:"आयातित {{count}} सर्वर ({{added}} जोड़ा गया, {{updated}} अद्यतन किया गया, {{removed}} हटाया गया)। {{failed}} प्रारंभ करने में विफल रहा.",importStartFailures:"कुछ सर्वर प्रारंभ नहीं हुए. कॉन्फ़िगरेशन सहेजा गया है; त्रुटियाँ देखने के लिए सर्वर सूची खोलें।",importFailed:"MCP सर्वर आयात करने में विफल",overviewTitle:"एमसीपी सिंहावलोकन",overviewDescription:"बाहरी एमसीपी सर्वर कॉन्फ़िगर करें और पंजीकृत टूल उपनामों का निरीक्षण करें।",totalServers:"कुल सर्वर: {{count}}",totalTools:"कुल उपकरण: {{count}}",serversTitle:"एमसीपी सर्वर",addServer:"सर्वर जोड़ें",refreshAll:"सभी को रीफ्रेश करें",importModalTitle:"एमसीपी सर्वर आयात करें",importHint:"क्लाउड डेस्कटॉप-शैली कॉन्फिग भाग चिपकाएँ। उदाहरण:",importModeMerge:"मर्ज (अप्सर्ट)",importModeReplace:"बदलें (अन्य हटाएं)",replaceWarning:"रिप्लेसमेंट मोड मौजूदा एमसीपी सर्वर को हटा देगा जो आयातित एमसीपी सर्वर में मौजूद नहीं हैं।",status:{connecting:"कनेक्ट",ready:"तैयार",degraded:"अपमानित",stopped:"रुक गया",error:"गलती"},export:"निर्यात",import:"आयात"},mcpServerTable:{columns:{transportType:"परिवहन प्रकार",toolCount:"उपकरण गणना",name:"नाम",status:"स्थिति",actions:"कार्रवाई"},deleteTitle:"MCP सर्वर हटाएँ",deleteDescription:'सर्वर "{{name}}" हटाएं?',empty:"कोई MCP सर्वर कॉन्फ़िगर नहीं किया गया",actions:{refreshTools:"ताज़ा उपकरण",edit:"संपादन करना",delete:"मिटाना",disconnect:"डिस्कनेक्ट",connect:"जोड़ना"},transportOptions:{sse:"एसएसई",stdio:"स्टूडियो"}},mcpToolList:{title:"एमसीपी उपकरण",selectServerHint:"इसके एमसीपी टूल्स का निरीक्षण करने के लिए एक सर्वर का चयन करें",empty:"इस सर्वर के लिए कोई उपकरण नहीं मिला",noDescription:"कोई विवरण उपलब्ध नहीं",aliasMapping:"उपनाम मानचित्रण",parametersSchema:"पैरामीटर स्कीमा"},mcpServerForm:{jsonMustBeObject:"JSON एक ऑब्जेक्ट होना चाहिए",detectedBulkConfig:"एमसीपीसर्वर (बल्क कॉन्फ़िगरेशन) का पता लगाया गया। थोक आयात के लिए एमसीपी टैब आयात बटन का उपयोग करें, या यहां एकल सर्वर कॉन्फ़िगरेशन पेस्ट करें।",missingIdField:"गुम या अमान्य आईडी फ़ील्ड",missingTransportField:"गुम या अमान्य परिवहन फ़ील्ड",missingTransportInfo:"परिवहन संबंधी जानकारी अनुपलब्ध. या तो ट्रांसपोर्ट (बोधि प्रारूप) या कमांड/यूआरएल (मुख्यधारा एमसीपी प्रारूप) अपेक्षित है।",invalidJson:"अमान्य JSON: {{message}}",unknownError:"अज्ञात त्रुटि",editTitle:"एमसीपी सर्वर संपादित करें",addTitle:"एमसीपी सर्वर जोड़ें",jsonError:"JSON त्रुटि",serverId:"सर्वर आईडी",serverIdRequired:"सर्वर आईडी आवश्यक है",serverIdPatternError:"केवल अक्षरों, संख्याओं, अंडरस्कोर और हाइफ़न का उपयोग करें",displayName:"प्रदर्शित होने वाला नाम",enabledHelp:"अक्षम सर्वर कॉन्फ़िगरेशन में बने रहेंगे लेकिन प्रारंभ नहीं होंगे।",transportType:"परिवहन प्रकार",transportTypeRequired:"परिवहन प्रकार आवश्यक है",commandRequired:"आदेश आवश्यक है",argumentsPlaceholder:"एक तर्क जोड़ें और Enter दबाएँ",envVars:"पर्यावरण चर",addEnv:"पर्यावरण जोड़ें",keyRequired:"कुंजी आवश्यक है",sseUrl:"एसएसई यूआरएल",sseUrlRequired:"एसएसई यूआरएल आवश्यक है",validUrlRequired:"क्रुपया मान्य यूआरएल दर्ज करें",addHeader:"शीर्षलेख जोड़ें",headerNameRequired:"शीर्षलेख नाम आवश्यक है",save:"बचाना",modeForm:"रूप",modeJson:"JSON",enabled:"सक्रिय",transportOptions:{stdio:"स्टूडियो",sse:"एसएसई"},command:"आज्ञा",arguments:"बहस",headers:"हेडर"},metricsCards:{totalSessions:"कुल सत्र",chatTokens:"चैट टोकन",totalToolCalls:"कुल टूल कॉल",avgSessionDuration:"औसत सत्र अवधि"},forwardMetricsCards:{totalForwardRequests:"कुल अग्रेषित अनुरोध",successRate:"सफलता दर",forwardTokens:"टोकन अग्रेषित करें",avgResponseTime:"औसत प्रतिक्रिया समय"},unifiedMetricsCards:{totalRequests:"कुल अनुरोध",totalTokens:"कुल टोकन",successRate:"सफलता दर",avgResponseTime:"औसत प्रतिक्रिया समय",chatSessions:"चैट सत्र",chatTokens:"चैट टोकन",toolCalls:"टूल कॉल",avgSessionDuration:"औसत सत्र अवधि",forwardRequests:"अग्रेषित अनुरोध",forwardTokens:"टोकन अग्रेषित करें",successful:"सफल",failed:"असफल"},metricsTable:{session:{columns:{toolCalls:"टूल कॉल",session:"सत्र",model:"नमूना",status:"स्थिति",started:"शुरू कर दिया",duration:"अवधि",tokens:"टोकन",messages:"संदेशों",action:"कार्रवाई"},view:"देखना"},forward:{totalRequests:"{{total}} अनुरोध",empty:"इस श्रेणी के लिए कोई अग्रेषित अनुरोध दर्ज नहीं किया गया",columns:{id:"पहचान",endpoint:"endpoint",model:"नमूना",type:"प्रकार",status:"स्थिति",tokens:"टोकन",duration:"अवधि",started:"शुरू कर दिया",error:"गलती"},typeStream:"धारा",typeSync:"साथ-साथ करना"}},metricsDashboard:{roundColumns:{toolCalls:"टूल कॉल",round:"गोल",status:"स्थिति",duration:"अवधि",tokens:"टोकन"},compactStats:{combinedTokens:"संयुक्त टोकन",chatTokens:"चैट टोकन",forwardTokens:"टोकन अग्रेषित करें",avgTokensPerSession:"औसत टोकन/सत्र",estimatedTimeSaved:"ईएसटी। समय की बचत हुई",estimatedEfficiencyLift:"ईएसटी। दक्षता लिफ्ट",estimatedSpeedMultiplier:"ईएसटी। गति गुणक",estimatedSavedWorkdays:"ईएसटी। सहेजे गए कार्यदिवस",avgRoundsPerSession:"औसत राउंड/सत्र",toolCallsPerSession:"टूल कॉल/सत्र",activeSessionRate:"सक्रिय सत्र दर",avgTokensPerForward:"औसत टोकन/फॉरवर्ड",forwardErrorRate:"अग्रेषित त्रुटि दर",streamingRatio:"स्ट्रीमिंग अनुपात",p95ForwardLatency:"P95 फॉरवर्ड विलंबता",modelCoverage:"मॉडल कवरेज",endpointCoverage:"समापन बिंदु कवरेज"},startDate:"आरंभ करने की तिथि",endDate:"अंतिम तिथि",daysOption:"{{value}} दिन",derivedMetricsTitle:"व्युत्पन्न मेट्रिक्स (संक्षिप्त)",derivedMetricsSubtitle:"अतिरिक्त पृष्ठ लंबाई के बिना अधिक आयाम",efficiencyHint:"दक्षता अनुमान रूढ़िवादी मान्यताओं का उपयोग करते हैं: {{manualTpm}} मैनुअल टोकन/मिनट + {{manualToolMinutes}} मिनट/टूल बनाम {{assistedTpm}} सहायता प्राप्त टोकन/मिनट + {{assistedToolMinutes}} मिनट/टूल, फिर {{realization}}% प्राप्ति और कैप्स ({{maxLift}}% / {{maxMultiplier}}x) लागू करें।",toolUsageTitle:"उपकरण उपयोग आवृत्ति",noToolUsage:"इस श्रेणी के लिए कोई टूल कॉल रिकॉर्ड नहीं की गई।",activityHeatmapTitle:"दैनिक गतिविधि हीटमैप",noActivity:"इस श्रेणी के लिए कोई गतिविधि उपलब्ध नहीं है.",sessionsCount:"{{count}} सत्र",tokensAmount:"{{value}} टोकन",sessionsTabLabel:"सत्र ({{count}})",chatSessionsLabel:"चैट सत्र ({{count}})",sessionsHint:"पूरे दौर के विवरण के लिए एक सत्र पर क्लिक करें",forwardTabLabel:"अग्रेषित अनुरोध ({{count}})",detailedMetricsTitle:"विस्तृत मेट्रिक्स",sessionMetricsTitle:"सत्र मेट्रिक्स",loadingSessionDetails:"सत्र विवरण लोड हो रहा है...",sessionDetail:{sessionId:"सत्र आईडी",totalTokens:"कुल टोकन",toolCalls:"टूल कॉल",model:"नमूना",status:"स्थिति",duration:"अवधि",messages:"संदेशों"},noDetail:"कोई विवरण उपलब्ध नहीं है.",multiplierSuffix:"एक्स",filtersTitle:"फिल्टर",refresh:"ताज़ा करना",model:"नमूना",granularity:{daily:"दैनिक",weekly:"साप्ताहिक",monthly:"महीने के"},dashboardTitle:"डैशबोर्ड",tabs:{overview:"सिंहावलोकन",analysis:"विश्लेषण",records:"अभिलेख"},calls:"कॉल"},charts:{tokenUsageOverTime:"समय के साथ टोकन का उपयोग",unifiedTokenUsageOverTime:"समय के साथ टोकन का उपयोग (चैट + फॉरवर्ड)",noTokenUsage:"कोई टोकन उपयोग उपलब्ध नहीं है",tokenUsageDescription:"दिन/अवधि के अनुसार शीघ्रता, पूर्णता और कुल टोकन।",unifiedTokenUsageDescription:"समय के साथ संयुक्त चैट और फॉरवर्ड टोकन उपयोग।",modelDistribution:"मॉडल वितरण",noModelMetrics:"कोई मॉडल मेट्रिक्स उपलब्ध नहीं है",modelDistributionDescription:"मॉडल द्वारा उपभोग किए गए कुल टोकन का हिस्सा।",endpointDistribution:"समापन बिंदु वितरण",noForwardMetrics:"इस श्रेणी के लिए कोई फ़ॉरवर्ड मेट्रिक्स उपलब्ध नहीं है।",total:"कुल",prompt:"तत्पर",completion:"समापन",chat:"बात करना",forward:"आगे"},page:{tabs:{mermaid:"जलपरी",mcp:"एमसीपी"},groups:{ai:"ऐ"}}},components:{markdown:{codeCopiedSuccess:"कोड क्लिपबोर्ड पर कॉपी किया गया",copyFailed:"प्रतिलिपि विफल"},jsonSchema:{noProperties:"स्कीमा में कोई गुण नहीं",field:"मैदान",type:"प्रकार",required:"आवश्यक",yes:"हाँ",no:"नहीं",default:"गलती करना",description:"विवरण"},imageGrid:{ocr:"ओसीआर"}}},I="lotus_ui_locale_v1",d="en-US",A=["en-US","zh-CN","zh-TW","fr-FR","ja-JP","hi-IN"],z=e=>e?A.includes(e):!1,H=()=>{var t;if(typeof window>"u")return d;try{const i=window.localStorage,o=i&&typeof i.getItem=="function"?i.getItem(I):null;if(z(o))return o}catch{}const e=((t=window.navigator.language)==null?void 0:t.toLowerCase())??"";return e.startsWith("zh")?e.includes("tw")||e.includes("hk")||e.includes("mo")||e.includes("hant")?"zh-TW":"zh-CN":e.startsWith("fr")?"fr-FR":e.startsWith("ja")?"ja-JP":e.startsWith("hi")?"hi-IN":d},b=e=>!!e&&typeof e=="object"&&!Array.isArray(e),g=(e,t)=>{const i={...e};for(const[o,s]of Object.entries(t)){const a=i[o];if(b(a)&&b(s)){i[o]=g(a,s);continue}i[o]=s}return i},U=e=>({...e,app:{...e.app,loading:"Chargement...",retry:"Réessayer",backendNotReachable:"Le back-end est inaccessible à {{baseUrl}} (dernière erreur : {{message}})"},chat:{...e.chat,sidebar:{...e.chat.sidebar,newSession:"Nouvelle session",empty:{noSessions:"Pas encore de sessions",hint:'Cliquez sur "Nouvelle session" pour commencer'},dateGroups:{today:"Aujourd'hui",yesterday:"Hier",thisWeek:"Cette semaine",thisMonth:"Ce mois-ci",pinned:"Épinglé",scheduled:"Planifié"},actions:{collapseChildren:"Réduire les sessions enfants",expandChildren:"Développer les sessions enfants"}}},settings:{...e.settings,page:{...e.settings.page,back:"Retour",title:"Paramètres système",tabs:{...e.settings.page.tabs,config:"Configuration",prompts:"Prompts",mermaid:"Mermaid",skills:"Compétences",workflows:"Flux de travail",mcp:"MCP",modelLimits:"Limites des modèles",metrics:"Métriques",schedules:"Planifications",sessions:"Sessions",app:"Application",provider:"Fournisseur",hooks:"Hooks",masking:"Masquage"},groups:{...e.settings.page.groups,ai:"IA",toolsAndExtensions:"Outils & Extensions",securityAndPrivacy:"Sécurité",monitoring:"Surveillance",system:"Système"}},notifications:{...e.settings.notifications,deleteAllSuccess:"Toutes les sessions ont été supprimées (hors épinglées)",deleteEmptySuccess:"Les sessions vides ont été supprimées (hors épinglées)",localStorageCleared:"Le stockage local a été effacé",resetSuccessReloading:"Réinitialisation de l'application réussie. Rechargement...",resetFailed:"Échec de la réinitialisation de l'application",promptEnhancementSaved:"Amélioration du prompt système enregistrée"},configTab:{...e.settings.configTab,loadConfigFailed:"Échec du chargement de la configuration",invalidConfig:"Configuration invalide",saveConfigSuccess:"Configuration enregistrée avec succès",saveConfigFailed:"Échec de l'enregistrement de la configuration",backendSaved:"URL du back-end enregistrée",backendResetDefault:"URL du back-end rétablie par défaut",providerMovedTitle:"Configuration du fournisseur déplacée",providerMovedDescription:"Les paramètres GitHub Copilot et d'autres fournisseurs ont été déplacés vers l'onglet Paramètres fournisseur. Configurez-les là-bas.",backendApiBaseUrlTitle:"URL de base de l'API du back-end",backendApiHint:"Doit inclure le chemin /v1",resetToDefault:"Rétablir les valeurs par défaut",save:"Enregistrer",language:"Langue",languageEnglish:"Anglais",languageChinese:"Chinois simplifié",languageTraditionalChinese:"Chinois traditionnel",languageFrench:"Français",languageJapanese:"Japonais",languageHindi:"Hindi"},appTab:{...e.settings.appTab,switchOn:"ACTIVÉ",switchOff:"DÉSACTIVÉ",darkMode:"Mode sombre",darkModeDark:"Sombre",darkModeLight:"Clair",language:"Langue",languageEnglish:"Anglais",languageChinese:"Chinois simplifié",languageTraditionalChinese:"Chinois traditionnel",languageFrench:"Français",languageJapanese:"Japonais",languageHindi:"Hindi",deleteAllTitle:"Supprimer toutes les sessions",deleteAllDescription:"Voulez-vous continuer ? Cette action supprimera toutes les sessions, sauf celles épinglées.",deleteAllButton:"Supprimer toutes les sessions",deleteEmptyTitle:"Supprimer les sessions vides",deleteEmptyDescription:"Voulez-vous continuer ? Cette action supprimera toutes les sessions sans message (hors sessions épinglées).",deleteEmptyButton:"Supprimer les sessions vides",clearLocalStorageTitle:"Effacer le stockage local",clearLocalStorageDescription:"Voulez-vous continuer ? Cette action supprimera toutes les données locales et réinitialisera l'application.",clearLocalStorageButton:"Effacer le stockage local",confirmDeleteAll:"Oui, tout supprimer",confirmDeleteEmpty:"Oui, supprimer les vides",confirmClear:"Oui, effacer",cancel:"Annuler",dangerZone:"Zone dangereuse",dangerDescription:"Ces actions sont irréversibles. Toutes les données seront supprimées définitivement.",resetApplicationTitle:"Réinitialiser l'application",resetApplicationIntro:"Voulez-vous continuer ? Cette action va :",resetStepDeleteAllSessions:"Supprimer TOUTES les sessions (y compris les épinglées)",resetStepClearStorage:"Effacer toutes les données du stockage local",resetStepResetConfig:"Réinitialiser config.json aux valeurs par défaut",resetStepSetupFlow:"Relancer l'assistant de configuration au prochain démarrage",resetStepReload:"Recharger l'application",resetConfirm:"Oui, tout réinitialiser",resetButton:"Réinitialiser l'application (toutes les données)",runningVersion:"Version en cours",runningVersionDesc:"Il s'agit de la version frontend Lotus actuellement en cours d'exécution."},networkCard:{...e.settings.networkCard,title:"Paramètres réseau",httpProxy:"Proxy HTTP",httpsProxy:"Proxy HTTPS",proxyAuthTitle:"Authentification du proxy",proxyConfiguredForUser:"Configuré pour l'utilisateur : {{username}}",clearCredentials:"Effacer les identifiants",username:"Nom d'utilisateur",password:"Mot de passe",apply:"Appliquer",credentialsStorageNote:"Les identifiants du proxy sont stockés de façon chiffrée dans ~/.bamboo/config.json",reload:"Recharger",save:"Enregistrer"},modelMappingCard:{...e.settings.modelMappingCard,loadProviderFailed:"Échec du chargement de la configuration du fournisseur",loadMappingsFailed:"Échec du chargement des mappages existants",loadModelsFailed:"Échec du chargement des modèles",loadModelsHint:"Impossible de charger les modèles. Vérifiez la configuration du fournisseur.",mappingSaved:"Mappage de modèle enregistré",mappingSaveFailed:"Échec de l'enregistrement du mappage de modèle",enterModelName:"Veuillez saisir un nom de modèle",customMappingSaved:"Mappage de modèle personnalisé enregistré",customMappingSaveFailed:"Échec de l'enregistrement du mappage de modèle personnalisé",collapseTitle:"Mappage de modèles Anthropic",description:"Configurez les modèles {{provider}} à utiliser lorsque Claude CLI demande des modèles spécifiques.",loadModelsErrorTitle:"Échec du chargement des modèles",retry:"Réessayer",loadingModels:"Chargement des modèles...",modelTypeOpusDescription:'correspond aux modèles contenant "opus"',modelTypeSonnetDescription:'correspond aux modèles contenant "sonnet"',modelTypeHaikuDescription:'correspond aux modèles contenant "haiku"',selectModelPlaceholder:"Sélectionner le modèle {{label}}",customModelOption:"Modèle personnalisé...",mappedModelNotFound:'Le modèle mappé "{{model}}" est introuvable dans les modèles disponibles du fournisseur actuel',refreshModels:"Actualiser les modèles",currentProvider:"Fournisseur actuel",loadingProvider:"Chargement...",availableModels:"Modèles disponibles",cached:"(en cache)",storedIn:"Enregistré dans",customModalTitle:"Saisir un nom de modèle personnalisé",customModalDescription:"Saisissez un nom de modèle personnalisé pour {{modelType}}",customModalPlaceholder:"ex. : gpt-4-turbo-preview",customModalNote:"Note : assurez-vous que ce nom de modèle est valide pour le fournisseur actuel.",save:"Enregistrer",cancel:"Annuler"},modelTab:{...e.settings.modelTab,selectModelTitle:"Sélectionner un modèle",loadingModels:"Chargement des modèles...",selectModelPlaceholder:"Sélectionner un modèle",backendApiBaseUrlTitle:"URL de base de l'API du back-end",resetToDefault:"Rétablir les valeurs par défaut",save:"Enregistrer",backendApiHint:"Doit être une URL de base complète incluant /v1 (ex. {{example}})."},common:{...e.settings.common,loading:"Chargement...",successful:"Réussi",failed:"Échec"},promptsTab:{...e.settings.promptsTab,title:"Amélioration du prompt système",mermaidEnhancement:"Amélioration Mermaid",taskListRules:"Règles de tâches partagées",copilotConclusionWithOptionsBeforeFinish:"Copilot conclusion_with_options avant de terminer",switchOn:"ACTIVÉ",switchOff:"DÉSACTIVÉ",enhancementPlaceholder:"Ajoutez un texte d'amélioration global à ajouter à chaque prompt système.",saveEnhancement:"Enregistrer l'amélioration",description:"Ce texte est ajouté en premier, suivi des améliorations système activées, avant l'envoi de chaque requête."},hooksTab:{...e.settings.hooksTab,title:"Hooks d'images",enableImagePreflight:"Activer le hook de pré-vérification d'image",modeLabel:"Mode",description:"Le mode Placeholder réécrit les images en résumés textuels (cela peut perturber les outils qui attendent de vraies données d'image). L'OCR est actuellement disponible uniquement sous Windows.",loadFailed:"Échec du chargement des paramètres de hooks",updateFailed:"Échec de la mise à jour des hooks",modeUpdateFailed:"Échec de la mise à jour du mode de hook",enabled:"Hooks d'image activés",disabled:"Hooks d'image désactivés",modeUpdated:"Mode du hook d'image défini sur : {{mode}}",mode:{...e.settings.hooksTab.mode,error:"Erreur"}},keywordMaskingTab:{...e.settings.keywordMaskingTab,title:"Masquage de mots-clés",addKeyword:"Ajouter un mot-clé",description:"Configurez les mots-clés à masquer avant l'envoi vers l'API Copilot. Utilisez une correspondance exacte pour les chaînes littérales ou des regex pour les motifs. Toutes les correspondances seront remplacées par [MASKED].",empty:"Aucune règle de masquage de mots-clés configurée",cancel:"Annuler",patternPlaceholder:"Saisissez un motif à rechercher",examples:"Exemples",exactMatch:"Correspondance exacte",regexPattern:"Motif regex",enabled:"Activé",disabled:"Désactivé",sampleText:"Texte d'exemple",sampleTextPlaceholder:"Saisissez un texte d'exemple",maskedPreview:"Aperçu du masquage",emptyPattern:"(vide)",loadFailed:"Échec du chargement de la configuration de masquage de mots-clés",saveFailed:"Échec de l'enregistrement de la configuration",saveSuccess:"Configuration de masquage de mots-clés enregistrée",validationFailedPrefix:"Échec de validation",patternRequired:"Le motif ne peut pas être vide",example:{...e.settings.keywordMaskingTab.example,literalToken:"Masquer un jeton littéral",githubTokens:"Masquer les jetons GitHub",awsKeys:"Masquer les clés AWS",emails:"Masquer les adresses e-mail"}},workflowsTab:{...e.settings.workflowsTab,title:"Flux de travail",description:"Les workflows sont stockés dans `~/.bamboo/workflows` sous forme de fichiers Markdown. Utilisez `/nom` pour insérer un workflow dans le chat.",loadFailed:"Échec du chargement des flux de travail",loadContentFailed:"Échec du chargement du contenu du flux",invalidName:"Nom de flux invalide",nameAlreadyExists:"Un flux avec ce nom existe déjà",saved:"Flux de travail enregistré",saveFailed:"Échec de l'enregistrement du flux de travail",deleted:"Flux de travail supprimé",deleteFailed:"Échec de la suppression du flux de travail",refresh:"Actualiser",newWorkflow:"Nouveau flux",save:"Enregistrer",empty:"Aucun flux de travail trouvé",namePlaceholder:"Nom du flux",contentPlaceholder:`# Titre du flux
|
|
5
|
-
|
|
6
|
-
Décrivez ici les étapes du flux de travail.`},mermaidTab:{...e.settings.mermaidTab,title:"Paramètres des diagrammes Mermaid",description:"Personnalisez le rendu des diagrammes Mermaid dans vos conversations",themeCardTitle:"Thème",themeLabel:"Thème Mermaid",themeTooltip:"Choisissez un thème Mermaid intégré. Les thèmes Default et Neutral basculent automatiquement selon le thème clair/sombre de l'application.",themeOptions:{...e.settings.mermaidTab.themeOptions,default:"Par défaut (clair/sombre auto)",neutral:"Neutre (clair/sombre auto)",dark:"Sombre",forest:"Forêt (tons verts)",base:"Base (minimal)"},themeDescriptionsTitle:"Descriptions des thèmes :",themeDescriptions:{...e.settings.mermaidTab.themeDescriptions,default:"Par défaut : apparence Mermaid classique, s'adapte automatiquement au clair/sombre",neutral:"Neutre : tons gris, s'adapte automatiquement au clair/sombre",dark:"Sombre : thème sombre permanent",forest:"Forêt : palette verte, adaptée aux diagrammes techniques",base:"Base : style minimal, pour un thème personnalisé"},globalCardTitle:"Paramètres globaux",fontSizeLabel:"Taille de police",fontSizeTooltip:"Taille de police de base pour tout le texte du diagramme (en pixels)",defaultZoomLabel:"Zoom par défaut",defaultZoomTooltip:"Niveau de zoom initial des diagrammes (1,0 = 100 %)",responsiveWidthLabel:"Largeur adaptative",responsiveWidthTooltip:"Active l'adaptation du diagramme à la largeur du conteneur. Désactivez pour une largeur fixe.",switchAuto:"Auto",switchFixed:"Fixe",flowchartCardTitle:"Paramètres du diagramme de flux",flowchartNodeSpacingLabel:"Espacement des nœuds",flowchartNodeSpacingTooltip:"Espacement horizontal entre les nœuds",flowchartRankSpacingLabel:"Espacement des niveaux",flowchartRankSpacingTooltip:"Espacement vertical entre les couches",flowchartCurveTypeLabel:"Type de courbe",flowchartCurveTypeTooltip:"Type de courbe pour les connexions",flowchartCurveOptions:{...e.settings.mermaidTab.flowchartCurveOptions,basis:"Lisse (Basis)",linear:"Linéaire",cardinal:"Cardinal"},sequenceCardTitle:"Paramètres des diagrammes de séquence",sequenceActorMarginLabel:"Marge des acteurs",sequenceActorMarginTooltip:"Espacement entre les acteurs",sequenceMessageMarginLabel:"Marge des messages",sequenceMessageMarginTooltip:"Espacement entre les messages",sequenceActorWidthLabel:"Largeur des acteurs",sequenceActorWidthTooltip:"Largeur de chaque bloc d'acteur",sequenceActorHeightLabel:"Hauteur des acteurs",sequenceActorHeightTooltip:"Hauteur de chaque bloc d'acteur",ganttCardTitle:"Paramètres du diagramme de Gantt",ganttBarHeightLabel:"Hauteur des barres",ganttBarHeightTooltip:"Hauteur de chaque barre de tâche",ganttTopPaddingLabel:"Marge supérieure",ganttTopPaddingTooltip:"Espace en haut du graphique",resetToDefaults:"Rétablir les valeurs par défaut",previewTitle:"Aperçu",previewDescription:"Les changements sont appliqués immédiatement. Créez ou ouvrez un diagramme pour voir le résultat."},modelLimits:{...e.settings.modelLimits,title:"Limites de modèles (budget de tokens)",descriptionPrefix:"Configurez les limites de tokens par modèle pour le budget de contexte. Ces paramètres sont enregistrés globalement dans Bamboo",descriptionSuffix:"et utilisés par le résolveur du back-end.",defaultsTitle:"Valeurs par défaut des modèles",defaultsDescription:"Préchargé avec des valeurs par défaut GPT-5 / GPT-4 / Gemini / Kimi / GLM. Vous pouvez les modifier selon vos besoins.",migratedFromLocalStorage:"Limites de modèles migrées du stockage local vers la configuration globale.",loadFailed:"Échec du chargement des limites de modèles",saveSuccess:"Limites de modèles enregistrées dans la configuration globale",saveFailed:"Échec de l'enregistrement des limites de modèles",resetSuccess:"Limites de modèles réinitialisées aux valeurs par défaut",resetFailed:"Échec de la réinitialisation des limites de modèles",defaults:{...e.settings.modelLimits.defaults,gpt54:"Capacité haut de gamme avec une grande profondeur de raisonnement.",gpt53Codex:"Optimisé pour les workflows de refactorisation de code.",gpt52Pro:"Forte stabilité logique pour les tâches complexes.",gpt5Mini:"Option rapide et économique pour un usage général.",gpt41:"Modèle classique à grand contexte avec fenêtre 1M.",gpt4o:"Faible latence, adapté aux conversations quotidiennes.",gemini25Pro:"Solides capacités d'analyse multimodale.",kimiK25:"Préféré pour les contenus chinois longs.",kimiCoding:"Ajusté pour les scénarios orientés développement.",glm5:"Bon pour la génération one-shot de longs documents."},columns:{...e.settings.modelLimits.columns,vendor:"Fournisseur/Série",model:"Modèle",contextWindow:"Fenêtre de contexte",maxOutput:"Sortie maximale",notes:"Notes",actions:"Actions"},placeholders:{...e.settings.modelLimits.placeholders,vendor:"OpenAI / Google / Moonshot",model:"p. ex. gpt-5.4-thinking",optional:"Optionnel"},actions:{...e.settings.modelLimits.actions,remove:"Supprimer",addRow:"Ajouter une ligne",save:"Enregistrer",resetToDefaults:"Rétablir les valeurs par défaut",reload:"Recharger"},validation:{...e.settings.modelLimits.validation,atLeastOneRow:"Veuillez conserver au moins une ligne de limite de modèle.",modelPatternEmpty:"Le motif du modèle ne peut pas être vide.",duplicateModelPattern:"Motif de modèle dupliqué : {{pattern}}",contextWindowMin:"La fenêtre de contexte pour {{pattern}} doit être d'au moins 1000.",maxOutputMin:"La sortie maximale pour {{pattern}} doit être d'au moins 1.",maxOutputExceedsContext:"La sortie maximale pour {{pattern}} doit être inférieure ou égale à la fenêtre de contexte.",safetyMarginNegative:"La marge de sécurité pour {{pattern}} ne peut pas être négative.",safetyMarginTooLarge:"La marge de sécurité pour {{pattern}} doit être inférieure à la fenêtre de contexte."}},schedulesTab:{...e.settings.schedulesTab,loadFailed:"Échec du chargement des planifications",loadSessionsFailed:"Échec du chargement des sessions de planification",createFailed:"Échec de la création de la planification",updateFailed:"Échec de la mise à jour de la planification",deleteFailed:"Échec de la suppression de la planification",runNowFailed:"Échec de l'exécution immédiate de la planification",taskMessageRequired:"Le message de tâche est requis lorsque l'exécution automatique est activée",created:"Planification créée",updated:"Planification mise à jour",deleted:"Planification supprimée",enqueuedRun:"Exécution mise en file d'attente",loading:"Chargement...",yes:"Oui",no:"Non",optional:"(optionnel)",defaultName:"Ma tâche planifiée",createTitle:"Créer une planification",listTitle:"Tâches planifiées",scheduleSessionsTitle:"Sessions planifiées",noSessionsYet:"Aucune session pour le moment.",editTitle:"Modifier la planification",columns:{...e.settings.schedulesTab.columns,name:"Nom",autoExecute:"Exécution automatique",model:"Modèle",enabled:"Activé",intervalSeconds:"Intervalle (s)",nextRun:"Prochaine exécution",lastRun:"Dernière exécution",actions:"Actions"},form:{...e.settings.schedulesTab.form,name:"Nom",intervalSeconds:"Intervalle (secondes)",enabled:"Activé",taskMessage:"Consigne de tâche",taskMessagePlaceholder:"(Optionnel) Consigne à exécuter",model:"Modèle",modelPlaceholder:"(Optionnel) ex. gpt-4o-mini",modelRequiredIfAuto:"Requis si l'exécution automatique est activée",autoExecute:"Exécution automatique",systemPrompt:"Prompt système",workspacePath:"Chemin de l'espace de travail",enhancePrompt:"Améliorer le prompt"},validation:{...e.settings.schedulesTab.validation,nameRequired:"Le nom est requis",intervalRequired:"L'intervalle est requis"},actions:{...e.settings.schedulesTab.actions,create:"Créer",refresh:"Actualiser",edit:"Modifier",runNow:"Exécuter maintenant",sessions:"Sessions",delete:"Supprimer",open:"Ouvrir",save:"Enregistrer"}},sessionsTab:{...e.settings.sessionsTab,currentSessionTitle:"Session actuelle",id:"id",kind:"type",clearMessages:"Effacer les messages",clearMessagesTitle:"Effacer les messages de session",clearMessagesContent:"Cette action efface les messages/pièces jointes de la session actuelle, tout en conservant l'entrée de session.",clear:"Effacer",cancel:"Annuler",sessionCleared:"Session effacée",noActiveSession:"Aucune session active.",bulkCleanupTitle:"Nettoyage en lot",keepPinned:"Conserver les épinglées",deleteAll:"Supprimer tout",deleteAllTitle:"Supprimer toutes les sessions",deleteAllKeepPinned:"Supprime toutes les sessions sauf celles épinglées.",deleteAllIncludePinned:"Supprime toutes les sessions, y compris les épinglées.",deleteEmpty:"Supprimer les vides",deleteEmptyTitle:"Supprimer les sessions vides",deleteEmptyKeepPinned:"Supprime les sessions vides sauf celles épinglées.",deleteEmptyIncludePinned:"Supprime les sessions vides, y compris les épinglées.",deleteChildren:"Supprimer les enfants",deleteChildrenTitle:"Supprimer les sessions enfants",deleteChildrenKeepPinned:"Supprime toutes les sessions enfants sauf celles épinglées.",deleteChildrenIncludePinned:"Supprime toutes les sessions enfants, y compris les épinglées.",delete:"Supprimer",cleanupComplete:"Nettoyage terminé",devResetTitle:"Réinitialisation de développement",devResetDescription:"Réinitialisation complète du stockage des sessions (supprime sessions/ et réinitialise sessions.json).",devResetAction:"Réinitialiser les sessions (dev)",devResetConfirmTitle:"Réinitialiser le stockage des sessions (dev)",devResetConfirmContent:"Cette action supprime TOUTES les sessions (y compris épinglées/enfants) et réinitialise l'index des sessions. Une nouvelle session vide sera créée après rafraîchissement.",reset:"Réinitialiser",devResetDone:"Stockage des sessions réinitialisé"},providerTab:{...e.settings.providerTab,title:"Configuration du fournisseur LLM",description:"Configurez votre fournisseur LLM préféré. La configuration est enregistrée et appliquée lorsque vous cliquez sur Enregistrer et appliquer la configuration.",currentProvider:"Fournisseur actuel",activeProvider:"Fournisseur LLM actif",selectProviderRequired:"Veuillez sélectionner un fournisseur",saveAndApply:"Enregistrer et appliquer la configuration",loadConfigFailed:"Échec du chargement de la configuration du fournisseur",checkStatusFailed:"Échec de la vérification du statut",startCopilotAuthFailed:"Échec du démarrage de l'authentification Copilot",copilotAuthSuccess:"Authentification Copilot réussie !",providerReloaded:"Fournisseur rechargé avec la nouvelle authentification.",completeAuthFailed:"Échec de la finalisation de l'authentification. Veuillez réessayer.",userCodeCopied:"Code utilisateur copié dans le presse-papiers !",copyCodeFailedPrefix:"Échec de la copie du code. Veuillez copier manuellement :",logoutSuccess:"Déconnecté de Copilot",logoutFailed:"Échec de la déconnexion de Copilot",unknownError:"Erreur inconnue",invalidConfig:"Configuration invalide",invalidConfigPrefix:"Configuration invalide",fetchModelsCopilotFailed:"Échec de la récupération des modèles. Authentifiez Copilot puis réessayez.",fetchModelsFailed:"Échec de la récupération des modèles. Vérifiez votre clé API et l'URL de base.",noModelsReturned:"Aucun modèle renvoyé. Authentifiez d'abord Copilot, puis récupérez les modèles.",foundModels:"{{count}} modèles disponibles trouvés",fetchModelsErrorPrefix:"Échec de la récupération des modèles",saveConfigSuccess:"Configuration enregistrée avec succès",saveConfigFailed:"Échec de l'enregistrement de la configuration",saveConfigErrorPrefix:"Échec de l'enregistrement de la configuration",applyConfigSuccess:"Configuration appliquée avec succès. Les changements prendront effet pour les nouvelles conversations.",applyConfigFailed:"Échec de l'application de la configuration",applyConfigErrorPrefix:"Échec de l'application de la configuration",modelUpdated:"Modèle mis à jour avec succès",updateModelFailed:"Échec de la mise à jour du modèle",updateModelErrorPrefix:"Échec de la mise à jour du modèle",fetchingModels:"Récupération des modèles...",refreshModelsFrom:"Actualiser les modèles disponibles depuis {{source}}",fetchModelsFrom:"Récupérer les modèles disponibles depuis {{source}}",saveModelChangeFailed:"Échec de l'enregistrement du changement de modèle",fetchModelsFailedShort:"Échec de la récupération des modèles",retry:"Réessayer",openaiConfigTitle:"Configuration OpenAI",openaiConfigDescription:"Saisissez votre clé API OpenAI pour utiliser les modèles GPT. Vous pouvez aussi spécifier une URL de base personnalisée pour les proxys.",openaiApiKey:"Clé API OpenAI",openaiApiKeyRequired:"Veuillez saisir votre clé API OpenAI",baseUrlOptional:"URL de base (optionnel)",openaiBaseUrlHelp:"Laissez vide pour utiliser le point de terminaison API OpenAI par défaut. Incluez le chemin complet (ex. /v1) si nécessaire.",defaultModel:"Modèle par défaut",selectModelRequired:"Veuillez sélectionner un modèle",selectModel:"Sélectionner un modèle",responsesOnlyModelsOptional:"Modèles API Responses uniquement (optionnel)",responsesOnlyHelp1:"Certains modèles ne prennent en charge que l'API OpenAI Responses (pas chat/completions). Ajoutez ici des ID de modèles pour forcer Bamboo à utiliser l'API en amont.",responsesOnlyHelp2:"Prend en charge la correspondance exacte (ex. gpt-5.3-codex) et la correspondance par préfixe avec * final (ex. gpt-5*).",anthropicConfigTitle:"Configuration Anthropic",anthropicConfigDescription:"Saisissez votre clé API Anthropic pour utiliser les modèles Claude.",anthropicApiKey:"Clé API Anthropic",anthropicApiKeyRequired:"Veuillez saisir votre clé API Anthropic",anthropicBaseUrlHelp:"Laissez vide pour utiliser le point de terminaison API Anthropic par défaut. Incluez le chemin complet (ex. /v1) si nécessaire.",maxTokensOptional:"Tokens max (optionnel)",maxTokensHelp:"Nombre maximal de tokens à générer",geminiConfigTitle:"Configuration Google Gemini",geminiConfigDescription:"Saisissez votre clé API Google AI pour utiliser les modèles Gemini.",geminiApiKey:"Clé API Gemini",geminiApiKeyRequired:"Veuillez saisir votre clé API Gemini",geminiBaseUrlHelp:"Laissez vide pour utiliser le point de terminaison API Google AI par défaut. Incluez le chemin complet si nécessaire.",copilotConfigTitle:"Configuration GitHub Copilot",copilotConfigDescription:"GitHub Copilot utilise l'authentification OAuth. Aucune clé API n'est requise. Assurez-vous d'avoir un abonnement GitHub Copilot actif.",authStatusTitle:"Statut d'authentification",authenticated:"Authentifié",notAuthenticated:"Non authentifié",logoutCopilot:"Se déconnecter de Copilot",authenticateCopilot:"Authentifier Copilot",refreshStatus:"Actualiser le statut",headlessAuth:"Authentification sans interface",headlessAuthHelp:"Affiche l'URL de connexion dans la console au lieu d'ouvrir automatiquement le navigateur",noModelsLoaded:"Aucun modèle n'est encore chargé. Cliquez sur Récupérer les modèles disponibles depuis le back-end.",authFirstThenFetch:"Authentifiez d'abord Copilot, puis récupérez les modèles.",copilotUsageTitle:"Pour utiliser GitHub Copilot :",copilotUsageStep1:"Vérifiez que vous disposez d'un abonnement GitHub Copilot actif",copilotUsageStep2:"Cliquez sur Authentifier Copilot pour démarrer le flux de code appareil",copilotUsageStep3:"Suivez les instructions dans votre terminal pour finaliser l'authentification",copilotAuthModalTitle:"Authentification Copilot",cancel:"Annuler",completedAuthorization:"J'ai terminé l'autorisation",browserOpened:"Navigateur ouvert automatiquement",authStep1:"Une page GitHub devrait s'être ouverte dans votre navigateur",authStep2:"Copiez le code ci-dessous puis collez-le sur la page GitHub",authStep3:"Cliquez sur Continuer sur GitHub pour autoriser",visitUrl:"1. Ouvrez cette URL :",enterCode:"2. Saisissez ce code :",copied:"Copié !",copyCode:"Copier le code",afterContinueHint:"Après avoir cliqué sur Continuer sur GitHub, cliquez sur le bouton J'ai terminé l'autorisation ci-dessous.",providerNames:{...e.settings.providerTab.providerNames,openai:"OpenAI",anthropic:"Anthropic",gemini:"Gemini",copilot:"Copilot"}},mcpTab:{...e.settings.mcpTab,status:{...e.settings.mcpTab.status,connecting:"Connexion",ready:"Prêt",degraded:"Dégradé",stopped:"Arrêté",error:"Erreur"},statusGuideTitle:"Guide des statuts :",statusLastError:"Dernière erreur : {{error}}",serverDeleted:"Serveur MCP supprimé",deleteServerFailed:"Échec de la suppression du serveur MCP",connectedTo:"Connecté à {{name}}",connectServerFailed:"Échec de la connexion au serveur MCP",disconnected:"Déconnecté de {{name}}",disconnectServerFailed:"Échec de la déconnexion du serveur MCP",toolsRefreshedFor:"Outils actualisés pour {{name}}",refreshToolsFailed:"Échec d'actualisation des outils",statusRefreshed:"Statut MCP actualisé",refreshStatusFailed:"Échec d'actualisation du statut MCP",noServerForEditing:"Aucun serveur sélectionné pour édition",savedServer:"{{name}} enregistré",addedServer:"{{name}} ajouté",saveServerFailed:"Échec de l'enregistrement du serveur MCP",copiedConfig:"Configuration MCP copiée dans le presse-papiers",clipboardUnavailable:"Presse-papiers indisponible. L'export est affiché dans la fenêtre.",invalidJsonPrefix:"JSON invalide",unknownError:"Erreur inconnue",jsonMustBeObject:"Le JSON doit être un objet",missingMcpServers:'Champ "mcpServers" manquant. Collez un bloc de configuration complet de style Claude Desktop : { "mcpServers": { ... } }',importSummary:"{{count}} serveur(s) importé(s) ({{added}} ajoutés, {{updated}} mis à jour, {{removed}} supprimés). {{failed}} échec(s) de démarrage.",importStartFailures:"Certains serveurs n'ont pas démarré. La configuration est enregistrée ; ouvrez la liste des serveurs pour voir les erreurs.",importFailed:"Échec de l'import des serveurs MCP",overviewTitle:"Vue d'ensemble MCP",overviewDescription:"Configurez des serveurs MCP externes et inspectez les alias d'outils enregistrés.",totalServers:"Total des serveurs : {{count}}",totalTools:"Total des outils : {{count}}",serversTitle:"Serveurs MCP",addServer:"Ajouter un serveur",refreshAll:"Tout actualiser",export:"Exporter",import:"Importer",importModalTitle:"Importer des serveurs MCP",importHint:"Collez un bloc de configuration style Claude Desktop. Exemple :",importModeMerge:"Fusionner (upsert)",importModeReplace:"Remplacer (supprimer les autres)",replaceWarning:"Le mode remplacement supprimera les serveurs MCP existants absents de la configuration mcpServers importée."},mcpServerTable:{...e.settings.mcpServerTable,columns:{...e.settings.mcpServerTable.columns,name:"Nom",transportType:"Type de transport",status:"Statut",toolCount:"Nombre d'outils",actions:"Actions"},transportOptions:{...e.settings.mcpServerTable.transportOptions,sse:"SSE",stdio:"Stdio"},deleteTitle:"Supprimer le serveur MCP",deleteDescription:"Supprimer le serveur {{name}} ?",empty:"Aucun serveur MCP configuré",actions:{...e.settings.mcpServerTable.actions,edit:"Modifier",delete:"Supprimer",disconnect:"Déconnecter",connect:"Connecter",refreshTools:"Actualiser les outils"}},mcpToolList:{...e.settings.mcpToolList,title:"Outils MCP",selectServerHint:"Sélectionnez un serveur pour inspecter ses outils MCP",empty:"Aucun outil trouvé pour ce serveur",noDescription:"Aucune description disponible",aliasMapping:"Mappage d'alias",parametersSchema:"Schéma des paramètres"},mcpServerForm:{...e.settings.mcpServerForm,jsonMustBeObject:"Le JSON doit être un objet",detectedBulkConfig:"Champ mcpServers détecté (configuration groupée). Utilisez le bouton Importer de l'onglet MCP pour un import groupé, ou collez ici la configuration d'un seul serveur.",missingIdField:"Champ id manquant ou invalide",missingTransportField:"Champ transport manquant ou invalide",missingTransportInfo:"Informations de transport manquantes. Attendu : transport (format Bodhi) ou commande/url (format MCP standard).",invalidJson:"JSON invalide : {{message}}",unknownError:"Erreur inconnue",editTitle:"Modifier le serveur MCP",addTitle:"Ajouter un serveur MCP",save:"Enregistrer",modeForm:"Formulaire",modeJson:"JSON",jsonError:"Erreur JSON",serverId:"ID du serveur",serverIdRequired:"L'ID du serveur est requis",serverIdPatternError:"Utilisez uniquement des lettres, des chiffres, des underscores et des tirets",displayName:"Nom d'affichage",enabled:"Activé",enabledHelp:"Les serveurs désactivés restent en configuration, mais ne seront pas démarrés.",transportType:"Type de transport",transportTypeRequired:"Le type de transport est requis",transportOptions:{...e.settings.mcpServerForm.transportOptions,stdio:"Stdio",sse:"SSE"},command:"Commande",commandRequired:"La commande est requise",arguments:"Arguments",argumentsPlaceholder:"Ajoutez un argument puis appuyez sur Entrée",envVars:"Variables d'environnement",addEnv:"Ajouter une variable",keyRequired:"Clé requise",sseUrl:"URL SSE",sseUrlRequired:"L'URL SSE est requise",validUrlRequired:"Veuillez saisir une URL valide",headers:"En-têtes",addHeader:"Ajouter un en-tête",headerNameRequired:"Nom d'en-tête requis"},metricsCards:{...e.settings.metricsCards,totalSessions:"Sessions totales",chatTokens:"Tokens chat",totalToolCalls:"Appels d'outils totaux",avgSessionDuration:"Durée moyenne des sessions"},forwardMetricsCards:{...e.settings.forwardMetricsCards,totalForwardRequests:"Requêtes de transfert totales",successRate:"Taux de réussite",forwardTokens:"Tokens de transfert",avgResponseTime:"Temps de réponse moyen"},unifiedMetricsCards:{...e.settings.unifiedMetricsCards,totalRequests:"Requêtes totales",totalTokens:"Tokens totaux",successRate:"Taux de réussite",avgResponseTime:"Temps de réponse moyen",chatSessions:"Sessions chat",chatTokens:"Tokens chat",toolCalls:"Appels d'outils",avgSessionDuration:"Durée moyenne des sessions",forwardRequests:"Requêtes de transfert",forwardTokens:"Tokens de transfert",successful:"Réussi",failed:"Échec"},metricsTable:{...e.settings.metricsTable,session:{...e.settings.metricsTable.session,columns:{...e.settings.metricsTable.session.columns,session:"Session",model:"Modèle",status:"Statut",started:"Début",duration:"Durée",tokens:"Tokens",toolCalls:"Appels d'outils",messages:"Messages",action:"Action"},view:"Voir"},forward:{...e.settings.metricsTable.forward,columns:{...e.settings.metricsTable.forward.columns,id:"ID",endpoint:"Point de terminaison",model:"Modèle",type:"Type",status:"Statut",tokens:"Tokens",duration:"Durée",started:"Début",error:"Erreur"},typeStream:"Flux",typeSync:"Synchrone",totalRequests:"{{total}} requêtes",empty:"Aucune requête de transfert enregistrée pour cette plage"}},metricsDashboard:{...e.settings.metricsDashboard,roundColumns:{...e.settings.metricsDashboard.roundColumns,round:"Tour",status:"Statut",duration:"Durée",tokens:"Tokens",toolCalls:"Appels d'outils"},compactStats:{...e.settings.metricsDashboard.compactStats,combinedTokens:"Tokens combinés",chatTokens:"Tokens chat",forwardTokens:"Tokens de transfert",avgTokensPerSession:"Tokens moyens / session",estimatedTimeSaved:"Temps estimé économisé",estimatedEfficiencyLift:"Gain d'efficacité estimé",estimatedSpeedMultiplier:"Multiplicateur de vitesse estimé",estimatedSavedWorkdays:"Jours de travail estimés économisés",avgRoundsPerSession:"Tours moyens / session",toolCallsPerSession:"Appels d'outils / session",activeSessionRate:"Taux de sessions actives",avgTokensPerForward:"Tokens moyens / transfert",forwardErrorRate:"Taux d'erreur de transfert",streamingRatio:"Ratio de streaming",p95ForwardLatency:"Latence P95 des transferts",modelCoverage:"Couverture des modèles",endpointCoverage:"Couverture des points de terminaison"},multiplierSuffix:"x",filtersTitle:"Filtres",refresh:"Actualiser",startDate:"Date de début",endDate:"Date de fin",model:"Modèle",daysOption:"{{value}} jours",granularity:{...e.settings.metricsDashboard.granularity,daily:"Quotidien",weekly:"Hebdomadaire",monthly:"Mensuel"},dashboardTitle:"Tableau de bord",tabs:{...e.settings.metricsDashboard.tabs,overview:"Vue d'ensemble",analysis:"Analyse",records:"Journaux"},derivedMetricsTitle:"Métriques dérivées (compact)",derivedMetricsSubtitle:"Plus de dimensions sans allonger la page",efficiencyHint:"Les estimations d'efficacité utilisent des hypothèses prudentes : {{manualTpm}} tokens/min en manuel + {{manualToolMinutes}} min/outil vs {{assistedTpm}} tokens/min assisté + {{assistedToolMinutes}} min/outil, puis application de {{realization}} % de réalisation et des plafonds ({{maxLift}} % / {{maxMultiplier}}x).",toolUsageTitle:"Fréquence d'utilisation des outils",noToolUsage:"Aucun appel d'outil enregistré pour cette plage.",calls:"Appels",activityHeatmapTitle:"Carte thermique d'activité quotidienne",noActivity:"Aucune activité disponible pour cette plage.",sessionsCount:"{{count}} sessions",tokensAmount:"{{value}} tokens",sessionsTabLabel:"Sessions ({{count}})",chatSessionsLabel:"Sessions chat ({{count}})",sessionsHint:"Cliquez sur une session pour voir le détail complet",forwardTabLabel:"Requêtes de transfert ({{count}})",detailedMetricsTitle:"Métriques détaillées",sessionMetricsTitle:"Métriques de session",loadingSessionDetails:"Chargement des détails de session...",sessionDetail:{...e.settings.metricsDashboard.sessionDetail,sessionId:"ID de session",model:"Modèle",status:"Statut",duration:"Durée",messages:"Messages",totalTokens:"Tokens totaux",toolCalls:"Appels d'outils"},noDetail:"Aucun détail disponible."},charts:{...e.settings.charts,tokenUsageOverTime:"Utilisation des tokens dans le temps",unifiedTokenUsageOverTime:"Utilisation des tokens dans le temps (chat + transfert)",noTokenUsage:"Aucune utilisation de tokens disponible",tokenUsageDescription:"Tokens de prompt, de réponse et totaux par jour/période.",unifiedTokenUsageDescription:"Utilisation combinée des tokens chat et transfert au fil du temps.",total:"Total",prompt:"Prompt",completion:"Réponse",chat:"Chat",forward:"Transfert",modelDistribution:"Répartition des modèles",noModelMetrics:"Aucune métrique de modèle disponible",modelDistributionDescription:"Part des tokens totaux consommés par modèle.",endpointDistribution:"Répartition des points de terminaison",noForwardMetrics:"Aucune métrique de transfert disponible pour cette plage."}}}),N=e=>({...e,app:{...e.app,loading:"読み込み中...",retry:"再試行"},chat:{...e.chat,sidebar:{...e.chat.sidebar,newSession:"新しいセッション",empty:{noSessions:"セッションはまだありません",hint:"「新しいセッション」をクリックして開始"},dateGroups:{today:"今日",yesterday:"昨日",thisWeek:"今週",thisMonth:"今月",pinned:"ピン留め",scheduled:"スケジュール済み"},actions:{collapseChildren:"子セッションを折りたたむ",expandChildren:"子セッションを展開"}}},settings:{...e.settings,page:{...e.settings.page,back:"戻る",title:"システム設定",tabs:{...e.settings.page.tabs,config:"設定",prompts:"プロンプト",skills:"スキル",workflows:"ワークフロー",modelLimits:"モデル制限",metrics:"メトリクス",schedules:"スケジュール",sessions:"セッション",app:"アプリ",provider:"プロバイダー",masking:"マスキング"}},configTab:{...e.settings.configTab,language:"言語",languageEnglish:"英語",languageChinese:"簡体字中国語",languageTraditionalChinese:"繁体字中国語",languageFrench:"フランス語",languageJapanese:"日本語",languageHindi:"ヒンディー語"},appTab:{...e.settings.appTab,language:"言語",languageEnglish:"英語",languageChinese:"簡体字中国語",languageTraditionalChinese:"繁体字中国語",languageFrench:"フランス語",languageJapanese:"日本語",languageHindi:"ヒンディー語"}}}),j=e=>({...e,app:{...e.app,loading:"लोड हो रहा है...",retry:"पुनः प्रयास करें",backendNotReachable:"बैकएंड {{baseUrl}} पर उपलब्ध नहीं है (अंतिम त्रुटि: {{message}})"},chat:{...e.chat,sidebar:{...e.chat.sidebar,newSession:"नया सत्र",empty:{noSessions:"अभी तक कोई सत्र नहीं",hint:'शुरू करने के लिए "नया सत्र" पर क्लिक करें'},dateGroups:{today:"आज",yesterday:"कल",thisWeek:"इस सप्ताह",thisMonth:"इस महीने",pinned:"पिन किया गया",scheduled:"अनुसूचित"},actions:{collapseChildren:"चाइल्ड सत्र संक्षिप्त करें",expandChildren:"चाइल्ड सत्र विस्तृत करें"}}},settings:{...e.settings,page:{...e.settings.page,back:"वापस",title:"सिस्टम सेटिंग्स",tabs:{...e.settings.page.tabs,config:"कॉन्फ़िगरेशन",prompts:"प्रॉम्प्ट्स",skills:"स्किल्स",workflows:"वर्कफ़्लोज़",modelLimits:"मॉडल सीमाएँ",metrics:"मेट्रिक्स",schedules:"शेड्यूल",sessions:"सेशंस",app:"ऐप",provider:"प्रोवाइडर",hooks:"हुक्स",masking:"मास्किंग",envVars:"पर्यावरण वेरिएबल्स"},groups:{...e.settings.page.groups,ai:"AI",toolsAndExtensions:"टूल्स और एक्सटेंशन्स",securityAndPrivacy:"सुरक्षा",monitoring:"मॉनिटरिंग",system:"सिस्टम"}},configTab:{...e.settings.configTab,tabs:{...e.settings.configTab.tabs,general:"सामान्य",tools:"टूल्स"},providerMovedTitle:"प्रोवाइडर कॉन्फ़िगरेशन स्थानांतरित किया गया",providerMovedDescription:"GitHub Copilot और अन्य प्रोवाइडर सेटिंग्स को Provider Settings टैब में स्थानांतरित कर दिया गया है। कृपया अपने प्रोवाइडर वहीं कॉन्फ़िगर करें।",backendApiBaseUrlTitle:"बैकएंड API बेस URL",backendApiHint:"/v1 पथ शामिल होना चाहिए",resetToDefault:"डिफ़ॉल्ट पर रीसेट करें",save:"सहेजें",toolsTitle:"टूल उपलब्धता",toolsDescription:"नियंत्रित करें कि कौन-सा टूल AI मॉडल को भेजा जाए। बंद किए गए टूल मॉडल टूल-स्कीमा से छिपा दिए जाते हैं।",toolsEmpty:"फिलहाल कोई टूल उपलब्ध नहीं है।",reloadTools:"टूल्स रीलोड करें",language:"भाषा",languageEnglish:"अंग्रेज़ी",languageChinese:"सरलीकृत चीनी",languageTraditionalChinese:"पारंपरिक चीनी",languageFrench:"फ़्रेंच",languageJapanese:"जापानी",languageHindi:"हिन्दी"},networkCard:{...e.settings.networkCard,title:"नेटवर्क सेटिंग्स",httpProxy:"HTTP प्रॉक्सी",httpsProxy:"HTTPS प्रॉक्सी",proxyAuthTitle:"प्रॉक्सी प्रमाणीकरण",proxyConfiguredForUser:"उपयोगकर्ता के लिए कॉन्फ़िगर: {{username}}",clearCredentials:"क्रेडेंशियल्स साफ़ करें",username:"उपयोगकर्ता नाम",password:"पासवर्ड",apply:"लागू करें",credentialsStorageNote:"प्रॉक्सी क्रेडेंशियल्स एन्क्रिप्ट होकर ~/.bamboo/config.json में सहेजे जाते हैं",reload:"रीलोड",save:"सहेजें"},modelMappingCard:{...e.settings.modelMappingCard,collapseTitle:"Anthropic मॉडल मैपिंग",description:"कॉन्फ़िगर करें कि Claude CLI जब विशिष्ट मॉडल मांगे तो कौन-से {{provider}} मॉडल उपयोग हों।",loadModelsErrorTitle:"मॉडल लोड करने में विफल",retry:"पुनः प्रयास करें",loadingModels:"मॉडल लोड हो रहे हैं...",modelTypeOpusDescription:'"opus" वाले मॉडल से मेल खाता है',modelTypeSonnetDescription:'"sonnet" वाले मॉडल से मेल खाता है',modelTypeHaikuDescription:'"haiku" वाले मॉडल से मेल खाता है',selectModelPlaceholder:"{{label}} मॉडल चुनें",customModelOption:"कस्टम मॉडल...",refreshModels:"मॉडल रीफ्रेश करें",currentProvider:"वर्तमान प्रोवाइडर",loadingProvider:"लोड हो रहा है...",availableModels:"उपलब्ध मॉडल",storedIn:"संग्रहित स्थान",customModalTitle:"कस्टम मॉडल नाम दर्ज करें",customModalDescription:"{{modelType}} के लिए कस्टम मॉडल नाम दर्ज करें",customModalPlaceholder:"उदाहरण: gpt-4-turbo-preview",customModalNote:"नोट: सुनिश्चित करें कि मॉडल नाम वर्तमान प्रोवाइडर के लिए मान्य है।",save:"सहेजें",cancel:"रद्द करें"},appTab:{...e.settings.appTab,switchOn:"चालू",switchOff:"बंद",darkMode:"डार्क मोड",darkModeDark:"डार्क",darkModeLight:"लाइट",language:"भाषा",languageEnglish:"अंग्रेज़ी",languageChinese:"सरलीकृत चीनी",languageTraditionalChinese:"पारंपरिक चीनी",languageFrench:"फ़्रेंच",languageJapanese:"जापानी",languageHindi:"हिन्दी",cancel:"रद्द करें",dangerZone:"जोखिम क्षेत्र"},common:{...e.settings.common,loading:"लोड हो रहा है...",successful:"सफल",failed:"विफल"}}}),B=e=>{const t=U(e);return{...t,layout:{...e.layout,showSidebar:"Afficher la barre latérale"},common:{...e.common,workspace:"Espace de travail",server:"Serveur :",category:"Catégorie :",parameters:"Paramètres",approve:"Approuver",reject:"Refuser"},chat:{...t.chat,sidebar:{...t.chat.sidebar,createFailedTitle:"Échec de création de session",createFailedUnknown:"Erreur inconnue",delete:{title:"Supprimer la session",confirm:"Voulez-vous vraiment supprimer cette session ?"},deleteByDate:{title:"Supprimer les sessions du {{date}}",confirm:"Voulez-vous vraiment supprimer {{count}} session(s) du {{date}} ?"},newSessionWithPrompt:"Nouvelle session avec {{prompt}}"},workspace:{...e.chat.workspace,recentTitle:"Espaces récents",suggestedTitle:"Espaces suggérés",noRecentWorkspaces:"Aucun espace récent",noSuggestions:"Aucune suggestion",defaultWorkspaceName:"Espace de travail",validWorkspace:"Espace valide",fileCount:"{{count}} fichiers"},input:{...e.chat.input,addAttachments:"Ajouter des pièces jointes",referenceWorkspaceFiles:"Référencer des fichiers de l'espace",imageCountSingular:"{{count}} image",imageCountPlural:"{{count}} images",moreImages:"+{{count}} de plus",clearAllImages:"Effacer toutes les images",reasoningTitle:"Effort de raisonnement : {{label}}",reasoning:{...e.chat.input.reasoning,low:"Faible",medium:"Moyen",high:"Élevé",xhigh:"Très élevé",max:"Max"},strictToolOnlyMode:"Mode strict outils uniquement",toolSpecificModeLabel:"Mode spécifique à l'outil",allowedTools:"Outils autorisés :",autoPrefixLabel:"Préfixe auto : {{prefix}}",mustStartWithPrefix:'Le message doit commencer par "{{prefix}}"'},prompt:{...e.chat.prompt,selectorTitle:"Choisir un prompt système",createButton:"Créer une nouvelle session",helperText:"Choisissez un prompt système de base pour l'IA. Vous pouvez en ajouter ou modifier dans les paramètres système.",emptyDescription:"Aucun prompt système trouvé. Ajoutez-en un dans les paramètres système.",newSessionSelectorTitle:"Choisir un prompt système pour la nouvelle session",defaultDescription:"Prompt système par défaut.",loadPresetsFailed:"Échec du chargement des préréglages",loadCurrentInfoFailed:"Échec du chargement des informations actuelles"},commandSelector:{...e.chat.commandSelector,loading:"Chargement des commandes...",emptyWithSearch:'Aucune commande trouvée pour "{{search}}"',empty:"Aucune commande disponible.",navigationHint:"Navigation : Haut/Bas ou Ctrl+P/N | Sélection : Entrée | Compléter : Espace/Tab | Annuler : Échap",types:{...e.chat.commandSelector.types,workflow:"Flux de travail",skill:"Compétence",mcp:"MCP"}},model:{...e.chat.model,selectModel:"Sélectionner un modèle",noModelSelected:"Aucun modèle sélectionné",selectModelHint:"Choisissez un modèle pour commencer la discussion.",providerNotConfigured:"Fournisseur non configuré",configureProviderHint:"Configurez votre fournisseur dans les paramètres avant de choisir un modèle.",configureProvider:"Configurer le fournisseur",openSettings:"Ouvrir les paramètres",noModelsAvailable:"Aucun modèle disponible",selectModelBeforeSend:"Veuillez sélectionner un modèle avant l'envoi.",selectModelBeforeRetry:"Veuillez sélectionner un modèle avant de réessayer."},streaming:{...e.chat.streaming,assistant:"Bodhi",requestCancelled:"Requête annulée",sendFailed:"Échec de l'envoi du message",retryFailed:"Échec de la nouvelle tentative",modelConfigNotLoaded:"Configuration du modèle non chargée",agentUnavailable:"Agent indisponible",noActiveChatTitle:"Aucune conversation active",noActiveChatSendContent:"Veuillez créer ou sélectionner une conversation avant d'envoyer un message.",noActiveChatRetryContent:"Veuillez créer ou sélectionner une conversation avant de réessayer.",noChatIdTitle:"ID de conversation manquant",noChatIdSendContent:"La conversation actuelle n'a pas d'ID. Créez une nouvelle conversation puis réessayez.",noChatIdRetryContent:"La conversation actuelle n'a pas d'ID. Créez une nouvelle conversation puis réessayez."},selectionToolbar:{...e.chat.selectionToolbar,selectMessages:"Sélectionner des messages",selectedCount:"{{selected}} sélectionné(s) ({{total}} au total)",selectAll:"Tout sélectionner",clear:"Effacer",exportMarkdown:"Exporter en Markdown",exportPdf:"Exporter en PDF",done:"Terminé"},subAgents:{...e.chat.subAgents,title:"Sous-agents",expand:"Développer",collapse:"Réduire",continue:"Continuer ici",open:"Ouvrir",retry:"Réessayer",hiddenHint:"{{count}} sous-agent(s) masqué(s)"},chatItem:{...e.chat.chatItem,edit:"Modifier",childTag:"Enfant"},systemPromptSelector:{...e.chat.systemPromptSelector,defaultTag:"Par défaut",hide:"Masquer",preview:"Aperçu",copy:"Copier",lines:"{{count}} lignes",words:"{{count}} mots",chars:"{{count}} caractères",noContent:"Aucun contenu"},title:{...e.chat.title,updated:"Titre de conversation mis à jour",generateFailed:"Échec de génération du titre de conversation"},respond:{...e.chat.respond,customAnswerPlaceholder:"Saisissez votre réponse personnalisée..."},multiPane:{...e.chat.multiPane,splitHorizontal:"Diviser horizontalement",splitVertical:"Diviser verticalement",closePane:"Fermer le panneau",selectSessionHint:"Sélectionnez une session pour voir les messages",hoverToSplitHint:"Survolez un panneau pour le diviser et comparer les conversations",selectMessagesToExport:"Sélectionnez des messages à exporter"},messageCard:{...e.chat.messageCard,authRequired:"Authentification requise",goToSettings:"Aller aux paramètres",assistantThinking:"L'assistant réfléchit...",reasoning:"Raisonnement",selected:"Sélectionné",selectedTool:"Outil sélectionné"},messageActions:{...e.chat.messageActions,copy:"Copier",exportMarkdown:"Exporter en Markdown",exportPdf:"Exporter en PDF",restoreChat:"Restaurer uniquement la conversation",restoreFilesAndChat:"Restaurer les fichiers et la conversation",deleteMessage:"Supprimer le message",savedFile:"Enregistré dans {{filename}}",nothingToExport:"Rien à exporter",exportFailed:"Échec de l'export",cannotRestore:"Impossible de restaurer ce message",restorePartial:"Conversation restaurée. {{count}} fichier(s) n'ont pas pu être restaurés.",restoreFilesSuccess:"Fichiers et conversation restaurés ({{count}} message(s) supprimé(s)).",restoreSuccess:"Conversation restaurée ({{count}} message(s) supprimé(s)).",restoreFailed:"Échec de restauration de la conversation",pdfUnavailable:"L'export PDF n'est pas disponible dans cet environnement",exportingPdf:"Export PDF en cours..."},session:{...e.chat.session,defaultTitle:"Nouvelle session"}},settings:{...t.settings,page:{...t.settings.page,tabs:{...t.settings.page.tabs,hooks:"Hooks",envVars:"Variables d'environnement"}},configTab:{...t.settings.configTab,tabs:{...e.settings.configTab.tabs,general:"Général",tools:"Outils"},toolsTitle:"Disponibilité des outils",toolsDescription:"Activez/désactivez les outils pouvant être envoyés au modèle IA. Les outils désactivés sont masqués du schéma d'outils du modèle.",toolsEmpty:"Aucun outil disponible actuellement.",reloadTools:"Recharger les outils",loadBambooConfigFailed:"Échec du chargement de la configuration Bamboo",bambooConfigSaved:"Configuration Bamboo enregistrée",saveBambooConfigFailed:"Échec de l'enregistrement de la configuration Bamboo"},keywordMaskingTab:{...t.settings.keywordMaskingTab,invalidRegexPattern:"Motif regex invalide"}},components:{...e.components,workflowResult:{...e.components.workflowResult,userWorkflow:"Workflow utilisateur",waitingForResult:"En attente du résultat du workflow...",executionFailed:"Échec d'exécution du workflow",retryWorkflow:"Relancer le workflow",copyParameters:"Copier les paramètres",copyResult:"Copier le résultat",expandResult:"Développer le résultat",collapseResult:"Réduire le résultat"},toolResult:{...e.components.toolResult,waiting:"En attente",waitingForResult:"En attente du résultat...",executionFailed:"Échec d'exécution de l'outil",copyResult:"Copier le résultat",checkpoint:"Point de contrôle",checkpointNone:"Aucun",diffTruncated:"Le diff est trop long et a été tronqué"},toolCall:{...e.components.toolCall,liveOutput:"Sortie en direct",keyParameters:"Paramètres clés",fullParameters:"Paramètres complets",copyParameters:"Copier les paramètres"},plan:{...e.components.plan,executionPlan:"Plan d'exécution",goal:"Objectif",steps:"Étapes",stepTitle:"Étape {{number}}",reason:"Raison",estimated:"Estimé",tools:"Outils",prerequisites:"Prérequis",potentialRisks:"Risques potentiels ({{count}})",totalEstimatedTime:"Temps total estimé",feedbackPlaceholder:"Indiquez à l'agent ce que vous souhaitez ajuster...",sendFeedback:"Envoyer un retour",refinePlan:"Affiner le plan",executePlan:"Exécuter le plan"},question:{...e.components.question,agentQuestion:"Question de l'agent",context:"Contexte",chooseOption:"Choisir une option",recommended:"Recommandé",customAnswerHint:"Aucune option adaptée ? Saisissez votre propre réponse.",customAnswerPlaceholder:"Saisissez votre réponse personnalisée...",submitAnswer:"Soumettre la réponse"},questionDialog:{...e.components.questionDialog,selectOptionWarning:"Veuillez sélectionner une option avant de soumettre.",responseSubmitted:"Réponse soumise",responseSubmittedContinue:"Réponse soumise, l'IA va continuer le traitement",submitFailed:"Échec de soumission de la réponse",noModelConfigured:"Aucun modèle configuré",customAnswerTip:"Réponse personnalisée",otherTypeBelow:"Autre (saisir ci-dessous)",confirm:"Confirmer"},skillManager:{...e.components.skillManager,title:"Compétences",refresh:"Actualiser",skillsRefreshed:"Compétences actualisées",lastUpdated:"Dernière mise à jour : {{value}}",justNow:"à l'instant",secondsAgo:"il y a {{count}} s",minutesAgo:"il y a {{count}} min",searchPlaceholder:"Rechercher des compétences",readOnlyHint:"Mode lecture seule : les compétences ne peuvent pas être modifiées.",noSkillsFound:"Aucune compétence trouvée",noMatch:"Aucune compétence ne correspond à la recherche",loadFailed:"Échec du chargement des compétences",getFailed:"Échec de récupération de la compétence"},skillSelector:{...e.components.skillSelector,placeholder:"Sélectionner des compétences"},imageGrid:{...e.components.imageGrid,preview:"Aperçu",ocr:"OCR"},todoList:{...e.components.todoList,title:"Liste des tâches",evaluating:"Évaluation en cours",pin:"Épingler",unpin:"Désépingler",llmEvaluation:"Évaluation LLM",tools:"outils",dependsOn:"Dépend de : {{deps}}",dependencies:"dépendances",status:{...e.components.todoList.status,pending:"En attente",inProgress:"En cours",completed:"Terminée",blocked:"Bloquée"}},tokenUsage:{...e.components.tokenUsage,title:"Utilisation des tokens",summary:"Résumé",system:"Système",messages:"Messages",tokens:"tokens",usedPercent:"{{value}} % utilisés"},approval:{...e.components.approval,workflow:"Workflow",executionRequest:"Demande d'exécution",aiWantsExecute:"L'IA souhaite exécuter l'action suivante"},toolSession:{...e.components.toolSession,title:"Session d'outils",running:"En cours",done:"Terminé",error:"Erreur",completedOnly:"{{completed}} terminé(s)",completedWithErrors:"{{completed}} terminé(s) (avec erreurs)",completedProgress:"{{completed}} / {{total}} terminés",noPersistedMessage:"Aucune sortie persistée",deleteMessage:"Supprimer la session d'outils"},mermaid:{...e.components.mermaid,loadingDiagram:"Chargement du diagramme...",diagramError:"Erreur de diagramme Mermaid",errorTitlePrefix:"Erreur",checkConsoleHint:"Vérifiez la syntaxe Mermaid ou ouvrez la console pour les détails.",fixMermaid:"Corriger Mermaid",renderingDiagram:"Rendu du diagramme...",exportSvg:"Exporter en SVG",exportFailed:"Échec de l'export du diagramme"}}}},V=e=>{const t=j(e);return{...t,layout:{...e.layout,showSidebar:"साइडबार दिखाएँ"},common:{...e.common,workspace:"वर्कस्पेस",server:"सर्वर:",category:"श्रेणी:",parameters:"पैरामीटर्स",approve:"स्वीकृत करें",reject:"अस्वीकृत करें"},chat:{...t.chat,sidebar:{...t.chat.sidebar,createFailedTitle:"सेशन बनाने में विफल",createFailedUnknown:"अज्ञात त्रुटि",delete:{title:"सेशन हटाएँ",confirm:"क्या आप वाकई इस सेशन को हटाना चाहते हैं?"},deleteByDate:{title:"{{date}} के सेशन हटाएँ",confirm:"क्या आप {{date}} के {{count}} सेशन हटाना चाहते हैं?"},newSessionWithPrompt:"{{prompt}} के साथ नया सेशन"},workspace:{...e.chat.workspace,modalTitle:"वर्कस्पेस पथ सेट करें",invalidTitle:"अमान्य वर्कस्पेस पथ",issuesDetected:"वर्कस्पेस पथ में संभावित समस्याएँ मिलीं:",confirmSaveInvalid:"क्या आप फिर भी यह पथ सहेजना चाहते हैं?",errorEnterPath:"कृपया वर्कस्पेस पथ दर्ज करें",errorSaveFailed:"वर्कस्पेस पथ सहेजने में विफल",label:"वर्कस्पेस",browseFolder:"फ़ोल्डर ब्राउज़ करें",descriptionTitle:"वर्कस्पेस पथ विवरण",checkTitle:"वर्कस्पेस पथ जाँच",checkDescription:"वर्कस्पेस पथ सत्यापन विफल।",recentTitle:"हाल के वर्कस्पेस",suggestedTitle:"सुझाए गए वर्कस्पेस",noRecentWorkspaces:"कोई हाल का वर्कस्पेस नहीं",noSuggestions:"कोई सुझाव नहीं",defaultWorkspaceName:"वर्कस्पेस",validWorkspace:"वैध वर्कस्पेस",fileCount:"{{count}} फ़ाइलें"},input:{...e.chat.input,placeholder:"संदेश भेजें...",placeholderWithReference:"संदेश भेजें (संदर्भ सहित)",placeholderWithWorkflows:"संदेश भेजें... (वर्कफ़्लो के लिए '/' टाइप करें)",toolCallsOnly:"केवल टूल कॉल (अनुमत टूल: {{tools}})",autoPrefixMode:"ऑटो-प्रिफिक्स मोड: {{prefix}} (टूल चुनने के लिए '/' टाइप करें)",toolSpecificMode:"टूल-विशिष्ट मोड (अनुमत टूल: {{tools}})",processingFiles:"फ़ाइलें प्रोसेस की जा रही हैं…",addAttachments:"संलग्नक जोड़ें",referenceWorkspaceFiles:"वर्कस्पेस फ़ाइलों का संदर्भ दें",imageCountSingular:"{{count}} छवि",imageCountPlural:"{{count}} छवियाँ",moreImages:"+{{count}} और",clearAllImages:"सभी छवियाँ साफ़ करें",reasoningTitle:"रीज़निंग प्रयास: {{label}}",reasoning:{...e.chat.input.reasoning,low:"कम",medium:"मध्यम",high:"उच्च",xhigh:"बहुत उच्च",max:"अधिकतम"},strictToolOnlyMode:"सख्त केवल-टूल मोड",toolSpecificModeLabel:"टूल-विशिष्ट मोड",allowedTools:"अनुमत टूल:",autoPrefixLabel:"ऑटो प्रिफिक्स: {{prefix}}",mustStartWithPrefix:'संदेश "{{prefix}}" से शुरू होना चाहिए'},prompt:{...e.chat.prompt,selectorTitle:"सिस्टम प्रॉम्प्ट चुनें",createButton:"नया सेशन बनाएँ",helperText:"AI के लिए आधार सिस्टम प्रॉम्प्ट चुनें। आप सिस्टम सेटिंग्स में प्रॉम्प्ट जोड़ या संपादित कर सकते हैं।",emptyDescription:"कोई सिस्टम प्रॉम्प्ट नहीं मिला। सिस्टम सेटिंग्स में एक जोड़ें।",newSessionSelectorTitle:"नए सेशन के लिए सिस्टम प्रॉम्प्ट चुनें",defaultDescription:"डिफ़ॉल्ट सिस्टम प्रॉम्प्ट।",loadPresetsFailed:"प्रिसेट लोड करने में विफल",loadCurrentInfoFailed:"वर्तमान जानकारी लोड करने में विफल"},commandSelector:{...e.chat.commandSelector,loading:"कमांड लोड हो रहे हैं...",emptyWithSearch:'"{{search}}" से मेल खाने वाली कोई कमांड नहीं मिली',empty:"कोई कमांड उपलब्ध नहीं है।",navigationHint:"नेविगेशन: ऊपर/नीचे या Ctrl+P/N | चयन: Enter | पूर्ण करें: Space/Tab | रद्द: Esc",types:{...e.chat.commandSelector.types,workflow:"वर्कफ़्लो",skill:"स्किल",mcp:"MCP"}},model:{...e.chat.model,selectModel:"मॉडल चुनें",noModelSelected:"कोई मॉडल चयनित नहीं",selectModelHint:"चैट शुरू करने के लिए एक मॉडल चुनें।",providerNotConfigured:"प्रोवाइडर कॉन्फ़िगर नहीं है",configureProviderHint:"मॉडल चुनने से पहले सेटिंग्स में प्रोवाइडर कॉन्फ़िगर करें।",configureProvider:"प्रोवाइडर कॉन्फ़िगर करें",openSettings:"सेटिंग्स खोलें",noModelsAvailable:"कोई मॉडल उपलब्ध नहीं",selectModelBeforeSend:"भेजने से पहले मॉडल चुनें।",selectModelBeforeRetry:"पुनः प्रयास से पहले मॉडल चुनें।"},streaming:{...e.chat.streaming,assistant:"Bodhi",requestCancelled:"अनुरोध रद्द किया गया",sendFailed:"संदेश भेजने में विफल",retryFailed:"पुनः प्रयास विफल",modelConfigNotLoaded:"मॉडल कॉन्फ़िगरेशन लोड नहीं हुआ",agentUnavailable:"एजेंट उपलब्ध नहीं",noActiveChatTitle:"कोई सक्रिय चैट नहीं",noActiveChatSendContent:"संदेश भेजने से पहले चैट बनाएँ या चुनें।",noActiveChatRetryContent:"पुनः प्रयास से पहले चैट बनाएँ या चुनें।",noChatIdTitle:"चैट ID अनुपस्थित",noChatIdSendContent:"वर्तमान चैट में ID नहीं है। नया चैट बनाकर पुनः प्रयास करें।",noChatIdRetryContent:"वर्तमान चैट में ID नहीं है। नया चैट बनाकर पुनः प्रयास करें।"},selectionToolbar:{...e.chat.selectionToolbar,selectMessages:"संदेश चुनें",selectedCount:"{{selected}} चयनित (कुल {{total}})",selectAll:"सभी चुनें",clear:"साफ़ करें",exportMarkdown:"Markdown निर्यात करें",exportPdf:"PDF निर्यात करें",done:"पूर्ण"},subAgents:{...e.chat.subAgents,title:"उप-एजेंट",expand:"विस्तार करें",collapse:"संक्षिप्त करें",continue:"यहीं जारी रखें",open:"खोलें",retry:"पुनः प्रयास करें",hiddenHint:"{{count}} उप-एजेंट छिपे हुए"},chatItem:{...e.chat.chatItem,edit:"संपादित करें",childTag:"चाइल्ड"},systemPromptSelector:{...e.chat.systemPromptSelector,defaultTag:"डिफ़ॉल्ट",hide:"छिपाएँ",preview:"पूर्वावलोकन",copy:"कॉपी करें",lines:"{{count}} पंक्तियाँ",words:"{{count}} शब्द",chars:"{{count}} अक्षर",noContent:"कोई सामग्री नहीं"},title:{...e.chat.title,updated:"चैट शीर्षक अपडेट हुआ",generateFailed:"चैट शीर्षक बनाने में विफल"},respond:{...e.chat.respond,customAnswerPlaceholder:"अपना कस्टम उत्तर लिखें..."},multiPane:{...e.chat.multiPane,splitHorizontal:"क्षैतिज विभाजित करें",splitVertical:"ऊर्ध्वाधर विभाजित करें",closePane:"पैन बंद करें",selectSessionHint:"संदेश देखने के लिए एक सेशन चुनें",hoverToSplitHint:"चैट तुलना के लिए पैन पर होवर करके विभाजित करें",selectMessagesToExport:"निर्यात के लिए संदेश चुनें"},messageCard:{...e.chat.messageCard,authRequired:"प्रमाणीकरण आवश्यक",goToSettings:"सेटिंग्स पर जाएँ",assistantThinking:"सहायक सोच रहा है...",reasoning:"रीज़निंग",selected:"चयनित",selectedTool:"चयनित टूल"},messageActions:{...e.chat.messageActions,copy:"कॉपी करें",exportMarkdown:"Markdown के रूप में निर्यात करें",exportPdf:"PDF के रूप में निर्यात करें",restoreChat:"केवल चैट पुनर्स्थापित करें",restoreFilesAndChat:"फ़ाइलें और चैट पुनर्स्थापित करें",deleteMessage:"संदेश हटाएँ",savedFile:"{{filename}} में सहेजा गया",nothingToExport:"निर्यात करने के लिए कुछ नहीं",exportFailed:"निर्यात विफल",cannotRestore:"यह संदेश पुनर्स्थापित नहीं किया जा सकता",restorePartial:"चैट पुनर्स्थापित हुई। {{count}} फ़ाइल(ें) पुनर्स्थापित नहीं हो सकीं।",restoreFilesSuccess:"फ़ाइलें और चैट पुनर्स्थापित ({{count}} संदेश हटाए गए)।",restoreSuccess:"चैट पुनर्स्थापित ({{count}} संदेश हटाए गए)।",restoreFailed:"चैट पुनर्स्थापित करने में विफल",pdfUnavailable:"इस वातावरण में PDF निर्यात उपलब्ध नहीं है",exportingPdf:"PDF निर्यात हो रहा है..."},session:{...e.chat.session,defaultTitle:"नया सत्र"}},settings:{...t.settings,page:{...t.settings.page,tabs:{...t.settings.page.tabs,envVars:"पर्यावरण वेरिएबल्स"}},configTab:{...t.settings.configTab,loadBambooConfigFailed:"Bamboo कॉन्फ़िग लोड करने में विफल",bambooConfigSaved:"Bamboo कॉन्फ़िग सहेजा गया",saveBambooConfigFailed:"Bamboo कॉन्फ़िग सहेजने में विफल"},keywordMaskingTab:{...e.settings.keywordMaskingTab,title:"कीवर्ड मास्किंग",addKeyword:"कीवर्ड जोड़ें",description:"Copilot API को भेजने से पहले मास्क किए जाने वाले कीवर्ड कॉन्फ़िगर करें। शाब्दिक स्ट्रिंग के लिए सटीक मिलान या पैटर्न के लिए regex उपयोग करें। सभी मिलान [MASKED] से बदले जाएंगे।",empty:"कोई कीवर्ड मास्किंग नियम कॉन्फ़िगर नहीं है",cancel:"रद्द करें",patternPlaceholder:"मिलान का पैटर्न दर्ज करें",examples:"उदाहरण",exactMatch:"सटीक मिलान",regexPattern:"Regex पैटर्न",enabled:"सक्षम",disabled:"अक्षम",sampleText:"नमूना टेक्स्ट",sampleTextPlaceholder:"नमूना टेक्स्ट दर्ज करें",maskedPreview:"मास्क किया गया पूर्वावलोकन",emptyPattern:"(खाली)",loadFailed:"कीवर्ड मास्किंग कॉन्फ़िगरेशन लोड करने में विफल",saveFailed:"कॉन्फ़िगरेशन सहेजने में विफल",saveSuccess:"कीवर्ड मास्किंग कॉन्फ़िगरेशन सहेजा गया",validationFailedPrefix:"सत्यापन विफल",patternRequired:"पैटर्न खाली नहीं हो सकता",invalidRegexPattern:"अमान्य regex पैटर्न",example:{...e.settings.keywordMaskingTab.example,literalToken:"शाब्दिक टोकन मास्क करें",githubTokens:"GitHub टोकन मास्क करें",awsKeys:"AWS key मास्क करें",emails:"ईमेल पते मास्क करें"}}},components:{...e.components,workflowResult:{...e.components.workflowResult,userWorkflow:"उपयोगकर्ता वर्कफ़्लो",waitingForResult:"वर्कफ़्लो परिणाम की प्रतीक्षा...",executionFailed:"वर्कफ़्लो निष्पादन विफल",retryWorkflow:"वर्कफ़्लो पुनः चलाएँ",copyParameters:"पैरामीटर्स कॉपी करें",copyResult:"परिणाम कॉपी करें",expandResult:"परिणाम विस्तार करें",collapseResult:"परिणाम संक्षिप्त करें"},toolResult:{...e.components.toolResult,waiting:"प्रतीक्षा में",waitingForResult:"परिणाम की प्रतीक्षा...",executionFailed:"टूल निष्पादन विफल",copyResult:"परिणाम कॉपी करें",checkpoint:"चेकपॉइंट",checkpointNone:"कोई नहीं",diffTruncated:"डिफ़ बहुत लंबा है और काट दिया गया है"},toolCall:{...e.components.toolCall,liveOutput:"लाइव आउटपुट",keyParameters:"मुख्य पैरामीटर्स",fullParameters:"पूर्ण पैरामीटर्स",copyParameters:"पैरामीटर्स कॉपी करें"},plan:{...e.components.plan,executionPlan:"निष्पादन योजना",goal:"लक्ष्य",steps:"चरण",stepTitle:"चरण {{number}}",reason:"कारण",estimated:"अनुमानित",tools:"टूल्स",prerequisites:"पूर्वापेक्षाएँ",potentialRisks:"संभावित जोखिम ({{count}})",totalEstimatedTime:"कुल अनुमानित समय",feedbackPlaceholder:"एजेंट को बताएँ क्या समायोजित करना है...",sendFeedback:"फ़ीडबैक भेजें",refinePlan:"योजना परिष्कृत करें",executePlan:"योजना निष्पादित करें"},question:{...e.components.question,agentQuestion:"एजेंट प्रश्न",context:"संदर्भ",chooseOption:"एक विकल्प चुनें",recommended:"अनुशंसित",customAnswerHint:"कोई उपयुक्त विकल्प नहीं? अपना उत्तर लिखें।",customAnswerPlaceholder:"अपना कस्टम उत्तर लिखें...",submitAnswer:"उत्तर सबमिट करें"},questionDialog:{...e.components.questionDialog,selectOptionWarning:"सबमिट करने से पहले एक विकल्प चुनें।",responseSubmitted:"उत्तर सबमिट किया गया",responseSubmittedContinue:"उत्तर सबमिट किया गया, AI आगे प्रोसेस करेगा",submitFailed:"उत्तर सबमिट करने में विफल",noModelConfigured:"कोई मॉडल कॉन्फ़िगर नहीं है",customAnswerTip:"कस्टम उत्तर",otherTypeBelow:"अन्य (नीचे लिखें)",confirm:"पुष्टि करें"},skillManager:{...e.components.skillManager,title:"स्किल्स",refresh:"रीफ्रेश करें",skillsRefreshed:"स्किल्स रीफ्रेश हुईं",lastUpdated:"अंतिम अपडेट: {{value}}",justNow:"अभी-अभी",secondsAgo:"{{count}} सेकंड पहले",minutesAgo:"{{count}} मिनट पहले",searchPlaceholder:"स्किल्स खोजें",readOnlyHint:"रीड-ओनली मोड: स्किल्स संपादित नहीं की जा सकतीं।",noSkillsFound:"कोई स्किल नहीं मिली",noMatch:"खोज से मेल खाती कोई स्किल नहीं मिली",loadFailed:"स्किल्स लोड करने में विफल",getFailed:"स्किल प्राप्त करने में विफल"},skillSelector:{...e.components.skillSelector,placeholder:"स्किल्स चुनें"},imageGrid:{...e.components.imageGrid,preview:"पूर्वावलोकन",ocr:"OCR"},todoList:{...e.components.todoList,title:"कार्य सूची",evaluating:"मूल्यांकन जारी",pin:"पिन करें",unpin:"अनपिन करें",llmEvaluation:"LLM मूल्यांकन",tools:"टूल्स",dependsOn:"निर्भर करता है: {{deps}}",dependencies:"निर्भरताएँ",status:{...e.components.todoList.status,pending:"लंबित",inProgress:"प्रगति में",completed:"पूर्ण",blocked:"अवरोधित"}},tokenUsage:{...e.components.tokenUsage,title:"टोकन उपयोग",summary:"सारांश",system:"सिस्टम",messages:"संदेश",tokens:"टोकन",usedPercent:"{{value}}% उपयोग"},approval:{...e.components.approval,workflow:"वर्कफ़्लो",executionRequest:"निष्पादन अनुरोध",aiWantsExecute:"AI निम्नलिखित क्रिया निष्पादित करना चाहता है"},toolSession:{...e.components.toolSession,title:"टूल सेशन",running:"चल रहा है",done:"पूर्ण",error:"त्रुटि",completedOnly:"{{completed}} पूर्ण",completedWithErrors:"{{completed}} पूर्ण (त्रुटियों सहित)",completedProgress:"{{completed}} / {{total}} पूर्ण",noPersistedMessage:"कोई स्थायी आउटपुट नहीं",deleteMessage:"टूल सेशन हटाएँ"},mermaid:{...e.components.mermaid,loadingDiagram:"डायग्राम लोड हो रहा है...",diagramError:"Mermaid डायग्राम त्रुटि",errorTitlePrefix:"त्रुटि",checkConsoleHint:"Mermaid सिंटैक्स जाँचें या विवरण के लिए कंसोल खोलें।",fixMermaid:"Mermaid ठीक करें",renderingDiagram:"डायग्राम रेंडर हो रहा है...",exportSvg:"SVG निर्यात करें",exportFailed:"डायग्राम निर्यात विफल"}}}},W=e=>({...e,app:{...e.app,loading:"載入中..."},chat:{...e.chat,sidebar:{...e.chat.sidebar,newSession:"新建會話",empty:{noSessions:"暫無會話",hint:"點擊「新建會話」開始"},dateGroups:{today:"今天",yesterday:"昨天",thisWeek:"本週",thisMonth:"本月",pinned:"置頂",scheduled:"計劃任務"},actions:{collapseChildren:"摺疊子會話",expandChildren:"展開子會話"}}},settings:{...e.settings,page:{...e.settings.page,title:"系統設定",tabs:{...e.settings.page.tabs,config:"設定",modelLimits:"模型限制",metrics:"指標",sessions:"會話",app:"應用",provider:"供應商",masking:"脫敏"},groups:{...e.settings.page.groups,ai:"AI",toolsAndExtensions:"工具與擴展",securityAndPrivacy:"安全",monitoring:"監控",system:"系統"}},configTab:{...e.settings.configTab,loadConfigFailed:"載入配置失敗",invalidConfig:"配置無效",saveConfigSuccess:"配置保存成功",saveConfigFailed:"保存配置失敗",backendSaved:"後端地址已保存",backendResetDefault:"後端地址已重設為預設值",providerMovedTitle:"Provider 配置已遷移",providerMovedDescription:"GitHub Copilot 和其他 Provider 配置已遷移到 Provider Settings 分頁,請前往該頁面設定。",backendApiBaseUrlTitle:"後端 API 基礎位址",backendApiHint:"必須包含 /v1 路徑",resetToDefault:"恢復預設",save:"保存",language:"語言",languageEnglish:"English",languageChinese:"簡體中文",languageTraditionalChinese:"繁體中文",languageFrench:"Français",languageJapanese:"日本語",languageHindi:"印地語"},appTab:{...e.settings.appTab,language:"語言",languageEnglish:"English",languageChinese:"簡體中文",languageTraditionalChinese:"繁體中文",languageFrench:"Français",languageJapanese:"日本語",languageHindi:"印地語"}}}),G={"fr-FR":async()=>{const e=(await c("en-US")).translation;return{translation:g(B(e),D)}},"hi-IN":async()=>{const e=(await c("en-US")).translation;return{translation:g(V(e),O)}},"ja-JP":async()=>{const e=(await c("en-US")).translation;return{translation:N(e)}},"zh-TW":async()=>{const e=(await c("zh-CN")).translation;return{translation:W(e)}}},J=new Set(["en-US","zh-CN"]),C=new Map,h=e=>{const t=C.get(e);if(t)return t;const i=(async()=>{if(J.has(e))return await c(e);const o=G[e];if(!o)throw new Error(`No i18n resource loader registered for locale: ${e}`);return o()})();return C.set(e,i),i},T=async e=>{if(r.hasResourceBundle(e,"translation"))return;const t=await h(e);r.addResourceBundle(e,"translation",t.translation,!0,!1)},n=H(),P=(async()=>{const e={};if(e[d]=await h(d),n!==d&&(e[n]=await h(n)),!r.isInitialized){r.use(R),await r.init({resources:e,lng:n,fallbackLng:d,supportedLngs:A,interpolation:{escapeValue:!1},react:{useSuspense:!1},returnNull:!1});return}await T(n),r.language!==n&&await r.changeLanguage(n)})(),ee=async e=>(await P,await T(e),r.changeLanguage(e)),k=document.getElementById("root");if(!k)throw new Error("Missing #root element for Bodhi app bootstrap");const x=M.createRoot(k),_=e=>{const t=e instanceof Error?`${e.name}: ${e.message}`:String(e||"Unknown startup error");console.error("[Bodhi] Failed to bootstrap app:",e),x.render(l.jsx(S.StrictMode,{children:l.jsx("div",{style:{height:"100vh",display:"flex",alignItems:"center",justifyContent:"center",padding:24,background:"var(--lotus-main-surface, #f6f6f6)",color:"var(--color-gray-800, #0f0f0f)",fontFamily:"system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif"},children:l.jsxs("div",{style:{maxWidth:720,textAlign:"left"},children:[l.jsx("h2",{style:{margin:"0 0 12px"},children:"Bodhi UI failed to start"}),l.jsx("p",{style:{margin:0,lineHeight:1.5,whiteSpace:"pre-wrap"},children:t})]})})}))},K=async()=>{try{await P;const{default:e}=await m(async()=>{const{default:t}=await import("./App-BocqxYkX.js").then(i=>i.a6);return{default:t}},__vite__mapDeps([0,1,2,3,4,5]),import.meta.url);x.render(l.jsx(S.StrictMode,{children:l.jsx(e,{})}))}catch(e){_(e)}};K();export{I as A,ee as a,X as c,H as r};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as r,b as e,a,S as s}from"./chunk-OYMX7WX6-CUAa_Yz6.js";import{a8 as i}from"./vendor-mermaid-De-Yacw-.js";import"./chunk-55IACEB6-DmAIxchJ.js";import"./chunk-EDXVE4YY-FvClTRCF.js";import"./vendor-antd-DODjfilb.js";import"./vendor-i18n-BNURlJ23.js";var _={parser:a,get db(){return new s(2)},renderer:e,styles:r,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{_ as diagram};
|