ironclaw 0.24.0

Secure personal AI assistant that protects your data and expands its capabilities on the fly
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
// 中文语言包 for IronClaw

I18n.register('zh-CN', {
  // 认证页面
  'auth.title': 'IronClaw',
  'auth.tagline': '安全可靠的 AI 助手',
  'auth.tokenLabel': '网关令牌',
  'auth.tokenPlaceholder': '粘贴你的网关令牌',
  'auth.connect': '连接',
  'auth.errorRequired': '请输入令牌',
  'auth.errorInvalid': '令牌无效',
  // 聊天
  'chat.inputPlaceholder': '输入消息或 / 以使用命令...',
  
  // 重启弹窗
  'restart.title': '重启 IronClaw 实例',
  'restart.description': '确定要重启 IronClaw 实例吗?这将优雅地重启进程。',
  'restart.warning': '正在运行的任务可能会中断。重启将在几秒钟内完成。',
  'restart.cancel': '取消',
  'restart.confirm': '确认重启',
  'restart.progressTitle': '正在重启 IronClaw',
  'restart.progressSubtitle': '请等待进程重启...',
  'restart.checkLogs': '重启完成后,请查看日志标签页了解详情。',
  
  // 主题
  'theme.tooltipDark': '主题:深色(点击切换浅色)',
  'theme.tooltipLight': '主题:浅色(点击切换跟随系统)',
  'theme.tooltipSystem': '主题:跟随系统(点击切换深色)',
  'theme.announce': '主题:{mode}',

  // 标签页
  'tab.chat': '聊天',
  'tab.memory': '记忆',
  'tab.jobs': '任务',
  'tab.routines': '定时任务',
  'tab.settings': '设置',
  'tab.extensions': '扩展',
  'tab.skills': '技能',
  'tab.config': '配置',
  'tab.logs': '日志',
  'settings.inference': '推理',
  'settings.agent': '代理',
  'settings.channels': '频道',
  'settings.networking': '网络',
  'settings.mcp': 'MCP',
  'settings.providers': '模型提供商',
  'settings.users': '用户管理',

  // 用户管理标签页
  'users.heading': '用户管理',
  'users.newUser': '+ 新用户',
  'users.displayNamePlaceholder': '显示名称',
  'users.emailPlaceholder': '邮箱(可选)',
  'users.roleMember': '成员',
  'users.roleAdmin': '管理员',
  'users.create': '创建',
  'users.cancel': '取消',
  'users.emptyState': '暂无用户。创建第一个用户以开始使用。',
  'users.adminRequired': '需要管理员权限来管理用户。',
  'users.failedToLoad': '加载用户列表失败',
  'users.suspend': '停用',
  'users.activate': '启用',
  'users.addToken': '+ 令牌',
  'users.failedSuspend': '停用用户失败',
  'users.failedActivate': '启用用户失败',
  'users.makeAdmin': '设为管理员',
  'users.makeMember': '设为成员',
  'users.failedRoleChange': '更改角色失败',
  'users.userCreated': '用户已创建!',
  'users.tokenCreated': '令牌已创建!',
  'users.tokenShareMessage': '分享此登录链接——此链接只会显示一次:',
  'users.rawToken': '原始令牌:',
  'users.copied': '已复制!',
  'users.displayNameRequired': '显示名称为必填项',
  'users.failedCreate': '创建用户失败',
  'users.columns.id': 'ID',
  'users.columns.displayName': '显示名称',
  'users.columns.email': '邮箱',
  'users.columns.role': '角色',
  'users.columns.status': '状态',
  'users.columns.jobs': '任务',
  'users.columns.cost': '费用',
  'users.columns.lastActive': '最近活跃',
  'users.columns.created': '创建时间',
  'users.columns.actions': '操作',

  // 状态
  'status.connected': '已连接',
  'status.disconnected': '已断开',
  'status.connecting': '连接中...',
  'status.reconnecting': '重新连接中...',
  'status.teeVerified': 'TEE 已验证',
  'status.restart': '重启',
  'status.active': '已激活',
  'status.installed': '已安装',
  'status.awaitingPairing': '等待配对',
  
  // 仪表盘
  'dashboard.connections': '连接数',
  'dashboard.uptime': '运行时间',
  'dashboard.costToday': '今日费用',
  'dashboard.spent': '已花费',
  'dashboard.actionsPerHour': '每小时操作',
  'dashboard.sse': 'SSE',
  'dashboard.websocket': 'WebSocket',
  
  // 聊天标签页
  'chat.newThread': '新对话',
  'chat.toggleSidebar': '切换侧边栏',
  'chat.assistant': '助手',
  'chat.conversations': '对话列表',
  'chat.send': '发送',
  'chat.attachImages': '附加图片',
  'chat.empty': '选择文件查看内容',
  'chat.loading': '加载中...',
  'chat.loadingOlder': '加载更早的消息...',
  'chat.noFiles': '工作区没有文件',
  'chat.noResults': '没有结果',
  
  // 对话侧边栏
  'thread.assistant': '助手',
  'thread.new': '新对话',
  
  // 记忆标签页
  'memory.searchPlaceholder': '搜索记忆...',
  'memory.workspace': '工作区',
  'memory.edit': '编辑',
  'memory.save': '保存',
  'memory.cancel': '取消',
  'memory.selectFile': '选择文件查看内容',
  
  // 任务标签页
  'jobs.summary': '任务摘要',
  'jobs.id': 'ID',
  'jobs.title': '标题',
  'jobs.source': '来源',
  'jobs.status': '状态',
  'jobs.created': '创建时间',
  'jobs.actions': '操作',
  'jobs.empty': '暂无任务',
  'jobs.statusRunning': '运行中',
  'jobs.statusCompleted': '已完成',
  'jobs.statusFailed': '失败',
  'jobs.statusPending': '等待中',
  'jobs.jobId': '任务 ID',
  'jobs.description': '描述',
  'jobs.stateTransitions': '状态转换',
  'jobs.projectFiles': '项目文件',
  'jobs.noProjectFiles': '没有项目文件',
  'jobs.viewJob': '查看任务',
  'jobs.browse': '浏览',
  
  // 定时任务标签页
  'routines.summary': '定时任务摘要',
  'routines.name': '名称',
  'routines.trigger': '触发器',
  'routines.action': '操作',
  'routines.lastRun': '上次运行',
  'routines.nextRun': '下次运行',
  'routines.runs': '运行次数',
  'routines.status': '状态',
  'routines.actions': '操作',
  'routines.runsToday': '今日运行',
  'routines.empty': '暂无定时任务',
  'routines.noConfigured': '暂无配置的定时任务。请让助手创建一个。',
  'routines.triggerFailed': '触发失败: {message}',
  
  // 日志标签页
  'logs.serverLevel': '服务端日志级别',
  'logs.clientLevel': '客户端日志级别',
  'logs.pause': '暂停',
  'logs.resume': '继续',
  'logs.clear': '清空',
  'logs.autoScroll': '自动滚动',
  'logs.filter': '筛选日志...',
  'logs.empty': '暂无日志',
  'logs.allLevels': '所有级别',
  'logs.error': '错误',
  'logs.warn': '警告',
  'logs.info': '信息',
  'logs.debug': '调试',
  
  // 扩展标签页
  'extensions.installed': '已安装扩展',
  'extensions.available': '可用扩展',
  'extensions.installWasm': '安装扩展',
  'extensions.noInstalled': '没有安装扩展',
  'extensions.noAvailable': '没有其他可用扩展',
  'extensions.loading': '加载中...',
  'extensions.install': '安装',
  'extensions.installing': '安装中...',
  'extensions.installedSuccess': '已安装 {name}',
  'extensions.remove': '移除',
  'extensions.activate': '激活',
  'extensions.reconfigure': '重新配置',
  'extensions.tools': '工具',
  'extensions.noConfigNeeded': '{name} 不需要配置',
  'extensions.configure': '配置 {name}',
  'extensions.optional': ' (可选)',
  'extensions.autoGenerated': '留空则自动生成',
  'extensions.pendingPairing': '等待配对请求',
  'extensions.from': '来自',
  
  // MCP 服务器
  'mcp.servers': 'MCP 服务器',
  'mcp.noServers': '没有可用的 MCP 服务器',
  'mcp.addCustom': '添加自定义 MCP 服务器',
  'mcp.add': '添加',
  'mcp.addedSuccess': '已添加 MCP 服务器 {name}',


  // 技能标签页
  'skills.installed': '已安装技能',
  'skills.noInstalled': '没有安装技能',
  'skills.searchClawHub': '搜索 ClawHub',
  'skills.searchPlaceholder': '搜索...',
  'skills.installByUrl': '通过 URL 安装技能',
  'skills.namePlaceholder': '技能名称或标识',
  'skills.urlPlaceholder': 'SKILL.md 的 HTTPS URL(可选)',
  'skills.search': '搜索',
  'skills.searching': '搜索中...',
  'skills.noResults': '没有找到 "{query}" 相关技能',
  'skills.searchFailed': '搜索失败: {message}',
  'skills.install': '安装',
  'skills.installing': '安装中...',
  'skills.installedSuccess': '已安装技能 "{name}"',
  'skills.remove': '移除',
  'skills.activatesOn': '激活关键词',
  'skills.registryError': '无法连接 ClawHub 注册表: {message}',
  'skills.by': '作者',
  'skills.updated': '更新于',
  'skills.loading': '加载技能中...',
  'skills.loadFailed': '加载技能失败: {message}',
  'skills.confirmRemove': '确定要移除技能 "{name}" 吗?',
  'skills.removeFailed': '移除失败: {message}',
  'skills.removed': '已移除技能 "{name}"',
  
  // 任务摘要
  'jobs.summary.total': '总计',
  'jobs.summary.inProgress': '进行中',
  'jobs.summary.completed': '已完成',
  'jobs.summary.failed': '失败',
  'jobs.summary.stuck': '卡住',
  
  // 定时任务摘要
  'routines.summary.total': '总计',
  'routines.summary.enabled': '已启用',
  'routines.summary.disabled': '已禁用',
  'routines.summary.unverified': '未验证',
  'routines.summary.failing': '失败',
  'routines.summary.runsToday': '今日运行',
  
  // 按钮
  'btn.close': '关闭',
  'btn.cancel': '取消',
  'btn.save': '保存',
  'btn.edit': '编辑',
  'btn.confirm': '确认',
  'btn.send': '发送',
  'btn.refresh': '刷新',
  'btn.loadMore': '加载更多',
  'btn.copy': '复制',
  'btn.copied': '已复制!',
  'btn.submit': '提交',
  'btn.setup': '设置',
  
  // 时间
  'time.lessThan1MinuteAgo': '刚刚',
  'time.lessThan1MinuteFromNow': '1分钟内',
  'time.minutesAgo': '{n}分钟前',
  'time.minutesFromNow': '{n}分钟后',
  'time.hoursAgo': '{n}小时前',
  'time.hoursFromNow': '{n}小时后',
  'time.daysAgo': '{n}天前',
  'time.daysFromNow': '{n}天后',
  
  // 工具审批
  'approval.title': '工具需要审批',
  'approval.description': '一个工具请求运行权限。',
  'approval.approve': '批准',
  'approval.deny': '拒绝',
  'approval.always': '始终允许',
  'approval.approved': '已批准',
  'approval.alwaysApproved': '始终批准',
  'approval.denied': '已拒绝',
  'approval.showParams': '显示参数',
  'approval.hideParams': '隐藏参数',
  
  // 认证
  'authRequired.title': '{name} 需要认证',
  'authRequired.authenticateWith': '使用 {name} 认证',
  'authRequired.getToken': '获取令牌',
  'authRequired.instructions': '说明',
  
  // 沙盒任务
  'sandbox.job': '沙盒任务',
  'sandbox.doneSignal': '完成信号已发送',
  
  // 错误消息
  'error.startConversation': '请先开始一个对话',
  'error.restartFailed': '重启失败: {message}',
  'error.tokenRequired': '请输入令牌',
  'error.tokenInvalid': '令牌无效',
  'error.connectionFailed': '连接失败',
  'error.unknown': '未知错误',
  'error.loadFailed': '加载失败: {message}',
  
  // 成功消息
  'success.restartInitiated': '已开始重启',
  'success.saved': '保存成功',
  
  // 斜杠命令
  'cmd.status.desc': '显示所有任务,或使用 /status <id> 查看特定任务',
  'cmd.list.desc': '列出所有任务',
  'cmd.cancel.desc': '/cancel <job-id> — 取消正在运行的任务',
  'cmd.undo.desc': '撤销上一步',
  'cmd.redo.desc': '重做已撤销的操作',
  'cmd.compact.desc': '压缩上下文窗口',
  'cmd.clear.desc': '清空对话并重新开始',
  'cmd.interrupt.desc': '停止当前操作',
  'cmd.heartbeat.desc': '触发手动心跳检查',
  'cmd.summarize.desc': '总结当前对话',
  'cmd.suggest.desc': '建议下一步操作',
  'cmd.help.desc': '显示帮助',
  'cmd.version.desc': '显示版本信息',
  'cmd.tools.desc': '列出可用工具',
  'cmd.skills.desc': '列出已安装的 AI 技能',
  'cmd.model.desc': '显示或切换 LLM 模型',
  'cmd.threadNew.desc': '创建新对话线程',
  
  // 语言切换
  'language.title': '语言',
  'language.en': 'English',
  'language.zhCN': '简体中文',
  'language.switch': '切换语言',
  
  // 工具活动
  'tool.thinking': '思考中...',
  'tool.completed': '已完成',
  'tool.failed': '失败',
  'tool.running': '运行中',
  'tool.used': '{count} 个工具已使用',
  'tool.requiresApproval': '工具需要审批',
  
  
  // TEE
  'tee.loadingReport': '正在加载证明报告...',
  'tee.loadFailed': '无法加载证明报告',
  
  // 通用
  'common.loading': '加载中...',
  'common.loadFailed': '加载失败',
  'common.noData': '暂无数据',
  'common.search': '搜索',
  'common.add': '添加',
  'common.remove': '移除',
  'common.install': '安装',
  'common.activate': '激活',
  'common.deactivate': '停用',
  'common.configure': '配置',
  'common.save': '保存',
  'common.cancel': '取消',
  'common.confirm': '确认',
  'common.close': '关闭',
  'common.edit': '编辑',
  'common.delete': '删除',
  'common.refresh': '刷新',
  'common.searchPlaceholder': '搜索...',
  'common.name': '名称',
  'common.description': '描述',
  'common.status': '状态',
  'common.actions': '操作',
  'common.version': '版本',
  'common.owner': '作者',
  'common.tags': '标签',
  
  // 扩展
  'ext.active': '已激活',
  'ext.inactive': '未激活',
  'ext.builtin': '内置',
  'ext.remove': '移除',
  'ext.install': '安装',
  'ext.installing': '安装中...',
  'ext.installed': '已安装',
  'ext.setup': '设置',
  'ext.reconfigure': '重新配置',
  'ext.configure': '配置',
  'ext.confirmRemove': '确定要移除扩展 "{name}" 吗?',
  'ext.removeFailed': '移除失败: {message}',
  'ext.removed': '已移除 {name}',
  'ext.installFailed': '安装失败: {message}',
  
  // 配置页 — 模型提供商
  'config.modelProviders': '模型提供商',
  'config.addProvider': '+ 添加提供商',
  'config.newProvider': '新建提供商',
  'config.restartNotice': '更改将在重启后生效。',
  'config.builtin': '内置',
  'config.useProvider': '使用',
  'config.configureProvider': '配置',
  'config.providerConfigured': '提供商 "{name}" 已配置(重启后生效)',
  'config.currentModel': '模型:{model}',
  'config.providerName': '显示名称',
  'config.providerNamePlaceholder': '我的提供商',
  'config.providerId': '提供商 ID',
  'config.providerIdPlaceholder': 'my-provider',
  'config.providerIdHint': '小写字母、数字、连字符、下划线',
  'config.providerAdapter': 'API 适配器',
  'config.adapterOpenAI': 'OpenAI 兼容',
  'config.adapterAnthropic': 'Anthropic',
  'config.adapterOllama': 'Ollama',
  'config.providerBaseUrl': '基础 URL',
  'config.providerApiKey': 'API 密钥',
  'config.apiKeyConfigured': '密钥已配置(留空保留)',
  'config.apiKeyFromEnv': '密钥已通过环境变量设置',
  'config.apiKeyEnter': '输入 API 密钥',
  'config.providerModel': '默认模型',
  'config.providerActivated': '已切换到 {name}(重启后生效)',
  'config.providerAdded': '已添加提供商 "{name}"(重启后生效)',
  'config.providerUpdated': '提供商 "{name}" 已更新(重启后生效)',
  'config.editProvider': '编辑提供商',
  'config.providerDeleted': '提供商已删除',
  'config.confirmDeleteProvider': '确定删除提供商 "{id}"?',
  'config.cannotDeleteActiveProvider': '无法删除当前正在使用的提供商,请先切换到其他提供商。',
  'config.testConnection': '测试',
  'config.testing': '测试中…',
  'config.fetchModels': '获取可用模型',
  'config.fetchingModels': '获取中…',
  'config.modelsFetched': '已加载 {count} 个模型,可输入过滤',
  'config.modelsFetchFailed': '获取模型列表失败',
  'config.providerBaseUrlRequired': '请先填写 Base URL',
  'config.providerFieldsRequired': '显示名称和提供商 ID 为必填项',
  'config.providerIdInvalid': '提供商 ID 只能包含小写字母、数字、连字符和下划线',
  'config.providerIdTaken': '提供商 ID "{id}" 已被占用',

  // 配置
  'config.title': '配置 {name}',
  'config.telegramOwnerHint': '保存后,IronClaw 会显示一次性验证码。将 `/start CODE` 发送给你的 Telegram 机器人,IronClaw 会自动完成设置。',
  'config.telegramChallengeTitle': 'Telegram 所有者验证',
  'config.telegramOwnerWaiting': '正在等待 Telegram 所有者验证...',
  'config.telegramCommandLabel': '请在 Telegram 中发送:',
  'config.telegramStartOver': '重新开始',
  'config.telegramStartOverHint': 'Telegram 验证未完成。点击“重新开始”以生成新的验证码并重试。',
  'config.optional': '(可选)',
  'config.alreadySet': '(已设置 — 留空以保持不变)',
  'config.alreadyConfigured': '已配置',
  'config.autoGenerate': '如果为空则自动生成',
  'config.save': '保存',
  'config.cancel': '取消',

  // 设置工具栏
  'settings.export': '导出',
  'settings.import': '导入',
  'settings.searchPlaceholder': '搜索设置...',
  'settings.exportSuccess': '设置已导出',
  'settings.exportFailed': '导出失败: {message}',
  'settings.importSuccess': '设置导入成功',
  'settings.importFailed': '导入失败: {message}',
  'settings.restartRequired': '需要重启才能使更改生效。',
  'settings.restartNow': '立即重启',
  'settings.noMatchingSettings': '没有匹配 "{query}" 的设置',
  'settings.noSettings': '未找到设置',
  'settings.saved': '已保存',
  'settings.on': '开启',
  'settings.off': '关闭',
  'settings.envValue': '环境变量: {value}',
  'settings.envDefault': '使用环境变量默认值',
  'settings.useEnvDefault': '使用环境变量默认值',

  // 设置分组
  'cfg.group.llm': 'LLM 提供商',
  'cfg.group.embeddings': '嵌入向量',
  'cfg.group.agent': '代理',
  'cfg.group.heartbeat': '心跳',
  'cfg.group.sandbox': '沙箱',
  'cfg.group.routines': '定时任务',
  'cfg.group.safety': '安全',
  'cfg.group.skills': '技能',
  'cfg.group.search': '搜索',
  'cfg.group.tunnel': '隧道',
  'cfg.group.gateway': '网关',

  // 推理设置
  'cfg.llm_backend.label': '后端',
  'cfg.llm_backend.desc': 'LLM 推理提供商',
  'cfg.selected_model.label': '模型',
  'cfg.selected_model.desc': '所选后端的模型名称或 ID',
  'cfg.ollama_base_url.label': 'Ollama URL',
  'cfg.ollama_base_url.desc': 'Ollama API 基础 URL',
  'cfg.openai_compatible_base_url.label': 'OpenAI 兼容 URL',
  'cfg.openai_compatible_base_url.desc': 'OpenAI 兼容 API 基础 URL',
  'cfg.bedrock_region.label': 'Bedrock 区域',
  'cfg.bedrock_region.desc': 'Bedrock 的 AWS 区域',
  'cfg.bedrock_cross_region.label': '跨区域',
  'cfg.bedrock_cross_region.desc': '启用跨区域推理',
  'cfg.bedrock_profile.label': 'AWS 配置文件',
  'cfg.bedrock_profile.desc': 'Bedrock 认证的 AWS 配置文件',
  'cfg.embeddings_enabled.label': '启用',
  'cfg.embeddings_enabled.desc': '启用向量嵌入以支持记忆搜索',
  'cfg.embeddings_provider.label': '提供商',
  'cfg.embeddings_provider.desc': '嵌入向量 API 提供商',
  'cfg.embeddings_model.label': '模型',
  'cfg.embeddings_model.desc': '嵌入向量模型名称',

  // 代理设置
  'cfg.agent_name.label': '名称',
  'cfg.agent_name.desc': '代理显示名称',
  'cfg.agent_max_parallel_jobs.label': '最大并行任务数',
  'cfg.agent_max_parallel_jobs.desc': '最大并发后台任务数',
  'cfg.agent_job_timeout.label': '任务超时',
  'cfg.agent_job_timeout.desc': '每个任务的最大持续时间(秒)',
  'cfg.agent_max_tool_iterations.label': '最大工具迭代次数',
  'cfg.agent_max_tool_iterations.desc': '每轮最大工具调用次数',
  'cfg.agent_use_planning.label': '规划',
  'cfg.agent_use_planning.desc': '执行前启用多步规划',
  'cfg.agent_auto_approve.label': '自动批准工具',
  'cfg.agent_auto_approve.desc': '跳过工具调用的手动审批',
  'cfg.agent_timezone.label': '时区',
  'cfg.agent_timezone.desc': '默认时区(IANA)',
  'cfg.agent_session_idle.label': '会话空闲超时',
  'cfg.agent_session_idle.desc': '空闲会话过期前的秒数',
  'cfg.agent_stuck_threshold.label': '卡住阈值',
  'cfg.agent_stuck_threshold.desc': '任务被认为卡住前的秒数',
  'cfg.agent_max_repair.label': '最大修复尝试次数',
  'cfg.agent_max_repair.desc': '卡住任务的自动恢复尝试次数',
  'cfg.agent_max_cost.label': '每日最大费用',
  'cfg.agent_max_cost.desc': '每日 LLM 支出上限(美分,0 = 无限制)',
  'cfg.agent_max_actions.label': '每小时最大操作数',
  'cfg.agent_max_actions.desc': '每小时工具调用速率限制(0 = 无限制)',
  'cfg.agent_allow_local.label': '允许本地工具',
  'cfg.agent_allow_local.desc': '启用本地文件系统工具执行',

  // 心跳设置
  'cfg.heartbeat_enabled.label': '启用',
  'cfg.heartbeat_enabled.desc': '运行定期后台检查',
  'cfg.heartbeat_interval.label': '间隔',
  'cfg.heartbeat_interval.desc': '心跳间隔秒数(默认:1800)',
  'cfg.heartbeat_notify_channel.label': '通知频道',
  'cfg.heartbeat_notify_channel.desc': '发送心跳发现的频道',
  'cfg.heartbeat_notify_user.label': '通知用户',
  'cfg.heartbeat_notify_user.desc': '要通知的用户 ID',
  'cfg.heartbeat_quiet_start.label': '静默时段开始',
  'cfg.heartbeat_quiet_start.desc': '停止心跳的小时(0-23)',
  'cfg.heartbeat_quiet_end.label': '静默时段结束',
  'cfg.heartbeat_quiet_end.desc': '恢复心跳的小时(0-23)',
  'cfg.heartbeat_timezone.label': '时区',
  'cfg.heartbeat_timezone.desc': '静默时段的时区(IANA)',

  // 沙箱设置
  'cfg.sandbox_enabled.label': '启用',
  'cfg.sandbox_enabled.desc': '启用 Docker 沙箱以运行后台任务',
  'cfg.sandbox_policy.label': '策略',
  'cfg.sandbox_policy.desc': '沙箱安全策略',
  'cfg.sandbox_timeout.label': '超时',
  'cfg.sandbox_timeout.desc': '最大任务持续时间(秒)',
  'cfg.sandbox_memory.label': '内存限制',
  'cfg.sandbox_memory.desc': '容器内存限制(MB)',
  'cfg.sandbox_image.label': 'Docker 镜像',
  'cfg.sandbox_image.desc': '沙箱任务的容器镜像',

  // 定时任务设置
  'cfg.routines_max_concurrent.label': '最大并发数',
  'cfg.routines_max_concurrent.desc': '同时运行的最大定时任务数',
  'cfg.routines_cooldown.label': '默认冷却时间',
  'cfg.routines_cooldown.desc': '定时任务触发间的最小秒数',

  // 安全设置
  'cfg.safety_max_output.label': '最大输出长度',
  'cfg.safety_max_output.desc': '每次响应的最大输出令牌数',
  'cfg.safety_injection_check.label': '注入检查',
  'cfg.safety_injection_check.desc': '启用提示注入检测',

  // 技能设置
  'cfg.skills_max_active.label': '最大活跃技能数',
  'cfg.skills_max_active.desc': '同时活跃的最大技能数',
  'cfg.skills_max_tokens.label': '最大上下文令牌数',
  'cfg.skills_max_tokens.desc': '技能提示的令牌预算',

  // 搜索设置
  'cfg.search_fusion.label': '融合策略',
  'cfg.search_fusion.desc': '混合搜索排名方法',

  // 网络设置
  'cfg.tunnel_provider.label': '提供商',
  'cfg.tunnel_provider.desc': '公网 URL 隧道提供商',
  'cfg.tunnel_public_url.label': '公网 URL',
  'cfg.tunnel_public_url.desc': '静态公网 URL(不使用隧道提供商时)',
  'cfg.gateway_rate_limit.label': '速率限制',
  'cfg.gateway_rate_limit.desc': '每分钟最大聊天消息数',
  'cfg.gateway_max_connections.label': '最大连接数',
  'cfg.gateway_max_connections.desc': '最大同时 SSE/WS 连接数',

  // 频道子标签
  'channels.builtin': '内置频道',
  'channels.messaging': '消息频道',
  'channels.webGateway': 'Web 网关',
  'channels.webGatewayDesc': '基于浏览器的聊天界面',
  'channels.httpWebhook': 'HTTP Webhook',
  'channels.httpWebhookDesc': '用于外部集成的传入 webhook 端点',
  'channels.cli': 'CLI',
  'channels.cliDesc': '使用 Ratatui 的终端 UI',
  'channels.repl': 'REPL',
  'channels.replDesc': '用于测试的简单读取-求值-打印循环',
  'channels.configureVia': '通过 {env} 配置',
  'channels.runWith': '运行命令: {cmd}',

  // Welcome Card
  'welcome.heading': '有什么可以帮助您的?',
  'welcome.description': 'IronClaw 是您的安全 AI 助手。选择下方的建议或输入您自己的消息。',
  'welcome.runTool': '运行工具',
  'welcome.checkJobs': '查看任务状态',
  'welcome.searchMemory': '搜索记忆',
  'welcome.manageRoutines': '管理例程',
  'welcome.systemStatus': '系统状态',
  'welcome.writeCode': '编写代码',

  // Connection
  'connection.disconnected': '已断开连接 — 正在尝试重新连接',
  'connection.reconnecting': '正在重新连接(第 {count} 次尝试)...',
  'connection.reconnected': '已重新连接',

  // Messages
  'message.you': '',
  'message.assistant': 'IronClaw',
  'message.system': '系统',
  'message.copy': '复制',
  'message.copied': '已复制!',

  // Approval
  'approval.pressY': '按 Y 批准,N 拒绝',
});