@acedatacloud/nexior 3.273.0 → 3.274.0

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 (156) hide show
  1. package/dist/assets/{ApiCodeButton-CHy9PHuc.js → ApiCodeButton-izt0MrJt.js} +1 -1
  2. package/dist/assets/{AskUserQuestionCard-DORf7xEV.js → AskUserQuestionCard-hh5dLFJh.js} +1 -1
  3. package/dist/assets/{Auth-DVFgOV_y.js → Auth-DgjLgixx.js} +1 -1
  4. package/dist/assets/{Bare-CAC3Ftmz.js → Bare-CPm2r4ow.js} +1 -1
  5. package/dist/assets/{BotPlaceholder-CWGDKtsv.js → BotPlaceholder-D3yP8ahU.js} +1 -1
  6. package/dist/assets/{BottomFooter-AvRvZsg9.js → BottomFooter-CM98_CTW.js} +1 -1
  7. package/dist/assets/{Callback-Qga-li-w.js → Callback--rPiyG0j.js} +1 -1
  8. package/dist/assets/{Console-BT3we5gT.js → Console-BvntbEuz.js} +1 -1
  9. package/dist/assets/{Consumption-Cf22FCn8.js → Consumption-87pk2Rrh.js} +1 -1
  10. package/dist/assets/{Conversation-Cd3fpN0w.js → Conversation-DiMJLsck.js} +1 -1
  11. package/dist/assets/{CopyToClipboard-BHjhAouE.js → CopyToClipboard-Dkx-UeG9.js} +1 -1
  12. package/dist/assets/{Detail-TIToP0pV.js → Detail-YYL5IMOW.js} +2 -2
  13. package/dist/assets/{Extra-CRndMzFS.js → Extra-Cl0HSq4q.js} +1 -1
  14. package/dist/assets/{FilePreview-BlQ-u4sW.js → FilePreview-B9zgHaDz.js} +1 -1
  15. package/dist/assets/{Hailuo-BDoQkLVs.js → Hailuo-B009tjyU.js} +1 -1
  16. package/dist/assets/{History-YvF_T8H_.js → History-CalRO8EX.js} +1 -1
  17. package/dist/assets/{ImagePreview-C9KdSr97.js → ImagePreview-DeW8m863.js} +1 -1
  18. package/dist/assets/{ImageWrapper-B0UjgrzU.js → ImageWrapper-8MM2tJEi.js} +1 -1
  19. package/dist/assets/{Index-DQr655l_.css → Index-7mpwBbsc.css} +1 -1
  20. package/dist/assets/{Index-Cq7dDytL.js → Index-BE0CSc0W.js} +1 -1
  21. package/dist/assets/{Index-BPoXz7hq2.js → Index-BiceioRZ2.js} +1 -1
  22. package/dist/assets/{Index-qL4_ypDD2.js → Index-BoNVYF1X2.js} +1 -1
  23. package/dist/assets/{Index-CWlkPC-o.js → Index-BqNYExTU.js} +1 -1
  24. package/dist/assets/{Index-BZbVFgOS.js → Index-BrblkbIC.js} +1 -1
  25. package/dist/assets/{Index-Cps8jkQJ.js → Index-C03ClqLQ.js} +1 -1
  26. package/dist/assets/{Index-BZmKoJmO.js → Index-COQsNNp7.js} +1 -1
  27. package/dist/assets/{Index-_0zc9oYW.js → Index-CRz9crNZ.js} +1 -1
  28. package/dist/assets/{Index-BRkRVL2R.js → Index-CTwRfOCy.js} +1 -1
  29. package/dist/assets/{Index-F4_VvuAB.js → Index-Ch8D-0we.js} +1 -1
  30. package/dist/assets/{Index-BEOvrtNY.js → Index-ChwtDKcu.js} +1 -1
  31. package/dist/assets/{Index-GEe3i5pK.js → Index-CpMPVARM.js} +1 -1
  32. package/dist/assets/{Index-BtZvKgvQ.js → Index-Cww5cEUu.js} +1 -1
  33. package/dist/assets/{Index-ByzFz-ij.js → Index-D0j_1sPR.js} +1 -1
  34. package/dist/assets/{Index-B4eZa55n.js → Index-DHATS7Ky.js} +1 -1
  35. package/dist/assets/Index-Di7t07u2.js +1 -0
  36. package/dist/assets/{Index-gDe0NWCz.js → Index-DkrwSpMP.js} +1 -1
  37. package/dist/assets/{Index-D62MK84e.js → Index-DpG-qzGP.js} +1 -1
  38. package/dist/assets/{Index-DiYbBvWR.js → Index-Dy-xpL6V.js} +1 -1
  39. package/dist/assets/{Index-Bjmd7I-E.js → Index-DyQCQeVu.js} +1 -1
  40. package/dist/assets/{Index-Bnrn1y8z.js → Index-KTOQydLC.js} +1 -1
  41. package/dist/assets/{Index-gd6wKS3e2.js → Index-W0Cbth_e2.js} +1 -1
  42. package/dist/assets/{Index-DUck7dIW.js → Index-_IvKFKcY.js} +1 -1
  43. package/dist/assets/{Index-DeA_jYq8.js → Index-e5Pg9C7H.js} +1 -1
  44. package/dist/assets/{Index-CQ3D2LLF.js → Index-xq2Gci47.js} +1 -1
  45. package/dist/assets/{Invitees-BQEsUwWr.js → Invitees-wd2nW0GB.js} +1 -1
  46. package/dist/assets/{List-BWU9dIWf.js → List-CkOgFIfg.js} +1 -1
  47. package/dist/assets/{List-Dnv6F-zX.js → List-DEw0xltu.js} +1 -1
  48. package/dist/assets/{List-L62s20Ds.js → List-QNPpC_sr.js} +1 -1
  49. package/dist/assets/{Main-Cenjq2b9.js → Main-DMBRhF8j.js} +1 -1
  50. package/dist/assets/{Model-DnymjJlj.js → Model-DU8ABpbt.js} +1 -1
  51. package/dist/assets/{Navigator-D_DOfFe4.js → Navigator-C-3ZvfEa.js} +1 -1
  52. package/dist/assets/{NoTasks-Bdp5xPyq.js → NoTasks-DgPpHfON.js} +1 -1
  53. package/dist/assets/{NotFound-DQp-QZvK.js → NotFound-BMoMFCwB.js} +1 -1
  54. package/dist/assets/{Pagination-DCK62yc4.js → Pagination-BDvzj9pL.js} +1 -1
  55. package/dist/assets/{Pay-CE-bOHKe.js → Pay-Cxb8WV_y.js} +1 -1
  56. package/dist/assets/{Player-BU0vM-ZI.js → Player-B4OZmqh9.js} +1 -1
  57. package/dist/assets/{Status-D6Z8FHWN.js → Status-ru9xTdh9.js} +1 -1
  58. package/dist/assets/{Subscribe-C3_-qvcA.js → Subscribe-BS75xqsd.js} +1 -1
  59. package/dist/assets/{TabSwitcher-DFrw898G.js → TabSwitcher-CM-uPrwG.js} +1 -1
  60. package/dist/assets/{Tts-DlCEGA2n.js → Tts-QI_TGp5R.js} +1 -1
  61. package/dist/assets/{VideoPlayer-BVe4MmHU.js → VideoPlayer-BMJgt1nn.js} +1 -1
  62. package/dist/assets/{avatar-CK7qKX42.js → avatar-XhgOIdSJ.js} +1 -1
  63. package/dist/assets/{basic-jdZU1Slv.js → basic-rbZkwySN.js} +1 -1
  64. package/dist/assets/{chat-DA8umctf.js → chat-D0PEnKc5.js} +1 -1
  65. package/dist/assets/codingBridge-BBTz-LNk.js +1 -0
  66. package/dist/assets/codingBridge-BEdoIvhU.js +1 -0
  67. package/dist/assets/codingBridge-BJOs2wGl.js +1 -0
  68. package/dist/assets/codingBridge-Bb2vpBlj.js +1 -0
  69. package/dist/assets/codingBridge-Bg-bg7GC.js +1 -0
  70. package/dist/assets/codingBridge-BtUDmyf5.js +1 -0
  71. package/dist/assets/codingBridge-CapiE9kS.js +1 -0
  72. package/dist/assets/codingBridge-D0aUF3ys.js +1 -0
  73. package/dist/assets/codingBridge-DBHW6da0.js +1 -0
  74. package/dist/assets/codingBridge-DEIry9_G.js +2 -0
  75. package/dist/assets/codingBridge-DHBG8hRH.js +1 -0
  76. package/dist/assets/codingBridge-DPbhaNxe.js +1 -0
  77. package/dist/assets/codingBridge-DdWd-svT.js +1 -0
  78. package/dist/assets/codingBridge-DesQMnCS.js +1 -0
  79. package/dist/assets/codingBridge-DhU4hcRW.js +1 -0
  80. package/dist/assets/codingBridge-DyGBsBaQ.js +1 -0
  81. package/dist/assets/codingBridge-VBvS-ufO.js +1 -0
  82. package/dist/assets/codingBridge-cDeiH5ZF.js +1 -0
  83. package/dist/assets/codingBridge-gF-qCrm2.js +1 -0
  84. package/dist/assets/{collapse-DEeyCD20.js → collapse-kfuj8uXP.js} +1 -1
  85. package/dist/assets/{constants-rZaPXulz.js → constants-C2ehd_ov.js} +1 -1
  86. package/dist/assets/{createTaskActions-DPa2TQS7.js → createTaskActions-C_M-waEz.js} +1 -1
  87. package/dist/assets/{date-picker-Cximqaen.js → date-picker-DM7DY090.js} +1 -1
  88. package/dist/assets/{dropdown-Jb9qYsfn.js → dropdown-CSZNqOKL.js} +1 -1
  89. package/dist/assets/{esm-dAPGj_5Y.js → esm-2IrHjk9y.js} +1 -1
  90. package/dist/assets/{esm-Li7L7tp0.js → esm-BR9NcgII.js} +3 -3
  91. package/dist/assets/{esm-CI7jFOnZ.js → esm-CjxY7gsK.js} +1 -1
  92. package/dist/assets/{esm-BTh-ElB7.js → esm-Cp4vWvgm.js} +1 -1
  93. package/dist/assets/{esm-ovc4k8uV.js → esm-CqViCKeq.js} +2 -2
  94. package/dist/assets/{fish-DFid_WvT.js → fish-BCZOGDBU.js} +1 -1
  95. package/dist/assets/{flux-CP7iJGFk.js → flux-BBlPM4n-.js} +1 -1
  96. package/dist/assets/{hailuo-CigCtsfY.js → hailuo-iBvKjPzs.js} +1 -1
  97. package/dist/assets/{headshots-BJDo7t_N.js → headshots-Bh5kcvU0.js} +1 -1
  98. package/dist/assets/{image-Dn4svff_.js → image-BPPkb2eq.js} +1 -1
  99. package/dist/assets/{index-4Ei2pWK5.js → index-BkE6zZfO.js} +4 -4
  100. package/dist/assets/{index-BvmE2JX2.css → index-DzfCaX1N.css} +1 -1
  101. package/dist/assets/{index.browser.esm-DttPvR5j.js → index.browser.esm-Cg0rBOy0.js} +1 -1
  102. package/dist/assets/{index.es-DknNRO9I.js → index.es-C68r3aRl.js} +1 -1
  103. package/dist/assets/{input-number-DZS7RbCp.js → input-number-DUanhx78.js} +1 -1
  104. package/dist/assets/{kling-CqoNu0W1.js → kling-BgqPAeiX.js} +1 -1
  105. package/dist/assets/{luma-C1bdMysw.js → luma-C33hAU4n.js} +1 -1
  106. package/dist/assets/{midjourney-B5zEC6Ps.js → midjourney-d7Yh7smZ.js} +1 -1
  107. package/dist/assets/{nanobanana-CHSkge-P.js → nanobanana-B5fjsOMa.js} +1 -1
  108. package/dist/assets/{openaiimage-CqgdFekH.js → openaiimage-Mey35hGy.js} +1 -1
  109. package/dist/assets/{pagination-CzfaRayI.js → pagination-Ch6Ip7cV.js} +1 -1
  110. package/dist/assets/{pika-CMqqLhyz.js → pika-BfMYhFxM.js} +1 -1
  111. package/dist/assets/{pixverse-CS_lOgrG.js → pixverse-CGIthx6c.js} +1 -1
  112. package/dist/assets/{popover-uA6mD34l.js → popover-iuFyilQ-.js} +1 -1
  113. package/dist/assets/{producer-H_akswaO.js → producer-D-borcA_.js} +1 -1
  114. package/dist/assets/{qrart-DypQs0KR.js → qrart-DO4M5K6a.js} +1 -1
  115. package/dist/assets/{row-BBCZGfaX.js → row-DgULQK_W.js} +1 -1
  116. package/dist/assets/{seedance-DsdfaijS.js → seedance-fU1DxoKG.js} +1 -1
  117. package/dist/assets/{seedream-BVtQ52wW.js → seedream-Bw4fAnp2.js} +1 -1
  118. package/dist/assets/{select-oQz6JKXV.js → select-DDvgcQGA.js} +1 -1
  119. package/dist/assets/{serp-C5QPNqFJ.js → serp-CSf99xWs.js} +1 -1
  120. package/dist/assets/{slider-Bzy47QDI.js → slider-B48RSIqk.js} +1 -1
  121. package/dist/assets/{solana-wallets-CCunOI_U.js → solana-wallets-Bo8yZA-8.js} +2 -2
  122. package/dist/assets/{solana-wallets-vue-89ynGrx9.js → solana-wallets-vue-CC5qs8gs.js} +1 -1
  123. package/dist/assets/{sora-gD6_GlGR.js → sora-B_HB-DxF.js} +1 -1
  124. package/dist/assets/{suno-nA8skOLG.js → suno-C5VBXOh0.js} +1 -1
  125. package/dist/assets/{switch-CHBYyWWn.js → switch-B1q1xj6W.js} +1 -1
  126. package/dist/assets/{tabs-D07_WGiS.js → tabs-DA45A2mE.js} +1 -1
  127. package/dist/assets/{upload-DbGRx4Xy.js → upload-0VZ39tZO.js} +1 -1
  128. package/dist/assets/{veo-DU-YPEVP.js → veo-DvatGkKQ.js} +1 -1
  129. package/dist/assets/{wan-KaHDX97j.js → wan-UDBgxT1Y.js} +1 -1
  130. package/dist/assets/{web-CutInnUA.js → web-BIQzgdCZ.js} +1 -1
  131. package/dist/assets/{web-H7ej4phW.js → web-D2OrjM_z.js} +1 -1
  132. package/dist/assets/{web-RXAlrhIw.js → web-kRqbno-S.js} +1 -1
  133. package/dist/assets/{web-DJgf3cpf.js → web-z8ZyaWnW.js} +1 -1
  134. package/dist/assets/{webextrator-DVcnbGAl.js → webextrator-BEEj3h3M.js} +1 -1
  135. package/dist/index.html +3 -3
  136. package/package.json +1 -1
  137. package/dist/assets/Index-Ct2AHdEf.js +0 -1
  138. package/dist/assets/codingBridge-BCdY-7LL.js +0 -1
  139. package/dist/assets/codingBridge-BFvinfZm.js +0 -1
  140. package/dist/assets/codingBridge-BIk_g6XI.js +0 -1
  141. package/dist/assets/codingBridge-BNLPQfcB.js +0 -1
  142. package/dist/assets/codingBridge-BQpL36C8.js +0 -1
  143. package/dist/assets/codingBridge-BmF1iiRA.js +0 -1
  144. package/dist/assets/codingBridge-C4SdYcxG.js +0 -1
  145. package/dist/assets/codingBridge-C_zYqcPg.js +0 -1
  146. package/dist/assets/codingBridge-CcD-p5UZ.js +0 -1
  147. package/dist/assets/codingBridge-Cks2hxaa.js +0 -1
  148. package/dist/assets/codingBridge-ClZoc5vq.js +0 -1
  149. package/dist/assets/codingBridge-D-iSlWtJ.js +0 -1
  150. package/dist/assets/codingBridge-DRvMxeh3.js +0 -1
  151. package/dist/assets/codingBridge-DcNEFGfM.js +0 -1
  152. package/dist/assets/codingBridge-DkAMWy7B.js +0 -1
  153. package/dist/assets/codingBridge-DseeiYv4.js +0 -2
  154. package/dist/assets/codingBridge-aimgP5u6.js +0 -1
  155. package/dist/assets/codingBridge-f6O1bx99.js +0 -1
  156. package/dist/assets/codingBridge-qsb1Bcs4.js +0 -1
@@ -1 +0,0 @@
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:`Verlauf`,description:`Open the conversation history drawer`},"history.title":{message:`Konversationsverlauf`,description:`History drawer title`},"history.intro":{message:`Frühere Claude-Code- und Codex-Sitzungen auf diesem Gerät.`,description:`History drawer intro`},"history.refresh":{message:`Aktualisieren`,description:`Reload the history list`},"history.loading":{message:`Verlauf wird geladen…`,description:`History loading message`},"history.empty":{message:`Kein Verlauf auf diesem Gerät gefunden.`,description:`Empty history message`},"history.messages":{message:`{count} Nachrichten`,description:`History item message count`},"history.readonly":{message:`Diese Codex-Konversation ist schreibgeschützt und kann nicht fortgesetzt werden. Starte eine neue Sitzung, um weiterzuarbeiten.`,description:`Read-only replay notice`},"history.resumeHint":{message:`Eine Nachricht setzt diese Konversation auf dem Gerät fort.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Claude-Verlauf`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Codex-Verlauf (schreibgeschützt)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Berechtigungsmodus`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Standard (jedes Mal fragen)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Änderungen automatisch akzeptieren`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Planungsmodus (schreibgeschützt)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Alle Berechtigungen umgehen`,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:`(nicht installiert)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} ist auf diesem Gerät nicht installiert.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Denkaufwand`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Standard`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Niedrig`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Mittel`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Hoch`,description:`Reasoning effort: high`},"session.effortMax":{message:`Maximal`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Arbeitsverzeichnis wählen`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Dieses Verzeichnis verwenden`,description:`Button: select the current directory`},"directory.up":{message:`Übergeordnetes Verzeichnis`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Aktualisieren`,description:`Button: reload the current directory`},"directory.loading":{message:`Wird geladen…`,description:`Directory listing loading hint`},"directory.empty":{message:`Dieses Verzeichnis ist leer.`,description:`Empty directory hint`},"directory.truncated":{message:`Die ersten 1000 Einträge werden angezeigt.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Bild anhängen`,description:`Attach image button title`},"session.removeImage":{message:`Bild entfernen`,description:`Remove attached image button title`},"session.imageAlt":{message:`Angehängtes Bild`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`Bild ist zu groß; halte jedes unter 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Du kannst bis zu {count} Bilder anhängen.`,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} ist ein interaktiver Befehl und kann in einer Remote-Sitzung nicht ausgeführt werden.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} ist für Codex in einer Remote-Sitzung nicht verfügbar.`,description:`Notice shown when a Codex slash command isn't supported remotely`}};export{e as default};
@@ -1 +0,0 @@
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:`Historia`,description:`Open the conversation history drawer`},"history.title":{message:`Historia rozmów`,description:`History drawer title`},"history.intro":{message:`Poprzednie sesje Claude Code i Codex na tym urządzeniu.`,description:`History drawer intro`},"history.refresh":{message:`Odśwież`,description:`Reload the history list`},"history.loading":{message:`Ładowanie historii…`,description:`History loading message`},"history.empty":{message:`Nie znaleziono historii na tym urządzeniu.`,description:`Empty history message`},"history.messages":{message:`Wiadomości: {count}`,description:`History item message count`},"history.readonly":{message:`Ta rozmowa Codex jest tylko do odczytu i nie można jej kontynuować. Rozpocznij nową sesję, aby kontynuować kodowanie.`,description:`Read-only replay notice`},"history.resumeHint":{message:`Wysłanie wiadomości wznowi tę rozmowę na urządzeniu.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Historia Claude`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Historia Codex (tylko do odczytu)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Tryb uprawnień`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Domyślny (pytaj za każdym razem)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Automatycznie akceptuj zmiany`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Tryb planowania (tylko do odczytu)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Pomiń wszystkie uprawnienia`,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:`(niezainstalowane)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} nie jest zainstalowany na tym urządzeniu.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Wysiłek rozumowania`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Domyślny`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Niski`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Średni`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Wysoki`,description:`Reasoning effort: high`},"session.effortMax":{message:`Maksymalny`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Wybierz katalog roboczy`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Użyj tego katalogu`,description:`Button: select the current directory`},"directory.up":{message:`Katalog nadrzędny`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Odśwież`,description:`Button: reload the current directory`},"directory.loading":{message:`Ładowanie…`,description:`Directory listing loading hint`},"directory.empty":{message:`Ten katalog jest pusty.`,description:`Empty directory hint`},"directory.truncated":{message:`Wyświetlono pierwsze 1000 pozycji.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Załącz obraz`,description:`Attach image button title`},"session.removeImage":{message:`Usuń obraz`,description:`Remove attached image button title`},"session.imageAlt":{message:`Załączony obraz`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`Obraz jest za duży; każdy powinien mieć mniej niż 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Możesz załączyć maksymalnie {count} obrazów.`,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} to polecenie interaktywne i nie może działać w sesji zdalnej.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} nie jest dostępne dla Codex w sesji zdalnej.`,description:`Notice shown when a Codex slash command isn't supported remotely`}};export{e as default};
@@ -1 +0,0 @@
1
- var e={"nodeList.title":{message:`设备`,description:`Coding Bridge 设备列表标题`},"nodeList.refresh":{message:`刷新`,description:`刷新设备列表`},"nodeList.pair":{message:`配对设备`,description:`打开配对对话框`},"nodeList.empty":{message:`尚未配对任何设备。`,description:`设备列表为空时的提示`},"nodeList.pairFirst":{message:`配对第一台设备`,description:`空状态下的配对按钮`},"nodeList.remove":{message:`移除`,description:`移除设备`},"nodeList.removeConfirm":{message:`移除设备“{name}”?移除后需要重新配对。`,description:`移除设备确认`},"nodeList.removeSuccess":{message:`设备已移除。`,description:`移除设备成功提示`},"nodeList.removeFailed":{message:`移除设备失败。`,description:`移除设备失败提示`},"status.online":{message:`在线`,description:`设备在线状态`},"status.offline":{message:`离线`,description:`设备离线状态`},"connection.disconnected":{message:`已断开`,description:`中继连接已断开`},"connection.connecting":{message:`连接中…`,description:`中继连接中`},"connection.connected":{message:`已连接`,description:`中继已连接`},"connection.error":{message:`连接出错`,description:`中继连接出错`},"pair.title":{message:`配对设备`,description:`配对对话框标题`},"pair.intro":{message:`在你的电脑上运行 Coding Bridge 代理,然后在此输入配对码即可在网页端控制它。`,description:`配对对话框介绍`},"pair.step1":{message:`安装代理(需要 Python 3.10+):`,description:`配对步骤 1`},"pair.step2":{message:`启动并按提示操作:`,description:`配对步骤 2`},"pair.step3":{message:`输入下方显示的配对码。`,description:`配对步骤 3`},"pair.codePlaceholder":{message:`配对码`,description:`配对码输入框占位符`},"pair.claim":{message:`配对设备`,description:`配对确认按钮`},"pair.success":{message:`设备“{name}”已配对。`,description:`配对成功提示`},"pair.invalidCode":{message:`配对码无效或已过期。`,description:`配对码无效错误`},"pair.usedCode":{message:`该配对码已被使用。`,description:`配对码已使用错误`},"pair.failed":{message:`配对设备失败。`,description:`配对通用错误`},"permission.title":{message:`需要授权`,description:`授权对话框标题`},"permission.subtitle":{message:`代理请求使用一个工具,批准后继续。`,description:`授权对话框副标题`},"permission.deny":{message:`拒绝`,description:`拒绝工具授权`},"permission.allow":{message:`允许`,description:`允许工具授权`},"session.noDevice":{message:`选择一台设备开始编码。`,description:`未选择设备时的占位提示`},"session.newSession":{message:`新会话`,description:`开始新会话`},"session.deviceOffline":{message:`该设备已离线。请在该设备上启动 Coding Bridge 代理后继续。`,description:`设备离线警告`},"session.startHint":{message:`发送一条消息以在该设备上开始会话。`,description:`空白记录提示`},"session.cwdPlaceholder":{message:`工作目录(可选)`,description:`工作目录输入框占位符`},"session.modelPlaceholder":{message:`模型(可选)`,description:`模型输入框占位符`},"session.promptPlaceholder":{message:`向代理发送消息…`,description:`提示词输入框占位符`},"session.send":{message:`发送`,description:`发送提示词按钮`},"session.enterHint":{message:`回车发送,Shift+回车换行。`,description:`输入框键盘提示`},"transcript.turnFailed":{message:`执行失败`,description:`回合结果失败标签`},"transcript.turnDone":{message:`完成`,description:`回合结果完成标签`},"history.button":{message:`历史会话`,description:`打开历史会话抽屉`},"history.title":{message:`历史会话`,description:`历史会话抽屉标题`},"history.intro":{message:`此设备上的 Claude Code 与 Codex 历史会话。`,description:`历史会话抽屉说明`},"history.refresh":{message:`刷新`,description:`重新加载历史列表`},"history.loading":{message:`正在加载历史…`,description:`历史加载提示`},"history.empty":{message:`此设备上没有找到历史会话。`,description:`历史为空提示`},"history.messages":{message:`{count} 条消息`,description:`历史条目消息数`},"history.readonly":{message:`此 Codex 会话为只读,无法继续。开始新会话以继续编码。`,description:`只读回放提示`},"history.resumeHint":{message:`发送消息将在设备上续接此会话。`,description:`续接输入框提示`},"history.claudeLabel":{message:`Claude 历史`,description:`回放的 Claude 会话标签`},"history.codexLabel":{message:`Codex 历史(只读)`,description:`回放的 Codex 会话标签`},"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:`默认模型`,description:`Default model`},"session.cwdDefault":{message:`默认目录`,description:`Default directory`},"session.settings":{message:`会话设置`,description:`Session settings`},"session.settingsLocked":{message:`本会话设置已锁定`,description:`Settings are locked for this session`},"session.attachFile":{message:`添加文件`,description:`Attach file`},"session.attachmentImageAlt":{message:`已附加图片`,description:`Attached image`},"session.removeAttachment":{message:`移除附件`,description:`Remove attachment`},"session.uploadingAttachment":{message:`附件上传中…`,description:`Uploading attachments…`},"session.attachmentTooLarge":{message:`文件过大,请保持每个文件不超过 50 MB。`,description:`File is too large; keep each under 50 MB.`},"session.attachmentLimit":{message:`最多可附加 {count} 个文件。`,description:`You can attach up to {count} files.`},"session.attachmentUploadError":{message:`附件上传失败。`,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 +0,0 @@
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 МБ.`,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 +0,0 @@
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 +0,0 @@
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:`Historia`,description:`Open the conversation history drawer`},"history.title":{message:`Keskusteluhistoria`,description:`History drawer title`},"history.intro":{message:`Aiemmat Claude Code- ja Codex-istunnot tällä laitteella.`,description:`History drawer intro`},"history.refresh":{message:`Päivitä`,description:`Reload the history list`},"history.loading":{message:`Ladataan historiaa…`,description:`History loading message`},"history.empty":{message:`Tältä laitteelta ei löytynyt historiaa.`,description:`Empty history message`},"history.messages":{message:`{count} viestiä`,description:`History item message count`},"history.readonly":{message:`Tämä Codex-keskustelu on vain luettavissa, eikä sitä voi jatkaa. Aloita uusi istunto jatkaaksesi koodausta.`,description:`Read-only replay notice`},"history.resumeHint":{message:`Viestin lähettäminen jatkaa tätä keskustelua laitteella.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Claude-historia`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Codex-historia (vain luku)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Käyttöoikeustila`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Oletus (kysy joka kerta)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Hyväksy muokkaukset automaattisesti`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Suunnittelutila (vain luku)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Ohita kaikki käyttöoikeudet`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Taustajärjestelmä`,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:`(ei asennettu)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} ei ole asennettu tähän laitteeseen.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Päättelyn taso`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Oletus`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Matala`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Keskitaso`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Korkea`,description:`Reasoning effort: high`},"session.effortMax":{message:`Maksimi`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Valitse työhakemisto`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Käytä tätä hakemistoa`,description:`Button: select the current directory`},"directory.up":{message:`Ylähakemisto`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Päivitä`,description:`Button: reload the current directory`},"directory.loading":{message:`Ladataan…`,description:`Directory listing loading hint`},"directory.empty":{message:`Tämä hakemisto on tyhjä.`,description:`Empty directory hint`},"directory.truncated":{message:`Näytetään ensimmäiset 1000 kohdetta.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Liitä kuva`,description:`Attach image button title`},"session.removeImage":{message:`Poista kuva`,description:`Remove attached image button title`},"session.imageAlt":{message:`Liitetty kuva`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`Kuva on liian suuri; pidä jokainen alle 12 Mt.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Voit liittää enintään {count} kuvaa.`,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} on vuorovaikutteinen komento, eikä sitä voi suorittaa etäistunnossa.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} ei ole käytettävissä Codexille etäistunnossa.`,description:`Notice shown when a Codex slash command isn't supported remotely`}};export{e as default};
@@ -1 +0,0 @@
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 МБ.`,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 +0,0 @@
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:`Historique`,description:`Open the conversation history drawer`},"history.title":{message:`Historique des conversations`,description:`History drawer title`},"history.intro":{message:`Sessions Claude Code et Codex précédentes sur cet appareil.`,description:`History drawer intro`},"history.refresh":{message:`Actualiser`,description:`Reload the history list`},"history.loading":{message:`Chargement de l’historique…`,description:`History loading message`},"history.empty":{message:`Aucun historique trouvé sur cet appareil.`,description:`Empty history message`},"history.messages":{message:`{count} messages`,description:`History item message count`},"history.readonly":{message:`Cette conversation Codex est en lecture seule et ne peut pas être poursuivie. Démarrez une nouvelle session pour continuer à coder.`,description:`Read-only replay notice`},"history.resumeHint":{message:`Envoyer un message reprendra cette conversation sur l’appareil.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Historique Claude`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Historique Codex (lecture seule)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Mode d'autorisation`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Par défaut (demander à chaque fois)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Accepter automatiquement les modifications`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Mode plan (lecture seule)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Ignorer toutes les autorisations`,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 installé)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} n'est pas installé sur cet appareil.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Effort de raisonnement`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Par défaut`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Faible`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Moyen`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Élevé`,description:`Reasoning effort: high`},"session.effortMax":{message:`Maximum`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Choisir le répertoire de travail`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Utiliser ce répertoire`,description:`Button: select the current directory`},"directory.up":{message:`Répertoire parent`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Actualiser`,description:`Button: reload the current directory`},"directory.loading":{message:`Chargement…`,description:`Directory listing loading hint`},"directory.empty":{message:`Ce répertoire est vide.`,description:`Empty directory hint`},"directory.truncated":{message:`Affichage des 1000 premières entrées.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Joindre une image`,description:`Attach image button title`},"session.removeImage":{message:`Supprimer l'image`,description:`Remove attached image button title`},"session.imageAlt":{message:`Image jointe`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`L'image est trop volumineuse ; gardez chacune sous 12 Mo.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Vous pouvez joindre jusqu'à {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} est une commande interactive et ne peut pas s'exécuter dans une session distante.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} n'est pas disponible pour Codex dans une session distante.`,description:`Notice shown when a Codex slash command isn't supported remotely`}};export{e as default};
@@ -1 +0,0 @@
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:`Histórico`,description:`Open the conversation history drawer`},"history.title":{message:`Histórico de conversas`,description:`History drawer title`},"history.intro":{message:`Sessões anteriores do Claude Code e do Codex neste dispositivo.`,description:`History drawer intro`},"history.refresh":{message:`Atualizar`,description:`Reload the history list`},"history.loading":{message:`Carregando histórico…`,description:`History loading message`},"history.empty":{message:`Nenhum histórico encontrado neste dispositivo.`,description:`Empty history message`},"history.messages":{message:`{count} mensagens`,description:`History item message count`},"history.readonly":{message:`Esta conversa do Codex é somente leitura e não pode ser continuada. Inicie uma nova sessão para continuar programando.`,description:`Read-only replay notice`},"history.resumeHint":{message:`Enviar uma mensagem retomará esta conversa no dispositivo.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Histórico do Claude`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Histórico do Codex (somente leitura)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Modo de permissões`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Padrão (perguntar sempre)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Aceitar edições automaticamente`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Modo de planejamento (somente leitura)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Ignorar todas as permissões`,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:`(não instalado)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} não está instalado neste dispositivo.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Esforço de raciocínio`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Padrão`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Baixo`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Médio`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Alto`,description:`Reasoning effort: high`},"session.effortMax":{message:`Máximo`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Escolher diretório de trabalho`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Usar este diretório`,description:`Button: select the current directory`},"directory.up":{message:`Diretório pai`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Atualizar`,description:`Button: reload the current directory`},"directory.loading":{message:`A carregar…`,description:`Directory listing loading hint`},"directory.empty":{message:`Este diretório está vazio.`,description:`Empty directory hint`},"directory.truncated":{message:`A mostrar as primeiras 1000 entradas.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Anexar imagem`,description:`Attach image button title`},"session.removeImage":{message:`Remover imagem`,description:`Remove attached image button title`},"session.imageAlt":{message:`Imagem anexada`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`A imagem é muito grande; mantenha cada uma abaixo de 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Você pode anexar até {count} imagens.`,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} é um comando interativo e não pode ser executado numa sessão remota.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} não está disponível para o Codex numa sessão remota.`,description:`Notice shown when a Codex slash command isn't supported remotely`}};export{e as default};
@@ -1 +0,0 @@
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 +0,0 @@
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 +0,0 @@
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,2 +0,0 @@
1
- import{A as e,C as t,D as n,E as r,Jr as i,M as a,N as o,O as s,P as c,S as l,T as u,_ as d,a as f,b as p,c as m,d as h,f as g,g as _,h as v,i as y,j as b,k as x,l as S,m as C,n as w,o as T,p as E,r as D,s as O,t as k,u as A,v as j,w as M,x as N,y as P}from"./constants-rZaPXulz.js";import{Fn as F,Ut as I,gr as L}from"./index-4Ei2pWK5.js";var R=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,z=class{ws;token;handlers;reconnectDelay=c;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=`${i}?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=c,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 a:this.handlers.onEvent?.(r,n?.from_node);break;case e:this.handlers.onNodesSnapshot?.(r.nodes??[]);break;case b:this.handlers.onNodeStatus?.(r.node_id,r.status);break;case g: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,o)}sendEnvelope(e,t){if(!this.isOpen)return;let n={v:1,id:R(),ts:Date.now(),type:e,...t};this.ws?.send(JSON.stringify(n))}sendToNode(e,t){this.sendEnvelope(h,{node_id:e,payload:t})}listNodes(){this.sendEnvelope(A,{})}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}}},B,V=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,H=(e,t,n)=>({id:V(),session_id:e,kind:t,ts:Date.now(),...n}),U=e=>{try{let t=JSON.parse(e);if(t&&typeof t==`object`)return t}catch{}return{answers:{}}},W=e=>{let t=U(e).answers??{};return Object.entries(t).map(([e,t])=>`${e} → ${Array.isArray(t)?t.join(`, `):t}`).join(`
2
- `)},G=(e,i,a,o,c)=>{let f=o?.event,m=o?.session_id;switch(f){case M:e(`upsertSession`,{session_id:m,node_id:c,status:`idle`,cwd:o.cwd,model:o.model});break;case r:{let t=o.id;t&&a.events[m]?.find(e=>e.kind===`text`&&e.stream_id===t)?e(`appendDelta`,{session_id:m,stream_id:t,text:o.text??``}):e(`appendEvent`,H(m,`text`,{text:o.text??``,stream_id:t,streaming:!0}));break}case u:{let t=o.id;t&&a.events[m]?.find(e=>e.kind===`text`&&e.stream_id===t)?e(`finalizeStream`,{session_id:m,stream_id:t,text:o.text}):e(`appendEvent`,H(m,`text`,{text:o.text}));break}case n:e(`appendEvent`,H(m,`thinking`,{text:o.text}));break;case x:e(`appendEvent`,H(m,`tool_use`,{tool:o.tool,tool_use_id:o.tool_use_id,input:o.input}));break;case s:e(`appendEvent`,H(m,`tool_result`,{tool_use_id:o.tool_use_id,content:o.content,is_error:o.is_error}));break;case d:e(`addPermission`,{request_id:o.request_id,session_id:m,node_id:c,tool:o.tool,input:o.input,title:o.title,display_name:o.display_name,description:o.description});break;case j:e(`removePermission`,o.request_id);break;case t:e(`finalizeAllStreams`,{session_id:m}),e(`appendEvent`,H(m,`result`,{subtype:o.subtype,is_error:o.is_error,text:o.result,cost_usd:o.cost_usd})),e(`updateSession`,{session_id:m,status:`idle`,cost_usd:o.cost_usd});break;case l:e(`appendEvent`,H(m,`notice`,{text:o.text,subtype:o.code,command:o.command,level:o.level}));break;case N:e(`finalizeAllStreams`,{session_id:m}),e(`appendEvent`,H(m,`error`,{text:o.message})),e(`updateSession`,{session_id:m,status:`error`});break;case p:e(`finalizeAllStreams`,{session_id:m}),e(`updateSession`,{session_id:m,status:`closed`});break;case P:for(let t of o.sessions??[])e(`upsertSession`,{session_id:t.session_id,node_id:c,status:t.status??`idle`,cwd:t.cwd,model:t.model});break;case _:if(c){e(`setHistory`,{node_id:c,sessions:o.sessions??[]}),e(`updateStatus`,{key:`getHistory`,value:L.Success});let t=a.historyRef;t&&t.node_id===c&&!a.currentSessionId&&i(`getHistoryDetail`,t)}break;case v:K(e,o,c);break;case C:e(`setDirectory`,{path:o.path,parent:o.parent??null,sep:o.sep??`/`,entries:o.entries??[],truncated:o.truncated,error:o.error});break;case E:c&&e(`setCapabilities`,{node_id:c,capabilities:{providers:o.providers??[]}});break;default:break}},K=(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:V(),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})},q={namespaced:!0,state:F,mutations:{resetAll:e=>{Object.assign(e,F())},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)},appendDelta:(e,t)=>{let n=e.events[t.session_id];if(!n)return;let r=n.find(e=>e.kind===`text`&&e.stream_id===t.stream_id);r&&(r.text=(r.text??``)+(t.text??``))},finalizeStream:(e,t)=>{let n=e.events[t.session_id];if(!n)return;let r=n.find(e=>e.kind===`text`&&e.stream_id===t.stream_id);r&&(typeof t.text==`string`&&(r.text=t.text),r.streaming=!1)},finalizeAllStreams:(e,t)=>{let n=e.events[t.session_id];if(n)for(let e of n)e.streaming&&=!1},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:L.Request});try{let{data:t}=await I.getNodes({token:n});return e(`setNodes`,t.nodes??[]),e(`updateStatus`,{key:`getNodes`,value:L.Success}),t.nodes??[]}catch(t){throw e(`updateStatus`,{key:`getNodes`,value:L.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:L.Request});try{let{data:n}=await I.claimPair(r.trim(),{token:i});return e(`updateStatus`,{key:`claimPair`,value:L.Success}),await t(`getNodes`),n.node_name}catch(t){throw e(`updateStatus`,{key:`claimPair`,value:L.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:L.Request});try{await I.deleteNode(i,{token:a}),e(`removeNodeData`,i),n.currentNodeId===i&&(e(`setCurrentNode`,void 0),e(`setCurrentSession`,void 0)),e(`updateStatus`,{key:`deleteNode`,value:L.Success}),await t(`getNodes`)}catch(t){throw e(`updateStatus`,{key:`deleteNode`,value:L.Error}),t}},connect:({commit:e,dispatch:t,state:n,rootState:r})=>{let i=r.token?.access;i&&(B?.isOpen||(B?.close(),e(`setConnection`,`connecting`),B=new z(i,{onOpen:()=>{e(`setConnection`,`connected`),n.currentNodeId&&(t(`getHistory`,n.currentNodeId),t(`getCapabilities`,n.currentNodeId))},onClose:()=>e(`setConnection`,`disconnected`),onEvent:(r,i)=>G(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)}),B.connect()))},disconnect:({commit:e})=>{B?.close(),B=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||!B||!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=V(),e(`upsertSession`,{session_id:s,node_id:r,status:`starting`,cwd:n.cwd,model:n.model,provider:t}),e(`setCurrentSession`,s)),e(`appendEvent`,H(s,`prompt`,{text:i,images:a,attachments:o})),e(`updateSession`,{session_id:s,started:!0}),B.sendToNode(r,{action:S,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`,H(s,`prompt`,{text:i,images:a,attachments:o})),e(`updateSession`,{session_id:s,status:`running`,model:n.model||void 0}),B.sendToNode(r,{action:m,session_id:s,prompt:i,model:n.model??``,images:a,attachments:o})},interruptSession:({state:e})=>{let t=e.currentSessionId,n=e.currentNodeId;!t||!n||!B||B.sendToNode(n,{action:O,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&&B&&B.sendToNode(i,{action:T,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&&(B?.sendToNode(r.node_id,{action:f,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&&(B?.sendToNode(r.node_id,{action:f,request_id:n.request_id,decision:`allow`,answer:U(n.output),answer_text:W(n.output)}),e(`removePermission`,n.request_id))},getHistory:({commit:e,state:t},n)=>{let r=n??t.currentNodeId;!r||!B||(e(`updateStatus`,{key:`getHistory`,value:L.Request}),B.sendToNode(r,{action:y,limit:200}))},getHistoryDetail:(e,t)=>{!t?.node_id||!t?.session_id||!B||B.sendToNode(t.node_id,{action:D,provider:t.provider,session_id:t.session_id})},browseDir:({commit:e,state:t},n)=>{let r=t.currentNodeId;!r||!B||(e(`setDirectoryLoading`,!0),B.sendToNode(r,{action:w,path:n||void 0}))},clearDirectory:({commit:e})=>{e(`setDirectory`,void 0)},getCapabilities:({state:e},t)=>{let n=t??e.currentNodeId;!n||!B||B.sendToNode(n,{action:k})}}};export{q as codingBridge,q as default};
@@ -1 +0,0 @@
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 +0,0 @@
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 +0,0 @@
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};