downcity 1.1.127 → 1.1.128
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.
- package/city/admin/commands/models.d.ts.map +1 -1
- package/city/admin/commands/models.js +9 -2
- package/city/admin/commands/models.js.map +1 -1
- package/city/admin/loop.d.ts.map +1 -1
- package/city/admin/loop.js +76 -10
- package/city/admin/loop.js.map +1 -1
- package/city/auth/admin.d.ts.map +1 -1
- package/city/auth/admin.js +5 -1
- package/city/auth/admin.js.map +1 -1
- package/city/auth/server-switch.d.ts.map +1 -1
- package/city/auth/server-switch.js +157 -30
- package/city/auth/server-switch.js.map +1 -1
- package/city/command/RootCommand.d.ts.map +1 -1
- package/city/command/RootCommand.js +70 -21
- package/city/command/RootCommand.js.map +1 -1
- package/city/core/ui.d.ts.map +1 -1
- package/city/core/ui.js +23 -16
- package/city/core/ui.js.map +1 -1
- package/city/env/commands/refresh.d.ts.map +1 -1
- package/city/env/commands/refresh.js +9 -2
- package/city/env/commands/refresh.js.map +1 -1
- package/city/home/HomeMenu.d.ts.map +1 -1
- package/city/home/HomeMenu.js +81 -15
- package/city/home/HomeMenu.js.map +1 -1
- package/city/i18n.d.ts +59 -0
- package/city/i18n.d.ts.map +1 -0
- package/city/i18n.js +109 -0
- package/city/i18n.js.map +1 -0
- package/city/index.js +2 -0
- package/city/index.js.map +1 -1
- package/city/types/CliLocale.d.ts +16 -0
- package/city/types/CliLocale.d.ts.map +1 -0
- package/city/types/CliLocale.js +9 -0
- package/city/types/CliLocale.js.map +1 -0
- package/city/workspace/ServerManagement.d.ts.map +1 -1
- package/city/workspace/ServerManagement.js +59 -13
- package/city/workspace/ServerManagement.js.map +1 -1
- package/package.json +1 -1
- package/town/command/AgentCommand.d.ts.map +1 -1
- package/town/command/AgentCommand.js +127 -39
- package/town/command/AgentCommand.js.map +1 -1
- package/town/command/ChatAuthCommand.d.ts.map +1 -1
- package/town/command/ChatAuthCommand.js +23 -6
- package/town/command/ChatAuthCommand.js.map +1 -1
- package/town/command/ChatCommand.d.ts.map +1 -1
- package/town/command/ChatCommand.js +6 -2
- package/town/command/ChatCommand.js.map +1 -1
- package/town/command/CityCommand.d.ts.map +1 -1
- package/town/command/CityCommand.js +74 -19
- package/town/command/CityCommand.js.map +1 -1
- package/town/command/ConfigCommand.d.ts.map +1 -1
- package/town/command/ConfigCommand.js +46 -15
- package/town/command/ConfigCommand.js.map +1 -1
- package/town/command/EnvCommand.d.ts.map +1 -1
- package/town/command/EnvCommand.js +42 -14
- package/town/command/EnvCommand.js.map +1 -1
- package/town/command/GatewayCommand.d.ts.map +1 -1
- package/town/command/GatewayCommand.js +39 -14
- package/town/command/GatewayCommand.js.map +1 -1
- package/town/command/ManagedPluginActionCommand.d.ts.map +1 -1
- package/town/command/ManagedPluginActionCommand.js +87 -26
- package/town/command/ManagedPluginActionCommand.js.map +1 -1
- package/town/command/PluginCommand.d.ts.map +1 -1
- package/town/command/PluginCommand.js +74 -18
- package/town/command/PluginCommand.js.map +1 -1
- package/town/command/PluginScheduleCommand.d.ts.map +1 -1
- package/town/command/PluginScheduleCommand.js +38 -10
- package/town/command/PluginScheduleCommand.js.map +1 -1
- package/town/command/RootCommand.d.ts.map +1 -1
- package/town/command/RootCommand.js +17 -4
- package/town/command/RootCommand.js.map +1 -1
- package/town/command/TokenCommand.d.ts.map +1 -1
- package/town/command/TokenCommand.js +45 -10
- package/town/command/TokenCommand.js.map +1 -1
- package/town/index.js +2 -0
- package/town/index.js.map +1 -1
- package/town/shared/ChatManager.d.ts.map +1 -1
- package/town/shared/ChatManager.js +101 -25
- package/town/shared/ChatManager.js.map +1 -1
- package/town/shared/CityConnection.d.ts.map +1 -1
- package/town/shared/CityConnection.js +82 -21
- package/town/shared/CityConnection.js.map +1 -1
- package/town/shared/CliLocale.d.ts +59 -0
- package/town/shared/CliLocale.d.ts.map +1 -0
- package/town/shared/CliLocale.js +109 -0
- package/town/shared/CliLocale.js.map +1 -0
- package/town/shared/TownManager.d.ts.map +1 -1
- package/town/shared/TownManager.js +85 -21
- package/town/shared/TownManager.js.map +1 -1
- package/town/types/CliLocale.d.ts +16 -0
- package/town/types/CliLocale.d.ts.map +1 -0
- package/town/types/CliLocale.js +9 -0
- package/town/types/CliLocale.js.map +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/models.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/models.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAKtC;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDzD"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { show, showError } from "../../core/ui.js";
|
|
10
10
|
import { adminErrorMessage, isAdminNotFoundError, rethrowAdminAuthError } from "../auth-error.js";
|
|
11
|
+
import { t } from "../../i18n.js";
|
|
11
12
|
/**
|
|
12
13
|
* 展示全部代码注册模型及其运行状态。
|
|
13
14
|
*/
|
|
@@ -21,7 +22,10 @@ export async function manageModels(a) {
|
|
|
21
22
|
const aiScope = envCatalog.find((item) => item.id === "ai-models");
|
|
22
23
|
const envMap = new Map(aiScope?.env.map((item) => [item.key, item.configured]) ?? []);
|
|
23
24
|
if (items.length === 0) {
|
|
24
|
-
show(
|
|
25
|
+
show(t({
|
|
26
|
+
zh: "当前 server 没有已注册的 models。",
|
|
27
|
+
en: "No models registered on server.",
|
|
28
|
+
}));
|
|
25
29
|
return;
|
|
26
30
|
}
|
|
27
31
|
console.log(`\n${items.length} models:\n`);
|
|
@@ -52,7 +56,10 @@ export async function manageModels(a) {
|
|
|
52
56
|
catch (e) {
|
|
53
57
|
rethrowAdminAuthError(e);
|
|
54
58
|
if (isAdminNotFoundError(e)) {
|
|
55
|
-
showError(
|
|
59
|
+
showError(t({
|
|
60
|
+
zh: "当前连接的 City 版本过旧,尚未暴露 /v1/env/catalog。请先部署最新的 worker/server。",
|
|
61
|
+
en: "Connected City is too old and does not expose /v1/env/catalog yet. Deploy the latest worker/server first.",
|
|
62
|
+
}));
|
|
56
63
|
return;
|
|
57
64
|
}
|
|
58
65
|
showError(adminErrorMessage(e));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/admin/commands/models.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/admin/commands/models.ts"],"names":[],"mappings":"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"}
|
package/city/admin/loop.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/admin/loop.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/admin/loop.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA0BvD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/B,OAAO,CAAC,QAAQ,GAAG,MAAM,GAAG,iBAAiB,GAAG,MAAM,CAAC,CAmHzD"}
|
package/city/admin/loop.js
CHANGED
|
@@ -18,6 +18,7 @@ import { managePayment } from "./commands/payment.js";
|
|
|
18
18
|
import { manageCustom } from "./commands/custom.js";
|
|
19
19
|
import { manageModels } from "./commands/models.js";
|
|
20
20
|
import { manageInstruction } from "./commands/instruction.js";
|
|
21
|
+
import { t } from "../i18n.js";
|
|
21
22
|
const commands = {
|
|
22
23
|
env: manageEnv,
|
|
23
24
|
instruction: manageInstruction,
|
|
@@ -38,24 +39,86 @@ export async function adminLoop(session, options) {
|
|
|
38
39
|
const embedded = options?.embedded === true;
|
|
39
40
|
while (true) {
|
|
40
41
|
const svc = await select({
|
|
41
|
-
message: embedded
|
|
42
|
+
message: embedded
|
|
43
|
+
? t({
|
|
44
|
+
zh: "Server 管理",
|
|
45
|
+
en: "Server management",
|
|
46
|
+
})
|
|
47
|
+
: t({
|
|
48
|
+
zh: "管理服务",
|
|
49
|
+
en: "Manage Service",
|
|
50
|
+
}),
|
|
42
51
|
options: [
|
|
43
|
-
{
|
|
44
|
-
|
|
45
|
-
|
|
52
|
+
{
|
|
53
|
+
label: "Env",
|
|
54
|
+
value: "env",
|
|
55
|
+
hint: t({
|
|
56
|
+
zh: "查看并配置环境变量",
|
|
57
|
+
en: "View and configure environment variables",
|
|
58
|
+
}),
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
label: t({
|
|
62
|
+
zh: "City 指令",
|
|
63
|
+
en: "City Instruction",
|
|
64
|
+
}),
|
|
65
|
+
value: "instruction",
|
|
66
|
+
hint: t({
|
|
67
|
+
zh: "读取聚合后的 city/service 指引",
|
|
68
|
+
en: "Read aggregated city/service guidance",
|
|
69
|
+
}),
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
label: "Models",
|
|
73
|
+
value: "models",
|
|
74
|
+
hint: t({
|
|
75
|
+
zh: "查看模型就绪状态与缺失 env",
|
|
76
|
+
en: "Read model readiness and missing env requirements",
|
|
77
|
+
}),
|
|
78
|
+
},
|
|
46
79
|
{ label: "Towns", value: "towns" },
|
|
47
80
|
{ label: "Accounts", value: "accounts" },
|
|
48
81
|
{ label: "Balance", value: "balance" },
|
|
49
82
|
{ label: "Usage", value: "usage" },
|
|
50
83
|
{ label: "Payment (Stripe)", value: "payment" },
|
|
51
|
-
{
|
|
84
|
+
{
|
|
85
|
+
label: t({
|
|
86
|
+
zh: "自定义服务...",
|
|
87
|
+
en: "Custom service...",
|
|
88
|
+
}),
|
|
89
|
+
value: "custom",
|
|
90
|
+
},
|
|
52
91
|
...(embedded
|
|
53
|
-
? [{
|
|
92
|
+
? [{
|
|
93
|
+
label: t({
|
|
94
|
+
zh: "返回",
|
|
95
|
+
en: "Back",
|
|
96
|
+
}),
|
|
97
|
+
value: "back",
|
|
98
|
+
}]
|
|
54
99
|
: [
|
|
55
|
-
{
|
|
56
|
-
|
|
100
|
+
{
|
|
101
|
+
label: t({
|
|
102
|
+
zh: "切换到 User",
|
|
103
|
+
en: "Switch to User",
|
|
104
|
+
}),
|
|
105
|
+
value: "switch",
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
label: t({
|
|
109
|
+
zh: "退出登录",
|
|
110
|
+
en: "Logout",
|
|
111
|
+
}),
|
|
112
|
+
value: "logout",
|
|
113
|
+
},
|
|
57
114
|
]),
|
|
58
|
-
{
|
|
115
|
+
{
|
|
116
|
+
label: t({
|
|
117
|
+
zh: "退出",
|
|
118
|
+
en: "Quit",
|
|
119
|
+
}),
|
|
120
|
+
value: "quit",
|
|
121
|
+
},
|
|
59
122
|
],
|
|
60
123
|
});
|
|
61
124
|
if (!svc || isCancel(svc))
|
|
@@ -65,7 +128,10 @@ export async function adminLoop(session, options) {
|
|
|
65
128
|
if (svc === "back")
|
|
66
129
|
return "back";
|
|
67
130
|
if (svc === "logout") {
|
|
68
|
-
showSuccess(
|
|
131
|
+
showSuccess(t({
|
|
132
|
+
zh: "已退出 admin 模式",
|
|
133
|
+
en: "left admin mode",
|
|
134
|
+
}));
|
|
69
135
|
return "logout";
|
|
70
136
|
}
|
|
71
137
|
if (svc === "switch")
|
package/city/admin/loop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/admin/loop.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/admin/loop.ts"],"names":[],"mappings":"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"}
|
package/city/auth/admin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/auth/admin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/auth/admin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAI3E,wBAAsB,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAcxF"}
|
package/city/auth/admin.js
CHANGED
|
@@ -4,10 +4,14 @@
|
|
|
4
4
|
* 当前版本直接复用当前 active server 上保存的 admin_secret_key。
|
|
5
5
|
*/
|
|
6
6
|
import { showError } from "../core/ui.js";
|
|
7
|
+
import { t } from "../i18n.js";
|
|
7
8
|
export async function adminAuth(server) {
|
|
8
9
|
const adminSecretKey = String(server.admin_secret_key ?? "").trim();
|
|
9
10
|
if (!adminSecretKey) {
|
|
10
|
-
showError(
|
|
11
|
+
showError(t({
|
|
12
|
+
zh: "当前 City 缺少 admin_secret_key。请打开 Server 管理并配置 admin 访问。",
|
|
13
|
+
en: "Current City is missing admin_secret_key. Open Server management -> Configure admin access.",
|
|
14
|
+
}));
|
|
11
15
|
return undefined;
|
|
12
16
|
}
|
|
13
17
|
return {
|
package/city/auth/admin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/auth/admin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/auth/admin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;AAE/B,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAqB;IACnD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,SAAS,CAAC,CAAC,CAAC;YACV,EAAE,EAAE,wDAAwD;YAC5D,EAAE,EAAE,6FAA6F;SAClG,CAAC,CAAC,CAAC;QACJ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,gBAAgB,EAAE,cAAc;KACjC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-switch.d.ts","sourceRoot":"","sources":["../../src/auth/server-switch.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAOL,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"server-switch.d.ts","sourceRoot":"","sources":["../../src/auth/server-switch.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAOL,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAC;AAM5B;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA+B1E;AAED,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAiCnF;AAED,wBAAsB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAgJ3F;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAuCpC;AAED,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAoD3E"}
|
|
@@ -10,13 +10,17 @@ import { City } from "@downcity/city";
|
|
|
10
10
|
import { isCancel, password, select, text } from "@clack/prompts";
|
|
11
11
|
import { addServer, readActiveServer, readConfig, readServer, removeServer, setActiveServer, updateServer, } from "../core/session.js";
|
|
12
12
|
import { showError, showSuccess } from "../core/ui.js";
|
|
13
|
+
import { t } from "../i18n.js";
|
|
13
14
|
const DEFAULT_CITY_BASE_URL = "https://base.downcity.ai";
|
|
14
15
|
/**
|
|
15
16
|
* 添加 server。
|
|
16
17
|
*/
|
|
17
18
|
export async function promptAddServer() {
|
|
18
19
|
const baseUrl = await text({
|
|
19
|
-
message:
|
|
20
|
+
message: t({
|
|
21
|
+
zh: "Server URL",
|
|
22
|
+
en: "Server URL",
|
|
23
|
+
}),
|
|
20
24
|
placeholder: DEFAULT_CITY_BASE_URL,
|
|
21
25
|
initialValue: DEFAULT_CITY_BASE_URL,
|
|
22
26
|
});
|
|
@@ -28,21 +32,33 @@ export async function promptAddServer() {
|
|
|
28
32
|
});
|
|
29
33
|
const verified = await verifyServerPublicAccess(server);
|
|
30
34
|
if (verified) {
|
|
31
|
-
showSuccess(
|
|
35
|
+
showSuccess(t({
|
|
36
|
+
zh: `City 已连接:${server.name}`,
|
|
37
|
+
en: `City connected: ${server.name}`,
|
|
38
|
+
}));
|
|
32
39
|
}
|
|
33
40
|
else {
|
|
34
|
-
showError(
|
|
41
|
+
showError(t({
|
|
42
|
+
zh: `City 已保存,但公共可达性检查失败:${server.name}`,
|
|
43
|
+
en: `City saved, but the public reachability check failed: ${server.name}`,
|
|
44
|
+
}));
|
|
35
45
|
}
|
|
36
46
|
return server;
|
|
37
47
|
}
|
|
38
48
|
export async function promptSelectActiveServer() {
|
|
39
49
|
const config = readConfig();
|
|
40
50
|
if (config.servers.length === 0) {
|
|
41
|
-
showError(
|
|
51
|
+
showError(t({
|
|
52
|
+
zh: "当前没有已配置的 server。",
|
|
53
|
+
en: "No servers configured.",
|
|
54
|
+
}));
|
|
42
55
|
return undefined;
|
|
43
56
|
}
|
|
44
57
|
const selected = await select({
|
|
45
|
-
message:
|
|
58
|
+
message: t({
|
|
59
|
+
zh: "选择当前激活的 server",
|
|
60
|
+
en: "Select active server",
|
|
61
|
+
}),
|
|
46
62
|
options: config.servers.map((server) => ({
|
|
47
63
|
label: server.base_url === config.active_server_url ? `★ ${server.name}` : ` ${server.name}`,
|
|
48
64
|
value: server.base_url,
|
|
@@ -54,17 +70,26 @@ export async function promptSelectActiveServer() {
|
|
|
54
70
|
}
|
|
55
71
|
const selected_base_url = String(selected);
|
|
56
72
|
setActiveServer(selected_base_url);
|
|
57
|
-
showSuccess(
|
|
73
|
+
showSuccess(t({
|
|
74
|
+
zh: `当前 City:${selected_base_url}`,
|
|
75
|
+
en: `Current City: ${selected_base_url}`,
|
|
76
|
+
}));
|
|
58
77
|
return readServer(selected_base_url);
|
|
59
78
|
}
|
|
60
79
|
export async function promptEditServer(baseUrl) {
|
|
61
80
|
const config = readConfig();
|
|
62
81
|
if (config.servers.length === 0) {
|
|
63
|
-
showError(
|
|
82
|
+
showError(t({
|
|
83
|
+
zh: "当前没有已配置的 server。",
|
|
84
|
+
en: "No servers configured.",
|
|
85
|
+
}));
|
|
64
86
|
return undefined;
|
|
65
87
|
}
|
|
66
88
|
const targetBaseUrl = baseUrl ?? await select({
|
|
67
|
-
message:
|
|
89
|
+
message: t({
|
|
90
|
+
zh: "编辑 server",
|
|
91
|
+
en: "Edit server",
|
|
92
|
+
}),
|
|
68
93
|
options: config.servers.map((server) => ({
|
|
69
94
|
label: server.base_url === config.active_server_url ? `★ ${server.name}` : ` ${server.name}`,
|
|
70
95
|
value: server.base_url,
|
|
@@ -76,16 +101,53 @@ export async function promptEditServer(baseUrl) {
|
|
|
76
101
|
}
|
|
77
102
|
const current = readServer(String(targetBaseUrl));
|
|
78
103
|
if (!current) {
|
|
79
|
-
showError(
|
|
104
|
+
showError(t({
|
|
105
|
+
zh: "所选 server 已不存在。",
|
|
106
|
+
en: "Selected server no longer exists.",
|
|
107
|
+
}));
|
|
80
108
|
return undefined;
|
|
81
109
|
}
|
|
82
110
|
const field = await select({
|
|
83
|
-
message:
|
|
111
|
+
message: t({
|
|
112
|
+
zh: `编辑 ${current.name}`,
|
|
113
|
+
en: `Edit ${current.name}`,
|
|
114
|
+
}),
|
|
84
115
|
options: [
|
|
85
|
-
{
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
116
|
+
{
|
|
117
|
+
label: t({
|
|
118
|
+
zh: "名称",
|
|
119
|
+
en: "Name",
|
|
120
|
+
}),
|
|
121
|
+
value: "name",
|
|
122
|
+
hint: current.name,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
label: t({
|
|
126
|
+
zh: "Server URL",
|
|
127
|
+
en: "Server URL",
|
|
128
|
+
}),
|
|
129
|
+
value: "base_url",
|
|
130
|
+
hint: current.base_url,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
label: t({
|
|
134
|
+
zh: "Admin secret key",
|
|
135
|
+
en: "Admin secret key",
|
|
136
|
+
}),
|
|
137
|
+
value: "admin_secret_key",
|
|
138
|
+
hint: maskSecret(current.admin_secret_key),
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
label: t({
|
|
142
|
+
zh: "取消",
|
|
143
|
+
en: "Cancel",
|
|
144
|
+
}),
|
|
145
|
+
value: "cancel",
|
|
146
|
+
hint: t({
|
|
147
|
+
zh: "不做修改直接返回",
|
|
148
|
+
en: "Return without changes",
|
|
149
|
+
}),
|
|
150
|
+
},
|
|
89
151
|
],
|
|
90
152
|
});
|
|
91
153
|
if (!field || isCancel(field) || field === "cancel") {
|
|
@@ -93,19 +155,36 @@ export async function promptEditServer(baseUrl) {
|
|
|
93
155
|
}
|
|
94
156
|
const next = { ...current };
|
|
95
157
|
if (field === "name") {
|
|
96
|
-
const name = await text({
|
|
158
|
+
const name = await text({
|
|
159
|
+
message: t({
|
|
160
|
+
zh: "显示名称",
|
|
161
|
+
en: "Display name",
|
|
162
|
+
}),
|
|
163
|
+
initialValue: current.name,
|
|
164
|
+
});
|
|
97
165
|
if (!name || isCancel(name))
|
|
98
166
|
return undefined;
|
|
99
167
|
next.name = String(name).trim() || current.name;
|
|
100
168
|
}
|
|
101
169
|
else if (field === "base_url") {
|
|
102
|
-
const baseUrl = await text({
|
|
170
|
+
const baseUrl = await text({
|
|
171
|
+
message: t({
|
|
172
|
+
zh: "Server URL",
|
|
173
|
+
en: "Server URL",
|
|
174
|
+
}),
|
|
175
|
+
initialValue: current.base_url,
|
|
176
|
+
});
|
|
103
177
|
if (!baseUrl || isCancel(baseUrl))
|
|
104
178
|
return undefined;
|
|
105
179
|
next.base_url = String(baseUrl).trim() || current.base_url;
|
|
106
180
|
}
|
|
107
181
|
else if (field === "admin_secret_key") {
|
|
108
|
-
const adminSecretKey = await password({
|
|
182
|
+
const adminSecretKey = await password({
|
|
183
|
+
message: t({
|
|
184
|
+
zh: "admin_secret_key",
|
|
185
|
+
en: "admin_secret_key",
|
|
186
|
+
}),
|
|
187
|
+
});
|
|
109
188
|
if (!adminSecretKey || isCancel(adminSecretKey))
|
|
110
189
|
return undefined;
|
|
111
190
|
next.admin_secret_key = String(adminSecretKey).trim();
|
|
@@ -114,19 +193,31 @@ export async function promptEditServer(baseUrl) {
|
|
|
114
193
|
if (field === "admin_secret_key") {
|
|
115
194
|
const verified = await verifyServerAdminAccess(updated);
|
|
116
195
|
if (verified) {
|
|
117
|
-
showSuccess(
|
|
196
|
+
showSuccess(t({
|
|
197
|
+
zh: `Admin 访问已更新:${updated.name}`,
|
|
198
|
+
en: `Admin access updated: ${updated.name}`,
|
|
199
|
+
}));
|
|
118
200
|
}
|
|
119
201
|
else {
|
|
120
|
-
showError(
|
|
202
|
+
showError(t({
|
|
203
|
+
zh: `City 已保存,但 admin 校验失败:${updated.name}`,
|
|
204
|
+
en: `City saved, but admin verification failed: ${updated.name}`,
|
|
205
|
+
}));
|
|
121
206
|
}
|
|
122
207
|
return updated;
|
|
123
208
|
}
|
|
124
209
|
const verified = await verifyServerPublicAccess(updated);
|
|
125
210
|
if (verified) {
|
|
126
|
-
showSuccess(
|
|
211
|
+
showSuccess(t({
|
|
212
|
+
zh: `City 已更新:${updated.name}`,
|
|
213
|
+
en: `City updated: ${updated.name}`,
|
|
214
|
+
}));
|
|
127
215
|
}
|
|
128
216
|
else {
|
|
129
|
-
showError(
|
|
217
|
+
showError(t({
|
|
218
|
+
zh: `City 已保存,但公共可达性检查失败:${updated.name}`,
|
|
219
|
+
en: `City saved, but the public reachability check failed: ${updated.name}`,
|
|
220
|
+
}));
|
|
130
221
|
}
|
|
131
222
|
return updated;
|
|
132
223
|
}
|
|
@@ -136,10 +227,18 @@ export async function promptEditServer(baseUrl) {
|
|
|
136
227
|
export async function promptConfigureAdminAccess(baseUrl) {
|
|
137
228
|
const current = readServer(baseUrl);
|
|
138
229
|
if (!current) {
|
|
139
|
-
showError(
|
|
230
|
+
showError(t({
|
|
231
|
+
zh: "所选 server 已不存在。",
|
|
232
|
+
en: "Selected server no longer exists.",
|
|
233
|
+
}));
|
|
140
234
|
return undefined;
|
|
141
235
|
}
|
|
142
|
-
const adminSecretKey = await password({
|
|
236
|
+
const adminSecretKey = await password({
|
|
237
|
+
message: t({
|
|
238
|
+
zh: "admin_secret_key",
|
|
239
|
+
en: "admin_secret_key",
|
|
240
|
+
}),
|
|
241
|
+
});
|
|
143
242
|
if (!adminSecretKey || isCancel(adminSecretKey) || !String(adminSecretKey).trim()) {
|
|
144
243
|
return undefined;
|
|
145
244
|
}
|
|
@@ -149,28 +248,50 @@ export async function promptConfigureAdminAccess(baseUrl) {
|
|
|
149
248
|
});
|
|
150
249
|
const verified = await verifyServerAdminAccess(updated);
|
|
151
250
|
if (verified) {
|
|
152
|
-
showSuccess(
|
|
251
|
+
showSuccess(t({
|
|
252
|
+
zh: `Admin 访问已配置:${updated.name}`,
|
|
253
|
+
en: `Admin access configured: ${updated.name}`,
|
|
254
|
+
}));
|
|
153
255
|
}
|
|
154
256
|
else {
|
|
155
|
-
showError(
|
|
257
|
+
showError(t({
|
|
258
|
+
zh: `City 已保存,但 admin 校验失败:${updated.name}`,
|
|
259
|
+
en: `City saved, but admin verification failed: ${updated.name}`,
|
|
260
|
+
}));
|
|
156
261
|
}
|
|
157
262
|
return updated;
|
|
158
263
|
}
|
|
159
264
|
export async function promptRemoveServer(baseUrl) {
|
|
160
265
|
const config = readConfig();
|
|
161
266
|
if (config.servers.length === 0) {
|
|
162
|
-
showError(
|
|
267
|
+
showError(t({
|
|
268
|
+
zh: "当前没有已配置的 server。",
|
|
269
|
+
en: "No servers configured.",
|
|
270
|
+
}));
|
|
163
271
|
return false;
|
|
164
272
|
}
|
|
165
273
|
const selected = baseUrl ?? await select({
|
|
166
|
-
message:
|
|
274
|
+
message: t({
|
|
275
|
+
zh: "移除 server",
|
|
276
|
+
en: "Remove server",
|
|
277
|
+
}),
|
|
167
278
|
options: [
|
|
168
279
|
...config.servers.map((server) => ({
|
|
169
280
|
label: `${server.base_url === config.active_server_url ? "★ " : ""}${server.name}`,
|
|
170
281
|
value: server.base_url,
|
|
171
282
|
hint: server.base_url,
|
|
172
283
|
})),
|
|
173
|
-
{
|
|
284
|
+
{
|
|
285
|
+
label: t({
|
|
286
|
+
zh: "取消",
|
|
287
|
+
en: "Cancel",
|
|
288
|
+
}),
|
|
289
|
+
value: "cancel",
|
|
290
|
+
hint: t({
|
|
291
|
+
zh: "不做修改直接返回",
|
|
292
|
+
en: "Return without changes",
|
|
293
|
+
}),
|
|
294
|
+
},
|
|
174
295
|
],
|
|
175
296
|
});
|
|
176
297
|
if (!selected || isCancel(selected) || selected === "cancel") {
|
|
@@ -179,8 +300,14 @@ export async function promptRemoveServer(baseUrl) {
|
|
|
179
300
|
removeServer(String(selected));
|
|
180
301
|
const nextActive = readActiveServer();
|
|
181
302
|
showSuccess(nextActive
|
|
182
|
-
?
|
|
183
|
-
|
|
303
|
+
? t({
|
|
304
|
+
zh: `Server 已移除。当前 server:${nextActive.name}`,
|
|
305
|
+
en: `Server removed. Current server: ${nextActive.name}`,
|
|
306
|
+
})
|
|
307
|
+
: t({
|
|
308
|
+
zh: "Server 已移除。当前没有已配置的 server。",
|
|
309
|
+
en: "Server removed. No servers configured.",
|
|
310
|
+
}));
|
|
184
311
|
return true;
|
|
185
312
|
}
|
|
186
313
|
async function verifyServerAdminAccess(server) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-switch.js","sourceRoot":"","sources":["../../src/auth/server-switch.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,eAAe,EAEf,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"server-switch.js","sourceRoot":"","sources":["../../src/auth/server-switch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RootCommand.d.ts","sourceRoot":"","sources":["../../src/command/RootCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"RootCommand.d.ts","sourceRoot":"","sources":["../../src/command/RootCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAqBH;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAyIhD"}
|