botmux 2.99.0 → 2.101.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.
- package/README.en.md +33 -7
- package/README.md +33 -7
- package/dist/adapters/backend/sandbox.d.ts +33 -4
- package/dist/adapters/backend/sandbox.d.ts.map +1 -1
- package/dist/adapters/backend/sandbox.js +90 -29
- package/dist/adapters/backend/sandbox.js.map +1 -1
- package/dist/adapters/cli/hermes.d.ts.map +1 -1
- package/dist/adapters/cli/hermes.js +6 -0
- package/dist/adapters/cli/hermes.js.map +1 -1
- package/dist/adapters/cli/opencode.d.ts.map +1 -1
- package/dist/adapters/cli/opencode.js +241 -13
- package/dist/adapters/cli/opencode.js.map +1 -1
- package/dist/adapters/cli/traex.d.ts.map +1 -1
- package/dist/adapters/cli/traex.js +8 -6
- package/dist/adapters/cli/traex.js.map +1 -1
- package/dist/adapters/cli/types.d.ts +10 -3
- package/dist/adapters/cli/types.d.ts.map +1 -1
- package/dist/bot-registry.d.ts +12 -0
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +10 -3
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +659 -154
- package/dist/cli.js.map +1 -1
- package/dist/core/cost-calculator.d.ts.map +1 -1
- package/dist/core/cost-calculator.js +26 -36
- package/dist/core/cost-calculator.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +37 -2
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/session-manager.d.ts +11 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +87 -17
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +6 -0
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +24 -8
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/bot-onboarding.d.ts +6 -0
- package/dist/dashboard/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/bot-onboarding.js +3 -1
- package/dist/dashboard/bot-onboarding.js.map +1 -1
- package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/web/bot-onboarding.js +24 -3
- package/dist/dashboard/web/bot-onboarding.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +14 -4
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/web/sessions.d.ts.map +1 -1
- package/dist/dashboard/web/sessions.js +5 -19
- package/dist/dashboard/web/sessions.js.map +1 -1
- package/dist/dashboard-web/app.js +40 -33
- package/dist/dashboard-web/chunks/{bot-defaults-page-3EV7K6LJ.js → bot-defaults-page-HOGLABBC.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-NASYW5FD.js → chunk-ECXPBQ3J.js} +1 -1
- package/dist/dashboard-web/chunks/chunk-MR57RUVP.js +31 -0
- package/dist/dashboard-web/chunks/{connectors-XPZKEHF6.js → connectors-UGTF4Q4I.js} +1 -1
- package/dist/dashboard-web/chunks/{groups-page-C54PVKYP.js → groups-page-IKTCMQ4A.js} +1 -1
- package/dist/dashboard-web/chunks/{insights-page-BBQYR7WY.js → insights-page-7CCSHEKM.js} +1 -1
- package/dist/dashboard-web/chunks/{overview-page-5PJCAMID.js → overview-page-JOJW65P5.js} +1 -1
- package/dist/dashboard-web/chunks/{roles-page-APUDLPVM.js → roles-page-E2VN2DLV.js} +1 -1
- package/dist/dashboard-web/chunks/{schedules-WG2UKHSO.js → schedules-6QIHJIHX.js} +1 -1
- package/dist/dashboard-web/chunks/sessions-page-QN2TARF2.js +238 -0
- package/dist/dashboard-web/chunks/{settings-page-OSBZNCXL.js → settings-page-WWTXB577.js} +1 -1
- package/dist/dashboard-web/chunks/{skills-page-Y3VUAOYG.js → skills-page-2FAUPQ6H.js} +1 -1
- package/dist/dashboard-web/chunks/{team-federation-page-CRH3WZPH.js → team-federation-page-PTBQQSFS.js} +1 -1
- package/dist/dashboard-web/chunks/{workflows-UB7OPYGI.js → workflows-ZNBB5KFV.js} +1 -1
- package/dist/dashboard.js +86 -1
- package/dist/dashboard.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +2 -0
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +2 -0
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts +2 -2
- package/dist/im/lark/card-builder.js +2 -2
- package/dist/im/lark/event-dispatcher.d.ts +8 -3
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +45 -9
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/platform/bind.d.ts.map +1 -1
- package/dist/platform/bind.js +36 -15
- package/dist/platform/bind.js.map +1 -1
- package/dist/platform/binding.d.ts +5 -0
- package/dist/platform/binding.d.ts.map +1 -1
- package/dist/platform/binding.js +11 -0
- package/dist/platform/binding.js.map +1 -1
- package/dist/platform/platform-http.d.ts +11 -0
- package/dist/platform/platform-http.d.ts.map +1 -0
- package/dist/platform/platform-http.js +41 -0
- package/dist/platform/platform-http.js.map +1 -0
- package/dist/platform/tunnel-client.d.ts +14 -0
- package/dist/platform/tunnel-client.d.ts.map +1 -1
- package/dist/platform/tunnel-client.js +40 -3
- package/dist/platform/tunnel-client.js.map +1 -1
- package/dist/services/bot-union-ids-store.d.ts +9 -0
- package/dist/services/bot-union-ids-store.d.ts.map +1 -0
- package/dist/services/bot-union-ids-store.js +59 -0
- package/dist/services/bot-union-ids-store.js.map +1 -0
- package/dist/services/coco-transcript.d.ts.map +1 -1
- package/dist/services/coco-transcript.js +59 -64
- package/dist/services/coco-transcript.js.map +1 -1
- package/dist/services/jsonl-cursor.d.ts +12 -0
- package/dist/services/jsonl-cursor.d.ts.map +1 -1
- package/dist/services/jsonl-cursor.js +63 -4
- package/dist/services/jsonl-cursor.js.map +1 -1
- package/dist/services/opencode-paths.d.ts +7 -0
- package/dist/services/opencode-paths.d.ts.map +1 -0
- package/dist/services/opencode-paths.js +18 -0
- package/dist/services/opencode-paths.js.map +1 -0
- package/dist/services/platform-team-store.d.ts +37 -0
- package/dist/services/platform-team-store.d.ts.map +1 -0
- package/dist/services/platform-team-store.js +120 -0
- package/dist/services/platform-team-store.js.map +1 -0
- package/dist/services/team-groups-store.d.ts +14 -1
- package/dist/services/team-groups-store.d.ts.map +1 -1
- package/dist/services/team-groups-store.js +28 -1
- package/dist/services/team-groups-store.js.map +1 -1
- package/dist/setup/bot-config-editor.d.ts +6 -0
- package/dist/setup/bot-config-editor.d.ts.map +1 -1
- package/dist/setup/bot-config-editor.js +18 -15
- package/dist/setup/bot-config-editor.js.map +1 -1
- package/dist/setup/interactive-select.d.ts +22 -0
- package/dist/setup/interactive-select.d.ts.map +1 -1
- package/dist/setup/interactive-select.js +101 -7
- package/dist/setup/interactive-select.js.map +1 -1
- package/dist/setup/open-platform-automation.d.ts +42 -0
- package/dist/setup/open-platform-automation.d.ts.map +1 -1
- package/dist/setup/open-platform-automation.js +107 -0
- package/dist/setup/open-platform-automation.js.map +1 -1
- package/dist/setup/setup-args.d.ts +77 -0
- package/dist/setup/setup-args.d.ts.map +1 -0
- package/dist/setup/setup-args.js +272 -0
- package/dist/setup/setup-args.js.map +1 -0
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/worker.js +12 -2
- package/dist/worker.js.map +1 -1
- package/dist/workflows/attempt-resume.d.ts.map +1 -1
- package/dist/workflows/attempt-resume.js +4 -1
- package/dist/workflows/attempt-resume.js.map +1 -1
- package/package.json +1 -1
- package/dist/dashboard-web/chunks/chunk-JXLHRRJD.js +0 -31
- package/dist/dashboard-web/chunks/sessions-page-F3U5NFPD.js +0 -238
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
var T="botmux.dashboard.locale",se={"app.name":"botmux","app.subtitle":"\u98DE\u4E66 AI CLI \u63A7\u5236\u53F0","time.secondsAgo":"{value} \u79D2\u524D","time.minutesAgo":"{value} \u5206\u949F\u524D","time.hoursAgo":"{value} \u5C0F\u65F6\u524D","nav.overview":"\u603B\u89C8","nav.sessions":"\u4F1A\u8BDD","nav.sidebarCollapse":"\u6536\u8D77\u83DC\u5355\u680F","nav.sidebarExpand":"\u5C55\u5F00\u83DC\u5355\u680F","nav.groups":"\u7FA4\u7EC4","nav.schedules":"\u5B9A\u65F6","nav.settings":"\u8BBE\u7F6E","nav.botDefaults":"Bot \u914D\u7F6E","nav.skills":"Skills","status.live":"\u5B9E\u65F6\u8FDE\u63A5","status.disconnected":"\u8FDE\u63A5\u65AD\u5F00","status.system":"\u7CFB\u7EDF","status.light":"\u6D45\u8272","status.dark":"\u6697\u9ED1","status.language":"\u8BED\u8A00","status.theme":"\u4E3B\u9898","theme.base":"\u57FA\u7840","theme.skins":"\u4E3B\u9898\u76AE\u80A4","skin.cyber":"2077","skin.genshin":"\u539F\u795E","skin.fallout":"Fallout","skin.prts":"PRTS","skin.bluearchive":"\u851A\u84DD\u6863\u6848","skin.zzz":"\u7EDD\u533A\u96F6","skin.dragonball":"\u4E03\u9F99\u73E0","skin.ikun":"ikun","botOnboarding.add":"\u6DFB\u52A0\u673A\u5668\u4EBA","botOnboarding.title":"\u6DFB\u52A0\u673A\u5668\u4EBA","botOnboarding.intro":"\u9009\u62E9 CLI \u4E0E\u5DE5\u4F5C\u76EE\u5F55\uFF0C\u626B\u7801\u521B\u5EFA PersonalAgent \u5E94\u7528\u540E\u5199\u5165\u672C\u673A bots.json\uFF0C\u5E76\u81EA\u52A8\u914D\u7F6E\u5F00\u653E\u5E73\u53F0\u6743\u9650\u3002","botOnboarding.cliLabel":"CLI \u9002\u914D\u5668","botOnboarding.dirModeLabel":"\u65B0\u8BDD\u9898\u5DE5\u4F5C\u76EE\u5F55","botOnboarding.dirModeFixed":"\u56FA\u5B9A\u9ED8\u8BA4\u76EE\u5F55(\u63A8\u8350)\u2014\u2014\u65B0\u8BDD\u9898\u76F4\u63A5\u5728\u6B64\u76EE\u5F55\u542F\u52A8\u3001\u4E0D\u5F39\u5361\u7247","botOnboarding.dirModeCard":"\u4ED3\u5E93\u9009\u62E9\u5361\u7247\u2014\u2014\u65B0\u8BDD\u9898\u5148\u5F39\u5361\u7247\uFF0C\u4ECE\u626B\u63CF\u5230\u7684 git \u4ED3\u5E93\u4E2D\u9009\u62E9","botOnboarding.dirLabelFixed":"\u9ED8\u8BA4\u5DE5\u4F5C\u76EE\u5F55","botOnboarding.dirLabelCard":"\u4ED3\u5E93\u626B\u63CF\u6839\u76EE\u5F55","botOnboarding.dirPlaceholderFixed":"\u9ED8\u8BA4 ~\uFF08\u5BB6\u76EE\u5F55\uFF09\uFF0C\u9700\u4E3A daemon \u4E3B\u673A\u4E0A\u5DF2\u5B58\u5728\u7684\u76EE\u5F55","botOnboarding.dirPlaceholderCard":"\u5982 ~/projects\uFF0C\u5361\u7247\u5217\u51FA\u5176\u4E0B\u7684 git \u4ED3\u5E93\uFF1B\u9700\u5728 daemon \u4E3B\u673A\u4E0A\u5B58\u5728","botOnboarding.modelLabel":"\u6A21\u578B\uFF08\u53EF\u9009\uFF09","botOnboarding.modelPlaceholder":"\u7559\u7A7A\u4F7F\u7528\u8BE5 CLI \u7684\u9ED8\u8BA4\u6A21\u578B","botOnboarding.modelTtadkPlaceholder":"ttadk \u7F51\u5173\u6A21\u578B\uFF0C\u9ED8\u8BA4 {model}\uFF0C\u53EF\u6539\uFF08\u968F\u65F6\u5728\u6B64\u8C03\u6574\uFF09","botOnboarding.modelTtadkCocoPlaceholder":"CoCo \u65E0\u9700\u6307\u5B9A\u6A21\u578B","botOnboarding.startScan":"\u5F00\u59CB\u626B\u7801","botOnboarding.cancel":"\u53D6\u6D88","botOnboarding.starting":"\u6B63\u5728\u751F\u6210\u4E8C\u7EF4\u7801...","botOnboarding.waiting":"\u8BF7\u7528\u98DE\u4E66 App \u626B\u7801\u786E\u8BA4\u521B\u5EFA\u5E94\u7528\u3002","botOnboarding.verifying":"\u626B\u7801\u6210\u529F\uFF0C\u6B63\u5728\u6821\u9A8C\u51ED\u8BC1...","botOnboarding.configuringPermissions":"\u6B63\u5728\u81EA\u52A8\u914D\u7F6E\u5F00\u653E\u5E73\u53F0\u6743\u9650\u2026","botOnboarding.platformScanHint":"\u8BF7\u7528\u98DE\u4E66 App \u518D\u626B\u4E00\u6B21\u7801\u767B\u5F55\u5F00\u653E\u5E73\u53F0\uFF08\u7528\u4E8E\u81EA\u52A8\u5BFC\u5165\u6743\u9650\u3001\u914D\u7F6E\u56DE\u8C03\u3001\u63D0\u4EA4\u7248\u672C\uFF09\u3002","botOnboarding.platformQrAlt":"\u5F00\u653E\u5E73\u53F0\u767B\u5F55\u4E8C\u7EF4\u7801","botOnboarding.completed":"\u673A\u5668\u4EBA\u5DF2\u6DFB\u52A0\u3002","botOnboarding.permissionOk":"\u5DF2\u81EA\u52A8\u5BFC\u5165 {count} \u9879\u6743\u9650\u3002","botOnboarding.permissionSkipped":"\uFF08\u8DF3\u8FC7 {count} \u9879\u5F53\u524D\u79DF\u6237\u76EE\u5F55\u4E2D\u6CA1\u6709\u7684\u6743\u9650\uFF09","botOnboarding.permissionVersion":"\u5DF2\u63D0\u4EA4\u53D1\u5E03\u7248\u672C {version}\u3002","botOnboarding.permissionManual":"\u6743\u9650\u672A\u80FD\u81EA\u52A8\u914D\u7F6E\uFF0C\u8BF7\u624B\u52A8\u5B8C\u6210\u4EE5\u4E0B\u6B65\u9AA4\uFF1A","botOnboarding.metaDir":"\u76EE\u5F55","botOnboarding.failed":"\u6DFB\u52A0\u5931\u8D25","botOnboarding.openLink":"\u6253\u4E0D\u5F00\u626B\u7801\uFF1F\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00","botOnboarding.close":"\u5173\u95ED","botOnboarding.restartHint":"\u5DF2\u5199\u5165 bots.json\u3002\u6267\u884C pnpm daemon:restart \u540E\u65B0\u673A\u5668\u4EBA\u751F\u6548\u3002","botOnboarding.needsOwner":"\u65E0\u6CD5\u81EA\u52A8\u786E\u8BA4\u626B\u7801\u4EBA\u8EAB\u4EFD\uFF0C\u8BF7\u624B\u52A8\u586B\u5199 owner \u540E\u518D\u5B8C\u6210\u3002","botOnboarding.ownerLabel":"Owner\uFF08\u673A\u5668\u4EBA\u7BA1\u7406\u8005\uFF09","botOnboarding.ownerPlaceholder":"\u5B8C\u6574\u90AE\u7BB1 / union_id(on_) / open_id(ou_)\uFF0C\u591A\u4E2A\u7528\u9017\u53F7\u5206\u9694","botOnboarding.ownerHint":"\u4E3A\u907F\u514D\u300C\u65E0\u4EBA\u662F owner \u65F6\u4EFB\u4F55\u4EBA\u90FD\u80FD\u505A\u7BA1\u7406\u64CD\u4F5C\u300D\uFF0C\u5FC5\u987B\u6307\u5B9A\u81F3\u5C11\u4E00\u4E2A owner\u3002\u5EFA\u8BAE\u7528\u672C\u4F01\u4E1A\u90AE\u7BB1\u6216 union_id(on_)\u3002","botOnboarding.ownerSubmit":"\u4FDD\u5B58 owner \u5E76\u5B8C\u6210","botOnboarding.ownerEmpty":"\u8BF7\u586B\u5199\u81F3\u5C11\u4E00\u4E2A owner\u3002","botOnboarding.ownerInvalid":"owner \u6821\u9A8C\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u8BD5\u3002","botOnboarding.qrAlt":"\u98DE\u4E66\u626B\u7801\u6DFB\u52A0\u673A\u5668\u4EBA\u4E8C\u7EF4\u7801","overview.title":"\u5DE5\u4F5C\u53F0","overview.subtitle":"\u6570\u5B57\u5458\u5DE5\u5B9E\u65F6\u72B6\u6001 \xB7 \u540C\u6B65\u98DE\u4E66\u8BDD\u9898","overview.team":"AI \u56E2\u961F","overview.teamHint":"\u6BCF\u4F4D\u6570\u5B57\u5458\u5DE5\u7684\u5B9E\u65F6\u72B6\u6001","overview.attention":"\u9700\u8981\u4F60\u5904\u7406","overview.attentionHint":"\u5361\u4F4F\u7684\u4EFB\u52A1\uFF0C\u56DE\u4E2A\u8BDD\u5C31\u80FD\u7EE7\u7EED\u8DD1","overview.activeSessions":"\u6D3B\u8DC3\u4F1A\u8BDD","overview.activeSessionsHint":"\u6B63\u5728\u8FD0\u8F6C\u7684\u4F1A\u8BDD","overview.today":"\u6B64\u523B\u6982\u89C8","overview.todayHint":"\u6D3B\u8DC3\u4F1A\u8BDD\u5206\u5E03","overview.viewAll":"\u67E5\u770B\u5168\u90E8 \u2192","overview.botIdle":"\u5F85\u547D\u4E2D\uFF0C\u968F\u65F6\u53EF\u63A5\u65B0\u4EFB\u52A1","overview.botOffline":"\u79BB\u7EBF \u2014 daemon \u672A\u4E0A\u7EBF","overview.botBusy":"\u6267\u884C\u4E2D \xB7 {count} \u4F1A\u8BDD","overview.botNeedsYou":"\u7B49\u4F60\u56DE\u590D","overview.botReady":"\u5C31\u7EEA","overview.botOff":"\u79BB\u7EBF","overview.sessionsCount":"{count} \u4F1A\u8BDD","overview.lastActive":"{time}\u524D\u6D3B\u8DC3","overview.noAttention":"\u6CA1\u6709\u7B49\u4F60\u5904\u7406\u7684\u4E8B\u9879","overview.teamExpand":"\u5C55\u5F00\u5168\u90E8 {count} \u4F4D \u25BE","overview.teamCollapse":"\u6536\u8D77 \u25B4","strip.pending":"{count} \u4EF6\u5F85\u5904\u7406","strip.longest":"\u6700\u4E45\u5DF2\u7B49 {time} \u2014 {bot} {reason}","strip.handle":"\u7ACB\u5373\u5904\u7406","overview.openSessions":"\u6D3B\u8DC3\u4F1A\u8BDD","overview.workingSessions":"\u5DE5\u4F5C\u4E2D","overview.onlineBots":"\u5728\u7EBF Bot","overview.schedules":"\u5B9A\u65F6\u4EFB\u52A1","overview.groups":"\u7FA4\u804A\u8986\u76D6","overview.enabledSchedules":"\u5DF2\u542F\u7528","overview.total":"\u603B\u8BA1","overview.active":"\u6D3B\u8DC3","overview.daemonRegistry":"daemon \u6CE8\u518C\u8868","overview.chatMatrix":"\u7FA4\u804A\u77E9\u9635","overview.recentSessions":"\u6700\u8FD1\u4F1A\u8BDD","overview.nextSchedules":"\u5373\u5C06\u6267\u884C","overview.noSessions":"\u6682\u65E0\u4F1A\u8BDD\u3002","overview.noSchedules":"\u6682\u65E0\u5B9A\u65F6\u4EFB\u52A1\u3002","sessions.title":"\u4F1A\u8BDD\u63A7\u5236","sessions.subtitle":"\u5B9A\u4F4D\u98DE\u4E66\u8BDD\u9898\u3001\u6253\u5F00 Web Terminal\u3001\u5173\u95ED\u6216\u6062\u590D CLI \u4F1A\u8BDD\u3002","sessions.search":"\u641C\u7D22\u5DE5\u4F5C\u76EE\u5F55 / \u6807\u9898 / ID","sessions.anyStatus":"\u5168\u90E8\u72B6\u6001","sessions.adoptAny":"adopt: \u5168\u90E8","sessions.adoptYes":"adopt: \u662F","sessions.adoptNo":"adopt: \u5426","sessions.activeOnly":"\u4EC5\u6D3B\u8DC3","sessions.closeSelected":"\u5173\u95ED\u9009\u4E2D","sessions.clearSelection":"\u53D6\u6D88\u9009\u62E9","sessions.selectedCount":"\u5DF2\u9009 {count} \u4E2A\u4F1A\u8BDD","sessions.idleCleanupOlderThan":"\u7A7A\u95F2\u8D85\u8FC7","sessions.idleCleanupThreshold":"\u7A7A\u95F2\u6E05\u7406\u9608\u503C","sessions.idleCleanupRun":"\u6E05\u7406\u7A7A\u95F2","sessions.idleCleanupCount":"\u53EF\u6E05\u7406 {count} \u4E2A","sessions.idleCleanupConfirm":"\u5C06\u5173\u95ED {count} \u4E2A\u7A7A\u95F2\u8D85\u8FC7 {threshold} \u7684\u4F1A\u8BDD\uFF0C\u786E\u5B9A\u7EE7\u7EED\uFF1F","sessions.idleCleanupRunning":"\u6E05\u7406\u4E2D\u2026","sessions.idleCleanupDone":"\u5DF2\u5173\u95ED {closed} \u4E2A\uFF0C\u5931\u8D25 {failed} \u4E2A","sessions.idleCleanupFailed":"\u6E05\u7406\u5931\u8D25","sessions.lock":"\u9501\u5B9A\u4F1A\u8BDD","sessions.unlock":"\u89E3\u9501\u4F1A\u8BDD","sessions.locked":"\u9501\u5B9A","sessions.lockSelected":"\u9501\u5B9A\u9009\u4E2D","sessions.unlockSelected":"\u89E3\u9501\u9009\u4E2D","sessions.lockFailed":"\u9501\u5B9A\u72B6\u6001\u66F4\u65B0\u5931\u8D25","sessions.bot":"bot","sessions.cli":"CLI","sessions.chat":"\u7FA4\u804A","sessions.openChat":"\u6253\u5F00\u7FA4\u804A","sessions.status":"\u72B6\u6001","sessions.status.starting":"\u542F\u52A8\u4E2D","sessions.status.working":"\u5DE5\u4F5C\u4E2D","sessions.status.idle":"\u7A7A\u95F2","sessions.status.dormant":"\u4F11\u7720","sessions.status.analyzing":"\u5206\u6790\u4E2D","sessions.status.active":"\u6D3B\u52A8\u4E2D","sessions.status.limited":"\u9650\u989D\u5DF2\u8FBE","sessions.status.closed":"\u5DF2\u5173\u95ED","sessions.status.unknown":"\u672A\u77E5","sessions.tokenIn":"Token In","sessions.tokenOut":"Token Out","sessions.titleCol":"\u6807\u9898","sessions.workingDir":"\u5DE5\u4F5C\u76EE\u5F55","sessions.created":"\u521B\u5EFA","sessions.last":"\u6700\u8FD1","sessions.adopt":"\u63A5\u5165","sessions.actions":"\u64CD\u4F5C","sessions.details":"\u8BE6\u60C5","sessions.copy":"\u590D\u5236","sessions.copied":"\u5DF2\u590D\u5236","sessions.locate":"\u5B9A\u4F4D\u8BDD\u9898","sessions.locating":"\u53D1\u9001\u4E2D...","sessions.cooldown":"\u51B7\u5374 {seconds}s","sessions.openTerminal":"\u7EC8\u7AEF","sessions.writeLink":"\u64CD\u4F5C\u94FE\u63A5","sessions.writeLinkHint":"\u83B7\u53D6\u53EF\u64CD\u4F5C\u7EC8\u7AEF\u94FE\u63A5\uFF08\u5E26\u5199\u6743\u9650 token\uFF0C\u65B0\u6807\u7B7E\u6253\u5F00\uFF09","sessions.writeLinkFail":"\u83B7\u53D6\u64CD\u4F5C\u94FE\u63A5\u5931\u8D25","sessions.close":"\u5173\u95ED\u4F1A\u8BDD","sessions.restart":"\u91CD\u542F CLI","sessions.restartConfirmIntro":"\u51C6\u5907\u91CD\u542F\u5F53\u524D CLI\u3002","sessions.restartConfirmStatus":"\u5F53\u524D\u72B6\u6001","sessions.restartConfirmCli":"CLI","sessions.restartConfirmQuestion":"\u786E\u8BA4\u91CD\u542F\u8FD9\u4E2A CLI\uFF1F","sessions.restartFailed":"\u91CD\u542F\u5931\u8D25","sessions.resume":"\u6062\u590D\u4F1A\u8BDD","sessions.dismiss":"\u5173\u95ED","sessions.closeConfirm":"\u5173\u95ED\u8FD9\u4E2A\u4F1A\u8BDD\uFF1F","sessions.resumeFailed":"\u6062\u590D\u5931\u8D25","sessions.land":"\u843D\u76D8","sessions.landLoading":"\u52A0\u8F7D\u6C99\u76D2 diff\u2026","sessions.landUnavailable":"\u65E0\u6CD5\u843D\u76D8","sessions.landEmpty":"\u6C99\u76D2\u526F\u672C\u6CA1\u6709\u6539\u52A8\u3002","sessions.landApply":"\u5E94\u7528\u5230\u78C1\u76D8","sessions.landDiscard":"\u4E22\u5F03","sessions.landApplied":"\u5DF2\u843D\u76D8","sessions.landFailed":"\u843D\u76D8\u5931\u8D25","sessions.landDiscarded":"\u5DF2\u4E22\u5F03\uFF08\u6C99\u76D2\u526F\u672C\u672A\u5E94\u7528\uFF09\u3002","sessions.insight":"\u6D1E\u5BDF","sessions.insightLoading":"\u5206\u6790\u4E2D\u2026","sessions.insightUnavailable":"\u65E0\u6CD5\u5206\u6790","sessions.insightEmpty":"\u672C\u4F1A\u8BDD\u8FD8\u6CA1\u6709\u53EF\u5206\u6790\u7684\u5DE5\u5177 span\u3002","sessions.insightMetrics":"span {total} \xB7 \u5931\u8D25 {failed} \xB7 \u6162 {slow} \xB7 \u8BFB\u6539\u6BD4 {rw} \xB7 \u538B\u7F29 {compactions}","sessions.insightSuggestions":"\u5EFA\u8BAE","sessions.insightSpans":"\u52A8\u4F5C span","sessions.insightCapped":"\u4EC5\u663E\u793A\u524D {shown}/{total} \u6761","sessions.insightAsOf":"\u622A\u81F3 {asOf}","sessions.insightPartial":"\uFF08\u53EF\u80FD\u4E0D\u542B\u8FDB\u884C\u4E2D\u7684\u6700\u65B0\u4E00\u8F6E\uFF09","nav.insights":"\u6D1E\u5BDF","insights.title":"\u5DE5\u4F5C\u6D41\u6D1E\u5BDF","insights.subtitle":"\u53EA\u8BFB\u5206\u6790\u672C\u673A Claude Code / Codex \u4F1A\u8BDD\u7684\u52A8\u4F5C\u8F68\u8FF9\u3001\u5931\u8D25\u4E0E\u6469\u64E6\uFF0C\u7ED9\u51FA\u89C4\u5219\u578B\u4F18\u5316\u5EFA\u8BAE\u3002","insights.refresh":"\u5237\u65B0","insights.search":"\u641C\u7D22\u4F1A\u8BDD / bot / \u76EE\u5F55\u2026","insights.filter":"\u7B5B\u9009","insights.filterAll":"\u5168\u90E8","insights.filterReview":"\u503C\u5F97\u590D\u76D8","insights.filterFailed":"\u6709\u5931\u8D25","insights.filterSlow":"\u6709\u6162 span","insights.loading":"\u5206\u6790\u4E2D\u2026","insights.loaded":"\u5DF2\u52A0\u8F7D {count} \u4E2A\u4F1A\u8BDD","insights.unavailable":"\u52A0\u8F7D\u5931\u8D25","insights.listCount":"\u663E\u793A {shown}/{total}","insights.tabOverview":"\u603B\u89C8","insights.tabSessions":"\u4F1A\u8BDD","insights.tabDist":"\u5206\u5E03","insights.tabHot":"\u70ED\u70B9","insights.projectAll":"\u5168\u90E8\u9879\u76EE","insights.timeAll":"\u5168\u90E8\u65F6\u95F4","insights.time1d":"\u8FD1 1 \u5929","insights.time7d":"\u8FD1 7 \u5929","insights.time30d":"\u8FD1 30 \u5929","insights.clear":"\u6E05\u9664","insights.emptyAnalyzableHint":"\u52FE\u9009\u300C\u542B\u672A\u5206\u6790\u300D\u53EF\u67E5\u770B\u5176\u4F59\u4F1A\u8BDD","insights.showAll":"\u542B\u672A\u5206\u6790","insights.distHint":"\u5F53\u524D\u7B5B\u9009\u4E0B\u5404\u4F1A\u8BDD\u7684\u6307\u6807\u5206\u5E03\u2014\u2014\u770B\u8D70\u52BF\u3001\u770B\u5178\u578B\u503C\u843D\u5728\u54EA\u3002","insights.distSpans":"\u6BCF\u4F1A\u8BDD span \u6570","insights.distFailed":"\u6BCF\u4F1A\u8BDD\u5931\u8D25\u6570","insights.distSlow":"\u6BCF\u4F1A\u8BDD\u6162 span","insights.distAgentTime":"agent \u5DE5\u4F5C\u65F6\u957F","insights.distRw":"\u8BFB\u6539\u6BD4","insights.distChurn":"\u4EE3\u7801\u6539\u52A8\u884C\u6570","insights.distTrend":"\u6309\u5929\u8D8B\u52BF\uFF08\u8FD1 4 \u5468\uFF09","insights.distTrendSub":"\u6BCF\u65E5\u4F1A\u8BDD\u6570","insights.distMedian":"\u4E2D\u4F4D {v}","insights.distEmpty":"\u5F53\u524D\u7B5B\u9009\u4E0B\u6CA1\u6709\u53EF\u5206\u6790\u7684\u4F1A\u8BDD\u3002","insights.disclosure":"\u53E3\u5F84\uFF1A\u8017\u65F6\u53EA\u7B97\u5DE5\u5177\u6267\u884C\u65F6\u95F4\uFF0C\u5DF2\u5254\u9664\u7B49\u7528\u6237\u56DE\u590D\uFF08\u95EE\u7B54/\u8BA1\u5212\u786E\u8BA4\uFF09\u7684\u6302\u673A\u65F6\u957F\uFF0C\u6545\u4E0D\u53CD\u6620\u5899\u949F\u65F6\u957F\uFF1BCodex \u4F1A\u8BDD\u7684\u300C\u8BFB\u300D\u591A\u8D70 shell\uFF08exec_command\uFF09\uFF0C\u4E0D\u8BA1\u5165\u300C\u8BFB\u300D\u76F8\uFF0C\u6545\u5176\u8BFB\u6539\u6BD4\u4F1A\u504F\u4F4E\u751A\u81F3\u4E3A 0\uFF1B\u4EE3\u7801\u6539\u52A8\u6309 patch \u89E3\u6790\uFF0C\u4EC5\u53D6\u6BCF\u4F1A\u8BDD\u6700\u6D3B\u8DC3\u7684\u82E5\u5E72\u6587\u4EF6\uFF0C\u4E0E Claude \u7684\u7ED3\u6784\u5316\u7EDF\u8BA1\u53E3\u5F84\u4E0D\u540C\u3002\u8DE8\u5DE5\u5177\u7684\u5206\u5E03\u4E0E\u6BD4\u503C\u4EC5\u4F9B\u53C2\u8003\uFF0C\u4E0D\u5B9C\u76F4\u63A5\u5BF9\u6BD4\u3002","insights.rwNote":"Codex \u8BFB\u591A\u8D70 shell\uFF0C\u672A\u8BA1\u5165\u8BFB\u76F8","insights.viewSessions":"\u6309\u4F1A\u8BDD\u67E5\u770B","insights.hotHint":"\u8DE8\u4F1A\u8BDD\u590D\u53D1\u4FE1\u53F7\u2014\u2014\u6700\u8BE5\u6536\u655B\u7684\u5730\u65B9\u3002","insights.hotToolFailures":"\u5DE5\u5177\u62A5\u9519\u70ED\u70B9","insights.hotSlowSessions":"\u6700\u6162\u7684\u4F1A\u8BDD","insights.hotProjects":"\u9879\u76EE\u5206\u5E03","insights.hotFiles":"\u6587\u4EF6\u590D\u53D1\u70ED\u70B9","insights.hotCommands":"\u547D\u4EE4\u590D\u53D1\u70ED\u70B9","insights.hotErrors":"\u62A5\u9519\u590D\u53D1\u70ED\u70B9","insights.hotComingSoon":"\u6587\u4EF6 / \u547D\u4EE4\u590D\u53D1\u70ED\u70B9\u5373\u5C06\u4E0A\u7EBF\uFF08\u9700\u7ED9\u5F15\u64CE\u52A0\u8DE8\u4F1A\u8BDD\u805A\u5408\uFF09\u3002","insights.hotSessionsCol":"\u4F1A\u8BDD","insights.hotFailsCol":"\u5931\u8D25","insights.hotSlowCol":"\u6162","insights.backToList":"\u8FD4\u56DE\u5217\u8868","insights.sortLabel":"\u6392\u5E8F","insights.sortRecent":"\u6700\u8FD1","insights.sortReview":"\u56DE\u770B\u5206","insights.sortSpans":"span \u6570","insights.sortFails":"\u5931\u8D25","insights.sortSlow":"\u6162","insights.sortAgent":"\u65F6\u957F","insights.layoutCard":"\u5361\u7247","insights.layoutTable":"\u8868\u683C","insights.colTitle":"\u4F1A\u8BDD","insights.colProject":"\u9879\u76EE","insights.colTime":"\u65F6\u95F4","insights.paletteOpen":"\u8DF3\u8F6C \u2318K","insights.palettePlaceholder":"\u8DF3\u8F6C\u5230 tab \u6216\u641C\u7D22\u4F1A\u8BDD\u2026","insights.paletteTabs":"\u89C6\u56FE","insights.paletteSessions":"\u4F1A\u8BDD","insights.paletteEmpty":"\u6CA1\u6709\u5339\u914D\u9879","insights.tabFlow":"\u884C\u4E3A\u6D41","insights.flowHint":"\u667A\u80FD\u4F53\u628A\u52A8\u4F5C\u4E0E\u65F6\u95F4\u82B1\u5728\u54EA\u4E9B\u6D3B\u52A8\u9636\u6BB5\uFF0C\u4EE5\u53CA\u5404\u4F1A\u8BDD\u7684\u8282\u594F\u5206\u5E03\u3002","insights.flowPipeline":"\u6D3B\u52A8\u9636\u6BB5\u6D41\u6C34\u7EBF","insights.flowPipeSub":"\u7814\u7A76 \u2192 \u4FEE\u6539 \u2192 \u8FD0\u884C \u2192 \u59D4\u6D3E \u2192 \u8BA8\u8BBA\uFF1B\u4E0A=\u52A8\u4F5C\u6570\uFF0C\u4E0B=\u8017\u65F6","insights.flowShares":"\u52A8\u4F5C\u5360\u6BD4 vs \u65F6\u95F4\u5360\u6BD4","insights.flowActShare":"\u52A8\u4F5C\u5360\u6BD4","insights.flowTimeShare":"\u65F6\u95F4\u5360\u6BD4","insights.flowRhythm":"\u5404\u4F1A\u8BDD\u8282\u594F\uFF08\u6309\u65F6\u957F\uFF09","insights.subagents":"\u5B50\u4EE3\u7406","insights.subagentsHint":"\u672C\u4F1A\u8BDD\u59D4\u6D3E\u51FA\u53BB\u7684\u5B50\u4EE3\u7406\uFF08Task/Agent\uFF09\uFF0C\u5404\u81EA\u505A\u4E86\u4EC0\u4E48\u3001\u8DD1\u4E86\u591A\u4E45\u3002","insights.readsShort":"\u8BFB","insights.editsShort":"\u6539","insights.durShort":"\u65F6\u957F","insights.empty":"\u6CA1\u6709\u5339\u914D\u7684\u4F1A\u8BDD\u3002","insights.selectSession":"\u4ECE\u5DE6\u4FA7\u9009\u4E00\u4E2A\u4F1A\u8BDD\uFF0C\u67E5\u770B\u52A8\u4F5C span \u4E0E\u5EFA\u8BAE\u3002","insights.detailLoading":"\u52A0\u8F7D\u4F1A\u8BDD\u8BE6\u60C5\u2026","insights.recommendations":"\u4F18\u5316\u5EFA\u8BAE","insights.recommendationsHint":"\u57FA\u4E8E\u89C4\u5219\u7684\u8DE8\u4F1A\u8BDD\u6C47\u603B\uFF0C\u6BCF\u6761\u53EF\u8FFD\u6EAF\u5230\u6307\u6807\u3002","insights.noRecommendations":"\u6682\u65E0\u5EFA\u8BAE\u3002","insights.seenInSessions":"\u51FA\u73B0\u5728 {count} \u4E2A\u4F1A\u8BDD","insights.toolFailures":"\u9AD8\u9891\u5DE5\u5177\u5931\u8D25","insights.toolFailuresHint":"\u6309\u5DE5\u5177\u6C47\u603B\u5931\u8D25 span\u3002","insights.noFailures":"\u6CA1\u6709\u5931\u8D25 span\u3002","insights.metricSessions":"\u4F1A\u8BDD","insights.metricAnalyzed":"\u5DF2\u5206\u6790 {count}","insights.metricSpans":"span","insights.metricSafe":"\u5DF2\u8131\u654F","insights.metricFailed":"\u5931\u8D25 span","insights.metricSlow":"\u6162 span","insights.metricRw":"\u8BFB\u6539\u6BD4","insights.metricCompactions":"\u538B\u7F29 {count}","insights.spansShort":"span ","insights.failedShort":"\u5931\u8D25 ","insights.slowShort":"\u6162 ","insights.rwShort":"\u8BFB\u6539 ","insights.unsupported":"\u8BE5 CLI \u6682\u4E0D\u652F\u6301","insights.noTranscript":"\u6682\u65E0 transcript","insights.parseError":"\u89E3\u6790\u5931\u8D25","insights.noSpans":"\u6682\u65E0\u53EF\u5206\u6790 span\u3002","insights.sevBad":"\u4E25\u91CD","insights.sevWarn":"\u6CE8\u610F","insights.sevInfo":"\u63D0\u793A","insights.phase.research":"\u7814\u7A76","insights.phase.edit":"\u4FEE\u6539","insights.phase.run":"\u8FD0\u884C","insights.phase.delegate":"\u59D4\u6D3E","insights.phase.discuss":"\u8BA8\u8BBA","insights.trace":"\u52A8\u4F5C span","insights.ledger":"\u9010\u8F6E\u5BF9\u8D26","insights.detailTabs":"\u89C2\u6D4B\u660E\u7EC6","insights.spanStatus":"\u72B6\u6001","insights.spanTool":"\u5DE5\u5177","insights.spanPhase":"\u9636\u6BB5","insights.spanDuration":"\u8017\u65F6","insights.spanTurn":"\u8F6E","insights.spanSummary":"\u6458\u8981","insights.ledgerMore":"\u5C55\u5F00\u53E6\u5916 {count} \u6761\u6458\u8981","insights.ledgerOmitted":"\u8FD8\u6709 {count} \u6761\u5DF2\u6298\u53E0","insights.ledgerNoContent":"\u672C\u8F6E\u6CA1\u6709\u53EF\u5C55\u793A\u7684\u8131\u654F\u6458\u8981\u3002","insights.diagShow":"\u67E5\u770B\u8BC1\u636E","insights.diagActive":"\u6B63\u5728\u67E5\u770B","insights.evMatched":"\u547D\u4E2D {count} \u6761\u8BC1\u636E","insights.evMatchedCapped":"\u547D\u4E2D {matched} \u6761\uFF0C\u663E\u793A\u524D {shown} \u6761","insights.evDefault":"\u91CD\u70B9 {shown} / \u5171 {total} \u6761","insights.evShowAll":"\u663E\u793A\u5168\u90E8 {count} \u6761","insights.evBackToEvidence":"\u53EA\u770B\u91CD\u70B9","insights.intent.run_script":"\u8FD0\u884C\u811A\u672C","insights.intent.test":"\u6D4B\u8BD5","insights.intent.typecheck":"\u7C7B\u578B\u68C0\u67E5","insights.intent.lint":"Lint","insights.intent.git":"Git","insights.intent.search":"\u641C\u7D22","insights.intent.read_file":"\u8BFB\u6587\u4EF6","insights.intent.edit_file":"\u6539\u6587\u4EF6","insights.intent.write_file":"\u5199\u6587\u4EF6","insights.intent.delegate":"\u59D4\u6D3E","insights.intent.unknown":"\u64CD\u4F5C","insights.result.ok":"\u6210\u529F","insights.result.tool_error":"\u5DE5\u5177\u62A5\u9519","insights.result.test_failed":"\u6D4B\u8BD5\u5931\u8D25","insights.result.typecheck_failed":"\u7C7B\u578B\u68C0\u67E5\u5931\u8D25","insights.result.lint_failed":"Lint \u5931\u8D25","insights.result.command_failed":"\u547D\u4EE4\u5931\u8D25","insights.result.timeout":"\u8D85\u65F6","insights.result.no_output":"\u65E0\u8F93\u51FA","insights.result.unknown":"\u672A\u77E5","insights.tag.failure":"\u5931\u8D25","insights.tag.slow":"\u6162","insights.tag.retry":"\u8FD4\u5DE5","insights.tag.read_write_imbalance":"\u8BFB\u6539\u5931\u8861","insights.tag.diagnostic":"\u8BCA\u65AD","insights.tag.normal":"\u6B63\u5E38","insights.turnHeadline.turn_has_failures":"\u672C\u8F6E {failures} \u6B21\u5931\u8D25","insights.turnHeadline.turn_has_slow_spans":"\u672C\u8F6E\u6709\u8017\u65F6\u504F\u957F\u7684\u64CD\u4F5C","insights.turnHeadline.turn_has_retries":"\u672C\u8F6E\u53CD\u590D\u91CD\u8BD5\u540C\u4E00\u64CD\u4F5C","insights.turnHeadline.turn_read_write_imbalance":"\u672C\u8F6E\u6539\u591A\u8BFB\u5C11\uFF08\u6539 {edits} / \u8BFB {reads}\uFF09","insights.evTimeline":"\u5168\u90E8 {count} \u6761 span \u65F6\u95F4\u7EBF","insights.evNoFlags":"\u6CA1\u6709\u88AB\u6807\u8BB0\u4E3A\u5931\u8D25 / \u6162 / \u8FD4\u5DE5\u7684 span","insights.turnAllNormal":"{count} \u4E2A\u8F6E\u6B21\u90FD\u6B63\u5E38\uFF0C\u6CA1\u6709\u503C\u5F97\u590D\u76D8\u7684","insights.turnEvidence":"\u67E5\u770B\u672C\u8F6E {count} \u6761\u8BC1\u636E","insights.turnHiddenNormal":"\u53E6\u6709 {count} \u4E2A\u6B63\u5E38\u8F6E\u6B21\uFF08\u5DF2\u9690\u85CF\uFF09","insights.mReads":"\u8BFB","insights.mEdits":"\u6539","insights.mRuns":"\u8DD1","insights.mFailures":"\u5931\u8D25","insights.mDur":"\u8017\u65F6","insights.turnHeadline.turn_normal":"\u6B63\u5E38","insights.rec.fix_repeated_tool_failures":"\u53CD\u590D\u5931\u8D25\u7684\u547D\u4EE4\u9700\u8981\u6536\u655B","insights.rec.split_slow_operation":"\u6162\u64CD\u4F5C\u62D6\u6162\u4E86\u6574\u4E2A\u4F1A\u8BDD","insights.rec.add_read_pass_before_edit":"\u6539\u4E4B\u524D\u8BFB\u5F97\u592A\u5C11","insights.rec.preserve_context_checkpoints":"\u4E0A\u4E0B\u6587\u88AB\u538B\u7F29\uFF0C\u6CE8\u610F\u7559\u5B58\u6863","insights.impact.impact_failed_spans":"{failedSpans} \u4E2A\u52A8\u4F5C\u5931\u8D25\uFF08\u6700\u591A\uFF1A{topTool} \xD7{topToolFailures}\uFF09","insights.impact.impact_slow_spans":"{slowSpansTotal} \u4E2A\u6162\u52A8\u4F5C\u62D6\u6162\u8FDB\u5EA6","insights.impact.impact_low_read_write_ratio":"\u6539\u4E86 {writeSpans} \u5904\uFF0C\u53EA\u8BFB\u4E86 {readSpans} \u5904","insights.impact.impact_context_compaction":"\u672C\u4F1A\u8BDD\u53D1\u751F {compactions} \u6B21\u4E0A\u4E0B\u6587\u538B\u7F29","insights.why.why_tool_failure_concentrated":"\u5931\u8D25\u96C6\u4E2D\u5728 {topTool}\uFF08\u5171 {topToolFailures} \u6B21\uFF09\uFF0C\u591A\u534A\u662F\u540C\u4E00\u7C7B\u95EE\u9898","insights.why.why_slow_span_dominates":"\u5C11\u6570\u8017\u65F6\u52A8\u4F5C\u5360\u4E86\u5927\u5934\uFF0C\u6700\u6162\u7684\u662F {slowestTool}","insights.why.why_edits_outpaced_reads":"\u8BFB\u5199\u6BD4 {readWriteRatio}\uFF0C\u6539\u5F97\u6BD4\u8BFB\u5F97\u591A\u5BB9\u6613\u8E29\u5751\u8FD4\u5DE5","insights.why.why_context_compaction_happened":"\u957F\u4F1A\u8BDD\u88AB\u538B\u7F29\uFF0C\u65E9\u671F\u7684\u51B3\u7B56/\u4E0A\u4E0B\u6587\u53EF\u80FD\u5DF2\u4E22\u5931","insights.action.inspect_failed_span_details":"\u9010\u4E2A\u770B\u5931\u8D25\u52A8\u4F5C\u7684\u8BE6\u60C5\uFF0C\u5B9A\u4F4D\u6839\u56E0","insights.action.add_preflight_or_timeout":"\u7ED9\u9AD8\u9891\u5931\u8D25\u7684\u547D\u4EE4\u52A0\u524D\u7F6E\u68C0\u67E5\u6216\u8D85\u65F6\u63A7\u5236","insights.action.narrow_or_split_slow_operation":"\u628A\u6162\u64CD\u4F5C\u6536\u7A84\u6216\u62C6\u5C0F\uFF08\u5982\u53EA\u8DD1\u5B9A\u5411\u7528\u4F8B\uFF09","insights.action.surface_timeout_or_progress":"\u66F4\u65E9\u66B4\u9732\u8D85\u65F6/\u8FDB\u5EA6\uFF0C\u522B\u8BA9\u5B83\u9ED8\u9ED8\u5361\u4F4F","insights.action.read_or_search_before_editing":"\u6539\u964C\u751F\u6587\u4EF6\u524D\u5148\u8BFB\u4E00\u904D\u6216\u641C\u4E00\u4E0B","insights.action.verify_assumptions_before_running":"\u52A8\u624B\u524D\u5148\u9A8C\u8BC1\u5047\u8BBE\uFF0C\u51CF\u5C11\u76F2\u6539","insights.action.write_checkpoints_for_long_tasks":"\u957F\u4EFB\u52A1\u628A\u51B3\u7B56\u548C\u68C0\u67E5\u70B9\u843D\u5230\u7B14\u8BB0\u91CC","insights.struct.shell":"shell \u547D\u4EE4","insights.struct.fileEdit":"\u6587\u4EF6\u7F16\u8F91","insights.struct.readSearch":"\u8BFB\u53D6/\u641C\u7D22","insights.struct.agentTask":"\u5B50 agent \u4EFB\u52A1","insights.struct.toolInput":"\u5DE5\u5177\u8F93\u5165","insights.struct.toolResult":"\u5DE5\u5177\u8F93\u51FA","insights.struct.toolError":"\u5DE5\u5177\u62A5\u9519","insights.struct.patchFailed":"\u8865\u4E01\u5931\u8D25","insights.struct.patchApplied":"\u8865\u4E01\u5DF2\u5E94\u7528","insights.struct.exit":"exit {code}","insights.spanAll":"\u5168\u90E8","insights.dDetail":"\u8BE6\u60C5","insights.dCollapse":"\u6536\u8D77","insights.dPhase":"\u9636\u6BB5","insights.dStart":"\u8D77\u59CB","insights.dDur":"\u8017\u65F6","insights.dIntent":"\u610F\u56FE","insights.dResult":"\u7ED3\u679C","insights.dIn":"\u8F93\u5165","insights.dOut":"\u8F93\u51FA","insights.dTags":"\u6807\u7B7E","insights.dTurnContext":"\u7B2C {turn} \u8F6E\u4E0A\u4E0B\u6587","insights.advice.failure":"\u{1F4A1} \u770B\u6E05\u62A5\u9519\u518D\u52A8\u624B\uFF0C\u522B\u76F2\u76EE\u91CD\u8BD5","insights.advice.retry":"\u{1F4A1} \u540C\u4E00\u6B65\u53CD\u590D\u91CD\u8BD5\u2014\u2014\u5148\u5B9A\u4F4D\u6839\u56E0\u518D\u7EE7\u7EED","insights.advice.read_write_imbalance":"\u{1F4A1} \u6539\u4E4B\u524D\u5148\u8BFB\u76F8\u5173\u6587\u4EF6\uFF0C\u51CF\u5C11\u8FD4\u5DE5","insights.advice.slow":"\u{1F4A1} \u6162\u64CD\u4F5C\uFF1A\u8003\u8651\u8DD1\u5B9A\u5411\u7528\u4F8B\u6216\u62C6\u5C0F","insights.turnPrompt":"\u7528\u6237","insights.turnExpand":"\u5C55\u5F00 {count} \u6B65","insights.turnCollapse":"\u6536\u8D77","insights.turnRail":"\u4F1A\u8BDD\u8F68\u8FF9","insights.gantt":"\u5DE5\u4F5C\u65F6\u5E8F","insights.ganttCaption":"{span} \u4E2A\u52A8\u4F5C \xB7 \u8DE8\u5EA6 {dur} \xB7 \u6D3B\u8DC3 {active}","insights.ctxCurve":"\u4E0A\u4E0B\u6587\u66F2\u7EBF","insights.ctxCaption":"\u6BCF\u8F6E\u5CF0\u503C in+cache \xB7 \u5CF0\u503C {peak} \xB7 {turns} \u8F6E","insights.ctxTurn":"\u8F6E {n}","insights.railSubagent":"\u5B50\u4EE3\u7406","insights.railSubagents":"{n} \u4E2A\u5B50\u4EE3\u7406","insights.turnPromptExpand":"\u5C55\u5F00","insights.turnPromptCollapse":"\u6536\u8D77","insights.turnPromptRaw":"\u539F\u6587","insights.turnPromptRendered":"\u6E32\u67D3","insights.srcMentions":"\u63D0\u5230","insights.senderHuman":"\u7528\u6237","insights.senderA2A":"A2A","insights.senderOther":"\u5176\u4ED6","insights.senderSystem":"\u7CFB\u7EDF","insights.turnPromptFull":"\u5168\u6587","insights.modalClose":"\u5173\u95ED","insights.promptTruncated":"\u5185\u5BB9\u8F83\u957F\uFF0C\u5DF2\u622A\u65AD","insights.replay":"\u5BF9\u8BDD\u56DE\u653E","insights.replayAgent":"agent \u64CD\u4F5C","insights.replaySearch":"\u641C\u7D22\u5BF9\u8BDD\u5185\u5BB9\u2026","insights.replayBy":"\u53D1\u8D77\u4EBA","insights.replayState":"\u72B6\u6001","insights.replayLoadMore":"\u52A0\u8F7D\u66F4\u591A\uFF08{shown}/{total}\uFF09","insights.replayAllLoaded":"\u5DF2\u5168\u90E8\u52A0\u8F7D\uFF08\u5171 {total} \u6761\uFF09","insights.replayEmpty":"\u6CA1\u6709\u5339\u914D\u7684\u6D88\u606F","insights.replayNoText":"\uFF08\u65E0\u6B63\u6587\uFF0C\u89C1\u64CD\u4F5C\uFF09","insights.replayOps":"{count} \u6B65\u64CD\u4F5C","insights.wsFiles":"\u6587\u4EF6\u6539\u52A8 \xB7 {n}","insights.wsCmds":"\u8DD1\u8FC7\u7684\u547D\u4EE4 \xB7 {n}","insights.wsReads":"\u8BFB {n}","insights.wsEdits":"\u6539 {n}","insights.wsFail":"\u5931\u8D25 {n}","insights.wsNoFiles":"\u65E0\u6587\u4EF6\u6539\u52A8","insights.wsNoCmds":"\u65E0\u547D\u4EE4\u8BB0\u5F55","insights.turnSummary":"\u5171 {total} \u8F6E \xB7 {flagged} \u8F6E\u9700\u5173\u6CE8","insights.dCommand":"\u547D\u4EE4","insights.dCmdOutput":"\u6267\u884C\u7ED3\u679C","insights.ledgerNormal":"\u6B63\u5E38\u6392\u5E8F","insights.ledgerGrouped":"\u6309\u5EFA\u8BAE\u5206\u7C7B","insights.ledgerOther":"\u5176\u4ED6\u8F6E\u6B21","insights.ledgerGroupCount":"{count} \u8F6E","insights.turnsCapped":"\u4EC5\u542B\u524D {shown}/{total} \u4E2A\u52A8\u4F5C\uFF0C\u65F6\u95F4\u7EBF\u53EF\u80FD\u4E0D\u5B8C\u6574","insights.suggestion.high_tool_failure.title":"\u5DE5\u5177\u5931\u8D25\u504F\u591A","insights.suggestion.high_tool_failure.action":"\u4F18\u5148\u770B\u5931\u8D25 span\uFF0C\u628A\u9AD8\u9891\u5931\u8D25\u547D\u4EE4\u505A\u524D\u7F6E\u68C0\u67E5\u6216\u8D85\u65F6\u63A7\u5236\u3002","insights.suggestion.tool_failure_present.title":"\u5B58\u5728\u5DE5\u5177\u8C03\u7528\u5931\u8D25","insights.suggestion.tool_failure_present.action":"\u91CD\u590D\u6267\u884C\u5DE5\u4F5C\u6D41\u524D\uFF0C\u5148\u590D\u76D8\u5931\u8D25 span\u3002","insights.suggestion.slow_span.title":"\u6162\u52A8\u4F5C\u4E3B\u5BFC\u4F1A\u8BDD","insights.suggestion.slow_span.action":"\u62C6\u5206\u6216\u9650\u5236\u6162\u64CD\u4F5C\uFF0C\u5E76\u66F4\u65E9\u66B4\u9732\u8D85\u65F6\u3001\u8FDB\u5EA6\u53CD\u9988\u3002","insights.suggestion.low_read_write_ratio.title":"\u4FEE\u6539\u591A\u4E8E\u9605\u8BFB","insights.suggestion.low_read_write_ratio.action":"\u6539\u964C\u751F\u6587\u4EF6\u524D\u5148\u8865\u4E00\u6B21\u8BFB\u53D6\u6216\u641C\u7D22\u3002","insights.suggestion.context_compaction.title":"\u53D1\u751F\u4E0A\u4E0B\u6587\u538B\u7F29","insights.suggestion.context_compaction.action":"\u957F\u4EFB\u52A1\u5EFA\u8BAE\u628A\u51B3\u7B56\u548C\u68C0\u67E5\u70B9\u843D\u5230\u6301\u4E45\u7B14\u8BB0\u6216\u62C6\u6210\u66F4\u5C0F\u5B50\u4EFB\u52A1\u3002","insights.suggestion.no_major_friction.title":"\u672A\u53D1\u73B0\u660E\u663E\u6469\u64E6","insights.suggestion.no_major_friction.action":"\u53EF\u7528\u52A8\u4F5C\u65F6\u95F4\u7EBF\u505A\u62BD\u67E5\uFF0C\u6216\u4E0E\u66F4\u6162\u7684\u4F1A\u8BDD\u5BF9\u6BD4\u3002","insights.evidence.failedSpans":"{count} \u4E2A\u5931\u8D25 span","insights.evidence.toolFailedTimes":"{tool} \u5931\u8D25 {count} \u6B21","insights.evidence.multipleToolsFailed":"\u591A\u4E2A\u5DE5\u5177\u53D1\u751F\u5931\u8D25","insights.evidence.toolRanSeconds":"{tool} \u8FD0\u884C {seconds}s","insights.evidence.readWriteRatio":"\u8BFB\u6539\u6BD4 {ratio}","insights.evidence.compactions":"\u4E0A\u4E0B\u6587\u538B\u7F29 {count} \u6B21","insights.evidence.spansAnalyzed":"\u5DF2\u5206\u6790 {count} \u4E2A span","connectors.lede":"\u8BA9\u5916\u90E8\u7CFB\u7EDF\uFF08\u76D1\u63A7\u544A\u8B66\u3001CI\u3001\u5DE5\u5355\u2026\uFF09\u901A\u8FC7\u4E00\u4E2A webhook \u89E6\u53D1\u673A\u5668\u4EBA\u5728\u7FA4\u91CC\u8BF4\u8BDD\u6216\u8DD1\u5DE5\u4F5C\u6D41\u3002","connectors.createTitle":"\u65B0\u5EFA Webhook","connectors.fName":"\u540D\u79F0","connectors.fNamePh":"\u5982\uFF1A\u7EBF\u4E0A\u544A\u8B66","connectors.fBot":"\u89E6\u53D1\u7684\u673A\u5668\u4EBA","connectors.fKind":"\u89E6\u53D1\u65B9\u5F0F","connectors.kindTurn":"\u5355\u8F6E\u5BF9\u8BDD\uFF08\u8BA9\u673A\u5668\u4EBA\u56DE\u5E94\u4E00\u6B21\uFF09","connectors.kindWorkflow":"\u5DE5\u4F5C\u6D41","connectors.fWf":"\u5DE5\u4F5C\u6D41 ID","connectors.fMode":"\u6295\u9012\u5230\u54EA\u4E2A\u7FA4","connectors.modeDynamic":"\u7531\u8BF7\u6C42\u6307\u5B9A\uFF08\u7FA4\u968F\u8BF7\u6C42\u4F20\u5165\uFF09","connectors.modeFixed":"\u56FA\u5B9A\u7FA4","connectors.modeNewGroup":"\u6BCF\u6B21\u65B0\u5EFA\u7FA4","connectors.fFixedChat":"\u6295\u9012\u5230\u7684\u7FA4","connectors.fChatManualPh":"\u624B\u52A8\u586B\u7FA4 ID\uFF1Aoc_\u2026","connectors.chatManualLink":"\u627E\u4E0D\u5230\u7FA4\uFF1F\u624B\u52A8\u586B ID \u2192","connectors.chatListLink":"\u4ECE\u7FA4\u5217\u8868\u9009\u62E9 \u2190","connectors.fAllow":"\u5141\u8BB8\u7684\u7FA4","connectors.optional":"\uFF08\u53EF\u9009\uFF09","connectors.allowHint":"\u6309\u4F4F Ctrl/\u2318 \u591A\u9009\uFF1B\u7559\u7A7A = \u4E0D\u9650\u3002\u53EA\u7528\u4E8E\u6821\u9A8C\u8BF7\u6C42\u4F20\u5165\u7684\u7FA4\u662F\u5426\u88AB\u5141\u8BB8\u3002","connectors.dynamicHint":'<b>\u52A8\u6001\u6A21\u5F0F</b>\uFF1A\u7FA4 ID \u968F\u6BCF\u6B21\u8BF7\u6C42\u4F20\u5165\uFF0C\u4E09\u9009\u4E00 \u2014\u2014 \u67E5\u8BE2\u53C2\u6570 <code>?chatId=<\u7FA4ID></code> \xB7 \u8BF7\u6C42\u5934 <code>x-botmux-chat-id: <\u7FA4ID></code> \xB7 \u8BF7\u6C42\u4F53 <code>{"chatId":"<\u7FA4ID>"}</code>\u3002<br>\u60F3"\u4E00\u4E2A URL \u76F4\u63A5\u89E6\u53D1\u3001\u4E0D\u5E26\u53C2\u6570"\uFF0C\u8BF7\u6539\u9009\u300C\u56FA\u5B9A\u7FA4\u300D\u3002',"connectors.fDedup":"\u53BB\u91CD\u5B57\u6BB5","connectors.fDedupPh":"\u5982 alert.id\uFF08\u4ECE\u4E8B\u4EF6 body \u53D6\u503C\uFF09","connectors.dedupHint":"\u586B\u4E86\uFF1A\u547D\u4E2D\u76F8\u540C\u503C\u7684\u4E8B\u4EF6\u90FD\u6295\u5230<b>\u540C\u4E00\u4E2A\u7FA4</b>\u3002\u7559\u7A7A\uFF1A\u6BCF\u4E2A\u4E8B\u4EF6<b>\u65B0\u5EFA\u4E00\u4E2A\u7FA4</b>\u3002","connectors.fInstruction":"\u5904\u7406\u6307\u4EE4","connectors.fInstructionPh":"\u4E8B\u4EF6\u89E6\u53D1\u65F6\u8BA9\u673A\u5668\u4EBA\u505A\u4EC0\u4E48\u3002\u5982\uFF1A\u603B\u7ED3\u8FD9\u6761\u544A\u8B66\u7684\u4E25\u91CD\u7A0B\u5EA6\uFF0C@\u76F8\u5173 oncall\uFF0C\u7ED9\u51FA\u6392\u67E5\u5EFA\u8BAE\u3002\u7559\u7A7A = \u53EA\u628A\u4E8B\u4EF6\u539F\u6837\u4EA4\u7ED9\u6A21\u578B\u81EA\u7531\u53D1\u6325\u3002","connectors.fVerify":"\u6821\u9A8C\u65B9\u5F0F","connectors.verifyToken":"\u4EE4\u724C\uFF08\u7B80\u5355\uFF1A\u5BC6\u94A5\u653E\u8FDB URL\uFF0C\u4E00\u6761 curl \u5C31\u80FD\u89E6\u53D1\uFF09","connectors.verifyHmac":"HMAC \u7B7E\u540D\uFF08\u9AD8\u7EA7\uFF1A\u66F4\u5B89\u5168\uFF0C\u9700\u81EA\u884C\u5BF9\u8BF7\u6C42\u7B7E\u540D\uFF09","connectors.fSecret":"\u5BC6\u94A5 / \u4EE4\u724C","connectors.fSecretPh":"\u7559\u7A7A\u81EA\u52A8\u751F\u6210\uFF08\u53EA\u663E\u793A\u4E00\u6B21\uFF09","connectors.btnCreate":"\u521B\u5EFA","connectors.listTitle":"\u5DF2\u6709 Webhook","connectors.loading":"\u52A0\u8F7D\u4E2D\u2026","connectors.noBotGroups":"\uFF08\u8BE5\u673A\u5668\u4EBA\u6682\u65E0\u53EF\u89C1\u7FA4\uFF0C\u70B9\u53F3\u4FA7\u624B\u52A8\u586B ID\uFF09","connectors.modeLabelFixed":"\u56FA\u5B9A\u7FA4","connectors.modeLabelNewGroup":"\u6BCF\u6B21\u65B0\u5EFA\u7FA4","connectors.modeLabelDynamic":"\u8BF7\u6C42\u6307\u5B9A\u7FA4","connectors.kindLabelWorkflow":"\u5DE5\u4F5C\u6D41","connectors.kindLabelTurn":"\u5355\u8F6E","connectors.count":"\xB7 {count} \u4E2A","connectors.empty":"\u8FD8\u6CA1\u6709 Webhook\u3002\u7528\u4E0A\u9762\u7684\u8868\u5355\u521B\u5EFA\u4E00\u4E2A\u3002","connectors.enabled":"\u5DF2\u542F\u7528","connectors.disabled":"\u5DF2\u505C\u7528","connectors.badgeToken":"\u4EE4\u724C","connectors.badgeSign":"\u7B7E\u540D","connectors.dest":"\u6295\u9012\u300C{name}\u300D","connectors.btnDisable":"\u505C\u7528","connectors.btnEnable":"\u542F\u7528","connectors.btnEdit":"\u7F16\u8F91","connectors.btnSave":"\u4FDD\u5B58","connectors.btnCancel":"\u53D6\u6D88","connectors.btnDel":"\u5220\u9664","connectors.webhookUrl":"Webhook URL\uFF1A","connectors.copy":"\u590D\u5236","connectors.copied":"\u5DF2\u590D\u5236","connectors.tokenHint":"\u4EE4\u724C\u6A21\u5F0F\uFF1A\u8C03\u7528\u65F6\u5728 URL \u672B\u5C3E\u8FFD\u52A0 <code>/<\u4EE4\u724C></code>\uFF08\u4EE4\u724C\u4EC5\u521B\u5EFA/\u8F6E\u6362\u65F6\u663E\u793A\u4E00\u6B21\uFF09\u3002","connectors.dynamicReqHint":'\u52A8\u6001\u6A21\u5F0F\uFF1A\u8BF7\u6C42\u9700\u5E26\u76EE\u6807\u7FA4 \u2014\u2014 <code>?chatId=<\u7FA4ID></code> \u6216\u5934 <code>x-botmux-chat-id</code> \u6216 body <code>{"chatId":"\u2026"}</code>\u3002',"connectors.instructionPrefix":"\u5904\u7406\u6307\u4EE4\uFF1A","connectors.delConfirm":"\u5220\u9664\u8FD9\u4E2A Webhook\uFF1F\u5B83\u7684 URL \u4F1A\u7ACB\u5373\u5931\u6548\u3002","connectors.errName":"\u8BF7\u586B\u540D\u79F0","connectors.errBot":"\u8BF7\u9009\u673A\u5668\u4EBA","connectors.errWf":"\u8BF7\u586B\u5DE5\u4F5C\u6D41 ID","connectors.errChat":"\u8BF7\u9009\u62E9\uFF08\u6216\u624B\u52A8\u586B\uFF09\u6295\u9012\u7684\u7FA4","connectors.creating":"\u521B\u5EFA\u4E2D\u2026","connectors.saving":"\u4FDD\u5B58\u4E2D\u2026","connectors.usageDynamicLede":"\u52A8\u6001\u6A21\u5F0F\uFF1AURL \u5DF2\u542B\u4EE4\u724C\uFF0C\u8C03\u7528\u65F6\u518D\u5E26\u4E0A\u76EE\u6807\u7FA4 ID{gn}\uFF1A","connectors.usageDynamicNote":'\u7FA4\u4E5F\u53EF\u653E\u8BF7\u6C42\u5934 <code>x-botmux-chat-id</code> \u6216 body <code>{"chatId":"\u2026"}</code>\u3002\u26A0\uFE0F URL \u5373\u51ED\u8BC1\uFF0C\u52FF\u6CC4\u6F0F\u3002',"connectors.usageTokenLede":"\u6B64 URL \u5DF2\u542B\u4EE4\u724C\u3001\u4E14\u56FA\u5B9A\u6295\u9012\u5230\u6240\u9009\u7FA4\uFF0C\u76F4\u63A5 POST \u5373\u53EF\u89E6\u53D1\uFF1A","connectors.usageTokenNote":"\u26A0\uFE0F URL \u5373\u51ED\u8BC1\uFF0C\u8BF7\u52FF\u516C\u5F00\u6CC4\u6F0F\uFF1B\u53EF\u5728\u4E0B\u65B9\u5217\u8868\u5220\u9664\u6216\u8F6E\u6362\u3002","connectors.usageHmac":"\u5916\u90E8\u7CFB\u7EDF\u9700\u5BF9 <code>timestamp.body</code> \u505A HMAC-SHA256 \u7B7E\u540D\uFF0C\u5E76\u5E26\u4E0A <code>x-botmux-timestamp</code> / <code>x-botmux-nonce</code> / <code>x-botmux-signature</code> \u5934\u8C03\u7528","connectors.usageHmacDynamic":"\uFF0C\u540C\u65F6\u6309\u4E0A\u9762\u65B9\u5F0F\u5E26\u76EE\u6807\u7FA4 ID","connectors.createdPrefix":"\u5DF2\u521B\u5EFA\u300C{name}\u300D","connectors.createdDest":"\u6295\u9012\u5230\u300C{name}\u300D","connectors.tokenLabel":"\u8BBF\u95EE\u4EE4\u724C","connectors.signLabel":"\u7B7E\u540D\u5BC6\u94A5","connectors.secretOnce":"\uFF08\u53EA\u663E\u793A\u8FD9\u4E00\u6B21\uFF0C\u8BF7\u4FDD\u5B58\uFF09\uFF1A","connectors.createFailed":"\u521B\u5EFA\u5931\u8D25\uFF1A{error}","connectors.saveFailed":"\u4FDD\u5B58\u5931\u8D25\uFF1A{error}","connectors.noOnlineBots":"\uFF08\u6CA1\u6709\u5728\u7EBF\u673A\u5668\u4EBA\uFF09","team.navHome":"\u6211\u7684\u56E2\u961F","team.navManage":"\u56E2\u961F\u7BA1\u7406","team.eyebrow":"\u56E2\u961F","team.homeTitle":"\u56E2\u961F\u534F\u4F5C\uFF08\u8DE8\u90E8\u7F72\uFF09","team.homeLede":"\u628A\u522B\u7684\u90E8\u7F72\uFF08\u540C\u4E8B\u81EA\u5DF1\u8DD1\u7684 botmux\uFF09\u9080\u8BF7\u8FDB\u540C\u4E00\u4E2A\u56E2\u961F\uFF0C\u4E92\u76F8\u53D1\u73B0\u673A\u5668\u4EBA\u3001\u534F\u4F5C\u62C9\u7FA4\u3002","team.localDeployTitle":"\u672C\u90E8\u7F72","team.myIdentity":"\u6211\u7684\u98DE\u4E66\u8EAB\u4EFD\uFF1A","team.unbound":"\u672A\u7ED1\u5B9A","team.bindBtn":"\u7ED1\u5B9A","team.bindHint":"\uFF08\u7528\u673A\u5668\u4EBA\u51ED\u8BC1\u81EA\u52A8\u8BC6\u522B\u4F60\uFF1B\u7ED1\u5B9A\u540E\u62C9\u7FA4\u4F1A\u628A\u4F60\u62C9\u8FDB\u7FA4\u3001\u673A\u5668\u4EBA\u4E5F\u5F52\u5230\u4F60\u540D\u4E0B\uFF09","team.myTeams":"\u6211\u7684\u56E2\u961F","team.searchPh":"\u641C\u7D22 \u540D\u79F0/\u80FD\u529B/CLI\u2026","team.allCli":"\u5168\u90E8 CLI","team.hasCap":"\u6709\u80FD\u529B\u6807\u7B7E","team.hasRole":"\u6709\u9ED8\u8BA4\u89D2\u8272","team.teamsHint":"\u6BCF\u4E2A\u56E2\u961F\u91CC\u52FE\u9009\u673A\u5668\u4EBA\u5373\u53EF\u5355\u72EC\u62C9\u7FA4\uFF08\u81EA\u52A8\u5E26\u4E0A\u5404\u81EA\u8D1F\u8D23\u4EBA\uFF09\u3002\u8981\u65B0\u5EFA\u56E2\u961F / \u751F\u6210\u9080\u8BF7\u7801 / \u52A0\u5165\u522B\u4EBA\u7684\u56E2\u961F\uFF0C\u53BB\u300C\u56E2\u961F\u7BA1\u7406\u300D\u3002","team.loading":"\u52A0\u8F7D\u4E2D\u2026","team.roleModalTitle":"\u9ED8\u8BA4\u89D2\u8272","team.roleModalHint":"\u8BE5\u673A\u5668\u4EBA\u7684\u9ED8\u8BA4\u4EBA\u8BBE\uFF08\u8DE8\u7FA4\u751F\u6548\uFF09\uFF0C\u6B64\u5904\u53EA\u8BFB\u3002\u5982\u9700\u4FEE\u6539\uFF0C\u8BF7\u5230\u300CBot \u914D\u7F6E\u300D\u9875\u3002","team.close":"\u5173\u95ED","team.tagLocal":"\u672C\u90E8\u7F72","team.tagRemoteStale":"\u8FDC\u7AEF\xB7\u79BB\u7EBF\uFF1F","team.tagRemote":"\u8FDC\u7AEF","team.removeMember":"\u79FB\u9664","team.depTag":"\uFF08{tag}\uFF09","team.depCount":"{count} \u4E2A","team.depSelected":"\uFF0C\u5DF2\u9009 {n}","team.capPh":"\u80FD\u529B\u6807\u7B7E\u2026","team.viewRole":"\u67E5\u770B","team.hasRoleShort":"\u6709\u89D2\u8272","team.noMatch":"\u6CA1\u6709\u7B26\u5408\u6761\u4EF6\u7684\u673A\u5668\u4EBA\u3002","team.gnamePh":"\u7FA4\u540D\uFF08\u5982\uFF1A\u8DE8\u56E2\u961F\u6392\u969C\uFF09","team.pullGroupBtn":"\u628A\u52FE\u9009\u7684\u673A\u5668\u4EBA\u62C9\u4E00\u4E2A\u7FA4","team.pullGroupHint":"\u52FE\u9009\u673A\u5668\u4EBA \u2192 \u62C9\u5230\u4E00\u4E2A\u98DE\u4E66\u7FA4\uFF08\u81EA\u52A8\u542B owner\uFF09","team.noTeams":"\u8FD8\u6CA1\u6709\u56E2\u961F\u3002\u53BB\u300C\u56E2\u961F\u7BA1\u7406\u300D\u751F\u6210\u9080\u8BF7\u7801\u8BA9\u522B\u4EBA\u52A0\u5165\u4F60\uFF0C\u6216\u52A0\u5165\u522B\u4EBA\u7684\u56E2\u961F\u3002","team.connected":"\u5DF2\u8FDE\u63A5","team.connectFail":"\u8FDE\u63A5\u5931\u8D25\uFF1A{error}","team.iHost":"\u6211\u6258\u7BA1","team.teamMeta":"{deps} \u4E2A\u90E8\u7F72 \xB7 {bots} \u4E2A\u673A\u5668\u4EBA","team.rosterFail":"\u65E0\u6CD5\u83B7\u53D6\u8BE5\u56E2\u961F\u82B1\u540D\u518C\u3002","team.acrossTeams":"\uFF08\u8DE8 {n} \u4E2A\u56E2\u961F\uFF0C\u53BB\u91CD\uFF09","team.botsWord":"\u4E2A\u673A\u5668\u4EBA","team.groupCreated":"\u7FA4\u5DF2\u521B\u5EFA","team.delegatedBy":"\uFF08\u7531\u300C{name}\u300D\u5EFA\u7FA4\uFF09","team.openInLark":"\u5728\u98DE\u4E66\u6253\u5F00","team.invalidBots":"\u672A\u52A0\u5165\u7684\u673A\u5668\u4EBA\uFF1A{ids}","team.invalidOwners":"{n} \u4E2A owner \u672A\u80FD\u62C9\u8FDB","team.missingIdentity":"\u4F60\u672A\u7ED1\u5B9A\u98DE\u4E66\u8EAB\u4EFD\uFF0C\u6CA1\u628A\u4F60\u81EA\u5DF1\u62C9\u8FDB\u7FA4\uFF08\u53BB\u300C\u6211\u7684\u56E2\u961F\u300D\u7ED1\u5B9A\uFF09","team.skippedNoOwner":"{n} \u4E2A\u673A\u5668\u4EBA\u56E0\u8D1F\u8D23\u4EBA\u672A\u7ED1\u5B9A\u8EAB\u4EFD\u88AB\u8DF3\u8FC7\uFF08\u672A\u52A0\u5165\u7FA4\uFF09","team.errNoLocalBot":"\u8BF7\u81F3\u5C11\u52FE\u9009\u4E00\u4E2A\u4F60\u81EA\u5DF1\uFF08\u672C\u90E8\u7F72\uFF09\u7684\u5728\u7EBF\u673A\u5668\u4EBA\u2014\u2014\u7FA4\u8981\u7531\u5B83\u521B\u5EFA\u5E76\u628A\u4F60\uFF08\u53D1\u8D77\u4EBA\uFF09\u62C9\u8FDB\u7FA4\u3002","team.errAllSkipped":"\u6240\u9009\u673A\u5668\u4EBA\u7684\u8D1F\u8D23\u4EBA\u90FD\u6CA1\u7ED1\u5B9A\u8EAB\u4EFD\uFF0C\u65E0\u6CD5\u62C9\u7FA4\uFF08\u673A\u5668\u4EBA\u4E0D\u80FD\u8FDB\u4E00\u4E2A owner \u4E0D\u5728\u7684\u7FA4\uFF09\u3002\u8BF7\u8BA9\u5BF9\u5E94\u90E8\u7F72\u5148\u7ED1\u5B9A\u8EAB\u4EFD\u3002","team.errNoCreator":"\u6CA1\u6709\u53EF\u7528\u7684\u5EFA\u7FA4\u53D1\u8D77\u65B9\uFF08\u76F8\u5173\u90E8\u7F72\u90FD\u6CA1\u6709\u5728\u7EBF\u673A\u5668\u4EBA\uFF0C\u6216\u4E0D\u53EF\u8FBE\uFF09","team.errDelegationTimeout":"\u59D4\u6258\u5BF9\u65B9\u90E8\u7F72\u5EFA\u7FA4\u8D85\u65F6\uFF08\u53EF\u80FD\u5DF2\u5EFA\uFF0C\u53BB\u98DE\u4E66\u786E\u8BA4\uFF0C\u52FF\u91CD\u590D\u70B9\uFF09","team.errGroupCreate":"\u5EFA\u7FA4\u5931\u8D25\uFF1A{error}","team.roleModalTitleName":"\u9ED8\u8BA4\u89D2\u8272 \xB7 {name}","team.bound":"\u5DF2\u7ED1\u5B9A","team.myHostedTeam":"\u6211\u6258\u7BA1\u7684\u56E2\u961F","team.remoteTeamLabel":"{name} \u7684\u56E2\u961F","team.manageTitle":"\u56E2\u961F\u7BA1\u7406","team.manageLede":"\u521B\u5EFA\u591A\u4E2A\u56E2\u961F\u3001\u7ED9\u6BCF\u4E2A\u56E2\u961F\u751F\u6210\u9080\u8BF7\u7801\u3001\u6216\u52A0\u5165\u522B\u4EBA\u7684\u56E2\u961F\u3002\u4E00\u4E2A\u56E2\u961F = \u4F60\u672C\u90E8\u7F72\u7684\u673A\u5668\u4EBA + \u52A0\u5165\u8BE5\u56E2\u961F\u7684\u5176\u5B83\u90E8\u7F72\u3002","team.hostedTitle":"\u6211\u6258\u7BA1\u7684\u56E2\u961F","team.newTeamPh":"\u65B0\u56E2\u961F\u540D\u79F0","team.createTeamBtn":"\u521B\u5EFA\u56E2\u961F","team.joinTitle":"\u52A0\u5165\u522B\u4EBA\u7684\u56E2\u961F","team.hubPh":"Hub \u5730\u5740\uFF0C\u5982 http://10.0.0.5:7891","team.codePh":"\u9080\u8BF7\u7801","team.joinBtn":"\u52A0\u5165","team.noTeamsShort":"\u8FD8\u6CA1\u6709\u56E2\u961F\u3002","team.default":"\u9ED8\u8BA4","team.manageMetaDeps":"{count} \u4E2A\u90E8\u7F72","team.manageMetaRemote":"\uFF08\u542B {r} \u8FDC\u7AEF\uFF09","team.manageMetaBots":"{count} \u4E2A\u673A\u5668\u4EBA","team.genInvite":"\u751F\u6210\u9080\u8BF7\u7801","team.delBtn":"\u5220\u9664","team.generating":"\u751F\u6210\u4E2D\u2026","team.inviteResultLede":"\u628A\u4E0B\u9762\u4E24\u9879\u53D1\u7ED9\u522B\u7684\u90E8\u7F72\u7684\u4EBA\uFF0824 \u5C0F\u65F6\u5185\u3001\u5355\u6B21\u6709\u6548\uFF09\uFF1A","team.inviteHub":"Hub \u5730\u5740\uFF1A","team.inviteCode":"\u9080\u8BF7\u7801\uFF1A","team.genFail":"\u751F\u6210\u5931\u8D25\u3002","team.delConfirm":"\u5220\u9664\u56E2\u961F\u300C{name}\u300D\uFF1F\u5DF2\u52A0\u5165\u5B83\u7684\u90E8\u7F72\u4F1A\u88AB\u79FB\u9664\uFF08\u4E0D\u5F71\u54CD\u4ED6\u4EEC\u81EA\u5DF1\u7684\u90E8\u7F72\uFF09\u3002","team.errName":"\u8BF7\u586B\u56E2\u961F\u540D\u79F0","team.creating":"\u521B\u5EFA\u4E2D\u2026","team.created":"\u5DF2\u521B\u5EFA","team.createFail":"\u521B\u5EFA\u5931\u8D25\uFF1A{error}","team.errHubCode":"\u8BF7\u586B Hub \u5730\u5740\u548C\u9080\u8BF7\u7801\u3002","team.joining":"\u52A0\u5165\u4E2D\u2026","team.joined":"\u5DF2\u52A0\u5165\u300C{name}\u300D\uFF0C\u53BB\u300C\u6211\u7684\u56E2\u961F\u300D\u67E5\u770B\u3002","team.joinErrSelf":"\u8FD9\u662F\u4F60\u81EA\u5DF1\u7684\u90E8\u7F72\uFF0C\u4E0D\u80FD\u52A0\u5165\u81EA\u5DF1\uFF08\u9080\u8BF7\u7801\u8981\u53D1\u7ED9\u522B\u7684\u90E8\u7F72\u7684\u4EBA\u7528\uFF09","team.joinErrAlready":"\u4F60\u7684\u90E8\u7F72\u5DF2\u7ECF\u52A0\u5165\u8FC7\u8FD9\u4E2A\u56E2\u961F\u4E86","team.joinErrUnreachable":"\u8FDE\u4E0D\u4E0A\u5BF9\u65B9 Hub\uFF08\u68C0\u67E5\u5730\u5740/\u7F51\u7EDC\uFF09","team.joinErrTimeout":"\u5BF9\u65B9 Hub \u54CD\u5E94\u8D85\u65F6","team.joinErrGeneric":"\u52A0\u5165\u5931\u8D25\uFF1A{error}","team.identifying":"\u8BC6\u522B\u4E2D\u2026","team.bound2":"\u5DF2\u7ED1\u5B9A\uFF1A{name}","team.multiCandidate":"\u8BC6\u522B\u5230\u591A\u4E2A\u5019\u9009\uFF0C\u70B9\u4F60\u81EA\u5DF1\uFF1A","team.binding":"\u7ED1\u5B9A\u4E2D\u2026","team.bindFail":"\u7ED1\u5B9A\u5931\u8D25\uFF1A{error}","team.noCandidates":"\u6CA1\u8BC6\u522B\u5230\u8EAB\u4EFD\uFF1A\u8BF7\u786E\u8BA4\u673A\u5668\u4EBA\u914D\u7F6E\u4E86 allowedUsers\uFF08\u5141\u8BB8\u4F7F\u7528\u8005\uFF09\uFF0C\u4E14\u673A\u5668\u4EBA\u6709\u901A\u8BAF\u5F55\u6743\u9650\u3002","team.removeMemberConfirm":"\u628A\u300C{name}\u300D\u79FB\u51FA\u8FD9\u4E2A\u56E2\u961F\uFF1F\u5B83\u7684\u673A\u5668\u4EBA\u5C06\u4ECE\u672C\u56E2\u961F\u82B1\u540D\u518C\u6D88\u5931\uFF08\u4E0D\u5F71\u54CD\u5BF9\u65B9\u81EA\u5DF1\u7684\u90E8\u7F72\uFF09\u3002","team.creatingGroup":"\u5EFA\u7FA4\u4E2D\u2026","team.defaultGroupName":"\u534F\u4F5C\u7FA4","team.errPickBot":"\u8BF7\u5148\u52FE\u9009\u81F3\u5C11\u4E00\u4E2A\u673A\u5668\u4EBA","sessions.closeBulkConfirm":"\u5173\u95ED\u9009\u4E2D\u7684 {count} \u4E2A\u4F1A\u8BDD\uFF1F","sessions.empty":"\u6CA1\u6709\u7B26\u5408\u6761\u4EF6\u7684\u4F1A\u8BDD\u3002","sessions.viewMode":"\u4F1A\u8BDD\u89C6\u56FE","sessions.viewKanban":"\u770B\u677F","sessions.viewBoard":"\u72B6\u6001\u677F","sessions.viewTable":"\u8868\u683C","sessions.selectSession":"\u9009\u62E9\u4F1A\u8BDD","sessions.board.needsYou":"\u9700\u8981\u4F60","sessions.board.needsYouHint":"\u7B49\u5F85\u4ED3\u5E93\u3001TUI \u9009\u62E9\u6216\u989D\u5EA6\u5904\u7406","sessions.board.starting":"\u542F\u52A8\u4E2D","sessions.board.startingHint":"CLI \u6B63\u5728\u521B\u5EFA\u6216\u6062\u590D","sessions.board.working":"\u5E72\u6D3B\u4E2D","sessions.board.workingHint":"\u6B63\u5728\u8F93\u51FA\u3001\u5206\u6790\u6216\u6267\u884C\u5DE5\u5177","sessions.board.idle":"\u7A7A\u95F2","sessions.board.idleHint":"\u53EF\u7EE7\u7EED\u5BF9\u8BDD\u6216\u63A5\u65B0\u4EFB\u52A1","sessions.board.emptyColumn":"\u6682\u65E0\u4F1A\u8BDD","sessions.board.signalRepo":"\u5F85\u9009\u4ED3\u5E93","sessions.board.signalPrompt":"\u7B49\u5F85 TUI \u9009\u62E9","sessions.board.signalLimited":"\u989D\u5EA6\u53D7\u9650","sessions.board.signalAgent":"\u9700\u8981\u4EBA\u5DE5\u4ECB\u5165","sessions.board.waiting":"\u7B49\u5F85","sessions.board.dragHint":"\u62D6\u52A8\u5217\u5934\u8C03\u6574\u5217\u987A\u5E8F","sessions.board.moveLeft":"\u5DE6\u79FB\u6B64\u5217","sessions.board.moveRight":"\u53F3\u79FB\u6B64\u5217","sessions.kanban.backlog":"\u5F85\u529E\u6C60","sessions.kanban.todo":"\u5F85\u529E","sessions.kanban.inProgress":"\u8FDB\u884C\u4E2D","sessions.kanban.inReview":"\u5F85\u786E\u8BA4","sessions.kanban.done":"\u5DF2\u5B8C\u6210","sessions.kanban.updated":"\u66F4\u65B0\u4E8E {time}","sessions.kanban.moreHidden":"\u8FD8\u6709 {count} \u4E2A\u672A\u663E\u793A","sessions.create.button":"\u521B\u5EFA\u4F1A\u8BDD","sessions.create.title":"\u521B\u5EFA\u4F1A\u8BDD","sessions.create.content":"\u5185\u5BB9","sessions.create.contentPlaceholder":"\u63CF\u8FF0\u8981\u505A\u7684\u4E8B\uFF1BLead \u5206\u914D\u6A21\u5F0F\u4E0B\u53EF\u5728\u8FD9\u91CC\u7ED9\u5404 agent \u5206\u914D\u4E0D\u540C\u7684\u5DE5\u4F5C","sessions.create.bots":"\u673A\u5668\u4EBA\uFF08\u62C9\u8FDB\u65B0\u7FA4\uFF09","sessions.create.noBots":"\u6CA1\u6709\u5728\u7EBF\u7684\u673A\u5668\u4EBA\u53EF\u9009","sessions.create.mode":"\u534F\u4F5C\u6A21\u5F0F","sessions.create.modeAll":"\u4E00\u8D77\u5F00\u5DE5","sessions.create.modeLead":"Lead \u5206\u914D\uFF08\u63A8\u8350\uFF09","sessions.create.modeHelp":"\u4E00\u8D77\u5F00\u5DE5\uFF1A\u6BCF\u4E2A\u88AB\u9009\u673A\u5668\u4EBA\u5404\u8D77\u4E00\u6761\u4F1A\u8BDD\u3001\u62FF\u540C\u4E00\u4EFD\u5185\u5BB9\u3002Lead \u5206\u914D\uFF1A\u53EA\u8D77 lead\uFF0C\u7531\u5B83\u5728\u7FA4\u91CC @ \u62C9\u8D77\u5176\u5B83\u673A\u5668\u4EBA\u5E72\u6D3B\u3002","sessions.create.lead":"Lead \u673A\u5668\u4EBA","sessions.create.leadHelp":"\u5185\u5BB9\u4F1A\u53D1\u7ED9 lead\uFF0C\u7531\u5B83\u51B3\u5B9A\u4F55\u65F6\u62C9\u8D77\u54EA\u4E2A sub bot\u3002","sessions.create.leadPickFirst":"\u8BF7\u5148\u5728\u4E0A\u65B9\u52FE\u9009\u673A\u5668\u4EBA","sessions.create.column":"\u5165\u5217","sessions.create.columnInProgress":"\u76F4\u63A5\u8FDB\u884C\u4E2D","sessions.create.columnBacklog":"\u5F85\u529E\u6C60","sessions.create.columnHelp":"\u76F4\u63A5\u8FDB\u884C\u4E2D\uFF1A\u5EFA\u5B8C\u7FA4\u7ACB\u523B\u5F00\u8DD1\u3002\u5F85\u529E\u6C60\uFF1A\u5148\u5EFA\u7FA4+\u62C9\u673A\u5668\u4EBA\u4F46\u4E0D\u8D77 CLI\uFF0C\u4E4B\u540E\u62D6\u5230\u300C\u8FDB\u884C\u4E2D\u300D\u6216\u70B9\u300C\u5F00\u59CB\u300D\u518D\u53D1\u7ED9\u673A\u5668\u4EBA\u3002","sessions.create.advanced":"\u66F4\u591A\u9009\u9879","sessions.create.groupName":"\u7FA4\u540D\u79F0","sessions.create.groupNamePlaceholder":"\u7559\u7A7A\u5219\u53D6\u5185\u5BB9\u9996\u884C","sessions.create.workingDir":"\u5DE5\u4F5C\u76EE\u5F55","sessions.create.workingDirHelp":"\u53EF\u9009\u3002\u586B\u4E86\u5219\u628A\u65B0\u7FA4\u7ED1\u5B9A\u5230\u8BE5\u76EE\u5F55\uFF08\u6240\u6709\u673A\u5668\u4EBA\u90FD\u5728\u6B64\u76EE\u5F55\u5DE5\u4F5C\uFF09\u3002\u7559\u7A7A\u5219\u673A\u5668\u4EBA\u5728\u7FA4\u91CC\u5F39 /repo \u5361\u7247\u8BA9\u4F60\u9009\u4ED3\u5E93\uFF08\u652F\u6301\u65B0\u5EFA worktree\uFF09\u3002","sessions.create.submit":"\u521B\u5EFA","sessions.create.submitting":"\u521B\u5EFA\u4E2D\u2026","sessions.create.cancel":"\u53D6\u6D88","sessions.create.start":"\u5F00\u59CB","sessions.create.errContent":"\u8BF7\u586B\u5199\u5185\u5BB9","sessions.create.errNoBot":"\u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A\u673A\u5668\u4EBA","sessions.create.errLead":"Lead \u5FC5\u987B\u662F\u5DF2\u52FE\u9009\u7684\u673A\u5668\u4EBA\u4E4B\u4E00","sessions.create.failed":"\u521B\u5EFA\u5931\u8D25","sessions.create.startFailed":"\u5F00\u59CB\u5931\u8D25","sessions.create.doneTitle":"\u5DF2\u521B\u5EFA","sessions.create.doneInProgress":"\u5DF2\u5EFA\u7FA4\u5E76\u62C9\u8D77\u4F1A\u8BDD","sessions.create.doneBacklog":"\u5DF2\u5EFA\u7FA4\uFF0C\u4F1A\u8BDD\u5DF2\u5165\u5F85\u529E\u6C60","sessions.create.partialFail":"\u6709 {n} \u4E2A\u673A\u5668\u4EBA\u672A\u80FD\u62C9\u8D77\uFF0C\u53EF\u7A0D\u540E\u5728\u7FA4\u91CC @ \u91CD\u8BD5","sessions.create.openChat":"\u6253\u5F00\u98DE\u4E66\u7FA4","sessions.create.close":"\u5173\u95ED","sessions.kanban.openTab":"\u65B0\u6807\u7B7E\u9875\u6253\u5F00","sessions.kanban.openFeishu":"\u6253\u5F00\u98DE\u4E66","sessions.kanban.terminalLoading":"\u6B63\u5728\u6253\u5F00\u7EC8\u7AEF\u2026","sessions.kanban.rename":"\u91CD\u547D\u540D\uFF08\u53CC\u51FB\u6807\u9898\u4E5F\u53EF\uFF09","sessions.kanban.renameFail":"\u91CD\u547D\u540D\u5931\u8D25","sessions.kanban.moveFail":"\u79FB\u52A8\u5931\u8D25","sessions.kanban.groupBy":"\u5206\u7EC4\u7EF4\u5EA6","sessions.kanban.groupFlow":"\u5DE5\u4F5C\u6D41","sessions.kanban.groupTeam":"\u56E2\u961F","sessions.kanban.groupBot":"\u673A\u5668\u4EBA","sessions.kanban.teamLoading":"\u6B63\u5728\u52A0\u8F7D\u56E2\u961F\u2026","sessions.kanban.noTeam":"\u6682\u65E0\u56E2\u961F","sessions.kanban.teamScope":"{chats} \u4E2A\u534F\u4F5C\u7FA4 \xB7 {sessions} \u4E2A\u4F1A\u8BDD","sessions.kanban.remoteHint":"\u6765\u81EA {name} \u90E8\u7F72\u7684\u4F1A\u8BDD\uFF08\u5FEB\u7167\uFF0C\u7EC8\u7AEF/\u5386\u53F2\u5728\u5BF9\u65B9\u673A\u5668\u4E0A\uFF09","sessions.kanban.clusterDragHint":"\u62D6\u52A8\u6807\u9898\u6574\u7EC4\u79FB\u52A8","sessions.history.title":"\u4F1A\u8BDD\u5386\u53F2","sessions.history.loading":"\u6B63\u5728\u62C9\u53D6\u98DE\u4E66\u6D88\u606F\u2026","sessions.history.fail":"\u5386\u53F2\u62C9\u53D6\u5931\u8D25","sessions.history.empty":"\u6CA1\u6709\u6D88\u606F","sessions.history.user":"\u7528\u6237","sessions.history.owner":"\u521B\u5EFA\u8005","sessions.history.staleHint":"dashboard \u6216 daemon \u8FDB\u7A0B\u53EF\u80FD\u8FD8\u5728\u8DD1\u65E7\u7248\u672C\uFF0Cbotmux restart \u540E\u91CD\u8BD5","groups.title":"\u7FA4\u7EC4\u4E0E Bot","groups.subtitle":"\u67E5\u770B chat x bot \u8986\u76D6\u77E9\u9635\uFF0C\u7BA1\u7406\u62C9\u7FA4\u3001oncall\u3001\u9000\u7FA4\u548C\u89E3\u6563\u3002","groups.search":"\u641C\u7D22\u7FA4\u540D / ID / owner","groups.missingOnly":"\u4EC5\u7F3A bot","groups.refresh":"\u5237\u65B0","groups.create":"\u65B0\u5EFA\u7FA4","groups.chat":"\u7FA4\u804A","groups.actions":"\u64CD\u4F5C","groups.addBots":"\u6DFB\u52A0 bot","groups.saveAsProfile":"\u4FDD\u5B58\u4E3A Profile","groups.manage":"\u7BA1\u7406","groups.empty":"\u6CA1\u6709\u7B26\u5408\u6761\u4EF6\u7684\u7FA4\u804A\u3002","groups.profileStatusFull":"\u5B8C\u6574\u5339\u914D {name}\uFF08{matched}/{total}\uFF09","groups.profileStatusFullChat":"\u672C\u7FA4 Role \u5B8C\u6574\u5339\u914D {name}\uFF08{matched}/{total}\uFF09","groups.profileStatusPartial":"\u90E8\u5206\u5339\u914D {name}\uFF08{matched}/{total}\uFF09","groups.profileStatusUnmatched":"\u672A\u5339\u914D\u4EFB\u4F55 Profile","groups.saveProfileTitle":"\u4FDD\u5B58\u4E3A Profile","groups.saveProfileIntro":"\u5C06\u300C{name}\u300D\u91CC\u7684 {count} \u4E2A\u7FA4\u5185 bot \u914D\u7F6E\u4FDD\u5B58\u4E3A profile \u5FEB\u7167\u3002","groups.saveProfileScope":"\u4FDD\u5B58\u8303\u56F4","groups.saveProfileScopeHelp":"\u7FA4\u5185 bot \u914D\u7F6E\u5FEB\u7167","groups.saveProfileBotCount":"\u7FA4\u5185 bot","groups.saveProfileLoadFailed":"\u8BFB\u53D6\u5931\u8D25","groups.saveProfileStatus.entry":"\u751F\u6210 entry","groups.saveProfileStatus.error":"\u8BFB\u53D6\u5931\u8D25","groups.saveProfileMode":"\u4FDD\u5B58\u65B9\u5F0F","groups.saveProfileNew":"\u65B0\u5EFA Profile","groups.saveProfileNewHelp":"\u9ED8\u8BA4\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684\u5FEB\u7167\uFF1B\u5982\u679C id \u5DF2\u5B58\u5728\uFF0C\u4F1A\u8986\u76D6\u540C bot entry\u3002","groups.saveProfileOverwrite":"\u8986\u76D6\u5DF2\u6709 Profile","groups.saveProfileOverwriteHelp":"\u4ECE\u5217\u8868\u4E2D\u9009\u62E9\u4E00\u4E2A\u5DF2\u6709 profile\uFF0C\u8986\u76D6\u5176\u4E2D\u540C bot \u7684 entry\u3002","groups.saveProfileExistingMeta":"{count} \u4E2A entry","groups.saveProfileIdLabel":"Profile id","groups.saveProfileExistingLabel":"\u5DF2\u6709 Profile","groups.saveProfileExistingEmpty":"\u6682\u65E0\u5DF2\u6709 Profile","groups.saveProfileTarget":"\u76EE\u6807 Profile","groups.saveProfileTargetNew":"\u5C06\u65B0\u5EFA\u6216\u66F4\u65B0\u8FD9\u4E2A Profile \u7684\u7FA4\u5185 bot \u5FEB\u7167","groups.saveProfileTargetOverwrite":"\u5C06\u8986\u76D6\u5DF2\u6709 Profile \u4E2D\u8FD9\u4E9B bot \u7684 entry","groups.saveProfileEntrySummary":"\u5C06\u4E3A {count} \u4E2A\u7FA4\u5185 bot \u751F\u6210 profile entry\u3002","groups.saveProfileEntrySummaryWithEmpty":"\u5C06\u4E3A {count} \u4E2A\u7FA4\u5185 bot \u751F\u6210 profile entry\uFF1B\u5176\u4E2D {emptyCount} \u4E2A\u5F53\u524D\u672A\u8BFB\u5230 role \u5185\u5BB9\uFF0C\u4F1A\u4FDD\u5B58\u4E3A\u7A7A entry\u3002","groups.saveProfileFailedLoadSummary":"\u6709 {count} \u4E2A bot \u914D\u7F6E\u8BFB\u53D6\u5931\u8D25\uFF0C\u6682\u4E0D\u4FDD\u5B58\uFF0C\u907F\u514D\u751F\u6210\u4E0D\u5B8C\u6574\u5FEB\u7167\u3002","groups.saveProfileSubmit":"\u4FDD\u5B58 Profile","groups.saveProfileOverwriteSubmit":"\u8986\u76D6\u4FDD\u5B58","groups.saveProfileInvalid":"Profile id \u53EA\u80FD\u5305\u542B\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u70B9\u3001\u4E0B\u5212\u7EBF\u3001\u77ED\u6A2A\u7EBF\uFF0C\u6700\u957F 64\uFF0C\u4E14\u4E0D\u80FD\u662F . \u6216 ..","groups.saveProfileNoRoles":"\u8FD9\u4E2A\u7FA4\u91CC\u6CA1\u6709\u53EF\u4FDD\u5B58\u7684 bot \u914D\u7F6E\u3002","groups.saveProfileSaving":"\u4FDD\u5B58\u4E2D\u2026","groups.saveProfileDone":"\u5DF2\u4FDD\u5B58 {count} \u4E2A entry \u5230 {name}","groups.saveProfileFailed":"\u53EA\u4FDD\u5B58\u4E86 {saved}/{total} \u4E2A entry\uFF0C\u8BF7\u68C0\u67E5\u79BB\u7EBF bot \u6216\u6743\u9650\u3002","groups.createTitle":"\u65B0\u5EFA\u7FA4\u804A","groups.createHelp":"\u9009\u62E9\u8981\u9080\u8BF7\u7684 bot\u3002dashboard \u4F1A\u81EA\u52A8\u9009\u62E9\u5728\u7EBF daemon \u4F5C\u4E3A\u521B\u5EFA\u8005\u3002","groups.name":"\u7FA4\u540D","groups.namePlaceholder":"\u4F8B\u5982 AI ChangeLog","groups.bindDir":"\u7ED1\u5B9A\u76EE\u5F55","groups.bindDirHelp":"\u65B0\u8BDD\u9898\u76F4\u63A5\u7528\u8BE5\u76EE\u5F55\u542F\u52A8 CLI\uFF0C\u8DF3\u8FC7 repo \u9009\u62E9\u3002","groups.roleProfile":"Profile","groups.roleProfileNone":"\u4E0D\u4F7F\u7528","groups.roleProfileHelp":"\u521B\u5EFA\u540E\u5728\u65B0\u7FA4\u91CC\u53D1\u9001 profile apply bootstrap \u547D\u4EE4\u3002","groups.roleProfileBootstrapSent":"Profile\uFF1A{name}\uFF1Bbootstrap \u6D88\u606F\u5DF2\u53D1\u9001\uFF1A{messageId}","groups.roleProfileBootstrapDone":"Profile\uFF1A{name}\uFF1Bbootstrap \u5DF2\u5B8C\u6210\uFF0C\u65E0\u9700\u53D1\u9001 peer bootstrap \u6D88\u606F\u3002","groups.roleProfileBootstrapFailed":"Profile\uFF1A{name}\uFF1Bbootstrap \u5931\u8D25\uFF1A{reason}","groups.botPicker":"Bot","groups.createSubmit":"\u521B\u5EFA","groups.cancel":"\u53D6\u6D88","groups.successTitle":"\u7FA4\u521B\u5EFA\u6210\u529F","groups.openGroup":"\u6253\u5F00\u65B0\u7FA4","groups.manageTitle":"\u7BA1\u7406 {name}","groups.owner":"\u7FA4\u4E3B","groups.oncall":"Oncall \u6A21\u5F0F","groups.oncallHelp":"\u5F00\u542F\u540E\uFF0C\u7FA4\u5185\u6210\u5458\u53EF @ \u673A\u5668\u4EBA\uFF1B\u52FE\u9009\u7684 bot \u5728\u672C\u7FA4\u7684\u65B0\u8BDD\u9898\u76F4\u63A5\u4F7F\u7528\u5176\u7ED1\u5B9A\u76EE\u5F55\uFF08\u7ED1\u5B9A\u6309 bot \u8BA1\uFF0C\u53EA\u5F71\u54CD\u52FE\u9009\u7684 bot\uFF09\u3002","groups.leaveTitle":"\u9009\u62E9\u673A\u5668\u4EBA\u9000\u51FA\u7FA4\u804A","groups.leaveSelected":"\u9009\u4E2D\u673A\u5668\u4EBA\u9000\u51FA\u7FA4\u804A","groups.disband":"\u89E3\u6563\u7FA4\u804A","groups.dangerHint":"\u89E3\u6563\u4EC5\u5F53\u5728\u7FA4\u673A\u5668\u4EBA\u662F\u7FA4\u4E3B\u65F6\u624D\u4F1A\u6210\u529F\uFF0C\u5426\u5219\u5EFA\u8BAE\u4F7F\u7528\u9000\u51FA\u7FA4\u804A\u3002","groups.save":"\u4FDD\u5B58","groups.needWorkingDir":"\u8BF7\u586B\u5DE5\u4F5C\u76EE\u5F55","groups.noBotsOnline":"\u6CA1\u6709\u5728\u7EBF bot\u3002\u8BF7\u5148\u91CD\u542F daemon\u3002","schedules.title":"\u5B9A\u65F6\u4EFB\u52A1","schedules.subtitle":"\u8DE8 daemon \u67E5\u770B\u3001\u6682\u505C\u3001\u6062\u590D\u548C\u7ACB\u5373\u89E6\u53D1\u5B9A\u65F6\u4EFB\u52A1\u3002","schedules.search":"\u641C\u7D22\u540D\u79F0 / prompt / \u5DE5\u4F5C\u76EE\u5F55","schedules.anyKind":"\u5168\u90E8\u7C7B\u578B","schedules.enabledOnly":"\u4EC5\u542F\u7528","schedules.name":"\u540D\u79F0","schedules.bot":"bot","schedules.schedule":"\u89C4\u5219","schedules.next":"\u4E0B\u6B21","schedules.last":"\u4E0A\u6B21","schedules.repeat":"\u91CD\u590D","schedules.enabled":"\u542F\u7528","schedules.actions":"\u64CD\u4F5C","schedules.runNow":"\u7ACB\u5373\u8FD0\u884C","schedules.pause":"\u6682\u505C","schedules.resume":"\u6062\u590D","schedules.delivery":"\u6295\u9012","schedules.deliveryOrigin":"\u539F\u8BDD\u9898","schedules.deliveryNewTopic":"\u6BCF\u6B21\u65B0\u8BDD\u9898","schedules.deliveryLocal":"\u4EC5\u8BB0\u5F55","schedules.useNewTopic":"\u6539\u4E3A\u6BCF\u6B21\u65B0\u8BDD\u9898","schedules.useOrigin":"\u6539\u4E3A\u539F\u8BDD\u9898","schedules.empty":"\u6682\u65E0\u5B9A\u65F6\u4EFB\u52A1\u3002","settings.title":"\u5168\u5C40\u8BBE\u7F6E","settings.subtitle":"\u7BA1\u7406\u672C\u673A botmux dashboard \u4E0E\u6240\u6709 bot \u5171\u4EAB\u7684\u5168\u5C40\u884C\u4E3A\u3002","settings.loading":"\u6B63\u5728\u52A0\u8F7D\u8BBE\u7F6E\u2026","settings.loadFailed":"\u8BBE\u7F6E\u52A0\u8F7D\u5931\u8D25","settings.readOnlyVisitor":"\u5F53\u524D\u662F\u53EA\u8BFB\u8BBF\u95EE\uFF0C\u4FEE\u6539\u8BBE\u7F6E\u9700\u8981\u6388\u6743\u94FE\u63A5\uFF08\u8FD0\u884C botmux dashboard \u83B7\u53D6\uFF09","settings.sectionAccess":"\u8BBF\u95EE\u6743\u9650","settings.publicReadOnly":"\u5141\u8BB8\u65E0 token \u53EA\u8BFB\u8BBF\u95EE dashboard","settings.publicReadOnlyHelp":"\u5F00\u542F\u540E\uFF0C\u6CA1\u6709 token \u7684\u8BBF\u95EE\u8005\u53EF\u4EE5\u67E5\u770B dashboard\u3001\u4F1A\u8BDD\u3001\u5B9A\u65F6\u4EFB\u52A1\u548C SSE\uFF1B\u5173\u95ED\u3001\u6682\u505C\u3001\u5BA1\u6279\u7B49\u5199\u64CD\u4F5C\u4ECD\u5FC5\u987B\u901A\u8FC7 token \u9274\u6743\u3002\u654F\u611F\u7EC8\u7AEF\u539F\u59CB\u65E5\u5FD7\u59CB\u7EC8\u9700\u8981 token\u3002","settings.remoteAccess":"\u8FDC\u7A0B\u8BBF\u95EE\u7EC8\u7AEF","settings.remoteAccessHelp":"\u5F00\u542F\u540E\u4F1A\u8BDD Web \u7EC8\u7AEF /\u98DE\u4E66\u5361\u7247\u300C\u6253\u5F00\u7EC8\u7AEF\u300D/\u300C\u83B7\u53D6\u53EF\u64CD\u4F5C\u94FE\u63A5\u300D\u53CA webhook \u90FD\u8D70\u4E2D\u5FC3\u5316\u5E73\u53F0\u94FE\u63A5\uFF1B\u5173\u95ED\u5219\u7528\u672C\u5730\u94FE\u63A5\u3002\u9ED8\u8BA4\u5173\u95ED\u3002","settings.sectionCards":"\u98DE\u4E66\u5361\u7247","settings.openTerminalInFeishu":"\u6D41\u5F0F\u5361\u7247\u7EC8\u7AEF\u6309\u94AE\u5728\u98DE\u4E66\u4FA7\u680F\u6253\u5F00","settings.openTerminalInFeishuHelp":"\u9ED8\u8BA4\u5173\u95ED\uFF1A\u7EC8\u7AEF\u6309\u94AE\u76F4\u63A5\u6253\u5F00 Web Terminal URL\u3002\u5F00\u542F\u540E\u4F7F\u7528\u98DE\u4E66 web_url/open \u5305\u88C5\uFF0C\u5728\u98DE\u4E66 PC \u4FA7\u680F\u91CC\u6253\u5F00\uFF1B\u5199\u6743\u9650\u4ECD\u7531\u7EC8\u7AEF token \u63A7\u5236\u3002","settings.sectionExperimental":"\u5B9E\u9A8C\u6027\u914D\u7F6E","settings.chatBotDiscovery":"\u7FA4\u5185\u673A\u5668\u4EBA\u53D1\u73B0\uFF08\u98DE\u4E66 /members/bots\uFF09","settings.chatBotDiscoveryHelp":"\u5F00\u542F\u540E\u7528\u98DE\u4E66 /members/bots \u63A5\u53E3\u5B9E\u65F6\u8BFB\u53D6\u5F53\u524D\u7FA4\u91CC\u7684\u673A\u5668\u4EBA\u6210\u5458\uFF0C\u8BA9\u591A\u4E2A\u673A\u5668\u4EBA\u4E4B\u95F4\u80FD\u53EF\u9760\u5730\u4E92\u76F8 @\uFF08\u9996\u6761\u6D88\u606F\u5C31\u80FD\u8BC6\u522B\uFF0C\u65E0\u9700\u7B49\u5386\u53F2 @ \u8BB0\u5F55\u79EF\u7D2F\uFF09\uFF0C\u591A\u673A\u5668\u4EBA\u534F\u4F5C\u66F4\u7A33\u3002\u8BE5\u63A5\u53E3\u662F\u98DE\u4E66\u672A\u516C\u5F00 API\uFF1A\u9ED8\u8BA4\u5F00\u542F\uFF0C\u8C03\u7528\u5931\u8D25\u4F1A\u81EA\u52A8\u56DE\u9000\u5230\u65E7\u7684\u53D1\u73B0\u65B9\u5F0F\uFF08\u6309\u914D\u7F6E\u7684 bot \u9010\u4E2A\u63A2\u6D4B + \u5386\u53F2 @ \u8BB0\u5F55\uFF09\u3002\u4EC5\u5728\u4EE5\u4E0B\u60C5\u51B5\u9700\u8981\u5173\u95ED\u5B83\uFF08\u5F3A\u5236\u8D70\u65E7\u903B\u8F91\uFF09\uFF1A\u4F60\u7684\u79DF\u6237/\u7F51\u5173\u4E0D\u652F\u6301\u8BE5\u63A5\u53E3\u3001\u6216\u5B83\u8FD4\u56DE\u7684\u7FA4\u6210\u5458\u4E0D\u51C6\u5BFC\u81F4 @ \u9519\u4EBA/@ \u4E0D\u5230\u3001\u6216\u98DE\u4E66\u6539\u52A8\u8BE5\u63A5\u53E3\u540E\u884C\u4E3A\u5F02\u5E38\u3002","settings.sectionRepoPicker":"\u4ED3\u5E93\u9009\u62E9","settings.repoPickerMode":"\u4ED3\u5E93\u9009\u62E9\u5361\u6A21\u5F0F","settings.repoPickerModeAll":"\u4ED3\u5E93 + worktree","settings.repoPickerModeRepos":"\u4EC5\u4E3B\u4ED3\u5E93","settings.repoPickerModeHelp":"\u9ED8\u8BA4\u663E\u793A\u4ED3\u5E93\u548C linked worktree\u3002\u9009\u62E9\u300C\u4EC5\u4E3B\u4ED3\u5E93\u300D\u540E\uFF0C\u521D\u59CB\u5316\u548C\u88F8 /repo \u7684\u9009\u62E9\u5361\u53EA\u5217\u4E3B\u4ED3\u5E93\uFF1B\u663E\u5F0F /repo /abs/path/to/worktree \u4ECD\u53EF\u76F4\u8FBE worktree\u3002","settings.saving":"\u4FDD\u5B58\u4E2D\u2026","settings.saved":"\u5DF2\u4FDD\u5B58","settings.saveFailed":"\u4FDD\u5B58\u5931\u8D25","settings.sectionMaintenance":"\u81EA\u52A8\u7EF4\u62A4","settings.autoUpdate":"\u81EA\u52A8\u66F4\u65B0","settings.autoUpdateHelp":"\u9ED8\u8BA4\u5173\u95ED\u3002\u5230\u70B9\u6267\u884C npm install -g botmux@latest \u5B89\u88C5\u6700\u65B0\u7248\u672C\uFF08\u53EA\u4E0B\u8F7D\u5B89\u88C5\u3001\u672C\u8EAB\u4E0D\u91CD\u542F\uFF09\u3002\u4EC5 npm \u5168\u5C40\u5B89\u88C5\u53EF\u7528\u3002","settings.autoRestart":"\u81EA\u52A8\u91CD\u542F","settings.autoRestartHelp":"\u9ED8\u8BA4\u5173\u95ED\uFF0C\u9700\u5148\u5F00\u542F\u81EA\u52A8\u66F4\u65B0\u3002\u81EA\u52A8\u66F4\u65B0\u88C5\u5230\u65B0\u7248\u672C\u540E\uFF0C\u82E5\u6CA1\u6709\u8FDB\u884C\u4E2D\u7684\u4F1A\u8BDD\u5219\u81EA\u52A8\u91CD\u542F\u4EE5\u751F\u6548\uFF08\u649E\u4E0A\u5FD9\u788C\u4F1A\u8BDD\u5219\u8DF3\u5230\u6B21\u65E5\uFF09\u3002","settings.autoUpdateLocalDev":"\u5F53\u524D\u4E3A\u672C\u5730\u5F00\u53D1\u5B89\u88C5\uFF08\u4ECE\u6E90\u7801\u8FD0\u884C\uFF09\uFF0C\u81EA\u52A8\u66F4\u65B0\u4E0D\u53EF\u7528\u3002","settings.maintenanceTime":"\u65F6\u95F4","update.section":"\u7248\u672C\u4E0E\u66F4\u65B0","update.loginRequired":"\u767B\u5F55\u540E\u53EF\u68C0\u67E5\u7248\u672C\u3001\u6267\u884C\u66F4\u65B0\u6216\u91CD\u542F\u3002","update.loading":"\u68C0\u67E5\u4E2D\u2026","update.checkFailed":"\u68C0\u67E5\u5931\u8D25","update.current":"\u5F53\u524D\u7248\u672C","update.upToDate":"\u5DF2\u662F\u6700\u65B0\u7248\u672C","update.newAvailable":"\u53D1\u73B0\u65B0\u7248\u672C {version}","update.checkUnavailable":"\u65E0\u6CD5\u83B7\u53D6\u6700\u65B0\u7248\u672C\uFF08\u79BB\u7EBF\u6216\u53D7\u7F51\u7EDC\u9650\u5236\uFF09","update.nodeWarn":"\u5F53\u524D Node \u7248\u672C {version} \u8FC7\u4F4E\uFF0C\u66F4\u65B0\u8981\u6C42 \u2265 {required}\uFF0C\u8BF7\u5148\u5347\u7EA7 Node\u3002","update.localDev":"\u5F53\u524D\u4E3A\u672C\u5730\u5F00\u53D1\u5B89\u88C5\uFF08\u4ECE\u6E90\u7801\u8FD0\u884C\uFF09\uFF0C\u300C\u66F4\u65B0\u5230\u6700\u65B0\u7248\u300D\u4E0D\u53EF\u7528\uFF1B\u8BF7\u7528 git pull + \u6784\u5EFA\u540E\u91CD\u542F\u3002","update.multiInstallWarn":"\u68C0\u6D4B\u5230\u591A\u4E2A botmux \u5B89\u88C5\uFF0Cnpm \u66F4\u65B0\u53EA\u4F1A\u66F4\u65B0 npm \u5168\u5C40\u90A3\u4E2A\uFF0C\u53EF\u80FD\u4E0D\u662F\u5F53\u524D\u751F\u6548\u7684\u7248\u672C\uFF1A","update.kindNpm":"npm \u5168\u5C40","update.kindSource":"\u6E90\u7801 checkout","update.kindUnknown":"\u672A\u77E5","update.btnCheck":"\u68C0\u67E5\u66F4\u65B0","update.btnChangelog":"\u67E5\u770B\u66F4\u65B0\u5185\u5BB9","update.btnChangelogHide":"\u6536\u8D77\u66F4\u65B0\u5185\u5BB9","update.btnUpdate":"\u66F4\u65B0\u5230\u6700\u65B0\u7248","update.btnRestart":"\u91CD\u542F botmux","update.changelogLoading":"\u52A0\u8F7D\u66F4\u65B0\u5185\u5BB9\u2026","update.changelogEmpty":"\u6CA1\u6709\u6BD4\u5F53\u524D\u7248\u672C\u66F4\u65B0\u7684\u53D1\u5E03\u8BF4\u660E\u3002","update.changelogFailed":"\u65E0\u6CD5\u52A0\u8F7D\u66F4\u65B0\u5185\u5BB9\uFF08\u79BB\u7EBF\u6216\u53D7\u7F51\u7EDC\u9650\u5236\uFF09\u3002","update.changelogRateLimited":"GitHub \u63A5\u53E3\u8BF7\u6C42\u8D85\u9650\uFF08\u672A\u767B\u5F55\u6BCF\u5C0F\u65F6\u6BCF IP 60 \u6B21\uFF0C\u5171\u4EAB\u7F51\u7EDC\u6613\u89E6\u53D1\uFF09\uFF0C\u6682\u65F6\u62FF\u4E0D\u5230\u66F4\u65B0\u5185\u5BB9\u3002","update.changelogViewOnGitHub":"\u524D\u5F80 GitHub Releases \u67E5\u770B","update.navBadgeTitle":"\u6709\u65B0\u7248\u672C {version}","update.confirmMultiInstall":`\u68C0\u6D4B\u5230\u591A\u4E2A botmux \u5B89\u88C5\uFF1A
|
|
2
|
+
{paths}
|
|
3
|
+
|
|
4
|
+
npm \u66F4\u65B0\u53EA\u4F1A\u66F4\u65B0 npm \u5168\u5C40\u90A3\u4E2A\uFF0C\u53EF\u80FD\u4E0D\u662F\u5F53\u524D\u751F\u6548\u7684\u7248\u672C\u3002\u4ECD\u8981\u7EE7\u7EED\uFF1F`,"update.confirmUpdate":"\u5C06\u8FD0\u884C npm install -g botmux@latest\uFF0C\u66F4\u65B0\u5230 {version}\u3002\u786E\u8BA4\u7EE7\u7EED\uFF1F","update.confirmUpdateNoVer":"\u5C06\u8FD0\u884C npm install -g botmux@latest \u66F4\u65B0\u5230\u6700\u65B0\u7248\u3002\u786E\u8BA4\u7EE7\u7EED\uFF1F","update.nodeTooOldAlert":"\u5F53\u524D Node \u7248\u672C {version} \u8FC7\u4F4E\uFF08\u8981\u6C42 \u2265 {required}\uFF09\uFF0C\u8BF7\u5148\u5347\u7EA7 Node \u518D\u66F4\u65B0\u3002","update.updating":"\u6B63\u5728\u66F4\u65B0\uFF08npm install -g botmux@latest\uFF09\uFF0C\u8BF7\u7A0D\u5019\u2026","update.updatedChanged":"\u5DF2\u66F4\u65B0 {old} \u2192 {new}\u3002","update.confirmRestart":"\u9700\u8981\u91CD\u542F botmux \u4EE5\u5E94\u7528\u65B0\u7248\u672C\u3002\u73B0\u5728\u91CD\u542F\uFF1F\uFF08\u6240\u6709\u4F1A\u8BDD\u4F1A\u51B7\u6062\u590D\uFF0C\u4EEA\u8868\u76D8\u4F1A\u77ED\u6682\u65AD\u5F00\u5E76\u81EA\u52A8\u91CD\u8FDE\uFF09","update.alreadyLatestRun":"\u5DF2\u662F\u6700\u65B0\u7248\u672C\uFF08{version}\uFF09\uFF0C\u65E0\u9700\u66F4\u65B0\u3002","update.updateFailed":"\u66F4\u65B0\u5931\u8D25\uFF1A{detail}","update.noRestartHint":"\u66F4\u65B0\u5B8C\u6210\u3002\u7A0D\u540E\u8BF7\u624B\u52A8\u91CD\u542F\uFF08botmux restart\uFF09\u4EE5\u5E94\u7528\u65B0\u7248\u672C\u3002","update.confirmPlainRestart":"\u91CD\u542F botmux\uFF1F\u6240\u6709\u4F1A\u8BDD\u4F1A\u51B7\u6062\u590D\uFF0C\u4EEA\u8868\u76D8\u4F1A\u77ED\u6682\u65AD\u5F00\u5E76\u81EA\u52A8\u91CD\u8FDE\u3002","update.restarting":"\u6B63\u5728\u91CD\u542F botmux\uFF0C\u7B49\u5F85\u91CD\u8FDE\u2026","update.restartSlow":"\u91CD\u542F\u8017\u65F6\u8F83\u957F\uFF0C\u8BF7\u7A0D\u540E\u624B\u52A8\u5237\u65B0\u9875\u9762\u3002","update.restartFailed":"\u91CD\u542F\u5931\u8D25\uFF1A{detail}","skills.title":"Skill \u7BA1\u7406","skills.subtitle":"\u7BA1\u7406 botmux \u7684 CLI \u65E0\u5173 Skill \u8D44\u4EA7\uFF0C\u5E76\u6309 bot \u9009\u62E9\u4F18\u5148\u62AB\u9732\u3002","skills.installed":"\u5DF2\u5B89\u88C5 Skills","skills.installedHelp":"\u672C\u673A registry \u4E2D\u53EF\u88AB bot \u4F18\u5148\u62AB\u9732\u7684 Skill \u8D44\u4EA7\u3002","skills.overviewTitle":"\u6309 Bot \u7EC4\u7EC7 Skill \u8D44\u4EA7","skills.overviewBody":"\u5168\u5C40 Skill \u6CE8\u5165\u914D\u7F6E\u63A7\u5236\u4F1A\u8BDD\u6CE8\u5165\u7B56\u7565\uFF1B\u6BCF\u4E2A bot \u53EA\u7EF4\u62A4\u81EA\u5DF1\u7684\u4F18\u5148\u62AB\u9732\u5217\u8868\u3002","skills.metricInstalled":"\u5DF2\u5B89\u88C5 Skills","skills.metricBots":"\u5DF2\u914D\u7F6E Bot","skills.metricAttached":"\u4F18\u5148\u5F15\u7528","skills.install":"\u5B89\u88C5 Skill","skills.installInfoLabel":"\u5B89\u88C5\u4F4D\u7F6E\u8BF4\u660E","skills.installInfo":`\u6CE8\u518C: ~/.botmux/skills/registry.json
|
|
5
|
+
\u5B89\u88C5: ~/.botmux/skills/store/\u6280\u80FD\u540D\uFF1BGit \u7F13\u5B58: ~/.botmux/skills/sources
|
|
6
|
+
\u9694\u79BB: \u4E0D\u5199\u5165 Codex/Claude \u5168\u5C40\u76EE\u5F55\uFF1B\u672C\u673A CLI Skill \u76F4\u63A5\u5F15\u7528\u539F\u5730\u5740`,"skills.source":"\u5BFC\u5165\u5730\u5740","skills.sourcePlaceholder":"\u7C98\u8D34 GitHub Skill \u9875\u9762\u3001Git URL \u6216\u672C\u673A Skill \u76EE\u5F55","skills.sourceHelpRemoteLabel":"GitHub / Git: ","skills.sourceHelpRemote":"\u53EF\u7C98\u8D34 Skill \u76EE\u5F55\u9875\u9762\u6216\u4ED3\u5E93\u5730\u5740\uFF1B\u4ED3\u5E93\u5730\u5740\u9700\u586B\u5199\u4ED3\u5E93\u5185\u8DEF\u5F84\u3002","skills.sourceHelpLocalLabel":"\u672C\u673A CLI Skill \u76EE\u5F55: ","skills.sourceHelpLocal":"\u76F4\u63A5\u5F15\u7528\u539F\u5730\u5740\uFF0C\u4E0D\u590D\u5236\u5230 botmux store\u3002","skills.discover":"\u53D1\u73B0 Skill","skills.discoverTitle":"\u53D1\u73B0\u672C\u673A CLI Skill","skills.discoverHelp":"\u626B\u63CF\u5F53\u524D\u90E8\u7F72\u4E2D\u5DF2\u914D\u7F6E bot \u5BF9\u5E94\u7684 CLI Skill \u76EE\u5F55\uFF1B\u9009\u4E2D\u540E\u6CE8\u518C\u4E3A\u672C\u5730\u5F15\u7528\uFF0C\u4E0D\u590D\u5236\u6587\u4EF6\u3002","skills.discoverEmpty":"\u6CA1\u6709\u5728\u672C\u673A CLI skill \u76EE\u5F55\u4E2D\u53D1\u73B0\u53EF\u6CE8\u518C\u7684 Skill\u3002","skills.discoverGroupEmpty":"\u8FD9\u4E2A CLI \u76EE\u5F55\u4E0B\u6CA1\u6709\u53EF\u6CE8\u518C\u7684 Skill\u3002","skills.discoverRegistered":"\u5DF2\u6CE8\u518C","skills.discoverSelectAll":"\u5168\u9009\u672A\u6CE8\u518C","skills.discoverClearSelection":"\u53D6\u6D88\u5168\u9009","skills.discoverRegister":"\u6CE8\u518C\u9009\u4E2D","skills.discoverClose":"\u5173\u95ED","skills.discoverNothingSelected":"\u8BF7\u9009\u62E9\u81F3\u5C11\u4E00\u4E2A\u672A\u6CE8\u518C\u7684 Skill\u3002","skills.discoverRegisteringBatch":"\u6B63\u5728\u6279\u91CF\u6CE8\u518C {total} \u4E2A Skill","skills.sourceCodex":"\u672C\u673A Codex","skills.sourceClaude":"\u672C\u673A Claude","skills.sourceTrae":"\u672C\u673A Trae","skills.sourceCursor":"\u672C\u673A Cursor","skills.sourceGemini":"\u672C\u673A Gemini","skills.sourceOpenCode":"\u672C\u673A OpenCode","skills.sourceLocalLink":"\u672C\u673A\u5F15\u7528","skills.sourceBotmuxCopy":"botmux store","skills.path":"\u4ED3\u5E93\u5185\u8DEF\u5F84\uFF08\u53EF\u9009\uFF09","skills.pathPlaceholder":"\u7559\u7A7A\u5219\u4F7F\u7528 GitHub URL \u4E2D\u7684\u8DEF\u5F84","skills.ref":"Ref\uFF08\u53EF\u9009\uFF09","skills.refPlaceholder":"\u7559\u7A7A\u5219\u4F7F\u7528 GitHub URL \u4E2D\u7684\u5206\u652F\u6216\u9ED8\u8BA4 HEAD","skills.link":"\u672C\u5730\u94FE\u63A5\uFF08\u4E0D\u590D\u5236\uFF09","skills.installSubmit":"\u5B89\u88C5","skills.update":"\u66F4\u65B0","skills.remove":"\u5220\u9664","skills.pageStatus":"{page} / {pages}","skills.prevPage":"\u4E0A\u4E00\u9875","skills.nextPage":"\u4E0B\u4E00\u9875","skills.empty":"\u6682\u65E0\u5DF2\u5B89\u88C5 skill\u3002\u53EF\u4EE5\u4ECE\u672C\u673A\u76EE\u5F55\u3001Git \u6216 GitHub \u5B89\u88C5\u3002","skills.apiUnavailable":"\u5F53\u524D Dashboard \u540E\u7AEF\u4E0D\u652F\u6301 Skill API\uFF0C\u901A\u5E38\u662F\u524D\u7AEF\u5DF2\u66F4\u65B0\u4F46 botmux \u8FDB\u7A0B\u672A\u91CD\u542F\u3002\u8BF7\u91CD\u542F botmux \u540E\u5237\u65B0\u9875\u9762\u3002","skills.globalDefaults":"\u5168\u5C40 Skill \u6CE8\u5165\u914D\u7F6E","skills.globalProject":"\u5DE5\u4F5C\u533A Skill","skills.globalProjectOff":"\u5FFD\u7565\u5DE5\u4F5C\u533A Skill","skills.globalProjectOffHelp":"\u4EC5\u8BFB\u53D6\u5168\u5C40 CLI Skill \u548C botmux Skill","skills.globalProjectAll":"\u8BFB\u53D6\u5DE5\u4F5C\u533A Skill","skills.globalProjectAllHelp":`\u8BFB\u53D6 .agents/skills \u4E0E
|
|
7
|
+
.botmux/skills`,"skills.globalDelivery":"Skill \u6CE8\u5165\u65B9\u5F0F","skills.bots":"Bot Skill \u914D\u7F6E","skills.botsHelp":"\u4E3A\u6BCF\u4E2A bot \u9009\u62E9\u6700\u9700\u8981\u4F18\u5148\u62AB\u9732\u7684 Skill\u3002","skills.botCount":"{count} \u4E2A Bot","skills.scrollBotsPrev":"\u5411\u5DE6\u67E5\u770B Bot","skills.scrollBotsNext":"\u5411\u53F3\u67E5\u770B Bot","skills.skillCount":"{count} \u4E2A Skill","skills.attach":"\u52A0\u5165\u4F18\u5148\u62AB\u9732","skills.detach":"\u79FB\u9664","skills.detachNamed":"\u79FB\u9664 {skill}","skills.delivery":"\u6CE8\u5165\u65B9\u5F0F","skills.deliveryAuto":"\u81EA\u52A8","skills.deliveryAutoHelp":"\u4F18\u5148\u7528 CLI \u539F\u751F\u901A\u9053\uFF1B\u4E0D\u652F\u6301\u65F6\u81EA\u52A8\u6539\u7528\u63D0\u793A\u8BCD\u6CE8\u5165","skills.deliveryPrompt":"\u63D0\u793A\u8BCD","skills.deliveryPromptHelp":"\u628A Skill \u6E05\u5355\u5199\u5165\u4F1A\u8BDD\u63D0\u793A\u8BCD\uFF0C\u517C\u5BB9\u6240\u6709 CLI","skills.deliveryNative":"\u539F\u751F","skills.deliveryNativeHelp":"\u53EA\u4EA4\u7ED9 CLI \u81EA\u5DF1\u7684 Skill \u673A\u5236\uFF0C\u4E0D\u505A\u63D0\u793A\u8BCD\u515C\u5E95","skills.projectMode":"\u5DE5\u4F5C\u533A Skills","skills.projectDefault":"\u8DDF\u968F\u5168\u5C40","skills.projectDefaultHelp":"\u4F7F\u7528\u5DE6\u4FA7\u9879\u76EE Skill \u9ED8\u8BA4\u503C","skills.projectOff":"\u4E0D\u8BFB\u53D6","skills.projectOffHelp":"\u8FD9\u4E2A bot \u4E0D\u8BFB\u53D6\u5DE5\u4F5C\u533A skill","skills.projectAll":"\u8BFB\u53D6","skills.projectAllHelp":"\u8FD9\u4E2A bot \u52A0\u5165\u5DE5\u4F5C\u533A skill \u5019\u9009","skills.priority":"\u4F18\u5148 skills","skills.noPriority":"\u672A\u914D\u7F6E\uFF0C\u4FDD\u6301 CLI \u9ED8\u8BA4\u884C\u4E3A","skills.dangling":"\u672A\u5B89\u88C5","skills.removeInUse":'Skill "{skill}" \u4ECD\u88AB\u4EE5\u4E0B\u914D\u7F6E\u5F15\u7528\uFF1A{refs}\u3002\u5220\u9664\u53EA\u4F1A\u79FB\u9664 registry \u6587\u4EF6\uFF0C\u4E0D\u4F1A\u81EA\u52A8\u6E05\u7406\u5F15\u7528\u3002\u7EE7\u7EED\u5220\u9664\uFF1F',"skills.saved":"\u5DF2\u4FDD\u5B58","skills.failed":"\u5931\u8D25","skills.jobRunning":"\u5904\u7406\u4E2D...","skills.refresh":"\u5237\u65B0","botDefaults.title":"\u6570\u5B57\u5458\u5DE5\u6863\u6848","botDefaults.subtitle":"\u6BCF\u4F4D\u5458\u5DE5\u7684\u9ED8\u8BA4\u884C\u4E3A\uFF1Aoncall\u3001\u4E3B\u52A8\u5F00\u5DE5\u3001\u4EBA\u8BBE\u89D2\u8272\u3001\u5361\u7247\u4E0E\u6388\u6743\u3002","botDefaults.metaOnline":"\u5728\u7EBF \xB7 daemon \u6B63\u5E38","botDefaults.search":"\u641C\u7D22 bot \u540D / app id","botDefaults.refresh":"\u5237\u65B0","botDefaults.sectionOncall":"\u65B0\u7FA4 Oncall","botDefaults.sectionBrand":"\u5361\u7247\u7B7E\u540D","botDefaults.sectionAgent":"CLI / \u6A21\u578B","botDefaults.agentCli":"CLI","botDefaults.agentModel":"\u6A21\u578B","botDefaults.agentModelPlaceholder":"\u7559\u7A7A\u4F7F\u7528\u8BE5 CLI \u9ED8\u8BA4\u6A21\u578B","botDefaults.agentHelp":"\u6539\u52A8\u53EA\u5F71\u54CD\u65B0\u521B\u5EFA\u7684\u4F1A\u8BDD\uFF1B\u5DF2\u6709\u4F1A\u8BDD\u4F1A\u7EE7\u7EED\u4F7F\u7528\u521B\u5EFA\u65F6\u7684 CLI / \u6A21\u578B\u3002\u82E5\u8981\u8BA9\u65E7\u5BF9\u8BDD\u4F7F\u7528\u65B0\u914D\u7F6E\uFF0C\u8BF7\u5173\u95ED\u540E\u91CD\u65B0\u5F00\u59CB\u3002","botDefaults.agentSave":"\u4FDD\u5B58 CLI / \u6A21\u578B","botDefaults.agentSaved":"\u5DF2\u4FDD\u5B58\uFF08\u4E0B\u4E2A\u65B0\u4F1A\u8BDD\u751F\u6548\uFF09","botDefaults.warning":"\u5F00\u542F\u540E\uFF0C\u6CA1\u6709 oncall binding \u7684\u7FA4\u4F1A\u5728\u4E0B\u6B21\u5F00\u65B0\u8BDD\u9898\u65F6\u81EA\u52A8\u7ED1\u5B9A\u5230\u8BE5\u76EE\u5F55\uFF1B\u624B\u52A8\u7ED1\u5B9A\u6216\u624B\u52A8\u89E3\u7ED1\u8FC7\u7684\u7FA4\u4E0D\u4F1A\u88AB\u8986\u76D6\u3002","botDefaults.empty":"\u6CA1\u6709\u5728\u7EBF bot\u3002\u5148 botmux restart \u8BA9 daemon \u4E0A\u7EBF\u3002","botDefaults.defaultOncall":"\u9ED8\u8BA4\u8FDB\u5165 oncall \u6A21\u5F0F","botDefaults.defaultOncallHelp":"\u6240\u6709\u672A\u7ED1\u5B9A\u7684\u7FA4\u4E0B\u6B21\u5F00\u8BDD\u9898\u81EA\u52A8\u7ED1\u5B9A","botDefaults.workingDir":"\u9ED8\u8BA4\u5DE5\u4F5C\u76EE\u5F55","botDefaults.lastEnabled":"\u4E0A\u6B21\u542F\u7528\u65F6\u95F4","botDefaults.autobound":"\u5DF2\u81EA\u52A8\u7ED1\u5B9A {count} \u4E2A\u7FA4","botDefaults.save":"\u4FDD\u5B58","botDefaults.required":"\u9009\u62E9\u300C\u4EC5\u9ED8\u8BA4\u76EE\u5F55\u300D\u6216\u300COncall \u6A21\u5F0F\u300D\u65F6\u5FC5\u987B\u586B\u5DE5\u4F5C\u76EE\u5F55","botDefaults.sectionWorkingDir":"\u9ED8\u8BA4\u5DE5\u4F5C\u76EE\u5F55","botDefaults.workingDirMode":"\u6A21\u5F0F","botDefaults.workingDirField":"\u76EE\u5F55","botDefaults.workingDirModeOff":"\u5173\u95ED\uFF08\u65B0\u4F1A\u8BDD\u5F39\u300C\u9009\u4ED3\u5E93\u300D\u5361\uFF09","botDefaults.workingDirModeDefault":"\u4EC5\u9ED8\u8BA4\u76EE\u5F55\uFF08\u4E0D\u6539\u6743\u9650\uFF09","botDefaults.workingDirModeOncall":"Oncall \u6A21\u5F0F\uFF08\u7FA4\u5185\u5F00\u653E\u5BF9\u8BDD\uFF09","botDefaults.workingDirModeHelp":"\u8BE5 bot \u65B0\u4F1A\u8BDD\u9ED8\u8BA4\u5728\u54EA\u4E2A\u76EE\u5F55\u542F\u52A8\uFF0C\u4E09\u9009\u4E00\uFF08\u4E92\u65A5\uFF09\uFF1A\u300C\u5173\u95ED\u300D\uFF1D\u4E0D\u9489\u76EE\u5F55\uFF0C\u65B0\u4F1A\u8BDD\u5F39\u300C\u9009\u4ED3\u5E93\u300D\u5361\uFF1B\u300C\u4EC5\u9ED8\u8BA4\u76EE\u5F55\u300D\uFF1D\u6240\u6709\u65B0\u4F1A\u8BDD\uFF08\u542B\u79C1\u804A/\u8BDD\u9898\uFF09\u76F4\u63A5\u8FDB\u8BE5\u76EE\u5F55\u3001\u8DF3\u8FC7\u9009\u4ED3\u5E93\u5361\uFF0C\u4E0D\u6539\u4EFB\u4F55\u6743\u9650\uFF08\u79C1\u6709 bot \u7528\uFF09\uFF1B\u300COncall \u6A21\u5F0F\u300D\uFF1D\u5728\u300C\u4EC5\u9ED8\u8BA4\u76EE\u5F55\u300D\u57FA\u7840\u4E0A\uFF0C\u989D\u5916\u628A\u65B0\u8FDB\u7684\u666E\u901A\u7FA4\u81EA\u52A8\u7ED1\u5B9A\u4E3A oncall\uFF08\u7FA4\u91CC\u4EFB\u4F55\u4EBA\u90FD\u80FD\u8DDF bot \u5BF9\u8BDD\uFF1B\u6309\u94AE/\u547D\u4EE4\u7B49\u5199\u64CD\u4F5C\u4ECD\u53EA\u9650 allowedUsers\uFF09\uFF0C\u9002\u5408\u503C\u73ED/\u5BF9\u5916\u652F\u6301\u3002\u6539\u540E\u4E0B\u4E2A\u65B0\u4F1A\u8BDD\u751F\u6548\uFF0C\u8FD0\u884C\u4E2D\u7684\u4F1A\u8BDD\u9700 /restart\u3002","botDefaults.workingDirSaved":"\u5DF2\u4FDD\u5B58\uFF08\u4E0B\u4E2A\u65B0\u4F1A\u8BDD\u751F\u6548\uFF09","botDefaults.brandLabel":"\u4E2A\u6027\u7B7E\u540D\uFF08\u5361\u7247\u9875\u811A\uFF09","botDefaults.brandLabelHelp":"\u8BE5 bot \u53D1\u51FA\u7684\u5361\u7247\u9875\u811A\u7B7E\u540D\u3002\u7559\u7A7A\u4FDD\u5B58\uFF1D\u4E0D\u663E\u793A\uFF1B\u586B\u5199\uFF1D\u81EA\u5B9A\u4E49\uFF08\u652F\u6301 markdown\uFF0C\u5982 [Acme](https://\u2026)\uFF09\uFF1B\u6062\u590D\u9ED8\u8BA4\uFF1D\u663E\u793A botmux\u3002","botDefaults.brandLabelPlaceholder":"\u9ED8\u8BA4\uFF1Abotmux\uFF08\u7559\u7A7A\u5219\u4E0D\u663E\u793A\uFF09","botDefaults.sectionSandbox":"\u6587\u4EF6\u6C99\u76D2\uFF08oncall\uFF09","botDefaults.sandboxToggle":"\u5F00\u542F\u6587\u4EF6\u6C99\u76D2","botDefaults.sandboxHelp":"\u5F00\u542F\u540E\uFF0C\u8BE5 bot \u7684\u6BCF\u4E2A\u4F1A\u8BDD\u90FD\u8DD1\u5728\u6309\u4F1A\u8BDD\u9694\u79BB\u7684\u6C99\u76D2\u91CC\uFF1A\u53EA\u770B\u5F97\u5230\u4E00\u4EFD\u9879\u76EE\u526F\u672C\uFF0C\u78B0\u4E0D\u5230\u4F60\u78C1\u76D8\u4E0A\u7684\u771F\u5B9E\u6587\u4EF6\u3001\u5BC6\u94A5\u3001\u522B\u7684\u4F1A\u8BDD\u6570\u636E\u3002\u9002\u5408\u628A\u673A\u5668\u4EBA\u5206\u4EAB\u7ED9\u534A\u53D7\u4FE1\u4EFB\u7684\u4EBA\uFF08oncall\uFF09\u3002\u4EC5 Linux \u751F\u6548\uFF0C\u4E0B\u4E2A\u65B0\u4F1A\u8BDD\u8D77\u6548\u3002","botDefaults.sandboxSaved":"\u5DF2\u4FDD\u5B58\uFF08\u4E0B\u4E2A\u65B0\u4F1A\u8BDD\u751F\u6548\uFF09","botDefaults.brandSave":"\u4FDD\u5B58\u7B7E\u540D","botDefaults.brandReset":"\u6062\u590D\u9ED8\u8BA4","botDefaults.brandStateDefault":"\u5F53\u524D\uFF1A\u9ED8\u8BA4 botmux","botDefaults.brandStateOff":"\u5F53\u524D\uFF1A\u5DF2\u5173\u95ED","botDefaults.brandStateCustom":"\u5F53\u524D\uFF1A\u81EA\u5B9A\u4E49","botDefaults.sectionCard":"\u5361\u7247\u884C\u4E3A","botDefaults.disableStreaming":"\u5173\u95ED\u98DE\u4E66\u6D41\u5F0F\u5361\u7247","botDefaults.disableStreamingHelp":"\u4E0D\u518D\u53D1\u5B9E\u65F6\u5237\u65B0\u7684\u4F1A\u8BDD\u72B6\u6001\u5361\uFF08\u542B\u300C\u6253\u5F00\u7EC8\u7AEF\u300D\u5165\u53E3\uFF09\uFF1B\u4EFB\u52A1\u6700\u7EC8\u7ED3\u679C\u4ECD\u901A\u8FC7\u6D88\u606F\u9001\u8FBE\u3002\u9002\u5408\u5ACC\u6D41\u5F0F\u5361\u7247\u70E6\u7684\u573A\u666F\u3002","botDefaults.silentTurnReactions":"\u5173\u95ED\u65E0\u5361\u7247\u6A21\u5F0F\u4E0B\u7684\u72B6\u6001 reaction","botDefaults.silentTurnReactionsHelp":"\u5173\u95ED\u6D41\u5F0F\u5361\u7247\u540E\uFF0Cbotmux \u4F1A\u7528 \u270B\u2192\u2705 \u8FD9\u7C7B\u8F7B\u91CF reaction \u7ED9\u89E6\u53D1\u6D88\u606F\u6807\u300C\u5DF2\u6536\u5230 / \u5DF2\u5B8C\u6210\u300D\u3002\u52FE\u9009\u540E\u8FDE\u8FD9\u4E2A\u4E5F\u4E0D\u52A0\uFF0C\u9002\u5408\u4F4E\u566A\u97F3\u7684\u89C2\u5BDF\u578B bot\u3002\u4EC5\u5728\u300C\u5173\u95ED\u98DE\u4E66\u6D41\u5F0F\u5361\u7247\u300D\u5F00\u542F\u65F6\u53EF\u6539\u3002","botDefaults.writableLink":"\u5361\u7247\u4E0A\u76F4\u63A5\u7ED9\u53EF\u64CD\u4F5C\uFF08\u53EF\u5199\uFF09\u7EC8\u7AEF\u94FE\u63A5","botDefaults.writableLinkHelp":"\u26A0\uFE0F \u5728\u6D41\u5F0F\u5361\u7247\u6B63\u6587\u76F4\u63A5\u8D34\u51FA\u53EF\u5199\u7EC8\u7AEF\u94FE\u63A5\uFF0C\u7FA4\u5185\u4EFB\u4F55\u4EBA\u90FD\u80FD\u70B9\u5F00\u5E76\u64CD\u63A7\u7EC8\u7AEF\u3002\u4E0D\u52FE\uFF1D\u4FDD\u6301\u73B0\u72B6\uFF08\u8D70\u300C\u83B7\u53D6\u64CD\u4F5C\u94FE\u63A5\u300D\u6309\u94AE\u79C1\u804A\u53D1\u7ED9\u70B9\u51FB\u8005\uFF09\u3002","botDefaults.writableLinkMoot":"\u5DF2\u5173\u95ED\u6D41\u5F0F\u5361\u7247","botDefaults.privateCard":"/card \u53D1\u79C1\u5BC6\u5361\u7247\uFF08\u4EC5\u6388\u6743\u4EBA\u53EF\u89C1\uFF09","botDefaults.privateCardHelp":"\u5F00\u542F\u540E /card \u6539\u7528\u300C\u4EC5\u7279\u5B9A\u4EBA\u53EF\u89C1\u300D\u7684\u4E34\u65F6\u5361\u7247\uFF1A\u53EA\u53D1\u7ED9 owner\uFF08allowedUsers\uFF09\uFF0C/grant \u6388\u6743\u5BF9\u8BDD\u7684\u4EBA\u548C\u7FA4\u91CC\u5176\u4ED6\u4EBA\u90FD\u770B\u4E0D\u5230\u3002\u4EE3\u4EF7\uFF1A\u662F\u9759\u6001\u5FEB\u7167\u3001\u4E0D\u4F1A\u5B9E\u65F6\u5237\u65B0\uFF1B\u4E14\u4EC5\u666E\u901A\u7FA4\u53EF\u7528\uFF08\u8BDD\u9898\u7FA4 / \u5355\u804A\u4F1A\u5931\u8D25\uFF0C\u4E0D\u964D\u7EA7\uFF09\u3002\u53EA\u5F71\u54CD /card \u547D\u4EE4\uFF0C\u81EA\u52A8\u6D41\u5F0F\u5361\u4E0D\u53D8\u3002","botDefaults.sectionCrossBot":"\u8DE8 bot \u534F\u4F5C","botDefaults.botToBotSameDir":"bot@bot \u540C\u76EE\u5F55\u62C9\u8D77","botDefaults.botToBotSameDirHelp":"\u5F00\u542F\u540E\uFF0C\u672C bot \u88AB @ \u8FDB\u4E00\u4E2A\u5DF2\u6709\u5176\u5B83 bot \u5728\u5E72\u6D3B\u7684\u7FA4/\u8BDD\u9898\u65F6\uFF0C\u76F4\u63A5\u590D\u7528\u5BF9\u65B9\u7684\u5DE5\u4F5C\u76EE\u5F55\u3001\u8DF3\u8FC7\u4ED3\u5E93\u9009\u62E9\u5361\u7247\uFF08\u4E0E oncall \u7ED1\u5B9A\u65E0\u5173\uFF0C\u9ED8\u8BA4\u5F00\uFF09\u3002\u5173\u6389\u5219\u672C bot \u6C38\u8FDC\u8D70\u81EA\u5DF1\u7684\u4ED3\u5E93\u9009\u62E9\u5361 / \u9ED8\u8BA4\u76EE\u5F55\u3002","botDefaults.cardPrefSaved":"\u5DF2\u4FDD\u5B58","botDefaults.sectionSummaryTrigger":"/summary \u603B\u7ED3\u8303\u56F4","botDefaults.summaryLimit":"\u6700\u8FD1\u6D88\u606F\u6761\u6570","botDefaults.summarySinceHours":"\u6700\u8FD1\u5C0F\u65F6\u6570","botDefaults.summaryLimitHelp":"@ \u673A\u5668\u4EBA\u5E76\u8F93\u5165 /summary \u65F6\u8BFB\u53D6\u8BE5\u8303\u56F4\u5185\u5386\u53F2\u6D88\u606F\uFF1B\u9ED8\u8BA4\u6700\u8FD1 50 \u6761 / 24 \u5C0F\u65F6\uFF0C\u4EFB\u4E00\u9879\u586B 0 \u8868\u793A\u8BE5\u9879\u4E0D\u505A\u9650\u5236\u3002\u8BDD\u9898\u7FA4\u59CB\u7EC8\u8BFB\u53D6\u5F53\u524D\u8BDD\u9898\u5386\u53F2\u3002","botDefaults.summarySave":"\u4FDD\u5B58\u603B\u7ED3\u8303\u56F4","botDefaults.summaryNumberInvalid":"\u65F6\u957F\u548C\u6761\u6570\u5FC5\u987B\u662F 0 \u6216\u6B63\u6574\u6570","botDefaults.sectionRole":"\u9ED8\u8BA4\u89D2\u8272","botDefaults.roleHelp":"\u8BE5 bot \u7684\u9ED8\u8BA4\u4EBA\u8BBE\uFF08\u8DE8\u7FA4\u751F\u6548\uFF09\uFF0C\u4F1A\u6CE8\u5165\u5230\u8BE5 bot \u5728\u5404\u7FA4\u7684\u4F1A\u8BDD\u91CC\uFF1B\u5355\u4E2A\u7FA4\u53EF\u5728\u300C\u89D2\u8272\u300D\u9875\u5355\u72EC\u8986\u76D6\u3002\u7559\u7A7A\u4FDD\u5B58\uFF1D\u5220\u9664\u3002","botDefaults.rolePlaceholder":"\u4F8B\u5982\uFF1A\u4F60\u662F\u540E\u7AEF\u6392\u969C\u52A9\u624B\uFF0C\u56DE\u7B54\u7B80\u6D01\u3001\u4F18\u5148\u7ED9\u53EF\u6267\u884C\u547D\u4EE4\u2026","botDefaults.roleSave":"\u4FDD\u5B58\u89D2\u8272","botDefaults.roleDelete":"\u5220\u9664","botDefaults.roleSaved":"\u5DF2\u4FDD\u5B58","botDefaults.roleDeleted":"\u5DF2\u5220\u9664","botDefaults.roleLoadErr":"\u89D2\u8272\u52A0\u8F7D\u5931\u8D25","botDefaults.profileRoles":"Profile \u89D2\u8272","botDefaults.profileRolesHelp":"\u8BE5 bot \u5728\u5404\u4E2A Profile \u4E2D\u7684\u89D2\u8272\u6761\u76EE\uFF1B\u9ED8\u8BA4\u6298\u53E0\uFF0C\u5C55\u5F00\u540E\u8BFB\u53D6\u8BE6\u60C5\u3002","botDefaults.profileRolesEmpty":"\u8FD9\u4E2A bot \u6682\u65E0 Profile \u89D2\u8272\u3002","botDefaults.profileRolesLoadFailed":"Profile \u89D2\u8272\u52A0\u8F7D\u5931\u8D25\uFF1A{error}","botDefaults.profileRoleClickToLoad":"\u5C55\u5F00\u540E\u52A0\u8F7D\u89D2\u8272\u8BE6\u60C5\u3002","botDefaults.profileRoleDetailLoadFailed":"\u89D2\u8272\u8BE6\u60C5\u52A0\u8F7D\u5931\u8D25\uFF1A{error}","botDefaults.sectionAutoStart":"\u4E3B\u52A8\u5F00\u5DE5","botDefaults.autoStartJoin":"\u88AB\u62C9\u8FDB\u65B0\u7FA4\u81EA\u52A8\u5F00\u5DE5","botDefaults.autoStartJoinHelp":"\u5F00\u542F\u540E\uFF0C\u673A\u5668\u4EBA\u4E00\u88AB\u62C9\u8FDB\u65B0\u7FA4\uFF08\u7FA4\u91CC\u6709\u6388\u6743\u7528\u6237 allowedUsers \u65F6\uFF09\u5C31\u81EA\u52A8\u5F00\u4E00\u4E2A\u4F1A\u8BDD\u5F00\u59CB\u5DE5\u4F5C\uFF0C\u65E0\u9700 @\u3002\u5728\u673A\u5668\u4EBA\u7684\u9ED8\u8BA4\u5DE5\u4F5C\u76EE\u5F55\u542F\u52A8\uFF1B\u672A\u914D\u7F6E\u9ED8\u8BA4\u76EE\u5F55\u65F6\u5148\u5F39\u4ED3\u5E93\u9009\u62E9\u5361\u8BA9\u4F60\u9009\u3002\u524D\u63D0\uFF1A\u9700\u5728\u98DE\u4E66\u5F00\u653E\u5E73\u53F0\u4E3A\u672C\u5E94\u7528\u8BA2\u9605\u300C\u673A\u5668\u4EBA\u8FDB\u7FA4\u300D\u4E8B\u4EF6 im.chat.member.bot.added_v1\uFF0C\u5E76\u5F00\u901A\u7FA4\u6210\u5458\u8BFB\u53D6\u6743\u9650\u3002","botDefaults.autoStartJoinPrompt":"\u5165\u7FA4\u9996\u8F6E prompt\uFF08\u53EF\u9009\uFF09","botDefaults.autoStartJoinPromptPlaceholder":"\u586B\u4E86\uFF1D\u4F5C\u4E3A\u5165\u7FA4\u540E\u7684\u7B2C\u4E00\u6761\u4EFB\u52A1\uFF1B\u7559\u7A7A\uFF1D\u673A\u5668\u4EBA\u81EA\u5DF1\u770B\u7FA4\u91CC\u4FE1\u606F\u51B3\u5B9A\u505A\u4EC0\u4E48","botDefaults.autoStartJoinPromptSave":"\u4FDD\u5B58 prompt","botDefaults.autoStartTopic":"\u8BDD\u9898\u7FA4\u65B0\u8BDD\u9898\u81EA\u52A8\u5F00\u5DE5","botDefaults.autoStartTopicHelp":"\u5F00\u542F\u540E\uFF0C\u5728\u8BDD\u9898\u7FA4\u91CC\u6BCF\u5F53\u6709\u4EBA\u65B0\u5F00\u4E00\u4E2A\u8BDD\u9898\uFF0C\u673A\u5668\u4EBA\u5C31\u4F1A\u81EA\u52A8\u63A5\u5165\u8BE5\u8BDD\u9898\u3001\u628A\u9996\u6761\u6D88\u606F\u5F53\u4F5C\u4EFB\u52A1\u5F00\u59CB\u5904\u7406\uFF0C\u65E0\u9700 @\u3002\u4EC5\u5BF9\u8BDD\u9898\u7FA4\u751F\u6548\uFF0C\u666E\u901A\u7FA4\u4E0D\u53D7\u5F71\u54CD\u3002","botDefaults.sectionSessionMode":"\u4F1A\u8BDD\u6A21\u5F0F","botDefaults.p2pMode":"\u79C1\u804A\u4F1A\u8BDD\u6A21\u5F0F","botDefaults.p2pThread":"thread\uFF08\u6BCF\u6761 DM \u72EC\u7ACB\u4F1A\u8BDD\uFF09","botDefaults.p2pChat":"chat\uFF08\u6241\u5E73\u8FDE\u7EED\u5355\u804A\u4F1A\u8BDD\uFF09","botDefaults.p2pHelp":"\u79C1\u804A\uFF081:1 DM\uFF09\u7684\u4F1A\u8BDD\u65B9\u5F0F\uFF1Athread = \u6BCF\u6761\u9876\u5C42\u6D88\u606F\u5404\u81EA\u8D77\u72EC\u7ACB\u4F1A\u8BDD\uFF08\u907F\u514D\u628A\u5BF9\u8BDD\u5806\u8FDB\u540C\u4E00\u4E2A CLI \u8FDB\u7A0B\uFF09\uFF1Bchat = \u6574\u6BB5 DM \u5171\u7528\u4E00\u4E2A\u8FDE\u7EED\u4F1A\u8BDD\u3001\u5171\u4EAB\u4E0A\u4E0B\u6587\uFF08\u7C7B Hermes\uFF09\u3002\u6539\u540E\u7ACB\u5373\u751F\u6548\u3002","botDefaults.regularGroupMode":"\u666E\u901A\u7FA4\u4F1A\u8BDD\u6A21\u5F0F","botDefaults.regularGroupModeChat":"chat\uFF08\u6241\u5E73\u8FDE\u7EED\u5355\u804A\u4F1A\u8BDD\uFF0C\u9ED8\u8BA4\uFF09","botDefaults.regularGroupModeChatTopic":"chat-topic\uFF08\u9876\u5C42\u5E73\u94FA\u8FDE\u7EED\u4F1A\u8BDD\uFF0C\u539F\u751F\u8BDD\u9898\u5404\u81EA\u72EC\u7ACB\u4F1A\u8BDD\uFF09","botDefaults.regularGroupModeNewTopic":"new-topic\uFF08\u6BCF\u6761\u9876\u5C42 @ \u5404\u5F00\u72EC\u7ACB\u8BDD\u9898\u4E0E\u4F1A\u8BDD\uFF09","botDefaults.regularGroupModeShared":"shared\uFF08\u8BDD\u9898\u6A21\u5F0F\u4F46\u590D\u7528\u540C\u4E00\u4E2A session\uFF09","botDefaults.regularGroupModeHelp":"\u666E\u901A\u7FA4\uFF08\u975E\u8BDD\u9898\u7FA4\uFF09\u91CC @ \u8BE5 bot \u7684\u65B0\u9876\u5C42\u6D88\u606F\u600E\u4E48\u5F00\u4F1A\u8BDD\uFF1Achat = \u6574\u7FA4\u5171\u7528\u4E00\u4E2A\u8FDE\u7EED\u4F1A\u8BDD\uFF08\u9ED8\u8BA4\uFF0C\u8FDE\u4F60\u5728\u7FA4\u91CC\u624B\u52A8\u5F00\u7684\u539F\u751F\u8BDD\u9898\u4E5F\u5E76\u8FDB\u8FD9\u4E2A\u4F1A\u8BDD\uFF09\uFF1Bchat-topic = \u9876\u5C42 @ \u4ECD\u5E73\u94FA\u8FDB\u7FA4\u91CC\u90A3\u4E00\u4E2A\u8FDE\u7EED\u4F1A\u8BDD\uFF0C\u4F46\u4F60\u624B\u52A8\u5F00\u7684\u539F\u751F\u8BDD\u9898\u5404\u81EA\u72EC\u7ACB\u4F1A\u8BDD\uFF08\u8BDD\u9898\u91CC\u5F00\u65B0\u4F1A\u8BDD\uFF09\uFF1Bnew-topic = \u6BCF\u6761\u9876\u5C42 @ \u5728\u539F\u6D88\u606F\u4E0B\u5F00\u72EC\u7ACB\u8BDD\u9898\u3001\u5404\u81EA\u72EC\u7ACB\u4F1A\u8BDD\uFF1Bshared = \u8BDD\u9898\u6A21\u5F0F\u4F46\u590D\u7528\u540C\u4E00\u4E2A session\uFF08\u56DE\u590D\u843D\u5728\u8BDD\u9898\u91CC\u3001\u4F46\u5171\u7528\u672C\u7FA4\u4F1A\u8BDD\u4E0E\u4E0A\u4E0B\u6587\uFF09\u3002\u8FD9\u662F per-bot \u9ED8\u8BA4\uFF0C\u5177\u4F53\u67D0\u4E2A\u7FA4\u53EF\u7528 /reply-mode \u5355\u72EC\u8986\u76D6\u3002\u6539\u540E\u7ACB\u5373\u751F\u6548\u3002","botDefaults.mentionMode":"\u7FA4\u804A @ \u7B56\u7565","botDefaults.mentionModeAlways":"\u90FD\u9700\u8981 @\uFF08\u9ED8\u8BA4\uFF09","botDefaults.mentionModeTopic":"\u4EC5\u8BDD\u9898\u5185\u4E0D\u9700\u8981 @","botDefaults.mentionModeNever":"\u6240\u6709\u6D88\u606F\u90FD\u4E0D\u9700\u8981 @","botDefaults.mentionModeAmbient":"\u90FD\u4E0D\u9700\u8981 @\uFF08\u4F46\u4F60 @ \u522B\u4EBA\u65F6\u8BA9\u4F4D\uFF09","botDefaults.mentionModeHelp":"\u8BE5 bot \u5168\u5C40\u751F\u6548\uFF0C\u51B3\u5B9A\u7FA4\u91CC\u8981\u4E0D\u8981 @ \u624D\u56DE\uFF1A\u300C\u90FD\u9700\u8981 @\u300D= \u4EFB\u4F55\u6D88\u606F\u90FD\u5F97 @\uFF08\u9ED8\u8BA4\uFF0C\u6700\u5B89\u5168\uFF1B\u591A\u4EBA\u7FA4\u91CC\u8BDD\u9898\u5185\u4E5F\u8981 @\uFF09\uFF1B\u300C\u4EC5\u8BDD\u9898\u5185\u4E0D\u9700\u8981 @\u300D= \u8D77\u65B0\u5BF9\u8BDD / \u9876\u5C42\u4ECD\u8981 @\uFF0C\u4F46\u5728\u8BE5 bot \u5DF2\u5F00\u7684\u4EFB\u4F55\u8BDD\u9898\u91CC\uFF08new-topic / shared / \u8BDD\u9898\u7FA4\uFF09\u540E\u7EED\u6D88\u606F\u514D @ \u7EED\u804A\uFF1B\u300C\u6240\u6709\u6D88\u606F\u90FD\u4E0D\u9700\u8981 @\u300D= \u8BE5 bot \u6709\u5BF9\u8BDD\u6743\u9650\u7684\u7FA4\u91CC\u975E @ \u6D88\u606F\u4E5F\u65E0\u6761\u4EF6\u56DE\uFF08\u542B\u5168\u65B0\u6D88\u606F\u51B7\u542F\u52A8\uFF0C\u9002\u5408\u4E13\u7528 / \u503C\u73ED\u5C0F\u7FA4\uFF09\uFF1B\u300C\u90FD\u4E0D\u9700\u8981 @\uFF08\u4F46\u4F60 @ \u522B\u4EBA\u65F6\u8BA9\u4F4D\uFF09\u300D= \u540C\u6837\u514D @ \u4E5F\u56DE\uFF0C\u4F46\u5F53\u8FD9\u6761\u6D88\u606F @ \u4E86\u522B\u7684\u4EBA\u6216\u522B\u7684 bot\uFF08\u800C\u6CA1 @ \u5B83\uFF09\u65F6\u5B83\u8BC6\u8DA3\u4E0D\u56DE\uFF0C\u76F8\u5F53\u4E8E\u4F60\u628A\u8FD9\u6761\u4EA4\u7ED9\u522B\u4EBA\u4E86\uFF08@\u6240\u6709\u4EBA \u4E0D\u7B97\u4EA4\u7ED9\u522B\u4EBA\uFF0C\u4ECD\u4F1A\u56DE\uFF09\uFF0C\u9002\u5408\u591A\u4EBA / \u591A bot \u7FA4\u91CC\u60F3\u8981\u4E00\u4E2A\u9ED8\u8BA4\u54CD\u5E94\u8005\u3001\u4F46\u4F60\u70B9\u540D\u522B\u4EBA\u65F6\u5B83\u5C31\u8BA9\u4F4D\u3002\u6CE8\uFF1A\u7FA4\u91CC\u53EA\u6709\u4F60\u548C\u8BE5 bot\uFF081 \u5BF9 1\uFF09\u65F6\u4E00\u76F4\u514D @\uFF0C\u4E0E\u672C\u8BBE\u7F6E\u65E0\u5173\u3002","botDefaults.docSubscribeMode":"\u6587\u6863\u8BA2\u9605\u89E6\u53D1\u8303\u56F4\uFF08\u9ED8\u8BA4\uFF09","botDefaults.docSubscribeModeMention":"\u4EC5\u8BC4\u8BBA @ \u6211\u624D\u89E6\u53D1","botDefaults.docSubscribeModeAll":"\u6240\u6709\u65B0\u8BC4\u8BBA\u90FD\u89E6\u53D1","botDefaults.docSubscribeModeHelp":"\u7528 /subscribe-lark-doc \u8BA2\u9605\u98DE\u4E66\u6587\u6863\u540E\uFF0C\u6587\u6863\u8BC4\u8BBA\u4F1A\u5582\u8FDB\u4F1A\u8BDD\u3001bot \u56DE\u590D\u53D1\u56DE\u8BC4\u8BBA\u3002\u8FD9\u91CC\u8BBE\u65B0\u8BA2\u9605\u7684\u9ED8\u8BA4\u89E6\u53D1\u8303\u56F4\uFF1A\u300C\u4EC5\u8BC4\u8BBA @ \u6211\u300D\u6700\u5B89\u5168\uFF08\u9632\u5237\u5C4F\uFF09\uFF1B\u300C\u6240\u6709\u65B0\u8BC4\u8BBA\u300D\u9002\u5408\u4E13\u7528\u6587\u6863\u3002","botDefaults.sectionGrant":"\u6388\u6743\u4E0E\u989D\u5EA6","botDefaults.autoGrantCard":"\u672A\u6388\u6743 @ \u81EA\u52A8\u5F39\u6388\u6743\u5361","botDefaults.autoGrantCardHelp":"\u5F00\u542F\u540E\uFF0C\u7FA4\u91CC\u6709\u4EBA\u6216\u5916\u90E8 bot \u660E\u786E @ \u8BE5 bot \u4F46\u88AB\u5BF9\u8BDD\u6743\u9650\u95F8\u6321\u4F4F\u65F6\uFF0C\u4F1A\u81EA\u52A8\u7ED9 owner \u53D1 /grant \u7533\u8BF7\u5361\uFF1B\u5173\u95ED\u540E\u4FDD\u6301\u6743\u9650\u62E6\u622A\u4F46\u9759\u9ED8\u4E22\u5F03\u3002","botDefaults.restrictGrant":"\u9650\u5236\u88AB\u6388\u6743\u4EBA\u53EA\u80FD\u7EAF\u5BF9\u8BDD","botDefaults.restrictGrantHelp":"\u5F00\u542F\u540E\uFF0C\u88AB /grant \u6388\u6743\u7684\u4EBA\uFF08owner \u81EA\u5DF1\u4E0D\u53D7\u9650\uFF09\u53EA\u80FD\u53D1\u666E\u901A\u5BF9\u8BDD\uFF0C\u6240\u6709 slash \u547D\u4EE4\u4E00\u5F8B\u62E6\u622A\uFF1Abotmux \u81EA\u5E26\u547D\u4EE4\u3001\u900F\u4F20\u547D\u4EE4\u3001/workflow\u3001/template\u3001/introduce\u3001/t \u4EE5\u53CA CLI \u539F\u751F\u547D\u4EE4\uFF08/help \u7B49\uFF09\u3002\u5F62\u5982 /path/to/file \u7684\u5185\u5BB9\u4E0D\u4F1A\u88AB\u8BEF\u5224\u3002","botDefaults.quotaDefault":"\u9ED8\u8BA4\u6D88\u606F\u989D\u5EA6","botDefaults.quotaPlaceholder":"\u7559\u7A7A\uFF1D\u4E0D\u914D\u7F6E\u9ED8\u8BA4\u989D\u5EA6","botDefaults.quotaHelp":"\u4E0D\u5E26\u6570\u5B57\u7684 /grant @x \u9ED8\u8BA4\u7ED9\u7684\u6D88\u606F\u6761\u6570\u3002\u7559\u7A7A\u6216\u70B9\u300C\u5173\u95ED\u300D\u53EA\u662F\u4E0D\u518D\u7ED9\u88F8 /grant \u5957\u9ED8\u8BA4\u989D\u5EA6\uFF0C\u4E0D\u4F1A\u6E05\u6389\u5DF2\u6709\u7684\u989D\u5EA6\u8BA1\u6570\uFF0C\u4E5F\u4E0D\u5F71\u54CD\u663E\u5F0F /grant @x N\u2014\u2014\u5B83\u4EEC\u7167\u5E38\u7EE7\u7EED enforce\u3002\u989D\u5EA6\u7528\u5C3D\u4F1A\u81EA\u52A8\u64A4\u9500\u8BE5\u4EBA\u6388\u6743\u3002","botDefaults.quotaSave":"\u4FDD\u5B58\u989D\u5EA6","botDefaults.quotaOff":"\u5173\u95ED","botDefaults.quotaInvalid":"\u989D\u5EA6\u5FC5\u987B\u662F\u6B63\u6574\u6570","botDefaults.quotaStateOff":"\u5F53\u524D\uFF1A\u672A\u914D\u7F6E\u9ED8\u8BA4\u989D\u5EA6","botDefaults.quotaStateOn":"\u5F53\u524D\uFF1A\u6BCF\u4EBA {count} \u6761","botDefaults.sectionSessionCap":"\u4F1A\u8BDD\u6570\u4E0A\u9650","botDefaults.maxLiveWorkers":"\u6700\u5927\u540C\u65F6\u6D3B\u8DC3\u4F1A\u8BDD\u6570","botDefaults.maxLiveWorkersPlaceholder":"\u7559\u7A7A\uFF1D\u9ED8\u8BA4 30","botDefaults.maxLiveWorkersHelp":"\u672C Bot \u540C\u65F6\u4FDD\u6D3B\u7684\u4F1A\u8BDD\u6570\u4E0A\u9650\uFF0C\u7528\u4E8E\u63A7\u5236\u5185\u5B58\u3002\u8D85\u8FC7\u540E\u6700\u4E45\u672A\u7528\u7684\u4F1A\u8BDD\u81EA\u52A8\u4F11\u7720\uFF1Aworker \u548C CLI \u8FDB\u7A0B\u4E00\u8D77\u6740\u6389\u3001\u56DE\u6536\u5168\u90E8\u5185\u5B58\uFF0C\u4E0B\u6761\u6D88\u606F\u65F6\u4ECE\u78C1\u76D8 transcript \u51B7\u6062\u590D\uFF08--resume \u91CD\u5EFA\u4E0A\u4E0B\u6587\uFF0C\u51E0\u79D2\uFF0C\u4E0D\u518D\u5E38\u9A7B\u5360\u5185\u5B58\uFF09\u3002\u7559\u7A7A\uFF1D\u7528\u9ED8\u8BA4 30\uFF1B\u586B\u6570\u5B57\uFF1D\u672C Bot \u81EA\u5B9A\u4E49\uFF08\u60F3\u8981\u66F4\u591A\u5C31\u586B\u5927\u6570\u5B57\uFF09\u3002\u6CE8\u610F\uFF1A\u4F11\u7720\u53EA\u5BF9\u53EF\u6062\u590D\u540E\u7AEF\uFF08tmux/herdr/zellij\uFF09\u751F\u6548\uFF0C\u7EAF PTY \u4F1A\u8BDD\u4E0D\u53D7\u5F71\u54CD\uFF1B\u6B63\u5728\u51FA\u7B54\u6848\u7684\u4F1A\u8BDD\u4E0D\u4F1A\u88AB\u6253\u65AD\u3002","botDefaults.maxLiveWorkersSave":"\u4FDD\u5B58\u4E0A\u9650","botDefaults.maxLiveWorkersOff":"\u6062\u590D\u9ED8\u8BA4","botDefaults.maxLiveWorkersInvalid":"\u4E0A\u9650\u5FC5\u987B\u662F\u6B63\u6574\u6570","botDefaults.maxLiveWorkersStateDefault":"\u5F53\u524D\uFF1A\u9ED8\u8BA4 30 \u4E2A\u6D3B\u8DC3\u4F1A\u8BDD","botDefaults.maxLiveWorkersStateOn":"\u5F53\u524D\uFF1A\u6700\u591A {count} \u4E2A\u6D3B\u8DC3\u4F1A\u8BDD","botDefaults.sectionStartupCommands":"\u542F\u52A8\u547D\u4EE4","botDefaults.startupCommandsHelp":"\u5F00\u4F1A\u8BDD\u540E\u3001\u9996\u6761\u6D88\u606F\u4E4B\u524D\uFF0C\u81EA\u52A8\u6309\u987A\u5E8F\u53D1\u7ED9 CLI \u7684\u547D\u4EE4\uFF08\u6BCF\u6761\u72EC\u7ACB\u56DE\u8F66\uFF09\uFF0C\u5982 /effort ultracode\u3002\u9017\u53F7\u6216\u6362\u884C\u5206\u9694\uFF0C\u6BCF\u884C\u4E00\u6761\uFF0C\u53EF\u5E26\u53C2\u6570\uFF1B\u7559\u7A7A\uFF1D\u4E0D\u53D1\u3002\u4E0B\u4E2A\u65B0\u4F1A\u8BDD\u8D77\u6548\uFF0C\u4E14\u6BCF\u6B21\u65B0\u4F1A\u8BDD\uFF08\u542B resume\uFF09\u90FD\u91CD\u653E\u2014\u2014\u6240\u4EE5 /effort ultracode \u8FD9\u7C7B\u53EA\u5BF9\u5F53\u524D\u4F1A\u8BDD\u751F\u6548\u7684\u8BBE\u7F6E\u4E0D\u4F1A\u56E0 resume \u4E22\u5931\u3002\u4EC5\u5BF9\u539F\u751F CLI \u4F1A\u8BDD\u751F\u6548\uFF0Cadopt \u63A5\u7BA1\u7684\u4F1A\u8BDD\u4E0D\u53D1\u3002","botDefaults.startupCommandsPlaceholder":"\u6BCF\u884C\u4E00\u6761\uFF0C\u5982 /effort ultracode","botDefaults.startupCommandsSave":"\u4FDD\u5B58\u542F\u52A8\u547D\u4EE4","botDefaults.sectionLaunchShell":"\u542F\u52A8 Shell","botDefaults.launchShellHelp":"\u542F\u52A8 CLI \u7528\u7684 shell\uFF0C\u8986\u76D6 daemon \u7684 $SHELL\uFF1A\u586B shell \u540D\uFF08zsh|bash|sh\uFF09\u6216\u7EDD\u5BF9\u8DEF\u5F84\uFF08\u5982 /usr/bin/zsh\uFF09\u3002\u7528\u4E8E\u767B\u5F55 $SHELL\uFF08\u5982 bash\uFF09\u7684 rc \u6587\u4EF6\u91CC\u6709 `exec zsh` \u4E4B\u7C7B\u8DF3\u8F6C\u3001\u628A CLI \u542F\u52A8\u547D\u4EE4\u9876\u6389\u3001\u5BFC\u81F4\u4F1A\u8BDD\u8D77\u4E0D\u6765\uFF08\u88F8\u58F3\u91CC\u62A5 parse error\uFF09\u7684\u573A\u666F\u2014\u2014\u6307\u5B9A launchShell \u76F4\u63A5\u7528\u5B83\u542F\u52A8\u3001\u7ED5\u5F00\u88AB\u8DF3\u8FC7\u7684 rc\u3002\u6CE8\u610F\uFF1APATH/nvm/pnpm \u7B49\u8981\u653E\u8FDB\u6240\u9009 shell \u7684 rc\uFF08\u5982 .zshrc/.zprofile\uFF09\u3002\u7559\u7A7A\uFF1D\u56DE $SHELL\u3002\u4E0B\u4E2A\u65B0\u4F1A\u8BDD\u8D77\u6548\uFF1B\u4EC5 tmux/zellij \u540E\u7AEF\uFF08pty \u76F4\u63A5 exec CLI\uFF0C\u672C\u5C31\u4E0D\u53D7\u5F71\u54CD\uFF09\u3002","botDefaults.launchShellPlaceholder":"\u5982 zsh \u6216 /usr/bin/zsh\uFF1B\u7559\u7A7A\uFF1D\u7528 $SHELL","botDefaults.launchShellSave":"\u4FDD\u5B58\u542F\u52A8 Shell","botDefaults.sectionEnv":"\u73AF\u5883\u53D8\u91CF","botDefaults.envHelp":"\u6CE8\u5165\u5230\u672C bot CLI \u8FDB\u7A0B\u7684\u73AF\u5883\u53D8\u91CF\uFF08JSON \u5BF9\u8C61\uFF09\u3002\u5178\u578B\u7528\u9014\uFF1A\u8BA9\u67D0\u4E2A bot \u8D70 GLM / \u7B2C\u4E09\u65B9 Anthropic\xB7OpenAI \u517C\u5BB9\u670D\u52A1\u5546\u2014\u2014\u586B ANTHROPIC_BASE_URL + ANTHROPIC_AUTH_TOKEN\uFF08GLM \u56FD\u9645\u7AD9 https://api.z.ai/api/anthropic\uFF0C\u56FD\u5185\u7AD9 https://open.bigmodel.cn/api/anthropic\uFF09\uFF0C\u6216\u8BBE HTTPS_PROXY\u3001CLI \u4E13\u5C5E\u5F00\u5173\u3002\u503C\u4EC5\u63A5\u53D7\u5B57\u7B26\u4E32/\u6570\u5B57/\u5E03\u5C14\uFF1BBOTMUX_ / LARK_APP_ \u7B49 botmux \u4FDD\u7559\u952E\u4F1A\u88AB\u5FFD\u7565\u3002\u4E0B\u4E2A\u65B0\u4F1A\u8BDD\u8D77\u6548\uFF0C\u6309\u4F1A\u8BDD\u6CE8\u5165\u5230 CLI \u8FDB\u7A0B\uFF08\u4E0D\u8FDB\u5171\u4EAB tmux server \u5168\u5C40\uFF0C\u4E0D\u4F1A\u4E32\u5230\u522B\u7684 bot\uFF09\u3002\u7559\u7A7A\uFF1D\u6E05\u9664\u3002\u6CE8\u610F\uFF1A\u503C\u4EE5\u660E\u6587\u5B58\u4E8E bots.json\uFF0C\u4E0D\u662F\u5BC6\u94A5\u4FDD\u9669\u7BB1\u3002","botDefaults.envPlaceholder":`{
|
|
8
|
+
"ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
|
|
9
|
+
"ANTHROPIC_AUTH_TOKEN": "\u4F60\u7684 GLM Coding Plan key"
|
|
10
|
+
}`,"botDefaults.envSave":"\u4FDD\u5B58\u73AF\u5883\u53D8\u91CF","nav.roles":"\u89D2\u8272\u7BA1\u7406","nav.groupRoles":"\u7FA4\u89D2\u8272","nav.roleProfiles":"Profiles","roles.title":"\u89D2\u8272\u7BA1\u7406","roles.subtitle":"\u7BA1\u7406\u6BCF\u4E2A\u7FA4\u7684 Bot \u89D2\u8272\uFF0C\u5E76\u7EF4\u62A4\u53EF\u590D\u7528\u7684 Profiles\u3002","roleProfiles.title":"Profiles","roleProfiles.subtitle":"\u7EF4\u62A4\u53EF\u590D\u7528\u7684\u591A Bot Profiles\uFF0C\u5E76\u5FEB\u901F\u9884\u89C8\u6216\u5E94\u7528\u5230\u76EE\u6807\u7FA4\u3002","roles.search":"\u641C\u7D22\u7FA4\u540D/Bot/ID","roles.refresh":"\u5237\u65B0","roles.selectHint":"\u2190 \u5C55\u5F00\u7FA4\u7EC4\uFF0C\u9009\u62E9\u4E00\u4E2A Bot \u6765\u7F16\u8F91\u89D2\u8272","roles.editorPlaceholder":`\u8F93\u5165\u89D2\u8272\u63CF\u8FF0\uFF0C\u4F8B\u5982\uFF1A
|
|
11
|
+
\u4F60\u662F\u672C\u7FA4\u7684\u6280\u672F\u987E\u95EE\uFF0C\u8D1F\u8D23\u56DE\u7B54\u6240\u6709\u6280\u672F\u95EE\u9898...`,"roles.configured":"\u5DF2\u914D\u7F6E","roles.unconfigured":"\u672A\u914D\u7F6E","roles.noChats":"\u6682\u65E0\u7FA4\u7EC4","roles.preview":"\u9884\u89C8","roles.previewEmpty":"\uFF08\u7A7A\u5185\u5BB9\uFF09","roles.saved":"\u5DF2\u4FDD\u5B58","roles.delete":"\u5220\u9664","roles.save":"\u4FDD\u5B58","roles.confirmDelete":"\u786E\u8BA4\u5220\u9664\u8BE5 Bot \u5728\u6B64\u7FA4\u7684\u89D2\u8272\u914D\u7F6E\uFF1F","roles.botsWithRoles":"\u4E2A Bot \u5DF2\u914D\u7F6E\u89D2\u8272","roles.emptyError":"\u89D2\u8272\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A\uFF0C\u8BF7\u5148\u8F93\u5165\u5185\u5BB9","roles.saveFailed":"\u4FDD\u5B58\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5","roles.tabGroups":"\u6309\u7FA4\u7EC4","roles.tabProfiles":"Profiles","roles.profileIdPlaceholder":"profile id\uFF0C\u5982 collab-main","roles.profileIdInvalid":"Profile id \u53EA\u80FD\u5305\u542B\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u70B9\u3001\u4E0B\u5212\u7EBF\u3001\u77ED\u6A2A\u7EBF\uFF0C\u6700\u957F 64\uFF0C\u4E14\u4E0D\u80FD\u662F . \u6216 ..","roles.openProfile":"\u6253\u5F00","roles.profileSearch":"\u641C\u7D22 profile","roles.profileSelectHint":"\u2190 \u9009\u62E9\u6216\u8F93\u5165\u4E00\u4E2A profile \u6765\u7F16\u8F91","roles.profileEmpty":"\u6682\u65E0 Profiles","roles.profileEntries":"\u4E2A entry","roles.profileMissing":"\u7F3A\u5931","roles.profileRuntimeHint":"Profile \u53EA\u662F\u53EF\u590D\u7528\u5957\u88C5\uFF1BApply \u540E\u5199\u6210\u672C\u7FA4 Role\uFF0C\u4E0D\u589E\u52A0\u8FD0\u884C\u65F6\u5C42\u7EA7\u3002","roles.profileBots":"Bot Entries","roles.profileEditorPlaceholder":"\u8F93\u5165\u5F53\u524D bot \u5728\u8BE5 profile \u4E0B\u7684 Markdown role...","roles.saveEntry":"\u4FDD\u5B58 Entry","roles.profileBotSelectHint":"\u9009\u62E9\u4E00\u4E2A Bot \u6765\u7F16\u8F91\u5B83\u5728\u8BE5 profile \u91CC\u7684 entry","roles.applyToGroup":"Apply \u5230\u7FA4\u7EC4","roles.applyForce":"\u8986\u76D6\u5DF2\u6709\u672C\u7FA4 Role","roles.previewApply":"\u9884\u89C8 Apply","roles.applyProfile":"Apply Profile","roles.applyPickBots":"\u8BF7\u9009\u62E9\u81F3\u5C11\u4E00\u4E2A Bot","roles.applyWouldRefuse":"\u4F1A\u62D2\u7EDD\uFF08\u5DF2\u6709\u672C\u7FA4 Role\uFF09","roles.applyPreviewOk":"\u53EF\u5E94\u7528","roles.applyOk":"\u5DF2\u5E94\u7528","roles.applyFailed":"\u5931\u8D25","roles.confirmDeleteProfileEntry":"\u786E\u8BA4\u5220\u9664\u8BE5 Bot \u5728\u6B64 profile \u91CC\u7684 entry\uFF1F","common.none":"\u65E0","common.loading":"\u52A0\u8F7D\u4E2D\u2026","common.unknown":"\u672A\u77E5","common.now":"\u521A\u521A","common.never":"\u4ECE\u672A","common.all":"\u5168\u90E8","nav.workflows":"\u5DE5\u4F5C\u6D41","nav.workflowCatalog":"\u76EE\u5F55","workflow.subnav.runs":"\u8FD0\u884C","workflow.subnav.catalog":"\u76EE\u5F55","workflow.subnav.v3":"\u65B0\u7248\u5DE5\u4F5C\u6D41 \u2192","workflow.searchPlaceholder":"\u641C\u7D22 runId / workflowId / chatId","workflow.filter.nonTerminal":"\u975E\u7EC8\u6001","workflow.filter.all":"\u5168\u90E8","workflow.status.pending":"\u5F85\u5F00\u59CB","workflow.status.running":"\u8FD0\u884C\u4E2D","workflow.status.waiting":"\u7B49\u5F85\u4E2D","workflow.status.effectAttempting":"\u526F\u4F5C\u7528\u4E2D","workflow.status.timedOut":"\u5DF2\u8D85\u65F6","workflow.status.succeeded":"\u6210\u529F","workflow.status.failed":"\u5931\u8D25","workflow.status.cancelled":"\u5DF2\u53D6\u6D88","workflow.table.run":"\u8FD0\u884C","workflow.table.workflow":"\u5DE5\u4F5C\u6D41","workflow.table.status":"\u72B6\u6001","workflow.table.lastSeq":"\u6700\u540E\u5E8F\u53F7","workflow.table.dangling":"\u60AC\u6302 dEf/dAct/dWait","workflow.table.updated":"\u66F4\u65B0\u65F6\u95F4","workflow.table.chatApp":"\u7FA4\u804A / \u5E94\u7528","workflow.list.failedLoad":"\u52A0\u8F7D\u5931\u8D25\uFF1A{error}","workflow.list.noRuns":"\u6CA1\u6709\u5339\u914D\u7684\u8FD0\u884C\u3002","workflow.list.noFilterMatch":"\u6CA1\u6709\u7B26\u5408\u7B5B\u9009\u6761\u4EF6\u7684\u8FD0\u884C\u3002","workflow.list.loaded":"{count} \u4E2A\u8FD0\u884C \xB7 \u5237\u65B0\u4E8E {time}","workflow.list.error":"\u9519\u8BEF\uFF1A{error}","workflow.detail.back":"\u8FD4\u56DE","workflow.detail.loading":"\u52A0\u8F7D\u4E2D...","workflow.detail.loadFailed":"\u52A0\u8F7D\u5931\u8D25","workflow.detail.cancel":"\u53D6\u6D88","workflow.detail.cliCancelOnly":"\u4EC5 CLI \u53EF\u53D6\u6D88","workflow.detail.cancelTitle":"\u53D6\u6D88\u8FD9\u4E2A\u5DE5\u4F5C\u6D41\u8FD0\u884C","workflow.detail.cliCancelTitle":"\u65E0\u6CD5\u5728\u9875\u9762\u53D6\u6D88\uFF1A\u8BF7\u4F7F\u7528 botmux workflow cancel {runId}","workflow.detail.nodes":"\u8282\u70B9 / Activity","workflow.detail.parallel":"\u5E76\u53D1\u6267\u884C","workflow.detail.parallelMeta":"{count} \u6B21\u5C1D\u8BD5 \xB7 \u6700\u9AD8\u5E76\u53D1 {max} \xB7 \u8FD0\u884C\u4E2D {running}","workflow.detail.noParallelData":"\u8FD8\u6CA1\u6709 attempt \u65F6\u95F4\u6570\u636E\u3002","workflow.detail.parallelNow":"\u73B0\u5728","workflow.detail.node":"\u8282\u70B9","workflow.detail.nodeStatus":"\u8282\u70B9\u72B6\u6001","workflow.detail.activity":"Activity","workflow.detail.activityStatus":"Activity \u72B6\u6001","workflow.detail.attempts":"\u5C1D\u8BD5\u6B21\u6570","workflow.detail.current":"\u5F53\u524D\u5C1D\u8BD5","workflow.detail.detail":"\u8BE6\u60C5","workflow.detail.nodeIO":"\u8282\u70B9\u8F93\u5165\u8F93\u51FA","workflow.detail.timeline":"\u65F6\u95F4\u7EBF","workflow.detail.loadOlder":"\u52A0\u8F7D\u66F4\u65E9\u4E8B\u4EF6","workflow.detail.seq":"\u5E8F\u53F7","workflow.detail.actor":"\u6267\u884C\u8005","workflow.detail.error":"\u9519\u8BEF","workflow.detail.event":"\u4E8B\u4EF6","workflow.detail.time":"\u65F6\u95F4","workflow.detail.refreshed":"\u5237\u65B0\u4E8E {time}","workflow.detail.unknownRun":"\u672A\u77E5\u8FD0\u884C","workflow.detail.snapshotHttp":"snapshot HTTP {status}","workflow.detail.eventsHttp":"events HTTP {status}","workflow.detail.cancelUnavailable":"\u65E0\u6CD5\u53D6\u6D88\uFF1A\u8BF7\u4F7F\u7528 botmux workflow cancel {runId}","workflow.detail.cancelConfirm":`\u786E\u8BA4\u53D6\u6D88\u5DE5\u4F5C\u6D41\u8FD0\u884C {runId}\uFF1F
|
|
12
|
+
|
|
13
|
+
{total} \u4E2A\u60AC\u6302\u9879\u4F1A\u7531 cancel recovery \u5904\u7406\u3002
|
|
14
|
+
effects={effects}, activities={activities}, waits={waits}, cancels={cancels}`,"workflow.detail.writeAccessCancel":"\u9700\u8981\u5199\u6743\u9650\uFF1A\u8BF7\u5728\u7EC8\u7AEF\u8FD0\u884C `botmux dashboard` \u83B7\u53D6\u4E00\u6B21\u6027 URL\uFF0C\u6253\u5F00\u540E\u5199\u5165 cookie\uFF0C\u518D\u56DE\u6765\u70B9\u51FB\u53D6\u6D88\u3002","workflow.detail.cancelHttp":"cancel HTTP {status}","workflow.detail.cancelPending":"\u53D6\u6D88\u5DF2\u63D0\u4EA4\uFF1B\u7B49\u5F85\u8FD0\u884C\u4E2D\u7684 activity \u6536\u655B","workflow.detail.writeAccessApproval":"\u9700\u8981\u5199\u6743\u9650\uFF1A\u8BF7\u5728\u7EC8\u7AEF\u8FD0\u884C `botmux dashboard` \u83B7\u53D6\u4E00\u6B21\u6027 URL\uFF0C\u6253\u5F00\u540E\u5199\u5165 cookie\uFF0C\u518D\u56DE\u6765\u5BA1\u6279\u3002","workflow.detail.actionHttp":"{action} HTTP {status}","workflow.detail.approved":"\u5DF2\u901A\u8FC7","workflow.detail.rejected":"\u5DF2\u62D2\u7EDD","workflow.detail.alreadyTerminal":"\u8FD0\u884C\u5DF2\u7EC8\u6001\uFF1B\u672A\u5E94\u7528\u201C{label}\u201D\u3002","workflow.detail.workflowContinue":"{label}\uFF1B\u7B49\u5F85\u5DE5\u4F5C\u6D41\u7EE7\u7EED\u6267\u884C\u3002","workflow.detail.workflowRefreshing":"{label}\uFF1B\u6B63\u5728\u5237\u65B0\u5DE5\u4F5C\u6D41\u72B6\u6001\u3002","workflow.detail.eventsLoaded":"\u5DF2\u52A0\u8F7D {loaded}/{total} \u4E2A\u4E8B\u4EF6","workflow.detail.dangling":"\u60AC\u6302\u9879","workflow.detail.noDangling":"\u6CA1\u6709\u60AC\u6302\u5DE5\u4F5C\u3002","workflow.detail.none":"\u65E0","workflow.detail.noNodes":"\u8FD8\u6CA1\u6709\u8282\u70B9\u3002","workflow.detail.idle":"\u7A7A\u95F2","workflow.detail.noNodeIO":"\u8FD8\u6CA1\u6709\u8282\u70B9\u8F93\u5165\u8F93\u51FA\u3002","workflow.detail.notDispatched":"\u5C1A\u672A\u6D3E\u53D1","workflow.detail.noAttempt":"\u8FD8\u6CA1\u6709\u5C1D\u8BD5","workflow.detail.attempt":"\u5C1D\u8BD5","workflow.detail.authoredInput":"\u539F\u59CB\u8F93\u5165","workflow.detail.resolvedInput":"\u89E3\u6790\u540E\u8F93\u5165","workflow.detail.output":"\u8F93\u51FA","workflow.detail.executionLog":"\u6267\u884C\u65E5\u5FD7","workflow.detail.liveTerminal":"\u5B9E\u65F6\u7EC8\u7AEF","workflow.detail.terminalLive":"\u5728\u7EBF","workflow.detail.terminalClosedShort":"\u5DF2\u5173\u95ED","workflow.detail.terminalClosed":"\u7EC8\u7AEF\u5DF2\u5173\u95ED\u3002\u8BF7\u67E5\u770B\u4E0B\u65B9\u6267\u884C\u65E5\u5FD7\u83B7\u53D6\u6700\u7EC8\u8BB0\u5F55\u3002","workflow.detail.openTerminalNewTab":"\u5728\u65B0\u6807\u7B7E\u9875\u6253\u5F00\u7EC8\u7AEF","workflow.detail.terminalReplay":"\u7EC8\u7AEF\u56DE\u653E","workflow.detail.openReplayNewTab":"\u5728\u65B0\u6807\u7B7E\u9875\u6253\u5F00\u56DE\u653E","workflow.detail.downloadFullLog":"\u4E0B\u8F7D\u5B8C\u6574\u65E5\u5FD7","workflow.detail.terminalResume":"\u8C03\u8BD5\u4F1A\u8BDD","workflow.detail.openResumeNewTab":"\u5728\u65B0\u6807\u7B7E\u9875\u6253\u5F00\u8C03\u8BD5\u4F1A\u8BDD","workflow.detail.resumeSession":"\u7EE7\u7EED\u4F1A\u8BDD","workflow.detail.resumeStarting":"\u6B63\u5728\u542F\u52A8\u2026","workflow.detail.endResumeSession":"\u7ED3\u675F\u8C03\u8BD5\u4F1A\u8BDD","workflow.detail.resumeEnding":"\u7ED3\u675F\u4E2D\u2026","workflow.detail.resumeUnsupportedCli":"{cliId} CLI \u4E0D\u652F\u6301 resume","workflow.detail.resumeMissingCliSession":"\u7F3A\u5C11 cliSessionId\uFF0C\u65E0\u6CD5 resume","workflow.detail.resumeStartFailed":"\u542F\u52A8\u8C03\u8BD5\u4F1A\u8BDD\u5931\u8D25 (HTTP {status})","workflow.detail.resumeEndFailed":"\u7ED3\u675F\u8C03\u8BD5\u4F1A\u8BDD\u5931\u8D25 (HTTP {status})","workflow.detail.writeAccessResume":"\u9700\u8981\u5199\u5165\u6743\u9650\u624D\u80FD resume \u4F1A\u8BDD\u3002","workflow.detail.waitPrompt":"\u7B49\u5F85\u63D0\u793A","workflow.detail.approvalComment":"\u5BA1\u6279\u5907\u6CE8","workflow.detail.optionalComment":"\u53EF\u9009\u5907\u6CE8","workflow.detail.approve":"\u901A\u8FC7","workflow.detail.reject":"\u62D2\u7EDD","workflow.detail.submitting":"\u63D0\u4EA4\u4E2D...","workflow.detail.empty":"\u7A7A","workflow.detail.truncated":"\u5DF2\u622A\u65AD","workflow.detail.noData":"\u6CA1\u6709\u6570\u636E\u3002","workflow.detail.noPreview":"\u6CA1\u6709\u9884\u89C8\u3002","workflow.detail.open":"\u6253\u5F00","workflow.detail.deadline":"\u622A\u6B62","workflow.detail.effect":"\u526F\u4F5C\u7528","workflow.detail.wait":"\u7B49\u5F85","workflow.detail.noEvents":"\u8FD8\u6CA1\u6709\u4E8B\u4EF6\u3002","workflow.summary.workflow":"\u5DE5\u4F5C\u6D41","workflow.summary.status":"\u72B6\u6001","workflow.summary.lastSeq":"\u6700\u540E\u5E8F\u53F7","workflow.summary.updated":"\u66F4\u65B0\u65F6\u95F4","workflow.summary.revision":"\u4FEE\u8BA2","workflow.summary.initiator":"\u53D1\u8D77\u4EBA","workflow.summary.failedNode":"\u5931\u8D25\u8282\u70B9","workflow.summary.cancelOrigin":"\u53D6\u6D88\u6765\u6E90","workflow.summary.chat":"\u7FA4\u804A","workflow.summary.app":"\u5E94\u7528","workflow.dangling.activities":"Activities","workflow.dangling.effects":"Effects","workflow.dangling.waits":"Waits","workflow.dangling.cancels":"Cancels","catalog.title":"\u5DE5\u4F5C\u6D41\u76EE\u5F55","catalog.subtitle":"\u4ECE\u5DF2\u4FDD\u5B58\u7684 workflow \u5B9A\u4E49\u521B\u5EFA\u4E00\u6B21\u8FD0\u884C\u3002","catalog.searchPlaceholder":"\u641C\u7D22 workflowId / \u8DEF\u5F84","catalog.refresh":"\u5237\u65B0","catalog.loading":"\u6B63\u5728\u52A0\u8F7D\u76EE\u5F55...","catalog.loadFailed":"\u76EE\u5F55\u52A0\u8F7D\u5931\u8D25\uFF1A{error}","catalog.noDefinitions":"\u6CA1\u6709\u627E\u5230 workflow \u5B9A\u4E49\u3002","catalog.noFilterMatch":"\u6CA1\u6709\u7B26\u5408\u7B5B\u9009\u6761\u4EF6\u7684\u5B9A\u4E49\u3002","catalog.table.workflow":"\u5DE5\u4F5C\u6D41","catalog.table.version":"\u7248\u672C","catalog.table.params":"\u53C2\u6570","catalog.table.nodes":"\u8282\u70B9","catalog.table.revision":"\u4FEE\u8BA2","catalog.table.path":"\u8DEF\u5F84","catalog.paramSummary":"{required}/{total} \u5FC5\u586B","catalog.back":"\u8FD4\u56DE\u76EE\u5F55","catalog.detailTitle":"\u5DE5\u4F5C\u6D41\u5B9A\u4E49","catalog.definitionLoadFailed":"\u5B9A\u4E49\u52A0\u8F7D\u5931\u8D25\uFF1A{error}","catalog.summary":"\u6458\u8981","catalog.paramsSchema":"\u53C2\u6570 Schema","catalog.definitionJson":"\u5B9A\u4E49 JSON","catalog.runPanel":"\u8FD0\u884C\u5DE5\u4F5C\u6D41","catalog.paramsJson":"\u53C2\u6570 JSON","catalog.paramsPlaceholder":`{
|
|
15
|
+
"city": "\u5317\u4EAC"
|
|
16
|
+
}`,"catalog.chatId":"\u7FA4\u804A ID","catalog.larkAppId":"\u98DE\u4E66\u5E94\u7528 ID","catalog.chatBindingHint":"\u5FC5\u586B\uFF0C\u7528\u4E8E\u786E\u5B9A humanGate \u5361\u7247\u53D1\u9001\u5230\u54EA\u4E2A\u98DE\u4E66\u7FA4\uFF0C\u4EE5\u53CA\u53D6\u6D88\u8DEF\u7531\u5F52\u5C5E\u3002","catalog.run":"\u8FD0\u884C","catalog.running":"\u542F\u52A8\u4E2D...","catalog.badParamsJson":"\u53C2\u6570\u5FC5\u987B\u662F JSON object\u3002","catalog.writeAccess":"\u9700\u8981\u5199\u6743\u9650\uFF1A\u8BF7\u5728\u7EC8\u7AEF\u8FD0\u884C `botmux dashboard` \u83B7\u53D6\u4E00\u6B21\u6027 URL\uFF0C\u6253\u5F00\u540E\u5199\u5165 cookie\uFF0C\u518D\u56DE\u6765\u8FD0\u884C\u3002","catalog.runHttp":"run HTTP {status}","catalog.runStarted":"\u8FD0\u884C\u5DF2\u542F\u52A8\uFF1B\u6B63\u5728\u6253\u5F00\u8BE6\u60C5\u9875...","catalog.invalidParams":"\u53C2\u6570\u65E0\u6548","catalog.issue":"{path}: {message}","catalog.noParams":"\u6CA1\u6709\u58F0\u660E\u53C2\u6570\u3002","catalog.required":"\u5FC5\u586B","catalog.optional":"\u53EF\u9009","catalog.default":"\u9ED8\u8BA4\u503C","catalog.description":"\u8BF4\u660E","catalog.path":"\u8DEF\u5F84","catalog.revision":"\u4FEE\u8BA2","catalog.nodeCount":"\u8282\u70B9\u6570"},oe={"app.name":"botmux","app.subtitle":"Feishu AI CLI Control","time.secondsAgo":"{value}s ago","time.minutesAgo":"{value}m ago","time.hoursAgo":"{value}h ago","nav.overview":"Overview","nav.sessions":"Sessions","nav.sidebarCollapse":"Collapse sidebar","nav.sidebarExpand":"Expand sidebar","nav.groups":"Groups","nav.schedules":"Schedules","nav.settings":"Settings","nav.botDefaults":"Bot Defaults","nav.skills":"Skills","status.live":"Live","status.disconnected":"Disconnected","status.system":"System","status.light":"Light","status.dark":"Dark","status.language":"Language","status.theme":"Theme","theme.base":"Basic","theme.skins":"Skins","skin.cyber":"2077","skin.genshin":"Genshin","skin.fallout":"Fallout","skin.prts":"PRTS","skin.bluearchive":"Blue Archive","skin.zzz":"ZZZ","skin.dragonball":"Dragon Ball","skin.ikun":"ikun","botOnboarding.add":"Add Bot","botOnboarding.title":"Add Bot","botOnboarding.intro":"Pick a CLI and working directory, scan to create a PersonalAgent app \u2014 the dashboard writes it to local bots.json and auto-configures Open Platform permissions.","botOnboarding.cliLabel":"CLI adapter","botOnboarding.dirModeLabel":"Working dir for new topics","botOnboarding.dirModeFixed":"Fixed default dir (recommended) \u2014 new topics start there directly, no picker card","botOnboarding.dirModeCard":"Repo-select card \u2014 new topics first show a card listing scanned git repos","botOnboarding.dirLabelFixed":"Default working directory","botOnboarding.dirLabelCard":"Repo scan root","botOnboarding.dirPlaceholderFixed":"Default ~ (home); must exist on the daemon host","botOnboarding.dirPlaceholderCard":"e.g. ~/projects \u2014 the card lists git repos under it; must exist on the daemon host","botOnboarding.modelLabel":"Model (optional)","botOnboarding.modelPlaceholder":"Leave empty for the CLI default model","botOnboarding.modelTtadkPlaceholder":"ttadk gateway model, default {model}, editable anytime","botOnboarding.modelTtadkCocoPlaceholder":"CoCo needs no model","botOnboarding.startScan":"Start scan","botOnboarding.cancel":"Cancel","botOnboarding.starting":"Generating QR code...","botOnboarding.waiting":"Scan with the Feishu app to create the app.","botOnboarding.verifying":"Scan accepted. Verifying credentials...","botOnboarding.configuringPermissions":"Auto-configuring Open Platform permissions\u2026","botOnboarding.platformScanHint":"Scan once more with the Feishu app to sign in to the Open Platform (to auto-import permissions, set the callback, and submit a version).","botOnboarding.platformQrAlt":"Open Platform login QR code","botOnboarding.completed":"Bot added.","botOnboarding.permissionOk":"Auto-imported {count} permissions.","botOnboarding.permissionSkipped":"({count} skipped \u2014 not in the tenant catalog)","botOnboarding.permissionVersion":"Submitted version {version}.","botOnboarding.permissionManual":"Permissions could not be auto-configured. Complete these steps manually:","botOnboarding.metaDir":"Dir","botOnboarding.failed":"Add failed","botOnboarding.openLink":"Open scan link in browser","botOnboarding.close":"Close","botOnboarding.restartHint":"bots.json has been updated. Run pnpm daemon:restart for the new bot to take effect.","botOnboarding.needsOwner":"Could not auto-confirm the scanner identity. Enter an owner manually to finish.","botOnboarding.ownerLabel":"Owner (bot administrator)","botOnboarding.ownerPlaceholder":"Full email / union_id (on_) / open_id (ou_), comma-separated","botOnboarding.ownerHint":"An owner is required so the bot is not left open for anyone to run admin actions. Prefer a company email or union_id (on_).","botOnboarding.ownerSubmit":"Save owner & finish","botOnboarding.ownerEmpty":"Enter at least one owner.","botOnboarding.ownerInvalid":"Owner validation failed. Please check and retry.","botOnboarding.qrAlt":"Feishu bot onboarding QR code","overview.title":"Workbench","overview.subtitle":"Live status of your AI teammates \xB7 synced with Feishu topics","overview.team":"AI Team","overview.teamHint":"Live status of every digital teammate","overview.attention":"Needs You","overview.attentionHint":"Blocked tasks \u2014 one reply gets them moving again","overview.activeSessions":"Active Sessions","overview.activeSessionsHint":"Sessions currently running","overview.today":"Right Now","overview.todayHint":"Active session distribution","overview.viewAll":"View all \u2192","overview.botIdle":"Standing by, ready for new tasks","overview.botOffline":"Offline \u2014 daemon not running","overview.botBusy":"Working \xB7 {count} sessions","overview.botNeedsYou":"Waiting on you","overview.botReady":"Ready","overview.botOff":"Offline","overview.sessionsCount":"{count} sessions","overview.lastActive":"active {time} ago","overview.noAttention":"Nothing waiting on you","overview.teamExpand":"Show all {count} \u25BE","overview.teamCollapse":"Collapse \u25B4","strip.pending":"{count} pending","strip.longest":"waiting {time} \u2014 {bot} {reason}","strip.handle":"Handle now","overview.openSessions":"Active Sessions","overview.workingSessions":"Working","overview.onlineBots":"Online Bots","overview.schedules":"Schedules","overview.groups":"Groups Seen","overview.enabledSchedules":"Enabled","overview.total":"total","overview.active":"active","overview.daemonRegistry":"daemon registry","overview.chatMatrix":"chat matrix","overview.recentSessions":"Recent Sessions","overview.nextSchedules":"Next Runs","overview.noSessions":"No sessions yet.","overview.noSchedules":"No schedules yet.","sessions.title":"Session Control","sessions.subtitle":"Locate Feishu topics, open Web Terminal, close or resume CLI sessions.","sessions.search":"Search working dir / title / IDs","sessions.anyStatus":"Any status","sessions.adoptAny":"adopt: any","sessions.adoptYes":"adopt: yes","sessions.adoptNo":"adopt: no","sessions.activeOnly":"Active only","sessions.closeSelected":"Close selected","sessions.clearSelection":"Clear","sessions.selectedCount":"{count} sessions selected","sessions.idleCleanupOlderThan":"Idle over","sessions.idleCleanupThreshold":"Idle cleanup threshold","sessions.idleCleanupRun":"Clean idle","sessions.idleCleanupCount":"{count} cleanable","sessions.idleCleanupConfirm":"Close {count} sessions idle for more than {threshold}?","sessions.idleCleanupRunning":"Cleaning\u2026","sessions.idleCleanupDone":"Closed {closed}, failed {failed}","sessions.idleCleanupFailed":"Cleanup failed","sessions.lock":"Lock session","sessions.unlock":"Unlock session","sessions.locked":"Locked","sessions.lockSelected":"Lock selected","sessions.unlockSelected":"Unlock selected","sessions.lockFailed":"Failed to update lock state","sessions.bot":"Bot","sessions.cli":"CLI","sessions.chat":"Chat","sessions.openChat":"Open chat","sessions.status":"Status","sessions.status.starting":"Starting","sessions.status.working":"Working","sessions.status.idle":"Idle","sessions.status.dormant":"Dormant","sessions.status.analyzing":"Analyzing","sessions.status.active":"Active","sessions.status.limited":"Limit reached","sessions.status.closed":"Closed","sessions.status.unknown":"Unknown","sessions.tokenIn":"Token In","sessions.tokenOut":"Token Out","sessions.titleCol":"Title","sessions.workingDir":"Working Dir","sessions.created":"Created","sessions.last":"Last","sessions.adopt":"Adopt","sessions.actions":"Actions","sessions.details":"Details","sessions.copy":"Copy","sessions.copied":"Copied","sessions.locate":"Locate Topic","sessions.locating":"Sending...","sessions.cooldown":"Cooldown {seconds}s","sessions.openTerminal":"Terminal","sessions.writeLink":"Write Link","sessions.writeLinkHint":"Get a writable terminal link (carries a write-access token; opens in a new tab)","sessions.writeLinkFail":"Failed to get write link","sessions.close":"Close Session","sessions.restart":"Restart CLI","sessions.restartConfirmIntro":"You are about to restart this CLI.","sessions.restartConfirmStatus":"Current status","sessions.restartConfirmCli":"CLI","sessions.restartConfirmQuestion":"Restart this CLI?","sessions.restartFailed":"Restart failed","sessions.resume":"Resume Session","sessions.dismiss":"Close","sessions.closeConfirm":"Close this session?","sessions.resumeFailed":"Resume failed","sessions.land":"Land","sessions.landLoading":"Loading sandbox diff\u2026","sessions.landUnavailable":"Cannot land","sessions.landEmpty":"No changes in the sandbox clone.","sessions.landApply":"Apply to disk","sessions.landDiscard":"Discard","sessions.landApplied":"Landed","sessions.landFailed":"Land failed","sessions.landDiscarded":"Discarded (sandbox clone not applied).","sessions.insight":"Insight","sessions.insightLoading":"Analyzing\u2026","sessions.insightUnavailable":"Insight unavailable","sessions.insightEmpty":"No analyzable tool spans in this session yet.","sessions.insightMetrics":"spans {total} \xB7 failed {failed} \xB7 slow {slow} \xB7 read/write {rw} \xB7 compactions {compactions}","sessions.insightSuggestions":"Suggestions","sessions.insightSpans":"Action spans","sessions.insightCapped":"showing first {shown}/{total}","sessions.insightAsOf":"as of {asOf}","sessions.insightPartial":"(may exclude the in-flight latest turn)","nav.insights":"Insight","insights.title":"Workflow Insight","insights.subtitle":"Read-only analysis of local Claude Code / Codex sessions \u2014 action trace, failures, friction, with rule-based optimization tips.","insights.refresh":"Refresh","insights.search":"Search session / bot / dir\u2026","insights.filter":"Filter","insights.filterAll":"All","insights.filterReview":"Worth review","insights.filterFailed":"Has failures","insights.filterSlow":"Has slow spans","insights.loading":"Analyzing\u2026","insights.loaded":"Loaded {count} sessions","insights.unavailable":"Load failed","insights.listCount":"showing {shown}/{total}","insights.tabOverview":"Overview","insights.tabSessions":"Sessions","insights.tabDist":"Distribution","insights.tabHot":"Hotspots","insights.projectAll":"All projects","insights.timeAll":"All time","insights.time1d":"Last 1d","insights.time7d":"Last 7d","insights.time30d":"Last 30d","insights.clear":"Clear","insights.emptyAnalyzableHint":"Check \u201CIncl. unanalyzed\u201D to see the remaining sessions.","insights.showAll":"Incl. unanalyzed","insights.distHint":"Metric distribution across the currently filtered sessions \u2014 see the shape and where typical values land.","insights.distSpans":"Spans per session","insights.distFailed":"Failures per session","insights.distSlow":"Slow spans per session","insights.distAgentTime":"Agent working time","insights.distRw":"Read/write ratio","insights.distChurn":"Code churn (lines)","insights.distTrend":"Trend by day (last 4 weeks)","insights.distTrendSub":"sessions / day","insights.distMedian":"median {v}","insights.distEmpty":"No analyzable sessions under the current filter.","insights.disclosure":`Measurement note: durations count tool-execution time only and exclude time spent waiting for a user reply (question / plan approval), so they do not reflect wall-clock; Codex reads files mostly via shell (exec_command), not counted as "read", so its read/write ratio runs low or 0; code churn is parsed from patches and covers only each session's most active files. Cross-tool distributions and ratios are indicative only, not directly comparable.`,"insights.rwNote":"Codex reads mostly via shell, not counted as reads","insights.viewSessions":"View sessions","insights.hotHint":"Cross-session recurrence \u2014 where it pays to converge.","insights.hotToolFailures":"Tool failure hotspots","insights.hotSlowSessions":"Slowest sessions","insights.hotProjects":"Projects","insights.hotFiles":"File recurrence","insights.hotCommands":"Command recurrence","insights.hotErrors":"Error recurrence","insights.hotComingSoon":"File / command recurrence hotspots coming soon (needs cross-session engine aggregation).","insights.hotSessionsCol":"sessions","insights.hotFailsCol":"fails","insights.hotSlowCol":"slow","insights.backToList":"Back to list","insights.sortLabel":"Sort","insights.sortRecent":"Recent","insights.sortReview":"Review","insights.sortSpans":"Spans","insights.sortFails":"Failures","insights.sortSlow":"Slow","insights.sortAgent":"Duration","insights.layoutCard":"Cards","insights.layoutTable":"Table","insights.colTitle":"Session","insights.colProject":"Project","insights.colTime":"Time","insights.paletteOpen":"Jump \u2318K","insights.palettePlaceholder":"Jump to a tab or search sessions\u2026","insights.paletteTabs":"Views","insights.paletteSessions":"Sessions","insights.paletteEmpty":"No matches","insights.tabFlow":"Flow","insights.flowHint":"Where the agent spends its actions and time across activity phases, and each session\u2019s rhythm.","insights.flowPipeline":"Activity-phase pipeline","insights.flowPipeSub":"research \u2192 edit \u2192 run \u2192 delegate \u2192 discuss; top = actions, bottom = time","insights.flowShares":"Action share vs time share","insights.flowActShare":"Action share","insights.flowTimeShare":"Time share","insights.flowRhythm":"Per-session rhythm (by duration)","insights.subagents":"Sub-agents","insights.subagentsHint":"Sub-agents this session delegated to (Task/Agent) \u2014 what each did and how long it ran.","insights.readsShort":"read","insights.editsShort":"edit","insights.durShort":"dur","insights.empty":"No matching sessions.","insights.selectSession":"Pick a session on the left to see action spans and suggestions.","insights.detailLoading":"Loading session detail\u2026","insights.recommendations":"Suggestions","insights.recommendationsHint":"Rule-based cross-session rollup, each traceable to a metric.","insights.noRecommendations":"No suggestions.","insights.seenInSessions":"seen in {count} sessions","insights.toolFailures":"Top tool failures","insights.toolFailuresHint":"Failed spans grouped by tool.","insights.noFailures":"No failed spans.","insights.metricSessions":"Sessions","insights.metricAnalyzed":"{count} analyzed","insights.metricSpans":"Spans","insights.metricSafe":"redacted","insights.metricFailed":"Failed spans","insights.metricSlow":"Slow spans","insights.metricRw":"Read/write","insights.metricCompactions":"compactions {count}","insights.spansShort":"span ","insights.failedShort":"fail ","insights.slowShort":"slow ","insights.rwShort":"r/w ","insights.unsupported":"CLI not supported","insights.noTranscript":"No transcript","insights.parseError":"Parse failed","insights.noSpans":"No analyzable spans.","insights.sevBad":"Critical","insights.sevWarn":"Warn","insights.sevInfo":"Info","insights.phase.research":"Research","insights.phase.edit":"Edit","insights.phase.run":"Run","insights.phase.delegate":"Delegate","insights.phase.discuss":"Discuss","insights.trace":"Action spans","insights.ledger":"Per-turn ledger","insights.detailTabs":"Detail views","insights.spanStatus":"Status","insights.spanTool":"Tool","insights.spanPhase":"Phase","insights.spanDuration":"Duration","insights.spanTurn":"Turn","insights.spanSummary":"Summary","insights.ledgerMore":"Show {count} more summaries","insights.ledgerOmitted":"{count} more hidden","insights.ledgerNoContent":"No redacted summary for this turn.","insights.diagShow":"Show evidence","insights.diagActive":"Viewing","insights.evMatched":"{count} matching spans","insights.evMatchedCapped":"{matched} matched \xB7 showing {shown}","insights.evDefault":"{shown} of {total} spans (focused)","insights.evShowAll":"Show all {count}","insights.evBackToEvidence":"Focused view","insights.intent.run_script":"Run script","insights.intent.test":"Test","insights.intent.typecheck":"Typecheck","insights.intent.lint":"Lint","insights.intent.git":"Git","insights.intent.search":"Search","insights.intent.read_file":"Read","insights.intent.edit_file":"Edit","insights.intent.write_file":"Write","insights.intent.delegate":"Delegate","insights.intent.unknown":"Action","insights.result.ok":"OK","insights.result.tool_error":"Tool error","insights.result.test_failed":"Test failed","insights.result.typecheck_failed":"Typecheck failed","insights.result.lint_failed":"Lint failed","insights.result.command_failed":"Command failed","insights.result.timeout":"Timeout","insights.result.no_output":"No output","insights.result.unknown":"Unknown","insights.tag.failure":"Failures","insights.tag.slow":"Slow","insights.tag.retry":"Retries","insights.tag.read_write_imbalance":"Read/write imbalance","insights.tag.diagnostic":"Diagnostic","insights.tag.normal":"Normal","insights.turnHeadline.turn_has_failures":"{failures} failures this turn","insights.turnHeadline.turn_has_slow_spans":"Slow operations this turn","insights.turnHeadline.turn_has_retries":"Retried the same action repeatedly","insights.turnHeadline.turn_read_write_imbalance":"Edit-heavy turn (edits {edits} / reads {reads})","insights.evTimeline":"Full timeline ({count} spans)","insights.evNoFlags":"No spans flagged as failure / slow / retry","insights.turnAllNormal":"All {count} turns look normal \u2014 nothing to review","insights.turnEvidence":"View {count} evidence spans","insights.turnHiddenNormal":"{count} normal turns hidden","insights.mReads":"Read","insights.mEdits":"Edit","insights.mRuns":"Run","insights.mFailures":"Fail","insights.mDur":"Time","insights.turnHeadline.turn_normal":"Normal","insights.rec.fix_repeated_tool_failures":"Repeated command failures need to converge","insights.rec.split_slow_operation":"Slow operations dragged the whole session","insights.rec.add_read_pass_before_edit":"Too little reading before editing","insights.rec.preserve_context_checkpoints":"Context was compacted \u2014 keep checkpoints","insights.impact.impact_failed_spans":"{failedSpans} actions failed (top: {topTool} \xD7{topToolFailures})","insights.impact.impact_slow_spans":"{slowSpansTotal} slow operations slowed progress","insights.impact.impact_low_read_write_ratio":"Edited {writeSpans}, read only {readSpans}","insights.impact.impact_context_compaction":"{compactions} context compactions this session","insights.why.why_tool_failure_concentrated":"Failures concentrate on {topTool} ({topToolFailures}\xD7) \u2014 likely one root cause","insights.why.why_slow_span_dominates":"A few long operations dominate; slowest is {slowestTool}","insights.why.why_edits_outpaced_reads":"Read/write ratio {readWriteRatio}; editing more than reading invites rework","insights.why.why_context_compaction_happened":"Long session was compacted; early decisions/context may be lost","insights.action.inspect_failed_span_details":"Open each failed action\u2019s detail to find the root cause","insights.action.add_preflight_or_timeout":"Add preflight checks or timeouts to frequently failing commands","insights.action.narrow_or_split_slow_operation":"Narrow or split slow operations (e.g. run targeted tests)","insights.action.surface_timeout_or_progress":"Surface timeouts/progress earlier instead of silently hanging","insights.action.read_or_search_before_editing":"Read or search an unfamiliar file before editing it","insights.action.verify_assumptions_before_running":"Verify assumptions before acting to avoid blind edits","insights.action.write_checkpoints_for_long_tasks":"Write decisions and checkpoints to notes for long tasks","insights.struct.shell":"shell command","insights.struct.fileEdit":"file edit","insights.struct.readSearch":"read/search","insights.struct.agentTask":"agent task","insights.struct.toolInput":"tool input","insights.struct.toolResult":"tool result","insights.struct.toolError":"tool error","insights.struct.patchFailed":"patch failed","insights.struct.patchApplied":"patch applied","insights.struct.exit":"exit {code}","insights.spanAll":"All","insights.dDetail":"Detail","insights.dCollapse":"Hide","insights.dPhase":"Phase","insights.dStart":"Start","insights.dDur":"Duration","insights.dIntent":"Intent","insights.dResult":"Result","insights.dIn":"Input","insights.dOut":"Output","insights.dTags":"Tags","insights.dTurnContext":"Turn {turn} context","insights.advice.failure":"\u{1F4A1} Read the error before retrying \u2014 don\u2019t retry blindly","insights.advice.retry":"\u{1F4A1} Same step retried repeatedly \u2014 find the root cause first","insights.advice.read_write_imbalance":"\u{1F4A1} Read the relevant files before editing to avoid rework","insights.advice.slow":"\u{1F4A1} Slow op: run targeted tests or split it up","insights.turnPrompt":"User","insights.turnExpand":"Expand {count} steps","insights.turnCollapse":"Collapse","insights.turnRail":"Session trace","insights.gantt":"Work timeline","insights.ganttCaption":"{span} actions \xB7 {dur} elapsed \xB7 {active} active","insights.ctxCurve":"Context curve","insights.ctxCaption":"Per-turn in+cache peak \xB7 max {peak} \xB7 {turns} turns","insights.ctxTurn":"Turn {n}","insights.railSubagent":"Subagent","insights.railSubagents":"{n} subagents","insights.turnPromptExpand":"Expand","insights.turnPromptCollapse":"Collapse","insights.turnPromptRaw":"Raw","insights.turnPromptRendered":"Rendered","insights.srcMentions":"mentions","insights.senderHuman":"User","insights.senderA2A":"A2A","insights.senderOther":"Other","insights.senderSystem":"System","insights.turnPromptFull":"Full text","insights.modalClose":"Close","insights.promptTruncated":"Long content, truncated","insights.replay":"Replay","insights.replayAgent":"agent ops","insights.replaySearch":"Search conversation\u2026","insights.replayBy":"From","insights.replayState":"State","insights.replayLoadMore":"Load more ({shown}/{total})","insights.replayAllLoaded":"All loaded ({total})","insights.replayEmpty":"No matching messages","insights.replayNoText":"(no text \u2014 see ops)","insights.replayOps":"{count} ops","insights.wsFiles":"File changes \xB7 {n}","insights.wsCmds":"Commands \xB7 {n}","insights.wsReads":"read {n}","insights.wsEdits":"edit {n}","insights.wsFail":"{n} failed","insights.wsNoFiles":"No file changes","insights.wsNoCmds":"No commands","insights.turnSummary":"{total} turns \xB7 {flagged} need attention","insights.dCommand":"Command","insights.dCmdOutput":"Output","insights.ledgerNormal":"By order","insights.ledgerGrouped":"By recommendation","insights.ledgerOther":"Other turns","insights.ledgerGroupCount":"{count} turns","insights.turnsCapped":"Only first {shown}/{total} actions \u2014 timeline may be incomplete","insights.suggestion.high_tool_failure.title":"Tool failures are concentrated","insights.suggestion.high_tool_failure.action":"Check failed spans first, then add preflight checks or timeout control for repeated failing commands.","insights.suggestion.tool_failure_present.title":"Some tool calls failed","insights.suggestion.tool_failure_present.action":"Review failed spans before repeating the workflow.","insights.suggestion.slow_span.title":"A slow span dominates the session","insights.suggestion.slow_span.action":"Split or bound the slow operation, and surface timeout or progress feedback earlier.","insights.suggestion.low_read_write_ratio.title":"Edits outpaced reads","insights.suggestion.low_read_write_ratio.action":"Add a read/search pass before edits when changing unfamiliar files.","insights.suggestion.context_compaction.title":"Context compaction happened","insights.suggestion.context_compaction.action":"For long tasks, preserve decisions and checkpoints in durable notes or smaller subtasks.","insights.suggestion.no_major_friction.title":"No major trace friction detected","insights.suggestion.no_major_friction.action":"Use the span timeline for spot checks or compare against slower sessions.","insights.evidence.failedSpans":"{count} failed spans","insights.evidence.toolFailedTimes":"{tool} failed {count} times","insights.evidence.multipleToolsFailed":"multiple tools failed","insights.evidence.toolRanSeconds":"{tool} ran for {seconds}s","insights.evidence.readWriteRatio":"read/write ratio {ratio}","insights.evidence.compactions":"compactions {count}","insights.evidence.spansAnalyzed":"{count} spans analyzed","connectors.lede":"Let external systems (alerts, CI, tickets\u2026) trigger a bot to speak in a group or run a workflow via one webhook.","connectors.createTitle":"New Webhook","connectors.fName":"Name","connectors.fNamePh":"e.g. Prod alerts","connectors.fBot":"Trigger bot","connectors.fKind":"Trigger type","connectors.kindTurn":"Single turn (bot responds once)","connectors.kindWorkflow":"Workflow","connectors.fWf":"Workflow ID","connectors.fMode":"Deliver to which group","connectors.modeDynamic":"Specified per request (chat passed in)","connectors.modeFixed":"Fixed group","connectors.modeNewGroup":"New group each time","connectors.fFixedChat":"Target group","connectors.fChatManualPh":"Enter chat ID manually: oc_\u2026","connectors.chatManualLink":"Group not listed? Enter ID manually \u2192","connectors.chatListLink":"\u2190 Pick from group list","connectors.fAllow":"Allowed groups","connectors.optional":" (optional)","connectors.allowHint":"Hold Ctrl/\u2318 to multi-select; empty = unrestricted. Only validates the chat passed in the request.","connectors.dynamicHint":'<b>Dynamic mode</b>: the chat ID is passed per request, one of three ways \u2014 query <code>?chatId=<chatId></code> \xB7 header <code>x-botmux-chat-id: <chatId></code> \xB7 body <code>{"chatId":"<chatId>"}</code>.<br>For "one URL triggers directly, no params", choose Fixed group instead.',"connectors.fDedup":"Dedup field","connectors.fDedupPh":"e.g. alert.id (read from event body)","connectors.dedupHint":"Set: events with the same value go to the <b>same group</b>. Empty: each event <b>creates a new group</b>.","connectors.fInstruction":"Instruction","connectors.fInstructionPh":"What the bot should do on the event. e.g. Summarize the severity, @ the oncall, suggest next steps. Empty = hand the raw event to the model.","connectors.fVerify":"Verification","connectors.verifyToken":"Token (simple: secret in the URL, one curl triggers it)","connectors.verifyHmac":"HMAC signature (advanced: more secure, sign the request yourself)","connectors.fSecret":"Secret / token","connectors.fSecretPh":"Leave empty to auto-generate (shown once)","connectors.btnCreate":"Create","connectors.listTitle":"Existing Webhooks","connectors.loading":"Loading\u2026","connectors.noBotGroups":"(This bot has no visible groups; enter an ID manually on the right)","connectors.modeLabelFixed":"Fixed group","connectors.modeLabelNewGroup":"New group each time","connectors.modeLabelDynamic":"Per-request group","connectors.kindLabelWorkflow":"Workflow","connectors.kindLabelTurn":"Single turn","connectors.count":"\xB7 {count}","connectors.empty":"No webhooks yet. Create one with the form above.","connectors.enabled":"Enabled","connectors.disabled":"Disabled","connectors.badgeToken":"Token","connectors.badgeSign":"Signed","connectors.dest":'to "{name}"',"connectors.btnDisable":"Disable","connectors.btnEnable":"Enable","connectors.btnEdit":"Edit","connectors.btnSave":"Save","connectors.btnCancel":"Cancel","connectors.btnDel":"Delete","connectors.webhookUrl":"Webhook URL: ","connectors.copy":"Copy","connectors.copied":"Copied","connectors.tokenHint":"Token mode: append <code>/<token></code> to the URL when calling (the token is shown only on create/rotate).","connectors.dynamicReqHint":'Dynamic mode: the request must carry the target chat \u2014 <code>?chatId=<chatId></code> or header <code>x-botmux-chat-id</code> or body <code>{"chatId":"\u2026"}</code>.',"connectors.instructionPrefix":"Instruction: ","connectors.delConfirm":"Delete this webhook? Its URL stops working immediately.","connectors.errName":"Enter a name","connectors.errBot":"Pick a bot","connectors.errWf":"Enter a workflow ID","connectors.errChat":"Pick (or enter) a target group","connectors.creating":"Creating\u2026","connectors.saving":"Saving\u2026","connectors.usageDynamicLede":"Dynamic mode: the URL already has the token; pass the target chat ID when calling{gn}:","connectors.usageDynamicNote":'The chat can also go in header <code>x-botmux-chat-id</code> or body <code>{"chatId":"\u2026"}</code>. \u26A0\uFE0F The URL is the credential \u2014 keep it secret.',"connectors.usageTokenLede":"This URL already has the token and a fixed target group; just POST to trigger:","connectors.usageTokenNote":"\u26A0\uFE0F The URL is the credential \u2014 keep it private; delete or rotate it in the list below.","connectors.usageHmac":"The external system must HMAC-SHA256-sign <code>timestamp.body</code> and call with <code>x-botmux-timestamp</code> / <code>x-botmux-nonce</code> / <code>x-botmux-signature</code> headers","connectors.usageHmacDynamic":", and also pass the target chat ID as above","connectors.createdPrefix":'Created "{name}"',"connectors.createdDest":'to "{name}"',"connectors.tokenLabel":"Access token","connectors.signLabel":"Signing secret","connectors.secretOnce":" (shown once \u2014 save it): ","connectors.createFailed":"Create failed: {error}","connectors.saveFailed":"Save failed: {error}","connectors.noOnlineBots":"(No online bots)","team.navHome":"My team","team.navManage":"Team management","team.eyebrow":"Team","team.homeTitle":"Team collaboration (cross-deployment)","team.homeLede":"Invite other deployments (botmux instances teammates run) into one team to discover bots across deployments and pull collaborative groups.","team.localDeployTitle":"This deployment","team.myIdentity":"My Lark identity: ","team.unbound":"Not bound","team.bindBtn":"Bind","team.bindHint":" (auto-identifies you via the bot credentials; once bound, pulling a group adds you and attributes the bots to you)","team.myTeams":"My teams","team.searchPh":"Search name / capability / CLI\u2026","team.allCli":"All CLIs","team.hasCap":"Has capability tag","team.hasRole":"Has default role","team.teamsHint":"Tick bots in any team to pull them into a group (each with its owner). To create a team / generate an invite code / join another team, go to Team management.","team.loading":"Loading\u2026","team.roleModalTitle":"Default role","team.roleModalHint":"The bot default persona (applies across groups), read-only here. To edit, go to the Bot Defaults page.","team.close":"Close","team.tagLocal":"This deployment","team.tagRemoteStale":"Remote \xB7 offline?","team.tagRemote":"Remote","team.removeMember":"Remove","team.depTag":"({tag})","team.depCount":"{count}","team.depSelected":", {n} selected","team.capPh":"Capability tag\u2026","team.viewRole":"View","team.hasRoleShort":"Has role","team.noMatch":"No bots match the filters.","team.gnamePh":"Group name (e.g. cross-team triage)","team.pullGroupBtn":"Pull ticked bots into a group","team.pullGroupHint":"Tick bots \u2192 pull into a Lark group (owner included automatically)","team.noTeams":"No teams yet. Go to Team management to generate an invite code for others to join you, or join another team.","team.connected":"Connected","team.connectFail":"Connection failed: {error}","team.iHost":"I host","team.teamMeta":"{deps} deployments \xB7 {bots} bots","team.rosterFail":"Could not fetch this team roster.","team.acrossTeams":" (across {n} teams, deduped)","team.botsWord":"bots","team.groupCreated":"Group created","team.delegatedBy":' (created by "{name}")',"team.openInLark":"Open in Lark","team.invalidBots":"Bots not added: {ids}","team.invalidOwners":"{n} owner(s) could not be added","team.missingIdentity":"You have not bound a Lark identity, so you were not added to the group (bind it in My team)","team.skippedNoOwner":"{n} bot(s) skipped because their owner has no bound identity (not added)","team.errNoLocalBot":"Tick at least one of your own (this deployment) online bots \u2014 the group is created by it and adds you (the initiator).","team.errAllSkipped":"None of the selected bot owners have a bound identity, so the group cannot be pulled (a bot cannot join a group without its owner). Have those deployments bind an identity first.","team.errNoCreator":"No available group creator (the relevant deployments have no online bot, or are unreachable)","team.errDelegationTimeout":"Timed out delegating group creation to the other deployment (it may have succeeded \u2014 check Lark, do not retry)","team.errGroupCreate":"Group creation failed: {error}","team.roleModalTitleName":"Default role \xB7 {name}","team.bound":"Bound","team.myHostedTeam":"My hosted team","team.remoteTeamLabel":"{name} team","team.manageTitle":"Team management","team.manageLede":"Create multiple teams, generate an invite code per team, or join another team. A team = this deployment bots + the other deployments that joined it.","team.hostedTitle":"Teams I host","team.newTeamPh":"New team name","team.createTeamBtn":"Create team","team.joinTitle":"Join another team","team.hubPh":"Hub address, e.g. http://10.0.0.5:7891","team.codePh":"Invite code","team.joinBtn":"Join","team.noTeamsShort":"No teams yet.","team.default":"Default","team.manageMetaDeps":"{count} deployments","team.manageMetaRemote":" (incl. {r} remote)","team.manageMetaBots":"{count} bots","team.genInvite":"Generate invite code","team.delBtn":"Delete","team.generating":"Generating\u2026","team.inviteResultLede":"Send the two items below to someone on another deployment (valid once, within 24h):","team.inviteHub":"Hub address: ","team.inviteCode":"Invite code: ","team.genFail":"Generation failed.","team.delConfirm":'Delete team "{name}"? Deployments that joined it will be removed (their own deployments are unaffected).',"team.errName":"Enter a team name","team.creating":"Creating\u2026","team.created":"Created","team.createFail":"Create failed: {error}","team.errHubCode":"Enter the hub address and invite code.","team.joining":"Joining\u2026","team.joined":'Joined "{name}" \u2014 see it in My team.',"team.joinErrSelf":"This is your own deployment; you cannot join yourself (the invite code is for someone on another deployment).","team.joinErrAlready":"Your deployment already joined this team.","team.joinErrUnreachable":"Cannot reach the hub (check the address/network).","team.joinErrTimeout":"The hub timed out.","team.joinErrGeneric":"Join failed: {error}","team.identifying":"Identifying\u2026","team.bound2":"Bound: {name}","team.multiCandidate":"Multiple candidates found \u2014 click yourself:","team.binding":"Binding\u2026","team.bindFail":"Bind failed: {error}","team.noCandidates":"No identity found: make sure the bot has allowedUsers configured and contacts permission.","team.removeMemberConfirm":'Remove "{name}" from this team? Its bots disappear from this team roster (their own deployment is unaffected).',"team.creatingGroup":"Creating group\u2026","team.defaultGroupName":"Collaboration group","team.errPickBot":"Tick at least one bot first","sessions.closeBulkConfirm":"Close {count} selected sessions?","sessions.empty":"No sessions match the filters.","sessions.viewMode":"Session view","sessions.viewKanban":"Kanban","sessions.viewBoard":"Board","sessions.viewTable":"Table","sessions.selectSession":"Select session","sessions.board.needsYou":"Needs You","sessions.board.needsYouHint":"Repo, TUI, or usage limit waiting","sessions.board.starting":"Starting","sessions.board.startingHint":"CLI is spawning or resuming","sessions.board.working":"Working","sessions.board.workingHint":"Streaming, analyzing, or using tools","sessions.board.idle":"Idle","sessions.board.idleHint":"Ready for the next message","sessions.board.emptyColumn":"No sessions","sessions.board.signalRepo":"Repo needed","sessions.board.signalPrompt":"TUI choice needed","sessions.board.signalLimited":"Usage limited","sessions.board.signalAgent":"Needs human input","sessions.board.waiting":"Waiting","sessions.board.dragHint":"Drag header to reorder columns","sessions.board.moveLeft":"Move column left","sessions.board.moveRight":"Move column right","sessions.kanban.backlog":"Backlog","sessions.kanban.todo":"Todo","sessions.kanban.inProgress":"In Progress","sessions.kanban.inReview":"In Review","sessions.kanban.done":"Done","sessions.kanban.updated":"Updated {time}","sessions.kanban.moreHidden":"{count} more hidden","sessions.create.button":"Create session","sessions.create.title":"Create session","sessions.create.content":"Content","sessions.create.contentPlaceholder":"Describe the task; in Lead-dispatch mode you can assign different work to each agent here","sessions.create.bots":"Bots (added to the new group)","sessions.create.noBots":"No online bots to pick","sessions.create.mode":"Collaboration mode","sessions.create.modeAll":"Work together","sessions.create.modeLead":"Lead dispatch (recommended)","sessions.create.modeHelp":"Work together: every selected bot starts its own session with the same content. Lead dispatch: only the lead starts; it @-mentions the other bots in the chat to bring them in.","sessions.create.lead":"Lead bot","sessions.create.leadHelp":"The content goes to the lead, which decides when to bring up each sub-bot.","sessions.create.leadPickFirst":"Pick bots above first","sessions.create.column":"Initial column","sessions.create.columnInProgress":"In progress now","sessions.create.columnBacklog":"Backlog","sessions.create.columnHelp":"In progress: start immediately after the group is created. Backlog: create the group and add bots but do not start the CLI; drag to \u201CIn Progress\u201D or hit \u201CStart\u201D later to send the content.","sessions.create.advanced":"More options","sessions.create.groupName":"Group name","sessions.create.groupNamePlaceholder":"Defaults to the first line of the content","sessions.create.workingDir":"Working directory","sessions.create.workingDirHelp":"Optional. If set, binds the new group to this directory (all bots work there). Leave blank to pick a repo via the /repo card in the chat (worktree creation supported).","sessions.create.submit":"Create","sessions.create.submitting":"Creating\u2026","sessions.create.cancel":"Cancel","sessions.create.start":"Start","sessions.create.errContent":"Please enter the content","sessions.create.errNoBot":"Pick at least one bot","sessions.create.errLead":"Lead must be one of the selected bots","sessions.create.failed":"Create failed","sessions.create.startFailed":"Start failed","sessions.create.doneTitle":"Created","sessions.create.doneInProgress":"Group created and session(s) started","sessions.create.doneBacklog":"Group created; session(s) queued in Backlog","sessions.create.partialFail":"{n} bot(s) could not be started \u2014 you can @-mention them in the chat to retry","sessions.create.openChat":"Open Feishu chat","sessions.create.close":"Close","sessions.kanban.openTab":"Open in new tab","sessions.kanban.openFeishu":"Open in Feishu","sessions.kanban.terminalLoading":"Opening terminal\u2026","sessions.kanban.rename":"Rename (double-click title works too)","sessions.kanban.renameFail":"Rename failed","sessions.kanban.moveFail":"Move failed","sessions.kanban.groupBy":"Group by","sessions.kanban.groupFlow":"Workflow","sessions.kanban.groupTeam":"Team","sessions.kanban.groupBot":"Bots","sessions.kanban.teamLoading":"Loading teams\u2026","sessions.kanban.noTeam":"No teams","sessions.kanban.teamScope":"{chats} collab chats \xB7 {sessions} sessions","sessions.kanban.remoteHint":"Session from the {name} deployment (snapshot; terminal/history live on their machine)","sessions.kanban.clusterDragHint":"Drag header to move the whole group","sessions.history.title":"History","sessions.history.loading":"Fetching Feishu messages\u2026","sessions.history.fail":"Failed to load history","sessions.history.empty":"No messages","sessions.history.user":"User","sessions.history.owner":"Owner","sessions.history.staleHint":"The dashboard or daemon process may still run an old build \u2014 botmux restart and retry","groups.title":"Groups & Bots","groups.subtitle":"Inspect the chat x bot matrix and manage group creation, oncall, leave, and disband flows.","groups.search":"Search chat name / ID / owner","groups.missingOnly":"Missing bot only","groups.refresh":"Refresh","groups.create":"New Group","groups.chat":"Chat","groups.actions":"Actions","groups.addBots":"Add Bots","groups.saveAsProfile":"Save as Profile","groups.manage":"Manage","groups.empty":"No chats match the filters.","groups.profileStatusFull":"Fully matches {name} ({matched}/{total})","groups.profileStatusFullChat":"Group roles fully match {name} ({matched}/{total})","groups.profileStatusPartial":"Partially matches {name} ({matched}/{total})","groups.profileStatusUnmatched":"No profile match","groups.saveProfileTitle":"Save as Profile","groups.saveProfileIntro":'Save {count} in-chat bot configs from "{name}" as a profile snapshot.',"groups.saveProfileScope":"Save scope","groups.saveProfileScopeHelp":"In-chat bot config snapshot","groups.saveProfileBotCount":"Bots in chat","groups.saveProfileLoadFailed":"Load failed","groups.saveProfileStatus.entry":"Create entry","groups.saveProfileStatus.error":"Load failed","groups.saveProfileMode":"Save mode","groups.saveProfileNew":"New Profile","groups.saveProfileNewHelp":"Create a new snapshot by default; if the id exists, matching bot entries are overwritten.","groups.saveProfileOverwrite":"Overwrite Existing Profile","groups.saveProfileOverwriteHelp":"Pick an existing profile and overwrite entries for the same bots.","groups.saveProfileExistingMeta":"{count} entries","groups.saveProfileIdLabel":"Profile id","groups.saveProfileExistingLabel":"Existing Profile","groups.saveProfileExistingEmpty":"No existing profiles","groups.saveProfileTarget":"Target Profile","groups.saveProfileTargetNew":"Will create or update this profile with the in-chat bot snapshot","groups.saveProfileTargetOverwrite":"Will overwrite entries for these bots in the existing profile","groups.saveProfileEntrySummary":"Will create profile entries for {count} in-chat bots.","groups.saveProfileEntrySummaryWithEmpty":"Will create profile entries for {count} in-chat bots; {emptyCount} currently have no returned role content and will be saved as empty entries.","groups.saveProfileFailedLoadSummary":"{count} bot configs failed to load. Saving is paused to avoid an incomplete snapshot.","groups.saveProfileSubmit":"Save Profile","groups.saveProfileOverwriteSubmit":"Overwrite Save","groups.saveProfileInvalid":"Profile id may contain letters, numbers, dots, underscores, and hyphens only; max 64; cannot be . or ..","groups.saveProfileNoRoles":"This chat has no bot configs to save.","groups.saveProfileSaving":"Saving\u2026","groups.saveProfileDone":"Saved {count} entries into {name}","groups.saveProfileFailed":"Saved only {saved}/{total} entries. Check offline bots or permissions.","groups.createTitle":"Create New Group","groups.createHelp":"Pick bots to invite. The dashboard chooses an online daemon as creator.","groups.name":"Group Name","groups.namePlaceholder":"e.g. AI ChangeLog","groups.bindDir":"Bind Directory","groups.bindDirHelp":"New topics start the CLI here and skip repo selection.","groups.roleProfile":"Profile","groups.roleProfileNone":"None","groups.roleProfileHelp":"After creation, send a profile apply bootstrap command in the new group.","groups.roleProfileBootstrapSent":"Profile: {name}; bootstrap message sent: {messageId}","groups.roleProfileBootstrapDone":"Profile: {name}; bootstrap completed with no peer bootstrap message needed.","groups.roleProfileBootstrapFailed":"Profile: {name}; bootstrap failed: {reason}","groups.botPicker":"Bots","groups.createSubmit":"Create","groups.cancel":"Cancel","groups.successTitle":"Group Created","groups.openGroup":"Open Group","groups.manageTitle":"Manage {name}","groups.owner":"Owner","groups.oncall":"Oncall Mode","groups.oncallHelp":"When enabled, group members can @ the bot; the selected bot's new topics in this group use its bound directory (binding is per-bot \u2014 only the checked bots are affected).","groups.leaveTitle":"Select Bots to Leave","groups.leaveSelected":"Selected Bots Leave","groups.disband":"Disband Group","groups.dangerHint":"Disband only works when an in-chat bot is the owner. Otherwise prefer leaving the chat.","groups.save":"Save","groups.needWorkingDir":"Working directory is required","groups.noBotsOnline":"No bots online. Restart the daemon first.","schedules.title":"Schedules","schedules.subtitle":"View, pause, resume, and run scheduled tasks across daemons.","schedules.search":"Search name / prompt / working dir","schedules.anyKind":"Any kind","schedules.enabledOnly":"Enabled only","schedules.name":"Name","schedules.bot":"Bot","schedules.schedule":"Schedule","schedules.next":"Next","schedules.last":"Last","schedules.repeat":"Repeat","schedules.enabled":"Enabled","schedules.actions":"Actions","schedules.runNow":"Run Now","schedules.pause":"Pause","schedules.resume":"Resume","schedules.delivery":"Delivery","schedules.deliveryOrigin":"Original thread","schedules.deliveryNewTopic":"New topic each run","schedules.deliveryLocal":"Log only","schedules.useNewTopic":"Switch to new-topic","schedules.useOrigin":"Switch to original","schedules.empty":"No schedules.","settings.title":"Global Settings","settings.subtitle":"Manage machine-wide botmux dashboard behavior shared by every bot.","settings.loading":"Loading settings\u2026","settings.loadFailed":"Failed to load settings","settings.readOnlyVisitor":"Read-only access \u2014 changing settings requires an authorized link (run botmux dashboard).","settings.sectionAccess":"Access","settings.publicReadOnly":"Allow tokenless read-only dashboard access","settings.publicReadOnlyHelp":"When enabled, visitors without a token can view the dashboard, sessions, schedules, and SSE. Writes such as close, pause, and approvals still require token auth. Sensitive raw terminal logs always require a token.","settings.remoteAccess":"Remote terminal access","settings.remoteAccessHelp":'When enabled, session web terminals, Feishu card "Open terminal" / "Get writable link" buttons, and webhooks all use central-platform links; when off, local links are used. Off by default.',"settings.sectionCards":"Feishu Cards","settings.openTerminalInFeishu":"Open streaming-card terminals in the Feishu sidebar","settings.openTerminalInFeishuHelp":"Off by default: terminal buttons open the Web Terminal URL directly. When enabled, botmux wraps the URL with Feishu web_url/open so Feishu PC opens it in a sidebar. Terminal write access is still controlled by its token.","settings.sectionExperimental":"Experimental","settings.chatBotDiscovery":"In-chat bot discovery (Feishu /members/bots)","settings.chatBotDiscoveryHelp":"When enabled, botmux reads the current chat's bot members in real time via Feishu /members/bots so multiple bots can reliably @-mention each other \u2014 it works from the very first message, with no need to accumulate past @ history, making multi-bot collaboration more robust. This is a non-public Feishu endpoint: it is on by default and automatically falls back to legacy discovery (per-bot probing + observed @ history) on failure. Turn it off (forcing the legacy path) only if your tenant/gateway does not support the endpoint, if it returns inaccurate membership that causes wrong or missing @-mentions, or if a Feishu change breaks its behaviour.","settings.sectionRepoPicker":"Repo Picker","settings.repoPickerMode":"Repo picker card mode","settings.repoPickerModeAll":"Repos + worktrees","settings.repoPickerModeRepos":"Main repos only","settings.repoPickerModeHelp":"Default shows repositories and linked worktrees. Main repos only hides linked worktrees from initialization and bare /repo cards; explicit /repo /abs/path/to/worktree still works.","settings.saving":"Saving\u2026","settings.saved":"Saved","settings.saveFailed":"Save failed","settings.sectionMaintenance":"Auto Maintenance","settings.autoUpdate":"Auto update","settings.autoUpdateHelp":"Off by default. At the set time, runs npm install -g botmux@latest to install the latest version (download/install only \u2014 no restart). npm-global installs only.","settings.autoRestart":"Auto restart","settings.autoRestartHelp":"Off by default; requires auto-update. After auto-update installs a newer version, restart to apply it if no session is in progress (busy \u21D2 slips to the next day).","settings.autoUpdateLocalDev":"This is a local-dev install (running from source); auto-update is unavailable.","settings.maintenanceTime":"Time","update.section":"Version & Update","update.loginRequired":"Sign in to check the version, update, or restart.","update.loading":"Checking\u2026","update.checkFailed":"Check failed","update.current":"Current version","update.upToDate":"Up to date","update.newAvailable":"New version {version} available","update.checkUnavailable":"Couldn't fetch the latest version (offline or network-restricted)","update.nodeWarn":"Node {version} is too old; update requires \u2265 {required}. Please upgrade Node first.","update.localDev":'This is a local-dev install (running from source); "Update to latest" is unavailable \u2014 use git pull + build, then restart.',"update.multiInstallWarn":"Multiple botmux installs detected. npm only updates the npm-global one, which may not be the active version:","update.kindNpm":"npm-global","update.kindSource":"source checkout","update.kindUnknown":"unknown","update.btnCheck":"Check for updates","update.btnChangelog":"View what's new","update.btnChangelogHide":"Hide changelog","update.btnUpdate":"Update to latest","update.btnRestart":"Restart botmux","update.changelogLoading":"Loading changelog\u2026","update.changelogEmpty":"No release notes newer than the current version.","update.changelogFailed":"Couldn't load the changelog (offline or network-restricted).","update.changelogRateLimited":"GitHub API rate limit hit (60 req/h per IP unauthenticated, easily tripped on shared networks). Try again later.","update.changelogViewOnGitHub":"View on GitHub Releases","update.navBadgeTitle":"New version {version} available","update.confirmMultiInstall":`Multiple botmux installs detected:
|
|
17
|
+
{paths}
|
|
18
|
+
|
|
19
|
+
npm only updates the npm-global one, which may not be the active version. Continue anyway?`,"update.confirmUpdate":"This will run npm install -g botmux@latest to update to {version}. Continue?","update.confirmUpdateNoVer":"This will run npm install -g botmux@latest to update to the latest version. Continue?","update.nodeTooOldAlert":"Node {version} is too old (requires \u2265 {required}). Please upgrade Node before updating.","update.updating":"Updating (npm install -g botmux@latest)\u2026","update.updatedChanged":"Updated {old} \u2192 {new}.","update.confirmRestart":"A restart is required to apply the new version. Restart now? (Sessions cold-resume; the dashboard briefly disconnects and reconnects.)","update.alreadyLatestRun":"Already on the latest version ({version}); nothing to update.","update.updateFailed":"Update failed: {detail}","update.noRestartHint":"Update installed. Restart later (botmux restart) to apply the new version.","update.confirmPlainRestart":"Restart botmux? Sessions cold-resume; the dashboard briefly disconnects and reconnects.","update.restarting":"Restarting botmux, waiting to reconnect\u2026","update.restartSlow":"Restart is taking a while; please refresh the page manually.","update.restartFailed":"Restart failed: {detail}","skills.title":"Skill Management","skills.subtitle":"Manage CLI-neutral botmux Skill assets and choose priority disclosure per bot.","skills.installed":"Installed Skills","skills.installedHelp":"Skill assets in the local registry that bots can disclose first.","skills.overviewTitle":"Organize Skill assets by bot","skills.overviewBody":"Global Skill delivery settings control session injection; each bot only manages its priority disclosure list.","skills.metricInstalled":"Installed Skills","skills.metricBots":"Configured Bots","skills.metricAttached":"Priority refs","skills.install":"Install Skill","skills.installInfoLabel":"Install location details","skills.installInfo":`Registry: ~/.botmux/skills/registry.json
|
|
20
|
+
Install: ~/.botmux/skills/store/skill-name; Git cache: ~/.botmux/skills/sources
|
|
21
|
+
Isolation: Codex/Claude global directories are not modified; local CLI Skills are referenced in place`,"skills.source":"Import Address","skills.sourcePlaceholder":"Paste a GitHub Skill page, Git URL, or local Skill directory","skills.sourceHelpRemoteLabel":"GitHub / Git: ","skills.sourceHelpRemote":"Paste a Skill directory page or repository URL; repository URLs need a repo path.","skills.sourceHelpLocalLabel":"Local CLI Skill directory: ","skills.sourceHelpLocal":"Referenced in place without copying into the botmux store.","skills.discover":"Discover Skills","skills.discoverTitle":"Discover Local CLI Skills","skills.discoverHelp":"Scan CLI Skill directories used by bots configured in this deployment. Selected Skills are registered as local links without copying files.","skills.discoverEmpty":"No registerable Skills were found in local CLI skill directories.","skills.discoverGroupEmpty":"No registerable Skills were found in this CLI directory.","skills.discoverRegistered":"Registered","skills.discoverSelectAll":"Select unregistered","skills.discoverClearSelection":"Clear selection","skills.discoverRegister":"Register selected","skills.discoverClose":"Close","skills.discoverNothingSelected":"Select at least one unregistered Skill.","skills.discoverRegisteringBatch":"Registering {total} Skills","skills.sourceCodex":"Local Codex","skills.sourceClaude":"Local Claude","skills.sourceTrae":"Local Trae","skills.sourceCursor":"Local Cursor","skills.sourceGemini":"Local Gemini","skills.sourceOpenCode":"Local OpenCode","skills.sourceLocalLink":"Local link","skills.sourceBotmuxCopy":"botmux store","skills.path":"Repo Path (optional)","skills.pathPlaceholder":"Blank uses the path from the GitHub URL","skills.ref":"Ref (optional)","skills.refPlaceholder":"Blank uses the GitHub URL ref or default HEAD","skills.link":"Local link (no copy)","skills.installSubmit":"Install","skills.update":"Update","skills.remove":"Remove","skills.pageStatus":"{page} / {pages}","skills.prevPage":"Previous page","skills.nextPage":"Next page","skills.empty":"No installed skills yet. Install from a local directory, Git, or GitHub.","skills.apiUnavailable":"This Dashboard backend does not expose the Skill API. Usually the frontend was updated before the botmux process restarted. Restart botmux, then refresh this page.","skills.globalDefaults":"Global Skill Delivery","skills.globalProject":"Workspace Skills","skills.globalProjectOff":"Ignore workspace Skills","skills.globalProjectOffHelp":"Read global CLI Skills and botmux Skills only","skills.globalProjectAll":"Read workspace Skills","skills.globalProjectAllHelp":`Read .agents/skills and
|
|
22
|
+
.botmux/skills`,"skills.globalDelivery":"Skill Delivery","skills.bots":"Bot Skill Settings","skills.botsHelp":"Choose the Skills each bot should disclose first.","skills.botCount":"{count} Bots","skills.scrollBotsPrev":"Scroll bots left","skills.scrollBotsNext":"Scroll bots right","skills.skillCount":"{count} Skills","skills.attach":"Add to priority","skills.detach":"Remove","skills.detachNamed":"Remove {skill}","skills.delivery":"Injection","skills.deliveryAuto":"Auto","skills.deliveryAutoHelp":"Use native CLI delivery first; fall back to Prompt when unsupported","skills.deliveryPrompt":"Prompt","skills.deliveryPromptHelp":"Inject the Skill catalog into the session prompt; works with every CLI","skills.deliveryNative":"Native","skills.deliveryNativeHelp":"Use only the CLI native Skill mechanism; no Prompt fallback","skills.projectMode":"Workspace Skills","skills.projectDefault":"Follow global","skills.projectDefaultHelp":"Use the project default on the left","skills.projectOff":"Do not read","skills.projectOffHelp":"This bot ignores workspace skills","skills.projectAll":"Read","skills.projectAllHelp":"This bot includes workspace skill candidates","skills.priority":"Priority skills","skills.noPriority":"Not configured, keeping CLI default behavior","skills.dangling":"Not installed","skills.removeInUse":'Skill "{skill}" is still referenced by: {refs}. Removing it deletes the registry package but does not automatically clean references. Continue?',"skills.saved":"Saved","skills.failed":"Failed","skills.jobRunning":"Working...","skills.refresh":"Refresh","botDefaults.title":"Bot Profiles","botDefaults.subtitle":"Per-bot defaults: oncall, proactive start, persona role, cards and grants.","botDefaults.metaOnline":"Online \xB7 daemon healthy","botDefaults.search":"Search bot name / app id","botDefaults.refresh":"Refresh","botDefaults.sectionOncall":"New-chat Oncall","botDefaults.sectionBrand":"Card Signature","botDefaults.sectionAgent":"CLI / Model","botDefaults.agentCli":"CLI","botDefaults.agentModel":"Model","botDefaults.agentModelPlaceholder":"Leave empty for the CLI default model","botDefaults.agentHelp":"Changes affect only newly created sessions. Existing sessions keep the CLI / model they were created with; close and start again to use the new configuration.","botDefaults.agentSave":"Save CLI / Model","botDefaults.agentSaved":"Saved (takes effect next session)","botDefaults.warning":"When enabled, chats without an oncall binding auto-bind to this directory on their next new topic. Manually bound or unbound chats are preserved.","botDefaults.empty":"No bots online. Run botmux restart first.","botDefaults.defaultOncall":"Default to oncall mode","botDefaults.defaultOncallHelp":"Unbound chats auto-bind on the next new topic","botDefaults.workingDir":"Default Working Directory","botDefaults.lastEnabled":"Last Enabled","botDefaults.autobound":"{count} chats auto-bound","botDefaults.save":"Save","botDefaults.required":'Working directory is required for "Default directory only" or "Oncall mode"',"botDefaults.sectionWorkingDir":"Default Working Directory","botDefaults.workingDirMode":"Mode","botDefaults.workingDirField":"Directory","botDefaults.workingDirModeOff":"Off (new sessions show the repo picker)","botDefaults.workingDirModeDefault":"Default directory only (no permission change)","botDefaults.workingDirModeOncall":"Oncall mode (open chat to the whole group)","botDefaults.workingDirModeHelp":'Where this bot starts new sessions, pick one (mutually exclusive): "Off" = no pinned dir, new sessions show the repo picker; "Default directory only" = every new session (incl. DMs / topics) starts in this dir and skips the picker, with no permission change (private bots); "Oncall mode" = same dir for all sessions PLUS newly-seen group chats auto-bind to oncall (anyone in the group can talk to the bot; write actions like buttons/commands still require allowedUsers), for on-call / support. Takes effect next session; running sessions need /restart.',"botDefaults.workingDirSaved":"Saved (takes effect next session)","botDefaults.brandLabel":"Signature (card footer)","botDefaults.brandLabelHelp":"Footer signature on cards this bot sends. Save empty = hide; fill in = custom (markdown ok, e.g. [Acme](https://\u2026)); Reset = show botmux.","botDefaults.brandLabelPlaceholder":"Default: botmux (empty = hidden)","botDefaults.sectionSandbox":"File sandbox (oncall)","botDefaults.sandboxToggle":"Enable file sandbox","botDefaults.sandboxHelp":"When on, every session of this bot runs in a per-session sandbox: only a project copy is visible \u2014 your real files, secrets, and other sessions are not. For sharing the bot with semi-trusted users (oncall). Linux only; applies to the next new session.","botDefaults.sandboxSaved":"Saved (applies to the next new session)","botDefaults.brandSave":"Save Signature","botDefaults.brandReset":"Reset to default","botDefaults.brandStateDefault":"Current: default botmux","botDefaults.brandStateOff":"Current: off","botDefaults.brandStateCustom":"Current: custom","botDefaults.sectionCard":"Card Behavior","botDefaults.disableStreaming":"Disable streaming card","botDefaults.disableStreamingHelp":"Stop posting the live session status card (and its Open Terminal entry). The task's final result still arrives as a message. For those who find the live card noisy.","botDefaults.silentTurnReactions":"Disable status reactions in card-off mode","botDefaults.silentTurnReactionsHelp":'With the streaming card off, botmux marks the triggering message with lightweight \u270B\u2192\u2705 reactions ("received / done"). Check this to drop those too \u2014 handy for low-noise observer bots. Editable only while "Disable streaming card" is on.',"botDefaults.writableLink":"Put a writable terminal link on the card","botDefaults.writableLinkHelp":'\u26A0\uFE0F Embeds a writable terminal link in the streaming card body \u2014 anyone in the chat can open and drive the terminal. Off = current behavior (private DM via the "Get Write Link" button).',"botDefaults.writableLinkMoot":"Streaming card disabled \u2014 this has no effect","botDefaults.privateCard":"/card sends a private card (authorized users only)","botDefaults.privateCardHelp":'Makes /card send an ephemeral "visible-to-specific-people" card: delivered only to the owner (allowedUsers); /grant-authorized talk users and everyone else in the chat cannot see it. Trade-off: it is a static snapshot (no live updates) and only works in regular group chats (topic groups / DMs fail, with no fallback). Affects only the /card command; the auto streaming card is unchanged.',"botDefaults.sectionCrossBot":"Cross-bot","botDefaults.botToBotSameDir":"bot@bot same-directory launch","botDefaults.botToBotSameDirHelp":"When ON, if this bot is @-ed into a chat/thread where another bot is already working, it reuses that bot's working directory and skips the repo-selection card (independent of oncall; default ON). When OFF, this bot always falls through to its own repo card / default dir.","botDefaults.cardPrefSaved":"Saved","botDefaults.sectionSummaryTrigger":"/summary Range","botDefaults.summaryLimit":"Recent message count","botDefaults.summarySinceHours":"Recent hours","botDefaults.summaryLimitHelp":"When the user mentions the bot and sends /summary, this range is read. Defaults to latest 50 messages / 24 hours. Set either value to 0 to remove that limit. Topic groups always read the current topic history.","botDefaults.summarySave":"Save summary range","botDefaults.summaryNumberInvalid":"Hours and message count must be 0 or a positive integer","botDefaults.sectionRole":"Default Role","botDefaults.roleHelp":"This bot's default persona (applies across all chats), injected into the bot's sessions in every chat; a single group can override it on the Roles page. Save empty = delete.","botDefaults.rolePlaceholder":"e.g. You are a backend triage assistant; answer concisely, prefer runnable commands\u2026","botDefaults.roleSave":"Save role","botDefaults.roleDelete":"Delete","botDefaults.roleSaved":"Saved","botDefaults.roleDeleted":"Deleted","botDefaults.roleLoadErr":"Failed to load role","botDefaults.profileRoles":"Profile Roles","botDefaults.profileRolesHelp":"Role entries this bot has in Profiles. Collapsed by default; expand a profile to load details.","botDefaults.profileRolesEmpty":"This bot has no profile roles.","botDefaults.profileRolesLoadFailed":"Failed to load profile roles: {error}","botDefaults.profileRoleClickToLoad":"Expand to load role details.","botDefaults.profileRoleDetailLoadFailed":"Failed to load role detail: {error}","botDefaults.sectionAutoStart":"Proactive Start","botDefaults.autoStartJoin":"Auto-start when added to a new chat","botDefaults.autoStartJoinHelp":'When enabled, the bot auto-starts a session and gets to work the moment it is added to a new chat (when an authorized user / allowedUsers is a member), no @ needed. It launches in the bot default working dir; if none is configured it shows a repo-select card first. Prerequisite: subscribe the "bot joined chat" event im.chat.member.bot.added_v1 for this app and grant the member-read scope in the Feishu console.',"botDefaults.autoStartJoinPrompt":"First-turn prompt on join (optional)","botDefaults.autoStartJoinPromptPlaceholder":"Filled = used as the first task after joining; blank = the bot reads the chat and decides what to do","botDefaults.autoStartJoinPromptSave":"Save prompt","botDefaults.autoStartTopic":"Auto-start on new topics in topic groups","botDefaults.autoStartTopicHelp":"When enabled, in a topic group the bot automatically joins each newly opened topic and starts working on its first message, no @ needed. Topic groups only \u2014 regular groups are unaffected.","botDefaults.sectionSessionMode":"Session mode","botDefaults.p2pMode":"Private chat session mode","botDefaults.p2pThread":"thread (separate session per DM)","botDefaults.p2pChat":"chat (flat continuous session)","botDefaults.p2pHelp":"How 1:1 DMs are sessioned: thread = each top-level message starts its own session (keeps chatter out of one CLI process); chat = the whole DM shares one continuous session and context (Hermes-like). Takes effect immediately.","botDefaults.regularGroupMode":"Regular group session mode","botDefaults.regularGroupModeChat":"chat (flat continuous session, default)","botDefaults.regularGroupModeChatTopic":"chat-topic (flat continuous at top level, native topics each get their own session)","botDefaults.regularGroupModeNewTopic":"new-topic (each top-level @ opens its own topic & session)","botDefaults.regularGroupModeShared":"shared (topic display, reusing one session)","botDefaults.regularGroupModeHelp":"How new top-level @mentions in regular (non-topic) groups are sessioned: chat = the whole group shares one continuous session (default, even a native Lark topic you open folds into it); chat-topic = top-level @ still stays flat in the one group session, but each native Lark topic you open runs its own independent session (a new session per topic); new-topic = each top-level @ opens its own topic with a separate session; shared = topic display but reuse the same session (replies fold into a topic yet share the group session & context). This is the per-bot default; a specific group can override it via /reply-mode. Takes effect immediately.","botDefaults.mentionMode":"Group @ policy","botDefaults.mentionModeAlways":"Always require @ (default)","botDefaults.mentionModeTopic":"No @ needed inside topics","botDefaults.mentionModeNever":"Never require @","botDefaults.mentionModeAmbient":"No @ needed, but yields when you @ someone else","botDefaults.mentionModeHelp":'Bot-global: controls when an @ is required to get a reply in groups. "Always require @" = every message needs an @ (default, safest; inside topics too, in multi-person groups); "No @ needed inside topics" = starting a new conversation / top-level still needs @, but follow-ups inside ANY topic this bot already drives (new-topic / shared / topic-group) continue without @; "Never require @" = non-@ messages are always answered wherever the bot has talk access (including cold-starting on a brand-new message) \u2014 for dedicated / on-call small groups; "No @ needed, but yields when you @ someone else" = same no-@ answering, EXCEPT when your message @mentions another person or bot (and not this one), in which case it backs off, treating it as handed to someone else (@all does not count, so it still replies) \u2014 best for multi-bot / multi-person groups that want a default responder which yields the moment you address someone else. Note: when you are alone with this bot (1:1) replies never need an @, independent of this setting.',"botDefaults.docSubscribeMode":"Doc subscription trigger (default)","botDefaults.docSubscribeModeMention":"Only when a comment @s me","botDefaults.docSubscribeModeAll":"Every new comment","botDefaults.docSubscribeModeHelp":'After subscribing to a Feishu doc with /subscribe-lark-doc, its comments feed into the session and the bot replies back into the comment. This sets the default trigger range for new subscriptions: "only when a comment @s me" is safest (avoids noise); "every new comment" suits dedicated docs.',"botDefaults.sectionGrant":"Authorization & Quota","botDefaults.autoGrantCard":"Auto grant card for blocked @mentions","botDefaults.autoGrantCardHelp":"When enabled, if a person or external bot explicitly @mentions this bot in a group but the talk gate blocks it, BotMux sends a /grant request card to the owner. When disabled, the gate still blocks but stays silent.","botDefaults.restrictGrant":"Restrict grantees to plain conversation","botDefaults.restrictGrantHelp":"When enabled, /grant-authorized users (the owner is exempt) can only send plain messages; every slash command is blocked: botmux built-in commands, passthrough commands, /workflow, /template, /introduce, /t, and CLI-native commands (/help, etc.). Text like /path/to/file is not misclassified.","botDefaults.quotaDefault":"Default message quota","botDefaults.quotaPlaceholder":"Empty = no default quota","botDefaults.quotaHelp":'Message count a bare /grant @x (no number) hands out. Empty or "Turn off" merely stops applying a default to bare /grant \u2014 it does NOT clear existing quota counters, nor affect an explicit /grant @x N; those keep being enforced. Authorization is auto-revoked once a quota runs out.',"botDefaults.quotaSave":"Save quota","botDefaults.quotaOff":"Turn off","botDefaults.quotaInvalid":"Quota must be a positive integer","botDefaults.quotaStateOff":"Current: no default quota","botDefaults.quotaStateOn":"Current: {count} per grantee","botDefaults.sectionSessionCap":"Session limit","botDefaults.maxLiveWorkers":"Max live sessions","botDefaults.maxLiveWorkersPlaceholder":"Empty = default 30","botDefaults.maxLiveWorkersHelp":"Cap on this bot's simultaneously-live sessions, to bound memory. Beyond it, the least-recently-used sessions are suspended: both the worker AND the CLI process are killed to reclaim all their memory, and the session cold-resumes from its on-disk transcript on the next message (--resume rebuilds context in a few seconds \u2014 nothing stays resident). Empty = use the default of 30; a number = a per-bot override (set a larger number if you want more). Note: suspension only applies to resumable backends (tmux/herdr/zellij), never plain PTY; a session that is mid-reply is never interrupted.","botDefaults.maxLiveWorkersSave":"Save limit","botDefaults.maxLiveWorkersOff":"Reset to default","botDefaults.maxLiveWorkersInvalid":"Limit must be a positive integer","botDefaults.maxLiveWorkersStateDefault":"Current: default 30 live sessions","botDefaults.maxLiveWorkersStateOn":"Current: up to {count} live sessions","botDefaults.sectionStartupCommands":"Startup commands","botDefaults.startupCommandsHelp":"Commands auto-sent to the CLI in order after launch, before the first message (each its own Enter), e.g. /effort ultracode. Comma- or newline-separated, one per line, arguments allowed; empty = none. Takes effect from the next session, and replays on every new session (incl. resume) \u2014 so session-only settings like /effort ultracode survive a resume. Native CLI sessions only; adopted sessions are not driven.","botDefaults.startupCommandsPlaceholder":"One per line, e.g. /effort ultracode","botDefaults.startupCommandsSave":"Save startup commands","botDefaults.sectionLaunchShell":"Launch shell","botDefaults.launchShellHelp":"Shell used to launch the CLI, overriding the daemon $SHELL: a shell name (zsh|bash|sh) or an absolute path (e.g. /usr/bin/zsh). For when the login $SHELL (e.g. bash) has an rcfile that `exec`-trampolines into another shell (`exec zsh`), pre-empting the CLI launch so the session never starts (bare-shell `parse error`) \u2014 pinning launchShell launches under it directly, bypassing the skipped rcfile. Note: PATH/nvm/pnpm must then live in the chosen shell\u2019s rcfiles (e.g. .zshrc/.zprofile). Empty = use $SHELL. Takes effect next session; tmux/zellij backends only (pty execs the CLI directly and is unaffected).","botDefaults.launchShellPlaceholder":"e.g. zsh or /usr/bin/zsh; empty = $SHELL","botDefaults.launchShellSave":"Save launch shell","botDefaults.sectionEnv":"Environment variables","botDefaults.envHelp":"Environment variables injected into THIS bot's CLI process (a JSON object). Typical use: run a bot on GLM / a third-party Anthropic\xB7OpenAI-compatible provider \u2014 set ANTHROPIC_BASE_URL + ANTHROPIC_AUTH_TOKEN (GLM: https://api.z.ai/api/anthropic, or https://open.bigmodel.cn/api/anthropic in China), or set HTTPS_PROXY / a CLI feature flag. Values accept string/number/boolean only; botmux-reserved keys (BOTMUX_, LARK_APP_, \u2026) are ignored. Takes effect from the next session, injected per-session into the CLI process (never into the shared tmux server env, so it can't leak across bots). Empty = clear. Note: values live in bots.json in plaintext \u2014 not a secret vault.","botDefaults.envPlaceholder":`{
|
|
23
|
+
"ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
|
|
24
|
+
"ANTHROPIC_AUTH_TOKEN": "your GLM Coding Plan key"
|
|
25
|
+
}`,"botDefaults.envSave":"Save environment variables","nav.roles":"Role Management","nav.groupRoles":"Group Roles","nav.roleProfiles":"Profiles","roles.title":"Role Management","roles.subtitle":"Manage per-group bot roles and reusable Profiles.","roleProfiles.title":"Profiles","roleProfiles.subtitle":"Maintain reusable multi-bot Profiles, then preview or apply them to target groups.","roles.search":"Search group / bot / ID","roles.refresh":"Refresh","roles.selectHint":"\u2190 Expand a group and select a bot to edit its role","roles.editorPlaceholder":`Enter role description, e.g.:
|
|
26
|
+
You are a code reviewer for this group...`,"roles.configured":"Configured","roles.unconfigured":"None","roles.noChats":"No groups","roles.preview":"Preview","roles.previewEmpty":"(empty)","roles.saved":"Saved","roles.delete":"Delete","roles.save":"Save","roles.confirmDelete":"Delete this bot's role config for this group?","roles.botsWithRoles":"bots configured","roles.emptyError":"Role content cannot be empty","roles.saveFailed":"Save failed, please retry","roles.tabGroups":"By Group","roles.tabProfiles":"Profiles","roles.profileIdPlaceholder":"profile id, e.g. collab-main","roles.profileIdInvalid":"Profile id may contain letters, numbers, dots, underscores, and hyphens only; max 64; cannot be . or ..","roles.openProfile":"Open","roles.profileSearch":"Search profile","roles.profileSelectHint":"\u2190 Select or enter a profile to edit","roles.profileEmpty":"No Profiles","roles.profileEntries":"entries","roles.profileMissing":"Missing","roles.profileRuntimeHint":"Profiles are reusable suites; applying one writes a group role, not a new runtime layer.","roles.profileBots":"Bot Entries","roles.profileEditorPlaceholder":"Enter this bot's Markdown role for this profile...","roles.saveEntry":"Save Entry","roles.profileBotSelectHint":"Select a bot to edit its entry in this profile","roles.applyToGroup":"Apply To Group","roles.applyForce":"Overwrite existing group roles","roles.previewApply":"Preview Apply","roles.applyProfile":"Apply Profile","roles.applyPickBots":"Select at least one bot","roles.applyWouldRefuse":"Would refuse (group role exists)","roles.applyPreviewOk":"Can apply","roles.applyOk":"Applied","roles.applyFailed":"Failed","roles.confirmDeleteProfileEntry":"Delete this bot entry from the profile?","common.none":"None","common.loading":"Loading\u2026","common.unknown":"Unknown","common.now":"now","common.never":"never","common.all":"All","nav.workflows":"Workflows","nav.workflowCatalog":"Catalog","workflow.subnav.runs":"Runs","workflow.subnav.catalog":"Catalog","workflow.subnav.v3":"New workflow \u2192","workflow.searchPlaceholder":"search runId / workflowId / chatId","workflow.filter.nonTerminal":"non-terminal","workflow.filter.all":"all","workflow.status.pending":"pending","workflow.status.running":"running","workflow.status.waiting":"waiting","workflow.status.effectAttempting":"effect","workflow.status.timedOut":"timed out","workflow.status.succeeded":"succeeded","workflow.status.failed":"failed","workflow.status.cancelled":"cancelled","workflow.table.run":"run","workflow.table.workflow":"workflow","workflow.table.status":"status","workflow.table.lastSeq":"lastSeq","workflow.table.dangling":"dEf/dAct/dWait","workflow.table.updated":"updated","workflow.table.chatApp":"chat / app","workflow.list.failedLoad":"Failed to load: {error}","workflow.list.noRuns":"No runs match.","workflow.list.noFilterMatch":"No runs match this filter.","workflow.list.loaded":"{count} runs \xB7 refreshed {time}","workflow.list.error":"error: {error}","workflow.detail.back":"Back","workflow.detail.loading":"Loading...","workflow.detail.loadFailed":"Load failed","workflow.detail.cancel":"Cancel","workflow.detail.cliCancelOnly":"CLI cancel only","workflow.detail.cancelTitle":"Cancel this workflow run","workflow.detail.cliCancelTitle":"Cancel unavailable: use botmux workflow cancel {runId}","workflow.detail.nodes":"Nodes / Activities","workflow.detail.parallel":"Parallel execution","workflow.detail.parallelMeta":"{count} attempt(s) \xB7 max parallel {max} \xB7 running {running}","workflow.detail.noParallelData":"No attempt timing data yet.","workflow.detail.parallelNow":"now","workflow.detail.node":"node","workflow.detail.nodeStatus":"node status","workflow.detail.activity":"activity","workflow.detail.activityStatus":"activity status","workflow.detail.attempts":"attempts","workflow.detail.current":"current","workflow.detail.detail":"detail","workflow.detail.nodeIO":"Node I/O","workflow.detail.timeline":"Timeline","workflow.detail.loadOlder":"Load older","workflow.detail.seq":"seq","workflow.detail.actor":"actor","workflow.detail.error":"error","workflow.detail.event":"event","workflow.detail.time":"time","workflow.detail.refreshed":"refreshed {time}","workflow.detail.unknownRun":"unknown run","workflow.detail.snapshotHttp":"snapshot HTTP {status}","workflow.detail.eventsHttp":"events HTTP {status}","workflow.detail.cancelUnavailable":"cancel unavailable: use botmux workflow cancel {runId}","workflow.detail.cancelConfirm":`Cancel workflow run {runId}?
|
|
27
|
+
|
|
28
|
+
{total} dangling item(s) will be handled by cancel-driven recovery.
|
|
29
|
+
effects={effects}, activities={activities}, waits={waits}, cancels={cancels}`,"workflow.detail.writeAccessCancel":"write access required: run `botmux dashboard` in the terminal to get a one-time URL, open it once to set the cookie, then come back and click cancel again.","workflow.detail.cancelHttp":"cancel HTTP {status}","workflow.detail.cancelPending":"cancel pending; waiting for running activity to drain","workflow.detail.writeAccessApproval":"write access required: run `botmux dashboard` in the terminal to get a one-time URL, open it once to set the cookie, then come back and approve/reject again.","workflow.detail.actionHttp":"{action} HTTP {status}","workflow.detail.approved":"approved","workflow.detail.rejected":"rejected","workflow.detail.alreadyTerminal":"Run already terminal; {label} was not applied.","workflow.detail.workflowContinue":"{label}; waiting for workflow to continue.","workflow.detail.workflowRefreshing":"{label}; refreshing workflow state.","workflow.detail.eventsLoaded":"{loaded}/{total} events loaded","workflow.detail.dangling":"Dangling","workflow.detail.noDangling":"No dangling work.","workflow.detail.none":"none","workflow.detail.noNodes":"No nodes yet.","workflow.detail.idle":"idle","workflow.detail.noNodeIO":"No node I/O yet.","workflow.detail.notDispatched":"not dispatched","workflow.detail.noAttempt":"No attempt yet","workflow.detail.attempt":"attempt","workflow.detail.authoredInput":"Authored input","workflow.detail.resolvedInput":"Resolved input","workflow.detail.output":"Output","workflow.detail.executionLog":"Execution log","workflow.detail.liveTerminal":"Live terminal","workflow.detail.terminalLive":"live","workflow.detail.terminalClosedShort":"closed","workflow.detail.terminalClosed":"Terminal is closed. Use the execution log below for the final transcript.","workflow.detail.openTerminalNewTab":"Open terminal in new tab","workflow.detail.terminalReplay":"Terminal replay","workflow.detail.openReplayNewTab":"Open replay in new tab","workflow.detail.downloadFullLog":"Download full log","workflow.detail.terminalResume":"Debug session","workflow.detail.openResumeNewTab":"Open debug session in new tab","workflow.detail.resumeSession":"Resume session","workflow.detail.resumeStarting":"Starting\u2026","workflow.detail.endResumeSession":"End debug session","workflow.detail.resumeEnding":"Ending\u2026","workflow.detail.resumeUnsupportedCli":'CLI "{cliId}" does not support resume',"workflow.detail.resumeMissingCliSession":"Missing cliSessionId \u2014 cannot resume","workflow.detail.resumeStartFailed":"Failed to start debug session (HTTP {status})","workflow.detail.resumeEndFailed":"Failed to end debug session (HTTP {status})","workflow.detail.writeAccessResume":"Resume requires dashboard write access.","workflow.detail.waitPrompt":"Wait prompt","workflow.detail.approvalComment":"Approval comment","workflow.detail.optionalComment":"Optional comment","workflow.detail.approve":"Approve","workflow.detail.reject":"Reject","workflow.detail.submitting":"Submitting...","workflow.detail.empty":"empty","workflow.detail.truncated":"truncated","workflow.detail.noData":"No data.","workflow.detail.noPreview":"No preview.","workflow.detail.open":"open","workflow.detail.deadline":"deadline","workflow.detail.effect":"effect","workflow.detail.wait":"wait","workflow.detail.noEvents":"No events.","workflow.summary.workflow":"workflow","workflow.summary.status":"status","workflow.summary.lastSeq":"lastSeq","workflow.summary.updated":"updated","workflow.summary.revision":"revision","workflow.summary.initiator":"initiator","workflow.summary.failedNode":"failedNode","workflow.summary.cancelOrigin":"cancelOrigin","workflow.summary.chat":"chat","workflow.summary.app":"app","workflow.dangling.activities":"activities","workflow.dangling.effects":"effects","workflow.dangling.waits":"waits","workflow.dangling.cancels":"cancels","catalog.title":"Workflow catalog","catalog.subtitle":"Create a workflow run from a saved workflow definition.","catalog.searchPlaceholder":"search workflowId / path","catalog.refresh":"Refresh","catalog.loading":"Loading catalog...","catalog.loadFailed":"Failed to load catalog: {error}","catalog.noDefinitions":"No workflow definitions found.","catalog.noFilterMatch":"No definitions match this filter.","catalog.table.workflow":"workflow","catalog.table.version":"version","catalog.table.params":"params","catalog.table.nodes":"nodes","catalog.table.revision":"revision","catalog.table.path":"path","catalog.paramSummary":"{required}/{total} required","catalog.back":"Back to catalog","catalog.detailTitle":"Workflow definition","catalog.definitionLoadFailed":"Failed to load definition: {error}","catalog.summary":"Summary","catalog.paramsSchema":"Params schema","catalog.definitionJson":"Definition JSON","catalog.runPanel":"Run workflow","catalog.paramsJson":"Params JSON","catalog.paramsPlaceholder":`{
|
|
30
|
+
"city": "\u5317\u4EAC"
|
|
31
|
+
}`,"catalog.chatId":"Chat ID","catalog.larkAppId":"Lark app ID","catalog.chatBindingHint":"Required so humanGate cards and cancel routing know which Lark chat owns the run.","catalog.run":"Run","catalog.running":"Starting...","catalog.badParamsJson":"Params must be a JSON object.","catalog.writeAccess":"write access required: run `botmux dashboard` in the terminal to get a one-time URL, open it once to set the cookie, then come back and run again.","catalog.runHttp":"run HTTP {status}","catalog.runStarted":"Run started; opening detail page...","catalog.invalidParams":"Invalid params","catalog.issue":"{path}: {message}","catalog.noParams":"No params declared.","catalog.required":"required","catalog.optional":"optional","catalog.default":"default","catalog.description":"description","catalog.path":"path","catalog.revision":"revision","catalog.nodeCount":"nodes"},E={zh:se,en:oe};function M(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();return t==="zh"||t.startsWith("zh-")?"zh":t==="en"||t.startsWith("en-")?"en":null}function ie(e=[]){for(let t of e){let s=M(t);if(s)return s}return"zh"}function f(e){return(t,s)=>{let o=E[e][t]??E.zh[t]??t;return s?o.replace(/\{(\w+)\}/g,(i,n)=>{let a=s[n];return a==null?`{${n}}`:String(a)}):o}}function B(e,t){return(e?M(e.getItem(T)):null)??ie(t)}var L="botmux.dashboard.theme",F="botmux.dashboard.sessions.view";function ne(e){return e==="system"||e==="light"||e==="dark"?e:null}function ae(e){return e==="kanban"||e==="board"||e==="table"?e:null}function G(e,t){return e==="system"?t?"dark":"light":e}function W(e){return ne(e?.getItem(L))??"dark"}function _e(e){return ae(e?.getItem(F))??"board"}var U="botmux.dashboard.sessions.boardOrder",h=["needs-you","starting","working","idle"];function re(e){if(!Array.isArray(e)||e.length!==h.length)return null;let t=new Set(e);if(t.size!==e.length)return null;for(let s of h)if(!t.has(s))return null;return e.slice()}function Ee(e){try{let t=e?.getItem(U);return t?re(JSON.parse(t))??[...h]:[...h]}catch{return[...h]}}function Me(e,t){try{e?.setItem(U,JSON.stringify(t))}catch{}}function Be(e,t){try{e?.setItem(F,t)}catch{}}var j="botmux.dashboard.sessions.kanbanGroupBy",Fe="botmux.dashboard.sessions.kanbanTeam";function le(e){return e==="flow"||e==="team"||e==="bot"?e:null}function Ge(e){return le(e?.getItem(j))??"flow"}function We(e,t){try{e?.setItem(j,t)}catch{}}var z="botmux.dashboard.sidebar";function de(e){return e==="expanded"||e==="collapsed"?e:null}function Ue(e){return de(e?.getItem(z))??"expanded"}function je(e,t){try{e?.setItem(z,t)}catch{}}var ce=["default","cyber","genshin","fallout","prts","bluearchive","zzz","dragonball","ikun"],P="botmux.dashboard.skin";function ue(e){return typeof e=="string"&&ce.includes(e)?e:null}function q(e){return ue(e?.getItem(P))??"default"}var he="\uFF71\uFF72\uFF73\uFF74\uFF75\uFF76\uFF77\uFF78\uFF79\uFF7A\uFF7B\uFF7C\uFF7D\uFF7E\uFF7F\uFF80\uFF81\uFF82\uFF830123456789\uFF8A\uFF8B\uFF8C\uFF8D\uFF8E$#%&@*+=<>/\\",Y=["186 100% 60%","56 97% 60%","330 100% 64%","150 80% 58%"],x=[{key:"shake",dur:280},{key:"rgb",dur:340},{key:"tear",dur:400},{key:"invert",dur:220},{key:"slice",dur:320},{key:"blackout",dur:260}],K=["ESTABLISHING NETLINK","BYPASSING ICE","DECRYPTING DATAFLOW","SYNCING BOTMUX TELEMETRY","ACCESS GRANTED"],$="0123456789ABCDEF#<>*/=+\uFF71\uFF72\uFF73\uFF74\uFF75\uFF76\uFF77\uFF78\uFF85\uFF86\uFF87\uFF88\uFF89\uFF8A\uFF8B\uFF8C",pe=3200,p=[],d=0,w=0;function O(){return typeof window<"u"&&!!window.matchMedia?.("(prefers-reduced-motion: reduce)").matches}function R(e,t){let s="";for(let o=0;o<e;o++)s+=t[Math.floor(Math.random()*t.length)];return s}function ge(e){let t=document.createElement("div");t.className="cyber-rain";let s=Math.max(10,Math.min(26,Math.round(window.innerWidth/70)));for(let o=0;o<s;o++){let i=document.createElement("span");i.className="cyber-rain-col",i.textContent=R(28+Math.floor(Math.random()*22),he);let n=Y[Math.floor(Math.random()*Y.length)];i.style.cssText=`left:${(o+.5)/s*100}%;--rc:${n};--sz:${10+Math.floor(Math.random()*9)}px;--op:${(.25+Math.random()*.45).toFixed(2)};--dur:${(6+Math.random()*9).toFixed(1)}s;--delay:${(-Math.random()*12).toFixed(1)}s;`,t.appendChild(i)}e.appendChild(t)}function me(){if(O())return;let e=document.body,t=()=>{let s=x[Math.floor(Math.random()*x.length)],o=`cp-fx-${s.key}`;e.classList.add(o),p.push(window.setTimeout(()=>e.classList.remove(o),s.dur)),p.push(window.setTimeout(t,2400+Math.random()*4200))};p.push(window.setTimeout(t,1800+Math.random()*2600))}function be(){p.forEach(e=>window.clearTimeout(e)),p=[];for(let e of x)document.body.classList.remove(`cp-fx-${e.key}`)}function fe(){if(O()||document.getElementById("cyber-boot"))return;let e=document.createElement("div");e.id="cyber-boot",e.className="cyber-boot",e.setAttribute("aria-hidden","true"),e.innerHTML='<div class="cyber-boot-grid"></div><div class="cyber-loader"><div class="cyber-loader-frame"><div class="cyber-loader-head"><span>KIROSHI NETLINK</span><span class="cyber-loader-jp">\u4FB5\u5165\u4E2D</span></div><div class="cyber-loader-line"><span class="cyber-loader-prompt">></span><span class="cyber-loader-text"></span><span class="cyber-loader-cursor">_</span></div><div class="cyber-loader-stream"></div></div></div>',document.body.appendChild(e);let t=e.querySelector(".cyber-loader-text"),s=e.querySelector(".cyber-loader-stream"),o=0,i=0,n=0;d=window.setInterval(()=>{let a=K[o];t&&(i<a.length?(i+=1,t.textContent=a.slice(0,i)+R(a.length-i,$),t.classList.remove("done")):n<16?(n+=1,t.textContent=a,t.classList.add("done")):(o=(o+1)%K.length,i=0,n=0)),s&&(s.textContent=R(26,$))},50),w=window.setTimeout(()=>{window.clearInterval(d),d=0,e.remove()},pe)}function we(){d&&(window.clearInterval(d),d=0),w&&(window.clearTimeout(w),w=0),document.getElementById("cyber-boot")?.remove()}var ke=320,V=16,g=!0,l=0,I=0,k=!1,v=[],A=[];function ve(){if(k)return;k=!0,g=!1,l=0;let e=O(),t="";for(let o=0;o<V;o++){let i=o%3===0?"186 100% 52%":o%3===1?"330 100% 58%":"56 97% 52%",n=(o%2===0?1:-1)*(8+o%5*7);t+=`<span class="cyber-breach-shard" style="top:${o/V*100}%;height:${2+o%4*3}%;--shift:${n}px;--delay:${o%8*.09}s;--dur:${(.36+o%5*.12).toFixed(2)}s;--hue:${i}"></span>`}let s=document.createElement("div");s.id="cyber-breach",s.className="cyber-breach",s.setAttribute("aria-hidden","true"),s.innerHTML=`<span class="cyber-breach-flash"></span><span class="cyber-breach-grid"></span><div class="cyber-breach-shards">${t}</div><div class="cyber-breach-banner"><span class="cyber-breach-tag">// BREACH PROTOCOL \u2014 SYSTEM OVERRIDE</span><span class="cyber-breach-caption" data-text="SYSTEM BREACH">SYSTEM BREACH</span><span class="cyber-breach-sub" data-text="NETWATCH OVERRIDE ENGAGED">NETWATCH OVERRIDE ENGAGED</span></div>`,document.body.appendChild(s),e||document.body.classList.add("cyber-breach-quake"),v.push(window.setTimeout(()=>document.body.classList.remove("cyber-breach-quake"),760)),v.push(window.setTimeout(()=>{s.remove(),k=!1},e?2600:4200))}function ye(){g=!0,l=0;let e=document.documentElement,t=()=>e.scrollHeight-(window.innerHeight+window.scrollY)<=4,s=r=>{r<=0||!t()||(l+=r,l>ke&&g&&ve())},o=r=>s(r.deltaY),i=r=>{I=r.touches[0]?.clientY??0},n=r=>{let u=r.touches[0]?.clientY??0,te=I-u;I=u,s(te)},a=()=>{t()||(l=0,g=!0)},b=(r,u)=>{window.addEventListener(r,u,{passive:!0}),A.push([r,u])};b("wheel",o),b("touchstart",i),b("touchmove",n),b("scroll",a)}function Se(){for(let[e,t]of A)window.removeEventListener(e,t);A=[],v.forEach(e=>window.clearTimeout(e)),v=[],document.body.classList.remove("cyber-breach-quake"),document.getElementById("cyber-breach")?.remove(),k=!1,g=!0,l=0}function J(e,t=!1){if(!(typeof document>"u")){if(!e){document.getElementById("cyber-fx")?.remove(),document.getElementById("cyber-hud")?.remove(),document.getElementById("cyber-glitch")?.remove(),be(),we(),Se();return}if(!document.getElementById("cyber-fx")){let s=document.createElement("div");s.id="cyber-fx",s.className="cyber-fx",s.setAttribute("aria-hidden","true"),s.innerHTML='<div class="cyber-fx-grid"></div><div class="cyber-fx-scan"></div><span class="cyber-flicker"></span><span class="cyber-rollline"></span>',ge(s),document.body.appendChild(s);let o=document.createElement("div");o.id="cyber-hud",o.className="cyber-hud",o.setAttribute("aria-hidden","true"),o.innerHTML='<span class="cyber-hud-corner tl"></span><span class="cyber-hud-corner tr"></span><span class="cyber-hud-corner bl"></span><span class="cyber-hud-corner br"></span><span class="cyber-hud-tag">NIGHT CITY // NETWATCH</span>',document.body.appendChild(o);let i=document.createElement("div");i.id="cyber-glitch",i.className="cyber-glitch",i.setAttribute("aria-hidden","true"),document.body.appendChild(i),me(),ye()}t&&fe()}}var De={genshin:2e3,zzz:1900,dragonball:1900,ikun:1900},Ce='<span class="si-bball" aria-hidden="true"><span class="si-bball-seams"><svg viewBox="0 0 100 100"><g fill="none" stroke="#3a1d08" stroke-width="3.4" stroke-linecap="round"><path d="M50 4V96"/><path d="M4 50H96"/><path d="M50 4 Q14 50 50 96"/><path d="M50 4 Q86 50 50 96"/></g></svg></span></span>';function Te(e){switch(e){case"genshin":return'<span class="si-gi-shine" aria-hidden="true"></span><span class="si-gi-text">\u539F\u795E\uFF0C\u542F\u52A8</span>';case"zzz":return'<span class="si-static" aria-hidden="true"></span><span class="si-roll" aria-hidden="true"></span><span class="si-now">NOW LOADING</span>';case"dragonball":return'<span class="si-speed" aria-hidden="true"></span><img class="si-cloud" src="/assets/skins/dragonball-wukong.webp" alt="">';case"ikun":return Ce;default:return""}}function Le(){return typeof window<"u"&&!!window.matchMedia?.("(prefers-reduced-motion: reduce)").matches}function Q(e){if(typeof document>"u"||Le())return;let t=De[e];if(!t)return;document.getElementById("skin-intro")?.remove();let s=document.createElement("div");s.id="skin-intro",s.className=`skin-intro si-${e}`,s.setAttribute("aria-hidden","true"),s.style.setProperty("--si-dur",`${t}ms`),s.innerHTML=Te(e),document.body.appendChild(s),window.setTimeout(()=>s.remove(),t+80)}var N=class{locale="zh";themeMode="system";resolvedTheme="light";skin="default";authed=!0;listeners=new Set;translate=f(this.locale);mediaQuery=null;init(){let t=typeof window<"u"?window:void 0;this.locale=B(t?.localStorage,Ie()),this.translate=f(this.locale),this.themeMode=W(t?.localStorage),this.skin=q(t?.localStorage),this.mediaQuery=t?.matchMedia?.("(prefers-color-scheme: dark)")??null,this.mediaQuery?.addEventListener("change",()=>{this.applyTheme(),this.emit()}),this.applyTheme(),this.applySkin(),this.applyLocale()}t(t,s){return this.translate(t,s)}setLocale(t){this.locale!==t&&(this.locale=t,this.translate=f(t),window.localStorage.setItem(T,t),this.applyLocale(),this.emit())}get theme(){return this.skin==="default"?this.themeMode:this.skin}setTheme(t){let s=t==="system"||t==="light"||t==="dark",o=s?"default":t,i=o!==this.skin;s&&this.themeMode!==t&&(this.themeMode=t,window.localStorage.setItem(L,this.themeMode)),i&&(this.skin=o,window.localStorage.setItem(P,this.skin)),this.applyTheme(),this.applySkin(i),this.emit()}on(t){return this.listeners.add(t),()=>this.listeners.delete(t)}emit(){for(let t of this.listeners)t()}applyTheme(){this.resolvedTheme=G(this.themeMode,!!this.mediaQuery?.matches);let t=this.skin==="default"?this.resolvedTheme:Pe[this.skin];document.documentElement.dataset.theme=t,document.documentElement.dataset.themeMode=this.themeMode}applySkin(t=!1){document.documentElement.dataset.skin=this.skin,J(this.skin==="cyber",t),t&&this.skin!=="cyber"&&this.skin!=="default"&&Q(this.skin)}applyLocale(){document.documentElement.lang=this.locale==="zh"?"zh-CN":"en"}},Pe={default:"light",cyber:"dark",genshin:"light",fallout:"dark",prts:"dark",bluearchive:"dark",zzz:"dark",dragonball:"light",ikun:"dark"};function Ie(){return typeof navigator>"u"?[]:navigator.languages?.length?navigator.languages:[navigator.language].filter(Boolean)}var xe=new N;function c(e,t){return xe.t(e,t)}function _(e){return e.replace(/[&<>"']/g,t=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[t])}function Qe(e){if(!e)return"-";let t=Date.now()-e;return t<6e4?c("common.now"):t<36e5?Math.floor(t/6e4)+"m":t<864e5?Math.floor(t/36e5)+"h":Math.floor(t/864e5)+"d"}var X=[{c1:"#5be3ff",c2:"#4f8bff"},{c1:"#b89bff",c2:"#6b4df0"},{c1:"#7ce0c3",c2:"#2e9e8f"},{c1:"#8fb4ff",c2:"#3b62d8"},{c1:"#ffd28f",c2:"#d8783b"},{c1:"#7df0a8",c2:"#1f9e63"},{c1:"#9fd0ff",c2:"#4878c8"},{c1:"#ff9fb8",c2:"#d84a78"}];function Z(e){let t=0,s=String(e??"");for(let n=0;n<s.length;n++)t=t*31+s.charCodeAt(n)>>>0;let{c1:o,c2:i}=X[t%X.length];return`--c1:${o};--c2:${i}`}var y=new Map,S=new Map;function Re(e,t){return t?y.get(t):e?S.get(String(e)):void 0}function Xe(e){let t=e.name??"",s=e.avatarUrl??Re(e.name,e.larkAppId),o=e.size==="sm"?" orb-avatar-sm":"",i=s?" orb-has-img":"",n=e.dot?`<i class="orb-dot orb-dot-${e.dot}"></i>`:"",a=s?`<img class="orb-img" src="${_(s)}" alt="" decoding="async" referrerpolicy="no-referrer" onerror="this.closest('.orb-avatar')?.classList.remove('orb-has-img');this.remove()"/>`:"";return`<span class="orb-avatar${o}${i}" style="${Z(t)}" aria-hidden="true">${a}${n}</span>`}function Ae(e){return e?C.get(e):void 0}function Ze(e){let t=e.name??e.chatId??"",s=e.avatarUrl??Ae(e.chatId),o=e.size==="sm"?" orb-avatar-sm":"",i=s?" orb-has-img":"",n=s?`<img class="orb-img" src="${_(s)}" alt="" decoding="async" referrerpolicy="no-referrer" onerror="this.closest('.orb-avatar')?.classList.remove('orb-has-img');this.remove()"/>`:"";return`<span class="orb-avatar orb-square${o}${i}" style="${Z(t)}" aria-hidden="true">${n}</span>`}var m=new Map,D=new Map,C=new Map,H=null,ee="botmux.avatarCache.v1";function Oe(){try{let e=typeof window<"u"?window.localStorage.getItem(ee):null;if(!e)return;let t=JSON.parse(e);for(let[s,o]of Object.entries(t.botByAppId??{}))y.set(s,o);for(let[s,o]of Object.entries(t.botByName??{}))S.set(s,o);for(let[s,o]of Object.entries(t.chatById??{}))C.set(s,o);for(let[s,o]of Object.entries(t.nameByAppId??{}))m.set(s,o);for(let[s,o]of Object.entries(t.chatNameById??{}))D.set(s,o)}catch{}}function He(){try{if(typeof window>"u")return;window.localStorage.setItem(ee,JSON.stringify({botByAppId:Object.fromEntries(y),botByName:Object.fromEntries(S),chatById:Object.fromEntries(C),nameByAppId:Object.fromEntries(m),chatNameById:Object.fromEntries(D)}))}catch{}}Oe();function et(){return H??=(async()=>{try{let e=await fetch("/api/groups");if(!e.ok)throw new Error(`HTTP ${e.status}`);let t=await e.json();for(let s of t.bots??[])s.larkAppId&&s.botName&&s.botName!==s.larkAppId&&m.set(s.larkAppId,String(s.botName)),s.botAvatarUrl&&(s.larkAppId&&y.set(s.larkAppId,String(s.botAvatarUrl)),s.botName&&S.set(String(s.botName),String(s.botAvatarUrl)));for(let s of t.chats??[])s.chatId&&s.name&&D.set(s.chatId,String(s.name)),s.chatId&&s.avatar&&C.set(s.chatId,String(s.avatar));He()}catch{H=null}})(),H}function tt(e){return e?m.get(e):void 0}function st(e){let t=e.larkAppId?m.get(e.larkAppId):void 0;return t||(e.botName&&e.botName!==e.larkAppId?String(e.botName):String(e.botName??e.larkAppId??"-"))}function ot(e){return e.chatId&&D.get(e.chatId)||null}function it(e){let t=String(e??"");return t.replace(/^(?:@\S+\s*)+/,"").trim()||t}function nt(e){return`<div class="page-loading" role="status"><i class="page-loading-spin" aria-hidden="true"></i>${_(e??c("common.loading"))}</div>`}function at(e){return e.status==="closed"?null:e.agentAttention?.reason?e.agentAttention.reason:e.agentAttention?c("sessions.board.signalAgent"):e.pendingRepo?c("sessions.board.signalRepo"):e.tuiPromptActive?c("sessions.board.signalPrompt"):e.status==="limited"?c("sessions.board.signalLimited"):null}function rt(e){let t=Number(e.agentAttention?.at??e.lastMessageAt??0);if(Number.isFinite(t))return t;let s=Number(e.lastMessageAt??0);return Number.isFinite(s)?s:0}export{M as a,ae as b,_e as c,Ee as d,Me as e,Be as f,Fe as g,Ge as h,We as i,Ue as j,je as k,xe as l,c as m,_ as n,Qe as o,Xe as p,Ze as q,et as r,tt as s,st as t,ot as u,it as v,nt as w,at as x,rt as y};
|