@dyyz1993/codenomad 0.15.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 (496) hide show
  1. package/README.md +173 -0
  2. package/dist/api-types.js +1 -0
  3. package/dist/auth/auth-store.js +134 -0
  4. package/dist/auth/http-auth.js +37 -0
  5. package/dist/auth/manager.js +140 -0
  6. package/dist/auth/password-hash.js +32 -0
  7. package/dist/auth/session-manager.js +17 -0
  8. package/dist/auth/token-manager.js +27 -0
  9. package/dist/background-processes/manager.js +576 -0
  10. package/dist/bin.js +24 -0
  11. package/dist/cli-upgrade.js +53 -0
  12. package/dist/cli-upgrade.test.js +31 -0
  13. package/dist/clients/connection-manager.js +93 -0
  14. package/dist/config/location.js +57 -0
  15. package/dist/config/schema.js +71 -0
  16. package/dist/events/bus.js +45 -0
  17. package/dist/filesystem/__tests__/browser.test.js +65 -0
  18. package/dist/filesystem/__tests__/search-cache.test.js +40 -0
  19. package/dist/filesystem/browser.js +306 -0
  20. package/dist/filesystem/search-cache.js +43 -0
  21. package/dist/filesystem/search.js +135 -0
  22. package/dist/index.js +477 -0
  23. package/dist/launcher.js +149 -0
  24. package/dist/loader.js +21 -0
  25. package/dist/logger.js +109 -0
  26. package/dist/opencode-config/README.md +32 -0
  27. package/dist/opencode-config/opencode.jsonc +3 -0
  28. package/dist/opencode-config/package-lock.json +380 -0
  29. package/dist/opencode-config/package.json +9 -0
  30. package/dist/opencode-config/plugin/codenomad.ts +62 -0
  31. package/dist/opencode-config/plugin/lib/background-process.ts +265 -0
  32. package/dist/opencode-config/plugin/lib/client.ts +133 -0
  33. package/dist/opencode-config/plugin/lib/request.ts +214 -0
  34. package/dist/opencode-config.js +26 -0
  35. package/dist/plugins/channel.js +40 -0
  36. package/dist/plugins/handlers.js +17 -0
  37. package/dist/plugins/voice-mode.js +78 -0
  38. package/dist/releases/dev-release-monitor.js +75 -0
  39. package/dist/releases/release-monitor.js +107 -0
  40. package/dist/server/__tests__/network-addresses.test.js +68 -0
  41. package/dist/server/__tests__/remote-proxy.test.js +204 -0
  42. package/dist/server/http-server.js +926 -0
  43. package/dist/server/network-addresses.js +114 -0
  44. package/dist/server/remote-proxy.js +466 -0
  45. package/dist/server/routes/auth-pages/login.html +135 -0
  46. package/dist/server/routes/auth-pages/token.html +93 -0
  47. package/dist/server/routes/auth.js +148 -0
  48. package/dist/server/routes/background-processes.js +78 -0
  49. package/dist/server/routes/events.js +66 -0
  50. package/dist/server/routes/filesystem.js +43 -0
  51. package/dist/server/routes/meta.js +44 -0
  52. package/dist/server/routes/plugin.js +70 -0
  53. package/dist/server/routes/remote-proxy.js +42 -0
  54. package/dist/server/routes/remote-servers.js +142 -0
  55. package/dist/server/routes/settings.js +69 -0
  56. package/dist/server/routes/sidecars.js +46 -0
  57. package/dist/server/routes/speech.js +63 -0
  58. package/dist/server/routes/storage.js +52 -0
  59. package/dist/server/routes/workspaces.js +221 -0
  60. package/dist/server/routes/worktrees.js +156 -0
  61. package/dist/server/tls.js +224 -0
  62. package/dist/settings/binaries.js +37 -0
  63. package/dist/settings/merge-patch.js +33 -0
  64. package/dist/settings/migrate.js +238 -0
  65. package/dist/settings/public-config.js +33 -0
  66. package/dist/settings/service.js +101 -0
  67. package/dist/settings/yaml-doc-store.js +96 -0
  68. package/dist/sidecars/manager.js +193 -0
  69. package/dist/speech/providers/openai-compatible.js +189 -0
  70. package/dist/speech/service.js +58 -0
  71. package/dist/storage/instance-store.js +56 -0
  72. package/dist/ui/__tests__/remote-ui.test.js +67 -0
  73. package/dist/ui/remote-ui.js +462 -0
  74. package/dist/workspaces/__tests__/git-worktrees.test.js +43 -0
  75. package/dist/workspaces/__tests__/spawn.test.js +140 -0
  76. package/dist/workspaces/git-mutations.js +98 -0
  77. package/dist/workspaces/git-status.js +323 -0
  78. package/dist/workspaces/git-worktrees.js +216 -0
  79. package/dist/workspaces/instance-events.js +180 -0
  80. package/dist/workspaces/manager.js +368 -0
  81. package/dist/workspaces/opencode-auth.js +34 -0
  82. package/dist/workspaces/opencode-auth.test.js +34 -0
  83. package/dist/workspaces/runtime.js +366 -0
  84. package/dist/workspaces/spawn.js +219 -0
  85. package/dist/workspaces/worktree-directory.js +74 -0
  86. package/dist/workspaces/worktree-map.js +116 -0
  87. package/package.json +50 -0
  88. package/public/apple-touch-icon-180x180.png +0 -0
  89. package/public/assets/ChangesTab-BRNmSjeC.js +2 -0
  90. package/public/assets/CodeNomad-Icon-bmTWNPXy.png +0 -0
  91. package/public/assets/DiffToolbar-DPPgfx42.js +1 -0
  92. package/public/assets/FilesTab-sEeGPOoz.js +2 -0
  93. package/public/assets/GitChangesTab-tJ-TCq0c.js +2 -0
  94. package/public/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  95. package/public/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  96. package/public/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  97. package/public/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  98. package/public/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  99. package/public/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  100. package/public/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  101. package/public/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  102. package/public/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  103. package/public/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  104. package/public/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  105. package/public/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  106. package/public/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  107. package/public/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  108. package/public/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  109. package/public/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  110. package/public/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  111. package/public/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  112. package/public/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  113. package/public/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  114. package/public/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  115. package/public/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  116. package/public/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  117. package/public/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  118. package/public/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  119. package/public/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  120. package/public/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  121. package/public/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  122. package/public/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  123. package/public/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  124. package/public/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  125. package/public/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  126. package/public/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  127. package/public/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  128. package/public/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  129. package/public/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  130. package/public/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  131. package/public/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  132. package/public/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  133. package/public/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  134. package/public/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  135. package/public/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  136. package/public/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  137. package/public/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  138. package/public/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  139. package/public/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  140. package/public/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  141. package/public/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  142. package/public/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  143. package/public/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  144. package/public/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  145. package/public/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  146. package/public/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  147. package/public/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  148. package/public/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  149. package/public/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  150. package/public/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  151. package/public/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  152. package/public/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  153. package/public/assets/SplitFilePanel-CHqNLZvU.js +1 -0
  154. package/public/assets/StatusTab-DMd0ByCA.js +1 -0
  155. package/public/assets/abap-BdImnpbu.js +1 -0
  156. package/public/assets/actionscript-3-CfeIJUat.js +1 -0
  157. package/public/assets/ada-bCR0ucgS.js +1 -0
  158. package/public/assets/align-justify-BWapkGTe.js +1 -0
  159. package/public/assets/andromeeda-C-Jbm3Hp.js +1 -0
  160. package/public/assets/angular-html-CU67Zn6k.js +1 -0
  161. package/public/assets/angular-ts-BwZT4LLn.js +1 -0
  162. package/public/assets/apache-Pmp26Uib.js +1 -0
  163. package/public/assets/apex-DhZLUxFE.js +1 -0
  164. package/public/assets/apl-dKokRX4l.js +1 -0
  165. package/public/assets/applescript-Co6uUVPk.js +1 -0
  166. package/public/assets/ara-BRHolxvo.js +1 -0
  167. package/public/assets/asciidoc-Dv7Oe6Be.js +1 -0
  168. package/public/assets/asm-D_Q5rh1f.js +1 -0
  169. package/public/assets/astro-CbQHKStN.js +1 -0
  170. package/public/assets/aurora-x-D-2ljcwZ.js +1 -0
  171. package/public/assets/awk-DMzUqQB5.js +1 -0
  172. package/public/assets/ayu-dark-Cv9koXgw.js +1 -0
  173. package/public/assets/ballerina-BFfxhgS-.js +1 -0
  174. package/public/assets/bat-BkioyH1T.js +1 -0
  175. package/public/assets/beancount-k_qm7-4y.js +1 -0
  176. package/public/assets/berry-D08WgyRC.js +1 -0
  177. package/public/assets/bibtex-CHM0blh-.js +1 -0
  178. package/public/assets/bicep-Bmn6On1c.js +1 -0
  179. package/public/assets/blade-DVc8C-J4.js +1 -0
  180. package/public/assets/bsl-BO_Y6i37.js +1 -0
  181. package/public/assets/bundle-full-CXlKQh5B.js +13 -0
  182. package/public/assets/c-BIGW1oBm.js +1 -0
  183. package/public/assets/cadence-Bv_4Rxtq.js +1 -0
  184. package/public/assets/cairo-KRGpt6FW.js +1 -0
  185. package/public/assets/catppuccin-frappe-DFWUc33u.js +1 -0
  186. package/public/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
  187. package/public/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
  188. package/public/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
  189. package/public/assets/clarity-D53aC0YG.js +1 -0
  190. package/public/assets/clojure-P80f7IUj.js +1 -0
  191. package/public/assets/cmake-D1j8_8rp.js +1 -0
  192. package/public/assets/cobol-nwyudZeR.js +1 -0
  193. package/public/assets/codeowners-Bp6g37R7.js +1 -0
  194. package/public/assets/codeql-DsOJ9woJ.js +1 -0
  195. package/public/assets/coffee-Ch7k5sss.js +1 -0
  196. package/public/assets/common-lisp-Cg-RD9OK.js +1 -0
  197. package/public/assets/coq-DkFqJrB1.js +1 -0
  198. package/public/assets/cpp-CofmeUqb.js +1 -0
  199. package/public/assets/crystal-tKQVLTB8.js +1 -0
  200. package/public/assets/csharp-CX12Zw3r.js +1 -0
  201. package/public/assets/css-DPfMkruS.js +1 -0
  202. package/public/assets/csv-fuZLfV_i.js +1 -0
  203. package/public/assets/cue-D82EKSYY.js +1 -0
  204. package/public/assets/cypher-COkxafJQ.js +1 -0
  205. package/public/assets/d-85-TOEBH.js +1 -0
  206. package/public/assets/dark-plus-eOWES_5F.js +1 -0
  207. package/public/assets/dart-CF10PKvl.js +1 -0
  208. package/public/assets/dax-CEL-wOlO.js +1 -0
  209. package/public/assets/desktop-BmXAJ9_W.js +1 -0
  210. package/public/assets/diff-D97Zzqfu.js +1 -0
  211. package/public/assets/diff-viewer-BFtW5J8P.js +1 -0
  212. package/public/assets/docker-BcOcwvcX.js +1 -0
  213. package/public/assets/dotenv-Da5cRb03.js +1 -0
  214. package/public/assets/dracula-BzJJZx-M.js +1 -0
  215. package/public/assets/dracula-soft-BXkSAIEj.js +1 -0
  216. package/public/assets/dream-maker-BtqSS_iP.js +1 -0
  217. package/public/assets/edge-BkV0erSs.js +1 -0
  218. package/public/assets/elixir-CDX3lj18.js +1 -0
  219. package/public/assets/elm-DbKCFpqz.js +1 -0
  220. package/public/assets/emacs-lisp-C9XAeP06.js +1 -0
  221. package/public/assets/erb-BOJIQeun.js +1 -0
  222. package/public/assets/erlang-DsQrWhSR.js +1 -0
  223. package/public/assets/everforest-dark-BgDCqdQA.js +1 -0
  224. package/public/assets/everforest-light-C8M2exoo.js +1 -0
  225. package/public/assets/fast-diff-vendor-DgdwVvTQ.js +1 -0
  226. package/public/assets/fennel-BYunw83y.js +1 -0
  227. package/public/assets/fish-BvzEVeQv.js +1 -0
  228. package/public/assets/fluent-C4IJs8-o.js +1 -0
  229. package/public/assets/fortran-fixed-form-BZjJHVRy.js +1 -0
  230. package/public/assets/fortran-free-form-D22FLkUw.js +1 -0
  231. package/public/assets/fsharp-CXgrBDvD.js +1 -0
  232. package/public/assets/gdresource-B7Tvp0Sc.js +1 -0
  233. package/public/assets/gdscript-DTMYz4Jt.js +1 -0
  234. package/public/assets/gdshader-DkwncUOv.js +1 -0
  235. package/public/assets/genie-D0YGMca9.js +1 -0
  236. package/public/assets/gherkin-DyxjwDmM.js +1 -0
  237. package/public/assets/git-commit-F4YmCXRG.js +1 -0
  238. package/public/assets/git-diff-vendor-CSgooKT_.js +52 -0
  239. package/public/assets/git-diff-vendor-HAZkIolJ.css +19 -0
  240. package/public/assets/git-rebase-r7XF79zn.js +1 -0
  241. package/public/assets/github-dark-DHJKELXO.js +1 -0
  242. package/public/assets/github-dark-default-Cuk6v7N8.js +1 -0
  243. package/public/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
  244. package/public/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
  245. package/public/assets/github-light-DAi9KRSo.js +1 -0
  246. package/public/assets/github-light-default-D7oLnXFd.js +1 -0
  247. package/public/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
  248. package/public/assets/gleam-BspZqrRM.js +1 -0
  249. package/public/assets/glimmer-js-Rg0-pVw9.js +1 -0
  250. package/public/assets/glimmer-ts-U6CK756n.js +1 -0
  251. package/public/assets/glsl-DplSGwfg.js +1 -0
  252. package/public/assets/gnuplot-DdkO51Og.js +1 -0
  253. package/public/assets/go-Dn2_MT6a.js +1 -0
  254. package/public/assets/graphql-ChdNCCLP.js +1 -0
  255. package/public/assets/groovy-gcz8RCvz.js +1 -0
  256. package/public/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
  257. package/public/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
  258. package/public/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
  259. package/public/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
  260. package/public/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
  261. package/public/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
  262. package/public/assets/hack-CaT9iCJl.js +1 -0
  263. package/public/assets/haml-B8DHNrY2.js +1 -0
  264. package/public/assets/handlebars-BL8al0AC.js +1 -0
  265. package/public/assets/haskell-Df6bDoY_.js +1 -0
  266. package/public/assets/haxe-CzTSHFRz.js +1 -0
  267. package/public/assets/hcl-BWvSN4gD.js +1 -0
  268. package/public/assets/highlight-vendor-8FKMu9os.js +10 -0
  269. package/public/assets/hjson-D5-asLiD.js +1 -0
  270. package/public/assets/hlsl-D3lLCCz7.js +1 -0
  271. package/public/assets/houston-DnULxvSX.js +1 -0
  272. package/public/assets/html-GMplVEZG.js +1 -0
  273. package/public/assets/html-derivative-BFtXZ54Q.js +1 -0
  274. package/public/assets/http-jrhK8wxY.js +1 -0
  275. package/public/assets/hurl-irOxFIW8.js +1 -0
  276. package/public/assets/hxml-Bvhsp5Yf.js +1 -0
  277. package/public/assets/hy-DFXneXwc.js +1 -0
  278. package/public/assets/imba-DGztddWO.js +1 -0
  279. package/public/assets/index-Bdy3MTIn.js +1 -0
  280. package/public/assets/index-BvRe9GiS.js +1 -0
  281. package/public/assets/index-Ctq8RqRf.js +1 -0
  282. package/public/assets/index-D-NvysdX.js +1 -0
  283. package/public/assets/index-D6RMBXUk.js +2 -0
  284. package/public/assets/index-DXI9DoVB.css +1 -0
  285. package/public/assets/index-DYWkPhKo.js +1 -0
  286. package/public/assets/index-D_FDiI6a.js +1 -0
  287. package/public/assets/index-Dty5bSHf.js +1 -0
  288. package/public/assets/index-H16e4Rqc.js +1 -0
  289. package/public/assets/ini-BEwlwnbL.js +1 -0
  290. package/public/assets/java-CylS5w8V.js +1 -0
  291. package/public/assets/javascript-wDzz0qaB.js +1 -0
  292. package/public/assets/jinja-4LBKfQ-Z.js +1 -0
  293. package/public/assets/jison-wvAkD_A8.js +1 -0
  294. package/public/assets/json-Cp-IABpG.js +1 -0
  295. package/public/assets/json5-C9tS-k6U.js +1 -0
  296. package/public/assets/jsonc-Des-eS-w.js +1 -0
  297. package/public/assets/jsonl-DcaNXYhu.js +1 -0
  298. package/public/assets/jsonnet-DFQXde-d.js +1 -0
  299. package/public/assets/jssm-C2t-YnRu.js +1 -0
  300. package/public/assets/jsx-g9-lgVsj.js +1 -0
  301. package/public/assets/julia-C8NyazO9.js +1 -0
  302. package/public/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
  303. package/public/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
  304. package/public/assets/kanagawa-wave-DWedfzmr.js +1 -0
  305. package/public/assets/kdl-DV7GczEv.js +1 -0
  306. package/public/assets/kotlin-BdnUsdx6.js +1 -0
  307. package/public/assets/kusto-BvAqAH-y.js +1 -0
  308. package/public/assets/laserwave-DUszq2jm.js +1 -0
  309. package/public/assets/latex-BUKiar2Z.js +1 -0
  310. package/public/assets/lean-DP1Csr6i.js +1 -0
  311. package/public/assets/less-B1dDrJ26.js +1 -0
  312. package/public/assets/light-plus-B7mTdjB0.js +1 -0
  313. package/public/assets/liquid-DYVedYrR.js +1 -0
  314. package/public/assets/llvm-BtvRca6l.js +1 -0
  315. package/public/assets/loading-CmEVQgyj.css +1 -0
  316. package/public/assets/loading-W2Y_wR0P.js +1 -0
  317. package/public/assets/log-2UxHyX5q.js +1 -0
  318. package/public/assets/logo-BtOb2qkB.js +1 -0
  319. package/public/assets/lua-BbnMAYS6.js +1 -0
  320. package/public/assets/luau-CXu1NL6O.js +1 -0
  321. package/public/assets/main-Bala0YJ4.js +57 -0
  322. package/public/assets/make-CHLpvVh8.js +1 -0
  323. package/public/assets/markdown-Cvjx9yec.js +1 -0
  324. package/public/assets/markdown-Db8cvZ4Z.js +315 -0
  325. package/public/assets/marko-CPi9NSCl.js +1 -0
  326. package/public/assets/material-theme-D5KoaKCx.js +1 -0
  327. package/public/assets/material-theme-darker-BfHTSMKl.js +1 -0
  328. package/public/assets/material-theme-lighter-B0m2ddpp.js +1 -0
  329. package/public/assets/material-theme-ocean-CyktbL80.js +1 -0
  330. package/public/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
  331. package/public/assets/matlab-D7o27uSR.js +1 -0
  332. package/public/assets/mdc-DUICxH0z.js +1 -0
  333. package/public/assets/mdx-Cmh6b_Ma.js +1 -0
  334. package/public/assets/mermaid-DKYwYmdq.js +1 -0
  335. package/public/assets/min-dark-CafNBF8u.js +1 -0
  336. package/public/assets/min-light-CTRr51gU.js +1 -0
  337. package/public/assets/mipsasm-CKIfxQSi.js +1 -0
  338. package/public/assets/mojo-1DNp92w6.js +1 -0
  339. package/public/assets/monaco-viewer-DWQqXKm3.js +26 -0
  340. package/public/assets/monokai-D4h5O-jR.js +1 -0
  341. package/public/assets/move-Bu9oaDYs.js +1 -0
  342. package/public/assets/narrat-DRg8JJMk.js +1 -0
  343. package/public/assets/nextflow-CUEJCptM.js +1 -0
  344. package/public/assets/nginx-DknmC5AR.js +1 -0
  345. package/public/assets/night-owl-C39BiMTA.js +1 -0
  346. package/public/assets/nim-CVrawwO9.js +1 -0
  347. package/public/assets/nix-BbRYJGeE.js +1 -0
  348. package/public/assets/nord-Ddv68eIx.js +1 -0
  349. package/public/assets/nushell-C-sUppwS.js +1 -0
  350. package/public/assets/objective-c-DXmwc3jG.js +1 -0
  351. package/public/assets/objective-cpp-CLxacb5B.js +1 -0
  352. package/public/assets/ocaml-C0hk2d4L.js +1 -0
  353. package/public/assets/one-dark-pro-DVMEJ2y_.js +1 -0
  354. package/public/assets/one-light-PoHY5YXO.js +1 -0
  355. package/public/assets/pascal-D93ZcfNL.js +1 -0
  356. package/public/assets/perl-C0TMdlhV.js +1 -0
  357. package/public/assets/php-CDn_0X-4.js +1 -0
  358. package/public/assets/pkl-u5AG7uiY.js +1 -0
  359. package/public/assets/plastic-3e1v2bzS.js +1 -0
  360. package/public/assets/plsql-ChMvpjG-.js +1 -0
  361. package/public/assets/po-BTJTHyun.js +1 -0
  362. package/public/assets/poimandres-CS3Unz2-.js +1 -0
  363. package/public/assets/polar-C0HS_06l.js +1 -0
  364. package/public/assets/postcss-CXtECtnM.js +1 -0
  365. package/public/assets/powerquery-CEu0bR-o.js +1 -0
  366. package/public/assets/powershell-Dpen1YoG.js +1 -0
  367. package/public/assets/prisma-Dd19v3D-.js +1 -0
  368. package/public/assets/prolog-CbFg5uaA.js +1 -0
  369. package/public/assets/proto-DyJlTyXw.js +1 -0
  370. package/public/assets/pug-CGlum2m_.js +1 -0
  371. package/public/assets/puppet-BMWR74SV.js +1 -0
  372. package/public/assets/purescript-CklMAg4u.js +1 -0
  373. package/public/assets/python-B6aJPvgy.js +1 -0
  374. package/public/assets/qml-3beO22l8.js +1 -0
  375. package/public/assets/qmldir-C8lEn-DE.js +1 -0
  376. package/public/assets/qss-IeuSbFQv.js +1 -0
  377. package/public/assets/r-DiinP2Uv.js +1 -0
  378. package/public/assets/racket-BqYA7rlc.js +1 -0
  379. package/public/assets/raku-DXvB9xmW.js +1 -0
  380. package/public/assets/razor-WgofotgN.js +1 -0
  381. package/public/assets/red-bN70gL4F.js +1 -0
  382. package/public/assets/reg-C-SQnVFl.js +1 -0
  383. package/public/assets/regexp-CDVJQ6XC.js +1 -0
  384. package/public/assets/rel-C3B-1QV4.js +1 -0
  385. package/public/assets/riscv-BM1_JUlF.js +1 -0
  386. package/public/assets/rose-pine-BHrmToEH.js +1 -0
  387. package/public/assets/rose-pine-dawn-CnK8MTSM.js +1 -0
  388. package/public/assets/rose-pine-moon-NleAzG8P.js +1 -0
  389. package/public/assets/rosmsg-BJDFO7_C.js +1 -0
  390. package/public/assets/rst-B0xPkSld.js +1 -0
  391. package/public/assets/ruby-BvKwtOVI.js +1 -0
  392. package/public/assets/rust-B1yitclQ.js +1 -0
  393. package/public/assets/sas-cz2c8ADy.js +1 -0
  394. package/public/assets/sass-Cj5Yp3dK.js +1 -0
  395. package/public/assets/scala-C151Ov-r.js +1 -0
  396. package/public/assets/scheme-C98Dy4si.js +1 -0
  397. package/public/assets/scss-OYdSNvt2.js +1 -0
  398. package/public/assets/sdbl-DVxCFoDh.js +1 -0
  399. package/public/assets/shaderlab-Dg9Lc6iA.js +1 -0
  400. package/public/assets/shellscript-Yzrsuije.js +1 -0
  401. package/public/assets/shellsession-BADoaaVG.js +1 -0
  402. package/public/assets/slack-dark-BthQWCQV.js +1 -0
  403. package/public/assets/slack-ochin-DqwNpetd.js +1 -0
  404. package/public/assets/smalltalk-BERRCDM3.js +1 -0
  405. package/public/assets/snazzy-light-Bw305WKR.js +1 -0
  406. package/public/assets/solarized-dark-DXbdFlpD.js +1 -0
  407. package/public/assets/solarized-light-L9t79GZl.js +1 -0
  408. package/public/assets/solidity-BbcW6ACK.js +1 -0
  409. package/public/assets/soy-Brmx7dQM.js +1 -0
  410. package/public/assets/sparql-rVzFXLq3.js +1 -0
  411. package/public/assets/splunk-BtCnVYZw.js +1 -0
  412. package/public/assets/sql-BLtJtn59.js +1 -0
  413. package/public/assets/ssh-config-_ykCGR6B.js +1 -0
  414. package/public/assets/stata-BH5u7GGu.js +1 -0
  415. package/public/assets/stylus-BEDo0Tqx.js +1 -0
  416. package/public/assets/svelte-3Dk4HxPD.js +1 -0
  417. package/public/assets/swift-Dg5xB15N.js +1 -0
  418. package/public/assets/synthwave-84-CbfX1IO0.js +1 -0
  419. package/public/assets/system-verilog-CnnmHF94.js +1 -0
  420. package/public/assets/systemd-4A_iFExJ.js +1 -0
  421. package/public/assets/talonscript-CkByrt1z.js +1 -0
  422. package/public/assets/tasl-QIJgUcNo.js +1 -0
  423. package/public/assets/tcl-dwOrl1Do.js +1 -0
  424. package/public/assets/templ-W15q3VgB.js +1 -0
  425. package/public/assets/terraform-BETggiCN.js +1 -0
  426. package/public/assets/tex-Cppo0RY3.js +1 -0
  427. package/public/assets/tokyo-night-hegEt444.js +1 -0
  428. package/public/assets/toml-vGWfd6FD.js +1 -0
  429. package/public/assets/tool-call-D0BYXlFe.js +59 -0
  430. package/public/assets/ts-tags-zn1MmPIZ.js +1 -0
  431. package/public/assets/tsv-B_m7g4N7.js +1 -0
  432. package/public/assets/tsx-COt5Ahok.js +1 -0
  433. package/public/assets/turtle-BsS91CYL.js +1 -0
  434. package/public/assets/twig-CO9l9SDP.js +1 -0
  435. package/public/assets/typescript-BPQ3VLAy.js +1 -0
  436. package/public/assets/typespec-Df68jz8_.js +1 -0
  437. package/public/assets/typst-DHCkPAjA.js +1 -0
  438. package/public/assets/unified-picker-QgONWj_1.js +1 -0
  439. package/public/assets/v-BcVCzyr7.js +1 -0
  440. package/public/assets/vala-CsfeWuGM.js +1 -0
  441. package/public/assets/vb-D17OF-Vu.js +1 -0
  442. package/public/assets/verilog-BQ8w6xss.js +1 -0
  443. package/public/assets/vesper-DU1UobuO.js +1 -0
  444. package/public/assets/vhdl-CeAyd5Ju.js +1 -0
  445. package/public/assets/viml-CJc9bBzg.js +1 -0
  446. package/public/assets/vitesse-black-Bkuqu6BP.js +1 -0
  447. package/public/assets/vitesse-dark-D0r3Knsf.js +1 -0
  448. package/public/assets/vitesse-light-CVO1_9PV.js +1 -0
  449. package/public/assets/vue-CCoi5OLL.js +1 -0
  450. package/public/assets/vue-html-DAAvJJDi.js +1 -0
  451. package/public/assets/vue-vine-_Ih-lPRR.js +1 -0
  452. package/public/assets/vyper-CDx5xZoG.js +1 -0
  453. package/public/assets/wasm-CG6Dc4jp.js +1 -0
  454. package/public/assets/wasm-MzD3tlZU.js +1 -0
  455. package/public/assets/wenyan-BV7otONQ.js +1 -0
  456. package/public/assets/wgsl-Dx-B1_4e.js +1 -0
  457. package/public/assets/wikitext-BhOHFoWU.js +1 -0
  458. package/public/assets/wit-5i3qLPDT.js +1 -0
  459. package/public/assets/wolfram-lXgVvXCa.js +1 -0
  460. package/public/assets/wrap-text-CEH9wOr_.js +1 -0
  461. package/public/assets/xml-sdJ4AIDG.js +1 -0
  462. package/public/assets/xsl-CtQFsRM5.js +1 -0
  463. package/public/assets/yaml-Buea-lGh.js +1 -0
  464. package/public/assets/zenscript-DVFEvuxE.js +1 -0
  465. package/public/assets/zig-VOosw3JB.js +1 -0
  466. package/public/favicon.ico +0 -0
  467. package/public/index.html +42 -0
  468. package/public/loading.html +33 -0
  469. package/public/logo.png +0 -0
  470. package/public/manifest.webmanifest +1 -0
  471. package/public/maskable-icon-512x512.png +0 -0
  472. package/public/monaco/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  473. package/public/monaco/vs/base/worker/workerMain.js +31 -0
  474. package/public/monaco/vs/basic-languages/cpp/cpp.js +10 -0
  475. package/public/monaco/vs/basic-languages/kotlin/kotlin.js +10 -0
  476. package/public/monaco/vs/basic-languages/markdown/markdown.js +10 -0
  477. package/public/monaco/vs/basic-languages/python/python.js +10 -0
  478. package/public/monaco/vs/editor/editor.main.css +8 -0
  479. package/public/monaco/vs/editor/editor.main.js +798 -0
  480. package/public/monaco/vs/language/css/cssMode.js +13 -0
  481. package/public/monaco/vs/language/css/cssWorker.js +77 -0
  482. package/public/monaco/vs/language/html/htmlMode.js +13 -0
  483. package/public/monaco/vs/language/html/htmlWorker.js +454 -0
  484. package/public/monaco/vs/language/json/jsonMode.js +19 -0
  485. package/public/monaco/vs/language/json/jsonWorker.js +42 -0
  486. package/public/monaco/vs/language/typescript/tsMode.js +20 -0
  487. package/public/monaco/vs/language/typescript/tsWorker.js +51328 -0
  488. package/public/monaco/vs/loader.js +11 -0
  489. package/public/monaco.worker.js +7 -0
  490. package/public/pwa-192x192.png +0 -0
  491. package/public/pwa-512x512.png +0 -0
  492. package/public/pwa-64x64.png +0 -0
  493. package/public/registerSW.js +1 -0
  494. package/public/sw.js +1 -0
  495. package/public/ui-version.json +3 -0
  496. package/public/workbox-60d14903.js +1 -0
@@ -0,0 +1 @@
1
+ import{m as e}from"./index-D6RMBXUk.js";import"./git-diff-vendor-CSgooKT_.js";import"./fast-diff-vendor-DgdwVvTQ.js";import"./highlight-vendor-8FKMu9os.js";import"./monaco-viewer-DWQqXKm3.js";const s={"advancedSettings.title":"高级设置","advancedSettings.environmentVariables.title":"环境变量","advancedSettings.environmentVariables.subtitle":"每当启动新的 OpenCode 实例时应用","advancedSettings.actions.close":"关闭"},t={"app.launchError.title":"无法启动 OpenCode","app.launchError.description":"我们无法启动所选的 OpenCode 可执行文件。请查看下面的错误输出,或在 OpenCode 设置中选择其他可执行文件。","app.launchError.binaryPathLabel":"可执行文件路径","app.launchError.errorOutputLabel":"错误输出","app.launchError.openAdvancedSettings":"打开 OpenCode 设置","app.launchError.close":"关闭","app.launchError.closeTitle":"关闭 (Esc)","app.launchError.fallbackMessage":"启动工作区失败","app.stopInstance.confirmMessage":"停止 OpenCode 实例?这将停止服务器。","app.stopInstance.title":"停止实例","app.stopInstance.confirmLabel":"停止","app.stopInstance.cancelLabel":"继续运行","emptyState.logoAlt":"CodeNomad 徽标","emptyState.brandTitle":"CodeNomad","emptyState.tagline":"选择文件夹,开始与 AI 一起编码","emptyState.actions.selectFolder":"选择文件夹","emptyState.actions.selecting":"正在选择...","emptyState.keyboardShortcut":"键盘快捷键:{shortcut}","emptyState.examples":"示例:{example}","emptyState.multipleInstances":"同一个文件夹可以同时打开多个实例","releases.upgradeRequired.title":"需要升级","releases.upgradeRequired.message.withVersion":"更新到 CodeNomad {version} 以使用最新的 UI。","releases.upgradeRequired.message.noVersion":"更新 CodeNomad 以使用最新的 UI。","releases.upgradeRequired.action.getUpdate":"获取更新","releases.uiUpdated.title":"UI 已更新","releases.uiUpdated.message":"UI 已更新到 {version}。","releases.devUpdateAvailable.title":"可用的开发版","releases.devUpdateAvailable.message":"有新的开发版可用:{version}。","releases.devUpdateAvailable.action":"查看发布"},o={"commandPalette.title":"命令面板","commandPalette.description":"搜索并执行命令","commandPalette.searchPlaceholder":"输入命令或搜索...","commandPalette.empty":'未找到与 "{query}" 匹配的命令',"commandPalette.category.customCommands":"自定义命令","commandPalette.category.instance":"实例","commandPalette.category.session":"会话","commandPalette.category.agentModel":"智能体与模型","commandPalette.category.inputFocus":"输入与焦点","commandPalette.category.system":"系统","commandPalette.category.other":"其他","commands.newInstance.label":"新建实例","commands.newInstance.description":"打开文件夹选择器以创建新实例","commands.newInstance.keywords":"folder, project, workspace, 文件夹, 项目, 工作区","commands.closeInstance.label":"关闭标签页","commands.closeInstance.description":"关闭当前顶层标签页","commands.closeInstance.keywords":"stop, quit, close, 停止, 退出, 关闭, 标签","commands.nextInstance.label":"下一个标签页","commands.nextInstance.description":"切换到下一个顶层标签页","commands.nextInstance.keywords":"switch, navigate, 切换, 导航, 标签","commands.previousInstance.label":"上一个标签页","commands.previousInstance.description":"切换到上一个顶层标签页","commands.previousInstance.keywords":"switch, navigate, 切换, 导航, 标签","commands.newSession.label":"新建会话","commands.newSession.description":"创建新的父会话","commands.newSession.keywords":"create, start, 创建, 开始","commands.closeSession.label":"关闭会话","commands.closeSession.description":"关闭当前父会话","commands.closeSession.keywords":"close, stop, 关闭, 停止","commands.scrubSessions.label":"清理会话","commands.scrubSessions.description":"移除空会话、已完成主任务的子智能体会话,以及多余的分叉会话。","commands.scrubSessions.keywords":"cleanup, blank, empty, sessions, remove, delete, scrub, 清理, 空白, 会话, 删除, 整理","commands.instanceInfo.label":"实例信息","commands.instanceInfo.description":"打开实例概览以查看日志和状态","commands.instanceInfo.keywords":"info, logs, console, output, 信息, 日志, 控制台, 输出","commands.nextSession.label":"下一个会话","commands.nextSession.description":"切换到下一个会话标签页","commands.nextSession.keywords":"switch, navigate, 切换, 导航","commands.previousSession.label":"上一个会话","commands.previousSession.description":"切换到上一个会话标签页","commands.previousSession.keywords":"switch, navigate, 切换, 导航","commands.compactSession.label":"压缩会话","commands.compactSession.description":"总结并压缩当前会话","commands.compactSession.keywords":"summarize, compress, 总结, 压缩","commands.compactSession.errorFallback":"压缩会话失败","commands.compactSession.alert.title":"压缩失败","commands.compactSession.alert.message":"压缩失败:{message}","commands.undoLastMessage.label":"撤销上一条消息","commands.undoLastMessage.description":"回退上一条消息","commands.undoLastMessage.keywords":"revert, undo, 回退, 撤销","commands.undoLastMessage.none.title":"没有可撤销的操作","commands.undoLastMessage.none.message":"没有可撤销的内容","commands.undoLastMessage.failed.title":"撤销失败","commands.undoLastMessage.failed.message":"回退消息失败","commands.openModelSelector.label":"打开模型选择器","commands.openModelSelector.description":"选择其他模型","commands.openModelSelector.keywords":"model, llm, ai, 模型","commands.selectModelVariant.label":"选择模型变体","commands.selectModelVariant.description":"为当前模型选择思考强度","commands.selectModelVariant.keywords":"variant, thinking, reasoning, effort, 变体, 思考, 推理, 强度","commands.openAgentSelector.label":"打开智能体选择器","commands.openAgentSelector.description":"选择其他智能体","commands.openAgentSelector.keywords":"agent, mode, 智能体, 模式","commands.clearInput.label":"清空输入","commands.clearInput.description":"清空 prompt 输入框","commands.clearInput.keywords":"clear, reset, 清空, 重置","commands.promptSubmitShortcut.label.default":"Enter: 换行, Cmd/Ctrl+Enter: 提交提示词","commands.promptSubmitShortcut.label.swapped":"Enter: 提交提示词, Cmd/Ctrl+Enter: 换行","commands.promptSubmitShortcut.description":"在提示词输入框中交换 Enter 与 Cmd/Ctrl+Enter 的行为","commands.promptSubmitShortcut.keywords":"enter, 换行, 提交, 发送, 快捷键, cmd, ctrl, 提示词","commands.thinkingBlocks.label.show":"显示思考","commands.thinkingBlocks.label.hide":"隐藏思考","commands.thinkingBlocks.description":"显示或隐藏 AI 思考部分","commands.thinkingBlocks.keywords":"thinking, reasoning, toggle, show, hide, 思考, 推理, 切换, 显示, 隐藏","commands.timelineToolCalls.label.show":"显示时间轴工具调用","commands.timelineToolCalls.label.hide":"隐藏时间轴工具调用","commands.timelineToolCalls.description":"切换消息时间轴中的工具调用条目","commands.timelineToolCalls.keywords":"timeline, tool, toggle, 时间轴, 工具, 切换","commands.keyboardShortcutHints.label.show":"显示键盘快捷键提示","commands.keyboardShortcutHints.label.hide":"隐藏键盘快捷键提示","commands.keyboardShortcutHints.description":"显示或隐藏界面中的键盘快捷键提示","commands.keyboardShortcutHints.description.disabledWeb":"WebUI 中已禁用(提示始终隐藏)","commands.keyboardShortcutHints.keywords":"shortcuts, keyboard, hints, 快捷键, 键盘, 提示","commands.common.expanded":"展开","commands.common.collapsed":"折叠","commands.common.visible":"可见","commands.common.hidden":"隐藏","commands.common.enabled":"启用","commands.common.disabled":"禁用","commands.thinkingBlocksDefault.label":"思考视图: {state}","commands.thinkingBlocksDefault.description":"在显示时折叠 / 展开 AI 思考部分","commands.thinkingBlocksDefault.keywords":"thinking, reasoning, expand, collapse, default, 思考, 推理, 展开, 折叠, 默认","commands.diffViewSplit.label":"使用分栏 Diff 视图","commands.diffViewSplit.description":"并排显示工具调用的 diff","commands.diffViewSplit.keywords":"diff, split, view, 差异, 分栏, 视图","commands.diffViewUnified.label":"使用统一 Diff 视图","commands.diffViewUnified.description":"以内联方式显示工具调用的 diff","commands.diffViewUnified.keywords":"diff, unified, view, 差异, 统一, 视图","commands.toolOutputsDefault.label":"工具输出默认 · {state}","commands.toolOutputsDefault.description":"切换工具输出是否默认展开","commands.toolOutputsDefault.keywords":"tool, output, expand, collapse, 工具, 输出, 展开, 折叠","commands.diagnosticsDefault.label":"诊断默认 · {state}","commands.diagnosticsDefault.description":"切换诊断输出是否默认展开","commands.diagnosticsDefault.keywords":"diagnostics, expand, collapse, 诊断, 展开, 折叠","commands.toolInputsVisibility.label":"工具输入可见性 · {state}","commands.toolInputsVisibility.description":"设置工具调用输入参数的默认可见性","commands.toolInputsVisibility.keywords":"工具, 输入, 参数, 可见性, 隐藏, 显示, 展开, 折叠, tool, inputs, arguments, visibility, hide, show, expand, collapse","commands.tokenUsageDisplay.label":"Token 使用显示 · {state}","commands.tokenUsageDisplay.description":"显示或隐藏助手消息的 token 和费用统计","commands.tokenUsageDisplay.keywords":"token, usage, cost, stats, 令牌, 用量, 费用, 统计","commands.autoCleanupBlankSessions.label":"自动清理空白会话 · {state}","commands.autoCleanupBlankSessions.description":"在创建新会话时自动清理空白会话","commands.autoCleanupBlankSessions.keywords":"auto, cleanup, blank, sessions, toggle, 自动, 清理, 空白, 会话, 切换","commands.showHelp.label":"显示帮助","commands.showHelp.description":"显示键盘快捷键与帮助","commands.showHelp.keywords":"shortcuts, help, 快捷键, 帮助","commands.custom.argumentsPrompt.message":"/{name} 的参数","commands.custom.argumentsPrompt.title":"自定义命令","commands.custom.argumentsPrompt.inputLabel":"参数","commands.custom.argumentsPrompt.inputPlaceholder":"例如 foo bar","commands.custom.argumentsPrompt.confirmLabel":"运行","commands.custom.argumentsPrompt.cancelLabel":"取消","commands.custom.argumentsPrompt.openFailed.message":"无法打开参数输入框。","commands.custom.argumentsPrompt.openFailed.title":"命令参数","commands.custom.entries.descriptionFallback":"自定义命令","commands.custom.sessionRequired.message":"运行自定义命令前请先选择一个会话。","commands.custom.sessionRequired.title":"需要会话","commands.custom.runFailed.message":"运行自定义命令失败。请查看控制台了解详情。","commands.custom.runFailed.title":"命令失败","unifiedPicker.loading.searching":"正在搜索...","unifiedPicker.loading.loadingWorkspace":"正在加载工作区...","unifiedPicker.title.command":"选择命令","unifiedPicker.title.mention":"选择智能体或文件","unifiedPicker.empty":"未找到结果","unifiedPicker.sections.commands":"命令","unifiedPicker.sections.agents":"智能体","unifiedPicker.sections.files":"文件","unifiedPicker.badge.subagent":"子智能体","unifiedPicker.footer.navigate":"导航","unifiedPicker.footer.select":"选择","unifiedPicker.footer.close":"关闭"},i={"alertDialog.fallbackTitle.info":"提示","alertDialog.fallbackTitle.warning":"请确认","alertDialog.fallbackTitle.error":"出错了","alertDialog.actions.confirm":"确认","alertDialog.actions.run":"运行","alertDialog.actions.ok":"确定","alertDialog.actions.cancel":"取消","alertDialog.prompt.inputLabel":"输入","backgroundProcessOutputDialog.title":"后台输出","backgroundProcessOutputDialog.actions.close":"关闭","backgroundProcessOutputDialog.loading":"正在加载输出...","backgroundProcessOutputDialog.truncatedNotice":"为便于显示,输出已截断。","backgroundProcessOutputDialog.loadErrorFallback":"加载输出失败。"},n={"directoryBrowser.defaultDescription":"浏览已配置的工作区根目录下的文件夹。","directoryBrowser.close":"关闭","directoryBrowser.currentFolder":"选择文件夹或输入路径","directoryBrowser.currentFolder.inputAriaLabel":"文件夹路径","directoryBrowser.currentFolder.inputPlaceholder":"输入或粘贴文件夹路径","directoryBrowser.openCurrent":"打开","directoryBrowser.selectCurrent":"选择当前","directoryBrowser.newFolder":"新建文件夹","directoryBrowser.creating":"正在创建…","directoryBrowser.loadingFolders":"正在加载文件夹…","directoryBrowser.noFolders":"没有可用的文件夹。","directoryBrowser.upOneLevel":"上一级","directoryBrowser.select":"选择","directoryBrowser.load.errorFallback":"无法加载文件系统","directoryBrowser.createFolder.promptMessage":"在当前目录中新建文件夹。","directoryBrowser.createFolder.title":"新建文件夹","directoryBrowser.createFolder.inputLabel":"文件夹名称","directoryBrowser.createFolder.inputPlaceholder":"例如 my-new-project","directoryBrowser.createFolder.confirmLabel":"创建","directoryBrowser.createFolder.cancelLabel":"取消","directoryBrowser.createFolder.invalidNameMessage":"请输入单个文件夹名称。","directoryBrowser.createFolder.invalidNameDetail":'文件夹名称不能包含斜杠、".." 或 "~"。',"directoryBrowser.createFolder.errorFallback":"无法创建文件夹","filesystemBrowser.descriptionFallback":"在已配置的工作区根目录下搜索路径。","filesystemBrowser.rootLabel":"根目录:{root}","filesystemBrowser.actions.close":"关闭","filesystemBrowser.actions.retry":"重试","filesystemBrowser.actions.select":"选择","filesystemBrowser.filterLabel":"筛选","filesystemBrowser.search.placeholder.directories":"搜索文件夹","filesystemBrowser.search.placeholder.files":"搜索文件","filesystemBrowser.currentFolder.label":"当前文件夹","filesystemBrowser.currentFolder.selectCurrent":"选择当前","filesystemBrowser.loading.filesystem":"文件系统","filesystemBrowser.loading.workspaceRoot":"工作区根目录","filesystemBrowser.loading.loadingWithPath":"正在加载 {path}…","filesystemBrowser.empty.noEntries":"未找到任何条目。","filesystemBrowser.navigation.upOneLevel":"上一级","filesystemBrowser.hints.navigate":"导航","filesystemBrowser.hints.select":"选择","filesystemBrowser.hints.close":"关闭","filesystemBrowser.errors.loadFilesystemFallback":"无法加载文件系统","filesystemBrowser.errors.openDirectoryFallback":"无法打开目录"},a={"folderSelection.language.ariaLabel":"语言","folderSelection.logoAlt":"CodeNomad 徽标","folderSelection.tagline":"选择文件夹,开始与 AI 一起编码","folderSelection.links.github":"CodeNomad 的 GitHub","folderSelection.links.githubStars":"CodeNomad GitHub Star 数","folderSelection.links.discord":"CodeNomad 的 Discord","folderSelection.empty.title":"没有最近的文件夹","folderSelection.empty.description":"浏览并选择文件夹以开始使用","folderSelection.recent.title":"最近的文件夹","folderSelection.recent.subtitle.one":"{count} 个文件夹可用","folderSelection.recent.subtitle.other":"{count} 个文件夹可用","folderSelection.recent.remove":"从最近列表移除","folderSelection.browse.title":"浏览文件夹","folderSelection.browse.subtitle":"选择你电脑上的任意文件夹","folderSelection.browse.button":"浏览文件夹","folderSelection.browse.buttonOpening":"正在打开...","folderSelection.actions.title":"打开文件夹或连接服务器","folderSelection.actions.subtitle":"打开本地文件夹或连接到 CodeNomad 服务器","folderSelection.actions.connectButton":"连接 CodeNomad 服务器","folderSelection.advancedSettings":"高级设置","folderSelection.opencode":"OpenCode","folderSelection.hints.navigate":"导航","folderSelection.hints.select":"选择","folderSelection.hints.remove":"移除","folderSelection.hints.browse":"浏览","folderSelection.loading.title":"正在启动实例...","folderSelection.loading.subtitle":"正在准备你的工作区,请稍候。","folderSelection.drop.title":"拖放文件夹以打开","folderSelection.drop.subtitle":"在拖放的文件夹中启动一个新实例。","folderSelection.drop.invalidTitle":"无法打开拖放的项目","folderSelection.drop.invalidMessage":"请拖放一个文件夹来启动新实例。","folderSelection.dialog.title":"选择工作区","folderSelection.dialog.description":"选择工作区以开始编码。","folderSelection.tabs.local":"本地文件夹","folderSelection.tabs.servers":"服务器","folderSelection.servers.title":"已保存的服务器","folderSelection.servers.subtitle":"在新窗口中打开已保存的远程 CodeNomad 服务器","folderSelection.servers.count":"{count} 个服务器","folderSelection.servers.empty.title":"没有已保存的服务器","folderSelection.servers.empty.description":"添加远程服务器,以便在此设备上快速重新连接","folderSelection.servers.connectTitle":"连接到服务器","folderSelection.servers.connectSubtitle":"保存远程 CodeNomad 服务器并在新窗口中打开它","folderSelection.servers.connectButton":"连接到服务器","folderSelection.servers.remove":"删除已保存服务器","folderSelection.servers.skipTls":"自签名 TLS","folderSelection.servers.errorTitle":"远程连接失败","folderSelection.servers.dialog.title":"连接到服务器","folderSelection.servers.dialog.description":"添加远程 CodeNomad 服务器,并可选择立即打开。","folderSelection.servers.dialog.name":"服务器名称","folderSelection.servers.dialog.namePlaceholder":"生产服务器","folderSelection.servers.dialog.url":"服务器 URL","folderSelection.servers.dialog.urlPlaceholder":"https://server.example.com","folderSelection.servers.dialog.skipTls":"为自签名证书跳过 TLS 验证。","folderSelection.servers.dialog.cancel":"取消","folderSelection.servers.dialog.save":"保存","folderSelection.servers.dialog.connect":"连接","folderSelection.servers.dialog.connecting":"连接中...","folderSelection.servers.dialog.errorRequired":"服务器名称和 URL 为必填项。","folderSelection.servers.dialog.errorConnect":"无法连接到远程服务器。","folderSelection.servers.certificateInstall.title":"安装本地证书","folderSelection.servers.certificateInstall.confirmMessage":"CodeNomad 需要安装本地证书,才能打开使用自签名 HTTPS 的远程窗口。此证书仅用于你这台设备上的本地桌面代理流量。之后你的操作系统可能还会显示第二个证书提示。","folderSelection.servers.certificateInstall.confirmLabel":"继续","folderSelection.servers.certificateInstall.cancelLabel":"取消","folderSelection.servers.certificateInstall.cancelled":"CodeNomad 需要先信任本地证书,才能打开使用自签名 HTTPS 的远程窗口。","folderSelection.sidecars.button":"Open SideCar"},l={"instanceTabs.new.title":"新建实例 (Cmd/Ctrl+N)","instanceTabs.new.ariaLabel":"新建实例","instanceTabs.remote.title":"远程连接","instanceTabs.remote.ariaLabel":"远程连接","instanceInfo.title":"实例信息","instanceInfo.labels.folder":"文件夹","instanceInfo.labels.project":"项目","instanceInfo.labels.versionControl":"版本控制","instanceInfo.labels.opencodeVersion":"OpenCode 版本","instanceInfo.labels.binaryPath":"可执行文件路径","instanceInfo.labels.environmentVariables":"环境变量({count})","instanceInfo.loading":"正在加载...","instanceInfo.server.title":"服务器","instanceInfo.server.port":"端口:","instanceInfo.server.pid":"PID:","instanceInfo.server.status":"状态:","instanceTab.status.permission":"等待权限","instanceTab.status.compacting":"压缩中","instanceTab.status.working":"工作中","instanceTab.status.idle":"空闲","instanceTab.status.ariaLabel":"实例状态:{status}","instanceTab.actions.close.ariaLabel":"关闭实例","instanceShell.leftPanel.sessionsTitle":"会话","instanceShell.leftPanel.instanceInfo":"实例信息","instanceShell.leftDrawer.pin":"固定左侧抽屉","instanceShell.leftDrawer.unpin":"取消固定左侧抽屉","instanceShell.leftDrawer.toggle.pinned":"左侧抽屉已固定","instanceShell.leftDrawer.toggle.open":"打开左侧抽屉","instanceShell.leftDrawer.toggle.close":"关闭左侧抽屉","instanceShell.rightDrawer.pin":"固定右侧抽屉","instanceShell.rightDrawer.unpin":"取消固定右侧抽屉","instanceShell.rightDrawer.toggle.pinned":"右侧抽屉已固定","instanceShell.rightDrawer.toggle.open":"打开右侧抽屉","instanceShell.rightDrawer.toggle.close":"关闭右侧抽屉","instanceShell.fullscreen.enter":"全屏","instanceShell.fullscreen.exit":"退出全屏","instanceShell.metrics.usedLabel":"已用","instanceShell.metrics.availableLabel":"可用","instanceShell.commandPalette.openAriaLabel":"打开命令面板","instanceShell.commandPalette.button":"命令面板","instanceShell.chatSearch.openAriaLabel":"搜索聊天历史","instanceShell.connection.ariaLabel":"连接 {status}","instanceShell.connection.connected":"已连接","instanceShell.connection.connecting":"连接中...","instanceShell.connection.disconnected":"已断开","instanceShell.connection.unknown":"未知","instanceWelcome.shortcuts.newSession":"新建会话","instanceWelcome.empty.title":"没有历史会话","instanceWelcome.empty.description":"在下方创建新会话以开始使用","instanceWelcome.loading.title":"正在加载会话","instanceWelcome.loading.description":"正在获取你的历史会话...","instanceWelcome.resume.title":"继续会话","instanceWelcome.resume.subtitle.one":"{count} 个会话可用","instanceWelcome.resume.subtitle.other":"{count} 个会话可用","instanceWelcome.session.untitled":"未命名会话","instanceWelcome.new.title":"开始新会话","instanceWelcome.new.subtitle":"将自动沿用上一次的智能体/模型","instanceWelcome.new.createButton":"创建会话","instanceWelcome.overlay.close":"关闭","instanceWelcome.actions.viewInstanceInfo":"查看实例信息","instanceWelcome.actions.renameTitle":"重命名会话","instanceWelcome.actions.deleteTitle":"删除会话","instanceWelcome.hints.navigate":"导航","instanceWelcome.hints.jump":"跳转","instanceWelcome.hints.firstLast":"首/末","instanceWelcome.hints.resume":"继续","instanceWelcome.hints.delete":"删除","instanceWelcome.toasts.renameError":"无法重命名会话","instanceDisconnected.title":"实例已断开连接","instanceDisconnected.folderFallback":"此工作区","instanceDisconnected.reasonFallback":"服务器停止响应","instanceDisconnected.description":"{folder} 已无法访问。关闭此标签页以继续工作。","instanceDisconnected.details.title":"详情","instanceDisconnected.details.folderLabel":"文件夹:","instanceDisconnected.actions.closeInstance":"关闭实例","instanceShell.empty.title":"未选择会话","instanceShell.empty.description":"选择会话以查看消息","instanceShell.rightPanel.title":"状态面板","instanceShell.rightPanel.tabs.changes":"更改","instanceShell.rightPanel.tabs.gitChanges":"Git 更改","instanceShell.rightPanel.tabs.files":"文件","instanceShell.rightPanel.tabs.status":"状态","instanceShell.rightPanel.tabs.ariaLabel":"右侧面板标签页","instanceShell.rightPanel.actions.refresh":"刷新","instanceShell.rightPanel.actions.save":"保存 (Ctrl+S)","instanceShell.rightPanel.actions.saveConfirm.message":'切换前是否保存对 "{path}" 的更改?',"instanceShell.rightPanel.actions.saveConfirm.confirmLabel":"保存","instanceShell.rightPanel.actions.saveConfirm.cancelLabel":"放弃更改","instanceShell.rightPanel.actions.conflict.message":"文件已被代理修改。是否覆盖代理的更改?","instanceShell.rightPanel.actions.conflict.confirmLabel":"覆盖","instanceShell.rightPanel.actions.conflict.cancelLabel":"取消","instanceShell.rightPanel.actions.refreshDirty.message":"文件有未保存的更改。刷新将放弃您的编辑。继续?","instanceShell.rightPanel.actions.refreshDirty.confirmLabel":"刷新","instanceShell.rightPanel.actions.refreshDirty.cancelLabel":"取消","instanceShell.rightPanel.toast.saveSuccess":"文件保存成功","instanceShell.rightPanel.toast.saveError":"保存文件失败","instanceShell.rightPanel.sections.yoloMode":"Yolo 模式","instanceShell.rightPanel.sections.yoloMode.tooltip":"自动批准当前会话的权限请求。仅在你信任正在运行的工具时启用。","instanceShell.rightPanel.sections.sessionChanges":"会话更改","instanceShell.rightPanel.sections.sessionChanges.tooltip":"当前会话中修改的文件。显示每个文件的添加和删除。","instanceShell.rightPanel.sections.plan":"计划","instanceShell.rightPanel.sections.plan.tooltip":"代理的路线图。跟踪任务、子任务及其完成状态。","instanceShell.rightPanel.sections.backgroundProcesses":"后台 Shell","instanceShell.rightPanel.sections.backgroundProcesses.tooltip":"代理启动的后台进程。您可以监控其输出、停止或终止它们。","instanceShell.rightPanel.sections.mcp":"MCP 服务器","instanceShell.rightPanel.sections.mcp.tooltip":"模型上下文协议服务器,使用外部工具和服务扩展代理能力。","instanceShell.rightPanel.sections.lsp":"LSP 服务器","instanceShell.rightPanel.sections.lsp.tooltip":"语言服务器协议服务器,提供代码智能、诊断和语言特定的功能。","instanceShell.rightPanel.sections.plugins":"插件","instanceShell.rightPanel.sections.plugins.tooltip":"自定义 UI 和服务器行为的插件,添加超出 MCP 和 LSP 的功能。","instanceShell.sessionChanges.noSessionSelected":"选择会话以查看更改。","instanceShell.sessionChanges.loading":"正在获取会话更改...","instanceShell.sessionChanges.empty":"暂无会话更改。","instanceShell.sessionChanges.filesChanged":"已更改 {count} 个文件","instanceShell.sessionChanges.actions.show":"显示更改","instanceShell.gitChanges.loading":"正在加载 Git 更改...","instanceShell.gitChanges.empty":"暂无 Git 更改。","instanceShell.gitChanges.deleted":"已删除","instanceShell.gitChanges.binaryViewer":"无法显示二进制文件","instanceShell.gitChanges.sections.staged":"已暂存的更改","instanceShell.gitChanges.sections.unstaged":"更改","instanceShell.gitChanges.actions.insertContext":"添加到提示词","instanceShell.gitChanges.actions.stage":"暂存文件","instanceShell.gitChanges.actions.unstage":"取消暂存","instanceShell.gitChanges.commit.placeholder":"输入提交信息","instanceShell.gitChanges.commit.submit":"提交","instanceShell.gitChanges.commit.submitting":"正在提交...","instanceShell.gitChanges.commit.success":"提交已成功创建","instanceShell.gitChanges.commit.error":"无法创建提交","instanceShell.filesShell.fileListTitle":"文件列表","instanceShell.filesShell.mobileSelectorLabel":"选择文件","instanceShell.filesShell.mobileSelectorEmpty":"请选择文件","instanceShell.filesShell.viewerTitle":"更改查看器","instanceShell.filesShell.viewerPlaceholder":"详细更改渲染将在下一步中添加。","instanceShell.filesShell.viewerEmpty":"未选择文件。","instanceShell.filesShell.listEmpty":"此文件夹中没有文件。","instanceShell.filesShell.search.placeholder":"筛选此文件夹中的文件","instanceShell.filesShell.search.ariaLabel":"筛选此文件夹中的文件","instanceShell.filesShell.search.empty":"没有匹配的文件。","instanceShell.filesShell.actions.copyPath":"复制路径","instanceShell.filesShell.toast.copyPathSuccess":"路径已复制","instanceShell.filesShell.toast.copyPathError":"无法复制路径","instanceShell.filesShell.previewMarkdown":"Markdown 预览","instanceShell.filesShell.showSource":"显示源码","instanceShell.filesShell.enableWordWrap":"启用自动换行","instanceShell.filesShell.disableWordWrap":"禁用自动换行","instanceShell.plan.noSessionSelected":"选择会话以查看计划。","instanceShell.plan.empty":"暂无计划。","instanceShell.yoloMode.noSessionSelected":"请选择一个会话来配置 Yolo 模式。","instanceShell.yoloMode.title":"Yolo 模式","instanceShell.yoloMode.description":"自动批准此会话的权限请求。默认关闭。","instanceShell.yoloMode.badge":"Yolo","instanceShell.yoloMode.badgeAriaLabel":"Yolo 模式已启用","instanceShell.backgroundProcesses.empty":"没有后台进程。","instanceShell.backgroundProcesses.status":"状态:{status}","instanceShell.backgroundProcesses.output":"输出:{sizeKb}KB","instanceShell.backgroundProcesses.notify.enabled":"已启用完成通知","instanceShell.backgroundProcesses.notify.disabled":"已禁用完成通知","instanceShell.backgroundProcesses.actions.output":"输出","instanceShell.backgroundProcesses.actions.stop":"停止","instanceShell.backgroundProcesses.actions.terminate":"终止","instanceShell.worktree.delete.error.title":"删除失败","instanceShell.worktree.delete.error.fallback":"删除 worktree 失败","instanceShell.worktree.delete.error.causeLabel":"可能原因:","instanceShell.worktree.delete.error.nextStepLabel":"建议的下一步:","instanceShell.worktree.delete.error.summary.localChanges":"Git 拒绝删除这个 worktree,因为其中包含已修改或未跟踪的文件。","instanceShell.worktree.delete.error.summary.inUse":"CodeNomad 无法删除这个 worktree,因为目录中的文件仍在被某些进程使用。","instanceShell.worktree.delete.error.summary.notFound":"CodeNomad 无法删除这个 worktree,因为目录或 worktree 记录未找到。","instanceShell.worktree.delete.error.summary.permissionDenied":"CodeNomad 无法删除这个 worktree,因为目录访问被拒绝。","instanceShell.worktree.delete.error.summary.unknown":"CodeNomad 无法删除这个 worktree。","instanceShell.worktree.delete.error.cause.localChanges":"本地更改","instanceShell.worktree.delete.error.cause.inUse":"另一个进程正在使用这个 worktree","instanceShell.worktree.delete.error.cause.notFound":"worktree 目录或记录缺失","instanceShell.worktree.delete.error.cause.permissionDenied":"文件系统权限不足","instanceShell.worktree.delete.error.cause.unknown":"后端返回了未分类的删除错误","instanceShell.worktree.delete.error.nextStep.localChanges":"如果你想丢弃本地更改,请启用强制删除,或者先清理 worktree 后再重试。","instanceShell.worktree.delete.error.nextStep.inUse":"关闭正在使用这个 worktree 的终端、编辑器、watcher 或后台进程,然后再试一次。","instanceShell.worktree.delete.error.nextStep.notFound":"刷新 worktree 列表后再试一次。如果仍然失败,请检查磁盘上的 worktree 路径。","instanceShell.worktree.delete.error.nextStep.permissionDenied":"检查文件系统权限,并关闭可能锁定此目录的应用程序,然后再试一次。","instanceShell.worktree.delete.error.nextStep.unknown":"查看下方原始错误详情,并在处理提示的问题后再次重试。","instanceShell.worktree.delete.error.copyRaw":"复制错误","instanceShell.worktree.delete.error.copySanitized":"复制脱敏内容","instanceShell.worktree.delete.error.copySuccess":"已复制删除错误","instanceShell.worktree.delete.error.copySanitizedSuccess":"已复制脱敏后的删除错误","instanceShell.worktree.delete.error.copyFailure":"复制删除错误失败","versionPill.appWithVersion":"应用 {version}","versionPill.ui":"UI","versionPill.uiWithVersion":"UI {version}","versionPill.source":" ({source})","opencodeBinarySelector.title":"OpenCode 可执行文件","opencodeBinarySelector.subtitle":"选择 OpenCode 要运行的可执行文件","opencodeBinarySelector.customPath.placeholder":"输入 opencode 可执行文件路径…","opencodeBinarySelector.actions.add":"添加","opencodeBinarySelector.actions.browse":"浏览可执行文件…","opencodeBinarySelector.actions.removeTitle":"移除可执行文件","opencodeBinarySelector.badge.systemPath":"使用系统 PATH 中的可执行文件","opencodeBinarySelector.status.checkingVersions":"正在检查版本…","opencodeBinarySelector.status.checking":"正在检查…","opencodeBinarySelector.dialog.title":"选择 OpenCode 可执行文件","opencodeBinarySelector.dialog.description":"浏览 CLI 服务器暴露的文件。","opencodeBinarySelector.validation.invalidBinary":"无效的 OpenCode 可执行文件","opencodeBinarySelector.validation.alreadyValidating":"正在验证中","opencodeBinarySelector.display.systemPath":"{name}(系统 PATH)","opencodeBinarySelector.versionLabel":"v{version}"},r={"loadingScreen.logoAlt":"CodeNomad 徽标","loadingScreen.status.issue":"遇到问题","loadingScreen.actions.showAnother":"换一句","loadingScreen.errors.missingRoot":"未找到加载根元素","loadingScreen.phrases.neurons":"正在热身 AI 神经元…","loadingScreen.phrases.daydreaming":"正在劝 AI 别再走神…","loadingScreen.phrases.goggles":"正在擦亮 AI 的代码护目镜…","loadingScreen.phrases.reorganizingFiles":"正在请求 AI 别再帮你重排文件…","loadingScreen.phrases.coffee":"正在给 AI 加杯咖啡…","loadingScreen.phrases.nodeModules":"正在教 AI 别再删除 node_modules(又一次)…","loadingScreen.phrases.actNatural":"正在提醒 AI 在你到来前表现自然点…","loadingScreen.phrases.rewritingHistory":"正在请 AI 别再重写历史…","loadingScreen.phrases.stretch":"正在让 AI 在编码冲刺前伸个懒腰…","loadingScreen.phrases.keyboardControl":"正在说服 AI 把键盘控制权交给你…"},c={"logsView.title":"服务器日志","logsView.actions.show":"显示服务器日志","logsView.actions.hide":"隐藏服务器日志","logsView.envVars.title":"环境变量({count})","logsView.paused.title":"服务器日志已暂停","logsView.paused.description":"启用流式输出以查看 OpenCode 服务器活动。","logsView.empty.waiting":"正在等待服务器输出...","logsView.scrollToBottom":"滚动到底部","infoView.logs.title":"服务器日志","infoView.logs.actions.show":"显示服务器日志","infoView.logs.actions.hide":"隐藏服务器日志","infoView.logs.paused.title":"服务器日志已暂停","infoView.logs.paused.description":"启用流式输出以查看 OpenCode 服务器活动。","infoView.logs.empty.waiting":"正在等待服务器输出...","infoView.logs.scrollToBottom":"滚动到底部","infoView.dispose.actions.dispose":"释放实例","infoView.dispose.actions.disposing":"正在释放...","infoView.dispose.confirm.title":"要释放实例吗?","infoView.dispose.confirm.message":"这将清除此目录的项目缓存状态,并重新加载实例。","infoView.dispose.confirm.confirmLabel":"释放","infoView.dispose.confirm.cancelLabel":"取消","infoView.dispose.toast.success":"实例已释放。正在重新加载...","infoView.dispose.toast.error":"释放实例失败。"},d={"markdown.codeBlock.copy.label":"复制","markdown.codeBlock.copy.copied":"已复制!","markdown.codeBlock.copy.failed":"失败","markdown.copy":"复制"},m={"messageListHeader.sidebar.openSessionListAriaLabel":"打开会话列表","messageListHeader.metrics.usedLabel":"已用","messageListHeader.metrics.availableLabel":"可用","messageListHeader.commandPalette.ariaLabel":"打开命令面板","messageListHeader.commandPalette.button":"命令面板","messageListHeader.connection.connected":"已连接","messageListHeader.connection.connecting":"连接中...","messageListHeader.connection.disconnected":"已断开","messageSection.empty.logoAlt":"CodeNomad 徽标","messageSection.empty.brandTitle":"CodeNomad","messageSection.empty.title":"开始对话","messageSection.empty.description":"在下方输入消息,或打开命令面板:","messageSection.empty.tips.commandPalette":"命令面板","messageSection.empty.tips.askAboutCodebase":"询问你的代码库","messageSection.empty.tips.attachFilesPrefix":"通过以下方式附加文件","messageSection.loading.messages":"正在加载消息...","messageSection.scroll.toFirstAriaLabel":"滚动到第一条消息","messageSection.scroll.toLatestAriaLabel":"滚动到最新消息","messageSection.scroll.enableHoldAriaLabel":"启用长助手回复保持","messageSection.scroll.disableHoldAriaLabel":"禁用长助手回复保持","messageSection.quote.addAsQuote":"作为引用添加","messageSection.quote.addAsCode":"作为代码添加","messageSection.quote.copy":"复制","messageSection.quote.copied":"已复制!","messageSection.quote.copyFailed":"无法复制","messageSection.search.ariaLabel":"搜索聊天历史","messageSection.search.placeholder":"搜索当前聊天...","messageSection.search.count.empty":"搜索","messageSection.search.count.minChars":"{count}+ 个字符","messageSection.search.count.searching":"正在搜索...","messageSection.search.count.none":"无匹配项","messageSection.search.count.matches":"{current} / {total}","messageSection.search.previousAriaLabel":"上一个匹配项","messageSection.search.nextAriaLabel":"下一个匹配项","messageSection.search.closeAriaLabel":"关闭搜索","messageSection.search.searching":"正在搜索...","messageSection.search.noVisibleMatches":"没有可见匹配项","messageTimeline.ariaLabel":"消息时间线","messageTimeline.segment.user.label":"你","messageTimeline.segment.assistant.label":"助手","messageTimeline.segment.compaction.label":"压缩","messageTimeline.tool.fallbackLabel":"工具调用","messageTimeline.tooltip.userFallback":"用户消息","messageTimeline.tooltip.assistantFallback":"助手回复","messageTimeline.tooltip.compaction.auto":"自动压缩","messageTimeline.tooltip.compaction.manual":"手动压缩","messageTimeline.text.filePrefix":"[文件] {filename}","messageTimeline.text.attachment":"附件","messageBlock.tool.header":"工具调用","messageBlock.tool.unknown":"未知","messageBlock.tool.goToSession.label":"前往会话","messageBlock.tool.goToSession.title":"前往会话","messageBlock.tool.goToSession.unavailableTitle":"会话尚不可用","messageBlock.tool.deletePart.label":"删除部分","messageBlock.tool.deletePart.deleting":"正在删除...","messageBlock.tool.deletePart.title":"删除此工具输出","messageBlock.tool.deletePart.failed.title":"删除失败","messageBlock.tool.deletePart.failed.message":"删除工具输出失败","messageBlock.compaction.ariaLabel":"会话压缩","messageBlock.compaction.autoLabel":"会话已自动压缩","messageBlock.compaction.manualLabel":"会话已由你压缩","messageBlock.usage.input":"输入","messageBlock.usage.output":"输出","messageBlock.usage.reasoning":"推理","messageBlock.usage.cacheRead":"缓存读取","messageBlock.usage.cacheWrite":"缓存写入","messageBlock.usage.cost":"费用","messageBlock.step.agentLabel":"智能体:{agent}","messageBlock.step.modelLabel":"模型:{model}","messageBlock.reasoning.thinkingLabel":"思考","messageBlock.reasoning.expandAriaLabel":"展开思考","messageBlock.reasoning.collapseAriaLabel":"折叠思考","messageBlock.reasoning.indicator.hide":"隐藏","messageBlock.reasoning.indicator.view":"查看","messageBlock.reasoning.detailsAriaLabel":"推理详情","codeBlockInline.actions.copy":"复制","codeBlockInline.actions.copied":"已复制!","messageItem.speaker.you":"你","messageItem.speaker.assistant":"助手","messageItem.actions.revert":"回退","messageItem.actions.revertTitle":"撤销到此处的更改(会删除消息)","messageItem.actions.fork":"分叉","messageItem.actions.forkTitle":"从这条消息分叉","messageItem.actions.copy":"复制","messageItem.actions.copyTitle":"复制消息","messageItem.actions.copied":"已复制!","messageItem.actions.speak":"朗读消息","messageItem.actions.generatingSpeech":"正在生成语音","messageItem.actions.stopSpeech":"停止播放","messageItem.actions.speak.error.title":"语音播放失败","messageItem.actions.speak.error.unsupported":"此浏览器不支持语音播放。","messageItem.actions.speak.error.unavailable":"语音设置完成前,语音播放不可用。","messageItem.actions.speak.error.generate":"无法为这条消息生成语音。","messageItem.actions.deleteMessage":"删除消息(不会撤销更改)","messageItem.actions.deleteMessagesUpTo":"删除到此处的消息(不会撤销更改)","messageItem.actions.deletingMessage":"正在删除...","messageItem.actions.deleteMessageFailedTitle":"删除失败","messageItem.actions.deleteMessageFailedMessage":"无法删除消息","messageItem.selection.checkboxAriaLabel":"选择要删除的消息","messageSection.bulkDelete.toolbarAriaLabel":"已选择的项目({count})","messageSection.bulkDelete.deleteSelectedTitle":"删除已选择的项目","messageSection.bulkDelete.selectAllTitle":"全选消息","messageSection.bulkDelete.moreOptionsTitle":"更多选项","messageSection.bulkDelete.selectionModeLabel":"选择","messageSection.bulkDelete.selectionModeAll":"全部","messageSection.bulkDelete.selectionModeTools":"仅工具","messageSection.bulkDelete.selectionHint.toggle":"选择项目","messageSection.bulkDelete.selectionHint.range":"选择范围","messageSection.bulkDelete.selectionHint.clear":"清除选择","messageSection.bulkDelete.cancelTitle":"取消选择","messageSection.bulkDelete.failedTitle":"删除失败","messageSection.bulkDelete.failedMessage":"无法删除已选择的项目","messageItem.status.queued":"排队中","messageItem.status.generating":"正在生成...","messageItem.status.sending":"正在发送...","messageItem.status.failedToSend":"消息发送失败","messagePart.actions.delete":"删除部分","messagePart.actions.deleting":"正在删除...","messagePart.actions.deleteTitle":"删除此项","messagePart.actions.deleteFailedTitle":"删除失败","messagePart.actions.deleteFailedMessage":"删除失败","messageItem.attachment.defaultName":"附件","messageItem.attachment.downloadAriaLabel":"下载 {name}","messageItem.agentMeta.agentLabel":"智能体:{agent}","messageItem.agentMeta.modelLabel":"模型:{model}","messageItem.errors.authenticationFallback":"认证错误","messageItem.errors.outputLengthExceeded":"消息输出长度超限","messageItem.errors.requestAborted":"请求已中止","messageItem.errors.unknownFallback":"发生未知错误","attachmentChip.removeAriaLabel":"移除附件","expandButton.toggleAriaLabel":"切换聊天输入框高度","promptInput.placeholder.shell":"运行 shell 命令(Esc 退出)...","promptInput.placeholder.default":"输入消息、@file、@agent,或粘贴图片与文本...","promptInput.hints.shell.exit":"退出 shell 模式","promptInput.hints.shell.enable":"Shell 模式","promptInput.hints.commands":"命令","promptInput.history.previousAriaLabel":"上一条 prompt","promptInput.history.nextAriaLabel":"下一条 prompt","promptInput.overlay.newLine":"换行","promptInput.overlay.send":"发送","promptInput.overlay.filesAgents":"文件/智能体","promptInput.overlay.history":"历史","promptInput.overlay.attachments":"• 已附加 {count} 个文件","promptInput.overlay.shellModeActive":"Shell 模式已启用","promptInput.overlay.press":"按下","promptInput.overlay.againToAbort":"再次按下以中止会话","promptInput.stopSession.ariaLabel":"停止会话","promptInput.stopSession.title":"停止会话","promptInput.clear.ariaLabel":"清除输入框文本","promptInput.clear.title":"清除输入框文本","promptInput.send.ariaLabel":"发送消息","promptInput.send.errorFallback":"发送消息失败","promptInput.send.errorTitle":"发送失败","promptInput.conversationMode.enable.title":"开启对话模式","promptInput.conversationMode.disable.title":"关闭对话模式","promptInput.conversationMode.error.title":"对话播报失败","promptInput.conversationMode.error.message":"无法继续播报助手回复。","promptInput.voiceInput.start.title":"开始语音输入","promptInput.voiceInput.stop.title":"停止录音并转写","promptInput.voiceInput.transcribing.title":"正在转写音频","promptInput.voiceInput.error.title":"语音输入失败","promptInput.voiceInput.error.permission":"录制语音输入需要麦克风访问权限。","promptInput.voiceInput.error.permissionDenied":"macOS 已拒绝麦克风访问。","promptInput.voiceInput.error.unsupported":"此浏览器不支持语音输入。","promptInput.voiceInput.error.transcribe":"无法转写录制的音频。"},p={"remoteAccess.eyebrow":"远程接管","remoteAccess.title":"远程连接到 CodeNomad","remoteAccess.subtitle":"使用下面的地址从其他设备打开 CodeNomad。","remoteAccess.close":"关闭远程访问","remoteAccess.refresh":"刷新","remoteAccess.sections.listeningMode.label":"监听模式","remoteAccess.sections.listeningMode.help":"通过绑定到所有接口或仅 localhost 来允许或限制远程接管。","remoteAccess.toggle.on":"开","remoteAccess.toggle.off":"关","remoteAccess.toggle.title":"允许其他 IP 连接","remoteAccess.toggle.caption.all":"绑定到 0.0.0.0","remoteAccess.toggle.caption.local":"绑定到 127.0.0.1","remoteAccess.toggle.note":"更改此项需要重启,并会暂时停止所有活动实例。服务器重启后再分享下方地址。","remoteAccess.listeningMode.restartConfirm.message":"重启以应用监听模式?这将停止所有正在运行的实例。","remoteAccess.listeningMode.restartConfirm.title.all":"对其他设备开放","remoteAccess.listeningMode.restartConfirm.title.local":"仅限此设备","remoteAccess.listeningMode.restartConfirm.confirmLabel":"立即重启","remoteAccess.listeningMode.restartConfirm.cancelLabel":"取消","remoteAccess.restart.errorManual":"无法自动重启。请手动重启应用以应用更改。","remoteAccess.sections.serverPassword.label":"服务器密码","remoteAccess.sections.serverPassword.help":"远程接管需要密码。设置一个易记的密码,以允许其他设备登录。","remoteAccess.authStatus.unavailable":"无法获取认证状态。","remoteAccess.username":"用户名:{username}","remoteAccess.password.status.set":"已为远程访问设置密码。","remoteAccess.password.status.unset":"尚未设置易记密码。设置后可允许远程接管登录。","remoteAccess.password.actions.cancel":"取消","remoteAccess.password.actions.change":"修改密码","remoteAccess.password.actions.set":"设置密码","remoteAccess.password.form.newPassword":"新密码","remoteAccess.password.form.confirmPassword":"确认密码","remoteAccess.password.form.placeholder":"至少 8 个字符","remoteAccess.password.error.tooShort":"密码至少需要 8 个字符。","remoteAccess.password.error.mismatch":"两次输入的密码不一致。","remoteAccess.password.save.saving":"正在保存…","remoteAccess.password.save.label":"保存密码","remoteAccess.sections.addresses.label":"可访问地址","remoteAccess.sections.addresses.help":"从另一台设备打开或扫描,以接管控制权。","remoteAccess.addresses.loading":"正在加载地址…","remoteAccess.addresses.none":"暂时没有可用地址。","remoteAccess.addresses.actions.showOther":"显示另外 {count} 个地址","remoteAccess.addresses.actions.hideOther":"隐藏其他地址","remoteAccess.address.scope.network":"网络","remoteAccess.address.scope.loopback":"回环","remoteAccess.address.scope.internal":"内部","remoteAccess.address.open":"打开","remoteAccess.address.showQr":"显示二维码","remoteAccess.address.hideQr":"隐藏二维码","remoteAccess.address.qrAlt":"{url} 的二维码"},g={"sessionPicker.title":"OpenCode • {folder}","sessionPicker.empty.noPrevious":"没有历史会话","sessionPicker.resume.title":"继续会话({count}):","sessionPicker.session.untitled":"未命名","sessionPicker.divider.or":"或","sessionPicker.new.title":"开始新会话:","sessionPicker.agents.loading":"正在加载智能体...","sessionPicker.actions.creating":"正在创建...","sessionPicker.actions.createSession":"创建会话","sessionPicker.actions.cancel":"取消","sessionList.header.title":"会话","sessionList.session.untitled":"未命名","sessionList.status.working":"工作中","sessionList.status.compacting":"压缩中","sessionList.status.idle":"空闲","sessionList.status.retrying":"重试中","sessionList.status.retryingIn":"{seconds} 秒后重试","sessionList.status.retryTooltip":"{message}(第 {attempt} 次尝试)","sessionList.status.retryToast":"{countdown}: {message}(第 {attempt} 次尝试)","sessionList.status.needsPermission":"需要权限","sessionList.status.needsInput":"需要输入","sessionList.expand.collapseAriaLabel":"折叠会话","sessionList.expand.expandAriaLabel":"展开会话","sessionList.expand.collapseTitle":"折叠","sessionList.expand.expandTitle":"展开","sessionList.actions.newSession.ariaLabel":"新建会话","sessionList.actions.newSession.title":"新建会话","sessionList.actions.copyId.ariaLabel":"复制会话 ID","sessionList.actions.copyId.title":"复制会话 ID","sessionList.actions.reload.ariaLabel":"重新加载会话","sessionList.actions.reload.title":"重新加载会话","sessionList.actions.rename.ariaLabel":"重命名会话","sessionList.actions.rename.title":"重命名会话","sessionList.actions.delete.ariaLabel":"删除会话","sessionList.actions.delete.title":"删除会话","sessionList.copyId.success":"已复制会话 ID","sessionList.copyId.error":"无法复制会话 ID","sessionList.reload.error":"无法重新加载会话","sessionList.delete.error":"无法删除会话","sessionList.delete.title":"删除会话","sessionList.delete.confirmMessage":"删除“{label}”?此操作无法撤销。","sessionList.delete.confirmLabel":"删除","sessionList.delete.cancelLabel":"取消","sessionList.rename.error":"无法重命名会话","sessionList.filter.placeholder":"搜索会话…","sessionList.filter.ariaLabel":"搜索会话","sessionList.selection.selectAllLabel":"全选","sessionList.selection.selectAllAriaLabel":"选择所有会话","sessionList.selection.clearLabel":"清除","sessionList.selection.clearAriaLabel":"清除选择","sessionList.selection.checkboxAriaLabel":"选择会话","sessionList.bulkDelete.button":"删除 {count}","sessionList.bulkDelete.ariaLabel":"删除已选择的 {count} 个会话","sessionList.bulkDelete.title":"删除会话","sessionList.bulkDelete.confirmMessage":"删除已选择的 {count} 个会话?此操作无法撤销。","sessionList.bulkDelete.confirmLabel":"删除","sessionList.bulkDelete.cancelLabel":"取消","sessionList.bulkDelete.error":"无法删除 {count} 个会话","sessionRenameDialog.title":"重命名会话","sessionRenameDialog.description.withLabel":"更新“{label}”的标题。","sessionRenameDialog.description.default":"为此会话设置新标题。","sessionRenameDialog.input.label":"会话名称","sessionRenameDialog.input.placeholder":"输入会话名称","sessionRenameDialog.actions.cancel":"取消","sessionRenameDialog.actions.rename":"重命名","sessionRenameDialog.actions.renaming":"正在重命名…","sessionView.fallback.sessionNotFound":"未找到会话","sessionView.alerts.abortFailed.message":"停止会话失败","sessionView.alerts.abortFailed.title":"停止失败","sessionView.alerts.revertFailed.message":"回退到消息失败","sessionView.alerts.revertFailed.title":"回退失败","sessionView.alerts.deleteUpToFailed.message":"无法删除消息","sessionView.alerts.deleteUpToFailed.title":"删除失败","sessionView.alerts.forkFailed.message":"分叉会话失败","sessionView.alerts.forkFailed.title":"分叉失败","sessionView.attachments.expandPastedTextAriaLabel":"展开粘贴的文本","sessionView.attachments.insertPastedTextTitle":"插入粘贴的文本","sessionView.attachments.removeAriaLabel":"移除附件","sessionEvents.sessionCompactedToast":"会话 {label} 已被压缩","sessionEvents.sessionError.unknown":"未知错误","sessionEvents.sessionError.title":"会话错误","sessionEvents.sessionError.message":"错误:{message}","sessionState.cleanup.deepConfirm.message":"此清理可能较慢,并且可能删除你并不想删除的会话。确定要继续吗?","sessionState.cleanup.deepConfirm.title":"深度清理会话","sessionState.cleanup.deepConfirm.detail":"深度清理会话将删除所有没有消息的会话、移除已完成的子智能体会话,并清除会话中未使用的分叉。","sessionState.cleanup.deepConfirm.confirmLabel":"继续","sessionState.cleanup.deepConfirm.cancelLabel":"取消","sessionState.cleanup.toast.one":"已清理 {count} 个空白会话","sessionState.cleanup.toast.other":"已清理 {count} 个空白会话"},u={"instanceServiceStatus.sections.lsp":"LSP 服务器","instanceServiceStatus.sections.mcp":"MCP 服务器","instanceServiceStatus.sections.plugins":"插件","instanceServiceStatus.lsp.loading":"正在加载 LSP 服务器...","instanceServiceStatus.lsp.empty":"未检测到 LSP 服务器。","instanceServiceStatus.lsp.status.connected":"已连接","instanceServiceStatus.lsp.status.error":"错误","instanceServiceStatus.mcp.loading":"正在加载 MCP 服务器...","instanceServiceStatus.mcp.empty":"未检测到 MCP 服务器。","instanceServiceStatus.mcp.toggleAriaLabel":"切换 {name} MCP 服务器","instanceServiceStatus.plugins.loading":"正在加载插件...","instanceServiceStatus.plugins.empty":"未配置插件。","permissionBanner.pendingRequests.one":"{count} 个待处理请求","permissionBanner.pendingRequests.other":"{count} 个待处理请求","permissionBanner.detail.permission.one":"{count} 项权限","permissionBanner.detail.permission.other":"{count} 项权限","permissionBanner.detail.question.one":"{count} 个问题","permissionBanner.detail.question.other":"{count} 个问题","permissionBanner.detail.wrapper":" ({detail})","agentSelector.placeholder":"选择智能体...","agentSelector.badge.subagent":"子智能体","agentSelector.none":"无","agentSelector.trigger.primary":"智能体:{agent}","modelSelector.placeholder.search":"搜索模型...","modelSelector.none":"无","modelSelector.trigger.primary":"模型:{model}","modelSelector.favoritesOnly.toggle.ariaLabel":"仅显示收藏","modelSelector.favoritesOnly.showAll":"显示所有模型","modelSelector.favorite.add":"添加到收藏","modelSelector.favorite.remove":"从收藏移除","thinkingSelector.variant.default":"默认","thinkingSelector.label":"思考:{variant}","envEditor.title":"环境变量","envEditor.count.one":"({count} 个变量)","envEditor.count.other":"({count} 个变量)","envEditor.fields.name.placeholder":"变量名","envEditor.fields.name.readOnlyTitle":"变量名(只读)","envEditor.fields.value.placeholder":"变量值","envEditor.actions.remove.title":"移除变量","envEditor.actions.add.title":"添加变量","envEditor.empty":"未配置环境变量。在上方添加变量以自定义 OpenCode 环境。","envEditor.help":"启动实例时,这些变量将在 OpenCode 环境中可用。","contextUsagePanel.headings.tokens":"Tokens","contextUsagePanel.headings.context":"上下文","contextUsagePanel.labels.input":"输入","contextUsagePanel.labels.output":"输出","contextUsagePanel.labels.cost":"费用","contextUsagePanel.labels.used":"已用","contextUsagePanel.labels.available":"可用","contextUsagePanel.unavailable":"--","settings.title":"Settings","settings.navigationAriaLabel":"Settings sections","settings.close":"Close settings","settings.content.eyebrow":"Workspace preferences","settings.open.title":"Open settings","settings.open.ariaLabel":"Open settings","settings.nav.appearance":"Appearance","settings.nav.notifications":"Notifications","settings.nav.remote":"Remote Access","settings.nav.speech":"Speech","settings.nav.opencode":"OpenCode","settings.scope.device":"This device","settings.scope.server":"Server setting","settings.common.enabled":"Enabled","settings.common.disabled":"已禁用","settings.section.appearance.title":"Appearance","settings.section.appearance.subtitle":"Adjust how the app looks on this device.","settings.appearance.theme.title":"Theme","settings.appearance.theme.subtitle":"Choose the color mode used throughout the app.","settings.appearance.theme.option.system":"Match your operating system setting","settings.appearance.theme.option.light":"Use the light appearance","settings.appearance.theme.option.dark":"Use the dark appearance","settings.section.notifications.title":"Notifications","settings.section.notifications.subtitle":"Control OS-level notifications for session activity.","settings.notifications.permission.granted":"Granted","settings.notifications.permission.denied":"Denied","settings.notifications.permission.default":"Not granted","settings.notifications.permission.unsupported":"Unsupported","settings.notifications.messages.unsupportedEnvironment":"OS notifications are not supported in this environment.","settings.notifications.messages.permissionDenied":"Notification permission denied. Enable notifications in your system or browser settings.","settings.notifications.messages.permissionNotGranted":"Notification permission not granted.","settings.notifications.messages.unsupportedGeneral":"Notifications are not supported in this environment.","settings.notifications.messages.permissionGranted":"Permission granted. You can now enable notifications.","settings.notifications.messages.permissionRequestDenied":"Permission denied. You may need to enable notifications in your system or browser settings.","settings.notifications.sessionStatus.title":"Session status notifications","settings.notifications.sessionStatus.subtitle":"Receive alerts when sessions need your attention.","settings.notifications.enable.title":"Enable notifications","settings.notifications.enable.permission":"Permission: {permission}","settings.notifications.requestPermission.title":"Request permission","settings.notifications.requestPermission.subtitle":"Allow the app to send notifications on this device.","settings.notifications.requestPermission.action":"Request","settings.notifications.allowVisible.title":"Notify when the app is focused","settings.notifications.allowVisible.subtitle":"Keep alerts enabled even while this window is visible.","settings.notifications.unsupportedNote":"Notifications are not supported in this environment. The notifications control stays disabled.","settings.notifications.events.title":"Notify me when","settings.notifications.events.subtitle":"Choose which session events should send alerts.","settings.notifications.events.needsInput":"Session needs input","settings.notifications.events.idle":"Session becomes idle","settings.notifications.status.enabled":"Notifications enabled","settings.notifications.status.disabled":"Notifications disabled","settings.notifications.status.unsupported":"Notifications unsupported","settings.section.remote.title":"Remote Access","settings.section.remote.subtitle":"Review how this server is exposed on your network and secure access credentials.","settings.section.opencode.title":"OpenCode","settings.section.opencode.subtitle":"Choose the OpenCode binary and environment used for new instances.","settings.opencode.runtime.title":"Runtime","settings.opencode.runtime.subtitle":"Configure which OpenCode binary new instances launch with.","settings.opencode.logLevel.title":"OpenCode 日志级别","settings.opencode.logLevel.subtitle":"设置启动新的 OpenCode 实例时使用的日志级别。","settings.opencode.logLevel.selector.title":"日志详细程度","settings.opencode.logLevel.selector.subtitle":"选择新的 OpenCode 实例应输出多少日志信息。","settings.opencode.logLevel.option.debug":"调试","settings.opencode.logLevel.option.info":"信息","settings.opencode.logLevel.option.warn":"警告","settings.opencode.logLevel.option.error":"错误","settings.appearance.behavior.title":"交互","settings.appearance.behavior.subtitle":"消息、差异与输入的默认值。","settings.behavior.keyboardHints.title":"键盘快捷键提示","settings.behavior.keyboardHints.subtitle":"在整个界面中显示键盘快捷键提示。","settings.behavior.thinking.title":"思考区块","settings.behavior.thinking.subtitle":"在消息中显示或隐藏AI的思考区块。","settings.behavior.thinkingDefault.title":"思考默认状态","settings.behavior.thinkingDefault.subtitle":"选择思考区块默认是展开还是折叠。","settings.behavior.timelineTools.title":"时间线工具调用","settings.behavior.timelineTools.subtitle":"在消息时间线中显示或隐藏工具调用条目。","settings.behavior.diffView.title":"差异视图","settings.behavior.diffView.subtitle":"选择工具调用差异的显示方式。","settings.behavior.diffView.option.split":"分栏","settings.behavior.diffView.option.unified":"统一","settings.behavior.toolOutputsDefault.title":"工具输出默认状态","settings.behavior.toolOutputsDefault.subtitle":"选择工具输出默认是展开还是折叠。","settings.behavior.diagnosticsDefault.title":"诊断默认状态","settings.behavior.diagnosticsDefault.subtitle":"选择诊断输出默认是展开还是折叠。","settings.behavior.toolInputsVisibility.title":"工具输入可见性","settings.behavior.toolInputsVisibility.subtitle":"设置工具调用输入参数的默认可见性。","settings.behavior.usageMetrics.title":"令牌用量指标","settings.behavior.usageMetrics.subtitle":"显示或隐藏助手消息的令牌与成本统计。","settings.behavior.autoCleanup.title":"自动清理空会话","settings.behavior.autoCleanup.subtitle":"创建新会话时自动清理空会话。","settings.behavior.keepUnseenSubagentIdle.title":"保留子智能体 idle 标记","settings.behavior.keepUnseenSubagentIdle.subtitle":"让子智能体 idle 标记保持可见直到查看,而不是 5 秒后隐藏。","settings.behavior.promptVoiceInput.title":"Prompt voice input","settings.behavior.promptVoiceInput.subtitle":"Show the microphone control for speech-to-text prompt input when speech is configured.","settings.behavior.promptSubmit.title":"回车发送","settings.behavior.promptSubmit.subtitle":"使用回车发送;Cmd/Ctrl+回车插入新行。","settings.speech.title":"语音","settings.speech.subtitle":"立即配置语音转文字,并为后续功能预留文字转语音基础。","settings.speech.provider.title":"提供商","settings.speech.provider.subtitle":"语音请求使用服务器端语音适配器。","settings.speech.provider.openaiCompatible":"OpenAI-compatible","settings.speech.status.loading":"正在检查配置...","settings.speech.status.configured":"已配置","settings.speech.status.missing":"缺少 API 密钥","settings.speech.status.error":"语音服务不可用","settings.speech.apiKey.title":"API key","settings.speech.apiKey.subtitle":"用于 CodeNomad 管理的语音请求。","settings.speech.apiKey.placeholder":"输入新的 API 密钥","settings.speech.apiKey.storedNote":"已保存的 API 密钥会被隐藏。输入新值可替换它,留空则保留当前密钥。","settings.speech.apiKey.clearAction":"清除已保存的密钥","settings.speech.apiKey.clearPending":"保存后将删除已保存的 API 密钥。","settings.speech.baseUrl.title":"Base URL","settings.speech.baseUrl.subtitle":"可选,用于覆盖 OpenAI 兼容语音端点的基础地址。","settings.speech.baseUrl.placeholder":"https://api.openai.com/v1","settings.speech.sttModel.title":"转写模型","settings.speech.sttModel.subtitle":"用于提示框语音转文字请求的模型。","settings.speech.ttsModel.title":"语音模型","settings.speech.ttsModel.subtitle":"为未来播放功能预留的默认文字转语音模型。","settings.speech.ttsVoice.title":"默认语音","settings.speech.ttsVoice.subtitle":"为未来播放功能预留的默认文字转语音音色。","settings.speech.playbackMode.title":"播放模式","settings.speech.playbackMode.subtitle":"选择在音频流入时开始播放,还是在整个文件生成完成后再播放。","settings.speech.playbackMode.streaming":"流式","settings.speech.playbackMode.buffered":"缓冲后播放","settings.speech.ttsFormat.title":"输出格式","settings.speech.ttsFormat.subtitle":"选择语音合成的音频格式。流式支持取决于你的提供商和浏览器。","settings.speech.help":"当语音转写已配置且受支持时,提示框语音输入会显示。消息播放会使用这里选择的 TTS 模式和格式。","settings.speech.compatibility.streamingUnavailable":"你当前的语音提供商配置没有声明支持流式 TTS。如果你现在就想让播放可用,请把播放模式切换为 buffered。","settings.speech.compatibility.browserStreamingUnavailable":"你当前的浏览器无法流式播放所选的 TTS 格式。请选择 buffered 播放,或切换到其他格式。","settings.speech.compatibility.runtimeNote":"在流式模式下仍然可以选择所有格式,但某些浏览器与提供商的组合在播放时仍可能失败。","settings.speech.testPlayback.action":"测试播放","settings.speech.testPlayback.generating":"正在生成示例","settings.speech.testPlayback.stop":"停止示例","settings.speech.testPlayback.sample":"感谢你使用 CodeNomad,你的语音设置工作正常。","settings.speech.testPlayback.note":"测试会立即使用当前播放模式和格式。如果你也想测试 API key、Base URL、模型或音色的更改,请先保存。","settings.speech.save.action":"保存","settings.speech.save.saving":"保存中...","settings.speech.save.saved":"已保存","settings.speech.save.unsaved":"有未保存的更改","settings.speech.save.error":"保存失败","settings.nav.sidecars":"SideCars","settings.section.sidecars.eyebrow":"Server services","settings.section.sidecars.title":"SideCars","settings.section.sidecars.subtitle":"Configure local services listening on fixed ports that the server can proxy into tabs.","sidecars.form.name":"Name","sidecars.form.validation":"Enter a valid SideCar name and port.","sidecars.form.port":"Port","sidecars.form.insecure":"Use HTTP","sidecars.form.protocol":"Protocol","sidecars.form.protocol.help":"Choose how the proxy should connect to the local service.","sidecars.form.protocol.https":"HTTPS","sidecars.form.protocol.http":"HTTP","sidecars.form.prefixMode":"Prefix mode","sidecars.form.prefixMode.help":"Choose whether the SideCar receives the public /sidecars path prefix.","sidecars.form.prefixMode.strip":"Strip prefix","sidecars.form.prefixMode.preserve":"Preserve prefix","sidecars.form.add":"Add SideCar","sidecars.kind.port":"Port","sidecars.status.running":"Running","sidecars.status.stopped":"Stopped","sidecars.basePath":"Base path","sidecars.settings.listTitle":"Configured SideCars","sidecars.settings.listSubtitle":"Review the port-based SideCars available in the picker.","sidecars.settings.empty":"No SideCars configured yet.","sidecars.picker.title":"Open SideCar","sidecars.picker.loading":"Loading SideCars...","sidecars.picker.subtitle":"Choose an available SideCar to open in a new tab.","sidecars.picker.empty":"No port-based SideCars are available yet.","sidecars.picker.close":"Close","sidecars.open.errorTitle":"Unable to open SideCar","sidecars.open.notFound":"SideCar not found.","sidecars.open.notRunning":"SideCar is not reachable on its configured port.","sidecars.back":"Back","sidecars.refresh":"Refresh","sidecars.path":"Path","sidecars.go":"Go"},h={"time.relative.justNow":"刚刚","time.relative.daysAgoShort":"{count} 天前","time.relative.hoursAgoShort":"{count} 小时前","time.relative.minutesAgoShort":"{count} 分钟前"},b={"toolCall.pending.waitingToRun":"等待运行...","toolCall.error.label":"错误:","toolCall.header.copyTitle":"Copy tool call title","toolCall.header.copyAriaLabel":"Copy tool call title","toolCall.header.showInputTitle":"Show Tool Arguments","toolCall.header.showInputAriaLabel":"Show Tool Arguments","toolCall.header.hideInputTitle":"Hide Tool Arguments","toolCall.header.hideInputAriaLabel":"Hide Tool Arguments","toolCall.io.input":"Tool Input","toolCall.io.output":"Tool Output","toolCall.diff.label":"Diff","toolCall.diff.label.withPath":"Diff · {path}","toolCall.diff.viewMode.ariaLabel":"Diff 视图模式","toolCall.diff.viewMode.split":"分栏","toolCall.diff.viewMode.unified":"统一","toolCall.diff.switchToSplit":"切换到分栏视图","toolCall.diff.switchToUnified":"切换到统一视图","toolCall.diff.enableWordWrap":"启用自动换行","toolCall.diff.disableWordWrap":"禁用自动换行","toolCall.diff.copyPatch":"复制补丁","toolCall.diagnostics.title":"诊断","toolCall.diagnostics.ariaLabel":"诊断","toolCall.diagnostics.ariaLabel.withLabel":"诊断 {label}","toolCall.diagnostics.severity.error.short":"ERR","toolCall.diagnostics.severity.warning.short":"WARN","toolCall.diagnostics.severity.info.short":"INFO","toolCall.renderer.toolName.shell":"Shell","toolCall.renderer.toolName.fetch":"Fetch","toolCall.renderer.toolName.invalid":"无效","toolCall.renderer.toolName.plan":"计划","toolCall.renderer.toolName.applyPatch":"应用补丁","toolCall.renderer.action.working":"处理中...","toolCall.renderer.action.writingCommand":"正在编写命令...","toolCall.renderer.action.preparingEdit":"正在准备编辑...","toolCall.renderer.action.readingFile":"正在读取文件...","toolCall.renderer.action.preparingWrite":"正在准备写入...","toolCall.renderer.action.preparingPatch":"正在准备补丁...","toolCall.renderer.action.planning":"正在规划...","toolCall.renderer.action.fetchingFromWeb":"正在从网络获取...","toolCall.renderer.action.findingFiles":"正在查找文件...","toolCall.renderer.action.searchingContent":"正在搜索内容...","toolCall.renderer.action.listingDirectory":"正在列出目录...","toolCall.renderer.bash.title.timeout":"超时:{timeout}","toolCall.renderer.read.detail.offset":"偏移:{offset}","toolCall.renderer.read.detail.limit":"限制:{limit}","toolCall.renderer.todo.empty":"暂无计划项。","toolCall.renderer.todo.status.pending":"待处理","toolCall.renderer.todo.status.inProgress":"进行中","toolCall.renderer.todo.status.completed":"已完成","toolCall.renderer.todo.status.cancelled":"已取消","toolCall.renderer.todo.title.plan":"计划","toolCall.renderer.todo.title.creating":"正在创建计划","toolCall.renderer.todo.title.completing":"正在完成计划","toolCall.renderer.todo.title.updating":"正在更新计划","toolCall.permission.status.required":"需要权限","toolCall.permission.status.queued":"权限已排队","toolCall.permission.requestedDiff.label":"请求的 Diff","toolCall.permission.requestedDiff.withPath":"请求的 Diff · {path}","toolCall.permission.queuedText":"正在等待更早的权限响应。","toolCall.permission.actions.allowOnce":"仅允许一次","toolCall.permission.actions.alwaysAllow":"始终允许","toolCall.permission.actions.deny":"拒绝","toolCall.permission.shortcuts.allowOnce":"仅允许一次","toolCall.permission.shortcuts.alwaysAllow":"始终允许","toolCall.permission.shortcuts.deny":"拒绝","toolCall.permission.errors.unableToUpdate":"无法更新权限","permissionApproval.title":"请求","permissionApproval.empty":"暂无待处理请求。","permissionApproval.kind.permission":"权限","permissionApproval.kind.question":"问题","permissionApproval.questionCount.one":"{count} 个问题","permissionApproval.questionCount.other":"{count} 个问题","permissionApproval.status.active":"活动","permissionApproval.actions.closeAriaLabel":"关闭","permissionApproval.actions.goToSession":"前往会话","permissionApproval.actions.loadingSession":"正在加载…","permissionApproval.actions.loadSession":"加载会话","permissionApproval.actions.allowOnce":"仅允许一次","permissionApproval.actions.alwaysAllow":"始终允许","permissionApproval.actions.deny":"拒绝","permissionApproval.fallbackHint":"加载会话以查看更多信息。","permissionApproval.errors.unableToUpdatePermission":"无法更新权限","toolCall.question.status.required":"需要回答问题","toolCall.question.status.queued":"问题已排队","toolCall.question.status.questions":"问题","toolCall.question.action.awaitingAnswers":"等待回答...","toolCall.question.title.questions":"问题","toolCall.question.title.askingQuestions":"正在提问","toolCall.question.type.one":"问题","toolCall.question.type.other":"问题","toolCall.question.number":"Q{number}:","toolCall.question.multiple":"多个","toolCall.question.custom.title":"输入自定义答案","toolCall.question.custom.label":"自定义答案","toolCall.question.custom.placeholder":"输入你的答案","toolCall.question.actions.submit":"提交","toolCall.question.actions.dismiss":"忽略","toolCall.question.shortcuts.submit":"提交","toolCall.question.shortcuts.dismiss":"忽略","toolCall.question.queuedText":"正在等待更早的响应。","toolCall.question.validation.answerAll":"请先回答所有问题再提交。","toolCall.question.errors.unableToReply":"无法回复","toolCall.question.errors.unableToDismiss":"无法忽略","toolCall.task.action.delegating":"正在委派...","toolCall.task.sections.prompt":"Prompt","toolCall.task.sections.steps":"步骤","toolCall.task.sections.output":"输出","toolCall.task.steps.count":"{count} 个步骤","toolCall.task.meta.agentModel":"智能体:{agent} • 模型:{model}","toolCall.task.meta.agent":"智能体:{agent}","toolCall.task.meta.model":"模型:{model}","toolCall.status.pending":"待处理","toolCall.status.running":"运行中","toolCall.status.completed":"已完成","toolCall.status.error":"错误","toolCall.status.unknown":"未知","toolCall.applyPatch.action.preparing":"正在准备 apply_patch...","toolCall.applyPatch.title.withFileCount.one":"{tool}({count} 个文件)","toolCall.applyPatch.title.withFileCount.other":"{tool}({count} 个文件)","toolCall.applyPatch.fileFallback":"文件 {number}"},y=e(a,s,r,h,t,i,n,l,c,g,m,b,d,u,p,o);export{y as zhHansMessages};
@@ -0,0 +1 @@
1
+ import{m as e}from"./index-D6RMBXUk.js";import"./git-diff-vendor-CSgooKT_.js";import"./fast-diff-vendor-DgdwVvTQ.js";import"./highlight-vendor-8FKMu9os.js";import"./monaco-viewer-DWQqXKm3.js";const s={"advancedSettings.title":"詳細設定","advancedSettings.environmentVariables.title":"環境変数","advancedSettings.environmentVariables.subtitle":"新しい OpenCode インスタンス起動時に適用","advancedSettings.actions.close":"閉じる"},t={"app.launchError.title":"OpenCode を起動できません","app.launchError.description":"選択された OpenCode バイナリを起動できませんでした。下のエラー出力を確認するか、OpenCode 設定から別のバイナリを選択してください。","app.launchError.binaryPathLabel":"バイナリのパス","app.launchError.errorOutputLabel":"エラー出力","app.launchError.openAdvancedSettings":"OpenCode 設定を開く","app.launchError.close":"閉じる","app.launchError.closeTitle":"閉じる (Esc)","app.launchError.fallbackMessage":"ワークスペースの起動に失敗しました","app.stopInstance.confirmMessage":"OpenCode インスタンスを停止しますか?サーバーが停止します。","app.stopInstance.title":"インスタンスを停止","app.stopInstance.confirmLabel":"停止","app.stopInstance.cancelLabel":"実行を続ける","emptyState.logoAlt":"CodeNomad ロゴ","emptyState.brandTitle":"CodeNomad","emptyState.tagline":"フォルダを選択して AI でコーディングを開始","emptyState.actions.selectFolder":"フォルダを選択","emptyState.actions.selecting":"選択中...","emptyState.keyboardShortcut":"キーボードショートカット: {shortcut}","emptyState.examples":"例: {example}","emptyState.multipleInstances":"同じフォルダのインスタンスを複数作成できます","releases.upgradeRequired.title":"アップグレードが必要です","releases.upgradeRequired.message.withVersion":"最新の UI を使うには CodeNomad {version} に更新してください。","releases.upgradeRequired.message.noVersion":"最新の UI を使うには CodeNomad を更新してください。","releases.upgradeRequired.action.getUpdate":"更新を取得","releases.uiUpdated.title":"UI を更新しました","releases.uiUpdated.message":"UI が {version} に更新されました。","releases.devUpdateAvailable.title":"開発版が利用可能","releases.devUpdateAvailable.message":"新しい開発版が利用可能です: {version}。","releases.devUpdateAvailable.action":"リリースを見る"},o={"commandPalette.title":"コマンドパレット","commandPalette.description":"コマンドを検索して実行","commandPalette.searchPlaceholder":"コマンドを入力するか検索...","commandPalette.empty":"「{query}」に一致するコマンドが見つかりません","commandPalette.category.customCommands":"カスタムコマンド","commandPalette.category.instance":"インスタンス","commandPalette.category.session":"セッション","commandPalette.category.agentModel":"エージェントとモデル","commandPalette.category.inputFocus":"入力とフォーカス","commandPalette.category.system":"システム","commandPalette.category.other":"その他","commands.newInstance.label":"新しいインスタンス","commands.newInstance.description":"フォルダ選択を開いて新しいインスタンスを作成","commands.newInstance.keywords":"フォルダ, プロジェクト, ワークスペース, folder, project, workspace","commands.closeInstance.label":"タブを閉じる","commands.closeInstance.description":"現在のトップレベルタブを閉じる","commands.closeInstance.keywords":"閉じる, タブ, stop, quit, close","commands.nextInstance.label":"次のタブ","commands.nextInstance.description":"次のトップレベルタブへ切り替え","commands.nextInstance.keywords":"切り替え, 移動, タブ, switch, navigate","commands.previousInstance.label":"前のタブ","commands.previousInstance.description":"前のトップレベルタブへ切り替え","commands.previousInstance.keywords":"切り替え, 移動, タブ, switch, navigate","commands.newSession.label":"新しいセッション","commands.newSession.description":"新しい親セッションを作成","commands.newSession.keywords":"作成, 開始, create, start","commands.closeSession.label":"セッションを閉じる","commands.closeSession.description":"現在の親セッションを閉じる","commands.closeSession.keywords":"閉じる, 停止, close, stop","commands.scrubSessions.label":"セッションを整理","commands.scrubSessions.description":"空のセッション、主要タスクを完了したサブエージェントのセッション、不要なフォークされたセッションを削除します。","commands.scrubSessions.keywords":"整理, クリーンアップ, 空, セッション, 削除, cleanup, blank, empty, sessions, remove, delete, scrub","commands.instanceInfo.label":"インスタンス情報","commands.instanceInfo.description":"ログと状態のインスタンス概要を開く","commands.instanceInfo.keywords":"情報, ログ, コンソール, 出力, info, logs, console, output","commands.nextSession.label":"次のセッション","commands.nextSession.description":"次のセッションタブへ切り替え","commands.nextSession.keywords":"切り替え, 移動, switch, navigate","commands.previousSession.label":"前のセッション","commands.previousSession.description":"前のセッションタブへ切り替え","commands.previousSession.keywords":"切り替え, 移動, switch, navigate","commands.compactSession.label":"セッションをコンパクト化","commands.compactSession.description":"現在のセッションを要約して圧縮","commands.compactSession.keywords":"要約, 圧縮, summarize, compress","commands.compactSession.errorFallback":"セッションのコンパクト化に失敗しました","commands.compactSession.alert.title":"コンパクト化に失敗","commands.compactSession.alert.message":"コンパクト化に失敗しました: {message}","commands.undoLastMessage.label":"直前のメッセージを取り消す","commands.undoLastMessage.description":"直前のメッセージへ戻す","commands.undoLastMessage.keywords":"取り消し, 戻す, revert, undo","commands.undoLastMessage.none.title":"取り消せる操作がありません","commands.undoLastMessage.none.message":"取り消すものがありません","commands.undoLastMessage.failed.title":"取り消しに失敗","commands.undoLastMessage.failed.message":"メッセージを戻せませんでした","commands.openModelSelector.label":"モデルセレクターを開く","commands.openModelSelector.description":"別のモデルを選択","commands.openModelSelector.keywords":"モデル, LLM, AI, model, llm, ai","commands.selectModelVariant.label":"モデルバリアントを選択","commands.selectModelVariant.description":"現在のモデルの思考量を選択","commands.selectModelVariant.keywords":"バリアント, 思考, 推論, 努力, variant, thinking, reasoning, effort","commands.openAgentSelector.label":"エージェントセレクターを開く","commands.openAgentSelector.description":"別のエージェントを選択","commands.openAgentSelector.keywords":"エージェント, モード, agent, mode","commands.clearInput.label":"入力をクリア","commands.clearInput.description":"プロンプト入力欄をクリア","commands.clearInput.keywords":"クリア, リセット, clear, reset","commands.promptSubmitShortcut.label.default":"Enter: 改行, Cmd/Ctrl+Enter: プロンプト送信","commands.promptSubmitShortcut.label.swapped":"Enter: プロンプト送信, Cmd/Ctrl+Enter: 改行","commands.promptSubmitShortcut.description":"プロンプト入力で Enter と Cmd/Ctrl+Enter の動作を入れ替え","commands.promptSubmitShortcut.keywords":"enter, 送信, 改行, ショートカット, cmd, ctrl, プロンプト","commands.thinkingBlocks.label.show":"思考を表示","commands.thinkingBlocks.label.hide":"思考を非表示","commands.thinkingBlocks.description":"AI の思考セクションを表示/非表示","commands.thinkingBlocks.keywords":"思考, 推論, 切り替え, 表示, 非表示, thinking, reasoning, toggle, show, hide","commands.timelineToolCalls.label.show":"タイムラインのツールコールを表示","commands.timelineToolCalls.label.hide":"タイムラインのツールコールを非表示","commands.timelineToolCalls.description":"メッセージタイムラインのツールコール表示を切り替え","commands.timelineToolCalls.keywords":"タイムライン, ツール, 切り替え, timeline, tool, toggle","commands.keyboardShortcutHints.label.show":"キーボードショートカットのヒントを表示","commands.keyboardShortcutHints.label.hide":"キーボードショートカットのヒントを非表示","commands.keyboardShortcutHints.description":"UI 全体のキーボードショートカットヒントを表示/非表示","commands.keyboardShortcutHints.description.disabledWeb":"WebUI では無効(ヒントは常に非表示)","commands.keyboardShortcutHints.keywords":"ショートカット, キーボード, ヒント, shortcuts, keyboard, hints","commands.common.expanded":"展開","commands.common.collapsed":"折りたたみ","commands.common.visible":"表示","commands.common.hidden":"非表示","commands.common.enabled":"有効","commands.common.disabled":"無効","commands.thinkingBlocksDefault.label":"思考ビュー: {state}","commands.thinkingBlocksDefault.description":"表示中は AI の思考セクションを折りたたみ / 展開","commands.thinkingBlocksDefault.keywords":"思考, 推論, 展開, 折りたたみ, 既定, thinking, reasoning, expand, collapse, default","commands.diffViewSplit.label":"分割 diff 表示を使用","commands.diffViewSplit.description":"ツールコールの diff を左右に並べて表示","commands.diffViewSplit.keywords":"diff, 分割, 表示, split, view","commands.diffViewUnified.label":"ユニファイド diff 表示を使用","commands.diffViewUnified.description":"ツールコールの diff をインラインで表示","commands.diffViewUnified.keywords":"diff, ユニファイド, 表示, unified, view","commands.toolOutputsDefault.label":"ツール出力の既定 · {state}","commands.toolOutputsDefault.description":"ツール出力を既定で展開するか切り替え","commands.toolOutputsDefault.keywords":"ツール, 出力, 展開, 折りたたみ, tool, output, expand, collapse","commands.diagnosticsDefault.label":"診断の既定 · {state}","commands.diagnosticsDefault.description":"診断出力を既定で展開するか切り替え","commands.diagnosticsDefault.keywords":"診断, 展開, 折りたたみ, diagnostics, expand, collapse","commands.toolInputsVisibility.label":"ツール入力の表示 · {state}","commands.toolInputsVisibility.description":"ツール呼び出しの入力引数の既定の表示状態を設定します","commands.toolInputsVisibility.keywords":"ツール, 入力, 引数, 表示, 非表示, 展開, 折りたたみ, tool, inputs, arguments, visibility, hide, show, expand, collapse","commands.tokenUsageDisplay.label":"トークン使用量表示 · {state}","commands.tokenUsageDisplay.description":"アシスタントメッセージのトークン/コスト統計を表示/非表示","commands.tokenUsageDisplay.keywords":"トークン, 使用量, コスト, 統計, token, usage, cost, stats","commands.autoCleanupBlankSessions.label":"空セッションの自動クリーンアップ · {state}","commands.autoCleanupBlankSessions.description":"新しいセッション作成時に空のセッションを自動的に整理","commands.autoCleanupBlankSessions.keywords":"自動, クリーンアップ, 空, セッション, 切り替え, auto, cleanup, blank, sessions, toggle","commands.showHelp.label":"ヘルプを表示","commands.showHelp.description":"キーボードショートカットとヘルプを表示","commands.showHelp.keywords":"ショートカット, ヘルプ, shortcuts, help","commands.custom.argumentsPrompt.message":"/{name} の引数","commands.custom.argumentsPrompt.title":"カスタムコマンド","commands.custom.argumentsPrompt.inputLabel":"引数","commands.custom.argumentsPrompt.inputPlaceholder":"例: foo bar","commands.custom.argumentsPrompt.confirmLabel":"実行","commands.custom.argumentsPrompt.cancelLabel":"キャンセル","commands.custom.argumentsPrompt.openFailed.message":"引数入力を開けませんでした。","commands.custom.argumentsPrompt.openFailed.title":"コマンド引数","commands.custom.entries.descriptionFallback":"カスタムコマンド","commands.custom.sessionRequired.message":"カスタムコマンドを実行する前にセッションを選択してください。","commands.custom.sessionRequired.title":"セッションが必要です","commands.custom.runFailed.message":"カスタムコマンドの実行に失敗しました。詳細はコンソールを確認してください。","commands.custom.runFailed.title":"コマンドの実行に失敗","unifiedPicker.loading.searching":"検索中...","unifiedPicker.loading.loadingWorkspace":"ワークスペースを読み込み中...","unifiedPicker.title.command":"コマンドを選択","unifiedPicker.title.mention":"エージェントまたはファイルを選択","unifiedPicker.empty":"結果が見つかりません","unifiedPicker.sections.commands":"コマンド","unifiedPicker.sections.agents":"エージェント","unifiedPicker.sections.files":"ファイル","unifiedPicker.badge.subagent":"サブエージェント","unifiedPicker.footer.navigate":"移動","unifiedPicker.footer.select":"選択","unifiedPicker.footer.close":"閉じる"},i={"alertDialog.fallbackTitle.info":"お知らせ","alertDialog.fallbackTitle.warning":"ご確認ください","alertDialog.fallbackTitle.error":"問題が発生しました","alertDialog.actions.confirm":"確認","alertDialog.actions.run":"実行","alertDialog.actions.ok":"OK","alertDialog.actions.cancel":"キャンセル","alertDialog.prompt.inputLabel":"入力","backgroundProcessOutputDialog.title":"バックグラウンド出力","backgroundProcessOutputDialog.actions.close":"閉じる","backgroundProcessOutputDialog.loading":"出力を読み込み中...","backgroundProcessOutputDialog.truncatedNotice":"表示のため出力を省略しました。","backgroundProcessOutputDialog.loadErrorFallback":"出力の読み込みに失敗しました。"},n={"directoryBrowser.defaultDescription":"設定された workspace ルート配下のフォルダを参照します。","directoryBrowser.close":"閉じる","directoryBrowser.currentFolder":"フォルダを選択またはパスを入力","directoryBrowser.currentFolder.inputAriaLabel":"フォルダのパス","directoryBrowser.currentFolder.inputPlaceholder":"フォルダパスを入力または貼り付け","directoryBrowser.openCurrent":"開く","directoryBrowser.selectCurrent":"現在のフォルダを選択","directoryBrowser.newFolder":"新しいフォルダ","directoryBrowser.creating":"作成中…","directoryBrowser.loadingFolders":"フォルダを読み込み中…","directoryBrowser.noFolders":"利用可能なフォルダがありません。","directoryBrowser.upOneLevel":"1 つ上へ","directoryBrowser.select":"選択","directoryBrowser.load.errorFallback":"ファイルシステムを読み込めません","directoryBrowser.createFolder.promptMessage":"現在のディレクトリに新しいフォルダを作成します。","directoryBrowser.createFolder.title":"新しいフォルダ","directoryBrowser.createFolder.inputLabel":"フォルダ名","directoryBrowser.createFolder.inputPlaceholder":"例: my-new-project","directoryBrowser.createFolder.confirmLabel":"作成","directoryBrowser.createFolder.cancelLabel":"キャンセル","directoryBrowser.createFolder.invalidNameMessage":"フォルダ名を 1 つだけ入力してください。","directoryBrowser.createFolder.invalidNameDetail":"フォルダ名にスラッシュ、'..'、'~' を含めることはできません。","directoryBrowser.createFolder.errorFallback":"フォルダを作成できません","filesystemBrowser.descriptionFallback":"設定された workspace ルート配下のパスを検索します。","filesystemBrowser.rootLabel":"ルート: {root}","filesystemBrowser.actions.close":"閉じる","filesystemBrowser.actions.retry":"再試行","filesystemBrowser.actions.select":"選択","filesystemBrowser.filterLabel":"フィルター","filesystemBrowser.search.placeholder.directories":"フォルダを検索","filesystemBrowser.search.placeholder.files":"ファイルを検索","filesystemBrowser.currentFolder.label":"現在のフォルダ","filesystemBrowser.currentFolder.selectCurrent":"現在のフォルダを選択","filesystemBrowser.loading.filesystem":"ファイルシステム","filesystemBrowser.loading.workspaceRoot":"workspace ルート","filesystemBrowser.loading.loadingWithPath":"{path} を読み込み中…","filesystemBrowser.empty.noEntries":"項目が見つかりません。","filesystemBrowser.navigation.upOneLevel":"1 つ上へ","filesystemBrowser.hints.navigate":"移動","filesystemBrowser.hints.select":"選択","filesystemBrowser.hints.close":"閉じる","filesystemBrowser.errors.loadFilesystemFallback":"ファイルシステムを読み込めません","filesystemBrowser.errors.openDirectoryFallback":"ディレクトリを開けません"},a={"folderSelection.language.ariaLabel":"言語","folderSelection.logoAlt":"CodeNomad ロゴ","folderSelection.tagline":"フォルダを選択して AI でコーディングを開始","folderSelection.links.github":"CodeNomad の GitHub","folderSelection.links.githubStars":"CodeNomad の GitHub スター","folderSelection.links.discord":"CodeNomad の Discord","folderSelection.empty.title":"最近使ったフォルダはありません","folderSelection.empty.description":"フォルダを選択して開始","folderSelection.recent.title":"最近使ったフォルダ","folderSelection.recent.subtitle.one":"{count} 件のフォルダ","folderSelection.recent.subtitle.other":"{count} 件のフォルダ","folderSelection.recent.remove":"履歴から削除","folderSelection.browse.title":"フォルダを参照","folderSelection.browse.subtitle":"コンピュータ上の任意のフォルダを選択","folderSelection.browse.button":"フォルダを参照","folderSelection.browse.buttonOpening":"開いています...","folderSelection.actions.title":"フォルダを開くかサーバーに接続","folderSelection.actions.subtitle":"ローカルフォルダを開くか CodeNomad サーバーに接続します","folderSelection.actions.connectButton":"CodeNomad サーバーに接続","folderSelection.advancedSettings":"詳細設定","folderSelection.opencode":"OpenCode","folderSelection.hints.navigate":"移動","folderSelection.hints.select":"選択","folderSelection.hints.remove":"削除","folderSelection.hints.browse":"参照","folderSelection.loading.title":"インスタンスを起動中...","folderSelection.loading.subtitle":"ワークスペースを準備しています。しばらくお待ちください。","folderSelection.drop.title":"フォルダをドロップして開く","folderSelection.drop.subtitle":"ドロップしたフォルダで新しいインスタンスを開始します。","folderSelection.drop.invalidTitle":"ドロップした項目を開けませんでした","folderSelection.drop.invalidMessage":"新しいインスタンスを開始するにはフォルダをドロップしてください。","folderSelection.dialog.title":"ワークスペースを選択","folderSelection.dialog.description":"コーディングを開始するワークスペースを選択してください。","folderSelection.tabs.local":"ローカルフォルダ","folderSelection.tabs.servers":"サーバー","folderSelection.servers.title":"保存済みサーバー","folderSelection.servers.subtitle":"保存したリモート CodeNomad サーバーを新しいウィンドウで開きます","folderSelection.servers.count":"{count} サーバー","folderSelection.servers.empty.title":"保存済みサーバーはありません","folderSelection.servers.empty.description":"この端末からすばやく再接続できるように、リモートサーバーを追加してください","folderSelection.servers.connectTitle":"サーバーに接続","folderSelection.servers.connectSubtitle":"リモート CodeNomad サーバーを保存して新しいウィンドウで開きます","folderSelection.servers.connectButton":"サーバーに接続","folderSelection.servers.remove":"保存したサーバーを削除","folderSelection.servers.skipTls":"自己署名 TLS","folderSelection.servers.errorTitle":"リモート接続に失敗しました","folderSelection.servers.dialog.title":"サーバーに接続","folderSelection.servers.dialog.description":"リモート CodeNomad サーバーを追加し、必要に応じてすぐに開きます。","folderSelection.servers.dialog.name":"サーバー名","folderSelection.servers.dialog.namePlaceholder":"本番サーバー","folderSelection.servers.dialog.url":"サーバー URL","folderSelection.servers.dialog.urlPlaceholder":"https://server.example.com","folderSelection.servers.dialog.skipTls":"自己署名証明書の TLS 検証をスキップします。","folderSelection.servers.dialog.cancel":"キャンセル","folderSelection.servers.dialog.save":"保存","folderSelection.servers.dialog.connect":"接続","folderSelection.servers.dialog.connecting":"接続中...","folderSelection.servers.dialog.errorRequired":"サーバー名と URL は必須です。","folderSelection.servers.dialog.errorConnect":"リモートサーバーに接続できませんでした。","folderSelection.servers.certificateInstall.title":"ローカル証明書をインストール","folderSelection.servers.certificateInstall.confirmMessage":"CodeNomad は自己署名 HTTPS のリモートウィンドウを開くために、ローカル証明書をインストールする必要があります。この証明書は、このマシン上のローカルデスクトッププロキシ通信にのみ使用されます。この後、OS が追加の証明書プロンプトを表示する場合があります。","folderSelection.servers.certificateInstall.confirmLabel":"続行","folderSelection.servers.certificateInstall.cancelLabel":"キャンセル","folderSelection.servers.certificateInstall.cancelled":"自己署名 HTTPS のリモートウィンドウを開くには、CodeNomad のローカル証明書を信頼する必要があります。","folderSelection.sidecars.button":"Open SideCar"},l={"instanceTabs.new.title":"新しいインスタンス (Cmd/Ctrl+N)","instanceTabs.new.ariaLabel":"新しいインスタンス","instanceTabs.remote.title":"リモート接続","instanceTabs.remote.ariaLabel":"リモート接続","instanceInfo.title":"インスタンス情報","instanceInfo.labels.folder":"フォルダ","instanceInfo.labels.project":"プロジェクト","instanceInfo.labels.versionControl":"バージョン管理","instanceInfo.labels.opencodeVersion":"OpenCode バージョン","instanceInfo.labels.binaryPath":"バイナリのパス","instanceInfo.labels.environmentVariables":"環境変数 ({count})","instanceInfo.loading":"読み込み中...","instanceInfo.server.title":"サーバー","instanceInfo.server.port":"ポート:","instanceInfo.server.pid":"PID:","instanceInfo.server.status":"状態:","instanceTab.status.permission":"許可待ち","instanceTab.status.compacting":"圧縮中","instanceTab.status.working":"作業中","instanceTab.status.idle":"待機中","instanceTab.status.ariaLabel":"インスタンス状態: {status}","instanceTab.actions.close.ariaLabel":"インスタンスを閉じる","instanceShell.leftPanel.sessionsTitle":"セッション","instanceShell.leftPanel.instanceInfo":"インスタンス情報","instanceShell.leftDrawer.pin":"左ドロワーを固定","instanceShell.leftDrawer.unpin":"左ドロワーの固定を解除","instanceShell.leftDrawer.toggle.pinned":"左ドロワーを固定しました","instanceShell.leftDrawer.toggle.open":"左ドロワーを開く","instanceShell.leftDrawer.toggle.close":"左ドロワーを閉じる","instanceShell.rightDrawer.pin":"右ドロワーを固定","instanceShell.rightDrawer.unpin":"右ドロワーの固定を解除","instanceShell.rightDrawer.toggle.pinned":"右ドロワーを固定しました","instanceShell.rightDrawer.toggle.open":"右ドロワーを開く","instanceShell.rightDrawer.toggle.close":"右ドロワーを閉じる","instanceShell.fullscreen.enter":"全画面","instanceShell.fullscreen.exit":"全画面を終了","instanceShell.metrics.usedLabel":"使用","instanceShell.metrics.availableLabel":"残り","instanceShell.commandPalette.openAriaLabel":"コマンドパレットを開く","instanceShell.commandPalette.button":"コマンドパレット","instanceShell.chatSearch.openAriaLabel":"チャット履歴を検索","instanceShell.connection.ariaLabel":"接続 {status}","instanceShell.connection.connected":"接続済み","instanceShell.connection.connecting":"接続中...","instanceShell.connection.disconnected":"切断","instanceShell.connection.unknown":"不明","instanceWelcome.shortcuts.newSession":"新しいセッション","instanceWelcome.empty.title":"以前のセッションはありません","instanceWelcome.empty.description":"下で新しいセッションを作成して開始","instanceWelcome.loading.title":"セッションを読み込み中","instanceWelcome.loading.description":"以前のセッションを取得中...","instanceWelcome.resume.title":"セッションを再開","instanceWelcome.resume.subtitle.one":"{count} 件のセッション","instanceWelcome.resume.subtitle.other":"{count} 件のセッション","instanceWelcome.session.untitled":"無題のセッション","instanceWelcome.new.title":"新しいセッションを開始","instanceWelcome.new.subtitle":"前回のエージェント/モデルを自動で再利用します","instanceWelcome.new.createButton":"セッションを作成","instanceWelcome.overlay.close":"閉じる","instanceWelcome.actions.viewInstanceInfo":"インスタンス情報を表示","instanceWelcome.actions.renameTitle":"セッション名を変更","instanceWelcome.actions.deleteTitle":"セッションを削除","instanceWelcome.hints.navigate":"移動","instanceWelcome.hints.jump":"ジャンプ","instanceWelcome.hints.firstLast":"先頭/末尾","instanceWelcome.hints.resume":"再開","instanceWelcome.hints.delete":"削除","instanceWelcome.toasts.renameError":"セッション名を変更できません","instanceDisconnected.title":"インスタンスが切断されました","instanceDisconnected.folderFallback":"このワークスペース","instanceDisconnected.reasonFallback":"サーバーが応答しなくなりました","instanceDisconnected.description":"{folder} に接続できません。作業を続けるにはタブを閉じてください。","instanceDisconnected.details.title":"詳細","instanceDisconnected.details.folderLabel":"フォルダ:","instanceDisconnected.actions.closeInstance":"インスタンスを閉じる","instanceShell.empty.title":"セッションが選択されていません","instanceShell.empty.description":"メッセージを表示するにはセッションを選択してください","instanceShell.rightPanel.title":"ステータスパネル","instanceShell.rightPanel.tabs.changes":"変更","instanceShell.rightPanel.tabs.gitChanges":"Git 変更","instanceShell.rightPanel.tabs.files":"ファイル","instanceShell.rightPanel.tabs.status":"ステータス","instanceShell.rightPanel.tabs.ariaLabel":"右パネルのタブ","instanceShell.rightPanel.actions.refresh":"更新","instanceShell.rightPanel.actions.save":"保存 (Ctrl+S)","instanceShell.rightPanel.actions.saveConfirm.message":"「{path}」への変更を切り替え前に保存しますか?","instanceShell.rightPanel.actions.saveConfirm.confirmLabel":"保存","instanceShell.rightPanel.actions.saveConfirm.cancelLabel":"変更を破棄","instanceShell.rightPanel.actions.conflict.message":"ファイルはエージェントによって変更されました。上書きしますか?","instanceShell.rightPanel.actions.conflict.confirmLabel":"上書き","instanceShell.rightPanel.actions.conflict.cancelLabel":"キャンセル","instanceShell.rightPanel.actions.refreshDirty.message":"ファイルには未保存の変更があります。更新すると編集が破棄されます。続行しますか?","instanceShell.rightPanel.actions.refreshDirty.confirmLabel":"更新","instanceShell.rightPanel.actions.refreshDirty.cancelLabel":"キャンセル","instanceShell.rightPanel.toast.saveSuccess":"ファイルを保存しました","instanceShell.rightPanel.toast.saveError":"ファイルの保存に失敗しました","instanceShell.rightPanel.sections.yoloMode":"Yoloモード","instanceShell.rightPanel.sections.yoloMode.tooltip":"現在のセッションの権限リクエストを自動承認します。実行中のツールを信頼できる場合にのみ使用してください。","instanceShell.rightPanel.sections.sessionChanges":"セッション変更","instanceShell.rightPanel.sections.sessionChanges.tooltip":"現在のセッションで変更されたファイル。各ファイルの追加と削除を表示します。","instanceShell.rightPanel.sections.plan":"計画","instanceShell.rightPanel.sections.plan.tooltip":"このセッションにおけるエージェントのロードマップ。タスクやサブタスク、および完了状況を追跡します。","instanceShell.rightPanel.sections.backgroundProcesses":"バックグラウンドシェル","instanceShell.rightPanel.sections.backgroundProcesses.tooltip":"エージェントが開始した長時間実行プロセス。出力を監視し、停止または終了できます。","instanceShell.rightPanel.sections.mcp":"MCP サーバー","instanceShell.rightPanel.sections.mcp.tooltip":"Model Context Protocol (MCP) サーバー。外部ツールやサービスでエージェントの機能を拡張します。","instanceShell.rightPanel.sections.lsp":"LSP サーバー","instanceShell.rightPanel.sections.lsp.tooltip":"Language Server Protocolサーバーがコードインテリジェンス、診断、言語固有の機能を提供します。","instanceShell.rightPanel.sections.plugins":"プラグイン","instanceShell.rightPanel.sections.plugins.tooltip":"UI とサーバーの動作をカスタマイズし、MCP や LSP 以外の機能も追加できるプラグイン。","instanceShell.sessionChanges.noSessionSelected":"変更を表示するにはセッションを選択してください。","instanceShell.sessionChanges.loading":"変更を取得中...","instanceShell.sessionChanges.empty":"まだ変更はありません。","instanceShell.sessionChanges.filesChanged":"{count} 個のファイルが変更されました","instanceShell.sessionChanges.actions.show":"変更を表示","instanceShell.gitChanges.loading":"Git の変更を読み込み中...","instanceShell.gitChanges.empty":"Git の変更はまだありません。","instanceShell.gitChanges.deleted":"削除済み","instanceShell.gitChanges.binaryViewer":"バイナリファイルは表示できません","instanceShell.gitChanges.sections.staged":"ステージ済みの変更","instanceShell.gitChanges.sections.unstaged":"変更","instanceShell.gitChanges.actions.insertContext":"プロンプトに追加","instanceShell.gitChanges.actions.stage":"ファイルをステージ","instanceShell.gitChanges.actions.unstage":"ステージ解除","instanceShell.gitChanges.commit.placeholder":"コミットメッセージを入力","instanceShell.gitChanges.commit.submit":"コミット","instanceShell.gitChanges.commit.submitting":"コミット中...","instanceShell.gitChanges.commit.success":"コミットを作成しました","instanceShell.gitChanges.commit.error":"コミットを作成できませんでした","instanceShell.filesShell.fileListTitle":"ファイル一覧","instanceShell.filesShell.mobileSelectorLabel":"ファイルを選択","instanceShell.filesShell.mobileSelectorEmpty":"ファイルを選択してください","instanceShell.filesShell.viewerTitle":"変更ビューア","instanceShell.filesShell.viewerPlaceholder":"詳細な変更表示は次のステップで追加します。","instanceShell.filesShell.viewerEmpty":"ファイルが選択されていません。","instanceShell.filesShell.listEmpty":"このフォルダーにファイルはありません。","instanceShell.filesShell.search.placeholder":"このフォルダーのファイルを絞り込む","instanceShell.filesShell.search.ariaLabel":"このフォルダーのファイルを絞り込む","instanceShell.filesShell.search.empty":"一致するファイルがありません。","instanceShell.filesShell.actions.copyPath":"パスをコピー","instanceShell.filesShell.toast.copyPathSuccess":"パスをコピーしました","instanceShell.filesShell.toast.copyPathError":"パスをコピーできませんでした","instanceShell.filesShell.previewMarkdown":"Markdown プレビュー","instanceShell.filesShell.showSource":"ソースを表示","instanceShell.filesShell.enableWordWrap":"折り返しを有効化","instanceShell.filesShell.disableWordWrap":"折り返しを無効化","instanceShell.plan.noSessionSelected":"計画を表示するにはセッションを選択してください。","instanceShell.plan.empty":"まだ計画はありません。","instanceShell.yoloMode.noSessionSelected":"Yoloモードを設定するにはセッションを選択してください。","instanceShell.yoloMode.title":"Yoloモード","instanceShell.yoloMode.description":"このセッションの権限リクエストを自動承認します。デフォルトでは無効です。","instanceShell.yoloMode.badge":"Yolo","instanceShell.yoloMode.badgeAriaLabel":"Yoloモードが有効","instanceShell.backgroundProcesses.empty":"バックグラウンドプロセスはありません。","instanceShell.backgroundProcesses.status":"状態: {status}","instanceShell.backgroundProcesses.output":"出力: {sizeKb}KB","instanceShell.backgroundProcesses.notify.enabled":"完了通知が有効","instanceShell.backgroundProcesses.notify.disabled":"完了通知が無効","instanceShell.backgroundProcesses.actions.output":"出力","instanceShell.backgroundProcesses.actions.stop":"停止","instanceShell.backgroundProcesses.actions.terminate":"終了","instanceShell.worktree.delete.error.title":"削除に失敗しました","instanceShell.worktree.delete.error.fallback":"worktree の削除に失敗しました","instanceShell.worktree.delete.error.causeLabel":"考えられる原因:","instanceShell.worktree.delete.error.nextStepLabel":"推奨される次の手順:","instanceShell.worktree.delete.error.summary.localChanges":"この worktree に変更済みまたは未追跡のファイルがあるため、Git が削除を拒否しました。","instanceShell.worktree.delete.error.summary.inUse":"このディレクトリ内のファイルがまだ使用中のため、CodeNomad はこの worktree を削除できませんでした。","instanceShell.worktree.delete.error.summary.notFound":"ディレクトリまたは worktree レコードが見つからなかったため、CodeNomad はこの worktree を削除できませんでした。","instanceShell.worktree.delete.error.summary.permissionDenied":"ディレクトリへのアクセスが拒否されたため、CodeNomad はこの worktree を削除できませんでした。","instanceShell.worktree.delete.error.summary.unknown":"CodeNomad はこの worktree を削除できませんでした。","instanceShell.worktree.delete.error.cause.localChanges":"ローカル変更","instanceShell.worktree.delete.error.cause.inUse":"別のプロセスがこの worktree を使用中です","instanceShell.worktree.delete.error.cause.notFound":"worktree のディレクトリまたは記録が見つかりません","instanceShell.worktree.delete.error.cause.permissionDenied":"ファイルシステム権限が不足しています","instanceShell.worktree.delete.error.cause.unknown":"バックエンドが分類できない削除エラーを返しました","instanceShell.worktree.delete.error.nextStep.localChanges":"ローカル変更を破棄したい場合は Force delete を有効にするか、worktree を整理してから再試行してください。","instanceShell.worktree.delete.error.nextStep.inUse":"この worktree を使用している端末、エディタ、watcher、バックグラウンドプロセスを閉じてから再試行してください。","instanceShell.worktree.delete.error.nextStep.notFound":"worktree 一覧を更新して再試行してください。まだ失敗する場合は、ディスク上の worktree パスを確認してください。","instanceShell.worktree.delete.error.nextStep.permissionDenied":"ファイルシステム権限を確認し、このディレクトリをロックしている可能性のあるアプリを閉じてから再試行してください。","instanceShell.worktree.delete.error.nextStep.unknown":"下の生エラーで詳細を確認し、報告された問題に対処してから再試行してください。","instanceShell.worktree.delete.error.copyRaw":"エラーをコピー","instanceShell.worktree.delete.error.copySanitized":"サニタイズ済みをコピー","instanceShell.worktree.delete.error.copySuccess":"削除エラーをコピーしました","instanceShell.worktree.delete.error.copySanitizedSuccess":"サニタイズ済みの削除エラーをコピーしました","instanceShell.worktree.delete.error.copyFailure":"削除エラーをコピーできませんでした","versionPill.appWithVersion":"アプリ {version}","versionPill.ui":"UI","versionPill.uiWithVersion":"UI {version}","versionPill.source":" ({source})","opencodeBinarySelector.title":"OpenCode バイナリ","opencodeBinarySelector.subtitle":"OpenCode を実行する実行ファイルを選択","opencodeBinarySelector.customPath.placeholder":"opencode バイナリのパスを入力…","opencodeBinarySelector.actions.add":"追加","opencodeBinarySelector.actions.browse":"バイナリを参照…","opencodeBinarySelector.actions.removeTitle":"バイナリを削除","opencodeBinarySelector.badge.systemPath":"system PATH のバイナリを使用","opencodeBinarySelector.status.checkingVersions":"バージョンを確認中…","opencodeBinarySelector.status.checking":"確認中…","opencodeBinarySelector.dialog.title":"OpenCode バイナリを選択","opencodeBinarySelector.dialog.description":"CLI サーバーから公開されているファイルを参照します。","opencodeBinarySelector.validation.invalidBinary":"OpenCode バイナリが無効です","opencodeBinarySelector.validation.alreadyValidating":"すでに検証中です","opencodeBinarySelector.display.systemPath":"{name} (system PATH)","opencodeBinarySelector.versionLabel":"v{version}"},r={"loadingScreen.logoAlt":"CodeNomad ロゴ","loadingScreen.status.issue":"問題が発生しました","loadingScreen.actions.showAnother":"別のメッセージを表示","loadingScreen.errors.missingRoot":"読み込み用のルート要素が見つかりません","loadingScreen.phrases.neurons":"AI のニューロンをウォームアップ中…","loadingScreen.phrases.daydreaming":"AI に空想をやめるよう説得中…","loadingScreen.phrases.goggles":"AI のコード用ゴーグルを磨き中…","loadingScreen.phrases.reorganizingFiles":"AI にファイル整理をやめるようお願い中…","loadingScreen.phrases.coffee":"AI に追いコーヒーを投入中…","loadingScreen.phrases.nodeModules":"AI に node_modules を(また)消さないよう教え中…","loadingScreen.phrases.actNatural":"到着前に自然に振る舞うよう AI に指示中…","loadingScreen.phrases.rewritingHistory":"履歴を書き換えないよう AI にお願い中…","loadingScreen.phrases.stretch":"コーディングスプリント前に AI をストレッチさせています…","loadingScreen.phrases.keyboardControl":"AI にキーボードの主導権を渡すよう説得中…"},c={"logsView.title":"サーバーログ","logsView.actions.show":"サーバーログを表示","logsView.actions.hide":"サーバーログを非表示","logsView.envVars.title":"環境変数 ({count})","logsView.paused.title":"サーバーログは一時停止中です","logsView.paused.description":"ストリーミングを有効にして OpenCode サーバーの動作を監視します。","logsView.empty.waiting":"サーバー出力を待機中...","logsView.scrollToBottom":"最下部へスクロール","infoView.logs.title":"サーバーログ","infoView.logs.actions.show":"サーバーログを表示","infoView.logs.actions.hide":"サーバーログを非表示","infoView.logs.paused.title":"サーバーログは一時停止中です","infoView.logs.paused.description":"ストリーミングを有効にして OpenCode サーバーの動作を監視します。","infoView.logs.empty.waiting":"サーバー出力を待機中...","infoView.logs.scrollToBottom":"最下部へスクロール","infoView.dispose.actions.dispose":"インスタンスを破棄","infoView.dispose.actions.disposing":"破棄しています...","infoView.dispose.confirm.title":"インスタンスを破棄しますか?","infoView.dispose.confirm.message":"このディレクトリのプロジェクト状態キャッシュをクリアし、インスタンスを再読み込みします。","infoView.dispose.confirm.confirmLabel":"破棄","infoView.dispose.confirm.cancelLabel":"キャンセル","infoView.dispose.toast.success":"インスタンスを破棄しました。再読み込み中...","infoView.dispose.toast.error":"インスタンスの破棄に失敗しました。"},d={"markdown.codeBlock.copy.label":"コピー","markdown.codeBlock.copy.copied":"コピーしました!","markdown.codeBlock.copy.failed":"失敗","markdown.copy":"コピー"},m={"messageListHeader.sidebar.openSessionListAriaLabel":"セッション一覧を開く","messageListHeader.metrics.usedLabel":"使用","messageListHeader.metrics.availableLabel":"残り","messageListHeader.commandPalette.ariaLabel":"コマンドパレットを開く","messageListHeader.commandPalette.button":"コマンドパレット","messageListHeader.connection.connected":"接続済み","messageListHeader.connection.connecting":"接続中...","messageListHeader.connection.disconnected":"切断","messageSection.empty.logoAlt":"CodeNomad ロゴ","messageSection.empty.brandTitle":"CodeNomad","messageSection.empty.title":"会話を始める","messageSection.empty.description":"下にメッセージを入力するか、コマンドパレットを開いてください:","messageSection.empty.tips.commandPalette":"コマンドパレット","messageSection.empty.tips.askAboutCodebase":"コードベースについて質問","messageSection.empty.tips.attachFilesPrefix":"次でファイルを添付:","messageSection.loading.messages":"メッセージを読み込み中...","messageSection.scroll.toFirstAriaLabel":"最初のメッセージへスクロール","messageSection.scroll.toLatestAriaLabel":"最新のメッセージへスクロール","messageSection.scroll.enableHoldAriaLabel":"長いアシスタント返信の保持を有効にする","messageSection.scroll.disableHoldAriaLabel":"長いアシスタント返信の保持を無効にする","messageSection.quote.addAsQuote":"引用として追加","messageSection.quote.addAsCode":"コードとして追加","messageSection.quote.copy":"コピー","messageSection.quote.copied":"コピーしました","messageSection.quote.copyFailed":"コピーできませんでした","messageSection.search.ariaLabel":"チャット履歴を検索","messageSection.search.placeholder":"現在のチャットを検索...","messageSection.search.count.empty":"検索","messageSection.search.count.minChars":"{count}文字以上","messageSection.search.count.searching":"検索中...","messageSection.search.count.none":"一致なし","messageSection.search.count.matches":"{current} / {total}","messageSection.search.previousAriaLabel":"前の一致","messageSection.search.nextAriaLabel":"次の一致","messageSection.search.closeAriaLabel":"検索を閉じる","messageSection.search.searching":"検索中...","messageSection.search.noVisibleMatches":"表示中の一致はありません","messageTimeline.ariaLabel":"メッセージタイムライン","messageTimeline.segment.user.label":"あなた","messageTimeline.segment.assistant.label":"AI","messageTimeline.segment.compaction.label":"圧縮","messageTimeline.tool.fallbackLabel":"ツールコール","messageTimeline.tooltip.userFallback":"ユーザーのメッセージ","messageTimeline.tooltip.assistantFallback":"アシスタントの応答","messageTimeline.tooltip.compaction.auto":"自動コンパクト化","messageTimeline.tooltip.compaction.manual":"手動コンパクト化","messageTimeline.text.filePrefix":"[ファイル] {filename}","messageTimeline.text.attachment":"添付","messageBlock.tool.header":"ツールコール","messageBlock.tool.unknown":"不明","messageBlock.tool.goToSession.label":"セッションへ移動","messageBlock.tool.goToSession.title":"セッションへ移動","messageBlock.tool.goToSession.unavailableTitle":"セッションはまだ利用できません","messageBlock.tool.deletePart.label":"パートを削除","messageBlock.tool.deletePart.deleting":"削除中...","messageBlock.tool.deletePart.title":"このツール出力を削除","messageBlock.tool.deletePart.failed.title":"削除に失敗しました","messageBlock.tool.deletePart.failed.message":"ツール出力の削除に失敗しました","messageBlock.compaction.ariaLabel":"セッションのコンパクト化","messageBlock.compaction.autoLabel":"セッションを自動でコンパクト化しました","messageBlock.compaction.manualLabel":"セッションをあなたがコンパクト化しました","messageBlock.usage.input":"入力","messageBlock.usage.output":"出力","messageBlock.usage.reasoning":"推論","messageBlock.usage.cacheRead":"キャッシュ読み込み","messageBlock.usage.cacheWrite":"キャッシュ書き込み","messageBlock.usage.cost":"コスト","messageBlock.step.agentLabel":"エージェント: {agent}","messageBlock.step.modelLabel":"モデル: {model}","messageBlock.reasoning.thinkingLabel":"思考","messageBlock.reasoning.expandAriaLabel":"思考を展開","messageBlock.reasoning.collapseAriaLabel":"思考を折りたたむ","messageBlock.reasoning.indicator.hide":"非表示","messageBlock.reasoning.indicator.view":"表示","messageBlock.reasoning.detailsAriaLabel":"推論の詳細","codeBlockInline.actions.copy":"コピー","codeBlockInline.actions.copied":"コピーしました!","messageItem.speaker.you":"あなた","messageItem.speaker.assistant":"アシスタント","messageItem.actions.revert":"戻す","messageItem.actions.revertTitle":"ここまでの変更を元に戻す(メッセージを削除)","messageItem.actions.fork":"フォーク","messageItem.actions.forkTitle":"このメッセージからフォーク","messageItem.actions.copy":"コピー","messageItem.actions.copyTitle":"メッセージをコピー","messageItem.actions.copied":"コピーしました!","messageItem.actions.speak":"メッセージを読み上げ","messageItem.actions.generatingSpeech":"音声を生成中","messageItem.actions.stopSpeech":"再生を停止","messageItem.actions.speak.error.title":"音声再生に失敗しました","messageItem.actions.speak.error.unsupported":"このブラウザでは音声再生に対応していません。","messageItem.actions.speak.error.unavailable":"音声設定が完了するまで音声再生は利用できません。","messageItem.actions.speak.error.generate":"このメッセージの音声を生成できませんでした。","messageItem.actions.deleteMessage":"メッセージを削除(変更は元に戻さない)","messageItem.actions.deleteMessagesUpTo":"ここまでのメッセージを削除(変更は元に戻さない)","messageItem.actions.deletingMessage":"削除中...","messageItem.actions.deleteMessageFailedTitle":"削除に失敗しました","messageItem.actions.deleteMessageFailedMessage":"メッセージの削除に失敗しました","messageItem.selection.checkboxAriaLabel":"削除するメッセージを選択","messageSection.bulkDelete.toolbarAriaLabel":"選択した項目({count})","messageSection.bulkDelete.deleteSelectedTitle":"選択した項目を削除","messageSection.bulkDelete.selectAllTitle":"すべて選択","messageSection.bulkDelete.moreOptionsTitle":"その他のオプション","messageSection.bulkDelete.selectionModeLabel":"選択","messageSection.bulkDelete.selectionModeAll":"すべて","messageSection.bulkDelete.selectionModeTools":"ツールのみ","messageSection.bulkDelete.selectionHint.toggle":"項目を選択","messageSection.bulkDelete.selectionHint.range":"範囲を選択","messageSection.bulkDelete.selectionHint.clear":"選択を解除","messageSection.bulkDelete.cancelTitle":"選択をキャンセル","messageSection.bulkDelete.failedTitle":"削除に失敗しました","messageSection.bulkDelete.failedMessage":"選択した項目の削除に失敗しました","messageItem.status.queued":"待機中","messageItem.status.generating":"生成中...","messageItem.status.sending":"送信中...","messageItem.status.failedToSend":"メッセージの送信に失敗しました","messagePart.actions.delete":"パートを削除","messagePart.actions.deleting":"削除中...","messagePart.actions.deleteTitle":"この項目を削除","messagePart.actions.deleteFailedTitle":"削除に失敗しました","messagePart.actions.deleteFailedMessage":"項目の削除に失敗しました","messageItem.attachment.defaultName":"添付ファイル","messageItem.attachment.downloadAriaLabel":"{name} をダウンロード","messageItem.agentMeta.agentLabel":"エージェント: {agent}","messageItem.agentMeta.modelLabel":"モデル: {model}","messageItem.errors.authenticationFallback":"認証エラー","messageItem.errors.outputLengthExceeded":"メッセージ出力が長すぎます","messageItem.errors.requestAborted":"リクエストが中断されました","messageItem.errors.unknownFallback":"不明なエラーが発生しました","attachmentChip.removeAriaLabel":"添付を削除","expandButton.toggleAriaLabel":"チャット入力欄の高さを切り替え","promptInput.placeholder.shell":"シェルコマンドを実行 (Esc で終了)...","promptInput.placeholder.default":"メッセージ、@file、@agent を入力、または画像/テキストを貼り付け...","promptInput.hints.shell.exit":"でシェルモードを終了","promptInput.hints.shell.enable":"シェルモード","promptInput.hints.commands":"コマンド","promptInput.history.previousAriaLabel":"前のプロンプト","promptInput.history.nextAriaLabel":"次のプロンプト","promptInput.overlay.newLine":"改行","promptInput.overlay.send":"送信","promptInput.overlay.filesAgents":"ファイル/エージェント","promptInput.overlay.history":"履歴","promptInput.overlay.attachments":"• {count} 件のファイルを添付","promptInput.overlay.shellModeActive":"シェルモードが有効","promptInput.overlay.press":"押す","promptInput.overlay.againToAbort":"もう一度押すとセッションを中断","promptInput.stopSession.ariaLabel":"セッションを停止","promptInput.stopSession.title":"セッションを停止","promptInput.clear.ariaLabel":"プロンプトのテキストをクリア","promptInput.clear.title":"プロンプトのテキストをクリア","promptInput.send.ariaLabel":"メッセージを送信","promptInput.send.errorFallback":"メッセージの送信に失敗しました","promptInput.send.errorTitle":"送信に失敗","promptInput.conversationMode.enable.title":"会話モードを有効化","promptInput.conversationMode.disable.title":"会話モードを無効化","promptInput.conversationMode.error.title":"会話の読み上げに失敗しました","promptInput.conversationMode.error.message":"アシスタントの返信の読み上げを続行できませんでした。","promptInput.voiceInput.start.title":"音声入力を開始","promptInput.voiceInput.stop.title":"録音を停止して文字起こし","promptInput.voiceInput.transcribing.title":"音声を文字起こし中","promptInput.voiceInput.error.title":"音声入力に失敗しました","promptInput.voiceInput.error.permission":"音声入力を録音するにはマイクへのアクセスが必要です。","promptInput.voiceInput.error.permissionDenied":"macOS によりマイクへのアクセスが拒否されました。","promptInput.voiceInput.error.unsupported":"このブラウザーでは音声入力はサポートされていません。","promptInput.voiceInput.error.transcribe":"録音した音声を文字起こしできませんでした。"},p={"remoteAccess.eyebrow":"リモート引き継ぎ","remoteAccess.title":"CodeNomad にリモート接続","remoteAccess.subtitle":"別のデバイスから CodeNomad を開くには、以下のアドレスを使用してください。","remoteAccess.close":"リモートアクセスを閉じる","remoteAccess.refresh":"更新","remoteAccess.sections.listeningMode.label":"リッスンモード","remoteAccess.sections.listeningMode.help":"全インターフェースにバインドするか localhost のみにするかで、リモート引き継ぎを許可/制限します。","remoteAccess.toggle.on":"オン","remoteAccess.toggle.off":"オフ","remoteAccess.toggle.title":"他の IP からの接続を許可","remoteAccess.toggle.caption.all":"0.0.0.0 にバインド","remoteAccess.toggle.caption.local":"127.0.0.1 にバインド","remoteAccess.toggle.note":"変更には再起動が必要で、すべての稼働中インスタンスが一時的に停止します。サーバー再起動後に以下のアドレスを共有してください。","remoteAccess.listeningMode.restartConfirm.message":"リッスンモードを適用するため再起動しますか?実行中のインスタンスはすべて停止します。","remoteAccess.listeningMode.restartConfirm.title.all":"他のデバイスに公開","remoteAccess.listeningMode.restartConfirm.title.local":"このデバイスに限定","remoteAccess.listeningMode.restartConfirm.confirmLabel":"今すぐ再起動","remoteAccess.listeningMode.restartConfirm.cancelLabel":"キャンセル","remoteAccess.restart.errorManual":"自動で再起動できませんでした。変更を適用するにはアプリを再起動してください。","remoteAccess.sections.serverPassword.label":"サーバーパスワード","remoteAccess.sections.serverPassword.help":"リモート引き継ぎにはパスワードが必要です。覚えやすいものを設定して他のデバイスからのログインを有効にします。","remoteAccess.authStatus.unavailable":"認証状態を取得できません。","remoteAccess.username":"ユーザー名: {username}","remoteAccess.password.status.set":"リモートアクセス用のパスワードが設定されています。","remoteAccess.password.status.unset":"まだ覚えやすいパスワードが設定されていません。設定してリモート引き継ぎログインを有効にしてください。","remoteAccess.password.actions.cancel":"キャンセル","remoteAccess.password.actions.change":"パスワードを変更","remoteAccess.password.actions.set":"パスワードを設定","remoteAccess.password.form.newPassword":"新しいパスワード","remoteAccess.password.form.confirmPassword":"パスワードの確認","remoteAccess.password.form.placeholder":"8 文字以上","remoteAccess.password.error.tooShort":"パスワードは 8 文字以上である必要があります。","remoteAccess.password.error.mismatch":"パスワードが一致しません。","remoteAccess.password.save.saving":"保存中…","remoteAccess.password.save.label":"パスワードを保存","remoteAccess.sections.addresses.label":"到達可能なアドレス","remoteAccess.sections.addresses.help":"別の端末から起動またはスキャンして操作を引き継ぎます。","remoteAccess.addresses.loading":"アドレスを読み込み中…","remoteAccess.addresses.none":"まだ利用可能なアドレスがありません。","remoteAccess.addresses.actions.showOther":"他の {count} 件のアドレスを表示","remoteAccess.addresses.actions.hideOther":"他のアドレスを隠す","remoteAccess.address.scope.network":"ネットワーク","remoteAccess.address.scope.loopback":"ループバック","remoteAccess.address.scope.internal":"内部","remoteAccess.address.open":"開く","remoteAccess.address.showQr":"QR を表示","remoteAccess.address.hideQr":"QR を非表示","remoteAccess.address.qrAlt":"{url} の QR"},g={"sessionPicker.title":"OpenCode • {folder}","sessionPicker.empty.noPrevious":"以前のセッションはありません","sessionPicker.resume.title":"セッションを再開 ({count}):","sessionPicker.session.untitled":"無題","sessionPicker.divider.or":"または","sessionPicker.new.title":"新しいセッションを開始:","sessionPicker.agents.loading":"エージェントを読み込み中...","sessionPicker.actions.creating":"作成中...","sessionPicker.actions.createSession":"セッションを作成","sessionPicker.actions.cancel":"キャンセル","sessionList.header.title":"セッション","sessionList.session.untitled":"無題","sessionList.status.working":"作業中","sessionList.status.compacting":"圧縮中","sessionList.status.idle":"待機中","sessionList.status.retrying":"再試行中","sessionList.status.retryingIn":"{seconds}秒後に再試行","sessionList.status.retryTooltip":"{message}({attempt}回目)","sessionList.status.retryToast":"{countdown}: {message}({attempt}回目)","sessionList.status.needsPermission":"許可待ち","sessionList.status.needsInput":"入力待ち","sessionList.expand.collapseAriaLabel":"セッションを折りたたむ","sessionList.expand.expandAriaLabel":"セッションを展開","sessionList.expand.collapseTitle":"折りたたむ","sessionList.expand.expandTitle":"展開","sessionList.actions.newSession.ariaLabel":"新しいセッション","sessionList.actions.newSession.title":"新しいセッション","sessionList.actions.copyId.ariaLabel":"セッション ID をコピー","sessionList.actions.copyId.title":"セッション ID をコピー","sessionList.actions.reload.ariaLabel":"セッションを再読み込み","sessionList.actions.reload.title":"セッションを再読み込み","sessionList.actions.rename.ariaLabel":"セッション名を変更","sessionList.actions.rename.title":"セッション名を変更","sessionList.actions.delete.ariaLabel":"セッションを削除","sessionList.actions.delete.title":"セッションを削除","sessionList.copyId.success":"セッション ID をコピーしました","sessionList.copyId.error":"セッション ID をコピーできません","sessionList.reload.error":"セッションを再読み込みできません","sessionList.delete.error":"セッションを削除できません","sessionList.delete.title":"セッションを削除","sessionList.delete.confirmMessage":'"{label}" を削除しますか?この操作は元に戻せません。',"sessionList.delete.confirmLabel":"削除","sessionList.delete.cancelLabel":"キャンセル","sessionList.rename.error":"セッション名を変更できません","sessionList.filter.placeholder":"セッションを検索…","sessionList.filter.ariaLabel":"セッションを検索","sessionList.selection.selectAllLabel":"すべて選択","sessionList.selection.selectAllAriaLabel":"すべてのセッションを選択","sessionList.selection.clearLabel":"クリア","sessionList.selection.clearAriaLabel":"選択をクリア","sessionList.selection.checkboxAriaLabel":"セッションを選択","sessionList.bulkDelete.button":"{count} 件を削除","sessionList.bulkDelete.ariaLabel":"選択した {count} 件のセッションを削除","sessionList.bulkDelete.title":"セッションを削除","sessionList.bulkDelete.confirmMessage":"選択した {count} 件のセッションを削除しますか?この操作は元に戻せません。","sessionList.bulkDelete.confirmLabel":"削除","sessionList.bulkDelete.cancelLabel":"キャンセル","sessionList.bulkDelete.error":"{count} 件のセッションを削除できません","sessionRenameDialog.title":"セッション名を変更","sessionRenameDialog.description.withLabel":'"{label}" のタイトルを更新します。',"sessionRenameDialog.description.default":"このセッションの新しいタイトルを設定します。","sessionRenameDialog.input.label":"セッション名","sessionRenameDialog.input.placeholder":"セッション名を入力","sessionRenameDialog.actions.cancel":"キャンセル","sessionRenameDialog.actions.rename":"変更","sessionRenameDialog.actions.renaming":"変更中…","sessionView.fallback.sessionNotFound":"セッションが見つかりません","sessionView.alerts.abortFailed.message":"セッションを停止できませんでした","sessionView.alerts.abortFailed.title":"停止に失敗","sessionView.alerts.revertFailed.message":"メッセージへ戻せませんでした","sessionView.alerts.revertFailed.title":"復元に失敗","sessionView.alerts.deleteUpToFailed.message":"メッセージの削除に失敗しました","sessionView.alerts.deleteUpToFailed.title":"削除に失敗しました","sessionView.alerts.forkFailed.message":"セッションのフォークに失敗しました","sessionView.alerts.forkFailed.title":"フォークに失敗","sessionView.attachments.expandPastedTextAriaLabel":"貼り付けたテキストを展開","sessionView.attachments.insertPastedTextTitle":"貼り付けたテキストを挿入","sessionView.attachments.removeAriaLabel":"添付を削除","sessionEvents.sessionCompactedToast":"セッション {label} をコンパクト化しました","sessionEvents.sessionError.unknown":"不明なエラー","sessionEvents.sessionError.title":"セッションエラー","sessionEvents.sessionError.message":"エラー: {message}","sessionState.cleanup.deepConfirm.message":"このクリーンアップは時間がかかる場合があり、意図しないセッションを削除する可能性があります。続行しますか?","sessionState.cleanup.deepConfirm.title":"セッションを徹底クリーン","sessionState.cleanup.deepConfirm.detail":"徹底クリーンは、メッセージがないセッションをすべて削除し、完了したサブエージェントのセッションを取り除き、未使用のセッションフォークを整理します。","sessionState.cleanup.deepConfirm.confirmLabel":"続行","sessionState.cleanup.deepConfirm.cancelLabel":"キャンセル","sessionState.cleanup.toast.one":"{count} 件の空セッションを整理しました","sessionState.cleanup.toast.other":"{count} 件の空セッションを整理しました"},u={"instanceServiceStatus.sections.lsp":"LSP サーバー","instanceServiceStatus.sections.mcp":"MCP サーバー","instanceServiceStatus.sections.plugins":"プラグイン","instanceServiceStatus.lsp.loading":"LSP サーバーを読み込み中...","instanceServiceStatus.lsp.empty":"LSP サーバーが検出されませんでした。","instanceServiceStatus.lsp.status.connected":"接続済み","instanceServiceStatus.lsp.status.error":"エラー","instanceServiceStatus.mcp.loading":"MCP サーバーを読み込み中...","instanceServiceStatus.mcp.empty":"MCP サーバーが検出されませんでした。","instanceServiceStatus.mcp.toggleAriaLabel":"{name} MCP サーバーを切り替え","instanceServiceStatus.plugins.loading":"プラグインを読み込み中...","instanceServiceStatus.plugins.empty":"プラグインが設定されていません。","permissionBanner.pendingRequests.one":"{count} 件の保留中リクエスト","permissionBanner.pendingRequests.other":"{count} 件の保留中リクエスト","permissionBanner.detail.permission.one":"{count} 件の許可","permissionBanner.detail.permission.other":"{count} 件の許可","permissionBanner.detail.question.one":"{count} 件の質問","permissionBanner.detail.question.other":"{count} 件の質問","permissionBanner.detail.wrapper":" ({detail})","agentSelector.placeholder":"エージェントを選択...","agentSelector.badge.subagent":"サブエージェント","agentSelector.none":"なし","agentSelector.trigger.primary":"エージェント: {agent}","modelSelector.placeholder.search":"モデルを検索...","modelSelector.none":"なし","modelSelector.trigger.primary":"モデル: {model}","modelSelector.favoritesOnly.toggle.ariaLabel":"お気に入りのみ","modelSelector.favoritesOnly.showAll":"すべてのモデルを表示","modelSelector.favorite.add":"お気に入りに追加","modelSelector.favorite.remove":"お気に入りから削除","thinkingSelector.variant.default":"デフォルト","thinkingSelector.label":"思考: {variant}","envEditor.title":"環境変数","envEditor.count.one":"({count} 個)","envEditor.count.other":"({count} 個)","envEditor.fields.name.placeholder":"変数名","envEditor.fields.name.readOnlyTitle":"変数名 (読み取り専用)","envEditor.fields.value.placeholder":"変数値","envEditor.actions.remove.title":"変数を削除","envEditor.actions.add.title":"変数を追加","envEditor.empty":"環境変数が設定されていません。上で変数を追加して OpenCode 環境をカスタマイズしてください。","envEditor.help":"これらの変数はインスタンス起動時に OpenCode 環境で利用できます。","contextUsagePanel.headings.tokens":"トークン","contextUsagePanel.headings.context":"コンテキスト","contextUsagePanel.labels.input":"入力","contextUsagePanel.labels.output":"出力","contextUsagePanel.labels.cost":"コスト","contextUsagePanel.labels.used":"使用","contextUsagePanel.labels.available":"残り","contextUsagePanel.unavailable":"--","settings.title":"Settings","settings.navigationAriaLabel":"Settings sections","settings.close":"Close settings","settings.content.eyebrow":"Workspace preferences","settings.open.title":"Open settings","settings.open.ariaLabel":"Open settings","settings.nav.appearance":"Appearance","settings.nav.notifications":"Notifications","settings.nav.remote":"Remote Access","settings.nav.speech":"Speech","settings.nav.opencode":"OpenCode","settings.scope.device":"This device","settings.scope.server":"Server setting","settings.common.enabled":"Enabled","settings.common.disabled":"無効","settings.section.appearance.title":"Appearance","settings.section.appearance.subtitle":"Adjust how the app looks on this device.","settings.appearance.theme.title":"Theme","settings.appearance.theme.subtitle":"Choose the color mode used throughout the app.","settings.appearance.theme.option.system":"Match your operating system setting","settings.appearance.theme.option.light":"Use the light appearance","settings.appearance.theme.option.dark":"Use the dark appearance","settings.section.notifications.title":"Notifications","settings.section.notifications.subtitle":"Control OS-level notifications for session activity.","settings.notifications.permission.granted":"Granted","settings.notifications.permission.denied":"Denied","settings.notifications.permission.default":"Not granted","settings.notifications.permission.unsupported":"Unsupported","settings.notifications.messages.unsupportedEnvironment":"OS notifications are not supported in this environment.","settings.notifications.messages.permissionDenied":"Notification permission denied. Enable notifications in your system or browser settings.","settings.notifications.messages.permissionNotGranted":"Notification permission not granted.","settings.notifications.messages.unsupportedGeneral":"Notifications are not supported in this environment.","settings.notifications.messages.permissionGranted":"Permission granted. You can now enable notifications.","settings.notifications.messages.permissionRequestDenied":"Permission denied. You may need to enable notifications in your system or browser settings.","settings.notifications.sessionStatus.title":"Session status notifications","settings.notifications.sessionStatus.subtitle":"Receive alerts when sessions need your attention.","settings.notifications.enable.title":"Enable notifications","settings.notifications.enable.permission":"Permission: {permission}","settings.notifications.requestPermission.title":"Request permission","settings.notifications.requestPermission.subtitle":"Allow the app to send notifications on this device.","settings.notifications.requestPermission.action":"Request","settings.notifications.allowVisible.title":"Notify when the app is focused","settings.notifications.allowVisible.subtitle":"Keep alerts enabled even while this window is visible.","settings.notifications.unsupportedNote":"Notifications are not supported in this environment. The notifications control stays disabled.","settings.notifications.events.title":"Notify me when","settings.notifications.events.subtitle":"Choose which session events should send alerts.","settings.notifications.events.needsInput":"Session needs input","settings.notifications.events.idle":"Session becomes idle","settings.notifications.status.enabled":"Notifications enabled","settings.notifications.status.disabled":"Notifications disabled","settings.notifications.status.unsupported":"Notifications unsupported","settings.section.remote.title":"Remote Access","settings.section.remote.subtitle":"Review how this server is exposed on your network and secure access credentials.","settings.section.opencode.title":"OpenCode","settings.section.opencode.subtitle":"Choose the OpenCode binary and environment used for new instances.","settings.opencode.runtime.title":"Runtime","settings.opencode.runtime.subtitle":"Configure which OpenCode binary new instances launch with.","settings.opencode.logLevel.title":"OpenCode のログレベル","settings.opencode.logLevel.subtitle":"新しい OpenCode インスタンスの起動時に使うログレベルを設定します。","settings.opencode.logLevel.selector.title":"ログ出力の詳細度","settings.opencode.logLevel.selector.subtitle":"新しい OpenCode インスタンスがどの程度ログを出力するかを選択します。","settings.opencode.logLevel.option.debug":"デバッグ","settings.opencode.logLevel.option.info":"情報","settings.opencode.logLevel.option.warn":"警告","settings.opencode.logLevel.option.error":"エラー","settings.appearance.behavior.title":"操作","settings.appearance.behavior.subtitle":"メッセージ、差分、入力の既定値。","settings.behavior.keyboardHints.title":"キーボードショートカットのヒント","settings.behavior.keyboardHints.subtitle":"UI全体でキーボードショートカットのヒントを表示します。","settings.behavior.thinking.title":"思考セクション","settings.behavior.thinking.subtitle":"メッセージ内のAIの思考セクションを表示/非表示にします。","settings.behavior.thinkingDefault.title":"思考の既定","settings.behavior.thinkingDefault.subtitle":"思考セクションを最初に展開/折りたたみのどちらで表示するかを選びます。","settings.behavior.timelineTools.title":"タイムラインのツール呼び出し","settings.behavior.timelineTools.subtitle":"メッセージタイムラインでツール呼び出しを表示/非表示にします。","settings.behavior.diffView.title":"差分表示","settings.behavior.diffView.subtitle":"ツール呼び出しの差分の表示方法を選びます。","settings.behavior.diffView.option.split":"分割","settings.behavior.diffView.option.unified":"統合","settings.behavior.toolOutputsDefault.title":"ツール出力の既定","settings.behavior.toolOutputsDefault.subtitle":"ツール出力を最初に展開/折りたたみのどちらで表示するかを選びます。","settings.behavior.diagnosticsDefault.title":"診断の既定","settings.behavior.diagnosticsDefault.subtitle":"診断出力を最初に展開/折りたたみのどちらで表示するかを選びます。","settings.behavior.toolInputsVisibility.title":"ツール入力の表示","settings.behavior.toolInputsVisibility.subtitle":"ツール呼び出しの入力引数の既定の表示状態を設定します。","settings.behavior.usageMetrics.title":"トークン使用量メトリクス","settings.behavior.usageMetrics.subtitle":"アシスタントのメッセージにトークン数とコストの統計を表示/非表示にします。","settings.behavior.autoCleanup.title":"空のセッションを自動クリーンアップ","settings.behavior.autoCleanup.subtitle":"新しいセッション作成時に空のセッションを自動的にクリーンアップします。","settings.behavior.keepUnseenSubagentIdle.title":"サブエージェントの idle マーカーを保持","settings.behavior.keepUnseenSubagentIdle.subtitle":"サブエージェントの idle マーカーを 5 秒後に隠さず、表示するまで残します。","settings.behavior.promptVoiceInput.title":"Prompt voice input","settings.behavior.promptVoiceInput.subtitle":"Show the microphone control for speech-to-text prompt input when speech is configured.","settings.behavior.promptSubmit.title":"Enterで送信","settings.behavior.promptSubmit.subtitle":"Enterで送信し、Cmd/Ctrl+Enterで改行します。","settings.speech.title":"音声","settings.speech.subtitle":"今すぐ音声入力を設定し、今後の機能のために音声合成の基盤も準備します。","settings.speech.provider.title":"プロバイダー","settings.speech.provider.subtitle":"音声リクエストはサーバー側の音声アダプターを使用します。","settings.speech.provider.openaiCompatible":"OpenAI-compatible","settings.speech.status.loading":"設定を確認しています...","settings.speech.status.configured":"設定済み","settings.speech.status.missing":"APIキーがありません","settings.speech.status.error":"音声サービスを利用できません","settings.speech.apiKey.title":"API key","settings.speech.apiKey.subtitle":"CodeNomadが管理する音声リクエストに使用されます。","settings.speech.apiKey.placeholder":"新しいAPIキーを入力","settings.speech.apiKey.storedNote":"保存済みのAPIキーは非表示になっています。置き換えるには新しい値を入力し、そのまま使うには空欄のままにしてください。","settings.speech.apiKey.clearAction":"保存済みキーを削除","settings.speech.apiKey.clearPending":"保存すると、保存済みのAPIキーは削除されます。","settings.speech.baseUrl.title":"Base URL","settings.speech.baseUrl.subtitle":"OpenAI互換の音声エンドポイント用の任意の上書き設定です。","settings.speech.baseUrl.placeholder":"https://api.openai.com/v1","settings.speech.sttModel.title":"文字起こしモデル","settings.speech.sttModel.subtitle":"プロンプトの音声入力を文字起こしする際に使用するモデルです。","settings.speech.ttsModel.title":"音声モデル","settings.speech.ttsModel.subtitle":"将来の再生機能のために予約されている既定の音声合成モデルです。","settings.speech.ttsVoice.title":"既定の音声","settings.speech.ttsVoice.subtitle":"将来の再生機能のために予約されている既定の音声合成ボイスです。","settings.speech.playbackMode.title":"再生モード","settings.speech.playbackMode.subtitle":"音声が届き次第再生を始めるか、ファイル全体の生成後に再生するかを選択します。","settings.speech.playbackMode.streaming":"Streaming","settings.speech.playbackMode.buffered":"Buffered","settings.speech.ttsFormat.title":"出力形式","settings.speech.ttsFormat.subtitle":"音声合成の出力形式を選択します。ストリーミング対応はプロバイダーとブラウザーに依存します。","settings.speech.help":"プロンプト音声入力は音声文字起こしが設定され対応している場合に表示されます。メッセージ再生にはここで選んだTTSモードと形式が使われます。","settings.speech.compatibility.streamingUnavailable":"現在の音声プロバイダー設定ではストリーミングTTSが利用可能として公開されていません。今すぐ再生を使いたい場合は再生モードを buffered に切り替えてください。","settings.speech.compatibility.browserStreamingUnavailable":"現在のブラウザーでは、選択したTTS形式をストリーミング再生できません。buffered 再生に切り替えるか、別の形式を選んでください。","settings.speech.compatibility.runtimeNote":"ストリーミングモードでも全ての形式を選択できますが、ブラウザーとプロバイダーの組み合わせによっては再生時に失敗することがあります。","settings.speech.testPlayback.action":"再生をテスト","settings.speech.testPlayback.generating":"サンプルを生成中","settings.speech.testPlayback.stop":"サンプルを停止","settings.speech.testPlayback.sample":"CodeNomad をご利用いただきありがとうございます。音声設定は正常に動作しています。","settings.speech.testPlayback.note":"このテストは現在の再生モードと形式をすぐに使います。APIキー、Base URL、モデル、音声の変更も試したい場合は先に保存してください。","settings.speech.save.action":"保存","settings.speech.save.saving":"保存中...","settings.speech.save.saved":"保存済み","settings.speech.save.unsaved":"未保存の変更","settings.speech.save.error":"保存に失敗しました","settings.nav.sidecars":"SideCars","settings.section.sidecars.eyebrow":"Server services","settings.section.sidecars.title":"SideCars","settings.section.sidecars.subtitle":"Configure local services listening on fixed ports that the server can proxy into tabs.","sidecars.form.name":"Name","sidecars.form.validation":"Enter a valid SideCar name and port.","sidecars.form.port":"Port","sidecars.form.insecure":"Use HTTP","sidecars.form.protocol":"Protocol","sidecars.form.protocol.help":"Choose how the proxy should connect to the local service.","sidecars.form.protocol.https":"HTTPS","sidecars.form.protocol.http":"HTTP","sidecars.form.prefixMode":"Prefix mode","sidecars.form.prefixMode.help":"Choose whether the SideCar receives the public /sidecars path prefix.","sidecars.form.prefixMode.strip":"Strip prefix","sidecars.form.prefixMode.preserve":"Preserve prefix","sidecars.form.add":"Add SideCar","sidecars.kind.port":"Port","sidecars.status.running":"Running","sidecars.status.stopped":"Stopped","sidecars.basePath":"Base path","sidecars.settings.listTitle":"Configured SideCars","sidecars.settings.listSubtitle":"Review the port-based SideCars available in the picker.","sidecars.settings.empty":"No SideCars configured yet.","sidecars.picker.title":"Open SideCar","sidecars.picker.loading":"Loading SideCars...","sidecars.picker.subtitle":"Choose an available SideCar to open in a new tab.","sidecars.picker.empty":"No port-based SideCars are available yet.","sidecars.picker.close":"Close","sidecars.open.errorTitle":"Unable to open SideCar","sidecars.open.notFound":"SideCar not found.","sidecars.open.notRunning":"SideCar is not reachable on its configured port.","sidecars.back":"Back","sidecars.refresh":"Refresh","sidecars.path":"Path","sidecars.go":"Go"},h={"time.relative.justNow":"たった今","time.relative.daysAgoShort":"{count} 日前","time.relative.hoursAgoShort":"{count} 時間前","time.relative.minutesAgoShort":"{count} 分前"},b={"toolCall.pending.waitingToRun":"実行待ち...","toolCall.error.label":"エラー:","toolCall.header.copyTitle":"Copy tool call title","toolCall.header.copyAriaLabel":"Copy tool call title","toolCall.header.showInputTitle":"Show Tool Arguments","toolCall.header.showInputAriaLabel":"Show Tool Arguments","toolCall.header.hideInputTitle":"Hide Tool Arguments","toolCall.header.hideInputAriaLabel":"Hide Tool Arguments","toolCall.io.input":"Tool Input","toolCall.io.output":"Tool Output","toolCall.diff.label":"Diff","toolCall.diff.label.withPath":"Diff · {path}","toolCall.diff.viewMode.ariaLabel":"diff 表示モード","toolCall.diff.viewMode.split":"分割","toolCall.diff.viewMode.unified":"ユニファイド","toolCall.diff.switchToSplit":"分割表示に切り替え","toolCall.diff.switchToUnified":"ユニファイド表示に切り替え","toolCall.diff.enableWordWrap":"折り返しを有効化","toolCall.diff.disableWordWrap":"折り返しを無効化","toolCall.diff.copyPatch":"パッチをコピー","toolCall.diagnostics.title":"診断","toolCall.diagnostics.ariaLabel":"診断","toolCall.diagnostics.ariaLabel.withLabel":"診断 {label}","toolCall.diagnostics.severity.error.short":"エラー","toolCall.diagnostics.severity.warning.short":"警告","toolCall.diagnostics.severity.info.short":"情報","toolCall.renderer.toolName.shell":"シェル","toolCall.renderer.toolName.fetch":"フェッチ","toolCall.renderer.toolName.invalid":"無効","toolCall.renderer.toolName.plan":"計画","toolCall.renderer.toolName.applyPatch":"パッチを適用","toolCall.renderer.action.working":"処理中...","toolCall.renderer.action.writingCommand":"コマンド作成中...","toolCall.renderer.action.preparingEdit":"編集を準備中...","toolCall.renderer.action.readingFile":"ファイルを読み込み中...","toolCall.renderer.action.preparingWrite":"書き込みを準備中...","toolCall.renderer.action.preparingPatch":"パッチを準備中...","toolCall.renderer.action.planning":"計画中...","toolCall.renderer.action.fetchingFromWeb":"Web から取得中...","toolCall.renderer.action.findingFiles":"ファイルを検索中...","toolCall.renderer.action.searchingContent":"内容を検索中...","toolCall.renderer.action.listingDirectory":"ディレクトリ一覧を取得中...","toolCall.renderer.bash.title.timeout":"タイムアウト: {timeout}","toolCall.renderer.read.detail.offset":"オフセット: {offset}","toolCall.renderer.read.detail.limit":"上限: {limit}","toolCall.renderer.todo.empty":"まだ項目がありません。","toolCall.renderer.todo.status.pending":"保留","toolCall.renderer.todo.status.inProgress":"進行中","toolCall.renderer.todo.status.completed":"完了","toolCall.renderer.todo.status.cancelled":"キャンセル","toolCall.renderer.todo.title.plan":"計画","toolCall.renderer.todo.title.creating":"計画を作成中","toolCall.renderer.todo.title.completing":"計画を完了中","toolCall.renderer.todo.title.updating":"計画を更新中","toolCall.permission.status.required":"許可が必要です","toolCall.permission.status.queued":"許可待ち","toolCall.permission.requestedDiff.label":"要求された diff","toolCall.permission.requestedDiff.withPath":"要求された diff · {path}","toolCall.permission.queuedText":"先行する許可への回答を待機中です。","toolCall.permission.actions.allowOnce":"一度だけ許可","toolCall.permission.actions.alwaysAllow":"常に許可","toolCall.permission.actions.deny":"拒否","toolCall.permission.shortcuts.allowOnce":"一度だけ許可","toolCall.permission.shortcuts.alwaysAllow":"常に許可","toolCall.permission.shortcuts.deny":"拒否","toolCall.permission.errors.unableToUpdate":"許可を更新できません","permissionApproval.title":"リクエスト","permissionApproval.empty":"保留中のリクエストはありません。","permissionApproval.kind.permission":"許可","permissionApproval.kind.question":"質問","permissionApproval.questionCount.one":"{count} 件の質問","permissionApproval.questionCount.other":"{count} 件の質問","permissionApproval.status.active":"有効","permissionApproval.actions.closeAriaLabel":"閉じる","permissionApproval.actions.goToSession":"セッションへ移動","permissionApproval.actions.loadingSession":"読み込み中…","permissionApproval.actions.loadSession":"セッションを読み込む","permissionApproval.actions.allowOnce":"一度だけ許可","permissionApproval.actions.alwaysAllow":"常に許可","permissionApproval.actions.deny":"拒否","permissionApproval.fallbackHint":"詳しい情報を見るにはセッションを読み込んでください。","permissionApproval.errors.unableToUpdatePermission":"許可を更新できません","toolCall.question.status.required":"質問が必要です","toolCall.question.status.queued":"質問待ち","toolCall.question.status.questions":"質問","toolCall.question.action.awaitingAnswers":"回答待ち...","toolCall.question.title.questions":"質問","toolCall.question.title.askingQuestions":"質問中","toolCall.question.type.one":"質問","toolCall.question.type.other":"質問","toolCall.question.number":"Q{number}:","toolCall.question.multiple":"複数","toolCall.question.custom.title":"カスタム回答を入力","toolCall.question.custom.label":"カスタム回答","toolCall.question.custom.placeholder":"回答を入力","toolCall.question.actions.submit":"送信","toolCall.question.actions.dismiss":"閉じる","toolCall.question.shortcuts.submit":"送信","toolCall.question.shortcuts.dismiss":"閉じる","toolCall.question.queuedText":"先行する回答を待機中です。","toolCall.question.validation.answerAll":"送信する前にすべての質問に回答してください。","toolCall.question.errors.unableToReply":"回答できません","toolCall.question.errors.unableToDismiss":"閉じられません","toolCall.task.action.delegating":"委任中...","toolCall.task.sections.prompt":"プロンプト","toolCall.task.sections.steps":"手順","toolCall.task.sections.output":"出力","toolCall.task.steps.count":"{count} 手順","toolCall.task.meta.agentModel":"エージェント: {agent} • モデル: {model}","toolCall.task.meta.agent":"エージェント: {agent}","toolCall.task.meta.model":"モデル: {model}","toolCall.status.pending":"保留","toolCall.status.running":"実行中","toolCall.status.completed":"完了","toolCall.status.error":"エラー","toolCall.status.unknown":"不明","toolCall.applyPatch.action.preparing":"apply_patch を準備中...","toolCall.applyPatch.title.withFileCount.one":"{tool} ({count} 件のファイル)","toolCall.applyPatch.title.withFileCount.other":"{tool} ({count} 件のファイル)","toolCall.applyPatch.fileFallback":"ファイル {number}"},y=e(a,s,r,h,t,i,n,l,c,g,m,b,d,u,p,o);export{y as jaMessages};