@chainingintention/pi-web-cn 2.0.0 → 2.202610.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 (584) hide show
  1. package/README.md +61 -106
  2. package/dist/.plugins-ready +1 -0
  3. package/dist/cli.js +331 -174
  4. package/dist/cli.js.map +1 -1
  5. package/dist/client/apple-touch-icon-dev.png +0 -0
  6. package/dist/client/assets/PiWebApp-BXSziMEg.js +4921 -0
  7. package/dist/client/assets/classic-CyM97Akm.css +54 -0
  8. package/dist/client/assets/external-B9K8duyP.js +2 -0
  9. package/dist/client/assets/graphite-DquaqFXU.css +54 -0
  10. package/dist/client/assets/index-cdtUOfOW.js +2 -0
  11. package/dist/client/assets/paper-CB1oLuRr.css +54 -0
  12. package/dist/client/assets/pi-web-dark-D_KtbM95.css +54 -0
  13. package/dist/client/assets/pi-web-light-DSNLMIBI.css +54 -0
  14. package/dist/client/assets/vendor-editor-core-BfnHL1Dg.js +10 -0
  15. package/dist/client/assets/vendor-editor-languages-bNquDJP0.js +28 -0
  16. package/dist/client/favicon-dev.svg +8 -0
  17. package/dist/client/index.html +7 -51
  18. package/dist/client/manifest.webmanifest +2 -1
  19. package/dist/client/pwa-icon-dev-192.png +0 -0
  20. package/dist/client/pwa-icon-dev-512.png +0 -0
  21. package/dist/config.js +55 -8
  22. package/dist/config.js.map +1 -1
  23. package/dist/docker/piWebDockerCommandPlan.js +13 -4
  24. package/dist/docker/piWebDockerCommandPlan.js.map +1 -1
  25. package/dist/environment.js +4 -0
  26. package/dist/environment.js.map +1 -0
  27. package/dist/localization.js +24 -0
  28. package/dist/localization.js.map +1 -0
  29. package/dist/nativeServices/installedServiceDefinitions.js +617 -0
  30. package/dist/nativeServices/installedServiceDefinitions.js.map +1 -0
  31. package/dist/nativeServices/serviceAction.js +78 -20
  32. package/dist/nativeServices/serviceAction.js.map +1 -1
  33. package/dist/nativeServices/serviceDoctor.js +418 -114
  34. package/dist/nativeServices/serviceDoctor.js.map +1 -1
  35. package/dist/nativeServices/servicePlan.js +2 -2
  36. package/dist/nativeServices/servicePlan.js.map +1 -1
  37. package/dist/pi-packages/captains-log/README.md +11 -0
  38. package/dist/pi-packages/captains-log/dist/browser/channelProtocol.js +29 -0
  39. package/dist/pi-packages/captains-log/dist/browser/index.js +143 -0
  40. package/dist/pi-packages/captains-log/dist/browser/markdown.js +68 -0
  41. package/dist/pi-packages/captains-log/dist/browser/panel.js +148 -0
  42. package/dist/pi-packages/captains-log/dist/browser/protocol.js +26 -0
  43. package/dist/pi-packages/captains-log/dist/companion.js +126 -0
  44. package/dist/pi-packages/captains-log/dist/roundtrip.js +62 -0
  45. package/dist/pi-packages/captains-log/dist/server.js +210 -0
  46. package/dist/pi-packages/captains-log/dist/store.js +75 -0
  47. package/dist/pi-packages/captains-log/docs/usage.md +29 -0
  48. package/dist/pi-packages/captains-log/i18n.js +7 -0
  49. package/dist/pi-packages/captains-log/package.json +35 -0
  50. package/dist/pi-packages/captains-log/tsconfig.json +21 -0
  51. package/dist/pi-packages/captains-log/vite.config.mjs +28 -0
  52. package/dist/pi-packages/relays/extensions/index.js +61 -0
  53. package/dist/pi-packages/relays/i18n.js +7 -0
  54. package/dist/{pi-web-plugins → pi-packages}/relays/markdownDocument.js +3 -2
  55. package/dist/pi-packages/relays/package.json +20 -0
  56. package/dist/pi-packages/relays/pi-web-plugin.js +96 -0
  57. package/dist/pi-packages/relays/prompts/relay-worktree.md +18 -0
  58. package/dist/pi-packages/relays/prompts/relay.md +18 -0
  59. package/dist/{pi-web-plugins → pi-packages}/relays/relayDiscovery.js +2 -2
  60. package/dist/pi-packages/relays/relayDispatch.js +67 -0
  61. package/dist/pi-packages/relays/relayIdentity.js +37 -0
  62. package/dist/{pi-web-plugins → pi-packages}/relays/relaysPanelElement.js +98 -59
  63. package/dist/pi-packages/relays/skills/relay/SKILL.md +50 -0
  64. package/dist/pi-packages/relays/skills/relay-runner/SKILL.md +74 -0
  65. package/dist/pi-packages/workflows/browser/pi-web-plugin.js +42 -0
  66. package/dist/pi-packages/workflows/browser/worktreeDialog.js +170 -0
  67. package/dist/pi-packages/workflows/package.json +23 -0
  68. package/dist/pi-packages/workflows/prompts/worktree.md +21 -0
  69. package/dist/pi-packages/workflows/server-plugin.js +586 -0
  70. package/dist/pi-packages/workflows/vite.config.mjs +17 -0
  71. package/dist/pi-web-plugins/code-highlight/browser/pi-web-plugin.js +22 -0
  72. package/dist/pi-web-plugins/code-highlight/package.json +13 -0
  73. package/dist/pi-web-plugins/files/browser/assets/files-icon-DZObYhxb.svg +3 -0
  74. package/dist/pi-web-plugins/files/browser/pi-web-plugin.js +466 -0
  75. package/dist/pi-web-plugins/files/package.json +15 -0
  76. package/dist/pi-web-plugins/git/browser/git-contract.js +22 -11
  77. package/dist/pi-web-plugins/git/browser/git-panel.js +228 -100
  78. package/dist/pi-web-plugins/git/browser/i18n.js +7 -0
  79. package/dist/pi-web-plugins/git/browser/pi-web-plugin.js +28 -4
  80. package/dist/pi-web-plugins/git/git-backend.js +61 -21
  81. package/dist/pi-web-plugins/git/gitStatusCache.js +48 -0
  82. package/dist/pi-web-plugins/git/i18n.js +7 -0
  83. package/dist/pi-web-plugins/git/package.json +1 -0
  84. package/dist/pi-web-plugins/git/server-plugin.js +45 -24
  85. package/dist/pi-web-plugins/git/workspace-discovery-notify.cjs +14 -0
  86. package/dist/pi-web-plugins/git/workspaceDiscoveryHooks.js +186 -0
  87. package/dist/pi-web-plugins/info/i18n.js +7 -0
  88. package/dist/pi-web-plugins/info/infoInternals.js +76 -65
  89. package/dist/pi-web-plugins/info/package.json +1 -1
  90. package/dist/pi-web-plugins/info/pi-web-plugin.js +40 -42
  91. package/dist/pi-web-plugins/mermaid/browser/mermaid-engine.js +4255 -0
  92. package/dist/pi-web-plugins/mermaid/browser/pi-web-plugin.js +11 -0
  93. package/dist/pi-web-plugins/mermaid/package.json +13 -0
  94. package/dist/pi-web-plugins/terminal/browser/pi-web-plugin.js +219 -0
  95. package/dist/pi-web-plugins/terminal/i18n.js +7 -0
  96. package/dist/pi-web-plugins/terminal/package.json +16 -0
  97. package/dist/pi-web-plugins/terminal/server-plugin.js +367 -0
  98. package/dist/pi-web-plugins/terminal/terminalService.js +436 -0
  99. package/dist/pi-web-plugins/updates/i18n.js +7 -0
  100. package/dist/pi-web-plugins/updates/package.json +1 -1
  101. package/dist/pi-web-plugins/updates/pi-web-plugin.js +143 -140
  102. package/dist/pi-web-plugins/updates/updatesLogic.js +24 -24
  103. package/dist/pi-web-plugins/workspace-tasks/config.js +12 -11
  104. package/dist/pi-web-plugins/workspace-tasks/i18n.js +7 -0
  105. package/dist/pi-web-plugins/workspace-tasks/package.json +1 -1
  106. package/dist/pi-web-plugins/workspace-tasks/pi-web-plugin.js +31 -9
  107. package/dist/pi-web-plugins/workspace-tasks/tasksPanelElement.js +54 -36
  108. package/dist/pi-web-plugins/workspace-tasks/workspaceTasksClient.js +12 -11
  109. package/dist/pi-web-plugins/zh-cn/auth.json +9 -0
  110. package/dist/pi-web-plugins/zh-cn/bundled.json +219 -0
  111. package/dist/pi-web-plugins/zh-cn/cli.json +230 -0
  112. package/dist/pi-web-plugins/zh-cn/client.json +225 -0
  113. package/dist/pi-web-plugins/zh-cn/components.json +1252 -0
  114. package/dist/pi-web-plugins/zh-cn/config-errors.json +188 -0
  115. package/dist/pi-web-plugins/zh-cn/files.json +50 -0
  116. package/dist/pi-web-plugins/zh-cn/machines.json +28 -0
  117. package/dist/pi-web-plugins/zh-cn/main.json +459 -0
  118. package/dist/pi-web-plugins/zh-cn/management-errors.json +23 -0
  119. package/dist/pi-web-plugins/zh-cn/manifest.webmanifest +25 -0
  120. package/dist/pi-web-plugins/zh-cn/metadata.json +3 -0
  121. package/dist/pi-web-plugins/zh-cn/package.json +10 -0
  122. package/dist/pi-web-plugins/zh-cn/pi-web-plugin.js +16 -0
  123. package/dist/pi-web-plugins/zh-cn/projects.json +6 -0
  124. package/dist/pi-web-plugins/zh-cn/provider-auth.json +18 -0
  125. package/dist/pi-web-plugins/zh-cn/routing.json +68 -0
  126. package/dist/pi-web-plugins/zh-cn/server-main.json +99 -0
  127. package/dist/pi-web-plugins/zh-cn/server.json +256 -0
  128. package/dist/piAi.js +4 -0
  129. package/dist/piAi.js.map +1 -0
  130. package/dist/piRuntime.js +150 -0
  131. package/dist/piRuntime.js.map +1 -0
  132. package/dist/piSdk.js +5 -0
  133. package/dist/piSdk.js.map +1 -0
  134. package/dist/piWebUpdate.js +508 -0
  135. package/dist/piWebUpdate.js.map +1 -0
  136. package/dist/piWebVersionReport.js +109 -41
  137. package/dist/piWebVersionReport.js.map +1 -1
  138. package/dist/plugin-api.d.ts +609 -29
  139. package/dist/plugin-api.js +1 -0
  140. package/dist/pluginRecoveryCli.js +27 -25
  141. package/dist/pluginRecoveryCli.js.map +1 -1
  142. package/dist/server/activity/workspaceActivityService.js +13 -6
  143. package/dist/server/activity/workspaceActivityService.js.map +1 -1
  144. package/dist/server/app.js +155 -77
  145. package/dist/server/app.js.map +1 -1
  146. package/dist/server/audit/managementAuditStore.js +6 -1
  147. package/dist/server/audit/managementAuditStore.js.map +1 -1
  148. package/dist/server/audit/normalToolAuditCli.js +45 -43
  149. package/dist/server/audit/normalToolAuditCli.js.map +1 -1
  150. package/dist/server/browserMessageProjection.js +39 -22
  151. package/dist/server/browserMessageProjection.js.map +1 -1
  152. package/dist/server/configRoutes.js +54 -33
  153. package/dist/server/configRoutes.js.map +1 -1
  154. package/dist/server/deploymentIdentity.js +67 -0
  155. package/dist/server/deploymentIdentity.js.map +1 -0
  156. package/dist/server/deploymentIdentityRoutes.js +22 -0
  157. package/dist/server/deploymentIdentityRoutes.js.map +1 -0
  158. package/dist/server/diagnostics/nodePtyNativeModule.js +7 -6
  159. package/dist/server/diagnostics/nodePtyNativeModule.js.map +1 -1
  160. package/dist/server/diagnostics/nodePtySpawnHelper.js +21 -20
  161. package/dist/server/diagnostics/nodePtySpawnHelper.js.map +1 -1
  162. package/dist/server/index.js +10 -1
  163. package/dist/server/index.js.map +1 -1
  164. package/dist/server/knownAutoInstallPiPackages.js +36 -0
  165. package/dist/server/knownAutoInstallPiPackages.js.map +1 -0
  166. package/dist/server/knownPiPackages.js +12 -0
  167. package/dist/server/knownPiPackages.js.map +1 -0
  168. package/dist/server/machines/machineClient.js +23 -19
  169. package/dist/server/machines/machineClient.js.map +1 -1
  170. package/dist/server/machines/machinePluginProxyRoutes.js +131 -31
  171. package/dist/server/machines/machinePluginProxyRoutes.js.map +1 -1
  172. package/dist/server/machines/machineProxyRoutes.js +138 -47
  173. package/dist/server/machines/machineProxyRoutes.js.map +1 -1
  174. package/dist/server/machines/machineRoutes.js +18 -13
  175. package/dist/server/machines/machineRoutes.js.map +1 -1
  176. package/dist/server/machines/machineService.js +40 -18
  177. package/dist/server/machines/machineService.js.map +1 -1
  178. package/dist/server/managementEmbed.js +149 -30
  179. package/dist/server/managementEmbed.js.map +1 -1
  180. package/dist/server/managementPrivileges.js +21 -0
  181. package/dist/server/managementPrivileges.js.map +1 -0
  182. package/dist/server/managementTerminalProxyRoutes.js +124 -0
  183. package/dist/server/managementTerminalProxyRoutes.js.map +1 -0
  184. package/dist/server/navigationPreferenceRoutes.js +59 -0
  185. package/dist/server/navigationPreferenceRoutes.js.map +1 -0
  186. package/dist/server/normalAuth.js +77 -53
  187. package/dist/server/normalAuth.js.map +1 -1
  188. package/dist/server/notices/serverNoticeRoutes.js +43 -0
  189. package/dist/server/notices/serverNoticeRoutes.js.map +1 -0
  190. package/dist/server/notices/serverNoticeService.js +26 -0
  191. package/dist/server/notices/serverNoticeService.js.map +1 -0
  192. package/dist/server/notices/serverNoticeStore.js +122 -0
  193. package/dist/server/notices/serverNoticeStore.js.map +1 -0
  194. package/dist/server/passwordVerifier.js +91 -0
  195. package/dist/server/passwordVerifier.js.map +1 -0
  196. package/dist/server/piPackageIdentity.js +25 -0
  197. package/dist/server/piPackageIdentity.js.map +1 -0
  198. package/dist/server/piPackageService.js +72 -9
  199. package/dist/server/piPackageService.js.map +1 -1
  200. package/dist/server/piWebPluginCatalog.js +212 -35
  201. package/dist/server/piWebPluginCatalog.js.map +1 -1
  202. package/dist/server/piWebPluginLifecycle.js +29 -3
  203. package/dist/server/piWebPluginLifecycle.js.map +1 -1
  204. package/dist/server/piWebPluginService.js +199 -292
  205. package/dist/server/piWebPluginService.js.map +1 -1
  206. package/dist/server/piWebStatus.js +57 -100
  207. package/dist/server/piWebStatus.js.map +1 -1
  208. package/dist/server/pluginCallbackDrain.js +35 -0
  209. package/dist/server/pluginCallbackDrain.js.map +1 -0
  210. package/dist/server/plugins/pluginBackendChannelProxyAdmission.js +84 -0
  211. package/dist/server/plugins/pluginBackendChannelProxyAdmission.js.map +1 -0
  212. package/dist/server/plugins/pluginBackendChannelProxyCoordinator.js +234 -0
  213. package/dist/server/plugins/pluginBackendChannelProxyCoordinator.js.map +1 -0
  214. package/dist/server/plugins/pluginBackendChannelProxyRoutes.js +61 -0
  215. package/dist/server/plugins/pluginBackendChannelProxyRoutes.js.map +1 -0
  216. package/dist/server/plugins/pluginBackendProxyRoutes.js +47 -57
  217. package/dist/server/plugins/pluginBackendProxyRoutes.js.map +1 -1
  218. package/dist/server/plugins/pluginBackendRegistry.js +804 -0
  219. package/dist/server/plugins/pluginBackendRegistry.js.map +1 -0
  220. package/dist/server/plugins/projectPluginSettings.js +95 -0
  221. package/dist/server/plugins/projectPluginSettings.js.map +1 -0
  222. package/dist/server/plugins/serverPluginCatalogCapability.js +106 -0
  223. package/dist/server/plugins/serverPluginCatalogCapability.js.map +1 -0
  224. package/dist/server/plugins/serverPluginPiSessionEventsCapability.js +34 -0
  225. package/dist/server/plugins/serverPluginPiSessionEventsCapability.js.map +1 -0
  226. package/dist/server/plugins/serverPluginPiSessionsCapability.js +185 -0
  227. package/dist/server/plugins/serverPluginPiSessionsCapability.js.map +1 -0
  228. package/dist/server/plugins/serverPluginRuntime.js +1088 -108
  229. package/dist/server/plugins/serverPluginRuntime.js.map +1 -1
  230. package/dist/server/plugins/serverPluginWorkspacesCapability.js +114 -0
  231. package/dist/server/plugins/serverPluginWorkspacesCapability.js.map +1 -0
  232. package/dist/server/projectTrustRoutes.js +86 -0
  233. package/dist/server/projectTrustRoutes.js.map +1 -0
  234. package/dist/server/projects/projectLifecycleService.js +94 -0
  235. package/dist/server/projects/projectLifecycleService.js.map +1 -0
  236. package/dist/server/projects/projectService.js +7 -4
  237. package/dist/server/projects/projectService.js.map +1 -1
  238. package/dist/server/realtime/sessionEventHub.js +58 -39
  239. package/dist/server/realtime/sessionEventHub.js.map +1 -1
  240. package/dist/server/realtime/sessionEventScope.js +4 -0
  241. package/dist/server/realtime/sessionEventScope.js.map +1 -1
  242. package/dist/server/requestCancellation.js +15 -1
  243. package/dist/server/requestCancellation.js.map +1 -1
  244. package/dist/server/sessiond/agentHttpDispatcher.js +108 -0
  245. package/dist/server/sessiond/agentHttpDispatcher.js.map +1 -0
  246. package/dist/server/sessiond/autoInstallPiPackages.js +63 -0
  247. package/dist/server/sessiond/autoInstallPiPackages.js.map +1 -0
  248. package/dist/server/sessiond/pluginBackendChannelRoutes.js +410 -0
  249. package/dist/server/sessiond/pluginBackendChannelRoutes.js.map +1 -0
  250. package/dist/server/sessiond/pluginBackendRoutes.js +64 -47
  251. package/dist/server/sessiond/pluginBackendRoutes.js.map +1 -1
  252. package/dist/server/sessiond/pluginCatalogRoutes.js +41 -0
  253. package/dist/server/sessiond/pluginCatalogRoutes.js.map +1 -0
  254. package/dist/server/sessiond/projectMutationRoutes.js +39 -0
  255. package/dist/server/sessiond/projectMutationRoutes.js.map +1 -0
  256. package/dist/server/sessiond/sessionDaemonShutdown.js +36 -0
  257. package/dist/server/sessiond/sessionDaemonShutdown.js.map +1 -0
  258. package/dist/server/sessiond/sessionDaemonStartup.js +30 -4
  259. package/dist/server/sessiond/sessionDaemonStartup.js.map +1 -1
  260. package/dist/server/sessiond/sessionProxyRoutes.js +263 -91
  261. package/dist/server/sessiond/sessionProxyRoutes.js.map +1 -1
  262. package/dist/server/sessiond/sessionServiceDependencies.js +5 -0
  263. package/dist/server/sessiond/sessionServiceDependencies.js.map +1 -1
  264. package/dist/server/sessiond/sessiondStateOwnership.js +174 -39
  265. package/dist/server/sessiond/sessiondStateOwnership.js.map +1 -1
  266. package/dist/server/sessiond/workspaceCatalogRoutes.js +11 -5
  267. package/dist/server/sessiond/workspaceCatalogRoutes.js.map +1 -1
  268. package/dist/server/sessiond/workspaceNotificationRoutes.js +55 -0
  269. package/dist/server/sessiond/workspaceNotificationRoutes.js.map +1 -0
  270. package/dist/server/sessiond/workspaceRemovalRoutes.js +1 -1
  271. package/dist/server/sessiond/workspaceRemovalRoutes.js.map +1 -1
  272. package/dist/server/sessiond.js +313 -69
  273. package/dist/server/sessiond.js.map +1 -1
  274. package/dist/server/sessions/askUserDomain.js +232 -0
  275. package/dist/server/sessions/askUserDomain.js.map +1 -0
  276. package/dist/server/sessions/askUserTool.js +18 -21
  277. package/dist/server/sessions/askUserTool.js.map +1 -1
  278. package/dist/server/sessions/attachmentService.js +2 -6
  279. package/dist/server/sessions/attachmentService.js.map +1 -1
  280. package/dist/server/sessions/authRoutes.js +32 -19
  281. package/dist/server/sessions/authRoutes.js.map +1 -1
  282. package/dist/server/sessions/authService.js +31 -11
  283. package/dist/server/sessions/authService.js.map +1 -1
  284. package/dist/server/sessions/builtinCommands.js +28 -21
  285. package/dist/server/sessions/builtinCommands.js.map +1 -1
  286. package/dist/server/sessions/builtinExtensionFactories.js +36 -0
  287. package/dist/server/sessions/builtinExtensionFactories.js.map +1 -0
  288. package/dist/server/sessions/clientSessionPreview.js +14 -0
  289. package/dist/server/sessions/clientSessionPreview.js.map +1 -0
  290. package/dist/server/sessions/companionBackend.js +286 -0
  291. package/dist/server/sessions/companionBackend.js.map +1 -0
  292. package/dist/server/sessions/dockerEnvironmentFacts.js +98 -10
  293. package/dist/server/sessions/dockerEnvironmentFacts.js.map +1 -1
  294. package/dist/server/sessions/extensionSessionDispatch.js +76 -0
  295. package/dist/server/sessions/extensionSessionDispatch.js.map +1 -0
  296. package/dist/server/sessions/globalProviderPolicy.js +88 -19
  297. package/dist/server/sessions/globalProviderPolicy.js.map +1 -1
  298. package/dist/server/sessions/managementAgentTools.js +116 -6
  299. package/dist/server/sessions/managementAgentTools.js.map +1 -1
  300. package/dist/server/sessions/managementPermissionSystem.js +36 -14
  301. package/dist/server/sessions/managementPermissionSystem.js.map +1 -1
  302. package/dist/server/sessions/managementSandbox.js +7 -18
  303. package/dist/server/sessions/managementSandbox.js.map +1 -1
  304. package/dist/server/sessions/mcpAuthFlowService.js +289 -0
  305. package/dist/server/sessions/mcpAuthFlowService.js.map +1 -0
  306. package/dist/server/sessions/mcpAuthRoutes.js +104 -0
  307. package/dist/server/sessions/mcpAuthRoutes.js.map +1 -0
  308. package/dist/server/sessions/mcpOAuthCredentialAdapter.js +92 -0
  309. package/dist/server/sessions/mcpOAuthCredentialAdapter.js.map +1 -0
  310. package/dist/server/sessions/messageHistoryTarget.js +79 -0
  311. package/dist/server/sessions/messageHistoryTarget.js.map +1 -0
  312. package/dist/server/sessions/messagePaging.js +2 -2
  313. package/dist/server/sessions/messagePaging.js.map +1 -1
  314. package/dist/server/sessions/modelCatalogRefresher.js +4 -3
  315. package/dist/server/sessions/modelCatalogRefresher.js.map +1 -1
  316. package/dist/server/sessions/oauthLoginFlowService.js +19 -20
  317. package/dist/server/sessions/oauthLoginFlowService.js.map +1 -1
  318. package/dist/server/sessions/piSessionEventConnections.js +68 -0
  319. package/dist/server/sessions/piSessionEventConnections.js.map +1 -0
  320. package/dist/server/sessions/piSessionManagerGateway.js +206 -27
  321. package/dist/server/sessions/piSessionManagerGateway.js.map +1 -1
  322. package/dist/server/sessions/piSessionService.js +2508 -991
  323. package/dist/server/sessions/piSessionService.js.map +1 -1
  324. package/dist/server/sessions/plainTextTheme.js +1 -1
  325. package/dist/server/sessions/plainTextTheme.js.map +1 -1
  326. package/dist/server/sessions/projectAuthService.js +35 -6
  327. package/dist/server/sessions/projectAuthService.js.map +1 -1
  328. package/dist/server/sessions/projectSettingsScope.js +88 -33
  329. package/dist/server/sessions/projectSettingsScope.js.map +1 -1
  330. package/dist/server/sessions/projectTrust.js +119 -0
  331. package/dist/server/sessions/projectTrust.js.map +1 -0
  332. package/dist/server/sessions/queuedMessageMutation.js +170 -0
  333. package/dist/server/sessions/queuedMessageMutation.js.map +1 -0
  334. package/dist/server/sessions/relaySkill.js +169 -0
  335. package/dist/server/sessions/relaySkill.js.map +1 -0
  336. package/dist/server/sessions/sessionActivityMarker.js +105 -0
  337. package/dist/server/sessions/sessionActivityMarker.js.map +1 -0
  338. package/dist/server/sessions/sessionArchiveMapping.js +16 -15
  339. package/dist/server/sessions/sessionArchiveMapping.js.map +1 -1
  340. package/dist/server/sessions/sessionArchiveStore.js +5 -1
  341. package/dist/server/sessions/sessionArchiveStore.js.map +1 -1
  342. package/dist/server/sessions/sessionArchiveTree.js +2 -2
  343. package/dist/server/sessions/sessionArchiveTree.js.map +1 -1
  344. package/dist/server/sessions/sessionCleanup.js +4 -3
  345. package/dist/server/sessions/sessionCleanup.js.map +1 -1
  346. package/dist/server/sessions/sessionCommandService.js +79 -87
  347. package/dist/server/sessions/sessionCommandService.js.map +1 -1
  348. package/dist/server/sessions/sessionEnvironmentFacts.js +5 -4
  349. package/dist/server/sessions/sessionEnvironmentFacts.js.map +1 -1
  350. package/dist/server/sessions/sessionFileHeader.js +41 -0
  351. package/dist/server/sessions/sessionFileHeader.js.map +1 -1
  352. package/dist/server/sessions/sessionImageDimensions.js +31 -0
  353. package/dist/server/sessions/sessionImageDimensions.js.map +1 -0
  354. package/dist/server/sessions/sessionMediaIndex.js +191 -0
  355. package/dist/server/sessions/sessionMediaIndex.js.map +1 -0
  356. package/dist/server/sessions/sessionMetadata.js +51 -0
  357. package/dist/server/sessions/sessionMetadata.js.map +1 -0
  358. package/dist/server/sessions/sessionModelScope.js +160 -0
  359. package/dist/server/sessions/sessionModelScope.js.map +1 -0
  360. package/dist/server/sessions/sessionNameGenerator.js +16 -35
  361. package/dist/server/sessions/sessionNameGenerator.js.map +1 -1
  362. package/dist/server/sessions/sessionNotificationStore.js +14 -11
  363. package/dist/server/sessions/sessionNotificationStore.js.map +1 -1
  364. package/dist/server/sessions/sessionReadAccess.js +41 -0
  365. package/dist/server/sessions/sessionReadAccess.js.map +1 -0
  366. package/dist/server/sessions/sessionRoutes.js +221 -78
  367. package/dist/server/sessions/sessionRoutes.js.map +1 -1
  368. package/dist/server/sessions/sessionSummaryScanner.js +62 -5
  369. package/dist/server/sessions/sessionSummaryScanner.js.map +1 -1
  370. package/dist/server/sessions/sessionTreeProjection.js +50 -49
  371. package/dist/server/sessions/sessionTreeProjection.js.map +1 -1
  372. package/dist/server/sessions/sessionUiEvents.js +22 -10
  373. package/dist/server/sessions/sessionUiEvents.js.map +1 -1
  374. package/dist/server/sessions/sessionUnreadStore.js +53 -3
  375. package/dist/server/sessions/sessionUnreadStore.js.map +1 -1
  376. package/dist/server/sessions/spawnSessionTool.js +14 -6
  377. package/dist/server/sessions/spawnSessionTool.js.map +1 -1
  378. package/dist/server/sessions/spawnSubsessionTool.js +40 -24
  379. package/dist/server/sessions/spawnSubsessionTool.js.map +1 -1
  380. package/dist/server/sessions/spawnTargetResolver.js +1 -1
  381. package/dist/server/sessions/subsessionCompletionDelivery.js +15 -0
  382. package/dist/server/sessions/subsessionCompletionDelivery.js.map +1 -0
  383. package/dist/server/sessions/subsessionCompletionInbox.js +134 -0
  384. package/dist/server/sessions/subsessionCompletionInbox.js.map +1 -0
  385. package/dist/server/sessions/subsessionProvenance.js +27 -0
  386. package/dist/server/sessions/subsessionProvenance.js.map +1 -0
  387. package/dist/server/sessions/transcriptBranchCache.js +81 -0
  388. package/dist/server/sessions/transcriptBranchCache.js.map +1 -0
  389. package/dist/server/sessions/transcriptMarkdown.js +48 -0
  390. package/dist/server/sessions/transcriptMarkdown.js.map +1 -0
  391. package/dist/server/sessions/transcriptMessages.js +57 -0
  392. package/dist/server/sessions/transcriptMessages.js.map +1 -0
  393. package/dist/server/startupLogger.js +13 -0
  394. package/dist/server/startupLogger.js.map +1 -0
  395. package/dist/server/startupUrls.js +27 -0
  396. package/dist/server/startupUrls.js.map +1 -0
  397. package/dist/server/status/machineStatusService.js +15 -7
  398. package/dist/server/status/machineStatusService.js.map +1 -1
  399. package/dist/server/storage/navigationPreferenceStore.js +138 -0
  400. package/dist/server/storage/navigationPreferenceStore.js.map +1 -0
  401. package/dist/server/storage/piPackageDismissalStore.js +78 -0
  402. package/dist/server/storage/piPackageDismissalStore.js.map +1 -0
  403. package/dist/server/terminals/{terminalService.js → managementCommandRunService.js} +98 -102
  404. package/dist/server/terminals/managementCommandRunService.js.map +1 -0
  405. package/dist/server/terminals/managementTerminalRoutes.js +91 -0
  406. package/dist/server/terminals/managementTerminalRoutes.js.map +1 -0
  407. package/dist/server/terminals/requiredTerminalService.js +103 -0
  408. package/dist/server/terminals/requiredTerminalService.js.map +1 -0
  409. package/dist/server/webSocketBridge.js +348 -0
  410. package/dist/server/webSocketBridge.js.map +1 -1
  411. package/dist/server/workbench/accessStateStore.js +33 -5
  412. package/dist/server/workbench/accessStateStore.js.map +1 -1
  413. package/dist/server/workbench/capabilitySearch.js +3 -2
  414. package/dist/server/workbench/capabilitySearch.js.map +1 -1
  415. package/dist/server/workbench/gatewayIntegration.js +40 -13
  416. package/dist/server/workbench/gatewayIntegration.js.map +1 -1
  417. package/dist/server/workbench/knowledgeSearch.js +100 -0
  418. package/dist/server/workbench/knowledgeSearch.js.map +1 -0
  419. package/dist/server/workbench/mcpClient.js +41 -8
  420. package/dist/server/workbench/mcpClient.js.map +1 -1
  421. package/dist/server/workbench/skillSync.js +11 -3
  422. package/dist/server/workbench/skillSync.js.map +1 -1
  423. package/dist/server/workbench/workbenchClient.js +130 -7
  424. package/dist/server/workbench/workbenchClient.js.map +1 -1
  425. package/dist/server/workbench/workbenchTools.js +196 -14
  426. package/dist/server/workbench/workbenchTools.js.map +1 -1
  427. package/dist/server/workingDirectory.js +3 -2
  428. package/dist/server/workingDirectory.js.map +1 -1
  429. package/dist/server/workspaceExplorerRoutes.js +53 -21
  430. package/dist/server/workspaceExplorerRoutes.js.map +1 -1
  431. package/dist/server/workspaces/fileContentService.js +31 -16
  432. package/dist/server/workspaces/fileContentService.js.map +1 -1
  433. package/dist/server/workspaces/fileOperationService.js +11 -9
  434. package/dist/server/workspaces/fileOperationService.js.map +1 -1
  435. package/dist/server/workspaces/filePreviewService.js +10 -6
  436. package/dist/server/workspaces/filePreviewService.js.map +1 -1
  437. package/dist/server/workspaces/fileSuggestions.js +77 -10
  438. package/dist/server/workspaces/fileSuggestions.js.map +1 -1
  439. package/dist/server/workspaces/fileTreeService.js +103 -15
  440. package/dist/server/workspaces/fileTreeService.js.map +1 -1
  441. package/dist/server/workspaces/normalProjectCwdResolver.js +35 -0
  442. package/dist/server/workspaces/normalProjectCwdResolver.js.map +1 -0
  443. package/dist/server/workspaces/pathAccessPolicy.js +24 -18
  444. package/dist/server/workspaces/pathAccessPolicy.js.map +1 -1
  445. package/dist/server/workspaces/pathSafety.js +6 -5
  446. package/dist/server/workspaces/pathSafety.js.map +1 -1
  447. package/dist/server/workspaces/projectPiWebConfig.js +95 -8
  448. package/dist/server/workspaces/projectPiWebConfig.js.map +1 -1
  449. package/dist/server/workspaces/projectWorkspaceCwds.js +0 -5
  450. package/dist/server/workspaces/projectWorkspaceCwds.js.map +1 -1
  451. package/dist/server/workspaces/sessionDaemonWorkspaceCatalog.js +37 -22
  452. package/dist/server/workspaces/sessionDaemonWorkspaceCatalog.js.map +1 -1
  453. package/dist/server/workspaces/workspaceCatalog.js +6 -4
  454. package/dist/server/workspaces/workspaceCatalog.js.map +1 -1
  455. package/dist/server/workspaces/workspaceChangeNotifier.js +12 -0
  456. package/dist/server/workspaces/workspaceChangeNotifier.js.map +1 -0
  457. package/dist/server/workspaces/workspaceDeletionRoutes.js +9 -70
  458. package/dist/server/workspaces/workspaceDeletionRoutes.js.map +1 -1
  459. package/dist/server/workspaces/workspaceNotificationCommand.js +64 -0
  460. package/dist/server/workspaces/workspaceNotificationCommand.js.map +1 -0
  461. package/dist/server/workspaces/workspaceProviderRegistry.js +128 -24
  462. package/dist/server/workspaces/workspaceProviderRegistry.js.map +1 -1
  463. package/dist/server/workspaces/workspaceRemovalService.js +41 -7
  464. package/dist/server/workspaces/workspaceRemovalService.js.map +1 -1
  465. package/dist/server/workspaces/workspaceRouteContext.js +1 -1
  466. package/dist/server/workspaces/workspaceRouteContext.js.map +1 -1
  467. package/dist/server/workspaces/workspaceRouteErrors.js +4 -2
  468. package/dist/server/workspaces/workspaceRouteErrors.js.map +1 -1
  469. package/dist/server/workspaces/workspaceUserError.js +18 -0
  470. package/dist/server/workspaces/workspaceUserError.js.map +1 -0
  471. package/dist/server-plugin-api.d.ts +349 -49
  472. package/dist/server-plugin-api.js +344 -2
  473. package/dist/server-plugin-api.js.map +1 -1
  474. package/dist/serverPluginRecovery.js +6 -1
  475. package/dist/serverPluginRecovery.js.map +1 -1
  476. package/dist/sessiond/activeAgentProfile.js +27 -2
  477. package/dist/sessiond/activeAgentProfile.js.map +1 -1
  478. package/dist/sessiond/config.js +4 -3
  479. package/dist/sessiond/config.js.map +1 -1
  480. package/dist/sessiond/sessionDaemonClient.js +75 -19
  481. package/dist/sessiond/sessionDaemonClient.js.map +1 -1
  482. package/dist/sessiond/sessionDaemonErrors.js +49 -0
  483. package/dist/sessiond/sessionDaemonErrors.js.map +1 -0
  484. package/dist/shared/activeAgentProfile.js +2 -34
  485. package/dist/shared/activeAgentProfile.js.map +1 -1
  486. package/dist/shared/activity.js +0 -3
  487. package/dist/shared/activity.js.map +1 -1
  488. package/dist/shared/apiTypes.js +10 -3
  489. package/dist/shared/apiTypes.js.map +1 -1
  490. package/dist/shared/capabilities.js +8 -0
  491. package/dist/shared/capabilities.js.map +1 -1
  492. package/dist/shared/federatedRoutes.js +77 -11
  493. package/dist/shared/federatedRoutes.js.map +1 -1
  494. package/dist/shared/i18n.js +41 -0
  495. package/dist/shared/i18n.js.map +1 -0
  496. package/dist/shared/machinePluginIds.js +30 -7
  497. package/dist/shared/machinePluginIds.js.map +1 -1
  498. package/dist/shared/machineStatus.js +46 -3
  499. package/dist/shared/machineStatus.js.map +1 -1
  500. package/dist/shared/navigationPreferences.js +6 -0
  501. package/dist/shared/navigationPreferences.js.map +1 -0
  502. package/dist/shared/piWebConfigParsing.js +118 -49
  503. package/dist/shared/piWebConfigParsing.js.map +1 -1
  504. package/dist/shared/piWebStatusParsing.js +33 -0
  505. package/dist/shared/piWebStatusParsing.js.map +1 -1
  506. package/dist/shared/pluginApiTypes.d.ts +87 -8
  507. package/dist/shared/pluginApiTypes.js +2 -0
  508. package/dist/shared/pluginApiTypes.js.map +1 -0
  509. package/dist/shared/pluginBackendProtocol.js +218 -2
  510. package/dist/shared/pluginBackendProtocol.js.map +1 -1
  511. package/dist/shared/pluginCatalogTypes.d.ts +49 -0
  512. package/dist/shared/pluginCatalogTypes.js +156 -0
  513. package/dist/shared/pluginCatalogTypes.js.map +1 -0
  514. package/dist/shared/pluginIds.js +10 -1
  515. package/dist/shared/pluginIds.js.map +1 -1
  516. package/dist/shared/requiredTerminalPlugin.js +6 -0
  517. package/dist/shared/requiredTerminalPlugin.js.map +1 -0
  518. package/dist/shared/serverNoticeContract.js +88 -0
  519. package/dist/shared/serverNoticeContract.js.map +1 -0
  520. package/dist/shared/sessionDefaults.js +42 -0
  521. package/dist/shared/sessionDefaults.js.map +1 -0
  522. package/dist/shared/sessionMedia.js +12 -0
  523. package/dist/shared/sessionMedia.js.map +1 -0
  524. package/dist/shared/streamingBehavior.js +8 -0
  525. package/dist/shared/streamingBehavior.js.map +1 -0
  526. package/dist/shared/themePreference.js +24 -0
  527. package/dist/shared/themePreference.js.map +1 -0
  528. package/dist/shared/thinkingLevels.js +17 -16
  529. package/dist/shared/thinkingLevels.js.map +1 -1
  530. package/dist/shared/workspaceFiles.js.map +1 -1
  531. package/dist/workspaceNotificationCli.js +95 -0
  532. package/dist/workspaceNotificationCli.js.map +1 -0
  533. package/docs/README.md +31 -0
  534. package/docs/config.md +344 -277
  535. package/docs/plugins.md +204 -930
  536. package/examples/session-bridge-plugin/README.md +20 -0
  537. package/examples/session-bridge-plugin/docs/usage.md +54 -0
  538. package/examples/session-bridge-plugin/package.json +26 -0
  539. package/examples/session-bridge-plugin/src/browser/index.ts +87 -0
  540. package/examples/session-bridge-plugin/src/browser/protocol.ts +24 -0
  541. package/examples/session-bridge-plugin/src/companion.ts +65 -0
  542. package/examples/session-bridge-plugin/src/reviewRun.ts +39 -0
  543. package/examples/session-bridge-plugin/src/server.ts +85 -0
  544. package/examples/session-bridge-plugin/src/store.ts +80 -0
  545. package/examples/session-bridge-plugin/tsconfig.json +21 -0
  546. package/examples/workspace-provider-plugin/README.md +39 -0
  547. package/examples/workspace-provider-plugin/package.json +25 -0
  548. package/examples/workspace-provider-plugin/src/browser/index.ts +69 -0
  549. package/examples/workspace-provider-plugin/src/server.ts +68 -0
  550. package/examples/workspace-provider-plugin/tsconfig.json +21 -0
  551. package/extensions/pi-web.ts +3 -1
  552. package/package.json +59 -36
  553. package/skills/README.md +28 -2
  554. package/skills/relay/SKILL.md +24 -89
  555. package/skills/relay-runner/SKILL.md +74 -0
  556. package/dist/client/assets/CodeViewer-DCl56K0Z.js +0 -4
  557. package/dist/client/assets/TerminalPanel-DCvoEjUF.js +0 -187
  558. package/dist/client/assets/index-CMvms5cF.js +0 -4325
  559. package/dist/client/assets/vendor-editor-core-vUi74DnD.js +0 -12
  560. package/dist/client/assets/vendor-editor-languages-DoaXUodB.js +0 -46
  561. package/dist/client/assets/vendor-editor-legacy-CYBnW6ZU.js +0 -1
  562. package/dist/client/assets/vendor-terminal-BrP-ENHg.css +0 -1
  563. package/dist/client/assets/vendor-terminal-D8k4UKM2.js +0 -35
  564. package/dist/pi-web-plugins/relays/package.json +0 -9
  565. package/dist/pi-web-plugins/relays/pi-web-plugin.js +0 -44
  566. package/dist/server/git/gitService.js +0 -290
  567. package/dist/server/git/gitService.js.map +0 -1
  568. package/dist/server/gitRoutes.js +0 -23
  569. package/dist/server/gitRoutes.js.map +0 -1
  570. package/dist/server/sessions/pendingAskStore.js +0 -278
  571. package/dist/server/sessions/pendingAskStore.js.map +0 -1
  572. package/dist/server/terminalProxyRoutes.js +0 -178
  573. package/dist/server/terminalProxyRoutes.js.map +0 -1
  574. package/dist/server/terminals/terminalRoutes.js +0 -164
  575. package/dist/server/terminals/terminalRoutes.js.map +0 -1
  576. package/dist/server/terminals/terminalService.js.map +0 -1
  577. package/dist/server/terminals/terminalSize.js +0 -17
  578. package/dist/server/terminals/terminalSize.js.map +0 -1
  579. package/dist/server/workspaces/gitWorktreeDiscovery.js +0 -43
  580. package/dist/server/workspaces/gitWorktreeDiscovery.js.map +0 -1
  581. package/dist/server/workspaces/workspaceService.js +0 -52
  582. package/dist/server/workspaces/workspaceService.js.map +0 -1
  583. /package/dist/{pi-web-plugins → pi-packages}/relays/vendor/README.md +0 -0
  584. /package/dist/{pi-web-plugins → pi-packages}/relays/vendor/marked.esm.js +0 -0
@@ -0,0 +1,1252 @@
1
+ {
2
+ "ui.settingsDialog.machineConnected": "已连接",
3
+ "ui.settingsDialog.machineUnchecked": "尚未检查连接",
4
+ "ui.settingsDialog.machineUnavailable": "不可用",
5
+ "ui.settingsDialog.configureMachine": "配置机器",
6
+ "ui.settingsDialog.thisGateway": "(当前网关)",
7
+ "ui.settingsDialog.machineScopeTitle": "哪些设置会改变?",
8
+ "ui.settingsDialog.machineScope": "代理权限、包、插件、文件访问和上传设置作用于此机器。网关设置、默认主题和键盘快捷键仍保存在当前服务器。浏览器主题、工作区和会话保持不变。",
9
+ "ui.settingsDialog.machineUnavailableMessage": "此机器不可用。",
10
+ "ui.settingsDialog.checkMachineConnection": "请检查机器连接,然后刷新设置。",
11
+ "ui.settingsDialog.unsavedMachineSettings": "机器设置尚未保存",
12
+ "ui.settingsDialog.confirmMachineSwitch": "{current} 的文件访问或上传设置尚未保存。是否放弃修改并配置 {next}?",
13
+ "ui.settingsDialog.discardAndSwitch": "放弃修改并切换",
14
+ "ui.settingsDialog.keepEditing": "继续编辑",
15
+ "ui.settingsDialog.pluginSettingsSaved": "已保存 {machine} 的插件设置。",
16
+ "ui.settingsDialog.keyboardSaved": "键盘设置已保存。",
17
+ "ui.settingsDialog.gatewaySaved": "网关设置已保存。地址变更需重启 Web 服务后生效。",
18
+ "ui.settingsDialog.fileSettingsSaved": "已保存 {machine} 的文件访问和上传设置。",
19
+ "ui.settingsGeneralPanel.gatewayUnavailable": "网关配置不可用,请重新加载设置后重试。",
20
+ "ui.settingsGeneralPanel.hostList": "主机列表",
21
+ "ui.settingsGeneralPanel.unsavedChanges": "有未保存的修改",
22
+ "ui.settingsPluginsPanel.requiredLabel": "{id} 为必需插件",
23
+ "ui.settingsPluginsPanel.enableLabel": "启用 {id}",
24
+ "ui.settingsPluginsPanel.checkSafeMode": "检查安全启动模式",
25
+ "ui.settingsPluginsPanel.bundledOnly": "仅加载内置服务端插件启动",
26
+ "ui.settingsPluginsPanel.noServerPlugins": "不加载服务端插件启动(包括终端)",
27
+ "ui.settingsPluginsPanel.clearSafeMode": "清除安全启动模式并正常启动",
28
+ "ui.settingsShortcutsPanel.unavailable": "快捷键设置不可用,请重新加载设置后重试。",
29
+ "ui.settingsShortcutsPanel.shortcutFor": "{title} 的快捷键",
30
+ "ui.settingsShortcutsPanel.saveFor": "保存 {title} 的快捷键",
31
+ "ui.settingsShortcutsPanel.cancelRecordingFor": "取消录制 {title} 的快捷键",
32
+ "ui.settingsShortcutsPanel.recordFor": "录制 {title} 的快捷键",
33
+ "ui.settingsShortcutsPanel.disableFor": "禁用 {title} 的快捷键",
34
+ "ui.settingsShortcutsPanel.restoreFor": "恢复 {title} 的默认快捷键",
35
+ "ui.settingsShortcutsPanel.saveFailed": "无法保存快捷键。{error}",
36
+ "ui.errorBanner.retry": "重试",
37
+ "bundled.updates.updatePiWeb": "更新 PI WEB",
38
+ "bundled.updates.confirmationAndSafeExecution": "运行推荐命令。更新需要在终端确认,可能中断活动会话;若此终端无法安全执行更新,CLI 会给出后续指引。",
39
+ "ui.settingsPackagesPanel.findCommunityPlugins": "查找社区插件",
40
+ "ui.promptEditor.attachmentSource": "附件来源",
41
+ "ui.promptEditor.chooseFromPhotoLibrary": "从照片图库选择",
42
+ "ui.promptEditor.photos": "照片",
43
+ "ui.promptEditor.takePhoto": "拍摄新照片",
44
+ "ui.promptEditor.camera": "相机",
45
+ "ui.promptEditor.browseFiles": "浏览文档及其他文件",
46
+ "ui.promptEditor.files": "文件",
47
+ "ui.promptEditor.sendMessage": "发送消息",
48
+ "ui.promptEditor.attachmentDelivery": "附件投递方式",
49
+ "ui.queuedMessages.unavailable": "当前运行时无法操作单条排队消息。",
50
+ "ui.queuedMessages.clearQueue": "清空队列",
51
+ "ui.queuedMessages.clearTitle": "清除排队消息,不停止当前工作",
52
+ "ui.queuedMessages.steer": "引导",
53
+ "ui.queuedMessages.queue": "后续",
54
+ "ui.queuedMessages.attachmentsTitle": "这条排队消息包含的附件",
55
+ "ui.queuedMessages.copy": "复制排队消息",
56
+ "ui.queuedMessages.copyTitle": "复制消息",
57
+ "ui.queuedMessages.switchToQueueTitle": "移到后续队列末尾",
58
+ "ui.queuedMessages.switchToSteerTitle": "移到引导队列末尾",
59
+ "ui.queuedMessages.switchToQueue": "改为后续",
60
+ "ui.queuedMessages.switchToSteer": "改为引导",
61
+ "ui.queuedMessages.recall": "撤回排队消息",
62
+ "ui.queuedMessages.recallTitle": "撤回这条消息的文本并清除后续排队消息",
63
+ "ui.queuedMessages.remove": "移除排队消息",
64
+ "ui.queuedMessages.removeTitle": "仅移除这条消息",
65
+ "ui.queuedMessages.copyFailed": "无法复制消息",
66
+ "ui.chatView.activityDetail": "{label}:{detail}",
67
+ "client.sessionController.queueContextChanged": "结果返回前会话上下文已改变,已保留当前草稿。",
68
+ "client.sessionController.queueResponseMismatch": "队列响应不属于原会话。",
69
+ "client.sessionController.queueActionsUnavailable": "排队消息操作已不可用。",
70
+ "client.queuedMessageActions.attachment": "1 个附件",
71
+ "client.queuedMessageActions.attachments": "{count} 个附件",
72
+ "client.queuedMessageActions.attachmentsUnknown": "附件",
73
+ "client.queuedMessageActions.recallAttachments": "撤回这条消息?仅文本会回到输入框,附件将丢失。",
74
+ "client.queuedMessageActions.recall": "撤回这条消息?",
75
+ "client.queuedMessageActions.laterSteer": "1 条后续引导消息",
76
+ "client.queuedMessageActions.laterSteers": "{count} 条后续引导消息",
77
+ "client.queuedMessageActions.queuedFollowUp": "1 条排队的后续消息",
78
+ "client.queuedMessageActions.queuedFollowUps": "{count} 条排队的后续消息",
79
+ "client.queuedMessageActions.removesLater": "同时会移除{messages}。",
80
+ "client.queuedMessageActions.and": "和",
81
+ "ui.settingsShortcutsPanel.sendBehavior": "发送行为",
82
+ "ui.settingsShortcutsPanel.sendWhileRunning": "代理运行时发送",
83
+ "ui.settingsShortcutsPanel.steerDefault": "引导(默认)",
84
+ "ui.settingsShortcutsPanel.followUp": "后续",
85
+ "ui.piWebApp.confirmRecallDraft": "撤回消息将替换尚未发送的草稿,是否继续?",
86
+ "ui.piWebApp.confirmGoBackDraft": "回到此处将替换尚未发送的草稿,是否继续?",
87
+ "ui.piWebApp.draftActionInProgress": "另一项替换草稿的操作正在进行。",
88
+ "ui.formattedText.codeBlockControls": "代码块操作",
89
+ "ui.formattedText.rawSource": "原始源码",
90
+ "ui.codeHighlight.highlighted": "语法高亮",
91
+ "ui.mermaid.diagram": "图表",
92
+ "images.attached": "附件图片",
93
+ "images.loadingDisabled": "图片加载已禁用",
94
+ "images.unavailable": "图片不可用",
95
+ "images.show": "显示图片",
96
+ "images.enlarge": "放大{description}",
97
+ "images.image": "图片",
98
+ "images.enlargeHint": "点击放大",
99
+ "images.preview": "图片预览",
100
+ "images.position": "第{index}张,共{total}张",
101
+ "images.close": "关闭图片",
102
+ "images.previousLabel": "上一张图片",
103
+ "images.nextLabel": "下一张图片",
104
+ "images.previous": "上一张",
105
+ "images.next": "下一张",
106
+ "images.code.copy": "复制代码块",
107
+ "images.code.controls": "代码块操作",
108
+ "ui.chatView.chatNavigation": "聊天导航",
109
+ "ui.chatView.jumpToTop": "跳到开头",
110
+ "ui.chatView.jumpToEnd": "跳到末尾",
111
+ "ui.chatView.followingLiveJumpToEnd": "正在跟随实时输出,跳到末尾",
112
+ "ui.chatView.jumpToEndAndFollowLive": "跳到末尾并跟随实时输出",
113
+ "ui.chatView.followingDisabled": "自动跟随已禁用",
114
+ "ui.chatView.followingLive": "正在跟随实时输出",
115
+ "ui.chatView.followingPaused": "实时跟随已暂停",
116
+ "ui.chatView.toolImageDescription": "{tool}图片,第{index}张,共{count}张",
117
+ "ui.chatView.imageSources": "来源({count})",
118
+ "ui.chatView.imageOutput": "输出{index}",
119
+ "ui.chatView.messageInformation": "消息信息",
120
+ "ui.chatView.loadedSkill": "已加载{name}",
121
+ "ui.chatView.readSkillPath": "读取{path}",
122
+ "ui.chatView.toolResult": "{toolName}结果",
123
+ "ui.chatView.toolResultFailed": " · 失败",
124
+ "ui.settingsGeneralPanel.settingsScope": "网关服务器字段用于编辑当前本地网关;文件访问和上传默认值用于编辑 {machine}。",
125
+ "ui.settingsGeneralPanel.allowedHostsHint": "每行输入一个主机名,或选择“允许所有主机名”写入 true。",
126
+ "ui.settingsGeneralPanel.fileSettingsScope": "外部文件系统根目录和上传默认值会保存到 {machine}。",
127
+ "ui.settingsGeneralPanel.allowedPathsHint": "{machine} 上允许用于绝对路径 @ 补全和工作区外文件读取的目录。每行输入一个绝对路径、Windows 绝对路径或以 ~ 开头的路径。留空则默认禁止外部路径。",
128
+ "ui.settingsGeneralPanel.uploadFolderHint": "{machine} 上手动上传文件使用的工作区相对目录。留空则使用 PI WEB 默认值 {folder}。",
129
+ "ui.settingsPluginsPanel.noPlugins": "在 {machine} 上未发现 PI WEB 浏览器插件。",
130
+ "ui.settingsPluginsPanel.configurationHint": "{machine} 上的配置键:plugins。除非条目将 enabled 设为 false,插件默认启用。",
131
+ "ui.settingsPackagesPanel.installationScope": "安装操作在 {machine} 上运行并使用 Pi 的默认包位置,等同于 pi install <source>。PI WEB 不会要求你选择安装位置。",
132
+ "ui.settingsPackagesPanel.listScope": "此列表来自 {machine} 上的 Pi 包管理器设置。",
133
+ "ui.settingsPackagesPanel.refreshingPackages": "正在从 {machine} 刷新 Pi 包…",
134
+ "ui.settingsPackagesPanel.loadingPackages": "正在从 {machine} 加载 Pi 包…",
135
+ "ui.settingsPackagesPanel.noPackages": "{machine} 的 Pi 设置中尚未配置 Pi 包。",
136
+ "ui.piPackageSettings.targetSuffix": "({name})",
137
+ "ui.askUserCard.answeredCount": "已回答 {count}/{total}",
138
+ "ui.askUserCard.skipQuestions": "跳过问题",
139
+ "ui.askUserCard.closedQuestions": "已关闭 · {count} 个问题",
140
+ "ui.askUserCard.multipleChoicesAllowed": "可选择多项",
141
+ "ui.askUserCard.questionsSkipped": "已跳过问题",
142
+ "ui.askUserCard.answers": "回答",
143
+ "ui.authDialog.credentialDestination": "将 API key 存入{scope}的 auth.json",
144
+ "ui.authDialog.apiKeyInstructions": "输入 {provider} 的 API key。它会保存到{scope}的凭据文件。",
145
+ "ui.chatView.queuedDialogCount": "另有 {count} 个扩展对话框正在排队",
146
+ "ui.chatView.queuedMessageCount": "{count} 条消息正在排队",
147
+ "ui.chatView.messageRange": "显示消息 {from}–{to},共 {total} 条",
148
+ "ui.sessionCleanupDialog.skippedBusyCount": "已跳过 {count} 个忙碌会话。",
149
+ "ui.sessionCleanupDialog.selectedProjects": "已选 {count} / {total} 个项目",
150
+ "ui.sessionCleanupDialog.resultCounts": "已归档 {archived} 个会话;已永久删除 {deleted} 个已归档会话。",
151
+ "ui.sessionList.waitingForSessions": "正在等待新会话创建",
152
+ "ui.sessionList.waitingForSession": "正在等待会话创建",
153
+ "ui.sessionList.archiveDescendantCount": "连同后代归档({count})",
154
+ "ui.sessionList.loadMoreCount": "加载更多(剩余 {count})",
155
+ "ui.workspaceFilesPanel.selectedFolderPath": "已选择文件夹:{path}",
156
+ "ui.workspaceFilesPanel.imagePreviewLimit": "图片过大,无法预览:{size} · 上限 {limit}",
157
+ "ui.toolExecutionView.lineCount": "{count} 行",
158
+ "ui.toolExecutionView.showAllDiffLines": "显示全部 {count} 行 diff",
159
+ "ui.terminalPanel.lineCount": "{count} 行",
160
+ "ui.statusBar.queuedCount": "{count} 条排队中",
161
+ "ui.sessionSearchDialog.searchError": "搜索失败:{error}",
162
+ "ui.sessionSearchDialog.matchCount": "{count} 条匹配",
163
+ "ui.workspacePanel.noToolsAreAvailableForThisWorkspace": "此工作区没有可用工具。",
164
+ "ui.workspacePanel.noWorkspaceToolsAvailable": "没有可用的工作区工具",
165
+ "ui.workspacePanel.trySelectingTheWorkspaceAgain": "请尝试重新选择工作区。",
166
+ "ui.workspacePanel.workspaceToolsUnavailable": "工作区工具不可用",
167
+ "ui.workspacePanel.selectAWorkspaceToViewFilesGitOr": "选择工作区来查看文件、Git 或终端。",
168
+ "ui.workspacePanel.selectWorkspace": "选择工作区",
169
+ "ui.workspaceList.copied": "已复制",
170
+ "ui.workspaceList.details": "详情",
171
+ "ui.workspaceList.copyPath": "复制路径",
172
+ "ui.workspaceList.path": "路径",
173
+ "ui.workspaceList.branch": "分支",
174
+ "ui.workspaceList.workspace": "工作区",
175
+ "ui.workspaceList.copyBranch": "复制分支",
176
+ "ui.workspaceList.copyWorkspaceLabel": "复制工作区标签",
177
+ "ui.workspaceList.deleteWorkspace": "删除工作区",
178
+ "ui.workspaceList.deleting": "正在删除…",
179
+ "ui.workspaceList.deletingWorkspace": "正在删除工作区",
180
+ "ui.workspaceList.actionsAndDetailsFor": "{label}的操作和详情",
181
+ "ui.workspaceList.workspaceActionsAndDetails": "工作区操作和详情",
182
+ "ui.workspaceList.workspaceActive": "工作区活动中",
183
+ "ui.workspaceList.workspaceTerminalActive": "工作区终端活动中",
184
+ "ui.workspaceList.unreadSessionsInThisWorkspace": "此工作区中有未读会话",
185
+ "ui.workspaceList.noWorkspaceSelected": "未选择工作区",
186
+ "ui.workspaceGitPanel.detachedHead": "游离 HEAD",
187
+ "ui.workspaceGitPanel.truncated": " · 已截断",
188
+ "ui.workspaceGitPanel.unstaged": "未暂存",
189
+ "ui.workspaceGitPanel.staged": "已暂存",
190
+ "ui.workspaceGitPanel.diff": "差异",
191
+ "ui.workspaceGitPanel.noStagedOrUnstagedDiff": "没有已暂存或未暂存的差异。",
192
+ "ui.workspaceGitPanel.loadingDiff": "正在加载差异…",
193
+ "ui.workspaceGitPanel.selectAChangedFile": "请选择已更改的文件。",
194
+ "ui.workspaceGitPanel.submodule": "子模块",
195
+ "ui.workspaceGitPanel.noChanges": "没有更改。",
196
+ "ui.workspaceGitPanel.notAGitRepository": "不是 Git 仓库。",
197
+ "ui.workspaceGitPanel.statusNotLoaded": "未加载状态。",
198
+ "ui.workspaceGitPanel.expandAll": "全部展开",
199
+ "ui.workspaceGitPanel.collapseAll": "全部折叠",
200
+ "ui.workspaceGitPanel.tree": "树",
201
+ "ui.workspaceGitPanel.list": "列表",
202
+ "ui.workspaceGitPanel.changedFilesView": "变更文件视图",
203
+ "ui.workspaceGitPanel.refresh": "刷新",
204
+ "ui.workspaceGitPanel.stale": "已过期",
205
+ "ui.workspaceGitPanel.gitUnavailable": "Git 不可用。",
206
+ "ui.workspaceFilesPanel.writtenTo": "已写入 {path}",
207
+ "ui.workspaceFilesPanel.cancelled": "已取消",
208
+ "ui.workspaceFilesPanel.error": "错误",
209
+ "ui.workspaceFilesPanel.done": "完成",
210
+ "ui.workspaceFilesPanel.pending": "等待中",
211
+ "ui.workspaceFilesPanel.failed": "失败",
212
+ "ui.workspaceFilesPanel.uploadingFiles": "正在上传 {count} 个文件",
213
+ "ui.workspaceFilesPanel.cancelledUploadOfFiles": "已取消上传 {count} 个文件",
214
+ "ui.workspaceFilesPanel.filesFailedToUpload": "{count} 个文件上传失败",
215
+ "ui.workspaceFilesPanel.uploadedFiles": "已上传 {count} 个文件",
216
+ "ui.workspaceFilesPanel.uploadsInProgress": "{uploading} 项正在上传",
217
+ "ui.workspaceFilesPanel.recentUploads": "最近 {length} 项",
218
+ "ui.workspaceFilesPanel.binaryFile": "二进制文件:{path} · {size}",
219
+ "ui.workspaceFilesPanel.loading": "正在加载 {selectedFilePath}…",
220
+ "ui.workspaceFilesPanel.selectAFile": "请选择文件。",
221
+ "ui.workspaceFilesPanel.selectAtLeastOneFileToUpload": "请至少选择一个要上传的文件。",
222
+ "ui.workspaceFilesPanel.deleteThisCannotBeUndone": "删除{kind} {current}?此操作无法撤销。",
223
+ "ui.workspaceFilesPanel.file": "文件",
224
+ "ui.workspaceFilesPanel.emptyFolder": "空文件夹",
225
+ "ui.workspaceFilesPanel.moveOrRenameFileTo": "移动或重命名文件到",
226
+ "ui.workspaceFilesPanel.moveOrRenameFolderTo": "移动或重命名文件夹到",
227
+ "ui.workspaceFilesPanel.newFolderPath": "新建文件夹路径",
228
+ "ui.workspaceFilesPanel.newFilePath": "新建文件路径",
229
+ "ui.workspaceFilesPanel.upload": "上传",
230
+ "ui.workspaceFilesPanel.cancel": "取消",
231
+ "ui.workspaceFilesPanel.filesToUpload": "待上传文件",
232
+ "ui.workspaceFilesPanel.overwriteExistingFiles": "覆盖现有文件",
233
+ "ui.workspaceFilesPanel.createParentFolders": "创建父文件夹",
234
+ "ui.workspaceFilesPanel.relativeToTheWorkspaceLeaveBlankToUpload": "相对于工作区。留空将上传到工作区根目录。",
235
+ "ui.workspaceFilesPanel.destinationFolder": "目标文件夹",
236
+ "ui.workspaceFilesPanel.cancelUpload": "取消上传",
237
+ "ui.workspaceFilesPanel.files": " {fileCount} 个文件",
238
+ "ui.workspaceFilesPanel.review": "检查",
239
+ "ui.workspaceFilesPanel.reviewFileUpload": "检查文件上传",
240
+ "ui.workspaceFilesPanel.close": "关闭",
241
+ "ui.workspaceFilesPanel.workspaceRoot": "工作区根目录",
242
+ "ui.workspaceFilesPanel.workspaceUploads": "工作区上传",
243
+ "ui.workspaceFilesPanel.truncated": " · 已截断",
244
+ "ui.workspaceFilesPanel.text": "文本",
245
+ "ui.workspaceFilesPanel.filesWillUploadImmediatelyToTheDefaultFolder": "文件将立即上传到默认文件夹。",
246
+ "ui.workspaceFilesPanel.dropFilesToUpload": "拖放文件以上传",
247
+ "ui.workspaceFilesPanel.noFilesLoaded": "未加载文件。",
248
+ "ui.workspaceFilesPanel.refresh": "刷新",
249
+ "ui.workspaceFilesPanel.selectAFileOrFolderToDelete": "请选择要删除的文件或文件夹",
250
+ "ui.workspaceFilesPanel.delete": "删除 {selectedPath}",
251
+ "ui.workspaceFilesPanel.deleteFileOrFolder": "删除文件或文件夹",
252
+ "ui.workspaceFilesPanel.selectAFileOrFolderToMoveOr": "请选择要移动或重命名的文件或文件夹",
253
+ "ui.workspaceFilesPanel.moveOrRename": "移动或重命名 {selectedPath}",
254
+ "ui.workspaceFilesPanel.moveOrRename2": "移动或重命名",
255
+ "ui.workspaceFilesPanel.selectAFileToDownload": "请选择要下载的文件",
256
+ "ui.workspaceFilesPanel.download": "下载 {selectedPath}",
257
+ "ui.workspaceFilesPanel.downloadFile": "下载文件",
258
+ "ui.workspaceFilesPanel.uploadFiles": "上传文件",
259
+ "ui.workspaceFilesPanel.newFolder": "新建文件夹",
260
+ "ui.workspaceFilesPanel.newFile": "新建文件",
261
+ "ui.workspaceFilesPanel.stale": "已过期",
262
+ "ui.workspaceFilesPanel.filesUnavailable": "文件不可用。",
263
+ "ui.unifiedDiffViewer.unifiedDiff": "统一差异",
264
+ "ui.unifiedDiffViewer.noDiff": "没有差异。",
265
+ "ui.toolExecutionView.pending": "等待中",
266
+ "ui.toolExecutionView.running": "运行中",
267
+ "ui.toolExecutionView.failed": "失败",
268
+ "ui.toolExecutionView.done": "完成",
269
+ "ui.toolExecutionView.1Edit": "1 处编辑",
270
+ "ui.toolExecutionView.edits": "{length} 处编辑",
271
+ "ui.toolExecutionView.input": "输入",
272
+ "ui.toolExecutionView.command": "命令",
273
+ "ui.toolExecutionView.file": "文件",
274
+ "ui.toolExecutionView.copyDiff": "复制 diff",
275
+ "ui.toolExecutionView.copied": "已复制",
276
+ "ui.toolExecutionView.fullDiff": "完整 diff",
277
+ "ui.toolExecutionView.showingLines": "显示 {length} / {value2} 行",
278
+ "ui.toolExecutionView.result": "结果",
279
+ "ui.toolExecutionView.details": "详情",
280
+ "ui.toolExecutionView.appliedDiff": "已应用 diff",
281
+ "ui.toolExecutionView.previewDiff": "预览 diff",
282
+ "ui.toolExecutionView.theAppliedDiffDiffersFromThePreview": "实际应用的 diff 与预览不同。",
283
+ "ui.terminalSoftKeys.terminalShortcuts": "终端快捷键",
284
+ "ui.terminalPanel.invalidTerminalMessage": "无效的终端消息",
285
+ "ui.terminalPanel.commandFailed": "命令失败{exitCode}",
286
+ "ui.terminalPanel.exitCode": ",退出码 {exitCode}",
287
+ "ui.terminalPanel.commandSucceeded": "命令已成功{exitCode}",
288
+ "ui.terminalPanel.loadingTerminals": "正在加载终端…",
289
+ "ui.terminalPanel.terminal": "+ 终端",
290
+ "ui.terminalPanel.exited": " · 已退出",
291
+ "ui.terminalPanel.keys": "按键",
292
+ "ui.terminalPanel.showTerminalShortcuts": "显示终端快捷键",
293
+ "ui.terminalPanel.hideTerminalShortcuts": "隐藏终端快捷键",
294
+ "ui.terminalPanel.selectableTerminalOutput": "可选择的终端输出",
295
+ "ui.terminalPanel.terminalCopyMode": "终端复制模式",
296
+ "ui.terminalPanel.copyAll": "全部复制",
297
+ "ui.terminalPanel.refresh": "刷新",
298
+ "ui.terminalPanel.snapshotHoldToSelectText": "快照 · 长按并选择文本",
299
+ "ui.terminalPanel.terminalCopyControls": "终端复制控件",
300
+ "ui.terminalPanel.select": "选择",
301
+ "ui.terminalPanel.done": "完成",
302
+ "ui.terminalPanel.openTerminalCopyMode": "打开终端复制模式",
303
+ "ui.terminalPanel.closeTerminalCopyMode": "关闭终端复制模式",
304
+ "ui.terminalPanel.selectAndCopyTerminalOutput": "选择并复制终端输出",
305
+ "ui.terminalPanel.returnToInteractiveTerminal": "返回交互式终端",
306
+ "ui.terminalPanel.unableToCopyTerminalOutput": "无法复制终端输出。",
307
+ "ui.terminalPanel.copiedAllTerminalOutput": "已复制全部终端输出。",
308
+ "ui.terminalPanel.noTerminalOutputToCopy": "没有可复制的终端输出。",
309
+ "ui.terminalPanel.continueInShell": "在命令行中继续",
310
+ "ui.terminalPanel.startingShell": "正在启动命令行…",
311
+ "ui.terminalPanel.outputPreservedContinueInTheShellToInspect": "输出已保留。可继续进入命令行查看或运行后续命令。",
312
+ "ui.terminalPanel.cancelCommand": "取消命令",
313
+ "ui.terminalPanel.cancellationSent": "已发送取消…",
314
+ "ui.terminalPanel.orUseTheButtonToCancel": "或使用按钮取消。",
315
+ "ui.terminalPanel.commandRunningPress": "命令正在运行。按",
316
+ "ui.terminalPanel.terminalError": "\r\n[终端错误:{messageStringerror}]",
317
+ "ui.terminalPanel.terminalError2": "\r\n[终端错误:{message}]",
318
+ "ui.terminalPanel.processExited": "\r\n[进程已退出{exitCode}]",
319
+ "ui.authDialog.error": "错误",
320
+ "ui.authDialog.cancelled": "已取消",
321
+ "ui.authDialog.customKey": "✓ 自定义 key",
322
+ "ui.authDialog.runtime": "✓ 运行时",
323
+ "ui.authDialog.environment": "✓ 环境变量{label}",
324
+ "ui.authDialog.configured": "✓ 已配置",
325
+ "ui.authDialog.subscription": "订阅",
326
+ "ui.authDialog.cancel": "取消",
327
+ "ui.authDialog.close": "关闭",
328
+ "ui.authDialog.submit": "提交",
329
+ "ui.authDialog.relatedInformation": "相关信息",
330
+ "ui.authDialog.startingLogin": "正在启动登录流程…",
331
+ "ui.authDialog.enterCode": "输入代码:",
332
+ "ui.authDialog.openThisAuthorizationLink": "打开此授权链接:",
333
+ "ui.authDialog.noSavedCredentialsEnvironmentVariablesAndModelsJson": "没有已保存的凭据。环境变量和 models.json 设置不会变化。",
334
+ "ui.authDialog.saveApiKey": "保存 API key",
335
+ "ui.authDialog.saving": "正在保存…",
336
+ "ui.authDialog.noProvidersAvailable": "没有可用提供商。",
337
+ "ui.authDialog.useApiKey": "使用 API key",
338
+ "ui.authDialog.chatgptPlusProClaudeProMaxOrGithub": "ChatGPT Plus/Pro、Claude Pro/Max 或 GitHub Copilot",
339
+ "ui.authDialog.useSubscription": "使用订阅",
340
+ "ui.authDialog.currentProject": "当前项目",
341
+ "ui.authDialog.currentMode": "当前模式",
342
+ "ui.authDialog.removeSavedProviderAuthentication": "移除已保存的提供商认证{scope}",
343
+ "ui.authDialog.logInTo": "登录 {providerName}{scope}",
344
+ "ui.authDialog.apiKeyFor": "{name} 的 API key{scope}",
345
+ "ui.authDialog.selectApiKeyProvider": "选择 API key 提供商",
346
+ "ui.authDialog.selectSubscriptionProvider": "选择订阅提供商",
347
+ "ui.authDialog.selectProviderAuthentication": "选择提供商认证",
348
+ "ui.authDialog.configureProviderAuthentication": "配置提供商认证{scope}",
349
+ "ui.projectDialog.addProject": "添加项目",
350
+ "ui.projectDialog.cancel": "取消",
351
+ "ui.projectDialog.createFolderIfItDoesNotExist": "如果文件夹不存在则创建",
352
+ "ui.projectDialog.noMatchingFoldersEnterANewPathTo": "没有匹配的文件夹。输入新路径即可创建。",
353
+ "ui.projectDialog.loadingFolders": "正在加载文件夹…",
354
+ "ui.projectDialog.pathToProjectOrCodeProject": "/path/to/project 或 ~/code/project",
355
+ "ui.projectDialog.projectFolder": "项目文件夹",
356
+ "ui.projectDialog.close": "关闭",
357
+ "ui.askUserCard.draftAnswerNotSent": "草稿回答 · 未发送",
358
+ "ui.askUserCard.other": "自定义:",
359
+ "ui.askUserCard.unanswered": "未回答",
360
+ "ui.askUserCard.aNewerQuestionSetReplacedThisOneThe": "较新的问题组已替代此问题组。下方显示的草稿回答未发送给模型。",
361
+ "ui.askUserCard.questions": "问题",
362
+ "ui.askUserCard.cancelled": "已取消",
363
+ "ui.askUserCard.superseded": "已被替代",
364
+ "ui.askUserCard.answersSent": "回答已发送",
365
+ "ui.askUserCard.sendAnyway": "仍然发送",
366
+ "ui.askUserCard.sending": "正在发送…",
367
+ "ui.askUserCard.keepEditing": "继续编辑",
368
+ "ui.askUserCard.theFollowingQuestionsAreUnanswered": "以下问题尚未回答:",
369
+ "ui.askUserCard.confirmPartialAnswers": "确认部分回答",
370
+ "ui.askUserCard.customAnswer": "自定义回答",
371
+ "ui.askUserCard.other2": "自定义",
372
+ "ui.askUserCard.sendAnswers": "发送回答",
373
+ "ui.piWebApp.local": "本机",
374
+ "ui.piWebApp.chat": "聊天",
375
+ "ui.piWebApp.sessions": "会话",
376
+ "ui.piWebApp.current": " ✓ 当前",
377
+ "ui.piWebApp.selectThinkingLevel": "选择思考级别",
378
+ "ui.piWebApp.autoPair": "自动配对",
379
+ "ui.piWebApp.active": "生效中",
380
+ "ui.piWebApp.selected": "已选择",
381
+ "ui.piWebApp.enabledFollowsTheSystemPreference": "已开启 · {name} 跟随系统{systemPrefersLight}偏好。",
382
+ "ui.piWebApp.dark": "深色",
383
+ "ui.piWebApp.light": "浅色",
384
+ "ui.piWebApp.enabledButTheSelectedThemeHasNoLight": "已开启,但所选主题没有明暗配对,因此会保持当前主题。",
385
+ "ui.piWebApp.followTheSystemLightDarkPreferenceWhenThe": "当所选主题有配对主题时,跟随系统明暗偏好。",
386
+ "ui.piWebApp.auto": "自动 {auto}",
387
+ "ui.piWebApp.close": "关闭",
388
+ "ui.piWebApp.on": "✓ 开启",
389
+ "ui.piWebApp.selectTheme": "选择主题",
390
+ "ui.piWebApp.selectModel": "选择模型",
391
+ "ui.piWebApp.operationFailed": "操作失败:{message}",
392
+ "ui.piWebApp.removeThisOnlyRemovesItFromTheCurrent": "移除 {name}?\n\n这只会从当前 PI WEB 网关移除它。",
393
+ "ui.piWebApp.workspaceDeletionFailedCheckTerminalOutput": "工作区删除失败。请查看终端输出。",
394
+ "ui.piWebApp.failedToStartWorkspaceDeletion": "启动工作区删除失败:{errorMessageerror}",
395
+ "ui.piWebApp.deleteWorkspaceThisRunsGitWorktreeRemoveAnd": "删除工作区 {label}?\n\n此操作将运行 git worktree remove 并删除:\n{path}\n\n不会删除 Git 分支。",
396
+ "ui.piWebApp.onlySecondaryGitWorktreesCanBeDeleted": "只能删除辅助 Git 工作树",
397
+ "ui.piWebApp.navigate": "导航",
398
+ "ui.piWebApp.moveKeyboardFocusToTheSessionList": "将键盘焦点移到会话列表",
399
+ "ui.piWebApp.focusSessions": "聚焦会话",
400
+ "ui.piWebApp.moveKeyboardFocusToTheWorkspaceList": "将键盘焦点移到工作区列表",
401
+ "ui.piWebApp.focusWorkspaces": "聚焦工作区",
402
+ "ui.piWebApp.moveKeyboardFocusToTheProjectList": "将键盘焦点移到项目列表",
403
+ "ui.piWebApp.focusProjects": "聚焦项目",
404
+ "ui.piWebApp.moveKeyboardFocusToTheMachineSelector": "将键盘焦点移到机器选择器",
405
+ "ui.piWebApp.focusMachines": "聚焦机器",
406
+ "ui.piWebApp.view": "视图",
407
+ "ui.piWebApp.restoreDefaultWidthsForAllSidePanels": "将所有侧边面板恢复为默认宽度",
408
+ "ui.piWebApp.resetPanelWidths": "重置面板宽度",
409
+ "ui.piWebApp.restoreTheDefaultWorkspacePanelWidth": "将工作区面板恢复为默认宽度",
410
+ "ui.piWebApp.resetWorkspacePanelWidth": "重置工作区面板宽度",
411
+ "ui.piWebApp.restoreTheDefaultNavigationPanelWidth": "将导航面板恢复为默认宽度",
412
+ "ui.piWebApp.resetNavigationPanelWidth": "重置导航面板宽度",
413
+ "ui.piWebApp.previewAndManuallyCleanUpIdleOrArchived": "预览并手动清理所选机器上的空闲或已归档会话",
414
+ "ui.piWebApp.cleanUpSessions": "清理会话",
415
+ "ui.piWebApp.preferences": "偏好设置",
416
+ "ui.piWebApp.changeTheLocalPasswordRequiredForNormalMode": "更改进入普通模式所需的本地密码",
417
+ "ui.piWebApp.changeNormalModePassword": "修改普通模式密码",
418
+ "ui.piWebApp.selectAProjectAndWorkspaceToStartA": "选择项目和工作区以开始会话。",
419
+ "ui.piWebApp.addAProjectToStartASession": "添加项目以启动会话。",
420
+ "ui.piWebApp.selectAWorkspaceToStartASession": "选择工作区以启动会话。",
421
+ "ui.piWebApp.selectOrStartASession": "选择或启动会话。",
422
+ "ui.piWebApp.loadingProjects": "正在加载项目…",
423
+ "ui.piWebApp.selectAWorkspaceInToViewFilesGit": "选择 {name} 中的工作区,以查看文件、Git 或终端。",
424
+ "ui.piWebApp.selectWorkspace": "选择工作区",
425
+ "ui.piWebApp.noWorkspacesAvailableForTrySelectingOrAdding": "{name} 没有可用工作区。请尝试重新选择该项目,或重新添加它。",
426
+ "ui.piWebApp.noWorkspacesFound": "未找到工作区",
427
+ "ui.piWebApp.preparingWorkspaceToolsFor": "正在为 {name} 准备工作区工具。",
428
+ "ui.piWebApp.loadingWorkspaces": "正在加载工作区…",
429
+ "ui.piWebApp.selectAProjectInTheSidebarThenA": "从侧边栏选择一个项目,然后选择工作区来查看文件、Git 或终端。",
430
+ "ui.piWebApp.selectProject": "选择项目",
431
+ "ui.piWebApp.useActionsAddProjectToAddAFolder": "使用“操作 → 添加项目”添加文件夹。选择工作区后,工作区工具会显示在这里。",
432
+ "ui.piWebApp.noProjectsYet": "还没有项目",
433
+ "ui.piWebApp.findingProjectsYouAddedToPiWeb": "正在查找你已添加到 PI WEB 的项目。",
434
+ "ui.piWebApp.failedToRunCleanup": "运行清理失败:{errorMessageerror}",
435
+ "ui.piWebApp.previewBeforeRunningCleanup": "运行清理前请先预览。",
436
+ "ui.piWebApp.failedToPreviewCleanup": "预览清理失败:{errorMessageerror}",
437
+ "ui.piWebApp.updateAndRestartPiWebOnBeforeDeleting": "请更新并重启 {machineName} 上的 Pi-Web 后再删除已归档会话。",
438
+ "ui.piWebApp.thisMachine": "此机器",
439
+ "ui.piWebApp.collapseWorkspacePanel": "折叠工作区面板",
440
+ "ui.piWebApp.expandWorkspacePanel": "展开工作区面板",
441
+ "ui.piWebApp.resizeWorkspacePanel": "调整工作区面板大小",
442
+ "ui.piWebApp.collapseNavigationPanel": "折叠导航面板",
443
+ "ui.piWebApp.expandNavigationPanel": "展开导航面板",
444
+ "ui.piWebApp.resizeNavigationPanel": "调整导航面板大小",
445
+ "ui.piWebApp.noMachineFoundForRunningTheTerminalCommand": "找不到用于运行终端命令的机器",
446
+ "ui.piWebApp.isUnavailableReconnecting": "{machineName} 暂不可用,正在重新连接…",
447
+ "ui.piWebApp.isStillUnavailable": "{machineName} 仍不可用。",
448
+ "ui.piWebApp.remoteMachine": "远程机器",
449
+ "ui.piWebApp.failedToCheckNormalModePassword": "检查普通模式密码失败:{errorMessageerror}",
450
+ "ui.normalAuthDialog.passwordsDoNotMatch": "两次输入的密码不一致。",
451
+ "ui.normalAuthDialog.enterAPassword": "请输入密码。",
452
+ "ui.normalAuthDialog.enterYourCurrentPassword": "请输入当前密码。",
453
+ "ui.normalAuthDialog.enterPassword": "输入密码",
454
+ "ui.normalAuthDialog.changeAccessPassword": "修改进入密码",
455
+ "ui.normalAuthDialog.setAccessPassword": "设置进入密码",
456
+ "ui.normalAuthDialog.enter": "进入",
457
+ "ui.normalAuthDialog.savePassword": "保存密码",
458
+ "ui.normalAuthDialog.setPasswordAndEnter": "设置并进入",
459
+ "ui.normalAuthDialog.processing": "正在处理...",
460
+ "ui.normalAuthDialog.cancel": "取消",
461
+ "ui.normalAuthDialog.confirmPassword": "确认密码",
462
+ "ui.normalAuthDialog.newPassword": "新密码",
463
+ "ui.normalAuthDialog.password": "密码",
464
+ "ui.normalAuthDialog.currentPassword": "当前密码",
465
+ "ui.normalAuthDialog.close": "关闭",
466
+ "ui.normalAuthDialog.normalMode": "普通模式",
467
+ "ui.machineSwitcher.unknown": "未知",
468
+ "ui.machineSwitcher.error": "错误",
469
+ "ui.machineSwitcher.offline": "离线",
470
+ "ui.machineSwitcher.online": "在线",
471
+ "ui.machineSwitcher.machineSwitchMachine": "机器:{name}。切换机器。",
472
+ "ui.machineSwitcher.machineActive": "机器活动中",
473
+ "ui.machineSwitcher.machineTerminalActive": "机器终端活动中",
474
+ "ui.machineSwitcher.unreadSessionsOnThisMachine": "此机器上有未读会话",
475
+ "ui.machineSwitcher.remove": "移除",
476
+ "ui.machineSwitcher.remove2": "移除 {name}",
477
+ "ui.machineSwitcher.actionsFor": "{name}的操作",
478
+ "ui.machineSwitcher.machineActions": "机器操作",
479
+ "ui.machineSwitcher.remotePiWeb": "远程 PI WEB",
480
+ "ui.machineSwitcher.localPiWeb": "本地 PI WEB",
481
+ "ui.machineSwitcher.machines": "机器",
482
+ "ui.machineList.machines": "机器",
483
+ "ui.machineList.noMachineSelected": "未选择机器",
484
+ "ui.machineList.remove": "移除",
485
+ "ui.machineList.remove2": "移除 {name}",
486
+ "ui.machineList.actionsFor": "{name} 的操作",
487
+ "ui.machineList.machineActions": "机器操作",
488
+ "ui.machineList.machineActive": "机器活动中",
489
+ "ui.machineList.machineTerminalActive": "机器终端活动中",
490
+ "ui.machineList.unreadSessionsOnThisMachine": "此机器上有未读会话",
491
+ "ui.machineList.remotePiWeb": "远程 PI WEB",
492
+ "ui.machineList.localPiWeb": "本机 PI WEB",
493
+ "ui.machineList.unknown": "未知",
494
+ "ui.machineList.error": "错误",
495
+ "ui.machineList.offline": "离线",
496
+ "ui.machineList.online": "在线",
497
+ "ui.machineDialog.doNotIncludeAQueryStringOrFragment": "不要包含查询字符串或片段。",
498
+ "ui.machineDialog.doNotIncludeCredentialsInTheMachineUrl": "机器 URL 中不要包含凭据。",
499
+ "ui.machineDialog.useAnHttpOrHttpsUrl": "请使用 http:// 或 https:// URL。",
500
+ "ui.machineDialog.enterAValidUrlIncludingHttpOrHttps": "请输入包含 http:// 或 https:// 的有效 URL。",
501
+ "ui.machineDialog.remotePiWebUrlIsRequired": "必须填写远程 PI WEB URL。",
502
+ "ui.machineDialog.addMachine": "添加机器",
503
+ "ui.machineDialog.adding": "正在添加…",
504
+ "ui.machineDialog.cancel": "取消",
505
+ "ui.machineDialog.afterEnteringAUrlPiWebSuggestsA": "输入 URL 后,PI WEB 会建议机器名称,并允许添加可选的 bearer token。",
506
+ "ui.machineDialog.pasteOnlyTheTokenValuePiWebSends": "只粘贴令牌值;PI WEB 会通过 Authorization: Bearer 请求头发送。",
507
+ "ui.machineDialog.leaveBlankIfTheRemoteMachineDoesNot": "如果远程机器不需要令牌,可留空",
508
+ "ui.machineDialog.optional": "可选",
509
+ "ui.machineDialog.suggestedFromTheUrlChangeItToA": "根据 URL 自动建议。可以改成更友好的侧栏名称。",
510
+ "ui.machineDialog.developmentMachine": "开发机",
511
+ "ui.machineDialog.machineName": "机器名称",
512
+ "ui.machineDialog.enterAnAccessibleBaseUrlIncludingHttpOr": "先输入可访问的基础 URL,包含 http:// 或 https://。",
513
+ "ui.machineDialog.remotePiWebUrl": "远程 PI WEB URL",
514
+ "ui.machineDialog.close": "关闭",
515
+ "ui.formattedText.copyCodeBlock": "复制代码块",
516
+ "ui.formattedText.failedToCopyCodeBlock": "复制代码块失败",
517
+ "ui.formattedText.codeBlockCopied": "已复制代码块",
518
+ "ui.extensionDialogCard.close": "关闭",
519
+ "ui.extensionDialogCard.send": "发送",
520
+ "ui.extensionDialogCard.sending": "发送中…",
521
+ "ui.extensionDialogCard.cancel": "取消",
522
+ "ui.extensionDialogCard.yourAnswer": "你的回答",
523
+ "ui.extensionDialogCard.options": "选项",
524
+ "ui.extensionDialogCard.yes": "是",
525
+ "ui.extensionDialogCard.no": "否",
526
+ "ui.extensionDialogCard.autoCancelsInS": "{seconds} 秒后自动取消",
527
+ "ui.extensionDialogCard.autoCancelsInMS": "{minutes} 分 {seconds60} 秒后自动取消",
528
+ "ui.extensionDialogCard.autoCancelsInHM": "{hours} 小时 {minutes} 分钟后自动取消",
529
+ "ui.extensionDialogCard.autoCancellingSoon": "即将自动取消",
530
+ "ui.extensionDialogCard.theSessionEndedBeforeAnAnswer": "会话在回答前已结束。",
531
+ "ui.extensionDialogCard.theTurnWasAbortedBeforeAnAnswer": "本轮运行在回答前已中止。",
532
+ "ui.extensionDialogCard.noAnswerReceivedBeforeTheDialogTimedOut": "对话框超时前未收到回答。",
533
+ "ui.extensionDialogCard.cancelledWithoutAnAnswer": "已取消,未回答。",
534
+ "ui.extensionDialogCard.answer": "回答:{answer}",
535
+ "ui.extensionDialogCard.answerWasEmpty": "回答为空。",
536
+ "ui.extensionDialogCard.closedWithoutARecordedAnswer": "已关闭,但未记录回答。",
537
+ "ui.extensionDialogCard.sessionEnded": "会话已结束",
538
+ "ui.extensionDialogCard.aborted": "已中止",
539
+ "ui.extensionDialogCard.timedOut": "已超时",
540
+ "ui.extensionDialogCard.cancelled": "已取消",
541
+ "ui.extensionDialogCard.answered": "已回答",
542
+ "ui.conversationMeter.messagePositionApproximatelyThroughTheSessionOfMessages": "消息位置:约在会话 {roundposition}% 处。已加载 {roundloaded}% 的消息。",
543
+ "ui.commandPicker.noMatchingOptions": "没有匹配选项",
544
+ "ui.commandPicker.search": "搜索",
545
+ "ui.commandPicker.select": "选择",
546
+ "ui.chatView.queueing": "正在排队",
547
+ "ui.chatView.updatingSession": "正在更新会话",
548
+ "ui.chatView.turnCompleted": "本轮已完成",
549
+ "ui.chatView.sessionTreeNavigationCancelled": "会话树切换已取消",
550
+ "ui.chatView.toolFailed": "工具执行失败",
551
+ "ui.chatView.toolCompleted": "工具执行完成",
552
+ "ui.chatView.summarizingBranch": "正在汇总分支",
553
+ "ui.chatView.stopped": "已停止",
554
+ "ui.chatView.stopFailed": "停止失败",
555
+ "ui.chatView.steeringMessageQueued": "插队消息已排队",
556
+ "ui.chatView.sessionTreeUpdated": "已切换会话树",
557
+ "ui.chatView.runningTool": "正在运行工具",
558
+ "ui.chatView.runningCommand": "正在运行命令",
559
+ "ui.chatView.running": "运行中",
560
+ "ui.chatView.resourcesReloaded": "资源已重新加载",
561
+ "ui.chatView.reloadingResources": "正在重新加载资源",
562
+ "ui.chatView.reloadFailed": "重新加载失败",
563
+ "ui.chatView.receivingResponse": "正在接收回复",
564
+ "ui.chatView.messageReceived": "消息已接收",
565
+ "ui.chatView.navigatingSessionTree": "正在切换会话树",
566
+ "ui.chatView.messageStarted": "消息开始处理",
567
+ "ui.chatView.messageQueuedDuringCompaction": "压缩期间消息已排队",
568
+ "ui.chatView.messageQueued": "消息已排队",
569
+ "ui.chatView.messageCompleted": "消息处理完成",
570
+ "ui.chatView.idle": "空闲",
571
+ "ui.chatView.extensionError": "扩展错误",
572
+ "ui.chatView.anErrorOccurred": "发生错误",
573
+ "ui.chatView.duplicateQueuedMessageIgnored": "已忽略重复的排队消息",
574
+ "ui.chatView.contextCompactionFailed": "上下文压缩失败",
575
+ "ui.chatView.contextCompactionCompleted": "上下文压缩完成",
576
+ "ui.chatView.compactingContext": "正在压缩上下文",
577
+ "ui.chatView.branchSummaryAborted": "分支汇总已终止",
578
+ "ui.chatView.commandFailed": "命令执行失败",
579
+ "ui.chatView.commandCompleted": "命令执行完成",
580
+ "ui.chatView.agentRunning": "代理正在运行",
581
+ "ui.chatView.clickToEnlarge": "点击放大",
582
+ "ui.chatView.thinking": "思考",
583
+ "ui.chatView.message": "{copied}{role}消息",
584
+ "ui.chatView.copy": "复制",
585
+ "ui.chatView.copied": "已复制",
586
+ "ui.chatView.copyMessage": "复制消息",
587
+ "ui.chatView.messageActions": "消息操作",
588
+ "ui.messageActions.clipboardFailed": "无法复制消息到剪贴板。",
589
+ "ui.chatView.startOfSession": "会话开始",
590
+ "ui.chatView.scrollUpToLoadEarlierMessages": "向上滚动以加载较早消息",
591
+ "ui.chatView.loadEarlierMessages": "加载较早消息",
592
+ "ui.chatView.loadingEarlierMessages": "正在加载较早消息…",
593
+ "ui.chatView.theAgentIsSummarizingEarlierContextNewPrompts": "代理正在总结较早的上下文。压缩完成前,新提示词将进入队列。",
594
+ "ui.chatView.compactingHistory": "正在压缩历史记录…",
595
+ "ui.chatView.followUp": "后续",
596
+ "ui.chatView.steering": "引导",
597
+ "ui.chatView.clearQueue": "清除队列",
598
+ "ui.chatView.clearQueuedMessagesWithoutStoppingTheCurrentTask": "清除排队消息且不停止当前任务",
599
+ "ui.chatView.sendingYourMessage": "正在发送你的消息…",
600
+ "ui.chatView.closeImage": "关闭图片",
601
+ "ui.chatView.dismissWarning": "关闭警告",
602
+ "ui.chatView.doNotShowThisWarningAgain": "不再显示此警告",
603
+ "ui.chatView.minimize": "最小化",
604
+ "ui.chatView.minimizeWarning": "最小化警告",
605
+ "ui.chatView.dismissNotification": "关闭通知",
606
+ "ui.chatView.clear": "清除",
607
+ "ui.chatView.clearAllNotifications": "清除所有通知",
608
+ "ui.chatView.collapseNotifications": "折叠通知",
609
+ "ui.chatView.expandNotifications": "展开通知",
610
+ "ui.chatView.noPiMessageMetadataAvailable": "没有可用的 Pi 消息元数据",
611
+ "ui.chatView.event": "事件",
612
+ "ui.chatView.liveEvent": "实时事件",
613
+ "ui.chatView.skill": "技能",
614
+ "ui.chatView.command": "命令",
615
+ "ui.chatView.system": "系统",
616
+ "ui.chatView.tool": "工具",
617
+ "ui.chatView.assistant": "助手",
618
+ "ui.chatView.user": "用户",
619
+ "ui.chatView.output": "{toolName} 输出",
620
+ "ui.chatView.toolOutput": "工具输出",
621
+ "ui.chatView.attachedImage": "附加图片",
622
+ "ui.chatView.pending": "{length} 条待处理",
623
+ "ui.chatView.queuedMessages": "排队中的消息",
624
+ "ui.chatView.willSendAutomaticallyWhenTheBackendSessionIs": "后端会话就绪后将自动发送",
625
+ "ui.chatView.waitingForSessionStartup": "等待会话启动后发送",
626
+ "ui.sessionSearchDialog.matchingMessages": "{matchCount} 条消息匹配{truncated200}",
627
+ "ui.sessionSearchDialog.showingTheFirst200": ",仅显示前 200 条",
628
+ "ui.sessionSearchDialog.aiAnswer": "AI 回答",
629
+ "ui.sessionSearchDialog.userQuestion": "用户提问",
630
+ "ui.sessionSearchDialog.sessionContentSearchResults": "会话内容搜索结果",
631
+ "ui.sessionSearchDialog.noMatchesFound": "未找到匹配内容。",
632
+ "ui.sessionSearchDialog.close": "关闭",
633
+ "ui.sessionSearchDialog.searching": "正在搜索",
634
+ "ui.sessionSearchDialog.searchUserQuestionsOrAiAnswers": "搜索用户提问或 AI 回答",
635
+ "ui.sessionSearchDialog.closeSearch": "关闭搜索",
636
+ "ui.sessionSearchDialog.searchSessionContent": "搜索会话内容",
637
+ "ui.sessionSearchDialog.sessions": "会话",
638
+ "ui.sessionList.subsessionsInOtherWorkspaces": "其他工作区有 {count} 个子会话",
639
+ "ui.sessionList.renameSession": "重命名会话",
640
+ "ui.sessionList.unreadSessionActivity": "未读会话活动",
641
+ "ui.sessionList.sessionActive": "会话活跃",
642
+ "ui.sessionList.sendingMessage": "正在发送消息",
643
+ "ui.sessionList.readOnly": "只读 · ",
644
+ "ui.sessionList.newSession": "新会话 · ",
645
+ "ui.sessionList.created": "创建完成 · ",
646
+ "ui.sessionList.newSessionError": "新会话 · 错误 · ",
647
+ "ui.sessionList.newSessionCreating": "新会话 · 创建中 · ",
648
+ "ui.sessionList.permanentlyDeleteSelectedArchivedSessionsThisCannotBe": "永久删除 {length} 个所选已归档会话?此操作无法撤销。",
649
+ "ui.sessionList.permanentlyDeleteArchivedSessionThisCannotBeUndone": "永久删除已归档会话“{sessionLabelsession}”?此操作无法撤销。",
650
+ "ui.sessionList.archiveAndItsDescendantSessions": "归档“{sessionLabelsession}”及其 {descendantCount} 个后代会话?",
651
+ "ui.sessionList.goToParentSession": "前往父会话",
652
+ "ui.sessionList.reloadFromDisk": "从磁盘重新加载",
653
+ "ui.sessionList.reloadTheSessionFromDiskWithoutRefreshingPi": "从磁盘重新加载会话,但不刷新 Pi 运行时资源",
654
+ "ui.sessionList.stopCurrentSessionActivityBeforeReloadingFromDisk": "请先停止当前会话活动,再从磁盘重新加载",
655
+ "ui.sessionList.detachFromParent": "从父会话分离",
656
+ "ui.sessionList.archiveThisSessionAndItsDescendants": "归档此会话及其后代会话",
657
+ "ui.sessionList.archive": "归档",
658
+ "ui.sessionList.archiveSession": "归档会话",
659
+ "ui.sessionList.markAsRead": "标记为已读",
660
+ "ui.sessionList.markSessionAsRead": "将会话标记为已读",
661
+ "ui.sessionList.rename": "重命名",
662
+ "ui.sessionList.pin": "置顶",
663
+ "ui.sessionList.unpin": "取消置顶",
664
+ "ui.sessionList.pinSession": "置顶会话",
665
+ "ui.sessionList.unpinSession": "取消置顶会话",
666
+ "ui.sessionList.delete": "删除",
667
+ "ui.sessionList.deleteTemporaryNewSession": "删除临时新会话",
668
+ "ui.sessionList.deleteArchivedSession": "删除已归档会话",
669
+ "ui.sessionList.permanentlyDeleteArchivedSession": "永久删除已归档会话",
670
+ "ui.sessionList.restore": "恢复",
671
+ "ui.sessionList.restoreSession": "恢复会话",
672
+ "ui.sessionList.sessionActions": "会话操作",
673
+ "ui.sessionList.messages": "条消息",
674
+ "ui.sessionList.pinned": "已置顶",
675
+ "ui.sessionList.select": "选择 {sessionLabelsession}",
676
+ "ui.sessionList.visible": "· 可见",
677
+ "ui.sessionList.selected": "已选",
678
+ "ui.sessionList.clearSelection": "清除所选",
679
+ "ui.sessionList.clearSelectedCount": "清除所选({count})",
680
+ "ui.sessionList.selectVisible": "选择可见",
681
+ "ui.sessionList.permanentlyDeleteSelectedArchivedSessions": "永久删除所选已归档会话",
682
+ "ui.sessionList.markRead": "标记已读",
683
+ "ui.sessionList.selectArchivedSessions": "选择已归档会话",
684
+ "ui.sessionList.closeArchivedSessionSelection": "关闭已归档会话选择",
685
+ "ui.sessionList.archived": "已归档",
686
+ "ui.sessionList.sessions": "会话",
687
+ "ui.sessionList.startingSession": "正在启动会话…",
688
+ "ui.sessionList.startingSessions": "正在启动 {startingCount} 个会话…",
689
+ "ui.sessionList.startNewSession": "启动新会话",
690
+ "ui.sessionList.startAnotherSession": "再启动一个会话",
691
+ "ui.sessionList.cleanUp": "清理",
692
+ "ui.sessionList.previewSessionCleanup": "预览会话清理",
693
+ "ui.sessionList.selectCurrentSessions": "选择当前会话",
694
+ "ui.sessionList.closeCurrentSessionSelection": "关闭当前会话选择",
695
+ "ui.sessionList.unread": "{unreadCount} 个未读",
696
+ "ui.sessionList.searchSessionContent": "搜索会话内容",
697
+ "ui.sessionList.noSessionSelected": "未选择会话",
698
+ "ui.sessionList.updateAndRestartPiWebOnThisMachine": "请更新并重启此机器上的 Pi-Web 后再清理会话。",
699
+ "ui.sessionList.updateAndRestartPiWebOnThisMachine2": "请更新并重启此机器上的 Pi-Web 后再删除已归档会话。",
700
+ "ui.sessionCleanupDialog.previewBeforeRunningCleanup": "运行清理前请先预览。",
701
+ "ui.sessionCleanupDialog.selectAtLeastOneProjectToRunCleanup": "至少选择一个项目才能运行清理。",
702
+ "ui.sessionCleanupDialog.cleanupComplete": "清理完成",
703
+ "ui.sessionCleanupDialog.cleanupResult": "清理结果",
704
+ "ui.sessionCleanupDialog.cleanUp": "清理 {cwd}",
705
+ "ui.sessionCleanupDialog.deselectAll": "取消全选",
706
+ "ui.sessionCleanupDialog.selectAll": "全选",
707
+ "ui.sessionCleanupDialog.projectSelection": "项目选择",
708
+ "ui.sessionCleanupDialog.selectedTotal": "已选合计",
709
+ "ui.sessionCleanupDialog.deleteArchived": "删除已归档",
710
+ "ui.sessionCleanupDialog.archive": "归档",
711
+ "ui.sessionCleanupDialog.projectWorkspacePath": "项目/工作区路径",
712
+ "ui.sessionCleanupDialog.cleanUp2": "清理",
713
+ "ui.sessionCleanupDialog.cleanupProjectsTable": "清理项目表",
714
+ "ui.sessionCleanupDialog.noSessionsMatchTheseThresholds": "没有会话匹配这些阈值。",
715
+ "ui.sessionCleanupDialog.preview": "预览",
716
+ "ui.sessionCleanupDialog.cleanupPreview": "清理预览",
717
+ "ui.sessionCleanupDialog.thresholdsChangedPreviewAgainBeforeRunningCleanup": "阈值已更改。运行清理前请重新预览。",
718
+ "ui.sessionCleanupDialog.cleanupOnlyDeletesSessionsThatAreAlreadyArchived": "清理只会删除已经归档的会话。",
719
+ "ui.sessionCleanupDialog.deletionIsPermanent": "删除是永久操作。",
720
+ "ui.sessionCleanupDialog.days": "天的已归档会话",
721
+ "ui.sessionCleanupDialog.deleteSessionsArchivedForOver": "删除已归档超过",
722
+ "ui.sessionCleanupDialog.days2": "天的未归档会话",
723
+ "ui.sessionCleanupDialog.archiveUnarchivedSessionsIdleForOver": "归档空闲超过",
724
+ "ui.sessionCleanupDialog.runCleanup": "运行清理",
725
+ "ui.sessionCleanupDialog.running": "正在运行…",
726
+ "ui.sessionCleanupDialog.previewing": "正在预览…",
727
+ "ui.sessionCleanupDialog.close": "关闭",
728
+ "ui.sessionCleanupDialog.cancel": "取消",
729
+ "ui.sessionCleanupDialog.previewManualCleanupOnThisMachineBeforeArchiving": "归档空闲会话或永久删除旧的已归档会话前,先预览此机器的手动清理结果。",
730
+ "ui.sessionCleanupDialog.closeCleanup": "关闭清理",
731
+ "ui.sessionCleanupDialog.cleanUpSessions": "清理会话",
732
+ "ui.sessionCleanupDialog.sessions": "会话",
733
+ "ui.sessionCleanupDialog.previewBeforeRunningCleanup2": "运行清理前请先预览",
734
+ "ui.sessionCleanupDialog.selectAtLeastOneProjectToRunCleanup2": "至少选择一个项目才能运行清理",
735
+ "ui.sessionCleanupDialog.updateAndRestartPiWebOnThisMachine": "请更新并重启此机器上的 Pi-Web 后再清理会话。",
736
+ "ui.promptEditor.unexpectedFileReadResult": "文件读取结果异常",
737
+ "ui.promptEditor.failedToReadFile": "读取文件失败",
738
+ "ui.promptEditor.file": "文件",
739
+ "ui.promptEditor.messagePiForCommandsForTrackedFilesSpace": "给 pi 发送消息... 使用 / 输入命令,@ 输入已跟踪文件,@ 空格显示所有文件,# 选择模型",
740
+ "ui.promptEditor.saveToPiWebAttachments": "保存到 .pi-web/attachments",
741
+ "ui.promptEditor.imagesOnly": "(仅图片)",
742
+ "ui.promptEditor.attachToMessage": "附加到消息",
743
+ "ui.promptEditor.regularFilesAreSavedToTheWorkspaceAnd": "普通文件会保存到工作区并通过引用提及",
744
+ "ui.promptEditor.howAttachmentsAreSentToTheAgent": "附件发送给代理的方式",
745
+ "ui.promptEditor.remove": "移除 {name}",
746
+ "ui.promptEditor.pendingPluginContext": "待发送的插件上下文",
747
+ "ui.promptEditor.contextKeptForRetry": "消息未提交,上下文已保留,可重试。",
748
+ "ui.promptEditor.messageNotSubmitted": "消息未提交:{error}",
749
+ "ui.promptEditor.removeAttachment": "移除附件",
750
+ "ui.promptEditor.pendingAttachments": "待发送附件",
751
+ "ui.promptEditor.thinkingLevel": "思考级别:{thinkingLevel}",
752
+ "ui.promptEditor.selectModel": "选择模型",
753
+ "ui.promptEditor.sessionStatus": "会话状态",
754
+ "ui.promptEditor.noModel": "无模型",
755
+ "ui.promptEditor.stop": "停止",
756
+ "ui.promptEditor.noTaskIsRunning": "当前没有运行任务",
757
+ "ui.promptEditor.stopCurrentWorkAndClearQueuedMessages": "停止当前工作并清空排队消息",
758
+ "ui.promptEditor.steerCurrentResponse": "引导当前回复",
759
+ "ui.promptEditor.steerTheCurrentResponseBeforeTheNextModel": "在下次模型调用前引导当前回复",
760
+ "ui.promptEditor.send": "发送",
761
+ "ui.promptEditor.queueMessage": "排队发送",
762
+ "ui.promptEditor.queueAfterCurrentActivity": "当前活动结束后排队发送",
763
+ "ui.promptEditor.compactingHistoryMessagesWillQueue": "正在压缩历史 · 消息将排队发送",
764
+ "ui.promptEditor.excludedFromContext": " · 已排除上下文",
765
+ "ui.promptEditor.shellCommand": "终端命令",
766
+ "ui.promptEditor.attachFiles": "附加文件",
767
+ "ui.promptEditor.messagePi": "给 pi 发送消息",
768
+ "ui.projectList.closeThisOnlyRemovesItFromPiWeb": "关闭 {name}?\n\n这只会从 PI WEB 中移除它,不会修改项目文件夹。",
769
+ "ui.projectList.projectActive": "项目活动中",
770
+ "ui.projectList.projectTerminalActive": "项目终端活动中",
771
+ "ui.projectList.unreadSessionsInThisProject": "此项目中有未读会话",
772
+ "ui.projectList.project": "项目",
773
+ "ui.projectList.noProjectSelected": "未选择项目",
774
+ "ui.projectList.close": "关闭",
775
+ "ui.projectList.closeProject": "关闭项目",
776
+ "ui.projectList.actionsFor": "{name} 的操作",
777
+ "ui.projectList.projectActions": "项目操作",
778
+ "ui.projectList.createAProjectInTheAiPlatformThen": "请先在 AI 平台手动创建项目,然后刷新此页面。",
779
+ "ui.projectList.noAccessibleProjects": "暂无可访问项目",
780
+ "ui.statusBar.contextUnknown": "上下文未知",
781
+ "ui.statusBar.context": "上下文 {contextWindow}",
782
+ "ui.statusBar.noSessionStatusYet": "尚无会话状态",
783
+ "ui.statusBar.showInTheWarningArea": "在警告区域显示 {warningText}",
784
+ "ui.statusBar.minimize": "最小化 {warningText}",
785
+ "ui.statusBar.warnings": "{count} 条警告",
786
+ "ui.settingsDialog.configurationSaved": "配置已保存。",
787
+ "ui.settingsDialog.configurationSavedButFailedToRefreshPiWeb": "配置已保存,但从 {value1} 刷新 PI WEB 插件失败:{value2}",
788
+ "ui.settingsDialog.failedToRefreshGatewayPiWebPlugins": "刷新网关 PI WEB 插件失败:{errorMessageerror}",
789
+ "ui.settingsDialog.failedOn": "在 {piPackageTargetLabeltarget} 上{label}失败:{value3}",
790
+ "ui.settingsDialog.aSettingsOperationIsAlreadyRunning": "已有设置操作正在运行。",
791
+ "ui.settingsDialog.doesNotSupportPiPackageManagement": "{piPackageTargetLabeltarget} 不支持 Pi 包管理。",
792
+ "ui.settingsDialog.updatePiPackage": "更新 Pi 包",
793
+ "ui.settingsDialog.removePiPackage": "移除 Pi 包",
794
+ "ui.settingsDialog.installPiPackage": "安装 Pi 包",
795
+ "ui.settingsDialog.failedToSaveSessionDaemonConfigurationOn": "在 {value1} 上保存会话守护进程配置失败:{value2}",
796
+ "ui.settingsDialog.doesNotSupportPiCompatibleAgentProfileSettings": "{value1} 不支持 Pi 兼容代理配置档案设置。",
797
+ "ui.settingsDialog.doesNotSupportSelectedMachineSettings": "{value1} 不支持所选机器设置。",
798
+ "ui.settingsDialog.failedToSaveFileAccessUploadConfigurationOn": "在 {value1} 上保存文件访问/上传配置失败:{value2}",
799
+ "ui.settingsDialog.failedToSaveConfiguration": "保存配置失败:{errorMessageerror}",
800
+ "ui.settingsDialog.failedToSavePiWebPluginConfigurationOn": "在 {value1} 上保存 PI WEB 插件配置失败:{value2}",
801
+ "ui.settingsDialog.pluginConfigurationForIsNotLoadedReloadBefore": "尚未加载 {value1} 的插件配置。更改插件启用状态前请重新加载。",
802
+ "ui.settingsDialog.failedToLoadPiWebPluginSettingsFrom": "从 {value1} 加载 PI WEB 插件设置失败:{join}",
803
+ "ui.settingsDialog.piWebPlugins": "PI WEB 插件:{reasontarget}",
804
+ "ui.settingsDialog.configuration": "配置:{reasontarget}",
805
+ "ui.settingsDialog.failedToLoadSessionDaemonConfigurationFrom": "从 {value1} 加载会话守护进程配置失败:{value2}",
806
+ "ui.settingsDialog.failedToLoadFileAccessUploadConfigurationFrom": "从 {value1} 加载文件访问/上传配置失败:{value2}",
807
+ "ui.settingsDialog.gatewayShortcuts": "网关快捷键",
808
+ "ui.settingsDialog.keyboard": "键盘",
809
+ "ui.settingsDialog.selectedMachine": "所选机器",
810
+ "ui.settingsDialog.piWebPlugins2": "PI WEB 插件",
811
+ "ui.settingsDialog.piPackages": "Pi 包",
812
+ "ui.settingsDialog.sessionDaemon": "会话守护进程",
813
+ "ui.settingsDialog.gatewayAndSelectedMachine": "网关与所选机器",
814
+ "ui.settingsDialog.general": "通用",
815
+ "ui.settingsDialog.settingsSections": "设置分区",
816
+ "ui.settingsDialog.closeSettings": "关闭设置",
817
+ "ui.settingsDialog.settings": "设置",
818
+ "ui.settingsDialog.piWebSettings": "PI WEB 设置",
819
+ "ui.actionPalette.noActionsFound": "未找到操作。",
820
+ "ui.actionPalette.close": "关闭",
821
+ "ui.actionPalette.searchActions": "搜索操作...",
822
+ "ui.activityBadge.active": "活动中",
823
+ "ui.sessionTreeNavigator.other": "其他",
824
+ "ui.sessionTreeNavigator.other2": "自定义",
825
+ "ui.sessionTreeNavigator.label": "标签",
826
+ "ui.sessionTreeNavigator.sessionInformation": "会话信息",
827
+ "ui.sessionTreeNavigator.thinkingLevel": "思考级别",
828
+ "ui.sessionTreeNavigator.model": "模型",
829
+ "ui.sessionTreeNavigator.branchSummary": "分支摘要",
830
+ "ui.sessionTreeNavigator.contextCompaction": "上下文压缩",
831
+ "ui.sessionTreeNavigator.customMessage": "自定义消息",
832
+ "ui.sessionTreeNavigator.command": "命令",
833
+ "ui.sessionTreeNavigator.toolResult": "工具结果",
834
+ "ui.sessionTreeNavigator.assistant": "助手",
835
+ "ui.sessionTreeNavigator.user": "用户",
836
+ "ui.sessionTreeNavigator.unableToCancelSummary": "无法取消摘要:{errorMessageerror}",
837
+ "ui.sessionTreeNavigator.cancellingSummary": "正在取消摘要…",
838
+ "ui.sessionTreeNavigator.unableToCancelTheSummaryFromThisClient": "无法从此客户端取消摘要。",
839
+ "ui.sessionTreeNavigator.unableToNavigateSessionHistory": "无法导航会话历史:{errorMessageerror}",
840
+ "ui.sessionTreeNavigator.navigationCancelledTheSelectedHistoryEntryIsUnchanged": "导航已取消,所选历史条目未更改。",
841
+ "ui.sessionTreeNavigator.summaryCancelledTheSelectedHistoryEntryIsUnchanged": "摘要已取消,所选历史条目未更改。",
842
+ "ui.sessionTreeNavigator.sessionTreeNavigationIsUnavailableCloseAndReopen": "会话树导航不可用。请关闭并重新打开 /tree,然后重试。",
843
+ "ui.sessionTreeNavigator.navigate": "导航",
844
+ "ui.sessionTreeNavigator.summarizeAndNavigate": "生成摘要并导航",
845
+ "ui.sessionTreeNavigator.navigating": "正在导航…",
846
+ "ui.sessionTreeNavigator.summarizing": "正在生成摘要…",
847
+ "ui.sessionTreeNavigator.cancelSummary": "取消摘要",
848
+ "ui.sessionTreeNavigator.cancelling": "正在取消…",
849
+ "ui.sessionTreeNavigator.back": "返回",
850
+ "ui.sessionTreeNavigator.cancel": "取消",
851
+ "ui.sessionTreeNavigator.navigationChangesTheActiveConversationBranchButDoes": "导航会更改活动对话分支,但不会撤销文件系统更改、终端命令、工具调用或其他副作用。",
852
+ "ui.sessionTreeNavigator.onlyConversationContextIsAffected": "仅影响对话上下文。",
853
+ "ui.sessionTreeNavigator.customSummaryFocus": "自定义摘要重点",
854
+ "ui.sessionTreeNavigator.guidePiTowardDetailsRelevantToTheNew": "引导 Pi 关注与新分支相关的重要细节。",
855
+ "ui.sessionTreeNavigator.summarizeWithCustomFocus": "按自定义重点生成摘要",
856
+ "ui.sessionTreeNavigator.askPiToSummarizeTheContextYouAre": "让 Pi 总结即将离开的上下文。",
857
+ "ui.sessionTreeNavigator.generateSummary": "生成摘要",
858
+ "ui.sessionTreeNavigator.switchBranchesWithoutAddingASummaryEntry": "切换分支且不添加摘要条目。",
859
+ "ui.sessionTreeNavigator.skipSummary": "不生成摘要",
860
+ "ui.sessionTreeNavigator.abandonedBranchSummary": "已放弃分支摘要",
861
+ "ui.sessionTreeNavigator.thePromptEditorWillBeEmptyAfterNavigating": "导航到此条目后,提示词编辑器将为空。",
862
+ "ui.sessionTreeNavigator.thisMessageSTextReturnsToThePrompt": "此消息的文本会返回提示词编辑器,供你选择编辑并重新提交。",
863
+ "ui.sessionTreeNavigator.theSelectedHistoryEntryIsNoLongerAvailable": "所选历史条目已不可用。",
864
+ "ui.sessionTreeNavigator.confirmNavigation": "确认导航",
865
+ "ui.sessionTreeNavigator.selectedEntry": "所选条目",
866
+ "ui.sessionTreeNavigator.activeLeaf": "活动叶节点",
867
+ "ui.sessionTreeNavigator.activePath": "活动路径",
868
+ "ui.sessionTreeNavigator.expandBranch": "展开分支",
869
+ "ui.sessionTreeNavigator.collapseBranch": "折叠分支",
870
+ "ui.sessionTreeNavigator.noChildEntries": "没有子条目",
871
+ "ui.sessionTreeNavigator.fullSessionHistory": "完整会话历史",
872
+ "ui.sessionTreeNavigator.thisSessionContainsNoSelectableHistoryEntries": "此会话不包含可选择的历史条目。",
873
+ "ui.sessionTreeNavigator.sessionTreeMarkers": "会话树标记",
874
+ "ui.sessionTreeNavigator.chooseWhereToContinueTheConversationContextAll": "选择对话上下文继续的位置。所有保留的分支都会留在此会话文件中。",
875
+ "ui.sessionTreeNavigator.closeSessionTree": "关闭会话树",
876
+ "ui.sessionTreeNavigator.browseSessionTree": "浏览会话树",
877
+ "ui.sessionTreeNavigator.conversationHistory": "对话历史",
878
+ "ui.settingsShortcutsPanel.noDefault": "无默认值",
879
+ "ui.settingsShortcutsPanel.disabledInConfiguration": "配置禁用",
880
+ "ui.settingsShortcutsPanel.configurationOverride": "配置覆盖",
881
+ "ui.settingsShortcutsPanel.default": "默认",
882
+ "ui.settingsShortcutsPanel.other": "其他",
883
+ "ui.settingsShortcutsPanel.shadowsActions": "覆盖 {shadowedCount} 项操作:{shadowedNames}{suffix}",
884
+ "ui.settingsShortcutsPanel.plusMore": ",另有 {shadowedCount2} 项",
885
+ "ui.settingsShortcutsPanel.shadowedBy": "被“{title}”覆盖",
886
+ "ui.settingsShortcutsPanel.anotherAction": "另一项操作",
887
+ "ui.settingsShortcutsPanel.recordingPressMoreKeysToAddASequence": "正在录制:{join}。继续按键可添加序列,或等待录制完成。",
888
+ "ui.settingsShortcutsPanel.recordingPressCtrlOrAltPlusAKey": "正在录制:请按 Ctrl/⌘ 或 Alt 加一个按键。按 Esc 取消。",
889
+ "ui.settingsShortcutsPanel.reset": "重置",
890
+ "ui.settingsShortcutsPanel.none": "无",
891
+ "ui.settingsShortcutsPanel.record": "录制",
892
+ "ui.settingsShortcutsPanel.cancelRecording": "取消录制",
893
+ "ui.settingsShortcutsPanel.save": "保存",
894
+ "ui.settingsShortcutsPanel.shortcut": "快捷键",
895
+ "ui.settingsShortcutsPanel.unsaved": " · 未保存",
896
+ "ui.settingsShortcutsPanel.unassigned": "未分配",
897
+ "ui.settingsShortcutsPanel.disabled": "已禁用",
898
+ "ui.settingsShortcutsPanel.noDefaultShortcut": "无默认快捷键",
899
+ "ui.settingsShortcutsPanel.default2": "默认:",
900
+ "ui.settingsShortcutsPanel.enterAndShiftEnterBehaviorInChatInput": "聊天输入框中的 Enter 和 Shift Enter 行为",
901
+ "ui.settingsShortcutsPanel.chooseEnterBehaviorInThisBrowserShiftEnter": "选择当前浏览器中 Enter 键的行为。支持时 Shift+Enter 执行相反操作;为避免误发送,会忽略触摸键盘的自动大写状态。",
902
+ "ui.settingsShortcutsPanel.enterKeyBehavior": "Enter 键行为",
903
+ "ui.settingsShortcutsPanel.chatInput": "聊天输入框",
904
+ "ui.settingsShortcutsPanel.noRegisteredActions": "没有已注册操作。",
905
+ "ui.settingsShortcutsPanel.disablesTheActionShortcut": "时会禁用该操作快捷键。",
906
+ "ui.settingsShortcutsPanel.aValueOf": "下。值为",
907
+ "ui.settingsShortcutsPanel.shortcutOverridesAreSavedUnder": "快捷键覆盖项保存在",
908
+ "ui.settingsShortcutsPanel.unknown": "未知",
909
+ "ui.settingsShortcutsPanel.configurationFile": "配置文件",
910
+ "ui.settingsShortcutsPanel.loadingShortcuts": "正在加载快捷键…",
911
+ "ui.settingsShortcutsPanel.reload": "重新加载",
912
+ "ui.settingsShortcutsPanel.keyboardShortcuts": "键盘快捷键",
913
+ "ui.settingsShortcutsPanel.startShortcutsWithCtrlOrAltToAvoid": "快捷键请以 Ctrl/⌘ 或 Alt 开始,以免捕获正常输入。",
914
+ "ui.settingsShortcutsPanel.pressALetterNumberPunctuationFunctionOrNavigation": "请按字母、数字、标点、功能键或导航键。按 Esc 取消录制。",
915
+ "ui.settingsShortcutsPanel.shortcutsRecordFromTheKeyboardClearOrRestore": "这类快捷键,也可以从键盘录制、设为无或恢复默认。快捷键冲突时,自定义快捷键优先于默认值;同级按操作 ID 排序,较短快捷键会遮蔽相同前缀的较长序列。",
916
+ "ui.settingsShortcutsPanel.or": "或",
917
+ "ui.settingsShortcutsPanel.editAppShortcutsByActionEnter": "按操作编辑应用快捷键。输入",
918
+ "ui.settingsShortcutsPanel.enterInsertsANewlineShiftEnterSendsChat": "Enter 插入换行;支持时 Shift+Enter 发送聊天消息。",
919
+ "ui.settingsShortcutsPanel.enterInsertsNewline": "Enter 插入新行",
920
+ "ui.settingsShortcutsPanel.enterSendsChatMessagesShiftEnterInsertsA": "Enter 发送聊天消息;支持时 Shift+Enter 插入新行。",
921
+ "ui.settingsShortcutsPanel.enterSendsMessages": "Enter 发送消息",
922
+ "ui.settingsShortcutsPanel.enterSendsOnDesktopEnterInsertsANewline": "宽屏环境按 Enter 发送;视口宽度不超过 760px 时按 Enter 换行。",
923
+ "ui.settingsShortcutsPanel.autoDefault": "自动/默认",
924
+ "ui.settingsSessiondPanel.piWebCannotCompareTheDesiredProfileWith": "PI WEB 无法比较期望配置档案与正在运行的会话守护进程配置档案。请在守护进程可用后重新加载。",
925
+ "ui.settingsSessiondPanel.unableToGetTheActivePiCompatibleAgent": "无法获取 {targetLabel} 上当前生效的 Pi 兼容代理配置档案",
926
+ "ui.settingsSessiondPanel.orRestartItsSessionDaemonServiceToApply": "(或重启其会话守护进程服务),以同时应用命令和状态目录。",
927
+ "ui.settingsSessiondPanel.theDesiredProfileDiffersFromTheCurrentSession": "期望配置档案与当前会话守护进程配置档案不同。请在该机器上运行",
928
+ "ui.settingsSessiondPanel.piCompatibleAgentProfileOnRequiresARestart": "{targetLabel} 上的 Pi 兼容代理配置档案需要重启",
929
+ "ui.settingsSessiondPanel.theseSettingsAffectLongLivedSessionRuntimesOn": "这些设置会影响 {targetLabel} 上长生命周期的会话运行时。更改会立即保存,但只有在该机器的会话守护进程重启后才会生效。",
930
+ "ui.settingsSessiondPanel.unavailable": "不可用",
931
+ "ui.settingsSessiondPanel.restartRequired": "需要重启",
932
+ "ui.settingsSessiondPanel.applied": "已生效",
933
+ "ui.settingsSessiondPanel.configurationUnavailableReload": "配置不可用,请重新加载。",
934
+ "ui.settingsSessiondPanel.loadingConfiguration": "正在加载配置…",
935
+ "ui.settingsSessiondPanel.onThatMachineOrRestartItsSessionDaemon": ",或重启其会话守护进程服务。",
936
+ "ui.settingsSessiondPanel.afterChangingTheseSettingsRun": "更改这些设置后,请在该机器上运行",
937
+ "ui.settingsSessiondPanel.requiresARestart": "{targetLabel} 需要重启",
938
+ "ui.settingsSessiondPanel.disabled": "已禁用",
939
+ "ui.settingsSessiondPanel.enabled": "已启用",
940
+ "ui.settingsSessiondPanel.agentQuestions": "代理提问",
941
+ "ui.settingsSessiondPanel.subsessions": "子会话",
942
+ "ui.settingsSessiondPanel.spawnedSessions": "派生会话",
943
+ "ui.settingsSessiondPanel.profileStatus": "配置档案状态",
944
+ "ui.settingsSessiondPanel.currentStateDirectory": "当前状态目录",
945
+ "ui.settingsSessiondPanel.currentCommand": "当前命令",
946
+ "ui.settingsSessiondPanel.desiredStateDirectory": "期望状态目录",
947
+ "ui.settingsSessiondPanel.desiredCommand": "期望命令",
948
+ "ui.settingsSessiondPanel.effectiveConfigurationAfterEnvironmentOverrides": "环境变量覆盖后的生效配置",
949
+ "ui.settingsSessiondPanel.effectiveConfigurationSummary": "最终生效配置摘要",
950
+ "ui.settingsSessiondPanel.thisMachineDoesNotProvideAgentQuestionSettings": "当前机器未提供代理提问设置。请更新并重启该机器上的 PI WEB。",
951
+ "ui.settingsSessiondPanel.agentsCanPresentStructuredQuestionFormsAndPause": "代理可以发出结构化问题表单,并暂停等待用户回答。默认启用。",
952
+ "ui.settingsSessiondPanel.tool": "工具",
953
+ "ui.settingsSessiondPanel.enable": "启用",
954
+ "ui.settingsSessiondPanel.enableAgentQuestions": "启用代理提问",
955
+ "ui.settingsSessiondPanel.environmentOverrides": "环境变量覆盖",
956
+ "ui.settingsSessiondPanel.allowAgentsToAskQuestions": "允许代理提问",
957
+ "ui.settingsSessiondPanel.andReceiveCompletionNotificationsRequiresAllowAgentsTo": "),并在子会话完成时收到通知。需要先启用“允许代理启动会话”。默认关闭。",
958
+ "ui.settingsSessiondPanel.betaAgentsCanStartSubsessionsTheyRemainLinked": "测试版:代理可以启动自己持续关联的子会话(",
959
+ "ui.settingsSessiondPanel.beta": "测试版",
960
+ "ui.settingsSessiondPanel.allowAgentsToStartTrackedSubsessions": "允许代理启动受跟踪的子会话",
961
+ "ui.settingsSessiondPanel.whenEnabledTheLlmCanStartSessionsWithin": "启用后,LLM 可以启动新会话,但会被限制在同一个已注册项目的工作区(包括任意 worktree)内,因此每个派生会话都会显示在这里。默认启用。",
962
+ "ui.settingsSessiondPanel.allowAgentsToStartSessions": "允许代理启动会话",
963
+ "ui.settingsSessiondPanel.saveAgentProfile": "保存代理配置档案",
964
+ "ui.settingsSessiondPanel.saving": "正在保存…",
965
+ "ui.settingsSessiondPanel.chooseThePiCompatibleAuthenticationModelSettingsAnd": "选择 PI WEB 读取的 Pi 兼容认证、模型、设置和会话目录。备用命令会与其所需状态目录一并保存。",
966
+ "ui.settingsSessiondPanel.piAgentOrAgentProfilesWork": "~/.pi/agent 或 ~/agent-profiles/work",
967
+ "ui.settingsSessiondPanel.profileStateDirectory": "配置档案状态目录",
968
+ "ui.settingsSessiondPanel.setThePiCompatibleCompanionCliUsedFor": "设置诊断和更新检查所用的 Pi 兼容配套 CLI。内嵌会话运行时仍使用 PI WEB 捆绑的 Pi SDK。",
969
+ "ui.settingsSessiondPanel.companionCliCommand": "配套 CLI 命令",
970
+ "ui.settingsSessiondPanel.thisMachineDoesNotSupportEditingPiCompatible": "此机器不支持编辑 Pi 兼容代理配置档案。",
971
+ "ui.settingsSessiondPanel.piCompatibleAgentProfile": "Pi 兼容代理配置档案",
972
+ "ui.settingsSessiondPanel.configurationFile": "配置文件",
973
+ "ui.settingsSessiondPanel.reload": "重新加载",
974
+ "ui.settingsSessiondPanel.sessionDaemon": "会话守护进程",
975
+ "ui.settingsSessiondPanel.localLocalGateway": "本机(本地网关)",
976
+ "ui.settingsPluginsPanel.projectScope": "项目范围",
977
+ "ui.settingsPluginsPanel.userScope": "用户范围",
978
+ "ui.settingsPluginsPanel.localScope": "本地范围",
979
+ "ui.settingsPluginsPanel.bundledScope": "内置范围",
980
+ "ui.settingsPluginsPanel.development": "开发",
981
+ "ui.settingsPluginsPanel.local": "本地",
982
+ "ui.settingsPluginsPanel.bundled": "内置",
983
+ "ui.settingsPluginsPanel.piWebBrowserPluginsThisIsIndependentOf": "上发现的 PI WEB 浏览器插件。这与安装 Pi 包相互独立;请重新加载浏览器标签页以应用插件运行时更改。",
984
+ "ui.settingsPluginsPanel.enableOrDisable": "启用或禁用",
985
+ "ui.settingsPluginsPanel.disabled": "已禁用",
986
+ "ui.settingsPluginsPanel.enabled": "已启用",
987
+ "ui.settingsPluginsPanel.machineSpecific": " · 机器专属",
988
+ "ui.settingsPluginsPanel.enabledByDefault": "默认启用",
989
+ "ui.settingsPluginsPanel.enabledByConfiguration": "配置已启用",
990
+ "ui.settingsPluginsPanel.disabledByConfiguration": "配置已禁用",
991
+ "ui.settingsPluginsPanel.piWebPluginListForIsUnavailableReload": "{targetLabel} 的 PI WEB 插件列表不可用,请重新加载。",
992
+ "ui.settingsPluginsPanel.loadingPiWebPlugins": "正在加载 PI WEB 插件…",
993
+ "ui.settingsPluginsPanel.piWebPluginsAndPiPackagesCanRun": "PI WEB 插件和 Pi 包可使用你的用户权限运行。请仅启用可信来源的插件。",
994
+ "ui.settingsPluginsPanel.trustedCodeWarning": "受信代码警告:",
995
+ "ui.settingsPluginsPanel.reloadTheBrowserTabToApplyPluginChanges": "{savedMessage} 重新加载浏览器标签页以应用插件更改。",
996
+ "ui.settingsPluginsPanel.configurationUnavailableReloadBeforeChangingPluginActivation": "配置不可用。更改插件启用状态前请重新加载。",
997
+ "ui.settingsPluginsPanel.reloadPiWebPluginsFrom": "从 {targetLabel} 重新加载 PI WEB 插件",
998
+ "ui.settingsPluginsPanel.reload": "重新加载",
999
+ "ui.settingsPluginsPanel.piWebPlugins": "PI WEB 插件",
1000
+ "ui.settingsPluginsPanel.localLocalGateway": "本机(本地网关)",
1001
+ "ui.settingsPanelFrame.settingsNotices": "设置通知",
1002
+ "ui.settingsPanelFrame.settingsPanel": "设置面板",
1003
+ "ui.settingsPackagesPanel.piPackagesInstallRemoveAndUpdatePiManaged": "上的 Pi 包。你可以安装、移除和更新所选机器上由 Pi 管理的包。Pi 包可提供扩展、技能、提示词模板、主题、上下文/系统提示文件以及 PI WEB 浏览器插件。",
1004
+ "ui.settingsPackagesPanel.manage": "管理",
1005
+ "ui.settingsPackagesPanel.doesNotSupportPiPackageManagement": "{targetLabel} 不支持 Pi 包管理。",
1006
+ "ui.settingsPackagesPanel.remove": "移除",
1007
+ "ui.settingsPackagesPanel.removing": "正在移除…",
1008
+ "ui.settingsPackagesPanel.update": "更新",
1009
+ "ui.settingsPackagesPanel.updating": "正在更新…",
1010
+ "ui.settingsPackagesPanel.updateThisPiPackage": "更新此 Pi 包",
1011
+ "ui.settingsPackagesPanel.installationPath": "安装路径:",
1012
+ "ui.settingsPackagesPanel.removeThisPiPackage": "移除此 Pi 包",
1013
+ "ui.settingsPackagesPanel.updateAll": "全部更新",
1014
+ "ui.settingsPackagesPanel.configuredPiPackages": "已配置的 Pi 包",
1015
+ "ui.settingsPackagesPanel.updateAllUserScopedPiPackages": "更新所有用户范围的 Pi 包",
1016
+ "ui.settingsPackagesPanel.install": "安装",
1017
+ "ui.settingsPackagesPanel.installing": "正在安装…",
1018
+ "ui.settingsPackagesPanel.installThisPiPackage": "安装此 Pi 包",
1019
+ "ui.settingsPackagesPanel.npmScopePackageGitUrlOrLocalPath": "npm:@scope/package、Git URL 或本地路径",
1020
+ "ui.settingsPackagesPanel.piPackageSource": "Pi 包来源",
1021
+ "ui.settingsPackagesPanel.piPackageListForIsUnavailableReload": "{targetLabel} 的 Pi 包列表不可用,请重新加载。",
1022
+ "ui.settingsPackagesPanel.loadingPiPackagesFrom": "正在从 {targetLabel} 加载 Pi 包…",
1023
+ "ui.settingsPackagesPanel.piPackagesAndPiWebPluginsCanRun": "Pi 包和 PI WEB 插件可以使用你的用户权限运行。请仅安装或启用可信来源的内容。",
1024
+ "ui.settingsPackagesPanel.trustedCodeWarning": "受信代码警告:",
1025
+ "ui.settingsPackagesPanel.reloadPiPackagesFrom": "从 {targetLabel} 重新加载 Pi 包",
1026
+ "ui.settingsPackagesPanel.reload": "重新加载",
1027
+ "ui.settingsPackagesPanel.piPackages": "Pi 包",
1028
+ "ui.settingsMachineTarget.unableToConnectToForSelectedMachineSettings": "无法连接 {name} 以获取所选机器设置。请检查机器连接后重试。",
1029
+ "ui.settingsMachineTarget.timedOutContactingForSelectedMachineSettingsThe": "联系 {name} 获取所选机器设置时超时。操作可能仍在远端运行;请重新加载后再重试。",
1030
+ "ui.settingsMachineTarget.doesNotSupportSelectedMachineSettingsUpdateAnd": "{name} 不支持所选机器设置。请更新并重启该机器上的 PI WEB,然后重试。",
1031
+ "ui.settingsMachineTarget.unableToConfirmWhetherSupportsPiCompatibleAgent": "无法确认 {name} 是否支持 Pi 兼容代理配置档案。更改配置档案前请重新加载机器状态。",
1032
+ "ui.settingsMachineTarget.remoteMachine": "{name}(远程机器)",
1033
+ "ui.settingsMachineTarget.localGateway": "{name}(本地网关)",
1034
+ "ui.settingsMachineTarget.local": "本机",
1035
+ "ui.settingsGeneralPanel.externalPathsDenied": "已禁止外部路径",
1036
+ "ui.settingsGeneralPanel.notSet": "未设置",
1037
+ "ui.settingsGeneralPanel.noneListed": "未列出",
1038
+ "ui.settingsGeneralPanel.anyHost": "任意 host",
1039
+ "ui.settingsGeneralPanel.default": "默认",
1040
+ "ui.settingsGeneralPanel.uploadFolder": "上传文件夹",
1041
+ "ui.settingsGeneralPanel.externalRoots": "外部根目录",
1042
+ "ui.settingsGeneralPanel.selectedMachineEffectiveConfiguration": "所选机器的生效配置",
1043
+ "ui.settingsGeneralPanel.selectedMachineEffectiveFileAccessAndUploadSummary": "所选机器最终生效的文件访问和上传摘要",
1044
+ "ui.settingsGeneralPanel.allowedHosts": "允许的主机名",
1045
+ "ui.settingsGeneralPanel.default8504": "默认 8504",
1046
+ "ui.settingsGeneralPanel.port": "端口",
1047
+ "ui.settingsGeneralPanel.default127001": "默认 127.0.0.1",
1048
+ "ui.settingsGeneralPanel.hostAddress": "主机地址",
1049
+ "ui.settingsGeneralPanel.effectiveGatewayConfigurationAfterEnvironmentOverrides": "环境变量覆盖后的网关生效配置",
1050
+ "ui.settingsGeneralPanel.effectiveConfigurationSummary": "最终生效配置摘要",
1051
+ "ui.settingsGeneralPanel.environmentOverrides": "环境变量覆盖",
1052
+ "ui.settingsGeneralPanel.gatewayServer": "网关服务器",
1053
+ "ui.settingsGeneralPanel.saveFileUploadConfiguration": "保存文件/上传配置",
1054
+ "ui.settingsGeneralPanel.saving": "正在保存…",
1055
+ "ui.settingsGeneralPanel.defaultUploadFolder": "默认上传文件夹",
1056
+ "ui.settingsGeneralPanel.externalFilesystemRoots": "外部文件系统根目录",
1057
+ "ui.settingsGeneralPanel.fileWillBeCreatedOnSave": "保存时会创建此文件",
1058
+ "ui.settingsGeneralPanel.existingFile": "已有文件",
1059
+ "ui.settingsGeneralPanel.selectedMachineConfigurationFile": "所选机器配置文件",
1060
+ "ui.settingsGeneralPanel.selectedMachineFileAccessConfigurationIsUnavailableReload": "所选机器的文件访问配置不可用。保存文件/上传设置前请重新加载。",
1061
+ "ui.settingsGeneralPanel.loadingSelectedMachineFileAccessConfiguration": "正在加载所选机器的文件访问配置…",
1062
+ "ui.settingsGeneralPanel.selectedMachineFileAccessAndUploads": "所选机器的文件访问和上传",
1063
+ "ui.settingsGeneralPanel.selectedMachineFileAccessAndUploadSettings": "所选机器的文件访问和上传设置",
1064
+ "ui.settingsGeneralPanel.saveGatewayServerConfiguration": "保存网关服务器配置",
1065
+ "ui.settingsGeneralPanel.allowAllHosts": "允许所有主机名",
1066
+ "ui.settingsGeneralPanel.allowListedHostsOnly": "仅允许列出的主机名",
1067
+ "ui.settingsGeneralPanel.tcpPortFrom1To65535LeaveBlank": "TCP 端口,范围 1 到 65535。留空则使用 PI WEB 默认值。",
1068
+ "ui.settingsGeneralPanel.addressTheWebServerBindsToLeaveBlank": "Web 服务器应绑定的地址。留空则使用 PI WEB 默认值。",
1069
+ "ui.settingsGeneralPanel.unknown": "未知",
1070
+ "ui.settingsGeneralPanel.gatewayConfigurationFile": "网关配置文件",
1071
+ "ui.settingsGeneralPanel.loadingGatewayConfiguration": "正在加载网关配置…",
1072
+ "ui.settingsGeneralPanel.hostPortAndAllowedHostsAreSavedTo": "主机地址、端口和允许的主机名会保存到网关配置中。地址变更后必须重启 Web 服务,运行中的服务器才会绑定到新地址。",
1073
+ "ui.settingsGeneralPanel.gatewayServerSettings": "网关服务器设置",
1074
+ "ui.settingsGeneralPanel.reload": "重新加载",
1075
+ "ui.settingsGeneralPanel.generalConfiguration": "通用配置",
1076
+ "ui.settingsDataLoading.failedToLoadPiPackagesFrom": "从 {piPackageTargetLabeltarget} 加载 Pi 包失败:{value2}",
1077
+ "ui.settingsDataLoading.doesNotSupportPiPackageManagement": "{piPackageTargetLabeltarget} 不支持 Pi 包管理。",
1078
+ "ui.settingsDataLoading.failedToLoadSettings": "加载设置失败:{join}",
1079
+ "ui.settingsDataLoading.piWebPlugins": "PI WEB 插件:{reason}",
1080
+ "ui.settingsDataLoading.configuration": "配置:{reason}",
1081
+ "ui.settingsConfigDraft.defaultUploadFolderCannotContainPathTraversal": "上传默认文件夹不能包含路径穿越。",
1082
+ "ui.settingsConfigDraft.defaultUploadFolderMustBeWorkspaceRelative": "上传默认文件夹必须是工作区相对路径。",
1083
+ "ui.settingsConfigDraft.allowedExternalPathsMustBeAbsoluteOrStart": "允许的外部路径必须是绝对路径或以 ~ 开头:{invalid}",
1084
+ "ui.settingsConfigDraft.portMustBeAnIntegerFrom1To": "端口必须是 1 到 65535 之间的整数。",
1085
+ "ui.piPackageSettings.unableToConnectToForPiPackageManagement": "无法连接 {name} 进行 Pi 包管理。请检查机器连接后重试。",
1086
+ "ui.piPackageSettings.timedOutContactingForPiPackageManagementThe": "联系 {name} 进行 Pi 包管理时超时。包操作可能仍在远端运行;重试前请重新加载包列表。",
1087
+ "ui.piPackageSettings.piPackageEnterReloadInToRediscoverPi": "Pi 包{verb}{targetSuffix}。请在 {sessionScope} 中输入 /reload,重新发现 Pi 运行时资源:扩展、技能、提示词模板、主题以及上下文/系统提示文件。对于 {pluginScope},请另外重新加载浏览器页面。",
1088
+ "ui.piPackageSettings.piWebBrowserPluginChangesFrom": "{name} 提供的 PI WEB 浏览器插件变更",
1089
+ "ui.piPackageSettings.piWebBrowserPluginChanges": "PI WEB 浏览器插件变更",
1090
+ "ui.piPackageSettings.everyIdlePiWebSessionOn": "{name} 上每个空闲的 PI WEB 会话",
1091
+ "ui.piPackageSettings.everyIdlePiWebSession": "每个空闲的 PI WEB 会话",
1092
+ "ui.piPackageSettings.updated": "已更新",
1093
+ "ui.piPackageSettings.removed": "已移除",
1094
+ "ui.piPackageSettings.installed": "已安装",
1095
+ "ui.piPackageSettings.theListIncludesProjectScopedPiPackagesSo": "列表中包含项目范围的 Pi 包,无法全部更新;请逐个更新用户范围的包。",
1096
+ "ui.piPackageSettings.noPiPackagesConfigured": "尚未配置 Pi 包。",
1097
+ "ui.piPackageSettings.projectScopedPiPackagesAreListedHereBut": "此处会列出项目范围的 Pi 包,但 PI WEB 只能在此界面安全更新用户范围的 Pi 包。",
1098
+ "ui.piPackageSettings.piDidNotReportAnInstallationPath": "Pi 未报告安装路径",
1099
+ "ui.piPackageSettings.availableToThisPiWebProcess": "可用于此 PI WEB 进程",
1100
+ "ui.piPackageSettings.filteredByCurrentPiPackageSettings": "已被当前 Pi 包设置过滤",
1101
+ "ui.piPackageSettings.userScope": "用户范围",
1102
+ "ui.piPackageSettings.projectScope": "项目范围",
1103
+ "ui.piPackageSettings.enterAPiSupportedPackageSourceSuchAs": "请输入 Pi 支持的包来源,例如 npm:@scope/package、Git/URL 来源或本地路径。",
1104
+ "ui.piPackageSettings.doesNotSupportPiPackageManagementUpdateAnd": "{name} 不支持 Pi 包管理。请更新并重启该机器上的 PI WEB,然后重试。",
1105
+ "ui.piPackageSettings.remoteMachine": "{name}(远程机器)",
1106
+ "ui.piPackageSettings.localGateway": "{name}(本地网关)",
1107
+ "ui.piPackageSettings.local": "本机",
1108
+ "ui.appRefreshControl.reloadEntirePage": "完整重载页面",
1109
+ "ui.appPanelEdgeControl.doubleClickOrDoubleTapToReset": "{resizeLabel}。双击或双击轻触可重置。",
1110
+ "ui.appPanelEdgeControl.collapsePanel": "折叠面板",
1111
+ "ui.appPanelEdgeControl.expandPanel": "展开面板",
1112
+ "ui.appPanelEdgeControl.resizePanel": "调整面板宽度",
1113
+ "ui.appNavigationPanel.actions": "操作",
1114
+ "ui.appNavigationPanel.showActions": "显示操作",
1115
+ "ui.appNavigationPanel.updateAndRestartPiWebOnThisMachine": "请更新并重启此机器上的 Pi-Web 后再清理会话。",
1116
+ "ui.appNavigationPanel.updateAndRestartPiWebOnThisMachine2": "请更新并重启此机器上的 Pi-Web 后再删除已归档会话。",
1117
+ "ui.appContextBar.noSessionSelected": "未选择会话",
1118
+ "ui.appContextBar.mainWorkspace": " · 主工作区",
1119
+ "ui.appContextBar.noWorkspaceSelected": "未选择工作区",
1120
+ "ui.appContextBar.noProjectSelected": "未选择项目",
1121
+ "ui.appContextBar.noMachineSelected": "未选择机器",
1122
+ "ui.appContextBar.remote": " · 远程",
1123
+ "ui.appContextBar.showActions": "显示操作",
1124
+ "ui.appContextBar.sessions": "会话",
1125
+ "ui.appContextBar.sessionOpenSessionSelection": "会话:{sessionLabel}。打开会话选择。",
1126
+ "ui.appContextBar.workspace": "工作区",
1127
+ "ui.appContextBar.workspaceOpenWorkspaceSelection": "工作区:{workspaceLabel}。打开工作区选择。",
1128
+ "ui.appContextBar.project": "项目",
1129
+ "ui.appContextBar.projectOpenProjectSelection": "项目:{projectLabel}。打开项目选择。",
1130
+ "ui.appContextBar.machines": "机器",
1131
+ "ui.appContextBar.machineOpenMachineSelection": "机器:{machineLabel}。打开机器选择。",
1132
+ "ui.appContextBar.location": "位置",
1133
+ "ui.appContextBar.currentLocation": "当前位置",
1134
+ "ui.settingsThemePanel.title": "主题",
1135
+ "ui.settingsThemePanel.scope": "选择此浏览器使用的主题,或保存网关默认主题。",
1136
+ "ui.settingsThemePanel.local": "正在使用此浏览器保存的主题",
1137
+ "ui.settingsThemePanel.default": "正在使用默认主题",
1138
+ "ui.settingsThemePanel.systemSuffix": " · 跟随系统外观",
1139
+ "ui.settingsThemePanel.unavailableHelp": "此主题不可用。请选择可用主题,或启用提供该主题的插件。",
1140
+ "ui.settingsThemePanel.auto": "跟随系统外观",
1141
+ "ui.settingsThemePanel.autoHelp": "主题支持时,在浅色和深色版本之间切换。",
1142
+ "ui.settingsThemePanel.useLocal": "在此浏览器使用",
1143
+ "ui.settingsThemePanel.setDefault": "设为网关默认主题",
1144
+ "ui.settingsThemePanel.useDefault": "使用默认主题",
1145
+ "ui.settingsThemePanel.scopeHelp": "设置默认主题不会改变已保存的浏览器选择。使用默认主题将移除此浏览器的覆盖。",
1146
+ "ui.settingsThemePanel.current": "当前:{theme}",
1147
+ "ui.settingsThemePanel.defaultName": "默认:{theme}",
1148
+ "ui.settingsThemePanel.unavailable": "{theme}(不可用)",
1149
+ "ui.settingsThemePanel.saveFailed": "无法保存默认主题:{message}",
1150
+ "ui.sessionActivity.title": "最近在另一个实例中活动",
1151
+ "ui.sessionActivity.message": "此会话最近在另一个 PI WEB 实例中活动。请避免在两个实例中同时操作此会话。",
1152
+ "ui.sessionActivity.dismiss": "关闭提示并继续",
1153
+ "ui.chatView.suggestedInput": "建议输入",
1154
+ "ui.chatView.emptyInput": "空输入",
1155
+ "ui.chatView.suggestedInputHint": "替换当前草稿,不会发送。",
1156
+ "ui.chatView.useSuggestedInput": "使用建议输入",
1157
+ "ui.mcp.selectSession": "请选择一个会话以认证 MCP 服务器。",
1158
+ "ui.mcp.signInTitle": "登录 MCP 服务器",
1159
+ "ui.mcp.signOutTitle": "退出 MCP 服务器登录",
1160
+ "ui.mcp.authentication": "MCP 认证",
1161
+ "ui.mcp.authenticationTitle": "MCP {mode}{server}",
1162
+ "ui.mcp.login": "登录",
1163
+ "ui.mcp.logout": "退出登录",
1164
+ "ui.mcp.starting": "正在启动 MCP 认证…",
1165
+ "ui.mcp.approveBrowser": "请在浏览器中批准访问,然后返回此处。",
1166
+ "ui.mcp.openAuthorizationPage": "打开授权页面",
1167
+ "ui.mcp.cancellationWaiting": "已请求取消,正在等待 Pi 结束…",
1168
+ "ui.mcp.operationFinished": "操作已结束",
1169
+ "ui.mcp.waitingForPi": "正在等待 Pi…",
1170
+ "ui.mcp.logoutWarning": "退出登录会移除 Pi 保存的凭据,但不会禁用服务器或撤销提供方的授权。使用这些凭据的其他会话也会受到影响。",
1171
+ "ui.mcp.reusedCredentials": "未请求浏览器授权。Pi 可能复用了已有凭据,请查看下方结果。",
1172
+ "ui.mcp.cancellationWarning": "Pi 可能已经在完成认证。如果先批准授权、后请求取消,凭据可能已保存。",
1173
+ "ui.mcp.redirectFallback": "如果批准后无法加载重定向页面,请复制浏览器地址栏中的完整 URL 并粘贴到下方。",
1174
+ "ui.mcp.authenticationMessages": "认证消息",
1175
+ "ui.mcp.loadServersError": "无法加载 MCP 服务器:{error}",
1176
+ "ui.mcp.openAuthenticationError": "无法打开 MCP 认证:{error}",
1177
+ "ui.mcp.settingsDescription": "管理所选会话中已启用且支持 OAuth 的 MCP 服务器认证。",
1178
+ "ui.mcp.refreshServers": "刷新服务器",
1179
+ "ui.mcp.selectNonarchivedSession": "请选择 {machine} 上未归档的会话以管理 MCP 认证。",
1180
+ "ui.mcp.sessionContext": "会话上下文",
1181
+ "ui.mcp.sessionContextLabel": "MCP 会话上下文",
1182
+ "ui.mcp.machineLabel": "机器:",
1183
+ "ui.mcp.sessionLabel": "会话:",
1184
+ "ui.mcp.workspaceLabel": "工作区:",
1185
+ "ui.mcp.loadingServers": "正在加载 MCP 服务器…",
1186
+ "ui.mcp.noServers": "此会话中没有已启用且支持 OAuth 的 MCP 服务器。",
1187
+ "ui.mcp.serversLabel": "MCP 服务器",
1188
+ "ui.mcp.loginTo": "登录 {server}",
1189
+ "ui.mcp.logoutFrom": "退出 {server} 登录",
1190
+ "ui.mcp.selectedSession": "所选会话",
1191
+ "ui.mcp.loginAction": "MCP 登录",
1192
+ "ui.mcp.loginDescription": "选择所选会话的 MCP 服务器并登录",
1193
+ "ui.mcp.logoutAction": "MCP 退出登录",
1194
+ "ui.mcp.logoutDescription": "移除本地 MCP 凭据,不禁用服务器,也不撤销提供方的授权",
1195
+ "ui.sessionNaming.heading": "会话命名",
1196
+ "ui.sessionNaming.model": "命名模型",
1197
+ "ui.sessionNaming.useSessionModel": "使用会话模型",
1198
+ "ui.sessionNaming.modelHelp": "搜索当前认证上下文中可用的模型,或使用会话模型。",
1199
+ "ui.sessionNaming.modelsLoading": "正在加载命名模型…",
1200
+ "ui.sessionNaming.modelsRetry": "刷新设置后重试,已保存的模型不变。",
1201
+ "ui.sessionNaming.noModels": "没有可用的命名模型。请配置提供商认证后刷新设置。",
1202
+ "ui.sessionNaming.unavailableModel": "已保存的命名模型不可用,请选择其他模型或使用会话模型。",
1203
+ "ui.sessionNaming.maxTokens": "命名 token 预算",
1204
+ "ui.sessionNaming.maxTokensHelp": "请填写正整数,留空使用 24 tokens,不随模型变化。",
1205
+ "ui.sessionNaming.timeout": "命名超时(秒)",
1206
+ "ui.sessionNaming.timeoutHelp": "总超时包含模型加载时间。冷启动的本地引擎可适当延长,留空使用 10 秒。",
1207
+ "ui.sessionNaming.thinkingLevel": "命名思考等级",
1208
+ "ui.sessionNaming.defaultThinking": "默认(minimal)",
1209
+ "ui.sessionNaming.thinkingHelp": "仅影响命名推理。off 会在支持时关闭可选思考,具体取决于模型能力。",
1210
+ "ui.sessionNaming.nextRequestHeading": "下次命名请求",
1211
+ "ui.sessionNaming.nextRequestHelp": "命名设置保存后无需重启,已有名称和正在进行的命名请求不变。",
1212
+ "ui.sessionNaming.timeoutSummary": "命名超时",
1213
+ "ui.sessionNaming.seconds": "{seconds} 秒",
1214
+ "ui.sessionNaming.selectModel": "选择命名模型",
1215
+ "ui.sessionNaming.sessionModelHelp": "使用当前对话的模型生成名称。",
1216
+ "ui.sessionNaming.description": "配置 {targetLabel} 上的代理权限和会话命名。命名变更无需重启,下次命名请求即生效。代理权限变更需重启该机器的会话守护进程,重启会中断活动会话和正在运行的任务。",
1217
+ "ui.sessionNaming.selectProject": "请选择此机器上的项目以加载命名模型。",
1218
+ "ui.sessionNaming.loadModelsError": "无法加载 {machine} 的命名模型:{error}",
1219
+ "ui.sessionNaming.saved": "已保存 {machine} 的会话命名设置。无需重启,下次命名请求即生效;已有名称和正在进行的请求不变。",
1220
+ "ui.sessionNaming.daemonSaved": "已保存 {machine} 的会话守护进程设置。代理权限变更需重启守护进程,重启会中断活动会话。{naming}",
1221
+ "ui.sessionNaming.nextRequest": "命名变更无需重启,下次命名请求即生效。",
1222
+ "ui.navigationOrder.failure": "无法读取或保存导航顺序:{error}",
1223
+ "ui.piWebApp.loadingConversation": "正在加载对话...",
1224
+ "ui.navigation.moveUp": "上移",
1225
+ "ui.navigation.moveDown": "下移",
1226
+ "ui.navigation.recent": "最近会话",
1227
+ "ui.navigation.agentSubsessions": "代理子会话({count})",
1228
+ "ui.navigation.sendingSubsessionMessage": "正在发送子会话消息",
1229
+ "ui.navigation.agentSubsessionsActive": "代理子会话正在运行",
1230
+ "ui.navigation.unreadSubsessionActivity": "子会话有未读活动",
1231
+ "ui.navigation.collapsePanel": "折叠导航面板",
1232
+ "ui.navigation.resizeSection": "调整{section}高度",
1233
+ "ui.navigation.resizeSectionReset": "调整{section}高度。双击或轻点两次以重置。",
1234
+ "ui.navigation.otherMachinesTerminalActive": "其他机器上的终端正在运行",
1235
+ "ui.navigation.otherMachinesActive": "其他机器正在运行",
1236
+ "ui.navigation.otherMachinesUnread": "其他机器上有未读会话",
1237
+ "ui.navigation.machineSwitchStatus": "机器:{name}。{status}。切换机器。",
1238
+ "ui.projectList.projects": "项目",
1239
+ "ui.workspaceList.workspaces": "工作区",
1240
+ "ui.machineDialog.closeAddMachine": "关闭添加机器窗口",
1241
+ "ui.machineDialog.enterMachineName": "请输入机器名称。",
1242
+ "ui.machineDialog.tokenWithoutPrefix": "如果远端机器需要令牌,请粘贴令牌值,不要包含 Bearer 前缀。",
1243
+ "ui.projectDialog.trustCodeWarning": "扩展和包可以在此机器上执行代码。请只信任你了解且可信的项目。",
1244
+ "ui.projectDialog.trustCheckFailed": "无法检查项目信任状态:{error}。请重试以读取现有的信任决定。",
1245
+ "ui.projectDialog.retryTrustCheck": "重试信任检查",
1246
+ "ui.projectDialog.closeAddProject": "关闭添加项目窗口",
1247
+ "ui.projectDialog.localFolders": "本地机器(PI WEB 运行所在机器)上的文件夹。",
1248
+ "ui.projectDialog.remoteFolders": "远端机器 {machineId} 上的文件夹。",
1249
+ "ui.projectDialog.machinePaths": "路径属于此机器,而非浏览器所在设备。",
1250
+ "ui.projectDialog.folderLookupFailed": "无法读取此机器上的文件夹。请检查连接后重试,或直接输入文件夹路径。",
1251
+ "ui.projectDialog.retryFolderLookup": "重新查找文件夹"
1252
+ }