@oharness/server 0.10.0 → 0.12.0

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 (74) hide show
  1. package/dist/analytics.d.ts +32 -29
  2. package/dist/analytics.js +225 -278
  3. package/dist/analytics.js.map +1 -1
  4. package/dist/i18n.js +242 -12
  5. package/dist/i18n.js.map +1 -1
  6. package/dist/icons.d.ts +3 -0
  7. package/dist/icons.js +69 -3
  8. package/dist/icons.js.map +1 -1
  9. package/dist/model-order.js +1 -0
  10. package/dist/model-order.js.map +1 -1
  11. package/dist/page/client/account.js +140 -4
  12. package/dist/page/client/account.js.map +1 -1
  13. package/dist/page/client/base.js +42 -16
  14. package/dist/page/client/base.js.map +1 -1
  15. package/dist/page/client/browser.js +1 -1
  16. package/dist/page/client/composer.js +641 -47
  17. package/dist/page/client/composer.js.map +1 -1
  18. package/dist/page/client/dialogs.js +75 -0
  19. package/dist/page/client/dialogs.js.map +1 -1
  20. package/dist/page/client/events.js +25 -2
  21. package/dist/page/client/events.js.map +1 -1
  22. package/dist/page/client/index.js +4 -0
  23. package/dist/page/client/index.js.map +1 -1
  24. package/dist/page/client/panels.js +4 -4
  25. package/dist/page/client/ripple.d.ts +13 -0
  26. package/dist/page/client/ripple.js +247 -0
  27. package/dist/page/client/ripple.js.map +1 -0
  28. package/dist/page/client/routines.js +173 -41
  29. package/dist/page/client/routines.js.map +1 -1
  30. package/dist/page/client/shell.js +200 -54
  31. package/dist/page/client/shell.js.map +1 -1
  32. package/dist/page/client/state.js +7 -2
  33. package/dist/page/client/state.js.map +1 -1
  34. package/dist/page/client/terminal.js +34 -7
  35. package/dist/page/client/terminal.js.map +1 -1
  36. package/dist/page/client/theme.d.ts +17 -0
  37. package/dist/page/client/theme.js +365 -0
  38. package/dist/page/client/theme.js.map +1 -0
  39. package/dist/page/client/transcript.js +63 -7
  40. package/dist/page/client/transcript.js.map +1 -1
  41. package/dist/page/style.js +273 -22
  42. package/dist/page/style.js.map +1 -1
  43. package/dist/page.js +5 -5
  44. package/dist/page.js.map +1 -1
  45. package/dist/prefs.d.ts +17 -0
  46. package/dist/prefs.js +5 -0
  47. package/dist/prefs.js.map +1 -1
  48. package/dist/server.js +710 -45
  49. package/dist/server.js.map +1 -1
  50. package/dist/suggest.d.ts +42 -0
  51. package/dist/suggest.js +215 -0
  52. package/dist/suggest.js.map +1 -0
  53. package/dist/terminal.d.ts +35 -2
  54. package/dist/terminal.js +60 -4
  55. package/dist/terminal.js.map +1 -1
  56. package/dist/theme-assets.d.ts +39 -0
  57. package/dist/theme-assets.js +109 -0
  58. package/dist/theme-assets.js.map +1 -0
  59. package/dist/theme-store.d.ts +50 -0
  60. package/dist/theme-store.js +124 -0
  61. package/dist/theme-store.js.map +1 -0
  62. package/dist/theme-tools.d.ts +25 -0
  63. package/dist/theme-tools.js +243 -0
  64. package/dist/theme-tools.js.map +1 -0
  65. package/dist/tool-icons.d.ts +12 -0
  66. package/dist/tool-icons.js +16 -0
  67. package/dist/tool-icons.js.map +1 -0
  68. package/dist/turn-shots.d.ts +18 -2
  69. package/dist/turn-shots.js +10 -1
  70. package/dist/turn-shots.js.map +1 -1
  71. package/dist/user-theme.d.ts +143 -0
  72. package/dist/user-theme.js +510 -0
  73. package/dist/user-theme.js.map +1 -0
  74. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"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"}
package/dist/i18n.js CHANGED
@@ -69,6 +69,26 @@ export const STRINGS = {
69
69
  "update.ready": "Restart to update",
70
70
  "update.important": "Important update",
71
71
  "update.updated": "What's new in {version}",
72
+ "update.prompt.availableTitle": "OHarness {version} is available",
73
+ "update.prompt.importantTitle": "OHarness {version} is an important update",
74
+ "update.prompt.availableBody": "You're on {current}. It downloads in the background, and you'll be asked before anything restarts.",
75
+ "update.prompt.readyTitle": "OHarness {version} is ready to install",
76
+ "update.prompt.readyBody": "Restarting closes the current session and stops any tool still running. Choose Later and it installs the next time you quit.",
77
+ "update.prompt.currentTitle": "OHarness is up to date",
78
+ "update.prompt.currentBody": "You're on version {current}.",
79
+ "update.prompt.errorTitle": "Couldn't check for updates",
80
+ "update.prompt.devTitle": "Updates aren't available in a development run",
81
+ "update.prompt.devBody": "This window is npm start, not an installed build.",
82
+ "update.prompt.download": "Download",
83
+ "update.prompt.restart": "Restart now",
84
+ "update.prompt.later": "Later",
85
+ "update.prompt.ok": "OK",
86
+ "dialog.ok": "OK",
87
+ "dialog.cancel": "Cancel",
88
+ "dialog.save": "Save",
89
+ "dialog.replace": "Replace",
90
+ "dialog.discard": "Discard",
91
+ "dialog.stop": "Stop",
72
92
  "tabs.new": "New tab",
73
93
  "tabs.close": "Close tab",
74
94
  "composer.placeholder": "Describe a task…",
@@ -103,7 +123,8 @@ export const STRINGS = {
103
123
  "add.skills": "Skills",
104
124
  "add.back": "Back",
105
125
  "add.browse": "Browse more",
106
- "add.browseAll": "Browse connectors",
126
+ "add.browseAll.connectors": "Browse connectors",
127
+ "add.browseAll.plugins": "Browse plugins",
107
128
  "add.manage": "Manage all",
108
129
  "add.andMore": "{n} more in Manage",
109
130
  "cmd.model": "Switch the model for this session",
@@ -191,9 +212,51 @@ export const STRINGS = {
191
212
  "market.loading": "Loading…",
192
213
  "market.empty": "Nothing here yet.",
193
214
  "market.connectorsNote": "MCP servers. Adding one starts it now and keeps it for next time.",
194
- "market.pluginsNote": "Resource bundles and explicitly configured runtime plugins. Claude Code bundles contribute skills and agents only. Runtime code is trusted, and configuration changes take effect after restarting.",
215
+ "market.pluginsNote": "Bundles of skills, agents and connectors. Installing one downloads it from its publisher's GitHub at a reviewed commit and makes it available right away; its hooks are not run.",
216
+ "market.install": "Install",
217
+ "market.installing": "Installing…",
218
+ "market.confirm": "Install now",
219
+ "market.cancel": "Cancel",
220
+ "market.consent": "Downloads {publisher}'s plugin from GitHub and adds its skills and agents.",
221
+ "market.consentServers": "Downloads {publisher}'s plugin from GitHub and connects {servers}.",
222
+ "market.installedNotice": "Installed {name}.",
223
+ "market.skills": "{n} skills",
224
+ "market.oneSkill": "1 skill",
225
+ "market.agents": "{n} agents",
226
+ "market.oneAgent": "1 agent",
227
+ "market.servers": "{n} connectors",
228
+ "market.oneServer": "1 connector",
229
+ "market.cat.local": "Runs on this machine",
230
+ "market.tab.import": "Import",
231
+ "market.import": "Import",
232
+ "market.importing": "Importing…",
233
+ "market.importsNote": "Their skills, agents and plugins are read as they are and already work here. Connectors start processes and often hold keys, so each one starts only when you import it.",
234
+ "market.fromConfig": "Connectors in their settings",
235
+ "market.fromPlugins": "Connectors inside their plugins",
236
+ "market.allImported": "Everything from Claude Code and Codex has been imported.",
237
+ "market.scope.inPlugin": "In the {name} plugin",
238
+ "market.scope.user": "Everywhere",
239
+ "market.scope.local": "This project, on this machine",
240
+ "market.scope.project": "This project's .mcp.json",
241
+ "market.reason.sse": "Uses the older SSE transport, which OHarness doesn't support",
242
+ "market.reason.user-config": "Needs settings Claude Code asks for when its plugin is turned on",
243
+ "market.reason.placeholder": "Uses a variable OHarness can't fill in",
244
+ "market.reason.malformed": "This entry couldn't be read",
245
+ "market.inlineSecret": "Importing it copies the key written in its config.",
246
+ "market.disable": "Turn off",
247
+ "market.enable": "Turn on",
248
+ "market.off": "off",
249
+ "market.cat.build": "Build & deploy",
250
+ "market.cat.data": "Databases & data",
251
+ "market.cat.monitor": "Analytics & monitoring",
252
+ "market.cat.dev": "Developer tools",
253
+ "market.cat.web": "Search & web data",
254
+ "market.cat.design": "Design & media",
255
+ "market.cat.work": "Work & business",
256
+ "market.cat.other": "More",
195
257
  "market.skillsNote": "Instructions the model loads when a task matches one. Naming a skill with @ in a message is how to ask for it directly, rather than leaving the choice to the description.",
196
258
  "add.noConnectors": "No connectors configured",
259
+ "add.importFrom": "Import from Claude Code and Codex",
197
260
  "add.noPlugins": "No plugins installed",
198
261
  "add.noSkills": "No skills available",
199
262
  "add.more": "Keep typing to narrow this down",
@@ -373,6 +436,29 @@ export const STRINGS = {
373
436
  "theme.system": "System",
374
437
  "theme.light": "Light",
375
438
  "theme.dark": "Dark",
439
+ "theme.previewTitle": "Theme · {name}",
440
+ "theme.status.pending": "Not applied",
441
+ "theme.status.previewing": "Previewing in this window",
442
+ "theme.status.applied": "Applied",
443
+ "theme.status.discarded": "Discarded",
444
+ "theme.preview": "Preview",
445
+ "theme.stopPreview": "Stop preview",
446
+ "theme.apply": "Apply",
447
+ "theme.discard": "Discard",
448
+ "theme.undo": "Undo",
449
+ "theme.reset": "Reset to default",
450
+ "theme.fixed": "Adjusted for contrast",
451
+ "theme.dropped": "Dropped",
452
+ "theme.notes": "Notes",
453
+ "theme.failed": "Could not change the theme: {error}",
454
+ "theme.safeHint": "If a theme makes the app hard to read, {key} turns custom themes off in this window.",
455
+ "theme.safeOn": "Custom theme is off in this window. {key} turns it back on.",
456
+ "theme.safeOff": "Custom theme is back on.",
457
+ "theme.custom": "Custom theme: {name}",
458
+ "theme.resetShort": "Reset",
459
+ "theme.slot.conversation": "Background",
460
+ "theme.slot.empty": "New session art",
461
+ "theme.slot.avatar": "Avatar",
376
462
  "account.noPlan": "No subscription",
377
463
  "account.getCredits": "Subscribe or top up",
378
464
  // Whose credits the next call spends; the workspace entries switch it.
@@ -402,6 +488,20 @@ export const STRINGS = {
402
488
  "models.keyStored": "Stored in ~/.oharness/auth.json, readable only by your user account. Requests go straight from this computer to the provider.",
403
489
  "models.keyLocalLead": "Stored only on this computer.",
404
490
  "models.keyLocalRest": " Sent only to {provider}, never to OHarness.",
491
+ "models.vendorLocalLead": "Your password stays with {provider}.",
492
+ "models.claudePlan": "Have a Claude Pro or Max plan? It works in Claude Code, not in other apps.",
493
+ "models.claudePlanOpen": "Open Claude Code here",
494
+ "models.spend30d": "About {amount} spent in the last 30 days, on this machine.",
495
+ "mention.agents": "Agents",
496
+ "settings.claudeAgent": "Claude Agent",
497
+ "settings.claudeAgentOnValue": "On",
498
+ "settings.claudeAgentOffValue": "Off",
499
+ "settings.claudeAgentMissingValue": "Claude Code not installed",
500
+ "settings.claudeAgentHint": "Lets OHarness hand work to your own Claude Code — with @claude at the start of a message, or as a subagent. It runs on your Claude account and counts against your Claude plan. OHarness never sees your Claude login; use is subject to Anthropic's terms.",
501
+ "settings.claudeAgentMissing": "Install Claude Code from https://claude.com/claude-code and sign in there, then come back to turn this on.",
502
+ "mention.agentNote": "Send this message to your own Claude Code, on your Claude account",
503
+ "models.spendDetail": "See usage",
504
+ "models.vendorLocalRest": " You sign in on their site in your browser; OHarness only gets permission to call models.",
405
505
  "models.keyEnv": "Or set",
406
506
  "models.discovered": "{id}: {n} models",
407
507
  "models.discoveredNone": "{id} answered with no models. Reached {url}.",
@@ -538,6 +638,12 @@ export const STRINGS = {
538
638
  "settings.keepAwakeOn": "On",
539
639
  "settings.keepAwakeOff": "Off",
540
640
  "settings.keepAwakeHint": "Stops the computer idling to sleep while OHarness is open, so routines run on time. Closing the lid still puts it to sleep.",
641
+ "settings.turnShots": "Screenshot when a turn ends",
642
+ "settings.turnShotsHint": "When a turn used the browser or the computer, show the pages and windows it left under the reply. Pictures are kept on this computer.",
643
+ "settings.suggestions": "Suggest the next message",
644
+ "settings.suggestionsHint": "After a reply, the conversation's model guesses what you might send next and shows it in grey in the box. Tab fills it in, Esc dismisses it. Each guess is a short extra request, counted like any other use of that model.",
645
+ "turnShots.browser": "Browser",
646
+ "turnShots.more": "{n} more pictures",
541
647
  "settings.section.remote": "Remote control",
542
648
  "settings.remote": "Let your iPhone control this Mac",
543
649
  "settings.remote.off": "Off",
@@ -556,10 +662,17 @@ export const STRINGS = {
556
662
  "settings.remotePairedOn": "paired {date}",
557
663
  "settings.remoteForget": "Forget",
558
664
  "settings.remoteForgotten": "{name} forgotten. It will need your Allow again.",
559
- "settings.computerTakeover": "Computer use: take over the mouse",
560
- "settings.computerTakeoverAsk": "Ask each time",
561
- "settings.computerTakeoverNever": "Never",
665
+ "settings.computer": "Computer use",
666
+ "settings.computerEnable": "Switch on when needed",
667
+ "settings.computerEnable.ask": "Ask first",
668
+ "settings.computerEnable.auto": "Automatically",
669
+ "settings.computerEnable.off": "Only when I turn it on",
670
+ "settings.computerEnableHint.ask": "When a request needs your apps, the agent asks to switch Computer use on for that conversation, here or on your paired phone. Each app still asks the first time.",
671
+ "settings.computerEnableHint.auto": "When a request needs your apps, the agent switches Computer use on for that conversation without asking. Each app still asks the first time.",
672
+ "settings.computerEnableHint.off": "Computer use is on only in conversations where you turn it on yourself, from the + menu.",
673
+ "settings.computerTakeover": "Take over the mouse and keyboard",
562
674
  "settings.computerTakeoverHint": "Computer use works in the background where apps allow it. Some actions (drag and drop, and most clicks on Windows) need the real mouse and keyboard: on, it asks you each time; off, it stays in the background and tells you what it could not do.",
675
+ "settings.computerBlockedTitle": "Blocked apps",
563
676
  "settings.computerBlocked": "Apps it must never look at or control (one per line: name, bundle id or exe name). Password managers and security settings are always blocked.",
564
677
  "settings.computerBlockedPlaceholder": "e.g. com.tinyspeck.slackmacgap or slack.exe",
565
678
  "settings.browserMode": "Browser",
@@ -586,7 +699,7 @@ export const STRINGS = {
586
699
  "settings.analyticsOff": "Off",
587
700
  "settings.analyticsEnable": "Turn on",
588
701
  "settings.analyticsDisable": "Turn off",
589
- "settings.analyticsHint": "Off unless you turn it on. Sends which features were used — a panel opened, a model switched — never prompts, paths, diffs or anything you typed.",
702
+ "settings.analyticsHint": "Off unless you turn it on. Sends which features were used — a panel opened, a model switched — never prompts, paths, diffs or anything you typed. Separately, the app counts itself once a day with a random install ID, its version and platform.",
590
703
  // The line under the composer, and the page it opens onto. "Tokens" is
591
704
  // left untranslated everywhere below: it is the word the bills, the model
592
705
  // pickers and the providers all use, in every language.
@@ -680,6 +793,7 @@ export const STRINGS = {
680
793
  "projects.choose": "Open this folder",
681
794
  "projects.other": "Another folder…",
682
795
  "projects.missing": "missing",
796
+ "projects.none": "No matching projects",
683
797
  "projects.open": "Open",
684
798
  "projects.rename": "Rename project",
685
799
  "projects.renamePrompt": "New project folder name",
@@ -689,6 +803,7 @@ export const STRINGS = {
689
803
  "projects.reveal": "Open in file manager",
690
804
  "projects.files": "Files",
691
805
  "projects.terminal": "Terminal",
806
+ "projects.claudeCode": "Open in Claude Code",
692
807
  "files.open": "Browse files",
693
808
  "files.terminal": "Terminal",
694
809
  "files.terminalTab": "Terminal",
@@ -1087,6 +1202,26 @@ export const STRINGS = {
1087
1202
  "update.ready": "重启以完成更新",
1088
1203
  "update.important": "重要更新",
1089
1204
  "update.updated": "{version} 更新了什么",
1205
+ "update.prompt.availableTitle": "OHarness {version} 已发布",
1206
+ "update.prompt.importantTitle": "OHarness {version} 是一次重要更新",
1207
+ "update.prompt.availableBody": "当前版本 {current}。更新会在后台下载,重启前会先征求你的同意。",
1208
+ "update.prompt.readyTitle": "OHarness {version} 已可安装",
1209
+ "update.prompt.readyBody": "重启会关闭当前会话,并停止仍在运行的工具。选择「稍后」,将在下次退出时自动安装。",
1210
+ "update.prompt.currentTitle": "OHarness 已是最新版本",
1211
+ "update.prompt.currentBody": "当前版本 {current}。",
1212
+ "update.prompt.errorTitle": "无法检查更新",
1213
+ "update.prompt.devTitle": "开发运行不支持更新",
1214
+ "update.prompt.devBody": "这个窗口来自 npm start,不是安装版。",
1215
+ "update.prompt.download": "下载",
1216
+ "update.prompt.restart": "立即重启",
1217
+ "update.prompt.later": "稍后",
1218
+ "update.prompt.ok": "好",
1219
+ "dialog.ok": "确定",
1220
+ "dialog.cancel": "取消",
1221
+ "dialog.save": "保存",
1222
+ "dialog.replace": "替换",
1223
+ "dialog.discard": "丢弃",
1224
+ "dialog.stop": "停止",
1090
1225
  "tabs.new": "新建标签页",
1091
1226
  "tabs.close": "关闭标签页",
1092
1227
  "composer.placeholder": "描述一个任务…",
@@ -1121,7 +1256,8 @@ export const STRINGS = {
1121
1256
  "add.skills": "技能",
1122
1257
  "add.back": "返回",
1123
1258
  "add.browse": "浏览更多",
1124
- "add.browseAll": "浏览连接器",
1259
+ "add.browseAll.connectors": "浏览连接器",
1260
+ "add.browseAll.plugins": "浏览插件",
1125
1261
  "add.manage": "管理全部",
1126
1262
  "add.andMore": "还有 {n} 项,在「管理全部」里",
1127
1263
  "cmd.model": "切换本会话使用的模型",
@@ -1209,9 +1345,51 @@ export const STRINGS = {
1209
1345
  "market.loading": "加载中…",
1210
1346
  "market.empty": "这里还没有内容。",
1211
1347
  "market.connectorsNote": "MCP 服务器。添加后立即启动,并在下次继续可用。",
1212
- "market.pluginsNote": "展示资源包和显式配置的运行时插件。Claude Code 资源包只贡献技能与子代理;运行时插件执行可信代码,配置变更在重启后生效。",
1348
+ "market.pluginsNote": "技能、子代理和连接器的组合包。安装时从发布方的 GitHub 下载经过审核的版本,装好立即可用;插件里的钩子不会运行。",
1349
+ "market.install": "安装",
1350
+ "market.installing": "正在安装…",
1351
+ "market.confirm": "确认安装",
1352
+ "market.cancel": "取消",
1353
+ "market.consent": "将从 GitHub 下载 {publisher} 的插件,并添加其中的技能与子代理。",
1354
+ "market.consentServers": "将从 GitHub 下载 {publisher} 的插件,并连接 {servers}。",
1355
+ "market.installedNotice": "已安装 {name}。",
1356
+ "market.skills": "{n} 个技能",
1357
+ "market.oneSkill": "1 个技能",
1358
+ "market.agents": "{n} 个子代理",
1359
+ "market.oneAgent": "1 个子代理",
1360
+ "market.servers": "{n} 个连接器",
1361
+ "market.oneServer": "1 个连接器",
1362
+ "market.cat.local": "在本机运行",
1363
+ "market.tab.import": "导入",
1364
+ "market.import": "导入",
1365
+ "market.importing": "导入中…",
1366
+ "market.importsNote": "它们的 skill、子 agent 和插件会直接读取,已经可以用了。连接器会启动进程,而且经常带着密钥,所以要你点了导入才会启动。",
1367
+ "market.fromConfig": "配置里的连接器",
1368
+ "market.fromPlugins": "插件里带的连接器",
1369
+ "market.allImported": "Claude Code 和 Codex 里的都已经导入了。",
1370
+ "market.scope.inPlugin": "来自插件 {name}",
1371
+ "market.scope.user": "全局",
1372
+ "market.scope.local": "本项目(仅本机)",
1373
+ "market.scope.project": "本项目的 .mcp.json",
1374
+ "market.reason.sse": "使用较旧的 SSE 传输方式,OHarness 不支持",
1375
+ "market.reason.user-config": "需要 Claude Code 在启用插件时询问的设置",
1376
+ "market.reason.placeholder": "用到了 OHarness 无法填入的变量",
1377
+ "market.reason.malformed": "无法读取这条配置",
1378
+ "market.inlineSecret": "导入时会复制配置里写着的密钥。",
1379
+ "market.disable": "停用",
1380
+ "market.enable": "启用",
1381
+ "market.off": "已停用",
1382
+ "market.cat.build": "构建与部署",
1383
+ "market.cat.data": "数据库与数据",
1384
+ "market.cat.monitor": "分析与监控",
1385
+ "market.cat.dev": "开发工具",
1386
+ "market.cat.web": "搜索与网页数据",
1387
+ "market.cat.design": "设计与媒体",
1388
+ "market.cat.work": "办公与业务",
1389
+ "market.cat.other": "更多",
1213
1390
  "market.skillsNote": "模型在任务对得上时自行加载的说明书。想直接指定某一个,在消息里用 @ 点名,而不是把选择权留给描述。",
1214
1391
  "add.noConnectors": "尚未配置连接器",
1392
+ "add.importFrom": "从 Claude Code 和 Codex 导入",
1215
1393
  "add.noPlugins": "尚未安装插件",
1216
1394
  "add.noSkills": "没有可用技能",
1217
1395
  "add.more": "继续输入以缩小范围",
@@ -1379,6 +1557,29 @@ export const STRINGS = {
1379
1557
  "theme.system": "跟随系统",
1380
1558
  "theme.light": "浅色",
1381
1559
  "theme.dark": "深色",
1560
+ "theme.previewTitle": "主题 · {name}",
1561
+ "theme.status.pending": "未应用",
1562
+ "theme.status.previewing": "正在此窗口预览",
1563
+ "theme.status.applied": "已应用",
1564
+ "theme.status.discarded": "已放弃",
1565
+ "theme.preview": "预览",
1566
+ "theme.stopPreview": "停止预览",
1567
+ "theme.apply": "应用",
1568
+ "theme.discard": "放弃",
1569
+ "theme.undo": "撤销",
1570
+ "theme.reset": "恢复默认",
1571
+ "theme.fixed": "已按对比度调整",
1572
+ "theme.dropped": "已丢弃",
1573
+ "theme.notes": "说明",
1574
+ "theme.failed": "无法更改主题:{error}",
1575
+ "theme.safeHint": "如果主题让界面难以阅读,按 {key} 可在此窗口关闭自定义主题。",
1576
+ "theme.safeOn": "此窗口已关闭自定义主题。按 {key} 重新开启。",
1577
+ "theme.safeOff": "自定义主题已重新开启。",
1578
+ "theme.custom": "自定义主题:{name}",
1579
+ "theme.resetShort": "重置",
1580
+ "theme.slot.conversation": "对话背景",
1581
+ "theme.slot.empty": "新会话插图",
1582
+ "theme.slot.avatar": "头像",
1382
1583
  "account.noPlan": "未订阅",
1383
1584
  "account.getCredits": "订阅或充值",
1384
1585
  "account.teamRefused": "{team} · 已不在这个团队",
@@ -1405,6 +1606,20 @@ export const STRINGS = {
1405
1606
  "models.keyStored": "存于 ~/.oharness/auth.json,仅你的系统账户可读;请求由这台电脑直接发往厂商。",
1406
1607
  "models.keyLocalLead": "仅保存在本机",
1407
1608
  "models.keyLocalRest": ",只发送给 {provider},从不经过 OHarness。",
1609
+ "models.vendorLocalLead": "密码只留在 {provider}。",
1610
+ "models.claudePlan": "有 Claude Pro 或 Max 订阅?订阅只能在 Claude Code 里用,不能用于其他应用。",
1611
+ "models.claudePlanOpen": "在这里打开 Claude Code",
1612
+ "models.spend30d": "过去 30 天在这台电脑上大约花了 {amount}。",
1613
+ "mention.agents": "Agent",
1614
+ "settings.claudeAgent": "Claude Agent",
1615
+ "settings.claudeAgentOnValue": "已开启",
1616
+ "settings.claudeAgentOffValue": "已关闭",
1617
+ "settings.claudeAgentMissingValue": "未安装 Claude Code",
1618
+ "settings.claudeAgentHint": "允许 OHarness 把工作交给你自己的 Claude Code:在消息开头写 @claude,或者作为子 agent 调用。它使用你的 Claude 账号,用量计入你的 Claude 订阅。OHarness 不会接触你的 Claude 登录信息;使用须遵守 Anthropic 的条款。",
1619
+ "settings.claudeAgentMissing": "先从 https://claude.com/claude-code 安装 Claude Code 并在里面登录,然后回到这里开启。",
1620
+ "mention.agentNote": "把这条消息交给你自己的 Claude Code,用你的 Claude 账号",
1621
+ "models.spendDetail": "查看用量",
1622
+ "models.vendorLocalRest": "你在浏览器里登录对方网站,OHarness 只获得调用模型的授权。",
1408
1623
  "models.keyEnv": "也可以改设环境变量",
1409
1624
  "models.discovered": "{id}:{n} 个模型",
1410
1625
  "models.discoveredNone": "{id} 没有返回任何模型。请求的是 {url}。",
@@ -1539,6 +1754,12 @@ export const STRINGS = {
1539
1754
  "settings.keepAwakeOn": "开",
1540
1755
  "settings.keepAwakeOff": "关",
1541
1756
  "settings.keepAwakeHint": "OHarness 开着时不让电脑因闲置进入睡眠,定时任务才能按时运行。合上笔记本盖子仍会睡眠。",
1757
+ "settings.turnShots": "回合结束截图",
1758
+ "settings.turnShotsHint": "一轮操作用到浏览器或电脑时,在回复下方显示它最后停留的页面和窗口。截图只保存在这台电脑上。",
1759
+ "settings.suggestions": "推荐下一条消息",
1760
+ "settings.suggestionsHint": "每次回复后,用当前会话的模型猜你接下来可能发什么,以灰色显示在输入框里。按 Tab 填入,按 Esc 关闭。每次猜测是一次很短的额外请求,和正常使用这个模型一样计费。",
1761
+ "turnShots.browser": "浏览器",
1762
+ "turnShots.more": "另外 {n} 张截图",
1542
1763
  "settings.section.remote": "远程控制",
1543
1764
  "settings.remote": "允许 iPhone 控制这台 Mac",
1544
1765
  "settings.remote.off": "关",
@@ -1557,10 +1778,17 @@ export const STRINGS = {
1557
1778
  "settings.remotePairedOn": "配对于 {date}",
1558
1779
  "settings.remoteForget": "移除",
1559
1780
  "settings.remoteForgotten": "已移除 {name}。它再次连接时需要你重新允许。",
1560
- "settings.computerTakeover": "操作电脑:接管鼠标键盘",
1561
- "settings.computerTakeoverAsk": "每次询问",
1562
- "settings.computerTakeoverNever": "从不",
1781
+ "settings.computer": "操作电脑",
1782
+ "settings.computerEnable": "需要时开启",
1783
+ "settings.computerEnable.ask": "先问我",
1784
+ "settings.computerEnable.auto": "自动开启",
1785
+ "settings.computerEnable.off": "仅手动开启",
1786
+ "settings.computerEnableHint.ask": "请求需要用到你的应用时,agent 会请求为这个对话开启操作电脑,你可以在这里或已配对的手机上批准。每个应用第一次使用时仍会单独询问。",
1787
+ "settings.computerEnableHint.auto": "请求需要用到你的应用时,agent 直接为这个对话开启操作电脑,不再询问。每个应用第一次使用时仍会单独询问。",
1788
+ "settings.computerEnableHint.off": "只有你自己从 + 菜单打开的对话才能操作电脑。",
1789
+ "settings.computerTakeover": "接管鼠标键盘",
1563
1790
  "settings.computerTakeoverHint": "操作电脑会尽量在后台进行。有些操作(拖放,以及 Windows 上的大多数点击)需要真实的鼠标和键盘:打开时每次先问你;关闭时只在后台操作,做不到的会告诉你。",
1791
+ "settings.computerBlockedTitle": "禁用的应用",
1564
1792
  "settings.computerBlocked": "永远不能查看或操作的应用(每行一个:名称、bundle id 或 exe 名)。密码管理器和安全设置始终被禁止。",
1565
1793
  "settings.computerBlockedPlaceholder": "例如 com.tinyspeck.slackmacgap 或 slack.exe",
1566
1794
  "settings.browserMode": "浏览器",
@@ -1587,7 +1815,7 @@ export const STRINGS = {
1587
1815
  "settings.analyticsOff": "已关闭",
1588
1816
  "settings.analyticsEnable": "开启",
1589
1817
  "settings.analyticsDisable": "关闭",
1590
- "settings.analyticsHint": "默认关闭,由你决定是否开启。只发送用到了哪些功能——打开了哪个面板、切换了哪个模型——不发送提示词、路径、diff,也不发送任何你输入的内容。",
1818
+ "settings.analyticsHint": "默认关闭,由你决定是否开启。只发送用到了哪些功能——打开了哪个面板、切换了哪个模型——不发送提示词、路径、diff,也不发送任何你输入的内容。另外,应用每天会用一个随机安装 ID 连同版本号和平台计数一次。",
1591
1819
  "settings.change": "更改…",
1592
1820
  "settings.cwdHint": "所有会话、工具调用和写入都以此为根目录。",
1593
1821
  "usage.title": "用量",
@@ -1680,6 +1908,7 @@ export const STRINGS = {
1680
1908
  "projects.choose": "打开此文件夹",
1681
1909
  "projects.other": "其他文件夹…",
1682
1910
  "projects.missing": "不存在",
1911
+ "projects.none": "没有匹配的项目",
1683
1912
  "projects.open": "打开",
1684
1913
  "projects.rename": "重命名项目",
1685
1914
  "projects.renamePrompt": "新的项目文件夹名称",
@@ -1689,6 +1918,7 @@ export const STRINGS = {
1689
1918
  "projects.reveal": "在文件管理器中打开",
1690
1919
  "projects.files": "文件",
1691
1920
  "projects.terminal": "终端",
1921
+ "projects.claudeCode": "在 Claude Code 中打开",
1692
1922
  "files.open": "浏览文件",
1693
1923
  "files.terminal": "终端",
1694
1924
  "files.terminalTab": "终端",