botmux 3.11.0 → 3.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.runtime-build-id +1 -1
- package/dist/adapters/backend/riff-backend.d.ts +18 -0
- package/dist/adapters/backend/riff-backend.d.ts.map +1 -1
- package/dist/adapters/backend/riff-backend.js +154 -2
- package/dist/adapters/backend/riff-backend.js.map +1 -1
- package/dist/adapters/cli/coco.js +3 -3
- package/dist/adapters/cli/coco.js.map +1 -1
- package/dist/adapters/cli/codex.js +2 -2
- package/dist/adapters/cli/codex.js.map +1 -1
- package/dist/adapters/cli/kimi.d.ts.map +1 -1
- package/dist/adapters/cli/kimi.js +22 -8
- package/dist/adapters/cli/kimi.js.map +1 -1
- package/dist/adapters/cli/pi.d.ts.map +1 -1
- package/dist/adapters/cli/pi.js +3 -1
- package/dist/adapters/cli/pi.js.map +1 -1
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +4 -1
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli/dashboard-command.d.ts +23 -0
- package/dist/cli/dashboard-command.d.ts.map +1 -0
- package/dist/cli/dashboard-command.js +61 -0
- package/dist/cli/dashboard-command.js.map +1 -0
- package/dist/cli/dashboard-endpoint.d.ts +3 -3
- package/dist/cli/dashboard-endpoint.d.ts.map +1 -1
- package/dist/cli/dashboard-endpoint.js +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +101 -49
- package/dist/cli.js.map +1 -1
- package/dist/codex-rpc-engine.d.ts +33 -3
- package/dist/codex-rpc-engine.d.ts.map +1 -1
- package/dist/codex-rpc-engine.js +182 -20
- package/dist/codex-rpc-engine.js.map +1 -1
- package/dist/codex-rpc-lifecycle.d.ts +42 -7
- package/dist/codex-rpc-lifecycle.d.ts.map +1 -1
- package/dist/codex-rpc-lifecycle.js +73 -7
- package/dist/codex-rpc-lifecycle.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/core/command-handler.d.ts +3 -2
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +19 -4
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +16 -11
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/dashboard-rows.d.ts +17 -1
- package/dist/core/dashboard-rows.d.ts.map +1 -1
- package/dist/core/dashboard-rows.js +13 -1
- package/dist/core/dashboard-rows.js.map +1 -1
- package/dist/core/dispatch.d.ts +9 -10
- package/dist/core/dispatch.d.ts.map +1 -1
- package/dist/core/dispatch.js +17 -10
- package/dist/core/dispatch.js.map +1 -1
- package/dist/core/maintenance.d.ts.map +1 -1
- package/dist/core/maintenance.js +5 -0
- package/dist/core/maintenance.js.map +1 -1
- package/dist/core/role-resolver.d.ts +5 -2
- package/dist/core/role-resolver.d.ts.map +1 -1
- package/dist/core/role-resolver.js +55 -23
- package/dist/core/role-resolver.js.map +1 -1
- package/dist/core/session-manager.d.ts +2 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +20 -18
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/skills/cli-admin-command.d.ts.map +1 -1
- package/dist/core/skills/cli-admin-command.js +142 -3
- package/dist/core/skills/cli-admin-command.js.map +1 -1
- package/dist/core/skills/frontmatter.d.ts.map +1 -1
- package/dist/core/skills/frontmatter.js +44 -7
- package/dist/core/skills/frontmatter.js.map +1 -1
- package/dist/core/skills/im-command.d.ts +6 -0
- package/dist/core/skills/im-command.d.ts.map +1 -1
- package/dist/core/skills/im-command.js +34 -7
- package/dist/core/skills/im-command.js.map +1 -1
- package/dist/core/skills/install-command.d.ts +4 -0
- package/dist/core/skills/install-command.d.ts.map +1 -0
- package/dist/core/skills/install-command.js +89 -0
- package/dist/core/skills/install-command.js.map +1 -0
- package/dist/core/skills/package.d.ts.map +1 -1
- package/dist/core/skills/package.js +10 -3
- package/dist/core/skills/package.js.map +1 -1
- package/dist/core/skills/policy.d.ts +5 -1
- package/dist/core/skills/policy.d.ts.map +1 -1
- package/dist/core/skills/policy.js +66 -3
- package/dist/core/skills/policy.js.map +1 -1
- package/dist/core/skills/references.d.ts +9 -1
- package/dist/core/skills/references.d.ts.map +1 -1
- package/dist/core/skills/references.js +35 -2
- package/dist/core/skills/references.js.map +1 -1
- package/dist/core/skills/registry-paths.d.ts +1 -0
- package/dist/core/skills/registry-paths.d.ts.map +1 -1
- package/dist/core/skills/registry-paths.js +3 -0
- package/dist/core/skills/registry-paths.js.map +1 -1
- package/dist/core/skills/session-resolver.d.ts +2 -1
- package/dist/core/skills/session-resolver.d.ts.map +1 -1
- package/dist/core/skills/session-resolver.js +1 -0
- package/dist/core/skills/session-resolver.js.map +1 -1
- package/dist/core/skills/session-runtime.d.ts.map +1 -1
- package/dist/core/skills/session-runtime.js +2 -0
- package/dist/core/skills/session-runtime.js.map +1 -1
- package/dist/core/skills/sources.d.ts +23 -0
- package/dist/core/skills/sources.d.ts.map +1 -1
- package/dist/core/skills/sources.js +128 -12
- package/dist/core/skills/sources.js.map +1 -1
- package/dist/core/skills/types.d.ts +22 -1
- package/dist/core/skills/types.d.ts.map +1 -1
- package/dist/core/terminal-write-auth.d.ts +4 -4
- package/dist/core/terminal-write-auth.d.ts.map +1 -1
- package/dist/core/terminal-write-auth.js +18 -6
- package/dist/core/terminal-write-auth.js.map +1 -1
- package/dist/core/types.d.ts +2 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +52 -1
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts +1 -0
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +101 -12
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/auth.d.ts +21 -11
- package/dist/dashboard/auth.d.ts.map +1 -1
- package/dist/dashboard/auth.js +39 -25
- package/dist/dashboard/auth.js.map +1 -1
- package/dist/dashboard/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/bot-onboarding.js +2 -114
- package/dist/dashboard/bot-onboarding.js.map +1 -1
- package/dist/dashboard/bot-payload.d.ts +0 -1
- package/dist/dashboard/bot-payload.d.ts.map +1 -1
- package/dist/dashboard/bot-payload.js +0 -1
- package/dist/dashboard/bot-payload.js.map +1 -1
- package/dist/dashboard/connector-api.d.ts.map +1 -1
- package/dist/dashboard/connector-api.js +66 -6
- package/dist/dashboard/connector-api.js.map +1 -1
- package/dist/dashboard/dashboard-summary-endpoint.d.ts +39 -0
- package/dist/dashboard/dashboard-summary-endpoint.d.ts.map +1 -0
- package/dist/dashboard/dashboard-summary-endpoint.js +50 -0
- package/dist/dashboard/dashboard-summary-endpoint.js.map +1 -0
- package/dist/dashboard/dashboard-summary.d.ts +62 -0
- package/dist/dashboard/dashboard-summary.d.ts.map +1 -0
- package/dist/dashboard/dashboard-summary.js +106 -0
- package/dist/dashboard/dashboard-summary.js.map +1 -0
- package/dist/dashboard/public-redact.d.ts.map +1 -1
- package/dist/dashboard/public-redact.js +3 -0
- package/dist/dashboard/public-redact.js.map +1 -1
- package/dist/dashboard/skill-install-request.js +10 -11
- package/dist/dashboard/skill-install-request.js.map +1 -1
- package/dist/dashboard/skill-pack-response.d.ts +15 -0
- package/dist/dashboard/skill-pack-response.d.ts.map +1 -0
- package/dist/dashboard/skill-pack-response.js +32 -0
- package/dist/dashboard/skill-pack-response.js.map +1 -0
- package/dist/dashboard/web/connectors-page.d.ts +69 -0
- package/dist/dashboard/web/connectors-page.d.ts.map +1 -1
- package/dist/dashboard/web/connectors-page.js +47 -7
- package/dist/dashboard/web/connectors-page.js.map +1 -1
- package/dist/dashboard/web/feed-group-picker.d.ts +13 -0
- package/dist/dashboard/web/feed-group-picker.d.ts.map +1 -0
- package/dist/dashboard/web/feed-group-picker.js +45 -0
- package/dist/dashboard/web/feed-group-picker.js.map +1 -0
- package/dist/dashboard/web/groups-page.d.ts.map +1 -1
- package/dist/dashboard/web/groups-page.js +2 -5
- package/dist/dashboard/web/groups-page.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +309 -40
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/web/preferences.d.ts +4 -2
- package/dist/dashboard/web/preferences.d.ts.map +1 -1
- package/dist/dashboard/web/preferences.js +14 -6
- package/dist/dashboard/web/preferences.js.map +1 -1
- package/dist/dashboard/web/roles-page.d.ts.map +1 -1
- package/dist/dashboard/web/roles-page.js +36 -4
- package/dist/dashboard/web/roles-page.js.map +1 -1
- package/dist/dashboard/web/roles.d.ts +3 -1
- package/dist/dashboard/web/roles.d.ts.map +1 -1
- package/dist/dashboard/web/roles.js +10 -2
- package/dist/dashboard/web/roles.js.map +1 -1
- package/dist/dashboard/web/schedules-page.d.ts.map +1 -1
- package/dist/dashboard/web/schedules-page.js +8 -2
- package/dist/dashboard/web/schedules-page.js.map +1 -1
- package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
- package/dist/dashboard/web/sessions-page.js +101 -5
- package/dist/dashboard/web/sessions-page.js.map +1 -1
- package/dist/dashboard/web/sessions.d.ts +3 -1
- package/dist/dashboard/web/sessions.d.ts.map +1 -1
- package/dist/dashboard/web/sessions.js +13 -6
- package/dist/dashboard/web/sessions.js.map +1 -1
- package/dist/dashboard/web/skills/bot-assignments-tab.d.ts +27 -0
- package/dist/dashboard/web/skills/bot-assignments-tab.d.ts.map +1 -0
- package/dist/dashboard/web/skills/bot-assignments-tab.js +257 -0
- package/dist/dashboard/web/skills/bot-assignments-tab.js.map +1 -0
- package/dist/dashboard/web/skills/delivery-settings-tab.d.ts +25 -0
- package/dist/dashboard/web/skills/delivery-settings-tab.d.ts.map +1 -0
- package/dist/dashboard/web/skills/delivery-settings-tab.js +20 -0
- package/dist/dashboard/web/skills/delivery-settings-tab.js.map +1 -0
- package/dist/dashboard/web/skills/shared.d.ts +86 -0
- package/dist/dashboard/web/skills/shared.d.ts.map +1 -0
- package/dist/dashboard/web/skills/shared.js +178 -0
- package/dist/dashboard/web/skills/shared.js.map +1 -0
- package/dist/dashboard/web/skills/skill-library-tab.d.ts +75 -0
- package/dist/dashboard/web/skills/skill-library-tab.d.ts.map +1 -0
- package/dist/dashboard/web/skills/skill-library-tab.js +108 -0
- package/dist/dashboard/web/skills/skill-library-tab.js.map +1 -0
- package/dist/dashboard/web/skills/skill-packs-tab.d.ts +21 -0
- package/dist/dashboard/web/skills/skill-packs-tab.d.ts.map +1 -0
- package/dist/dashboard/web/skills/skill-packs-tab.js +185 -0
- package/dist/dashboard/web/skills/skill-packs-tab.js.map +1 -0
- package/dist/dashboard/web/skills/types.d.ts +95 -0
- package/dist/dashboard/web/skills/types.d.ts.map +1 -0
- package/dist/dashboard/web/skills/types.js +2 -0
- package/dist/dashboard/web/skills/types.js.map +1 -0
- package/dist/dashboard/web/skills/use-skills-data.d.ts +31 -0
- package/dist/dashboard/web/skills/use-skills-data.d.ts.map +1 -0
- package/dist/dashboard/web/skills/use-skills-data.js +86 -0
- package/dist/dashboard/web/skills/use-skills-data.js.map +1 -0
- package/dist/dashboard/web/skills-page.d.ts +34 -31
- package/dist/dashboard/web/skills-page.d.ts.map +1 -1
- package/dist/dashboard/web/skills-page.js +321 -176
- package/dist/dashboard/web/skills-page.js.map +1 -1
- package/dist/dashboard/webhook-routes.d.ts +18 -0
- package/dist/dashboard/webhook-routes.d.ts.map +1 -1
- package/dist/dashboard/webhook-routes.js +35 -1
- package/dist/dashboard/webhook-routes.js.map +1 -1
- package/dist/dashboard-web/app.js +1 -1
- package/dist/dashboard-web/chunks/{bot-defaults-page-GED4FEMS.js → bot-defaults-page-HL655CNR.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-HK7NIBJG.js → chunk-5PAYQ3KT.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-KRHWZEXU.js → chunk-5ZL7NLR5.js} +1 -1
- package/dist/dashboard-web/chunks/chunk-6ALR252E.js +1 -0
- package/dist/dashboard-web/chunks/{chunk-VBXJOJFH.js → chunk-BFUTTYVK.js} +1 -1
- package/dist/dashboard-web/chunks/chunk-ELL53D62.js +55 -0
- package/dist/dashboard-web/chunks/connectors-page-3QQACF23.js +1 -0
- package/dist/dashboard-web/chunks/groups-page-SDZMJ7UV.js +8 -0
- package/dist/dashboard-web/chunks/{insights-page-54UBPPOC.js → insights-page-ZZ3JEJ6L.js} +1 -1
- package/dist/dashboard-web/chunks/{monitor-room-PORHVKRH.js → monitor-room-ROJ5GZ4N.js} +1 -1
- package/dist/dashboard-web/chunks/{monitoring-page-XGA7AXNL.js → monitoring-page-IATV7KJF.js} +1 -1
- package/dist/dashboard-web/chunks/{office-page-AO3AFG45.js → office-page-TYO5OIIT.js} +1 -1
- package/dist/dashboard-web/chunks/{overview-page-F5BUTYR6.js → overview-page-VJUULZF2.js} +1 -1
- package/dist/dashboard-web/chunks/roles-page-7RJJKZGK.js +1 -0
- package/dist/dashboard-web/chunks/schedules-page-JTEJ5IXW.js +1 -0
- package/dist/dashboard-web/chunks/sessions-page-KD7HDT3U.js +8 -0
- package/dist/dashboard-web/chunks/{settings-page-OJAZLZQT.js → settings-page-7CTTFBRS.js} +1 -1
- package/dist/dashboard-web/chunks/skills-page-57NZECJ3.js +4 -0
- package/dist/dashboard-web/chunks/{team-federation-page-ZJVAP7HW.js → team-federation-page-6YYIMJG3.js} +1 -1
- package/dist/dashboard-web/chunks/{v3-page-GYWTRGO2.js → v3-page-ZGKBSBK3.js} +1 -1
- package/dist/dashboard-web/chunks/{whiteboards-page-MSDAG6P7.js → whiteboards-page-AACJF6DB.js} +1 -1
- package/dist/dashboard-web/style.css +1952 -377
- package/dist/dashboard.js +316 -47
- package/dist/dashboard.js.map +1 -1
- package/dist/desktop/main/ipc.js +1 -1
- package/dist/desktop/main/runtime-service.js +2 -2
- package/dist/desktop/main/runtime-service.js.map +1 -1
- package/dist/desktop/shared/types.d.ts +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +5 -1
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +5 -1
- package/dist/i18n/zh.js.map +1 -1
- package/dist/index-daemon.js +6 -1
- package/dist/index-daemon.js.map +1 -1
- package/dist/services/adopt-input-sequence.d.ts +52 -0
- package/dist/services/adopt-input-sequence.d.ts.map +1 -0
- package/dist/services/adopt-input-sequence.js +50 -0
- package/dist/services/adopt-input-sequence.js.map +1 -0
- package/dist/services/bridge-fallback-gate.d.ts.map +1 -1
- package/dist/services/bridge-fallback-gate.js +34 -11
- package/dist/services/bridge-fallback-gate.js.map +1 -1
- package/dist/services/codex-bridge-queue.d.ts +103 -7
- package/dist/services/codex-bridge-queue.d.ts.map +1 -1
- package/dist/services/codex-bridge-queue.js +291 -17
- package/dist/services/codex-bridge-queue.js.map +1 -1
- package/dist/services/codex-transcript.d.ts +4 -3
- package/dist/services/codex-transcript.d.ts.map +1 -1
- package/dist/services/codex-transcript.js.map +1 -1
- package/dist/services/connector-store.d.ts +14 -1
- package/dist/services/connector-store.d.ts.map +1 -1
- package/dist/services/connector-store.js.map +1 -1
- package/dist/services/connector-topic-template.d.ts +7 -0
- package/dist/services/connector-topic-template.d.ts.map +1 -0
- package/dist/services/connector-topic-template.js +210 -0
- package/dist/services/connector-topic-template.js.map +1 -0
- package/dist/services/project-scanner.d.ts +33 -0
- package/dist/services/project-scanner.d.ts.map +1 -1
- package/dist/services/project-scanner.js +40 -1
- package/dist/services/project-scanner.js.map +1 -1
- package/dist/services/skill-pack-store.d.ts +50 -0
- package/dist/services/skill-pack-store.d.ts.map +1 -0
- package/dist/services/skill-pack-store.js +270 -0
- package/dist/services/skill-pack-store.js.map +1 -0
- package/dist/services/skill-registry-store.d.ts +8 -0
- package/dist/services/skill-registry-store.d.ts.map +1 -1
- package/dist/services/skill-registry-store.js +100 -68
- package/dist/services/skill-registry-store.js.map +1 -1
- package/dist/services/structured-bridge-clis.d.ts +8 -1
- package/dist/services/structured-bridge-clis.d.ts.map +1 -1
- package/dist/services/structured-bridge-clis.js +13 -0
- package/dist/services/structured-bridge-clis.js.map +1 -1
- package/dist/services/submit-confirmation.d.ts +50 -0
- package/dist/services/submit-confirmation.d.ts.map +1 -1
- package/dist/services/submit-confirmation.js +82 -0
- package/dist/services/submit-confirmation.js.map +1 -1
- package/dist/services/todo-state.d.ts +74 -0
- package/dist/services/todo-state.d.ts.map +1 -0
- package/dist/services/todo-state.js +351 -0
- package/dist/services/todo-state.js.map +1 -0
- package/dist/setup/agent-preset.d.ts.map +1 -1
- package/dist/setup/agent-preset.js +2 -0
- package/dist/setup/agent-preset.js.map +1 -1
- package/dist/setup/owner-identity.d.ts +47 -0
- package/dist/setup/owner-identity.d.ts.map +1 -0
- package/dist/setup/owner-identity.js +196 -0
- package/dist/setup/owner-identity.js.map +1 -0
- package/dist/setup/register-app.d.ts +4 -3
- package/dist/setup/register-app.d.ts.map +1 -1
- package/dist/setup/register-app.js.map +1 -1
- package/dist/setup/setup-args.d.ts +1 -1
- package/dist/setup/setup-args.d.ts.map +1 -1
- package/dist/setup/setup-args.js +7 -3
- package/dist/setup/setup-args.js.map +1 -1
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/async-serial-queue.d.ts +9 -0
- package/dist/utils/async-serial-queue.d.ts.map +1 -0
- package/dist/utils/async-serial-queue.js +13 -0
- package/dist/utils/async-serial-queue.js.map +1 -0
- package/dist/utils/child-env.d.ts +25 -0
- package/dist/utils/child-env.d.ts.map +1 -1
- package/dist/utils/child-env.js +47 -0
- package/dist/utils/child-env.js.map +1 -1
- package/dist/utils/runtime-screen-status.d.ts +52 -0
- package/dist/utils/runtime-screen-status.d.ts.map +1 -0
- package/dist/utils/runtime-screen-status.js +60 -0
- package/dist/utils/runtime-screen-status.js.map +1 -0
- package/dist/worker.js +1697 -468
- package/dist/worker.js.map +1 -1
- package/dist/workflows/definition.d.ts +44 -44
- package/package.json +1 -1
- package/dist/dashboard-web/chunks/chunk-6J5LS5AU.js +0 -51
- package/dist/dashboard-web/chunks/connectors-page-EELM66G3.js +0 -1
- package/dist/dashboard-web/chunks/groups-page-WKUV6E42.js +0 -8
- package/dist/dashboard-web/chunks/roles-page-M5GIASJU.js +0 -1
- package/dist/dashboard-web/chunks/schedules-page-O232WQRR.js +0 -1
- package/dist/dashboard-web/chunks/sessions-page-YFRPSTIL.js +0 -6
- package/dist/dashboard-web/chunks/skills-page-EFZQPWV4.js +0 -4
|
@@ -708,10 +708,17 @@ const zh = {
|
|
|
708
708
|
'connectors.topicMessageDefaultHint': '自动带上 Webhook 名称,保持现有体验。',
|
|
709
709
|
'connectors.topicMessageCustom': '自定义文案',
|
|
710
710
|
'connectors.topicMessageCustomHint': '用自己的提示说明这次触发来自哪里。',
|
|
711
|
+
'connectors.topicMessageTemplate': '可信模板',
|
|
712
|
+
'connectors.topicMessageTemplateHint': '从 Webhook 数据提取任务信息,并安全地展示负责人。',
|
|
711
713
|
'connectors.topicMessageNone': '不发送提示',
|
|
712
714
|
'connectors.topicMessageNoneHint': '静默启动,不发送话题起始消息。',
|
|
713
715
|
'connectors.topicMessageCustomPh': '如:CI 构建失败,请检查发布流水线',
|
|
714
716
|
'connectors.topicMessageCustomHelp': '可使用 {source} 代入 Webhook 名称。',
|
|
717
|
+
'connectors.topicMessageTemplatePh': '如:Meego启动开发:{{title}} {{mention owner}}负责人',
|
|
718
|
+
'connectors.topicMessageTemplateHelp': '使用 {{字段}} 插入文本,使用 {{mention 字段}} 生成飞书 @。{{source}} 表示 Webhook 名称。',
|
|
719
|
+
'connectors.topicMessageExtractors': '字段提取器 JSON',
|
|
720
|
+
'connectors.topicMessageExtractorsPh': '{\n "title": { "path": "$.issue.title", "kind": "text" }\n}',
|
|
721
|
+
'connectors.topicMessageExtractorsHelp': '每个字段配置受限 JSON 路径和 text/mention 类型;mention 可额外配置 identityPath 与 namePath。',
|
|
715
722
|
'connectors.topicMessagePreview': '预览:外部事件触发:{source}',
|
|
716
723
|
'connectors.topicMessageNonePreview': '不会发送触发提示;机器人后续输出仍会正常发送。',
|
|
717
724
|
'connectors.topicMessageSourceFallback': 'Webhook 名称',
|
|
@@ -761,6 +768,7 @@ const zh = {
|
|
|
761
768
|
'connectors.errChat': '请选择(或手动填)投递的群',
|
|
762
769
|
'connectors.errDedup': '请填写用于复用群的业务唯一键',
|
|
763
770
|
'connectors.errTopicMessage': '请填写自定义触发提示',
|
|
771
|
+
'connectors.errTopicExtractors': '字段提取器必须是合法的 JSON',
|
|
764
772
|
'connectors.creating': '创建中…',
|
|
765
773
|
'connectors.saving': '保存中…',
|
|
766
774
|
'connectors.updated': '已保存全部配置',
|
|
@@ -975,10 +983,16 @@ const zh = {
|
|
|
975
983
|
'sessions.selectSession': '选择会话',
|
|
976
984
|
'sessions.board.needsYou': '需要你',
|
|
977
985
|
'sessions.board.needsYouHint': '等待仓库、TUI 选择、额度处理或无进展检查',
|
|
978
|
-
'sessions.board.
|
|
979
|
-
'sessions.board.
|
|
980
|
-
'sessions.board.
|
|
981
|
-
'sessions.board.
|
|
986
|
+
'sessions.board.working': '进行中',
|
|
987
|
+
'sessions.board.workingHint': '正在启动、输出、分析或执行工具',
|
|
988
|
+
'sessions.board.todo': '待办',
|
|
989
|
+
'sessions.board.todoHint': '机器空闲但还有未完成的 TODO',
|
|
990
|
+
'sessions.board.todoBadge': 'TODO {done}/{total}',
|
|
991
|
+
'sessions.board.todoBadgeTitle': '还有 {remaining} 项 TODO 未完成(共 {total} 项,已完成 {done} 项)',
|
|
992
|
+
'sessions.board.todoClickHint': '点击固定以复制',
|
|
993
|
+
'sessions.board.todoCopy': '复制清单',
|
|
994
|
+
'sessions.board.todoCopied': '已复制 ✓',
|
|
995
|
+
'sessions.board.todoActive': '正在做',
|
|
982
996
|
'sessions.board.idle': '空闲',
|
|
983
997
|
'sessions.board.idleHint': '可继续对话或接新任务',
|
|
984
998
|
'sessions.board.emptyColumn': '暂无会话',
|
|
@@ -994,7 +1008,7 @@ const zh = {
|
|
|
994
1008
|
'sessions.kanban.backlog': '待办池',
|
|
995
1009
|
'sessions.kanban.todo': '待办',
|
|
996
1010
|
'sessions.kanban.inProgress': '进行中',
|
|
997
|
-
'sessions.kanban.inReview': '
|
|
1011
|
+
'sessions.kanban.inReview': '需要你',
|
|
998
1012
|
'sessions.kanban.done': '已完成',
|
|
999
1013
|
'sessions.kanban.updated': '更新于 {time}',
|
|
1000
1014
|
'sessions.kanban.moreHidden': '还有 {count} 个未显示',
|
|
@@ -1308,6 +1322,7 @@ const zh = {
|
|
|
1308
1322
|
'settings.hostOverloadAlertEnterLoadHelp': '当 15 分钟平均负载 > 逻辑核数 × 此值时判定为过载。默认 1.5。恢复线固定为内置默认(核数 × 1.0);若你把进入线设得比它还低,恢复线会自动压到进入线的 95%,以保证「低于进入线才算恢复」不抖动。',
|
|
1309
1323
|
'settings.hostOverloadAlertEnterMem': '内存进入阈值(%)',
|
|
1310
1324
|
'settings.hostOverloadAlertEnterMemHelp': '当已用内存占比 ≥ 此百分比时判定为过载。默认 92。恢复线固定为内置默认(85%);同样在你把进入线设得更低时,自动压到进入线的 95%。',
|
|
1325
|
+
'settings.noVisibleOutputHint': '“无可见输出”防重发提示',
|
|
1311
1326
|
'settings.noVisibleOutputHintHelp': '实验性,默认关闭。在 botmux 路由提示里加一段纠偏:告诉模型 botmux send 成功即已送达、本轮无可见文本地结束是正常的、看到「无可见输出请继续」是底层 CLI(Claude Code ≥2.1.212)的误判不要重发。主要用于 Claude Code 驱动非 Claude 后端模型时(易把 thinking-only nudge 误读为发送失败而重复回复);对纯 Claude 场景无害但通常无需开启。开关翻动下一个会话即生效,无需重启。',
|
|
1312
1327
|
'settings.sectionVcMeetingAgent': '会议监听',
|
|
1313
1328
|
'settings.vcMeetingAgent': '允许本机使用会议监听能力',
|
|
@@ -1516,19 +1531,60 @@ const zh = {
|
|
|
1516
1531
|
'skills.installedHelp': '本机已安装、可供 Bot 使用的 Skills。',
|
|
1517
1532
|
'skills.installedCount': '{count} 个',
|
|
1518
1533
|
'skills.metricInstalled': '已安装 Skills',
|
|
1534
|
+
'skills.metricPacks': '专项包',
|
|
1519
1535
|
'skills.metricBots': '已配置 Bot',
|
|
1520
|
-
'skills.metricAttached': '
|
|
1536
|
+
'skills.metricAttached': '策略引用',
|
|
1537
|
+
'skills.issuesLabel': '配置健康',
|
|
1538
|
+
'skills.issueDangling': '{count} 个 Skill 被引用但未安装',
|
|
1539
|
+
'skills.issueUnassignedPacks': '{count} 个专项包未分配 Bot',
|
|
1540
|
+
'skills.issueBotsMissing': '{count} 个 Bot 缺失能力',
|
|
1541
|
+
'skills.issueNone': '✓ 配置健康',
|
|
1542
|
+
'skills.usedInPacks': '{count} 包',
|
|
1543
|
+
'skills.usedByBots': '{count} Bot',
|
|
1544
|
+
'skills.installTargetHint': '目标:安装 “{skill}”(发现候选后将自动勾选,不会自动安装)',
|
|
1545
|
+
'skills.clearInstallTarget': '清除目标',
|
|
1546
|
+
'skills.installTargetNotFound': '该来源中未找到目标 Skill “{skill}”,已取消默认勾选',
|
|
1547
|
+
'skills.installMissingHint': '前往安装 “{skill}”',
|
|
1548
|
+
'skills.packsLoadError': '专项包数据加载失败(已保留上次数据):{error}',
|
|
1549
|
+
'skills.packsLoadErrorFirst': '专项包数据加载失败(尚未成功加载过,相关健康状态按未知处理):{error}',
|
|
1550
|
+
'skills.libraryFilterActive': '筛选 {count} 项',
|
|
1551
|
+
'skills.clearFilter': '清除筛选',
|
|
1552
|
+
'skills.missingFilteredTitle': '被引用但未安装的 Skill',
|
|
1553
|
+
'skills.installNow': '去安装',
|
|
1554
|
+
'skills.usedInPacksUnknown': '? 包',
|
|
1521
1555
|
'skills.install': '安装 Skill',
|
|
1522
1556
|
'skills.installInfoLabel': '安装位置说明',
|
|
1523
1557
|
'skills.installInfo': '注册信息写入 ~/.botmux/skills/registry.json;安装内容存放在 ~/.botmux/skills/store。本机 CLI Skill 以原路径引用,不写入 CLI 全局目录。',
|
|
1524
1558
|
'skills.source': '导入地址',
|
|
1525
1559
|
'skills.sourcePlaceholder': '粘贴 GitHub 仓库 / Git URL / agentbuddy 安装命令 / 本机 Skill 目录',
|
|
1526
|
-
'skills.
|
|
1527
|
-
'skills.
|
|
1528
|
-
'skills.
|
|
1560
|
+
'skills.sourceHelpOpen': '查看支持的导入来源',
|
|
1561
|
+
'skills.sourceHelpClose': '关闭导入来源说明',
|
|
1562
|
+
'skills.sourceHelpTitle': '支持的导入来源',
|
|
1563
|
+
'skills.sourceHelpIntro': '直接粘贴来源;系统会先识别类型,再扫描可安装的 Skill。',
|
|
1564
|
+
'skills.sourceHelpRemoteLabel': 'GitHub / Git',
|
|
1565
|
+
'skills.sourceHelpRemote': '支持 owner/repo、GitHub 浏览器地址和 Git URL;多 Skill 仓库会在扫描后让你选择。',
|
|
1566
|
+
'skills.sourceHelpRemoteExample': 'owner/repo · https://github.com/owner/repo/tree/main',
|
|
1567
|
+
'skills.sourceHelpLocalLabel': '本机 CLI Skill 目录',
|
|
1529
1568
|
'skills.sourceHelpLocal': '直接引用原地址,不复制到 botmux store。',
|
|
1530
|
-
'skills.
|
|
1531
|
-
'skills.
|
|
1569
|
+
'skills.sourceHelpLocalExample': '/absolute/path/to/skill',
|
|
1570
|
+
'skills.sourceHelpAgentbuddyLabel': 'AgentBuddy',
|
|
1571
|
+
'skills.sourceHelpAgentbuddy': '请粘贴完整安装命令,商城 URL 本身不能安装;部署机需可运行 Agentbuddy CLI。',
|
|
1572
|
+
'skills.sourceHelpAgentbuddyExample': 'npm_config_registry="https://registry.example.com" npx -y agentbuddy@latest skill add skills.example.com/team/health',
|
|
1573
|
+
'skills.advancedOptions': '高级选项(仓库内路径 / Ref / 扫描深度)',
|
|
1574
|
+
'skills.sourceDetectedGithub': '已识别:GitHub 仓库',
|
|
1575
|
+
'skills.sourceDetectedGit': '已识别:Git 远程仓库',
|
|
1576
|
+
'skills.sourceDetectedAgentbuddy': '已识别:Agentbuddy 安装命令',
|
|
1577
|
+
'skills.sourceDetectedLocal': '已识别:部署机本地路径',
|
|
1578
|
+
'skills.sourceDetectedUnknown': '暂无法识别该格式',
|
|
1579
|
+
'skills.sourcePreflightAgentbuddy': '粘贴命令只用于提取安装目标;实际运行依赖部署机已配置 Agentbuddy CLI 且已登录。',
|
|
1580
|
+
'skills.sourcePreflightGit': '公开仓库可直接扫描;私有仓库需部署机的 GitHub Token、gh 登录或 SSH Key。',
|
|
1581
|
+
'skills.sourcePreflightLocal': '该路径必须存在于 Botmux 部署机,且进程对 `SKILL.md` 有读取权限。',
|
|
1582
|
+
'skills.sourcePreflightUnknown': '请改用 GitHub/Git 地址、完整 Agentbuddy 安装命令或部署机本地路径。',
|
|
1583
|
+
'skills.installDiagnosticTitle': '安装失败排查',
|
|
1584
|
+
'skills.installDiagnosticAgentbuddy': '检查部署机是否可用 Agentbuddy CLI、是否已登录,并确认粘贴的是完整 `skill add` / `collection add` 命令,而不是商城 URL。',
|
|
1585
|
+
'skills.installDiagnosticGit': '检查仓库地址、Ref 和仓库内路径;私有仓库还需确认部署机 Git 凭据有效。',
|
|
1586
|
+
'skills.installDiagnosticLocal': '检查路径是否位于部署机、目录内是否有可读的 `SKILL.md`,以及目录层级是否超过扫描深度。',
|
|
1587
|
+
'skills.installDiagnosticUnknown': '该输入不是受支持的来源格式;请打开导入地址旁的来源说明后重试。',
|
|
1532
1588
|
'skills.agentbuddyNotFound': '部署机未找到 agentbuddy CLI。请在部署机全局安装,或设置 BOTMUX_AGENTBUDDY_CMD。',
|
|
1533
1589
|
'skills.agentbuddyNeedsLogin': '部署机 agentbuddy 未登录。请在部署机运行 agentbuddy login 后重试。',
|
|
1534
1590
|
'skills.gitNeedsAuth': 'GitHub 私有仓库鉴权失败。请在部署机执行 gh auth login,或在 ~/.botmux/.env 配置 GITHUB_TOKEN / GH_TOKEN;也可使用 SSH Git URL 复用主机 SSH key。',
|
|
@@ -1567,10 +1623,15 @@ const zh = {
|
|
|
1567
1623
|
'skills.sourceBotmuxCopy': 'botmux store',
|
|
1568
1624
|
'skills.path': '仓库内路径(可选)',
|
|
1569
1625
|
'skills.pathPlaceholder': '留空则扫描仓库根目录;也可填写单个 Skill 目录',
|
|
1626
|
+
'skills.pathHelpInline': '整仓库导入时留空;指定目录可跳过扫描,直接安装该 Skill。',
|
|
1570
1627
|
'skills.ref': 'Ref(可选)',
|
|
1571
1628
|
'skills.refPlaceholder': '留空则使用 GitHub URL 中的分支或默认 HEAD',
|
|
1629
|
+
'skills.refHelpInline': '支持分支、Tag 或 commit;GitHub tree/blob URL 已自带 Ref 时可留空。',
|
|
1630
|
+
'skills.deepScan': '直接深度扫描',
|
|
1631
|
+
'skills.deepScanHelp': '跳过浅扫,递归查找最多 4 层目录。大型仓库可能更慢。',
|
|
1632
|
+
'skills.autoDeepScanHint': '默认先快速扫描;没有结果时会自动深扫一次。',
|
|
1572
1633
|
'skills.link': '本地链接(不复制)',
|
|
1573
|
-
'skills.installSubmit': '
|
|
1634
|
+
'skills.installSubmit': '扫描并安装',
|
|
1574
1635
|
'skills.installSelected': '安装选中',
|
|
1575
1636
|
'skills.installSelectionTitle': '选择要安装的 Skill',
|
|
1576
1637
|
'skills.installSelectionHelp': '发现 {count} 个 Skill;取消不需要的项后再安装。',
|
|
@@ -1580,6 +1641,10 @@ const zh = {
|
|
|
1580
1641
|
'skills.select': '选择',
|
|
1581
1642
|
'skills.searchLabel': '搜索已安装的 Skills',
|
|
1582
1643
|
'skills.searchPlaceholder': '搜索已安装的 Skills',
|
|
1644
|
+
'skills.selectAll': '全选',
|
|
1645
|
+
'skills.deselectAll': '取消全选',
|
|
1646
|
+
'skills.all': '全部',
|
|
1647
|
+
'skills.noResults': '没有匹配的 Skill',
|
|
1583
1648
|
'skills.clearSearch': '清除搜索',
|
|
1584
1649
|
'skills.resultCount': '{count} 个结果',
|
|
1585
1650
|
'skills.selectAllSkills': '全选全部 {count} 个',
|
|
@@ -1602,7 +1667,9 @@ const zh = {
|
|
|
1602
1667
|
'skills.removeInUseManyTitle': '仍要删除 {count} 个 Skills?',
|
|
1603
1668
|
'skills.removeInUseOneHelp': '它正被 {count} 个 Bot 引用。删除后,这些 Bot 将无法继续使用它。此操作无法撤销。',
|
|
1604
1669
|
'skills.removeInUseManyHelp': '这些 Skills 正被 {count} 个 Bot 引用。删除后,这些 Bot 将无法继续使用它们。此操作无法撤销。',
|
|
1605
|
-
'skills.
|
|
1670
|
+
'skills.removeInUseOneHelpWithPacks': '它正被 {botCount} 个 Bot 和 {packCount} 个 Skill Pack 引用。删除后会留下无效引用。此操作无法撤销。',
|
|
1671
|
+
'skills.removeInUseManyHelpWithPacks': '这些 Skills 正被 {botCount} 个 Bot 和 {packCount} 个 Skill Pack 引用。删除后会留下无效引用。此操作无法撤销。',
|
|
1672
|
+
'skills.removeReferencesDetail': '受影响的引用',
|
|
1606
1673
|
'skills.removeOneConfirm': '删除 Skill',
|
|
1607
1674
|
'skills.removeAnyway': '仍要删除',
|
|
1608
1675
|
'skills.removing': '正在删除…',
|
|
@@ -1624,6 +1691,15 @@ const zh = {
|
|
|
1624
1691
|
'skills.globalDelivery': 'Skill 注入方式',
|
|
1625
1692
|
'skills.bots': 'Bot Skill 配置',
|
|
1626
1693
|
'skills.botsHelp': '为每个 bot 设置优先披露的 Skill。',
|
|
1694
|
+
'skills.bot': 'Bot',
|
|
1695
|
+
'skills.cli': 'CLI',
|
|
1696
|
+
'skills.injection': '注入方式',
|
|
1697
|
+
'skills.status': '状态',
|
|
1698
|
+
'skills.dragHint': '从左侧拖入即可分配;把 Bot 中的芯片拖回左侧即可取消',
|
|
1699
|
+
'skills.dragToRemove': '拖回左侧取消此分配',
|
|
1700
|
+
'skills.unassignDropTitle': '拖到这里取消分配',
|
|
1701
|
+
'skills.unassignDropHint': '只会从 {bot} 移除当前项,不会删除 Skill 或专项包',
|
|
1702
|
+
'skills.alreadyAssigned': '{item} 已在该 Bot 的配置中',
|
|
1627
1703
|
'skills.botCount': '{count} 个 Bot',
|
|
1628
1704
|
'skills.skillCount': '{count} 个 Skill',
|
|
1629
1705
|
'skills.attach': '加入优先披露',
|
|
@@ -1662,6 +1738,68 @@ const zh = {
|
|
|
1662
1738
|
'skills.failed': '失败',
|
|
1663
1739
|
'skills.jobRunning': '处理中...',
|
|
1664
1740
|
'skills.refresh': '刷新',
|
|
1741
|
+
'skills.tabPacks': '专项包',
|
|
1742
|
+
'skills.tabLibrary': 'Skill 库',
|
|
1743
|
+
'skills.tabBots': 'Bot 分配',
|
|
1744
|
+
'skills.tabDelivery': '投递设置',
|
|
1745
|
+
'skills.packs': '专项包',
|
|
1746
|
+
'skills.packCount': '{count} 个',
|
|
1747
|
+
'skills.packsHelp': '把一组已安装能力命名保存,再分配给多个 Bot。',
|
|
1748
|
+
'skills.packsEmpty': '还没有专项包。先安装 Skill,再创建专项包。',
|
|
1749
|
+
'skills.packCreate': '新建专项包',
|
|
1750
|
+
'skills.packEdit': '编辑专项包',
|
|
1751
|
+
'skills.packId': 'ID(slug,创建后不可改)',
|
|
1752
|
+
'skills.packName': '名称',
|
|
1753
|
+
'skills.packDescription': '描述',
|
|
1754
|
+
'skills.packTags': '标签(逗号分隔)',
|
|
1755
|
+
'skills.packInclude': '包含的 Skill',
|
|
1756
|
+
'skills.packHealthComplete': '完整',
|
|
1757
|
+
'skills.packHealthMissing': '缺失 {count} 项',
|
|
1758
|
+
'skills.packHealthUnassigned': '未分配',
|
|
1759
|
+
'skills.packRefCount': '{count} 个 Bot',
|
|
1760
|
+
'skills.packRefs': '已分配 Bot',
|
|
1761
|
+
'skills.packMissing': '缺失 Skill',
|
|
1762
|
+
'skills.packIdPlaceholder': 'my-pack-slug',
|
|
1763
|
+
'skills.packTagsPlaceholder': '标签1, 标签2',
|
|
1764
|
+
'skills.packDeleted': '已删除“{name}”',
|
|
1765
|
+
'skills.packDeleteConfirmTitle': '删除专项包',
|
|
1766
|
+
'skills.packDeleteConfirmBody': '专项包“{name}”仍被 Bot 引用。强制删除只会删除专项包,不会自动清理这些 Bot policy 中的 pack: 引用,也不会卸载成员 Skill;删除后这些引用将显示为缺失。',
|
|
1767
|
+
'skills.packDeleteAffectedBots': '受影响的 Bot',
|
|
1768
|
+
'skills.packDeleteForceWarning': '此操作不可撤销,受影响的 Bot 将在新会话中失去该包提供的能力。',
|
|
1769
|
+
'skills.installWizard': '安装向导',
|
|
1770
|
+
'skills.wizSource': '选择来源',
|
|
1771
|
+
'skills.wizDetails': '填写详情',
|
|
1772
|
+
'skills.wizInstall': '确认安装',
|
|
1773
|
+
'skills.wizNext': '下一步',
|
|
1774
|
+
'skills.wizBack': '上一步',
|
|
1775
|
+
'skills.wizConfirm': '确认来源和选项后点击安装。',
|
|
1776
|
+
'skills.botInjection': 'Per-Bot 注入开关',
|
|
1777
|
+
'skills.botInjectionHelp': '只影响 codex/gemini 等使用全局 skills 目录的 CLI。',
|
|
1778
|
+
'skills.botInjectionNote': '注意:这是 per-bot 开关(global/prompt/off),与上方全局「注入方式」(auto/prompt/native)是两套独立设置,不要混为一谈。',
|
|
1779
|
+
'skills.injectionGlobal': '全局目录',
|
|
1780
|
+
'skills.injectionGlobalHelp': '投递到该 CLI 的全局 skills 目录',
|
|
1781
|
+
'skills.postInstallPackTitle': '保存为专项包',
|
|
1782
|
+
'skills.postInstallPackHelp': '已安装 {count} 个 Skill,可将本次结果保存为一个可复用的专项包。',
|
|
1783
|
+
'skills.postInstallPackSkills': '本次安装的 Skill',
|
|
1784
|
+
'skills.postInstallPackSkip': '暂不创建',
|
|
1785
|
+
'skills.postInstallPackCreate': '创建并查看专项包',
|
|
1786
|
+
'skills.injectionPrompt': '提示词',
|
|
1787
|
+
'skills.injectionPromptHelp': '注入会话提示词,不写入全局目录',
|
|
1788
|
+
'skills.injectionOff': '关闭',
|
|
1789
|
+
'skills.injectionOffHelp': '只留提示+botmux --help',
|
|
1790
|
+
'skills.scopeGlobal': '(全局)',
|
|
1791
|
+
'skills.botEdit': '编辑 Bot',
|
|
1792
|
+
'skills.resolvedPreview': '展开预览(去重后)',
|
|
1793
|
+
'skills.packChips': '专项包',
|
|
1794
|
+
'skills.individualSkills': '单独 Skill',
|
|
1795
|
+
'skills.finalCount': '最终能力',
|
|
1796
|
+
'skills.health': '状态',
|
|
1797
|
+
'skills.healthOk': '正常',
|
|
1798
|
+
'skills.healthDefault': '默认',
|
|
1799
|
+
'skills.healthMissing': '缺失 {count} 项',
|
|
1800
|
+
'skills.healthPackMissing': '专项包不存在',
|
|
1801
|
+
'skills.healthUnknown': '未知(专项包数据未加载)',
|
|
1802
|
+
'skills.packsUnknown': '专项包数据暂不可用(接口加载失败),无法判断健康状态',
|
|
1665
1803
|
'botDefaults.title': 'Bot 配置',
|
|
1666
1804
|
'botDefaults.openConsole': '飞书后台',
|
|
1667
1805
|
'botDefaults.metaOnline': '在线 · daemon 正常',
|
|
@@ -1793,12 +1931,6 @@ const zh = {
|
|
|
1793
1931
|
'botDefaults.sbxInherit': '继承',
|
|
1794
1932
|
'botDefaults.sbxNoSubdirs': '(无子目录)',
|
|
1795
1933
|
'botDefaults.sbxTestPlaceholder': '输入路径测试实际生效访问,如 ~/my-data/secrets/x',
|
|
1796
|
-
'botDefaults.readIsolationToggle': '开启读隔离(macOS)',
|
|
1797
|
-
'botDefaults.readIsolationHelp': '开启后,该 bot 的会话在 macOS 沙箱(Seatbelt)里运行:读不到其它 bot 的凭证(bots.json)、会话、聊天内容,但能收发自己的消息、读自己上传的文件/白板。是上面「文件沙盒」在 macOS 上的对应机制。下个新会话生效。',
|
|
1798
|
-
'botDefaults.readIsolationSaved': '已保存(下个新会话生效)',
|
|
1799
|
-
'botDefaults.readIsolationSavedRestarted': '已保存,已重启该 bot 的 {count} 个会话(下条消息冷启动生效;切换隔离模式会换数据目录,这些会话的对话上下文将重置为新会话)',
|
|
1800
|
-
'botDefaults.readIsolationUnsupported': '(此 bot 当前无法启用读隔离:需 macOS + 支持的 CLI(claude-code / codex)+ 未配 wrapper 网关)',
|
|
1801
|
-
'botDefaults.readIsolationStaleOn': '(已开启,但当前环境无法强制执行——会话会 fail-close 拒启动,建议关闭以恢复)',
|
|
1802
1934
|
'botDefaults.sectionBackend': '会话后端',
|
|
1803
1935
|
'botDefaults.backendLabel': '后端类型',
|
|
1804
1936
|
'botDefaults.backendHelp': '该 bot 新会话使用的会话后端;改动实时生效于新会话,运行中的会话仍用其启动时的后端、不受影响。tmux 支持 adopt / Web 终端;herdr 托管持久会话;zmx >= 0.7.0 使用 tail 变化信号 + history 权威纯文本屏幕 + send 输入(无 Web TUI);zellij 实验性;pty 最轻量但不跨 daemon 重启存活。“自动”跟随全局默认。',
|
|
@@ -2033,6 +2165,9 @@ const zh = {
|
|
|
2033
2165
|
'roles.injectModeEvery': '每轮注入(默认)',
|
|
2034
2166
|
'roles.injectModeOnce': '仅首轮注入一次',
|
|
2035
2167
|
'roles.injectModeHint': '「仅一次」只在会话开始/重建时注入角色,之后不再重复,省 token;改动即时保存',
|
|
2168
|
+
'roles.dispatchCompletionLabel': '话题任务回报方式',
|
|
2169
|
+
'roles.dispatchCompletionEnabled': '额外使用 botmux send 原话题留档',
|
|
2170
|
+
'roles.dispatchCompletionHint': '默认关闭;开启后,本 Bot 在此群派发的任务仍使用 botmux report 回注主编排会话,同时额外在收到任务的原话题用 botmux send 留一份最终交付;改动即时保存',
|
|
2036
2171
|
'roles.configured': '已配置',
|
|
2037
2172
|
'roles.unconfigured': '未配置',
|
|
2038
2173
|
'roles.noChats': '暂无群组',
|
|
@@ -2148,7 +2283,7 @@ const zh = {
|
|
|
2148
2283
|
'workflow.v3.cancelPending': '取消请求已持久化;正在等待运行中的节点收敛。',
|
|
2149
2284
|
'workflow.v3.cancelled': '运行已取消。',
|
|
2150
2285
|
'workflow.v3.cancelAlreadyTerminal': '运行已先一步进入终态,未再提交取消。',
|
|
2151
|
-
'workflow.v3.cancelAuthRequired': '需要 Dashboard 写权限:请在终端运行 `botmux dashboard`
|
|
2286
|
+
'workflow.v3.cancelAuthRequired': '需要 Dashboard 写权限:请在终端运行 `botmux dashboard` 获取当前登录链接后重试。',
|
|
2152
2287
|
'workflow.v3.cancelFailed': '取消失败:{error}',
|
|
2153
2288
|
};
|
|
2154
2289
|
const en = {
|
|
@@ -2860,10 +2995,17 @@ const en = {
|
|
|
2860
2995
|
'connectors.topicMessageDefaultHint': 'Includes the webhook name and preserves the current behavior.',
|
|
2861
2996
|
'connectors.topicMessageCustom': 'Custom text',
|
|
2862
2997
|
'connectors.topicMessageCustomHint': 'Explain where this trigger came from in your own words.',
|
|
2998
|
+
'connectors.topicMessageTemplate': 'Trusted template',
|
|
2999
|
+
'connectors.topicMessageTemplateHint': 'Extract task fields from webhook data and mention owners safely.',
|
|
2863
3000
|
'connectors.topicMessageNone': 'Send no notice',
|
|
2864
3001
|
'connectors.topicMessageNoneHint': 'Start silently without a topic seed message.',
|
|
2865
3002
|
'connectors.topicMessageCustomPh': 'e.g. CI build failed — inspect the release pipeline',
|
|
2866
3003
|
'connectors.topicMessageCustomHelp': 'Use {source} to insert the webhook name.',
|
|
3004
|
+
'connectors.topicMessageTemplatePh': 'e.g. Start Meego development: {{title}} {{mention owner}} owner',
|
|
3005
|
+
'connectors.topicMessageTemplateHelp': 'Use {{field}} for text, {{mention field}} for a Lark mention, and {{source}} for the webhook name.',
|
|
3006
|
+
'connectors.topicMessageExtractors': 'Field extractor JSON',
|
|
3007
|
+
'connectors.topicMessageExtractorsPh': '{\n "title": { "path": "$.issue.title", "kind": "text" }\n}',
|
|
3008
|
+
'connectors.topicMessageExtractorsHelp': 'Configure a restricted JSON path and text/mention kind for each field. Mentions may also set identityPath and namePath.',
|
|
2867
3009
|
'connectors.topicMessagePreview': 'Preview: External event: {source}',
|
|
2868
3010
|
'connectors.topicMessageNonePreview': 'No trigger notice will be sent. Later bot output is unaffected.',
|
|
2869
3011
|
'connectors.topicMessageSourceFallback': 'Webhook name',
|
|
@@ -2913,6 +3055,7 @@ const en = {
|
|
|
2913
3055
|
'connectors.errChat': 'Pick (or enter) a target group',
|
|
2914
3056
|
'connectors.errDedup': 'Enter the business key used to reuse a group',
|
|
2915
3057
|
'connectors.errTopicMessage': 'Enter custom trigger notice text',
|
|
3058
|
+
'connectors.errTopicExtractors': 'Field extractors must be valid JSON',
|
|
2916
3059
|
'connectors.creating': 'Creating…',
|
|
2917
3060
|
'connectors.saving': 'Saving…',
|
|
2918
3061
|
'connectors.updated': 'All settings saved',
|
|
@@ -3127,10 +3270,16 @@ const en = {
|
|
|
3127
3270
|
'sessions.selectSession': 'Select session',
|
|
3128
3271
|
'sessions.board.needsYou': 'Needs You',
|
|
3129
3272
|
'sessions.board.needsYouHint': 'Repo, TUI, usage limit, or no-progress attention',
|
|
3130
|
-
'sessions.board.
|
|
3131
|
-
'sessions.board.
|
|
3132
|
-
'sessions.board.
|
|
3133
|
-
'sessions.board.
|
|
3273
|
+
'sessions.board.working': 'In Progress',
|
|
3274
|
+
'sessions.board.workingHint': 'Spawning, streaming, analyzing, or using tools',
|
|
3275
|
+
'sessions.board.todo': 'Todo',
|
|
3276
|
+
'sessions.board.todoHint': 'Idle process, but unfinished TODOs remain',
|
|
3277
|
+
'sessions.board.todoBadge': 'TODO {done}/{total}',
|
|
3278
|
+
'sessions.board.todoBadgeTitle': '{remaining} of {total} TODOs still open ({done} done)',
|
|
3279
|
+
'sessions.board.todoClickHint': 'Click to pin & copy',
|
|
3280
|
+
'sessions.board.todoCopy': 'Copy list',
|
|
3281
|
+
'sessions.board.todoCopied': 'Copied ✓',
|
|
3282
|
+
'sessions.board.todoActive': 'in progress',
|
|
3134
3283
|
'sessions.board.idle': 'Idle',
|
|
3135
3284
|
'sessions.board.idleHint': 'Ready for the next message',
|
|
3136
3285
|
'sessions.board.emptyColumn': 'No sessions',
|
|
@@ -3146,7 +3295,7 @@ const en = {
|
|
|
3146
3295
|
'sessions.kanban.backlog': 'Backlog',
|
|
3147
3296
|
'sessions.kanban.todo': 'Todo',
|
|
3148
3297
|
'sessions.kanban.inProgress': 'In Progress',
|
|
3149
|
-
'sessions.kanban.inReview': '
|
|
3298
|
+
'sessions.kanban.inReview': 'Needs You',
|
|
3150
3299
|
'sessions.kanban.done': 'Done',
|
|
3151
3300
|
'sessions.kanban.updated': 'Updated {time}',
|
|
3152
3301
|
'sessions.kanban.moreHidden': '{count} more hidden',
|
|
@@ -3669,19 +3818,60 @@ const en = {
|
|
|
3669
3818
|
'skills.installedHelp': 'Skills installed locally and available to Bots.',
|
|
3670
3819
|
'skills.installedCount': '{count}',
|
|
3671
3820
|
'skills.metricInstalled': 'Installed Skills',
|
|
3821
|
+
'skills.metricPacks': 'Packs',
|
|
3672
3822
|
'skills.metricBots': 'Configured Bots',
|
|
3673
|
-
'skills.metricAttached': '
|
|
3823
|
+
'skills.metricAttached': 'Policy refs',
|
|
3824
|
+
'skills.issuesLabel': 'Config health',
|
|
3825
|
+
'skills.issueDangling': '{count} skills referenced but not installed',
|
|
3826
|
+
'skills.issueUnassignedPacks': '{count} packs assigned to no bot',
|
|
3827
|
+
'skills.issueBotsMissing': '{count} bots missing skills',
|
|
3828
|
+
'skills.issueNone': '✓ Healthy',
|
|
3829
|
+
'skills.usedInPacks': '{count} packs',
|
|
3830
|
+
'skills.usedByBots': '{count} bots',
|
|
3831
|
+
'skills.installTargetHint': 'Target: install "{skill}" (auto-selected after discovery, never auto-installed)',
|
|
3832
|
+
'skills.clearInstallTarget': 'Clear target',
|
|
3833
|
+
'skills.installTargetNotFound': 'Target skill "{skill}" was not found in this source; nothing preselected',
|
|
3834
|
+
'skills.installMissingHint': 'Go install "{skill}"',
|
|
3835
|
+
'skills.packsLoadError': 'Failed to load skill packs (previous data kept): {error}',
|
|
3836
|
+
'skills.packsLoadErrorFirst': 'Failed to load skill packs (never loaded yet; related health shows as unknown): {error}',
|
|
3837
|
+
'skills.libraryFilterActive': 'Filter: {count}',
|
|
3838
|
+
'skills.clearFilter': 'Clear filter',
|
|
3839
|
+
'skills.missingFilteredTitle': 'Referenced but not installed',
|
|
3840
|
+
'skills.installNow': 'Install…',
|
|
3841
|
+
'skills.usedInPacksUnknown': '? packs',
|
|
3674
3842
|
'skills.install': 'Install Skill',
|
|
3675
3843
|
'skills.installInfoLabel': 'Install location details',
|
|
3676
3844
|
'skills.installInfo': 'Registry metadata is stored in ~/.botmux/skills/registry.json; installed content lives under ~/.botmux/skills/store. Local CLI Skills are referenced in place and do not modify CLI global directories.',
|
|
3677
3845
|
'skills.source': 'Import Address',
|
|
3678
3846
|
'skills.sourcePlaceholder': 'Paste a GitHub repo, Git URL, agentbuddy install command, or local Skill directory',
|
|
3679
|
-
'skills.
|
|
3680
|
-
'skills.
|
|
3681
|
-
'skills.
|
|
3847
|
+
'skills.sourceHelpOpen': 'View supported import sources',
|
|
3848
|
+
'skills.sourceHelpClose': 'Close import source help',
|
|
3849
|
+
'skills.sourceHelpTitle': 'Supported import sources',
|
|
3850
|
+
'skills.sourceHelpIntro': 'Paste a source directly. Botmux identifies its type before scanning for installable Skills.',
|
|
3851
|
+
'skills.sourceHelpRemoteLabel': 'GitHub / Git',
|
|
3852
|
+
'skills.sourceHelpRemote': 'Supports owner/repo, GitHub browser URLs, and Git URLs. Multi-Skill repositories can be selected after scanning.',
|
|
3853
|
+
'skills.sourceHelpRemoteExample': 'owner/repo · https://github.com/owner/repo/tree/main',
|
|
3854
|
+
'skills.sourceHelpLocalLabel': 'Local CLI Skill directory',
|
|
3682
3855
|
'skills.sourceHelpLocal': 'Referenced in place without copying into the botmux store.',
|
|
3683
|
-
'skills.
|
|
3684
|
-
'skills.
|
|
3856
|
+
'skills.sourceHelpLocalExample': '/absolute/path/to/skill',
|
|
3857
|
+
'skills.sourceHelpAgentbuddyLabel': 'AgentBuddy',
|
|
3858
|
+
'skills.sourceHelpAgentbuddy': 'Paste the complete install command; marketplace URLs alone are not installable. The deploy host must be able to run Agentbuddy CLI.',
|
|
3859
|
+
'skills.sourceHelpAgentbuddyExample': 'npm_config_registry="https://registry.example.com" npx -y agentbuddy@latest skill add skills.example.com/team/health',
|
|
3860
|
+
'skills.advancedOptions': 'Advanced (path in repo / ref / scan depth)',
|
|
3861
|
+
'skills.sourceDetectedGithub': 'Detected: GitHub repository',
|
|
3862
|
+
'skills.sourceDetectedGit': 'Detected: Git remote',
|
|
3863
|
+
'skills.sourceDetectedAgentbuddy': 'Detected: Agentbuddy install command',
|
|
3864
|
+
'skills.sourceDetectedLocal': 'Detected: deploy-host local path',
|
|
3865
|
+
'skills.sourceDetectedUnknown': 'This format is not recognized',
|
|
3866
|
+
'skills.sourcePreflightAgentbuddy': 'The pasted command is only parsed for its target. Installation still requires a configured, logged-in Agentbuddy CLI on the deploy host.',
|
|
3867
|
+
'skills.sourcePreflightGit': 'Public repositories need no setup. Private repositories require a GitHub token, gh login, or SSH key on the deploy host.',
|
|
3868
|
+
'skills.sourcePreflightLocal': 'This path must exist on the Botmux deploy host, and the process must be able to read its `SKILL.md`.',
|
|
3869
|
+
'skills.sourcePreflightUnknown': 'Use a GitHub/Git address, a complete Agentbuddy install command, or a deploy-host local path.',
|
|
3870
|
+
'skills.installDiagnosticTitle': 'Installation troubleshooting',
|
|
3871
|
+
'skills.installDiagnosticAgentbuddy': 'Check that Agentbuddy CLI is available and logged in on the deploy host. Paste a complete `skill add` / `collection add` command, not a marketplace URL.',
|
|
3872
|
+
'skills.installDiagnosticGit': 'Check the repository address, Ref, and path. Private repositories also require valid Git credentials on the deploy host.',
|
|
3873
|
+
'skills.installDiagnosticLocal': 'Check that the path is on the deploy host, contains a readable `SKILL.md`, and is not deeper than the selected scan depth.',
|
|
3874
|
+
'skills.installDiagnosticUnknown': 'This is not a supported source format. Open the source guide beside Import Address and retry.',
|
|
3685
3875
|
'skills.agentbuddyNotFound': 'agentbuddy CLI not found on the deploy host. Install it globally there, or set BOTMUX_AGENTBUDDY_CMD.',
|
|
3686
3876
|
'skills.agentbuddyNeedsLogin': 'agentbuddy on the deploy host is not logged in. Run agentbuddy login there and retry.',
|
|
3687
3877
|
'skills.gitNeedsAuth': 'Private GitHub repository authentication failed. Run gh auth login on the deploy host, configure GITHUB_TOKEN / GH_TOKEN in ~/.botmux/.env, or use an SSH Git URL with the host SSH key.',
|
|
@@ -3720,10 +3910,15 @@ const en = {
|
|
|
3720
3910
|
'skills.sourceBotmuxCopy': 'botmux store',
|
|
3721
3911
|
'skills.path': 'Repo Path (optional)',
|
|
3722
3912
|
'skills.pathPlaceholder': 'Leave empty to scan the repository root, or enter one Skill directory',
|
|
3913
|
+
'skills.pathHelpInline': 'Leave blank for whole-repo import; enter a directory to install that Skill directly.',
|
|
3723
3914
|
'skills.ref': 'Ref (optional)',
|
|
3724
3915
|
'skills.refPlaceholder': 'Blank uses the GitHub URL ref or default HEAD',
|
|
3916
|
+
'skills.refHelpInline': 'Branch, tag, or commit. Leave blank when a GitHub tree/blob URL already carries the ref.',
|
|
3917
|
+
'skills.deepScan': 'Scan recursively now',
|
|
3918
|
+
'skills.deepScanHelp': 'Skip the shallow pass and search up to 4 directory levels. Large repositories may take longer.',
|
|
3919
|
+
'skills.autoDeepScanHint': 'By default, Botmux scans quickly first and retries recursively only when nothing is found.',
|
|
3725
3920
|
'skills.link': 'Local link (no copy)',
|
|
3726
|
-
'skills.installSubmit': 'Install',
|
|
3921
|
+
'skills.installSubmit': 'Scan & Install',
|
|
3727
3922
|
'skills.installSelected': 'Install Selected',
|
|
3728
3923
|
'skills.installSelectionTitle': 'Select Skills to Install',
|
|
3729
3924
|
'skills.installSelectionHelp': 'Found {count} Skills. Clear items you do not need before installing.',
|
|
@@ -3733,6 +3928,10 @@ const en = {
|
|
|
3733
3928
|
'skills.select': 'Select',
|
|
3734
3929
|
'skills.searchLabel': 'Search installed Skills',
|
|
3735
3930
|
'skills.searchPlaceholder': 'Search installed Skills',
|
|
3931
|
+
'skills.selectAll': 'Select all',
|
|
3932
|
+
'skills.deselectAll': 'Deselect all',
|
|
3933
|
+
'skills.all': 'All',
|
|
3934
|
+
'skills.noResults': 'No matching skills',
|
|
3736
3935
|
'skills.clearSearch': 'Clear search',
|
|
3737
3936
|
'skills.resultCount': '{count} results',
|
|
3738
3937
|
'skills.selectAllSkills': 'Select all {count}',
|
|
@@ -3755,7 +3954,9 @@ const en = {
|
|
|
3755
3954
|
'skills.removeInUseManyTitle': 'Still remove {count} Skills?',
|
|
3756
3955
|
'skills.removeInUseOneHelp': '{count} Bots currently reference it. After removal, those Bots can no longer use it. This cannot be undone.',
|
|
3757
3956
|
'skills.removeInUseManyHelp': '{count} Bots currently reference these Skills. After removal, those Bots can no longer use them. This cannot be undone.',
|
|
3758
|
-
'skills.
|
|
3957
|
+
'skills.removeInUseOneHelpWithPacks': '{botCount} Bots and {packCount} Skill Packs currently reference it. Removal would leave dangling references. This cannot be undone.',
|
|
3958
|
+
'skills.removeInUseManyHelpWithPacks': '{botCount} Bots and {packCount} Skill Packs currently reference these Skills. Removal would leave dangling references. This cannot be undone.',
|
|
3959
|
+
'skills.removeReferencesDetail': 'Affected references',
|
|
3759
3960
|
'skills.removeOneConfirm': 'Remove Skill',
|
|
3760
3961
|
'skills.removeAnyway': 'Remove anyway',
|
|
3761
3962
|
'skills.removing': 'Removing…',
|
|
@@ -3777,6 +3978,15 @@ const en = {
|
|
|
3777
3978
|
'skills.globalDelivery': 'Skill Delivery',
|
|
3778
3979
|
'skills.bots': 'Bot Skill Settings',
|
|
3779
3980
|
'skills.botsHelp': 'Choose priority Skills for each bot to disclose first.',
|
|
3981
|
+
'skills.bot': 'Bot',
|
|
3982
|
+
'skills.cli': 'CLI',
|
|
3983
|
+
'skills.injection': 'Injection',
|
|
3984
|
+
'skills.status': 'Status',
|
|
3985
|
+
'skills.dragHint': 'Drag from the left to assign; drag a Bot chip back here to unassign',
|
|
3986
|
+
'skills.dragToRemove': 'Drag back to the left to unassign',
|
|
3987
|
+
'skills.unassignDropTitle': 'Drop here to unassign',
|
|
3988
|
+
'skills.unassignDropHint': 'Removes only this item from {bot}; the Skill or Pack is not deleted',
|
|
3989
|
+
'skills.alreadyAssigned': '{item} is already assigned to this Bot',
|
|
3780
3990
|
'skills.botCount': '{count} Bots',
|
|
3781
3991
|
'skills.skillCount': '{count} Skills',
|
|
3782
3992
|
'skills.attach': 'Add to priority',
|
|
@@ -3815,6 +4025,68 @@ const en = {
|
|
|
3815
4025
|
'skills.failed': 'Failed',
|
|
3816
4026
|
'skills.jobRunning': 'Working...',
|
|
3817
4027
|
'skills.refresh': 'Refresh',
|
|
4028
|
+
'skills.tabPacks': 'Skill Packs',
|
|
4029
|
+
'skills.tabLibrary': 'Skill Library',
|
|
4030
|
+
'skills.tabBots': 'Bot Assignment',
|
|
4031
|
+
'skills.tabDelivery': 'Delivery',
|
|
4032
|
+
'skills.packs': 'Skill Packs',
|
|
4033
|
+
'skills.packCount': '{count}',
|
|
4034
|
+
'skills.packsHelp': 'Name a group of installed skills, then assign it to multiple Bots.',
|
|
4035
|
+
'skills.packsEmpty': 'No packs yet. Install skills first, then create a pack.',
|
|
4036
|
+
'skills.packCreate': 'New Pack',
|
|
4037
|
+
'skills.packEdit': 'Edit Pack',
|
|
4038
|
+
'skills.packId': 'ID (slug, immutable after creation)',
|
|
4039
|
+
'skills.packName': 'Name',
|
|
4040
|
+
'skills.packDescription': 'Description',
|
|
4041
|
+
'skills.packTags': 'Tags (comma-separated)',
|
|
4042
|
+
'skills.packInclude': 'Included Skills',
|
|
4043
|
+
'skills.packHealthComplete': 'Complete',
|
|
4044
|
+
'skills.packHealthMissing': 'Missing {count}',
|
|
4045
|
+
'skills.packHealthUnassigned': 'Unassigned',
|
|
4046
|
+
'skills.packRefCount': '{count} Bots',
|
|
4047
|
+
'skills.packRefs': 'Assigned Bots',
|
|
4048
|
+
'skills.packMissing': 'Missing Skills',
|
|
4049
|
+
'skills.packIdPlaceholder': 'my-pack-slug',
|
|
4050
|
+
'skills.packTagsPlaceholder': 'tag1, tag2',
|
|
4051
|
+
'skills.packDeleted': 'Deleted "{name}"',
|
|
4052
|
+
'skills.packDeleteConfirmTitle': 'Delete Skill Pack',
|
|
4053
|
+
'skills.packDeleteConfirmBody': 'Pack "{name}" is still referenced by Bots. Force-deleting removes only the pack; it does not clean up pack: references in Bot policies or uninstall member skills. Those references will be shown as missing.',
|
|
4054
|
+
'skills.packDeleteAffectedBots': 'Affected Bots',
|
|
4055
|
+
'skills.packDeleteForceWarning': 'This cannot be undone. Affected Bots will lose the pack\'s skills in new sessions.',
|
|
4056
|
+
'skills.installWizard': 'Install Wizard',
|
|
4057
|
+
'skills.wizSource': 'Select Source',
|
|
4058
|
+
'skills.wizDetails': 'Fill Details',
|
|
4059
|
+
'skills.wizInstall': 'Confirm Install',
|
|
4060
|
+
'skills.wizNext': 'Next',
|
|
4061
|
+
'skills.wizBack': 'Back',
|
|
4062
|
+
'skills.wizConfirm': 'Confirm source and options, then click install.',
|
|
4063
|
+
'skills.botInjection': 'Per-Bot Injection',
|
|
4064
|
+
'skills.botInjectionHelp': 'Only affects CLIs that use a global skills dir (codex/gemini/…).',
|
|
4065
|
+
'skills.botInjectionNote': 'Note: this is the per-bot switch (global/prompt/off), separate from the global "injection mode" (auto/prompt/native) above. They are two independent settings.',
|
|
4066
|
+
'skills.injectionGlobal': 'Global directory',
|
|
4067
|
+
'skills.injectionGlobalHelp': 'Deliver to this CLI\'s global skills directory',
|
|
4068
|
+
'skills.postInstallPackTitle': 'Save as Skill Pack',
|
|
4069
|
+
'skills.postInstallPackHelp': '{count} Skills were installed. Save this result as a reusable Skill Pack.',
|
|
4070
|
+
'skills.postInstallPackSkills': 'Skills installed in this run',
|
|
4071
|
+
'skills.postInstallPackSkip': 'Not now',
|
|
4072
|
+
'skills.postInstallPackCreate': 'Create and view Skill Pack',
|
|
4073
|
+
'skills.injectionPrompt': 'Prompt',
|
|
4074
|
+
'skills.injectionPromptHelp': 'Inject into session prompt, do not write to global dir',
|
|
4075
|
+
'skills.injectionOff': 'Off',
|
|
4076
|
+
'skills.injectionOffHelp': 'Only keep prompt + botmux --help',
|
|
4077
|
+
'skills.scopeGlobal': '(global)',
|
|
4078
|
+
'skills.botEdit': 'Edit Bot',
|
|
4079
|
+
'skills.resolvedPreview': 'Resolved preview (deduplicated)',
|
|
4080
|
+
'skills.packChips': 'Packs',
|
|
4081
|
+
'skills.individualSkills': 'Individual Skills',
|
|
4082
|
+
'skills.finalCount': 'Final Skills',
|
|
4083
|
+
'skills.health': 'Status',
|
|
4084
|
+
'skills.healthOk': 'OK',
|
|
4085
|
+
'skills.healthDefault': 'Default',
|
|
4086
|
+
'skills.healthMissing': '{count} missing',
|
|
4087
|
+
'skills.healthPackMissing': 'Pack missing',
|
|
4088
|
+
'skills.healthUnknown': 'Unknown (pack data not loaded)',
|
|
4089
|
+
'skills.packsUnknown': 'Pack data unavailable (API load failed); health cannot be judged',
|
|
3818
4090
|
'botDefaults.title': 'Bot Config',
|
|
3819
4091
|
'botDefaults.openConsole': 'Open Console',
|
|
3820
4092
|
'botDefaults.metaOnline': 'Online · daemon healthy',
|
|
@@ -3946,12 +4218,6 @@ const en = {
|
|
|
3946
4218
|
'botDefaults.sbxInherit': 'inherit',
|
|
3947
4219
|
'botDefaults.sbxNoSubdirs': '(no subdirectories)',
|
|
3948
4220
|
'botDefaults.sbxTestPlaceholder': 'Test a path for its effective access, e.g. ~/my-data/secrets/x',
|
|
3949
|
-
'botDefaults.readIsolationToggle': 'Enable read isolation (macOS)',
|
|
3950
|
-
'botDefaults.readIsolationHelp': "When on, this bot's sessions run in a macOS sandbox (Seatbelt): reads of other bots' credentials (bots.json), sessions, and chat content are denied, while its own messages and uploaded files/whiteboards stay accessible. The macOS counterpart of the file sandbox above. Applies to the next new session.",
|
|
3951
|
-
'botDefaults.readIsolationSaved': 'Saved (applies to the next new session)',
|
|
3952
|
-
'botDefaults.readIsolationSavedRestarted': "Saved; restarted {count} of this bot's sessions (cold-restarts on next message; switching isolation mode changes the data root, so their conversation context resets to a fresh session)",
|
|
3953
|
-
'botDefaults.readIsolationUnsupported': '(read isolation cannot be enabled for this bot: needs macOS + a supporting CLI (claude-code / codex) + no wrapper gateway)',
|
|
3954
|
-
'botDefaults.readIsolationStaleOn': "(enabled, but it can't be enforced here — sessions will fail-close; turn it off to recover)",
|
|
3955
4221
|
'botDefaults.sectionBackend': 'Session backend',
|
|
3956
4222
|
'botDefaults.backendLabel': 'Backend type',
|
|
3957
4223
|
'botDefaults.backendHelp': 'The session backend for this bot\'s new sessions. Changes apply live to new sessions; running sessions keep the backend they started on and are unaffected. tmux supports adopt / Web Terminal; herdr manages persistent sessions; zmx >= 0.7.0 uses tail change signals + an authoritative plain-text history screen + send input (no Web TUI); zellij is experimental; pty is lightest but does not survive daemon restarts. "Auto" follows the global default.',
|
|
@@ -4186,6 +4452,9 @@ const en = {
|
|
|
4186
4452
|
'roles.injectModeEvery': 'Every turn (default)',
|
|
4187
4453
|
'roles.injectModeOnce': 'Only once (first turn)',
|
|
4188
4454
|
'roles.injectModeHint': '"Only once" injects the role at session start/rebuild and never re-sends it, saving tokens; saved instantly on change',
|
|
4455
|
+
'roles.dispatchCompletionLabel': 'Topic task reporting mode',
|
|
4456
|
+
'roles.dispatchCompletionEnabled': 'Also leave a same-topic botmux send copy',
|
|
4457
|
+
'roles.dispatchCompletionHint': 'Off by default. When enabled, tasks dispatched by this bot in this group still use botmux report to inject completion into the orchestrator session and also leave a final-delivery copy via botmux send in the topic where they received the task; saved instantly',
|
|
4189
4458
|
'roles.configured': 'Configured',
|
|
4190
4459
|
'roles.unconfigured': 'None',
|
|
4191
4460
|
'roles.noChats': 'No groups',
|
|
@@ -4301,7 +4570,7 @@ const en = {
|
|
|
4301
4570
|
'workflow.v3.cancelPending': 'The cancel request is durable; waiting for running nodes to drain.',
|
|
4302
4571
|
'workflow.v3.cancelled': 'Run cancelled.',
|
|
4303
4572
|
'workflow.v3.cancelAlreadyTerminal': 'The run reached a terminal state first; no cancel was submitted.',
|
|
4304
|
-
'workflow.v3.cancelAuthRequired': 'Dashboard write access is required. Run `botmux dashboard` in a terminal, open its
|
|
4573
|
+
'workflow.v3.cancelAuthRequired': 'Dashboard write access is required. Run `botmux dashboard` in a terminal, open its current login link, then retry.',
|
|
4305
4574
|
'workflow.v3.cancelFailed': 'Cancel failed: {error}',
|
|
4306
4575
|
};
|
|
4307
4576
|
const dictionaries = { zh, en };
|