@sfmc-bds/cli 0.2.0-beta.0 → 0.2.0-beta.10

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 (183) hide show
  1. package/dist/argv-parse.d.ts +11 -0
  2. package/dist/argv-parse.d.ts.map +1 -0
  3. package/dist/argv-parse.js +28 -0
  4. package/dist/argv-parse.js.map +7 -0
  5. package/dist/cli-gate.d.ts +11 -0
  6. package/dist/cli-gate.d.ts.map +1 -0
  7. package/dist/cli-gate.js +46 -0
  8. package/dist/cli-gate.js.map +7 -0
  9. package/dist/command-palette.d.ts +61 -0
  10. package/dist/command-palette.d.ts.map +1 -0
  11. package/dist/command-palette.js +352 -0
  12. package/dist/command-palette.js.map +7 -0
  13. package/dist/command-surface.d.ts +85 -0
  14. package/dist/command-surface.d.ts.map +1 -0
  15. package/dist/command-surface.js +292 -0
  16. package/dist/command-surface.js.map +7 -0
  17. package/dist/commands-reload.js +2 -2
  18. package/dist/commands-reload.js.map +2 -2
  19. package/dist/commands.d.ts +1 -1
  20. package/dist/commands.d.ts.map +1 -1
  21. package/dist/commands.js +196 -21
  22. package/dist/commands.js.map +2 -2
  23. package/dist/debug-command.d.ts +5 -0
  24. package/dist/debug-command.d.ts.map +1 -0
  25. package/dist/debug-command.js +118 -0
  26. package/dist/debug-command.js.map +7 -0
  27. package/dist/help-text.d.ts +3 -0
  28. package/dist/help-text.d.ts.map +1 -0
  29. package/dist/help-text.js +160 -0
  30. package/dist/help-text.js.map +7 -0
  31. package/dist/i18n/locales/en.d.ts +103 -89
  32. package/dist/i18n/locales/en.d.ts.map +1 -1
  33. package/dist/i18n/locales/en.js +105 -91
  34. package/dist/i18n/locales/en.js.map +2 -2
  35. package/dist/i18n/locales/zh-CN.d.ts.map +1 -1
  36. package/dist/i18n/locales/zh-CN.js +138 -118
  37. package/dist/i18n/locales/zh-CN.js.map +2 -2
  38. package/dist/index.d.ts +2 -2
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +9 -4
  41. package/dist/index.js.map +2 -2
  42. package/dist/llbot-launch.d.ts +20 -0
  43. package/dist/llbot-launch.d.ts.map +1 -0
  44. package/dist/llbot-launch.js +40 -0
  45. package/dist/llbot-launch.js.map +7 -0
  46. package/dist/log-filter.d.ts +69 -0
  47. package/dist/log-filter.d.ts.map +1 -0
  48. package/dist/log-filter.js +150 -0
  49. package/dist/log-filter.js.map +7 -0
  50. package/dist/logs.d.ts +29 -7
  51. package/dist/logs.d.ts.map +1 -1
  52. package/dist/logs.js +164 -72
  53. package/dist/logs.js.map +3 -3
  54. package/dist/main.js +55 -46
  55. package/dist/main.js.map +2 -2
  56. package/dist/module-commands.d.ts +17 -40
  57. package/dist/module-commands.d.ts.map +1 -1
  58. package/dist/module-commands.js +129 -85
  59. package/dist/module-commands.js.map +2 -2
  60. package/dist/module-pack-build.d.ts +10 -0
  61. package/dist/module-pack-build.d.ts.map +1 -0
  62. package/dist/module-pack-build.js +434 -0
  63. package/dist/module-pack-build.js.map +7 -0
  64. package/dist/module-toggle.d.ts +33 -0
  65. package/dist/module-toggle.d.ts.map +1 -0
  66. package/dist/module-toggle.js +28 -0
  67. package/dist/module-toggle.js.map +7 -0
  68. package/dist/node-service-probe.d.ts +18 -0
  69. package/dist/node-service-probe.d.ts.map +1 -0
  70. package/dist/node-service-probe.js +97 -0
  71. package/dist/node-service-probe.js.map +7 -0
  72. package/dist/pack-lifecycle.d.ts +1 -1
  73. package/dist/pack-lifecycle.d.ts.map +1 -1
  74. package/dist/pack-lifecycle.js +14 -4
  75. package/dist/pack-lifecycle.js.map +2 -2
  76. package/dist/pack-update/index.d.ts +18 -0
  77. package/dist/pack-update/index.d.ts.map +1 -0
  78. package/dist/pack-update/index.js +113 -0
  79. package/dist/pack-update/index.js.map +7 -0
  80. package/dist/registry.d.ts +7 -4
  81. package/dist/registry.d.ts.map +1 -1
  82. package/dist/registry.js +15 -3
  83. package/dist/registry.js.map +2 -2
  84. package/dist/repl-windows/format-display.d.ts +10 -0
  85. package/dist/repl-windows/format-display.d.ts.map +1 -0
  86. package/dist/repl-windows/format-display.js +57 -0
  87. package/dist/repl-windows/format-display.js.map +7 -0
  88. package/dist/repl-windows/host.d.ts +60 -0
  89. package/dist/repl-windows/host.d.ts.map +1 -0
  90. package/dist/repl-windows/host.js +179 -0
  91. package/dist/repl-windows/host.js.map +7 -0
  92. package/dist/repl-windows/index.d.ts +9 -0
  93. package/dist/repl-windows/index.d.ts.map +1 -0
  94. package/dist/repl-windows/index.js +13 -0
  95. package/dist/repl-windows/index.js.map +7 -0
  96. package/dist/repl-windows/logs-filter-window.d.ts +15 -0
  97. package/dist/repl-windows/logs-filter-window.d.ts.map +1 -0
  98. package/dist/repl-windows/logs-filter-window.js +77 -0
  99. package/dist/repl-windows/logs-filter-window.js.map +7 -0
  100. package/dist/repl-windows/service-window.d.ts +4 -0
  101. package/dist/repl-windows/service-window.d.ts.map +1 -0
  102. package/dist/repl-windows/service-window.js +35 -0
  103. package/dist/repl-windows/service-window.js.map +7 -0
  104. package/dist/repl-windows/types.d.ts +56 -0
  105. package/dist/repl-windows/types.d.ts.map +1 -0
  106. package/dist/repl-windows/types.js +1 -0
  107. package/dist/repl-windows/types.js.map +7 -0
  108. package/dist/repl.d.ts +6 -9
  109. package/dist/repl.d.ts.map +1 -1
  110. package/dist/repl.js +698 -427
  111. package/dist/repl.js.map +3 -3
  112. package/dist/runtime.d.ts +6 -13
  113. package/dist/runtime.d.ts.map +1 -1
  114. package/dist/runtime.js +23 -28
  115. package/dist/runtime.js.map +2 -2
  116. package/dist/send-target.d.ts +11 -0
  117. package/dist/send-target.d.ts.map +1 -0
  118. package/dist/send-target.js +42 -0
  119. package/dist/send-target.js.map +7 -0
  120. package/dist/services.d.ts +50 -4
  121. package/dist/services.d.ts.map +1 -1
  122. package/dist/services.js +244 -20
  123. package/dist/services.js.map +2 -2
  124. package/dist/theme.js +1 -1
  125. package/dist/theme.js.map +2 -2
  126. package/dist/wizard.d.ts.map +1 -1
  127. package/dist/wizard.js +76 -16
  128. package/dist/wizard.js.map +2 -2
  129. package/dist/world-packs.d.ts +15 -0
  130. package/dist/world-packs.d.ts.map +1 -1
  131. package/dist/world-packs.js +90 -87
  132. package/dist/world-packs.js.map +2 -2
  133. package/package.json +24 -21
  134. package/scripts/module-install/check-modules.mjs +204 -0
  135. package/scripts/module-install/fetch-module.mjs +1007 -0
  136. package/scripts/module-install/install-resolver.test.mjs +48 -0
  137. package/scripts/module-install/lib/catalog.mjs +96 -0
  138. package/scripts/module-install/lib/io.mjs +37 -0
  139. package/scripts/module-install/lib/link-from.mjs +80 -0
  140. package/scripts/module-install/lib/lock.mjs +78 -0
  141. package/scripts/module-install/lib/npm-resolver.mjs +55 -0
  142. package/scripts/module-install/lib/packages.mjs +142 -0
  143. package/scripts/module-install/lib/paths.mjs +48 -0
  144. package/scripts/module-install/lib/registry-index.mjs +50 -0
  145. package/scripts/module-install/link-local.test.mjs +51 -0
  146. package/scripts/module-install/local-resolver.test.mjs +51 -0
  147. package/scripts/module-install/registry-index.test.mjs +28 -0
  148. package/dist/module-wizard.d.ts +0 -14
  149. package/dist/module-wizard.d.ts.map +0 -1
  150. package/dist/module-wizard.js +0 -313
  151. package/dist/module-wizard.js.map +0 -7
  152. package/dist/pack-update/bindings.d.ts +0 -12
  153. package/dist/pack-update/bindings.d.ts.map +0 -1
  154. package/dist/pack-update/bindings.js +0 -64
  155. package/dist/pack-update/bindings.js.map +0 -7
  156. package/dist/pack-update/config.d.ts +0 -22
  157. package/dist/pack-update/config.d.ts.map +0 -1
  158. package/dist/pack-update/config.js +0 -141
  159. package/dist/pack-update/config.js.map +0 -7
  160. package/dist/pack-update/providers/curseforge.d.ts +0 -23
  161. package/dist/pack-update/providers/curseforge.d.ts.map +0 -1
  162. package/dist/pack-update/providers/curseforge.js +0 -209
  163. package/dist/pack-update/providers/curseforge.js.map +0 -7
  164. package/dist/pack-update/providers/index.d.ts +0 -16
  165. package/dist/pack-update/providers/index.d.ts.map +0 -1
  166. package/dist/pack-update/providers/index.js +0 -37
  167. package/dist/pack-update/providers/index.js.map +0 -7
  168. package/dist/pack-update/service.d.ts +0 -21
  169. package/dist/pack-update/service.d.ts.map +0 -1
  170. package/dist/pack-update/service.js +0 -567
  171. package/dist/pack-update/service.js.map +0 -7
  172. package/dist/pack-update/types.d.ts +0 -126
  173. package/dist/pack-update/types.d.ts.map +0 -1
  174. package/dist/pack-update/types.js +0 -8
  175. package/dist/pack-update/types.js.map +0 -7
  176. package/dist/pack-update/version-policy.d.ts +0 -80
  177. package/dist/pack-update/version-policy.d.ts.map +0 -1
  178. package/dist/pack-update/version-policy.js +0 -216
  179. package/dist/pack-update/version-policy.js.map +0 -7
  180. package/dist/remote-agent.d.ts +0 -18
  181. package/dist/remote-agent.d.ts.map +0 -1
  182. package/dist/remote-agent.js +0 -196
  183. package/dist/remote-agent.js.map +0 -7
@@ -18,46 +18,83 @@ const zhCN = {
18
18
  "locale.wizard": "CLI language / \u754C\u9762\u8BED\u8A00",
19
19
  "locale.opt.zh": "\u7B80\u4F53\u4E2D\u6587",
20
20
  "locale.opt.en": "English",
21
- "help.title": "sfmc \u2014 ScriptsForMinecraftServer CLI",
21
+ /* ─── CLI 通道门禁 ─── */
22
+ "cli.replOnly": "\u547D\u4EE4 `{cmd}` \u4EC5\u53EF\u5728 REPL \u5185\u4F7F\u7528\u3002",
23
+ "cli.replOnly.hint": "\u5148\u8FD0\u884C\u65E0\u53C2\u6570\u7684 `sfmc` \u8FDB\u5165\u4EA4\u4E92\u6A21\u5F0F\uFF0C\u518D\u6267\u884C\u8BE5\u547D\u4EE4\u3002",
24
+ "cli.needTty": "\u547D\u4EE4 `{cmd}` \u9700\u8981\u4EA4\u4E92\u5F0F\u7EC8\u7AEF\uFF08TTY\uFF09\u3002",
25
+ /* ─── debug (BDS 配置) ─── */
26
+ "debug.state.on": "\u5F00\u542F",
27
+ "debug.state.off": "\u5173\u95ED",
28
+ "debug.statusTitle": "BDS \u8C03\u8BD5\u914D\u7F6E",
29
+ "debug.enabled": "sfmc_debug = true\uFF08BDS \u63A7\u5236\u53F0\u8C03\u8BD5\u65E5\u5FD7\u5C06\u5728\u4E0B\u6B21 reload \u540E\u751F\u6548\uFF09",
30
+ "debug.disabled": "sfmc_debug = false\uFF08BDS \u63A7\u5236\u53F0\u8C03\u8BD5\u65E5\u5FD7\u5C06\u5728\u4E0B\u6B21 reload \u540E\u5173\u95ED\uFF09",
31
+ "debug.sentry.set": "\u5DF2\u8BBE\u7F6E SENTRY_DSN: {dsn}",
32
+ "debug.sentry.removed": "\u5DF2\u5220\u9664 SENTRY_DSN",
33
+ "debug.sentry.alreadyOff": "SENTRY_DSN \u672C\u6765\u5C31\u672A\u8BBE\u7F6E",
34
+ "debug.sentry.dsnMissing": "\u9700\u8981 --dsn <\u503C>",
35
+ "debug.sentry.unknown": "\u672A\u77E5 sentry \u5B50\u547D\u4EE4: {action}",
36
+ "debug.sentry.usage": "\u7528\u6CD5: debug sentry on --dsn <dsn> | debug sentry off",
37
+ "debug.unknown": "\u672A\u77E5 debug \u5B50\u547D\u4EE4: {sub}",
38
+ "debug.usage": "\u7528\u6CD5: debug status | enable | disable | sentry on --dsn | sentry off",
39
+ "debug.reloadHint": "\u9700\u8FD0\u884C `sfmc mod reload` \u6216\u91CD\u542F BDS \u540E\u751F\u6548\u3002",
40
+ /* ─── 帮助文本 ─── */
41
+ "help.title": "SFMC CLI",
42
+ "help.title.repl": "SFMC REPL",
43
+ "help.usage": "\u7528\u6CD5:",
44
+ "help.section.options": "\u9009\u9879",
45
+ "help.opt.packs": "\u8D44\u6E90\u5305\u7BA1\u7406\u5668\uFF0C\u540E\u63A5 packs \u5B50\u547D\u4EE4\uFF1Bi = install",
46
+ "help.opt.lang": "\u672C\u6B21\u8FDB\u7A0B\u754C\u9762\u8BED\u8A00",
47
+ "help.addon.compat": "\u517C\u5BB9\uFF1A-p/--packs",
48
+ "help.slash.hint": "\u952E\u5165 / \u5217\u51FA\u547D\u4EE4\u3002",
49
+ "help.shortcut.slash": "\u547D\u4EE4\u5217\u8868",
50
+ "help.shortcut.ctrlp": "\u547D\u4EE4\u5217\u8868",
51
+ "help.shortcut.cursor": "\u79FB\u52A8\u5149\u6807",
52
+ "repl.palette.hint": "\u2191\u2193 \xB7 Enter \xB7 Esc",
53
+ "repl.palette.empty": "\u65E0\u5339\u914D",
22
54
  "help.section.service": " \u670D\u52A1\u63A7\u5236 \u2500\u2500\u2500\u2500\u2500\u2500",
23
- "help.status": "\u67E5\u770B\u6240\u6709\u670D\u52A1\u72B6\u6001",
24
- "help.logs": "\u67E5\u770B / \u8DDF\u8E2A\u670D\u52A1\u65E5\u5FD7",
25
- "help.start": "\u542F\u52A8\u670D\u52A1\uFF08\u6216\u5168\u90E8\uFF09",
26
- "help.stop": "\u505C\u6B62\u670D\u52A1\uFF08\u6216\u5168\u90E8\uFF09",
27
- "help.restart": "\u91CD\u542F\u670D\u52A1\uFF08\u6216\u5168\u90E8\uFF09",
28
- "help.send": "\u5411\u670D\u52A1 stdin \u53D1\u9001\u547D\u4EE4",
55
+ "help.status": "\u67E5\u770B\u670D\u52A1\u72B6\u6001\uFF08\u542B QQ \u540E\u7AEF\u6458\u8981\uFF09",
56
+ "help.logs": "\u65E5\u5FD7\u5386\u53F2",
57
+ "help.start": "\u542F\u52A8\u670D\u52A1\uFF08db / qq / llbot / bds\uFF1Bqq \u9ED8\u8BA4\u5B98\u65B9 Bot\uFF09",
58
+ "help.stop": "\u505C\u6B62\u670D\u52A1",
59
+ "help.restart": "\u91CD\u542F\u670D\u52A1",
60
+ "help.send": "\u5411\u670D\u52A1\u53D1\u9001\u547D\u4EE4\uFF08Tab \u5207\u6362\u76EE\u6807\uFF1BQQ \u63D0\u793A\u7B26\u533A\u5206 official / llbot\uFF09",
29
61
  "help.section.update": " BDS \u66F4\u65B0 \u2500\u2500\u2500\u2500\u2500\u2500",
30
- "help.update": "\u68C0\u67E5 / \u5E94\u7528 BDS \u66F4\u65B0",
31
- "help.section.remote": " \u8FDC\u7A0B Agent \u2500\u2500\u2500\u2500\u2500\u2500",
32
- "help.remote.status": "\u67E5\u770B\u6CE8\u518C\u72B6\u6001",
33
- "help.remote.enroll": "\u5411\u63A7\u5236\u5668\u6CE8\u518C",
34
- "help.remote.disable": "\u65AD\u5F00\u5E76\u7981\u7528 agent",
62
+ "help.update": "\u68C0\u67E5BDS \u66F4\u65B0",
63
+ "help.section.debug": " \u8C03\u8BD5 \u2500\u2500\u2500\u2500\u2500\u2500",
64
+ "help.debug.status": "SFMC_DEBUG \u72B6\u6001",
65
+ "help.debug.toggle": "\u5F00\u5173 SFMC_DEBUG",
66
+ "help.debug.sentry.on": "\u8BBE\u7F6E SENTRY_DSN",
67
+ "help.debug.sentry.off": "\u5220\u9664 SENTRY_DSN",
35
68
  "help.section.module": " \u6A21\u5757\u7BA1\u7406 \u2500\u2500\u2500\u2500\u2500\u2500",
36
69
  "help.module.list": "\u5217\u51FA\u5DF2\u5B89\u88C5\u6A21\u5757",
37
- "help.module.search": "\u641C\u7D22 registry / \u67E5\u770B\u6A21\u5757\u4FE1\u606F",
38
- "help.module.install": "\u5B89\u88C5\u6A21\u5757\uFF08--link = \u7B26\u53F7\u94FE\u63A5\uFF09",
70
+ "help.module.search": "\u5728\u7EBF\u641C\u7D22\u6A21\u5757",
71
+ "help.module.install": "\u5B89\u88C5\u6A21\u5757",
39
72
  "help.module.uninstall": "\u5378\u8F7D\u5DF2\u5B89\u88C5\u6A21\u5757",
40
- "help.module.verify": "\u6821\u9A8C SHA-256 \u5B8C\u6574\u6027",
73
+ "help.module.verify": "\u6821\u9A8C\u6A21\u5757 SHA-256 \u5B8C\u6574\u6027",
41
74
  "help.module.info": "\u663E\u793A\u6A21\u5757\u8BE6\u60C5",
42
- "help.module.toggle": "\u542F\u7528/\u7981\u7528\u6A21\u5757\uFF08\u9700 db-server\uFF09",
43
- "help.module.create": "\u4EA4\u4E92\u5F0F\u811A\u624B\u67B6",
44
- "help.module.link": "\u94FE\u63A5\u672C\u5730\u6A21\u5757\uFF08--link \u5B89\u88C5\uFF09",
45
- "help.module.dev": "\u94FE\u63A5 + \u542F\u7528 + \u6784\u5EFA + \u90E8\u7F72",
46
- "help.module.build": "\u4ECE\u5DF2\u542F\u7528\u6A21\u5757\u6784\u5EFA BP+RP",
47
- "help.module.reload": "\u6784\u5EFA\u5E76\u90E8\u7F72 BP\uFF1B\u5411 BDS \u53D1\u9001 reload\uFF08\u53EF\u7528 --build-only\uFF09",
48
- "help.section.addon": " \u9644\u52A0\u5305\u7BA1\u7406 \u2500\u2500\u2500\u2500\u2500\u2500",
49
- "help.addon": "\u4E16\u754C\u4FA7 BP/RP \u6536\u4EF6\u7BB1\u7BA1\u7406",
75
+ "help.module.toggle": "\u542F\u7528/\u7981\u7528\u6A21\u5757",
76
+ "help.module.build": "\u4ECE\u5DF2\u542F\u7528\u6A21\u5757\u6784\u5EFA\u8D44\u6E90\u5305",
77
+ "help.module.reload": "\u6784\u5EFA\u5E76\u90E8\u7F72\u8D44\u6E90\u5305\uFF0C\u5728 BDS \u53D1\u9001 reload\u6307\u4EE4\u4EE5\u91CD\u8F7D\u811A\u672C",
78
+ "help.section.addon": " \u8D44\u6E90\u5305\u7BA1\u7406 \u2500\u2500\u2500\u2500\u2500\u2500",
79
+ "help.addon": "\u8D44\u6E90\u5305\u6536\u4EF6\u7BB1\u7BA1\u7406",
80
+ "help.packs.list": "\u5DF2\u5B89\u88C5\u8D44\u6E90\u5305\u5217\u8868",
81
+ "help.packs.search": "\u5728\u7EBF\u641C\u7D22\u8D44\u6E90\u5305",
82
+ "help.packs.enable": "\u542F\u7528\u8D44\u6E90\u5305",
83
+ "help.packs.disable": "\u7981\u7528\u8D44\u6E90\u5305",
84
+ "help.packs.doctor": "\u8BCA\u65AD\u8D44\u6E90\u5305\u63A5\u7EBF",
85
+ "help.packs.path": "\u663E\u793A\u8D44\u6E90\u5305\u8DEF\u5F84",
50
86
  "help.section.general": " \u901A\u7528 \u2500\u2500\u2500\u2500\u2500\u2500",
51
87
  "help.init": "\u521D\u59CB\u5316\u5411\u5BFC",
52
- "help.locale": "\u67E5\u770B / \u8BBE\u7F6E CLI \u8BED\u8A00",
88
+ "help.locale": "\u8BBE\u7F6E CLI \u8BED\u8A00",
53
89
  "help.version": "\u663E\u793A\u7248\u672C",
54
- "help.help": "\u663E\u793A\u672C\u5E2E\u52A9",
90
+ "help.help": "\u663E\u793A\u5E2E\u52A9",
55
91
  "help.quit": "\u9000\u51FA",
56
92
  "help.shortcuts": "\u5FEB\u6377\u952E:",
57
- "help.shortcut.tab": "\u8865\u5168\uFF08\u91CD\u590D\u6309\u5FAA\u73AF\uFF09",
58
- "help.shortcut.right": "\u63A5\u53D7\u7070\u8272\u5EFA\u8BAE",
93
+ "help.shortcut.tab": "\u5207\u6362\u53D1\u9001\u76EE\u6807 / \u547D\u4EE4\u5217\u8868\u9009\u62E9",
94
+ "help.shortcut.right": "\u63A5\u53D7\u5EFA\u8BAE",
59
95
  "help.shortcut.ctrll": "\u8FC7\u6EE4\u65E5\u5FD7\u7EA7\u522B / \u6765\u6E90 / \u5386\u53F2",
60
96
  "help.shortcut.history": "\u547D\u4EE4\u5386\u53F2",
97
+ /* ─── REPL ─── */
61
98
  "repl.stopping": "\u6B63\u5728\u505C\u6B62\u670D\u52A1...",
62
99
  "repl.bye": "bye...",
63
100
  "repl.forceStop": "\u6B63\u5728\u5F3A\u5236\u505C\u6B62\u670D\u52A1...",
@@ -65,7 +102,8 @@ const zhCN = {
65
102
  "repl.historyHeader": "\u2500\u2500 \u5386\u53F2 {count} \u884C \u2500\u2500",
66
103
  "repl.filter": "\u8FC7\u6EE4: {level} / {source} / {history}",
67
104
  "repl.followRequiresTty": "\u8DDF\u8E2A\u6A21\u5F0F\u9700\u8981 TTY",
68
- "repl.history.live": "\u4EC5\u5B9E\u65F6\uFF08\u4E0D\u56DE\u653E\uFF09",
105
+ "repl.logsReplOnly": "logs \u4EC5\u5728\u4EA4\u4E92 REPL \u4E2D\u53EF\u7528",
106
+ "repl.history.live": "\u5B9E\u65F6",
69
107
  "repl.history.last50": "\u6700\u8FD1 50 \u6761",
70
108
  "repl.history.last100": "\u6700\u8FD1 100 \u6761",
71
109
  "repl.history.last500": "\u6700\u8FD1 500 \u6761",
@@ -75,22 +113,30 @@ const zhCN = {
75
113
  "repl.history.last15min": "\u6700\u8FD1 15 \u5206\u949F",
76
114
  "repl.history.last1hour": "\u6700\u8FD1 1 \u5C0F\u65F6",
77
115
  "repl.history.all": "\u7F13\u51B2\u5168\u90E8",
116
+ /* ─── 服务控制 ─── */
78
117
  "svc.header": "\u670D\u52A1",
79
118
  "svc.col.name": "\u540D\u79F0",
80
119
  "svc.col.status": "\u72B6\u6001",
120
+ "svc.col.owner": "\u5F52\u5C5E",
81
121
  "svc.col.pid": "PID",
82
122
  "svc.col.uptime": "\u8FD0\u884C\u65F6\u957F",
83
- "svc.running": "\u8FD0\u884C\u4E2D",
123
+ "svc.state.running": "\u8FD0\u884C\u4E2D",
124
+ "svc.state.stopped": "\u5DF2\u505C\u6B62",
125
+ "svc.owner.managed": "\u63A5\u7BA1",
126
+ "svc.owner.external": "\u5916\u90E8",
127
+ "svc.owner.none": "\u2014",
128
+ "svc.running": "\u8FD0\u884C\u4E2D - \u5DF2\u63A5\u7BA1",
129
+ "svc.runningExternal": "\u8FD0\u884C\u4E2D - \u5916\u90E8",
84
130
  "svc.stopped": "\u5DF2\u505C\u6B62",
85
131
  "svc.unknown": "\u672A\u77E5\u670D\u52A1: {name}\uFF08\u53EF\u9009: {list}\uFF09",
86
132
  "svc.logs.usage": "\u7528\u6CD5: logs <service> [-n N] [-f]",
87
133
  "svc.logs.empty": "\uFF08\u6682\u65E0\u65E5\u5FD7\uFF09",
88
134
  "svc.logs.header": "{title} \u65E5\u5FD7\uFF08\u6700\u8FD1 {count} \u6761\uFF09:",
89
- "svc.start.usage": "\u7528\u6CD5: sfmc start <service>|-all",
135
+ "svc.start.usage": "\u7528\u6CD5: start <service>|-all",
90
136
  "svc.start.usageShort": "\u7528\u6CD5: start <service>|-all",
91
- "svc.stop.usage": "\u7528\u6CD5: sfmc stop <service>|-all",
137
+ "svc.stop.usage": "\u7528\u6CD5: stop <service>|-all",
92
138
  "svc.stop.usageShort": "\u7528\u6CD5: stop <service>|-all",
93
- "svc.restart.usage": "\u7528\u6CD5: sfmc restart <service>|-all",
139
+ "svc.restart.usage": "\u7528\u6CD5: restart <service>|-all",
94
140
  "svc.restart.usageShort": "\u7528\u6CD5: restart <service>|-all",
95
141
  "svc.alreadyRunning": "{title} \u5DF2\u5728\u8FD0\u884C\uFF08PID {pid}\uFF09",
96
142
  "svc.alreadyStarting": "{title} \u6B63\u5728\u542F\u52A8...",
@@ -102,35 +148,53 @@ const zhCN = {
102
148
  "svc.stopFailed": "{title} \u505C\u6B62\u5931\u8D25: {message}",
103
149
  "svc.send.usage": "\u7528\u6CD5: send <service> <message>",
104
150
  "svc.notRunning": "{title} \u672A\u8FD0\u884C",
105
- "svc.sent": "\u5DF2\u53D1\u9001\u81F3 {name}",
106
151
  "svc.writeFailed": "\u5199\u5165\u5931\u8D25",
107
152
  "svc.restarted": "{title} \u5DF2\u91CD\u542F",
108
153
  "svc.restartFailed": "{title} \u91CD\u542F\u5931\u8D25: {message}",
109
154
  "svc.allStarted": "\u5168\u90E8\u670D\u52A1\u5DF2\u542F\u52A8",
110
155
  "svc.allStopped": "\u5168\u90E8\u670D\u52A1\u5DF2\u505C\u6B62",
156
+ "svc.skipped": "{title} \u5DF2\u8DF3\u8FC7: {reason}",
157
+ "svc.startAll.started": "\u5DF2\u542F\u52A8: {list}",
158
+ "svc.startAll.skipped": "\u5DF2\u8DF3\u8FC7: {list}",
159
+ "svc.startAll.failed": "\u542F\u52A8\u5931\u8D25: {list}",
160
+ "svc.startAll.empty": "\u6CA1\u6709\u670D\u52A1\u9700\u8981\u542F\u52A8",
161
+ "svc.qq.footer.official": "QQ \u6865: official \xB7 {enabled} \xB7 AppID {appId} \xB7 group_openid {openid} \xB7 {sandbox} \xB7 creds={creds}",
162
+ "svc.qq.footer.llbot": "QQ \u6865: llbot \xB7 {enabled} \xB7 \u7FA4 {group} \xB7 path {path}",
111
163
  "svc.updateComplete": "\u66F4\u65B0\u5B8C\u6210",
112
164
  "svc.updateExited": "\u66F4\u65B0\u8FDB\u7A0B\u9000\u51FA\uFF0C\u4EE3\u7801 {code}",
113
165
  "svc.updateError": "\u66F4\u65B0\u9519\u8BEF: {message}",
114
- "svc.updateStartBds": "\u66F4\u65B0: \u901A\u8FC7\u76D1\u7763\u5668\u542F\u52A8 BDS",
166
+ "svc.updateStartBds": "\u66F4\u65B0: \u901A\u8FC7\u8FDB\u7A0B\u76D1\u7763\u5668\u542F\u52A8 BDS",
115
167
  "svc.bdsStarted": "BDS \u5DF2\u542F\u52A8\uFF08\u76D1\u7763\u6A21\u5F0F\uFF09",
116
168
  "svc.bdsStartFailed": "BDS \u542F\u52A8\u5931\u8D25: {message}",
117
169
  "svc.bdsStoppedForUpdate": "\u66F4\u65B0\u65F6\u5DF2\u505C\u6B62 BDS\uFF1B\u5C31\u7EEA\u540E\u8BF7\u6267\u884C `start bds`",
118
- "remote.enrolled": "\u5DF2\u6CE8\u518C\u8FDC\u7A0B agent: {id}",
119
- "remote.disabled": "\u8FDC\u7A0B agent \u5DF2\u7981\u7528",
120
- "remote.usage": "\u7528\u6CD5: sfmc remote enroll <controller-url> <enrollment-token> [name] | sfmc remote status | sfmc remote disable",
121
- "remote.usageShort": "\u7528\u6CD5: remote enroll <controller-url> <enrollment-token> [name] | remote status | remote disable",
122
- "wizard.intro": "\u521D\u59CB\u5316\u5411\u5BFC =D",
170
+ "svc.bdsAlreadyRunning": "BDS \u5DF2\u5728\u8FD0\u884C\uFF08{kind}\uFF0CPID {pid}\uFF09",
171
+ "svc.stdinUnavailable": "{title} \u7531\u5916\u90E8\u542F\u52A8\uFF0C\u65E0\u6CD5\u901A\u8FC7 stdin \u53D1\u9001\u547D\u4EE4",
172
+ "svc.stoppedExternal": "{title} \u5DF2\u505C\u6B62\uFF08\u5916\u90E8\u8FDB\u7A0B\uFF09",
173
+ /* ─── 初始化 ─── */
174
+ "wizard.intro": "\u521D\u59CB\u5316",
123
175
  "wizard.rerun": "\u5DF2\u521D\u59CB\u5316\u3002\u662F\u5426\u91CD\u65B0\u8FD0\u884C\u5411\u5BFC\uFF1F",
124
- "wizard.skipped": "\u5DF2\u8DF3\u8FC7\u8BBE\u7F6E",
176
+ "wizard.skipped": "\u5DF2\u8DF3\u8FC7\u521D\u59CB\u5316",
125
177
  "wizard.step1": "\u6B65\u9AA4 1 - \u8FD0\u884C\u73AF\u5883",
126
178
  "wizard.runtimeRoot": "\u8FD0\u884C\u6839\u76EE\u5F55: {root}",
127
179
  "wizard.npmMissing": "npm \u8FD0\u884C\u65F6\u7F3A\u5C11\u5FC5\u9700\u76EE\u5F55: {list}",
128
180
  "wizard.prepFailed": "\u8FD0\u884C\u73AF\u5883\u51C6\u5907\u5931\u8D25: {message}",
129
181
  "wizard.step2": "\u6B65\u9AA4 2 - \u5916\u90E8\u8FD0\u884C\u65F6",
130
- "wizard.step2Note": "\u9009\u62E9 BDS\u3001\u6570\u636E\u5E93\u4E0E LLBOT \u8DEF\u5F84",
182
+ "wizard.step2Note": "\u9009\u62E9 BDS\u3001\u6570\u636E\u5E93\u4E0E QQ \u6865\u63A5\u540E\u7AEF",
131
183
  "wizard.bdsDir": "BDS \u5B89\u88C5\u76EE\u5F55",
132
184
  "wizard.cannotCreateBds": "\u65E0\u6CD5\u521B\u5EFA BDS \u5B89\u88C5\u76EE\u5F55: {dir}",
133
- "wizard.enableLlbot": "\u542F\u7528 LLBot\uFF08QQ \u6865\uFF09\uFF1F",
185
+ "wizard.qqBackend": "QQ \u6865\u63A5\u540E\u7AEF:",
186
+ "wizard.qqBackend.official": "QQ \u5F00\u653E\u5E73\u53F0\uFF08\u5B98\u65B9 Bot\uFF09",
187
+ "wizard.qqBackend.officialHint": "\u63A8\u8350\uFF1B\u9700 AppID / AppSecret",
188
+ "wizard.qqBackend.llbot": "LLBot\uFF08OneBot 11\uFF09",
189
+ "wizard.qqBackend.llbotHint": "\u9700\u672C\u673A LLBot \u8FDB\u7A0B",
190
+ "wizard.qqBackend.disabled": "\u6682\u4E0D\u542F\u7528 QQ \u6865",
191
+ "wizard.qqBackend.disabledHint": "qq_enabled=false",
192
+ "wizard.qqAppId": "QQ \u5F00\u653E\u5E73\u53F0 AppID:",
193
+ "wizard.qqAppSecret": "QQ \u5F00\u653E\u5E73\u53F0 AppSecret:",
194
+ "wizard.qqSandbox": "\u4F7F\u7528\u6C99\u7BB1\u73AF\u5883\uFF1F",
195
+ "wizard.qqGroupOpenid": "\u7FA4 openid\uFF08\u53EF\u7A0D\u540E\u586B\u5199\uFF09:",
196
+ "wizard.qqGroupOpenidHint": "\u975E\u4F20\u7EDF\u7FA4\u53F7",
197
+ "wizard.enableLlbot": "\u542F\u7528 LLBot \u8FDB\u7A0B\u63A5\u7BA1\uFF1F",
134
198
  "wizard.llbotDir": "LLBot \u8FD0\u884C\u76EE\u5F55",
135
199
  "wizard.usingDefault": "\u4F7F\u7528\u9ED8\u8BA4: {path}",
136
200
  "wizard.dbDir": "\u6570\u636E\u5E93\u5B58\u50A8\u76EE\u5F55",
@@ -147,14 +211,14 @@ const zhCN = {
147
211
  "wizard.channel.release": "Release",
148
212
  "wizard.channel.releaseHint": "\u7A33\u5B9A\u7248",
149
213
  "wizard.channel.preview": "Preview",
150
- "wizard.channel.previewHint": "\u53EF\u80FD\u4E0D\u7A33\u5B9A",
214
+ "wizard.channel.previewHint": "\u9884\u89C8\u7248",
151
215
  "wizard.cannotCreateBackup": "\u65E0\u6CD5\u521B\u5EFA BDS \u5907\u4EFD\u76EE\u5F55: {dir}",
152
216
  "wizard.backupDir": "BDS \u5907\u4EFD\u76EE\u5F55",
153
217
  "wizard.preserve": "\u66F4\u65B0\u65F6\u4FDD\u7559\u7684\u6587\u4EF6\uFF08\u4E0B\u6B21\u542F\u7528\u66F4\u65B0\u65F6\uFF09:",
154
218
  "wizard.preserve.serverProps": "\u670D\u52A1\u5668\u914D\u7F6E",
155
219
  "wizard.preserve.worlds": "\u4E16\u754C\u6570\u636E",
156
220
  "wizard.preserve.config": "\u914D\u7F6E\u76EE\u5F55",
157
- "wizard.updaterTip": "\u82E5\u627E\u4E0D\u5230 BDS \u8FD0\u884C\u65F6\uFF0C\u7A0D\u540E\u4F1A\u542F\u52A8\u66F4\u65B0\u5668\u3002\n \u53EF\u5728 configs/bds_updater.json \u4E2D\u7EE7\u7EED\u914D\u7F6E\u3002",
221
+ "wizard.updaterTip": "\u82E5\u627E\u4E0D\u5230 BDS \u8FD0\u884C\u65F6\uFF0C\u7A0D\u540E\u4F1A\u81EA\u52A8\u4E0B\u8F7DBDS\u3002\n \u53EF\u5728 configs/bds_updater.json \u4E2D\u914D\u7F6E\u66F4\u65B0\u9009\u9879\u3002",
158
222
  "wizard.step4": "\u6B65\u9AA4 4 - \u6A21\u5757",
159
223
  "wizard.modulesFound": "\u53D1\u73B0 {count} \u4E2A\u53EF\u9009\u6A21\u5757",
160
224
  "wizard.modulesNone": "\u672A\u627E\u5230\u6A21\u5757\u76EE\u5F55",
@@ -170,76 +234,29 @@ const zhCN = {
170
234
  "wizard.downloadingBds": "\u6B63\u5728\u4E0B\u8F7D BDS",
171
235
  "wizard.downloadFail": "\u4E0B\u8F7D\u5931\u8D25\u3002",
172
236
  "wizard.bdsDownloaded": "BDS \u5DF2\u4E0B\u8F7D",
173
- "wizard.done": "\u5B8C\u6210\uFF01\u8F93\u5165 help \u4E86\u89E3\u7BA1\u7406\u547D\u4EE4\u3002",
174
- "wizard.installing": "\u6B63\u5728\u4ECE\u5B98\u65B9 registry \u5B89\u88C5 {count} \u4E2A\u6A21\u5757",
237
+ "wizard.done": "\u5B8C\u6210\uFF01\u952E\u5165 / \u4EE5\u6267\u884C\u547D\u4EE4",
238
+ "wizard.installing": "\u6B63\u5728\u5B89\u88C5 {count} \u4E2A\u6A21\u5757",
175
239
  "wizard.installed": "\u5DF2\u5B89\u88C5 {count} \u4E2A",
176
- "wizard.installFailed": "\u5B89\u88C5\u5931\u8D25: {message}\n\u53EF\u7A0D\u540E\u6267\u884C: sfmc mod install <id>",
177
- "wizard.fetchMissing": "\u7F3A\u5C11 fetch-module \u2014 \u8BF7\u7A0D\u540E\u5BF9\u4EE5\u4E0B\u6A21\u5757\u6267\u884C `sfmc mod install <id>`: {list}",
178
- "wizard.noModulesSelected": "\u672A\u9009\u62E9\u6A21\u5757 \u2014 \u884C\u4E3A\u5305\u5C06\u4E3A\u7A7A\uFF0C\u76F4\u5230\u6267\u884C `sfmc mod install <id>` \u5B89\u88C5\u6A21\u5757\u3002",
240
+ "wizard.installFailed": "\u5B89\u88C5\u5931\u8D25: {message}\n\u53EF\u7A0D\u540E\u6267\u884C: mod install <id>",
241
+ "wizard.fetchMissing": "\u7F3A\u5C11 fetch-module \u2014 \u8BF7\u7A0D\u540E\u5BF9\u4EE5\u4E0B\u6A21\u5757\u6267\u884C `mod install <id>`: {list}",
242
+ "wizard.noModulesSelected": "\u672A\u9009\u62E9\u6A21\u5757 \u2014 \u884C\u4E3A\u5305\u5C06\u4E3A\u7A7A\uFF0C\u76F4\u5230\u6267\u884C `mod install <id>` \u5B89\u88C5\u6A21\u5757\u3002",
179
243
  "wizard.buildingBp": "\u6B63\u5728\u6784\u5EFA\u884C\u4E3A\u5305",
180
- "wizard.buildFailed": "\u6784\u5EFA\u5931\u8D25: {message}\n\u7A0D\u540E\u53EF\u6267\u884C `sfmc mod build` \u91CD\u8BD5\u3002",
244
+ "wizard.buildFailed": "\u6784\u5EFA\u5931\u8D25: {message}\n\u7A0D\u540E\u53EF\u6267\u884C `mod build` \u91CD\u8BD5\u3002",
181
245
  "wizard.deploying": "\u6B63\u5728\u90E8\u7F72\u5230 {path}",
182
246
  "wizard.restartBds": "\u8BF7\u91CD\u542F BDS \u4EE5\u52A0\u8F7D\u65B0\u884C\u4E3A\u5305\u3002",
183
- "wizard.deployFailed": "\u90E8\u7F72\u5931\u8D25: {message}\n\u4FEE\u590D configs/ \u4E2D\u7684 bds_path \u540E\u6267\u884C `sfmc mod reload`\u3002",
247
+ "wizard.deployFailed": "\u90E8\u7F72\u5931\u8D25: {message}\n\u4FEE\u590D configs/ \u4E2D\u7684 bds_path \u540E\u6267\u884C `mod reload`\u3002",
184
248
  "prompt.enterPath": "\u8F93\u5165\u8DEF\u5F84",
185
249
  "prompt.browse": "\u6D4F\u89C8\u2026",
186
250
  "prompt.browseHint": "\u6253\u5F00\u7CFB\u7EDF\u6587\u4EF6\u5939\u9009\u62E9\u5668",
187
- "reload.buildOnly": "\uFF08deploy \u5B8C\u6210\uFF1B\u5728 BDS/\u6E38\u620F\u5185\u8F93\u5165 reload\uFF0C\u6216\u53BB\u6389 --build-only \u81EA\u52A8\u53D1\u9001\uFF09",
188
- "reload.bdsNotRunning": "BDS \u672A\u8FD0\u884C \u2014 \u5DF2\u5B8C\u6210 build+deploy\u3002\u542F\u52A8\u540E\u8BF7\u5728 BDS \u63A7\u5236\u53F0\u6216\u6E38\u620F\u5185\u8F93\u5165 reload\u3002",
189
- "reload.sent": "\u5DF2\u5411 BDS \u53D1\u9001 reload\uFF08\u811A\u672C\u5C06\u6309\u65B0 main.js \u91CD\u65B0\u52A0\u8F7D\uFF09",
190
- "bp.usage": "\u7528\u6CD5: sfmc behavior-pack|bp <build|deploy>",
191
- "modwiz.needTty.create": "\u8BF7\u5728\u4EA4\u4E92\u7EC8\u7AEF\u8FD0\u884C: sfmc module create",
192
- "modwiz.needTty.link": "\u8BF7\u5728\u4EA4\u4E92\u7EC8\u7AEF\u8FD0\u884C: sfmc module link",
193
- "modwiz.needTty.dev": "\u8BF7\u5728\u4EA4\u4E92\u7EC8\u7AEF\u8FD0\u884C: sfmc module dev",
194
- "modwiz.sfmcModulesPath": "sfmc-modules: {path}",
195
- "modwiz.pickModulesRoot": "sfmc-modules \u6839\u76EE\u5F55\uFF08\u542B packages/ \u4E0E index.json\uFF09",
196
- "modwiz.noPackages": "\u672A\u627E\u5230 packages/ \u5B50\u76EE\u5F55: {path}",
197
- "modwiz.noFetch": "\u672A\u627E\u5230 fetch-module.mjs",
198
- "modwiz.enableModule": "\u542F\u7528\u8BE5\u6A21\u5757\uFF1F\uFF08\u5199\u5165 module-lock.json\uFF0C\u9700 db-server\uFF09",
199
- "modwiz.buildDeploy": "\u6784\u5EFA\u5E76\u90E8\u7F72\u884C\u4E3A\u5305\uFF1F\uFF08\u5B8C\u6210\u540E\u53EF\u7528 `sfmc mod reload` \u6216\u5728 BDS/\u6E38\u620F\u5185\u8F93\u5165 reload\uFF09",
200
- "modwiz.task.build": "\u6784\u5EFA\u884C\u4E3A\u5305",
201
- "modwiz.task.deploy": "\u90E8\u7F72\u884C\u4E3A\u5305",
202
- "modwiz.reloadHint": "\u8BF7\u7528 `sfmc mod reload`\uFF08build+deploy \u540E\u5411 BDS \u53D1 reload\uFF09\uFF1B\u4E5F\u53EF\u624B\u52A8\u5728 BDS/\u6E38\u620F\u5185\u8F93\u5165 reload\u3002",
203
- "modwiz.kebab": "\u987B\u4E3A\u5C0F\u5199 kebab-case\uFF0C\u4F8B\u5982 my-feature",
204
- "modwiz.createIntro": "\u6A21\u5757\u811A\u624B\u67B6",
205
- "modwiz.folderId": "\u6A21\u5757\u6587\u4EF6\u5939\u540D\uFF08install id\uFF09",
206
- "modwiz.dirExists": "\u76EE\u5F55\u5DF2\u5B58\u5728: {path}",
207
- "modwiz.displayName": "\u663E\u793A\u540D\u79F0",
208
- "modwiz.template": "\u811A\u624B\u67B6\u6A21\u677F",
209
- "modwiz.tpl.minimal": "\u6700\u5C0F\u6A21\u5757",
210
- "modwiz.tpl.minimalHint": "\u547D\u4EE4 + \u6743\u9650\u5360\u4F4D",
211
- "modwiz.tpl.db": "\u542B DB \u6743\u9650\u5360\u4F4D",
212
- "modwiz.tpl.dbHint": "manifest \u9884\u7F6E db:read/write",
213
- "modwiz.noNewModule": "\u672A\u627E\u5230 tools/new-module.mjs\uFF08\u65C1\u8DEF sfmc-modules \u6216\u4E3B\u4ED3 tools/\uFF09",
214
- "modwiz.genPackage": "\u751F\u6210 packages/{id}",
215
- "modwiz.skeletonWritten": "\u9AA8\u67B6\u5DF2\u5199\u5165 sfmc-modules",
216
- "modwiz.createdNote": "\u5DF2\u521B\u5EFA {path}",
217
- "modwiz.linkAsk": "\u94FE\u63A5\u5230\u4E3B\u4ED3 modules/packages/\uFF1F\uFF08--link\uFF0C\u6539\u6E90\u7801\u5373\u751F\u6548\uFF09",
218
- "modwiz.link": "\u94FE\u63A5",
219
- "modwiz.linkFailed": "\u94FE\u63A5\u5931\u8D25",
220
- "modwiz.enable": "\u542F\u7528",
221
- "modwiz.createDone": "\u5B8C\u6210\u3002\u6E90\u7801: {path}",
222
- "modwiz.moduleCreated": "\u6A21\u5757 {id} \u5DF2\u521B\u5EFA",
223
- "modwiz.linkIntro": "\u94FE\u63A5\u672C\u5730\u6A21\u5757",
224
- "modwiz.noLinkable": "{path}/packages \u4E0B\u6CA1\u6709\u6A21\u5757",
225
- "modwiz.noLinkableShort": "\u6CA1\u6709\u53EF\u94FE\u63A5\u7684\u6A21\u5757\u5305",
226
- "modwiz.pickLink": "\u9009\u62E9\u8981\u94FE\u63A5\u7684\u6A21\u5757\u5305",
227
- "modwiz.linking": "\u94FE\u63A5 {id}",
228
- "modwiz.linkSynced": "catalog + lock \u5DF2\u540C\u6B65",
229
- "modwiz.linked": "\u5DF2\u94FE\u63A5 {id}",
230
- "modwiz.devIntro": "\u672C\u5730\u6A21\u5757\u5F00\u53D1",
231
- "modwiz.noDevPackages": "{path}/packages \u4E0B\u6CA1\u6709\u6A21\u5757",
232
- "modwiz.noDevShort": "\u6CA1\u6709\u53EF\u5F00\u53D1\u7684\u6A21\u5757\u5305",
233
- "modwiz.pickDev": "\u9009\u62E9\u8981\u8054\u8C03\u7684\u6A21\u5757",
234
- "modwiz.enabling": "\u542F\u7528 {id}",
235
- "modwiz.devHint": "\u4FEE\u6539 sfmc-modules \u6E90\u7801\u540E\u6267\u884C `sfmc mod reload`\uFF08build + deploy + \u5411 BDS \u53D1 reload\uFF09\u3002\n\u6216\u518D\u6B21\u8FD0\u884C `sfmc module dev`\uFF0C\u7136\u540E\u5728 BDS/\u6E38\u620F\u5185\u8F93\u5165 reload\u3002",
236
- "modwiz.devDone": "{id} \u5DF2\u94FE\u63A5\u5E76\u5B8C\u6210 build + deploy",
237
- "modwiz.devReady": "{id} \u5F00\u53D1\u73AF\u5883\u5C31\u7EEA",
251
+ "reload.buildOnly": "\u6784\u5EFA\u5B8C\u6210\u3002",
252
+ "reload.bdsNotRunning": "BDS \u672A\u8FD0\u884C \u2014 \u5DF2\u5B8C\u6210\u6784\u5EFA\u3002",
253
+ "reload.sent": "\u5DF2\u5411 BDS \u53D1\u9001 reload",
254
+ "bp.usage": "\u7528\u6CD5: bp <build|deploy>",
238
255
  "mod.usage": "\u7528\u6CD5: sfmc {cmds} <{subs}> [args]",
239
256
  "mod.list.title": "\u5DF2\u5B89\u88C5\u6A21\u5757",
240
257
  "mod.noneInstalled": "\n\u672A\u5B89\u88C5\u6A21\u5757\u3002\u8BF7\u5C06\u6A21\u5757\u76EE\u5F55\u653E\u5230 {dir}\uFF0C\u6216\u6267\u884C `sfmc mod install <id>`\u3002\n",
241
258
  "mod.notInRegistry": '\u6A21\u5757 "{query}" \u4E0D\u5728\u5B98\u65B9 registry \u4E2D\u3002',
242
- "mod.info.usage": "\u7528\u6CD5: sfmc module|mod info <id>",
259
+ "mod.info.usage": "\u7528\u6CD5: mod info <id>",
243
260
  "mod.notInstalledAt": "\u6A21\u5757 {id} \u672A\u5B89\u88C5\u4E8E {path}",
244
261
  "mod.notInstalled": "\u6A21\u5757 {id} \u672A\u5B89\u88C5",
245
262
  "mod.verifyOk": "{id} \u6B63\u5E38\n fingerprint: {fp}\n",
@@ -249,12 +266,15 @@ const zhCN = {
249
266
  "mod.action.disabled": "\u5DF2\u7981\u7528",
250
267
  "mod.toggleOk": "{label} {id}",
251
268
  "mod.toggleBadBody": "{action} {id} \u8FD4\u56DE: {text}",
252
- "mod.enable.usage": "\u7528\u6CD5: sfmc module|mod enable <id>",
253
- "mod.disable.usage": "\u7528\u6CD5: sfmc module|mod disable <id>",
254
- "mod.install.usage": "\u7528\u6CD5: sfmc module|mod install <id> [id2 ...] [--from <source>] [--link]",
255
- "mod.linkNeedsFrom": "--link \u9700\u8981 --from dir:<path>\uFF0C\u6216\u8BBE\u7F6E SFMC_MODULES_ROOT / \u65C1\u8DEF ../sfmc-modules\u3002\n\u793A\u4F8B: sfmc mod install land --from dir:../sfmc-modules/packages/land --link",
269
+ "mod.cannotDisable": "\u6A21\u5757 {id} \u4E0D\u53EF\u7981\u7528\uFF08canDisable=false\uFF09",
270
+ "mod.toggleLockFailed": "\u5199\u5165 module-lock \u5931\u8D25\uFF08{id}\uFF09: {message}",
271
+ "mod.toggleDbSkipped": "\u5DF2\u5199\u5165 module-lock\uFF1Bdb-server \u672A\u540C\u6B65\uFF08{detail}\uFF09\u3002\u4E0B\u6B21 start db \u540E\u5185\u5B58\u6001\u4F1A\u8DDF\u4E0A\uFF1B\u6E38\u620F\u5185\u4ECD\u9700 mod reload / \u91CD\u542F BDS\u3002",
272
+ "mod.enable.usage": "\u7528\u6CD5: mod enable <id>",
273
+ "mod.disable.usage": "\u7528\u6CD5: mod disable <id>",
274
+ "mod.install.usage": "\u7528\u6CD5: mod install <id>\n mod install <id> --from <scheme> [--link] [--sha256 <hex>]",
275
+ "mod.fromUnknown": "\u672A\u77E5\u7684 --from \u6765\u6E90: {value}\u3002\u53EF\u7528: npm:|local[:<\u8DEF\u5F84>]|tgz:|zip:|dir:|github:<repo>[@tag]",
256
276
  "mod.fetchMissing": "\u672A\u627E\u5230 fetch-module\u3002\u8BF7\u5B89\u88C5 @sfmc-bds/sfmc \u6216\u5728 monorepo \u5185\u8FD0\u884C\u3002",
257
- "mod.uninstall.usage": "\u7528\u6CD5: sfmc module|mod uninstall <id>",
277
+ "mod.uninstall.usage": "\u7528\u6CD5: mod uninstall <id>",
258
278
  "mod.notInstalledFolder": "\u6A21\u5757 {id} \u672A\u5B89\u88C5\uFF08\u76EE\u5F55\u4E0D\u5B58\u5728: {path}\uFF09",
259
279
  "mod.removed": "\u5DF2\u4ECE {path} \u79FB\u9664 {id}\n",
260
280
  "pack.built": "\u5DF2\u6784\u5EFA\u5305\u81F3 {path}",
@@ -275,17 +295,17 @@ const zhCN = {
275
295
  "packs.conflict": "\u68C0\u6D4B\u5230\u51B2\u7A81\uFF1A",
276
296
  "packs.conflict.existing": " \u5DF2\u6709: {name} v{version} {uuid}\n {dir}",
277
297
  "packs.conflict.incoming": " \u65B0\u6765: {name} v{version} {uuid}",
278
- "packs.overwriteAsk": "\u662F\u5426\u8986\u76D6\u5DF2\u6709\u5305\uFF1F",
279
- "packs.badManifest": "\u65E0\u6CD5\u8BC6\u522B manifest\uFF08\u7F3A\u5C11 resources/data/script\uFF09",
298
+ "packs.overwriteAsk": "\u8986\u76D6\u5DF2\u6709\u5305\uFF08\u76F8\u540C UUID\uFF0C\u4F46\u7248\u672C\u76F8\u5BF9\u73B0\u5B58\u5305\u8F83\u4F4E\uFF09\uFF1F",
299
+ "packs.badManifest": "\u65E0\u6CD5\u8BC6\u522B manifest\uFF08\u9700\u542B resources/data/script \u6A21\u5757\uFF0C\u4E14 header \u542B name/uuid/version\uFF09",
280
300
  "packs.skippedNoOverwrite": "\u5DF2\u8DF3\u8FC7\uFF08\u672A\u8986\u76D6\uFF09",
281
- "packs.conflictSkip": "[packs] \u51B2\u7A81\u8DF3\u8FC7\uFF08\u975E\u4EA4\u4E92\uFF0C\u53EF\u7528 --force\uFF09: {name}",
282
- "packs.inboxSkip": "[packs] \u8DF3\u8FC7\u6536\u4EF6\u7BB1\uFF1A{message}",
283
- "packs.inboxFound": "[packs] \u6536\u4EF6\u7BB1\u53D1\u73B0 {count} \u9879 \u2192 {level}",
284
- "packs.alreadyDone": "[packs] \u5DF2\u5904\u7406\u8FC7\uFF0C\u8DF3\u8FC7: {name}",
285
- "packs.dryRunExtract": "[packs] dry-run \u89E3\u538B: {name}",
286
- "packs.noPackRoot": "[packs] \u672A\u627E\u5230\u5305\u6839: {name}",
287
- "packs.installedEnabled": "[packs] \u5DF2\u5B89\u88C5\u5E76\u542F\u7528 {kind}: {name} v{version}",
288
- "packs.installFailed": "[packs] \u5B89\u88C5\u5931\u8D25 {name}: {reason}",
301
+ "packs.conflictSkip": " \u51B2\u7A81\u8DF3\u8FC7\uFF08\u975E\u4EA4\u4E92\uFF0C\u53EF\u7528 --force\uFF09: {name}",
302
+ "packs.inboxSkip": " \u8DF3\u8FC7\u6536\u4EF6\u7BB1\uFF1A{message}",
303
+ "packs.inboxFound": " \u6536\u4EF6\u7BB1\u53D1\u73B0 {count} \u9879 \u2192 {level}",
304
+ "packs.alreadyDone": " \u5DF2\u5904\u7406\u8FC7\uFF0C\u8DF3\u8FC7: {name}",
305
+ "packs.dryRunExtract": " dry-run \u89E3\u538B: {name}",
306
+ "packs.noPackRoot": " \u672A\u627E\u5230\u5305\u6839: {name}",
307
+ "packs.installedEnabled": " \u5DF2\u5B89\u88C5\u5E76\u542F\u7528 {kind}: {name} v{version}",
308
+ "packs.installFailed": " \u5B89\u88C5\u5931\u8D25 {name}: {reason}",
289
309
  "packs.listEmpty": "\uFF08\u65E0\uFF09",
290
310
  "packs.list.bpHeader": "\u884C\u4E3A\u5305:",
291
311
  "packs.list.rpHeader": "\u8D44\u6E90\u5305:",