@acedatacloud/nexior 3.271.0 → 3.272.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/dist/assets/{ApiCodeButton-NZmohixj.js → ApiCodeButton-DmgbbHgv.js} +1 -1
  2. package/dist/assets/{AskUserQuestionCard-CzCquW90.js → AskUserQuestionCard-BqHFLywL.js} +5 -5
  3. package/dist/assets/AskUserQuestionCard-CaxXoCO4.css +1 -0
  4. package/dist/assets/{Auth--j9HOElw.js → Auth-DeCYgNQ-.js} +1 -1
  5. package/dist/assets/{Bare-DoHJaQti.js → Bare-D2g7TWIi.js} +1 -1
  6. package/dist/assets/{BotPlaceholder-B31ZLizv.js → BotPlaceholder-DdLK7DwC.js} +1 -1
  7. package/dist/assets/{BottomFooter-Dl_JMCjK.js → BottomFooter-CjIfHdMh.js} +1 -1
  8. package/dist/assets/{Callback-Pxbwkhf2.js → Callback-8uKnd5gW.js} +1 -1
  9. package/dist/assets/{Console-B-41ogBg.js → Console-fIjEqCjc.js} +1 -1
  10. package/dist/assets/{Consumption-QVfFA0o8.js → Consumption-DiPiwllg.js} +1 -1
  11. package/dist/assets/Conversation-BUelWx1T.js +3 -0
  12. package/dist/assets/{CopyToClipboard-C9-GE8Ha.js → CopyToClipboard-BvqdtQdo.js} +1 -1
  13. package/dist/assets/{Detail-mOjKpgWe.js → Detail-CkvtJk79.js} +2 -2
  14. package/dist/assets/{Extra-o8SxNj2W.js → Extra-Bet8UHnl.js} +1 -1
  15. package/dist/assets/{FilePreview-BjreVsgA.js → FilePreview-BhfWzt3j.js} +1 -1
  16. package/dist/assets/{Hailuo-Cgxleajs.js → Hailuo-DaImuNaU.js} +1 -1
  17. package/dist/assets/{History-BbdwSV8D.js → History-Buz6IbGa.js} +1 -1
  18. package/dist/assets/{ImagePreview-k9hQwsmN.js → ImagePreview-Cel1agBC.js} +1 -1
  19. package/dist/assets/{ImageWrapper-DvojBMWE.js → ImageWrapper-D4L76WuX.js} +1 -1
  20. package/dist/assets/{Index-BHm1EA7G.js → Index-B3YHu4KC.js} +1 -1
  21. package/dist/assets/{Index-CawCffeu.js → Index-B5G49g-6.js} +1 -1
  22. package/dist/assets/{Index-D4_gP4G8.js → Index-B949lS_I.js} +1 -1
  23. package/dist/assets/{Index-CHYKZSsA.css → Index-Bi2OfoQe.css} +1 -1
  24. package/dist/assets/{Index-BddmK6uY.js → Index-BjrTSkOB.js} +1 -1
  25. package/dist/assets/{Index-D4IBPmcb.js → Index-BkT_hdus.js} +1 -1
  26. package/dist/assets/{Index-DNO1RmUZ2.js → Index-C16XGcSA2.js} +1 -1
  27. package/dist/assets/Index-C50ClBNG.js +1 -0
  28. package/dist/assets/Index-C82mVBtq.js +1 -0
  29. package/dist/assets/{Index-Dxsvdy5P.js → Index-CSs5_J7s.js} +1 -1
  30. package/dist/assets/{Index-CYzHknxn.js → Index-Ckikz9nL.js} +1 -1
  31. package/dist/assets/{Index-D_QRlioP.js → Index-Cog_vg19.js} +1 -1
  32. package/dist/assets/{Index-cbWz3Bri.js → Index-CwCsz8IS.js} +1 -1
  33. package/dist/assets/{Index-DuQj5wDl.js → Index-D56Gl5U0.js} +1 -1
  34. package/dist/assets/{Index-B39dwEqR.js → Index-DFTWHLYR.js} +1 -1
  35. package/dist/assets/{Index-CJsGmTkc.js → Index-DWk_ajm7.js} +1 -1
  36. package/dist/assets/{Index-C1715pS6.js → Index-DZkgTeM-.js} +1 -1
  37. package/dist/assets/{Index-DzB53DpC.js → Index-DkoJlXL0.js} +1 -1
  38. package/dist/assets/Index-DoThKXvJ.js +1 -0
  39. package/dist/assets/{Index-B58nhq_9.js → Index-DzzuviGC.js} +1 -1
  40. package/dist/assets/{Index-CLRKMVPn.js → Index-K8gO-aDG.js} +1 -1
  41. package/dist/assets/{Index-_k4n4wxt.js → Index-ME4gEbg6.js} +1 -1
  42. package/dist/assets/{Index-AfT9-WQj2.js → Index-RJ2QKasP2.js} +1 -1
  43. package/dist/assets/Index-a__Lr50W.js +1 -0
  44. package/dist/assets/{Index-Ba-jxs03.js → Index-n0QQo3Ww.js} +1 -1
  45. package/dist/assets/{Index-DVpS7maI2.js → Index-ua_TP9VB2.js} +1 -1
  46. package/dist/assets/{Invitees-DGSY6H_c.js → Invitees-DbZu96Ko.js} +1 -1
  47. package/dist/assets/{List-Cpgkv3ew.js → List-CFcHC1BQ.js} +1 -1
  48. package/dist/assets/{List-CKyyLk8i.js → List-CeQcmnkV.js} +1 -1
  49. package/dist/assets/{List-vIO3mu-9.js → List-DVafqPMb.js} +1 -1
  50. package/dist/assets/{Main-BGl5LrAQ.js → Main-CHVTmTmi.js} +1 -1
  51. package/dist/assets/{Model-Ce28vSgp.js → Model-9Iq2_30B.js} +1 -1
  52. package/dist/assets/{Navigator-D27iIJC-.js → Navigator-DQw6TS7u.js} +2 -2
  53. package/dist/assets/{NoTasks-CMoBXPcD.js → NoTasks-BvxBJO_n.js} +1 -1
  54. package/dist/assets/{NotFound-bpbp2G7w.js → NotFound-Ces6ZqID.js} +1 -1
  55. package/dist/assets/{Pagination-DPHReSGY.js → Pagination-CARpmT0K.js} +1 -1
  56. package/dist/assets/{Pay-B90Ebep_.js → Pay-Dz29D1-Q.js} +1 -1
  57. package/dist/assets/{Player-BQHc5wF7.js → Player-BT1OJI1o.js} +1 -1
  58. package/dist/assets/{Status-r_ulgsxk.js → Status-Co7VN9Zl.js} +1 -1
  59. package/dist/assets/{Subscribe-BYjc9RSK.js → Subscribe-BkDoXW1c.js} +1 -1
  60. package/dist/assets/{TabSwitcher-BzckdjHN.js → TabSwitcher-C3Kf0k0t.js} +1 -1
  61. package/dist/assets/{Tts-Df6jDZpY.js → Tts-B9a3WBQB.js} +1 -1
  62. package/dist/assets/{VideoPlayer-x2LV9q35.js → VideoPlayer-BBb01skM.js} +1 -1
  63. package/dist/assets/{avatar-CWN-l-dA.js → avatar-B-kgl6b8.js} +1 -1
  64. package/dist/assets/{basic-DcWpraW8.js → basic-NQnNaDEK.js} +1 -1
  65. package/dist/assets/{chat-BfMY33eF.js → chat-CCUl7-iP.js} +1 -1
  66. package/dist/assets/{codingBridge-CrUswuyr.js → codingBridge-BCdY-7LL.js} +1 -1
  67. package/dist/assets/{codingBridge-DdTYVSZG.js → codingBridge-BFvinfZm.js} +1 -1
  68. package/dist/assets/{codingBridge-BTImjAyn.js → codingBridge-BIk_g6XI.js} +1 -1
  69. package/dist/assets/{codingBridge-BmRZX6g7.js → codingBridge-BNLPQfcB.js} +1 -1
  70. package/dist/assets/{codingBridge-C8Pcp3RH.js → codingBridge-BQpL36C8.js} +1 -1
  71. package/dist/assets/{codingBridge-dTmunGY_.js → codingBridge-BmF1iiRA.js} +1 -1
  72. package/dist/assets/{codingBridge-rueL5mGb.js → codingBridge-C4SdYcxG.js} +1 -1
  73. package/dist/assets/{codingBridge-DLWLEYmq.js → codingBridge-C_zYqcPg.js} +1 -1
  74. package/dist/assets/{codingBridge-BMNCnJBy.js → codingBridge-CcD-p5UZ.js} +1 -1
  75. package/dist/assets/{codingBridge-CNy4rTdD.js → codingBridge-Cks2hxaa.js} +1 -1
  76. package/dist/assets/{codingBridge-BkD4sr9i.js → codingBridge-ClZoc5vq.js} +1 -1
  77. package/dist/assets/{codingBridge-C51QvQzN.js → codingBridge-D-iSlWtJ.js} +1 -1
  78. package/dist/assets/codingBridge-D2GU6WEK.js +2 -0
  79. package/dist/assets/{codingBridge-B_J3GI6x.js → codingBridge-DRvMxeh3.js} +1 -1
  80. package/dist/assets/{codingBridge-CszuWuik.js → codingBridge-DcNEFGfM.js} +1 -1
  81. package/dist/assets/{codingBridge-iLKD6z57.js → codingBridge-DkAMWy7B.js} +1 -1
  82. package/dist/assets/{codingBridge-Cy23dz9o.js → codingBridge-aimgP5u6.js} +1 -1
  83. package/dist/assets/{codingBridge-B4lV_uDI.js → codingBridge-f6O1bx99.js} +1 -1
  84. package/dist/assets/{codingBridge-D50vkZrk.js → codingBridge-qsb1Bcs4.js} +1 -1
  85. package/dist/assets/{collapse-D5ISaJhT.js → collapse-DCoJLlkZ.js} +1 -1
  86. package/dist/assets/{constants-Bt5WGqZw.js → constants-vDFRJTq6.js} +1 -1
  87. package/dist/assets/{createTaskActions-CpJQYR3F.js → createTaskActions-CirZ3ZjL.js} +1 -1
  88. package/dist/assets/{date-picker-DPo4CavG.js → date-picker-DTkfZEzy.js} +1 -1
  89. package/dist/assets/{dropdown-57JmuePV.js → dropdown-ApRxFZDH.js} +1 -1
  90. package/dist/assets/{esm-CwORCRif.js → esm-BL86PSOV.js} +3 -3
  91. package/dist/assets/{esm-Cm-Hb10-.js → esm-CQp8gSdR.js} +2 -2
  92. package/dist/assets/{esm-DAieOved.js → esm-D6UTzOcl.js} +1 -1
  93. package/dist/assets/{esm-yn1dwbWf.js → esm-DCuOb9aF.js} +1 -1
  94. package/dist/assets/{esm-ChN5xdM-.js → esm-DLn8-aqC.js} +1 -1
  95. package/dist/assets/{fish-XddxaG5O.js → fish-D0XwmhC6.js} +1 -1
  96. package/dist/assets/{flux-CkkDbLQY.js → flux-Cq1tftwS.js} +1 -1
  97. package/dist/assets/{hailuo-CjFb1O1H.js → hailuo-BnEyKSHm.js} +1 -1
  98. package/dist/assets/{headshots-flGYHkcO.js → headshots-BPvvGwtB.js} +1 -1
  99. package/dist/assets/{image-BXBNi5iA.js → image-DvjKNoxC.js} +1 -1
  100. package/dist/assets/{index-DXE85bHt.js → index-Bpg44eWB.js} +5 -5
  101. package/dist/assets/{index.browser.esm-Cref-ei9.js → index.browser.esm-DzBgLs84.js} +1 -1
  102. package/dist/assets/{index.es-B6aGXFcX.js → index.es-D2Gtib5p.js} +1 -1
  103. package/dist/assets/{input-number-Dx-0zAs3.js → input-number-Oh-d0JaX.js} +1 -1
  104. package/dist/assets/{kling-CA4jW_ki.js → kling-xSsQUjlg.js} +1 -1
  105. package/dist/assets/{luma-B08ye6L4.js → luma-DDiKGWVj.js} +1 -1
  106. package/dist/assets/{midjourney-Dyp5HCB9.js → midjourney-Cd-twOLj.js} +1 -1
  107. package/dist/assets/{nanobanana-Dn_qRQke.js → nanobanana-DxY6uqP0.js} +1 -1
  108. package/dist/assets/{openaiimage-CRxv3DgR.js → openaiimage-BpVpztMb.js} +1 -1
  109. package/dist/assets/{pagination-BNffOlni.js → pagination-BlR28kYu.js} +1 -1
  110. package/dist/assets/{pika-Bm72QCAC.js → pika-D6ek_DUA.js} +1 -1
  111. package/dist/assets/{pixverse-pZzWn-TG.js → pixverse-NGrvOUF9.js} +1 -1
  112. package/dist/assets/{popover-DpltlERK.js → popover-CcRl4vxr.js} +1 -1
  113. package/dist/assets/{producer-BhYY02OJ.js → producer-CvJ733bR.js} +1 -1
  114. package/dist/assets/{qrart-8rr58ivO.js → qrart-BBOZfldd.js} +1 -1
  115. package/dist/assets/{row-CrNKEd4T.js → row-pgH1L2rc.js} +1 -1
  116. package/dist/assets/{seedance-LfQa60he.js → seedance-DfYwbJeD.js} +1 -1
  117. package/dist/assets/{seedream-IhRfNicF.js → seedream-C7tpvM_U.js} +1 -1
  118. package/dist/assets/{select-DpY6_x_0.js → select-BR8DyZel.js} +1 -1
  119. package/dist/assets/{serp-Bjbj3c8N.js → serp-BPd5r_IS.js} +1 -1
  120. package/dist/assets/{slider-lao_fzf8.js → slider-BZdPs70x.js} +1 -1
  121. package/dist/assets/{solana-wallets-hf1PX8fD.js → solana-wallets-C5d77CHX.js} +2 -2
  122. package/dist/assets/{solana-wallets-vue-BlvvztAp.js → solana-wallets-vue-Cy6CKdZs.js} +1 -1
  123. package/dist/assets/{sora-Cwi0SbUz.js → sora-BHfbeScD.js} +1 -1
  124. package/dist/assets/{suno-Do1JuImT.js → suno-BSfRKrHj.js} +1 -1
  125. package/dist/assets/{switch-DvnDDjvA.js → switch-D1UMnFeG.js} +1 -1
  126. package/dist/assets/{tabs-DyoZnQLw.js → tabs-DecpaDdx.js} +1 -1
  127. package/dist/assets/{upload-D22l7fnu.js → upload-DD2n4P3p.js} +1 -1
  128. package/dist/assets/{veo-CnsjJ4wS.js → veo-DRL8dCBY.js} +1 -1
  129. package/dist/assets/{wan-CZCHtZQH.js → wan-BCPd-DA5.js} +1 -1
  130. package/dist/assets/{web-DA5PLgHG.js → web-CVcqWo5X.js} +1 -1
  131. package/dist/assets/{web-CkUVxy0D.js → web-D_OeX-rD.js} +1 -1
  132. package/dist/assets/{web-DLN5JpYN.js → web-DqbD1cTl.js} +1 -1
  133. package/dist/assets/{web-BBQ-9WVT.js → web-VzzrXY4l.js} +1 -1
  134. package/dist/assets/{webextrator-DqOUMJAZ.js → webextrator-DjFiPf2q.js} +1 -1
  135. package/dist/index.html +2 -2
  136. package/package.json +1 -1
  137. package/dist/assets/AskUserQuestionCard-BRVY8u28.css +0 -1
  138. package/dist/assets/Conversation-DZg4daG1.js +0 -3
  139. package/dist/assets/Index-BA7d2KT4.js +0 -1
  140. package/dist/assets/Index-BaWzrnK9.js +0 -1
  141. package/dist/assets/Index-CHkGtyoj.js +0 -1
  142. package/dist/assets/Index-rnvx8cCd.js +0 -1
  143. package/dist/assets/codingBridge-BCdEEfdY.js +0 -2
@@ -0,0 +1,2 @@
1
+ import{A as e,C as t,D as n,E as r,M as i,N as a,O as o,S as s,T as c,_ as l,a as u,b as d,c as f,d as p,f as m,g as h,h as g,i as _,j as v,k as y,l as b,m as x,n as S,o as C,p as w,qr as T,r as E,s as D,t as O,u as k,v as A,w as j,x as M,y as N}from"./constants-vDFRJTq6.js";import{Fn as P,Ut as F,gr as I}from"./index-Bpg44eWB.js";var L=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,R=class{ws;token;handlers;reconnectDelay=a;reconnectTimer;closedByUser=!1;constructor(e,t){this.token=e,this.handlers=t}get isOpen(){return this.ws?.readyState===WebSocket.OPEN}connect(){this.closedByUser=!1,this.open()}open(){if(this.ws&&(this.ws.readyState===WebSocket.OPEN||this.ws.readyState===WebSocket.CONNECTING))return;let e=`${T}?token=${encodeURIComponent(this.token)}`,t;try{t=new WebSocket(e)}catch(e){console.warn(`[codingBridge] failed to open socket`,e),this.scheduleReconnect();return}this.ws=t,t.onopen=()=>{this.reconnectDelay=a,this.handlers.onOpen?.()},t.onmessage=e=>this.onMessage(e),t.onclose=()=>{this.handlers.onClose?.(),this.closedByUser||this.scheduleReconnect()},t.onerror=()=>{t.close()}}onMessage(t){let n;try{n=JSON.parse(t.data)}catch{return}let r=n?.payload??{};switch(n?.type){case v:this.handlers.onEvent?.(r,n?.from_node);break;case y:this.handlers.onNodesSnapshot?.(r.nodes??[]);break;case e:this.handlers.onNodeStatus?.(r.node_id,r.status);break;case m:this.handlers.onRelayError?.(r.code??`error`,r.message??``);break;default:break}}scheduleReconnect(){if(this.closedByUser||this.reconnectTimer)return;let e=this.reconnectDelay;this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=void 0,this.open()},e),this.reconnectDelay=Math.min(this.reconnectDelay*2,i)}sendEnvelope(e,t){if(!this.isOpen)return;let n={v:1,id:L(),ts:Date.now(),type:e,...t};this.ws?.send(JSON.stringify(n))}sendToNode(e,t){this.sendEnvelope(p,{node_id:e,payload:t})}listNodes(){this.sendEnvelope(k,{})}close(){if(this.closedByUser=!0,this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),void 0),this.ws){this.ws.onclose=null,this.ws.onerror=null,this.ws.onmessage=null,this.ws.onopen=null;try{this.ws.close()}catch{}this.ws=void 0}}},z,B=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,V=(e,t,n)=>({id:B(),session_id:e,kind:t,ts:Date.now(),...n}),H=e=>{try{let t=JSON.parse(e);if(t&&typeof t==`object`)return t}catch{}return{answers:{}}},U=e=>{let t=H(e).answers??{};return Object.entries(t).map(([e,t])=>`${e} → ${Array.isArray(t)?t.join(`, `):t}`).join(`
2
+ `)},W=(e,i,a,u,f)=>{let p=u?.event,m=u?.session_id;switch(p){case j:e(`upsertSession`,{session_id:m,node_id:f,status:`idle`,cwd:u.cwd,model:u.model});break;case c:e(`appendEvent`,V(m,`text`,{text:u.text}));break;case r:e(`appendEvent`,V(m,`thinking`,{text:u.text}));break;case o:e(`appendEvent`,V(m,`tool_use`,{tool:u.tool,tool_use_id:u.tool_use_id,input:u.input}));break;case n:e(`appendEvent`,V(m,`tool_result`,{tool_use_id:u.tool_use_id,content:u.content,is_error:u.is_error}));break;case l:e(`addPermission`,{request_id:u.request_id,session_id:m,node_id:f,tool:u.tool,input:u.input,title:u.title,display_name:u.display_name,description:u.description});break;case A:e(`removePermission`,u.request_id);break;case t:e(`appendEvent`,V(m,`result`,{subtype:u.subtype,is_error:u.is_error,text:u.result,cost_usd:u.cost_usd})),e(`updateSession`,{session_id:m,status:`idle`,cost_usd:u.cost_usd});break;case s:e(`appendEvent`,V(m,`notice`,{text:u.text,subtype:u.code,command:u.command,level:u.level}));break;case M:e(`appendEvent`,V(m,`error`,{text:u.message})),e(`updateSession`,{session_id:m,status:`error`});break;case d:e(`updateSession`,{session_id:m,status:`closed`});break;case N:for(let t of u.sessions??[])e(`upsertSession`,{session_id:t.session_id,node_id:f,status:t.status??`idle`,cwd:t.cwd,model:t.model});break;case h:if(f){e(`setHistory`,{node_id:f,sessions:u.sessions??[]}),e(`updateStatus`,{key:`getHistory`,value:I.Success});let t=a.historyRef;t&&t.node_id===f&&!a.currentSessionId&&i(`getHistoryDetail`,t)}break;case g:G(e,u,f);break;case x:e(`setDirectory`,{path:u.path,parent:u.parent??null,sep:u.sep??`/`,entries:u.entries??[],truncated:u.truncated,error:u.error});break;case w:f&&e(`setCapabilities`,{node_id:f,capabilities:{providers:u.providers??[]}});break;default:break}},G=(e,t,n)=>{let r=t?.session_id,i=t?.provider===`codex`?`codex`:`claude`;if(!r||!n)return;let a=i===`claude`;e(`upsertSession`,{session_id:r,node_id:n,status:`idle`,cwd:t.cwd,model:t.model,provider:i,started:!1,readonly:!a,resume_session_id:a?r:void 0}),e(`setEvents`,{session_id:r,events:(t.events??[]).map((e,t)=>({id:B(),session_id:r,kind:e.kind,ts:typeof e.ts==`number`?e.ts:Date.now()+t,text:e.text,tool:e.tool,tool_use_id:e.tool_use_id,input:e.input,content:e.content,is_error:e.is_error,subtype:e.subtype,cost_usd:e.cost_usd}))}),e(`setCurrentNode`,n),e(`setCurrentSession`,r),e(`setHistoryRef`,{node_id:n,provider:i,session_id:r})},K={namespaced:!0,state:P,mutations:{resetAll:e=>{Object.assign(e,P())},updateStatus:(e,t)=>{e.status[t.key]=t.value},setConnection:(e,t)=>{e.connection=t},setNodes:(e,t)=>{e.nodes=t},mergeNodeSnapshot:(e,t)=>{let n=new Set(t.map(e=>e.node_id));for(let t of e.nodes)t.status=n.has(t.node_id)?`online`:`offline`;for(let n of t)e.nodes.some(e=>e.node_id===n.node_id)||e.nodes.push({...n,status:`online`})},setNodeStatus:(e,t)=>{let n=e.nodes.find(e=>e.node_id===t.node_id);n&&(n.status=t.status)},setCurrentNode:(e,t)=>{e.currentNodeId=t},setCurrentSession:(e,t)=>{e.currentSessionId=t},upsertSession:(e,t)=>{e.sessions[t.session_id]={...e.sessions[t.session_id],...t},e.events[t.session_id]||(e.events[t.session_id]=[])},updateSession:(e,t)=>{let n=e.sessions[t.session_id];n&&(e.sessions[t.session_id]={...n,...t})},appendEvent:(e,t)=>{e.events[t.session_id]||(e.events[t.session_id]=[]),e.events[t.session_id].push(t)},setEvents:(e,t)=>{e.events[t.session_id]=t.events},setHistory:(e,t)=>{e.history[t.node_id]=t.sessions},setHistoryRef:(e,t)=>{e.historyRef=t},setDirectory:(e,t)=>{e.directory=t,e.directoryLoading=!1},setDirectoryLoading:(e,t)=>{e.directoryLoading=t},setCapabilities:(e,t)=>{e.capabilities[t.node_id]=t.capabilities},addPermission:(e,t)=>{e.permissions.some(e=>e.request_id===t.request_id)||e.permissions.push(t)},removePermission:(e,t)=>{e.permissions=e.permissions.filter(e=>e.request_id!==t)},removeNodeData:(e,t)=>{delete e.history[t],delete e.capabilities[t],e.historyRef?.node_id===t&&(e.historyRef=void 0);for(let n of Object.values(e.sessions))n.node_id===t&&(delete e.sessions[n.session_id],delete e.events[n.session_id],e.currentSessionId===n.session_id&&(e.currentSessionId=void 0))}},actions:{resetAll:({commit:e})=>{e(`resetAll`)},getApplications:async()=>{},setApplication:async()=>{},getNodes:async({commit:e,rootState:t})=>{let n=t.token?.access;if(!n)return[];e(`updateStatus`,{key:`getNodes`,value:I.Request});try{let{data:t}=await F.getNodes({token:n});return e(`setNodes`,t.nodes??[]),e(`updateStatus`,{key:`getNodes`,value:I.Success}),t.nodes??[]}catch(t){throw e(`updateStatus`,{key:`getNodes`,value:I.Error}),t}},claimPair:async({commit:e,dispatch:t,rootState:n},r)=>{let i=n.token?.access;if(!i)throw Error(`not authenticated`);e(`updateStatus`,{key:`claimPair`,value:I.Request});try{let{data:n}=await F.claimPair(r.trim(),{token:i});return e(`updateStatus`,{key:`claimPair`,value:I.Success}),await t(`getNodes`),n.node_name}catch(t){throw e(`updateStatus`,{key:`claimPair`,value:I.Error}),t}},deleteNode:async({commit:e,dispatch:t,state:n,rootState:r},i)=>{let a=r.token?.access;if(!a)throw Error(`not authenticated`);e(`updateStatus`,{key:`deleteNode`,value:I.Request});try{await F.deleteNode(i,{token:a}),e(`removeNodeData`,i),n.currentNodeId===i&&(e(`setCurrentNode`,void 0),e(`setCurrentSession`,void 0)),e(`updateStatus`,{key:`deleteNode`,value:I.Success}),await t(`getNodes`)}catch(t){throw e(`updateStatus`,{key:`deleteNode`,value:I.Error}),t}},connect:({commit:e,dispatch:t,state:n,rootState:r})=>{let i=r.token?.access;i&&(z?.isOpen||(z?.close(),e(`setConnection`,`connecting`),z=new R(i,{onOpen:()=>{e(`setConnection`,`connected`),n.currentNodeId&&(t(`getHistory`,n.currentNodeId),t(`getCapabilities`,n.currentNodeId))},onClose:()=>e(`setConnection`,`disconnected`),onEvent:(r,i)=>W(e,t,n,r,i),onNodesSnapshot:t=>{e(`mergeNodeSnapshot`,t)},onNodeStatus:(r,i)=>{e(`setNodeStatus`,{node_id:r,status:i}),i===`online`&&r===n.currentNodeId&&(t(`getHistory`,r),t(`getCapabilities`,r))},onRelayError:(e,t)=>console.warn(`[codingBridge] relay error`,e,t)}),z.connect()))},disconnect:({commit:e})=>{z?.close(),z=void 0,e(`setConnection`,`disconnected`)},selectNode:({commit:e,dispatch:t,state:n},r)=>{if(e(`setCurrentNode`,r),!r){e(`setCurrentSession`,void 0);return}let i=Object.values(n.sessions).filter(e=>e.node_id===r).map(e=>e.session_id);e(`setCurrentSession`,i.length?i[i.length-1]:void 0),t(`getHistory`,r),t(`getCapabilities`,r)},newSession:({commit:e})=>{e(`setCurrentSession`,void 0),e(`setHistoryRef`,void 0)},sendPrompt:({commit:e,state:t},n)=>{let r=t.currentNodeId,i=n.prompt?.trim(),a=n.images?.length?n.images:void 0,o=n.attachments?.length?n.attachments:void 0;if(!r||!z||!i&&!a&&!o)return;let s=t.currentSessionId,c=s?t.sessions[s]:void 0;if(!c||!c.started){let t=c?.provider||n.provider||`claude`;c?(s=c.session_id,e(`updateSession`,{session_id:s,status:`starting`})):(s=B(),e(`upsertSession`,{session_id:s,node_id:r,status:`starting`,cwd:n.cwd,model:n.model,provider:t}),e(`setCurrentSession`,s)),e(`appendEvent`,V(s,`prompt`,{text:i,images:a,attachments:o})),e(`updateSession`,{session_id:s,started:!0}),z.sendToNode(r,{action:b,session_id:s,prompt:i,cwd:n.cwd||c?.cwd||void 0,model:n.model||c?.model||void 0,permission_mode:n.permissionMode||`default`,provider:t,effort:n.effort||void 0,images:a,attachments:o,resume_session_id:c?.resume_session_id||void 0})}else e(`appendEvent`,V(s,`prompt`,{text:i,images:a,attachments:o})),e(`updateSession`,{session_id:s,status:`running`,model:n.model||void 0}),z.sendToNode(r,{action:f,session_id:s,prompt:i,model:n.model??``,images:a,attachments:o})},interruptSession:({state:e})=>{let t=e.currentSessionId,n=e.currentNodeId;!t||!n||!z||z.sendToNode(n,{action:D,session_id:t})},closeSession:({commit:e,state:t},n)=>{let r=n??t.currentSessionId;if(!r)return;let i=t.sessions[r]?.node_id??t.currentNodeId;i&&z&&z.sendToNode(i,{action:C,session_id:r}),e(`updateSession`,{session_id:r,status:`closed`}),t.currentSessionId===r&&e(`setCurrentSession`,void 0)},resolvePermission:({commit:e,state:t},n)=>{let r=t.permissions.find(e=>e.request_id===n.request_id);r&&(z?.sendToNode(r.node_id,{action:u,request_id:n.request_id,decision:n.decision}),e(`removePermission`,n.request_id))},answerQuestion:({commit:e,state:t},n)=>{let r=t.permissions.find(e=>e.request_id===n.request_id);r&&(z?.sendToNode(r.node_id,{action:u,request_id:n.request_id,decision:`allow`,answer:H(n.output),answer_text:U(n.output)}),e(`removePermission`,n.request_id))},getHistory:({commit:e,state:t},n)=>{let r=n??t.currentNodeId;!r||!z||(e(`updateStatus`,{key:`getHistory`,value:I.Request}),z.sendToNode(r,{action:_,limit:200}))},getHistoryDetail:(e,t)=>{!t?.node_id||!t?.session_id||!z||z.sendToNode(t.node_id,{action:E,provider:t.provider,session_id:t.session_id})},browseDir:({commit:e,state:t},n)=>{let r=t.currentNodeId;!r||!z||(e(`setDirectoryLoading`,!0),z.sendToNode(r,{action:S,path:n||void 0}))},clearDirectory:({commit:e})=>{e(`setDirectory`,void 0)},getCapabilities:({state:e},t)=>{let n=t??e.currentNodeId;!n||!z||z.sendToNode(n,{action:O})}}};export{K as codingBridge,K as default};
@@ -1 +1 @@
1
- var e={"nodeList.title":{message:`Devices`,description:`Coding Bridge device list title`},"nodeList.refresh":{message:`Refresh`,description:`Refresh the device list`},"nodeList.pair":{message:`Pair device`,description:`Open the pairing dialog`},"nodeList.empty":{message:`No devices paired yet.`,description:`Empty device list message`},"nodeList.pairFirst":{message:`Pair your first device`,description:`Empty-state pairing button`},"nodeList.remove":{message:`Remove`,description:`Remove a device`},"nodeList.removeConfirm":{message:`Remove device "{name}"? It will need to be paired again.`,description:`Device removal confirmation`},"nodeList.removeSuccess":{message:`Device removed.`,description:`Device removed toast`},"nodeList.removeFailed":{message:`Failed to remove device.`,description:`Device removal error toast`},"status.online":{message:`Online`,description:`Device online status`},"status.offline":{message:`Offline`,description:`Device offline status`},"connection.disconnected":{message:`Disconnected`,description:`Relay connection disconnected`},"connection.connecting":{message:`Connecting…`,description:`Relay connection connecting`},"connection.connected":{message:`Connected`,description:`Relay connection connected`},"connection.error":{message:`Connection error`,description:`Relay connection error`},"pair.title":{message:`Pair a device`,description:`Pairing dialog title`},"pair.intro":{message:`Run the Coding Bridge agent on your computer, then enter its pairing code here to control it from the web.`,description:`Pairing dialog intro`},"pair.step1":{message:`Install the agent (requires Python 3.10+):`,description:`Pairing step 1`},"pair.step2":{message:`Start it and follow the prompt:`,description:`Pairing step 2`},"pair.step3":{message:`Enter the pairing code it shows below.`,description:`Pairing step 3`},"pair.codePlaceholder":{message:`Pairing code`,description:`Pairing code input placeholder`},"pair.claim":{message:`Pair device`,description:`Pairing confirm button`},"pair.success":{message:`Device "{name}" paired.`,description:`Pairing success toast`},"pair.invalidCode":{message:`Invalid or expired pairing code.`,description:`Pairing invalid code error`},"pair.usedCode":{message:`This pairing code has already been used.`,description:`Pairing used code error`},"pair.failed":{message:`Failed to pair device.`,description:`Pairing generic error`},"permission.title":{message:`Permission required`,description:`Permission dialog title`},"permission.subtitle":{message:`The agent wants to use a tool. Approve to continue.`,description:`Permission dialog subtitle`},"permission.deny":{message:`Deny`,description:`Deny a tool permission`},"permission.allow":{message:`Allow`,description:`Allow a tool permission`},"session.noDevice":{message:`Select a device to start coding.`,description:`No device selected placeholder`},"session.newSession":{message:`New session`,description:`Start a new session`},"session.deviceOffline":{message:`This device is offline. Start the Coding Bridge agent on it to continue.`,description:`Device offline warning`},"session.startHint":{message:`Send a message to start a session on this device.`,description:`Empty transcript hint`},"session.cwdPlaceholder":{message:`Working directory (optional)`,description:`Working directory input placeholder`},"session.modelPlaceholder":{message:`Model (optional)`,description:`Model input placeholder`},"session.promptPlaceholder":{message:`Send a message to the agent…`,description:`Prompt input placeholder`},"session.send":{message:`Send`,description:`Send prompt button`},"session.enterHint":{message:`Enter to send, Shift+Enter for a new line.`,description:`Composer keyboard hint`},"transcript.turnFailed":{message:`Turn failed`,description:`Turn result failed label`},"transcript.turnDone":{message:`Done`,description:`Turn result done label`},"history.button":{message:`Cronologia`,description:`Open the conversation history drawer`},"history.title":{message:`Cronologia delle conversazioni`,description:`History drawer title`},"history.intro":{message:`Sessioni Claude Code e Codex precedenti su questo dispositivo.`,description:`History drawer intro`},"history.refresh":{message:`Aggiorna`,description:`Reload the history list`},"history.loading":{message:`Caricamento della cronologia…`,description:`History loading message`},"history.empty":{message:`Nessuna cronologia trovata su questo dispositivo.`,description:`Empty history message`},"history.messages":{message:`{count} messaggi`,description:`History item message count`},"history.readonly":{message:`Questa conversazione Codex è di sola lettura e non può essere continuata. Avvia una nuova sessione per continuare a programmare.`,description:`Read-only replay notice`},"history.resumeHint":{message:`L’invio di un messaggio riprenderà questa conversazione sul dispositivo.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Cronologia Claude`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Cronologia Codex (sola lettura)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Modalità autorizzazioni`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Predefinito (chiedi ogni volta)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Accetta automaticamente le modifiche`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Modalità pianificazione (sola lettura)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Ignora tutte le autorizzazioni`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Backend`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(non installato)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} non è installato su questo dispositivo.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Sforzo di ragionamento`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Predefinito`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Basso`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Medio`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Alto`,description:`Reasoning effort: high`},"session.effortMax":{message:`Massimo`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Scegli la directory di lavoro`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Usa questa directory`,description:`Button: select the current directory`},"directory.up":{message:`Directory superiore`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Aggiorna`,description:`Button: reload the current directory`},"directory.loading":{message:`Caricamento…`,description:`Directory listing loading hint`},"directory.empty":{message:`Questa directory è vuota.`,description:`Empty directory hint`},"directory.truncated":{message:`Mostrate le prime 1000 voci.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Allega immagine`,description:`Attach image button title`},"session.removeImage":{message:`Rimuovi immagine`,description:`Remove attached image button title`},"session.imageAlt":{message:`Immagine allegata`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`L'immagine è troppo grande; mantieni ciascuna sotto i 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Puoi allegare fino a {count} immagini.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Default model`,description:`Default model`},"session.cwdDefault":{message:`Default directory`,description:`Default directory`},"session.settings":{message:`Session settings`,description:`Session settings`},"session.settingsLocked":{message:`Settings are locked for this session`,description:`Settings are locked for this session`},"session.attachFile":{message:`Attach file`,description:`Attach file`},"session.attachmentImageAlt":{message:`Attached image`,description:`Attached image`},"session.removeAttachment":{message:`Remove attachment`,description:`Remove attachment`},"session.uploadingAttachment":{message:`Uploading attachments…`,description:`Uploading attachments…`},"session.attachmentTooLarge":{message:`File is too large; keep each under 50 MB.`,description:`File is too large; keep each under 50 MB.`},"session.attachmentLimit":{message:`You can attach up to {count} files.`,description:`You can attach up to {count} files.`},"session.attachmentUploadError":{message:`Failed to upload attachment.`,description:`Failed to upload attachment.`}};export{e as default};
1
+ var e={"nodeList.title":{message:`Devices`,description:`Coding Bridge device list title`},"nodeList.refresh":{message:`Refresh`,description:`Refresh the device list`},"nodeList.pair":{message:`Pair device`,description:`Open the pairing dialog`},"nodeList.empty":{message:`No devices paired yet.`,description:`Empty device list message`},"nodeList.pairFirst":{message:`Pair your first device`,description:`Empty-state pairing button`},"nodeList.remove":{message:`Remove`,description:`Remove a device`},"nodeList.removeConfirm":{message:`Remove device "{name}"? It will need to be paired again.`,description:`Device removal confirmation`},"nodeList.removeSuccess":{message:`Device removed.`,description:`Device removed toast`},"nodeList.removeFailed":{message:`Failed to remove device.`,description:`Device removal error toast`},"status.online":{message:`Online`,description:`Device online status`},"status.offline":{message:`Offline`,description:`Device offline status`},"connection.disconnected":{message:`Disconnected`,description:`Relay connection disconnected`},"connection.connecting":{message:`Connecting…`,description:`Relay connection connecting`},"connection.connected":{message:`Connected`,description:`Relay connection connected`},"connection.error":{message:`Connection error`,description:`Relay connection error`},"pair.title":{message:`Pair a device`,description:`Pairing dialog title`},"pair.intro":{message:`Run the Coding Bridge agent on your computer, then enter its pairing code here to control it from the web.`,description:`Pairing dialog intro`},"pair.step1":{message:`Install the agent (requires Python 3.10+):`,description:`Pairing step 1`},"pair.step2":{message:`Start it and follow the prompt:`,description:`Pairing step 2`},"pair.step3":{message:`Enter the pairing code it shows below.`,description:`Pairing step 3`},"pair.codePlaceholder":{message:`Pairing code`,description:`Pairing code input placeholder`},"pair.claim":{message:`Pair device`,description:`Pairing confirm button`},"pair.success":{message:`Device "{name}" paired.`,description:`Pairing success toast`},"pair.invalidCode":{message:`Invalid or expired pairing code.`,description:`Pairing invalid code error`},"pair.usedCode":{message:`This pairing code has already been used.`,description:`Pairing used code error`},"pair.failed":{message:`Failed to pair device.`,description:`Pairing generic error`},"permission.title":{message:`Permission required`,description:`Permission dialog title`},"permission.subtitle":{message:`The agent wants to use a tool. Approve to continue.`,description:`Permission dialog subtitle`},"permission.deny":{message:`Deny`,description:`Deny a tool permission`},"permission.allow":{message:`Allow`,description:`Allow a tool permission`},"session.noDevice":{message:`Select a device to start coding.`,description:`No device selected placeholder`},"session.newSession":{message:`New session`,description:`Start a new session`},"session.deviceOffline":{message:`This device is offline. Start the Coding Bridge agent on it to continue.`,description:`Device offline warning`},"session.startHint":{message:`Send a message to start a session on this device.`,description:`Empty transcript hint`},"session.cwdPlaceholder":{message:`Working directory (optional)`,description:`Working directory input placeholder`},"session.modelPlaceholder":{message:`Model (optional)`,description:`Model input placeholder`},"session.promptPlaceholder":{message:`Send a message to the agent…`,description:`Prompt input placeholder`},"session.send":{message:`Send`,description:`Send prompt button`},"session.enterHint":{message:`Enter to send, Shift+Enter for a new line.`,description:`Composer keyboard hint`},"transcript.turnFailed":{message:`Turn failed`,description:`Turn result failed label`},"transcript.turnDone":{message:`Done`,description:`Turn result done label`},"history.button":{message:`Cronologia`,description:`Open the conversation history drawer`},"history.title":{message:`Cronologia delle conversazioni`,description:`History drawer title`},"history.intro":{message:`Sessioni Claude Code e Codex precedenti su questo dispositivo.`,description:`History drawer intro`},"history.refresh":{message:`Aggiorna`,description:`Reload the history list`},"history.loading":{message:`Caricamento della cronologia…`,description:`History loading message`},"history.empty":{message:`Nessuna cronologia trovata su questo dispositivo.`,description:`Empty history message`},"history.messages":{message:`{count} messaggi`,description:`History item message count`},"history.readonly":{message:`Questa conversazione Codex è di sola lettura e non può essere continuata. Avvia una nuova sessione per continuare a programmare.`,description:`Read-only replay notice`},"history.resumeHint":{message:`L’invio di un messaggio riprenderà questa conversazione sul dispositivo.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Cronologia Claude`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Cronologia Codex (sola lettura)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Modalità autorizzazioni`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Predefinito (chiedi ogni volta)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Accetta automaticamente le modifiche`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Modalità pianificazione (sola lettura)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Ignora tutte le autorizzazioni`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Backend`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(non installato)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} non è installato su questo dispositivo.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Sforzo di ragionamento`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Predefinito`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Basso`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Medio`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Alto`,description:`Reasoning effort: high`},"session.effortMax":{message:`Massimo`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Scegli la directory di lavoro`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Usa questa directory`,description:`Button: select the current directory`},"directory.up":{message:`Directory superiore`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Aggiorna`,description:`Button: reload the current directory`},"directory.loading":{message:`Caricamento…`,description:`Directory listing loading hint`},"directory.empty":{message:`Questa directory è vuota.`,description:`Empty directory hint`},"directory.truncated":{message:`Mostrate le prime 1000 voci.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Allega immagine`,description:`Attach image button title`},"session.removeImage":{message:`Rimuovi immagine`,description:`Remove attached image button title`},"session.imageAlt":{message:`Immagine allegata`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`L'immagine è troppo grande; mantieni ciascuna sotto i 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Puoi allegare fino a {count} immagini.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Default model`,description:`Default model`},"session.cwdDefault":{message:`Default directory`,description:`Default directory`},"session.settings":{message:`Session settings`,description:`Session settings`},"session.settingsLocked":{message:`Settings are locked for this session`,description:`Settings are locked for this session`},"session.attachFile":{message:`Attach file`,description:`Attach file`},"session.attachmentImageAlt":{message:`Attached image`,description:`Attached image`},"session.removeAttachment":{message:`Remove attachment`,description:`Remove attachment`},"session.uploadingAttachment":{message:`Uploading attachments…`,description:`Uploading attachments…`},"session.attachmentTooLarge":{message:`File is too large; keep each under 50 MB.`,description:`File is too large; keep each under 50 MB.`},"session.attachmentLimit":{message:`You can attach up to {count} files.`,description:`You can attach up to {count} files.`},"session.attachmentUploadError":{message:`Failed to upload attachment.`,description:`Failed to upload attachment.`},"notice.slashUnavailable":{message:`/{command} è un comando interattivo e non può essere eseguito in una sessione remota.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} non è disponibile per Codex in una sessione remota.`,description:`Notice shown when a Codex slash command isn't supported remotely`}};export{e as default};
@@ -1 +1 @@
1
- var e={"nodeList.title":{message:`Devices`,description:`Coding Bridge device list title`},"nodeList.refresh":{message:`Refresh`,description:`Refresh the device list`},"nodeList.pair":{message:`Pair device`,description:`Open the pairing dialog`},"nodeList.empty":{message:`No devices paired yet.`,description:`Empty device list message`},"nodeList.pairFirst":{message:`Pair your first device`,description:`Empty-state pairing button`},"nodeList.remove":{message:`Remove`,description:`Remove a device`},"nodeList.removeConfirm":{message:`Remove device "{name}"? It will need to be paired again.`,description:`Device removal confirmation`},"nodeList.removeSuccess":{message:`Device removed.`,description:`Device removed toast`},"nodeList.removeFailed":{message:`Failed to remove device.`,description:`Device removal error toast`},"status.online":{message:`Online`,description:`Device online status`},"status.offline":{message:`Offline`,description:`Device offline status`},"connection.disconnected":{message:`Disconnected`,description:`Relay connection disconnected`},"connection.connecting":{message:`Connecting…`,description:`Relay connection connecting`},"connection.connected":{message:`Connected`,description:`Relay connection connected`},"connection.error":{message:`Connection error`,description:`Relay connection error`},"pair.title":{message:`Pair a device`,description:`Pairing dialog title`},"pair.intro":{message:`Run the Coding Bridge agent on your computer, then enter its pairing code here to control it from the web.`,description:`Pairing dialog intro`},"pair.step1":{message:`Install the agent (requires Python 3.10+):`,description:`Pairing step 1`},"pair.step2":{message:`Start it and follow the prompt:`,description:`Pairing step 2`},"pair.step3":{message:`Enter the pairing code it shows below.`,description:`Pairing step 3`},"pair.codePlaceholder":{message:`Pairing code`,description:`Pairing code input placeholder`},"pair.claim":{message:`Pair device`,description:`Pairing confirm button`},"pair.success":{message:`Device "{name}" paired.`,description:`Pairing success toast`},"pair.invalidCode":{message:`Invalid or expired pairing code.`,description:`Pairing invalid code error`},"pair.usedCode":{message:`This pairing code has already been used.`,description:`Pairing used code error`},"pair.failed":{message:`Failed to pair device.`,description:`Pairing generic error`},"permission.title":{message:`Permission required`,description:`Permission dialog title`},"permission.subtitle":{message:`The agent wants to use a tool. Approve to continue.`,description:`Permission dialog subtitle`},"permission.deny":{message:`Deny`,description:`Deny a tool permission`},"permission.allow":{message:`Allow`,description:`Allow a tool permission`},"session.noDevice":{message:`Select a device to start coding.`,description:`No device selected placeholder`},"session.newSession":{message:`New session`,description:`Start a new session`},"session.deviceOffline":{message:`This device is offline. Start the Coding Bridge agent on it to continue.`,description:`Device offline warning`},"session.startHint":{message:`Send a message to start a session on this device.`,description:`Empty transcript hint`},"session.cwdPlaceholder":{message:`Working directory (optional)`,description:`Working directory input placeholder`},"session.modelPlaceholder":{message:`Model (optional)`,description:`Model input placeholder`},"session.promptPlaceholder":{message:`Send a message to the agent…`,description:`Prompt input placeholder`},"session.send":{message:`Send`,description:`Send prompt button`},"session.enterHint":{message:`Enter to send, Shift+Enter for a new line.`,description:`Composer keyboard hint`},"transcript.turnFailed":{message:`Turn failed`,description:`Turn result failed label`},"transcript.turnDone":{message:`Done`,description:`Turn result done label`},"history.button":{message:`履歴`,description:`Open the conversation history drawer`},"history.title":{message:`会話履歴`,description:`History drawer title`},"history.intro":{message:`このデバイス上の過去の Claude Code および Codex セッション。`,description:`History drawer intro`},"history.refresh":{message:`更新`,description:`Reload the history list`},"history.loading":{message:`履歴を読み込み中…`,description:`History loading message`},"history.empty":{message:`このデバイスに履歴が見つかりません。`,description:`Empty history message`},"history.messages":{message:`{count} 件のメッセージ`,description:`History item message count`},"history.readonly":{message:`この Codex の会話は読み取り専用で続行できません。コーディングを続けるには新しいセッションを開始してください。`,description:`Read-only replay notice`},"history.resumeHint":{message:`メッセージを送信すると、デバイス上でこの会話が再開されます。`,description:`Resume composer hint`},"history.claudeLabel":{message:`Claude 履歴`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Codex 履歴(読み取り専用)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`権限モード`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`デフォルト(毎回確認)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`編集を自動承認`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`プランモード(読み取り専用)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`すべての権限をバイパス`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`バックエンド`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(未インストール)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} はこのデバイスにインストールされていません。`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`推論の強度`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`デフォルト`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`低`,description:`Reasoning effort: low`},"session.effortMedium":{message:`中`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`高`,description:`Reasoning effort: high`},"session.effortMax":{message:`最大`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`作業ディレクトリを選択`,description:`Working-directory picker dialog title`},"directory.choose":{message:`このディレクトリを使用`,description:`Button: select the current directory`},"directory.up":{message:`親ディレクトリ`,description:`Button: go to the parent directory`},"directory.refresh":{message:`更新`,description:`Button: reload the current directory`},"directory.loading":{message:`読み込み中…`,description:`Directory listing loading hint`},"directory.empty":{message:`このディレクトリは空です。`,description:`Empty directory hint`},"directory.truncated":{message:`最初の 1000 件を表示しています。`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`画像を添付`,description:`Attach image button title`},"session.removeImage":{message:`画像を削除`,description:`Remove attached image button title`},"session.imageAlt":{message:`添付された画像`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`画像が大きすぎます。1 枚あたり 12 MB 以内にしてください。`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`画像は最大 {count} 枚まで添付できます。`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Default model`,description:`Default model`},"session.cwdDefault":{message:`Default directory`,description:`Default directory`},"session.settings":{message:`Session settings`,description:`Session settings`},"session.settingsLocked":{message:`Settings are locked for this session`,description:`Settings are locked for this session`},"session.attachFile":{message:`Attach file`,description:`Attach file`},"session.attachmentImageAlt":{message:`Attached image`,description:`Attached image`},"session.removeAttachment":{message:`Remove attachment`,description:`Remove attachment`},"session.uploadingAttachment":{message:`Uploading attachments…`,description:`Uploading attachments…`},"session.attachmentTooLarge":{message:`File is too large; keep each under 50 MB.`,description:`File is too large; keep each under 50 MB.`},"session.attachmentLimit":{message:`You can attach up to {count} files.`,description:`You can attach up to {count} files.`},"session.attachmentUploadError":{message:`Failed to upload attachment.`,description:`Failed to upload attachment.`}};export{e as default};
1
+ var e={"nodeList.title":{message:`Devices`,description:`Coding Bridge device list title`},"nodeList.refresh":{message:`Refresh`,description:`Refresh the device list`},"nodeList.pair":{message:`Pair device`,description:`Open the pairing dialog`},"nodeList.empty":{message:`No devices paired yet.`,description:`Empty device list message`},"nodeList.pairFirst":{message:`Pair your first device`,description:`Empty-state pairing button`},"nodeList.remove":{message:`Remove`,description:`Remove a device`},"nodeList.removeConfirm":{message:`Remove device "{name}"? It will need to be paired again.`,description:`Device removal confirmation`},"nodeList.removeSuccess":{message:`Device removed.`,description:`Device removed toast`},"nodeList.removeFailed":{message:`Failed to remove device.`,description:`Device removal error toast`},"status.online":{message:`Online`,description:`Device online status`},"status.offline":{message:`Offline`,description:`Device offline status`},"connection.disconnected":{message:`Disconnected`,description:`Relay connection disconnected`},"connection.connecting":{message:`Connecting…`,description:`Relay connection connecting`},"connection.connected":{message:`Connected`,description:`Relay connection connected`},"connection.error":{message:`Connection error`,description:`Relay connection error`},"pair.title":{message:`Pair a device`,description:`Pairing dialog title`},"pair.intro":{message:`Run the Coding Bridge agent on your computer, then enter its pairing code here to control it from the web.`,description:`Pairing dialog intro`},"pair.step1":{message:`Install the agent (requires Python 3.10+):`,description:`Pairing step 1`},"pair.step2":{message:`Start it and follow the prompt:`,description:`Pairing step 2`},"pair.step3":{message:`Enter the pairing code it shows below.`,description:`Pairing step 3`},"pair.codePlaceholder":{message:`Pairing code`,description:`Pairing code input placeholder`},"pair.claim":{message:`Pair device`,description:`Pairing confirm button`},"pair.success":{message:`Device "{name}" paired.`,description:`Pairing success toast`},"pair.invalidCode":{message:`Invalid or expired pairing code.`,description:`Pairing invalid code error`},"pair.usedCode":{message:`This pairing code has already been used.`,description:`Pairing used code error`},"pair.failed":{message:`Failed to pair device.`,description:`Pairing generic error`},"permission.title":{message:`Permission required`,description:`Permission dialog title`},"permission.subtitle":{message:`The agent wants to use a tool. Approve to continue.`,description:`Permission dialog subtitle`},"permission.deny":{message:`Deny`,description:`Deny a tool permission`},"permission.allow":{message:`Allow`,description:`Allow a tool permission`},"session.noDevice":{message:`Select a device to start coding.`,description:`No device selected placeholder`},"session.newSession":{message:`New session`,description:`Start a new session`},"session.deviceOffline":{message:`This device is offline. Start the Coding Bridge agent on it to continue.`,description:`Device offline warning`},"session.startHint":{message:`Send a message to start a session on this device.`,description:`Empty transcript hint`},"session.cwdPlaceholder":{message:`Working directory (optional)`,description:`Working directory input placeholder`},"session.modelPlaceholder":{message:`Model (optional)`,description:`Model input placeholder`},"session.promptPlaceholder":{message:`Send a message to the agent…`,description:`Prompt input placeholder`},"session.send":{message:`Send`,description:`Send prompt button`},"session.enterHint":{message:`Enter to send, Shift+Enter for a new line.`,description:`Composer keyboard hint`},"transcript.turnFailed":{message:`Turn failed`,description:`Turn result failed label`},"transcript.turnDone":{message:`Done`,description:`Turn result done label`},"history.button":{message:`履歴`,description:`Open the conversation history drawer`},"history.title":{message:`会話履歴`,description:`History drawer title`},"history.intro":{message:`このデバイス上の過去の Claude Code および Codex セッション。`,description:`History drawer intro`},"history.refresh":{message:`更新`,description:`Reload the history list`},"history.loading":{message:`履歴を読み込み中…`,description:`History loading message`},"history.empty":{message:`このデバイスに履歴が見つかりません。`,description:`Empty history message`},"history.messages":{message:`{count} 件のメッセージ`,description:`History item message count`},"history.readonly":{message:`この Codex の会話は読み取り専用で続行できません。コーディングを続けるには新しいセッションを開始してください。`,description:`Read-only replay notice`},"history.resumeHint":{message:`メッセージを送信すると、デバイス上でこの会話が再開されます。`,description:`Resume composer hint`},"history.claudeLabel":{message:`Claude 履歴`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Codex 履歴(読み取り専用)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`権限モード`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`デフォルト(毎回確認)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`編集を自動承認`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`プランモード(読み取り専用)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`すべての権限をバイパス`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`バックエンド`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(未インストール)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} はこのデバイスにインストールされていません。`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`推論の強度`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`デフォルト`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`低`,description:`Reasoning effort: low`},"session.effortMedium":{message:`中`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`高`,description:`Reasoning effort: high`},"session.effortMax":{message:`最大`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`作業ディレクトリを選択`,description:`Working-directory picker dialog title`},"directory.choose":{message:`このディレクトリを使用`,description:`Button: select the current directory`},"directory.up":{message:`親ディレクトリ`,description:`Button: go to the parent directory`},"directory.refresh":{message:`更新`,description:`Button: reload the current directory`},"directory.loading":{message:`読み込み中…`,description:`Directory listing loading hint`},"directory.empty":{message:`このディレクトリは空です。`,description:`Empty directory hint`},"directory.truncated":{message:`最初の 1000 件を表示しています。`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`画像を添付`,description:`Attach image button title`},"session.removeImage":{message:`画像を削除`,description:`Remove attached image button title`},"session.imageAlt":{message:`添付された画像`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`画像が大きすぎます。1 枚あたり 12 MB 以内にしてください。`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`画像は最大 {count} 枚まで添付できます。`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Default model`,description:`Default model`},"session.cwdDefault":{message:`Default directory`,description:`Default directory`},"session.settings":{message:`Session settings`,description:`Session settings`},"session.settingsLocked":{message:`Settings are locked for this session`,description:`Settings are locked for this session`},"session.attachFile":{message:`Attach file`,description:`Attach file`},"session.attachmentImageAlt":{message:`Attached image`,description:`Attached image`},"session.removeAttachment":{message:`Remove attachment`,description:`Remove attachment`},"session.uploadingAttachment":{message:`Uploading attachments…`,description:`Uploading attachments…`},"session.attachmentTooLarge":{message:`File is too large; keep each under 50 MB.`,description:`File is too large; keep each under 50 MB.`},"session.attachmentLimit":{message:`You can attach up to {count} files.`,description:`You can attach up to {count} files.`},"session.attachmentUploadError":{message:`Failed to upload attachment.`,description:`Failed to upload attachment.`},"notice.slashUnavailable":{message:`/{command} は対話型コマンドのため、リモートセッションでは実行できません。`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} はリモートセッションの Codex では利用できません。`,description:`Notice shown when a Codex slash command isn't supported remotely`}};export{e as default};
@@ -1 +1 @@
1
- var e={"nodeList.title":{message:`Devices`,description:`Coding Bridge device list title`},"nodeList.refresh":{message:`Refresh`,description:`Refresh the device list`},"nodeList.pair":{message:`Pair device`,description:`Open the pairing dialog`},"nodeList.empty":{message:`No devices paired yet.`,description:`Empty device list message`},"nodeList.pairFirst":{message:`Pair your first device`,description:`Empty-state pairing button`},"nodeList.remove":{message:`Remove`,description:`Remove a device`},"nodeList.removeConfirm":{message:`Remove device "{name}"? It will need to be paired again.`,description:`Device removal confirmation`},"nodeList.removeSuccess":{message:`Device removed.`,description:`Device removed toast`},"nodeList.removeFailed":{message:`Failed to remove device.`,description:`Device removal error toast`},"status.online":{message:`Online`,description:`Device online status`},"status.offline":{message:`Offline`,description:`Device offline status`},"connection.disconnected":{message:`Disconnected`,description:`Relay connection disconnected`},"connection.connecting":{message:`Connecting…`,description:`Relay connection connecting`},"connection.connected":{message:`Connected`,description:`Relay connection connected`},"connection.error":{message:`Connection error`,description:`Relay connection error`},"pair.title":{message:`Pair a device`,description:`Pairing dialog title`},"pair.intro":{message:`Run the Coding Bridge agent on your computer, then enter its pairing code here to control it from the web.`,description:`Pairing dialog intro`},"pair.step1":{message:`Install the agent (requires Python 3.10+):`,description:`Pairing step 1`},"pair.step2":{message:`Start it and follow the prompt:`,description:`Pairing step 2`},"pair.step3":{message:`Enter the pairing code it shows below.`,description:`Pairing step 3`},"pair.codePlaceholder":{message:`Pairing code`,description:`Pairing code input placeholder`},"pair.claim":{message:`Pair device`,description:`Pairing confirm button`},"pair.success":{message:`Device "{name}" paired.`,description:`Pairing success toast`},"pair.invalidCode":{message:`Invalid or expired pairing code.`,description:`Pairing invalid code error`},"pair.usedCode":{message:`This pairing code has already been used.`,description:`Pairing used code error`},"pair.failed":{message:`Failed to pair device.`,description:`Pairing generic error`},"permission.title":{message:`Permission required`,description:`Permission dialog title`},"permission.subtitle":{message:`The agent wants to use a tool. Approve to continue.`,description:`Permission dialog subtitle`},"permission.deny":{message:`Deny`,description:`Deny a tool permission`},"permission.allow":{message:`Allow`,description:`Allow a tool permission`},"session.noDevice":{message:`Select a device to start coding.`,description:`No device selected placeholder`},"session.newSession":{message:`New session`,description:`Start a new session`},"session.deviceOffline":{message:`This device is offline. Start the Coding Bridge agent on it to continue.`,description:`Device offline warning`},"session.startHint":{message:`Send a message to start a session on this device.`,description:`Empty transcript hint`},"session.cwdPlaceholder":{message:`Working directory (optional)`,description:`Working directory input placeholder`},"session.modelPlaceholder":{message:`Model (optional)`,description:`Model input placeholder`},"session.promptPlaceholder":{message:`Send a message to the agent…`,description:`Prompt input placeholder`},"session.send":{message:`Send`,description:`Send prompt button`},"session.enterHint":{message:`Enter to send, Shift+Enter for a new line.`,description:`Composer keyboard hint`},"transcript.turnFailed":{message:`Turn failed`,description:`Turn result failed label`},"transcript.turnDone":{message:`Done`,description:`Turn result done label`},"history.button":{message:`기록`,description:`Open the conversation history drawer`},"history.title":{message:`대화 기록`,description:`History drawer title`},"history.intro":{message:`이 기기의 이전 Claude Code 및 Codex 세션입니다.`,description:`History drawer intro`},"history.refresh":{message:`새로 고침`,description:`Reload the history list`},"history.loading":{message:`기록을 불러오는 중…`,description:`History loading message`},"history.empty":{message:`이 기기에서 기록을 찾을 수 없습니다.`,description:`Empty history message`},"history.messages":{message:`메시지 {count}개`,description:`History item message count`},"history.readonly":{message:`이 Codex 대화는 읽기 전용이라 이어갈 수 없습니다. 계속 코딩하려면 새 세션을 시작하세요.`,description:`Read-only replay notice`},"history.resumeHint":{message:`메시지를 보내면 기기에서 이 대화가 다시 시작됩니다.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Claude 기록`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Codex 기록 (읽기 전용)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`권한 모드`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`기본값(매번 확인)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`편집 자동 수락`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`계획 모드(읽기 전용)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`모든 권한 우회`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`백엔드`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(설치되지 않음)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name}이(가) 이 기기에 설치되어 있지 않습니다.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`추론 강도`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`기본값`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`낮음`,description:`Reasoning effort: low`},"session.effortMedium":{message:`보통`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`높음`,description:`Reasoning effort: high`},"session.effortMax":{message:`최대`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`작업 디렉터리 선택`,description:`Working-directory picker dialog title`},"directory.choose":{message:`이 디렉터리 사용`,description:`Button: select the current directory`},"directory.up":{message:`상위 디렉터리`,description:`Button: go to the parent directory`},"directory.refresh":{message:`새로 고침`,description:`Button: reload the current directory`},"directory.loading":{message:`불러오는 중…`,description:`Directory listing loading hint`},"directory.empty":{message:`이 디렉터리는 비어 있습니다.`,description:`Empty directory hint`},"directory.truncated":{message:`처음 1000개 항목을 표시합니다.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`이미지 첨부`,description:`Attach image button title`},"session.removeImage":{message:`이미지 제거`,description:`Remove attached image button title`},"session.imageAlt":{message:`첨부된 이미지`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`이미지가 너무 큽니다. 각 이미지를 12MB 이하로 유지하세요.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`최대 {count}개의 이미지를 첨부할 수 있습니다.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Default model`,description:`Default model`},"session.cwdDefault":{message:`Default directory`,description:`Default directory`},"session.settings":{message:`Session settings`,description:`Session settings`},"session.settingsLocked":{message:`Settings are locked for this session`,description:`Settings are locked for this session`},"session.attachFile":{message:`Attach file`,description:`Attach file`},"session.attachmentImageAlt":{message:`Attached image`,description:`Attached image`},"session.removeAttachment":{message:`Remove attachment`,description:`Remove attachment`},"session.uploadingAttachment":{message:`Uploading attachments…`,description:`Uploading attachments…`},"session.attachmentTooLarge":{message:`File is too large; keep each under 50 MB.`,description:`File is too large; keep each under 50 MB.`},"session.attachmentLimit":{message:`You can attach up to {count} files.`,description:`You can attach up to {count} files.`},"session.attachmentUploadError":{message:`Failed to upload attachment.`,description:`Failed to upload attachment.`}};export{e as default};
1
+ var e={"nodeList.title":{message:`Devices`,description:`Coding Bridge device list title`},"nodeList.refresh":{message:`Refresh`,description:`Refresh the device list`},"nodeList.pair":{message:`Pair device`,description:`Open the pairing dialog`},"nodeList.empty":{message:`No devices paired yet.`,description:`Empty device list message`},"nodeList.pairFirst":{message:`Pair your first device`,description:`Empty-state pairing button`},"nodeList.remove":{message:`Remove`,description:`Remove a device`},"nodeList.removeConfirm":{message:`Remove device "{name}"? It will need to be paired again.`,description:`Device removal confirmation`},"nodeList.removeSuccess":{message:`Device removed.`,description:`Device removed toast`},"nodeList.removeFailed":{message:`Failed to remove device.`,description:`Device removal error toast`},"status.online":{message:`Online`,description:`Device online status`},"status.offline":{message:`Offline`,description:`Device offline status`},"connection.disconnected":{message:`Disconnected`,description:`Relay connection disconnected`},"connection.connecting":{message:`Connecting…`,description:`Relay connection connecting`},"connection.connected":{message:`Connected`,description:`Relay connection connected`},"connection.error":{message:`Connection error`,description:`Relay connection error`},"pair.title":{message:`Pair a device`,description:`Pairing dialog title`},"pair.intro":{message:`Run the Coding Bridge agent on your computer, then enter its pairing code here to control it from the web.`,description:`Pairing dialog intro`},"pair.step1":{message:`Install the agent (requires Python 3.10+):`,description:`Pairing step 1`},"pair.step2":{message:`Start it and follow the prompt:`,description:`Pairing step 2`},"pair.step3":{message:`Enter the pairing code it shows below.`,description:`Pairing step 3`},"pair.codePlaceholder":{message:`Pairing code`,description:`Pairing code input placeholder`},"pair.claim":{message:`Pair device`,description:`Pairing confirm button`},"pair.success":{message:`Device "{name}" paired.`,description:`Pairing success toast`},"pair.invalidCode":{message:`Invalid or expired pairing code.`,description:`Pairing invalid code error`},"pair.usedCode":{message:`This pairing code has already been used.`,description:`Pairing used code error`},"pair.failed":{message:`Failed to pair device.`,description:`Pairing generic error`},"permission.title":{message:`Permission required`,description:`Permission dialog title`},"permission.subtitle":{message:`The agent wants to use a tool. Approve to continue.`,description:`Permission dialog subtitle`},"permission.deny":{message:`Deny`,description:`Deny a tool permission`},"permission.allow":{message:`Allow`,description:`Allow a tool permission`},"session.noDevice":{message:`Select a device to start coding.`,description:`No device selected placeholder`},"session.newSession":{message:`New session`,description:`Start a new session`},"session.deviceOffline":{message:`This device is offline. Start the Coding Bridge agent on it to continue.`,description:`Device offline warning`},"session.startHint":{message:`Send a message to start a session on this device.`,description:`Empty transcript hint`},"session.cwdPlaceholder":{message:`Working directory (optional)`,description:`Working directory input placeholder`},"session.modelPlaceholder":{message:`Model (optional)`,description:`Model input placeholder`},"session.promptPlaceholder":{message:`Send a message to the agent…`,description:`Prompt input placeholder`},"session.send":{message:`Send`,description:`Send prompt button`},"session.enterHint":{message:`Enter to send, Shift+Enter for a new line.`,description:`Composer keyboard hint`},"transcript.turnFailed":{message:`Turn failed`,description:`Turn result failed label`},"transcript.turnDone":{message:`Done`,description:`Turn result done label`},"history.button":{message:`기록`,description:`Open the conversation history drawer`},"history.title":{message:`대화 기록`,description:`History drawer title`},"history.intro":{message:`이 기기의 이전 Claude Code 및 Codex 세션입니다.`,description:`History drawer intro`},"history.refresh":{message:`새로 고침`,description:`Reload the history list`},"history.loading":{message:`기록을 불러오는 중…`,description:`History loading message`},"history.empty":{message:`이 기기에서 기록을 찾을 수 없습니다.`,description:`Empty history message`},"history.messages":{message:`메시지 {count}개`,description:`History item message count`},"history.readonly":{message:`이 Codex 대화는 읽기 전용이라 이어갈 수 없습니다. 계속 코딩하려면 새 세션을 시작하세요.`,description:`Read-only replay notice`},"history.resumeHint":{message:`메시지를 보내면 기기에서 이 대화가 다시 시작됩니다.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Claude 기록`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Codex 기록 (읽기 전용)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`권한 모드`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`기본값(매번 확인)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`편집 자동 수락`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`계획 모드(읽기 전용)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`모든 권한 우회`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`백엔드`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(설치되지 않음)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name}이(가) 이 기기에 설치되어 있지 않습니다.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`추론 강도`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`기본값`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`낮음`,description:`Reasoning effort: low`},"session.effortMedium":{message:`보통`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`높음`,description:`Reasoning effort: high`},"session.effortMax":{message:`최대`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`작업 디렉터리 선택`,description:`Working-directory picker dialog title`},"directory.choose":{message:`이 디렉터리 사용`,description:`Button: select the current directory`},"directory.up":{message:`상위 디렉터리`,description:`Button: go to the parent directory`},"directory.refresh":{message:`새로 고침`,description:`Button: reload the current directory`},"directory.loading":{message:`불러오는 중…`,description:`Directory listing loading hint`},"directory.empty":{message:`이 디렉터리는 비어 있습니다.`,description:`Empty directory hint`},"directory.truncated":{message:`처음 1000개 항목을 표시합니다.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`이미지 첨부`,description:`Attach image button title`},"session.removeImage":{message:`이미지 제거`,description:`Remove attached image button title`},"session.imageAlt":{message:`첨부된 이미지`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`이미지가 너무 큽니다. 각 이미지를 12MB 이하로 유지하세요.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`최대 {count}개의 이미지를 첨부할 수 있습니다.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Default model`,description:`Default model`},"session.cwdDefault":{message:`Default directory`,description:`Default directory`},"session.settings":{message:`Session settings`,description:`Session settings`},"session.settingsLocked":{message:`Settings are locked for this session`,description:`Settings are locked for this session`},"session.attachFile":{message:`Attach file`,description:`Attach file`},"session.attachmentImageAlt":{message:`Attached image`,description:`Attached image`},"session.removeAttachment":{message:`Remove attachment`,description:`Remove attachment`},"session.uploadingAttachment":{message:`Uploading attachments…`,description:`Uploading attachments…`},"session.attachmentTooLarge":{message:`File is too large; keep each under 50 MB.`,description:`File is too large; keep each under 50 MB.`},"session.attachmentLimit":{message:`You can attach up to {count} files.`,description:`You can attach up to {count} files.`},"session.attachmentUploadError":{message:`Failed to upload attachment.`,description:`Failed to upload attachment.`},"notice.slashUnavailable":{message:`/{command} 은(는) 대화형 명령이라 원격 세션에서는 실행할 수 없습니다.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} 은(는) 원격 세션의 Codex에서 사용할 수 없습니다.`,description:`Notice shown when a Codex slash command isn't supported remotely`}};export{e as default};
@@ -1 +1 @@
1
- var e={"nodeList.title":{message:`Devices`,description:`Coding Bridge device list title`},"nodeList.refresh":{message:`Refresh`,description:`Refresh the device list`},"nodeList.pair":{message:`Pair device`,description:`Open the pairing dialog`},"nodeList.empty":{message:`No devices paired yet.`,description:`Empty device list message`},"nodeList.pairFirst":{message:`Pair your first device`,description:`Empty-state pairing button`},"nodeList.remove":{message:`Remove`,description:`Remove a device`},"nodeList.removeConfirm":{message:`Remove device "{name}"? It will need to be paired again.`,description:`Device removal confirmation`},"nodeList.removeSuccess":{message:`Device removed.`,description:`Device removed toast`},"nodeList.removeFailed":{message:`Failed to remove device.`,description:`Device removal error toast`},"status.online":{message:`Online`,description:`Device online status`},"status.offline":{message:`Offline`,description:`Device offline status`},"connection.disconnected":{message:`Disconnected`,description:`Relay connection disconnected`},"connection.connecting":{message:`Connecting…`,description:`Relay connection connecting`},"connection.connected":{message:`Connected`,description:`Relay connection connected`},"connection.error":{message:`Connection error`,description:`Relay connection error`},"pair.title":{message:`Pair a device`,description:`Pairing dialog title`},"pair.intro":{message:`Run the Coding Bridge agent on your computer, then enter its pairing code here to control it from the web.`,description:`Pairing dialog intro`},"pair.step1":{message:`Install the agent (requires Python 3.10+):`,description:`Pairing step 1`},"pair.step2":{message:`Start it and follow the prompt:`,description:`Pairing step 2`},"pair.step3":{message:`Enter the pairing code it shows below.`,description:`Pairing step 3`},"pair.codePlaceholder":{message:`Pairing code`,description:`Pairing code input placeholder`},"pair.claim":{message:`Pair device`,description:`Pairing confirm button`},"pair.success":{message:`Device "{name}" paired.`,description:`Pairing success toast`},"pair.invalidCode":{message:`Invalid or expired pairing code.`,description:`Pairing invalid code error`},"pair.usedCode":{message:`This pairing code has already been used.`,description:`Pairing used code error`},"pair.failed":{message:`Failed to pair device.`,description:`Pairing generic error`},"permission.title":{message:`Permission required`,description:`Permission dialog title`},"permission.subtitle":{message:`The agent wants to use a tool. Approve to continue.`,description:`Permission dialog subtitle`},"permission.deny":{message:`Deny`,description:`Deny a tool permission`},"permission.allow":{message:`Allow`,description:`Allow a tool permission`},"session.noDevice":{message:`Select a device to start coding.`,description:`No device selected placeholder`},"session.newSession":{message:`New session`,description:`Start a new session`},"session.deviceOffline":{message:`This device is offline. Start the Coding Bridge agent on it to continue.`,description:`Device offline warning`},"session.startHint":{message:`Send a message to start a session on this device.`,description:`Empty transcript hint`},"session.cwdPlaceholder":{message:`Working directory (optional)`,description:`Working directory input placeholder`},"session.modelPlaceholder":{message:`Model (optional)`,description:`Model input placeholder`},"session.promptPlaceholder":{message:`Send a message to the agent…`,description:`Prompt input placeholder`},"session.send":{message:`Send`,description:`Send prompt button`},"session.enterHint":{message:`Enter to send, Shift+Enter for a new line.`,description:`Composer keyboard hint`},"transcript.turnFailed":{message:`Turn failed`,description:`Turn result failed label`},"transcript.turnDone":{message:`Done`,description:`Turn result done label`},"history.button":{message:`Historik`,description:`Open the conversation history drawer`},"history.title":{message:`Konversationshistorik`,description:`History drawer title`},"history.intro":{message:`Tidigare Claude Code- och Codex-sessioner på den här enheten.`,description:`History drawer intro`},"history.refresh":{message:`Uppdatera`,description:`Reload the history list`},"history.loading":{message:`Laddar historik…`,description:`History loading message`},"history.empty":{message:`Ingen historik hittades på den här enheten.`,description:`Empty history message`},"history.messages":{message:`{count} meddelanden`,description:`History item message count`},"history.readonly":{message:`Den här Codex-konversationen är skrivskyddad och kan inte fortsättas. Starta en ny session för att fortsätta koda.`,description:`Read-only replay notice`},"history.resumeHint":{message:`Att skicka ett meddelande återupptar konversationen på enheten.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Claude-historik`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Codex-historik (skrivskyddad)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Behörighetsläge`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Standard (fråga varje gång)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Acceptera ändringar automatiskt`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Planeringsläge (skrivskyddat)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Kringgå alla behörigheter`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Backend`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(inte installerat)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} är inte installerat på den här enheten.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Resonemangsnivå`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Standard`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Låg`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Medel`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Hög`,description:`Reasoning effort: high`},"session.effortMax":{message:`Max`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Välj arbetskatalog`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Använd den här katalogen`,description:`Button: select the current directory`},"directory.up":{message:`Överordnad katalog`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Uppdatera`,description:`Button: reload the current directory`},"directory.loading":{message:`Läser in…`,description:`Directory listing loading hint`},"directory.empty":{message:`Den här katalogen är tom.`,description:`Empty directory hint`},"directory.truncated":{message:`Visar de första 1000 posterna.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Bifoga bild`,description:`Attach image button title`},"session.removeImage":{message:`Ta bort bild`,description:`Remove attached image button title`},"session.imageAlt":{message:`Bifogad bild`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`Bilden är för stor; håll varje under 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Du kan bifoga upp till {count} bilder.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Default model`,description:`Default model`},"session.cwdDefault":{message:`Default directory`,description:`Default directory`},"session.settings":{message:`Session settings`,description:`Session settings`},"session.settingsLocked":{message:`Settings are locked for this session`,description:`Settings are locked for this session`},"session.attachFile":{message:`Attach file`,description:`Attach file`},"session.attachmentImageAlt":{message:`Attached image`,description:`Attached image`},"session.removeAttachment":{message:`Remove attachment`,description:`Remove attachment`},"session.uploadingAttachment":{message:`Uploading attachments…`,description:`Uploading attachments…`},"session.attachmentTooLarge":{message:`File is too large; keep each under 50 MB.`,description:`File is too large; keep each under 50 MB.`},"session.attachmentLimit":{message:`You can attach up to {count} files.`,description:`You can attach up to {count} files.`},"session.attachmentUploadError":{message:`Failed to upload attachment.`,description:`Failed to upload attachment.`}};export{e as default};
1
+ var e={"nodeList.title":{message:`Devices`,description:`Coding Bridge device list title`},"nodeList.refresh":{message:`Refresh`,description:`Refresh the device list`},"nodeList.pair":{message:`Pair device`,description:`Open the pairing dialog`},"nodeList.empty":{message:`No devices paired yet.`,description:`Empty device list message`},"nodeList.pairFirst":{message:`Pair your first device`,description:`Empty-state pairing button`},"nodeList.remove":{message:`Remove`,description:`Remove a device`},"nodeList.removeConfirm":{message:`Remove device "{name}"? It will need to be paired again.`,description:`Device removal confirmation`},"nodeList.removeSuccess":{message:`Device removed.`,description:`Device removed toast`},"nodeList.removeFailed":{message:`Failed to remove device.`,description:`Device removal error toast`},"status.online":{message:`Online`,description:`Device online status`},"status.offline":{message:`Offline`,description:`Device offline status`},"connection.disconnected":{message:`Disconnected`,description:`Relay connection disconnected`},"connection.connecting":{message:`Connecting…`,description:`Relay connection connecting`},"connection.connected":{message:`Connected`,description:`Relay connection connected`},"connection.error":{message:`Connection error`,description:`Relay connection error`},"pair.title":{message:`Pair a device`,description:`Pairing dialog title`},"pair.intro":{message:`Run the Coding Bridge agent on your computer, then enter its pairing code here to control it from the web.`,description:`Pairing dialog intro`},"pair.step1":{message:`Install the agent (requires Python 3.10+):`,description:`Pairing step 1`},"pair.step2":{message:`Start it and follow the prompt:`,description:`Pairing step 2`},"pair.step3":{message:`Enter the pairing code it shows below.`,description:`Pairing step 3`},"pair.codePlaceholder":{message:`Pairing code`,description:`Pairing code input placeholder`},"pair.claim":{message:`Pair device`,description:`Pairing confirm button`},"pair.success":{message:`Device "{name}" paired.`,description:`Pairing success toast`},"pair.invalidCode":{message:`Invalid or expired pairing code.`,description:`Pairing invalid code error`},"pair.usedCode":{message:`This pairing code has already been used.`,description:`Pairing used code error`},"pair.failed":{message:`Failed to pair device.`,description:`Pairing generic error`},"permission.title":{message:`Permission required`,description:`Permission dialog title`},"permission.subtitle":{message:`The agent wants to use a tool. Approve to continue.`,description:`Permission dialog subtitle`},"permission.deny":{message:`Deny`,description:`Deny a tool permission`},"permission.allow":{message:`Allow`,description:`Allow a tool permission`},"session.noDevice":{message:`Select a device to start coding.`,description:`No device selected placeholder`},"session.newSession":{message:`New session`,description:`Start a new session`},"session.deviceOffline":{message:`This device is offline. Start the Coding Bridge agent on it to continue.`,description:`Device offline warning`},"session.startHint":{message:`Send a message to start a session on this device.`,description:`Empty transcript hint`},"session.cwdPlaceholder":{message:`Working directory (optional)`,description:`Working directory input placeholder`},"session.modelPlaceholder":{message:`Model (optional)`,description:`Model input placeholder`},"session.promptPlaceholder":{message:`Send a message to the agent…`,description:`Prompt input placeholder`},"session.send":{message:`Send`,description:`Send prompt button`},"session.enterHint":{message:`Enter to send, Shift+Enter for a new line.`,description:`Composer keyboard hint`},"transcript.turnFailed":{message:`Turn failed`,description:`Turn result failed label`},"transcript.turnDone":{message:`Done`,description:`Turn result done label`},"history.button":{message:`Historik`,description:`Open the conversation history drawer`},"history.title":{message:`Konversationshistorik`,description:`History drawer title`},"history.intro":{message:`Tidigare Claude Code- och Codex-sessioner på den här enheten.`,description:`History drawer intro`},"history.refresh":{message:`Uppdatera`,description:`Reload the history list`},"history.loading":{message:`Laddar historik…`,description:`History loading message`},"history.empty":{message:`Ingen historik hittades på den här enheten.`,description:`Empty history message`},"history.messages":{message:`{count} meddelanden`,description:`History item message count`},"history.readonly":{message:`Den här Codex-konversationen är skrivskyddad och kan inte fortsättas. Starta en ny session för att fortsätta koda.`,description:`Read-only replay notice`},"history.resumeHint":{message:`Att skicka ett meddelande återupptar konversationen på enheten.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Claude-historik`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Codex-historik (skrivskyddad)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Behörighetsläge`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Standard (fråga varje gång)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Acceptera ändringar automatiskt`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Planeringsläge (skrivskyddat)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Kringgå alla behörigheter`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Backend`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(inte installerat)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} är inte installerat på den här enheten.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Resonemangsnivå`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Standard`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Låg`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Medel`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Hög`,description:`Reasoning effort: high`},"session.effortMax":{message:`Max`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Välj arbetskatalog`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Använd den här katalogen`,description:`Button: select the current directory`},"directory.up":{message:`Överordnad katalog`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Uppdatera`,description:`Button: reload the current directory`},"directory.loading":{message:`Läser in…`,description:`Directory listing loading hint`},"directory.empty":{message:`Den här katalogen är tom.`,description:`Empty directory hint`},"directory.truncated":{message:`Visar de första 1000 posterna.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Bifoga bild`,description:`Attach image button title`},"session.removeImage":{message:`Ta bort bild`,description:`Remove attached image button title`},"session.imageAlt":{message:`Bifogad bild`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`Bilden är för stor; håll varje under 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Du kan bifoga upp till {count} bilder.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Default model`,description:`Default model`},"session.cwdDefault":{message:`Default directory`,description:`Default directory`},"session.settings":{message:`Session settings`,description:`Session settings`},"session.settingsLocked":{message:`Settings are locked for this session`,description:`Settings are locked for this session`},"session.attachFile":{message:`Attach file`,description:`Attach file`},"session.attachmentImageAlt":{message:`Attached image`,description:`Attached image`},"session.removeAttachment":{message:`Remove attachment`,description:`Remove attachment`},"session.uploadingAttachment":{message:`Uploading attachments…`,description:`Uploading attachments…`},"session.attachmentTooLarge":{message:`File is too large; keep each under 50 MB.`,description:`File is too large; keep each under 50 MB.`},"session.attachmentLimit":{message:`You can attach up to {count} files.`,description:`You can attach up to {count} files.`},"session.attachmentUploadError":{message:`Failed to upload attachment.`,description:`Failed to upload attachment.`},"notice.slashUnavailable":{message:`/{command} är ett interaktivt kommando och kan inte köras i en fjärrsession.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} är inte tillgängligt för Codex i en fjärrsession.`,description:`Notice shown when a Codex slash command isn't supported remotely`}};export{e as default};
@@ -1 +1 @@
1
- var e={"nodeList.title":{message:`Devices`,description:`Coding Bridge device list title`},"nodeList.refresh":{message:`Refresh`,description:`Refresh the device list`},"nodeList.pair":{message:`Pair device`,description:`Open the pairing dialog`},"nodeList.empty":{message:`No devices paired yet.`,description:`Empty device list message`},"nodeList.pairFirst":{message:`Pair your first device`,description:`Empty-state pairing button`},"nodeList.remove":{message:`Remove`,description:`Remove a device`},"nodeList.removeConfirm":{message:`Remove device "{name}"? It will need to be paired again.`,description:`Device removal confirmation`},"nodeList.removeSuccess":{message:`Device removed.`,description:`Device removed toast`},"nodeList.removeFailed":{message:`Failed to remove device.`,description:`Device removal error toast`},"status.online":{message:`Online`,description:`Device online status`},"status.offline":{message:`Offline`,description:`Device offline status`},"connection.disconnected":{message:`Disconnected`,description:`Relay connection disconnected`},"connection.connecting":{message:`Connecting…`,description:`Relay connection connecting`},"connection.connected":{message:`Connected`,description:`Relay connection connected`},"connection.error":{message:`Connection error`,description:`Relay connection error`},"pair.title":{message:`Pair a device`,description:`Pairing dialog title`},"pair.intro":{message:`Run the Coding Bridge agent on your computer, then enter its pairing code here to control it from the web.`,description:`Pairing dialog intro`},"pair.step1":{message:`Install the agent (requires Python 3.10+):`,description:`Pairing step 1`},"pair.step2":{message:`Start it and follow the prompt:`,description:`Pairing step 2`},"pair.step3":{message:`Enter the pairing code it shows below.`,description:`Pairing step 3`},"pair.codePlaceholder":{message:`Pairing code`,description:`Pairing code input placeholder`},"pair.claim":{message:`Pair device`,description:`Pairing confirm button`},"pair.success":{message:`Device "{name}" paired.`,description:`Pairing success toast`},"pair.invalidCode":{message:`Invalid or expired pairing code.`,description:`Pairing invalid code error`},"pair.usedCode":{message:`This pairing code has already been used.`,description:`Pairing used code error`},"pair.failed":{message:`Failed to pair device.`,description:`Pairing generic error`},"permission.title":{message:`Permission required`,description:`Permission dialog title`},"permission.subtitle":{message:`The agent wants to use a tool. Approve to continue.`,description:`Permission dialog subtitle`},"permission.deny":{message:`Deny`,description:`Deny a tool permission`},"permission.allow":{message:`Allow`,description:`Allow a tool permission`},"session.noDevice":{message:`Select a device to start coding.`,description:`No device selected placeholder`},"session.newSession":{message:`New session`,description:`Start a new session`},"session.deviceOffline":{message:`This device is offline. Start the Coding Bridge agent on it to continue.`,description:`Device offline warning`},"session.startHint":{message:`Send a message to start a session on this device.`,description:`Empty transcript hint`},"session.cwdPlaceholder":{message:`Working directory (optional)`,description:`Working directory input placeholder`},"session.modelPlaceholder":{message:`Model (optional)`,description:`Model input placeholder`},"session.promptPlaceholder":{message:`Send a message to the agent…`,description:`Prompt input placeholder`},"session.send":{message:`Send`,description:`Send prompt button`},"session.enterHint":{message:`Enter to send, Shift+Enter for a new line.`,description:`Composer keyboard hint`},"transcript.turnFailed":{message:`Turn failed`,description:`Turn result failed label`},"transcript.turnDone":{message:`Done`,description:`Turn result done label`},"history.button":{message:`History`,description:`Open the conversation history drawer`},"history.title":{message:`Conversation history`,description:`History drawer title`},"history.intro":{message:`Past Claude Code & Codex sessions on this device.`,description:`History drawer intro`},"history.refresh":{message:`Refresh`,description:`Reload the history list`},"history.loading":{message:`Loading history…`,description:`History loading message`},"history.empty":{message:`No history found on this device.`,description:`Empty history message`},"history.messages":{message:`{count} messages`,description:`History item message count`},"history.readonly":{message:`This Codex conversation is read-only and cannot be continued. Start a new session to keep coding.`,description:`Read-only replay notice`},"history.resumeHint":{message:`Sending a message will resume this conversation on the device.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Claude history`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Codex history (read-only)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Permission mode`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Default (ask each time)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Auto-accept edits`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Plan mode (read-only)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Bypass all permissions`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Backend`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(not installed)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} is not installed on this device.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Reasoning effort`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Default`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Low`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Medium`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`High`,description:`Reasoning effort: high`},"session.effortMax":{message:`Max`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Choose working directory`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Use this directory`,description:`Button: select the current directory`},"directory.up":{message:`Parent directory`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Refresh`,description:`Button: reload the current directory`},"directory.loading":{message:`Loading…`,description:`Directory listing loading hint`},"directory.empty":{message:`This directory is empty.`,description:`Empty directory hint`},"directory.truncated":{message:`Showing the first 1000 entries.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Attach image`,description:`Attach image button title`},"session.removeImage":{message:`Remove image`,description:`Remove attached image button title`},"session.imageAlt":{message:`Attached image`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`Image is too large; keep each under 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`You can attach up to {count} images.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Default model`,description:`Default model`},"session.cwdDefault":{message:`Default directory`,description:`Default directory`},"session.settings":{message:`Session settings`,description:`Session settings`},"session.settingsLocked":{message:`Settings are locked for this session`,description:`Settings are locked for this session`},"session.attachFile":{message:`Attach file`,description:`Attach file`},"session.attachmentImageAlt":{message:`Attached image`,description:`Attached image`},"session.removeAttachment":{message:`Remove attachment`,description:`Remove attachment`},"session.uploadingAttachment":{message:`Uploading attachments…`,description:`Uploading attachments…`},"session.attachmentTooLarge":{message:`File is too large; keep each under 50 MB.`,description:`File is too large; keep each under 50 MB.`},"session.attachmentLimit":{message:`You can attach up to {count} files.`,description:`You can attach up to {count} files.`},"session.attachmentUploadError":{message:`Failed to upload attachment.`,description:`Failed to upload attachment.`}};export{e as default};
1
+ var e={"nodeList.title":{message:`Devices`,description:`Coding Bridge device list title`},"nodeList.refresh":{message:`Refresh`,description:`Refresh the device list`},"nodeList.pair":{message:`Pair device`,description:`Open the pairing dialog`},"nodeList.empty":{message:`No devices paired yet.`,description:`Empty device list message`},"nodeList.pairFirst":{message:`Pair your first device`,description:`Empty-state pairing button`},"nodeList.remove":{message:`Remove`,description:`Remove a device`},"nodeList.removeConfirm":{message:`Remove device "{name}"? It will need to be paired again.`,description:`Device removal confirmation`},"nodeList.removeSuccess":{message:`Device removed.`,description:`Device removed toast`},"nodeList.removeFailed":{message:`Failed to remove device.`,description:`Device removal error toast`},"status.online":{message:`Online`,description:`Device online status`},"status.offline":{message:`Offline`,description:`Device offline status`},"connection.disconnected":{message:`Disconnected`,description:`Relay connection disconnected`},"connection.connecting":{message:`Connecting…`,description:`Relay connection connecting`},"connection.connected":{message:`Connected`,description:`Relay connection connected`},"connection.error":{message:`Connection error`,description:`Relay connection error`},"pair.title":{message:`Pair a device`,description:`Pairing dialog title`},"pair.intro":{message:`Run the Coding Bridge agent on your computer, then enter its pairing code here to control it from the web.`,description:`Pairing dialog intro`},"pair.step1":{message:`Install the agent (requires Python 3.10+):`,description:`Pairing step 1`},"pair.step2":{message:`Start it and follow the prompt:`,description:`Pairing step 2`},"pair.step3":{message:`Enter the pairing code it shows below.`,description:`Pairing step 3`},"pair.codePlaceholder":{message:`Pairing code`,description:`Pairing code input placeholder`},"pair.claim":{message:`Pair device`,description:`Pairing confirm button`},"pair.success":{message:`Device "{name}" paired.`,description:`Pairing success toast`},"pair.invalidCode":{message:`Invalid or expired pairing code.`,description:`Pairing invalid code error`},"pair.usedCode":{message:`This pairing code has already been used.`,description:`Pairing used code error`},"pair.failed":{message:`Failed to pair device.`,description:`Pairing generic error`},"permission.title":{message:`Permission required`,description:`Permission dialog title`},"permission.subtitle":{message:`The agent wants to use a tool. Approve to continue.`,description:`Permission dialog subtitle`},"permission.deny":{message:`Deny`,description:`Deny a tool permission`},"permission.allow":{message:`Allow`,description:`Allow a tool permission`},"session.noDevice":{message:`Select a device to start coding.`,description:`No device selected placeholder`},"session.newSession":{message:`New session`,description:`Start a new session`},"session.deviceOffline":{message:`This device is offline. Start the Coding Bridge agent on it to continue.`,description:`Device offline warning`},"session.startHint":{message:`Send a message to start a session on this device.`,description:`Empty transcript hint`},"session.cwdPlaceholder":{message:`Working directory (optional)`,description:`Working directory input placeholder`},"session.modelPlaceholder":{message:`Model (optional)`,description:`Model input placeholder`},"session.promptPlaceholder":{message:`Send a message to the agent…`,description:`Prompt input placeholder`},"session.send":{message:`Send`,description:`Send prompt button`},"session.enterHint":{message:`Enter to send, Shift+Enter for a new line.`,description:`Composer keyboard hint`},"transcript.turnFailed":{message:`Turn failed`,description:`Turn result failed label`},"transcript.turnDone":{message:`Done`,description:`Turn result done label`},"history.button":{message:`History`,description:`Open the conversation history drawer`},"history.title":{message:`Conversation history`,description:`History drawer title`},"history.intro":{message:`Past Claude Code & Codex sessions on this device.`,description:`History drawer intro`},"history.refresh":{message:`Refresh`,description:`Reload the history list`},"history.loading":{message:`Loading history…`,description:`History loading message`},"history.empty":{message:`No history found on this device.`,description:`Empty history message`},"history.messages":{message:`{count} messages`,description:`History item message count`},"history.readonly":{message:`This Codex conversation is read-only and cannot be continued. Start a new session to keep coding.`,description:`Read-only replay notice`},"history.resumeHint":{message:`Sending a message will resume this conversation on the device.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Claude history`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Codex history (read-only)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Permission mode`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Default (ask each time)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Auto-accept edits`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Plan mode (read-only)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Bypass all permissions`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Backend`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(not installed)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} is not installed on this device.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Reasoning effort`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Default`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Low`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Medium`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`High`,description:`Reasoning effort: high`},"session.effortMax":{message:`Max`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Choose working directory`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Use this directory`,description:`Button: select the current directory`},"directory.up":{message:`Parent directory`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Refresh`,description:`Button: reload the current directory`},"directory.loading":{message:`Loading…`,description:`Directory listing loading hint`},"directory.empty":{message:`This directory is empty.`,description:`Empty directory hint`},"directory.truncated":{message:`Showing the first 1000 entries.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Attach image`,description:`Attach image button title`},"session.removeImage":{message:`Remove image`,description:`Remove attached image button title`},"session.imageAlt":{message:`Attached image`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`Image is too large; keep each under 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`You can attach up to {count} images.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Default model`,description:`Default model`},"session.cwdDefault":{message:`Default directory`,description:`Default directory`},"session.settings":{message:`Session settings`,description:`Session settings`},"session.settingsLocked":{message:`Settings are locked for this session`,description:`Settings are locked for this session`},"session.attachFile":{message:`Attach file`,description:`Attach file`},"session.attachmentImageAlt":{message:`Attached image`,description:`Attached image`},"session.removeAttachment":{message:`Remove attachment`,description:`Remove attachment`},"session.uploadingAttachment":{message:`Uploading attachments…`,description:`Uploading attachments…`},"session.attachmentTooLarge":{message:`File is too large; keep each under 50 MB.`,description:`File is too large; keep each under 50 MB.`},"session.attachmentLimit":{message:`You can attach up to {count} files.`,description:`You can attach up to {count} files.`},"session.attachmentUploadError":{message:`Failed to upload attachment.`,description:`Failed to upload attachment.`},"notice.slashUnavailable":{message:`/{command} is an interactive command and isn't available in a remote session.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} isn't available for Codex in a remote session.`,description:`Notice shown when a Codex slash command isn't supported remotely`}};export{e as default};
@@ -1 +1 @@
1
- var e={"nodeList.title":{message:`Devices`,description:`Coding Bridge device list title`},"nodeList.refresh":{message:`Refresh`,description:`Refresh the device list`},"nodeList.pair":{message:`Pair device`,description:`Open the pairing dialog`},"nodeList.empty":{message:`No devices paired yet.`,description:`Empty device list message`},"nodeList.pairFirst":{message:`Pair your first device`,description:`Empty-state pairing button`},"nodeList.remove":{message:`Remove`,description:`Remove a device`},"nodeList.removeConfirm":{message:`Remove device "{name}"? It will need to be paired again.`,description:`Device removal confirmation`},"nodeList.removeSuccess":{message:`Device removed.`,description:`Device removed toast`},"nodeList.removeFailed":{message:`Failed to remove device.`,description:`Device removal error toast`},"status.online":{message:`Online`,description:`Device online status`},"status.offline":{message:`Offline`,description:`Device offline status`},"connection.disconnected":{message:`Disconnected`,description:`Relay connection disconnected`},"connection.connecting":{message:`Connecting…`,description:`Relay connection connecting`},"connection.connected":{message:`Connected`,description:`Relay connection connected`},"connection.error":{message:`Connection error`,description:`Relay connection error`},"pair.title":{message:`Pair a device`,description:`Pairing dialog title`},"pair.intro":{message:`Run the Coding Bridge agent on your computer, then enter its pairing code here to control it from the web.`,description:`Pairing dialog intro`},"pair.step1":{message:`Install the agent (requires Python 3.10+):`,description:`Pairing step 1`},"pair.step2":{message:`Start it and follow the prompt:`,description:`Pairing step 2`},"pair.step3":{message:`Enter the pairing code it shows below.`,description:`Pairing step 3`},"pair.codePlaceholder":{message:`Pairing code`,description:`Pairing code input placeholder`},"pair.claim":{message:`Pair device`,description:`Pairing confirm button`},"pair.success":{message:`Device "{name}" paired.`,description:`Pairing success toast`},"pair.invalidCode":{message:`Invalid or expired pairing code.`,description:`Pairing invalid code error`},"pair.usedCode":{message:`This pairing code has already been used.`,description:`Pairing used code error`},"pair.failed":{message:`Failed to pair device.`,description:`Pairing generic error`},"permission.title":{message:`Permission required`,description:`Permission dialog title`},"permission.subtitle":{message:`The agent wants to use a tool. Approve to continue.`,description:`Permission dialog subtitle`},"permission.deny":{message:`Deny`,description:`Deny a tool permission`},"permission.allow":{message:`Allow`,description:`Allow a tool permission`},"session.noDevice":{message:`Select a device to start coding.`,description:`No device selected placeholder`},"session.newSession":{message:`New session`,description:`Start a new session`},"session.deviceOffline":{message:`This device is offline. Start the Coding Bridge agent on it to continue.`,description:`Device offline warning`},"session.startHint":{message:`Send a message to start a session on this device.`,description:`Empty transcript hint`},"session.cwdPlaceholder":{message:`Working directory (optional)`,description:`Working directory input placeholder`},"session.modelPlaceholder":{message:`Model (optional)`,description:`Model input placeholder`},"session.promptPlaceholder":{message:`Send a message to the agent…`,description:`Prompt input placeholder`},"session.send":{message:`Send`,description:`Send prompt button`},"session.enterHint":{message:`Enter to send, Shift+Enter for a new line.`,description:`Composer keyboard hint`},"transcript.turnFailed":{message:`Turn failed`,description:`Turn result failed label`},"transcript.turnDone":{message:`Done`,description:`Turn result done label`},"history.button":{message:`Ιστορικό`,description:`Open the conversation history drawer`},"history.title":{message:`Ιστορικό συνομιλιών`,description:`History drawer title`},"history.intro":{message:`Προηγούμενες συνεδρίες Claude Code και Codex σε αυτή τη συσκευή.`,description:`History drawer intro`},"history.refresh":{message:`Ανανέωση`,description:`Reload the history list`},"history.loading":{message:`Φόρτωση ιστορικού…`,description:`History loading message`},"history.empty":{message:`Δεν βρέθηκε ιστορικό σε αυτή τη συσκευή.`,description:`Empty history message`},"history.messages":{message:`{count} μηνύματα`,description:`History item message count`},"history.readonly":{message:`Αυτή η συνομιλία Codex είναι μόνο για ανάγνωση και δεν μπορεί να συνεχιστεί. Ξεκινήστε νέα συνεδρία για να συνεχίσετε.`,description:`Read-only replay notice`},"history.resumeHint":{message:`Η αποστολή μηνύματος θα συνεχίσει αυτή τη συνομιλία στη συσκευή.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Ιστορικό Claude`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Ιστορικό Codex (μόνο για ανάγνωση)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Λειτουργία δικαιωμάτων`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Προεπιλογή (ερώτηση κάθε φορά)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Αυτόματη αποδοχή αλλαγών`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Λειτουργία σχεδιασμού (μόνο ανάγνωση)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Παράκαμψη όλων των δικαιωμάτων`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Σύστημα`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(δεν έχει εγκατασταθεί)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`Το {name} δεν είναι εγκατεστημένο σε αυτή τη συσκευή.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Προσπάθεια συλλογισμού`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Προεπιλογή`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Χαμηλή`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Μεσαία`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Υψηλή`,description:`Reasoning effort: high`},"session.effortMax":{message:`Μέγιστη`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Επιλογή καταλόγου εργασίας`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Χρήση αυτού του καταλόγου`,description:`Button: select the current directory`},"directory.up":{message:`Γονικός κατάλογος`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Ανανέωση`,description:`Button: reload the current directory`},"directory.loading":{message:`Φόρτωση…`,description:`Directory listing loading hint`},"directory.empty":{message:`Αυτός ο κατάλογος είναι κενός.`,description:`Empty directory hint`},"directory.truncated":{message:`Εμφάνιση των πρώτων 1000 στοιχείων.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Επισύναψη εικόνας`,description:`Attach image button title`},"session.removeImage":{message:`Αφαίρεση εικόνας`,description:`Remove attached image button title`},"session.imageAlt":{message:`Συνημμένη εικόνα`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`Η εικόνα είναι πολύ μεγάλη· κράτησε κάθε εικόνα κάτω από 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Μπορείς να επισυνάψεις έως {count} εικόνες.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Default model`,description:`Default model`},"session.cwdDefault":{message:`Default directory`,description:`Default directory`},"session.settings":{message:`Session settings`,description:`Session settings`},"session.settingsLocked":{message:`Settings are locked for this session`,description:`Settings are locked for this session`},"session.attachFile":{message:`Attach file`,description:`Attach file`},"session.attachmentImageAlt":{message:`Attached image`,description:`Attached image`},"session.removeAttachment":{message:`Remove attachment`,description:`Remove attachment`},"session.uploadingAttachment":{message:`Uploading attachments…`,description:`Uploading attachments…`},"session.attachmentTooLarge":{message:`File is too large; keep each under 50 MB.`,description:`File is too large; keep each under 50 MB.`},"session.attachmentLimit":{message:`You can attach up to {count} files.`,description:`You can attach up to {count} files.`},"session.attachmentUploadError":{message:`Failed to upload attachment.`,description:`Failed to upload attachment.`}};export{e as default};
1
+ var e={"nodeList.title":{message:`Devices`,description:`Coding Bridge device list title`},"nodeList.refresh":{message:`Refresh`,description:`Refresh the device list`},"nodeList.pair":{message:`Pair device`,description:`Open the pairing dialog`},"nodeList.empty":{message:`No devices paired yet.`,description:`Empty device list message`},"nodeList.pairFirst":{message:`Pair your first device`,description:`Empty-state pairing button`},"nodeList.remove":{message:`Remove`,description:`Remove a device`},"nodeList.removeConfirm":{message:`Remove device "{name}"? It will need to be paired again.`,description:`Device removal confirmation`},"nodeList.removeSuccess":{message:`Device removed.`,description:`Device removed toast`},"nodeList.removeFailed":{message:`Failed to remove device.`,description:`Device removal error toast`},"status.online":{message:`Online`,description:`Device online status`},"status.offline":{message:`Offline`,description:`Device offline status`},"connection.disconnected":{message:`Disconnected`,description:`Relay connection disconnected`},"connection.connecting":{message:`Connecting…`,description:`Relay connection connecting`},"connection.connected":{message:`Connected`,description:`Relay connection connected`},"connection.error":{message:`Connection error`,description:`Relay connection error`},"pair.title":{message:`Pair a device`,description:`Pairing dialog title`},"pair.intro":{message:`Run the Coding Bridge agent on your computer, then enter its pairing code here to control it from the web.`,description:`Pairing dialog intro`},"pair.step1":{message:`Install the agent (requires Python 3.10+):`,description:`Pairing step 1`},"pair.step2":{message:`Start it and follow the prompt:`,description:`Pairing step 2`},"pair.step3":{message:`Enter the pairing code it shows below.`,description:`Pairing step 3`},"pair.codePlaceholder":{message:`Pairing code`,description:`Pairing code input placeholder`},"pair.claim":{message:`Pair device`,description:`Pairing confirm button`},"pair.success":{message:`Device "{name}" paired.`,description:`Pairing success toast`},"pair.invalidCode":{message:`Invalid or expired pairing code.`,description:`Pairing invalid code error`},"pair.usedCode":{message:`This pairing code has already been used.`,description:`Pairing used code error`},"pair.failed":{message:`Failed to pair device.`,description:`Pairing generic error`},"permission.title":{message:`Permission required`,description:`Permission dialog title`},"permission.subtitle":{message:`The agent wants to use a tool. Approve to continue.`,description:`Permission dialog subtitle`},"permission.deny":{message:`Deny`,description:`Deny a tool permission`},"permission.allow":{message:`Allow`,description:`Allow a tool permission`},"session.noDevice":{message:`Select a device to start coding.`,description:`No device selected placeholder`},"session.newSession":{message:`New session`,description:`Start a new session`},"session.deviceOffline":{message:`This device is offline. Start the Coding Bridge agent on it to continue.`,description:`Device offline warning`},"session.startHint":{message:`Send a message to start a session on this device.`,description:`Empty transcript hint`},"session.cwdPlaceholder":{message:`Working directory (optional)`,description:`Working directory input placeholder`},"session.modelPlaceholder":{message:`Model (optional)`,description:`Model input placeholder`},"session.promptPlaceholder":{message:`Send a message to the agent…`,description:`Prompt input placeholder`},"session.send":{message:`Send`,description:`Send prompt button`},"session.enterHint":{message:`Enter to send, Shift+Enter for a new line.`,description:`Composer keyboard hint`},"transcript.turnFailed":{message:`Turn failed`,description:`Turn result failed label`},"transcript.turnDone":{message:`Done`,description:`Turn result done label`},"history.button":{message:`Ιστορικό`,description:`Open the conversation history drawer`},"history.title":{message:`Ιστορικό συνομιλιών`,description:`History drawer title`},"history.intro":{message:`Προηγούμενες συνεδρίες Claude Code και Codex σε αυτή τη συσκευή.`,description:`History drawer intro`},"history.refresh":{message:`Ανανέωση`,description:`Reload the history list`},"history.loading":{message:`Φόρτωση ιστορικού…`,description:`History loading message`},"history.empty":{message:`Δεν βρέθηκε ιστορικό σε αυτή τη συσκευή.`,description:`Empty history message`},"history.messages":{message:`{count} μηνύματα`,description:`History item message count`},"history.readonly":{message:`Αυτή η συνομιλία Codex είναι μόνο για ανάγνωση και δεν μπορεί να συνεχιστεί. Ξεκινήστε νέα συνεδρία για να συνεχίσετε.`,description:`Read-only replay notice`},"history.resumeHint":{message:`Η αποστολή μηνύματος θα συνεχίσει αυτή τη συνομιλία στη συσκευή.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Ιστορικό Claude`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Ιστορικό Codex (μόνο για ανάγνωση)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Λειτουργία δικαιωμάτων`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Προεπιλογή (ερώτηση κάθε φορά)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Αυτόματη αποδοχή αλλαγών`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Λειτουργία σχεδιασμού (μόνο ανάγνωση)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Παράκαμψη όλων των δικαιωμάτων`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Σύστημα`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(δεν έχει εγκατασταθεί)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`Το {name} δεν είναι εγκατεστημένο σε αυτή τη συσκευή.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Προσπάθεια συλλογισμού`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Προεπιλογή`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Χαμηλή`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Μεσαία`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Υψηλή`,description:`Reasoning effort: high`},"session.effortMax":{message:`Μέγιστη`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Επιλογή καταλόγου εργασίας`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Χρήση αυτού του καταλόγου`,description:`Button: select the current directory`},"directory.up":{message:`Γονικός κατάλογος`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Ανανέωση`,description:`Button: reload the current directory`},"directory.loading":{message:`Φόρτωση…`,description:`Directory listing loading hint`},"directory.empty":{message:`Αυτός ο κατάλογος είναι κενός.`,description:`Empty directory hint`},"directory.truncated":{message:`Εμφάνιση των πρώτων 1000 στοιχείων.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Επισύναψη εικόνας`,description:`Attach image button title`},"session.removeImage":{message:`Αφαίρεση εικόνας`,description:`Remove attached image button title`},"session.imageAlt":{message:`Συνημμένη εικόνα`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`Η εικόνα είναι πολύ μεγάλη· κράτησε κάθε εικόνα κάτω από 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Μπορείς να επισυνάψεις έως {count} εικόνες.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Default model`,description:`Default model`},"session.cwdDefault":{message:`Default directory`,description:`Default directory`},"session.settings":{message:`Session settings`,description:`Session settings`},"session.settingsLocked":{message:`Settings are locked for this session`,description:`Settings are locked for this session`},"session.attachFile":{message:`Attach file`,description:`Attach file`},"session.attachmentImageAlt":{message:`Attached image`,description:`Attached image`},"session.removeAttachment":{message:`Remove attachment`,description:`Remove attachment`},"session.uploadingAttachment":{message:`Uploading attachments…`,description:`Uploading attachments…`},"session.attachmentTooLarge":{message:`File is too large; keep each under 50 MB.`,description:`File is too large; keep each under 50 MB.`},"session.attachmentLimit":{message:`You can attach up to {count} files.`,description:`You can attach up to {count} files.`},"session.attachmentUploadError":{message:`Failed to upload attachment.`,description:`Failed to upload attachment.`},"notice.slashUnavailable":{message:`Η /{command} είναι διαδραστική εντολή και δεν μπορεί να εκτελεστεί σε απομακρυσμένη συνεδρία.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`Η /{command} δεν είναι διαθέσιμη για το Codex σε απομακρυσμένη συνεδρία.`,description:`Notice shown when a Codex slash command isn't supported remotely`}};export{e as default};
@@ -1 +1 @@
1
- import{$ as e,Bt as t,D as n,Dt as r,E as i,M as a,N as o,Nt as s,P as c,R as l,Rt as u,T as d,Ut as f,X as p,Z as m,_ as h,k as g,lt as _,nt as v,st as y,ut as b,v as x,y as S,yt as C,zt as w}from"./vendor-chart-Df3WBvr0.js";import{a as T,c as E,i as D,t as O}from"./install-CzQRVga2.js";import{i as k,n as A,r as j,s as M}from"./runtime-CWC3rvzM.js";import{Ct as N,St as P,_ as ee,l as F,m as I,tt as L}from"./use-deprecated-BhaeS12t.js";import{t as R}from"./castArray-C8iSMqbN.js";import{r as z,t as B}from"./event-BGnHezxC.js";import{t as V}from"./collapse-transition-ee9MUgpU.js";import{Rr as H}from"./index-DXE85bHt.js";var U=e=>M(e)||w(e)||s(e),W=A({accordion:Boolean,modelValue:{type:j([Array,String,Number]),default:()=>H([])},expandIconPosition:{type:j([String]),default:`right`},beforeCollapse:{type:j(Function)}}),G={[z]:U,[B]:U},K=Symbol(`collapseContextKey`),q=`ElCollapse`,J=(e,t)=>{let n=C(R(e.modelValue)),r=r=>{n.value=r;let i=e.accordion?n.value[0]:n.value;t(z,i),t(B,i)},i=t=>{if(e.accordion)r([n.value[0]===t?``:t]);else{let e=[...n.value],i=e.indexOf(t);i>-1?e.splice(i,1):e.push(t),r(e)}};return y(()=>e.modelValue,()=>n.value=R(e.modelValue),{deep:!0}),m(K,{activeNames:n,handleItemClick:async t=>{let{beforeCollapse:n}=e;if(!n){i(t);return}let r=n(t);[u(r),k(r)].includes(!0)||N(q,"beforeCollapse must return type `Promise<boolean>` or `boolean`"),u(r)?r.then(e=>{e!==!1&&i(t)}).catch(e=>{P(q,`some error occurred: ${e}`)}):r&&i(t)}}),{activeNames:n,setActiveNames:r}},Y=e=>{let t=E(`collapse`);return{rootKls:d(()=>[t.b(),t.b(`icon-position-${e.expandIconPosition}`)])}},X=T(c({...c({name:`ElCollapse`}),props:W,emits:G,setup(n,{expose:i,emit:a}){let o=n,{activeNames:s,setActiveNames:c}=J(o,a),{rootKls:l}=Y(o);return i({activeNames:s,setActiveNames:c}),(n,i)=>(p(),g(`div`,{class:t(r(l))},[e(n.$slots,`default`)],2))}}),[[`__file`,`collapse.vue`]]),Z=A({title:{type:String,default:``},name:{type:j([String,Number]),default:void 0},icon:{type:I,default:ee},disabled:Boolean}),Q=e=>{let t=l(K),{namespace:n}=E(`collapse`),i=C(!1),a=C(!1),o=F(),s=d(()=>o.current++),c=d(()=>e.name??`${n.value}-id-${o.prefix}-${r(s)}`);return{focusing:i,id:s,isActive:d(()=>t?.activeNames.value.includes(r(c))),handleFocus:()=>{setTimeout(()=>{a.value?a.value=!1:i.value=!0},50)},handleHeaderClick:n=>{e.disabled||n.target?.closest(`input, textarea, select`)||(t?.handleItemClick(r(c)),i.value=!1,a.value=!0)},handleEnterClick:e=>{e.target?.closest(`input, textarea, select`)||(e.preventDefault(),t?.handleItemClick(r(c)))}}},te=(e,{focusing:t,isActive:n,id:i})=>{let a=E(`collapse`),o=d(()=>[a.b(`item`),a.is(`active`,r(n)),a.is(`disabled`,e.disabled)]),s=d(()=>[a.be(`item`,`header`),a.is(`active`,r(n)),{focusing:r(t)&&!e.disabled}]),c=d(()=>[a.be(`item`,`arrow`),a.is(`active`,r(n))]);return{itemTitleKls:d(()=>[a.be(`item`,`title`)]),arrowKls:c,headKls:s,rootKls:o,itemWrapperKls:d(()=>a.be(`item`,`wrap`)),itemContentKls:d(()=>a.be(`item`,`content`)),scopedContentId:d(()=>a.b(`content-${r(i)}`)),scopedHeadId:d(()=>a.b(`head-${r(i)}`))}},$=T(c({...c({name:`ElCollapseItem`}),props:Z,setup(s,{expose:c}){let l=s,{focusing:u,id:d,isActive:m,handleFocus:y,handleHeaderClick:C,handleEnterClick:w}=Q(l),{arrowKls:T,headKls:E,rootKls:D,itemTitleKls:O,itemWrapperKls:k,itemContentKls:A,scopedContentId:j,scopedHeadId:M}=te(l,{focusing:u,isActive:m,id:d});return c({isActive:m}),(s,c)=>(p(),g(`div`,{class:t(r(D))},[i(`div`,{id:r(M),class:t(r(E)),"aria-expanded":r(m),"aria-controls":r(j),"aria-describedby":r(j),tabindex:s.disabled?-1:0,role:`button`,onClick:r(C),onKeydown:x(S(r(w),[`stop`]),[`space`,`enter`]),onFocus:r(y),onBlur:e=>u.value=!1},[i(`span`,{class:t(r(O))},[e(s.$slots,`title`,{isActive:r(m)},()=>[a(f(s.title),1)])],2),e(s.$slots,`icon`,{isActive:r(m)},()=>[o(r(L),{class:t(r(T))},{default:_(()=>[(p(),n(v(s.icon)))]),_:1},8,[`class`])])],42,[`id`,`aria-expanded`,`aria-controls`,`aria-describedby`,`tabindex`,`onClick`,`onKeydown`,`onFocus`,`onBlur`]),o(r(V),null,{default:_(()=>[b(i(`div`,{id:r(j),role:`region`,class:t(r(k)),"aria-hidden":!r(m),"aria-labelledby":r(M)},[i(`div`,{class:t(r(A))},[e(s.$slots,`default`)],2)],10,[`id`,`aria-hidden`,`aria-labelledby`]),[[h,r(m)]])]),_:3})],2))}}),[[`__file`,`collapse-item.vue`]]),ne=O(X,{CollapseItem:$}),re=D($);export{re as n,ne as t};
1
+ import{$ as e,Bt as t,D as n,Dt as r,E as i,M as a,N as o,Nt as s,P as c,R as l,Rt as u,T as d,Ut as f,X as p,Z as m,_ as h,k as g,lt as _,nt as v,st as y,ut as b,v as x,y as S,yt as C,zt as w}from"./vendor-chart-Df3WBvr0.js";import{a as T,c as E,i as D,t as O}from"./install-CzQRVga2.js";import{i as k,n as A,r as j,s as M}from"./runtime-CWC3rvzM.js";import{Ct as N,St as P,_ as ee,l as F,m as I,tt as L}from"./use-deprecated-BhaeS12t.js";import{t as R}from"./castArray-C8iSMqbN.js";import{r as z,t as B}from"./event-BGnHezxC.js";import{t as V}from"./collapse-transition-ee9MUgpU.js";import{Rr as H}from"./index-Bpg44eWB.js";var U=e=>M(e)||w(e)||s(e),W=A({accordion:Boolean,modelValue:{type:j([Array,String,Number]),default:()=>H([])},expandIconPosition:{type:j([String]),default:`right`},beforeCollapse:{type:j(Function)}}),G={[z]:U,[B]:U},K=Symbol(`collapseContextKey`),q=`ElCollapse`,J=(e,t)=>{let n=C(R(e.modelValue)),r=r=>{n.value=r;let i=e.accordion?n.value[0]:n.value;t(z,i),t(B,i)},i=t=>{if(e.accordion)r([n.value[0]===t?``:t]);else{let e=[...n.value],i=e.indexOf(t);i>-1?e.splice(i,1):e.push(t),r(e)}};return y(()=>e.modelValue,()=>n.value=R(e.modelValue),{deep:!0}),m(K,{activeNames:n,handleItemClick:async t=>{let{beforeCollapse:n}=e;if(!n){i(t);return}let r=n(t);[u(r),k(r)].includes(!0)||N(q,"beforeCollapse must return type `Promise<boolean>` or `boolean`"),u(r)?r.then(e=>{e!==!1&&i(t)}).catch(e=>{P(q,`some error occurred: ${e}`)}):r&&i(t)}}),{activeNames:n,setActiveNames:r}},Y=e=>{let t=E(`collapse`);return{rootKls:d(()=>[t.b(),t.b(`icon-position-${e.expandIconPosition}`)])}},X=T(c({...c({name:`ElCollapse`}),props:W,emits:G,setup(n,{expose:i,emit:a}){let o=n,{activeNames:s,setActiveNames:c}=J(o,a),{rootKls:l}=Y(o);return i({activeNames:s,setActiveNames:c}),(n,i)=>(p(),g(`div`,{class:t(r(l))},[e(n.$slots,`default`)],2))}}),[[`__file`,`collapse.vue`]]),Z=A({title:{type:String,default:``},name:{type:j([String,Number]),default:void 0},icon:{type:I,default:ee},disabled:Boolean}),Q=e=>{let t=l(K),{namespace:n}=E(`collapse`),i=C(!1),a=C(!1),o=F(),s=d(()=>o.current++),c=d(()=>e.name??`${n.value}-id-${o.prefix}-${r(s)}`);return{focusing:i,id:s,isActive:d(()=>t?.activeNames.value.includes(r(c))),handleFocus:()=>{setTimeout(()=>{a.value?a.value=!1:i.value=!0},50)},handleHeaderClick:n=>{e.disabled||n.target?.closest(`input, textarea, select`)||(t?.handleItemClick(r(c)),i.value=!1,a.value=!0)},handleEnterClick:e=>{e.target?.closest(`input, textarea, select`)||(e.preventDefault(),t?.handleItemClick(r(c)))}}},te=(e,{focusing:t,isActive:n,id:i})=>{let a=E(`collapse`),o=d(()=>[a.b(`item`),a.is(`active`,r(n)),a.is(`disabled`,e.disabled)]),s=d(()=>[a.be(`item`,`header`),a.is(`active`,r(n)),{focusing:r(t)&&!e.disabled}]),c=d(()=>[a.be(`item`,`arrow`),a.is(`active`,r(n))]);return{itemTitleKls:d(()=>[a.be(`item`,`title`)]),arrowKls:c,headKls:s,rootKls:o,itemWrapperKls:d(()=>a.be(`item`,`wrap`)),itemContentKls:d(()=>a.be(`item`,`content`)),scopedContentId:d(()=>a.b(`content-${r(i)}`)),scopedHeadId:d(()=>a.b(`head-${r(i)}`))}},$=T(c({...c({name:`ElCollapseItem`}),props:Z,setup(s,{expose:c}){let l=s,{focusing:u,id:d,isActive:m,handleFocus:y,handleHeaderClick:C,handleEnterClick:w}=Q(l),{arrowKls:T,headKls:E,rootKls:D,itemTitleKls:O,itemWrapperKls:k,itemContentKls:A,scopedContentId:j,scopedHeadId:M}=te(l,{focusing:u,isActive:m,id:d});return c({isActive:m}),(s,c)=>(p(),g(`div`,{class:t(r(D))},[i(`div`,{id:r(M),class:t(r(E)),"aria-expanded":r(m),"aria-controls":r(j),"aria-describedby":r(j),tabindex:s.disabled?-1:0,role:`button`,onClick:r(C),onKeydown:x(S(r(w),[`stop`]),[`space`,`enter`]),onFocus:r(y),onBlur:e=>u.value=!1},[i(`span`,{class:t(r(O))},[e(s.$slots,`title`,{isActive:r(m)},()=>[a(f(s.title),1)])],2),e(s.$slots,`icon`,{isActive:r(m)},()=>[o(r(L),{class:t(r(T))},{default:_(()=>[(p(),n(v(s.icon)))]),_:1},8,[`class`])])],42,[`id`,`aria-expanded`,`aria-controls`,`aria-describedby`,`tabindex`,`onClick`,`onKeydown`,`onFocus`,`onBlur`]),o(r(V),null,{default:_(()=>[b(i(`div`,{id:r(j),role:`region`,class:t(r(k)),"aria-hidden":!r(m),"aria-labelledby":r(M)},[i(`div`,{class:t(r(A))},[e(s.$slots,`default`)],2)],10,[`id`,`aria-hidden`,`aria-labelledby`]),[[h,r(m)]])]),_:3})],2))}}),[[`__file`,`collapse-item.vue`]]),ne=O(X,{CollapseItem:$}),re=D($);export{re as n,ne as t};