botmux 3.16.0 → 3.17.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/dist/.runtime-build-id +1 -1
- package/dist/adapters/backend/riff-backend.d.ts +84 -1
- package/dist/adapters/backend/riff-backend.d.ts.map +1 -1
- package/dist/adapters/backend/riff-backend.js +202 -19
- package/dist/adapters/backend/riff-backend.js.map +1 -1
- package/dist/adapters/backend/sandbox.d.ts +8 -0
- package/dist/adapters/backend/sandbox.d.ts.map +1 -1
- package/dist/adapters/backend/sandbox.js +15 -0
- package/dist/adapters/backend/sandbox.js.map +1 -1
- package/dist/adapters/backend/tmux-backend.d.ts +61 -7
- package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
- package/dist/adapters/backend/tmux-backend.js +80 -9
- package/dist/adapters/backend/tmux-backend.js.map +1 -1
- package/dist/adapters/backend/tmux-pipe-backend.d.ts +62 -4
- package/dist/adapters/backend/tmux-pipe-backend.d.ts.map +1 -1
- package/dist/adapters/backend/tmux-pipe-backend.js +240 -27
- package/dist/adapters/backend/tmux-pipe-backend.js.map +1 -1
- package/dist/adapters/cli/claude-code.d.ts.map +1 -1
- package/dist/adapters/cli/claude-code.js +4 -2
- package/dist/adapters/cli/claude-code.js.map +1 -1
- package/dist/adapters/cli/coco.d.ts.map +1 -1
- package/dist/adapters/cli/coco.js +27 -0
- package/dist/adapters/cli/coco.js.map +1 -1
- package/dist/adapters/cli/codex-app.d.ts.map +1 -1
- package/dist/adapters/cli/codex-app.js +28 -0
- package/dist/adapters/cli/codex-app.js.map +1 -1
- package/dist/adapters/cli/codex.d.ts.map +1 -1
- package/dist/adapters/cli/codex.js +51 -23
- package/dist/adapters/cli/codex.js.map +1 -1
- package/dist/adapters/cli/dsh-tui.d.ts +24 -0
- package/dist/adapters/cli/dsh-tui.d.ts.map +1 -0
- package/dist/adapters/cli/dsh-tui.js +99 -0
- package/dist/adapters/cli/dsh-tui.js.map +1 -0
- package/dist/adapters/cli/dsh.d.ts.map +1 -1
- package/dist/adapters/cli/dsh.js +15 -9
- package/dist/adapters/cli/dsh.js.map +1 -1
- package/dist/adapters/cli/fs-policy.d.ts +98 -1
- package/dist/adapters/cli/fs-policy.d.ts.map +1 -1
- package/dist/adapters/cli/fs-policy.js +182 -7
- package/dist/adapters/cli/fs-policy.js.map +1 -1
- package/dist/adapters/cli/grok.js +16 -18
- package/dist/adapters/cli/grok.js.map +1 -1
- package/dist/adapters/cli/model-catalog-json.d.ts +17 -0
- package/dist/adapters/cli/model-catalog-json.d.ts.map +1 -0
- package/dist/adapters/cli/model-catalog-json.js +43 -0
- package/dist/adapters/cli/model-catalog-json.js.map +1 -0
- package/dist/adapters/cli/oh-my-pi.d.ts +2 -0
- package/dist/adapters/cli/oh-my-pi.d.ts.map +1 -1
- package/dist/adapters/cli/oh-my-pi.js +45 -13
- package/dist/adapters/cli/oh-my-pi.js.map +1 -1
- package/dist/adapters/cli/opencode.js +1 -1
- package/dist/adapters/cli/opencode.js.map +1 -1
- package/dist/adapters/cli/registry.d.ts +2 -1
- package/dist/adapters/cli/registry.d.ts.map +1 -1
- package/dist/adapters/cli/registry.js +6 -1
- package/dist/adapters/cli/registry.js.map +1 -1
- package/dist/adapters/cli/relay.d.ts.map +1 -1
- package/dist/adapters/cli/relay.js +7 -0
- package/dist/adapters/cli/relay.js.map +1 -1
- package/dist/adapters/cli/seed.d.ts.map +1 -1
- package/dist/adapters/cli/seed.js +6 -0
- package/dist/adapters/cli/seed.js.map +1 -1
- package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
- package/dist/adapters/cli/shared-hints.js +20 -14
- package/dist/adapters/cli/shared-hints.js.map +1 -1
- package/dist/adapters/cli/traex.d.ts +4 -0
- package/dist/adapters/cli/traex.d.ts.map +1 -1
- package/dist/adapters/cli/traex.js +153 -0
- package/dist/adapters/cli/traex.js.map +1 -1
- package/dist/adapters/cli/types.d.ts +42 -1
- package/dist/adapters/cli/types.d.ts.map +1 -1
- package/dist/autostart.d.ts +6 -0
- package/dist/autostart.d.ts.map +1 -1
- package/dist/autostart.js +21 -1
- package/dist/autostart.js.map +1 -1
- package/dist/bot-registry.d.ts +27 -0
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +62 -2
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli/vc-agent.d.ts.map +1 -1
- package/dist/cli/vc-agent.js +21 -3
- package/dist/cli/vc-agent.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +92 -1
- package/dist/cli.js.map +1 -1
- package/dist/codex-app-runner.js +28 -0
- package/dist/codex-app-runner.js.map +1 -1
- package/dist/core/bot-steer-directive.d.ts +25 -0
- package/dist/core/bot-steer-directive.d.ts.map +1 -0
- package/dist/core/bot-steer-directive.js +47 -0
- package/dist/core/bot-steer-directive.js.map +1 -0
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +102 -18
- 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 +53 -13
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/dashboard-rows.d.ts +3 -0
- package/dist/core/dashboard-rows.d.ts.map +1 -1
- package/dist/core/dashboard-rows.js +26 -5
- package/dist/core/dashboard-rows.js.map +1 -1
- package/dist/core/dashboard-url.d.ts +10 -1
- package/dist/core/dashboard-url.d.ts.map +1 -1
- package/dist/core/dashboard-url.js +12 -2
- package/dist/core/dashboard-url.js.map +1 -1
- package/dist/core/dispatch.d.ts.map +1 -1
- package/dist/core/dispatch.js +5 -4
- package/dist/core/dispatch.js.map +1 -1
- package/dist/core/existing-app-server.d.ts +22 -0
- package/dist/core/existing-app-server.d.ts.map +1 -0
- package/dist/core/existing-app-server.js +85 -0
- package/dist/core/existing-app-server.js.map +1 -0
- package/dist/core/native-topic-id.d.ts +9 -0
- package/dist/core/native-topic-id.d.ts.map +1 -0
- package/dist/core/native-topic-id.js +14 -0
- package/dist/core/native-topic-id.js.map +1 -0
- package/dist/core/per-bot-env.d.ts.map +1 -1
- package/dist/core/per-bot-env.js +10 -0
- package/dist/core/per-bot-env.js.map +1 -1
- package/dist/core/plugins/mcp/gateway.d.ts +27 -3
- package/dist/core/plugins/mcp/gateway.d.ts.map +1 -1
- package/dist/core/plugins/mcp/gateway.js +272 -26
- package/dist/core/plugins/mcp/gateway.js.map +1 -1
- package/dist/core/plugins/mcp/host.d.ts +18 -0
- package/dist/core/plugins/mcp/host.d.ts.map +1 -1
- package/dist/core/plugins/mcp/host.js +80 -16
- package/dist/core/plugins/mcp/host.js.map +1 -1
- package/dist/core/plugins/mcp/launch-record.d.ts +14 -0
- package/dist/core/plugins/mcp/launch-record.d.ts.map +1 -0
- package/dist/core/plugins/mcp/launch-record.js +63 -0
- package/dist/core/plugins/mcp/launch-record.js.map +1 -0
- package/dist/core/session-activity.d.ts +11 -0
- package/dist/core/session-activity.d.ts.map +1 -1
- package/dist/core/session-activity.js +23 -0
- package/dist/core/session-activity.js.map +1 -1
- package/dist/core/session-group-birth.d.ts.map +1 -1
- package/dist/core/session-group-birth.js +23 -8
- package/dist/core/session-group-birth.js.map +1 -1
- package/dist/core/session-manager.d.ts +1 -4
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +16 -20
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/shared-adopt.d.ts +20 -0
- package/dist/core/shared-adopt.d.ts.map +1 -0
- package/dist/core/shared-adopt.js +26 -0
- package/dist/core/shared-adopt.js.map +1 -0
- package/dist/core/skills/customize-command.d.ts +7 -0
- package/dist/core/skills/customize-command.d.ts.map +1 -0
- package/dist/core/skills/customize-command.js +303 -0
- package/dist/core/skills/customize-command.js.map +1 -0
- package/dist/core/terminal-write-auth.d.ts +15 -0
- package/dist/core/terminal-write-auth.d.ts.map +1 -1
- package/dist/core/terminal-write-auth.js +15 -0
- package/dist/core/terminal-write-auth.js.map +1 -1
- package/dist/core/terminal-write-frame.d.ts +30 -0
- package/dist/core/terminal-write-frame.d.ts.map +1 -0
- package/dist/core/terminal-write-frame.js +44 -0
- package/dist/core/terminal-write-frame.js.map +1 -0
- package/dist/core/types.d.ts +14 -4
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +6 -8
- package/dist/core/types.js.map +1 -1
- package/dist/core/worker-pool.d.ts +31 -6
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +444 -102
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/core/worker-startup-retry.d.ts +52 -0
- package/dist/core/worker-startup-retry.d.ts.map +1 -0
- package/dist/core/worker-startup-retry.js +68 -0
- package/dist/core/worker-startup-retry.js.map +1 -0
- package/dist/daemon.d.ts +9 -8
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +467 -171
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/autostart-api.d.ts +26 -0
- package/dist/dashboard/autostart-api.d.ts.map +1 -0
- package/dist/dashboard/autostart-api.js +88 -0
- package/dist/dashboard/autostart-api.js.map +1 -0
- package/dist/dashboard/bot-payload.d.ts +5 -0
- package/dist/dashboard/bot-payload.d.ts.map +1 -1
- package/dist/dashboard/bot-payload.js +2 -0
- package/dist/dashboard/bot-payload.js.map +1 -1
- package/dist/dashboard/control-csrf.d.ts +29 -1
- package/dist/dashboard/control-csrf.d.ts.map +1 -1
- package/dist/dashboard/control-csrf.js +49 -10
- package/dist/dashboard/control-csrf.js.map +1 -1
- package/dist/dashboard/customization-api.d.ts +23 -0
- package/dist/dashboard/customization-api.d.ts.map +1 -0
- package/dist/dashboard/customization-api.js +198 -0
- package/dist/dashboard/customization-api.js.map +1 -0
- package/dist/dashboard/debug-terminal.d.ts +13 -1
- package/dist/dashboard/debug-terminal.d.ts.map +1 -1
- package/dist/dashboard/debug-terminal.js +18 -4
- package/dist/dashboard/debug-terminal.js.map +1 -1
- package/dist/dashboard/settings-write-applier.d.ts +0 -23
- package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
- package/dist/dashboard/settings-write-applier.js +7 -28
- package/dist/dashboard/settings-write-applier.js.map +1 -1
- package/dist/dashboard/terminal-control-route.d.ts +32 -0
- package/dist/dashboard/terminal-control-route.d.ts.map +1 -0
- package/dist/dashboard/terminal-control-route.js +70 -0
- package/dist/dashboard/terminal-control-route.js.map +1 -0
- package/dist/dashboard/terminal-control.d.ts +64 -13
- package/dist/dashboard/terminal-control.d.ts.map +1 -1
- package/dist/dashboard/terminal-control.js +77 -14
- package/dist/dashboard/terminal-control.js.map +1 -1
- package/dist/dashboard/terminal-front-proxy.d.ts.map +1 -1
- package/dist/dashboard/terminal-front-proxy.js +41 -9
- package/dist/dashboard/terminal-front-proxy.js.map +1 -1
- package/dist/dashboard/vc-consumer-profiles-api.d.ts +69 -18
- package/dist/dashboard/vc-consumer-profiles-api.d.ts.map +1 -1
- package/dist/dashboard/vc-consumer-profiles-api.js +149 -29
- package/dist/dashboard/vc-consumer-profiles-api.js.map +1 -1
- package/dist/dashboard/web/agent-workbench-api.d.ts +34 -2
- package/dist/dashboard/web/agent-workbench-api.d.ts.map +1 -1
- package/dist/dashboard/web/agent-workbench-api.js +39 -4
- package/dist/dashboard/web/agent-workbench-api.js.map +1 -1
- package/dist/dashboard/web/agent-workbench-appearance.d.ts +6 -3
- package/dist/dashboard/web/agent-workbench-appearance.d.ts.map +1 -1
- package/dist/dashboard/web/agent-workbench-appearance.js +7 -4
- package/dist/dashboard/web/agent-workbench-appearance.js.map +1 -1
- package/dist/dashboard/web/agent-workbench-model.d.ts +2 -0
- package/dist/dashboard/web/agent-workbench-model.d.ts.map +1 -1
- package/dist/dashboard/web/agent-workbench-model.js.map +1 -1
- package/dist/dashboard/web/agent-workbench-page.js +2 -2
- package/dist/dashboard/web/agent-workbench-page.js.map +1 -1
- package/dist/dashboard/web/agent-workbench-panes.d.ts +59 -4
- package/dist/dashboard/web/agent-workbench-panes.d.ts.map +1 -1
- package/dist/dashboard/web/agent-workbench-panes.js +493 -85
- package/dist/dashboard/web/agent-workbench-panes.js.map +1 -1
- package/dist/dashboard/web/agent-workbench-session-list.d.ts +11 -7
- package/dist/dashboard/web/agent-workbench-session-list.d.ts.map +1 -1
- package/dist/dashboard/web/agent-workbench-session-list.js +24 -31
- package/dist/dashboard/web/agent-workbench-session-list.js.map +1 -1
- package/dist/dashboard/web/agent-workbench-terminal-control.d.ts +198 -0
- package/dist/dashboard/web/agent-workbench-terminal-control.d.ts.map +1 -0
- package/dist/dashboard/web/agent-workbench-terminal-control.js +292 -0
- package/dist/dashboard/web/agent-workbench-terminal-control.js.map +1 -0
- package/dist/dashboard/web/agent-workbench-view.d.ts +3 -2
- package/dist/dashboard/web/agent-workbench-view.d.ts.map +1 -1
- package/dist/dashboard/web/agent-workbench-view.js +69 -50
- package/dist/dashboard/web/agent-workbench-view.js.map +1 -1
- package/dist/dashboard/web/app.d.ts.map +1 -1
- package/dist/dashboard/web/app.js +58 -7
- package/dist/dashboard/web/app.js.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.d.ts +24 -0
- package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.js +191 -16
- package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
- package/dist/dashboard/web/bot-defaults.d.ts +17 -0
- package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults.js +51 -2
- package/dist/dashboard/web/bot-defaults.js.map +1 -1
- package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/web/bot-onboarding.js +32 -8
- package/dist/dashboard/web/bot-onboarding.js.map +1 -1
- package/dist/dashboard/web/confirm-modal.d.ts +35 -0
- package/dist/dashboard/web/confirm-modal.d.ts.map +1 -0
- package/dist/dashboard/web/confirm-modal.js +111 -0
- package/dist/dashboard/web/confirm-modal.js.map +1 -0
- package/dist/dashboard/web/connectors-page.d.ts.map +1 -1
- package/dist/dashboard/web/connectors-page.js +2 -1
- package/dist/dashboard/web/connectors-page.js.map +1 -1
- package/dist/dashboard/web/customization-page.d.ts +3 -0
- package/dist/dashboard/web/customization-page.d.ts.map +1 -0
- package/dist/dashboard/web/customization-page.js +315 -0
- package/dist/dashboard/web/customization-page.js.map +1 -0
- package/dist/dashboard/web/dashboard-routes.d.ts.map +1 -1
- package/dist/dashboard/web/dashboard-routes.js +1 -0
- package/dist/dashboard/web/dashboard-routes.js.map +1 -1
- package/dist/dashboard/web/groups-page.d.ts.map +1 -1
- package/dist/dashboard/web/groups-page.js +11 -9
- 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 +226 -42
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/web/monitor-room.d.ts.map +1 -1
- package/dist/dashboard/web/monitor-room.js +3 -2
- package/dist/dashboard/web/monitor-room.js.map +1 -1
- package/dist/dashboard/web/overview-page.d.ts.map +1 -1
- package/dist/dashboard/web/overview-page.js +98 -63
- package/dist/dashboard/web/overview-page.js.map +1 -1
- package/dist/dashboard/web/roles-page.d.ts.map +1 -1
- package/dist/dashboard/web/roles-page.js +4 -3
- package/dist/dashboard/web/roles-page.js.map +1 -1
- package/dist/dashboard/web/schedules-page.d.ts.map +1 -1
- package/dist/dashboard/web/schedules-page.js +165 -18
- package/dist/dashboard/web/schedules-page.js.map +1 -1
- package/dist/dashboard/web/sessions-kanban.d.ts +2 -0
- package/dist/dashboard/web/sessions-kanban.d.ts.map +1 -1
- package/dist/dashboard/web/sessions-kanban.js +142 -24
- package/dist/dashboard/web/sessions-kanban.js.map +1 -1
- package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
- package/dist/dashboard/web/sessions-page.js +177 -94
- package/dist/dashboard/web/sessions-page.js.map +1 -1
- package/dist/dashboard/web/sessions.d.ts.map +1 -1
- package/dist/dashboard/web/sessions.js +5 -4
- package/dist/dashboard/web/sessions.js.map +1 -1
- package/dist/dashboard/web/settings-page.d.ts +0 -8
- package/dist/dashboard/web/settings-page.d.ts.map +1 -1
- package/dist/dashboard/web/settings-page.js +185 -65
- package/dist/dashboard/web/settings-page.js.map +1 -1
- package/dist/dashboard/web/skills/skill-library-tab.d.ts +2 -0
- package/dist/dashboard/web/skills/skill-library-tab.d.ts.map +1 -1
- package/dist/dashboard/web/skills/skill-library-tab.js +15 -1
- package/dist/dashboard/web/skills/skill-library-tab.js.map +1 -1
- package/dist/dashboard/web/skills-page.d.ts.map +1 -1
- package/dist/dashboard/web/skills-page.js +5 -4
- package/dist/dashboard/web/skills-page.js.map +1 -1
- package/dist/dashboard/web/store.d.ts +5 -0
- package/dist/dashboard/web/store.d.ts.map +1 -1
- package/dist/dashboard/web/store.js +4 -0
- package/dist/dashboard/web/store.js.map +1 -1
- package/dist/dashboard/web/team-federation-page.d.ts.map +1 -1
- package/dist/dashboard/web/team-federation-page.js +3 -2
- package/dist/dashboard/web/team-federation-page.js.map +1 -1
- package/dist/dashboard/web/toast.d.ts +15 -0
- package/dist/dashboard/web/toast.d.ts.map +1 -0
- package/dist/dashboard/web/toast.js +70 -0
- package/dist/dashboard/web/toast.js.map +1 -0
- package/dist/dashboard/web/v3-components.d.ts.map +1 -1
- package/dist/dashboard/web/v3-components.js +2 -1
- package/dist/dashboard/web/v3-components.js.map +1 -1
- package/dist/dashboard/web/vc-consumer-profiles-section.d.ts +10 -12
- package/dist/dashboard/web/vc-consumer-profiles-section.d.ts.map +1 -1
- package/dist/dashboard/web/vc-consumer-profiles-section.js +219 -200
- package/dist/dashboard/web/vc-consumer-profiles-section.js.map +1 -1
- package/dist/dashboard/web/whiteboards-page.d.ts.map +1 -1
- package/dist/dashboard/web/whiteboards-page.js +2 -1
- package/dist/dashboard/web/whiteboards-page.js.map +1 -1
- package/dist/dashboard-web/app.js +1 -1
- package/dist/dashboard-web/chunks/agent-workbench-dock-page-LZSUOCEQ.js +1 -0
- package/dist/dashboard-web/chunks/agent-workbench-page-YONDRJU7.js +1 -0
- package/dist/dashboard-web/chunks/bot-defaults-page-X7LV6373.js +1 -0
- package/dist/dashboard-web/chunks/chunk-2PVRDXEL.js +1 -0
- package/dist/dashboard-web/chunks/chunk-53JUKBU2.js +10 -0
- package/dist/dashboard-web/chunks/{chunk-5CJMHTT4.js → chunk-5QX4OYOR.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-NACP7BMR.js → chunk-5VRVJFQR.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-FDZ7WOBW.js → chunk-6ROOZWYV.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-F6KNPF4R.js → chunk-CK22743G.js} +15 -19
- package/dist/dashboard-web/chunks/chunk-CVNIMUPY.js +25 -0
- package/dist/dashboard-web/chunks/chunk-GJC2TMWS.js +2 -0
- package/dist/dashboard-web/chunks/chunk-OT6L6G7R.js +1 -0
- package/dist/dashboard-web/chunks/chunk-QITAMHW6.js +1 -0
- package/dist/dashboard-web/chunks/chunk-RHVFZC5Z.js +1 -0
- package/dist/dashboard-web/chunks/chunk-SOBMN2VY.js +1 -0
- package/dist/dashboard-web/chunks/chunk-SZOB6VK2.js +1 -0
- package/dist/dashboard-web/chunks/chunk-XVIXNQGC.js +44 -0
- package/dist/dashboard-web/chunks/chunk-YUJF34ME.js +1 -0
- package/dist/dashboard-web/chunks/connectors-page-LB2HEJ7F.js +1 -0
- package/dist/dashboard-web/chunks/customization-page-4GXBYLG6.js +105 -0
- package/dist/dashboard-web/chunks/feedback-page-IZQ7VLDG.js +1 -0
- package/dist/dashboard-web/chunks/groups-page-4WCP5OEV.js +8 -0
- package/dist/dashboard-web/chunks/{insights-page-HJFDYR5N.js → insights-page-TXQHIPQL.js} +1 -1
- package/dist/dashboard-web/chunks/{monitor-room-V7PCP47V.js → monitor-room-VBRVWXCM.js} +8 -8
- package/dist/dashboard-web/chunks/monitoring-page-QDDZWERE.js +2 -0
- package/dist/dashboard-web/chunks/office-page-PENFNYPG.js +1 -0
- package/dist/dashboard-web/chunks/overview-page-BZQDP6MP.js +1 -0
- package/dist/dashboard-web/chunks/plugin-page-JX4GSWZS.js +1 -0
- package/dist/dashboard-web/chunks/roles-page-VPNINZNK.js +1 -0
- package/dist/dashboard-web/chunks/schedules-page-BITO6HEA.js +1 -0
- package/dist/dashboard-web/chunks/sessions-page-ZKCOVTD2.js +8 -0
- package/dist/dashboard-web/chunks/settings-page-UT6JDTS6.js +2 -0
- package/dist/dashboard-web/chunks/skills-page-GULXVAJY.js +4 -0
- package/dist/dashboard-web/chunks/team-federation-page-CUUJWGEG.js +1 -0
- package/dist/dashboard-web/chunks/v3-page-5WVJ5AUR.js +94 -0
- package/dist/dashboard-web/chunks/whiteboards-page-FZ2CME4H.js +1 -0
- package/dist/dashboard-web/design-tokens.css +236 -0
- package/dist/dashboard-web/index.html +1 -0
- package/dist/dashboard-web/style.css +1930 -114
- package/dist/dashboard.js +360 -279
- package/dist/dashboard.js.map +1 -1
- package/dist/desktop/renderer/app.js +6 -0
- package/dist/desktop/renderer/app.js.map +1 -1
- package/dist/dsh-runner.js +139 -17
- package/dist/dsh-runner.js.map +1 -1
- package/dist/global-config.d.ts +33 -2
- package/dist/global-config.d.ts.map +1 -1
- package/dist/global-config.js +62 -0
- package/dist/global-config.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +13 -4
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/index.d.ts +27 -3
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +33 -4
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +13 -4
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts +2 -0
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +7 -4
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +135 -20
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts +38 -3
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +163 -13
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/im/lark/v3-blocked-card-handler.d.ts.map +1 -1
- package/dist/im/lark/v3-blocked-card-handler.js +2 -1
- package/dist/im/lark/v3-blocked-card-handler.js.map +1 -1
- package/dist/im/lark/v3-blocked-card.d.ts +1 -1
- package/dist/im/lark/v3-blocked-card.d.ts.map +1 -1
- package/dist/im/lark/v3-blocked-card.js +14 -0
- package/dist/im/lark/v3-blocked-card.js.map +1 -1
- package/dist/index-core-only.js +2 -0
- package/dist/index-core-only.js.map +1 -1
- package/dist/index-daemon.js +3 -0
- package/dist/index-daemon.js.map +1 -1
- package/dist/platform/binding.d.ts +37 -0
- package/dist/platform/binding.d.ts.map +1 -1
- package/dist/platform/binding.js +15 -0
- package/dist/platform/binding.js.map +1 -1
- package/dist/services/bridge-turn-journal.d.ts +63 -0
- package/dist/services/bridge-turn-journal.d.ts.map +1 -0
- package/dist/services/bridge-turn-journal.js +149 -0
- package/dist/services/bridge-turn-journal.js.map +1 -0
- package/dist/services/bridge-turn-queue.d.ts +8 -1
- package/dist/services/bridge-turn-queue.d.ts.map +1 -1
- package/dist/services/bridge-turn-queue.js +2 -1
- package/dist/services/bridge-turn-queue.js.map +1 -1
- package/dist/services/codex-app-runner-protocol.d.ts +5 -0
- package/dist/services/codex-app-runner-protocol.d.ts.map +1 -1
- package/dist/services/codex-app-runner-protocol.js +5 -0
- package/dist/services/codex-app-runner-protocol.js.map +1 -1
- package/dist/services/customization-store.d.ts +93 -0
- package/dist/services/customization-store.d.ts.map +1 -0
- package/dist/services/customization-store.js +542 -0
- package/dist/services/customization-store.js.map +1 -0
- package/dist/services/file-bridge-path.d.ts.map +1 -1
- package/dist/services/file-bridge-path.js +3 -0
- package/dist/services/file-bridge-path.js.map +1 -1
- package/dist/services/grok-transcript.d.ts.map +1 -1
- package/dist/services/grok-transcript.js +44 -9
- package/dist/services/grok-transcript.js.map +1 -1
- package/dist/services/local-cli-opener.d.ts.map +1 -1
- package/dist/services/local-cli-opener.js +12 -3
- package/dist/services/local-cli-opener.js.map +1 -1
- package/dist/services/model-catalog.d.ts +54 -0
- package/dist/services/model-catalog.d.ts.map +1 -0
- package/dist/services/model-catalog.js +147 -0
- package/dist/services/model-catalog.js.map +1 -0
- package/dist/services/omp-transcript.d.ts +27 -0
- package/dist/services/omp-transcript.d.ts.map +1 -0
- package/dist/services/omp-transcript.js +214 -0
- package/dist/services/omp-transcript.js.map +1 -0
- package/dist/services/platform-team-store.d.ts +16 -8
- package/dist/services/platform-team-store.d.ts.map +1 -1
- package/dist/services/platform-team-store.js +17 -10
- package/dist/services/platform-team-store.js.map +1 -1
- package/dist/services/project-scanner.d.ts.map +1 -1
- package/dist/services/project-scanner.js +13 -8
- package/dist/services/project-scanner.js.map +1 -1
- package/dist/services/resumable-session-discovery.d.ts.map +1 -1
- package/dist/services/resumable-session-discovery.js +117 -35
- package/dist/services/resumable-session-discovery.js.map +1 -1
- package/dist/services/structured-bridge-clis.d.ts +5 -3
- package/dist/services/structured-bridge-clis.d.ts.map +1 -1
- package/dist/services/structured-bridge-clis.js +5 -1
- package/dist/services/structured-bridge-clis.js.map +1 -1
- package/dist/services/vc-meeting-action-gate.d.ts.map +1 -1
- package/dist/services/vc-meeting-action-gate.js +15 -4
- package/dist/services/vc-meeting-action-gate.js.map +1 -1
- package/dist/services/vc-meeting-consumer-profile-bootstrap.d.ts +46 -66
- package/dist/services/vc-meeting-consumer-profile-bootstrap.d.ts.map +1 -1
- package/dist/services/vc-meeting-consumer-profile-bootstrap.js +33 -292
- package/dist/services/vc-meeting-consumer-profile-bootstrap.js.map +1 -1
- package/dist/services/vc-meeting-consumer-profile-templates.js +3 -3
- package/dist/services/vc-meeting-consumer-profile-templates.js.map +1 -1
- package/dist/services/vc-meeting-delivery-store.d.ts +18 -0
- package/dist/services/vc-meeting-delivery-store.d.ts.map +1 -1
- package/dist/services/vc-meeting-delivery-store.js +55 -0
- package/dist/services/vc-meeting-delivery-store.js.map +1 -1
- package/dist/services/vc-meeting-send-policy.d.ts +21 -1
- package/dist/services/vc-meeting-send-policy.d.ts.map +1 -1
- package/dist/services/vc-meeting-send-policy.js +30 -2
- package/dist/services/vc-meeting-send-policy.js.map +1 -1
- package/dist/services/vc-meeting-shared-consumer-catalog-store.d.ts +78 -0
- package/dist/services/vc-meeting-shared-consumer-catalog-store.d.ts.map +1 -0
- package/dist/services/vc-meeting-shared-consumer-catalog-store.js +227 -0
- package/dist/services/vc-meeting-shared-consumer-catalog-store.js.map +1 -0
- package/dist/services/vc-meeting-shared-consumer-catalog.d.ts +53 -0
- package/dist/services/vc-meeting-shared-consumer-catalog.d.ts.map +1 -0
- package/dist/services/vc-meeting-shared-consumer-catalog.js +161 -0
- package/dist/services/vc-meeting-shared-consumer-catalog.js.map +1 -0
- package/dist/setup/bot-config-editor.d.ts.map +1 -1
- package/dist/setup/bot-config-editor.js +1 -0
- package/dist/setup/bot-config-editor.js.map +1 -1
- package/dist/setup/open-platform-automation.d.ts +20 -0
- package/dist/setup/open-platform-automation.d.ts.map +1 -1
- package/dist/setup/open-platform-automation.js +27 -0
- package/dist/setup/open-platform-automation.js.map +1 -1
- package/dist/skills/customization-bundle.d.ts +83 -0
- package/dist/skills/customization-bundle.d.ts.map +1 -0
- package/dist/skills/customization-bundle.js +214 -0
- package/dist/skills/customization-bundle.js.map +1 -0
- package/dist/skills/definitions.d.ts.map +1 -1
- package/dist/skills/definitions.js +10 -3
- package/dist/skills/definitions.js.map +1 -1
- package/dist/skills/effective-builtins.d.ts +38 -0
- package/dist/skills/effective-builtins.d.ts.map +1 -0
- package/dist/skills/effective-builtins.js +96 -0
- package/dist/skills/effective-builtins.js.map +1 -0
- package/dist/skills/injection-mode.d.ts +4 -1
- package/dist/skills/injection-mode.d.ts.map +1 -1
- package/dist/skills/injection-mode.js +11 -3
- package/dist/skills/injection-mode.js.map +1 -1
- package/dist/skills/installer.d.ts.map +1 -1
- package/dist/skills/installer.js +24 -1
- package/dist/skills/installer.js.map +1 -1
- package/dist/skills/prompt-fragments.d.ts +58 -0
- package/dist/skills/prompt-fragments.d.ts.map +1 -0
- package/dist/skills/prompt-fragments.js +88 -0
- package/dist/skills/prompt-fragments.js.map +1 -0
- package/dist/types.d.ts +51 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/cli-usage-limit.d.ts +50 -0
- package/dist/utils/cli-usage-limit.d.ts.map +1 -1
- package/dist/utils/cli-usage-limit.js +43 -0
- package/dist/utils/cli-usage-limit.js.map +1 -1
- package/dist/utils/idle-detector.d.ts +12 -0
- package/dist/utils/idle-detector.d.ts.map +1 -1
- package/dist/utils/idle-detector.js +88 -2
- package/dist/utils/idle-detector.js.map +1 -1
- package/dist/utils/stuck-detector.d.ts +5 -0
- package/dist/utils/stuck-detector.d.ts.map +1 -1
- package/dist/utils/stuck-detector.js +41 -0
- package/dist/utils/stuck-detector.js.map +1 -1
- package/dist/utils/usage-limit-tracker.d.ts +46 -0
- package/dist/utils/usage-limit-tracker.d.ts.map +1 -0
- package/dist/utils/usage-limit-tracker.js +91 -0
- package/dist/utils/usage-limit-tracker.js.map +1 -0
- package/dist/utils/user-token.js +1 -1
- package/dist/utils/user-token.js.map +1 -1
- package/dist/worker.js +812 -125
- package/dist/worker.js.map +1 -1
- package/dist/workflows/definition.d.ts +14 -14
- package/dist/workflows/events/payloads.d.ts +12 -12
- package/dist/workflows/events/schema.d.ts +164 -164
- package/dist/workflows/migration/v2-to-v3.js +1 -1
- package/dist/workflows/migration/v2-to-v3.js.map +1 -1
- package/dist/workflows/v3/architect.d.ts.map +1 -1
- package/dist/workflows/v3/architect.js +11 -5
- package/dist/workflows/v3/architect.js.map +1 -1
- package/dist/workflows/v3/artifact-contract-declarations.d.ts +22 -0
- package/dist/workflows/v3/artifact-contract-declarations.d.ts.map +1 -0
- package/dist/workflows/v3/artifact-contract-declarations.js +95 -0
- package/dist/workflows/v3/artifact-contract-declarations.js.map +1 -0
- package/dist/workflows/v3/contract.d.ts +1 -0
- package/dist/workflows/v3/contract.d.ts.map +1 -1
- package/dist/workflows/v3/contract.js.map +1 -1
- package/dist/workflows/v3/daemon-run.d.ts +2 -2
- package/dist/workflows/v3/daemon-run.d.ts.map +1 -1
- package/dist/workflows/v3/daemon-run.js +4 -0
- package/dist/workflows/v3/daemon-run.js.map +1 -1
- package/dist/workflows/v3/dag.d.ts +7 -0
- package/dist/workflows/v3/dag.d.ts.map +1 -1
- package/dist/workflows/v3/dag.js +69 -8
- package/dist/workflows/v3/dag.js.map +1 -1
- package/dist/workflows/v3/ephemeral-pool.js +1 -1
- package/dist/workflows/v3/ephemeral-pool.js.map +1 -1
- package/dist/workflows/v3/event-contract.d.ts +3 -1
- package/dist/workflows/v3/event-contract.d.ts.map +1 -1
- package/dist/workflows/v3/host.d.ts.map +1 -1
- package/dist/workflows/v3/host.js +5 -1
- package/dist/workflows/v3/host.js.map +1 -1
- package/dist/workflows/v3/journal.d.ts +1 -1
- package/dist/workflows/v3/journal.d.ts.map +1 -1
- package/dist/workflows/v3/journal.js.map +1 -1
- package/dist/workflows/v3/library-materialize.d.ts.map +1 -1
- package/dist/workflows/v3/library-materialize.js +9 -1
- package/dist/workflows/v3/library-materialize.js.map +1 -1
- package/dist/workflows/v3/library-schema.d.ts +3 -1
- package/dist/workflows/v3/library-schema.d.ts.map +1 -1
- package/dist/workflows/v3/library-schema.js +20 -4
- package/dist/workflows/v3/library-schema.js.map +1 -1
- package/dist/workflows/v3/library-store.d.ts.map +1 -1
- package/dist/workflows/v3/library-store.js +15 -3
- package/dist/workflows/v3/library-store.js.map +1 -1
- package/dist/workflows/v3/run-envelope.d.ts +16 -16
- package/dist/workflows/v3/shared-node-runtime.d.ts +2 -1
- package/dist/workflows/v3/shared-node-runtime.d.ts.map +1 -1
- package/dist/workflows/v3/shared-node-runtime.js +48 -7
- package/dist/workflows/v3/shared-node-runtime.js.map +1 -1
- package/package.json +2 -1
- package/dist/dashboard-web/chunks/agent-workbench-dock-page-IKAC5CFL.js +0 -1
- package/dist/dashboard-web/chunks/agent-workbench-page-M53UN5EB.js +0 -1
- package/dist/dashboard-web/chunks/bot-defaults-page-YKE5SDZF.js +0 -10
- package/dist/dashboard-web/chunks/chunk-22WIADUT.js +0 -2
- package/dist/dashboard-web/chunks/chunk-24ONYQMR.js +0 -1
- package/dist/dashboard-web/chunks/chunk-2W6SCN3M.js +0 -1
- package/dist/dashboard-web/chunks/chunk-4XNJX6B3.js +0 -1
- package/dist/dashboard-web/chunks/chunk-5THX4DI2.js +0 -66
- package/dist/dashboard-web/chunks/chunk-7SZRL6FY.js +0 -1
- package/dist/dashboard-web/chunks/chunk-AGCPF6MT.js +0 -1
- package/dist/dashboard-web/chunks/chunk-FXW3V4JR.js +0 -1
- package/dist/dashboard-web/chunks/chunk-SYC6D5XU.js +0 -1
- package/dist/dashboard-web/chunks/connectors-page-VOISXXII.js +0 -1
- package/dist/dashboard-web/chunks/feedback-page-RN6HRZMS.js +0 -1
- package/dist/dashboard-web/chunks/groups-page-UQT6DCB7.js +0 -8
- package/dist/dashboard-web/chunks/monitoring-page-NKEKVQAP.js +0 -2
- package/dist/dashboard-web/chunks/office-page-GVJF73XW.js +0 -1
- package/dist/dashboard-web/chunks/overview-page-KHLV6VTI.js +0 -1
- package/dist/dashboard-web/chunks/plugin-page-J3OF5IY4.js +0 -1
- package/dist/dashboard-web/chunks/roles-page-WQIRSOLZ.js +0 -1
- package/dist/dashboard-web/chunks/schedules-page-J2DEY2X6.js +0 -1
- package/dist/dashboard-web/chunks/sessions-page-7BQFEA5P.js +0 -8
- package/dist/dashboard-web/chunks/settings-page-BJEIOFJH.js +0 -2
- package/dist/dashboard-web/chunks/skills-page-HGIFR3IU.js +0 -4
- package/dist/dashboard-web/chunks/team-federation-page-MR5ZPL4B.js +0 -1
- package/dist/dashboard-web/chunks/v3-page-GBR5JWPE.js +0 -94
- package/dist/dashboard-web/chunks/whiteboards-page-QAZM4BN3.js +0 -1
- package/dist/services/vc-meeting-consumer-profile-store.d.ts +0 -39
- package/dist/services/vc-meeting-consumer-profile-store.d.ts.map +0 -1
- package/dist/services/vc-meeting-consumer-profile-store.js +0 -191
- package/dist/services/vc-meeting-consumer-profile-store.js.map +0 -1
|
@@ -28,6 +28,19 @@ export declare function writeBotInfoFile(dataDir: string): void;
|
|
|
28
28
|
export declare function ensureBotOpenId(larkAppId: string): Promise<void>;
|
|
29
29
|
export declare function probeBotOpenId(larkAppId: string): Promise<void>;
|
|
30
30
|
export declare function checkRequiredScopes(larkAppId: string): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Startup: ensure this bot is subscribed to the VC meeting events
|
|
33
|
+
* (`vc.bot.meeting_*` + participant_meeting_joined) so ANY invited bot can
|
|
34
|
+
* receive meeting invites — the physical prerequisite for bot-agnostic
|
|
35
|
+
* auto-join. Check-first: a read-only probe over the cached Feishu web session
|
|
36
|
+
* (no QR at boot); only when events are missing / event mode is wrong do we run
|
|
37
|
+
* the full open-platform automation (which subscribes them AND publishes a
|
|
38
|
+
* version). This mirrors checkRequiredScopes ("fix only when something's
|
|
39
|
+
* missing") so a bot with events already subscribed makes zero mutating calls
|
|
40
|
+
* and never republishes. Best-effort: never throws into boot; apiOnly and
|
|
41
|
+
* VC-disabled bots are skipped by the caller / the active-config gate.
|
|
42
|
+
*/
|
|
43
|
+
export declare function ensureVcMeetingEventsSubscribed(larkAppId: string): Promise<void>;
|
|
31
44
|
export declare const CHAT_CACHE_TTL: number;
|
|
32
45
|
/**
|
|
33
46
|
* Synchronous first-stage routing lane for inbound Lark messages.
|
|
@@ -77,6 +90,28 @@ export declare function isKnownPeerBot(dataDir: string, larkAppId: string, sende
|
|
|
77
90
|
* configured, transport-enabled sibling app's learned own union_id.
|
|
78
91
|
*/
|
|
79
92
|
export declare function isVerifiedLocalSiblingBot(dataDir: string, larkAppId: string, senderOpenId: string | undefined, senderUnionId: string | undefined): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Resolve a foreign bot sender's CURRENT display name from its tenant-stable
|
|
95
|
+
* `union_id` — rename-proof, unlike the per-app name→open_id cross-ref.
|
|
96
|
+
*
|
|
97
|
+
* Why this exists: `lookupForeignBotName` historically read the receiver-local
|
|
98
|
+
* cross-ref (`bot-openids-<receiverApp>.json`), which only learns a bot's name
|
|
99
|
+
* when THAT bot is @-mentioned in one of the receiver's own events. When a
|
|
100
|
+
* renamed bot merely *sends* to us (the `[来自 X 的 @mention]` prefix path), no
|
|
101
|
+
* mention of X flows through us, so its cross-ref entry stays frozen at the old
|
|
102
|
+
* name. `union_id` is stamped on every inbound event's `sender.sender_id` and is
|
|
103
|
+
* stable across renames AND shared tenant-wide, so it maps the sender to the one
|
|
104
|
+
* locally-configured sibling that learned the same union_id, whose live
|
|
105
|
+
* `bots-info.json` entry is rewritten by its OWN daemon on every rename
|
|
106
|
+
* (setBotRenamer → writeBotInfoFile). That is the freshest cross-process name.
|
|
107
|
+
*
|
|
108
|
+
* Matches exactly one sibling (same ambiguity guard as isVerifiedLocalSiblingBot).
|
|
109
|
+
* Returns undefined on empty/unknown union_id, ambiguity, or a missing bots-info
|
|
110
|
+
* entry, so the caller falls back to the cross-ref / "Bot". Cross-deployment team
|
|
111
|
+
* peers aren't locally configured, so they return undefined here and rely on the
|
|
112
|
+
* cross-ref (whose stale aliases the writer now evicts on the next @ by new name).
|
|
113
|
+
*/
|
|
114
|
+
export declare function resolveSiblingBotNameByUnionId(dataDir: string, larkAppId: string, senderUnionId: string | undefined): string | undefined;
|
|
80
115
|
/**
|
|
81
116
|
* Should a FOREIGN bot sender be trusted to collaborate (route/spawn a session)
|
|
82
117
|
* WITHOUT `/grant`, because it's a teammate? Two trust sources, both rooted in
|
|
@@ -196,8 +231,8 @@ export declare function canTalk(larkAppId: string, chatId: string | undefined, s
|
|
|
196
231
|
* 锁定为「飞书盖章的 bot 发送方」(daemon 的 teamTrustUnionId),否则恶意成员把
|
|
197
232
|
* 真人 union 报成 bot 就能让真人继承 bot 信任。
|
|
198
233
|
* @param memberUnionId 发送方 union(teamMember 腿)——可为真人 union(未锁 bot)。
|
|
199
|
-
*
|
|
200
|
-
*
|
|
234
|
+
* 授 talk、不授 operate,要求 union 与本 bot 同属一个平台团队(memberUnionIds
|
|
235
|
+
* 来自平台鉴权的团队成员,非机器自报),不限 chat,故喂真人 union 是安全的。
|
|
201
236
|
* @param chatType 当前会话类型。**仅 p2pOpen 腿读它**;省略时该腿不生效(fail-closed),
|
|
202
237
|
* 所以拿不到 chatType 的调用点保持原语义、不会误放行。
|
|
203
238
|
*/
|
|
@@ -220,7 +255,7 @@ export declare function evaluateTalk(larkAppId: string, chatId: string | undefin
|
|
|
220
255
|
* `union_id` 的情况(此时 gate 前那次 `recordTeamBot` 被 `senderUnionId &&` 短路,
|
|
221
256
|
* evaluateTalk 的 teamBot 腿必然落空)。**这条不能下沉进 evaluateTalk**:那是人/bot
|
|
222
257
|
* 共用的,加进去等于团队群里任何真人都自动过 canTalk,绕开 teamMember 腿的成员校验
|
|
223
|
-
* (
|
|
258
|
+
* (isPlatformTeamMember 要求 union 与本 bot 同属一个平台团队)。它另外两条 union 锚定
|
|
224
259
|
* 的腿与 evaluateTalk 的 teamBot 腿重合,留着是为了让「bot 团队信任」只有一处定义。
|
|
225
260
|
*
|
|
226
261
|
* 2. `p2pOpen`(−):不传 chatType → 该腿 fail-closed 不生效。飞书里 bot 之间不存在
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-dispatcher.d.ts","sourceRoot":"","sources":["../../../src/im/lark/event-dispatcher.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAmBhD,OAAO,EAA0F,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAchK,OAAO,EAAE,KAAK,KAAK,EAAwC,MAAM,iBAAiB,CAAC;AAqBnF,OAAO,EAA6E,KAAK,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAGpJ,OAAO,EAAmH,KAAK,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAShM,OAAO,KAAK,EAAE,oBAAoB,EAA0B,MAAM,yBAAyB,CAAC;AAC5F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAiB5D,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAEhE;AAED;;0EAE0E;AAC1E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAkCtD;AAQD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQhE;AAED,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCrE;AA6ID,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"event-dispatcher.d.ts","sourceRoot":"","sources":["../../../src/im/lark/event-dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { ProxyAgent } from 'proxy-agent';
|
|
|
8
8
|
import { readFileSync, mkdirSync, existsSync } from 'node:fs';
|
|
9
9
|
import { atomicWriteFileSync } from '../../utils/atomic-write.js';
|
|
10
10
|
import { join } from 'node:path';
|
|
11
|
-
import { getBot, getAllBots, findOncallChat, getOwnerOpenId, loadBotConfigs } from '../../bot-registry.js';
|
|
11
|
+
import { getBot, getAllBots, findOncallChat, getOwnerOpenId, loadBotConfigs, vcMeetingAgentConfigActive } from '../../bot-registry.js';
|
|
12
12
|
import { config, isVcMeetingAgentGloballyEnabled, vcMeetingAgentGlobalListenerBotAppId } from '../../config.js';
|
|
13
13
|
import { getChatInfo, getChatMode, getCachedChatMode, getUserProfile, listChatMessagesUntil, resolveSiblingBotBySenderOpenId, replyMessage, sendMessage, sendUserMessage, isHumanOpenId, updateMessage } from './client.js';
|
|
14
14
|
import { logger } from '../../utils/logger.js';
|
|
@@ -20,12 +20,12 @@ import { stripLeadingMentions, mentionOpenId, mentionAppId, extractMentionIdenti
|
|
|
20
20
|
import { recordObservedBots, listObservedBots } from '../../services/observed-bots-store.js';
|
|
21
21
|
import { isTeamBot, recordTeamBot } from '../../services/team-bots-store.js';
|
|
22
22
|
import { isTeamGroupChat } from '../../services/team-groups-store.js';
|
|
23
|
-
import { isPlatformTeamBot, isPlatformHallChat,
|
|
23
|
+
import { isPlatformTeamBot, isPlatformHallChat, isPlatformTeamMember } from '../../services/platform-team-store.js';
|
|
24
24
|
import { getBotUnionId, recordBotUnionId, recordBotUnionIdFromMentions } from '../../services/bot-union-ids-store.js';
|
|
25
25
|
import { getDocSubscription, putDocSubscription, removeDocSubscription, listAllDocSubscriptions } from '../../services/doc-subs-store.js';
|
|
26
26
|
import { getDocComment, isBotAuthoredReply, hasBotSentinel, commentTriggerAllowed, BOT_REPLY_SENTINEL } from './doc-comment.js';
|
|
27
27
|
import { BOTMUX_REQUIRED_SCOPES, DOC_FEATURE_SCOPES, DOC_WATCH_SCOPES, DOC_COMMENT_EVENT, VC_MEETING_BOT_EVENTS, VC_MEETING_FEATURE_SCOPES, VC_MEETING_REALTIME_VOICE_SCOPES, buildEventSubDeepLink, buildScopeDeepLink, } from '../../setup/verify-permissions.js';
|
|
28
|
-
import { automateOpenPlatformSetup } from '../../setup/open-platform-automation.js';
|
|
28
|
+
import { automateOpenPlatformSetup, probeVcMeetingEventSubscription } from '../../setup/open-platform-automation.js';
|
|
29
29
|
import { larkHosts, normalizeBrand, sdkDomain } from './lark-hosts.js';
|
|
30
30
|
import { tryHandleGrantCommand } from './grant-command.js';
|
|
31
31
|
import { tryHandleInviteCommand } from './invite-command.js';
|
|
@@ -385,9 +385,14 @@ export async function checkRequiredScopes(larkAppId) {
|
|
|
385
385
|
try {
|
|
386
386
|
const globalVcListenerAppId = vcMeetingAgentGlobalListenerBotAppId();
|
|
387
387
|
if (isVcMeetingAgentGloballyEnabled()
|
|
388
|
-
|
|
388
|
+
// VC 现在默认对每个连着飞书的 bot 生效(enabled:false 才是显式退出),所以
|
|
389
|
+
// 就绪自检也要跟着走 vcMeetingAgentConfigActive,而不是只认显式 enabled:true——
|
|
390
|
+
// 否则「默认开」的绝大多数 bot 在启动时永远不做权限体检。
|
|
391
|
+
&& !!vcMeetingAgentConfigActive(bot.config)
|
|
389
392
|
&& (!globalVcListenerAppId || globalVcListenerAppId === larkAppId)) {
|
|
390
|
-
|
|
393
|
+
// 实时语音也默认开启(未配=开),所以 VC 权限体检默认把实时语音 scope 纳入
|
|
394
|
+
// 必需项;只有显式 realtimeVoice.enabled=false 才不查它。
|
|
395
|
+
const requiredVcScopes = bot.config.vcMeetingAgent?.realtimeVoice?.enabled !== false
|
|
391
396
|
? [...VC_MEETING_FEATURE_SCOPES, ...VC_MEETING_REALTIME_VOICE_SCOPES]
|
|
392
397
|
: VC_MEETING_FEATURE_SCOPES;
|
|
393
398
|
const missingVc = requiredVcScopes.filter(s => !grantedScopes.has(s.name));
|
|
@@ -471,6 +476,68 @@ export async function checkRequiredScopes(larkAppId) {
|
|
|
471
476
|
logger.debug(`[${larkAppId}] scope check errored: ${err?.message ?? err}`);
|
|
472
477
|
}
|
|
473
478
|
}
|
|
479
|
+
/**
|
|
480
|
+
* Startup: ensure this bot is subscribed to the VC meeting events
|
|
481
|
+
* (`vc.bot.meeting_*` + participant_meeting_joined) so ANY invited bot can
|
|
482
|
+
* receive meeting invites — the physical prerequisite for bot-agnostic
|
|
483
|
+
* auto-join. Check-first: a read-only probe over the cached Feishu web session
|
|
484
|
+
* (no QR at boot); only when events are missing / event mode is wrong do we run
|
|
485
|
+
* the full open-platform automation (which subscribes them AND publishes a
|
|
486
|
+
* version). This mirrors checkRequiredScopes ("fix only when something's
|
|
487
|
+
* missing") so a bot with events already subscribed makes zero mutating calls
|
|
488
|
+
* and never republishes. Best-effort: never throws into boot; apiOnly and
|
|
489
|
+
* VC-disabled bots are skipped by the caller / the active-config gate.
|
|
490
|
+
*/
|
|
491
|
+
export async function ensureVcMeetingEventsSubscribed(larkAppId) {
|
|
492
|
+
const bot = getBot(larkAppId);
|
|
493
|
+
const brand = normalizeBrand(bot.config.brand);
|
|
494
|
+
// Open-platform automation only supports feishu.cn tenants. Skip apiOnly and
|
|
495
|
+
// VC-inactive bots — vcMeetingAgentConfigActive fail-closes both.
|
|
496
|
+
if (brand !== 'feishu')
|
|
497
|
+
return;
|
|
498
|
+
if (!vcMeetingAgentConfigActive(bot.config))
|
|
499
|
+
return;
|
|
500
|
+
try {
|
|
501
|
+
const probe = await probeVcMeetingEventSubscription(larkAppId);
|
|
502
|
+
if (!probe.ok) {
|
|
503
|
+
// No cached web session / expired / network — degrade gracefully. Do NOT
|
|
504
|
+
// pop a QR at boot. Surface once to the admin so they can `botmux setup`.
|
|
505
|
+
logger.info(`[${larkAppId}] VC event subscription check skipped (${probe.reason}): ${probe.message}. ` +
|
|
506
|
+
`被邀请进会需先订阅 vc.bot.meeting_* 事件;如该 bot 从未订阅,请运行 \`botmux setup\` 刷新开放平台登录态后重启。`);
|
|
507
|
+
return;
|
|
508
|
+
}
|
|
509
|
+
if (probe.missingVcEvents.length === 0 && probe.eventModeReady) {
|
|
510
|
+
logger.info(`[${larkAppId}] VC meeting events already subscribed (long-connection mode)`);
|
|
511
|
+
return;
|
|
512
|
+
}
|
|
513
|
+
logger.info(`[${larkAppId}] VC events missing (${probe.missingVcEvents.join('、') || '事件模式非长连接'}); auto-subscribing via Open Platform...`);
|
|
514
|
+
const result = await automateOpenPlatformSetup({
|
|
515
|
+
appId: bot.config.larkAppId,
|
|
516
|
+
brand,
|
|
517
|
+
maxWaitMs: 60_000,
|
|
518
|
+
disableQrLogin: true,
|
|
519
|
+
onStatus: (msg) => logger.info(`[${larkAppId}] vc-event-autoconfig: ${msg}`),
|
|
520
|
+
onQrCode: () => {
|
|
521
|
+
logger.warn(`[${larkAppId}] vc-event-autoconfig: cached Feishu web session expired; run \`botmux setup\` to refresh, then restart.`);
|
|
522
|
+
},
|
|
523
|
+
});
|
|
524
|
+
if (result.ok) {
|
|
525
|
+
logger.info(`[${larkAppId}] VC events auto-subscribed: ${result.subscribedEventCount} events, version ${result.versionId ?? 'n/a'} published`);
|
|
526
|
+
return;
|
|
527
|
+
}
|
|
528
|
+
// Automation failed (session expired mid-run / api error). Log; DM the admin
|
|
529
|
+
// once so a bot that genuinely lacks the subscription gets a human nudge.
|
|
530
|
+
logger.warn(`[${larkAppId}] VC event auto-subscribe failed (${result.reason}): ${result.message}`);
|
|
531
|
+
const adminOpenId = getAdminOpenId(bot);
|
|
532
|
+
if (adminOpenId) {
|
|
533
|
+
await dmAdmin(larkAppId, adminOpenId, `⚠️ botmux 想在启动时自动为机器人 "${bot.botName ?? larkAppId}" 订阅视频会议事件(vc.bot.meeting_*),以便它被拉进会时能自动进会,但自动配置失败:${result.message}\n\n` +
|
|
534
|
+
`请运行 \`botmux setup\` 刷新飞书开放平台登录态后重启 daemon,botmux 会自动重试。`, 'vc event auto-subscribe failed');
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
catch (err) {
|
|
538
|
+
logger.debug(`[${larkAppId}] VC event subscription check errored: ${err?.message ?? err}`);
|
|
539
|
+
}
|
|
540
|
+
}
|
|
474
541
|
// ─── Group chat stats cache ───────────────────────────────────────────────
|
|
475
542
|
//
|
|
476
543
|
// chat.get returns both user_count (real users only) and bot_count (bots).
|
|
@@ -835,6 +902,63 @@ export function isVerifiedLocalSiblingBot(dataDir, larkAppId, senderOpenId, send
|
|
|
835
902
|
}
|
|
836
903
|
return matchingConfiguredSiblings === 1;
|
|
837
904
|
}
|
|
905
|
+
/**
|
|
906
|
+
* Resolve a foreign bot sender's CURRENT display name from its tenant-stable
|
|
907
|
+
* `union_id` — rename-proof, unlike the per-app name→open_id cross-ref.
|
|
908
|
+
*
|
|
909
|
+
* Why this exists: `lookupForeignBotName` historically read the receiver-local
|
|
910
|
+
* cross-ref (`bot-openids-<receiverApp>.json`), which only learns a bot's name
|
|
911
|
+
* when THAT bot is @-mentioned in one of the receiver's own events. When a
|
|
912
|
+
* renamed bot merely *sends* to us (the `[来自 X 的 @mention]` prefix path), no
|
|
913
|
+
* mention of X flows through us, so its cross-ref entry stays frozen at the old
|
|
914
|
+
* name. `union_id` is stamped on every inbound event's `sender.sender_id` and is
|
|
915
|
+
* stable across renames AND shared tenant-wide, so it maps the sender to the one
|
|
916
|
+
* locally-configured sibling that learned the same union_id, whose live
|
|
917
|
+
* `bots-info.json` entry is rewritten by its OWN daemon on every rename
|
|
918
|
+
* (setBotRenamer → writeBotInfoFile). That is the freshest cross-process name.
|
|
919
|
+
*
|
|
920
|
+
* Matches exactly one sibling (same ambiguity guard as isVerifiedLocalSiblingBot).
|
|
921
|
+
* Returns undefined on empty/unknown union_id, ambiguity, or a missing bots-info
|
|
922
|
+
* entry, so the caller falls back to the cross-ref / "Bot". Cross-deployment team
|
|
923
|
+
* peers aren't locally configured, so they return undefined here and rely on the
|
|
924
|
+
* cross-ref (whose stale aliases the writer now evicts on the next @ by new name).
|
|
925
|
+
*/
|
|
926
|
+
export function resolveSiblingBotNameByUnionId(dataDir, larkAppId, senderUnionId) {
|
|
927
|
+
const unionId = (senderUnionId ?? '').trim();
|
|
928
|
+
if (!unionId)
|
|
929
|
+
return undefined;
|
|
930
|
+
// union_id → the single locally-configured sibling appId that learned it.
|
|
931
|
+
let siblingAppId;
|
|
932
|
+
try {
|
|
933
|
+
for (const cfg of loadBotConfigs()) {
|
|
934
|
+
const appId = (cfg.larkAppId ?? '').trim();
|
|
935
|
+
if (!appId || appId === larkAppId)
|
|
936
|
+
continue;
|
|
937
|
+
if (getBotUnionId(dataDir, appId) === unionId) {
|
|
938
|
+
if (siblingAppId)
|
|
939
|
+
return undefined; // two siblings share a union_id → ambiguous
|
|
940
|
+
siblingAppId = appId;
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
}
|
|
944
|
+
catch {
|
|
945
|
+
return undefined;
|
|
946
|
+
}
|
|
947
|
+
if (!siblingAppId)
|
|
948
|
+
return undefined;
|
|
949
|
+
// appId → current botName from the shared, rename-fresh bots-info.json.
|
|
950
|
+
try {
|
|
951
|
+
const infoPath = join(dataDir, 'bots-info.json');
|
|
952
|
+
if (existsSync(infoPath)) {
|
|
953
|
+
const entries = JSON.parse(readFileSync(infoPath, 'utf-8'));
|
|
954
|
+
const name = entries.find(e => e.larkAppId === siblingAppId)?.botName;
|
|
955
|
+
if (typeof name === 'string' && name.trim())
|
|
956
|
+
return name.trim();
|
|
957
|
+
}
|
|
958
|
+
}
|
|
959
|
+
catch { /* fall through to caller's cross-ref path */ }
|
|
960
|
+
return undefined;
|
|
961
|
+
}
|
|
838
962
|
/**
|
|
839
963
|
* Should a FOREIGN bot sender be trusted to collaborate (route/spawn a session)
|
|
840
964
|
* WITHOUT `/grant`, because it's a teammate? Two trust sources, both rooted in
|
|
@@ -896,6 +1020,21 @@ export function updateBotOpenIdCrossRef(dataDir, larkAppId, mentionsList) {
|
|
|
896
1020
|
continue;
|
|
897
1021
|
if (!knownBotNames.has(name.toLowerCase()))
|
|
898
1022
|
continue;
|
|
1023
|
+
// Evict pre-rename aliases before recording the current name. An open_id is
|
|
1024
|
+
// unique to one bot, so any OTHER name key still pointing at this open_id is
|
|
1025
|
+
// a name that bot used before it was renamed. Left in place, the file would
|
|
1026
|
+
// accumulate every historical name and lookupForeignBotName() (which returns
|
|
1027
|
+
// the FIRST name matching an open_id, i.e. the oldest) would keep serving the
|
|
1028
|
+
// stale one. Dropping them keeps the map at exactly the current name per
|
|
1029
|
+
// open_id, and self-heals a table already polluted by past renames the next
|
|
1030
|
+
// time this bot is @-mentioned by its new name. (Object.entries snapshots the
|
|
1031
|
+
// keys, so deleting from `existing` inside the loop is safe.)
|
|
1032
|
+
for (const [existingName, existingOpenId] of Object.entries(existing)) {
|
|
1033
|
+
if (existingOpenId === openId && existingName !== name) {
|
|
1034
|
+
delete existing[existingName];
|
|
1035
|
+
changed = true;
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
899
1038
|
if (existing[name] === openId)
|
|
900
1039
|
continue;
|
|
901
1040
|
existing[name] = openId;
|
|
@@ -1082,10 +1221,19 @@ function substituteTargetMatchesMention(target, mention) {
|
|
|
1082
1221
|
(target.userId && mention.userId === target.userId) ||
|
|
1083
1222
|
(target.unionId && mention.unionId === target.unionId));
|
|
1084
1223
|
}
|
|
1224
|
+
// 替身触发只认「发送者本人当场亲手 @」的消息类型:text(纯文本)/ post(富文本)。
|
|
1225
|
+
// 转发一张卡片(interactive)或合并转发(merge_forward)时,飞书会把被转发内容
|
|
1226
|
+
// 里原本的接收人 / at-node 继承进这条消息的顶层 mentions —— 那不是发送者真的
|
|
1227
|
+
// @ 了替身对象(用户实测:卡片里灰色的「发送给:@某某」被当成了真 @,凭空触发替身
|
|
1228
|
+
// 在话题外回复)。这类消息一律不触发替身,避免转发误触发。
|
|
1229
|
+
const SUBSTITUTE_TRIGGER_MESSAGE_TYPES = new Set(['text', 'post']);
|
|
1085
1230
|
export function resolveSubstituteTrigger(larkAppId, message) {
|
|
1086
1231
|
const cfg = getBot(larkAppId).config.substituteMode;
|
|
1087
1232
|
if (!cfg?.enabled || !cfg.targets?.length)
|
|
1088
1233
|
return undefined;
|
|
1234
|
+
const messageType = message?.message_type ?? message?.msg_type;
|
|
1235
|
+
if (!SUBSTITUTE_TRIGGER_MESSAGE_TYPES.has(messageType))
|
|
1236
|
+
return undefined;
|
|
1089
1237
|
const mentions = extractMentionIdentities(message);
|
|
1090
1238
|
for (const mention of mentions) {
|
|
1091
1239
|
const target = cfg.targets.find(t => substituteTargetMatchesMention(t, mention));
|
|
@@ -1315,8 +1463,8 @@ export function canTalk(larkAppId, chatId, senderOpenId, senderUnionId, memberUn
|
|
|
1315
1463
|
* 锁定为「飞书盖章的 bot 发送方」(daemon 的 teamTrustUnionId),否则恶意成员把
|
|
1316
1464
|
* 真人 union 报成 bot 就能让真人继承 bot 信任。
|
|
1317
1465
|
* @param memberUnionId 发送方 union(teamMember 腿)——可为真人 union(未锁 bot)。
|
|
1318
|
-
*
|
|
1319
|
-
*
|
|
1466
|
+
* 授 talk、不授 operate,要求 union 与本 bot 同属一个平台团队(memberUnionIds
|
|
1467
|
+
* 来自平台鉴权的团队成员,非机器自报),不限 chat,故喂真人 union 是安全的。
|
|
1320
1468
|
* @param chatType 当前会话类型。**仅 p2pOpen 腿读它**;省略时该腿不生效(fail-closed),
|
|
1321
1469
|
* 所以拿不到 chatType 的调用点保持原语义、不会误放行。
|
|
1322
1470
|
*/
|
|
@@ -1352,10 +1500,12 @@ export function evaluateTalk(larkAppId, chatId, senderOpenId, senderUnionId, mem
|
|
|
1352
1500
|
if (senderUnionId && (isTeamBot(config.session.dataDir, senderUnionId) || isPlatformTeamBot(config.session.dataDir, senderUnionId))) {
|
|
1353
1501
|
return { allowed: true, reason: 'teamBot' };
|
|
1354
1502
|
}
|
|
1355
|
-
// 平台团队成员(人):发送者 union_id
|
|
1356
|
-
//
|
|
1357
|
-
//
|
|
1358
|
-
|
|
1503
|
+
// 平台团队成员(人):发送者 union_id 与本 bot 同属某平台团队 → talk 免 grant,
|
|
1504
|
+
// 不限群(手动建群 / 原生 /invite 拉的群同样生效,不再要求群 ∈ 平台登记的
|
|
1505
|
+
// groupChatIds)。作用域锚在「团队共属」:本 bot ∈ team.bots ∧ 发送者 ∈ 同队
|
|
1506
|
+
// memberUnionIds(isPlatformTeamMember 要求同一 team 同时成立),跨团队不泄漏。
|
|
1507
|
+
// 只放 talk:canOperate 不引这一腿,/restart 等仍限 allowedUsers。
|
|
1508
|
+
if (memberUnionId && isPlatformTeamMember(config.session.dataDir, larkAppId, memberUnionId)) {
|
|
1359
1509
|
return { allowed: true, reason: 'teamMember' };
|
|
1360
1510
|
}
|
|
1361
1511
|
if (hasAllowedChatGroup(larkAppId, chatId))
|
|
@@ -1397,7 +1547,7 @@ export function evaluateTalk(larkAppId, chatId, senderOpenId, senderUnionId, mem
|
|
|
1397
1547
|
* `union_id` 的情况(此时 gate 前那次 `recordTeamBot` 被 `senderUnionId &&` 短路,
|
|
1398
1548
|
* evaluateTalk 的 teamBot 腿必然落空)。**这条不能下沉进 evaluateTalk**:那是人/bot
|
|
1399
1549
|
* 共用的,加进去等于团队群里任何真人都自动过 canTalk,绕开 teamMember 腿的成员校验
|
|
1400
|
-
* (
|
|
1550
|
+
* (isPlatformTeamMember 要求 union 与本 bot 同属一个平台团队)。它另外两条 union 锚定
|
|
1401
1551
|
* 的腿与 evaluateTalk 的 teamBot 腿重合,留着是为了让「bot 团队信任」只有一处定义。
|
|
1402
1552
|
*
|
|
1403
1553
|
* 2. `p2pOpen`(−):不传 chatType → 该腿 fail-closed 不生效。飞书里 bot 之间不存在
|
|
@@ -2669,7 +2819,7 @@ export function startLarkEventDispatcher(larkAppId, larkAppSecret, handlers, bra
|
|
|
2669
2819
|
return;
|
|
2670
2820
|
}
|
|
2671
2821
|
const senderOpenId = sender?.sender_id?.open_id;
|
|
2672
|
-
// 人的 union_id:平台团队成员 talk-免grant 腿(
|
|
2822
|
+
// 人的 union_id:平台团队成员 talk-免grant 腿(isPlatformTeamMember)要用。
|
|
2673
2823
|
const humanSenderUnionId = sender?.sender_id?.union_id;
|
|
2674
2824
|
// defaultOncall 自动绑定必须在 canTalk 权限判断前完成,否则已开 defaultOncall
|
|
2675
2825
|
// 的群首次 @bot 时 oncallChats 中还没有该 chat → evaluateTalk 判无权限 → 误弹
|