@qingchencloud/openclaw-zh 2026.1.29-zh.20260130 → 2026.1.30-zh.1
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/README.md +479 -390
- package/dist/agents/auth-health.js +5 -1
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/cli/program/help.js +12 -12
- package/dist/cli/skills-cli.js +5 -5
- package/dist/cli/update-cli.js +13 -13
- package/dist/commands/channels/list.js +2 -2
- package/dist/commands/doctor-security.js +6 -6
- package/dist/commands/doctor.js +1 -1
- package/dist/commands/status.command.js +10 -10
- package/dist/commands/uninstall.js +6 -6
- package/dist/config/schema.js +379 -379
- package/dist/control-ui/assets/{index-DFDgq9AK.js → index-CNKLKKXX.js} +582 -561
- package/dist/control-ui/assets/index-CNKLKKXX.js.map +1 -0
- package/dist/control-ui/index.html +1 -1
- package/dist/tui/commands.js +22 -22
- package/dist/tui/tui-waiting.js +10 -10
- package/dist/wizard/onboarding.finalize.js +5 -5
- package/dist/wizard/onboarding.js +3 -3
- package/extensions/line/src/channel.ts +21 -13
- package/package.json +2 -2
- package/dist/control-ui/assets/index-DFDgq9AK.js.map +0 -1
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<link rel="icon" type="image/svg+xml" href="./favicon.svg" />
|
|
9
9
|
<link rel="icon" type="image/png" sizes="32x32" href="./favicon-32.png" />
|
|
10
10
|
<link rel="apple-touch-icon" sizes="180x180" href="./apple-touch-icon.png" />
|
|
11
|
-
<script type="module" crossorigin src="./assets/index-
|
|
11
|
+
<script type="module" crossorigin src="./assets/index-CNKLKKXX.js"></script>
|
|
12
12
|
<link rel="stylesheet" crossorigin href="./assets/index-BKPyesll.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
package/dist/tui/commands.js
CHANGED
|
@@ -22,27 +22,27 @@ export function parseCommand(input) {
|
|
|
22
22
|
export function getSlashCommands(options = {}) {
|
|
23
23
|
const thinkLevels = listThinkingLevelLabels(options.provider, options.model);
|
|
24
24
|
const commands = [
|
|
25
|
-
{ name: "help", description: "
|
|
26
|
-
{ name: "status", description: "
|
|
27
|
-
{ name: "agent", description: "
|
|
28
|
-
{ name: "agents", description: "
|
|
29
|
-
{ name: "session", description: "
|
|
30
|
-
{ name: "sessions", description: "
|
|
25
|
+
{ name: "help", description: "显示斜杠命令帮助" },
|
|
26
|
+
{ name: "status", description: "显示网关状态摘要" },
|
|
27
|
+
{ name: "agent", description: "切换 Agent(或打开选择器)" },
|
|
28
|
+
{ name: "agents", description: "打开 Agent 选择器" },
|
|
29
|
+
{ name: "session", description: "切换会话(或打开选择器)" },
|
|
30
|
+
{ name: "sessions", description: "打开会话选择器" },
|
|
31
31
|
{
|
|
32
32
|
name: "model",
|
|
33
|
-
description: "
|
|
33
|
+
description: "设置模型(或打开选择器)",
|
|
34
34
|
},
|
|
35
|
-
{ name: "models", description: "
|
|
35
|
+
{ name: "models", description: "打开模型选择器" },
|
|
36
36
|
{
|
|
37
37
|
name: "think",
|
|
38
|
-
description: "
|
|
38
|
+
description: "设置思考等级",
|
|
39
39
|
getArgumentCompletions: (prefix) => thinkLevels
|
|
40
40
|
.filter((v) => v.startsWith(prefix.toLowerCase()))
|
|
41
41
|
.map((value) => ({ value, label: value })),
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
name: "verbose",
|
|
45
|
-
description: "
|
|
45
|
+
description: "开关详细模式",
|
|
46
46
|
getArgumentCompletions: (prefix) => VERBOSE_LEVELS.filter((v) => v.startsWith(prefix.toLowerCase())).map((value) => ({
|
|
47
47
|
value,
|
|
48
48
|
label: value,
|
|
@@ -50,7 +50,7 @@ export function getSlashCommands(options = {}) {
|
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
52
|
name: "reasoning",
|
|
53
|
-
description: "
|
|
53
|
+
description: "开关推理模式",
|
|
54
54
|
getArgumentCompletions: (prefix) => REASONING_LEVELS.filter((v) => v.startsWith(prefix.toLowerCase())).map((value) => ({
|
|
55
55
|
value,
|
|
56
56
|
label: value,
|
|
@@ -58,7 +58,7 @@ export function getSlashCommands(options = {}) {
|
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
name: "usage",
|
|
61
|
-
description: "
|
|
61
|
+
description: "切换每条回复的用量显示",
|
|
62
62
|
getArgumentCompletions: (prefix) => USAGE_FOOTER_LEVELS.filter((v) => v.startsWith(prefix.toLowerCase())).map((value) => ({
|
|
63
63
|
value,
|
|
64
64
|
label: value,
|
|
@@ -66,7 +66,7 @@ export function getSlashCommands(options = {}) {
|
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
68
|
name: "elevated",
|
|
69
|
-
description: "
|
|
69
|
+
description: "设置提权级别 on/off/ask/full",
|
|
70
70
|
getArgumentCompletions: (prefix) => ELEVATED_LEVELS.filter((v) => v.startsWith(prefix.toLowerCase())).map((value) => ({
|
|
71
71
|
value,
|
|
72
72
|
label: value,
|
|
@@ -74,7 +74,7 @@ export function getSlashCommands(options = {}) {
|
|
|
74
74
|
},
|
|
75
75
|
{
|
|
76
76
|
name: "elev",
|
|
77
|
-
description: "
|
|
77
|
+
description: "/elevated 的别名",
|
|
78
78
|
getArgumentCompletions: (prefix) => ELEVATED_LEVELS.filter((v) => v.startsWith(prefix.toLowerCase())).map((value) => ({
|
|
79
79
|
value,
|
|
80
80
|
label: value,
|
|
@@ -82,18 +82,18 @@ export function getSlashCommands(options = {}) {
|
|
|
82
82
|
},
|
|
83
83
|
{
|
|
84
84
|
name: "activation",
|
|
85
|
-
description: "
|
|
85
|
+
description: "设置群组激活模式",
|
|
86
86
|
getArgumentCompletions: (prefix) => ACTIVATION_LEVELS.filter((v) => v.startsWith(prefix.toLowerCase())).map((value) => ({
|
|
87
87
|
value,
|
|
88
88
|
label: value,
|
|
89
89
|
})),
|
|
90
90
|
},
|
|
91
|
-
{ name: "abort", description: "
|
|
92
|
-
{ name: "new", description: "
|
|
93
|
-
{ name: "reset", description: "
|
|
94
|
-
{ name: "settings", description: "
|
|
95
|
-
{ name: "exit", description: "
|
|
96
|
-
{ name: "quit", description: "
|
|
91
|
+
{ name: "abort", description: "中止当前运行" },
|
|
92
|
+
{ name: "new", description: "重置会话" },
|
|
93
|
+
{ name: "reset", description: "重置会话" },
|
|
94
|
+
{ name: "settings", description: "打开设置" },
|
|
95
|
+
{ name: "exit", description: "退出 TUI" },
|
|
96
|
+
{ name: "quit", description: "退出 TUI" },
|
|
97
97
|
];
|
|
98
98
|
const seen = new Set(commands.map((command) => command.name));
|
|
99
99
|
const gatewayCommands = options.cfg ? listChatCommandsForConfig(options.cfg) : listChatCommands();
|
|
@@ -112,7 +112,7 @@ export function getSlashCommands(options = {}) {
|
|
|
112
112
|
export function helpText(options = {}) {
|
|
113
113
|
const thinkLevels = formatThinkingLevels(options.provider, options.model, "|");
|
|
114
114
|
return [
|
|
115
|
-
"
|
|
115
|
+
"斜杠命令列表:",
|
|
116
116
|
"/help",
|
|
117
117
|
"/commands",
|
|
118
118
|
"/status",
|
package/dist/tui/tui-waiting.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
export const defaultWaitingPhrases = [
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
2
|
+
"神游八方中",
|
|
3
|
+
"思绪翻涌中",
|
|
4
|
+
"慢悠悠思考",
|
|
5
|
+
"摸鱼划水中",
|
|
6
|
+
"脑洞大开中",
|
|
7
|
+
"绞尽脑汁中",
|
|
8
|
+
"闲庭信步中",
|
|
9
|
+
"神机妙算中",
|
|
10
|
+
"沉思冥想中",
|
|
11
|
+
"施展魔法中",
|
|
12
12
|
];
|
|
13
13
|
export function pickWaitingPhrase(tick, phrases = defaultWaitingPhrases) {
|
|
14
14
|
const idx = Math.floor(tick / 10) % phrases.length;
|
|
@@ -344,11 +344,11 @@ export async function finalizeOnboardingWizard(options) {
|
|
|
344
344
|
"",
|
|
345
345
|
"Alternative: set BRAVE_API_KEY in the Gateway environment (no config changes).",
|
|
346
346
|
"Docs: https://docs.openclaw.ai/tools/web",
|
|
347
|
-
].join("\n"), "
|
|
348
|
-
await prompter.note('
|
|
347
|
+
].join("\n"), "网页搜索(可选)");
|
|
348
|
+
await prompter.note('接下来做什么:查看 https://openclaw.ai/showcase ("大家都在用 OpenClaw 做什么")\n\n💡 汉化版更新:https://openclaw.qt.cool/', "接下来");
|
|
349
349
|
await prompter.outro(controlUiOpened
|
|
350
|
-
? "
|
|
350
|
+
? "初始化完成!已打开控制面板;保持该标签页以控制 OpenClaw。\n\n🔗 汉化版官网:https://openclaw.qt.cool/"
|
|
351
351
|
: seededInBackground
|
|
352
|
-
? "
|
|
353
|
-
: "
|
|
352
|
+
? "初始化完成!Web UI 已在后台准备就绪;随时可用上面的链接打开。\n\n🔗 汉化版官网:https://openclaw.qt.cool/"
|
|
353
|
+
: "初始化完成!使用上面的链接打开控制面板。\n\n🔗 汉化版官网:https://openclaw.qt.cool/");
|
|
354
354
|
}
|
|
@@ -205,11 +205,11 @@ export async function runOnboardingWizard(opts, runtime = defaultRuntime, prompt
|
|
|
205
205
|
"直接连接聊天频道。",
|
|
206
206
|
]
|
|
207
207
|
: [
|
|
208
|
-
|
|
208
|
+
`网关端口: ${DEFAULT_GATEWAY_PORT}`,
|
|
209
209
|
"网关绑定: 回环地址 (127.0.0.1)",
|
|
210
210
|
"网关认证: 令牌 (默认)",
|
|
211
211
|
"Tailscale 暴露: 关闭",
|
|
212
|
-
"
|
|
212
|
+
"直接连接聊天频道。",
|
|
213
213
|
];
|
|
214
214
|
await prompter.note(quickstartLines.join("\n"), "QuickStart");
|
|
215
215
|
}
|
|
@@ -246,7 +246,7 @@ export async function runOnboardingWizard(opts, runtime = defaultRuntime, prompt
|
|
|
246
246
|
hint: !remoteUrl
|
|
247
247
|
? "尚未配置远程 URL"
|
|
248
248
|
: remoteProbe?.ok
|
|
249
|
-
?
|
|
249
|
+
? `网关可达 (${remoteUrl})`
|
|
250
250
|
: `已配置但无法访问 (${remoteUrl})`,
|
|
251
251
|
},
|
|
252
252
|
],
|
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
LineConfigSchema,
|
|
5
5
|
processLineMessage,
|
|
6
6
|
type ChannelPlugin,
|
|
7
|
+
type ChannelStatusIssue,
|
|
7
8
|
type OpenClawConfig,
|
|
8
9
|
type LineConfig,
|
|
9
10
|
type LineChannelData,
|
|
@@ -560,19 +561,26 @@ export const linePlugin: ChannelPlugin<ResolvedLineAccount> = {
|
|
|
560
561
|
lastStopAt: null,
|
|
561
562
|
lastError: null,
|
|
562
563
|
},
|
|
563
|
-
collectStatusIssues: (
|
|
564
|
-
const issues:
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
564
|
+
collectStatusIssues: (accounts) => {
|
|
565
|
+
const issues: ChannelStatusIssue[] = [];
|
|
566
|
+
for (const account of accounts) {
|
|
567
|
+
const accountId = account.accountId ?? DEFAULT_ACCOUNT_ID;
|
|
568
|
+
if (!account.channelAccessToken?.trim()) {
|
|
569
|
+
issues.push({
|
|
570
|
+
channel: "line",
|
|
571
|
+
accountId,
|
|
572
|
+
kind: "config",
|
|
573
|
+
message: "LINE channel access token not configured",
|
|
574
|
+
});
|
|
575
|
+
}
|
|
576
|
+
if (!account.channelSecret?.trim()) {
|
|
577
|
+
issues.push({
|
|
578
|
+
channel: "line",
|
|
579
|
+
accountId,
|
|
580
|
+
kind: "config",
|
|
581
|
+
message: "LINE channel secret not configured",
|
|
582
|
+
});
|
|
583
|
+
}
|
|
576
584
|
}
|
|
577
585
|
return issues;
|
|
578
586
|
},
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qingchencloud/openclaw-zh",
|
|
3
|
-
"version": "2026.1.
|
|
4
|
-
"description": "OpenClaw
|
|
3
|
+
"version": "2026.1.30-zh.1",
|
|
4
|
+
"description": "OpenClaw 汉化发行版(稳定版)- 武汉晴辰天下网络科技有限公司",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"exports": {
|