@chainingintention/pi-web-cn 1.202610.2 → 1.202610.4

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 (202) hide show
  1. package/README.md +1 -0
  2. package/dist/cli.js +129 -122
  3. package/dist/cli.js.map +1 -1
  4. package/dist/client/assets/PiWebApp-CN3g7SqA.js +4362 -0
  5. package/dist/client/assets/external-DUGCSDhZ.js +2 -0
  6. package/dist/client/assets/index-JduZlbIF.js +2 -0
  7. package/dist/client/index.html +4 -4
  8. package/dist/client/manifest.webmanifest +2 -1
  9. package/dist/localization.js +24 -0
  10. package/dist/localization.js.map +1 -0
  11. package/dist/nativeServices/serviceDoctor.js +45 -44
  12. package/dist/nativeServices/serviceDoctor.js.map +1 -1
  13. package/dist/pi-packages/captains-log/dist/browser/index.js +46 -45
  14. package/dist/pi-packages/captains-log/dist/browser/markdown.js +2 -1
  15. package/dist/pi-packages/captains-log/dist/browser/panel.js +56 -55
  16. package/dist/pi-packages/captains-log/i18n.js +7 -0
  17. package/dist/pi-packages/relays/i18n.js +7 -0
  18. package/dist/pi-packages/relays/markdownDocument.js +2 -1
  19. package/dist/pi-packages/relays/pi-web-plugin.js +8 -6
  20. package/dist/pi-packages/relays/relaysPanelElement.js +24 -23
  21. package/dist/pi-web-plugins/files/browser/pi-web-plugin.js +124 -124
  22. package/dist/pi-web-plugins/git/browser/git-contract.js +13 -12
  23. package/dist/pi-web-plugins/git/browser/git-panel.js +25 -24
  24. package/dist/pi-web-plugins/git/browser/i18n.js +7 -0
  25. package/dist/pi-web-plugins/git/browser/pi-web-plugin.js +7 -3
  26. package/dist/pi-web-plugins/git/git-backend.js +10 -9
  27. package/dist/pi-web-plugins/git/i18n.js +7 -0
  28. package/dist/pi-web-plugins/git/server-plugin.js +21 -19
  29. package/dist/pi-web-plugins/info/i18n.js +7 -0
  30. package/dist/pi-web-plugins/info/infoInternals.js +57 -62
  31. package/dist/pi-web-plugins/info/pi-web-plugin.js +34 -36
  32. package/dist/pi-web-plugins/mermaid/browser/pi-web-plugin.js +3 -3
  33. package/dist/pi-web-plugins/terminal/browser/pi-web-plugin.js +55 -52
  34. package/dist/pi-web-plugins/terminal/i18n.js +7 -0
  35. package/dist/pi-web-plugins/terminal/server-plugin.js +23 -21
  36. package/dist/pi-web-plugins/terminal/terminalService.js +22 -21
  37. package/dist/pi-web-plugins/updates/i18n.js +7 -0
  38. package/dist/pi-web-plugins/updates/pi-web-plugin.js +58 -54
  39. package/dist/pi-web-plugins/updates/updatesLogic.js +21 -20
  40. package/dist/pi-web-plugins/workspace-tasks/config.js +12 -11
  41. package/dist/pi-web-plugins/workspace-tasks/i18n.js +7 -0
  42. package/dist/pi-web-plugins/workspace-tasks/pi-web-plugin.js +8 -6
  43. package/dist/pi-web-plugins/workspace-tasks/tasksPanelElement.js +20 -19
  44. package/dist/pi-web-plugins/workspace-tasks/workspaceTasksClient.js +12 -11
  45. package/dist/pi-web-plugins/zh-cn/auth.json +9 -0
  46. package/dist/pi-web-plugins/zh-cn/bundled.json +176 -0
  47. package/dist/pi-web-plugins/zh-cn/cli.json +171 -0
  48. package/dist/pi-web-plugins/zh-cn/client.json +219 -0
  49. package/dist/pi-web-plugins/zh-cn/components.json +1002 -0
  50. package/dist/pi-web-plugins/zh-cn/config-errors.json +172 -0
  51. package/dist/pi-web-plugins/zh-cn/files.json +41 -0
  52. package/dist/pi-web-plugins/zh-cn/machines.json +28 -0
  53. package/dist/pi-web-plugins/zh-cn/main.json +459 -0
  54. package/dist/pi-web-plugins/zh-cn/management-errors.json +23 -0
  55. package/dist/pi-web-plugins/zh-cn/manifest.webmanifest +25 -0
  56. package/dist/pi-web-plugins/zh-cn/metadata.json +3 -0
  57. package/dist/pi-web-plugins/zh-cn/package.json +10 -0
  58. package/dist/pi-web-plugins/zh-cn/pi-web-plugin.js +16 -0
  59. package/dist/pi-web-plugins/zh-cn/projects.json +6 -0
  60. package/dist/pi-web-plugins/zh-cn/provider-auth.json +17 -0
  61. package/dist/pi-web-plugins/zh-cn/routing.json +68 -0
  62. package/dist/pi-web-plugins/zh-cn/server-main.json +99 -0
  63. package/dist/pi-web-plugins/zh-cn/server.json +174 -0
  64. package/dist/piWebVersionReport.js +17 -16
  65. package/dist/piWebVersionReport.js.map +1 -1
  66. package/dist/plugin-api.d.ts +4 -1
  67. package/dist/pluginRecoveryCli.js +25 -24
  68. package/dist/pluginRecoveryCli.js.map +1 -1
  69. package/dist/server/app.js +43 -28
  70. package/dist/server/app.js.map +1 -1
  71. package/dist/server/audit/normalToolAuditCli.js +45 -43
  72. package/dist/server/audit/normalToolAuditCli.js.map +1 -1
  73. package/dist/server/configRoutes.js +39 -30
  74. package/dist/server/configRoutes.js.map +1 -1
  75. package/dist/server/diagnostics/nodePtyNativeModule.js +7 -6
  76. package/dist/server/diagnostics/nodePtyNativeModule.js.map +1 -1
  77. package/dist/server/diagnostics/nodePtySpawnHelper.js +21 -20
  78. package/dist/server/diagnostics/nodePtySpawnHelper.js.map +1 -1
  79. package/dist/server/knownAutoInstallPiPackages.js +2 -2
  80. package/dist/server/knownAutoInstallPiPackages.js.map +1 -1
  81. package/dist/server/knownPiPackages.js +2 -2
  82. package/dist/server/knownPiPackages.js.map +1 -1
  83. package/dist/server/machines/machineClient.js +8 -6
  84. package/dist/server/machines/machineClient.js.map +1 -1
  85. package/dist/server/machines/machinePluginProxyRoutes.js +11 -10
  86. package/dist/server/machines/machinePluginProxyRoutes.js.map +1 -1
  87. package/dist/server/machines/machineProxyRoutes.js +27 -29
  88. package/dist/server/machines/machineProxyRoutes.js.map +1 -1
  89. package/dist/server/machines/machineRoutes.js +10 -12
  90. package/dist/server/machines/machineRoutes.js.map +1 -1
  91. package/dist/server/machines/machineService.js +17 -18
  92. package/dist/server/machines/machineService.js.map +1 -1
  93. package/dist/server/managementEmbed.js +26 -25
  94. package/dist/server/managementEmbed.js.map +1 -1
  95. package/dist/server/normalAuth.js +29 -26
  96. package/dist/server/normalAuth.js.map +1 -1
  97. package/dist/server/passwordVerifier.js +2 -1
  98. package/dist/server/passwordVerifier.js.map +1 -1
  99. package/dist/server/piPackageService.js +7 -5
  100. package/dist/server/piPackageService.js.map +1 -1
  101. package/dist/server/piWebPluginService.js +27 -11
  102. package/dist/server/piWebPluginService.js.map +1 -1
  103. package/dist/server/piWebStatus.js +16 -14
  104. package/dist/server/piWebStatus.js.map +1 -1
  105. package/dist/server/plugins/serverPluginRuntime.js +4 -2
  106. package/dist/server/plugins/serverPluginRuntime.js.map +1 -1
  107. package/dist/server/projects/projectService.js +4 -3
  108. package/dist/server/projects/projectService.js.map +1 -1
  109. package/dist/server/sessiond/projectMutationRoutes.js +5 -4
  110. package/dist/server/sessiond/projectMutationRoutes.js.map +1 -1
  111. package/dist/server/sessiond/sessionProxyRoutes.js +11 -8
  112. package/dist/server/sessiond/sessionProxyRoutes.js.map +1 -1
  113. package/dist/server/sessiond/workspaceCatalogRoutes.js +5 -3
  114. package/dist/server/sessiond/workspaceCatalogRoutes.js.map +1 -1
  115. package/dist/server/sessiond.js +8 -3
  116. package/dist/server/sessiond.js.map +1 -1
  117. package/dist/server/sessions/authRoutes.js +20 -19
  118. package/dist/server/sessions/authRoutes.js.map +1 -1
  119. package/dist/server/sessions/authService.js +13 -10
  120. package/dist/server/sessions/authService.js.map +1 -1
  121. package/dist/server/sessions/builtinCommands.js +28 -21
  122. package/dist/server/sessions/builtinCommands.js.map +1 -1
  123. package/dist/server/sessions/oauthLoginFlowService.js +17 -15
  124. package/dist/server/sessions/oauthLoginFlowService.js.map +1 -1
  125. package/dist/server/sessions/piSessionService.js +229 -208
  126. package/dist/server/sessions/piSessionService.js.map +1 -1
  127. package/dist/server/sessions/projectAuthService.js +5 -3
  128. package/dist/server/sessions/projectAuthService.js.map +1 -1
  129. package/dist/server/sessions/sessionArchiveMapping.js +8 -7
  130. package/dist/server/sessions/sessionArchiveMapping.js.map +1 -1
  131. package/dist/server/sessions/sessionCleanup.js +4 -3
  132. package/dist/server/sessions/sessionCleanup.js.map +1 -1
  133. package/dist/server/sessions/sessionCommandService.js +70 -67
  134. package/dist/server/sessions/sessionCommandService.js.map +1 -1
  135. package/dist/server/sessions/sessionNotificationStore.js +12 -11
  136. package/dist/server/sessions/sessionNotificationStore.js.map +1 -1
  137. package/dist/server/sessions/sessionRoutes.js +74 -72
  138. package/dist/server/sessions/sessionRoutes.js.map +1 -1
  139. package/dist/server/sessions/sessionTreeProjection.js +50 -49
  140. package/dist/server/sessions/sessionTreeProjection.js.map +1 -1
  141. package/dist/server/sessions/sessionUnreadStore.js +25 -2
  142. package/dist/server/sessions/sessionUnreadStore.js.map +1 -1
  143. package/dist/server/terminals/managementCommandRunService.js +13 -12
  144. package/dist/server/terminals/managementCommandRunService.js.map +1 -1
  145. package/dist/server/workbench/accessStateStore.js +9 -7
  146. package/dist/server/workbench/accessStateStore.js.map +1 -1
  147. package/dist/server/workbench/capabilitySearch.js +3 -2
  148. package/dist/server/workbench/capabilitySearch.js.map +1 -1
  149. package/dist/server/workbench/knowledgeSearch.js +8 -7
  150. package/dist/server/workbench/knowledgeSearch.js.map +1 -1
  151. package/dist/server/workbench/mcpClient.js +6 -5
  152. package/dist/server/workbench/mcpClient.js.map +1 -1
  153. package/dist/server/workbench/skillSync.js +4 -2
  154. package/dist/server/workbench/skillSync.js.map +1 -1
  155. package/dist/server/workbench/workbenchClient.js +8 -7
  156. package/dist/server/workbench/workbenchClient.js.map +1 -1
  157. package/dist/server/workbench/workbenchTools.js +8 -6
  158. package/dist/server/workbench/workbenchTools.js.map +1 -1
  159. package/dist/server/workingDirectory.js +3 -2
  160. package/dist/server/workingDirectory.js.map +1 -1
  161. package/dist/server/workspaceExplorerRoutes.js +16 -13
  162. package/dist/server/workspaceExplorerRoutes.js.map +1 -1
  163. package/dist/server/workspaces/fileContentService.js +11 -10
  164. package/dist/server/workspaces/fileContentService.js.map +1 -1
  165. package/dist/server/workspaces/fileOperationService.js +7 -6
  166. package/dist/server/workspaces/fileOperationService.js.map +1 -1
  167. package/dist/server/workspaces/filePreviewService.js +5 -4
  168. package/dist/server/workspaces/filePreviewService.js.map +1 -1
  169. package/dist/server/workspaces/fileSuggestions.js +2 -1
  170. package/dist/server/workspaces/fileSuggestions.js.map +1 -1
  171. package/dist/server/workspaces/pathAccessPolicy.js +24 -18
  172. package/dist/server/workspaces/pathAccessPolicy.js.map +1 -1
  173. package/dist/server/workspaces/pathSafety.js +6 -5
  174. package/dist/server/workspaces/pathSafety.js.map +1 -1
  175. package/dist/server/workspaces/projectPiWebConfig.js +3 -2
  176. package/dist/server/workspaces/projectPiWebConfig.js.map +1 -1
  177. package/dist/server/workspaces/workspaceRemovalService.js +4 -3
  178. package/dist/server/workspaces/workspaceRemovalService.js.map +1 -1
  179. package/dist/server/workspaces/workspaceRouteErrors.js +4 -2
  180. package/dist/server/workspaces/workspaceRouteErrors.js.map +1 -1
  181. package/dist/server/workspaces/workspaceUserError.js +18 -0
  182. package/dist/server/workspaces/workspaceUserError.js.map +1 -0
  183. package/dist/server-plugin-api.d.ts +3 -1
  184. package/dist/server-plugin-api.js.map +1 -1
  185. package/dist/serverPluginRecovery.js +3 -2
  186. package/dist/serverPluginRecovery.js.map +1 -1
  187. package/dist/shared/apiTypes.js.map +1 -1
  188. package/dist/shared/i18n.js +41 -0
  189. package/dist/shared/i18n.js.map +1 -0
  190. package/dist/shared/piWebConfigParsing.js +52 -49
  191. package/dist/shared/piWebConfigParsing.js.map +1 -1
  192. package/dist/shared/pluginApiTypes.d.ts +7 -0
  193. package/dist/shared/requiredTerminalPlugin.js +1 -1
  194. package/dist/shared/requiredTerminalPlugin.js.map +1 -1
  195. package/dist/shared/sessionDefaults.js +7 -6
  196. package/dist/shared/sessionDefaults.js.map +1 -1
  197. package/dist/shared/thinkingLevels.js +17 -16
  198. package/dist/shared/thinkingLevels.js.map +1 -1
  199. package/docs/config.md +10 -1
  200. package/docs/plugins.md +8 -0
  201. package/package.json +1 -1
  202. package/dist/client/assets/index-CFhaGb5m.js +0 -4357
@@ -0,0 +1,68 @@
1
+ {
2
+ "routing.daemonUnavailable": "会话守护进程不可用:{error}",
3
+ "routing.cwdQueryRequired": "必须提供 cwd 查询参数",
4
+ "routing.queryRequired": "必须提供 q 查询参数",
5
+ "routing.directionInvalid": "direction 必须为 forward 或 backward",
6
+ "routing.folderInvalid": "folder 字段必须为字符串",
7
+ "routing.sessionsInvalid": "sessions 字段必须为数组",
8
+ "routing.idEmpty": "id 字段不能为空",
9
+ "routing.cwdRequired": "必须提供 cwd 字段",
10
+ "routing.instructionsMode": "{arg0} 摘要模式不支持 instructions 字段",
11
+ "routing.instructionsBlank": "instructions 字段不能为空白",
12
+ "routing.instructionsLength": "instructions 字段最多包含 {arg0} 个字符",
13
+ "routing.summaryMode": "summary 模式无效",
14
+ "routing.unsupportedProperty": "{arg0} 字段包含不支持的属性:{arg1}",
15
+ "routing.answersArray": "answers 字段必须为数组",
16
+ "routing.answersLimit": "answers 字段条目过多",
17
+ "routing.valuesArray": "values 字段必须为数组",
18
+ "routing.valuesLimit": "values 字段条目过多",
19
+ "routing.otherTextString": "otherText 字段必须为字符串",
20
+ "routing.otherTextLength": "otherText 字段过长",
21
+ "routing.valueLength": "value 超出长度限制",
22
+ "routing.valueType": "value 必须为布尔值或字符串",
23
+ "routing.bodyObject": "请求体必须为对象",
24
+ "routing.fieldString": "{arg0} 字段必须为字符串",
25
+ "routing.fieldEmpty": "{arg0} 字段不能为空",
26
+ "routing.fieldRequired": "必须提供 {arg0} 字段",
27
+ "routing.fieldNullableString": "{arg0} 字段必须为字符串或 null",
28
+ "routing.fieldLength": "{arg0} 字段过长",
29
+ "routing.fieldSafeInteger": "{arg0} 字段必须为非负安全整数",
30
+ "routing.fieldPositive": "{arg0} 字段必须为正数",
31
+ "routing.levelInvalid": "level 字段无效",
32
+ "routing.fieldNonnegative": "{arg0} 字段必须为非负整数",
33
+ "routing.projectCwdsArray": "projectCwds 字段必须为字符串数组",
34
+ "routing.projectIdInvalid": "projectId 字段必须为非空字符串",
35
+ "routing.notificationInactive": "通知运行时版本已不再活动",
36
+ "routing.notificationReplacing": "正在替换通知运行时",
37
+ "routing.notificationRegistered": "通知目标会话已注册",
38
+ "routing.sessionCwdMismatch": "会话工作目录不匹配",
39
+ "routing.notificationReplacementInactive": "通知替换版本已不再活动",
40
+ "routing.sessionNotFound": "未找到会话",
41
+ "routing.maxBytesInvalid": "maxBytes 必须为非负安全整数",
42
+ "routing.sessionIdEmpty": "sessionId 不能为空",
43
+ "routing.cwdEmpty": "cwd 不能为空",
44
+ "routing.commandRunMissing": "未找到终端命令运行记录",
45
+ "routing.terminalDisabled": "管理嵌入模式已禁用交互终端",
46
+ "routing.commandStatusInvalid": "无效的命令运行状态:{arg0}",
47
+ "routing.metadataFilterObject": "metadata 筛选器必须为对象",
48
+ "routing.metadataFilterString": "metadata 筛选值必须为字符串:{arg0}",
49
+ "routing.terminalMessageInvalid": "终端消息无效",
50
+ "routing.terminalCwdRequired": "必须提供 cwd",
51
+ "routing.commandRunsDisabled": "管理嵌入模式已禁用终端命令运行",
52
+ "routing.terminalMissing": "未找到终端",
53
+ "routing.originRequired": "必须提供 origin",
54
+ "routing.projectIdRequired": "必须提供 projectId",
55
+ "routing.workspaceIdRequired": "必须提供 workspaceId",
56
+ "routing.titleRequired": "必须提供 title",
57
+ "routing.commandRequired": "必须提供 command",
58
+ "routing.metadataObject": "metadata 必须为对象",
59
+ "routing.metadataKeyEmpty": "metadata 键不能为空",
60
+ "routing.metadataValueString": "metadata 值必须为字符串",
61
+ "routing.branchInstructionsRequired": "必须提供自定义分支摘要指令",
62
+ "routing.branchInstructionsLength": "自定义分支摘要指令最多包含 {arg0} 个字符",
63
+ "routing.streamingBehaviorInvalid": "提示的 streamingBehavior 必须为 \"steer\" 或 \"followUp\"",
64
+ "routing.managedSkillPathInvalid": "托管技能路径无效:{arg0}",
65
+ "routing.warningDismissInvalid": "未知的会话警告关闭 ID:{arg0}",
66
+ "routing.runtimeManagerRequired": "创建默认运行时需要 SDK SessionManager",
67
+ "routing.sessionHeaderInvalid": "会话文件头无效"
68
+ }
@@ -0,0 +1,99 @@
1
+ {
2
+ "server.main.f7ee5dbe3ca0": "中继",
3
+ "server.main.40c450439267": "船长日志",
4
+ "server.main.8d1f2155372e": "不兼容",
5
+ "server.main.46b71cd9c032": "当前模型不可用",
6
+ "server.main.dc6de3fa868f": "消息",
7
+ "server.main.3a9b15de3ecb": "提供与工具无关的 Relay 方法、约定式 Relay Runner 配置,以及由人工确认后派发的独立 Pi 会话链提示词。",
8
+ "server.main.71464aff7010": "将选中会话的最后回复转述为海盗风格,保留可见 Pi 消息记录。须手动安装并显式启用插件,模型调用可能产生费用。",
9
+ "server.main.282cd5275cef": "没有可用的运行时详情",
10
+ "server.main.8af35369452e": "必需的终端插件运行时{arg0}:{arg1}。请在会话守护进程可用且兼容后重试;仅已生效的 safe-start none 恢复模式可禁用终端。",
11
+ "server.main.865fa5d8d3ad": "必需的终端浏览器入口不可用;请使用 safe start none 进行恢复",
12
+ "server.main.d61ab23bfd9b": "必需的终端浏览器入口不是内置的机器专属包",
13
+ "server.main.496affb7523c": "必需的终端浏览器/服务端配对不兼容;请重启或使用 safe start none 进行恢复",
14
+ "server.main.a77a108c062b": "必需的终端浏览器入口必须先于普通插件激活",
15
+ "server.main.aec337b9b78a": ",当前已安装 {arg0}",
16
+ "server.main.ebfeec269198": "PI WEB 无法检查会话守护进程版本{arg0}请检查本次安装的会话守护进程服务或进程。",
17
+ "server.main.3122d89b6904": "跟踪子会话只能在父会话的工作区中运行({arg0}),不能使用 {arg1}。如需在其它工作区运行,请使用 spawn_session 创建独立会话。",
18
+ "server.main.416db415bedb": "自定义分支汇总要求不能为空",
19
+ "server.main.8e5676bb8f61": "自定义分支汇总要求不能超过 {arg0} 个字符",
20
+ "server.main.dbc19a47e7b3": "托管会话 {arg0} 启动失败后清理失败",
21
+ "server.main.07f784061918": "提交问题回答",
22
+ "server.main.90b5a8ac7c7d": "作废未回答问题",
23
+ "server.main.583c6c767d31": "未找到模型:{arg0}",
24
+ "server.main.c24071bdc942": "模型未启用:{arg0}",
25
+ "server.main.d04dfe5abc11": "会话默认值设置失败:{arg0}",
26
+ "server.main.c43b4e3cefe1": "模型可用范围由此工作区的 .pi/settings.json 控制",
27
+ "server.main.fd81137332d5": "修改已启用模型",
28
+ "server.main.fe143303e69e": "不能停用当前模型",
29
+ "server.main.130226a572df": "更改模型",
30
+ "server.main.94306b2fc35c": "发送消息",
31
+ "server.main.ed6dfd6b55ab": "初始 PI 会话运行已中止",
32
+ "server.main.e08c1380a71f": "初始 PI 会话运行失败",
33
+ "server.main.f39f37acdac1": "会话树目标条目不能为空",
34
+ "server.main.e39e6b98e072": "切换会话树前请先停止当前会话活动",
35
+ "server.main.8cae209986b4": "会话树切换失败",
36
+ "server.main.f10a242f597a": "会话树条目不能为空",
37
+ "server.main.3f5b7f08e91c": "分叉会话树前请先停止当前会话活动",
38
+ "server.main.4de911d3b72a": "正在从条目分叉会话",
39
+ "server.main.0246b6af6843": "会话分叉不可用",
40
+ "server.main.1cceead5f414": "分叉已取消",
41
+ "server.main.08e8f3ea9eaa": "分叉失败",
42
+ "server.main.0c70757b6815": "会话树导航期间无法{arg0}",
43
+ "server.main.b80808e6ef11": "此会话最近在另一个 PI WEB 实例中活动。请避免在两个实例中同时操作此会话。",
44
+ "server.main.a918daf4f693": "会话活动期间无法打开会话树。请先停止当前活动,再尝试 /tree。",
45
+ "server.main.ab9910fde691": "无法导航空会话树。",
46
+ "server.main.0678911a2580": "无法打开会话树: {arg0}",
47
+ "server.main.53f693cde268": "会话树导航期间无法运行命令。请先停止或完成导航。",
48
+ "server.main.6a6ece1f173c": "mode 字段必须是 all 或 current",
49
+ "server.main.4b60afa8c1ba": "Pi 返回的会话树节点格式无效",
50
+ "server.main.e6b6a590f7ed": "Pi 返回的会话树条目格式无效",
51
+ "server.main.3857869ba727": "Pi 返回了重复的会话树条目 ID",
52
+ "server.main.7a5bc8620ac0": "Pi 返回的当前会话树叶节点无效",
53
+ "server.main.d765f83522b3": "上下文压缩摘要",
54
+ "server.main.bd3089eabef7": "思考级别已改变",
55
+ "server.main.864aff361dc2": "会话名称",
56
+ "server.main.fa649632e3e0": "会话信息已更新",
57
+ "server.main.7fcc85f15076": "标签已移除",
58
+ "server.main.5f0cbfe15886": "自定义条目",
59
+ "server.main.4e5f90ffebb5": "条目",
60
+ "server.main.6723d8968dbb": "其他会话条目",
61
+ "server.main.146671b0a192": "用户消息",
62
+ "server.main.616f0f69fb0c": "Shell 命令",
63
+ "server.main.be56e839ddf1": "隐藏的自定义消息",
64
+ "server.main.fa01b7e998e3": "自定义消息 ({arg0})",
65
+ "server.main.5c94fc594b12": "助手回复",
66
+ "server.main.1bd15151d237": "工具调用: {arg0}",
67
+ "server.main.794d91c7d8b2": "助手工具调用",
68
+ "server.main.303ddde0151b": "助手错误",
69
+ "server.main.7f2288f6a14d": "助手回复已终止",
70
+ "server.main.544b5247f8ed": "工具错误",
71
+ "server.main.113718afc707": "模型: {arg0}/{arg1}",
72
+ "server.main.58ae2359bc5c": "模型已改变",
73
+ "server.main.4f622a639dae": "[图片]",
74
+ "server.main.8e9133b0ce4a": "工作区移除失败,请查看终端输出。",
75
+ "server.main.f658c452e075": "工作区移除失败:{arg0}",
76
+ "server.main.441e39d0647e": "不能禁用必需的 Terminal 插件。{arg0}",
77
+ "server.main.49fa781838ba": "使用 `pi-web plugins safe-start set none --restart`,以不启用终端的恢复模式启动 PI WEB。",
78
+ "server.main.3e4a6b300782": "只能指定模型或思考等级其中一项",
79
+ "server.main.7598b259c5cc": "无效的思考等级",
80
+ "server.main.f7847dc4d526": "provider 和 modelId 都必须是非空字符串",
81
+ "server.main.b5b69396302e": "无效的会话默认值",
82
+ "server.main.d20dbeed752b": "无效的 {arg0}",
83
+ "server.main.e937d7ab07c7": "无效的 defaultThinkingLevel",
84
+ "server.main.1a3657afd344": "管理嵌入模式不允许访问此接口",
85
+ "server.main.d65046b27147": "认证服务繁忙,请稍后重试",
86
+ "server.main.2a7cb0e35521": "管理嵌入模式不允许修改已启用模型范围",
87
+ "server.main.3f21310f8d85": "当前账号未获授权检索该知识资源",
88
+ "server.main.7cd088bdbe27": "知识资源版本不在当前授权快照中",
89
+ "server.main.89d8fb1a8854": "MCP 通道请求超时",
90
+ "server.main.348148161f56": "MCP 通道连接失败",
91
+ "server.main.5ca91c430286": "MCP 通道连接失败({arg0})",
92
+ "server.main.unavailable": "不可用",
93
+ "projectError.invalidInput": "项目参数无效:必须提供 path;name 必须是字符串,create 必须是布尔值",
94
+ "server.files.workspaceNotFound": "未找到工作区",
95
+ "package.known.@jmfederico/pi-relay.label": "中继",
96
+ "package.known.@jmfederico/pi-relay.description": "面向独立 Pi 会话链的通用 Relay 方法、运行配置与人工确认准备提示词。",
97
+ "package.known.@chainingintention/pi-captains-log.label": "船长日志",
98
+ "package.known.@chainingintention/pi-captains-log.description": "将所选会话的最后回复转换成海盗风格,并保留可见的 Pi 消息记录。安装后需显式启用其 PI WEB 插件。"
99
+ }
@@ -0,0 +1,174 @@
1
+ {
2
+ "session.authRemoved": "{provider}/{model} 的认证已移除。请使用 /model 选择其他模型。",
3
+ "workbench.skillDisabled": "该Skill已被管理员停用,请刷新工作台授权后重试。",
4
+ "workbench.searchLabel": "检索授权能力",
5
+ "workbench.callLabel": "调用授权能力",
6
+ "workbench.callFailed": "能力调用失败",
7
+ "workbench.capabilityUnauthorized": "当前账号未获授权使用该L0能力",
8
+ "status.installedVersion": ";已安装版本为 {version}",
9
+ "status.updateManual": "PI WEB {latestVersion} 已发布{installed}。请更新 PI WEB,然后重启此安装的服务或进程。",
10
+ "status.updateCommand": "PI WEB {latestVersion} 已发布{installed}。请运行更新命令更新 PI WEB 并重启服务。",
11
+ "status.webRestartManual": "Web/UI 服务正在运行 {runtimeVersion},但已安装 {installedVersion}。重启 Web/UI 服务或进程即可使用已安装版本。",
12
+ "status.webRestartCommand": "Web/UI 服务正在运行 {runtimeVersion},但已安装 {installedVersion}。重启服务即可使用已安装版本。",
13
+ "status.daemonUnavailableManual": "PI WEB 无法检查会话守护进程版本{detail}。请检查此安装的会话守护进程服务或进程。",
14
+ "status.daemonUnavailableCommand": "PI WEB 无法检查会话守护进程版本{detail}",
15
+ "session.subsessionNotOwned": "会话 {sessionId} 不是你的子会话",
16
+ "session.subsessionCwdMissing": "无法确定已验证的受跟踪子会话工作目录",
17
+ "session.parentUnavailable": "父会话 {parentSessionId} 不可用于子会话通知",
18
+ "session.treeTargetRequired": "必须提供会话树目标",
19
+ "session.stopBeforeTree": "浏览会话树前请先停止当前会话活动",
20
+ "session.treeUnsupported": "当前 Pi 运行时不支持会话树导航",
21
+ "session.treeStale": "打开 /tree 后会话已发生变化。请重新打开 /tree 后重试。",
22
+ "session.notActive": "会话未处于活动状态:{sessionId}",
23
+ "session.actionDuringTree": "会话树导航期间无法执行 {action}",
24
+ "status.updateAvailable": "PI WEB 有可用更新",
25
+ "status.webRestart": "Web/UI 服务需要重启",
26
+ "status.daemonUnavailable": "无法获取会话守护进程版本",
27
+ "status.daemonRestart": "会话守护进程需要重启",
28
+ "status.daemonRestartManual": "会话守护进程正在运行 {runtimeVersion},但已安装 {installedVersion}。重启会话守护进程服务或进程即可使用已安装版本。",
29
+ "status.daemonRestartCommand": "会话守护进程正在运行 {runtimeVersion},但已安装 {installedVersion}。重启守护进程即可使用已安装版本。",
30
+ "session.archiveUnavailable": "会话不可归档:{sessionId}",
31
+ "project.notFound": "未找到项目",
32
+ "project.authAmbiguous": "cwd 同时属于多个已注册项目,无法确定认证配置",
33
+ "project.cwdUnregistered": "cwd 必须属于一个已注册项目",
34
+ "workbench.authorizationMissing": "当前管理会话没有工作台资源授权,请从工作台重新进入桂小智。",
35
+ "workbench.authorizationExpired": "当前资源授权已过期或发生变化,请返回工作台重新进入桂小智。",
36
+ "gateway.projectManagementDisabled": "管理嵌入模式下禁用项目管理",
37
+ "gateway.projectBrowsingDisabled": "管理嵌入模式下禁用项目目录浏览",
38
+ "gateway.cwdRequired": "必须提供 cwd 查询参数",
39
+ "gateway.pluginAssetNotFound": "未找到插件资源",
40
+ "gateway.notFound": "未找到",
41
+ "session.spawnUnregistered": "派生会话不在已注册项目中",
42
+ "session.spawnWorkspace": "cwd 必须是此项目的工作区。允许的路径:{paths}",
43
+ "model.spawnUnknown": "未找到模型“{model}”。请传入精确的“provider/model-id”。",
44
+ "session.promptRequired": "提示文本为必填项",
45
+ "startup.runtime": "正在启动 Pi 会话",
46
+ "startup.extensions": "正在加载会话扩展",
47
+ "startup.catalogRefresh": "服务商模型列表正在刷新",
48
+ "activity.compacting": "正在压缩上下文",
49
+ "activity.compacted": "上下文压缩完成",
50
+ "activity.compactionFailed": "上下文压缩失败",
51
+ "session.pinWorkspaceRequired": "置顶会话必须提供工作区",
52
+ "session.notFound": "未找到会话",
53
+ "session.pinPersistedOnly": "只能置顶已持久化会话",
54
+ "session.spawningDisabled": "派生会话已禁用",
55
+ "model.oneScoped": "作用域内只有一个模型",
56
+ "model.oneAvailable": "只有一个可用模型",
57
+ "model.thinkingUnsupported": "当前模型不支持思考",
58
+ "activity.duplicateIgnored": "已忽略重复的排队消息",
59
+ "activity.steerQueued": "插队消息已排队",
60
+ "activity.messageQueued": "消息已排队",
61
+ "activity.messageReceived": "消息已接收",
62
+ "activity.error": "发生错误",
63
+ "activity.compactionQueued": "压缩期间消息已排队",
64
+ "shell.usage": "用法:!<shell command>",
65
+ "shell.alreadyRunning": "已有 bash 命令正在运行",
66
+ "activity.commandRunning": "正在运行命令",
67
+ "activity.commandCompleted": "命令执行完成",
68
+ "activity.commandFailed": "命令执行失败",
69
+ "activity.summarizing": "正在汇总分支",
70
+ "activity.navigating": "正在切换会话树",
71
+ "activity.summaryAborted": "分支汇总已终止",
72
+ "activity.navigationCancelled": "会话树切换已取消",
73
+ "activity.navigated": "已切换会话树",
74
+ "activity.reloadFailed": "重新加载失败",
75
+ "session.stopBeforeArchive": "归档前请先停止当前会话活动",
76
+ "session.archiveNotFound": "未找到已归档会话",
77
+ "session.archiveDeleteUnsupported": "归档存储不支持删除",
78
+ "session.stopBeforeReload": "重新加载前请先停止当前会话活动",
79
+ "session.notPersisted": "会话尚未持久化",
80
+ "activity.stopped": "已停止",
81
+ "activity.stopFailed": "停止失败",
82
+ "session.archiveReadOnly": "已归档会话为只读。请恢复会话后继续。",
83
+ "activity.extensionError": "扩展错误",
84
+ "activity.updating": "正在更新会话",
85
+ "activity.agentRunning": "代理正在运行",
86
+ "activity.queued": "正在排队",
87
+ "activity.working": "正在处理",
88
+ "activity.idle": "空闲",
89
+ "activity.turnCompleted": "本轮已完成",
90
+ "activity.messageStarted": "消息开始处理",
91
+ "activity.messageCompleted": "消息处理完成",
92
+ "activity.receiving": "正在接收回复",
93
+ "activity.toolRunning": "正在运行工具",
94
+ "activity.toolFailed": "工具执行失败",
95
+ "activity.toolCompleted": "工具执行完成",
96
+ "activity.creating": "正在创建会话",
97
+ "activity.opening": "正在打开会话",
98
+ "activity.reloading": "正在重新加载资源",
99
+ "activity.reloaded": "资源已重新加载",
100
+ "command.expired": "命令请求已过期",
101
+ "command.forkCancelled": "已取消分叉",
102
+ "command.forked": "会话已分叉",
103
+ "command.nameUsage": "用法:/name <会话名称>",
104
+ "command.compactionStarted": "已开始压缩…",
105
+ "command.reloadActive": "会话活动期间无法重新加载,请先停止当前活动。",
106
+ "command.reloadUnsupported": "当前会话运行时不支持 /reload。",
107
+ "command.reloaded": "会话运行时资源已重新加载。扩展、技能、提示词模板、主题以及上下文/系统提示词文件已刷新;PI WEB 浏览器插件变更仍需另行刷新浏览器页面。",
108
+ "command.cloneNoEntry": "无法克隆:没有当前会话条目",
109
+ "command.cloneCancelled": "已取消克隆",
110
+ "command.cloned": "会话已克隆",
111
+ "command.forkNoMessages": "没有可用于分叉的用户消息",
112
+ "command.forkTitle": "从消息分叉",
113
+ "session.untitled": "未命名会话",
114
+ "session.fork": "分叉",
115
+ "session.copy": "副本",
116
+ "session.clone": "克隆",
117
+ "command.compacted": "压缩完成。",
118
+ "command.treeActive": "会话活动期间无法打开会话树,请停止当前活动后重试 /tree。",
119
+ "command.treeEmpty": "无法浏览空的会话树。",
120
+ "command.treeUnavailable": "当前 Pi 运行时不支持会话树导航。",
121
+ "command.treeNavigating": "会话树导航期间无法运行命令,请先停止或完成导航。",
122
+ "model.notFound": "未找到模型:{value0}/{value1}",
123
+ "activity.model": "模型:{value0}",
124
+ "model.invalidThinking": "无效的思考级别:{value0}",
125
+ "activity.thinking": "思考级别:{value0}",
126
+ "session.stopBeforeNamedArchive": "归档 {value0} 前请先停止当前会话活动",
127
+ "command.unknown": "未知命令:/{value0}",
128
+ "command.unsupported": "Web UI 尚未实现 /{value0}",
129
+ "command.named": "会话已命名:{value0}",
130
+ "command.compactionFailed": "压缩失败:{value0}",
131
+ "command.reloadFailed": "重新加载失败:{value0}",
132
+ "command.namingFailed": "会话已创建,但命名失败:{value0}",
133
+ "command.relatedActive": "会话活动期间无法{value0}。请先停止当前活动。",
134
+ "stats.session": "会话:{value0}",
135
+ "stats.messages": "消息:{value0}(用户 {value1},助手 {value2})",
136
+ "stats.toolCalls": "工具调用:{value0}",
137
+ "stats.tokens": "Tokens:↑{value0} ↓{value1} 总计 {value2}",
138
+ "stats.cost": "费用:${value0}",
139
+ "stats.tokensBefore": "压缩前 tokens:{value0}",
140
+ "command.treeFailed": "无法打开会话树:{value0}",
141
+ "builtin.settings": "打开设置菜单",
142
+ "builtin.model": "选择模型",
143
+ "builtin.scoped-models": "启用/禁用可循环切换的模型",
144
+ "builtin.export": "导出会话",
145
+ "builtin.import": "从 JSONL 导入并恢复会话",
146
+ "builtin.share": "将会话分享到私密 GitHub gist",
147
+ "builtin.copy": "复制上一条代理消息",
148
+ "builtin.name": "设置会话显示名称",
149
+ "builtin.session": "显示会话信息和统计",
150
+ "builtin.changelog": "显示更新日志条目",
151
+ "builtin.hotkeys": "显示键盘快捷键",
152
+ "builtin.fork": "从之前的用户消息创建新分叉",
153
+ "builtin.clone": "在当前位置复制当前会话",
154
+ "builtin.tree": "导航会话树",
155
+ "builtin.login": "配置提供商认证",
156
+ "builtin.logout": "移除提供商认证",
157
+ "builtin.new": "启动新会话",
158
+ "builtin.compact": "手动压缩会话上下文",
159
+ "builtin.resume": "恢复另一个会话",
160
+ "builtin.reload": "重新加载当前会话的 Pi 运行时资源",
161
+ "builtin.quit": "退出 pi",
162
+ "session.stopBeforeReplace": "替换会话前请先停止当前会话活动",
163
+ "session.stopBeforeDeleteArchive": "删除已归档会话前请先停止当前会话活动",
164
+ "session.action.compact": "压缩会话",
165
+ "session.action.answer": "回答问题",
166
+ "session.action.dismiss": "关闭问题",
167
+ "session.action.deliverAnswers": "提交问题答案",
168
+ "session.action.voidQuestions": "取消待回答问题",
169
+ "session.action.changeModels": "切换模型",
170
+ "session.action.changeThinking": "更改思考级别",
171
+ "session.action.prompt": "发送提示",
172
+ "session.action.shell": "运行 Shell 命令",
173
+ "session.action.notify": "发送子会话通知"
174
+ }
@@ -1,3 +1,4 @@
1
+ import { createTranslator } from "./shared/i18n.js";
1
2
  import { readFileSync } from "node:fs";
2
3
  import { dirname, join } from "node:path";
3
4
  import { fileURLToPath } from "node:url";
@@ -221,12 +222,12 @@ function isHttpNotFound(error) {
221
222
  function isAuthenticationRequired(error) {
222
223
  return error instanceof HttpResponseError && (error.status === 401 || error.status === 403);
223
224
  }
224
- function printInstalledPackageVersions() {
225
+ function printInstalledPackageVersions(t = createTranslator("en", {})) {
225
226
  const info = readPackageInfo();
226
- console.log("Installed packages:");
227
+ console.log(t("version.installed", "Installed packages:"));
227
228
  if (info === undefined) {
228
- console.log(`? ${PI_WEB_PACKAGE_NAME}: unknown`);
229
- console.log(` missing package metadata: ${packageJsonPath()}`);
229
+ console.log(t("version.packageUnknown", "? {arg0}: unknown", { arg0: PI_WEB_PACKAGE_NAME }));
230
+ console.log(t("version.metadataMissing", " missing package metadata: {arg0}", { arg0: packageJsonPath() }));
230
231
  return;
231
232
  }
232
233
  console.log(`✓ ${info.name}: ${info.version}`);
@@ -248,12 +249,12 @@ function printRunningVersionInfo(info) {
248
249
  if (info.generatedAt !== undefined)
249
250
  console.log(` reported by web/API at ${info.generatedAt}`);
250
251
  }
251
- function printComponentVersion(component) {
252
+ function printComponentVersion(component, t = createTranslator("en", {})) {
252
253
  const icon = component.available ? component.stale ? "!" : "✓" : "?";
253
- const status = !component.available ? "unavailable" : component.stale ? "restart needed" : "current";
254
+ const status = !component.available ? t("version.unavailable", "unavailable") : component.stale ? t("version.restartNeeded", "restart needed") : t("version.current", "current");
254
255
  console.log(`${icon} ${component.label}: ${status}`);
255
256
  if (component.available || component.runtimeVersion !== undefined || component.installedVersion !== undefined) {
256
- console.log(` running: ${formatVersion(component.runtimeVersion)}; installed: ${formatVersion(component.installedVersion)}`);
257
+ console.log(t("version.runningInstalled", " running: {arg0}; installed: {arg1}", { arg0: formatVersion(component.runtimeVersion, t), arg1: formatVersion(component.installedVersion, t) }));
257
258
  }
258
259
  if (component.piVersion !== undefined)
259
260
  console.log(` pi: ${component.piVersion}`);
@@ -263,12 +264,12 @@ function printComponentVersion(component) {
263
264
  if (component.error !== undefined)
264
265
  console.log(` ${component.error}`);
265
266
  }
266
- function printUnavailableComponent(label, error) {
267
- console.log(`? ${label}: unavailable`);
267
+ function printUnavailableComponent(label, error, t = createTranslator("en", {})) {
268
+ console.log(t("version.componentUnavailable", "? {arg0}: unavailable", { arg0: label }));
268
269
  if (error !== undefined && error !== "")
269
270
  console.log(` ${error}`);
270
271
  }
271
- function installationLabel(installation) {
272
+ function installationLabel(installation, t = createTranslator("en", {})) {
272
273
  if (installation === undefined)
273
274
  return undefined;
274
275
  if (installation.kind === "pi-package") {
@@ -280,18 +281,18 @@ function installationLabel(installation) {
280
281
  if (installation.kind === "npm-global") {
281
282
  const npmRoot = installation.npmRoot === undefined ? "" : ` · ${installation.npmRoot}`;
282
283
  const path = installation.path === undefined ? "" : ` · ${installation.path}`;
283
- return `global npm package${npmRoot}${path}`;
284
+ return t("version.globalNpm", "global npm package{arg0}{arg1}", { arg0: npmRoot, arg1: path });
284
285
  }
285
286
  if (installation.kind === "local")
286
- return installation.path === undefined ? "local checkout" : `local checkout · ${installation.path}`;
287
+ return installation.path === undefined ? t("version.checkout", "local checkout") : t("version.checkoutPath", "local checkout · {arg0}", { arg0: installation.path });
287
288
  if (installation.kind === "docker") {
288
- const mode = installation.dockerMode === "dev" ? "Docker development runtime" : "Docker runtime";
289
+ const mode = installation.dockerMode === "dev" ? t("version.dockerDev", "Docker development runtime") : t("version.docker", "Docker runtime");
289
290
  return installation.path === undefined ? mode : `${mode} · ${installation.path}`;
290
291
  }
291
- return installation.path === undefined ? "installation unknown" : `installation unknown · ${installation.path}`;
292
+ return installation.path === undefined ? t("version.installationUnknown", "installation unknown") : t("version.unknownPath", "installation unknown · {arg0}", { arg0: installation.path });
292
293
  }
293
- function formatVersion(version) {
294
- return version === undefined || version === "" ? "unknown" : version;
294
+ function formatVersion(version, t = createTranslator("en", {})) {
295
+ return version === undefined || version === "" ? t("version.unknown", "unknown") : version;
295
296
  }
296
297
  function errorMessage(error) {
297
298
  return error instanceof Error ? error.message : String(error);
@@ -1 +1 @@
1
- {"version":3,"file":"piWebVersionReport.js","sourceRoot":"","sources":["../src/piWebVersionReport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"piWebVersionReport.js","sourceRoot":"","sources":["../src/piWebVersionReport.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { TemplateResult } from "lit";
2
+ import type { LocalizationContribution, Translator } from "./shared/pluginApiTypes.js";
2
3
  import type { DeleteWorkspaceFileResponse, FileContentResponse, FileTreeResponse, JsonValue, MachineKind, MoveWorkspaceFileOptions, MoveWorkspaceFileResponse, PiWebStatusResponse, PluginCapability, PluginCapabilityProvision, TerminalCommandRunHandle, WorkspaceProviderMetadata, WorkspaceRemovalPresentation, WriteWorkspaceFileOptions, WriteWorkspaceFileResponse } from "./shared/pluginApiTypes.js";
3
- export type { FileContentMediaType, FileContentResponse, FileTreeEntry, FileTreeResponse, JsonObject, JsonPrimitive, JsonValue, MachineKind, PiWebComponentStatus, PiWebDockerMode, PiWebInstallationInfo, PiWebInstallationKind, PiWebReleaseStatus, PiWebServiceComponent, PiWebStatusMessage, PiWebStatusResponse, PiWebStatusSeverity, PiWebVersionResponse, PluginCapability, PluginCapabilityProvision, TerminalCommandRun, TerminalCommandRunHandle, TerminalCommandRunStatus, WorkspaceProviderCapabilities, WorkspaceProviderMetadata, WorkspaceRemovalPresentation, WriteWorkspaceFileOptions, WriteWorkspaceFileResponse, DeleteWorkspaceFileResponse, MoveWorkspaceFileOptions, MoveWorkspaceFileResponse, } from "./shared/pluginApiTypes.js";
4
+ export type { LocalizationContribution, TranslationMessages, TranslationParameters, Translator, FileContentMediaType, FileContentResponse, FileTreeEntry, FileTreeResponse, JsonObject, JsonPrimitive, JsonValue, MachineKind, PiWebComponentStatus, PiWebDockerMode, PiWebInstallationInfo, PiWebInstallationKind, PiWebReleaseStatus, PiWebServiceComponent, PiWebStatusMessage, PiWebStatusResponse, PiWebStatusSeverity, PiWebVersionResponse, PluginCapability, PluginCapabilityProvision, TerminalCommandRun, TerminalCommandRunHandle, TerminalCommandRunStatus, WorkspaceProviderCapabilities, WorkspaceProviderMetadata, WorkspaceRemovalPresentation, WriteWorkspaceFileOptions, WriteWorkspaceFileResponse, DeleteWorkspaceFileResponse, MoveWorkspaceFileOptions, MoveWorkspaceFileResponse, } from "./shared/pluginApiTypes.js";
4
5
  export type PluginId = string;
5
6
  export type LocalContributionId = string;
6
7
  export type QualifiedContributionId = string;
@@ -16,6 +17,7 @@ export interface PiWebPlugin {
16
17
  }
17
18
  /** Host-owned frozen values supplied once during browser plugin activation. */
18
19
  export interface PluginActivationContext {
20
+ readonly translate?: Translator;
19
21
  readonly apiVersion: 4;
20
22
  /** Stable package/source identity, including on federated machines. */
21
23
  readonly pluginId: PluginId;
@@ -113,6 +115,7 @@ export interface ContentRenderingCapability {
113
115
  renderMarkdown(request: ContentMarkdownRenderRequest): TemplateResult;
114
116
  }
115
117
  export interface PluginContributions {
118
+ localizations?: LocalizationContribution[];
116
119
  contentRenderers?: ContentRendererContribution[];
117
120
  actions?: PluginAction[];
118
121
  workspacePanels?: WorkspacePanelContribution[];
@@ -1,7 +1,8 @@
1
1
  import { isPiWebPluginId } from "./shared/pluginIds.js";
2
+ import { createTranslator } from "./shared/i18n.js";
2
3
  import { disableServerPlugin, loadServerPluginRecoveryConfig, setServerPluginSafeStart, } from "./serverPluginRecovery.js";
3
- export function pluginRecoveryHelp() {
4
- return `PI WEB server plugin recovery
4
+ export function pluginRecoveryHelp(t = createTranslator("en", {})) {
5
+ return t("pluginRecovery.help", `PI WEB server plugin recovery
5
6
 
6
7
  Usage:
7
8
  pi-web plugins disable <plugin-id> [--config <path>] [--restart]
@@ -13,44 +14,44 @@ Safe-start levels:
13
14
  bundled-only Load bundled server plugins, including required Terminal, only.
14
15
  none Load no server plugins; Terminal is unavailable and the kernel folder workspace remains available.
15
16
 
16
- 必需的 Terminal 插件不能单独禁用;离线恢复请使用 safe-start none。
17
+ The required Terminal plugin cannot be disabled individually; use safe-start none for offline recovery.
17
18
  These commands edit config offline and never contact the session daemon or import plugins.
18
- Changes take effect after a manual session-daemon restart unless --restart can restart it automatically.`;
19
+ Changes take effect after a manual session-daemon restart unless --restart can restart it automatically.`);
19
20
  }
20
- export function runPluginRecoveryCli(args, dependencies) {
21
+ export function runPluginRecoveryCli(args, dependencies, t = createTranslator("en", {})) {
21
22
  const command = parsePluginRecoveryCommand(args);
22
23
  const writeLine = dependencies.writeLine ?? ((line) => { console.log(line); });
23
24
  if (command.kind === "help") {
24
- for (const line of pluginRecoveryHelp().split("\n"))
25
+ for (const line of pluginRecoveryHelp(t).split("\n"))
25
26
  writeLine(line);
26
27
  return;
27
28
  }
28
29
  const configOptions = recoveryConfigOptions(command.configPath, dependencies);
29
30
  if (command.kind === "safe-start-show") {
30
31
  const recovery = loadServerPluginRecoveryConfig(configOptions);
31
- writeLine(`Server plugin safe start: ${recovery.safeStart ?? "off"}`);
32
- reportRecoveryDiagnostic(recovery.safeStartDiagnostic, writeLine);
33
- writeLine(`Config: ${recovery.path}${recovery.exists ? "" : " (not created)"}`);
32
+ writeLine(t("pluginRecovery.safeStart", "Server plugin safe start: {level}", { level: recovery.safeStart ?? "off" }));
33
+ reportRecoveryDiagnostic(recovery.safeStartDiagnostic, writeLine, t);
34
+ writeLine(t("pluginRecovery.config", "Config: {path}{suffix}", { path: recovery.path, suffix: recovery.exists ? "" : t("pluginRecovery.notCreated", " (not created)") }));
34
35
  return;
35
36
  }
36
37
  if (command.kind === "disable") {
37
38
  const recovery = disableServerPlugin(command.pluginId, configOptions);
38
- writeLine(`Disabled server plugin ${JSON.stringify(command.pluginId)} in ${recovery.path}.`);
39
- reportRecoveryDiagnostic(recovery.safeStartDiagnostic, writeLine);
40
- reportRestart(command.restart, restartPlanFor(recovery.path, command.configPath, dependencies), writeLine);
39
+ writeLine(t("pluginRecovery.disabled", "Disabled server plugin {pluginId} in {path}.", { pluginId: JSON.stringify(command.pluginId), path: recovery.path }));
40
+ reportRecoveryDiagnostic(recovery.safeStartDiagnostic, writeLine, t);
41
+ reportRestart(command.restart, restartPlanFor(recovery.path, command.configPath, dependencies), writeLine, t);
41
42
  return;
42
43
  }
43
44
  if (command.kind === "safe-start-set") {
44
45
  const recovery = setServerPluginSafeStart(command.safeStart, configOptions);
45
- writeLine(`Set server plugin safe start to ${command.safeStart} in ${recovery.path}.`);
46
- reportRecoveryDiagnostic(recovery.safeStartDiagnostic, writeLine);
47
- reportRestart(command.restart, restartPlanFor(recovery.path, command.configPath, dependencies), writeLine);
46
+ writeLine(t("pluginRecovery.set", "Set server plugin safe start to {level} in {path}.", { level: command.safeStart, path: recovery.path }));
47
+ reportRecoveryDiagnostic(recovery.safeStartDiagnostic, writeLine, t);
48
+ reportRestart(command.restart, restartPlanFor(recovery.path, command.configPath, dependencies), writeLine, t);
48
49
  return;
49
50
  }
50
51
  const recovery = setServerPluginSafeStart(undefined, configOptions);
51
- writeLine(`Cleared server plugin safe start in ${recovery.path}.`);
52
- reportRecoveryDiagnostic(recovery.safeStartDiagnostic, writeLine);
53
- reportRestart(command.restart, restartPlanFor(recovery.path, command.configPath, dependencies), writeLine);
52
+ writeLine(t("pluginRecovery.cleared", "Cleared server plugin safe start in {path}.", { path: recovery.path }));
53
+ reportRecoveryDiagnostic(recovery.safeStartDiagnostic, writeLine, t);
54
+ reportRestart(command.restart, restartPlanFor(recovery.path, command.configPath, dependencies), writeLine, t);
54
55
  }
55
56
  function parsePluginRecoveryCommand(args) {
56
57
  const parsed = parseOptions(args);
@@ -152,20 +153,20 @@ function requireNoMutationOptions(parsed, command) {
152
153
  function restartPlanFor(configPath, explicitConfigPath, dependencies) {
153
154
  return dependencies.restartPlan({ configPath, explicitConfigPath: explicitConfigPath !== undefined });
154
155
  }
155
- function reportRecoveryDiagnostic(diagnostic, writeLine) {
156
+ function reportRecoveryDiagnostic(diagnostic, writeLine, t) {
156
157
  if (diagnostic !== undefined)
157
- writeLine(`Warning: ${diagnostic}`);
158
+ writeLine(t("pluginRecovery.warning", "Warning: {detail}", { detail: diagnostic }));
158
159
  }
159
- function reportRestart(performRestart, plan, writeLine) {
160
+ function reportRestart(performRestart, plan, writeLine, t) {
160
161
  if (performRestart && plan.kind === "automatic" && plan.perform !== undefined) {
161
162
  plan.perform();
162
- writeLine("Session daemon restart requested. Active sessions owned by that daemon may stop.");
163
+ writeLine(t("pluginRecovery.restartRequested", "Session daemon restart requested. Active sessions owned by that daemon may stop."));
163
164
  return;
164
165
  }
165
166
  if (performRestart && plan.kind === "manual") {
166
- writeLine("The session daemon cannot be restarted automatically for this installation.");
167
+ writeLine(t("pluginRecovery.restartManual", "The session daemon cannot be restarted automatically for this installation."));
167
168
  }
168
- writeLine("Restart the session daemon to apply this change. Active sessions owned by that daemon may stop.");
169
+ writeLine(t("pluginRecovery.restartNeeded", "Restart the session daemon to apply this change. Active sessions owned by that daemon may stop."));
169
170
  writeLine(plan.guidance);
170
171
  if (plan.command !== undefined)
171
172
  writeLine(` ${plan.command}`);