botmux 2.104.0 → 2.105.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 +10 -10
- package/README.md +10 -10
- package/dist/adapters/backend/sandbox.d.ts +5 -1
- package/dist/adapters/backend/sandbox.d.ts.map +1 -1
- package/dist/adapters/backend/sandbox.js +54 -5
- package/dist/adapters/backend/sandbox.js.map +1 -1
- package/dist/adapters/backend/tmux-pipe-backend.d.ts +1 -1
- package/dist/adapters/backend/tmux-pipe-backend.js +1 -1
- package/dist/adapters/backend/zellij-observe-backend.d.ts +1 -1
- package/dist/adapters/backend/zellij-observe-backend.js +1 -1
- package/dist/adapters/cli/claude-code.d.ts +1 -1
- package/dist/adapters/cli/relay.d.ts +2 -2
- package/dist/adapters/cli/relay.js +2 -2
- package/dist/adapters/cli/seed.d.ts +2 -2
- package/dist/adapters/cli/seed.js +2 -2
- package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
- package/dist/adapters/cli/shared-hints.js +1 -0
- package/dist/adapters/cli/shared-hints.js.map +1 -1
- package/dist/bot-registry.d.ts +65 -1
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +145 -0
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli/send-dispatch.d.ts +44 -0
- package/dist/cli/send-dispatch.d.ts.map +1 -1
- package/dist/cli/send-dispatch.js +79 -0
- package/dist/cli/send-dispatch.js.map +1 -1
- package/dist/cli/vc-agent.d.ts +2 -0
- package/dist/cli/vc-agent.d.ts.map +1 -0
- package/dist/cli/vc-agent.js +331 -0
- package/dist/cli/vc-agent.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +106 -24
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +8 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +13 -1
- package/dist/config.js.map +1 -1
- package/dist/core/auto-start.d.ts +2 -2
- package/dist/core/auto-start.js +2 -2
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +2 -1
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/dashboard-events.d.ts +5 -0
- package/dist/core/dashboard-events.d.ts.map +1 -1
- package/dist/core/dashboard-events.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +47 -2
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/idle-worker-sweeper.d.ts +1 -1
- package/dist/core/idle-worker-sweeper.js +1 -1
- package/dist/core/passthrough-commands.d.ts.map +1 -1
- package/dist/core/passthrough-commands.js +1 -0
- package/dist/core/passthrough-commands.js.map +1 -1
- package/dist/core/scheduler.d.ts +12 -0
- package/dist/core/scheduler.d.ts.map +1 -1
- package/dist/core/scheduler.js +67 -7
- package/dist/core/scheduler.js.map +1 -1
- package/dist/core/session-discovery.js +1 -1
- package/dist/core/session-discovery.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +33 -7
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/trigger-session.d.ts.map +1 -1
- package/dist/core/trigger-session.js +78 -23
- package/dist/core/trigger-session.js.map +1 -1
- package/dist/core/worker-pool.d.ts +4 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +4 -0
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/core/zellij-adopt-discovery.js +1 -1
- package/dist/core/zellij-adopt-discovery.js.map +1 -1
- package/dist/daemon.d.ts +121 -0
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +2644 -2
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/federated-group-core.js +1 -1
- package/dist/dashboard/federated-group-core.js.map +1 -1
- package/dist/dashboard/federation-api.js +1 -1
- package/dist/dashboard/schedule-card-model.d.ts +4 -3
- package/dist/dashboard/schedule-card-model.d.ts.map +1 -1
- package/dist/dashboard/schedule-card-model.js +5 -4
- package/dist/dashboard/schedule-card-model.js.map +1 -1
- package/dist/dashboard/settings-write-applier.d.ts +37 -3
- package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
- package/dist/dashboard/settings-write-applier.js +63 -0
- package/dist/dashboard/settings-write-applier.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +28 -0
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/web/insights.js +19 -19
- package/dist/dashboard/web/insights.js.map +1 -1
- package/dist/dashboard/web/overview-page.d.ts.map +1 -1
- package/dist/dashboard/web/overview-page.js +7 -4
- package/dist/dashboard/web/overview-page.js.map +1 -1
- package/dist/dashboard/web/schedules-page.d.ts +1 -1
- package/dist/dashboard/web/schedules-page.d.ts.map +1 -1
- package/dist/dashboard/web/schedules-page.js +7 -3
- package/dist/dashboard/web/schedules-page.js.map +1 -1
- package/dist/dashboard/web/sessions.js +2 -2
- package/dist/dashboard/web/settings-page.d.ts +9 -0
- package/dist/dashboard/web/settings-page.d.ts.map +1 -1
- package/dist/dashboard/web/settings-page.js +132 -43
- package/dist/dashboard/web/settings-page.js.map +1 -1
- package/dist/dashboard/web/store.d.ts +6 -0
- package/dist/dashboard/web/store.d.ts.map +1 -1
- package/dist/dashboard/web/store.js +18 -1
- package/dist/dashboard/web/store.js.map +1 -1
- package/dist/dashboard/webhook-routes.d.ts.map +1 -1
- package/dist/dashboard/webhook-routes.js +24 -0
- package/dist/dashboard/webhook-routes.js.map +1 -1
- package/dist/dashboard-web/app.js +3 -3
- package/dist/dashboard-web/chunks/{bot-defaults-page-Z36I5CKM.js → bot-defaults-page-3OIY7N76.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-2BBCKWNO.js → chunk-BNEXMNQD.js} +3 -3
- package/dist/dashboard-web/chunks/{chunk-QDKIUULH.js → chunk-DKKOGZCG.js} +1 -1
- package/dist/dashboard-web/chunks/chunk-LXIK7OUJ.js +1 -0
- package/dist/dashboard-web/chunks/{chunk-BAMNP73K.js → chunk-VFCACTRF.js} +1 -1
- package/dist/dashboard-web/chunks/{connectors-I3MGERCM.js → connectors-VDOAKUW3.js} +1 -1
- package/dist/dashboard-web/chunks/{groups-page-DTP2L4FQ.js → groups-page-CX5AN4XG.js} +1 -1
- package/dist/dashboard-web/chunks/{insights-page-FNI24WYF.js → insights-page-DOMRL4S6.js} +1 -1
- package/dist/dashboard-web/chunks/overview-page-AZBAXVZ7.js +1 -0
- package/dist/dashboard-web/chunks/{roles-page-A5DZ7Q6U.js → roles-page-3FEAH6S4.js} +1 -1
- package/dist/dashboard-web/chunks/schedules-CTQEA7IE.js +1 -0
- package/dist/dashboard-web/chunks/{sessions-YJ735IH4.js → sessions-LVZCXO2Z.js} +1 -1
- package/dist/dashboard-web/chunks/{sessions-page-2REIJ56C.js → sessions-page-NHBJDSBC.js} +1 -1
- package/dist/dashboard-web/chunks/settings-page-CRDIHRNE.js +2 -0
- package/dist/dashboard-web/chunks/{skills-page-ZCCLHWMJ.js → skills-page-VUG3EPWX.js} +1 -1
- package/dist/dashboard-web/chunks/{team-federation-page-4FCGO3WW.js → team-federation-page-ZKL3YMGN.js} +1 -1
- package/dist/dashboard-web/chunks/{workflows-KFJ7O57L.js → workflows-4BYQQBFP.js} +1 -1
- package/dist/dashboard-web/index.html +1 -1
- package/dist/dashboard-web/style.css +111 -16
- package/dist/dashboard.js +196 -2
- package/dist/dashboard.js.map +1 -1
- package/dist/global-config.d.ts +30 -0
- package/dist/global-config.d.ts.map +1 -1
- package/dist/global-config.js +64 -1
- package/dist/global-config.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +10 -7
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +10 -7
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts +1 -1
- package/dist/im/lark/card-builder.js +1 -1
- package/dist/im/lark/card-handler.d.ts +3 -0
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +8 -0
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/client.d.ts +1 -0
- package/dist/im/lark/client.d.ts.map +1 -1
- package/dist/im/lark/client.js +19 -0
- package/dist/im/lark/client.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts +10 -0
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +100 -21
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/im/lark/grant-command.d.ts +1 -1
- package/dist/im/lark/grant-command.js +1 -1
- package/dist/im/lark/workflow-slash-command.js +4 -0
- package/dist/im/lark/workflow-slash-command.js.map +1 -1
- package/dist/mir-prompt.d.ts +16 -0
- package/dist/mir-prompt.d.ts.map +1 -0
- package/dist/mir-prompt.js +170 -0
- package/dist/mir-prompt.js.map +1 -0
- package/dist/mir-runner.js +1 -149
- package/dist/mir-runner.js.map +1 -1
- package/dist/platform/bind.d.ts.map +1 -1
- package/dist/platform/bind.js +3 -11
- package/dist/platform/bind.js.map +1 -1
- package/dist/platform/binding.d.ts +4 -5
- package/dist/platform/binding.d.ts.map +1 -1
- package/dist/platform/binding.js +0 -11
- package/dist/platform/binding.js.map +1 -1
- package/dist/platform/tunnel-client.d.ts.map +1 -1
- package/dist/platform/tunnel-client.js +37 -28
- package/dist/platform/tunnel-client.js.map +1 -1
- package/dist/services/deployment-identity.d.ts +1 -1
- package/dist/services/deployment-identity.d.ts.map +1 -1
- package/dist/services/deployment-identity.js +1 -1
- package/dist/services/deployment-identity.js.map +1 -1
- package/dist/services/doc-subs-store.js +1 -1
- package/dist/services/team-board-store.js +1 -1
- package/dist/services/team-board-store.js.map +1 -1
- package/dist/services/trigger-types.d.ts +2 -1
- package/dist/services/trigger-types.d.ts.map +1 -1
- package/dist/services/trigger-types.js +11 -2
- package/dist/services/trigger-types.js.map +1 -1
- package/dist/services/vc-meeting-runtime-store.d.ts +55 -0
- package/dist/services/vc-meeting-runtime-store.d.ts.map +1 -0
- package/dist/services/vc-meeting-runtime-store.js +313 -0
- package/dist/services/vc-meeting-runtime-store.js.map +1 -0
- package/dist/services/voice/index.d.ts +6 -1
- package/dist/services/voice/index.d.ts.map +1 -1
- package/dist/services/voice/index.js +12 -5
- package/dist/services/voice/index.js.map +1 -1
- package/dist/services/voice/sami.js +1 -1
- package/dist/setup/lark-scopes.json +5 -0
- package/dist/setup/verify-permissions.d.ts +6 -0
- package/dist/setup/verify-permissions.d.ts.map +1 -1
- package/dist/setup/verify-permissions.js +17 -0
- package/dist/setup/verify-permissions.js.map +1 -1
- package/dist/skills/definitions.d.ts.map +1 -1
- package/dist/skills/definitions.js +10 -0
- package/dist/skills/definitions.js.map +1 -1
- package/dist/utils/daemon-discovery.d.ts +2 -0
- package/dist/utils/daemon-discovery.d.ts.map +1 -1
- package/dist/utils/daemon-discovery.js +2 -0
- package/dist/utils/daemon-discovery.js.map +1 -1
- package/dist/utils/timezone.d.ts +51 -0
- package/dist/utils/timezone.d.ts.map +1 -0
- package/dist/utils/timezone.js +110 -0
- package/dist/utils/timezone.js.map +1 -0
- package/dist/vc-agent/cards.d.ts +47 -0
- package/dist/vc-agent/cards.d.ts.map +1 -0
- package/dist/vc-agent/cards.js +489 -0
- package/dist/vc-agent/cards.js.map +1 -0
- package/dist/vc-agent/meeting-state.d.ts +39 -0
- package/dist/vc-agent/meeting-state.d.ts.map +1 -0
- package/dist/vc-agent/meeting-state.js +186 -0
- package/dist/vc-agent/meeting-state.js.map +1 -0
- package/dist/vc-agent/normalizer.d.ts +13 -0
- package/dist/vc-agent/normalizer.d.ts.map +1 -0
- package/dist/vc-agent/normalizer.js +411 -0
- package/dist/vc-agent/normalizer.js.map +1 -0
- package/dist/vc-agent/polling-source.d.ts +36 -0
- package/dist/vc-agent/polling-source.d.ts.map +1 -0
- package/dist/vc-agent/polling-source.js +129 -0
- package/dist/vc-agent/polling-source.js.map +1 -0
- package/dist/vc-agent/push-source.d.ts +13 -0
- package/dist/vc-agent/push-source.d.ts.map +1 -0
- package/dist/vc-agent/push-source.js +109 -0
- package/dist/vc-agent/push-source.js.map +1 -0
- package/dist/vc-agent/realtime/audio-source.d.ts +6 -0
- package/dist/vc-agent/realtime/audio-source.d.ts.map +1 -0
- package/dist/vc-agent/realtime/audio-source.js +17 -0
- package/dist/vc-agent/realtime/audio-source.js.map +1 -0
- package/dist/vc-agent/realtime/endpoint.d.ts +6 -0
- package/dist/vc-agent/realtime/endpoint.d.ts.map +1 -0
- package/dist/vc-agent/realtime/endpoint.js +25 -0
- package/dist/vc-agent/realtime/endpoint.js.map +1 -0
- package/dist/vc-agent/realtime/errors.d.ts +9 -0
- package/dist/vc-agent/realtime/errors.d.ts.map +1 -0
- package/dist/vc-agent/realtime/errors.js +17 -0
- package/dist/vc-agent/realtime/errors.js.map +1 -0
- package/dist/vc-agent/realtime/events.d.ts +24 -0
- package/dist/vc-agent/realtime/events.d.ts.map +1 -0
- package/dist/vc-agent/realtime/events.js +190 -0
- package/dist/vc-agent/realtime/events.js.map +1 -0
- package/dist/vc-agent/realtime/frontier.d.ts +34 -0
- package/dist/vc-agent/realtime/frontier.d.ts.map +1 -0
- package/dist/vc-agent/realtime/frontier.js +40 -0
- package/dist/vc-agent/realtime/frontier.js.map +1 -0
- package/dist/vc-agent/realtime/index.d.ts +11 -0
- package/dist/vc-agent/realtime/index.d.ts.map +1 -0
- package/dist/vc-agent/realtime/index.js +11 -0
- package/dist/vc-agent/realtime/index.js.map +1 -0
- package/dist/vc-agent/realtime/pacer.d.ts +21 -0
- package/dist/vc-agent/realtime/pacer.d.ts.map +1 -0
- package/dist/vc-agent/realtime/pacer.js +80 -0
- package/dist/vc-agent/realtime/pacer.js.map +1 -0
- package/dist/vc-agent/realtime/protobuf.d.ts +33 -0
- package/dist/vc-agent/realtime/protobuf.d.ts.map +1 -0
- package/dist/vc-agent/realtime/protobuf.js +159 -0
- package/dist/vc-agent/realtime/protobuf.js.map +1 -0
- package/dist/vc-agent/realtime/protocol.d.ts +4 -0
- package/dist/vc-agent/realtime/protocol.d.ts.map +1 -0
- package/dist/vc-agent/realtime/protocol.js +59 -0
- package/dist/vc-agent/realtime/protocol.js.map +1 -0
- package/dist/vc-agent/realtime/session.d.ts +39 -0
- package/dist/vc-agent/realtime/session.d.ts.map +1 -0
- package/dist/vc-agent/realtime/session.js +221 -0
- package/dist/vc-agent/realtime/session.js.map +1 -0
- package/dist/vc-agent/realtime/transport.d.ts +23 -0
- package/dist/vc-agent/realtime/transport.d.ts.map +1 -0
- package/dist/vc-agent/realtime/transport.js +112 -0
- package/dist/vc-agent/realtime/transport.js.map +1 -0
- package/dist/vc-agent/realtime/types.d.ts +84 -0
- package/dist/vc-agent/realtime/types.d.ts.map +1 -0
- package/dist/vc-agent/realtime/types.js +5 -0
- package/dist/vc-agent/realtime/types.js.map +1 -0
- package/dist/vc-agent/types.d.ts +142 -0
- package/dist/vc-agent/types.d.ts.map +1 -0
- package/dist/vc-agent/types.js +2 -0
- package/dist/vc-agent/types.js.map +1 -0
- package/dist/worker.js +3 -3
- package/dist/worker.js.map +1 -1
- package/dist/workflows/attempt-resume.d.ts +4 -0
- package/dist/workflows/attempt-resume.d.ts.map +1 -1
- package/dist/workflows/attempt-resume.js +2 -0
- package/dist/workflows/attempt-resume.js.map +1 -1
- package/dist/workflows/attempt-terminal.d.ts +4 -0
- package/dist/workflows/attempt-terminal.d.ts.map +1 -1
- package/dist/workflows/attempt-terminal.js.map +1 -1
- package/dist/workflows/daemon-spawn.d.ts.map +1 -1
- package/dist/workflows/daemon-spawn.js +7 -0
- package/dist/workflows/daemon-spawn.js.map +1 -1
- package/dist/workflows/events/payloads.d.ts +32 -0
- package/dist/workflows/events/payloads.d.ts.map +1 -1
- package/dist/workflows/events/payloads.js +4 -0
- package/dist/workflows/events/payloads.js.map +1 -1
- package/dist/workflows/events/schema.d.ts +56 -0
- package/dist/workflows/events/schema.d.ts.map +1 -1
- package/dist/workflows/runtime.d.ts +4 -0
- package/dist/workflows/runtime.d.ts.map +1 -1
- package/dist/workflows/runtime.js.map +1 -1
- package/dist/workflows/spawn-policy.d.ts +14 -0
- package/dist/workflows/spawn-policy.d.ts.map +1 -0
- package/dist/workflows/spawn-policy.js +9 -0
- package/dist/workflows/spawn-policy.js.map +1 -0
- package/dist/workflows/v3/bot-resolve.d.ts.map +1 -1
- package/dist/workflows/v3/bot-resolve.js +4 -0
- package/dist/workflows/v3/bot-resolve.js.map +1 -1
- package/dist/workflows/v3/cli-run.d.ts.map +1 -1
- package/dist/workflows/v3/cli-run.js +4 -0
- package/dist/workflows/v3/cli-run.js.map +1 -1
- package/dist/workflows/v3/contract.d.ts +9 -3
- package/dist/workflows/v3/contract.d.ts.map +1 -1
- package/dist/workflows/v3/contract.js +3 -3
- package/dist/workflows/v3/contract.js.map +1 -1
- package/dist/workflows/v3/ephemeral-pool.d.ts.map +1 -1
- package/dist/workflows/v3/ephemeral-pool.js +2 -0
- package/dist/workflows/v3/ephemeral-pool.js.map +1 -1
- package/dist/workflows/v3/runtime.js +1 -1
- package/dist/workflows/v3/runtime.js.map +1 -1
- package/package.json +1 -1
- package/dist/dashboard-web/chunks/chunk-76J7PNZI.js +0 -1
- package/dist/dashboard-web/chunks/overview-page-EHCZJBWY.js +0 -1
- package/dist/dashboard-web/chunks/schedules-RSXALJU4.js +0 -1
- package/dist/dashboard-web/chunks/settings-page-XKFTXTDE.js +0 -2
|
@@ -54,7 +54,7 @@ export async function orchestrateFederatedGroup(dataDir, args, deps) {
|
|
|
54
54
|
const unknown = larkAppIds.filter(id => !byId.has(id));
|
|
55
55
|
if (unknown.length)
|
|
56
56
|
return { status: 400, body: { ok: false, error: 'unknown_bot', unknown } };
|
|
57
|
-
// Owner-in-group policy (
|
|
57
|
+
// Owner-in-group policy (示例用户): a bot should only join if its owner is in the
|
|
58
58
|
// group too (else it's "打黑工" — in a group its owner can't see). A REMOTE bot
|
|
59
59
|
// whose owner is unbound has no owner to pull → skip it. (LOCAL bots are covered
|
|
60
60
|
// by the operator, who is always pulled in.)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"federated-group-core.js","sourceRoot":"","sources":["../../src/dashboard/federated-group-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B,+EAA+E;AAC/E,MAAM,OAAO,UAAW,SAAQ,KAAK;IAAG,gBAAgB,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC;CAAE;AAI3G,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAgB,EAAE,GAAW,EAAE,OAAoB,EAAE,EAAE,EAAE,GAAG,cAAc;IAC/G,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/C,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,CAAC,EAAE,IAAI,KAAK,YAAY,IAAI,CAAC,YAAY,UAAU;YAAE,MAAM,IAAI,UAAU,EAAE,CAAC;QAChF,MAAM,CAAC,CAAC;IACV,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,QAAQ,CAAC,CAAU;IACjC,OAAO,CAAC,YAAY,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;AACrH,CAAC;AAyBD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAe,EACf,IAA0B,EAC1B,IAA0B;IAE1B,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC;IAC9C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC;IACpG,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC;IAE/F,
|
|
1
|
+
{"version":3,"file":"federated-group-core.js","sourceRoot":"","sources":["../../src/dashboard/federated-group-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -226,7 +226,7 @@ export async function handleFederationApi(req, res, url, deps = {}) {
|
|
|
226
226
|
});
|
|
227
227
|
return true;
|
|
228
228
|
}
|
|
229
|
-
// ──
|
|
229
|
+
// ── 团队看板(既定架构:编排存 host,会话源数据各部署自持)────────────────
|
|
230
230
|
// 成员上报会话裁剪行:白名单清洗后按 deploymentId 覆盖式落盘。
|
|
231
231
|
if (path === '/api/federation/team-sessions' && method === 'POST') {
|
|
232
232
|
let body;
|
|
@@ -55,7 +55,7 @@ export interface ScheduleFilterQuery extends PaginationParams {
|
|
|
55
55
|
export interface RowRenderContext {
|
|
56
56
|
/** Epoch ms — required so relative-time outputs are deterministic. */
|
|
57
57
|
nowMs: number;
|
|
58
|
-
/** IANA timezone for cron next-run math; defaults to '
|
|
58
|
+
/** IANA timezone for cron next-run math; defaults to the host's local zone (scheduleTimeZone()). */
|
|
59
59
|
timezone?: string;
|
|
60
60
|
/** Cap prompt length in detail DTO; defaults to 200. */
|
|
61
61
|
promptTruncateAt?: number;
|
|
@@ -142,9 +142,10 @@ export declare function toScheduleDetailDto(task: ScheduleCardTaskInput, ctx: Ro
|
|
|
142
142
|
* - `once`: one entry if `runAt >= nowMs` AND `lastRunAt` is absent; else [].
|
|
143
143
|
* - `interval`: minutes>0 required; base = lastRunAt ?? nowMs; aligns to first
|
|
144
144
|
* future run > nowMs.
|
|
145
|
-
* - `cron`: uses `croner` with
|
|
145
|
+
* - `cron`: uses `croner` with the host's local timezone (or an injected override).
|
|
146
146
|
*
|
|
147
|
-
* Pure: nowMs
|
|
147
|
+
* Pure w.r.t. the clock: nowMs is injected. `timezone` is injected too; when
|
|
148
|
+
* omitted it falls back to the host's local zone (scheduleTimeZone()).
|
|
148
149
|
*/
|
|
149
150
|
export declare function computeNextNRuns(task: ScheduleCardTaskInput, n: number, ctx: {
|
|
150
151
|
nowMs: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule-card-model.d.ts","sourceRoot":"","sources":["../../src/dashboard/schedule-card-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"schedule-card-model.d.ts","sourceRoot":"","sources":["../../src/dashboard/schedule-card-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* Forbidden: scheduler.ts (ONESHOT_GRACE, tick), schedule-store, dashboard-*.
|
|
15
15
|
*/
|
|
16
16
|
import { Cron } from 'croner';
|
|
17
|
-
|
|
17
|
+
import { scheduleTimeZone } from '../utils/timezone.js';
|
|
18
18
|
const DEFAULT_PAGE_SIZE = 20;
|
|
19
19
|
const MAX_PAGE_SIZE = 100;
|
|
20
20
|
const DEFAULT_PROMPT_TRUNCATE = 200;
|
|
@@ -150,14 +150,15 @@ export function toScheduleDetailDto(task, ctx) {
|
|
|
150
150
|
* - `once`: one entry if `runAt >= nowMs` AND `lastRunAt` is absent; else [].
|
|
151
151
|
* - `interval`: minutes>0 required; base = lastRunAt ?? nowMs; aligns to first
|
|
152
152
|
* future run > nowMs.
|
|
153
|
-
* - `cron`: uses `croner` with
|
|
153
|
+
* - `cron`: uses `croner` with the host's local timezone (or an injected override).
|
|
154
154
|
*
|
|
155
|
-
* Pure: nowMs
|
|
155
|
+
* Pure w.r.t. the clock: nowMs is injected. `timezone` is injected too; when
|
|
156
|
+
* omitted it falls back to the host's local zone (scheduleTimeZone()).
|
|
156
157
|
*/
|
|
157
158
|
export function computeNextNRuns(task, n, ctx) {
|
|
158
159
|
if (n <= 0)
|
|
159
160
|
return [];
|
|
160
|
-
const tz = ctx.timezone ??
|
|
161
|
+
const tz = ctx.timezone ?? scheduleTimeZone();
|
|
161
162
|
const { parsed } = task;
|
|
162
163
|
if (parsed.kind === 'once') {
|
|
163
164
|
if (task.lastRunAt)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule-card-model.js","sourceRoot":"","sources":["../../src/dashboard/schedule-card-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"schedule-card-model.js","sourceRoot":"","sources":["../../src/dashboard/schedule-card-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,9 +20,28 @@ export interface ResolvedDashboardSettingsView {
|
|
|
20
20
|
publicReadOnly: boolean;
|
|
21
21
|
openTerminalInFeishu: boolean;
|
|
22
22
|
chatBotDiscovery: boolean;
|
|
23
|
+
vcMeetingAgent: {
|
|
24
|
+
enabled: boolean;
|
|
25
|
+
listenerBotAppId?: string | null;
|
|
26
|
+
listenerBotOptions?: Array<{
|
|
27
|
+
larkAppId: string;
|
|
28
|
+
botName?: string | null;
|
|
29
|
+
cliId?: string;
|
|
30
|
+
vcMeetingAgentEnabled?: boolean;
|
|
31
|
+
hasLarkCliProfile?: boolean;
|
|
32
|
+
}>;
|
|
33
|
+
};
|
|
23
34
|
maintenance: MaintenanceConfig;
|
|
24
35
|
localDevInstall: boolean;
|
|
25
36
|
remoteAccess?: boolean;
|
|
37
|
+
/** Configured schedule-task timezone override (IANA), or null/absent when
|
|
38
|
+
* unset ⇒ the scheduler follows `hostTimeZone`. */
|
|
39
|
+
scheduleTimeZone?: string | null;
|
|
40
|
+
/** Host's auto-detected local zone. */
|
|
41
|
+
hostTimeZone?: string;
|
|
42
|
+
/** The TRUE effective zone (scheduleTimeZone(): env → config → host). The UI
|
|
43
|
+
* must use this for "currently effective", not configured||host. */
|
|
44
|
+
effectiveScheduleTimeZone?: string;
|
|
26
45
|
}
|
|
27
46
|
export type ParseMaintenanceResult = {
|
|
28
47
|
ok: true;
|
|
@@ -37,8 +56,9 @@ export interface SettingsWriteApplierDeps {
|
|
|
37
56
|
readGlobalConfig: () => GlobalConfig;
|
|
38
57
|
/** Atomic write of dashboard-level fields (publicReadOnly / openTerminalInFeishu). */
|
|
39
58
|
mergeDashboardConfig: (patch: DashboardGlobalConfig) => DashboardGlobalConfig;
|
|
40
|
-
/** Atomic write of global-level fields (repoPickerMode).
|
|
41
|
-
|
|
59
|
+
/** Atomic write of global-level fields (repoPickerMode / scheduleTimeZone / …).
|
|
60
|
+
* Mirrors the real `mergeGlobalConfig`: a `null` value deletes that key. */
|
|
61
|
+
mergeGlobalConfig: (patch: Partial<Record<keyof GlobalConfig, GlobalConfig[keyof GlobalConfig] | null>>) => void;
|
|
42
62
|
/** Atomic write of maintenance-level fields (autoUpdate / autoRestart). */
|
|
43
63
|
mergeMaintenanceConfig: (patch: MaintenanceConfig) => MaintenanceConfig;
|
|
44
64
|
/** Set global UI locale (null = clear). Fans out to daemons via IPC. */
|
|
@@ -53,6 +73,20 @@ export interface SettingsWriteApplierDeps {
|
|
|
53
73
|
isLocale: (v: unknown) => v is 'zh' | 'en';
|
|
54
74
|
/** Fan out locale reload to all online daemons. */
|
|
55
75
|
reloadLocaleOnAllDaemons?: () => Promise<void>;
|
|
76
|
+
/** Validate a global VC listener bot selection before mutating bot/global config. */
|
|
77
|
+
validateVcMeetingListenerBotAppId?: (appId: string) => Promise<{
|
|
78
|
+
ok: true;
|
|
79
|
+
} | {
|
|
80
|
+
ok: false;
|
|
81
|
+
error: string;
|
|
82
|
+
}>;
|
|
83
|
+
/** Sync per-bot meeting-listener config after validation passes or when clearing the selection. */
|
|
84
|
+
syncVcMeetingListenerBotConfig?: (listenerBotAppId: string | null, previousListenerBotAppId?: string | null) => Promise<{
|
|
85
|
+
ok: true;
|
|
86
|
+
} | {
|
|
87
|
+
ok: false;
|
|
88
|
+
error: string;
|
|
89
|
+
}>;
|
|
56
90
|
}
|
|
57
91
|
/** Production deps wiring — call once per dashboard process. */
|
|
58
92
|
export declare function defaultSettingsWriteApplierDeps(resolveDashboardSettings: () => ResolvedDashboardSettingsView, reloadLocaleOnAllDaemons?: () => Promise<void>): SettingsWriteApplierDeps;
|
|
@@ -68,7 +102,7 @@ export type ApplySettingsWriteResult = {
|
|
|
68
102
|
* inline `PUT /api/settings` route returned, so callers (browser SPA, tests,
|
|
69
103
|
* PR2 Route B) see the same wire vocabulary they had before.
|
|
70
104
|
*/
|
|
71
|
-
export type ApplySettingsWriteError = 'invalid_publicReadOnly' | 'invalid_openTerminalInFeishu' | 'invalid_chatBotDiscovery' | 'invalid_repoPickerMode' | 'invalid_remoteAccess' | 'invalid_whiteboard' | 'invalid_whiteboard_enabled' | 'invalid_lang' | 'invalid_maintenance' | 'local_dev_no_autoupdate' | 'autoupdate_required' | 'empty_patch' | string;
|
|
105
|
+
export type ApplySettingsWriteError = 'invalid_publicReadOnly' | 'invalid_openTerminalInFeishu' | 'invalid_chatBotDiscovery' | 'invalid_repoPickerMode' | 'invalid_remoteAccess' | 'invalid_vcMeetingAgent' | 'invalid_vcMeetingAgent_enabled' | 'invalid_vcMeetingAgent_listenerBotAppId' | 'invalid_scheduleTimeZone' | 'invalid_whiteboard' | 'invalid_whiteboard_enabled' | 'invalid_lang' | 'invalid_maintenance' | 'local_dev_no_autoupdate' | 'autoupdate_required' | 'empty_patch' | string;
|
|
72
106
|
/**
|
|
73
107
|
* Apply a parsed (object) settings patch. Returns success with the post-merge
|
|
74
108
|
* snapshot, or an error code string on validation failure.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-write-applier.d.ts","sourceRoot":"","sources":["../../src/dashboard/settings-write-applier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"settings-write-applier.d.ts","sourceRoot":"","sources":["../../src/dashboard/settings-write-applier.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
import { mergeDashboardConfig, mergeGlobalConfig, mergeMaintenanceConfig, parseMaintenancePatch, readGlobalConfig, setGlobalLocale, } from '../global-config.js';
|
|
13
13
|
import { isLocale } from '../i18n/types.js';
|
|
14
14
|
import { isLocalDevInstall } from '../utils/install-info.js';
|
|
15
|
+
import { isValidTimeZone } from '../utils/timezone.js';
|
|
15
16
|
/** Production deps wiring — call once per dashboard process. */
|
|
16
17
|
export function defaultSettingsWriteApplierDeps(resolveDashboardSettings, reloadLocaleOnAllDaemons) {
|
|
17
18
|
return {
|
|
@@ -83,6 +84,68 @@ export async function applySettingsWrite(body, deps) {
|
|
|
83
84
|
deps.mergeGlobalConfig({ remoteAccess: obj.remoteAccess });
|
|
84
85
|
touched = true;
|
|
85
86
|
}
|
|
87
|
+
if ('vcMeetingAgent' in obj) {
|
|
88
|
+
const raw = obj.vcMeetingAgent;
|
|
89
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
|
|
90
|
+
return { ok: false, error: 'invalid_vcMeetingAgent' };
|
|
91
|
+
}
|
|
92
|
+
const vc = raw;
|
|
93
|
+
const currentVcMeetingAgent = deps.readGlobalConfig().vcMeetingAgent ?? {};
|
|
94
|
+
const next = { ...currentVcMeetingAgent };
|
|
95
|
+
if ('enabled' in vc) {
|
|
96
|
+
if (typeof vc.enabled !== 'boolean') {
|
|
97
|
+
return { ok: false, error: 'invalid_vcMeetingAgent_enabled' };
|
|
98
|
+
}
|
|
99
|
+
next.enabled = vc.enabled;
|
|
100
|
+
}
|
|
101
|
+
if ('listenerBotAppId' in vc) {
|
|
102
|
+
if (vc.listenerBotAppId === null || vc.listenerBotAppId === '') {
|
|
103
|
+
if (deps.syncVcMeetingListenerBotConfig) {
|
|
104
|
+
const synced = await deps.syncVcMeetingListenerBotConfig(null, currentVcMeetingAgent.listenerBotAppId ?? null);
|
|
105
|
+
if (!synced.ok)
|
|
106
|
+
return { ok: false, error: synced.error };
|
|
107
|
+
}
|
|
108
|
+
delete next.listenerBotAppId;
|
|
109
|
+
}
|
|
110
|
+
else if (typeof vc.listenerBotAppId === 'string' && vc.listenerBotAppId.trim()) {
|
|
111
|
+
const listenerBotAppId = vc.listenerBotAppId.trim();
|
|
112
|
+
if (deps.validateVcMeetingListenerBotAppId) {
|
|
113
|
+
const validation = await deps.validateVcMeetingListenerBotAppId(listenerBotAppId);
|
|
114
|
+
if (!validation.ok)
|
|
115
|
+
return { ok: false, error: validation.error };
|
|
116
|
+
}
|
|
117
|
+
if (deps.syncVcMeetingListenerBotConfig) {
|
|
118
|
+
const synced = await deps.syncVcMeetingListenerBotConfig(listenerBotAppId, currentVcMeetingAgent.listenerBotAppId ?? null);
|
|
119
|
+
if (!synced.ok)
|
|
120
|
+
return { ok: false, error: synced.error };
|
|
121
|
+
}
|
|
122
|
+
next.listenerBotAppId = listenerBotAppId;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
return { ok: false, error: 'invalid_vcMeetingAgent_listenerBotAppId' };
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (!('enabled' in vc) && !('listenerBotAppId' in vc)) {
|
|
129
|
+
return { ok: false, error: 'invalid_vcMeetingAgent_enabled' };
|
|
130
|
+
}
|
|
131
|
+
deps.mergeGlobalConfig({ vcMeetingAgent: next });
|
|
132
|
+
touched = true;
|
|
133
|
+
}
|
|
134
|
+
if ('scheduleTimeZone' in obj) {
|
|
135
|
+
const v = obj.scheduleTimeZone;
|
|
136
|
+
if (v === null || v === '') {
|
|
137
|
+
// Clear the override → the scheduler falls back to the host local zone.
|
|
138
|
+
deps.mergeGlobalConfig({ scheduleTimeZone: null });
|
|
139
|
+
touched = true;
|
|
140
|
+
}
|
|
141
|
+
else if (typeof v === 'string' && isValidTimeZone(v.trim())) {
|
|
142
|
+
deps.mergeGlobalConfig({ scheduleTimeZone: v.trim() });
|
|
143
|
+
touched = true;
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
return { ok: false, error: 'invalid_scheduleTimeZone' };
|
|
147
|
+
}
|
|
148
|
+
}
|
|
86
149
|
if ('whiteboard' in obj) {
|
|
87
150
|
const raw = obj.whiteboard;
|
|
88
151
|
if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-write-applier.js","sourceRoot":"","sources":["../../src/dashboard/settings-write-applier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"settings-write-applier.js","sourceRoot":"","sources":["../../src/dashboard/settings-write-applier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAqEvD,gEAAgE;AAChE,MAAM,UAAU,+BAA+B,CAC7C,wBAA6D,EAC7D,wBAA8C;IAE9C,OAAO;QACL,gBAAgB;QAChB,oBAAoB;QACpB,iBAAiB;QACjB,sBAAsB;QACtB,eAAe;QACf,qBAAqB;QACrB,iBAAiB;QACjB,wBAAwB;QACxB,QAAQ;QACR,wBAAwB;KACzB,CAAC;AACJ,CAAC;AA8BD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAa,EACb,IAA8B;IAE9B,MAAM,GAAG,GAAG,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAClE,CAAC,CAAC,IAA+B;QACjC,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,KAAK,GAA0B,EAAE,CAAC;IACxC,IAAI,gBAAgB,IAAI,GAAG,EAAE,CAAC;QAC5B,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;QACxD,CAAC;QACD,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;IAC5C,CAAC;IACD,IAAI,sBAAsB,IAAI,GAAG,EAAE,CAAC;QAClC,IAAI,OAAO,GAAG,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;YAClD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC;QAC9D,CAAC;QACD,KAAK,CAAC,oBAAoB,GAAG,GAAG,CAAC,oBAAoB,CAAC;IACxD,CAAC;IACD,IAAI,kBAAkB,IAAI,GAAG,EAAE,CAAC;QAC9B,IAAI,OAAO,GAAG,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YAC9C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;QAC1D,CAAC;QACD,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;IAChD,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,gBAAgB,IAAI,GAAG,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,GAAG,CAAC,cAAc,CAAC;QAC7B,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,cAAc,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;QAC3D,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,gBAAgB,IAAI,GAAG,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,cAAc,CAAC;QAC/B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;QACxD,CAAC;QACD,MAAM,EAAE,GAAG,GAA8B,CAAC;QAC1C,MAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,cAAc,IAAI,EAAE,CAAC;QAC3E,MAAM,IAAI,GAAG,EAAE,GAAG,qBAAqB,EAAE,CAAC;QAC1C,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;YACpB,IAAI,OAAO,EAAE,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACpC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;YAChE,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QAC5B,CAAC;QACD,IAAI,kBAAkB,IAAI,EAAE,EAAE,CAAC;YAC7B,IAAI,EAAE,CAAC,gBAAgB,KAAK,IAAI,IAAI,EAAE,CAAC,gBAAgB,KAAK,EAAE,EAAE,CAAC;gBAC/D,IAAI,IAAI,CAAC,8BAA8B,EAAE,CAAC;oBACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,qBAAqB,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC;oBAC/G,IAAI,CAAC,MAAM,CAAC,EAAE;wBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC5D,CAAC;gBACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;YAC/B,CAAC;iBAAM,IAAI,OAAO,EAAE,CAAC,gBAAgB,KAAK,QAAQ,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjF,MAAM,gBAAgB,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;gBACpD,IAAI,IAAI,CAAC,iCAAiC,EAAE,CAAC;oBAC3C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iCAAiC,CAAC,gBAAgB,CAAC,CAAC;oBAClF,IAAI,CAAC,UAAU,CAAC,EAAE;wBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;gBACpE,CAAC;gBACD,IAAI,IAAI,CAAC,8BAA8B,EAAE,CAAC;oBACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC;oBAC3H,IAAI,CAAC,MAAM,CAAC,EAAE;wBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC5D,CAAC;gBACD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAC;YACzE,CAAC;QACH,CAAC;QACD,IAAI,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,CAAC;YACtD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,kBAAkB,IAAI,GAAG,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC;QAC/B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YAC3B,wEAAwE;YACxE,IAAI,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACvD,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,IAAI,YAAY,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC;QAC3B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;QACpD,CAAC;QACD,MAAM,EAAE,GAAG,GAA8B,CAAC;QAC1C,IAAI,OAAO,EAAE,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChE,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,aAAa,IAAI,GAAG,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAChD,2EAA2E;QAC3E,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC5D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;QACzD,CAAC;QACD,0EAA0E;QAC1E,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;YACjC,MAAM,YAAY,GAChB,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO;mBACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO;mBACxD,KAAK,CAAC;YACX,IAAI,CAAC,YAAY;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACxC,CAAC;QACD,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACzD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,wBAAwB,EAAE,EAAE,CAAC;AACjE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../src/dashboard/web/i18n.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;AAI1C,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../src/dashboard/web/i18n.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;AAI1C,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AA01FtE,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAM/E;AAED,wBAAgB,qBAAqB,CAAC,SAAS,GAAE,SAAS,MAAM,EAAO,GAAG,eAAe,CAMxF;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,eAAe,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CASpI;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,CAGrH"}
|
|
@@ -873,14 +873,28 @@ const zh = {
|
|
|
873
873
|
'settings.sectionExperimental': '实验性配置',
|
|
874
874
|
'settings.chatBotDiscovery': '群内机器人发现(飞书 /members/bots)',
|
|
875
875
|
'settings.chatBotDiscoveryHelp': '开启后用飞书 /members/bots 接口实时读取当前群里的机器人成员,让多个机器人之间能可靠地互相 @(首条消息就能识别,无需等历史 @ 记录积累),多机器人协作更稳。该接口是飞书未公开 API:默认开启,调用失败会自动回退到旧的发现方式(按配置的 bot 逐个探测 + 历史 @ 记录)。仅在以下情况需要关闭它(强制走旧逻辑):你的租户/网关不支持该接口、或它返回的群成员不准导致 @ 错人/@ 不到、或飞书改动该接口后行为异常。',
|
|
876
|
+
'settings.sectionVcMeetingAgent': '会议监听',
|
|
877
|
+
'settings.vcMeetingAgent': '允许本机使用会议监听能力',
|
|
878
|
+
'settings.vcMeetingAgentHelp': '默认开启。关闭后,本机所有 bot 不再响应新的会议邀请/会中事件,也不会从运行态恢复会议监听;已在进行中的会议不会被主动拆除,通常会自然收尾。要立即硬停可重启 daemon。',
|
|
879
|
+
'settings.vcMeetingListenerBot': '会议监听 bot 身份',
|
|
880
|
+
'settings.vcMeetingListenerBotAuto': '按 bot 自身配置',
|
|
881
|
+
'settings.vcMeetingListenerBotHelp': '指定后,只有这个 bot app 会接新的会议监听事件;保存前会校验该 bot 已配置 lark-cli profile 且具备 VC 会议权限,校验通过后自动启用会议监听。事件订阅是否已发布无法通过 API 自动检测。',
|
|
882
|
+
'settings.vcMeetingListenerBotDisabled': '保存后自动启用',
|
|
883
|
+
'settings.vcMeetingListenerBotNoProfile': '需先配置 profile',
|
|
876
884
|
'settings.sectionRepoPicker': '仓库选择',
|
|
877
885
|
'settings.repoPickerMode': '仓库选择卡模式',
|
|
878
886
|
'settings.repoPickerModeAll': '仓库 + worktree',
|
|
879
887
|
'settings.repoPickerModeRepos': '仅主仓库',
|
|
880
888
|
'settings.repoPickerModeHelp': '默认显示仓库和 linked worktree。选择「仅主仓库」后,初始化和裸 /repo 的选择卡只列主仓库;显式 /repo /abs/path/to/worktree 仍可直达 worktree。',
|
|
889
|
+
'settings.sectionWhiteboard': '本地白板',
|
|
890
|
+
'settings.whiteboardEnable': '启用项目白板',
|
|
891
|
+
'settings.whiteboardEnableHelp': '默认关闭。开启只启用能力,不会立即创建白板;首次需要时才按群+项目 ensure。',
|
|
881
892
|
'settings.saving': '保存中…',
|
|
882
893
|
'settings.saved': '已保存',
|
|
883
894
|
'settings.saveFailed': '保存失败',
|
|
895
|
+
'settings.sectionSchedule': '定时任务',
|
|
896
|
+
'settings.scheduleTimeZone': '时区',
|
|
897
|
+
'settings.scheduleTimeZoneHelp': '定时任务的触发与显示所用时区(IANA 名,如 Asia/Shanghai)。留空=跟随主机时区(当前主机:{host})。当前生效:{effective}。',
|
|
884
898
|
'settings.sectionMaintenance': '自动维护',
|
|
885
899
|
'settings.autoUpdate': '自动更新',
|
|
886
900
|
'settings.autoUpdateHelp': '默认关闭。到点执行 npm install -g botmux@latest 安装最新版本(只下载安装、本身不重启)。仅 npm 全局安装可用。',
|
|
@@ -2309,14 +2323,28 @@ const en = {
|
|
|
2309
2323
|
'settings.sectionExperimental': 'Experimental',
|
|
2310
2324
|
'settings.chatBotDiscovery': 'In-chat bot discovery (Feishu /members/bots)',
|
|
2311
2325
|
'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 — 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.',
|
|
2326
|
+
'settings.sectionVcMeetingAgent': 'Meeting Listener',
|
|
2327
|
+
'settings.vcMeetingAgent': 'Allow meeting listener features on this machine',
|
|
2328
|
+
'settings.vcMeetingAgentHelp': 'On by default. When off, bots on this host ignore new meeting invites/events and skip restoring meeting listeners from runtime state. Meetings already running are not force-closed and usually finish naturally; restart daemons to hard-stop them.',
|
|
2329
|
+
'settings.vcMeetingListenerBot': 'Meeting listener bot identity',
|
|
2330
|
+
'settings.vcMeetingListenerBotAuto': 'Follow each bot config',
|
|
2331
|
+
'settings.vcMeetingListenerBotHelp': 'When set, only this bot app accepts new meeting listener events. Saving first validates that the bot has a lark-cli profile and required VC meeting scopes, then enables meeting listener config. Event subscription publication cannot be checked by API.',
|
|
2332
|
+
'settings.vcMeetingListenerBotDisabled': 'auto-enable on save',
|
|
2333
|
+
'settings.vcMeetingListenerBotNoProfile': 'profile required first',
|
|
2312
2334
|
'settings.sectionRepoPicker': 'Repo Picker',
|
|
2313
2335
|
'settings.repoPickerMode': 'Repo picker card mode',
|
|
2314
2336
|
'settings.repoPickerModeAll': 'Repos + worktrees',
|
|
2315
2337
|
'settings.repoPickerModeRepos': 'Main repos only',
|
|
2316
2338
|
'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.',
|
|
2339
|
+
'settings.sectionWhiteboard': 'Local Whiteboard',
|
|
2340
|
+
'settings.whiteboardEnable': 'Enable project whiteboards',
|
|
2341
|
+
'settings.whiteboardEnableHelp': 'Off by default. Enabling only turns the capability on — nothing is created immediately; whiteboards are ensured lazily per chat + project on first use.',
|
|
2317
2342
|
'settings.saving': 'Saving…',
|
|
2318
2343
|
'settings.saved': 'Saved',
|
|
2319
2344
|
'settings.saveFailed': 'Save failed',
|
|
2345
|
+
'settings.sectionSchedule': 'Scheduled tasks',
|
|
2346
|
+
'settings.scheduleTimeZone': 'Timezone',
|
|
2347
|
+
'settings.scheduleTimeZoneHelp': 'Timezone used to fire and display scheduled tasks (IANA name, e.g. Asia/Shanghai). Leave empty to follow the host zone (current host: {host}). Effective: {effective}.',
|
|
2320
2348
|
'settings.sectionMaintenance': 'Auto Maintenance',
|
|
2321
2349
|
'settings.autoUpdate': 'Auto update',
|
|
2322
2350
|
'settings.autoUpdateHelp': 'Off by default. At the set time, runs npm install -g botmux@latest to install the latest version (download/install only — no restart). npm-global installs only.',
|